gawk 'BEGIN {                                                                \
    while ( getline < "lib/init.g" && $0 !~ /^AUTO/ )                        \
        print $0;                                                            \
}                                                                            \
                                                                             \
FNR == 1 {                                                                   \
    if ( line != "" && line !~ /^AUTO/ )                                     \
        print line " );\n";                                                  \
    line = "AUTO( Read" toupper(substr(FILENAME,1,1)) substr(FILENAME,2,2);  \
    line = line "( \"" substr( FILENAME, 5, index(FILENAME,".")-5 ) "\" )";  \
}                                                                            \
                                                                             \
/^[A-Za-z0-9_]+ *:=/ && FILENAME != "lib/init.g" {                           \
    if ( $1 in funcs )                                                       \
        print "clash " $1 " in " funcs[$1] " and " FILENAME > "/dev/stderr"; \
    funcs[$1] = FILENAME;                                                    \
    if ( length( line ", " $1 ) <= 77 && line !~ /^AUTO/ ) {                 \
        line = line ", " $1;                                                 \
    }                                                                        \
    else {                                                                   \
        print line ",";                                                      \
        line = "  " $1;                                                      \
    }                                                                        \
}                                                                            \
                                                                             \
END {                                                                        \
    if ( line != "" && line !~ /^AUTO/ )                                     \
        print line " );\n";                                                  \
}' lib/*.g grp/*.grp two/twogp.grp thr/thrgp.grp tbl/ctadmin.tbl tbl/ctprimar.tbl tom/tmprimar.tom sml/*.sml > lib/init.new
mv lib/init.g lib/init.g~
mv lib/init.new lib/init.g
diff -u lib/init.g~ lib/init.g
