2008-05-15 Ben Pfaff Patch #6512. * evaluate.c (expr_evaluate): Use gsl_finite instead of finite, as a stopgap measure for portability until appropriate gnulib modules are available. * helpers.h (copy_string): Ditto. 2007-10-12 Ben Pfaff Patch #6224. * helpers.c: Don't need our own trunc function implementation anymore, since we now use the one from gnulib. 2007-07-17 Ben Pfaff Patch #19335. Reviewed by John Darrington. * evaluate.h.pl: Use strict and all warnings. Fix warnings that this triggers. * evaluate.inc.pl: Ditto. * generate.pl: Ditto. * operations.h.pl: Ditto. * optimize.inc.pl: Ditto. * parse.inc.pl: Ditto. 2007-04-15 Ben Pfaff * parse.c (expr_get_function): New function. (expr_get_function_cnt): New function. (expr_operation_get_name): New function. (expr_operation_get_prototype): New function. (expr_operation_get_arg_cnt): New function. Thu Feb 1 06:59:27 2007 Ben Pfaff * parse.c (parse_function): Accept TO in any case for use with n-ary functions. Fixes bug #18923. Thanks to John Darrington for reporting this bug. Sat Dec 16 12:20:14 2006 Ben Pfaff * operations.def: Reverse order of arguments to DATEDIFF, for compatibility. Thanks to Daniel Williams for reporting this bug. Wed Dec 13 19:30:26 2006 Ben Pfaff Implement support for DATESUM, DATEDIFF expression functions. See patch #5637. * helpers.c (enum date_unit): New enum. [!HAVE_TRUNC] (trunc): New function. (recognize_unit): New function. (year_diff): New function. (month_diff): New function. (quarter_diff): New function. (date_unit_duration): New function. (expr_date_difference): New function. (enum date_sum_method): New function. (recognize_method): New function. (add_months): New function. (expr_date_sum): New function. * operations.def: Implement DATESUM, DATEDIFF functions. Mark VALUELABEL no_abbrev. Sun Dec 10 16:49:33 2006 Ben Pfaff * operations.def: Implement VALUELABEL function. Add DATEDIFF, DATESUM unimplemented stubs. * parse.c (type_coercion_core): Add support for OP_var type, which is a name for a numeric or string variable. (is_compatible) New function. (check_operator) Only require values to be compatible with their expected types, not identical. (is_valid_node) Ditto. (compare_names) Always return mismatch if the command name can't be abbreviated. (lookup_function_helper) Pass the new OPF_NO_ABBREV flag to the comparison function. * generate.pl (init_all_types): Add support for a type just called "var" that may be a numeric or string variable name. Also, add a no_abbrev option that prevents a function name from being abbreviated (in case of naming conflict otherwise). * parse.inc.pl: Output OPF_NO_ABBREV flag. * private.h: Add OPF_NO_ABBREV flag. Wed Jul 12 21:03:17 2006 Ben Pfaff * evaluate.c (cmd_debug_evaluate): Don't try to resize a null case. Fri Jun 9 13:59:15 2006 Ben Pfaff Reform string library. * generate.pl (init_all_types): `struct fixed_string' is now `struct substring'. Sun May 7 10:05:42 WST 2006 John Darrington * evaluate.c: Removed call to copy_mangle, and replaced with the original buf_copy_rpad. Mon May 1 15:11:48 2006 Ben Pfaff Prohibit LAG following TEMPORARY. This both matches SPSS behavior and fixes a bug: we saved the cases for LAG before TEMPORARY but allowed access to variables created afterward anyhow (which could cause a segfault). * generate.pl: Parse "perm_only" flag on operations. * operations.def: Add "perm_only" flag to LAG operations. * parse.c: Disallow OPF_PERM_ONLY operations after TEMPORARY. * parse.inc.pl: Output OPF_PERM_ONLY flag for "perm_only" operations. * private.h: Add OPF_PERM_ONLY flag. Sun Apr 23 22:06:45 2006 Ben Pfaff Continue reforming error message support. In this phase, get rid of message "titles" and put the message text in `struct error'. Now `struct error' encapsulates a message more properly. * helpers.c: (expr_error) Use err_msg() instead of err_vmsg(). Format message ourselves. Thu Mar 2 08:40:33 WST 2006 John Darrington * Moved files from src directory