$pfxmap{$_} = $srcdirmap{$_}.'/' foreach keys %srcdirmap;
while (<$input>) {
- if (s#^\s*$esc\:##) {
+ if (s#^\s*$esc\:changequote\s+(\S+)\s+$##) {
+ $$esclitr = $1;
+ $set_esc->();
+ next;
+ } elsif (s#^\s*$esc\:(?=(-?)include)##) {
$buffering_output='';
+ } elsif (m#^\s*$esc\:([a-z][-0-9a-z_]*)#) {
+ die "unknown directive $1";
+ } elsif (s{^\s*${esc}TARGETS(?:_([0-9a-zA-Z_]+))?(?=\W)}{}) {
+ my $t = $1 // 'all';
+ o target_varname($var_prefix, $t);
+ $targets->{$t} //= [ ];
}
for (;;) {
unless (s{^(.*?)$esc}{}) { o $_; last; }
o $1;
if (s{^\\$esc}{}) { o "$$esclitr" }
elsif (s{^\\\$}{}) { o '$' }
+ elsif (s{^\\\s+$}{}) { }
elsif (s{^$esc}{}) { o "$$esclitr$$esclitr" }
- elsif (s{^TARGETS(?:_([0-9a-zA-Z_]+))?(?=\W)}{}) {
- my $t = $1 // 'all';
- o target_varname($var_prefix, $t);
- $targets->{$t} //= [ ];
- }
elsif (m{^(?=$caps_re)}) { o $var_prefix }
elsif (s{^\$([A-Za-z]\w+)}{}) { o "\$(${var_prefix}$1)" }
elsif (s{^([~^]?)(?=$lc_re)}{}) { o $pfxmap{$1} }
$var_prefix, $var_prefix_name, $targets,
$subf, $esclitr, $1);
o "\n";
- } elsif (m#^changequote\s+(\S+)\s+$#) {
- $$esclitr = $1;
- $set_esc->();
} else {
- die "unknown directive $_ ";
+ die "internal error buffering directive $_ ";
}
}
}