Fixed some problems which prevented compiling on Debian woody.
[pspp-builds.git] / src / ChangeLog
index cb998be23e28a02217f7549b03ee7784c0cda5df..36bb152fed0589590c89116efa2dc30efbc1f245 100644 (file)
@@ -1,3 +1,393 @@
+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
+
+Wed Apr 27 07:43:50 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+       * command.def echo.c:  Added the ECHO command.
+
+Mon Apr 25 22:55:59 2005  Ben Pfaff  <blp@gnu.org>
+
+       Finish fixing MATCH FILES (PR 11677).
+
+       * get.c: (trim_dictionary) Rewrite in terms of drop_variables(),
+       keep_variables(), rename_variables().
+       (drop_variables) New function.
+       (keep_variables) New function.
+       (struct mtf_file) Rename `in' to `in_name'.  Add `in_var'.
+       (cmd_match_files) Deal with in_var.  Use drop_variables(),
+       keep_variables().  When IN is specified, require BY.  Set master
+       variables after master dictionary is complete.  Add IN variables
+       after master dictionary is complete.
+       (mtf_free_file) Free `in_name'.
+       (mtf_delete_file_in_place) Set in_var value to 0.
+       (mtf_read_nonactive_records)  Rephrase.
+       (mtf_processing) Support IN.  Rephrase.  Fix bugs.
+       (mtf_merge_dictionary) Don't set master variables; we do that
+       later now.
+       (get_master) Don't insist that there's a master variable.
+       
+Mon Apr 25 22:55:22 2005  Ben Pfaff  <blp@gnu.org>
+
+       Kluge to make some variable renaming sort of work.
+       Needs real fix.
+
+       * dictionary.c: (dict_rename_var) Call dict_add_longvar_entry().
+
+Mon Apr 25 22:52:28 2005  Ben Pfaff  <blp@gnu.org>
+
+       Add functions for comparing sets of variables between cases.
+       Use the functions.
+
+       * case.c: (case_compare) New function.
+       (case_compare_2dict) New function.
+       
+       * aggregate.c: (struct agr_proc) Remove `prev_break' member.  Add
+       `break_case'.
+       (cmd_aggregate) Nullify break_case.  Don't call
+       initialize_aggregate_info().
+       (agr_destroy) Destroy break_case.
+       (aggregate_single_case) Rewrite.  Use case_compare().
+       (dump_aggregate_info) Copy from break_case into output.
+       (initialize_aggregate_info) Copy break_case from input.
+
+       * get.c: (mtf_compare_BY_values) Use case_compare_2dict().
+
+       * vfm.c: (equal_splits) Use case_compare().
+
+Sat Apr 23 17:01:04 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+       * dictionary.c vars-prs.c sfm-write.c: Fixed some memory leaks
+
+Sun Apr 17 23:08:15 2005  Ben Pfaff  <blp@gnu.org>
+
+       Start work on fixing MATCH FILES.
+
+       * get.c: (enum operation) Remove OP_MATCH.
+       (trim_dictionary) Change return value to bool.  Don't support
+       OP_MATCH.
+       (struct mtf_file) Remove `first', `last' members.
+       (struct mtf_proc) Add `first', `last' members.  Change mtf_case
+       from `struct ccase *' to `struct ccase'.  Remove `by' member.
+       (cmd_match_files) Essentially rewrite.
+       (mtf_free) Don't free `by' member.  Destroy `mtf_case' member.
+       (mtf_read_nonactive_records) mtf_ parameter is not unused.
+       (mtf_processing) Ditto.  Also rephrase some code.
+       (mtf_merge_dictionary) Rewrite for easy comprehension.  
+
+Sun Apr 17 23:06:00 2005  Ben Pfaff  <blp@gnu.org>
+
+       * matrix-data.c: (wr_output_data) [DEBUGGING] Fix compilation
+       error.
+
+       * q2c.c: (dump_token) [DEBUGGING] Fix compilation error.
+       
+Thu Apr 14 2005 John Darrington
+
+        * var-display.c: New file.
+
+       * format.h var.h sfm-read.c sfm-write.c dictionary.c :  Added 
+         display_width, measure and alignment parameters to variables.
+
+       * aggregate.c command.def compute.c count.c data-list.c descript.c
+         dictionary.c dictionary.h expr-prs.c file-type.c flip.c get.c 
+         lexer.c lexer.h loop.c modify-vars.c pfm-read.c recode.c repeat.c 
+         sfm-read.c sfm-write.c sfm-write.h sfmP.h val-labs.c val.h var.h 
+         vars-prs.c vector.c :  
+             - Replaced literal constants representing maximum variable name 
+               length with macro definitions. 
+             - Added support for long variable names.
+             - Changed lexer such that it no longer makes tokens upper
+               case, but relies upon case insensitive behaviour of commands.
+
+Mon Apr  4 22:27:34 2005  Ben Pfaff  <blp@gnu.org>
+
+       * aggregate.c: (parse_aggregate_functions) If dict_create_var()
+       fails, don't dereference the resulting null pointer (PR 12427).
+       Also, fix double free error.
+
+Sat Mar 19 23:06:02 2005  Ben Pfaff  <blp@gnu.org>
+
+       * aggregate.c: (parse_aggregate_functions) Fix N_NO_VARS format.
+       (accumulate_aggregate_info) Set int1 to 1 for SUM.
+       (dump_aggregate_info) Only make SUM non-missing if there was at
+       least one variate.
+
+Sat Mar 19 14:48:19 2005  Ben Pfaff  <blp@gnu.org>
+
+       * aggregate.c: (dump_aggregate_info) Properly test whether the
+       destination variable is numeric, when making the result
+       system-missing for columnwise missing values.
+
 Mon Mar 14 21:52:34 2005  Ben Pfaff  <blp@gnu.org>
 
        * misc.h: Remove GCC specializations.