X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2FChangeLog;h=057a44175407c27700d044319c7fe60b801c0651;hb=998c6bac5f1d781505591ac6b3e78df25e566282;hp=e31bb4ae4e4a536a96971899c98696fb1635c100;hpb=2feb80cc7e27079c77255ee8ab6a9aa373980abb;p=pspp diff --git a/src/ChangeLog b/src/ChangeLog index e31bb4ae4e..057a441754 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,6 +1,1528 @@ +Fri Feb 3 20:34:52 2006 Ben Pfaff + + * font.h: (struct font_set) Removed, because unused. + +Sat Jan 28 17:45:36 2006 Ben Pfaff + + Cleaner (faster?) way to compact cases. + + * dictionary.c: (dict_compact_case) Removed. + (dict_needs_compaction) New function. + (struct copy_map) New structure. + (struct dict_compactor) New structure. + (dict_make_compactor) New function. + (dict_compactor_compact) New function. + (dict_compactor_destroy) New function. + +Sat Jan 28 17:24:22 2006 Ben Pfaff + + Cleanups. + + * data-list.c: Make data_list_source_class static. + (dump_fixed_table) Use fh_get_name() to describe source of data. + (dump_free_table) Ditto. + (cmd_repeating_data) Eliminate special cases for inline file. + + * dictionary.c: (dict_contains_var) Change return value from int to + bool. + (dict_rename_vars) Ditto. + (dict_create_vector) Ditto. + +Sat Jan 28 17:20:50 2006 Ben Pfaff + + Add scratch file handles. + + Now a file handle can refer to a disk file, to an in-memory + structure, or to the "inline" file, instead of just to a disk + file. The introduction of new categories means that special cases + for the inline file in a few places could be eliminated, but it + also means that code that assumed that a handle refers to a file + has to check for that. + + Also, now file handles can be freed, so code now must be sure not + to access a handle after closing it (with fh_close()). + + * Makefile.am: Add any-reader.c, any-reader.h, any-writer.c, + any-writer.h, scratch-handle.c, scratch-handle.h, + scratch-reader.c, scratch-reader.h, scratch-writer.c, + scratch-writer.h to pspp_SOURCES. + + * any-reader.c: New file. + + * any-reader.h: New file. + + * any-writer.c: New file. + + * any-writer.h: New file. + + * scratch-handle.c: New file. + + * scratch-handle.h: New file. + + * scratch-reader.c: New file. + + * scratch-reader.h: New file. + + * scratch-writer.c: New file. + + * scratch-writer.h: New file. + + * aggregate.c: Use an any_writer instead of an sfm_writer, to add + flexibility. + + * apply-dict.c: Use an any_reader instead of an sfm_reader, to add + flexibility. + + * command.def: Add CLOSE FILE HANDLE command. + + * dfm-reader.c: Now fewer special cases for inline file. + (static var inline_open_cnt) Removed. + (static var inline_file) Removed. + (dfm_close_reader) Eliminate a special case for inline file. + Reorganize to avoid access-after-free. + (dfm_open_reader) Eliminate a special case for inline file. + (read_inline_record) Use bool instead of int. No need to + increment line number. + (read_file_record) Use bool instead of int. + (read_record) Check whether file handle is inline file, instead of + for null pointer. + (dfm_eof) Ditto. + (dfm_expand_tabs) Ditto. + (dfm_push) Ditto. + (dfm_pop) Ditto. + (cmd_begin_data) Fix inaccurate check for whether the inline file + is in use--now we can tell by checking whether the inline file's + open count is positive. + + * file-handle-def.c: (struct file_handle) Reorder members. Add + `deleted' member. Add `referent' member. Add `sh' member. + (static var default_handle) New variable. + (static var inline_file) New variable. + (fh_init) Initialize inline file. + (free_handle) New function. + (fh_done) Rewrite. + (fh_from_name) Don't return deleted handles. + (fh_from_filename) Ditto. + (fh_create) Removed. + (create_handle) New function. + (fh_create_file) New function. + (fh_create_scratch) New function. + (fh_inline_file) New function. + (fh_free) Rewrite. + (fh_open) Now requires a referent type mask and verifies it. All + references updated. + (fh_close) If open_cnt goes to 0 on a deleted handle, free it. + (fh_is_open) New function. + (fh_get_referent) New function. + (fh_get_filename) Limit to handles that refer to files. + (fh_get_mode) Ditto. + (fh_get_record_width) Limit to handles that refer to files or the + inline file. + (fh_get_tab_width) Ditto. + (fh_get_scratch_handle) New function. + (fh_set_scratch_handle) New function. + (fh_get_default_handle) New function. + (fh_set_default_handle) New function. + + * file-handle.h: (enum fh_referent) New type. + (enum fh_mode) Rename MODE_TEXT to FH_MODE_TEXT, MODE_BINARY to + FH_MODE_BINARY, and update all usages. + + * file-handle.q: Add "scratch" as a possible mode. + (cmd_file_handle) Mention CLOSE FILE HANDLE in error message. + Use lex_end_of_command(), lex_sbc_missing(). Support creating + scratch handles. + (cmd_close_file_handle) New function. + (referent_name) New function. + (fh_parse) Now takes a referent type mask to specify handles that + can be accepted. Updated all references. + + * filename.c: (fn_extension) New function. + + * get.c: Use any_reader and any_writer and thereby merge code that + has been duplicated for each kind of file. Also, we had something + here called `any_writer' before, so its name had to be changed to + `case_writer'. + (enum operation) Removed, because unused. + (struct get_pgm) Removed. + (get_pgm_free) Removed. + (get_source_destroy) Removed. + (get_source_read) Removed. + (global var get_source_class) Removed. + (static var case_reader_source_class) Removed. + (enum reader_command) New enum. + (struct case_reader_pgm) New struct. + (parse_read_command) New function. + (case_reader_pgm_free) New function. + (case_reader_source_destroy) New function. + (case_Reader_source_Read) New function. + (cmd_get) Rewrote as a call to parse_read_command(). + (cmd_import) Ditto. + (struct any_writer) Rename to case_writer. Drop `writer_type', + `writer' members in favor of an `any_writer' member named + `writer'. + (any_writer_destroy) Rename case_writer_destroy. Use + any_writer_close(). + (parse_write_command) Allow scratch files. Use any_writer. + (any_writer_write_case) Rename case_writer_write_case(). Use + any_writer_write(). +` (struct mtf_file) Use any_reader. + (cmd_match_files) Allow scratch files. Use any_reader. + (mtf_free_file) Use any_reader_close(). + (mtf_read_nonactive_records) Use any_reader_read(). + (mtf_processing) Use any_reader_read(). + (struct import_pgm) Removed. + (import_pgm_free) Removed. + (import_source_destroy) Removed. + (import_source_read) Removed. + (global var import_source_class) Removed. + + * glob.c: (global var default_handle) Removed. Replaced all + references by fh_get_default_handle() or fh_set_default_handle(). + + * pfm-read.c: (static var portable_to_local) Moved from inside + read_header() to top level. + (pfm_detect) New function. + + * pfm-write.c: (pfm_write_case) Make case argument const. + Reorganize to avoid access-after-free. + + * print.c: (dump_table) Use fh_get_name() to describe source of + data. + + * sfm-read.c: (sfm_close_reader) Reorganize to avoid + access-after-free. + (sfm_detect) New function. + + * str.c: (str_lowercase) New function. + + * vfm.c: Use new compaction interface. + (static var compaction_necessary) Removed. + (static var compactor) New variable. + (open_active_file) Initialize compactor. + (write_case) Use compactor. + (close_active_file) Free compactor. + +Wed Jan 11 19:28:39 2006 Ben Pfaff + + Clean up file handle code in preparation to add scratch file + handles. + + * file-handle-def.c: Lots of formatting cleanup. Added function + comments. + (struct file_handle) Renamed `length' member + to `record_width'. All references updated. + (fh_init) New function. Moved here from file-handle.q. + (fh_done) New function. Moved here from file-handle.q and + rewrote. + (get_handle_with_name) Renamed fh_from_name(). + (get_handle_for_filename) Renamed fh_from_filename(). + (create_file_handle) Renamed fh_create(). Changed to take a + `struct fh_properties' instead of discrete values. Updated all + references. + (create_file_handle_with_defaults) Removed. Updated all + references to use fh_create() with fh_default_properties(). + (fh_default_properties) New function. + (destroy_file_handle) Removed. The code is now in fh_done(). + (handle_get_name) Renamed fh_get_name(). + (handle_get_filename) Renamed fh_get_filename(). + (handle_get_record_width) Renamed fh_get_record_width(). + (handle_get_tab_width) Renamed fh_get_tab_width(). + + * file-handle-def.h: Formatting, comment fixes. + (enum file_handle_mode) Renamed struct fh_mode. + (struct fh_properties) New structure. + (fh_init) Move prototype here from file-handle.h. + (fh_done) Ditto. + (fh_close) Ditto. + + * file-handle.q: (static var handle_list) Removed. + (fh_parse) Don't add handle to handle_list, because + file-handle-def.c has its own list. + (fh_init) Moved to file-handle-def.c. + (fh_done) Ditto. + +Sun Jan 9 01:09 Jason Stover + + * regression.q: (run_regression) Moved coefficient initialization + to the linreg library. Altered other functions accordingly. + +Sat Jan 7 13:30:54 WST 2006 John Darrington + + * command.c data-in.c main.c: Fixed bug which crept in when + separating getl from readline. + + * vars-atr.c value-labels.h: Fixed constness of val_labs_count. + +Fri Dec 23 20:59:01 WST 2005 John Darrington + + * getl.c error.c: Separated file_loc functionality from error.c + +Mon Dec 19 14:01:56 WST 2005 John Darrington + + * format.c: Additional error checking. + * getl.[ch]: Separated into getl.c and readln.c + * settings.[ch]: Made CC_CNT public + +Fri Dec 16 09:11:48 WST 2005 John Darrington + + * examine.q: Fixed buglet when cleaning up at end of procedure. + +Tue Dec 13 22:34:42 2005 Ben Pfaff + + Move global initialization and cleanup code into main.c. + Remove vestigial log infrastructure. + Minor related cleanups. + + * command.c: (shell) When execl() fails, use _exit(), not + err_hcf(). + + * error.c: (err_hcf) Move into main.c, rename terminate(). All + callers updated. + (err_done) New function with just the error.c-specific code for + err_hcf(). Called by terminate(). + + * glob.c: Removed all Borland C, DJGPP cruft. + (init_glob) Merged into main(). + (done_glob) Merged into terminate(). + (get_date) Removed. + (get_start_date) New function. All users of curdate updated to call + this function instead. + + * lexer.c: (lex_init) Moved initialization of tokstr here, from + init_glob(). + (lex_done) Moved destruction of tokstr here, from done_glob(). + + * main.c: (global var pgmname) Removed. Changed all references to + program_name, which is defined by gnulib. + (global var curdate) Removed. + (main) Moved init_glob() code here. Merged parse_script() in + here. + (parse_script) Removed. + (terminate) Moved err_hcf() here from error.c and renamed + terminate(). Merged done_glob() code in here. Call err_done(). + All callers updated. + (i18n_init) New function. + (fpu_init) New function. + + * output.c: (outp_init) Make void. + (init_default_drivers) New function. + (outp_read_devices) If no drivers are initialized successfully, + call init_default_drivers() to initialize a default driver. + (outp_done) Make void. + (static var prog) Make const. + (parse_options) Make parameter const. + (colon_tokenize) Make return value const. + (configure_driver) Change prototype to take a broken-down driver + configuration instead of a line of text. + (configure_driver_line) New function that does what + configure_driver() did before. + + * q2c.c: (global var pgmname) Rename program_name. + + * settings.c: (settings_init) Renamed from init_settings(). + (settings_done) Renamed from done_settings(). + + * vfm.c: (global var last_vfm_invocation) Make static. + (vfm_last_invocation) New function. All references to + last_vfm_invocation update to call this. + (procedure) Call update_last_vfm_invocation(). + (internal_procedure) Ditto. + (update_last_vfm_invocation) New function. + +Sat Dec 10 23:30:19 2005 Ben Pfaff + + Separate random numbers from other settings because of GSL + dependency. + + * Makefile.am: Add random.c, random.h to sources. + + * glob.c: (init_glob) Call random_init(). + (done_glob) Call random_done(). + + * settings.c: (static var rng) Move to random.c. + (done_settings) Move freeing of RNG to random_done(). + (get_rng) Move to random.c + (set_rng) Ditto. + + * random.c: New file. + + * random.h: New file. + +Sat Dec 10 18:13:36 2005 Ben Pfaff + + Separate settings and the SET command, for modularity. + + * Makefile.am: Add settings.c to sources. + + * glob.c: (global variable test_mode) Removed. + + * set.q: Remove all the set_* variables. Remove a lot of obsolete + SPSS/PC+ settings. Remove the aux_*() routines. Moved the + get_*() functions into settings.c. Rewrite the settings code and + functions to call the new set_*() functions. Rewrite custom + currency parsing. Write new by-hand cmd_show(). + + * esttings.c: New file. Moved the get_*() functions here from + set.q. Created new set_*() functions to correspond with them. + Regularized the names and types of some functions and updated + their callers. Added static, file-scope variables to support the + settings. + + * q2c.c: Remove "aux" support, which was only needed by set.q. + +Sun Nov 27 06:43:46 WST 2005 John Darrington + + * data-out.c format.h: Added return value to data_out function. + + * value-labels.c: Fixed bug in val_labs_remove. + +Sat Nov 5 18:37:26 2005 Ben Pfaff + + * Makefile.am: Remove devind.c, devind.h from list of source + files. + + * devind.c: Removed. + + * devind.h: Removed. + + * list.q: Removed "support" for devind. + + * output.c: Don't add devind class. + +Sat Nov 5 18:21:00 2005 Ben Pfaff + + * var.h: (struct variable) Make `init', `reinit' bool values. + Rearrange fields. + +Fri Nov 4 19:43:01 2005 Ben Pfaff + + * recode.c: Rewrote whole file, as clean-up. + +Fri Nov 4 19:37:50 2005 Ben Pfaff + + * pool.c: Don't make alignment exception for x86. + (pool_alloc) Return null for 0-size blocks. + (pool_alloc_unaligned) New function. + (pool_strndup) Removed. Changed callers to use pool_clone_unaligned(). + (pool_clone_unaligned) New function. + (pool_strdup) Use pool_clone_unaligned(). + + * var.h: (enum var_type) Give the NUMERIC, ALPHA enum this name. + (struct variable) Use `enum var_type' for `type'. + + * vars-atr.c: (var_type_adj) New function. + (var_type_noun) New function. + + * vars-prs: (parse_mixed_vars) Fix freeing code. + (parse_mixed_vars_pool) New function. + +Wed Nov 2 21:24:48 2005 Ben Pfaff + + * file-handle-def.c: Needed another #include, to avoid missing + prototype warning. + + * file-handle.q: (cmd_file_handle) Declarations must precede + statements. Free parse data on success as well as on failure, to + avoid memory leak. + + * get.c: (parse_write_command) Destroy dict on success, to avoid + memory leak. + + * data-list.c: (cmd_repeating_data) Fix usage of saw_occurs, + saw_length, saw_continued, saw_id, which were boolean but + incorrectly treated as bitmaps as result of a previous + half-finished cleanup. + + * weight.c: (struct weight_trns) Unused, so removed. + + * Makefile.am: Add range-prs.h to sources. + +Wed Nov 2 21:24:15 2005 Ben Pfaff + + DO IF, LOOP cleanup. + + * Makefile.am: Add ctl-stack.c, ctl-stack.h to source files. + Reformat source file list to list one file per file, so that + patches for future changes will be easier to read. + + * ctl-stack.c, ctl-stack.h: New files. + + * do-if.c: Rewrote whole file. + + * do-ifP.h: Removed. + + * loop.c: Rewrote whole file. + + * glob.c: (global var ctl_stack) Move into ctl-stack.c. + + * temporary.c: (cmd_temporary) Use ctl_stack_is_empty(). + + * vfm.c: (open_active_file) Use ctl_stack_clear(). + +Wed Nov 2 21:18:13 2005 Ben Pfaff + + New pool functions. + + * pool.c: (pool_create_at_offset) New function. + (pool_add_subpool) New function. + + * pool.h: (pool_create_container) New macro. + + * expressions/parse.c: (expr_parse_pool) New function. + + * autorecode.c: (recode) Use pool_create_container(). + + * count.c: (cmd_count) Ditto. + +Wed Nov 2 19:59:32 2005 Ben Pfaff + + Clean up transformations, by getting rid of `struct trns_header', + replacing it by `struct transformation' that has a void * + `private' member. Updated all uses of transformations to match, + which was a lot of code. Only major related changes listed below. + + * compute.c: (cmd_if) Use get_proc_func(). + (cmd_compute) Use get_proc_func(). + (get_proc_func) New function. + + * glob.c: (global var m_trns) Change type to size_t. + (global var n_trns) Ditto. + (global var f_trns) Ditto. + (global var t_trns) Change type to struct transformation *. + + * var.h: (struct trns_header) Removed. + (struct transformation) New. + (typedef trns_proc_func) Takes a void * instead of a struct + trns_header *. + (typedef trns_free_func) Ditto. + + * vfm.c: (execute_transformations) Takes an array of + transformations instead of trns_headers. + (add_transformation) Change prototype from (trns_header *) to + (trns_proc_func *, trns_free_func *, void *). + (next_transformation) New function. + +Sat Oct 29 16:25:36 2005 Ben Pfaff + + * count.c: Major cleanups. Rename practically everything. + Rewrite much of the code. Use pools for memory management. Use + the new parse_num_range(). + + * mis-val.c: (cmd_missing_values) Use the new parse_num_range(). + (parse_number) Removed. + + * missing-values.c: (mv_add_num_range) Don't add out-of-order + ranges, e.g. where low > high. + + * pool.c: (pool_2nrealloc) New function. + + * range-prs.c: New file. + (parse_num_range) New function. + (parse_number) New function. + +Fri Oct 28 22:47:48 2005 Ben Pfaff + + Fix up potential overflows in size calculations by replacing + instances of pool_alloc(p, x * sizeof *y) by pool_malloc(p, x, + sizeof *y) everywhere I could find them. Similarly by + pool_malloc(), pool_realloc(). + (Order is important: pool_alloc(p, sizeof *y, x) will divide by 0 + if x is 0.) + + * pool.c: (pool_nalloc) New function. + (pool_nmalloc) New function. + (pool_nrealloc) New function. + +Thu Oct 27 11:16:53 WST 2005 John Darrington + + Separated the definition of a file handle object from the stuff + pertaining to the FILE HANDLE command. + + * file-handle-def.[ch]: New files. + + * dfm-read.c file-handle.h file-handle.q + +Tue Oct 25 21:56:23 2005 Ben Pfaff + + Fix up potential overflows in size calculations by replacing + instances of xmalloc(x * sizeof *y) by xnmalloc(x, sizeof *y) + everywhere I could find them. Similarly by xrealloc(), malloc(). + (Order is important: xnmalloc(sizeof *y, x) will divide by 0 if x + is 0.) + + * alloc.c: (nmalloc) New function. + (out_of_memory) Removed. Replaced references by xalloc_die(). + + * sort.c: (allocate_cases) Fix segfault if memory allocation + fails. + + * subclist.c: (subc_list_double_create) Use xnmalloc() instead of + malloc(). + (subc_list_double_push) Use xnrealloc() instead of realloc(). + +Wed Oct 26 08:43:51 WST 2005 John Darrington + + Dictionary abstraction part #2 + + * algorithm.c format.c str.c sysfile-info.c val.h var.h vars-atr.c: + Removed unnecessary #include directives + +Mon Oct 24 21:35:08 2005 Ben Pfaff + + * groff-font.c (font_msg): Use err_vmsg() instead of incorrectly + trying to pass a va_list to tmsg(). Thanks to Jason Stover for + reporting this bug. + +Mon Oct 24 21:24:15 2005 Ben Pfaff + + Work to get rid of GCC 4.0 warnings, part 2. + + In many files, change `unsigned char' to `char'. This often + requires adding casts to functions. + + * data-in.c: (parse_A) Use buf_copy_rpad(). + + * str.c: (str_copy_buf_trunc) New function. + + * value-labels.c: (value_to_string) Fix mistaken use of strncpy(), + by rewriting. + +Mon Oct 24 13:42:32 WST 2005 John Darrington + + Moved some definitions to make it easier to abstract a dictionary + from the rest of PSPP. + + * format-prs.c lex-def.[ch]: New files. + + * Makefile.am lexer.[ch] dictionary.c vars-atr.c vfm.c algorithm.c + format.c: Moved some functions between modules. + +Sun Oct 23 19:28:08 2005 Ben Pfaff + + Work to get rid of GCC 4.0 warnings, part 1. + + In many files, change count parameters to parse_variables(), + etc. from `int' to `size_t'. Also change related variables and + struct members. Also change messages as needed (e.g. %d to %u + with cast to unsigned). Also change arithmetic as necessary + (e.g. n >= m - 1 to n + 1 >= m). + + * crosstabs.q: (crs_custom_tables) Check for size_t overflow in + multiplication. + + * q2c.c: (dump_declarations) Generate code for size_t instead of + int. + +Thu Oct 20 18:18:40 2005 Ben Pfaff + + * output.c: (outp_read_devices) Fix message. + +Sat Sep 17 11:13:13 2005 Ben Pfaff + + * matrix-data.c: (cmd_matrix_data) Change type of variable whose + address is passed to dict_get_vars() from size_t to int to match + John's change below. + + * modify-vars.c: (validate_var_modification) Ditto. + +Mon Sep 12 19:26:06 WST 2005 John Darrington + + * dictionary.[ch] Changed cnt from size_t* to int* since that's + what it's called as, and on x86_64 machines they're different sizes. + + * str.c: (ds_vprintf) Copied va_list args so they can be re-used + +Sun Aug 21 00:12:24 2005 Ben Pfaff + + * lexer.c: (lex_sbc_only_once) New function. + (lex_sbc_missing) New function. + +Sun Aug 21 00:00:47 2005 Ben Pfaff + + * case.h: (case_str) Make it return `unsigned char'. + +Sat Aug 20 23:56:14 2005 Ben Pfaff + + Revamp SAVE, XSAVE, EXPORT. Add (or at least parse) all the + subcommands that we didn't support. Fix bug 13911. Fix bug + reported by Adam Pierson (COMPRESSED and other subcommands didn't + work on SAVE). Refactor all related code. + + * command.def: Add XEXPORT command. + + * dictionary.c: (dict_delete_scratch_vars) New function. + + * get.c: (cmd_get) Fix parsing. + (struct save_trns) Removed. + (cmd_save_internal) Removed. + (cmd_save) Removed. + (do_write_case) Removed. + (save_write_case_func) Removed. + (save_trns_proc) Removed. + (save_trns_free) Removed. + (trim_dictionary) Removed. + (struct export_proc) Removed. + (cmd_export) Rewrote. + (export_write_case_func) Removed. + (export_proc_free) Removed. + (enum writer_type) New enum. + (enum command_type) New enum. + (struct any_writer) New struct. + (any_writer_destroy) New function. + (parse_write_command) New function. + (any_writer_write_case) New function. + (parse_output_proc) New function. + (output_proc) New function. + (cmd_save) Rewrote. + (cmd_xsave) Rewrote. + (struct output_trns) New struct. + (parse_output_trns) New function. + (output_trns_proc) New function. + (output_trns_free) New function. + (cmd_xsave) Rewrote. + (cmd_xexport) New function. + (parse_dict_trim) New function. + (struct mtf_proc) Change `by_cnt' member type to `int'. + (cmd_import) Rewrote. + + * pfm-write.c: (struct pfm_writer) Add `digits' member. + (pfm_writer_default_options) New function. + (pfm_open_writer) Add `opts' argument and handle options. + (write_float) Write only as many digits as `digits' member says. + (format_trig_double) Limit base-10 precision to LDBL_DIG. + + * pfm-write.h: (enum pfm_type) Moved here from pfm-read.h. + (struct pfm_write_options) New struct. + + * sfm-write.c: (sfm_writer_default_options) New function. + (sfm_open_writer) Remove `compress', `omit_long_names' args. Add + `opts' argument. Implement options. + + * sfm-write.h: (struct sfm_write_options) New struct. + + * expressions/helpers.c: (copy_string) Make `old' arg `unsigned + char *' instead of `char *'. + +Sat Aug 6 21:29:15 2005 Ben Pfaff + + * factor_stats.c: Needed included earlier. + + * percentiles.c: Needed to include . + + * val.h: Don't include "config.h". + +Sat Aug 6 21:26:27 2005 Ben Pfaff + + Clean up treatment of missing values by moving all the code into + one place. All references to the missing value function were + updated, but only major changes are detailed below. + + * Makefile.am: Add missing-values.c, missing-values.h to sources. + + * apply-dict.c: (cmd_apply_dictionary) Use mv_resize(). + + * dictionary.c: (dict_create_var) Initialize `miss' member with + mv_init(). + (dict_clone_var) Copy `miss' member with mv_copy(). + + * get.c: (mtf_merge_dictionary) Use mv_copy(). + + * missing-values.c: New file. + + * missing-values.h: New file. + + * mis-val.c: Rewrite. New version implements updated semantics. + + * pfm-read.c: (read_variables) Rewrite missing value handling. + + * pfm-write.c: (write_variables) Rewrite missing value handling. + + * sfm-read.c: (read_variables) Rewrite missing value handling. + + * sfm-write.c: (write_variable) Rewrite missing value handling. + + * sfmP.h: Include "magic.h" to get definition of + second_lowest_value. + + * sysfile-info.c: (describe_variable) Rewrite missing value + handling. + + * val.h: Include "magic.h" to get definition of + second_lowest_value. + + * var.h: Include "missing-values.h". Drop MISSING_* enums. + (struct variable) Remove `miss_type', `missing'. Add `miss'. + + * vars-atr.c: (is_num_user_missing) Removed--use + mv_is_num_user_missing(). + (is_str_user_missing) Removed--use mv_is_str_user_missing(). + (is_system_missing) Removed--use mv_is_value_system_missing(). + (is_missing) Removed--use mv_is_value_missing(). + (is_user_missing) Removed--use mv_is_value_user_missing(). + +Sun Jul 31 14:09:57 2005 Ben Pfaff + + Adopt use of gnulib for portability. + + * Make.build: Add $(top_srcdir)/gl and $(top_builddir)/gl to + include path. + + * Makefile.am: Remove bool.h, stat.h and change getline.[ch] to + getl.[ch] in pspp_SOURCES. Remove libmisc, add libgl in + pspp_LDADD. + + * In many source files, added an explicit inclusion of gettext.h + and definition of _ macro. These are no longer in pref.h because + it interfered with definitions in a few gnulib source files. + + * In many source files, changed #include "bool.h" to #include + , which is provided by gnulib. + + * alloc.c: Removed functions defined in gnulib: + (xmalloc) Removed. + (xcalloc) Removed. + (xrealloc) Removed. + (xstrdup) Removed. + (out_of_memory) Redefined as wrapper for xalloc_die(). + + * alloc.h: Replace prototypes by #include "xalloc.h". + + * casefile.c: Use full_read() and full_write() from gnulib instead + of our home-grown versions. + (full_read) Removed. + (full_write) Removed. + + * getline.c: Renamed getl.c. + + * getline.h: Renamed getl.h, updated all references. + + * filename.c: (fn_readlink) Change to wrapper around xreadlink() + from gnulib. + + * glob.c: Just #include instead of the crazy rigmarole + here before. + (init_glob) Call set_program_name() to initial gnulib progname + module. + + * html.c: (postopen) Use getlogin_r(), gethostname() from gnulib. + + * permissions.c: Use "stat-macros.h" from gnulib. + + * postscript.c: Just #include instead of the crazy + rigmarole here before. + + * q2c.c: (main) Make generated code #include "gettext.h". + + * str.h: Get rid of most explicit declarations of standard + functions, in favor of including gnulib header files. + + * expressions/evaluate.c: Ditto. + + * expressions/operations.h.pl: Make generated code #include + , not "bool.h". + +Sat Jul 30 23:13:17 2005 Ben Pfaff + + * expressions/parse.c: (validate_function_args) Fix two msg() bugs + found by -Wformat. + +Sat Jul 30 23:10:01 2005 Ben Pfaff + + * expressions/evaluate.c: (expr_debug_print_postfix) Don't pass + null pointer to printf for %.*s. + +Sat Jul 30 23:05:33 2005 Ben Pfaff + + * vars-atr.c: (var_is_valid_name) Fix three msg() bugs found by + -Wformat. + +Sat Jul 30 22:58:33 2005 Ben Pfaff + + * rank.q: (parse_rank_function) Fix msg() bug found by -Wformat. + +Sat Jul 30 22:56:12 2005 Ben Pfaff + + * postscript.c: (postopen) Cast `char' to `unsigned char' before + passing to isspace(). + +Sat Jul 30 22:52:09 2005 Ben Pfaff + + * pfm-read.c: (read_variables) Fix msg() bug found by -Wformat. + +Sat Jul 30 22:50:57 2005 Ben Pfaff + + * histogram.c: Include . + +Sat Jul 30 22:48:50 2005 Ben Pfaff + + * get.c: (cmd_match_files) Fix msg() bug found by -Wformat. + +Sat Jul 30 22:46:10 2005 Ben Pfaff + + * format.c: (check_common_specifier) Fix msg() bug found by + -Wformat. + (check_output_specifier) Ditto. + +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', + and the latter prevents -Wformat from working. + +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 (PR 11677). + Finish fixing MATCH FILES (bug 11677). * get.c: (trim_dictionary) Rewrite in terms of drop_variables(), keep_variables(), rename_variables(). @@ -95,7 +1617,7 @@ Thu Apr 14 2005 John Darrington 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 (PR 12427). + fails, don't dereference the resulting null pointer (bug 12427). Also, fix double free error. Sat Mar 19 23:06:02 2005 Ben Pfaff @@ -117,7 +1639,7 @@ Mon Mar 14 21:52:34 2005 Ben Pfaff Mon Mar 14 21:07:23 2005 Ben Pfaff - Make sort stable (PR 12313). + Make sort stable (bug 12313). * sort.c: Don't need to include some headers anymore. (static var min_buffers) New variable. @@ -165,7 +1687,6 @@ Mon Mar 14 21:05:13 2005 Ben Pfaff * flip.c: (cmd_flip) Ditto. ->>>>>>> 1.161 Sun Mar 13 22:52:05 2005 Ben Pfaff * file-handle.q: (struct file_handle) `open_mode' should not be @@ -173,7 +1694,7 @@ Sun Mar 13 22:52:05 2005 Ben Pfaff Sun Mar 13 22:40:54 2005 Ben Pfaff - First phase of making SORT CASES stable (PR 12313). + 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. @@ -216,7 +1737,6 @@ Sun Mar 13 22:35:55 2005 Ben Pfaff (initialize_aggregate_info) Fix initialization for MIN, MAX for strings. ->>>>>>> 1.160 Sat Mar 12 23:26:21 2005 Ben Pfaff Start work on testing and debugging AGGREGATE. @@ -242,11 +1762,11 @@ Sun Mar 13 14:54:27 WST 2005 John Darrington Sat Mar 12 13:29:21 2005 Ben Pfaff * split-file.c: (cmd_split_file) Ignore LAYERED and SEPARATE - keywords (PR 11628). + keywords (bug 11628). Sat Mar 12 13:17:12 2005 Ben Pfaff - * vfm.c: (procedure_with_splits) Fix PR 11492: end_func() must be + * 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 @@ -330,7 +1850,7 @@ Sun Mar 6 23:25:40 2005 Ben Pfaff Sun Mar 6 19:52:22 2005 Ben Pfaff DATA LIST with free-field formats should not have implied decimal - places (PR 12035). Also clean up data-in.c a bit. + places (bug 12035). Also clean up data-in.c a bit. * data-in.h: (enum) Add DI_IMPLIED_DECIMALS. @@ -535,7 +2055,7 @@ Fri Feb 25 21:11:35 WST 2005 John Darrington Sun Feb 13 16:11:13 2005 Ben Pfaff - Fix PR 11955. + Fix bug 11955. * aggregate.c: (parse_aggregate_functions) Code cleanup. Important part: get rid of spurious copying of function->format to @@ -543,7 +2063,7 @@ Sun Feb 13 16:11:13 2005 Ben Pfaff Fri Feb 11 00:08:36 2005 Ben Pfaff - Fix PR 11916, which was confusing a variable's `index' member + 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. @@ -736,7 +2256,7 @@ Wed Jan 5 08:30:48 WST 2005 John Darrington 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 PR 11483. + v->aux, which is no longer needed. Fixes bug 11483. Sat Jan 1 19:01:16 WST 2005 John Darrington