X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=chiark-tcl.git;a=blobdiff_plain;f=base%2Ftcmdifgen;h=4b675968217e6d0f09dc6dfa2339749551db37d9;hp=d5e662234ddba0951fb59b300469b22a3e9821d3;hb=da1c2c3cbb87a600f19e250f93ef9fa4f89844fc;hpb=82f88c53ddb84e42c770c23feb9bb0ee18341188;ds=sidebyside diff --git a/base/tcmdifgen b/base/tcmdifgen index d5e6622..4b67596 100755 --- a/base/tcmdifgen +++ b/base/tcmdifgen @@ -56,7 +56,7 @@ # Arranges for generated .h files to #include the specified # file. C-INCLUDE-SPECIFIER should include the <..> or "..". # -# Table TABLENAME C-ENTRY-TYPE +# Table [*]TABLENAME C-ENTRY-TYPE # Starts a table of commands or subcommands. The generated .h # will contain a definition of C-ENTRY-TYPE containing # const char *name; @@ -89,6 +89,10 @@ # arguments, processes the command, and sets any result, as # applicable. # +# `*' should be used if the table name is not useful for error +# messages. It suppresses `TABLENAME ' from the front of the +# autogenerated argument parsing error strings. +# # ExtraEntry C-ENTRY-TYPE # Introduces a section of additional C code which will be inserted # into the definition of C-ENTRY-TYPE by `Table'. The C @@ -178,11 +182,12 @@ sub parse ($$) { unshift @i, $this_indent; } - if (@i==0 && m/^Table\s+(\w+)\s+(\w+)$/) { + if (@i==0 && m/^Table\s+(\*?)(\w+)\s+(\w+)$/) { zilch(); - $c_table= $1; - $table_x{$c_table}{C}= $2; - $entrytype_x{$2}= '' unless exists $entrytype_x{$2}; + $c_table= $2; + $table_x{$c_table}{T}= $1; + $table_x{$c_table}{C}= $3; + $entrytype_x{$3}= '' unless exists $entrytype_x{$3}; } elsif (@i==0 && m/^Untabled$/) { zilch(); $c_table= ''; @@ -291,7 +296,8 @@ foreach $c_table (sort keys %tables) { $any_eerr= 0; $any_eargc= 0; $pa_hint= ''; - $pa_hint .= "$c_table " if length $c_table; + $pa_hint .= "$c_table " if length $c_table && + !length $table_x{$c_table}{T}; $pa_hint.= $c_entry; foreach $arg (@{ $r_entry->{A} }) { $n= $arg->{N};