+Mon May 23 11:57:31 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ *sfm-read.c: Fixed some bugs regarding long string continuation
+ records, which the previous fix uncovered.
+
+Sat May 21 12:48:34 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * sfm-read.c, sfmP.h: Allow reading of system files when the
+ case_size value in the header is -1. Also changed some Errors to
+ Warnings when reading system files.
+
+Tue May 17 21:00:57 2005 Ben Pfaff <blp@gnu.org>
+
+ * data-list.c: (data_list_trns_free) Don't free the argument
+ because cancel_transformations() will do that itself.
+ (data_list_source_destroy) Destroy the argument to
+ data_list_trns_free(), because it no longer does so itself.
+
+Tue May 17 18:29:35 2005 Ben Pfaff <blp@gnu.org>
+
+ * data-out.c: (format_and_round) Don't output leading `-' if value
+ rounds to zero.
+
+Tue May 17 00:06:43 2005 Ben Pfaff <blp@gnu.org>
+
+ Fix PR 11119.
+
+ * som.c: (output_encodings) If some cell in the table won't fit
+ with the horizontal or vertical headers, cancel those headers.
+
+ * som.h: (struct som_table_class) Add fits_width, fits_length,
+ set_headers members.
+
+ * tab.c: (tabi_fits_width) New function.
+ (tabi_fits_length) New function.
+ (tabi_set_headers) New function.
+ (global var tab_table_class) Add the new functions as appropriate
+ members.
+
+Mon May 16 22:34:06 2005 Ben Pfaff <blp@gnu.org>
+
+ Fix rest of PR 13054.
+
+ * format.def: Fix EDATE, SDATE, ADATE, JDATE, QYR, MOYR, WKYR,
+ DATETIME, TIME system/portable file values.
+
+Mon May 16 22:31:15 2005 Ben Pfaff <blp@gnu.org>
+
+ * data-list.c: (parse_free) Use make_input_format().
+
+ * data-out.c: (num_to_string) Use make_output_format().
+
+ * dictionary.c: (dict_create_var) Ditto.
+
+ * format.c: (global var f8_2) New var.
+ (make_input_format) New function.
+ (make_output_format) New function.
+
+ * get.c: (cmd_match_files) Use make_output_format().
+
+ * list.q: (cmd_list) Ditto.
+
+ * matrix-data.c: Ditto.
+
+ * sfm-read.c: (parse_format_spec) Check output specifier
+ thoroughly.
+
+ * tab.c: (tab_float) Use make_output_format().
+
+Sun May 15 23:38:10 2005 Ben Pfaff <blp@gnu.org>
+
+ Fix more of PR 13054.
+
+ * format.def: FMT_A should allow 255-character output. FMT_AHEX
+ should allow 510-character input and output.
+
+ * data-out.c: (num_to_string) Get rid of NEW_STYLE option.
+ (convert_E) Handle non-finite values.
+ (try_F) Rewrite.
+ (format_and_round) New function.
+ (convert_infinite) New function used by try_F() and convert_E().
+
+Sun May 15 23:36:55 2005 Ben Pfaff <blp@gnu.org>
+
+ Regularize string and buffer function names so that they make some
+ kind of sense.
+
+ * str.c: (mm_reverse) Rename buf_reverse(). Update all
+ references.
+ (mm_find_reverse) Rename buf_find_reverse(). Update all
+ references.
+ (mm_case_compare) Rename buf_compare_case(). Update all
+ references.
+ (st_compare_pad) Rename buf_compare_rpad(). Update all
+ references.
+ (str_compare_rpad) New function.
+ (st_bare_pad_copy) Rename buf_copy_str_rpad(). Update all
+ references.
+ (buf_copy_str_lpad) New function.
+ (st_bare_pad_len_copy) Rename buf_copy_rpad(). Update all
+ references.
+ (st_pad_copy) Rename str_copy_rpad(). Update all references.
+ (st_trim_copy) Rename str_copy_trunc(). Update all references.
+ (st_uppercase) Renamed str_uppercase(). Update all references.
+
+Sat May 14 08:22:26 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * dfm-read.c: Fixed polarity of test in dfm-close-reader. Closes
+ Bug #13082
+
+Tue May 10 20:08:18 2005 Ben Pfaff <blp@gnu.org>
+
+ * data-in.c: (data_in) Add assertion to check input specifier.
+
+ * data-out.c: (data_out) Add assertion to check output specifier.
+
+Tue May 10 19:56:35 2005 Ben Pfaff <blp@gnu.org>
+
+ Start to fix PR 13054.
+
+ * format.c: (check_input_specifier) Improve error message.
+ (check_input_specifier) Check F, COMMA, and DOLLAR formats for
+ valid decimal places.
+ (check_output_specifier) Ditto (but different criteria).
+ (convert_fmt_ItoO) Assert valid input and output specifiers.
+ Also, if input specifier has *any* decimal places, make the output
+ specifier 1 place wider.
+
+Mon May 9 07:14:29 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * sysfile-info.c: Fixed bug [# 13024 ]
+
+Sun May 8 13:52:12 2005 Ben Pfaff <blp@gnu.org>
+
+ "Fix" PR 13021 by disabling FILE TYPE. Eventually, we should
+ actually implement it.
+
+ * command.c: (FILE_TYPE_okay) Always return 1.
+
+ * command.def: Change FILE TYPE, END FILE TYPE into UNIMPL.
+
+ * file-type.c: Add prototypes to get rid of warnings.
+
+Sun May 8 08:08:07 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * barchart.c box-whisker.c cartesian.c piechart.c plot-hist.c: Fixed
+ more ISO/IEC 9899:1990 conformance issues.
+
+Wed May 4 23:54:02 2005 Ben Pfaff <blp@gnu.org>
+
+ Fix PR 12948. See also new test in
+ tests/bugs/match-file-scratch.sh.
+
+ * get.c: (mtf_merge_dictionary) Don't compact dictionary because
+ that deletes scratch variables that someone else might be using,
+ and because we can't reassign our sources' value indexes.
+ Instead, simply don't copy scratch variables into the master
+ dictionary.
+
+ * dictionary.c: (dict_compact_values) Delete variables from the
+ dictionary passed in, not from default_dict (!).
+
+Tue May 3 22:25:17 2005 Ben Pfaff <blp@gnu.org>
+
+ Improve hash.c comments, error-checking.
+
+ * hash.c: (struct hsh_table) [NDEBUG] Add hash_ordered member.
+ (hsh_create) size == 0 should *not* return NULL! Set
+ hash_ordered.
+ (hsh_clear) Set hash_ordered.
+ (locate_matching_entry) Check hash_ordered.
+ (hsh_rehash) Rename rehash(). Add assertion. Set hash_ordered.
+ (hsh_data) Set hash_ordered. Add const-ness to return value and
+ update all callers.
+ (hsh_sort) Ditto.
+
+Wed May 4 08:50:11 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * casefile.c: Removed unnecessary #include <valgrind/valgrind.h>
+
+Tue May 3 19:14:48 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * copyleft.c: Updated copyright date.
+
+ * Makefile.am: Removed erroneous explicit "-lplot"
+
+ * examine.q oneway.q: Made these files conform to ISO/IEC 9899:1990
+
+Tue May 3 16:20:31 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * command.c command.def: Added description string for unimplemented commands.
+
+ * oneway.q: Sorted the hash tables before shipping out the results. Closes
+ bug [#12931].
+
+Mon May 2 23:45:01 2005 Ben Pfaff <blp@gnu.org>
+
+ Code improvements.
+
+ * data-list.c: (parse_fixed) Use lex_end_of_command().
+ (parse_free) Ditto.
+ (cmd_repeating_data) Set cont_end.num in right situations.
+ (parse_repeating_data) Remove redundant test.
+
+Mon May 2 23:37:19 2005 Ben Pfaff <blp@gnu.org>
+
+ Partial fix for PR 12859.
+
+ * data-list.c: (cmd_data_list) Add transformation properly in
+ vfm_source == NULL case.
+
+Mon May 2 23:27:28 2005 Ben Pfaff <blp@gnu.org>
+
+ * lexer.c: (lex_error) Improve error messages.
+
+Mon May 2 22:28:17 2005 Ben Pfaff <blp@gnu.org>
+
+ * get.c: (cmd_match_files) Check token type before trying to match
+ tokid. Fixes PR 12923.
+
+Mon May 2 22:16:51 2005 Ben Pfaff <blp@gnu.org>
+
+ * flip.c: [HAVE_SYS_TYPES_H] Include <sys/types.h>. Fixes PR
+ 12789.
+
+Mon May 2 22:02:52 2005 Ben Pfaff <blp@gnu.org>
+
+ * expressions/generate.pl: (get_token) Make use of /g
+ backward-compatible with Perl 5.6.1.
+
+Sun May 1 23:00:19 2005 Ben Pfaff <blp@gnu.org>
+
+ * var-display.c: (cmd_variable_alignment) Fix memory leak.
+ (cmd_variable_level) Ditto.
+
+Sun May 1 22:49:04 2005 Ben Pfaff <blp@gnu.org>
+
+ Hash table had buggy deletion function. The fix required changing
+ other functions to do probing in the required order.
+
+ * hash.c: (locate_matching_entry) Rewrite and change interface.
+ (hsh_rehash) Rewrite to use locate_matching_entry().
+ (hsh_probe) Ditto.
+ (hsh_find) Ditto.
+ (hsh_delete) Ditto. Also, fix stupid bugs.
+
+Sun May 1 22:24:58 2005 Ben Pfaff <blp@gnu.org>
+
+ * dictionary.c: (dict_clone) Properly copy vectors.
+
+Sun May 1 22:07:58 2005 Ben Pfaff <blp@gnu.org>
+
+ New implementation of long variable names. Each variable has a
+ "normal" name, which may be up to 64 bytes long and which is used
+ for all normal operations. Variables may have a "short" name,
+ which is limited to 8 bytes and used only for system and portable
+ file input and output.
+
+ Make tokid case-preserving. Update most uses of tokid to treat it
+ case-insensitively.
+
+ Update many commands to deal with long variable names.
+
+ * autorecode.c: (cmd_autorecode) Use strcasecmp() instead of strcmp().
+
+ * command.c: (cmd_parse) Ditto.
+ (match_strings) Use toupper() before comparing characters.
+ (conflicting_3char_prefixes) Use mm_case_compare() instead of
+ memcmp().
+ (cmd_match_words) Ditto.
+
+ * compute.c: (lvalue_parse) Use st_trim_copy() instead of
+ strncpy().
+
+ * count.c: (struct cnt_var_info) Change n[] to fit long var name.
+ Use st_trim_copy() instead of strcpy().
+
+ * data-in.c: (parse_enum) Use mm_case_compare() instead of
+ memcmp().
+
+ * data-list.c: (struct dls_var_spec) Change name[] to fit long var
+ name.
+ (parse_free) Use st_trim_copy() instead of strcpy().
+
+ * descript.c: (struct dsc_var) Change z_name[] to fit long var
+ name.
+ (try_name) Use strcasecmp() instead of strcmp().
+ (generate_z_varname) Use st_trim_copy() instead of strcpy().
+ (descriptives_compare_dsc_vars) Use strcasecmp() instead of
+ strcmp().
+
+ * dictionary.c: (struct dictionary) Removed `long_name_tab'
+ member.
+ (compare_long_names) Removed.
+ (hash_long_name) Removed.
+ (dict_create) Don't initialize `long_name_tab' member.
+ (dict_clone) Copy short names into new dictionary.
+ (dict_clear) Don't clear `long_name_tab' member.
+ (dict_get_varname_block) Removed.
+ (dict_add_longvar_entry) Removed.
+ (free_nte) Removed.
+ (dict_destroy) Don't destroy `long_name_tab' member.
+ (dict_create_var_from_short) Removed.
+ (dict_create_var_x) Removed.
+ (dict_create_var) Get rid of longname handling.
+ Clear short name.
+ (dict_clone_var) Get rid of longname parameter and longname
+ handling.
+ (dict_lookup_var) Get rid of longname handling.
+ (dict_reorder_var) New function.
+ (dict_rename_var) Clear short name.
+ (dict_rename_vars) Get rid of longname handling. Clear short
+ names.
+ (dict_create_vector) Support long vector names.
+ (dict_lookup_vector) Use strcasecmp() instead of strcmp().
+ (quasi_base27) Removed.
+ (make_short_name) Removed.
+ (compare_strings) New function.
+ (hash_string) New function.
+ (dict_assign_short_names) New function.
+
+ * file-handle.q: (get_handle_with_name) Use strcasecmp() instead
+ of strcmp().
+ (get_handle_for_filename) Support long handle names.
+
+ * file-type.c: (struct col_spec) Make `name' fit long var names.
+ (cmd_file_type) Use strcasecmp() instead of strcmp().
+
+ * flip.c: (make_new_var) Rewrite.
+ (flip_sink_write) Use st_trim_copy() instead of strncpy().
+
+ * format.c: (parse_format_specifier_name) Use mm_case_compare()
+ instead of memcmp().
+
+ * get.c: (cmd_save_internal) Rephrase.
+ (rename_variables) Drop test for identical variable name.
+ (struct mtf_proc) Change `first', `last' to fit long var name.
+
+ * hash.c: (hsh_hash_case_string) New function for case-insensitive
+ string hashing.
+
+ * lexer.c: (restore_token) Use st_trim_copy() instead of
+ strncpy().
+ (lex_get) Don't uppercase string when copying into tokid.
+ (lex_put_back_id) Use st_trim_copy() instead of
+ strncpy().
+
+ * list.q: (determine_layout) Consider length of variable names in
+ choosing vertical layout.
+
+ * matrix-data.c: (cmd_matrix_data) Use strcasecmp() instead of
+ strcmp().
+ (string_to_content_type) Ditto.
+
+ * modify-vars.c: (compare_variables_given_ordering) Ditto.
+ (struct var_renaming) Change `new_name' to fit long var name.
+ (compare_var_renaming_by_new_name) Use strcasecmp() instead of
+ strcmp().
+
+ * pfm-read.c: (read_variables) Disallow system variables in system
+ files.
+ (write_variables) Call dict_assign_short_names() and use
+ short_name[] members.
+
+ * repeat.c: (internal_cmd_do_repeat) Use strcasecmp() instead of
+ strcmp().
+
+ * sfm-read.c: (sfm_open_reader) Rewrite code for long variable
+ map. Reorder variables into same order as long variable map.
+ (read_variables) Set short name.
+
+ * sfm-write.c: (sfm_open_writer) Call dict_assign_short_names().
+ (write_variable) Use st_bare_pad_copy().
+ (write_longvar_table) Rewrite.
+
+ * str.c: (mm_case_compare) New function.
+
+ * sysfile-info.c: (compare_vectors_by_name) Use strcasecmp()
+ instead of strcmp().
+
+ * t-test.q: (tts_custom_groups) Remove redundant test.
+ (tts_custom_pairs) Ditto.
+
+ * var.h: (struct variable) Change `name' to fit long var names.
+ Remove `longname'. Add `short_name' member. Reorder some
+ variables.
+ (struct name_table_entry) Removed.
+ (struct vector) Change `name' to fit long vector names.
+
+ * vars-atr.c: (var_is_valid_name) Allow long var names.
+ (compare_var_names) Use strcasecmp() instead of strcmp().
+ (compare_var_ptr_names) Ditto.
+ (hash_var_name) Use hsh_hash_case_string().
+ (hash_var_ptr_name) Ditto.
+ (var_set_short_name) New function.
+ (var_clear_short_name) New function.
+ (var_set_short_name_suffix) New function.
+
+ * vars-prs.c: (parse_DATA_LIST_vars) Support long names.
+ Use strcasecmp() instead of strcmp().
+ (struct array_var_set) Removed `longname_tab'.
+ (array_var_set_lookup_var_idx) Drop longname_tab support.
+ (array_var_set_destroy) Don't destroy `longname_tab'.
+ (var_set_create_from_array) Don't create `longname_tab'.
+
+ * vector.c: (cmd_vector) Use strcasecmp() instead of strcmp().
+ Support long names.
+
+ * expressions/parse.c: (word_matches) Use mm_case_compare()
+ instead of memcmp().
+ (compare_strings) New function.
+ (lookup_function) Use compare_strings() instead of strcmp().
+
+Sun May 1 22:07:43 2005 Ben Pfaff <blp@gnu.org>
+
+ * algorithm.c: (move_element) New function.
+
+Sun May 1 22:05:35 2005 Ben Pfaff <blp@gnu.org>
+
+ * aggregate.c: (parse_aggregate_functions) Always initialize
+ destvar.
+
+Sun May 1 22:03:47 2005 Ben Pfaff <blp@gnu.org>
+
+ * aggregate.c: (cmd_aggregate) Use dict_clone_var_assert().
+
+ * dictionary.c: (dict_clone) Ditto.
+ (dict_clone_var_assert) New function.
+
+ * get.c: (mtf_merge_dictionary) Use dict_clone_var_assert().
+
+Sun May 1 15:05:54 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * error.c: Added a string for the compiler version to the
+ request_bug_report_and_abort function.
+
+ * groff_font.c, font.c: Removed manpage(1) style references from
+ comments, because RMS frowns upon them.
+
+Thu Apr 28 18:52:06 2005 Ben Pfaff <blp@gnu.org>
+
+ * expressions/parse.c: Improve previous fix for PR 12858 (LAG).
+
+Fri Apr 29 09:28:00 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * expressions/parse.c: Added handler for OP_LAG_Vn and OP_LAG_Vs.
+ Fixed bug [#12858] .
+
+Wed Apr 27 12:42:34 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * loop.c recode.c repeat.c: Fixed a couple of instances of SHORT_NAME_LEN
+ which should be LONG_NAME_LEN
+