+Wed Mar 9 09:54:27 2005 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (pspp_LDADD) Add libgsl-extras.a.
+
+ * expressions/helpers.c: (struct func_params) Removed.
+ (generalized_idf) Removed.
+ (cdf_beta) Removed.
+ (idf_beta) Removed.
+ (idf_fdist) Use gslextras_cdf_beta_Pinv() instead of idf_beta().
+
+ * expressions/operations.def: Implement IDF.BETA, CDF.BINOM,
+ CDF.GEOM, CDF.HYPER, CDF.NEGBIN, CDF.POISSON using gsl-extras.
+ Implement SIG.F, which I had overlooked previously.
+
+Tue Mar 8 12:47:53 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * command.c command.def glob.[ch] cmdline.c: Made DEBUG cmds
+ available only in testing mode.
+
+Sun Mar 6 23:25:40 2005 Ben Pfaff <blp@gnu.org>
+
+ * data-in.c: Use `bool' throughout, where relevant.
+
+Sun Mar 6 19:52:22 2005 Ben Pfaff <blp@gnu.org>
+
+ DATA LIST with free-field formats should not have implied decimal
+ places (bug #12035). Also clean up data-in.c a bit.
+
+ * data-in.h: (enum) Add DI_IMPLIED_DECIMALS.
+
+ * data-in.c: (apply_implied_decimals) New function.
+ (parse_numeric) Don't adjust exponent if DI_IMPLIED_DECIMALS not
+ set. Also, get rid of gotos.
+ (parse_Z) Use apply_implied_decimals() if the field doesn't
+ contain a decimal point.
+ (parse_N) Use apply_implied_decimals().
+ (parse_IB) Ditto.
+ (parse_PIB) Ditto.
+ (parse_P) Ditto.
+ (parse_PK) Ditto.
+ (to_roman) Removed.
+ (parse_enum) New function.
+ (macro CHAR_IS_ROMAN) Removed.
+ (macro ROMAN_VALUE) Removed.
+ (parse_month) Use parse_enum().
+ (parse_weekday) Use parse_enum().
+ (parse_DATETIME) Use long for weekday.
+
+ * data-list.c: (read_from_data_list_fixed) Use
+ DI_IMPLIED_DECIMALS.
+
+Sun Mar 6 17:07:20 2005 Ben Pfaff <blp@gnu.org>
+
+ When the lexer sees something like `-5' in the input, it has to
+ decide whether it's a negative numeric constant token or a '-'
+ token followed by a positive numeric constant token. It always
+ decides on the former, and then the parser can call
+ lex_negative_to_dash() if it wants the latter. However, this
+ doesn't work for the case of `-0', because negative zero is
+ (portably) indistinguishable from positive zero. So now we divide
+ T_NUM into two tokens, T_POS_NUM and T_NEG_NUM, to make the
+ distinction clear. This requires a little bit of extra effort,
+ because there were several references to T_NUM in the code base.
+
+ * lexer.c: (lex_get) Use T_NEG_NUM and T_POS_NUM to distinguish
+ positive and negative numeric constants.
+ (lex_double_p) Renamed lex_is_number(). Changed return type to
+ bool. Updated all relevant references to T_NUM to instead use
+ this function.
+ (lex_double) Renamed lex_number(). All references updated.
+ (lex_integer_p) Renamed lex_is_integer(). Changed return type to
+ bool. All references updated.
+ (lex_token_representation) Understand T_NEG_NUM and T_POS_NUM.
+ (lex_negative_to_dash) Ditto.
+ (dump_token) Ditto.
+
+ * lexer.h: (enum) Add T_POS_NUM, T_NEG_NUM. Remove T_NUM.
+
+Sun Mar 6 22:09:20 2005 Ben Pfaff <blp@gnu.org>
+
+ * expressions/operations.def: (NUMBER) Use DI_IMPLIED_DECIMALS.
+
+Sun Mar 6 19:33:24 2005 Ben Pfaff <blp@gnu.org>
+
+ * expressions/operations.def: (VEC_ELEM_NUM) Treat user-missing
+ values as system-missing.
+
+ * expressions/parse.c: (parse_vector_element) Fix order of
+ arguments in call to expr_allocate_binary().
+
+Sun Mar 6 17:51:05 2005 Ben Pfaff <blp@gnu.org>
+
+ * expressions/optimize.c: (optimize_tree) Fix optimization bug for
+ x**2.
+
+ * expressions/parse.c: (type_coercion_core) Set *node to NULL on
+ failure, as indicated by function comment.
+ (parse_binary_operators) Always return NULL on type_coercion()
+ failure. Should have been doing this anyway, but bug in
+ type_coercion_core() filtered through.
+ (parse_add) Fix typo in user message.
+ (parse_primary) Understand T_NEG_NUM and T_POS_NUM.
+
+Sun Mar 6 10:47:13 2005 Ben Pfaff <blp@gnu.org>
+
+ * expressions/operations.def: Add VALUE function.
+
+ * expressions/parse.c: (parse_function) Need an unary composite
+ node for variables in A TO B, not a variable node. Use
+ allocate_unary_variable().
+ (parse_primary) Use allocate_unary_variable().
+ (allocate_unary_variable) New function.
+
+Thu Mar 3 23:53:32 2005 Ben Pfaff <blp@gnu.org>
+
+ * expressions/PSPP_expressions.pm: Renamed it back to generate.pl
+ but fixed the real problem that was preventing the build from a
+ separate directory. I liked it my way better ;-)
+
+Thu Mar 3 23:17:51 2005 Ben Pfaff <blp@gnu.org>
+
+ * expressions/parse.c: (expr_parse) Fix parameter type. Thanks to
+ John Darrington <john@darrington.wattle.id.au> for reporting this
+ bug.
+
+Thu Mar 3 22:10:25 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * expressions/Makefile.am expressions/evaluate.h.pl
+ expressions/evaluate.inc.pl expressions/operations.h.pl
+ expressions/optimize.inc.pl expressions/parse.inc.p:
+
+ Renamed generate.pl to PSPP_expressions.pm and adjusted *.pl
+ to suit.
+
+ Fixed everything so that it can be built from an arbitrary
+ directory.
+
+Thu Mar 3 22:08:35 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * Makefile.am : Fixed up CLEANFILES target.
+
+Mon Feb 28 23:49:56 2005 Ben Pfaff <blp@gnu.org>
+
+ * str.h: Changed `struct len_string' to `struct fixed_string', a
+ more accurate name. Updated all references.
+
+Mon Feb 28 23:35:30 2005 Ben Pfaff <blp@gnu.org>
+
+ Redo calendar support. Should now be bug-for-bug compatible.
+
+ * calendar.c: New file.
+
+ * calendar.h: New file.
+
+ * data-in.c: Use new calendar functions.
+ (parse_sign) Change sense of return value.
+ (calendar_error) New function.
+ (ymd_to_ofs) New function.
+ (ymd_to_date) New function.
+ (parse_DATE) Use new function.
+ (parse_ADATE) Ditto.
+ (parse_EDATE) Ditto.
+ (parse_SDATE) Ditto.
+ (parse_JDATE) Ditto.
+ (parse_QYR) Ditto.
+ (parse_MOYR) Ditto.
+ (parse_WKYR) Ditto.
+ (parse_TIME) Ditto.
+ (parse_DTIME) Ditto.
+ (parse_DATETIME) Ditto.
+
+ * data-out.c: (convert_date) Use new calendar functions.
+
+ * error.c: (err_vmsg) Changed interface to be more sensible.
+ Updated all callers.
+ (dump_message) Don't double new-lines (why did we do this
+ anyway?).
+
+Mon Feb 28 23:30:25 2005 Ben Pfaff <blp@gnu.org>
+
+ * sfmP.h: (macro flt64) Moved here from pref.h.orig.
+ (macro FLT64_MAX) Moved here from pref.h.orig.
+
+Mon Feb 28 23:28:01 2005 Ben Pfaff <blp@gnu.org>
+
+ * set.q: Support SET EPOCH.
+ (static var set_epoch) New var.
+ (aux_stc_custom_epoch) New function.
+ (stc_custom_epoch) New function.
+ (get_epoch) New function.
+ (stc_custom_pager) [USE_INTERNAL_PAGER] Fix bug.
+
+ * format.c: Make it possible just to check whether a specifier is
+ valid without emitting an error message.
+ (parse_format_specifier_name) Change interface, update all
+ callers.
+ (check_input_specifier) Ditto.
+ (check_output_specifier) Ditto.
+ (parse_format_specifier) Ditto.
+
+Mon Feb 28 23:24:08 2005 Ben Pfaff <blp@gnu.org>
+
+ * command.def: Add DEBUG POOL.
+
+ * pool.c: (pool_destroy) Fix bug in deleting this pool from its
+ parent.
+ (pool_clear) Properly account for size of pool gizmo.
+ (pool_realloc) Ditto.
+ (pool_clone) New function.
+
+ * pool.h: Mark our allocation functions MALLOC_LIKE.
+
+Mon Feb 28 23:21:26 2005 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Move many definitions into new top-level
+ Make.build. Add expressions to SUBDIRS. Add calendar.c,
+ calendar.h. Remove expr-evl.c, expr-opt.c expr-prs.c, expr.h,
+ exprP.h, expr.def.
+
+ * case.c: (case_resize) New function.
+ (case_swap) New function.
+
+ * casefile.c: Include mkfile.h.
+
+Fri Feb 25 21:11:35 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * sfm-read.c: Fixed a buglet which caused a crash when trying
+ to read a non-existent file.
+
+Sun Feb 13 16:11:13 2005 Ben Pfaff <blp@gnu.org>
+
+ Fix Bug #11955.
+
+ * aggregate.c: (parse_aggregate_functions) Code cleanup.
+ Important part: get rid of spurious copying of function->format to
+ destvar->print and destvar->write.
+
+Fri Feb 11 00:08:36 2005 Ben Pfaff <blp@gnu.org>
+
+ Fix Bug #11916, which was confusing a variable's `index' member
+ with the variable's position in a var_set. Although these are
+ usually the same, they are not for array `var_set's.
+
+ Took advantage of this bug as an opportunity to clean up and
+ rewrite parse_var_set_vars().
+
+ * vars-prs.c: (parse_vs_variable_idx) New function.
+ (parse_vs_variable) Reimplement in terms of
+ parse_vs_variable_idx().
+ (parse_var_idx_class) New function.
+ (add_variable) New function.
+ (add_variables) New function.
+ (parse_var_set_vars) Rewritten.
+ (struct var_set) Change `lookup_var' member that returns a
+ variable into `lookup_var_idx' member that returns an int.
+ Updated the var set implementations in obvious corresponding ways.
+ Used compare_var_ptr_names(), hash_var_ptr_name() just added.
+
+Fri Feb 11 00:06:03 2005 Ben Pfaff <blp@gnu.org>
+
+ Use our global variable compare & hash functions and give them
+ better names. Add similar functions for dealing with double
+ pointers to variables.
+
+ * vars-atr.c: (compare_variables) Renamed compare_var_names().
+ (hash_variable) Renamed hash_var_name().
+ (compare_var_ptr_names) New function.
+ (hash_var_ptr_name) New function.
+
+ * t-test.q: (cmd_t_test) Use global compare_var_names(),
+ hash_var_name().
+ (compare_var_name) Removed.
+ (hash_var_name) Removed.
+
+Fri Feb 11 00:04:39 2005 Ben Pfaff <blp@gnu.org>
+
+ Fix dictionary bug.
+
+ * dictionary.c: (compare_variable_dblptrs) Rename
+ compare_var_ptrs() and fix it to properly dereference the double
+ pointers.
+
+Mon Feb 7 09:58:15 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ crosstabs.q examine.q oneway.q q2c.c: Added a q2c feature to
+ declare subcommands as mandatory. Closed bug #11843
+
+Sat Feb 5 20:35:10 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * getline.c command.[ch] command.def: Added (very rudimentary)
+ support for line completion when in interactive mode. Partially
+ addresses bug #11693
+
+Mon Jan 31 09:52:51 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * examine.q factor_stats.c oneway.q output.c pfm-read.c: Fixed some
+ problems revealed by valgrind.
+
+
+Wed Jan 26 11:44:11 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * set.q: Affixed a fix to the previous fix such that we'll be OK now
+ whether or not PAGER is set.
+
+Wed Jan 26 09:25:54 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * set.q: Copied the string produced by getenv("PAGER") thus avoiding
+ "invalid free" errors. Hopefully fixes bug #11722
+
+ * compute.c expr-prs.c: Check that lvalues are populated before
+ attempting to destroy them. Closes bug #11676
+
+Tue Jan 25 21:01:43 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * aggregate.c: Initialised the complete agr_proc structure.
+ Closes bug #11675
+
+
+Sun Jan 23 23:02:21 2005 Ben Pfaff <blp@gnu.org>
+
+ * print.c: (print_trns_free) Close the dfm writer if there is one,
+ fixing a memory leak.
+
+Mon Jan 24 12:24:36 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * glob.c oneway.q q2c.c t-test.q vfm.c: Still *more* memory leaks
+ fixed.
+
+
+Fri Jan 21 19:54:14 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * linked-list.[ch] Added
+
+ * examine.q file-handle.[hq] font.h glob.c groff-font.c postscript.c
+ set.q: Yet more memory leaks
+
+Tue Jan 18 23:12:40 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * t-test.q examine.q : More memory leaks fixed.
+
+Tue Jan 18 19:26:59 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * examine.q factor_stats.[ch] get.c pfm-read.c: Plugged numerous
+ memory leaks.
+
+Mon Jan 10 14:43:45 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * ascii.c cartesian.c casefile.c chart.h devind.c
+ examine.q frequencies.q
+ html.c output.h piechart.c plot-chart.c plot-hist.c
+
+ Integrated the chart rendering into the output stream
+ (currently only works for html).
+
+ Removed gratuitous use of ifndef NO_CHARTS, and replaced with
+ dummy-chart.c for compiling without charts.
+
+ * mkfile.[ch] Created.
+
+ * som.[ch] tab.[ch]: Changed name of som_table to som_entity
+ Added type element so we can tell if it's a chart or a table.
+
+ * chart.h examine.q piechart.c plot-chart.c plot-hist.c: changed the
+ API of charts to be more like that of tables.
+
+Thu Jan 13 21:00:02 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * casefile.c main.c: Moved the SIGINT handler from casefile.c to
+ main.c. Removed the handler for SIGQUIT.
+
Mon Jan 10 14:43:45 WST 2005 John Darrington <john@darrington.wattle.id.au>
- * casefile.c: Added a signal handler to delete temp files on SIGINT and SIGQUIT
+ * casefile.c: Added a signal handler to delete temp files on
+ SIGINT and SIGQUIT
* permissions.c Inhibited the PERMISSIONS command when SAFER is on.