pspp
20 years agoClean up pref.h.orig and deal with the consequences.
Ben Pfaff [Thu, 12 Feb 2004 08:19:49 +0000 (08:19 +0000)]
Clean up pref.h.orig and deal with the consequences.

20 years agoUpdate a rather poor Changelog entry, to give better information.
John Darrington [Thu, 12 Feb 2004 07:55:53 +0000 (07:55 +0000)]
Update a rather poor Changelog entry, to give better information.

20 years agoFixed crash from FLIP when a numeric variable is specified on NEWNAMES
Ben Pfaff [Thu, 12 Feb 2004 04:40:55 +0000 (04:40 +0000)]
Fixed crash from FLIP when a numeric variable is specified on NEWNAMES
and a large value is used, and a couple of other minor bugs in FLIP.

20 years agoFixed t-test so that multiple /pairs subcommands may be given.
John Darrington [Mon, 9 Feb 2004 10:57:28 +0000 (10:57 +0000)]
Fixed t-test so that multiple /pairs subcommands may be given.

20 years agoImplemented calculations for the paired samples t-test
John Darrington [Mon, 9 Feb 2004 03:26:12 +0000 (03:26 +0000)]
Implemented calculations for the paired samples t-test

20 years agoAdded calculations for the correlation for paired samples in t-test
John Darrington [Sun, 8 Feb 2004 14:59:41 +0000 (14:59 +0000)]
Added calculations for the correlation for paired samples in t-test

20 years agoAdded a (currently unpopulated) box for the paired samples correlations
John Darrington [Fri, 6 Feb 2004 00:13:52 +0000 (00:13 +0000)]
Added a (currently unpopulated) box for the paired samples correlations

20 years agoFixed a bug which crashed PSPP under invalid input.
John Darrington [Thu, 5 Feb 2004 06:56:45 +0000 (06:56 +0000)]
Fixed a bug which crashed PSPP under invalid input.
Factored out some translatable strings.

20 years agoFixed a bug causing PSPP to crash under certain invalid input.
John Darrington [Thu, 5 Feb 2004 05:17:49 +0000 (05:17 +0000)]
Fixed a bug causing PSPP to crash under certain invalid input.

20 years agoAdded proper error messages in T-TEST
John Darrington [Wed, 4 Feb 2004 23:49:42 +0000 (23:49 +0000)]
Added proper error messages in T-TEST

20 years agoFixed bug calculating mean difference.
John Darrington [Wed, 4 Feb 2004 12:22:38 +0000 (12:22 +0000)]
Fixed bug calculating mean difference.

20 years agoAdded calculations for the one sample t test
John Darrington [Wed, 4 Feb 2004 08:03:06 +0000 (08:03 +0000)]
Added calculations for the one sample t test

20 years ago(render_strip) Fix bug that sometimes caused joined text in joined
Ben Pfaff [Wed, 4 Feb 2004 04:09:26 +0000 (04:09 +0000)]
(render_strip) Fix bug that sometimes caused joined text in joined
cells to be rendered outside box boundaries.

20 years agoAdd item.
Ben Pfaff [Wed, 4 Feb 2004 02:31:02 +0000 (02:31 +0000)]
Add item.

20 years agoRemoved some vertical whitespace and added some horizontal
John Darrington [Tue, 3 Feb 2004 11:36:55 +0000 (11:36 +0000)]
Removed some vertical whitespace and added some horizontal

20 years agoFixed bug building while configured with --with-included-gettext
John Darrington [Tue, 3 Feb 2004 11:16:25 +0000 (11:16 +0000)]
Fixed bug building while configured with --with-included-gettext

20 years agoFixed seeding of random number generator.
John Darrington [Tue, 3 Feb 2004 11:01:23 +0000 (11:01 +0000)]
Fixed seeding of random number generator.

20 years ago(rng_get_double) Fix always-returning-zero bug in my preferred way,
Ben Pfaff [Tue, 3 Feb 2004 07:47:46 +0000 (07:47 +0000)]
(rng_get_double) Fix always-returning-zero bug in my preferred way,
and at the same time make sure rounding doesn't bite us.

20 years agoFixed a bug where the random number generator always returned zero.
John Darrington [Tue, 3 Feb 2004 07:03:08 +0000 (07:03 +0000)]
Fixed a bug where the random number generator always returned zero.

20 years agoAdded workaround for annoying gettextize behaviour
John Darrington [Tue, 3 Feb 2004 01:28:35 +0000 (01:28 +0000)]
Added workaround for annoying gettextize behaviour

20 years agoAdded version.c to the CLEANFILES target (ensures that a new date stamp gets
John Darrington [Fri, 30 Jan 2004 11:51:21 +0000 (11:51 +0000)]
Added version.c to the CLEANFILES target (ensures that a new date stamp gets
applied to each build).

20 years agoRewritten the t-test (no calculations yet).
John Darrington [Fri, 30 Jan 2004 03:01:28 +0000 (03:01 +0000)]
Rewritten the t-test (no calculations yet).

20 years agoAdded bounds checking to tab.c
John Darrington [Fri, 30 Jan 2004 00:29:40 +0000 (00:29 +0000)]
Added bounds checking to tab.c

20 years agoRemoved inappropriate assertion from list.q
John Darrington [Thu, 29 Jan 2004 23:54:37 +0000 (23:54 +0000)]
Removed inappropriate assertion from list.q

20 years agofixed broken dependency in Smake
John Darrington [Tue, 27 Jan 2004 01:22:25 +0000 (01:22 +0000)]
fixed broken dependency in Smake

20 years agoRemoved some generated files.
John Darrington [Tue, 27 Jan 2004 00:50:27 +0000 (00:50 +0000)]
Removed some generated files.
Removed references to `fiasco' (except historical data).

20 years agoFixed some issues with internationalisation
John Darrington [Tue, 27 Jan 2004 00:08:54 +0000 (00:08 +0000)]
Fixed some issues with internationalisation

20 years agoTest commits.
Ben Pfaff [Fri, 23 Jan 2004 01:23:22 +0000 (01:23 +0000)]
Test commits.

20 years agoFixed a buglet in the ERASE command, added a test for it, and some documentation.
John Darrington [Mon, 5 Jan 2004 06:26:03 +0000 (06:26 +0000)]
Fixed a buglet in the ERASE command, added a test for it, and some documentation.

20 years agoAdded documentation for the HOST command.
John Darrington [Mon, 5 Jan 2004 04:35:25 +0000 (04:35 +0000)]
Added documentation for the HOST command.

20 years agoAdded test for bug in FREQ command.
John Darrington [Sun, 4 Jan 2004 23:19:39 +0000 (23:19 +0000)]
Added test for bug in FREQ command.

20 years agoThu Jan 1 23:16:41 2004 Ben Pfaff <blp@gnu.org>
Ben Pfaff [Fri, 2 Jan 2004 07:28:39 +0000 (07:28 +0000)]
Thu Jan  1 23:16:41 2004  Ben Pfaff  <blp@gnu.org>

* html.c: (change_attributes) Dead code, removed.
(escape_string) Eliminate code to call change_attributes() that
never actually called it.
(output_tab_table) Get rid of dependence on tab_hit
and struct tab_joined_cell's hit member, which are abominations.

* tab.c: (tab_output_text) Don't call
d->class->text_set_font_by_name if it's a null pointer.
(macro UNROLL_LOOP) Eliminate.
(macro UNROLL_3_LOOPS) Eliminate
(tabi_render) Rewrite not to use the above macros.

Thu Jan  1 23:09:07 2004  Ben Pfaff  <blp@gnu.org>

Start working on a new output driver system, one that doesn't suck
so much, by adding a "device-independent" output driver.  The idea
is to write out only a single output stream, then use separate
processes to translate them into whatever formats we want.  This
is similar to how "groff" works with its various output drivers
(grops, grotty, grodvi, ...).

* Makefile.am: (pspp_SOURCES) Add devind.c, devind.h.

* list.q: (write_all_headers) Stub out devind class.
(clean_up) Ditto.
(determine_layout) Ditto.
(list_cases) Ditto.

* output.c: (outp_init) Add devind class.

* devind.c: New file.

* devind.h: New file.

Thu Jan  1 23:08:14 2004  Ben Pfaff  <blp@gnu.org>

* frequencies.q: (hash_value_alpha) Fixed up the previous change
to use the proper string length.

20 years agoFixed a bug in frequencies.q which would crash on alpha values
John Darrington [Wed, 31 Dec 2003 08:28:06 +0000 (08:28 +0000)]
Fixed a bug in frequencies.q which would crash on alpha values

20 years agoTue Dec 30 22:42:57 2003 Ben Pfaff <blp@gnu.org>
Ben Pfaff [Wed, 31 Dec 2003 06:46:22 +0000 (06:46 +0000)]
Tue Dec 30 22:42:57 2003  Ben Pfaff  <blp@gnu.org>

* Removed bletcherous alloca() workarounds for AIX from top of
many files.  AIX can use the alternative alloca() implementation
instead.

20 years agoTue Dec 30 22:37:04 2003 Ben Pfaff <blp@gnu.org>
Ben Pfaff [Wed, 31 Dec 2003 06:40:48 +0000 (06:40 +0000)]
Tue Dec 30 22:37:04 2003  Ben Pfaff  <blp@gnu.org>

* devices: Add "squeeze=on top-margin=0 bottom-margin=0" to
raw-ascii to make test output more readable.

Tue Dec 30 22:35:16 2003  Ben Pfaff  <blp@gnu.org>

* ascii.c: (ascii_option) Fix implementation of headers option.

Tue Dec 30 22:32:53 2003  Ben Pfaff  <blp@gnu.org>

* ascii.c: Add a "squeeze" option to the ASCII driver to squeeze
multiple blank lines into one.
(struct ascii_driver_ext) Add squeeze_blank_lines option.
(ascii_preopen_driver) Initialize squeeze_blank_lines.
(static var option_tab) Add squeeze entry.
(ascii_option) Set squeeze_blank_lines.
(output_lines) Implement squeezing blank lines.

20 years agoRemoved redundant code from output.h
John Darrington [Tue, 30 Dec 2003 23:22:03 +0000 (23:22 +0000)]
Removed redundant code from output.h

20 years agoFixed floating point rounding problem
John Darrington [Tue, 30 Dec 2003 14:25:24 +0000 (14:25 +0000)]
Fixed floating point rounding problem

20 years agoSat Dec 27 16:16:49 2003 Ben Pfaff <blp@gnu.org>
Ben Pfaff [Tue, 30 Dec 2003 04:42:15 +0000 (04:42 +0000)]
Sat Dec 27 16:16:49 2003  Ben Pfaff  <blp@gnu.org>

* configure.ac: Add -Wmissing-prototypes flag to gcc.

* TODO: Updated.

Sat Dec 27 22:17:52 2003  Ben Pfaff  <blp@gnu.org>

Dictionary classes: each variable is "ordinary", "system", or
"scratch".

* var.h: (enum dict_class) New enum.

* vars-prs.c: (dict_class_from_id) New function.
(dict_class_to_name) New function.

Sat Dec 27 22:16:06 2003  Ben Pfaff  <blp@gnu.org>

* var.h: (struct freq_tab_set) Removed (not used).

Sat Dec 27 22:15:21 2003  Ben Pfaff  <blp@gnu.org>

* value-labels.c: (val_labs_destroy) vls needs to be freed too.

Sat Dec 27 22:10:49 2003  Ben Pfaff  <blp@gnu.org>

* stats.c: (hypercube) Rename pow4().  All references updated.

Sat Dec 27 22:05:49 2003  Ben Pfaff  <blp@gnu.org>

* rename-vars.c: (cmd_rename_variables) Rewritten.
(compare_name) Removed.

Sat Dec 27 22:03:51 2003  Ben Pfaff  <blp@gnu.org>

var_set feature, and code taking advantage of it.

* crosstabs.q: (static var var_dict) Removed.
(static var variables) New variable.
(static var variables_cnt) New variable.
(cmd_crosstabs) Free variables instead of var_dict.
(internal_cmd_crosstabs) Initialize and use variables,
variables_cnt instead of var_dict.
(free_var_dict) Removed.
(crs_custom_tables) Use var_set instead of a copied dictionary.
(crs_custom_variables) Set up variables, variables_cnt instead of
var_dict.
[DEBUGGING] (debug_print) Ditto.

* means.q: (mns_custom_tables) Use var_set instead of a copied
dictionary.

* vars-prs.c: (parse_vs_variable) New function.
(parse_dict_variable) Rewritten.
(parse_variable) Rewritten.
(parse_variables) Renamed parse_var_set_vars(), rewritten.
(parse_variables) New function in terms of parse_var_set_vars().
Now requires its first argument to be non-null.  All references
that passed a null pointer updated to pass default_dict instead.
(macro id_dict) Removed.
(parse_DATA_LIST_vars) Add assertions.
(parse_mixed_vars) Ditto.
(struct var_set) New structure.
(var_set_get_cnt) New function.
(var_set_get_var) New function.
(var_set_lookup_var) New function.
(var_set_destroy) New function.
(dict_var_set_get_cnt) New function.
(dict_var_set_get_var) New function.
(dict_var_set_lookup_var) New function.
(dict_var_set_destroy) New function.
(var_set_create_from_dict) New function.
(struct array_var_set) New structure.
(array_var_set_get_cnt) New function.
(array_var_set_get_var) New function.
(array_var_set_lookup_var) New function.
(array_var_set_destroy) New function.
(var_set_create_from_array) New function.

* q2c.c: (dump_parser) Use parse_variables(default_dict, ...)
instead of parse_variables(NULL, ...) in output code.

Sat Dec 27 21:38:53 2003  Ben Pfaff  <blp@gnu.org>

Change inp_init from a 2-bit vector to an ordinary array.
Initialize it all in cmd_end_input_program() instead of in
create_variable().

* inpt-pgm.c: (enum value_init_type) New enum.
(global var inp_init) Change to `enum value_init_type *', make
static.
(inp_init_size) Removed.
(inp_nval) Change to `size_t', make static.
(cmd_input_program) Don't initialize inp_init or inp_init_size.
(cmd_end_input_program) Initialize inp_init, inp_nval.
(init_case) Rewrite.
(clear_case) Rewrite.

* inpt-pgm.h: Removed.

Sat Dec 27 21:36:38 2003  Ben Pfaff  <blp@gnu.org>

* hash.c: (hsh_hash_bytes) Use Fowler-Noll-Vo hash instead of
Colin Plumb hash.  It is simpler and should better resist
collisions.
(hsh_hash_string) Ditto.

Sat Dec 27 21:34:57 2003  Ben Pfaff  <blp@gnu.org>

* get.c: (export_write_case_func) Remove debug printing code.

Sat Dec 27 21:11:09 2003  Ben Pfaff  <blp@gnu.org>

* get.c: (cmd_save_internal) Rename parameter.  Use &t->h instead
of cast.
(save_write_case_func) Use &trns->h instead of cast.
(cmd_export) Use &t->h instead of cast.

Sat Dec 27 20:57:42 2003  Ben Pfaff  <blp@gnu.org>

Moved vectors into the dictionary.

* var.h: (struct vector) Moved here from vector.h.  `index' member
renamed `idx', `v' renamed `var', `nv' renamed `cnt'.  All
references updated.

* vector.h: Removed.

* vector.c: (global var vec) Removed.
(global var nvec) Removed.
(cmd_vector) Rewritten.
(find_vector) Removed.

* dictionary.c: (dict_create_vector) New function.
(dict_get_vector) New function, replaces reading global vec[]
array.
(dict_get_vector_cnt) New function, replaces reading global nvec
variable.
(dict_lookup_vector) New function, replaces find_vector().
(dict_clear_vectors) New function.

Sat Dec 27 20:54:01 2003  Ben Pfaff  <blp@gnu.org>

Start to move away from `struct variable' p `union' member to void
* aux member.

* var.h: (struct variable) Add `aux' member.

Sat Dec 27 20:36:25 2003  Ben Pfaff  <blp@gnu.org>

Get rid of struct variable `foo' member.

* frequencies.q: (internal_cmd_frequencies) Use p.frq.used instead
of foo.
(frq_custom_variables) Ditto.
(frq_custom_grouped) Ditto.

* get.c: (struct save_trns) Change `var' member from `int *' to
`struct variable **'.
(cmd_save_internal) Use aux instead of foo.
(save_trns_proc) Use revised `var' member.
(static var mtf_seq_no) Renamed mtf_seq_num.
(static var mtf_seq_nums) New static var.
(cmd_match_files) Initialize mtf_seq_nums.
(mtf_free) Free mtf_seq_nums.
(mtf_processing) Use mtf_seq_nums instead of foo.
(mtf_merge_dictionary) No need to initialize mv->foo.
(cmd_export) Use aux instead of foo.  Use revised `var' member.
(mns_custom_tables) Don't use foo to check for duplicates, that's
what PV_NO_DUPLICATE is for.

* var.h: (struct variable) Remove `foo' member.
(struct frequencies_proc) New member.

Sat Dec 27 19:46:13 2003  Ben Pfaff  <blp@gnu.org>

Clean up COMPUTE and IF.

* compute.c: More or less rewrite the darn thing.
(struct compute_trns) Rename and reorder and add and delete
members.
(cmd_compute) Rewrite.
(compute_num) Make conditional on test expression.  Now used for
both COMPUTE and IF.
(compute_num_vec) Ditto.
(compute_str) Ditto.
(compute_str_vec) Ditto.
(cmd_if) Rewrite.
(if_num) Removed.
(if_num_vec) Removed.
(if_str) Removed.
(if_str_vec) Removed.
(parse_target_expression) Renamed parse_rvalue_expression(),
rewritten.
(new_trns) Renamed compute_trns_create(), rewritten.
(delete_trns) Removed.
(free_trns) Renamed compute_trns_free(), rewritten.
(struct lvalue) New structure.
(parse_var_or_vec) Renamed lvalue_parse(), rewritten.
(lvalue_get_type) New function.
(lvalue_is_vector) New function.
(lvalue_finalize) New function.
(lvalue_destroy) New function.

Sat Dec 27 19:44:14 2003  Ben Pfaff  <blp@gnu.org>

* command.def: Disallow MODIFY VARS in input mode, so that
variables can't get dropped and confuse cmd_end_input_program()'s
attempt to fill inp_init[].

* modify-vars.c: (static var forward_positional_ordering) New
variable.
(struct var_modification) Entirely changed.
(rearrange_dict) Interface changed, rewritten.
(cmd_modify_vars) Deal with modified struct var_modification, much
rewritten.
(struct var_renaming) New structure.
(compare_var_renaming_by_new_name) New function.
(validate_var_modification) New function.

* var.h: (struct modify_vars_proc) Removed.
(struct variable) Removed member p.mfv.

Sat Dec 27 19:40:26 2003  Ben Pfaff  <blp@gnu.org>

Make EVALUATE a valid command whether we're debugging or not, so
that `make check' can succeed regardless of whether debugging is
turned on.

* command.def: [GLOBAL_DEBUGGING] Drop the #if.

* compute.c: [GLOBAL_DEBUGGING] (cmd_evaluate) Drop the #if.

Sat Dec 27 19:34:40 2003  Ben Pfaff  <blp@gnu.org>

* apply-dict.c: (cmd_apply_dictionary) Replace a ghastly switch
statement by a simple if test.

* dfm.c: (dfm_get_record) Add assertion.

Sat Dec 27 17:51:26 2003  Ben Pfaff  <blp@gnu.org>

For each file x.c, move #include "x.h" to the very top of the
include list, to catch x.h failing to include the proper headers.

Sat Dec 27 17:50:19 2003  Ben Pfaff  <blp@gnu.org>

* algorithm.c: (find) New function.
(remove_equal) New function.
(set_difference) New function.
(adjacent_find_equal) New function.
[TEST_UNIQUE] Removed test case.
(copy_if) Find end test.

Sat Dec 27 17:42:45 2003  Ben Pfaff  <blp@gnu.org>

* dictionary.c: (dict_get_case_weight) New convenience function.

* aggregate.c: (accumulate_aggregate_info) Use
dict_get_case_weight().

* frequencies.q: (calc_general) Ditto.
(calc_integer) Ditto.
(calc) Ditto.

* t-test.q: (groups_calc) Ditto.
(z_calc) Ditto.

Sat Dec 27 17:29:45 2003  Ben Pfaff  <blp@gnu.org>

* glob.c: (global var default_dict) Change from `struct
dictionary' to `struct dictionary *'.  All references changed.
(init_glob) Initialize default_dict with dict_create().

Sat Dec 27 17:06:06 2003  Ben Pfaff  <blp@gnu.org>

struct dictionary now made opaque.  All related functions:

* get.c: (rename_variables) Removed.
(dict_delete_run) Removed.

* temporary.c: (copy_variable) Removed.
(new_dictionary) Removed.
(save_dictionary) Removed.
(restore_dictionary) Removed.
(free_dictionary) Removed.

* vars-atr.c: (clear_default_dict) Removed.
(find_variable) Removed.
(find_dict_variable) Removed.
(create_variable) Removed.
(delete_variable) Removed.
(common_init_stuff) Removed.
(init_variable) Removed.  Updating of inp_init moved into
cmd_end_input_program().
(replace_variable) Removed.
(rename_variable) Removed.
(clear_variable) Removed.
(dup_variable) Removed.

* vars-prs.c: (is_varname) Removed.
(is_dict_varname) Removed.
(fill_all_vars) Removed.

* vector.c: (find_vector) Removed.

* weight.c: (stop_weighting) Removed.

* dictionary.c: New file.
(dict_create) New, replaces new_dictionary().
(dict_clone) New, replaces save_dictionary() and
restore_dictionary().
(dict_clear) New, replaces clear_default_dict().
(dict_destroy) New, replaces free_dictionary().
(dict_get_var_cnt) New function, replaces references to
dict->nvar.
(dict_get_var) New function, replaces references to dict->var[i].
(dict_get_vars) New function, replaces fill_all_vars().
(dict_create_var) New, replaces create_variable().  Interface
drops `type' parameter, using a zero `width' to designate numeric.
(dict_clone_var) New, replaces dup_variable().
(dict_rename_var) New, replaces rename_variable().
(dict_lookup_var) New, replaces find_variable(),
find_dict_variable(), is_varname().
(dict_contains_var) New function.
(compare_variable_dblptrs) New function.
(dict_delete_var) New function, replaces clear_variable().
(dict_delete_vars) New function, replaces dict_delete_run().
(dict_reorder_vars) New function.
(dict_rename_vars) New function, replaces rename_variables().
(dict_get_weight) New function, replaces reading dict->weight_var.
(dict_set_weight) New function, replaces writing dict->weight_var
or calling stop_weight(dict).
(dict_get_filter) New function, replaces reading dict->filter_var.
(dict_set_filter) New function, replaces writing dict->filter_var.
(dict_get_case_limit) New function, replaces reading dict->N.
(dict_set_case_limit) New function, replaces writing dict->N.
(dict_get_value_cnt) New function, replaces reading dict->nval.
(dict_compact_values) New function, replaces a loop that was
replicated in several places.
(dict_get_split_vars) New function, replaces reading dict->splits.
(dict_get_split_cnt) New function, replaces reading
dict->n_splits.
(dict_set_split_vars) New function, replaces writing dict->splits.
(dict_get_label) New function, replaces reading dict->label.
(dict_set_label) New function, replaces writing dict->label.
(dict_get_documents) New function, replaces reading
dict->documents.
(dict_set_documents) New function, replaces writing
dict->documents.

All references to above functions updated.

* aggregate.c: (cmd_aggregate) Copy file label and documents from
old dictionary to new by hand, because dict_create() can't do it
itself.  Use dict_set_documents(), dict_set_split_vars().

* temporary.c: (cancel_temporary) Also set temp_dict to NULL after
calling dict_destroy().

* data-list.c: (dls_var_spec) Remove `type' member, replace by
`width'.
(fixed_parse_compatible) Some slightly nontrivial changes for
dict_create_var().
(dump_fmt_list) Ditto.
(parse_free) Ditto.

* file-type.c: (create_col_var) Ditto.

* get.c: (cmd_get) Use dict_compact_values() instead of a loop.
(trim_dictionary) Use dict_delete_vars(), dict_reorder_vars().
(rename_variables) Use dict_rename_vars().
(mtf_merge_dictionary) Use dict_get_documents(),
dict_set_documents(), dict_compact_values().

* pfm-read.c: (read_variables) Deal with changes to weighting.

* q2c.c: (dump_parser) Use dict_lookup_var() instead of
is_varname() in output code.

* sfm-read.c: (read_header) Use dict_create(), dict_set_label(),
other dictionary functions.

* title.c: (add_document_line) Use dict_get_documents(),
dict_set_documents().

* vars-atr.c: (discard_variables) Use dict_clear(default_dict),
reset default_handle by hand.  dict_clear() will clear vectors so
there's no need for that by hand.

* vfm.c: (close_active_file) Move call to finish_compaction()
earlier, so that we can do the compaction as a single step using
dict_compact_values().  Use dict_clear_vectors().
(finish_compaction) Use dict_delete_var(), dict_compact_values().

Some functions don't have replacements:

* vars-atr.c: (force_create_variable) Removed.  All references
updated to dict_create_var() followed by an assertion.
(force_dup_variable) Removed.  All references updated to
dict_clone_var() followed by an assertion.

* weight.c: (update_weighting) Removed.  No longer necessary, so
all references removed.

Sat Dec 27 16:43:01 2003  Ben Pfaff  <blp@gnu.org>

Clean up AGGREGATE.

* aggregate.c: Eliminate separation of weighted and unweighted
case.  It made the code too obscure and I doubt it was actually
faster.  Instead, all code uses the "weighted" code, because
that's a generalization of the "unweighted" code.
(FWEIGHT) Removed.
(FOPTIONS) Ditto.
(parse_aggregate_functions) No need to set FWEIGHT.
(accumulate_aggregate_info) Get rid of FWEIGHT cases.
(dump_aggregate_info) Ditto.
(initialize_aggregate_info) No need for special plain_function
that gets rid of FWEIGHT option.

* aggregate.c: Get rid of approximations.
(accumulate_aggregate_info) Don't use approx_gt(), approx_lt(),
approx_in_range().
(aggregate_single_case) Don't use approx_ne().

Sat Dec 27 16:19:36 2003  Ben Pfaff  <blp@gnu.org>

* ascii.c (ascii_line_width): Dead code, removed.

* postscript.c (ps_line_width): Ditto.

* q2c.c (xrealloc): Ditto.

* count.c (internal_cmd_count): Ditto.

* means.q (validate_dependent_endpoint): Ditto.

* set.q: (cmd_gset) Ditto.

* weight.c: [0] (weight_trns_proc) Ditto.

Sat Dec 27 16:18:16 2003  Ben Pfaff  <blp@gnu.org>

Make the code -Wmissing-prototypes clean.

* Makefile.am (version.c): Add #include "version.h".

* ascii.c: (ascii_open_global) Make static.
(ascii_close_page) Ditto.
(ascii_font_sizes) Ditto.
(ascii_postopen_driver) Ditto.
(ascii_close_driver) Ditto.
(ascii_option) Ditto.
(ascii_open_page) Ditto.
(ascii_line_horz) Ditto.
(ascii_line_vert) Ditto.
(ascii_line_intersection) Ditto.
(ascii_box) Ditto.
(ascii_polyline_begin) Ditto.
(ascii_polyline_point) Ditto.
(ascii_polyline_end) Ditto.
(ascii_text_set_font_by_name) Ditto.
(ascii_text_set_font_by_position) Ditto.
(ascii_text_set_font_by_family) Ditto.
(ascii_text_get_font_name) Ditto.
(ascii_text_get_font_family) Ditto.
(ascii_text_set_size) Ditto.
(ascii_text_get_size) Ditto.
(ascii_text_metrics) Ditto.
(ascii_text_draw) Ditto.
(ascii_close_page) Ditto.

* cmdline.h: New header for parse_command_line().  Used where
needed.

* command.c: Move prototypes for cmd_*() functions to command.h.

* command.h: Prototypes for cmd_*() functions moved here from
command.c.

* crosstabs.q: (gamma_int) Ditto.

* file-handle.h: Add fh_init_files() prototype.

* getline.c: (welcome) Ditto.

* glob.h: New header for init_glob().  Used where appropriate.

* hash.c: (comparison_helper) Ditto.

* html.c: (html_open_global) Ditto.
(html_close_global) Ditto.
(html_preopen_driver) Ditto.
(html_postopen_driver) Ditto.
(html_close_driver) Ditto.
(html_option) Ditto.
(html_open_page) Ditto.
(html_close_page) Ditto.
(html_submit) Ditto.

* inpt-pgm.c: (input_program_source_read) Ditto.

* output.c: (find_defn_value) Ditto.
(destroy_list) Ditto.

* pfm-read.c: (read_int) Ditto.

* postscript.c: (ps_open_global) Ditto.
(ps_close_global) Ditto.
(ps_font_sizes) Ditto.
(ps_preopen_driver) Ditto.
(ps_postopen_driver) Ditto.
(ps_close_driver) Ditto.
(ps_option) Ditto.
(ps_open_page) Ditto.
(ps_close_page) Ditto.
(ps_line_horz) Ditto.
(ps_line_vert) Ditto.
(ps_line_intersection) Ditto.
(ps_box) Ditto.
(ps_polyline_begin) Ditto.
(ps_polyline_point) Ditto.
(ps_polyline_end) Ditto.
(ps_text_set_font_by_name) Ditto.
(ps_text_set_font_by_position) Ditto.
(ps_text_set_font_family) Ditto.
(ps_text_get_font_name) Ditto.
(ps_text_get_font_family) Ditto.
(ps_text_set_size) Ditto.
(ps_text_get_size) Ditto.
(ps_text_metrics) Ditto.
(ps_text_draw) Ditto.

* q2c.c: (finish_up) Ditto.
(xmalloc) Ditto.
(xstrdup) Ditto.
(get_buffer) Ditto.
(st_lower) Ditto.
(st_upper) Ditto.
(skip_ws) Ditto.
(get_line) Ditto.
(add_symbol) Ditto.
(find_symbol) Ditto.
(lex_get) Ditto.
(force_id) Ditto.
(force_string) Ditto.
(match_id) Ditto.
(match_token) Ditto.
(skip_token) Ditto.
(parse) Ditto.
(parse_setting) Ditto.
(parse_specifier) Ditto.
(parse_specifiers) Ditto.
(parse_subcommand) Ditto.
(dump_specifier_vars) Ditto.
(is_keyword) Ditto.
(make_identifier) Ditto.
(dump_declarations) Ditto.
(dump_specifier_init) Ditto.
(dump_vars_init) Ditto.
(make_match) Ditto.
(dump_specifier_parse) Ditto.
(dump_subcommand) Ditto.
(dump_parser) Ditto.
(dump_header) Ditto.
(dump_free) Ditto.
(recognize_directive) Ditto.

* recode.c: (string_to_long) Ditto.

* repeat.c: (find_DO_REPEAT_substitution) Ditto.

* repeat.h: New header for perform_DO_REPEAT_substitutions, used
where appropriate.

* sort.c: (sort_stream_read) Ditto.
(sort_stream_mode) Ditto.

20 years agoSat Dec 27 16:37:07 2003 Ben Pfaff <blp@gnu.org>
Ben Pfaff [Tue, 30 Dec 2003 04:40:05 +0000 (04:40 +0000)]
Sat Dec 27 16:37:07 2003  Ben Pfaff  <blp@gnu.org>

* Makefile.am: (EXTRA_DIST) Add getopt.c, getopt1.c, memcpy.c,
strstr.c, which weren't being distributed for whatever reason.

* gettext.h: Removed.  We use the copy in intl/.

20 years agoSat Dec 27 16:36:05 2003 Ben Pfaff <blp@gnu.org>
Ben Pfaff [Tue, 30 Dec 2003 04:38:03 +0000 (04:38 +0000)]
Sat Dec 27 16:36:05 2003  Ben Pfaff  <blp@gnu.org>

* Makefile.am (MAKEINFO): Removed, since the manual validates (and
should validate from now on).

* pspp.texi: Updated.

20 years agoUpdated the message strings
John Darrington [Tue, 23 Dec 2003 03:35:19 +0000 (03:35 +0000)]
Updated the message strings

20 years agoUpdate authorship.
Ben Pfaff [Mon, 22 Dec 2003 18:33:06 +0000 (18:33 +0000)]
Update authorship.

20 years agoFactored out the bug report mailing address.
John Darrington [Sun, 21 Dec 2003 23:58:04 +0000 (23:58 +0000)]
Factored out the bug report mailing address.

20 years agoCorrected a few typos and clarified some things in the user manual
John Darrington [Sat, 20 Dec 2003 12:26:17 +0000 (12:26 +0000)]
Corrected a few typos and clarified some things in the user manual

20 years agoFixed a howler with pluralism --- impossible to internationalise
John Darrington [Sat, 20 Dec 2003 10:27:57 +0000 (10:27 +0000)]
Fixed a howler with pluralism --- impossible to internationalise

20 years agoFri Dec 19 23:35:04 2003 Ben Pfaff <blp@gnu.org>
Ben Pfaff [Sat, 20 Dec 2003 07:40:44 +0000 (07:40 +0000)]
Fri Dec 19 23:35:04 2003  Ben Pfaff  <blp@gnu.org>

* algorithm.c (binary_search): Fix comparison.

20 years agoFri Dec 19 23:27:45 2003 Ben Pfaff <blp@gnu.org>
Ben Pfaff [Sat, 20 Dec 2003 07:33:12 +0000 (07:33 +0000)]
Fri Dec 19 23:27:45 2003  Ben Pfaff  <blp@gnu.org>

* algorithm.c: (binary_search) Fix assertion.

20 years agoFri Dec 19 21:31:48 2003 Ben Pfaff <blp@gnu.org>
Ben Pfaff [Sat, 20 Dec 2003 05:37:03 +0000 (05:37 +0000)]
Fri Dec 19 21:31:48 2003  Ben Pfaff  <blp@gnu.org>

* sysfile-info.c: (compare_vectors_by_name) Rewrite.

20 years agoFri Dec 19 21:30:24 2003 Ben Pfaff <blp@gnu.org>
Ben Pfaff [Sat, 20 Dec 2003 05:35:51 +0000 (05:35 +0000)]
Fri Dec 19 21:30:24 2003  Ben Pfaff  <blp@gnu.org>

* sort.c: (compare_case_lists) Rewrite.

20 years agoFixed the make distcheck target
John Darrington [Sat, 20 Dec 2003 03:31:55 +0000 (03:31 +0000)]
Fixed the make distcheck target

20 years agoFixed some buglets in the tests
John Darrington [Sat, 20 Dec 2003 03:14:26 +0000 (03:14 +0000)]
Fixed some buglets in the tests

20 years agoFri Dec 19 16:44:22 2003 Ben Pfaff <blp@gnu.org>
Ben Pfaff [Sat, 20 Dec 2003 00:50:27 +0000 (00:50 +0000)]
Fri Dec 19 16:44:22 2003  Ben Pfaff  <blp@gnu.org>

* quicksort.c: Removed (not used).

* quicksort.h: Removed (not used).

* sort.c: Removed blp_quicksort() prototype.

20 years agoFri Dec 19 16:42:13 2003 Ben Pfaff <blp@gnu.org>
Ben Pfaff [Sat, 20 Dec 2003 00:47:56 +0000 (00:47 +0000)]
Fri Dec 19 16:42:13 2003  Ben Pfaff  <blp@gnu.org>

* postscript.c: (int_2_compare) Rewrite.
(compare_line) Rewrite.

20 years agoFri Dec 19 16:38:35 2003 Ben Pfaff <blp@gnu.org>
Ben Pfaff [Sat, 20 Dec 2003 00:44:35 +0000 (00:44 +0000)]
Fri Dec 19 16:38:35 2003  Ben Pfaff  <blp@gnu.org>

* matrix-data.c (compare_factors) Use lexicographical_compare()
algorithm.
(compare_doubles) New function.

* algorithm.c: (lexicographical_compare) New algorithm.

20 years agoFri Dec 19 16:23:45 2003 Ben Pfaff <blp@gnu.org>
Ben Pfaff [Sat, 20 Dec 2003 00:28:58 +0000 (00:28 +0000)]
Fri Dec 19 16:23:45 2003  Ben Pfaff  <blp@gnu.org>

* matrix-data.c (compare_variables_by_mxd_vartype): Rewrite.

20 years agoFri Dec 19 15:54:45 2003 Ben Pfaff <blp@gnu.org>
Ben Pfaff [Sat, 20 Dec 2003 00:25:23 +0000 (00:25 +0000)]
Fri Dec 19 15:54:45 2003  Ben Pfaff  <blp@gnu.org>

* expr-prs.c: (cmp_func) Removed.
(parse_function) Use binary_search() algorithm.
(compare_functions) New function.
(init_func_tab) Use sort() algorithm.

* algorithm.c: (binary_search) New algorithm.

20 years agoFri Dec 19 15:50:45 2003 Ben Pfaff <blp@gnu.org>
Ben Pfaff [Fri, 19 Dec 2003 23:57:18 +0000 (23:57 +0000)]
Fri Dec 19 15:50:45 2003  Ben Pfaff  <blp@gnu.org>

* descript.q: (display) Use sort() algorithm instead of qsort().
(compare_func) Removed.
(descriptives_compare_variables) New function.

20 years agoFri Dec 19 15:08:38 2003 Ben Pfaff <blp@gnu.org>
Ben Pfaff [Fri, 19 Dec 2003 23:42:07 +0000 (23:42 +0000)]
Fri Dec 19 15:08:38 2003  Ben Pfaff  <blp@gnu.org>

Get rid of AVL trees.  Hashes are more appropriate for everything
PSPP does.

* Makefile.am: (pspp_SOURCES) Remove avl.c, avl.h.

* avl.c: Removed.

* avl.h: Removed.

Fri Dec 19 14:33:31 2003  Ben Pfaff  <blp@gnu.org>

Much code can be clarified by using C++ STL-like algorithms.  Not
all uses of these algorithms are listed below, only the ones where
the change to an algorithm was the only change of interest.

* Makefile.am: (pspp_SOURCES) Add algorithm.c, algorithm.h.

* algorithm.c: New file.

* algorithm.h: New file.

* modify-vars.c: (static var forward) Removed.
(static var positional) Removed.
(compare_variables) Removed.
(struct ordering) New.
(cmd_modify_vars) Use sort() algorithm.
(compare_variables_given_ordering) New function.
(rearrange_dict) Use sort() algorithm.

* sysfile-info.c: (cmd_display) Use sort() algorithm.
(cmp_var_by_name) Removed.

Fri Dec 19 14:26:17 2003  Ben Pfaff  <blp@gnu.org>

Make file handles use a hash table.

* file-handle.q: (files) Change to hash table, make static.
(cmd_file_handle) Use hash table functions.
(fh_get_handle_by_filename) Ditto.
(fh_get_handle_by_name) Ditto.
(hash_file_handle) New function.
(cmp_file_handle) Rewrite.
(fh_init_files) Use hash table functions.

Fri Dec 19 14:24:38 2003  Ben Pfaff  <blp@gnu.org>

Clean up FREQUENCIES.

* Makefile.am: (pspp_SOURCES) Remove frequencies.g.

* frequencies.q: Remove a lot of old #if'd out code at the end.
(internal_cmd_frequencies) Use calc() instead of calc_no_weight()
or calc_weight().  Initialize percentile_values.
(calc) New function based on calc_weight() from frequencies.g.
(precalc) Use hash functions.
(static var comparison_func) Removed.
(static var comparison_param) Removed.
(comparison_helper) Removed.
(get_freq_comparator) New function.
(not_missing) New function.
(add_freq) Removed.
(postprocess_freq_tab) Use hash table functions, algorithms,
get_freq_comparator().  Rewrite.
(cleanup_freq_tab) Rephrase.
(add_percentile) Clean up spacing.
(hash_value_numeric) New function.
(hash_value_alpha) New function.
(compare_value_numeric_a) Rewrite.
(compare_value_alpha_a) Rewrite.
(compare_value_numeric_d) Rewrite.
(compare_value_alpha_d) Rewrite.
(compare_freq_numeric_a) Rewrite.
(compare_freq_alpha_a) Rewrite.
(compare_freq_numeric_d) Rewrite.
(compare_freq_alpha_d) Rewrite.
(calc_stats) Clean up mode, percentiles, max.
(dump_statistics) Clean up spacing.

* frequencies.g: Removed.

* var.h: (struct freq_tab) Change `data' to hash table.

Fri Dec 19 14:15:46 2003  Ben Pfaff  <blp@gnu.org>

* file-handle.h: Remove declaration of global variable `files',
which wasn't used anywhere.

* postscript.c: (add_encoding) Remove superfluous cast.
(line) Ditto.

* sfm-read.c: [linux] (bswap_int32) Drop ntohl() non-portable
version.

* temporary.c: [0] (display_tree) Removed.

Fri Dec 19 14:13:04 2003  Ben Pfaff  <blp@gnu.org>

Implement a new random number generator based on the alleged RC4
algorithm.

* expr-evl.c: (expr_evaluate) Use rng_get_double_normal() instead
of rand_normal().

* random.c: [!HAVE_GOOD_RANDOM] (real_rand) Removed.
[!HAVE_GOOD_RANDOM] (real_srand) Removed.
(macro k) Removed.
(static var V[]) Removed.
(static var Y) Removed.
(static var X2) Removed.
(setup_randomize) Removed.
(shuffle) Removed.
(rand_uniform) Removed.
(rand_normal) Removed.
(struct rng) New structure.
(rng_create) New function.
(rng_destroy) New function.
(swap_byte) New static function.
(rng_seed) New function.
(rng_get_bytes) New function.
(rng_get_int) New function.
(rng_get_unsigned) New function.
(rng_get_double) New function.
(rng_get_double_normal) New function.
(pspp_rng) New function.

* random.h: Sync up to random.c.

* sample.c: (struct sample_trns) Make `frac' unsigned and a
fraction of UINT_MAX, not 65536.
(cmd_sample) Use rng_get_unsigned(), rng_get_double(), UINT_MAX
fraction.

* vfm.c: (open_active_file) No need to call setup_randomize() any
longer.

Fri Dec 19 12:05:56 2003  Ben Pfaff  <blp@gnu.org>

Change dictionary name indexes to use hash tables instead of AVL
trees.

* crosstabs.q: (free_var_dict) Use hash tables.
(crs_custom_tables) Ditto.
(calc_general) Ditto.
(compare_table_entry) Rewrite.
(enum_var_values) Reorder parameters.  All references updated.
Rewrite.

* get.c: (rename_variable) Use hash tables.
(mtf_merge_dictionary) Ditto.

* glob.c: (init_glob) Use hash tables.
(cmp_variable) Removed.

* means.q: (mns_custom_tables) Use hash tables.

* modify-vars.c: (rearrange_dict) Use hash tables.

* rename-vars.c: (cmd_rename_variables) Use hash tables.

* sfm-read.c: (read_header) Use hash tables.
(read_variables) Ditto.

* temporary.c: (new_dictionary) Use hash tables.
(save_dictionary) Ditto.
(restore_dictionary) Ditto.

* var.h: (struct dictionary) Change AVL tree `var_by_name' into
hash table `name_tab'.

* vars-atr.c: [DEBUGGING] (dump_one_var_node) Removed.
[DEBUGGING] (dump_var_tree) Removed.
(find_variable) Use hash tables.
(find_dict_variable) Ditto.
(common_init_stuff) Ditto.
(rename_variable) Ditto.
(clear_variable) Ditto.  Also, remove debug code.
(dup_variable) Use hash tables.

* vars-prs.c: (fill_all_vars) Use hash tables.
(is_dict_varname) Ditto.
(parse_dict_variable) Ditto.

Fri Dec 19 11:46:23 2003  Ben Pfaff  <blp@gnu.org>

Change value labels to use hash tables instead of AVL trees, and
change value labels into an ADT.

* Makefile.am: (pspp_SOURCES) Add value-labels.c, value-labels.h.

* value-labels.c: New file.

* value-labels.h: New file.

* apply-dict.c: (cmd_apply_dictionary) Use value label ADT.
Get rid of a stupid use of goto.

* autorecode.c: (compare_alpha_value) Rewrite.
(hash_alpha_value) Ditto.
(compare_numeric_value) Rewrite.
(hash_numeric_value) Ditto.

* frequencies.q: (dump_full) Use value label ADT.

* pfm-read.c: (read_value_label) Use value label ADT.

* pfm-write.c: (write_value_labels) Use value label ADT.

* sfm-read.c: (read_variables) Use value label ADT.
(read_value_labels) Rewrite.

* sfm-write.c: (write_value_labels) Rewrite.

* sysfile-info.c: (cmd_sysfile_info) Use value label ADT.
(display_variables) Ditto.
(describe_variable) Ditto.

* t-test.q: (print_t_groups) Use value label ADT.

* temporary.c: (copy_variable) Use value label ADT.
(free_dictionary) Ditto.

* val-labs.c: (verify_val_labs) Use value label ADT.
(get_label) Ditto.
(debug_print) Ditto.
(val_lab_cmp) Removed.
(inc_ref_count) Removed.
(copy_value_labels) Removed.

* var.h: (struct value_label) Removed.
(struct variable) Change AVL tree `val_lab' into hash table
`val_labs'.

* vars-atr.c: (init_variable) Use value label ADT.
(clear_variable) Ditto.
(free_value_label) Removed.
(free_val_lab) Removed.
(get_val_lab) Removed.
(compare_variables) New function.
(hash_variable) New function.

* vfm.c: (dump_splits) Use value label ADT.

Fri Dec 19 11:18:11 2003  Ben Pfaff  <blp@gnu.org>

Add to the hash table interface.

* hash.c: (hsh_hash_bytes) Add assertion.
(hsh_hash_string) Ditto.
(hsh_clear) Ditto.
(hsh_rehash) Ditto.
(hsh_probe) Ditto.
(hsh_create) Ditto.  Also make minimum `size'.
(hsh_destroy) Rephrase.
(sort_nulls_last) Removed.
(not_null) New function.
(hsh_data) Ditto.
(comparison_helper) Ditto.
(hsh_sort) Rewritten.
(hsh_data_copy) New function.
(hsh_sort_copy) Ditto.
(hsh_insert) Ditto.
(hsh_replace) Ditto.
(hsh_hash_double) Ditto.
(hsh_delete) Fix stupid bug.

20 years agoAdded an implementation for FREQUENCIES/PERCENTILES
John Darrington [Fri, 19 Dec 2003 07:17:59 +0000 (07:17 +0000)]
Added an implementation for FREQUENCIES/PERCENTILES

20 years agoUpdate.
Ben Pfaff [Fri, 19 Dec 2003 07:02:52 +0000 (07:02 +0000)]
Update.

20 years agoAdded a calculation of mode to FREQUENCIES
John Darrington [Thu, 18 Dec 2003 04:25:59 +0000 (04:25 +0000)]
Added a calculation of mode to FREQUENCIES

20 years agoAdded a test for the FILTER command
John Darrington [Thu, 18 Dec 2003 02:12:11 +0000 (02:12 +0000)]
Added a test for the FILTER command

20 years agoFixed buglet in gmp CHECK_LIB
John Darrington [Thu, 18 Dec 2003 00:42:13 +0000 (00:42 +0000)]
Fixed buglet in gmp CHECK_LIB

20 years agoFix complaints by recent Texinfo versions.
Ben Pfaff [Wed, 17 Dec 2003 18:12:31 +0000 (18:12 +0000)]
Fix complaints by recent Texinfo versions.

20 years agoAdded a test for the WEIGHT command
John Darrington [Wed, 17 Dec 2003 06:03:19 +0000 (06:03 +0000)]
Added a test for the WEIGHT command

20 years agoAdded a test for the compute command.
John Darrington [Wed, 17 Dec 2003 05:39:14 +0000 (05:39 +0000)]
Added a test for the compute command.

20 years agoAdded a --enable-debug option to configure and
John Darrington [Wed, 17 Dec 2003 04:58:49 +0000 (04:58 +0000)]
Added a --enable-debug option to configure and
moved (un)def of DEBUGGING from src files to config.h

20 years agoAdded a test for the LIST command
John Darrington [Wed, 17 Dec 2003 01:28:10 +0000 (01:28 +0000)]
Added a test for the LIST command

20 years agoAdded a test for the FILE LABEL and DOCUMENT commands
John Darrington [Wed, 17 Dec 2003 01:09:47 +0000 (01:09 +0000)]
Added a test for the FILE LABEL and DOCUMENT commands

20 years agoAdded a couple more tests
John Darrington [Wed, 17 Dec 2003 01:08:29 +0000 (01:08 +0000)]
Added a couple more tests

20 years agoAdded tests for LOOP and SAMPLE commands
John Darrington [Wed, 17 Dec 2003 00:30:15 +0000 (00:30 +0000)]
Added tests for LOOP and SAMPLE commands

20 years agoFixed a problem with some tests
John Darrington [Tue, 16 Dec 2003 23:44:28 +0000 (23:44 +0000)]
Fixed a problem with some tests

20 years agoSample proportion is only approximate.
Ben Pfaff [Tue, 16 Dec 2003 17:53:07 +0000 (17:53 +0000)]
Sample proportion is only approximate.

20 years agoFixed another problem with print.sh
John Darrington [Tue, 16 Dec 2003 11:19:51 +0000 (11:19 +0000)]
Fixed another problem with print.sh

20 years agoFixed up the PRINT test
John Darrington [Tue, 16 Dec 2003 10:48:34 +0000 (10:48 +0000)]
Fixed up the PRINT test

20 years agoAdded new tests
John Darrington [Tue, 16 Dec 2003 08:59:04 +0000 (08:59 +0000)]
Added new tests

20 years agoAdded a test to ensure that tabs can be input into strings
John Darrington [Tue, 16 Dec 2003 08:57:10 +0000 (08:57 +0000)]
Added a test to ensure that tabs can be input into strings

20 years agoAdded a test for the lag command and started on the sample command
John Darrington [Tue, 16 Dec 2003 08:30:11 +0000 (08:30 +0000)]
Added a test for the lag command and started on the sample command

20 years agoAdded test for a bug in crosstab.q which caused a crash
John Darrington [Tue, 16 Dec 2003 06:54:44 +0000 (06:54 +0000)]
Added test for a bug in crosstab.q which caused a crash

20 years agoFixed bug in crosstabs.q which caused a system crash
John Darrington [Tue, 16 Dec 2003 06:45:03 +0000 (06:45 +0000)]
Fixed bug in crosstabs.q which caused a system crash

20 years agoFix spacing.
Ben Pfaff [Tue, 16 Dec 2003 05:43:49 +0000 (05:43 +0000)]
Fix spacing.

20 years ago * groff-font.c: (add_kern) Fix indentation.
Ben Pfaff [Tue, 16 Dec 2003 05:43:20 +0000 (05:43 +0000)]
* groff-font.c: (add_kern) Fix indentation.
(add_kern) Use & instead of % to take power-of-2 modulus.
(font_get_kern_adjust) Likewise.

20 years agoAltered return status to be non zero if there are errors parsing data
John Darrington [Tue, 16 Dec 2003 05:20:36 +0000 (05:20 +0000)]
Altered return status to be non zero if there are errors parsing data

20 years agoAdded a test for the PRINT command
John Darrington [Tue, 16 Dec 2003 05:14:54 +0000 (05:14 +0000)]
Added a test for the PRINT command

20 years agoAdded tests for descriptives and flip
John Darrington [Tue, 16 Dec 2003 02:57:32 +0000 (02:57 +0000)]
Added tests for descriptives and flip

20 years agoAdded tests for count and sort
John Darrington [Tue, 16 Dec 2003 01:08:35 +0000 (01:08 +0000)]
Added tests for count and sort

20 years agoFixed up the test for big numbers
John Darrington [Tue, 16 Dec 2003 00:14:24 +0000 (00:14 +0000)]
Fixed up the test for big numbers

20 years agoFixed some changes, which didn't work with certain versions of diff
John Darrington [Mon, 15 Dec 2003 23:56:49 +0000 (23:56 +0000)]
Fixed some changes, which didn't work with certain versions of diff

20 years agoStarted converting the make check target to aegis style tests
John Darrington [Mon, 15 Dec 2003 13:48:52 +0000 (13:48 +0000)]
Started converting the make check target to aegis style tests

20 years agoPatched bug(s) in postscipt driver
John Darrington [Mon, 15 Dec 2003 07:35:06 +0000 (07:35 +0000)]
Patched bug(s) in postscipt driver

20 years agoFixed buglet building under cygwin
John Darrington [Mon, 15 Dec 2003 05:51:56 +0000 (05:51 +0000)]
Fixed buglet building under cygwin

20 years agoFixed bug initialising termcap
John Darrington [Mon, 15 Dec 2003 03:06:15 +0000 (03:06 +0000)]
Fixed bug initialising termcap

20 years agoRe adding files in intl, which I forgot
John Darrington [Sat, 13 Dec 2003 11:25:09 +0000 (11:25 +0000)]
Re adding files in intl, which I forgot

20 years agoFixed intl/ and some tests, so that the project can be built and tested
John Darrington [Sat, 13 Dec 2003 11:18:31 +0000 (11:18 +0000)]
Fixed intl/ and some tests, so that the project can be built and tested
from outside of the source tree (or at least it will when some bugs are
squashed)

20 years agoFixed up the tests, so that make check now works
John Darrington [Sat, 13 Dec 2003 08:48:54 +0000 (08:48 +0000)]
Fixed up the tests, so  that make check now works

20 years ago * syntax: Run a diff when there's no expected output, too.
Ben Pfaff [Sat, 13 Dec 2003 08:13:10 +0000 (08:13 +0000)]
* syntax: Run a diff when there's no expected output, too.

20 years agoFri Dec 12 23:54:37 2003 Ben Pfaff <blp@gnu.org>
Ben Pfaff [Sat, 13 Dec 2003 08:11:55 +0000 (08:11 +0000)]
Fri Dec 12 23:54:37 2003  Ben Pfaff  <blp@gnu.org>

* autorecode.c: (recode) Replace stupid use of memcpy() by
memberwise copy.
(hash_alpha_value) Use hsh_hash_bytes().  Get rid of nasty casts.
(hash_numeric_value) Ditto.
(autorecode_proc_func) pool_strdup() was wrong here because the
source string was not null-terminated.  Use new pool_strndup()
instead.

* crosstabs.q: (enum_var_values) Remove superfluous and bizarre
use of hsh_iterator_init().

* data-in.c: (parse_N) Initialize i->v->f.

* flip.c: (cmd_flip) Use memmove(), not memcpy(), to copy
overlapping arrays.

* groff-font.c: Use power-of-2 hash table sizes, not prime.
(groff_read_font) Don't call hsh_next_prime().  Don't call
fclose(NULL).
(static var hash) Remove `size_p', `max_used' members.
(font_char_name_to_index) Don't call hsh_next_prime().  Use
hsh_hash_string() instead of hashpjw(), & instead of %.
(default_font) Don't call hsh_next_prime().

* pool.c: (pool_strndup) New function.
(pool_strdup) Reimplement in terms of pool_strndup.

* postscript.c: (hash_font_entry) Use hsh_hash_string().  Get rid
of nasty casts.
(hash_ps_encoding) Use hsh_hash_string().
(hash_ps_combo) Use hsh_hash_string(), hsh_hash_int().
(hash_filename2font) Use hsh_hash_string().

* som.c: Add #include <stdlib.h>.

* tab.c: (tab_destroy) Don't set t->container after freeing `t'
(by destroying its pool).

Fri Dec 12 23:18:59 2003  Ben Pfaff  <blp@gnu.org>

Miscellaneous hash table code cleanup:

* hash.h: (struct hsh_table) Moved into hash.c.
(hsh_count) Ditto, and transformed into function.
(hsh_compare_func) New typedef, used for defining otherwise-long
function types here and in hash.c
(hsh_hash_func) Ditto.
(hsh_free_func) Ditto.

* hash.c: (struct hsh_table) Renamed `n' to `used', `m' to `size',
`table' to `entries'.  Removed `mp'.  All references updated.
(hsh_clear) Don't shrink entries array; if the hash was this big
once, it probably will be again.
(hsh_rehash) Made static.
(force_hsh_insert) Renamed hsh_force_insert.
(force_hsh_find) Renamed hsh_force_find.

Made hash table sizes powers of 2, because that's fine with any
reasonable hash function and because taking a power-of-2 modulus
is faster than any other:

(hsh_prime_tab) Removed;
(hsh_next_prime) Ditto.
(next_power_of_2) New function.
(hsh_create) Use next_power_of_2.
(hsh_rehash) Use & instead of %.

Cleaned up hsh_sort:

(internal_comparison_fn) Removed.
(sort_nulls_last) New function.
(hsh_sort) Removed second parameter, switched to using the new
quicksort() function from quicksort.h to avoid using nasty need
for static variables with qsort().  All references updated.

Changed the hash functions offered, because there are better hash
functions than the ones we had, and cleaned up the names to boot:

* hash.c: (hashpjw_d) Removed.
(hashpjw) Ditto.
(hsh_hash_bytes) New function.
(hsh_hash_string) New function.
(hsh_hash_int) New function.

Improved the hash table iteration interface:

* hash.h: (hsh_iterator_init) Removed.
(struct hsh_iterator) Removed `init' member, change `next' to
size_t.

* hash.c: (hsh_foreach) Removed.  All references updated to use
hsh_first/hsh_next instead.
(hsh_first) New function.  Notably, unlike hsh_foreach() it does
not treat a null pointer as an empty hash table.
(hsh_next) New function.

Made deletion possible, though slow:

* hash.c: (locate_matching_entry) New function.
(hsh_find) Use locate_matching_entry().
(hsh_delete) New function also using locate_matching_entry().
(hsh_force_delete) New function.

Fri Dec 12 23:16:10 2003  Ben Pfaff  <blp@gnu.org>

* quicksort.c: New file implementing a sort routine with a
interface better than qsort() because it passes a user-provided
parameter to the sort routine.

* Makefile.am: Add quicksort.c, quicksort.h.

20 years ago * qsort.c: Removed because it was unused.
Ben Pfaff [Sat, 13 Dec 2003 07:17:25 +0000 (07:17 +0000)]
* qsort.c: Removed because it was unused.

* Makefile.am: Revised accordingly, and simplified because
Automake 1.7 is smarter than 1.4 was.

20 years agoAdd lots of files that should be ignored.
Ben Pfaff [Sat, 13 Dec 2003 06:56:11 +0000 (06:56 +0000)]
Add lots of files that should be ignored.

20 years ago * All source files: Get rid of nasty special cases for
Ben Pfaff [Fri, 12 Dec 2003 21:39:53 +0000 (21:39 +0000)]
* All source files: Get rid of nasty special cases for
Checker, which is pretty obsolete now.