Tue Oct 6 16:18:10 1998 Kaveh R. Ghazi * key-list.cc (output_keyword_blank_entries): Output get_fill_default() in the blank entries of keywords as a trailing list of initializers. * options.cc: Add support for fill_default. * options.h: Likewise. * options.icc: Likewise. * version.cc: Update to indicate forked version. diff -rup orig/gperf-2.7/src/key-list.cc gperf-2.7/src/key-list.cc --- orig/gperf-2.7/src/key-list.cc Wed Apr 15 18:02:51 1998 +++ gperf-2.7/src/key-list.cc Tue Oct 6 15:38:54 1998 @@ -1069,7 +1069,7 @@ output_keyword_blank_entries (int count, printf (", "); } if (option[TYPE]) - printf ("{\"\"}"); + printf ("{\"\"%s}", option.get_fill_default()); else printf ("\"\""); column++; diff -rup orig/gperf-2.7/src/options.cc gperf-2.7/src/options.cc --- orig/gperf-2.7/src/options.cc Sat May 2 06:35:16 1998 +++ gperf-2.7/src/options.cc Tue Oct 6 15:20:03 1998 @@ -40,6 +40,9 @@ static const int DEFAULT_JUMP_VALUE = 5; /* Default name for generated lookup function. */ static const char *const DEFAULT_NAME = "in_word_set"; +/* Default filler for keyword table. */ +static const char *const DEFAULT_FILL = ""; + /* Default name for the key component. */ static const char *const DEFAULT_KEY = "name"; @@ -66,6 +69,7 @@ int Options::argument_count; int Options::iterations; char **Options::argument_vector; const char *Options::function_name; +const char *Options::fill_default; const char *Options::key_name; const char *Options::class_name; const char *Options::hash_name; @@ -265,6 +269,7 @@ Options::Options (void) jump = DEFAULT_JUMP_VALUE; option_word = DEFAULTCHARS | C; function_name = DEFAULT_NAME; + fill_default = DEFAULT_FILL; key_name = DEFAULT_KEY; hash_name = DEFAULT_HASH_NAME; wordlist_name = DEFAULT_WORDLIST_NAME; @@ -306,6 +311,7 @@ Options::~Options (void) "\nSEVENBIT is....: %s" "\niterations = %d" "\nlookup function name = %s" + "\nfill default = %s" "\nhash function name = %s" "\nword list name = %s" "\nkey name = %s" @@ -336,7 +342,7 @@ Options::~Options (void) option_word & INCLUDE ? "enabled" : "disabled", option_word & SEVENBIT ? "enabled" : "disabled", iterations, - function_name, hash_name, wordlist_name, key_name, + function_name, fill_default, hash_name, wordlist_name, key_name, jump, size - 1, initial_asso_value, delimiters, total_switches); if (option_word & ALLCHARS) fprintf (stderr, "all characters are used in the hash function\n"); @@ -379,6 +385,7 @@ static const struct option long_options[ { "compare-strlen", no_argument, 0, 'l' }, { "duplicates", no_argument, 0, 'D' }, { "fast", required_argument, 0, 'f' }, + { "fill-default", required_argument, 0, 'F' }, { "initial-asso", required_argument, 0, 'i' }, { "jump", required_argument, 0, 'j' }, { "no-strlen", no_argument, 0, 'n' }, @@ -403,7 +410,7 @@ Options::operator() (int argc, char *arg while ((option_char = getopt_long (argument_count, argument_vector, - "adcCDe:Ef:gGhH:i:Ij:k:K:lL:nN:oprs:S:tTvW:Z:7", + "adcCDe:Ef:F:gGhH:i:Ij:k:K:lL:nN:oprs:S:tTvW:Z:7", long_options, (int *)0)) != -1) { @@ -575,6 +582,11 @@ Options::operator() (int argc, char *arg case 'N': /* Make generated lookup function name be optarg */ { function_name = /*getopt*/optarg; + break; + } + case 'F': /* Make fill_default be optarg */ + { + fill_default = /*getopt*/optarg; break; } case 'o': /* Order input by frequency of key set occurrence. */ diff -rup orig/gperf-2.7/src/options.h gperf-2.7/src/options.h --- orig/gperf-2.7/src/options.h Tue Apr 14 06:55:28 1998 +++ gperf-2.7/src/options.h Tue Oct 6 15:12:46 1998 @@ -97,6 +97,7 @@ public: static int initial_value (void); static int get_total_switches (void); static const char *get_function_name (void); + static const char *get_fill_default (void); static const char *get_key_name (void); static const char *get_class_name (void); static const char *get_hash_name (void); @@ -115,6 +116,7 @@ private: static int iterations; /* Amount to iterate when a collision occurs. */ static char **argument_vector; /* Stores a pointer to command-line vector. */ static const char *function_name; /* Names used for generated lookup function. */ + static const char *fill_default; /* Expression used to assign default values in keyword table. */ static const char *key_name; /* Name used for keyword key. */ static const char *class_name; /* Name used for generated C++ class. */ static const char *hash_name; /* Name used for generated hash function. */ diff -rup orig/gperf-2.7/src/options.icc gperf-2.7/src/options.icc --- orig/gperf-2.7/src/options.icc Sat Mar 21 07:51:17 1998 +++ gperf-2.7/src/options.icc Tue Oct 6 15:27:36 1998 @@ -110,6 +110,14 @@ Options::get_function_name (void) return function_name; } +/* Returns the fill default. */ +INLINE const char * +Options::get_fill_default (void) +{ + T (Trace t ("Options::get_fill_default");) + return fill_default; +} + /* Returns the keyword key name. */ INLINE const char * Options::get_key_name (void) diff -rup orig/gperf-2.7/src/version.cc gperf-2.7/src/version.cc --- orig/gperf-2.7/src/version.cc Sat May 2 06:29:43 1998 +++ gperf-2.7/src/version.cc Tue Oct 6 16:04:56 1998 @@ -19,4 +19,4 @@ You should have received a copy of the G along with GNU GPERF; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111, USA. */ -const char *version_string = "2.7"; +const char *version_string = "2.7.1 (19981006 egcs)";