};
while (<$input>) {
+ if (m#^\s*($esc)?(\w+)\s*(?:=|\+=|\?=|:=)# ||
+ m#^\s*(?:$esc\:macro|define)\s+($esc)?(\S+)\s#) {
+ $note_varref->($2,!!$1);
+ }
if (s#^\s*$esc\:changequote\s+(\S+)\s+$##) {
$$esclitr = $1;
$set_esc->();
err 'cannot $-double &-processed RHS of directive'
if $ddbl && defined $buffering_output;
unless ($nest[0][0] eq 'eval'
- ? s{^(.*?)($esc|[{}])}{}
- : s{^(.*?)($esc)}{}) { od $_; last; }
+ ? s{^(.*?)($esc|\$|[{}])}{}
+ : s{^(.*?)($esc|\$)}{}) { od $_; last; }
od $1;
if ($2 eq '{') {
od $2;
$pop_nest->('eval');
od '}';
next;
+ } elsif ($2 eq '$') {
+ od $2;
+ if (s{^\$}{}) { od $&; }
+ elsif (m{^\(($esc)?([^()\$]+)\)} ||
+ m{^\{($esc)?([^{}\$]+)\}}) {
+ $note_varref->($2,!!$1);
+ }
+ next;
}
if (s{^\\$esc}{}) { od "$$esclitr" }
elsif (s{^\\\$}{}) { oud '$' }