chiark / gitweb /
test/filter; Cause some warnings, to check they appear
[subdirmk.git] / generate
index eb99456144302fe5e20ef5b09f22dade5702dbef..13809183f4050d6eafe2b2096716adad3dcd48eb 100755 (executable)
--- a/generate
+++ b/generate
@@ -288,6 +288,10 @@ sub process_input_mk ($$$$) {
            } elsif ($2 eq '$') {
                od $2;
                if (s{^\$}{}) { od $&; }
+               elsif (m{^[a-zA-Z]\w}) {
+                   wrn
+                   'possibly confusing unbracketed single-char $-expansion';
+               }
                elsif (m{^\(($esc)?([^()\$]+)\)} ||
                       m{^\{($esc)?([^{}\$]+)\}}) {
                    $note_varref->($2,!!$1);
@@ -470,6 +474,8 @@ sub process_tree() {
     oraw "include \$(SUBDIRMK_MAKEFILES)\n";
 }
 
+sub flmap ($) { local ($_) = @_; s{:(\d+)$}{ sprintf ":%10d", $1 }e; $_; }
+
 sub print_varref_warnings () {
     foreach my $vn (sort keys %varref) {
        my $vv = $varref{$vn};
@@ -478,7 +484,9 @@ sub print_varref_warnings () {
        foreach my $amp ('', 1) {
            printf STDERR " saw %s%s at %s\n",
                ($amp ? '&' : ''), $vn, $_
-               foreach sort keys %{ $vv->{$amp} };
+               foreach
+               sort { flmap($a) cmp flmap($b) }
+               keys %{ $vv->{$amp} };
        }
     }
 }