my $opt_svg = $ENV{SVG} || 0;
my $opt_alt = $ENV{ALT} || 0;
-my $opt_invert = $ENV{INVERT} = 0;
-my $opt_vertical = $ENV{VERTICAL} = 0;
-my $opt_kernel = $ENV{kernel} = 1;
+my $opt_invert = $ENV{INVERT} || 0;
+my $opt_vertical = $ENV{VERTICAL} || 0;
+my $opt_zebra = $ENV{ZEBRA} || 0;
+my $opt_lines = $ENV{LINES} || 0;
GetOptions(
'svg!' => \$opt_svg,
'alt!' => \$opt_alt,
'invert!' => \$opt_invert,
'vertical!' => \$opt_vertical,
- 'kernel!' => \$opt_kernel,
+ 'zebra!' => \$opt_zebra,
+ 'lines!' => \$opt_lines,
);
# svg font hints
my ($pin, $function) = ($1,$2);
$pin_function->{$pin} = "$device $function";
- next unless $opt_kernel;
-
if ( $pins->{$pin} ) {
foreach my $line ( @{$pins->{$pin}} ) {
warn "XXX $pin $line";
$max_x += $max_len[$_] * $font_w foreach ( 0 .. 3 );
cut_mark $max_x, $y;
+sub line {
+ my ($x,$y,$max_x) = @_;
+ push @cut_marks, sprintf($line_fmt, $x, $y-$font_b, $max_x, $y-$font_b);
+}
+
+
my $last_cut_mark = 0;
foreach my $i ( 0 .. $#line_parts ) {
cut_mark $x, $y;
cut_mark $max_x, $y;
$last_cut_mark = 1;
+ line $x, $y, $max_x if $opt_lines;
$y += 15; # make spacing between pinouts
}
} elsif ( $last_cut_mark ) {
#warn "CUTMARK no magic";
}
+ line $x, $y, $max_x if $opt_lines && exists $line->[1];
+
my ($fg,$bg) = @{ $cols->{txt} };
my $tspan = qq{<tspan x="$x" y="$y" style="line-height:2.54;fill:$fg;stroke:none;">\n};
push @later,sprintf $tspan, @$line;
$y += 2.54;
- # swap pin colors for line stripes
- swap_cols $_ foreach qw( pins txt );
+ # swap pin colors for line stripe
+ if ( $opt_zebra ) {
+ swap_cols $_ foreach qw( pins txt );
+ }
} else {