X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2FChangeLog;h=b50b37e50f6bf4b3d10cd2d50c593279036ca4c4;hb=5ea5547d895d8b0930868378f3eeed39bb3ec731;hp=0a3dd416eabe906651e5909a660e5c32ca3bb241;hpb=20fd432b34d65999f06fabfa8e9c3f5efbac41bd;p=pspp-builds.git diff --git a/src/ChangeLog b/src/ChangeLog index 0a3dd416..b50b37e5 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,1397 @@ +Sat Jul 30 22:43:57 2005 Ben Pfaff + + * file-handle.q: (cmd_file_handle) Fix msg() bug found by + -Wformat. + +Sat Jul 30 22:41:44 2005 Ben Pfaff + + * data-in.c: (parse_Z) [WORDS_BIGENDIAN] Don't declare buf[], to + avoid "unused variable" warning. + +Sat Jul 30 22:38:46 2005 Ben Pfaff + + * command.c: (find_word) Cast `char' to `unsigned char' before + passing to isspace(). + +Sat Jul 30 22:36:29 2005 Ben Pfaff + + * case.c: (case_compare) Implement as delegating to + case_compare_2dict(). + +Sat Jul 30 22:34:18 2005 Ben Pfaff + + * algorithm.c: Inclusion of is unneeded. + +Sat Jul 30 22:01:32 2005 Ben Pfaff + + * Make.build: Don't append -ansi to AM_CFLAGS for GCC. Using + -ansi changes the behavior of header files significantly. + It causes __STRICT_ANSI__ to be defined, and some headers + interpret that as cause to e.g. not use `long long' or + __attribute__. The former example is bad when off_t is supposed + to be `long long'. + +Sun Jul 24 20:26:59 2005 Ben Pfaff + + Get rid of dependency on libgmp by writing our own routine for + floating-point base conversion. + + * pfm-write.c: (write_float) Rewrote. + (write_int) Rewrote. + (pow30_nonnegative) New function. + (pow30) New function. + (trig_to_char) New function. + (format_trig_digits) New function. + (recurse_format_trig_int) New function. + (format_trig_int) New function. + (should_round_up) New function. + (try_round_up) New function. + (format_trig_double) New function. + +Sun Jul 24 18:49:20 2005 Ben Pfaff + + * data-in.c: (parse_numeric) Allow "1+23" even for F format, for + compatibility. + +Sun Jul 24 18:47:37 2005 Ben Pfaff + + * pfm-read.c: (read_version_data) Read and ignore author field. + +Wed Jul 6 20:44:27 2005 Ben Pfaff + + * get.c: (mtf_processing) Don't assume that + mtf_compare_BY_values() always returns -1, 0, or 1. Actually, it + returns a negative, zero, or positive result. Fixes MATCH FILES + bug on Mac OS X reported by "Marshall DeBerry" . + +Mon Jul 4 18:01:15 2005 Ben Pfaff + + * flip.c: [HAVE_SYS_TYPES_H] Really include . The + preprocessor test for sys/types.h was accidentally inverted. This + was bug 12789. + +Sun Jul 3 22:47:39 2005 Ben Pfaff + + * get.c: (cmd_match_files) Fix memory leak on `by' and on + `vfm_source'. + + * getline.c: [HAVE_LIBREADLINE] (read_console) Fix memory leak on + `line'. + + * vfm.c: (close_active_file) Remove unnecessary test. + +Sun Jul 3 21:45:32 2005 Ben Pfaff + + Fix NDEBUG compile errors. + + * hash.h: Needed explicit #include . + + * linked-list.c: (ll_next) First arg is UNUSED when NDEBUG is + defined. + +Sun Jun 12 23:44:38 2005 Ben Pfaff + + Implement embedding for PostScript driver. Fixes bug 12970. + + * ascii.c: Fix compiler warnings. + + * html.c: Ditto. + + * chart.h: Add `file' member. + + * output.h: (struct outp_class) initialise_chart, finalise_chart + should take outp_driver *, not outp_class *. Update all + references. + + * plot-chart.c: (chart_create) Fix segfault when there are no + output drivers at all. + (chart_submit) Call d->class->finalise_chart. + + * postscript.c: (ps_open_page) Set cp_y to 0. + (ps_submit) New function. + (ps_chart_initialise) Implement. + (ps_chart_finalise) Implement. + (static var postscript_class) Add ps_submit. + (static var epsf_class) Add ps_submit. + + +Sun Jun 12 14:54:40 2005 Ben Pfaff + + Did some more work on bug 12859 and then realized that a *good* + solution would require some fundamental restructuring. For now, + I'm marking REPEATING DATA unimplemented, and then we can revisit + it post-0.4.0. + + * command.def: Make REPEATING DATA unimplemented. + + * data-list.c: (cmd_repeating_data) Assume inline file is 80 + characters wide. + (realize_value) Revert previous changes; no longer needed. + Updated all callers. + + * error.c: (err_hcf) Set nfile_loc, mfile_loc to 0 after freeing + file_loc, to avoid bad references later. + + * str.c: Fix typo. + +Tue Jun 7 00:14:09 2005 Ben Pfaff + + Make some code tolerant of reentry. Should not be needed if other + code is correct but it is good to be generally tolerant. + + * error.c: (err_hcf) Set file_loc to null after free(). + + * output.c: (outp_done) Similar changes. + + * str.c: (ds_destroy) Ditto. + +Tue Jun 7 00:10:20 2005 Ben Pfaff + + Continue work on bug 12859, plus some code cleanup. + + * data-list.c: (cmd_repeating_data) Replace `seen' bitmap by + boolean variables. Don't try to compute starts_end, cont_end for + inline file. Calculate length only after parsing variable + specifications. Add proper transformation to list. + (realize_value) If the rpd_num_or_var has no value, return new + DEFAULT_MEMBER argument (for use with inline file). + (repeating_data_trns_proc) Pass default values. + + * dfm-read.c: (dfm_close_reader) Only skip data if *not* still + open, and only if we actually started reading data. + +Sun Jun 5 18:39:36 2005 Ben Pfaff + + Fix bug 11894. + + * output.c: (outp_read_devices) Fix message. + +Fri May 27 12:34:43 WST 2005 John Darrington + + * sort-prs.[ch] (newfiles), aggregate.c, sort.[ch]: Separated the guts + of the sort algorithm from the parser for the SORT command. + + * rank.q: Added the parser for the RANK command. + +Thu May 26 12:29:21 2005 Ben Pfaff + + Fix bug 13192. + + * sort.c: (sort_parse_criteria) Only set *saw_direction if + saw_direction is non-null. Thanks to John Darrington for + reporting this bug. + +Tue May 24 21:52:55 2005 Ben Pfaff + + * get.c: (mtf_processing) Handle case of a lookup table as the + active file. Thanks to John Darrington for reporting this bug. + +Wed May 25 10:27:02 WST 2005 John Darrington + + * alloc.c alloc.h: (xcalloc) changed signature to imitate the + POSIX calloc function. + + * crosstabs.q get.c vars-prs.c: Updated calls to xcalloc to + reflect new signature. + + * sfm-read.c: Now much more robust in the face of badly formed + system files. + +Mon May 23 11:57:31 WST 2005 John Darrington + + *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 + + * 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 + + * 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 + + * data-out.c: (format_and_round) Don't output leading `-' if value + rounds to zero. + +Tue May 17 00:06:43 2005 Ben Pfaff + + Fix bug 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 + + Fix rest of bug 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 + + * 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 + + Fix more of bug 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 + + 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 + + * dfm-read.c: Fixed polarity of test in dfm-close-reader. Closes + Bug #13082 + +Tue May 10 20:08:18 2005 Ben Pfaff + + * 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 + + Start to fix bug 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 + + * sysfile-info.c: Fixed bug [# 13024 ] + +Sun May 8 13:52:12 2005 Ben Pfaff + + "Fix" bug 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 + + * 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 + + Fix bug 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 + + 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 + + * casefile.c: Removed unnecessary #include + +Tue May 3 19:14:48 WST 2005 John Darrington + + * 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 + + * 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 + + 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 + + Partial fix for bug 12859. + + * data-list.c: (cmd_data_list) Add transformation properly in + vfm_source == NULL case. + +Mon May 2 23:27:28 2005 Ben Pfaff + + * lexer.c: (lex_error) Improve error messages. + +Mon May 2 22:28:17 2005 Ben Pfaff + + * get.c: (cmd_match_files) Check token type before trying to match + tokid. Fixes bug 12923. + +Mon May 2 22:16:51 2005 Ben Pfaff + + * flip.c: [HAVE_SYS_TYPES_H] Include . Fixes bug + 12789. + +Mon May 2 22:02:52 2005 Ben Pfaff + + * 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 + + * var-display.c: (cmd_variable_alignment) Fix memory leak. + (cmd_variable_level) Ditto. + +Sun May 1 22:49:04 2005 Ben Pfaff + + 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 + + * dictionary.c: (dict_clone) Properly copy vectors. + +Sun May 1 22:07:58 2005 Ben Pfaff + + 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 + + * algorithm.c: (move_element) New function. + +Sun May 1 22:05:35 2005 Ben Pfaff + + * aggregate.c: (parse_aggregate_functions) Always initialize + destvar. + +Sun May 1 22:03:47 2005 Ben Pfaff + + * 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 + + * 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 + + * expressions/parse.c: Improve previous fix for bug 12858 (LAG). + +Fri Apr 29 09:28:00 WST 2005 John Darrington + + * 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 + + * 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 + + * command.def echo.c: Added the ECHO command. + +Mon Apr 25 22:55:59 2005 Ben Pfaff + + Finish fixing MATCH FILES (bug 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 + + 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 + + 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 + + * dictionary.c vars-prs.c sfm-write.c: Fixed some memory leaks + +Sun Apr 17 23:08:15 2005 Ben Pfaff + + 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 + + * 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 + + * aggregate.c: (parse_aggregate_functions) If dict_create_var() + fails, don't dereference the resulting null pointer (bug 12427). + Also, fix double free error. + +Sat Mar 19 23:06:02 2005 Ben Pfaff + + * 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 + + * 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 + + * misc.h: Remove GCC specializations. + +Mon Mar 14 21:07:23 2005 Ben Pfaff + + Make sort stable (bug 12313). + + * sort.c: Don't need to include some headers anymore. + (static var min_buffers) New variable. + (static var max_buffers) New variable. + (static var allow_internal_sort) New variable. + (cmd_sort_cases) Add test mode. + (sort_execute) Rephrase. + (do_internal_sort) Don't try internal sorting if + allow_internal_sort is set. + (struct external_sort) Renamed `initial_runs' to `runs' and + updated all references. + (macro MIN_BUFFER_TOTAL_SIZE_RECS) Removed. + (macro MIN_BUFFER_SIZE_BYTES) Removed. + (macro MIN_BUFFER_SIZE_RECS) Removed. + (compare_initial_runs) Removed. + (struct record_run) Add member `idx'. + (write_initial_runs) Pass increasing values to process_case() as + index. + (process_case) Add `idx' parameter and use it to initialize new + `idx' member. + (allocate_cases) Limit allocated buffers to max_buffers. + (compare_record_run) Use new `idx' member for last resort + comparison, for stability. + (end_run) Call casefile_sleep() on irs->casefile, to prevent + running out of file descriptors. + (struct merge_state) Removed. + (merge) Don't need to allocate cases. Always use MAX_MERGE_ORDER + unless we have fewer runs left. Always merge consecutive runs, + for stability. Return the final run. + (mod) Removed. + (choose_merge) New function. + (merge_once) Rewritten. + +Mon Mar 14 21:05:42 2005 Ben Pfaff + + * cmdline.c: (static var testing_mode) Move into + parse_command_line(). + +Mon Mar 14 21:05:13 2005 Ben Pfaff + + * algorithm.c: (remove_range) New function. + (remove_element) New function. + + * dictionary.c: (dict_delete_var) Use remove_element(). + + * flip.c: (cmd_flip) Ditto. + +Sun Mar 13 22:52:05 2005 Ben Pfaff + + * file-handle.q: (struct file_handle) `open_mode' should not be + const. + +Sun Mar 13 22:40:54 2005 Ben Pfaff + + First phase of making SORT CASES stable (bug 12313). + + * sort.c: (struct indexed_case) New structure. + (do_internal_sort) Rewrite to make internal sorting stable. + (compare_case_dblptrs) Removed. + (compare_indexed_cases) New function. + +Sun Mar 13 22:38:40 2005 Ben Pfaff + + Clean-ups. + + * casefile.c: (casereader_read_xfer_assert) New function. + + * dictionary.c: (dict_compact_case) New function. + + * flip.c: (struct flip_pgm) New member idx_to_fv. + (cmd_flip) Initialize idx_to_fv member. + (destroy_flip_pgm) Free idx_to_fv member. + (flip_sink_write) Use struct flip_pgm member instead of case_sink + member. + (flip_sink_write) Ditto. + + * vfm.c: (write_case) Use dict_compact_case() instead of + compact_case(). + (compact_case) Removed. + (storage_source_create) Removed `dict' parameter. All references + updated. + + * vfm.h: (struct case_source) Removed `value_cnt' member. All + references removed. + (struct case_sink) Removed `dict', `idx_to_fv' members. All + references removed. + +Sun Mar 13 22:35:55 2005 Ben Pfaff + + More AGGREGATE fixes. + + * aggregate.c: (accumulate_aggregate_info) Implement NMISS and + NUMISS for strings. Fix FOUT, POUT, FGT, FLT, FIN, FOUT for + strings. + (initialize_aggregate_info) Fix initialization for MIN, MAX for + strings. + +Sat Mar 12 23:26:21 2005 Ben Pfaff + + Start work on testing and debugging AGGREGATE. + + * aggregate.c: (cmd_aggregate) Use discrete bool variables instead + of a bit-map. Require proper subcommand ordering. Make OUTFILE + subcommand mandatory. + (parse_aggregate_functions) Check that PIN, POUT, FIN, FOUT + functions' arguments are in the correct order and swap them if + not. + (accumulate_aggregate_info) Make SUM include weights. Add various + string functions. + (dump_aggregate_info) Add various string functions. + (initialize_aggregate_info) Initialize int1 for MIN, MAX. + + * sort.c: (sort_parse_criteria) Add parameter for returning + whether any directions were specified. All callers updated. + +Sun Mar 13 14:54:27 WST 2005 John Darrington + + * t-test.q: Fixed erroneous logic in compare_group_binary. + +Sat Mar 12 13:29:21 2005 Ben Pfaff + + * split-file.c: (cmd_split_file) Ignore LAYERED and SEPARATE + keywords (bug 11628). + +Sat Mar 12 13:17:12 2005 Ben Pfaff + + * vfm.c: (procedure_with_splits) Fix bug 11492: end_func() must be + called *before* close_active_file(). + +Sat Mar 12 12:20:57 2005 Ben Pfaff + + * file-handle.q: (struct file_handle) Change open_mode from + character pointer to 3-char array, for safety. Updated all + references. + +Sat Mar 12 12:15:49 2005 Ben Pfaff + + Thanks to Ben Kujala for reporting + these bugs. + + * pfm-read.c: (read_header) Improve error message for many cases + in which the input is not actually a portable file. + + * file-handle.q: (fh_open) When we give an error message, actually + return NULL. + +Fri Mar 11 11:50:30 2005 Ben Pfaff + + * format.c: (check_common_specifier) New function for checks + common to check_input_specifier() and check_output_specifier(). + (check_input_specifier) Use check_common_specifier(). + (check_output_specifier) Use check_common_specifier(). + (check_string_specifier) Removed. + (check_specifier_type) New function. + (check_specifier_width) New function. + (get_format_var_width) Fix bug. + + * formats.c: (internal_cmd_formats) Only accept numeric variables. + + * lexer.c: (check_id) Rename lex_id_to_token(), make public, + update all references. Make case-insensitive. + + * pfm-read.c: Essentially rewrite the whole file. Now much + cleaner. + + * print.c: (check_string_width) New function. + (fixed_parse_compatible) Use check_string_width(), + check_specifier_type(). + (dump_fmt_list) Ditto. + + * str.c: (st_trim_copy) New function. + (st_uppercase) New function. + + * vars-atr.c: (var_is_valid_name) New function. + + * expressions/parse.c: (type_coercion_core) Use + check_specifier_type(). + +Fri Mar 11 11:31:24 2005 Ben Pfaff + + * expressions/evaluate.c: (cmd_debug_evaluate) Fix memory leaks. + + * expressions/parse.c: (no_match) Ditto. + +Wed Mar 9 09:54:27 2005 Ben Pfaff + + * Makefile.am: (pspp_LDADD) Add libgsl-extras.a. + + * expressions/helpers.c: (struct func_params) Removed. + (generalized_idf) Removed. + (cdf_beta) Removed. + (idf_beta) Removed. + (idf_fdist) Use gslextras_cdf_beta_Pinv() instead of idf_beta(). + + * expressions/operations.def: Implement IDF.BETA, CDF.BINOM, + CDF.GEOM, CDF.HYPER, CDF.NEGBIN, CDF.POISSON using gsl-extras. + Implement SIG.F, which I had overlooked previously. + +Tue Mar 8 12:47:53 WST 2005 John Darrington + + * command.c command.def glob.[ch] cmdline.c: Made DEBUG cmds + available only in testing mode. + +Sun Mar 6 23:25:40 2005 Ben Pfaff + + * data-in.c: Use `bool' throughout, where relevant. + +Sun Mar 6 19:52:22 2005 Ben Pfaff + + DATA LIST with free-field formats should not have implied decimal + places (bug 12035). Also clean up data-in.c a bit. + + * data-in.h: (enum) Add DI_IMPLIED_DECIMALS. + + * data-in.c: (apply_implied_decimals) New function. + (parse_numeric) Don't adjust exponent if DI_IMPLIED_DECIMALS not + set. Also, get rid of gotos. + (parse_Z) Use apply_implied_decimals() if the field doesn't + contain a decimal point. + (parse_N) Use apply_implied_decimals(). + (parse_IB) Ditto. + (parse_PIB) Ditto. + (parse_P) Ditto. + (parse_PK) Ditto. + (to_roman) Removed. + (parse_enum) New function. + (macro CHAR_IS_ROMAN) Removed. + (macro ROMAN_VALUE) Removed. + (parse_month) Use parse_enum(). + (parse_weekday) Use parse_enum(). + (parse_DATETIME) Use long for weekday. + + * data-list.c: (read_from_data_list_fixed) Use + DI_IMPLIED_DECIMALS. + +Sun Mar 6 17:07:20 2005 Ben Pfaff + + When the lexer sees something like `-5' in the input, it has to + decide whether it's a negative numeric constant token or a '-' + token followed by a positive numeric constant token. It always + decides on the former, and then the parser can call + lex_negative_to_dash() if it wants the latter. However, this + doesn't work for the case of `-0', because negative zero is + (portably) indistinguishable from positive zero. So now we divide + T_NUM into two tokens, T_POS_NUM and T_NEG_NUM, to make the + distinction clear. This requires a little bit of extra effort, + because there were several references to T_NUM in the code base. + + * lexer.c: (lex_get) Use T_NEG_NUM and T_POS_NUM to distinguish + positive and negative numeric constants. + (lex_double_p) Renamed lex_is_number(). Changed return type to + bool. Updated all relevant references to T_NUM to instead use + this function. + (lex_double) Renamed lex_number(). All references updated. + (lex_integer_p) Renamed lex_is_integer(). Changed return type to + bool. All references updated. + (lex_token_representation) Understand T_NEG_NUM and T_POS_NUM. + (lex_negative_to_dash) Ditto. + (dump_token) Ditto. + + * lexer.h: (enum) Add T_POS_NUM, T_NEG_NUM. Remove T_NUM. + +Sun Mar 6 22:09:20 2005 Ben Pfaff + + * expressions/operations.def: (NUMBER) Use DI_IMPLIED_DECIMALS. + +Sun Mar 6 19:33:24 2005 Ben Pfaff + + * expressions/operations.def: (VEC_ELEM_NUM) Treat user-missing + values as system-missing. + + * expressions/parse.c: (parse_vector_element) Fix order of + arguments in call to expr_allocate_binary(). + +Sun Mar 6 17:51:05 2005 Ben Pfaff + + * expressions/optimize.c: (optimize_tree) Fix optimization bug for + x**2. + + * expressions/parse.c: (type_coercion_core) Set *node to NULL on + failure, as indicated by function comment. + (parse_binary_operators) Always return NULL on type_coercion() + failure. Should have been doing this anyway, but bug in + type_coercion_core() filtered through. + (parse_add) Fix typo in user message. + (parse_primary) Understand T_NEG_NUM and T_POS_NUM. + +Sun Mar 6 10:47:13 2005 Ben Pfaff + + * expressions/operations.def: Add VALUE function. + + * expressions/parse.c: (parse_function) Need an unary composite + node for variables in A TO B, not a variable node. Use + allocate_unary_variable(). + (parse_primary) Use allocate_unary_variable(). + (allocate_unary_variable) New function. + +Thu Mar 3 23:53:32 2005 Ben Pfaff + + * expressions/PSPP_expressions.pm: Renamed it back to generate.pl + but fixed the real problem that was preventing the build from a + separate directory. I liked it my way better ;-) + +Thu Mar 3 23:17:51 2005 Ben Pfaff + + * expressions/parse.c: (expr_parse) Fix parameter type. Thanks to + John Darrington for reporting this + bug. + +Thu Mar 3 22:10:25 WST 2005 John Darrington + + * expressions/Makefile.am expressions/evaluate.h.pl + expressions/evaluate.inc.pl expressions/operations.h.pl + expressions/optimize.inc.pl expressions/parse.inc.p: + + Renamed generate.pl to PSPP_expressions.pm and adjusted *.pl + to suit. + + Fixed everything so that it can be built from an arbitrary + directory. + +Thu Mar 3 22:08:35 WST 2005 John Darrington + + * Makefile.am : Fixed up CLEANFILES target. + +Mon Feb 28 23:49:56 2005 Ben Pfaff + + * str.h: Changed `struct len_string' to `struct fixed_string', a + more accurate name. Updated all references. + +Mon Feb 28 23:35:30 2005 Ben Pfaff + + Redo calendar support. Should now be bug-for-bug compatible. + + * calendar.c: New file. + + * calendar.h: New file. + + * data-in.c: Use new calendar functions. + (parse_sign) Change sense of return value. + (calendar_error) New function. + (ymd_to_ofs) New function. + (ymd_to_date) New function. + (parse_DATE) Use new function. + (parse_ADATE) Ditto. + (parse_EDATE) Ditto. + (parse_SDATE) Ditto. + (parse_JDATE) Ditto. + (parse_QYR) Ditto. + (parse_MOYR) Ditto. + (parse_WKYR) Ditto. + (parse_TIME) Ditto. + (parse_DTIME) Ditto. + (parse_DATETIME) Ditto. + + * data-out.c: (convert_date) Use new calendar functions. + + * error.c: (err_vmsg) Changed interface to be more sensible. + Updated all callers. + (dump_message) Don't double new-lines (why did we do this + anyway?). + +Mon Feb 28 23:30:25 2005 Ben Pfaff + + * sfmP.h: (macro flt64) Moved here from pref.h.orig. + (macro FLT64_MAX) Moved here from pref.h.orig. + +Mon Feb 28 23:28:01 2005 Ben Pfaff + + * set.q: Support SET EPOCH. + (static var set_epoch) New var. + (aux_stc_custom_epoch) New function. + (stc_custom_epoch) New function. + (get_epoch) New function. + (stc_custom_pager) [USE_INTERNAL_PAGER] Fix bug. + + * format.c: Make it possible just to check whether a specifier is + valid without emitting an error message. + (parse_format_specifier_name) Change interface, update all + callers. + (check_input_specifier) Ditto. + (check_output_specifier) Ditto. + (parse_format_specifier) Ditto. + +Mon Feb 28 23:24:08 2005 Ben Pfaff + + * command.def: Add DEBUG POOL. + + * pool.c: (pool_destroy) Fix bug in deleting this pool from its + parent. + (pool_clear) Properly account for size of pool gizmo. + (pool_realloc) Ditto. + (pool_clone) New function. + + * pool.h: Mark our allocation functions MALLOC_LIKE. + +Mon Feb 28 23:21:26 2005 Ben Pfaff + + * Makefile.am: Move many definitions into new top-level + Make.build. Add expressions to SUBDIRS. Add calendar.c, + calendar.h. Remove expr-evl.c, expr-opt.c expr-prs.c, expr.h, + exprP.h, expr.def. + + * case.c: (case_resize) New function. + (case_swap) New function. + + * casefile.c: Include mkfile.h. + +Fri Feb 25 21:11:35 WST 2005 John Darrington + + * sfm-read.c: Fixed a buglet which caused a crash when trying + to read a non-existent file. + +Sun Feb 13 16:11:13 2005 Ben Pfaff + + Fix bug 11955. + + * aggregate.c: (parse_aggregate_functions) Code cleanup. + Important part: get rid of spurious copying of function->format to + destvar->print and destvar->write. + +Fri Feb 11 00:08:36 2005 Ben Pfaff + + Fix bug 11916, which was confusing a variable's `index' member + with the variable's position in a var_set. Although these are + usually the same, they are not for array `var_set's. + + Took advantage of this bug as an opportunity to clean up and + rewrite parse_var_set_vars(). + + * vars-prs.c: (parse_vs_variable_idx) New function. + (parse_vs_variable) Reimplement in terms of + parse_vs_variable_idx(). + (parse_var_idx_class) New function. + (add_variable) New function. + (add_variables) New function. + (parse_var_set_vars) Rewritten. + (struct var_set) Change `lookup_var' member that returns a + variable into `lookup_var_idx' member that returns an int. + Updated the var set implementations in obvious corresponding ways. + Used compare_var_ptr_names(), hash_var_ptr_name() just added. + +Fri Feb 11 00:06:03 2005 Ben Pfaff + + Use our global variable compare & hash functions and give them + better names. Add similar functions for dealing with double + pointers to variables. + + * vars-atr.c: (compare_variables) Renamed compare_var_names(). + (hash_variable) Renamed hash_var_name(). + (compare_var_ptr_names) New function. + (hash_var_ptr_name) New function. + + * t-test.q: (cmd_t_test) Use global compare_var_names(), + hash_var_name(). + (compare_var_name) Removed. + (hash_var_name) Removed. + +Fri Feb 11 00:04:39 2005 Ben Pfaff + + Fix dictionary bug. + + * dictionary.c: (compare_variable_dblptrs) Rename + compare_var_ptrs() and fix it to properly dereference the double + pointers. + +Mon Feb 7 09:58:15 WST 2005 John Darrington + + crosstabs.q examine.q oneway.q q2c.c: Added a q2c feature to + declare subcommands as mandatory. Closed bug #11843 + +Sat Feb 5 20:35:10 WST 2005 John Darrington + + * getline.c command.[ch] command.def: Added (very rudimentary) + support for line completion when in interactive mode. Partially + addresses bug #11693 + +Mon Jan 31 09:52:51 WST 2005 John Darrington + + * examine.q factor_stats.c oneway.q output.c pfm-read.c: Fixed some + problems revealed by valgrind. + + +Wed Jan 26 11:44:11 WST 2005 John Darrington + + * set.q: Affixed a fix to the previous fix such that we'll be OK now + whether or not PAGER is set. + +Wed Jan 26 09:25:54 WST 2005 John Darrington + + * set.q: Copied the string produced by getenv("PAGER") thus avoiding + "invalid free" errors. Hopefully fixes bug #11722 + + * compute.c expr-prs.c: Check that lvalues are populated before + attempting to destroy them. Closes bug #11676 + +Tue Jan 25 21:01:43 WST 2005 John Darrington + + * aggregate.c: Initialised the complete agr_proc structure. + Closes bug #11675 + + +Sun Jan 23 23:02:21 2005 Ben Pfaff + + * print.c: (print_trns_free) Close the dfm writer if there is one, + fixing a memory leak. + +Mon Jan 24 12:24:36 WST 2005 John Darrington + + * glob.c oneway.q q2c.c t-test.q vfm.c: Still *more* memory leaks + fixed. + + +Fri Jan 21 19:54:14 WST 2005 John Darrington + + * linked-list.[ch] Added + + * examine.q file-handle.[hq] font.h glob.c groff-font.c postscript.c + set.q: Yet more memory leaks + +Tue Jan 18 23:12:40 WST 2005 John Darrington + + * t-test.q examine.q : More memory leaks fixed. + +Tue Jan 18 19:26:59 WST 2005 John Darrington + + * examine.q factor_stats.[ch] get.c pfm-read.c: Plugged numerous + memory leaks. + +Mon Jan 10 14:43:45 WST 2005 John Darrington + + * ascii.c cartesian.c casefile.c chart.h devind.c + examine.q frequencies.q + html.c output.h piechart.c plot-chart.c plot-hist.c + + Integrated the chart rendering into the output stream + (currently only works for html). + + Removed gratuitous use of ifndef NO_CHARTS, and replaced with + dummy-chart.c for compiling without charts. + + * mkfile.[ch] Created. + + * som.[ch] tab.[ch]: Changed name of som_table to som_entity + Added type element so we can tell if it's a chart or a table. + + * chart.h examine.q piechart.c plot-chart.c plot-hist.c: changed the + API of charts to be more like that of tables. + +Thu Jan 13 21:00:02 WST 2005 John Darrington + + * casefile.c main.c: Moved the SIGINT handler from casefile.c to + main.c. Removed the handler for SIGQUIT. + +Mon Jan 10 14:43:45 WST 2005 John Darrington + + * casefile.c: Added a signal handler to delete temp files on + SIGINT and SIGQUIT + + * permissions.c Inhibited the PERMISSIONS command when SAFER is on. + + * command.def Added a lot more unimplemented commands. + + * copyleft.[ch] cmdline.c Moved legal information to copyleft.c + +Sat Jan 8 23:58:34 2005 Ben Pfaff + + * sort.c: (compare_initial_runs) Needed additional level of + dereferencing. + (merge_once) Fix plenty of stupid mistakes. + +Sat Jan 8 23:55:27 2005 Ben Pfaff + + * casefile.c: (casefile_sleep) Need to flush_buffer() after + calling casefile_to_disk() or we will lose the last block in the + file if the casefile started out as disk-based. + (casefile_get_reader) Initialize reader->destructive to 0. + (cmd_debug_casefile) Add new test pattern. + (test_casefile) Define new test pattern to make sure + casefile_sleep() works properly. + +Fri Jan 7 08:00:05 WST 2005 John Darrington + + * Makefile.am chart.[ch] histogram.[ch] piechart.c (Modified); + plot-hist.c plot-chart.c (Added) Reorganised these files in an + attempt to seperate the creation and processing of charts from their + actuall renedering. + + * examine.q frequencies.q generated charts conditional upon the NO_CHARTS + macro. + +Thu Jan 6 18:48:58 WST 2005 John Darrington + + * main.c Added a signal handler for SIGFPE + + * sort.c Somewhat more robust fix to the previous entry. + +Wed Jan 5 21:23:31 2005 Ben Pfaff + + * sort.c: (merge) Fix assertion for proper Huffman merge pattern: + 0 == 1 modulo 1. See Knuth 5.4.9 (vol. 3, 2nd ed., + pp. 361). Thanks to John Darrington for + reporting the bug. + +Wed Jan 5 22:42:26 WST 2005 John Darrington + + * case.h Fixed bug # 11307 + +Wed Jan 5 08:30:48 WST 2005 John Darrington + + * val-labs.c Fixed bug which caused a crash if VALUE LABELS had + a trailing slash. + +Mon Jan 3 17:44:37 2005 Ben Pfaff + + * pfm-read.c: (read_variables) Remove direct manipulation of + v->aux, which is no longer needed. Fixes bug 11483. + Sat Jan 1 19:01:16 WST 2005 John Darrington * data-list.c Fixed a bug in parsing delimiters. @@ -145,7 +1539,6 @@ Tue Nov 16 13:19:18 WST 2004 John Darrington * permissions.c command.def Added the PERMISSIONS command ->>>>>>> 1.110 Mon Nov 15 01:33:32 2004 Ben Pfaff * q2c.c: (dump_header) Don't try to emit #includes at very top of @@ -372,7 +1765,6 @@ Mon Nov 15 00:30:33 2004 Ben Pfaff (var_dtor_free) New function. (discard_variables) Use NULL instead of inline_file. ->>>>>>> 1.106 Fri Nov 12 10:07:11 WST 2004 John Darrington * value-labs.c Fixed the implmentation of value_to_string, so