X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?p=subdirmk.git;a=blobdiff_plain;f=generate;h=d8183d07dd9356e005d90a8160038dae4b9f3047;hp=cbc91721473a7bc4de563ea0f6842d3e25aec0b5;hb=4d32a95729b7ae70fc1b65017cd26d22707ea33d;hpb=9ef44574417286a94e60170c358134392eb9034b diff --git a/generate b/generate index cbc9172..d8183d0 100755 --- a/generate +++ b/generate @@ -270,8 +270,8 @@ sub process_input_mk ($$$$) { 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; @@ -283,6 +283,14 @@ sub process_input_mk ($$$$) { $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 '$' }