ABOUT-NLS
+ChangeLog
Makefile
Makefile.in
aclocal.m4
reloc-ldflags
stamp-h1
texinfo.tex
+gitlog-to-changelog
+++ /dev/null
-2008-06-13 Ben Pfaff <blp@gnu.org>
-
- * configure.ac: Fix typo in AC_PREREQ command name. Thanks to
- Stepan Kasal <kasal@ucw.cz> for reporting the problem.
-
-2008-06-04 Ben Pfaff <blp@gnu.org>
-
- * configure.ac: Update version number to 0.6.0 in preparation for
- release.
-
-2008-05-15 Ben Pfaff <blp@gnu.org>
-
- * Smake (GNULIB_MODULES): Don't depend on memmem module, because
- PSPP does not use memmem any longer. Use
- unilbrk/ulc-width-linebreaks module instead of the linebreak
- module, because the latter was split up into multiple modules and
- that's the one we actually need.
-
-2008-05-09 John Darrington <john@darrington.wattle.id.au>
-
- * INSTALL: For obscure reasons gettext 0.17 requires that
- the string 'GNU pspp' occurs in some file in the root
- directory. Otherwise make distcheck fails with a very non-intuitive
- error message. So for want of somewhere better I added it
- in INSTALL.
-
- But since this string now appears in this ChangeLog file, it
- could be taken out of INSTALL ...
-
-2008-04-19 John Darrington <john@darrington.wattle.id.au>
-
- * configure.ac : Improve checking of ncurses availability.
-
-2008-04-15 Ben Pfaff <blp@gnu.org>
-
- * configure.ac: Properly report required version of libglade.
- Thanks to unknown-1 <pspp@sjpaes.nl> for reporting this bug.
-
-2008-04-15 John Darrington <john@darrington.wattle.id.au>
-
- * configure.ac : Replace AC_CHECK_LIB with AC_SEARCH_LIBS as
- recommended by latest autoconf manual.
-
-2008-02-19 John Darrington <john@darrington.wattle.id.au>
-
- * configure.ac INSTALL: We now depend on GTK+ 2.12
-
-2007-12-11 John Darrington <john@darrington.wattle.id.au>
-
- * t-test-independent-samples-dialog.c: Quoted the group values, when
- the group variable is a string variable.
-
-2007-12-04 Ben Pfaff <blp@gnu.org>
-
- * Smake (GNULIB_MODULES): Add ftello module.
-
-2007-11-05 Ben Pfaff <blp@gnu.org>
-
- * configure.ac: No need for check for off_t or for the size of
- float or long double any longer, as we don't use the results
- anymore. Also, no need to put #include <locale.h> into config.h
- any longer, as this was only needed for --with-included-gettext,
- which we have not supported for some time.
-
-2007-11-03 Ben Pfaff <blp@gnu.org>
-
- Allow output files to overwrite input files (bug #21280).
-
- * Smake (GNULIB_MODULES): Add fatal-signal, tempname modules.
-
-2007-11-02 Ben Pfaff <blp@gnu.org>
-
- * Smake (GNULIB_MODULES): Add isfinite, round modules.
-
-2007-10-12 Ben Pfaff <blp@gnu.org>
-
- Use trunc module from gnulib instead of our home-grown solution.
- Patch #6224.
-
- * Smake: Add trunc to module list.
-
- * configure.ac: Don't need to check for trunc function any longer.
-
-2007-10-12 Ben Pfaff <blp@gnu.org>
-
- Use fseeko module from gnulib instead of our home-grown solution.
- Patch #6228.
-
- * acinclude.m4: Delete PSPP_OFF_T macro.
-
- * configure.ac: Don't call AC_FUNC_FSEEKO or PSPP_OFF_T.
-
-2007-10-12 Ben Pfaff <blp@gnu.org>
-
- * Smake: Add fprintf-posix, printf-posix, printf-safe,
- snprintf-posix, sprintf-posix, vasprintf-posxi, vfprintf-posix,
- vprintf-posix, vsnprintf-posix, and vsprintf-posix modules, which
- allow us to use C99 format specifiers (e.g. 'z') in *printf.
- Also, changed many formerly casted arguments in *printf calls to
- use one of these format specifiers and drop the cast.
-
-2007-10-11 Ben Pfaff <blp@gnu.org>
-
- * Smake: Drop alloca, alloca-opt modules as we don't use them
- anymore.
-
-2007-10-10 Ben Pfaff <blp@gnu.org>
-
- * acinclude.m4: Improve formatting.
-
- * configure.ac: Ditto. Don't check for headers whose presence is
- never tested. Don't use AC_C_CONST (we can assume that "const" is
- implemented these days). Don't pass default sizes to
- AC_CHECK_SIZEOF, since modern Autoconf doesn't need them. Don't
- define FPREP_IEEE754, since it was not tested for. Don't use
- AC_FUNC_VPRINTF, since we never tested for it.
-
-2007-10-06 John Darrington <john@darrington.wattle.id.au>
-
- * configure.ac INSTALL: Change libglade version requirement.
- Thanks to Paul Brown for reporting this issue.
-
-2007-09-30 Ben Pfaff <blp@gnu.org>
-
- * configure.ac: Print a message indicating success at the end of
- the run.
-
- * INSTALL: Improve instructions.
-
-2007-09-22 Ben Pfaff <blp@gnu.org>
-
- Bug #21128. Reviewed by John Darrington.
-
- * acinclude.m4 (PSPP_LC_PAPER): New macro.
-
- * configure.ac: Use PSPP_LC_PAPER.
-
-2007-08-05 Ben Pfaff <blp@gnu.org>
-
- Bug #16189. Reviewed by Jason Stover.
- * acinclude.m4: If -lplot doesn't work by itself, also test with
- typical X11 libraries.
-
-2007-07-27 Ben Pfaff <blp@gnu.org>
-
- Bug #19069.
- * INSTALL: Improve installation instructions.
- * README: Move prerequisites to INSTALL.
- Reviewed by Jason Stover.
-
- * configure.ac: Make PKG_CHECK_MODULES tests more user-friendly,
- by having them give their errors at the end of the configuration
- process instead of stopping it in the middle. Patch #6116.
- Reviewed by Jason Stover.
-
-2007-06-14 Ben Pfaff <blp@gnu.org>
-
- * Smake: Use xmalloca instead of xallocsa due to module renaming.
- Update all uses.
-
-2007-06-06 Ben Pfaff <blp@gnu.org>
-
- * Smake: Add xallocsa to modules.
-
-2007-04-22 Ben Pfaff <blp@gnu.org>
-
- Implement model checker for testing purposes.
-
- Patch #5873.
-
- * Smake (GNULIB_MODULES): Add crypto/md4, fwriteerror,
- gettimeofday.
-
-2007-04-03 Ben Pfaff <blp@gnu.org>
-
- * configure.ac: Increment version to 0.4.3 due to snapshot posted
- to alpha.gnu.org.
- Suggested by John Darrington.
-
-2007-04-03 Ben Pfaff <blp@gnu.org>
-
- Use Gnulib's fpieee module instead of specifying -mieee by hand.
-
- * Smake: Use fpieee module from Gnulib.
-
- * configure.ac: Don't enable -mieee.
-
-2007-03-19 Ben Pfaff <blp@gnu.org>
-
- Work toward modernizing the build system by updating our Automake
- and Autoconf dependencies and requiring libintl to be available
- externally (if desired) instead of including a copy in the
- distribution.
-
- * Makefile.am (AUTOMAKE_OPTIONS): Require Automake 1.10 (or
- later), which works better with systems that have a non-empty
- $(EXEEXT).
- (SUBDIRS): Drop intl.
- (DISTCLEANFILES): Drop intl/plural.c.
-
- * Throughout Makefile.am and the automake.mk files: Change
- mkinstalldirs to $(MKDIR_P), to support the corresponding Automake
- change.
-
- * Smake (GNULIB_MODULES): Use gettext-h instead of gettext module.
- (all): Don't create intl directory.
- (gettextize): Don't use --intl flag.
-
- * configure.ac: Require Autoconf 2.60 or later. Use external
- gettext. Drop intl/Makefile from config files.
-
-2007-02-25 Ben Pfaff <blp@gnu.org>
-
- Thanks to Jason Stover for verifying that this patch helps under
- NetBSD.
-
- * acinclude.m4: Rename PSPP_ENABLE_WARNING to PSPP_ENABLE_OPTION,
- because it's useful for more than warnings.
-
- * configure.ac: Add PSPP_ENABLE_OPTION(-mieee) to improve IEEE
- floating-point conformance on Alpha and SH architectures. Also,
- check for fpsetmask function (available on BSDs).
-
-Mon Feb 19 10:52:21 2007 Ben Pfaff <blp@gnu.org>
-
- * Smake (GNULIB_MODULES): Add dirname module, remove canonicalize
- module. Corresponds to changes in src/data/file-name.c.
-
-Sat Feb 17 09:22:32 2007 Ben Pfaff <blp@gnu.org>
-
- * Smake (GNULIB_MODULES): Add tmpfile module, which fixes the use
- of the tmpfile function under Windows.
-
-Fri Feb 16 10:50:38 2007 Ben Pfaff <blp@gnu.org>
-
- Better support cross-compiling by using CC_FOR_BUILD and
- EXEEXT_FOR_BUILD for q2c.
-
- * Makefile.am: Add CC_FOR_BUILD, EXEEXT_FOR_BUILD variables. Use
- in .q.c rule.
-
- * acinclude.m4: Add PSPP_CC_FOR_BUILD macro.
-
- * configure.ac: Call PSPP_CC_FOR_BUILD.
-
-Mon Feb 12 16:39:18 2007 Ben Pfaff <blp@gnu.org>
-
- * README: Note that iconv is required.
-
- * configure.ac: Enforce iconv requirement.
-
-Thu Feb 8 14:56:18 2007 Ben Pfaff <blp@gnu.org>
-
- Reduce platform dependence.
-
- * Makefile.am: Don't add -Dunix or -D__MSDOS__ to compiler command
- line. Add $(top_builddir)/intl to include path to fix building
- with the included libintl.
-
- * Smake (GNULIB_MODULES): Add `canonicalize', `sys_stat',
- `mkstemp' modules. Remove `stat-macros' module, which is no
- longer what we want, because what we want is provided by sys_stat
- now, and remove its inclusions. Remove `strstr' module, which is
- no longer in gnulib. Remove `readlink', `xreadlink', because we
- no longer use either function.
-
- * configure.ac: Move gl_EARLY before AC_PROG_CC, where the gnulib
- manual says it should be. Check for presence of execl, fork,
- and popen. Drop check for unix versus msdos as host OS.
-
-Sat Nov 4 15:59:31 2006 Ben Pfaff <blp@gnu.org>
-
- * configure.ac: Check for the "round" function added in C99.
-
-Tue Oct 31 19:55:52 2006 Ben Pfaff <blp@gnu.org>
-
- * Smake (GNULIB_MODULES): Add `mempcpy' module.
-
-Tue Oct 31 19:29:05 2006 Ben Pfaff <blp@gnu.org>
-
- * configure.ac: Drop tests for strchr, strrchr because now we
- assume a C89 compliant library. (Gnulib makes this assumption so
- we might as well too.)
-
-Sun Oct 29 14:08:53 2006 Ben Pfaff <blp@gnu.org>
-
- * Smake (GNULIB_MODULES): Remove `restrict' from modules, because
- recent gnulib doesn't have such a module.
-
-Mon Jul 17 18:23:38 2006 Ben Pfaff <blp@gnu.org>
-
- * Smake: Add --doc-base=gl/doc to gnulib-tool invocation, which is
- required by recent gnulib.
-
-Sun Jul 16 19:51:45 2006 Ben Pfaff <blp@gnu.org>
-
- * Smake: Add xsize to GNULIB_MODULES.
-
-Wed Jul 12 13:41:18 2006 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Add check_PROGRAMS and define to empty.
-
-Sat Jul 1 15:32:31 2006 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Add noinst_PROGRAMS and define to empty.
-
-Tue May 9 20:46:06 2006 Ben Pfaff <blp@gnu.org>
-
- * Smake: Add stdarg to GNULIB_MODULES.
-
-Sun May 7 09:27:40 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * po/en_GB.po : Removed. Now that messages talking about coloUrs have
- been removed, it does nothing.
-
-Tue May 2 10:43:30 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * Bumped the minor version number from 0.4.1 to 0.4.2 to reflect
- changes to system file format.
-
-Mon Apr 24 14:12:25 2006 Ben Pfaff <blp@gnu.org>
-
- * Smake: Add exit to GNULIB_MODULES.
-
-Sun Apr 23 20:34:50 2006 Ben Pfaff <blp@gnu.org>
-
- * Smake: Add linebreak to GNULIB_MODULES.
-
-Sat Apr 15 21:45:40 2006 Ben Pfaff <blp@gnu.org>
-
- Get rid of src/libpspp/debug-print.h and all its uses. (There
- were few real users, but many inclusions of its header file.)
-
-Sat Apr 15 19:51:22 2006 Ben Pfaff <blp@gnu.org>
-
- Get rid of our own int32 type in favor of the standard int32_t
- type.
-
- * configure.ac: Don't need to check the sizes of integer types
- anymore.
-
-Sat Apr 15 19:13:59 2006 Ben Pfaff <blp@gnu.org>
-
- * configure.ac, acinclude.m4: Complain about missing prerequisites
- in a group at the end of configuration, not piecemeal. This
- should make building PSPP less frustrating. Thanks to John
- Darrington for the suggestion.
-
-Sat Apr 15 18:17:15 2006 Ben Pfaff <blp@gnu.org>
-
- * configure.ac: Move code into acinclude.m4 to make the configure
- script more readable.
-
- * acinclude.m4: New functions from configure.ac.
-
-Mon Apr 3 11:01:00 2006 Ben Pfaff <blp@gnu.org>
-
- * Smake: (GNULIB_MODULES) Add strsep.
-
-Thu Mar 30 15:50:05 2006 Ben Pfaff <blp@gnu.org>
-
- * Smake: Enable -Wdeclaration-after-statement warning if
- available.
-
- * acinclude.m4: Add macro for checking whether a warning is
- supported.
-
-Mon Mar 20 16:32:11 2006 Ben Pfaff <blp@gnu.org>
-
- * Smake: Require "unistd" gnulib module. Removed tests for
- HAVE_UNISTD_H from source code.
-
-Sat Mar 4 13:20:56 2006 Ben Pfaff <blp@gnu.org>
-
- * configure.ac: Get rid of pref.h.orig.
-
- * pref.h.orig: Removed. Moved SHORT_NAME_LEN, LONG_NAME_LEN to
- src/data/variable.h. Removed GLOBAL_DEBUGGING entirely, changing
- all references to DEBUGGING. Moved P_tmpdir to
- src/data/make-file.c. Moved NO_CHARTS to
- src/output/charts/automake.mk.
-
-Sat Mar 4 12:58:34 2006 Ben Pfaff <blp@gnu.org>
-
- * pref.h.orig: Move GCC attribute declarations to
- new file src/libpspp/compiler.h.
-
-Sat Mar 4 12:27:06 2006 Ben Pfaff <blp@gnu.org>
-
- * Smake: Require "intprops" gnulib module.
-
- * acinclude.m4: Remove BLP_INT_DIGITS. Now we use the intprops.h
- header file instead.
-
- * configure.ac: Don't call BLP_INT_DIGITS.
-
-Sat Mar 4 11:53:36 2006 Ben Pfaff <blp@gnu.org>
-
- * acinclude.m4: Remove BLP_RANDOM. Its results were unused.
- Remove BLP_IS_SPRINTF_GOOD. We now assume that the system's
- sprintf() returns the correct value.
-
- * configure.ac: Don't call those macros.
-
-John Darrington:
-
- * Deleted Make.build (inserted its contents into Makefile.am).
-
- * Moved the version number to 0.4.1
-
- * Moved lib/linreg/linreg.[ch] and lib/linreg/coefficient.[ch] to
- src/math/linreg.
-
- * Moved the psppire gui into src/ui/gui and the gtk_sheet widget
- into lib/gtksheet.
-
- * Replaced recursive automake system with non-recursive one.
-
- * Moved files into subdirectories. See src/ChangeLog for details.
-
-Sat Feb 11 21:57:31 2006 Ben Pfaff <blp@gnu.org>
-
- * Smake: (GNULIB_MODULES) Add memcasecmp.
-
- * configure.ac: Remove existing checks for readline, replacing
- them by a call to PSPP_READLINE.
-
- * acinclude.m4: Add PSPP_READLINE macro based on gnulib test for
- readline. However, we only accept a readline installation if (1)
- the header files are in the normal readline/ directory and (2) the
- history library is also available. If both criteria are met, we
- declare HAVE_READLINE. This reduces the #ifdefs to actually use
- readline to something manageable.
-
- * pref.h.orig: Move DIR_SEPARATOR, PATH_DELIMITER definitions to
- src/filename.h.
-
-Wed Jan 25 21:48:20 2006 Ben Pfaff <blp@gnu.org>
-
- * Smake: (po/POTFILE.in) Exclude dotfiles.
-
-Sat Nov 27 20:29:19 2005 Jason Stover <jason@sakla.net>
-
- * Binary encoding for categorical variables.
- * Routines for design matrices.
-
-Thu Oct 20 18:19:58 2005 Ben Pfaff <blp@gnu.org>
-
- * configure.ac: Improve error messages. Thanks to Jaap-Andre de
- Hoop <j.dehoop@data-assist.nl>.
-
-Wed Oct 12 20:33:07 2005 Jason Stover <jstover@sdf.lonestar.org>
-
- * regression.q: Initial version of the REGRESSION procedure.
-
-Sun Sep 25 16:11:09 2005 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Handles `examples' as a subdirectory instead of a
- dist-hook. The dist-hook copied examples/CVS into the
- distribution. Thanks to James R. Van Zandt <jrvz@comcast.net> for
- reporting the problem.
-
-Mon Sep 19 10:24:10 2005 Ben Pfaff <blp@gnu.org>
-
- * Smake: Add `check' target for convenience. Add
- --tests-base=tests to gnulib-tool invocation to compensate for
- bug.
-
-Sat Sep 17 15:57:32 2005 Jason Stover <jason@sakla.net>
-
- Added lib/linreg for procedures that use ordinary least squares.
-
-Sat Sep 17 11:01:44 2005 Ben Pfaff <blp@gnu.org>
-
- Adapt to newer versions of gnulib.
-
- * Smake: Put gnulib options directly on its command line, instead
- of embedding them in configure.ac.
-
- * configure.ac: Remove gnulib option commands.
-
-Fri Aug 3 07:22:28 2005 Ben Pfaff <blp@gnu.org>
-
- * PSPP 0.4.0 released.
-
-Sun Jul 31 10:49:47 2005 Ben Pfaff <blp@gnu.org>
-
- Adopt use of gnulib for portability.
-
- * Makefile.am: Add gl to SUBDIRS. Add gl/m4 to aclocal include
- path. Get rid of pkgdocdir data. Move noinst_DATA to EXTRA_DIST.
-
- * README.CVS: Add instructions for fetching gnulib.
-
- * Smake: Rewrite to run gnulib-tool. Avoid use of gettextize in
- normal case (it was unmaintainable). Just use autoreconf
- --install to do most of the work. Rewrite rule for POTFILES.in
- for non-GNU make compatibility.
-
- * configure.ac: Add gnulib commands. Specify gettext version
- 0.14.5 to placate autopoint. Check that off_t is an integer type,
- because Solaris can sometimes declare it as a struct. Drop
- explicit checks for gnulib-supported functionality. Fix typo in
- msdos check.
-
- * pref.h.orig: Define __attribute__ to avoid wart in gnulib.
- Don't #include <libintl> and define gettext, _, N_, because gnulib
- wants to do the same thing.
-
-Sun Jul 24 20:31:13 2005 Ben Pfaff <blp@gnu.org>
-
- * configure.ac: Don't detect libgmp anymore, because we eliminated
- the dependency.
-
- * NEWS: Update.
-
-Mon Jul 4 17:59:54 2005 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Add pspp-mode.el to EXTRA_DIST.
-
-Wed May 4 08:49:13 WST 2005 John Darrington <john@darrington.wattle.id.au>
-
- * README.CVS Smake: Added a CONFIGUREFLAGS variable.
- * INSTALL: Mentioned build dependencies.
-
-Mon May 2 22:37:39 2005 Ben Pfaff <blp@gnu.org>
-
- * INSTALL: Mention dependencies. Thanks to Jaap-Andre de Hoop
- <j.dehoop@data-assist.nl> for the suggestion.
-
- * NEWS, README: Update.
-
-Sun May 1 15:00:09 WST 2005 John Darrington <john@darrington.wattle.id.au>
-
- * pspp-mode.el: Now supports syntax highlighting, indentation and
- generally works a lot better.
-
-Thu Apr 28 10:24:47 WST 2005 John Darrington <john@darrington.wattle.id.au>
-
- * Changed all copyright notices to contain the FSF's new address.
-
-Thu Apr 14 2005 John Darrington
-
- * AUTHORS: Added note about the long variable names extension.
-
- * pref.h.orig: Added definitions for variable names lengths.
-
-Thu Mar 3 22:06:19 WST 2005 John Darrington <john@darrington.wattle.id.au>
-
- * configure.ac: Added AC_PROG_RANLIB --- needed by autoconf 1.9
-
-Mon Feb 28 23:16:58 2005 Ben Pfaff <blp@gnu.org>
-
- * configure.ac: Check for perl. Check for bool. Substitute
- makefiles in src/expressions. Don't substitute makefile in
- deleted directory lib/julcal.
-
- * pref.h.orig: (macro MALLOC_LIKE) New macro.
- (macro flt64) Moved to src/sfmP.h.
- (macro FLT64_MAX) Moved to src/sfmP.h.
-
-Mon Feb 21 15:04:55 WST 2005 John Darrington <john@darrington.wattle.id.au>
-
- * configure.ac: Added a --without-valgrind option to cope with
- building on machines with a broken valgrind installation
-
-Fri Jan 7 08:01:02 WST 2005 John Darrington <john@darrington.wattle.id.au>
-
- * configure.ac pref.h.orig: Compilation with libplot is now optional
- by sacrificing the chart features.
-
-Sun Nov 28 19:24:02 2004 Ben Pfaff <blp@gnu.org>
-
- * Smake: Change -a to -pR in cp invocations for SUSv3 compliance.
-
-Mon May 31 17:21:25 2004 Ben Pfaff <blp@gnu.org>
-
- * configure.ac: Check for large file support. Get rid of
- posix_fadvise check--for some reason glibc 2.3.2 segfaults when I
- call it and I just couldn't figure out what was going on.
-
-Sun May 30 18:19:03 2004 Ben Pfaff <blp@gnu.org>
-
- * configure.ac: Check for valgrind/valgrind.h.
-
-Mon Mar 29 15:22:48 2004 Ben Pfaff <blp@gnu.org>
-
- * TODO: Updated.
-
- * configure.ac: Check for posix_fadvise.
-
-Tue Mar 23 14:21:12 WAST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * Removed dcdflib and replaced with a dependency upon the
- GNU Scientific library instead.
-
-Sat Mar 20 13:55:36 2004 Ben Pfaff <blp@gnu.org>
-
- * TODO: Updated.
-
-Wed Feb 11 23:54:15 2004 Ben Pfaff <blp@gnu.org>
-
- * pref.h.orig: Don't meddle with __WIN32__, __MSDOS, __DJGPP__,
- __CYGWIN32__, __unix__, or unix anymore, and deal with some of the
- consequences. Declare ATTRIBUTE instead of meddling withe
- __attribute__. Declare UNUSED instead of unused. Add macros
- NO_RETURN, PRINTF_FORMAT, SCANF_FORMAT. Reformat gettext, N_, _
- macros. Move alloca()-related stuff to src/alloc.h and simplify.
- Get rid of PAGED_STACK entirely. Remove mkdir macro definition.
- Get rid of obsolete "procedure-specific options".
-
-2004-01-23 gettextize <bug-gnu-gettext@gnu.org>
-
- * Makefile.am (SUBDIRS): Remove intl.
- * configure.ac (AC_CONFIG_FILES): Remove intl/Makefile.
-
-Tue Dec 30 22:23:40 WST 2003 John Darrington <john@darrington.wattle.id.au>
-
- * Fixed floating point rounding bug in percentiles calculation
-
-Sat Dec 27 16:16:49 2003 Ben Pfaff <blp@gnu.org>
-
- * configure.ac: Add -Wmissing-prototypes flag to gcc.
-
- * TODO: Updated.
-
-Wed Dec 17 12:19:40 WAST 2003 John Darrington <john@darrington.wattle.id.au>
-
- * Added an --enable-debug flag to configure
-
-2003-12-13 gettextize <bug-gnu-gettext@gnu.org>
-
- * Makefile.am (EXTRA_DIST): Add mkinstalldirs.
- * configure.ac (AC_CONFIG_FILES): Add intl/Makefile.
-
-
-Thu Dec 11 19:35:32 WST 2003 John Darrington <john@darrington.wattle.id.au>
-
- * Removed autogenerated files from the CVS archive
-
- * removed the included getopt.c as it failed to build under some
- systems.
-
-Thu Dec 11 00:12:19 2003 Ben Pfaff <blp@gnu.org>
-
- * Update build system to Autoconf 2.58, Automake 1.7, gettext
- 0.12.1.
-
-2003-12-08 gettextize <bug-gnu-gettext@gnu.org>
-
- * Makefile.am (SUBDIRS): Add m4.
- (ACLOCAL_AMFLAGS): New variable.
- (EXTRA_DIST): Add config.rpath.
- * configure.in (AC_CONFIG_FILES): Add po/Makefile.in,
-
-Sun Jan 2 21:24:32 2000 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Require Automake 1.4 or later. It's been out for
- almost a year now, so why haven't you installed it? :-)
-
- * TODO: Updated.
-
- * configure.in: Updated version number. Check for libgmp. Check
- of fenv.h. Check for feholdexpect().
-
- * pref.h.orig: Don't include debug-print.h by default. Don't
- disable __attribute ((unused))__ for gcc 2.7.2. Remove LOAD_2,
- STORE_2. Comment fixes.
-
- * Updated copyright notices in all files.
-
-Fri Mar 12 12:38:55 1999 Ben Pfaff <blp@gnu.org>
-
- * Forked 0.3.0.
-
-Tue Mar 9 12:46:31 1999 Ben Pfaff <blp@gnu.org>
-
- * Released 0.2.3.
-
- * TODO: Updated.
-
-Tue Jan 5 15:18:07 1999 Ben Pfaff <blp@gnu.org>
-
- * Released 0.2.2.
-
- * TODO: Update from Zvi Grauer <z.grauer@sims.csuohio.edu>.
-
-Thu Nov 19 12:34:55 1998 Ben Pfaff <blp@gnu.org>
-
- * Released 0.2.1.
-
-Sun Aug 9 11:11:32 1998 Ben Pfaff <blp@gnu.org>
-
- * LANGUAGE: Updated.
-
-Sat Aug 8 00:19:08 1998 Ben Pfaff <blp@gnu.org>
-
- * LANGUAGE: Updated.
-
- * examples/: New directory.
-
- * Made patchlevel 95.
-
-Tue Aug 4 23:47:31 1998 Ben Pfaff <blp@gnu.org>
-
- * Bump version to 0.1.22 (0.2.0 release candidate).
-
- * configure.in: Remove --enable-Werror, new option
- --enable-debugging. New gcc option -Wpointer-arith.
-
- * pref.h.orig: Don't enable debugging by default (now a configure
- option). Use __inline__ instead of inline with gcc (partial -ansi
- -pedantic support).
- (macro local_strdup) Removed.
-
- * Made patchlevel 94.
-
-Wed Jul 29 22:03:11 1998 Ben Pfaff <blp@gnu.org>
-
- * Bump version to 0.1.21 (0.2.0 release candidate).
-
- * debian/: Removed.
-
- * Makefile.am: Don't copy debian/ into distribution.
-
- * pref.h.orig: Only enable `unused' attribute if gcc 2.8.0 or
- later is used.
-
-Sun Jul 5 14:20:04 1998 Ben Pfaff <blp@gnu.org>
-
- * configure.in: Bump version to 0.1.20 (0.2.0 release candidate).
-
- * Made patchlevel 93.
-
-Sun Jul 5 00:13:58 1998 Ben Pfaff <blp@gnu.org>
-
- * README: Updated.
-
- * TODO: Updated.
-
- * configure.in: Remove -Wno-unused from default gcc flags.
-
- * pref.h.orig: Add new #define, `unused', which under gcc expands
- to an explanation to the compiler that a function argument is
- unused, and expands to the null string under other compilers.
-
-Mon Jun 1 14:33:02 1998 Ben Pfaff <blp@gnu.org>
-
- * LANGUAGE: Updated.
-
- * configure.in: Bump version to 0.1.19.
-
- * Made patchlevel 92.
-
-Sun May 31 00:55:13 1998 Ben Pfaff <blp@gnu.org>
-
- * TODO: Updated.
-
- * configure.in: Generate Makefiles for lib/gmp/{,mpn,mpf}/.
-
- * Made patchlevel 91.
-
-Fri May 29 21:43:09 1998 Ben Pfaff <blp@gnu.org>
-
- * TODO: Updated.
-
- * LANGUAGE: Updated.
-
- * unconfigure: Remove TeX cruft from doc/.
-
- * Made patchlevel 90.
-
-Mon May 25 12:41:54 1998 Ben Pfaff <blp@gnu.org>
-
- * BUGS: Updated.
-
- * LANGUAGE: Updated.
-
- * TODO: Updated.
-
- * configure.in: Bumped version number up to 0.1.18.
-
- * Made patchlevel 89.
-
-Sun May 24 22:39:55 1998 Ben Pfaff <blp@gnu.org>
-
- * TODO: Updated.
-
- * Made patchlevel 88.
-
-Sat May 23 23:21:43 1998 Ben Pfaff <blp@gnu.org>
-
- * TODO: Updated.
-
- * configure.in: Remove gamma from replaceable functions.
-
- * Made patchlevel 87.
-
-Fri May 22 00:02:33 1998 Ben Pfaff <blp@gnu.org>
-
- * configure.in: Add gamma to list of functions with replacements.
-
- * Made patchlevel 86.
-
-Wed May 20 00:00:12 1998 Ben Pfaff <blp@gnu.org>
-
- * TODO: Updated.
-
- * Made patchlevel 85.
-
-Sat May 16 19:38:49 1998 Ben Pfaff <blp@gnu.org>
-
- * TODO: Updated.
-
- * Made patchlevel 84.
-
-Tue May 12 16:13:48 1998 Ben Pfaff <blp@gnu.org>
-
- * TODO: Updated.
-
- * unconfigure: Don't delete Makefile.in under intl/.
-
- * Made patchlevel 83.
-
-Thu May 7 23:16:26 1998 Ben Pfaff <blp@gnu.org>
-
- * unconfigure: Add some more files to reap.
-
- * Made patchlevel 82.
-
-Tue May 5 13:17:59 1998 Ben Pfaff <blp@gnu.org>
-
- * acconfig.h: Add HAVE_GOOD_RANDOM definition.
-
- * acinclude.m4: New macro BLP_RANDOM.
-
- * configure.in: Use new BLP_RANDOM macro.
-
- * unconfigure: New file.
-
- * Made patchlevel 81.
-
-Fri Apr 24 12:42:14 1998 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Remove bad comment.
-
- * AUTHORS: Removed Brad Appleton.
-
- * TODO: Updated.
-
- * configure.in: Remove `satisfy automake' bit. Don't generate
- avllib Makefile, since we don't use avllib anymore.
-
- * pref.h.orig: Define PSPP.
-
- * Made patchlevel 80.
-
-Wed Apr 15 12:59:39 1998 Ben Pfaff <blp@gnu.org>
-
- * AUTHORS, BUGS, LANGUAGE, README, THANKS: No longer generated
- from HTML. This caused a lot of deletions from the Makefile.am.
-
- * TODO: Updated.
-
- * Made patchlevel 79.
-
-Tue Apr 14 00:48:00 1998 Ben Pfaff <blp@gnu.org>
-
- * TODO: Updated.
-
- * configure.in: Check for unistd.h. Fix AC_LN_S (should have been
- AC_PROG_LN_S).
-
- * Made patchlevel 78. Must have missed 77 in there somewhere :-)
-
-Mon Mar 9 15:40:40 1998 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 76.
-
- * configure.in: Bumped version up to 0.1.16.
-
-1998-03-05 Ben Pfaff <blp@gnu.org>
-
- * configure.in: Bumped version up to 0.1.15.
-
-1998-02-23 Ben Pfaff <blp@gnu.org>
-
- * acinclude.m4: Add BLP_INT_DIGITS and BLP_IS_SPRINTF_GOOD macros.
-
- * configure.in: Those macros came from here. Better modularity
- this way. Bump version up to 0.1.14.
-
- * pref.h.orig: (macros CONFIG_PATH, INCLUDE_PATH, GROFF_FONT_PATH)
- Removed.
-
- * Made patchlevel 75.
-
-1998-02-23 Ben Pfaff <blp@gnu.org>
-
- * acconfig.h: Hard-code PACKAGE and GNU_PACKAGE as "PSPP" and "GNU
- PSPP" respectively.
-
- * configure.in: Call the package pspp instead of PSPP. Don't
- define PACKAGE and GNU_PACKAGE symbols. Add replacement function
- for strtok_r.
-
- * TODO: Updated.
-
- * Made patchlevel 74.
-
-1998-02-16 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Remove a few now-useless targets.
-
- * TODO: Updated.
-
- * configure.in: Bump version up to 0.1.13.
-
- * reconfigure: Don't assume . is in PATH.
-
- * Made patchlevel 73.
-
-Fri Feb 13 15:35:03 1998 Ben Pfaff <blp@gnu.org>
-
- * configure.in: Bump version up to 0.1.12.
-
- * TODO: Updated.
-
- * pref.h.orig: Make __unix equivalent to unix and __unix__; don't
- require any of these to be defined to 1, just defined. Invert
- sense of some tests from testing for unix to testing for not being
- msdog.
-
- * Made patchlevel 72.
-
-Thu Feb 5 00:22:58 1998 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 71.
-
- * configure.in: Bump version up to 0.1.11.
-
-Tue Feb 3 16:12:34 1998 Ben Pfaff <blp@gnu.org>
-
- * TODO: Updated.
-
- * Made patchlevel 70.
-
- * configure.in: Bump version up to 0.1.10.
-
-Fri Jan 23 00:17:18 1998 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 69.
-
-Thu Jan 22 00:35:52 1998 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 68.
-
-Sun Jan 18 00:30:18 1998 Ben Pfaff <blp@gnu.org>
-
- * configure.in: Add ieeefp.h to list of headers to check for.
-
- * Made patchlevel 67.
-
-Tue Jan 13 23:44:16 1998 Ben Pfaff <blp@gnu.org>
-
- * configure.in: Add sys/wait.h to list of headers to check for.
-
- * Made patchlevel 66.
-
-Sun Jan 11 21:30:09 1998 Ben Pfaff <blp@gnu.org>
-
- * configure.in: Bump version up to 0.1.9.
-
- * pref.h.orig (STORE_2): Fix parentheses. From Alexandre
- Oliva <oliva@dcc.unicamp.br>.
-
- * Made patchlevel 65.
-
-Sat Jan 10 23:59:06 1998 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 64.
-
-Sat Jan 10 02:10:15 1998 Ben Pfaff <blp@gnu.org>
-
- * TODO: Updated.
-
- * pref.h.orig: Comment fixes.
- (macro second_lowest_flt64) New.
-
- * Made patchlevel 63.
-
-Thu Jan 8 22:27:03 1998 Ben Pfaff <blp@gnu.org>
-
- * TODO: Updated.
-
- * Made patchlevel 62.
-
-Mon Jan 5 11:18:37 1998 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 61.
-
-Sun Jan 4 18:10:29 1998 Ben Pfaff <blp@gnu.org>
-
- * TODO: Updated.
-
- * pref.h.orig: (local_strdup) [HAVE_ALLOCA && PAGED_STACK &&
- __GNUC__] Rewritten for space and time efficiency and to evaluate
- its argument only once.
-
- * Made patchlevel 60.
-
-Sat Jan 3 16:51:20 1998 Ben Pfaff <blp@gnu.org>
-
- * TODO: Updated.
-
- * Made patchlevel 59.
-
-Fri Jan 2 01:38:37 1998 Ben Pfaff <blp@gnu.org>
-
- * TODO: Updated.
-
- * config.sub: Got tired of `i686-unknown-linux: Unknown system',
- so I made 686 equivalent to 586.
-
- * pref.h.orig: (macros ASCII_*, HTML_*, PS_*) Removed.
-
- * Made patchlevel 58.
-
-Thu Jan 1 11:50:47 1998 Ben Pfaff <blp@gnu.org>
-
- * TODO: Updated.
-
- * Made patchlevel 57.
-
-Fri Dec 26 15:43:17 1997 Ben Pfaff <blp@gnu.org>
-
- * TODO: Updated.
-
- * Made patchlevel 56.
-
-Wed Dec 24 22:34:55 1997 Ben Pfaff <blp@gnu.org>
-
- * reconfigure: regularized option syntax.
-
- * configure.in: Bumped version to 0.1.8. Changed name from pspp
- to PSPP. Added lib/dcdflib/Makefile to list of output files.
-
- * Made patchlevel 55.
-
-Sun Dec 21 15:58:52 1997 Ben Pfaff <blp@gnu.org>
-
- * TODO: Updated.
-
- * acconfig.h: Reformat.
-
- * configure.in: Bumped version to 0.1.7.
-
- * Made patchlevel 54.
-
-Fri Dec 5 23:38:12 1997 Ben Pfaff <blp@gnu.org>
-
- * Replaced prep.ai.mit.edu with ftp.gnu.org and .gnu.ai.mit.edu
- with .gnu.org, everywhere.
-
-Fri Dec 5 23:02:40 1997 Ben Pfaff <blp@gnu.org>
-
- * Replaced remaining instances of Fiasco with PSPP.
-
- * Made patchlevel 53.
-
-Fri Dec 5 22:51:18 1997 Ben Pfaff <blp@gnu.org>
-
- * Every instance of the name Fiasco, throughout every file,
- replaced in-place with PSPP, with the exceptions of a few files
- that had `fiasco' in their names; these were renamed.
-
- * Made patchlevel 52.
-
-Fri Dec 5 21:50:52 1997 Ben Pfaff <blp@gnu.org>
-
- * pref.h.orig: (macros NO_HTML, HTML_DEFAULT_OUTPUT_FILE) New
- macros.
-
- * TODO: Updated.
-
- * Made patchlevel 51.
-
-Tue Dec 2 14:35:12 1997 Ben Pfaff <blp@gnu.org>
-
- * TODO: Updated.
-
- * configure.in: Bumped version to 0.1.6.
-
- * Made patchlevel 50.
-
-Sat Nov 22 01:20:32 1997 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 49.
-
-Fri Nov 21 00:11:41 1997 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 48.
-
-Sun Nov 16 01:31:38 1997 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 47.
-
-Fri Nov 14 00:17:48 1997 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 46.
-
- * configure.in: Bumped version to 0.1.5.
-
-Tue Oct 28 16:07:17 1997 Ben Pfaff <blp@gnu.org>
-
- * configure.in: Bumped version to 0.1.4.
-
- * TODO: Updated.
-
- * Made patchlevel 45.
-
-Wed Oct 8 15:55:50 1997 Ben Pfaff <blp@gnu.org>
-
- * intl: Upgraded from sources to gettext-0.10.32.
-
- * configure.in: Bumped version to 0.1.3.
-
- * Made patchlevel 44.
-
-Tue Oct 7 20:21:53 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (dist-hook) Use $(top_srcdir).
-
- * pref.h.orig: (MAX_WORKSPACE) Enlarge to 4 MB (from 1 MB).
-
- * Made patchlevel 43.
-
-Sun Oct 5 15:52:37 1997 Ben Pfaff <blp@gnu.org>
-
- * configure.in: Bumped version to 0.1.2.
- (strerror) Replace instead of check. From Alexandre Oliva
- <oliva@dcc.unicamp.br>.
-
- * pref.h.orig: Include `debug-print' instead of
- `src/debug-print.h'.
-
- * Made patchlevel 42.
-
-Sat Oct 4 16:19:44 1997 Ben Pfaff <blp@gnu.org>
-
- * pref.h.orig: Comment fixes.
- (local_strdup) [HAVE_ALLOCA && PAGED_STACK &&
- __GNUC__] Use local_alloc() instead of alloca(), as local_alloc()
- isn't simply an alias for alloca().
-
- * configure.in: Bumped version to 0.1.1.
-
- * Made patchlevel 41.
-
-Sat Oct 4 02:13:00 1997 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 40.
-
-Sun Sep 21 00:07:09 1997 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 39.
-
-Thu Sep 18 21:42:27 1997 Ben Pfaff <blp@gnu.org>
-
- * pref.h.orig: (CONFIG_PATH) [unix] Add /usr/local/etc/fiasco,
- /usr/etc/fiasco to search path.
-
- * Made patchlevel 38.
-
-Wed Aug 20 14:20:06 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (noinst_DATA) Removed ANNOUNCE, HELP-WANTED.
- (EXTRA_DIST) Removed ANNOUNCE, FAQ, HELP-WANTED, mk-web-dist.
- (MAINTAINERCLEANFILES) Removed ANNOUNCE, FAQ, HELP-WANTED.
-
- * Made patchlevel 37.
-
-Wed Aug 20 12:48:25 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (doc/ANNOUNCE.html, ANNOUNCE, FAQ, doc/FAQ.html,
- HELP-WANTED) Removed.
- (docfiles) Removed ANNOUNCE, FAQ, HELP-WANTED.
-
- * mk-web-dist: Removed.
-
- * Made patchlevel 36.
-
-Mon Aug 18 18:06:12 1997 Ben Pfaff <blp@gnu.org>
-
- * TODO: Updated.
-
- * pref.h.orig: (macro DEFAULT_COMPAT) Removed.
-
- * Made patchlevel 35.
-
-Sun Aug 17 22:48:36 1997 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 34.
-
-Sat Aug 16 10:48:29 1997 Ben Pfaff <blp@gnu.org>
-
- * In many files, in this directory and others, messages were
- rephrased to eliminate or reduce usage of certain deprecated terms
- at suggestion of rms.
-
- * Makefile.am: (EXTRA_DIST) Removed unix2dos.pl.
- (MAINTAINERCLEANFILES) Removed doc/ANNOUNCE.html, doc/README.html.
- (docfiles-recursive) Removed.
-
- * TODO: Updated.
-
- * mk-web-dist: Doesn't produce any distributions at all, just a
- webpage. Doesn't configure the distribution. Changed list of
- files installed.
-
- * pref.h.orig: s/VER_PCP40/VER_PC/; s/VER_WIN61/VER_WND/;
- s/VER_X40/VER_X/; All references changed.
-
- * Made patchlevel 33.
-
-Thu Aug 14 22:02:08 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Comment fixes. Uses $(VERSION) instead of contents
- of VERSION file.
- (EXTRA_DIST) Remove fiasco.ide, mk-bc5-dist.
- (docfiles-recursive) Works if doc/Makefile doesn't exist.
- (DIST_BC5_ROOT) Renamed DISTBC5_DISTROOT.
- (DISTBC5_BC5ROOT) New var.
- (dist-bc5) Passes $(DISTBC5_BC5ROOT).
-
- * TODO: Update.
-
- * acinclude.m4: Remove blp_VERSION_CHEAT kluge.
-
- * configure.in: Don't use blp_VERSION_CHEAT kluge.
-
- * mk-web-dist, reconfigure: Extract version number from
- configure.in.
-
- * pref.h.orig: (CONFIG_PATH, INCLUDE_PATH, GROFF_FONT_PATH)
- [__MSDOS__] Fixed bad use of backslashes.
-
- * reconfigure: Pass $VERSION to Makefile.
-
- * Made patchlevel 32.
-
-Thu Aug 14 11:49:35 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (EXTRA_DIST, docfiles) Add ONEWS.
- (docfiles) Depends on docfiles-recursive.
- (docfiles-recursive) New target, call make for `docfiles' target
- in doc directory.
- (dist-bc5) Adds `foo' second arg to mk-bc5-dist.
- (.PHONY) Add docfiles.
-
- * mk-bc5-dist: Checks that it is passed a second arg of `foo'.
-
- * reconfigure: Changed == operators to = as arguments to `test'.
- No longer uses bash -v switch.
-
- * mk-distribution: Renamed mk-web-dist, all references changed.
- Now takes several options, added help. No longer uses -uv
- options.
-
- * Made patchlevel 31.
-
-Tue Aug 5 13:56:39 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (MAINTAINERCLEANFILES) Add HELP-WANTED.
- (EXTRA_DIST) Add ONEWS.
-
- * Made patchlevel 30.
-
-Sun Aug 3 11:30:17 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (noinst_data, docfiles) Added HELP-WANTED.
- (EXTRA_DIST) Added configure, mk-bc5-dist, unix2dos.pl,
- HELP-WANTED.
- (HELP-WANTED) Generated from doc/HELP-WANTED.html.
- (dist-bc5) New target.
-
- * TODO: Updated.
-
- * mk-distribution: Fixed bugs, added HELP-WANTED.
-
- * reconfigure: When invoking Makefile.am, pass
- top_srcdir=. explicitly.
-
- * unix2dos.pl: New file.
-
- * Made patchlevel 29.
-
-Thu Jul 17 21:49:13 1997 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 28.
-
-Thu Jul 17 01:43:25 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Remove inactive .html suffix rule.
- New rules to generate doc/ANNOUNCE.html and doc/README.html from
- corresponding .in files.
- (EXTRA_DIST) Add VERSION, fiasco.ide, mk-distribution.
- (MAINTAINERCLEANFILES) Add doc/ANNOUNCE.html, doc/README.html.
-
- * acinclude.m4: (blp_VERSION_CHEAT) New macro.
-
- * configure.in: Forces _GNU_SOURCES not only to be defined, but to
- a value of 1. Substitutes VERSION from the new file VERSION.
- Removed DEBIAN reference. Checks for sys/mman.h header.
-
- * pref.h.orig: (macro gettext) Don't put parentheses in the
- expansion.
- (macro N_) Same.
-
- * reconfigure: Sets -ev in shell. Doesn't try to pass
- --include-deps to configure (it's an automake flag!). Moved `make
- docfiles'.
-
- * sysdeps/borlandc4.0/README, sysdeps/borlandc4.0/_read.c,
- sysdeps/borlandc4.0/_write.c, sysdeps/borlandc4.0: Removed.
-
- * VERSION: New file.
-
- * fiasco.ide: New file.
-
- * mk-distribution: New file.
-
- * Made patchlevel 27.
-
-Fri Jul 11 23:00:53 1997 Ben Pfaff <blp@gnu.org>
-
- * TODO: Updates.
-
- * Made patchlevel 26.
-
-Fri Jul 11 14:08:21 1997 Ben Pfaff <blp@gnu.org>
-
- * pref.h.orig: __CYGWIN32__ is a form of __unix__.
-
- * reconfigure: Add -k for make maintainer-clean.
-
- * Made patchlevel 25.
-
-Thu Jul 10 22:13:07 1997 Ben Pfaff <blp@gnu.org>
-
- * configure.in: Add "-D_GNU_SOURCE" to CPPFLAGS to force GNU
- glibc extensions to be detected.
-
- * Made patchlevel 24.
-
-Sun Jul 6 19:13:07 1997 Ben Pfaff <blp@gnu.org>
-
- * pref.h.orig: Include "src/debug-print.h" instead of
- "debug-print.h".
- (macros local_alloc, local_free) More robust under Checker: put
- their allocations in namespace different from malloc()/free().
-
- * Made patchlevel 23.
-
-Sat Jul 5 23:42:14 1997 Ben Pfaff <blp@gnu.org>
-
- * TODO: Updates.
-
- * Made patchlevel 22.
-
-Fri Jul 4 13:20:47 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (EXTRA_DIST) Removed orphaned-rules.
- (docfiles) Removed ChangeLog, COPYING.
- (html, maintainer-clean-hook, install-data-hook) Removed.
-
- * reconfigure: Added --help option. Calls configure again even if
- --no-include-deps.
-
- * Made patchlevel 21.
-
-Wed Jun 25 22:47:17 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Require Automake 1.2.
- (dist-hook) Don't copy config dir.
- (EXTRA_DIST, MAINTAINERCLEANFILES) Add FAQ.
- (docfiles) Made a variable as well as a target; added ChangeLog,
- COPYING, FAQ, INSTALL, TODO.
- (html, maintainer-clean-hook, install-data-hook, debian,
- debian-clean, debian-clean-full) New targets.
-
- * orphaned-rules: Removed.
-
- * configure.in: Bumped up to version 0.1.0.
-
- * reconfigure: New options --enable-nls, --no-include-deps.
- Comment fixes.
-
- * Made patchlevel 20.
-
-Sun Jun 22 22:10:27 1997 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 19.
-
-Sun Jun 15 16:44:14 1997 Ben Pfaff <blp@gnu.org>
-
- * pref.h.orig: Comment fixes. Includes debug-print.h.
- (DEMAND_PAGE, ALWAYS_PAGE, NEVER_PAGE) Removed.
-
- * Made patchlevel 18.
-
-Sun Jun 8 01:25:40 1997 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 17.
-
-Fri Jun 6 22:41:08 1997 Ben Pfaff <blp@gnu.org>
-
- * TODO: Updates.
-
- * pref.h.orig: Reformatted macros.
- [!ENABLE_NLS] Defines gettext() as a trivial substitution to allow
- gcc to give warnings on printf().
-
- * Made patchlevel 16.
-
-Thu Jun 5 23:01:49 1997 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 15.
-
-Tue Jun 3 23:24:08 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: AUTOMAKE_OPTIONS changed from `foreign 1.1l' to
- `gnits 1.1p'. SUBDIRS reordered. New target `docfiles'.
-
- * TODO: Updates.
-
- * configure.in: Removed AM_MAINTAINER_MODE. Added
- --enable-Werror, which is implied by --with-checker.
-
- * reconfigure: Moved `aclocal' from beginning to just before
- cleaning `autoheader'. Removed --enable-maintainer-mode. Added
- --disable-nls. Added `make docfiles' to placate autoheader.
- Added `aclocal' before first real `autoheader'. Uses `make
- mostlyclean' instead of `make depend'.
-
- * Made patchlevel 14.
-
-Mon Jun 2 14:21:54 1997 Ben Pfaff <blp@gnu.org>
-
- * configure.in: Removed comment that screwed things up.
-
- * reconfigure: Added `aclocal' at beginning.
-
- * Made patchlevel 13.
-
-Sun Jun 1 23:25:39 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Add intl, po to SUBDIRS. Add aclocal.m4,
- config.h.in to MAINTAINERCLEANFILES.
-
- * acconfig.h: Add HAVE_LC_MESSAGES, ENABLE_NLS, HAVE_CATGETS,
- HAVE_GETTEXT, HAVE_STPCPY.
-
- * configure.in: Reordered to placate autoheader. Added
- AC_ISC_POSIX, AM_PROG_CC_STDC. Added internationalization:
- ALL_LINGUAS="", AM_GNU_GETTEXT, AC_LINK_FILES(...). Added
- po/Makefile.in, intl/Makefile to generated files list. Generates
- po/Makefile from po/Makefile.in. Comment fix.
-
- * pref.h.orig: Uncommented i18n support.
-
- * acinclude.m4: New file.
-
- * ABOUT-NLS: New file.
-
- * intl/: New directory, taken from gettext-0.10.27.
-
- * missing: New file, taken from automake-1.1p.
-
- * po/: New directory.
-
- * Made patchlevel 12.
-
-Sun Jun 1 17:28:27 1997 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 11.
-
-Sun Jun 1 11:58:43 1997 Ben Pfaff <blp@gnu.org>
-
- * pref.h.orig: Removed DEFAULT_VER_PCP40, DEFAULT_VER_WIN61,
- DEFAULT_VER_X40. Added a macro DEFAULT_COMPAT that takes one of
- the VER_* enums as a value.
- (HISTORY_FILE) Changed the definition to "~/.fiasco_history".
-
- * Made patchlevel 10.
-
-Fri May 30 19:40:22 1997 Ben Pfaff <blp@gnu.org>
-
- * pref.h.orig: [__MSDOS__] Reordered INCLUDE_PATH.
-
- * Made patchlevel 9.
-
-Sun May 25 22:32:57 1997 Ben Pfaff <blp@gnu.org>
-
- * acconfig.h: For support of glibc 2, define _GNU_SOURCE.
-
- * Made patchlevel 8.
-
-Mon May 5 21:58:22 1997 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 7.
-
-Fri May 2 22:27:36 1997 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 6.
-
-Thu May 1 15:34:01 1997 Ben Pfaff <blp@gnu.org>
-
- * All files: Changed copyright from `Ben Pfaff' to `Free Software
- Foundation, Inc'.
-
- * Made patchlevel 5.
-
-Thu May 1 15:00:51 1997 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 4.
-
-Sat Apr 26 11:34:05 1997 Ben Pfaff <blp@gnu.org>
-
- * ChangeLog: Split into one ChangeLog per directory.
-
- * Made patchlevel 3.
-
-Wed Apr 23 21:33:48 1997 Ben Pfaff <blp@gnu.org>
-
- * TODO: Update.
-
- * Made patchlevel 2.
-
-Fri Apr 18 16:48:41 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Removed `include', `util' from SUBDIRS; added
- `config'. Includes `config' directory in distributions. Added
- `private-install', `private-uninstall' targets.
-
- * configure.in: AC_INIT tests for src/q2c.c now. Removed
- redundant AC_PROG_MAKE_SET call. Removed include/Makefile,
- util/Makefile from generated files list; added config/Makefile.
-
- * include/approx.h, include/arena.h, include/common.h,
- include/dfm.h, include/do-ifP.h, include/error.h, include/expr.h,
- include/exprP.h, include/file-handle.h, include/filename.h,
- include/font.h, include/getline.h, include/getopt.h,
- include/hash.h, include/heap.h, include/log.h, include/misc.h,
- include/output.h, include/settings.h, include/sfm.h,
- include/sfmP.h, include/som.h, include/somP.h, include/stat.h,
- include/stats.h, include/str.h, include/tokens.h, include/var.h,
- include/version.h, include/vfmP.h: Moved into src/ directory.
-
- * include/Makefile.am, include/: Removed.
-
- * util/Makefile.am: Removed.
-
- * util/q2c.c: Moved to src/.
-
- * util/reconfigure: Moved to source root.
-
- * util/: Removed.
-
- * Made patchlevel 1.
-
-Fri Apr 18 15:42:22 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Maintainer-cleans generated documentation and
- Makefile.in.
-
- * include/Makefile.am, util/Makefile.am: Maintainer-cleans
- Makefile.in.
-
- * include/somP.h: (static struct var som) Removed passed_t member.
-
- * TODO: Updated.
-
- * configure.in: Fixed source directory for copying pref.h; always
- updates pref.h or at least touch'es it.
-
- * pref.h.orig: Made a rather pejorative comment a lot milder so it
- wouldn't be misinterpreted.
-
- * Made interim release x3.
-
-Thu Mar 27 01:11:29 1997 Ben Pfaff <blp@gnu.org>
-
- * All directories now contain new `Makefile.am's, in some cases
- produced from bits and pieces of the single monolithic old one.
-
- * PATCHLEVEL: Removed.
-
- * acconfig.h: Added GNU_PACKAGE, PACKAGE, PROTOTYPES, VERSION;
- removed inclusion of conf.h.
-
- * confh.in: Removed.
- * confh.tmp.in: Removed.
-
- * configure.in: Deepened. Updated for use with Automake 1.1l.
- Removed PATCHLEVEL hacks. Fixed lots of functions in
- AC_CHECK_FUNCS, AC_REPLACE_FUNCS, and similar. Only passes
- `-Werror' to gcc in maintainer mode. Doesn't output conf.h.
- Touches pref.h even if it wasn't changed.
-
- * aclocal.m4: New file.
-
- * config.h.in: Renamed from configh.in.
-
- * pref.h.orig: Renamed from prefh.orig.
-
- * Made interim release x2.
-
-Thu Mar 27 01:07:02 1997 Ben Pfaff <blp@gnu.org>
-
- Changed the distribution from flat to deep. New configuration:
-
- ANNOUNCE Makefile.in config.h.in mkinstalldirs
- AUTHORS NEWS config.sub orphaned-rules
- BUGS README configure pref.h
- COPYING THANKS configure.in pref.h.orig
- ChangeLog TODO debian src
- ChangeLog~ acconfig.h doc stamp-h.in
- INSTALL aclocal.m4 include sysdeps
- LANGUAGE config install-sh tests
- Makefile.am config.guess lib util
-
- config:
- devices environment papersize ps-fontmap ps-prologue
-
- debian:
- changelog control postinst rules
- conffiles copyright postrm
-
- doc:
- ANNOUNCE.html Makefile.in fiasco.info-2 stamp-vti
- AUTHORS.html README.html fiasco.info-3 texinfo.tex
- BUGS.html THANKS.html fiasco.info-4 version.texi
- LANGUAGE.html fiasco.info fiasco.texi
- Makefile.am fiasco.info-1 mdate-sh
-
- include:
- approx.h file-handle.h misc.h stats.h
- arena.h filename.h output.h str.h
- common.h font.h settings.h tokens.h
- dfm.h getline.h sfm.h var.h
- do-ifP.h getopt.h sfmP.h version.h
- error.h hash.h som.h vfmP.h
- expr.h heap.h somP.h
- exprP.h log.h stat.h
-
- lib:
- Makefile.am Makefile.in avllib julcal misc
-
- lib/avllib:
- AVLLIB.COPYING Makefile.in avl.h
- Makefile.am avl.c
-
- lib/julcal:
- Makefile.am Makefile.in julcal.c julcal.h
-
- lib/misc:
- Makefile.am getopt1.c memset.c strstr.c
- Makefile.in memchr.c qsort.c strtol.c
- alloca.c memcmp.c stpcpy.c strtoul.c
- getdelim.c memcpy.c strcasecmp.c
- getline.c memmem.c strncasecmp.c
- getopt.c memmove.c strpbrk.c
-
- src:
- Makefile.am error.c lexer.c sfm-write.c
- Makefile.in expr-evl.c list.c show.c
- arena.c expr-opt.c list.q som-frnt.c
- ascii.c expr-prs.c log.c som-high.c
- autorecode.c file-handle.c loop.c som-low.c
- cases.c file-handle.q main.c sort.c
- cmdline.c file-type.c mis-val.c split-file.c
- command.c filename.c misc.c stats.c
- common.c formats.c modify-vars.c str.c
- compute.c freq.c numeric.c sysfile-info.c
- count.c frequencies.c output.c temporary.c
- crosstabs.c frequencies.g postscript.c title.c
- crosstabs.q frequencies.q print.c val-labs.c
- data-in.c get.c recode.c var-labs.c
- data-list.c getline.c rename-vars.c vars-atr.c
- data-out.c glob.c repeat.c vars-prs.c
- descript.c groff-font.c sample.c vector.c
- descript.q hash.c sel-if.c version.c
- dfm.c heap.c set.c vfm.c
- display.c include.c set.q weight.c
- do-if.c inpt-pgm.c sfm-read.c
-
- sysdeps:
- BorlndC4.0 DJGPP2.0 Windows
-
- sysdeps/BorlndC4.0:
- Makefile _write.c conf.h
- _read.c compile.bat config.h
-
- sysdeps/DJGPP2.0:
- Makefile compile.bat conf.h config.h
-
- sysdeps/Windows:
- con32s.c
-
- tests:
- Makefile.am expression.stat reread.data
- Makefile.in fall92.data reread.stat
- autorecode.stat fall92.stat sample.stat
- begin-data.stat file-label.stat show-check-msg
- bignum.data file-type.stat sort.data
- bignum.stat filter.stat sort.stat
- bug.stat gengarbage.c split-file.stat
- compute.stat input-program.stat sysfile-info.stat
- count.stat list.data temporary.stat
- data-formats.stat list.stat time-date.stat
- data-list.data loop.stat vector.stat
- data-list.stat modify-vars.stat weighting.data
- descript.stat print.stat weighting.stat
- do-if.stat process-if.stat
- do-repeat.stat recode.stat
-
- util:
- Makefile.am Makefile.in q2c.c reconfigure
-
- Old configuration:
-
- ANNOUNCE.html count.c hash.h sample.c
- AUTHORS.html crosstabs.q heap.c sel-if.c
- AVLLIB.COPYING data-in.c heap.h set.q
- BUGS.html data-list.c include.c settings.h
- COPYING data-out.c inpt-pgm.c sfm-read.c
- ChangeLog debian install-sh sfm-write.c
- INSTALL descript.q julcal.c sfm.h
- LANGUAGE.html devices julcal.h sfmP.h
- Makefile.am dfm.c lexer.c show.c
- NEWS dfm.h list.q som-frnt.c
- PATCHLEVEL display.c log.c som-high.c
- README.html do-if.c log.h som-low.c
- THANKS.html do-ifP.h loop.c som.h
- TODO environment main.c somP.h
- _read.c error.c makeb40.bat sort.c
- _write.c error.h makedj2.bat split-file.c
- acconfig.h expr-evl.c makefile.b40 stamp-h.in
- alloca.c expr-opt.c makefile.dj2 stats.c
- approx.h expr-prs.c mdate-sh stats.h
- arena.c expr.h memcmp.c stpcpy.c
- arena.h exprP.h mis-val.c str.c
- ascii.c fiasco.texi misc.c str.h
- autorecode.c file-handle.h misc.h sysfile-info.c
- avl.c file-handle.q mkinstalldirs temporary.c
- avl.h file-type.c modify-vars.c test
- cases.c filename.c numeric.c texinfo.tex
- cmdline.c filename.h output.c title.c
- command.c font.h output.h tokens.h
- common.c formats.c papersize val-labs.c
- common.h freq.c postscript.c var-labs.c
- compute.c frequencies.g prefh.orig var.h
- con32s.c frequencies.q print.c vars-atr.c
- confh.b40 get.c ps-fontmap vars-prs.c
- confh.dj2 getline.c ps-prologue vector.c
- confh.in getline.h q2c.c version.c
- confh.tmp.in getopt.c qsort.c version.h
- config.guess getopt.h recode.c vfm.c
- config.sub getopt1.c reconfigure vfmP.h
- configh.b40 glob.c reject weight.c
- configh.dj2 groff-font.c rename-vars.c
- configure.in hash.c repeat.c
-
- debian:
- changelog control postinst rules
- conffiles copyright postrm
-
- test:
- autorecode.stat fall92.data recode.stat
- begin-data.stat fall92.stat reread.data
- bignum.data file-label.stat reread.stat
- bignum.stat file-type.stat sample.stat
- bug.stat filter.stat sort.stat
- compute.stat gengarbage.c split-file.stat
- count.stat gengarbage.pl sysfile-info.stat
- data-formats.stat input-program.stat temporary.stat
- data-list.data list.data time-date.stat
- data-list.stat list.stat vector.stat
- descript.stat loop.stat weighting.data
- do-if.stat modify-vars.stat weighting.stat
- do-repeat.stat print.stat
- expression.stat process-if.stat
-
-Mon Mar 24 21:47:31 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: @ALLOCA@ is on list of source files instead of
- alloca.c. Added $(srcdir)/ to version.c reference. Changed to
- pkgdatadir (/usr/share) for pkgsysconfdir, from pkglibdir
- (/usr/lib). Removed some of extra distfiles. Added bogus `check'
- target.
-
- * Made transition release x1.
-
-Sun Mar 2 20:51:28 1997 Ben Pfaff <blp@gnu.org>
-
- No longer uses debmake:
-
- * Makefile.am: Installs documentation according to Debian policy
- manual. New targets `private-uninstall', `install-data-hook' to
- help implement this. `debian' target also revised.
-
- * configure.in: Sets up for Debian installation depending on
- DEBIAN environment variable. Also, improved & fixed (hopefully)
- the scheme for detecting patchlevel.
-
- * Made patchlevel 193.
-
-Wed Feb 19 21:30:31 1997 Ben Pfaff <blp@gnu.org>
-
- * TODO: Updated.
-
- * Made patchlevel 192.
-
-Sun Feb 16 20:57:20 1997 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 191.
-
-Sat Feb 15 21:26:53 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Removed `descript.g' from sources.
-
- * Made patchlevel 190.
-
-Fri Feb 14 23:32:58 1997 Ben Pfaff <blp@gnu.org>
-
- * TODO: Updated.
-
- * configure.in: Fixed test for max number of digits in an `int' to
- use char[] rather than int[].
-
- * Made patchlevel 189.
-
-Tue Feb 4 15:15:50 1997 Ben Pfaff <blp@gnu.org>
-
- * configure.in: Fixed some problems with `--with-checker' flag and
- with detection of available libraries; no longer any lines longer
- than 79 characters.
-
- * Made patchlevel 188.
-
-Wed Jan 22 21:54:00 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Add sysfile-info.c to sources.
-
- * TODO: Moved some notes to different files where they are more
- appropriate.
-
- * prefh.orig: (macros STORE_2 and LOAD_2) Always load/store as
- little-endian.
-
- * Made patchlevel 187.
-
-Sun Jan 19 14:22:11 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Added rename-vars.c to sources. Added to distclean
- files.
-
- * TODO: Updates.
-
- * Made patchlevel 186.
-
-Thu Jan 16 13:08:57 1997 Ben Pfaff <blp@gnu.org>
-
- * Most files have updated copyright notices for 1997.
-
- * Makefile.am: Added modify-vars.c to source files. Also changed
- `lynx' to $(HTML_FORMATTER), etc. Changed messages.
-
- * TODO: Updates.
-
- * Made patchlevel 185.
-
-Sat Jan 11 15:44:15 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: By default, now installs config files in pkglibdir,
- generally /usr/local/lib/fiasco.
-
- * TODO: Updated.
-
- * prefh.orig: Added `/etc/fiasco' to config paths. Removed
- $ARCH/$VER dirs from include paths.
-
- * Made patchlevel 184.
-
-Fri Jan 10 20:22:08 1997 Ben Pfaff <blp@gnu.org>
-
- * debian/changelog, debian/control, debian/copyright, debian/dirs,
- debian/info, debian/menu, debian/rules: Added Debian GNU/Linux
- control files.
-
- * Makefile.am: Added sfmP.h to source files. Added several files
- to the list of distfiles. dist-hook now copies debian control
- files. New targets `debian', `debian-clean', `debian-clean-full'.
-
- * confh.in: Defines PATCHLEVEL.
-
- * configure.in: Adds the current patchlevel to the version
- number. Versions are now of the form `1.2.3pl456'. Determines
- the patchlevel based on directory name and contents of file
- PATCHLEVEL.
-
- * reconfigure: Passes automake `--strictness=foreign'.
-
- * Made patchlevel 183.
-
-Thu Jan 2 19:08:23 1997 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 182.
-
-Wed Jan 1 22:08:10 1997 Ben Pfaff <blp@gnu.org>
-
- * TODO: Updated.
-
- * Made patchlevel 181.
-
-Wed Jan 1 17:00:59 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: New target for test/sort.data.
-
- * Made patchlevel 180.
-
-Sun Dec 29 21:36:48 1996 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 179.
-
-Tue Dec 24 20:42:32 1996 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 178.
-
-Sun Dec 22 23:10:39 1996 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Added heap.c, heap.h to source files. Added
- new html files to distfiles & maintainer-clean files.
-
- * configure.in: Tests for presence of getpid(), sys/types.h.
-
- * prefh.orig: #defines mkdir() for MS-DOS compatibility.
-
- * Made patchlevel 177.
-
-Sat Dec 21 21:51:04 1996 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Added README.html, LANGUAGE.html to list of
- distfiles. Added README, LANGUAGE to list of maintainer-clean
- files. Added .html to suffixes. Added .html implicit rule that
- calls `lynx -dump -nolist'.
-
- * Made patchlevel 176.
-
-Tue Dec 17 18:57:59 1996 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 175.
-
-Sun Dec 15 15:32:16 1996 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Added vfmP.c, qsort, sort.c to list of source
- files.
-
- * prefh.orig: Subtle changes to MAX_WORKSPACE, ALWAYS_PAGE,
- NEVER_PAGE, DEMAND_PAGE macro meanings.
-
- * Made patchlevel 174.
-
-Sat Dec 14 10:35:30 1996 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 173.
-
-Fri Dec 13 21:30:53 1996 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Added autorecode.c to source files.
-
- * prefh.orig: Fixed path GROFF_FONT_PATH.
-
- * Made patchlevel 172.
-
-Fri Dec 6 23:53:47 1996 Ben Pfaff <blp@gnu.org>
-
- * TODO: Updated.
-
- * Made patchlevel 171.
-
-Wed Dec 4 21:34:17 1996 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 170.
-
-Sun Dec 1 17:19:00 1996 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 169.
-
-Thu Nov 28 23:14:07 1996 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Added `set.q' to list of source files.
-
- * Made patchlevel 168.
-
-Thu Nov 28 19:46:10 1996 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 167.
-
-Wed Nov 27 23:18:35 1996 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Added `sfm-write.c' to list of source files.
-
- * confh.in: New #defines RELEASE_NO, SUB_RELEASE_NO, and
- SPEC_RELEASE_NO for each part of a version number of form 1.2.3.
-
- * configure.in: Computes RELEASE_NO, etc., by breaking apart
- VERSION.
-
- * prefh.orig: (defn of int32, flt64) Formatting fixes.
- (FLT64_MAX) New define.
-
- * Made patchlevel 166.
-
-Sun Nov 24 14:53:53 1996 Ben Pfaff <blp@gnu.org>
-
- * Wow, it's been almost two weeks since the last update, hard to
- believe.
-
- * All source files: Updated e-mail address.
-
- * prefh.orig: local_alloc() calls xmalloc() under Checker because
- Checker can keep track of heap blocks much more accurately.
-
- * Made patchlevel 165.
-
-Mon Nov 11 15:34:09 1996 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 164.
-
-Thu Nov 7 20:52:28 1996 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 163.
-
-Thu Nov 7 17:29:16 1996 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 162.
-
-Thu Nov 7 15:48:52 1996 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 161.
-
-Tue Nov 5 18:34:59 1996 Ben Pfaff <blp@gnu.org>
-
- * TODO: Updated.
-
- * Made patchlevel 160.
-
-Mon Nov 4 22:03:28 1996 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Added get.c.
-
- * TODO: Updated.
-
- * Made patchlevel 159.
-
-Sun Nov 3 12:24:36 1996 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Added sfm.h, sfm-read.c to source files.
-
- * Made patchlevel 158.
-
-Wed Oct 30 17:13:08 1996 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Added dist-zip target to AUTOMAKE_OPTIONS.
-
- * acconfig.h: Added FPREP_* defines.
-
- * configure.in: Added checks for the sizes of floating-point
- types. Added a test for the internal floating-point
- representation of the host architecture.
-
- * prefh.orig: Renamed `ATTRIBUTION' macro as `__attribute__'. All
- references changed. Defines `flt64' 64-bit floating-point for use
- with system files.
- [FPREP==FPREP_IEEE754 && __GNUC__ && (ENDIAN==BIG ||
- ENDIAN==LITTLE] Defines SECOND_LOWEST_VALUE macro.
-
- * Made patchlevel 157.
-
-Sat Oct 26 23:06:06 1996 Ben Pfaff <blp@gnu.org>
-
- * configure.in: Checks sizes of short, int, long, long long.
-
- * prefh.orig: Defines new type int32 for use with system
- files.
-
- * Made patchlevel 156.
-
-Sat Oct 26 20:46:31 1996 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 155.
-
-Sat Oct 26 10:39:25 1996 Ben Pfaff <blp@gnu.org>
-
- * TODO: Updated.
-
- * Made patchlevel 154.
-
-Thu Oct 24 20:13:42 1996 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Added back in these files: recode.c, sample.c,
- sel-if.c. Also added files somP.h, hash.c that should've been
- there anyway.
-
- * TODO: Updated.
-
- * configure.in: Checks for strncasecmp in place of strcasecmp.
-
- * Made patchlevel 153.
-
-Thu Oct 24 17:47:14 1996 Ben Pfaff <blp@gnu.org>
-
- * TODO: Updated.
-
- * Made patchlevel 152.
-
-Wed Oct 23 21:53:43 1996 Ben Pfaff <blp@gnu.org>
-
- * TODO: Organized.
-
- * Made patchlevel 151.
-
-Tue Oct 22 17:27:04 1996 Ben Pfaff <blp@gnu.org>
-
- * TODO: Culled old notes.
-
- * Made patchlevel 150.
-
-Mon Oct 21 20:39:59 1996 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 149.
-
-Sun Oct 20 13:45:28 1996 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Added back in `numeric.c', `print.c', `title.c'.
- Defined ETAGS_ARGS.
-
- * Made patchlevel 148.
-
-Sun Oct 20 09:04:15 1996 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 147.
-
-Fri Oct 18 19:46:49 1996 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 146.
-
-Sun Sep 29 19:37:03 1996 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 145.
-
-Sat Sep 28 21:28:07 1996 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Added to DISTCLEANFILES.
-
- * Made patchlevel 144.
-
-Fri Sep 27 20:08:39 1996 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 143.
-
-Thu Sep 26 22:20:26 1996 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Added list.c back into the list of source files.
-
- * Made patchlevel 142.
-
-Wed Sep 25 19:36:11 1996 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Updated for new files.
-
- * Made patchlevel 141.
-
-Tue Sep 24 18:39:09 1996 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 140.
-
-Sat Sep 21 23:16:31 1996 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 139.
-
-Fri Sep 20 22:52:28 1996 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 138.
-
-Thu Sep 12 18:40:33 1996 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 137.
-
-Wed Sep 11 22:01:41 1996 Ben Pfaff <blp@gnu.org>
-
- * TODO: Added timestamp.
-
- * prefh.orig: Removed `/usr/local/share/fiasco' and
- `/usr/share/fiasco' from CONFIG_PATH as per the Linux FSSTND,
- which specifies that programs should never give an explicit
- `/usr(/local)/share' path.
-
- * Made patchlevel 136.
-
-Tue Sep 10 21:39:00 1996 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Added `display.c' back in.
-
- * TODO: Addition.
-
- * Made patchlevel 135.
-
-Mon Sep 9 21:43:13 1996 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Added `split-file.c' back into the project.
-
- * Made patchlevel 134.
-
-Sat Sep 7 22:35:12 1996 Ben Pfaff <blp@gnu.org>
-
- * TODO: Updated.
-
- * prefh.orig: (local_strdup) Moved to misc.h.
-
- * Made patchlevel 133.
-
-Thu Sep 5 22:05:56 1996 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Changed `prologue.ps' references to `ps-prologue'.
-
- * Made patchlevel 132.
-
-Wed Sep 4 21:45:35 1996 Ben Pfaff <blp@gnu.org>
-
- * prefh.orig: New i18n defines.
-
- * This patchlevel doesn't even compile.
-
- * Made patchlevel 131.
-
-Sat Aug 31 23:52:38 1996 Ben Pfaff <blp@gnu.org>
-
- * TODO: Addition.
-
- * Made patchlevel 130.
-
-Thu Aug 29 21:36:41 1996 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 129.
-
-Sat Aug 24 23:26:00 1996 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: New target "private-install" to install config files
- to $HOME/.fiasco.
-
- * configure.in: Now that I have made a less-bogus Checker
- distribution, removed `-b i486-linuxaout -V 2.6.3' from
- AC_ARG_WITH(checker, ...).
-
- * Made patchlevel 127 somewhere in there.
-
- * Made patchlevel 128.
-
-Sun Aug 11 21:31:22 1996 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Changed DISTCLEANFILES.
-
- * Does not compile.
-
- * Made patchlevel 126.
-
-Sat Aug 10 23:28:17 1996 Ben Pfaff <blp@gnu.org>
-
- * reconfigure: Calls `autoheader' twice: once at the beginning,
- once after make maintainer-clean.
-
- * Made patchlevel 125.
-
-Thu Aug 8 22:31:11 1996 Ben Pfaff <blp@gnu.org>
-
- * reconfigure: `autoheader' now first operation performed.
-
- * Made patchlevel 124.
-
-Sat Aug 3 20:50:35 1996 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Added postscript.c to list of source files.
-
- * configh.in: Removed since autoheader can regenerate it.
-
- * configure.in: Improved tests for (ncurses or termcap) and
- (history and/or readline) libraries and associated headers. Added
- check for strcasecmp(). Changed default gcc CFLAGS.
-
- * prefh.orig: Removed `.' from GROFF_FONT_PATH.
- (local_alloc, local_free) New functions.
-
- * reconfigure: Added call to autoheader.
-
- * Made patchlevel 123.
-
-Sat Jul 27 22:32:38 1996 Ben Pfaff <blp@gnu.org>
-
- * There were some problems with the patchfiles so I had to merge
- what was previously patchlevels 121 and 122; now everything from
- what was previously 122 is called 121. Oh well, just don't let it
- happen often.
-
- * This patchlevel does not compile.
-
- * configure: No longer included in patches to save lotsa space
- when configure.in changes.
-
- * configure.in: Changed the technique for detecting libraries.
-
- * prefh.orig: Style changes; handles changed configure.in.
-
- * Made patchlevel 122 (second edition).
-
-Tue Jul 23 21:48:36 1996 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 121.
-
-Wed Jul 17 21:23:36 1996 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 120.
-
-Tue Jul 16 22:10:04 1996 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 119.
-
-Sun Jul 14 15:45:31 1996 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 118.
-
-Fri Jul 12 22:03:36 1996 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Added list.c to sources.
-
- * Made patchlevel 117.
-
-Sat Jul 6 22:22:25 1996 Ben Pfaff <blp@gnu.org>
-
- * configure.in: Removed reference to `malloc.h'.
-
- * Made patchlevel 116.
-
-Fri Jul 5 20:16:19 1996 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 115.
-
-Thu Jul 4 20:20:24 1996 Ben Pfaff <blp@gnu.org>
-
- * prefh.orig: Changes to CONFIG_PATH, INCLUDE_PATH,
- GROFF_FONT_PATH.
-
- * Makefile.am: pkgdata_DATA file `output' changed to `devices'.
-
-Thu Jul 4 00:35:59 1996 Ben Pfaff <blp@gnu.org>
-
- * TODO: doc fix.
-
- * Made patchlevel 114.
-
-Tue Jul 2 22:13:23 1996 Ben Pfaff <blp@gnu.org>
-
- * reconfigure: (new file) Runs all the programs necessary to
- create a Makefile that includes dependencies.
-
- * Made patchlevel 113.
-
-Mon Jul 1 22:13:39 1996 Ben Pfaff <blp@gnu.org>
-
- * Made patchlevel 112.
-
-Mon Jul 1 13:00:00 1996 Ben Pfaff <blp@gnu.org>
-
- * Most files: Changed references from `stat' (the original, rather
- dull old name for this project) to `Fiasco' (the creative, rather
- funny new name for this project).
-
- * Made patchlevel 111.
-
-Sat Jun 29 17:40:47 1996 Ben Pfaff <blp@gnu.org>
-
- * prefh.orig: changed default file search paths
-
- * Made patchlevel 110.
-
-Fri Jun 28 11:59:48 1996 Ben Pfaff <blp@gnu.org>
-
- * Added automake support; removed GNUmakefile and GNUmakefile.in.
-
-----------------------------------------------------------------------
-Local Variables:
-mode: change-log
-version-control: never
-End:
pkgsysconfdir = $(sysconfdir)/@PACKAGE@
-EXTRA_DIST = ONEWS config.rpath pspp-mode.el
+EXTRA_DIST = OChangeLog ONEWS config.rpath pspp-mode.el
CLEANFILES =
ACLOCAL_AMFLAGS = -I m4 -I gl/m4
noinst_PROGRAMS=
check_PROGRAMS=
bin_PROGRAMS=
+DIST_HOOKS =
+PHONY =
+
+DIST_HOOKS += generate-changelog
+generate-changelog:
+ if test -d $(top_srcdir)/.git; then \
+ $(top_srcdir)/gitlog-to-changelog --since=2008-07-27 \
+ > $(distdir)/cl-t; \
+ rm -f $(distdir)/ChangeLog; \
+ mv $(distdir)/cl-t $(distdir)/ChangeLog; \
+ fi
include $(top_srcdir)/lib/automake.mk
include $(top_srcdir)/doc/automake.mk
if WITH_GUI_TOOLS
include $(top_srcdir)/glade/automake.mk
endif
+
+PHONY += $(DIST_HOOKS)
+dist-hook: $(DIST_HOOKS)
+.PHONY: $(PHONY)
--- /dev/null
+2008-06-13 Ben Pfaff <blp@gnu.org>
+
+ * configure.ac: Fix typo in AC_PREREQ command name. Thanks to
+ Stepan Kasal <kasal@ucw.cz> for reporting the problem.
+
+2008-06-04 Ben Pfaff <blp@gnu.org>
+
+ * configure.ac: Update version number to 0.6.0 in preparation for
+ release.
+
+2008-05-15 Ben Pfaff <blp@gnu.org>
+
+ * Smake (GNULIB_MODULES): Don't depend on memmem module, because
+ PSPP does not use memmem any longer. Use
+ unilbrk/ulc-width-linebreaks module instead of the linebreak
+ module, because the latter was split up into multiple modules and
+ that's the one we actually need.
+
+2008-05-09 John Darrington <john@darrington.wattle.id.au>
+
+ * INSTALL: For obscure reasons gettext 0.17 requires that
+ the string 'GNU pspp' occurs in some file in the root
+ directory. Otherwise make distcheck fails with a very non-intuitive
+ error message. So for want of somewhere better I added it
+ in INSTALL.
+
+ But since this string now appears in this ChangeLog file, it
+ could be taken out of INSTALL ...
+
+2008-04-19 John Darrington <john@darrington.wattle.id.au>
+
+ * configure.ac : Improve checking of ncurses availability.
+
+2008-04-15 Ben Pfaff <blp@gnu.org>
+
+ * configure.ac: Properly report required version of libglade.
+ Thanks to unknown-1 <pspp@sjpaes.nl> for reporting this bug.
+
+2008-04-15 John Darrington <john@darrington.wattle.id.au>
+
+ * configure.ac : Replace AC_CHECK_LIB with AC_SEARCH_LIBS as
+ recommended by latest autoconf manual.
+
+2008-02-19 John Darrington <john@darrington.wattle.id.au>
+
+ * configure.ac INSTALL: We now depend on GTK+ 2.12
+
+2007-12-11 John Darrington <john@darrington.wattle.id.au>
+
+ * t-test-independent-samples-dialog.c: Quoted the group values, when
+ the group variable is a string variable.
+
+2007-12-04 Ben Pfaff <blp@gnu.org>
+
+ * Smake (GNULIB_MODULES): Add ftello module.
+
+2007-11-05 Ben Pfaff <blp@gnu.org>
+
+ * configure.ac: No need for check for off_t or for the size of
+ float or long double any longer, as we don't use the results
+ anymore. Also, no need to put #include <locale.h> into config.h
+ any longer, as this was only needed for --with-included-gettext,
+ which we have not supported for some time.
+
+2007-11-03 Ben Pfaff <blp@gnu.org>
+
+ Allow output files to overwrite input files (bug #21280).
+
+ * Smake (GNULIB_MODULES): Add fatal-signal, tempname modules.
+
+2007-11-02 Ben Pfaff <blp@gnu.org>
+
+ * Smake (GNULIB_MODULES): Add isfinite, round modules.
+
+2007-10-12 Ben Pfaff <blp@gnu.org>
+
+ Use trunc module from gnulib instead of our home-grown solution.
+ Patch #6224.
+
+ * Smake: Add trunc to module list.
+
+ * configure.ac: Don't need to check for trunc function any longer.
+
+2007-10-12 Ben Pfaff <blp@gnu.org>
+
+ Use fseeko module from gnulib instead of our home-grown solution.
+ Patch #6228.
+
+ * acinclude.m4: Delete PSPP_OFF_T macro.
+
+ * configure.ac: Don't call AC_FUNC_FSEEKO or PSPP_OFF_T.
+
+2007-10-12 Ben Pfaff <blp@gnu.org>
+
+ * Smake: Add fprintf-posix, printf-posix, printf-safe,
+ snprintf-posix, sprintf-posix, vasprintf-posxi, vfprintf-posix,
+ vprintf-posix, vsnprintf-posix, and vsprintf-posix modules, which
+ allow us to use C99 format specifiers (e.g. 'z') in *printf.
+ Also, changed many formerly casted arguments in *printf calls to
+ use one of these format specifiers and drop the cast.
+
+2007-10-11 Ben Pfaff <blp@gnu.org>
+
+ * Smake: Drop alloca, alloca-opt modules as we don't use them
+ anymore.
+
+2007-10-10 Ben Pfaff <blp@gnu.org>
+
+ * acinclude.m4: Improve formatting.
+
+ * configure.ac: Ditto. Don't check for headers whose presence is
+ never tested. Don't use AC_C_CONST (we can assume that "const" is
+ implemented these days). Don't pass default sizes to
+ AC_CHECK_SIZEOF, since modern Autoconf doesn't need them. Don't
+ define FPREP_IEEE754, since it was not tested for. Don't use
+ AC_FUNC_VPRINTF, since we never tested for it.
+
+2007-10-06 John Darrington <john@darrington.wattle.id.au>
+
+ * configure.ac INSTALL: Change libglade version requirement.
+ Thanks to Paul Brown for reporting this issue.
+
+2007-09-30 Ben Pfaff <blp@gnu.org>
+
+ * configure.ac: Print a message indicating success at the end of
+ the run.
+
+ * INSTALL: Improve instructions.
+
+2007-09-22 Ben Pfaff <blp@gnu.org>
+
+ Bug #21128. Reviewed by John Darrington.
+
+ * acinclude.m4 (PSPP_LC_PAPER): New macro.
+
+ * configure.ac: Use PSPP_LC_PAPER.
+
+2007-08-05 Ben Pfaff <blp@gnu.org>
+
+ Bug #16189. Reviewed by Jason Stover.
+ * acinclude.m4: If -lplot doesn't work by itself, also test with
+ typical X11 libraries.
+
+2007-07-27 Ben Pfaff <blp@gnu.org>
+
+ Bug #19069.
+ * INSTALL: Improve installation instructions.
+ * README: Move prerequisites to INSTALL.
+ Reviewed by Jason Stover.
+
+ * configure.ac: Make PKG_CHECK_MODULES tests more user-friendly,
+ by having them give their errors at the end of the configuration
+ process instead of stopping it in the middle. Patch #6116.
+ Reviewed by Jason Stover.
+
+2007-06-14 Ben Pfaff <blp@gnu.org>
+
+ * Smake: Use xmalloca instead of xallocsa due to module renaming.
+ Update all uses.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ * Smake: Add xallocsa to modules.
+
+2007-04-22 Ben Pfaff <blp@gnu.org>
+
+ Implement model checker for testing purposes.
+
+ Patch #5873.
+
+ * Smake (GNULIB_MODULES): Add crypto/md4, fwriteerror,
+ gettimeofday.
+
+2007-04-03 Ben Pfaff <blp@gnu.org>
+
+ * configure.ac: Increment version to 0.4.3 due to snapshot posted
+ to alpha.gnu.org.
+ Suggested by John Darrington.
+
+2007-04-03 Ben Pfaff <blp@gnu.org>
+
+ Use Gnulib's fpieee module instead of specifying -mieee by hand.
+
+ * Smake: Use fpieee module from Gnulib.
+
+ * configure.ac: Don't enable -mieee.
+
+2007-03-19 Ben Pfaff <blp@gnu.org>
+
+ Work toward modernizing the build system by updating our Automake
+ and Autoconf dependencies and requiring libintl to be available
+ externally (if desired) instead of including a copy in the
+ distribution.
+
+ * Makefile.am (AUTOMAKE_OPTIONS): Require Automake 1.10 (or
+ later), which works better with systems that have a non-empty
+ $(EXEEXT).
+ (SUBDIRS): Drop intl.
+ (DISTCLEANFILES): Drop intl/plural.c.
+
+ * Throughout Makefile.am and the automake.mk files: Change
+ mkinstalldirs to $(MKDIR_P), to support the corresponding Automake
+ change.
+
+ * Smake (GNULIB_MODULES): Use gettext-h instead of gettext module.
+ (all): Don't create intl directory.
+ (gettextize): Don't use --intl flag.
+
+ * configure.ac: Require Autoconf 2.60 or later. Use external
+ gettext. Drop intl/Makefile from config files.
+
+2007-02-25 Ben Pfaff <blp@gnu.org>
+
+ Thanks to Jason Stover for verifying that this patch helps under
+ NetBSD.
+
+ * acinclude.m4: Rename PSPP_ENABLE_WARNING to PSPP_ENABLE_OPTION,
+ because it's useful for more than warnings.
+
+ * configure.ac: Add PSPP_ENABLE_OPTION(-mieee) to improve IEEE
+ floating-point conformance on Alpha and SH architectures. Also,
+ check for fpsetmask function (available on BSDs).
+
+Mon Feb 19 10:52:21 2007 Ben Pfaff <blp@gnu.org>
+
+ * Smake (GNULIB_MODULES): Add dirname module, remove canonicalize
+ module. Corresponds to changes in src/data/file-name.c.
+
+Sat Feb 17 09:22:32 2007 Ben Pfaff <blp@gnu.org>
+
+ * Smake (GNULIB_MODULES): Add tmpfile module, which fixes the use
+ of the tmpfile function under Windows.
+
+Fri Feb 16 10:50:38 2007 Ben Pfaff <blp@gnu.org>
+
+ Better support cross-compiling by using CC_FOR_BUILD and
+ EXEEXT_FOR_BUILD for q2c.
+
+ * Makefile.am: Add CC_FOR_BUILD, EXEEXT_FOR_BUILD variables. Use
+ in .q.c rule.
+
+ * acinclude.m4: Add PSPP_CC_FOR_BUILD macro.
+
+ * configure.ac: Call PSPP_CC_FOR_BUILD.
+
+Mon Feb 12 16:39:18 2007 Ben Pfaff <blp@gnu.org>
+
+ * README: Note that iconv is required.
+
+ * configure.ac: Enforce iconv requirement.
+
+Thu Feb 8 14:56:18 2007 Ben Pfaff <blp@gnu.org>
+
+ Reduce platform dependence.
+
+ * Makefile.am: Don't add -Dunix or -D__MSDOS__ to compiler command
+ line. Add $(top_builddir)/intl to include path to fix building
+ with the included libintl.
+
+ * Smake (GNULIB_MODULES): Add `canonicalize', `sys_stat',
+ `mkstemp' modules. Remove `stat-macros' module, which is no
+ longer what we want, because what we want is provided by sys_stat
+ now, and remove its inclusions. Remove `strstr' module, which is
+ no longer in gnulib. Remove `readlink', `xreadlink', because we
+ no longer use either function.
+
+ * configure.ac: Move gl_EARLY before AC_PROG_CC, where the gnulib
+ manual says it should be. Check for presence of execl, fork,
+ and popen. Drop check for unix versus msdos as host OS.
+
+Sat Nov 4 15:59:31 2006 Ben Pfaff <blp@gnu.org>
+
+ * configure.ac: Check for the "round" function added in C99.
+
+Tue Oct 31 19:55:52 2006 Ben Pfaff <blp@gnu.org>
+
+ * Smake (GNULIB_MODULES): Add `mempcpy' module.
+
+Tue Oct 31 19:29:05 2006 Ben Pfaff <blp@gnu.org>
+
+ * configure.ac: Drop tests for strchr, strrchr because now we
+ assume a C89 compliant library. (Gnulib makes this assumption so
+ we might as well too.)
+
+Sun Oct 29 14:08:53 2006 Ben Pfaff <blp@gnu.org>
+
+ * Smake (GNULIB_MODULES): Remove `restrict' from modules, because
+ recent gnulib doesn't have such a module.
+
+Mon Jul 17 18:23:38 2006 Ben Pfaff <blp@gnu.org>
+
+ * Smake: Add --doc-base=gl/doc to gnulib-tool invocation, which is
+ required by recent gnulib.
+
+Sun Jul 16 19:51:45 2006 Ben Pfaff <blp@gnu.org>
+
+ * Smake: Add xsize to GNULIB_MODULES.
+
+Wed Jul 12 13:41:18 2006 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Add check_PROGRAMS and define to empty.
+
+Sat Jul 1 15:32:31 2006 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Add noinst_PROGRAMS and define to empty.
+
+Tue May 9 20:46:06 2006 Ben Pfaff <blp@gnu.org>
+
+ * Smake: Add stdarg to GNULIB_MODULES.
+
+Sun May 7 09:27:40 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * po/en_GB.po : Removed. Now that messages talking about coloUrs have
+ been removed, it does nothing.
+
+Tue May 2 10:43:30 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * Bumped the minor version number from 0.4.1 to 0.4.2 to reflect
+ changes to system file format.
+
+Mon Apr 24 14:12:25 2006 Ben Pfaff <blp@gnu.org>
+
+ * Smake: Add exit to GNULIB_MODULES.
+
+Sun Apr 23 20:34:50 2006 Ben Pfaff <blp@gnu.org>
+
+ * Smake: Add linebreak to GNULIB_MODULES.
+
+Sat Apr 15 21:45:40 2006 Ben Pfaff <blp@gnu.org>
+
+ Get rid of src/libpspp/debug-print.h and all its uses. (There
+ were few real users, but many inclusions of its header file.)
+
+Sat Apr 15 19:51:22 2006 Ben Pfaff <blp@gnu.org>
+
+ Get rid of our own int32 type in favor of the standard int32_t
+ type.
+
+ * configure.ac: Don't need to check the sizes of integer types
+ anymore.
+
+Sat Apr 15 19:13:59 2006 Ben Pfaff <blp@gnu.org>
+
+ * configure.ac, acinclude.m4: Complain about missing prerequisites
+ in a group at the end of configuration, not piecemeal. This
+ should make building PSPP less frustrating. Thanks to John
+ Darrington for the suggestion.
+
+Sat Apr 15 18:17:15 2006 Ben Pfaff <blp@gnu.org>
+
+ * configure.ac: Move code into acinclude.m4 to make the configure
+ script more readable.
+
+ * acinclude.m4: New functions from configure.ac.
+
+Mon Apr 3 11:01:00 2006 Ben Pfaff <blp@gnu.org>
+
+ * Smake: (GNULIB_MODULES) Add strsep.
+
+Thu Mar 30 15:50:05 2006 Ben Pfaff <blp@gnu.org>
+
+ * Smake: Enable -Wdeclaration-after-statement warning if
+ available.
+
+ * acinclude.m4: Add macro for checking whether a warning is
+ supported.
+
+Mon Mar 20 16:32:11 2006 Ben Pfaff <blp@gnu.org>
+
+ * Smake: Require "unistd" gnulib module. Removed tests for
+ HAVE_UNISTD_H from source code.
+
+Sat Mar 4 13:20:56 2006 Ben Pfaff <blp@gnu.org>
+
+ * configure.ac: Get rid of pref.h.orig.
+
+ * pref.h.orig: Removed. Moved SHORT_NAME_LEN, LONG_NAME_LEN to
+ src/data/variable.h. Removed GLOBAL_DEBUGGING entirely, changing
+ all references to DEBUGGING. Moved P_tmpdir to
+ src/data/make-file.c. Moved NO_CHARTS to
+ src/output/charts/automake.mk.
+
+Sat Mar 4 12:58:34 2006 Ben Pfaff <blp@gnu.org>
+
+ * pref.h.orig: Move GCC attribute declarations to
+ new file src/libpspp/compiler.h.
+
+Sat Mar 4 12:27:06 2006 Ben Pfaff <blp@gnu.org>
+
+ * Smake: Require "intprops" gnulib module.
+
+ * acinclude.m4: Remove BLP_INT_DIGITS. Now we use the intprops.h
+ header file instead.
+
+ * configure.ac: Don't call BLP_INT_DIGITS.
+
+Sat Mar 4 11:53:36 2006 Ben Pfaff <blp@gnu.org>
+
+ * acinclude.m4: Remove BLP_RANDOM. Its results were unused.
+ Remove BLP_IS_SPRINTF_GOOD. We now assume that the system's
+ sprintf() returns the correct value.
+
+ * configure.ac: Don't call those macros.
+
+John Darrington:
+
+ * Deleted Make.build (inserted its contents into Makefile.am).
+
+ * Moved the version number to 0.4.1
+
+ * Moved lib/linreg/linreg.[ch] and lib/linreg/coefficient.[ch] to
+ src/math/linreg.
+
+ * Moved the psppire gui into src/ui/gui and the gtk_sheet widget
+ into lib/gtksheet.
+
+ * Replaced recursive automake system with non-recursive one.
+
+ * Moved files into subdirectories. See src/ChangeLog for details.
+
+Sat Feb 11 21:57:31 2006 Ben Pfaff <blp@gnu.org>
+
+ * Smake: (GNULIB_MODULES) Add memcasecmp.
+
+ * configure.ac: Remove existing checks for readline, replacing
+ them by a call to PSPP_READLINE.
+
+ * acinclude.m4: Add PSPP_READLINE macro based on gnulib test for
+ readline. However, we only accept a readline installation if (1)
+ the header files are in the normal readline/ directory and (2) the
+ history library is also available. If both criteria are met, we
+ declare HAVE_READLINE. This reduces the #ifdefs to actually use
+ readline to something manageable.
+
+ * pref.h.orig: Move DIR_SEPARATOR, PATH_DELIMITER definitions to
+ src/filename.h.
+
+Wed Jan 25 21:48:20 2006 Ben Pfaff <blp@gnu.org>
+
+ * Smake: (po/POTFILE.in) Exclude dotfiles.
+
+Sat Nov 27 20:29:19 2005 Jason Stover <jason@sakla.net>
+
+ * Binary encoding for categorical variables.
+ * Routines for design matrices.
+
+Thu Oct 20 18:19:58 2005 Ben Pfaff <blp@gnu.org>
+
+ * configure.ac: Improve error messages. Thanks to Jaap-Andre de
+ Hoop <j.dehoop@data-assist.nl>.
+
+Wed Oct 12 20:33:07 2005 Jason Stover <jstover@sdf.lonestar.org>
+
+ * regression.q: Initial version of the REGRESSION procedure.
+
+Sun Sep 25 16:11:09 2005 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Handles `examples' as a subdirectory instead of a
+ dist-hook. The dist-hook copied examples/CVS into the
+ distribution. Thanks to James R. Van Zandt <jrvz@comcast.net> for
+ reporting the problem.
+
+Mon Sep 19 10:24:10 2005 Ben Pfaff <blp@gnu.org>
+
+ * Smake: Add `check' target for convenience. Add
+ --tests-base=tests to gnulib-tool invocation to compensate for
+ bug.
+
+Sat Sep 17 15:57:32 2005 Jason Stover <jason@sakla.net>
+
+ Added lib/linreg for procedures that use ordinary least squares.
+
+Sat Sep 17 11:01:44 2005 Ben Pfaff <blp@gnu.org>
+
+ Adapt to newer versions of gnulib.
+
+ * Smake: Put gnulib options directly on its command line, instead
+ of embedding them in configure.ac.
+
+ * configure.ac: Remove gnulib option commands.
+
+Fri Aug 3 07:22:28 2005 Ben Pfaff <blp@gnu.org>
+
+ * PSPP 0.4.0 released.
+
+Sun Jul 31 10:49:47 2005 Ben Pfaff <blp@gnu.org>
+
+ Adopt use of gnulib for portability.
+
+ * Makefile.am: Add gl to SUBDIRS. Add gl/m4 to aclocal include
+ path. Get rid of pkgdocdir data. Move noinst_DATA to EXTRA_DIST.
+
+ * README.CVS: Add instructions for fetching gnulib.
+
+ * Smake: Rewrite to run gnulib-tool. Avoid use of gettextize in
+ normal case (it was unmaintainable). Just use autoreconf
+ --install to do most of the work. Rewrite rule for POTFILES.in
+ for non-GNU make compatibility.
+
+ * configure.ac: Add gnulib commands. Specify gettext version
+ 0.14.5 to placate autopoint. Check that off_t is an integer type,
+ because Solaris can sometimes declare it as a struct. Drop
+ explicit checks for gnulib-supported functionality. Fix typo in
+ msdos check.
+
+ * pref.h.orig: Define __attribute__ to avoid wart in gnulib.
+ Don't #include <libintl> and define gettext, _, N_, because gnulib
+ wants to do the same thing.
+
+Sun Jul 24 20:31:13 2005 Ben Pfaff <blp@gnu.org>
+
+ * configure.ac: Don't detect libgmp anymore, because we eliminated
+ the dependency.
+
+ * NEWS: Update.
+
+Mon Jul 4 17:59:54 2005 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Add pspp-mode.el to EXTRA_DIST.
+
+Wed May 4 08:49:13 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * README.CVS Smake: Added a CONFIGUREFLAGS variable.
+ * INSTALL: Mentioned build dependencies.
+
+Mon May 2 22:37:39 2005 Ben Pfaff <blp@gnu.org>
+
+ * INSTALL: Mention dependencies. Thanks to Jaap-Andre de Hoop
+ <j.dehoop@data-assist.nl> for the suggestion.
+
+ * NEWS, README: Update.
+
+Sun May 1 15:00:09 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * pspp-mode.el: Now supports syntax highlighting, indentation and
+ generally works a lot better.
+
+Thu Apr 28 10:24:47 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * Changed all copyright notices to contain the FSF's new address.
+
+Thu Apr 14 2005 John Darrington
+
+ * AUTHORS: Added note about the long variable names extension.
+
+ * pref.h.orig: Added definitions for variable names lengths.
+
+Thu Mar 3 22:06:19 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * configure.ac: Added AC_PROG_RANLIB --- needed by autoconf 1.9
+
+Mon Feb 28 23:16:58 2005 Ben Pfaff <blp@gnu.org>
+
+ * configure.ac: Check for perl. Check for bool. Substitute
+ makefiles in src/expressions. Don't substitute makefile in
+ deleted directory lib/julcal.
+
+ * pref.h.orig: (macro MALLOC_LIKE) New macro.
+ (macro flt64) Moved to src/sfmP.h.
+ (macro FLT64_MAX) Moved to src/sfmP.h.
+
+Mon Feb 21 15:04:55 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * configure.ac: Added a --without-valgrind option to cope with
+ building on machines with a broken valgrind installation
+
+Fri Jan 7 08:01:02 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * configure.ac pref.h.orig: Compilation with libplot is now optional
+ by sacrificing the chart features.
+
+Sun Nov 28 19:24:02 2004 Ben Pfaff <blp@gnu.org>
+
+ * Smake: Change -a to -pR in cp invocations for SUSv3 compliance.
+
+Mon May 31 17:21:25 2004 Ben Pfaff <blp@gnu.org>
+
+ * configure.ac: Check for large file support. Get rid of
+ posix_fadvise check--for some reason glibc 2.3.2 segfaults when I
+ call it and I just couldn't figure out what was going on.
+
+Sun May 30 18:19:03 2004 Ben Pfaff <blp@gnu.org>
+
+ * configure.ac: Check for valgrind/valgrind.h.
+
+Mon Mar 29 15:22:48 2004 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Updated.
+
+ * configure.ac: Check for posix_fadvise.
+
+Tue Mar 23 14:21:12 WAST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * Removed dcdflib and replaced with a dependency upon the
+ GNU Scientific library instead.
+
+Sat Mar 20 13:55:36 2004 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Updated.
+
+Wed Feb 11 23:54:15 2004 Ben Pfaff <blp@gnu.org>
+
+ * pref.h.orig: Don't meddle with __WIN32__, __MSDOS, __DJGPP__,
+ __CYGWIN32__, __unix__, or unix anymore, and deal with some of the
+ consequences. Declare ATTRIBUTE instead of meddling withe
+ __attribute__. Declare UNUSED instead of unused. Add macros
+ NO_RETURN, PRINTF_FORMAT, SCANF_FORMAT. Reformat gettext, N_, _
+ macros. Move alloca()-related stuff to src/alloc.h and simplify.
+ Get rid of PAGED_STACK entirely. Remove mkdir macro definition.
+ Get rid of obsolete "procedure-specific options".
+
+2004-01-23 gettextize <bug-gnu-gettext@gnu.org>
+
+ * Makefile.am (SUBDIRS): Remove intl.
+ * configure.ac (AC_CONFIG_FILES): Remove intl/Makefile.
+
+Tue Dec 30 22:23:40 WST 2003 John Darrington <john@darrington.wattle.id.au>
+
+ * Fixed floating point rounding bug in percentiles calculation
+
+Sat Dec 27 16:16:49 2003 Ben Pfaff <blp@gnu.org>
+
+ * configure.ac: Add -Wmissing-prototypes flag to gcc.
+
+ * TODO: Updated.
+
+Wed Dec 17 12:19:40 WAST 2003 John Darrington <john@darrington.wattle.id.au>
+
+ * Added an --enable-debug flag to configure
+
+2003-12-13 gettextize <bug-gnu-gettext@gnu.org>
+
+ * Makefile.am (EXTRA_DIST): Add mkinstalldirs.
+ * configure.ac (AC_CONFIG_FILES): Add intl/Makefile.
+
+
+Thu Dec 11 19:35:32 WST 2003 John Darrington <john@darrington.wattle.id.au>
+
+ * Removed autogenerated files from the CVS archive
+
+ * removed the included getopt.c as it failed to build under some
+ systems.
+
+Thu Dec 11 00:12:19 2003 Ben Pfaff <blp@gnu.org>
+
+ * Update build system to Autoconf 2.58, Automake 1.7, gettext
+ 0.12.1.
+
+2003-12-08 gettextize <bug-gnu-gettext@gnu.org>
+
+ * Makefile.am (SUBDIRS): Add m4.
+ (ACLOCAL_AMFLAGS): New variable.
+ (EXTRA_DIST): Add config.rpath.
+ * configure.in (AC_CONFIG_FILES): Add po/Makefile.in,
+
+Sun Jan 2 21:24:32 2000 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Require Automake 1.4 or later. It's been out for
+ almost a year now, so why haven't you installed it? :-)
+
+ * TODO: Updated.
+
+ * configure.in: Updated version number. Check for libgmp. Check
+ of fenv.h. Check for feholdexpect().
+
+ * pref.h.orig: Don't include debug-print.h by default. Don't
+ disable __attribute ((unused))__ for gcc 2.7.2. Remove LOAD_2,
+ STORE_2. Comment fixes.
+
+ * Updated copyright notices in all files.
+
+Fri Mar 12 12:38:55 1999 Ben Pfaff <blp@gnu.org>
+
+ * Forked 0.3.0.
+
+Tue Mar 9 12:46:31 1999 Ben Pfaff <blp@gnu.org>
+
+ * Released 0.2.3.
+
+ * TODO: Updated.
+
+Tue Jan 5 15:18:07 1999 Ben Pfaff <blp@gnu.org>
+
+ * Released 0.2.2.
+
+ * TODO: Update from Zvi Grauer <z.grauer@sims.csuohio.edu>.
+
+Thu Nov 19 12:34:55 1998 Ben Pfaff <blp@gnu.org>
+
+ * Released 0.2.1.
+
+Sun Aug 9 11:11:32 1998 Ben Pfaff <blp@gnu.org>
+
+ * LANGUAGE: Updated.
+
+Sat Aug 8 00:19:08 1998 Ben Pfaff <blp@gnu.org>
+
+ * LANGUAGE: Updated.
+
+ * examples/: New directory.
+
+ * Made patchlevel 95.
+
+Tue Aug 4 23:47:31 1998 Ben Pfaff <blp@gnu.org>
+
+ * Bump version to 0.1.22 (0.2.0 release candidate).
+
+ * configure.in: Remove --enable-Werror, new option
+ --enable-debugging. New gcc option -Wpointer-arith.
+
+ * pref.h.orig: Don't enable debugging by default (now a configure
+ option). Use __inline__ instead of inline with gcc (partial -ansi
+ -pedantic support).
+ (macro local_strdup) Removed.
+
+ * Made patchlevel 94.
+
+Wed Jul 29 22:03:11 1998 Ben Pfaff <blp@gnu.org>
+
+ * Bump version to 0.1.21 (0.2.0 release candidate).
+
+ * debian/: Removed.
+
+ * Makefile.am: Don't copy debian/ into distribution.
+
+ * pref.h.orig: Only enable `unused' attribute if gcc 2.8.0 or
+ later is used.
+
+Sun Jul 5 14:20:04 1998 Ben Pfaff <blp@gnu.org>
+
+ * configure.in: Bump version to 0.1.20 (0.2.0 release candidate).
+
+ * Made patchlevel 93.
+
+Sun Jul 5 00:13:58 1998 Ben Pfaff <blp@gnu.org>
+
+ * README: Updated.
+
+ * TODO: Updated.
+
+ * configure.in: Remove -Wno-unused from default gcc flags.
+
+ * pref.h.orig: Add new #define, `unused', which under gcc expands
+ to an explanation to the compiler that a function argument is
+ unused, and expands to the null string under other compilers.
+
+Mon Jun 1 14:33:02 1998 Ben Pfaff <blp@gnu.org>
+
+ * LANGUAGE: Updated.
+
+ * configure.in: Bump version to 0.1.19.
+
+ * Made patchlevel 92.
+
+Sun May 31 00:55:13 1998 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Updated.
+
+ * configure.in: Generate Makefiles for lib/gmp/{,mpn,mpf}/.
+
+ * Made patchlevel 91.
+
+Fri May 29 21:43:09 1998 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Updated.
+
+ * LANGUAGE: Updated.
+
+ * unconfigure: Remove TeX cruft from doc/.
+
+ * Made patchlevel 90.
+
+Mon May 25 12:41:54 1998 Ben Pfaff <blp@gnu.org>
+
+ * BUGS: Updated.
+
+ * LANGUAGE: Updated.
+
+ * TODO: Updated.
+
+ * configure.in: Bumped version number up to 0.1.18.
+
+ * Made patchlevel 89.
+
+Sun May 24 22:39:55 1998 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Updated.
+
+ * Made patchlevel 88.
+
+Sat May 23 23:21:43 1998 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Updated.
+
+ * configure.in: Remove gamma from replaceable functions.
+
+ * Made patchlevel 87.
+
+Fri May 22 00:02:33 1998 Ben Pfaff <blp@gnu.org>
+
+ * configure.in: Add gamma to list of functions with replacements.
+
+ * Made patchlevel 86.
+
+Wed May 20 00:00:12 1998 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Updated.
+
+ * Made patchlevel 85.
+
+Sat May 16 19:38:49 1998 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Updated.
+
+ * Made patchlevel 84.
+
+Tue May 12 16:13:48 1998 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Updated.
+
+ * unconfigure: Don't delete Makefile.in under intl/.
+
+ * Made patchlevel 83.
+
+Thu May 7 23:16:26 1998 Ben Pfaff <blp@gnu.org>
+
+ * unconfigure: Add some more files to reap.
+
+ * Made patchlevel 82.
+
+Tue May 5 13:17:59 1998 Ben Pfaff <blp@gnu.org>
+
+ * acconfig.h: Add HAVE_GOOD_RANDOM definition.
+
+ * acinclude.m4: New macro BLP_RANDOM.
+
+ * configure.in: Use new BLP_RANDOM macro.
+
+ * unconfigure: New file.
+
+ * Made patchlevel 81.
+
+Fri Apr 24 12:42:14 1998 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Remove bad comment.
+
+ * AUTHORS: Removed Brad Appleton.
+
+ * TODO: Updated.
+
+ * configure.in: Remove `satisfy automake' bit. Don't generate
+ avllib Makefile, since we don't use avllib anymore.
+
+ * pref.h.orig: Define PSPP.
+
+ * Made patchlevel 80.
+
+Wed Apr 15 12:59:39 1998 Ben Pfaff <blp@gnu.org>
+
+ * AUTHORS, BUGS, LANGUAGE, README, THANKS: No longer generated
+ from HTML. This caused a lot of deletions from the Makefile.am.
+
+ * TODO: Updated.
+
+ * Made patchlevel 79.
+
+Tue Apr 14 00:48:00 1998 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Updated.
+
+ * configure.in: Check for unistd.h. Fix AC_LN_S (should have been
+ AC_PROG_LN_S).
+
+ * Made patchlevel 78. Must have missed 77 in there somewhere :-)
+
+Mon Mar 9 15:40:40 1998 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 76.
+
+ * configure.in: Bumped version up to 0.1.16.
+
+1998-03-05 Ben Pfaff <blp@gnu.org>
+
+ * configure.in: Bumped version up to 0.1.15.
+
+1998-02-23 Ben Pfaff <blp@gnu.org>
+
+ * acinclude.m4: Add BLP_INT_DIGITS and BLP_IS_SPRINTF_GOOD macros.
+
+ * configure.in: Those macros came from here. Better modularity
+ this way. Bump version up to 0.1.14.
+
+ * pref.h.orig: (macros CONFIG_PATH, INCLUDE_PATH, GROFF_FONT_PATH)
+ Removed.
+
+ * Made patchlevel 75.
+
+1998-02-23 Ben Pfaff <blp@gnu.org>
+
+ * acconfig.h: Hard-code PACKAGE and GNU_PACKAGE as "PSPP" and "GNU
+ PSPP" respectively.
+
+ * configure.in: Call the package pspp instead of PSPP. Don't
+ define PACKAGE and GNU_PACKAGE symbols. Add replacement function
+ for strtok_r.
+
+ * TODO: Updated.
+
+ * Made patchlevel 74.
+
+1998-02-16 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Remove a few now-useless targets.
+
+ * TODO: Updated.
+
+ * configure.in: Bump version up to 0.1.13.
+
+ * reconfigure: Don't assume . is in PATH.
+
+ * Made patchlevel 73.
+
+Fri Feb 13 15:35:03 1998 Ben Pfaff <blp@gnu.org>
+
+ * configure.in: Bump version up to 0.1.12.
+
+ * TODO: Updated.
+
+ * pref.h.orig: Make __unix equivalent to unix and __unix__; don't
+ require any of these to be defined to 1, just defined. Invert
+ sense of some tests from testing for unix to testing for not being
+ msdog.
+
+ * Made patchlevel 72.
+
+Thu Feb 5 00:22:58 1998 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 71.
+
+ * configure.in: Bump version up to 0.1.11.
+
+Tue Feb 3 16:12:34 1998 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Updated.
+
+ * Made patchlevel 70.
+
+ * configure.in: Bump version up to 0.1.10.
+
+Fri Jan 23 00:17:18 1998 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 69.
+
+Thu Jan 22 00:35:52 1998 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 68.
+
+Sun Jan 18 00:30:18 1998 Ben Pfaff <blp@gnu.org>
+
+ * configure.in: Add ieeefp.h to list of headers to check for.
+
+ * Made patchlevel 67.
+
+Tue Jan 13 23:44:16 1998 Ben Pfaff <blp@gnu.org>
+
+ * configure.in: Add sys/wait.h to list of headers to check for.
+
+ * Made patchlevel 66.
+
+Sun Jan 11 21:30:09 1998 Ben Pfaff <blp@gnu.org>
+
+ * configure.in: Bump version up to 0.1.9.
+
+ * pref.h.orig (STORE_2): Fix parentheses. From Alexandre
+ Oliva <oliva@dcc.unicamp.br>.
+
+ * Made patchlevel 65.
+
+Sat Jan 10 23:59:06 1998 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 64.
+
+Sat Jan 10 02:10:15 1998 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Updated.
+
+ * pref.h.orig: Comment fixes.
+ (macro second_lowest_flt64) New.
+
+ * Made patchlevel 63.
+
+Thu Jan 8 22:27:03 1998 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Updated.
+
+ * Made patchlevel 62.
+
+Mon Jan 5 11:18:37 1998 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 61.
+
+Sun Jan 4 18:10:29 1998 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Updated.
+
+ * pref.h.orig: (local_strdup) [HAVE_ALLOCA && PAGED_STACK &&
+ __GNUC__] Rewritten for space and time efficiency and to evaluate
+ its argument only once.
+
+ * Made patchlevel 60.
+
+Sat Jan 3 16:51:20 1998 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Updated.
+
+ * Made patchlevel 59.
+
+Fri Jan 2 01:38:37 1998 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Updated.
+
+ * config.sub: Got tired of `i686-unknown-linux: Unknown system',
+ so I made 686 equivalent to 586.
+
+ * pref.h.orig: (macros ASCII_*, HTML_*, PS_*) Removed.
+
+ * Made patchlevel 58.
+
+Thu Jan 1 11:50:47 1998 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Updated.
+
+ * Made patchlevel 57.
+
+Fri Dec 26 15:43:17 1997 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Updated.
+
+ * Made patchlevel 56.
+
+Wed Dec 24 22:34:55 1997 Ben Pfaff <blp@gnu.org>
+
+ * reconfigure: regularized option syntax.
+
+ * configure.in: Bumped version to 0.1.8. Changed name from pspp
+ to PSPP. Added lib/dcdflib/Makefile to list of output files.
+
+ * Made patchlevel 55.
+
+Sun Dec 21 15:58:52 1997 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Updated.
+
+ * acconfig.h: Reformat.
+
+ * configure.in: Bumped version to 0.1.7.
+
+ * Made patchlevel 54.
+
+Fri Dec 5 23:38:12 1997 Ben Pfaff <blp@gnu.org>
+
+ * Replaced prep.ai.mit.edu with ftp.gnu.org and .gnu.ai.mit.edu
+ with .gnu.org, everywhere.
+
+Fri Dec 5 23:02:40 1997 Ben Pfaff <blp@gnu.org>
+
+ * Replaced remaining instances of Fiasco with PSPP.
+
+ * Made patchlevel 53.
+
+Fri Dec 5 22:51:18 1997 Ben Pfaff <blp@gnu.org>
+
+ * Every instance of the name Fiasco, throughout every file,
+ replaced in-place with PSPP, with the exceptions of a few files
+ that had `fiasco' in their names; these were renamed.
+
+ * Made patchlevel 52.
+
+Fri Dec 5 21:50:52 1997 Ben Pfaff <blp@gnu.org>
+
+ * pref.h.orig: (macros NO_HTML, HTML_DEFAULT_OUTPUT_FILE) New
+ macros.
+
+ * TODO: Updated.
+
+ * Made patchlevel 51.
+
+Tue Dec 2 14:35:12 1997 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Updated.
+
+ * configure.in: Bumped version to 0.1.6.
+
+ * Made patchlevel 50.
+
+Sat Nov 22 01:20:32 1997 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 49.
+
+Fri Nov 21 00:11:41 1997 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 48.
+
+Sun Nov 16 01:31:38 1997 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 47.
+
+Fri Nov 14 00:17:48 1997 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 46.
+
+ * configure.in: Bumped version to 0.1.5.
+
+Tue Oct 28 16:07:17 1997 Ben Pfaff <blp@gnu.org>
+
+ * configure.in: Bumped version to 0.1.4.
+
+ * TODO: Updated.
+
+ * Made patchlevel 45.
+
+Wed Oct 8 15:55:50 1997 Ben Pfaff <blp@gnu.org>
+
+ * intl: Upgraded from sources to gettext-0.10.32.
+
+ * configure.in: Bumped version to 0.1.3.
+
+ * Made patchlevel 44.
+
+Tue Oct 7 20:21:53 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (dist-hook) Use $(top_srcdir).
+
+ * pref.h.orig: (MAX_WORKSPACE) Enlarge to 4 MB (from 1 MB).
+
+ * Made patchlevel 43.
+
+Sun Oct 5 15:52:37 1997 Ben Pfaff <blp@gnu.org>
+
+ * configure.in: Bumped version to 0.1.2.
+ (strerror) Replace instead of check. From Alexandre Oliva
+ <oliva@dcc.unicamp.br>.
+
+ * pref.h.orig: Include `debug-print' instead of
+ `src/debug-print.h'.
+
+ * Made patchlevel 42.
+
+Sat Oct 4 16:19:44 1997 Ben Pfaff <blp@gnu.org>
+
+ * pref.h.orig: Comment fixes.
+ (local_strdup) [HAVE_ALLOCA && PAGED_STACK &&
+ __GNUC__] Use local_alloc() instead of alloca(), as local_alloc()
+ isn't simply an alias for alloca().
+
+ * configure.in: Bumped version to 0.1.1.
+
+ * Made patchlevel 41.
+
+Sat Oct 4 02:13:00 1997 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 40.
+
+Sun Sep 21 00:07:09 1997 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 39.
+
+Thu Sep 18 21:42:27 1997 Ben Pfaff <blp@gnu.org>
+
+ * pref.h.orig: (CONFIG_PATH) [unix] Add /usr/local/etc/fiasco,
+ /usr/etc/fiasco to search path.
+
+ * Made patchlevel 38.
+
+Wed Aug 20 14:20:06 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (noinst_DATA) Removed ANNOUNCE, HELP-WANTED.
+ (EXTRA_DIST) Removed ANNOUNCE, FAQ, HELP-WANTED, mk-web-dist.
+ (MAINTAINERCLEANFILES) Removed ANNOUNCE, FAQ, HELP-WANTED.
+
+ * Made patchlevel 37.
+
+Wed Aug 20 12:48:25 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (doc/ANNOUNCE.html, ANNOUNCE, FAQ, doc/FAQ.html,
+ HELP-WANTED) Removed.
+ (docfiles) Removed ANNOUNCE, FAQ, HELP-WANTED.
+
+ * mk-web-dist: Removed.
+
+ * Made patchlevel 36.
+
+Mon Aug 18 18:06:12 1997 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Updated.
+
+ * pref.h.orig: (macro DEFAULT_COMPAT) Removed.
+
+ * Made patchlevel 35.
+
+Sun Aug 17 22:48:36 1997 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 34.
+
+Sat Aug 16 10:48:29 1997 Ben Pfaff <blp@gnu.org>
+
+ * In many files, in this directory and others, messages were
+ rephrased to eliminate or reduce usage of certain deprecated terms
+ at suggestion of rms.
+
+ * Makefile.am: (EXTRA_DIST) Removed unix2dos.pl.
+ (MAINTAINERCLEANFILES) Removed doc/ANNOUNCE.html, doc/README.html.
+ (docfiles-recursive) Removed.
+
+ * TODO: Updated.
+
+ * mk-web-dist: Doesn't produce any distributions at all, just a
+ webpage. Doesn't configure the distribution. Changed list of
+ files installed.
+
+ * pref.h.orig: s/VER_PCP40/VER_PC/; s/VER_WIN61/VER_WND/;
+ s/VER_X40/VER_X/; All references changed.
+
+ * Made patchlevel 33.
+
+Thu Aug 14 22:02:08 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Comment fixes. Uses $(VERSION) instead of contents
+ of VERSION file.
+ (EXTRA_DIST) Remove fiasco.ide, mk-bc5-dist.
+ (docfiles-recursive) Works if doc/Makefile doesn't exist.
+ (DIST_BC5_ROOT) Renamed DISTBC5_DISTROOT.
+ (DISTBC5_BC5ROOT) New var.
+ (dist-bc5) Passes $(DISTBC5_BC5ROOT).
+
+ * TODO: Update.
+
+ * acinclude.m4: Remove blp_VERSION_CHEAT kluge.
+
+ * configure.in: Don't use blp_VERSION_CHEAT kluge.
+
+ * mk-web-dist, reconfigure: Extract version number from
+ configure.in.
+
+ * pref.h.orig: (CONFIG_PATH, INCLUDE_PATH, GROFF_FONT_PATH)
+ [__MSDOS__] Fixed bad use of backslashes.
+
+ * reconfigure: Pass $VERSION to Makefile.
+
+ * Made patchlevel 32.
+
+Thu Aug 14 11:49:35 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (EXTRA_DIST, docfiles) Add ONEWS.
+ (docfiles) Depends on docfiles-recursive.
+ (docfiles-recursive) New target, call make for `docfiles' target
+ in doc directory.
+ (dist-bc5) Adds `foo' second arg to mk-bc5-dist.
+ (.PHONY) Add docfiles.
+
+ * mk-bc5-dist: Checks that it is passed a second arg of `foo'.
+
+ * reconfigure: Changed == operators to = as arguments to `test'.
+ No longer uses bash -v switch.
+
+ * mk-distribution: Renamed mk-web-dist, all references changed.
+ Now takes several options, added help. No longer uses -uv
+ options.
+
+ * Made patchlevel 31.
+
+Tue Aug 5 13:56:39 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (MAINTAINERCLEANFILES) Add HELP-WANTED.
+ (EXTRA_DIST) Add ONEWS.
+
+ * Made patchlevel 30.
+
+Sun Aug 3 11:30:17 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (noinst_data, docfiles) Added HELP-WANTED.
+ (EXTRA_DIST) Added configure, mk-bc5-dist, unix2dos.pl,
+ HELP-WANTED.
+ (HELP-WANTED) Generated from doc/HELP-WANTED.html.
+ (dist-bc5) New target.
+
+ * TODO: Updated.
+
+ * mk-distribution: Fixed bugs, added HELP-WANTED.
+
+ * reconfigure: When invoking Makefile.am, pass
+ top_srcdir=. explicitly.
+
+ * unix2dos.pl: New file.
+
+ * Made patchlevel 29.
+
+Thu Jul 17 21:49:13 1997 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 28.
+
+Thu Jul 17 01:43:25 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Remove inactive .html suffix rule.
+ New rules to generate doc/ANNOUNCE.html and doc/README.html from
+ corresponding .in files.
+ (EXTRA_DIST) Add VERSION, fiasco.ide, mk-distribution.
+ (MAINTAINERCLEANFILES) Add doc/ANNOUNCE.html, doc/README.html.
+
+ * acinclude.m4: (blp_VERSION_CHEAT) New macro.
+
+ * configure.in: Forces _GNU_SOURCES not only to be defined, but to
+ a value of 1. Substitutes VERSION from the new file VERSION.
+ Removed DEBIAN reference. Checks for sys/mman.h header.
+
+ * pref.h.orig: (macro gettext) Don't put parentheses in the
+ expansion.
+ (macro N_) Same.
+
+ * reconfigure: Sets -ev in shell. Doesn't try to pass
+ --include-deps to configure (it's an automake flag!). Moved `make
+ docfiles'.
+
+ * sysdeps/borlandc4.0/README, sysdeps/borlandc4.0/_read.c,
+ sysdeps/borlandc4.0/_write.c, sysdeps/borlandc4.0: Removed.
+
+ * VERSION: New file.
+
+ * fiasco.ide: New file.
+
+ * mk-distribution: New file.
+
+ * Made patchlevel 27.
+
+Fri Jul 11 23:00:53 1997 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Updates.
+
+ * Made patchlevel 26.
+
+Fri Jul 11 14:08:21 1997 Ben Pfaff <blp@gnu.org>
+
+ * pref.h.orig: __CYGWIN32__ is a form of __unix__.
+
+ * reconfigure: Add -k for make maintainer-clean.
+
+ * Made patchlevel 25.
+
+Thu Jul 10 22:13:07 1997 Ben Pfaff <blp@gnu.org>
+
+ * configure.in: Add "-D_GNU_SOURCE" to CPPFLAGS to force GNU
+ glibc extensions to be detected.
+
+ * Made patchlevel 24.
+
+Sun Jul 6 19:13:07 1997 Ben Pfaff <blp@gnu.org>
+
+ * pref.h.orig: Include "src/debug-print.h" instead of
+ "debug-print.h".
+ (macros local_alloc, local_free) More robust under Checker: put
+ their allocations in namespace different from malloc()/free().
+
+ * Made patchlevel 23.
+
+Sat Jul 5 23:42:14 1997 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Updates.
+
+ * Made patchlevel 22.
+
+Fri Jul 4 13:20:47 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (EXTRA_DIST) Removed orphaned-rules.
+ (docfiles) Removed ChangeLog, COPYING.
+ (html, maintainer-clean-hook, install-data-hook) Removed.
+
+ * reconfigure: Added --help option. Calls configure again even if
+ --no-include-deps.
+
+ * Made patchlevel 21.
+
+Wed Jun 25 22:47:17 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Require Automake 1.2.
+ (dist-hook) Don't copy config dir.
+ (EXTRA_DIST, MAINTAINERCLEANFILES) Add FAQ.
+ (docfiles) Made a variable as well as a target; added ChangeLog,
+ COPYING, FAQ, INSTALL, TODO.
+ (html, maintainer-clean-hook, install-data-hook, debian,
+ debian-clean, debian-clean-full) New targets.
+
+ * orphaned-rules: Removed.
+
+ * configure.in: Bumped up to version 0.1.0.
+
+ * reconfigure: New options --enable-nls, --no-include-deps.
+ Comment fixes.
+
+ * Made patchlevel 20.
+
+Sun Jun 22 22:10:27 1997 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 19.
+
+Sun Jun 15 16:44:14 1997 Ben Pfaff <blp@gnu.org>
+
+ * pref.h.orig: Comment fixes. Includes debug-print.h.
+ (DEMAND_PAGE, ALWAYS_PAGE, NEVER_PAGE) Removed.
+
+ * Made patchlevel 18.
+
+Sun Jun 8 01:25:40 1997 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 17.
+
+Fri Jun 6 22:41:08 1997 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Updates.
+
+ * pref.h.orig: Reformatted macros.
+ [!ENABLE_NLS] Defines gettext() as a trivial substitution to allow
+ gcc to give warnings on printf().
+
+ * Made patchlevel 16.
+
+Thu Jun 5 23:01:49 1997 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 15.
+
+Tue Jun 3 23:24:08 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: AUTOMAKE_OPTIONS changed from `foreign 1.1l' to
+ `gnits 1.1p'. SUBDIRS reordered. New target `docfiles'.
+
+ * TODO: Updates.
+
+ * configure.in: Removed AM_MAINTAINER_MODE. Added
+ --enable-Werror, which is implied by --with-checker.
+
+ * reconfigure: Moved `aclocal' from beginning to just before
+ cleaning `autoheader'. Removed --enable-maintainer-mode. Added
+ --disable-nls. Added `make docfiles' to placate autoheader.
+ Added `aclocal' before first real `autoheader'. Uses `make
+ mostlyclean' instead of `make depend'.
+
+ * Made patchlevel 14.
+
+Mon Jun 2 14:21:54 1997 Ben Pfaff <blp@gnu.org>
+
+ * configure.in: Removed comment that screwed things up.
+
+ * reconfigure: Added `aclocal' at beginning.
+
+ * Made patchlevel 13.
+
+Sun Jun 1 23:25:39 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Add intl, po to SUBDIRS. Add aclocal.m4,
+ config.h.in to MAINTAINERCLEANFILES.
+
+ * acconfig.h: Add HAVE_LC_MESSAGES, ENABLE_NLS, HAVE_CATGETS,
+ HAVE_GETTEXT, HAVE_STPCPY.
+
+ * configure.in: Reordered to placate autoheader. Added
+ AC_ISC_POSIX, AM_PROG_CC_STDC. Added internationalization:
+ ALL_LINGUAS="", AM_GNU_GETTEXT, AC_LINK_FILES(...). Added
+ po/Makefile.in, intl/Makefile to generated files list. Generates
+ po/Makefile from po/Makefile.in. Comment fix.
+
+ * pref.h.orig: Uncommented i18n support.
+
+ * acinclude.m4: New file.
+
+ * ABOUT-NLS: New file.
+
+ * intl/: New directory, taken from gettext-0.10.27.
+
+ * missing: New file, taken from automake-1.1p.
+
+ * po/: New directory.
+
+ * Made patchlevel 12.
+
+Sun Jun 1 17:28:27 1997 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 11.
+
+Sun Jun 1 11:58:43 1997 Ben Pfaff <blp@gnu.org>
+
+ * pref.h.orig: Removed DEFAULT_VER_PCP40, DEFAULT_VER_WIN61,
+ DEFAULT_VER_X40. Added a macro DEFAULT_COMPAT that takes one of
+ the VER_* enums as a value.
+ (HISTORY_FILE) Changed the definition to "~/.fiasco_history".
+
+ * Made patchlevel 10.
+
+Fri May 30 19:40:22 1997 Ben Pfaff <blp@gnu.org>
+
+ * pref.h.orig: [__MSDOS__] Reordered INCLUDE_PATH.
+
+ * Made patchlevel 9.
+
+Sun May 25 22:32:57 1997 Ben Pfaff <blp@gnu.org>
+
+ * acconfig.h: For support of glibc 2, define _GNU_SOURCE.
+
+ * Made patchlevel 8.
+
+Mon May 5 21:58:22 1997 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 7.
+
+Fri May 2 22:27:36 1997 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 6.
+
+Thu May 1 15:34:01 1997 Ben Pfaff <blp@gnu.org>
+
+ * All files: Changed copyright from `Ben Pfaff' to `Free Software
+ Foundation, Inc'.
+
+ * Made patchlevel 5.
+
+Thu May 1 15:00:51 1997 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 4.
+
+Sat Apr 26 11:34:05 1997 Ben Pfaff <blp@gnu.org>
+
+ * ChangeLog: Split into one ChangeLog per directory.
+
+ * Made patchlevel 3.
+
+Wed Apr 23 21:33:48 1997 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Update.
+
+ * Made patchlevel 2.
+
+Fri Apr 18 16:48:41 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Removed `include', `util' from SUBDIRS; added
+ `config'. Includes `config' directory in distributions. Added
+ `private-install', `private-uninstall' targets.
+
+ * configure.in: AC_INIT tests for src/q2c.c now. Removed
+ redundant AC_PROG_MAKE_SET call. Removed include/Makefile,
+ util/Makefile from generated files list; added config/Makefile.
+
+ * include/approx.h, include/arena.h, include/common.h,
+ include/dfm.h, include/do-ifP.h, include/error.h, include/expr.h,
+ include/exprP.h, include/file-handle.h, include/filename.h,
+ include/font.h, include/getline.h, include/getopt.h,
+ include/hash.h, include/heap.h, include/log.h, include/misc.h,
+ include/output.h, include/settings.h, include/sfm.h,
+ include/sfmP.h, include/som.h, include/somP.h, include/stat.h,
+ include/stats.h, include/str.h, include/tokens.h, include/var.h,
+ include/version.h, include/vfmP.h: Moved into src/ directory.
+
+ * include/Makefile.am, include/: Removed.
+
+ * util/Makefile.am: Removed.
+
+ * util/q2c.c: Moved to src/.
+
+ * util/reconfigure: Moved to source root.
+
+ * util/: Removed.
+
+ * Made patchlevel 1.
+
+Fri Apr 18 15:42:22 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Maintainer-cleans generated documentation and
+ Makefile.in.
+
+ * include/Makefile.am, util/Makefile.am: Maintainer-cleans
+ Makefile.in.
+
+ * include/somP.h: (static struct var som) Removed passed_t member.
+
+ * TODO: Updated.
+
+ * configure.in: Fixed source directory for copying pref.h; always
+ updates pref.h or at least touch'es it.
+
+ * pref.h.orig: Made a rather pejorative comment a lot milder so it
+ wouldn't be misinterpreted.
+
+ * Made interim release x3.
+
+Thu Mar 27 01:11:29 1997 Ben Pfaff <blp@gnu.org>
+
+ * All directories now contain new `Makefile.am's, in some cases
+ produced from bits and pieces of the single monolithic old one.
+
+ * PATCHLEVEL: Removed.
+
+ * acconfig.h: Added GNU_PACKAGE, PACKAGE, PROTOTYPES, VERSION;
+ removed inclusion of conf.h.
+
+ * confh.in: Removed.
+ * confh.tmp.in: Removed.
+
+ * configure.in: Deepened. Updated for use with Automake 1.1l.
+ Removed PATCHLEVEL hacks. Fixed lots of functions in
+ AC_CHECK_FUNCS, AC_REPLACE_FUNCS, and similar. Only passes
+ `-Werror' to gcc in maintainer mode. Doesn't output conf.h.
+ Touches pref.h even if it wasn't changed.
+
+ * aclocal.m4: New file.
+
+ * config.h.in: Renamed from configh.in.
+
+ * pref.h.orig: Renamed from prefh.orig.
+
+ * Made interim release x2.
+
+Thu Mar 27 01:07:02 1997 Ben Pfaff <blp@gnu.org>
+
+ Changed the distribution from flat to deep. New configuration:
+
+ ANNOUNCE Makefile.in config.h.in mkinstalldirs
+ AUTHORS NEWS config.sub orphaned-rules
+ BUGS README configure pref.h
+ COPYING THANKS configure.in pref.h.orig
+ ChangeLog TODO debian src
+ ChangeLog~ acconfig.h doc stamp-h.in
+ INSTALL aclocal.m4 include sysdeps
+ LANGUAGE config install-sh tests
+ Makefile.am config.guess lib util
+
+ config:
+ devices environment papersize ps-fontmap ps-prologue
+
+ debian:
+ changelog control postinst rules
+ conffiles copyright postrm
+
+ doc:
+ ANNOUNCE.html Makefile.in fiasco.info-2 stamp-vti
+ AUTHORS.html README.html fiasco.info-3 texinfo.tex
+ BUGS.html THANKS.html fiasco.info-4 version.texi
+ LANGUAGE.html fiasco.info fiasco.texi
+ Makefile.am fiasco.info-1 mdate-sh
+
+ include:
+ approx.h file-handle.h misc.h stats.h
+ arena.h filename.h output.h str.h
+ common.h font.h settings.h tokens.h
+ dfm.h getline.h sfm.h var.h
+ do-ifP.h getopt.h sfmP.h version.h
+ error.h hash.h som.h vfmP.h
+ expr.h heap.h somP.h
+ exprP.h log.h stat.h
+
+ lib:
+ Makefile.am Makefile.in avllib julcal misc
+
+ lib/avllib:
+ AVLLIB.COPYING Makefile.in avl.h
+ Makefile.am avl.c
+
+ lib/julcal:
+ Makefile.am Makefile.in julcal.c julcal.h
+
+ lib/misc:
+ Makefile.am getopt1.c memset.c strstr.c
+ Makefile.in memchr.c qsort.c strtol.c
+ alloca.c memcmp.c stpcpy.c strtoul.c
+ getdelim.c memcpy.c strcasecmp.c
+ getline.c memmem.c strncasecmp.c
+ getopt.c memmove.c strpbrk.c
+
+ src:
+ Makefile.am error.c lexer.c sfm-write.c
+ Makefile.in expr-evl.c list.c show.c
+ arena.c expr-opt.c list.q som-frnt.c
+ ascii.c expr-prs.c log.c som-high.c
+ autorecode.c file-handle.c loop.c som-low.c
+ cases.c file-handle.q main.c sort.c
+ cmdline.c file-type.c mis-val.c split-file.c
+ command.c filename.c misc.c stats.c
+ common.c formats.c modify-vars.c str.c
+ compute.c freq.c numeric.c sysfile-info.c
+ count.c frequencies.c output.c temporary.c
+ crosstabs.c frequencies.g postscript.c title.c
+ crosstabs.q frequencies.q print.c val-labs.c
+ data-in.c get.c recode.c var-labs.c
+ data-list.c getline.c rename-vars.c vars-atr.c
+ data-out.c glob.c repeat.c vars-prs.c
+ descript.c groff-font.c sample.c vector.c
+ descript.q hash.c sel-if.c version.c
+ dfm.c heap.c set.c vfm.c
+ display.c include.c set.q weight.c
+ do-if.c inpt-pgm.c sfm-read.c
+
+ sysdeps:
+ BorlndC4.0 DJGPP2.0 Windows
+
+ sysdeps/BorlndC4.0:
+ Makefile _write.c conf.h
+ _read.c compile.bat config.h
+
+ sysdeps/DJGPP2.0:
+ Makefile compile.bat conf.h config.h
+
+ sysdeps/Windows:
+ con32s.c
+
+ tests:
+ Makefile.am expression.stat reread.data
+ Makefile.in fall92.data reread.stat
+ autorecode.stat fall92.stat sample.stat
+ begin-data.stat file-label.stat show-check-msg
+ bignum.data file-type.stat sort.data
+ bignum.stat filter.stat sort.stat
+ bug.stat gengarbage.c split-file.stat
+ compute.stat input-program.stat sysfile-info.stat
+ count.stat list.data temporary.stat
+ data-formats.stat list.stat time-date.stat
+ data-list.data loop.stat vector.stat
+ data-list.stat modify-vars.stat weighting.data
+ descript.stat print.stat weighting.stat
+ do-if.stat process-if.stat
+ do-repeat.stat recode.stat
+
+ util:
+ Makefile.am Makefile.in q2c.c reconfigure
+
+ Old configuration:
+
+ ANNOUNCE.html count.c hash.h sample.c
+ AUTHORS.html crosstabs.q heap.c sel-if.c
+ AVLLIB.COPYING data-in.c heap.h set.q
+ BUGS.html data-list.c include.c settings.h
+ COPYING data-out.c inpt-pgm.c sfm-read.c
+ ChangeLog debian install-sh sfm-write.c
+ INSTALL descript.q julcal.c sfm.h
+ LANGUAGE.html devices julcal.h sfmP.h
+ Makefile.am dfm.c lexer.c show.c
+ NEWS dfm.h list.q som-frnt.c
+ PATCHLEVEL display.c log.c som-high.c
+ README.html do-if.c log.h som-low.c
+ THANKS.html do-ifP.h loop.c som.h
+ TODO environment main.c somP.h
+ _read.c error.c makeb40.bat sort.c
+ _write.c error.h makedj2.bat split-file.c
+ acconfig.h expr-evl.c makefile.b40 stamp-h.in
+ alloca.c expr-opt.c makefile.dj2 stats.c
+ approx.h expr-prs.c mdate-sh stats.h
+ arena.c expr.h memcmp.c stpcpy.c
+ arena.h exprP.h mis-val.c str.c
+ ascii.c fiasco.texi misc.c str.h
+ autorecode.c file-handle.h misc.h sysfile-info.c
+ avl.c file-handle.q mkinstalldirs temporary.c
+ avl.h file-type.c modify-vars.c test
+ cases.c filename.c numeric.c texinfo.tex
+ cmdline.c filename.h output.c title.c
+ command.c font.h output.h tokens.h
+ common.c formats.c papersize val-labs.c
+ common.h freq.c postscript.c var-labs.c
+ compute.c frequencies.g prefh.orig var.h
+ con32s.c frequencies.q print.c vars-atr.c
+ confh.b40 get.c ps-fontmap vars-prs.c
+ confh.dj2 getline.c ps-prologue vector.c
+ confh.in getline.h q2c.c version.c
+ confh.tmp.in getopt.c qsort.c version.h
+ config.guess getopt.h recode.c vfm.c
+ config.sub getopt1.c reconfigure vfmP.h
+ configh.b40 glob.c reject weight.c
+ configh.dj2 groff-font.c rename-vars.c
+ configure.in hash.c repeat.c
+
+ debian:
+ changelog control postinst rules
+ conffiles copyright postrm
+
+ test:
+ autorecode.stat fall92.data recode.stat
+ begin-data.stat fall92.stat reread.data
+ bignum.data file-label.stat reread.stat
+ bignum.stat file-type.stat sample.stat
+ bug.stat filter.stat sort.stat
+ compute.stat gengarbage.c split-file.stat
+ count.stat gengarbage.pl sysfile-info.stat
+ data-formats.stat input-program.stat temporary.stat
+ data-list.data list.data time-date.stat
+ data-list.stat list.stat vector.stat
+ descript.stat loop.stat weighting.data
+ do-if.stat modify-vars.stat weighting.stat
+ do-repeat.stat print.stat
+ expression.stat process-if.stat
+
+Mon Mar 24 21:47:31 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: @ALLOCA@ is on list of source files instead of
+ alloca.c. Added $(srcdir)/ to version.c reference. Changed to
+ pkgdatadir (/usr/share) for pkgsysconfdir, from pkglibdir
+ (/usr/lib). Removed some of extra distfiles. Added bogus `check'
+ target.
+
+ * Made transition release x1.
+
+Sun Mar 2 20:51:28 1997 Ben Pfaff <blp@gnu.org>
+
+ No longer uses debmake:
+
+ * Makefile.am: Installs documentation according to Debian policy
+ manual. New targets `private-uninstall', `install-data-hook' to
+ help implement this. `debian' target also revised.
+
+ * configure.in: Sets up for Debian installation depending on
+ DEBIAN environment variable. Also, improved & fixed (hopefully)
+ the scheme for detecting patchlevel.
+
+ * Made patchlevel 193.
+
+Wed Feb 19 21:30:31 1997 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Updated.
+
+ * Made patchlevel 192.
+
+Sun Feb 16 20:57:20 1997 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 191.
+
+Sat Feb 15 21:26:53 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Removed `descript.g' from sources.
+
+ * Made patchlevel 190.
+
+Fri Feb 14 23:32:58 1997 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Updated.
+
+ * configure.in: Fixed test for max number of digits in an `int' to
+ use char[] rather than int[].
+
+ * Made patchlevel 189.
+
+Tue Feb 4 15:15:50 1997 Ben Pfaff <blp@gnu.org>
+
+ * configure.in: Fixed some problems with `--with-checker' flag and
+ with detection of available libraries; no longer any lines longer
+ than 79 characters.
+
+ * Made patchlevel 188.
+
+Wed Jan 22 21:54:00 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Add sysfile-info.c to sources.
+
+ * TODO: Moved some notes to different files where they are more
+ appropriate.
+
+ * prefh.orig: (macros STORE_2 and LOAD_2) Always load/store as
+ little-endian.
+
+ * Made patchlevel 187.
+
+Sun Jan 19 14:22:11 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Added rename-vars.c to sources. Added to distclean
+ files.
+
+ * TODO: Updates.
+
+ * Made patchlevel 186.
+
+Thu Jan 16 13:08:57 1997 Ben Pfaff <blp@gnu.org>
+
+ * Most files have updated copyright notices for 1997.
+
+ * Makefile.am: Added modify-vars.c to source files. Also changed
+ `lynx' to $(HTML_FORMATTER), etc. Changed messages.
+
+ * TODO: Updates.
+
+ * Made patchlevel 185.
+
+Sat Jan 11 15:44:15 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: By default, now installs config files in pkglibdir,
+ generally /usr/local/lib/fiasco.
+
+ * TODO: Updated.
+
+ * prefh.orig: Added `/etc/fiasco' to config paths. Removed
+ $ARCH/$VER dirs from include paths.
+
+ * Made patchlevel 184.
+
+Fri Jan 10 20:22:08 1997 Ben Pfaff <blp@gnu.org>
+
+ * debian/changelog, debian/control, debian/copyright, debian/dirs,
+ debian/info, debian/menu, debian/rules: Added Debian GNU/Linux
+ control files.
+
+ * Makefile.am: Added sfmP.h to source files. Added several files
+ to the list of distfiles. dist-hook now copies debian control
+ files. New targets `debian', `debian-clean', `debian-clean-full'.
+
+ * confh.in: Defines PATCHLEVEL.
+
+ * configure.in: Adds the current patchlevel to the version
+ number. Versions are now of the form `1.2.3pl456'. Determines
+ the patchlevel based on directory name and contents of file
+ PATCHLEVEL.
+
+ * reconfigure: Passes automake `--strictness=foreign'.
+
+ * Made patchlevel 183.
+
+Thu Jan 2 19:08:23 1997 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 182.
+
+Wed Jan 1 22:08:10 1997 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Updated.
+
+ * Made patchlevel 181.
+
+Wed Jan 1 17:00:59 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: New target for test/sort.data.
+
+ * Made patchlevel 180.
+
+Sun Dec 29 21:36:48 1996 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 179.
+
+Tue Dec 24 20:42:32 1996 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 178.
+
+Sun Dec 22 23:10:39 1996 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Added heap.c, heap.h to source files. Added
+ new html files to distfiles & maintainer-clean files.
+
+ * configure.in: Tests for presence of getpid(), sys/types.h.
+
+ * prefh.orig: #defines mkdir() for MS-DOS compatibility.
+
+ * Made patchlevel 177.
+
+Sat Dec 21 21:51:04 1996 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Added README.html, LANGUAGE.html to list of
+ distfiles. Added README, LANGUAGE to list of maintainer-clean
+ files. Added .html to suffixes. Added .html implicit rule that
+ calls `lynx -dump -nolist'.
+
+ * Made patchlevel 176.
+
+Tue Dec 17 18:57:59 1996 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 175.
+
+Sun Dec 15 15:32:16 1996 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Added vfmP.c, qsort, sort.c to list of source
+ files.
+
+ * prefh.orig: Subtle changes to MAX_WORKSPACE, ALWAYS_PAGE,
+ NEVER_PAGE, DEMAND_PAGE macro meanings.
+
+ * Made patchlevel 174.
+
+Sat Dec 14 10:35:30 1996 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 173.
+
+Fri Dec 13 21:30:53 1996 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Added autorecode.c to source files.
+
+ * prefh.orig: Fixed path GROFF_FONT_PATH.
+
+ * Made patchlevel 172.
+
+Fri Dec 6 23:53:47 1996 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Updated.
+
+ * Made patchlevel 171.
+
+Wed Dec 4 21:34:17 1996 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 170.
+
+Sun Dec 1 17:19:00 1996 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 169.
+
+Thu Nov 28 23:14:07 1996 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Added `set.q' to list of source files.
+
+ * Made patchlevel 168.
+
+Thu Nov 28 19:46:10 1996 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 167.
+
+Wed Nov 27 23:18:35 1996 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Added `sfm-write.c' to list of source files.
+
+ * confh.in: New #defines RELEASE_NO, SUB_RELEASE_NO, and
+ SPEC_RELEASE_NO for each part of a version number of form 1.2.3.
+
+ * configure.in: Computes RELEASE_NO, etc., by breaking apart
+ VERSION.
+
+ * prefh.orig: (defn of int32, flt64) Formatting fixes.
+ (FLT64_MAX) New define.
+
+ * Made patchlevel 166.
+
+Sun Nov 24 14:53:53 1996 Ben Pfaff <blp@gnu.org>
+
+ * Wow, it's been almost two weeks since the last update, hard to
+ believe.
+
+ * All source files: Updated e-mail address.
+
+ * prefh.orig: local_alloc() calls xmalloc() under Checker because
+ Checker can keep track of heap blocks much more accurately.
+
+ * Made patchlevel 165.
+
+Mon Nov 11 15:34:09 1996 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 164.
+
+Thu Nov 7 20:52:28 1996 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 163.
+
+Thu Nov 7 17:29:16 1996 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 162.
+
+Thu Nov 7 15:48:52 1996 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 161.
+
+Tue Nov 5 18:34:59 1996 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Updated.
+
+ * Made patchlevel 160.
+
+Mon Nov 4 22:03:28 1996 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Added get.c.
+
+ * TODO: Updated.
+
+ * Made patchlevel 159.
+
+Sun Nov 3 12:24:36 1996 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Added sfm.h, sfm-read.c to source files.
+
+ * Made patchlevel 158.
+
+Wed Oct 30 17:13:08 1996 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Added dist-zip target to AUTOMAKE_OPTIONS.
+
+ * acconfig.h: Added FPREP_* defines.
+
+ * configure.in: Added checks for the sizes of floating-point
+ types. Added a test for the internal floating-point
+ representation of the host architecture.
+
+ * prefh.orig: Renamed `ATTRIBUTION' macro as `__attribute__'. All
+ references changed. Defines `flt64' 64-bit floating-point for use
+ with system files.
+ [FPREP==FPREP_IEEE754 && __GNUC__ && (ENDIAN==BIG ||
+ ENDIAN==LITTLE] Defines SECOND_LOWEST_VALUE macro.
+
+ * Made patchlevel 157.
+
+Sat Oct 26 23:06:06 1996 Ben Pfaff <blp@gnu.org>
+
+ * configure.in: Checks sizes of short, int, long, long long.
+
+ * prefh.orig: Defines new type int32 for use with system
+ files.
+
+ * Made patchlevel 156.
+
+Sat Oct 26 20:46:31 1996 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 155.
+
+Sat Oct 26 10:39:25 1996 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Updated.
+
+ * Made patchlevel 154.
+
+Thu Oct 24 20:13:42 1996 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Added back in these files: recode.c, sample.c,
+ sel-if.c. Also added files somP.h, hash.c that should've been
+ there anyway.
+
+ * TODO: Updated.
+
+ * configure.in: Checks for strncasecmp in place of strcasecmp.
+
+ * Made patchlevel 153.
+
+Thu Oct 24 17:47:14 1996 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Updated.
+
+ * Made patchlevel 152.
+
+Wed Oct 23 21:53:43 1996 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Organized.
+
+ * Made patchlevel 151.
+
+Tue Oct 22 17:27:04 1996 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Culled old notes.
+
+ * Made patchlevel 150.
+
+Mon Oct 21 20:39:59 1996 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 149.
+
+Sun Oct 20 13:45:28 1996 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Added back in `numeric.c', `print.c', `title.c'.
+ Defined ETAGS_ARGS.
+
+ * Made patchlevel 148.
+
+Sun Oct 20 09:04:15 1996 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 147.
+
+Fri Oct 18 19:46:49 1996 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 146.
+
+Sun Sep 29 19:37:03 1996 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 145.
+
+Sat Sep 28 21:28:07 1996 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Added to DISTCLEANFILES.
+
+ * Made patchlevel 144.
+
+Fri Sep 27 20:08:39 1996 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 143.
+
+Thu Sep 26 22:20:26 1996 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Added list.c back into the list of source files.
+
+ * Made patchlevel 142.
+
+Wed Sep 25 19:36:11 1996 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Updated for new files.
+
+ * Made patchlevel 141.
+
+Tue Sep 24 18:39:09 1996 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 140.
+
+Sat Sep 21 23:16:31 1996 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 139.
+
+Fri Sep 20 22:52:28 1996 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 138.
+
+Thu Sep 12 18:40:33 1996 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 137.
+
+Wed Sep 11 22:01:41 1996 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Added timestamp.
+
+ * prefh.orig: Removed `/usr/local/share/fiasco' and
+ `/usr/share/fiasco' from CONFIG_PATH as per the Linux FSSTND,
+ which specifies that programs should never give an explicit
+ `/usr(/local)/share' path.
+
+ * Made patchlevel 136.
+
+Tue Sep 10 21:39:00 1996 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Added `display.c' back in.
+
+ * TODO: Addition.
+
+ * Made patchlevel 135.
+
+Mon Sep 9 21:43:13 1996 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Added `split-file.c' back into the project.
+
+ * Made patchlevel 134.
+
+Sat Sep 7 22:35:12 1996 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Updated.
+
+ * prefh.orig: (local_strdup) Moved to misc.h.
+
+ * Made patchlevel 133.
+
+Thu Sep 5 22:05:56 1996 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Changed `prologue.ps' references to `ps-prologue'.
+
+ * Made patchlevel 132.
+
+Wed Sep 4 21:45:35 1996 Ben Pfaff <blp@gnu.org>
+
+ * prefh.orig: New i18n defines.
+
+ * This patchlevel doesn't even compile.
+
+ * Made patchlevel 131.
+
+Sat Aug 31 23:52:38 1996 Ben Pfaff <blp@gnu.org>
+
+ * TODO: Addition.
+
+ * Made patchlevel 130.
+
+Thu Aug 29 21:36:41 1996 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 129.
+
+Sat Aug 24 23:26:00 1996 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: New target "private-install" to install config files
+ to $HOME/.fiasco.
+
+ * configure.in: Now that I have made a less-bogus Checker
+ distribution, removed `-b i486-linuxaout -V 2.6.3' from
+ AC_ARG_WITH(checker, ...).
+
+ * Made patchlevel 127 somewhere in there.
+
+ * Made patchlevel 128.
+
+Sun Aug 11 21:31:22 1996 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Changed DISTCLEANFILES.
+
+ * Does not compile.
+
+ * Made patchlevel 126.
+
+Sat Aug 10 23:28:17 1996 Ben Pfaff <blp@gnu.org>
+
+ * reconfigure: Calls `autoheader' twice: once at the beginning,
+ once after make maintainer-clean.
+
+ * Made patchlevel 125.
+
+Thu Aug 8 22:31:11 1996 Ben Pfaff <blp@gnu.org>
+
+ * reconfigure: `autoheader' now first operation performed.
+
+ * Made patchlevel 124.
+
+Sat Aug 3 20:50:35 1996 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Added postscript.c to list of source files.
+
+ * configh.in: Removed since autoheader can regenerate it.
+
+ * configure.in: Improved tests for (ncurses or termcap) and
+ (history and/or readline) libraries and associated headers. Added
+ check for strcasecmp(). Changed default gcc CFLAGS.
+
+ * prefh.orig: Removed `.' from GROFF_FONT_PATH.
+ (local_alloc, local_free) New functions.
+
+ * reconfigure: Added call to autoheader.
+
+ * Made patchlevel 123.
+
+Sat Jul 27 22:32:38 1996 Ben Pfaff <blp@gnu.org>
+
+ * There were some problems with the patchfiles so I had to merge
+ what was previously patchlevels 121 and 122; now everything from
+ what was previously 122 is called 121. Oh well, just don't let it
+ happen often.
+
+ * This patchlevel does not compile.
+
+ * configure: No longer included in patches to save lotsa space
+ when configure.in changes.
+
+ * configure.in: Changed the technique for detecting libraries.
+
+ * prefh.orig: Style changes; handles changed configure.in.
+
+ * Made patchlevel 122 (second edition).
+
+Tue Jul 23 21:48:36 1996 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 121.
+
+Wed Jul 17 21:23:36 1996 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 120.
+
+Tue Jul 16 22:10:04 1996 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 119.
+
+Sun Jul 14 15:45:31 1996 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 118.
+
+Fri Jul 12 22:03:36 1996 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Added list.c to sources.
+
+ * Made patchlevel 117.
+
+Sat Jul 6 22:22:25 1996 Ben Pfaff <blp@gnu.org>
+
+ * configure.in: Removed reference to `malloc.h'.
+
+ * Made patchlevel 116.
+
+Fri Jul 5 20:16:19 1996 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 115.
+
+Thu Jul 4 20:20:24 1996 Ben Pfaff <blp@gnu.org>
+
+ * prefh.orig: Changes to CONFIG_PATH, INCLUDE_PATH,
+ GROFF_FONT_PATH.
+
+ * Makefile.am: pkgdata_DATA file `output' changed to `devices'.
+
+Thu Jul 4 00:35:59 1996 Ben Pfaff <blp@gnu.org>
+
+ * TODO: doc fix.
+
+ * Made patchlevel 114.
+
+Tue Jul 2 22:13:23 1996 Ben Pfaff <blp@gnu.org>
+
+ * reconfigure: (new file) Runs all the programs necessary to
+ create a Makefile that includes dependencies.
+
+ * Made patchlevel 113.
+
+Mon Jul 1 22:13:39 1996 Ben Pfaff <blp@gnu.org>
+
+ * Made patchlevel 112.
+
+Mon Jul 1 13:00:00 1996 Ben Pfaff <blp@gnu.org>
+
+ * Most files: Changed references from `stat' (the original, rather
+ dull old name for this project) to `Fiasco' (the creative, rather
+ funny new name for this project).
+
+ * Made patchlevel 111.
+
+Sat Jun 29 17:40:47 1996 Ben Pfaff <blp@gnu.org>
+
+ * prefh.orig: changed default file search paths
+
+ * Made patchlevel 110.
+
+Fri Jun 28 11:59:48 1996 Ben Pfaff <blp@gnu.org>
+
+ * Added automake support; removed GNUmakefile and GNUmakefile.in.
+
+----------------------------------------------------------------------
+Local Variables:
+mode: change-log
+version-control: never
+End:
getopt \
gettext-h \
gettimeofday \
+ gitlog-to-changelog \
isfinite \
isinf \
isnan \
xvasprintf
all: po/POTFILES.in
+ test -e ChangeLog || touch ChangeLog
test -d m4 || mkdir m4
echo '*' > m4/.cvsignore
touch m4/Makefile.am
$(GNULIB_TOOL) --import --no-changelog --m4-base=gl/m4 \
--source-base=gl --lib=libgl --tests-base=tests \
- --doc-base=gl/doc --import $(GNULIB_MODULES)
+ --doc-base=gl/doc --aux-dir=. --import $(GNULIB_MODULES)
echo '*' > gl/.cvsignore
echo '*' > gl/m4/.cvsignore
libtoolize --force --automake
+++ /dev/null
-2007-09-25 Ben Pfaff <blp@gnu.org>
-
- * devices (tty-ascii): Set length and width to "auto", so that
- they reflect the current size of the terminal window as it
- changes.
-
-2007-09-22 Ben Pfaff <blp@gnu.org>
-
- Bug #21128. Reviewed by John Darrington.
-
- * papersize: Removed.
-
- * automake.mk (dist_pkgsysconf_DATA): Remove papersize.
-
-2007-08-26 Ben Pfaff <blp@gnu.org>
-
- * devices: Change raw-ascii from screen to listing device (because
- that's how it's used).
-
-2007-07-25 Ben Pfaff <blp@gnu.org>
-
- * devices: Add tty and listing devices that use VT100 (and xterm)
- line-drawing characters.
-
-2007-07-25 Ben Pfaff <blp@gnu.org>
-
- * devices: Add an "interactive" category that defaults to
- tty-ascii. Make the tty-ascii device more user-friendly.
-
-Tue Apr 4 20:20:49 2006 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Fix bugs in installation targets.
-
-Mon Apr 3 11:01:16 2006 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: (pkgsysconf_DATA) Add AFM files in config/psfonts.
- Remove config/html-prologue, config/ps-prologue.
-
- * html-prologue: Removed.
-
- * ps-prologue: Removed.
-
- * psfonts/Courier-Bold.afm, psfonts/Courier-BoldOblique.afm,
- psfonts/Courier-Oblique.afm, psfonts/Courier.afm,
- psfonts/Helvetica-Bold.afm, psfonts/Helvetica-BoldOblique.afm,
- psfonts/Helvetica-Oblique.afm, psfonts/Helvetica.afm,
- psfonts/Times-Bold.afm, psfonts/Times-BoldItalic.afm,
- psfonts/Times-Italic.afm, psfonts/Times-Roman.afm: New files.
-
-Sat Feb 11 21:58:29 2006 Ben Pfaff <blp@gnu.org>
-
- * html-prologue: Don't use ${source-file}, which is no longer
- supported.
-
-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.
-
-Sun May 24 22:40:13 1998 Ben Pfaff <blp@gnu.org>
-
- * ps-prologue: Add %%DocumentMedia: comment.
-
-Wed May 20 00:02:51 1998 Ben Pfaff <blp@gnu.org>
-
- * ps-prologue: Comment out misleading Bounding-Box comment for
- now. SF arguments rearranged. BP removed.
-
-Wed Apr 15 13:00:46 1998 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (private-install) Make it work for separate source
- and build directories.
-
- * ps-prologue: New TL macro for a thick line. New thick-width arg
- to BP.
-
-Sun Jan 4 18:11:11 1998 Ben Pfaff <blp@gnu.org>
-
- * ps-prologue: Minor reorganization. New GB macro to draw a gray
- box.
-
-Wed Dec 24 22:35:13 1997 Ben Pfaff <blp@gnu.org>
-
- * devices: Added devicetype options and documentation for them.
-
-Fri Dec 5 21:51:08 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (pkgsysconf_DATA) Add html-prologue.
- (EXTRA_DIST) Add html-prologue.
-
- * devices: Add `html' device. Add `listing', `screen', and
- `printer' flags to devices as appropriate.
-
- * html-prologue: New file.
-
- * ps-prologue: Comment fixes.
-
-Thu Sep 18 21:31:02 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (pkgsysconfdir) Changed from $(pkgdatadir) to
- $(sysconfdir)/$(PACKAGE).
-
-Thu Aug 14 22:05:54 1997 Ben Pfaff <blp@gnu.org>
-
- * devices: (tty) Define as null instead of not defining.
-
-Sun Aug 3 11:33:28 1997 Ben Pfaff <blp@gnu.org>
-
- * devices: tty-ascii has no bold or italic by default.
-
-Wed Jun 25 22:50:19 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (EXTRA_DIST) New target.
-
-Mon May 5 21:56:54 1997 Ben Pfaff <blp@gnu.org>
-
- * devices, papersize, ps-prologue: Comment fixes.
-
-Fri May 2 22:05:44 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Removed ps-fontmap.
-
- * ps-fontmap: Removed.
-
- * ps-prologue: Added comments. Fixed DSC comments.
- (BP) Two new arguments; fixed problem with SF argument conflict
- with SF function.
-
-Thu May 1 14:57:52 1997 Ben Pfaff <blp@gnu.org>
-
- * ps-prologue: (BP) New argument, SF or scale factor.
-
-Fri Apr 18 16:48:41 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: New file.
-
- * environment: Comment fix.
-
-Sat Feb 15 21:26:53 1997 Ben Pfaff <blp@gnu.org>
-
- * devices: Added ml520 and ml520-ul printer devices.
-
-Sat Jan 11 15:44:15 1997 Ben Pfaff <blp@gnu.org>
-
- * devices: Default listing device is list-ascii, not list-ibmpc.
-
-Sun Dec 29 21:36:48 1996 Ben Pfaff <blp@gnu.org>
-
- * devices: Changed default devices.
-
-Sat Sep 7 22:35:12 1996 Ben Pfaff <blp@gnu.org>
-
- * ps-prologue: Added `!encodings' line to cause encodings to be
- output.
- (T) Fixed. Yes, really this time.
-
-Thu Sep 5 22:05:56 1996 Ben Pfaff <blp@gnu.org>
-
- * ps-prologue: (T) Now works correctly.
- (SF) Parameters changed to: size in psus, target font name,
- encoding, PostScript font name.
-
-Wed Sep 4 21:45:35 1996 Ben Pfaff <blp@gnu.org>
-
- * prologue.ps: Renamed ps-prologue, all references changed.
- (T) New definition.
-
- * ps-encodings: New PostScript configuration file (not present in
- distribution).
-
-Sat Aug 31 23:52:38 1996 Ben Pfaff <blp@gnu.org>
-
- * prologue.ps: One minor comment change.
-
-Thu Aug 29 21:36:41 1996 Ben Pfaff <blp@gnu.org>
-
- * prologue.ps: Portions other than DSC comments are essentially
- completely new.
-
-Sat Aug 24 23:26:00 1996 Ben Pfaff <blp@gnu.org>
-
- * devices: Added PostScript driver.
-
-Sun Aug 11 21:31:22 1996 Ben Pfaff <blp@gnu.org>
-
- * prologue.ps: Calls `setlinecap' in setup code.
-
-Sat Aug 10 23:28:17 1996 Ben Pfaff <blp@gnu.org>
-
- * prologue.ps: DSC comment changes. New call to `setlinewidth' in
- setup code.
-
-Thu Aug 8 22:31:11 1996 Ben Pfaff <blp@gnu.org>
-
- * prologue.ps: Changes to scaling & translating code.
-
-Sat Aug 3 20:50:35 1996 Ben Pfaff <blp@gnu.org>
-
- * environment: New file. Yet another new time- and memory-hogging
- redundant config file; why not?
-
- * papersize: Comment changes.
-
- * prologue.ps: Changed vars from $varname$ to ${varname} format.
- Miscellaneous changes.
-
- * ps-fontmap: Comment changes. Fixed ZC family.
-
-Sat Jul 27 22:32:38 1996 Ben Pfaff <blp@gnu.org>
-
- * ps-fontmap: New configuration file. Added to Makefile.am.
-
-----------------------------------------------------------------------
-Local Variables:
-mode: change-log
-version-control: never
-End:
--- /dev/null
+2007-09-25 Ben Pfaff <blp@gnu.org>
+
+ * devices (tty-ascii): Set length and width to "auto", so that
+ they reflect the current size of the terminal window as it
+ changes.
+
+2007-09-22 Ben Pfaff <blp@gnu.org>
+
+ Bug #21128. Reviewed by John Darrington.
+
+ * papersize: Removed.
+
+ * automake.mk (dist_pkgsysconf_DATA): Remove papersize.
+
+2007-08-26 Ben Pfaff <blp@gnu.org>
+
+ * devices: Change raw-ascii from screen to listing device (because
+ that's how it's used).
+
+2007-07-25 Ben Pfaff <blp@gnu.org>
+
+ * devices: Add tty and listing devices that use VT100 (and xterm)
+ line-drawing characters.
+
+2007-07-25 Ben Pfaff <blp@gnu.org>
+
+ * devices: Add an "interactive" category that defaults to
+ tty-ascii. Make the tty-ascii device more user-friendly.
+
+Tue Apr 4 20:20:49 2006 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Fix bugs in installation targets.
+
+Mon Apr 3 11:01:16 2006 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: (pkgsysconf_DATA) Add AFM files in config/psfonts.
+ Remove config/html-prologue, config/ps-prologue.
+
+ * html-prologue: Removed.
+
+ * ps-prologue: Removed.
+
+ * psfonts/Courier-Bold.afm, psfonts/Courier-BoldOblique.afm,
+ psfonts/Courier-Oblique.afm, psfonts/Courier.afm,
+ psfonts/Helvetica-Bold.afm, psfonts/Helvetica-BoldOblique.afm,
+ psfonts/Helvetica-Oblique.afm, psfonts/Helvetica.afm,
+ psfonts/Times-Bold.afm, psfonts/Times-BoldItalic.afm,
+ psfonts/Times-Italic.afm, psfonts/Times-Roman.afm: New files.
+
+Sat Feb 11 21:58:29 2006 Ben Pfaff <blp@gnu.org>
+
+ * html-prologue: Don't use ${source-file}, which is no longer
+ supported.
+
+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.
+
+Sun May 24 22:40:13 1998 Ben Pfaff <blp@gnu.org>
+
+ * ps-prologue: Add %%DocumentMedia: comment.
+
+Wed May 20 00:02:51 1998 Ben Pfaff <blp@gnu.org>
+
+ * ps-prologue: Comment out misleading Bounding-Box comment for
+ now. SF arguments rearranged. BP removed.
+
+Wed Apr 15 13:00:46 1998 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (private-install) Make it work for separate source
+ and build directories.
+
+ * ps-prologue: New TL macro for a thick line. New thick-width arg
+ to BP.
+
+Sun Jan 4 18:11:11 1998 Ben Pfaff <blp@gnu.org>
+
+ * ps-prologue: Minor reorganization. New GB macro to draw a gray
+ box.
+
+Wed Dec 24 22:35:13 1997 Ben Pfaff <blp@gnu.org>
+
+ * devices: Added devicetype options and documentation for them.
+
+Fri Dec 5 21:51:08 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (pkgsysconf_DATA) Add html-prologue.
+ (EXTRA_DIST) Add html-prologue.
+
+ * devices: Add `html' device. Add `listing', `screen', and
+ `printer' flags to devices as appropriate.
+
+ * html-prologue: New file.
+
+ * ps-prologue: Comment fixes.
+
+Thu Sep 18 21:31:02 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (pkgsysconfdir) Changed from $(pkgdatadir) to
+ $(sysconfdir)/$(PACKAGE).
+
+Thu Aug 14 22:05:54 1997 Ben Pfaff <blp@gnu.org>
+
+ * devices: (tty) Define as null instead of not defining.
+
+Sun Aug 3 11:33:28 1997 Ben Pfaff <blp@gnu.org>
+
+ * devices: tty-ascii has no bold or italic by default.
+
+Wed Jun 25 22:50:19 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (EXTRA_DIST) New target.
+
+Mon May 5 21:56:54 1997 Ben Pfaff <blp@gnu.org>
+
+ * devices, papersize, ps-prologue: Comment fixes.
+
+Fri May 2 22:05:44 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Removed ps-fontmap.
+
+ * ps-fontmap: Removed.
+
+ * ps-prologue: Added comments. Fixed DSC comments.
+ (BP) Two new arguments; fixed problem with SF argument conflict
+ with SF function.
+
+Thu May 1 14:57:52 1997 Ben Pfaff <blp@gnu.org>
+
+ * ps-prologue: (BP) New argument, SF or scale factor.
+
+Fri Apr 18 16:48:41 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: New file.
+
+ * environment: Comment fix.
+
+Sat Feb 15 21:26:53 1997 Ben Pfaff <blp@gnu.org>
+
+ * devices: Added ml520 and ml520-ul printer devices.
+
+Sat Jan 11 15:44:15 1997 Ben Pfaff <blp@gnu.org>
+
+ * devices: Default listing device is list-ascii, not list-ibmpc.
+
+Sun Dec 29 21:36:48 1996 Ben Pfaff <blp@gnu.org>
+
+ * devices: Changed default devices.
+
+Sat Sep 7 22:35:12 1996 Ben Pfaff <blp@gnu.org>
+
+ * ps-prologue: Added `!encodings' line to cause encodings to be
+ output.
+ (T) Fixed. Yes, really this time.
+
+Thu Sep 5 22:05:56 1996 Ben Pfaff <blp@gnu.org>
+
+ * ps-prologue: (T) Now works correctly.
+ (SF) Parameters changed to: size in psus, target font name,
+ encoding, PostScript font name.
+
+Wed Sep 4 21:45:35 1996 Ben Pfaff <blp@gnu.org>
+
+ * prologue.ps: Renamed ps-prologue, all references changed.
+ (T) New definition.
+
+ * ps-encodings: New PostScript configuration file (not present in
+ distribution).
+
+Sat Aug 31 23:52:38 1996 Ben Pfaff <blp@gnu.org>
+
+ * prologue.ps: One minor comment change.
+
+Thu Aug 29 21:36:41 1996 Ben Pfaff <blp@gnu.org>
+
+ * prologue.ps: Portions other than DSC comments are essentially
+ completely new.
+
+Sat Aug 24 23:26:00 1996 Ben Pfaff <blp@gnu.org>
+
+ * devices: Added PostScript driver.
+
+Sun Aug 11 21:31:22 1996 Ben Pfaff <blp@gnu.org>
+
+ * prologue.ps: Calls `setlinecap' in setup code.
+
+Sat Aug 10 23:28:17 1996 Ben Pfaff <blp@gnu.org>
+
+ * prologue.ps: DSC comment changes. New call to `setlinewidth' in
+ setup code.
+
+Thu Aug 8 22:31:11 1996 Ben Pfaff <blp@gnu.org>
+
+ * prologue.ps: Changes to scaling & translating code.
+
+Sat Aug 3 20:50:35 1996 Ben Pfaff <blp@gnu.org>
+
+ * environment: New file. Yet another new time- and memory-hogging
+ redundant config file; why not?
+
+ * papersize: Comment changes.
+
+ * prologue.ps: Changed vars from $varname$ to ${varname} format.
+ Miscellaneous changes.
+
+ * ps-fontmap: Comment changes. Fixed ZC family.
+
+Sat Jul 27 22:32:38 1996 Ben Pfaff <blp@gnu.org>
+
+ * ps-fontmap: New configuration file. Added to Makefile.am.
+
+----------------------------------------------------------------------
+Local Variables:
+mode: change-log
+version-control: never
+End:
config/psfonts/Helvetica.afm \
config/psfonts/Times-Roman.afm \
config/psfonts/Courier.afm
+
+EXTRA_DIST += config/OChangeLog
+++ /dev/null
-2008-05-15 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Make install-data-hook depend on yelp-check if the
- GUI is configured.
-
-2008-05-08 John Darrington <john@darrington.wattle.id.au>
-
- * automake.mk: Compress the info files, because later
- versions of yelp seem to crash otherwise.
-
-2008-03-11 Jason Stover <jhs@math.gcsu.edu>
-
- * regression.texi (REGRESSION): Fixed use of @dots in @math
- command. Reported by John Darrington.
-
-2008-03-11 Jason Stover <jhs@math.gcsu.edu>
-
- * regression.texi: Made more consistent use of math mode for
- description of linear regression. Added reference to the mean of
- the error terms being 0.
-
-2008-03-09 Jason Stover <jhs@math.gcsu.edu>
-
- * regression.texi (REGRESSION): Removed references to subcommand EXPORT.
-
-2008-02-06 John Darrington <john@darrington.wattle.id.au>
-
- * files.texi: Document the /BSIZE subcommand to the PSQL
- reader.
-
-2008-02-04 John Darrington <john@darrington.wattle.id.au>
-
- * files.texi data-io.texi: Document the GET DATA TYPE=PSQL
- option. Thanks to Ben Pfaff for reviewing this text.
-
-
-2007-11-10 Ben Pfaff <blp@gnu.org>
-
- * not-implemented.texi: Fix @include command so that it works
- consistently, by using a file name relative to Makefile.am's
- srcdir instead of relative to doc.
-
-2007-11-10 Ben Pfaff <blp@gnu.org>
-
- Patch #6262: New developers guide (currently incomplete).
-
- * automake.mk: Add definitions for new manual.
-
- * pspp.texinfo: Now this is the PSPP Users Guide instead of just
- the PSPP manual. Remove development chapters.
-
- * pspp-dev.texinfo: New file.
-
- * data-file-format.texi: Move to dev/system-file-format.texi.
-
- * portable-file-format.texi: Move to dev/.
-
- * q2c.texi: Move to dev/
-
- * dev/concepts.texi: New file.
-
- * dev/data.texi: New file.
-
- * dev/intro.texi: New file.
-
- * dev/output.texi: New file.
-
- * dev/syntax.texi: New file.
-
-2007-10-19 John Darrington <john@darrington.wattle.id.au>
-
- * statistics.texi: Changed /CONTRASTS to /CONTRAST in ONEWAY which
- is what the command accepts.
-
-
-2007-07-28 John Darrington <john@darrington.wattle.id.au>
-
- * statistics.texi: Made the documentation for T-TEST match
- the behaviour.
-
-2007-07-17 Ben Pfaff <blp@gnu.org>
-
- * get-commands.pl: Use strict and all warnings. Simplify
- parsing. Add "@c End:" line to output to suppress Emacs warning.
- From bug #19335. Reviewed by John Darrington.
-
-2007-06-05 Ben Pfaff <blp@gnu.org>
-
- * Removed next, prev, up node names from @node lines, to make
- structural changes to the manual easier. (These node names are
- not needed by makeinfo.)
-
-2007-03-31 John Darrington <john@darrington.wattle.id.au>
-
- * transformation.texi: SORT CASES: elaborated on the (D) (A) flags.
-
-2007-03-01 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Fix "make distcheck" by distributing doc/ni.texi,
- even though it's generated. Reviewed by John Darrington.
- (doc_pspp_TEXINFOS): Add doc/ni.texi.
- (nodist_doc_pspp_TEXINFOS): Remove.
- (am__TEXINFO_TEX_DIR) Removed (was just a kluge anyhow).
- ($(INFO_DEPS)): Removed.
- ($(HTML_DEPS)): Removed.
- (CLEANFILES): Removed.
-
-Wed Dec 20 18:45:31 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * statistics.texi: Added documentation for the NPAR TESTS command.
-
-Thu Nov 30 22:20:10 2006 Ben Pfaff <blp@gnu.org>
-
- * statistics.texi: Document charts supported by FREQUENCIES.
- Fixes bug #18297. Thanks to Mohammed Babekir Elmalik Abdalmajid
- for reporting this bug.
-
-Tue Nov 28 17:33:31 WST 2006 <john@darrington.wattle.id.au>
-
- * get-commands.pl: Fixed generation of ni.texi, which was broken
- after commands.def was reorganised.
-
- * not-implemented.texi language.texi regression.texi
- statistics.texi: Added some indeces.
-
- * license.texi: Added information from GPL.
-
-Sat Oct 7 11:02:44 WST 2006 <john@darrington.wattle.id.au>
-
- * Added documentation for RANK.
-
-Tue May 2 10:43:06 WST 2006 <john@darrington.wattle.id.au>
-
- * data-file-format.texi: Updated information about the case_size
- value. Added description of Record Type 7, subtype 14.
-
-2006-04-28 Jason Stover <jhs@math.gcsu.edu>
-
- * regression.texi: Added description of the RESID and PRED
- keywords to the SAVE subcommand.
-
- * statistics.texi: Added REGRESSION node.
-
-2006-04-21 Jason Stover <jhs@math.gcsu.edu>
-
- * regression.texi: Initial description of the SAVE subcommand.
-
-Sun Apr 16 19:12:26 2006 Ben Pfaff <blp@gnu.org>
-
- Consistently write "file name" as two words, in accordance with
- the GNU standards.
-
-Wed Feb 15 21:53:12 2006 Ben Pfaff <blp@gnu.org>
-
- * data-file-format.texi: Fix values for "measure" in Auxiliary
- Variable Parameter Record. Thanks to Oliver Bock <oliver@g7.org>
- for reporting this bug. Fixes bug #15763.
-
-Tue Feb 14 21:34:06 2006 Ben Pfaff <blp@gnu.org>
-
- * data-file-format.texi: Fix description of "count" in Auxiliary
- Variable Parameter Record. Thanks to Oliver Bock <oliver@g7.org>
- for reporting this bug. Fixes bug #15756.
-
-Sun Sep 25 16:10:36 2005 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Make ni.texi a prereq for HTML output. Thanks to
- James R. Van Zandt <jrvz@comcast.net> for reporting the problem.
-
-Sun Jul 24 18:47:02 2005 Ben Pfaff <blp@gnu.org>
-
- * portable-file-format.texi: Describe author field.
-
-Sat May 7 17:26:39 WST 2005 John Darrington <john@darrington.wattle.id.au>
-
- * Makefile.am: Made ni.texi a nodist file
-
-Wed May 4 08:30:24 2005 Ben Pfaff <blp@gnu.org>
-
- * language.texi: Proofreading from Jason Stover
- <jstover@sdf.lonestar.org>.
-
-Tue May 3 16:22:29 WST 2005 John Darrington <john@darrington.wattle.id.au>
-
- * get-commands.pl: New file to generate ni.texi
-
- * not-implemented.texi Makefile.am: List of not implemented commands
- now generated from src/command.def
-
-Sun May 1 23:20:42 2005 Ben Pfaff <blp@gnu.org>
-
- * language.texi: Revised lots of text to catch up with changes
- that have been in for a long time, and for style.
-
-Sun May 1 15:17:42 WST 2005 John Darrington <john@darrington.wattle.id.au>
-
- * configuration.texi: Removed manpage(x) style references, because
- RMS doesn't like them.
-
-Wed Apr 27 07:44:57 WST 2005 John Darrington <john@darrington.wattle.id.au>
-
- * utilities.texi: Added the ECHO command.
-
-Fri Apr 15 18:35:42 2005 Ben Pfaff <blp@gnu.org>
-
- * pspp.texinfo: Change manual license to GNU FDL, pursuant to
- advice in maintainers' guide.
-
-Thur Apr 14 2005 John Darrington
-
- * variables.texi: Corrected the entry for VARIABLE LABELS
-
- * data-file-format.texi: Added documentation about the Long Variable
- Names record.
-
-Thu Mar 3 22:06:54 WST 2005 John Darrington <john@darrington.wattle.id.au>
-
- * expressions.texi: corrected some mismatched parentheses.
-
-Mon Feb 28 23:19:34 2005 Ben Pfaff <blp@gnu.org>
-
- * expressions.texi: Revise. Describe new functions.
-
-Sat Jan 8 16:46:28 2005 Ben Pfaff <blp@gnu.org>
-
- * credits.texi: Removed.
-
- * bugs.texi: Rewrote. Moved known bugs to savannah website.
-
- * not-implemented.texi: AGGREGATE and AUTORECODE are implemented.
-
-Tue Nov 16 13:18:53 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * statistics.texi Added documentation about the EXAMINE cmd
-
-Tue Nov 16 13:18:53 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * utilities.texi Added documentation for the PERMISSIONS command.
-
- * pspp.texinfo Makefile.am @included version.texi (Autogenerated) to
- keep the EDITION, VERSION and UPDATED flags up to date.
-
-Tue Nov 9 09:38:43 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * Made Makefile.am aware of pspp.texi dependencies
-
-Fri Nov 5 17:46:46 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * Added a note to the about SPLIT requiring adjacent cases.
-
-Sat Oct 30 17:32:53 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * Started this changelog
-
- * Removed the monolithic pspp.texi file and replaced with *.texi
- wrapped by a single pspp.texinfo file
-
- * Minor corrections to the documentation where I noticed it needed
- them.
--- /dev/null
+2008-05-15 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Make install-data-hook depend on yelp-check if the
+ GUI is configured.
+
+2008-05-08 John Darrington <john@darrington.wattle.id.au>
+
+ * automake.mk: Compress the info files, because later
+ versions of yelp seem to crash otherwise.
+
+2008-03-11 Jason Stover <jhs@math.gcsu.edu>
+
+ * regression.texi (REGRESSION): Fixed use of @dots in @math
+ command. Reported by John Darrington.
+
+2008-03-11 Jason Stover <jhs@math.gcsu.edu>
+
+ * regression.texi: Made more consistent use of math mode for
+ description of linear regression. Added reference to the mean of
+ the error terms being 0.
+
+2008-03-09 Jason Stover <jhs@math.gcsu.edu>
+
+ * regression.texi (REGRESSION): Removed references to subcommand EXPORT.
+
+2008-02-06 John Darrington <john@darrington.wattle.id.au>
+
+ * files.texi: Document the /BSIZE subcommand to the PSQL
+ reader.
+
+2008-02-04 John Darrington <john@darrington.wattle.id.au>
+
+ * files.texi data-io.texi: Document the GET DATA TYPE=PSQL
+ option. Thanks to Ben Pfaff for reviewing this text.
+
+
+2007-11-10 Ben Pfaff <blp@gnu.org>
+
+ * not-implemented.texi: Fix @include command so that it works
+ consistently, by using a file name relative to Makefile.am's
+ srcdir instead of relative to doc.
+
+2007-11-10 Ben Pfaff <blp@gnu.org>
+
+ Patch #6262: New developers guide (currently incomplete).
+
+ * automake.mk: Add definitions for new manual.
+
+ * pspp.texinfo: Now this is the PSPP Users Guide instead of just
+ the PSPP manual. Remove development chapters.
+
+ * pspp-dev.texinfo: New file.
+
+ * data-file-format.texi: Move to dev/system-file-format.texi.
+
+ * portable-file-format.texi: Move to dev/.
+
+ * q2c.texi: Move to dev/
+
+ * dev/concepts.texi: New file.
+
+ * dev/data.texi: New file.
+
+ * dev/intro.texi: New file.
+
+ * dev/output.texi: New file.
+
+ * dev/syntax.texi: New file.
+
+2007-10-19 John Darrington <john@darrington.wattle.id.au>
+
+ * statistics.texi: Changed /CONTRASTS to /CONTRAST in ONEWAY which
+ is what the command accepts.
+
+
+2007-07-28 John Darrington <john@darrington.wattle.id.au>
+
+ * statistics.texi: Made the documentation for T-TEST match
+ the behaviour.
+
+2007-07-17 Ben Pfaff <blp@gnu.org>
+
+ * get-commands.pl: Use strict and all warnings. Simplify
+ parsing. Add "@c End:" line to output to suppress Emacs warning.
+ From bug #19335. Reviewed by John Darrington.
+
+2007-06-05 Ben Pfaff <blp@gnu.org>
+
+ * Removed next, prev, up node names from @node lines, to make
+ structural changes to the manual easier. (These node names are
+ not needed by makeinfo.)
+
+2007-03-31 John Darrington <john@darrington.wattle.id.au>
+
+ * transformation.texi: SORT CASES: elaborated on the (D) (A) flags.
+
+2007-03-01 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Fix "make distcheck" by distributing doc/ni.texi,
+ even though it's generated. Reviewed by John Darrington.
+ (doc_pspp_TEXINFOS): Add doc/ni.texi.
+ (nodist_doc_pspp_TEXINFOS): Remove.
+ (am__TEXINFO_TEX_DIR) Removed (was just a kluge anyhow).
+ ($(INFO_DEPS)): Removed.
+ ($(HTML_DEPS)): Removed.
+ (CLEANFILES): Removed.
+
+Wed Dec 20 18:45:31 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * statistics.texi: Added documentation for the NPAR TESTS command.
+
+Thu Nov 30 22:20:10 2006 Ben Pfaff <blp@gnu.org>
+
+ * statistics.texi: Document charts supported by FREQUENCIES.
+ Fixes bug #18297. Thanks to Mohammed Babekir Elmalik Abdalmajid
+ for reporting this bug.
+
+Tue Nov 28 17:33:31 WST 2006 <john@darrington.wattle.id.au>
+
+ * get-commands.pl: Fixed generation of ni.texi, which was broken
+ after commands.def was reorganised.
+
+ * not-implemented.texi language.texi regression.texi
+ statistics.texi: Added some indeces.
+
+ * license.texi: Added information from GPL.
+
+Sat Oct 7 11:02:44 WST 2006 <john@darrington.wattle.id.au>
+
+ * Added documentation for RANK.
+
+Tue May 2 10:43:06 WST 2006 <john@darrington.wattle.id.au>
+
+ * data-file-format.texi: Updated information about the case_size
+ value. Added description of Record Type 7, subtype 14.
+
+2006-04-28 Jason Stover <jhs@math.gcsu.edu>
+
+ * regression.texi: Added description of the RESID and PRED
+ keywords to the SAVE subcommand.
+
+ * statistics.texi: Added REGRESSION node.
+
+2006-04-21 Jason Stover <jhs@math.gcsu.edu>
+
+ * regression.texi: Initial description of the SAVE subcommand.
+
+Sun Apr 16 19:12:26 2006 Ben Pfaff <blp@gnu.org>
+
+ Consistently write "file name" as two words, in accordance with
+ the GNU standards.
+
+Wed Feb 15 21:53:12 2006 Ben Pfaff <blp@gnu.org>
+
+ * data-file-format.texi: Fix values for "measure" in Auxiliary
+ Variable Parameter Record. Thanks to Oliver Bock <oliver@g7.org>
+ for reporting this bug. Fixes bug #15763.
+
+Tue Feb 14 21:34:06 2006 Ben Pfaff <blp@gnu.org>
+
+ * data-file-format.texi: Fix description of "count" in Auxiliary
+ Variable Parameter Record. Thanks to Oliver Bock <oliver@g7.org>
+ for reporting this bug. Fixes bug #15756.
+
+Sun Sep 25 16:10:36 2005 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Make ni.texi a prereq for HTML output. Thanks to
+ James R. Van Zandt <jrvz@comcast.net> for reporting the problem.
+
+Sun Jul 24 18:47:02 2005 Ben Pfaff <blp@gnu.org>
+
+ * portable-file-format.texi: Describe author field.
+
+Sat May 7 17:26:39 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * Makefile.am: Made ni.texi a nodist file
+
+Wed May 4 08:30:24 2005 Ben Pfaff <blp@gnu.org>
+
+ * language.texi: Proofreading from Jason Stover
+ <jstover@sdf.lonestar.org>.
+
+Tue May 3 16:22:29 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * get-commands.pl: New file to generate ni.texi
+
+ * not-implemented.texi Makefile.am: List of not implemented commands
+ now generated from src/command.def
+
+Sun May 1 23:20:42 2005 Ben Pfaff <blp@gnu.org>
+
+ * language.texi: Revised lots of text to catch up with changes
+ that have been in for a long time, and for style.
+
+Sun May 1 15:17:42 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * configuration.texi: Removed manpage(x) style references, because
+ RMS doesn't like them.
+
+Wed Apr 27 07:44:57 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * utilities.texi: Added the ECHO command.
+
+Fri Apr 15 18:35:42 2005 Ben Pfaff <blp@gnu.org>
+
+ * pspp.texinfo: Change manual license to GNU FDL, pursuant to
+ advice in maintainers' guide.
+
+Thur Apr 14 2005 John Darrington
+
+ * variables.texi: Corrected the entry for VARIABLE LABELS
+
+ * data-file-format.texi: Added documentation about the Long Variable
+ Names record.
+
+Thu Mar 3 22:06:54 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * expressions.texi: corrected some mismatched parentheses.
+
+Mon Feb 28 23:19:34 2005 Ben Pfaff <blp@gnu.org>
+
+ * expressions.texi: Revise. Describe new functions.
+
+Sat Jan 8 16:46:28 2005 Ben Pfaff <blp@gnu.org>
+
+ * credits.texi: Removed.
+
+ * bugs.texi: Rewrote. Moved known bugs to savannah website.
+
+ * not-implemented.texi: AGGREGATE and AUTORECODE are implemented.
+
+Tue Nov 16 13:18:53 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * statistics.texi Added documentation about the EXAMINE cmd
+
+Tue Nov 16 13:18:53 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * utilities.texi Added documentation for the PERMISSIONS command.
+
+ * pspp.texinfo Makefile.am @included version.texi (Autogenerated) to
+ keep the EDITION, VERSION and UPDATED flags up to date.
+
+Tue Nov 9 09:38:43 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * Made Makefile.am aware of pspp.texi dependencies
+
+Fri Nov 5 17:46:46 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * Added a note to the about SPLIT requiring adjacent cases.
+
+Sat Oct 30 17:32:53 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * Started this changelog
+
+ * Removed the monolithic pspp.texi file and replaced with *.texi
+ wrapped by a single pspp.texinfo file
+
+ * Minor corrections to the documentation where I noticed it needed
+ them.
uninstall-hook::
rm -f $(DESTDIR)$(infodir)/pspp.info-[0-9].gz
rm -f $(DESTDIR)$(infodir)/pspp.info.gz
+
+EXTRA_DIST += doc/OChangeLog
+++ /dev/null
-Tue Apr 4 20:19:48 2006 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Add missing \ to definition.
-
-Sun Aug 9 11:16:13 1998 Ben Pfaff <blp@gnu.org>
-
- * descriptives.stat: Renamed descript.stat.
-
-Sat Aug 8 00:28:24 1998 Ben Pfaff <blp@gnu.org>
-
- * New directory.
-
- * descriptives.stat: New file.
-
-----------------------------------------------------------------------
-Local Variables:
-mode: change-log
-version-control: never
-End:
--- /dev/null
+Tue Apr 4 20:19:48 2006 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Add missing \ to definition.
+
+Sun Aug 9 11:16:13 1998 Ben Pfaff <blp@gnu.org>
+
+ * descriptives.stat: Renamed descript.stat.
+
+Sat Aug 8 00:28:24 1998 Ben Pfaff <blp@gnu.org>
+
+ * New directory.
+
+ * descriptives.stat: New file.
+
+----------------------------------------------------------------------
+Local Variables:
+mode: change-log
+version-control: never
+End:
examples/descript.stat \
examples/regress.stat \
examples/regress_categorical.stat
+
+EXTRA_DIST += examples/OChangeLog
+++ /dev/null
-2007-11-21 John Darrington <john@darrington.wattle.id.au>
-
- * icons/22x22/psppire-acr.png icons/16x16/psppire-acr.png: New files.
- * automake.mk: Install the new icons.
-
-2007-10-19 John Darrington <john@darrington.wattle.id.au>
-
- * acr.c (new file)
- * psppire.xml: Added entry for PsppireAcr widget
-
-2007-09-26 Ben Pfaff <blp@gnu.org>
-
- * automake.mk (libglade_psppire_la_CFLAGS): Enable VPATH build by
- using $(top_srcdir) in -I directive.
-
-4/4/2007 John Darrington <john@darrington.wattle.id.au>
-
- * Seperated psppire-buttonbox into psppire-vbuttonbox and psppire-buttonbox
-
-Sat Mar 31 07:09:33 WST 2007 John Darrington <john@darrington.wattle.id.au>
-
- * Added icons directory and its contents.
-
- * Re-wrote psppire.xml to work with glade 3.2.0, and to know about the
- keypad widget.
--- /dev/null
+2007-11-21 John Darrington <john@darrington.wattle.id.au>
+
+ * icons/22x22/psppire-acr.png icons/16x16/psppire-acr.png: New files.
+ * automake.mk: Install the new icons.
+
+2007-10-19 John Darrington <john@darrington.wattle.id.au>
+
+ * acr.c (new file)
+ * psppire.xml: Added entry for PsppireAcr widget
+
+2007-09-26 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk (libglade_psppire_la_CFLAGS): Enable VPATH build by
+ using $(top_srcdir) in -I directive.
+
+4/4/2007 John Darrington <john@darrington.wattle.id.au>
+
+ * Seperated psppire-buttonbox into psppire-vbuttonbox and psppire-buttonbox
+
+Sat Mar 31 07:09:33 WST 2007 John Darrington <john@darrington.wattle.id.au>
+
+ * Added icons directory and its contents.
+
+ * Re-wrote psppire.xml to work with glade 3.2.0, and to know about the
+ keypad widget.
-I $(top_srcdir)/src/ui/gui -DDEBUGGING
libglade_psppire_la_LIBADD = gl/libgl.la
+
+EXTRA_DIST += glade/OChangeLog
+++ /dev/null
-2008/07/20 John Darrington <john@darrington.wattle.id.au>
-
- * Removed gsl-extras. Functionality now
- available in gsl.
-
-Sun Jul 31 11:29:04 2005 Ben Pfaff <blp@gnu.org>
-
- * misc/: Removed in favor of gnulib.
-
- * Makefile.am: (SUBDIRS) Removed misc.
-
-Wed Mar 9 09:53:50 2005 Ben Pfaff <blp@gnu.org>
-
- * gsl-extras/: New directory.
-
- * Makefile.am: (SUBDIRS) Add gsl-extras.
-
-Mon Feb 28 23:20:05 2005 Ben Pfaff <blp@gnu.org>
-
- * julcal/: Removed directory.
-
- * Makefile.am: (SUBDIRS) Removed julcal.
- (DIST_SUBDIRS) Removed.
-
-Sun Jan 2 21:31:48 2000 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (SUBDIRS) Only include gmp if libgmp not installed
- on this system already.
-
-Sun May 31 00:55:51 1998 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (SUBDIRS) Add gmp.
-
- * gmp/: New subdirectory, containing a subset of GNU libgmp2 just
- big enough to support mpf_init_set_d(), mpf_get_str(), and
- mpf_clear().
-
-Fri Apr 24 12:52:07 1998 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (SUBDIRS) Remove avllib.
-
- * avllib/: Removed.
-
-Wed Dec 24 22:36:50 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (SUBDIRS) Add dcdflib.
-
- * dcdflib: New subdirectory.
-
-----------------------------------------------------------------------
-Local Variables:
-mode: change-log
-version-control: never
-End:
--- /dev/null
+2008/07/20 John Darrington <john@darrington.wattle.id.au>
+
+ * Removed gsl-extras. Functionality now
+ available in gsl.
+
+Sun Jul 31 11:29:04 2005 Ben Pfaff <blp@gnu.org>
+
+ * misc/: Removed in favor of gnulib.
+
+ * Makefile.am: (SUBDIRS) Removed misc.
+
+Wed Mar 9 09:53:50 2005 Ben Pfaff <blp@gnu.org>
+
+ * gsl-extras/: New directory.
+
+ * Makefile.am: (SUBDIRS) Add gsl-extras.
+
+Mon Feb 28 23:20:05 2005 Ben Pfaff <blp@gnu.org>
+
+ * julcal/: Removed directory.
+
+ * Makefile.am: (SUBDIRS) Removed julcal.
+ (DIST_SUBDIRS) Removed.
+
+Sun Jan 2 21:31:48 2000 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (SUBDIRS) Only include gmp if libgmp not installed
+ on this system already.
+
+Sun May 31 00:55:51 1998 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (SUBDIRS) Add gmp.
+
+ * gmp/: New subdirectory, containing a subset of GNU libgmp2 just
+ big enough to support mpf_init_set_d(), mpf_get_str(), and
+ mpf_clear().
+
+Fri Apr 24 12:52:07 1998 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (SUBDIRS) Remove avllib.
+
+ * avllib/: Removed.
+
+Wed Dec 24 22:36:50 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (SUBDIRS) Add dcdflib.
+
+ * dcdflib: New subdirectory.
+
+----------------------------------------------------------------------
+Local Variables:
+mode: change-log
+version-control: never
+End:
if WITHGUI
include $(top_srcdir)/lib/gtksheet/automake.mk
endif
+
+EXTRA_DIST += lib/OChangeLog
+++ /dev/null
-2008-05-08 Ben Pfaff <blp@gnu.org>
-
- Patch #6506. Reviewed by John Darrington.
-
- * gtksheet.c (gtk_sheet_unrealize): Don't call gtk_widget_unparent
- on sheet->button if it's null.
-
-2008-05-06 Ben Pfaff <blp@gnu.org>
-
- * gtksheet.c (gtk_sheet_dispose): Set the sheet's entry_container
- and button members to NULL after unref'ing them, so that a later
- call to gtk_sheet_for_all will not try to dereference a dangling
- pointer.
-
-2008-03-06 John Darrington <john@darrington.wattle.id.au>
-
- * gsheet-row-iface.c gsheet-row-iface.h: Delete unused, unneccesary
- gpointer variable from the interface.
-
- * gtksheet.c: Update to match new gsheet-row-iface
-
-2008-02-27 John Darrington <john@darrington.wattle.id.au>
- * gtksheet.c gtksheet.h: Corrected some leaks and other problems
- related to de-allocating the sheet.
-
-2008-02-27 John Darrington <john@darrington.wattle.id.au>
- * gtksheet.c: (gtk_sheet_expose) Don't queue a redraw on the entry
- widget. Fixes bug #21073
-
-2008-02-20 John Darrington <john@darrington.wattle.id.au>
-
- * gtksheet.c gtksheet.h: Removed some unused signals.
- Made the models properties of the widget.
-
-2008-02-08 John Darrington <john@darrington.wattle.id.au>
-
- * gtksheet.c: Removed the sheet_locked feature, which we never
- used, and interfered with the editability of the entry widget.
-
- * gtksheet.c: Add one to the row to which we scroll. Seems like
- the best way to cope with granularity problems.
-
-21 Septempber 2007 John Darrington <john@darrington.wattle.id.au>
-
- * gtksheet.c (range_update_callback): Scroll to cell 0,0 if the
- current position is outside the model's range.
-
-24 July 2007 John Darrington <john@darrington.wattle.id.au>
-
- * gtksheet.c gtksheet.h: Removed the `clip' feature, which IMO
- is a croc, and we're unlikely to use. In its place, added a primary
- selection which supports text and html targets.
-
-16 July 2007 John Darrington <john@darrington.wattle.id.au>
-
- * gtksheet.c gtksheet.h: Removed some legacy functions called from
- gtk_sheet_finalize which caused unnecessary delays when shutting down.
-
-12 July 2007 John Darrington <john@darrington.wattle.id.au>
-
- * gtksheet.c gtksheet.h: Removed view member and replaced with
- function call. Removed hadjustment_changed and vadjustment_changed
- functions which did nothing. Added some whitespace arount !=
- operators.
-
-09 July 2007 John Darrington <john@darrington.wattle.id.au>
-
- * gtksheet.c gtksheet.h (gtk_sheet_get_active_cell): Allowed row,
- column to be NULL.
-
-07 July 2007 John Darrington <john@darrington.wattle.id.au>
-
- * gsheet-column-iface.c gsheet-column-iface.h gsheet-row-iface.c
- gsheet-row-iface.h gtksheet.c gtksheet.h: Added a "subtitle"
- feature on row/column titles, which shows tooltip-like popups.
-
-03 July 2007 John Darrington <john@darrington.wattle.id.au>
-
- * gtksheet.c gtksheet.h: Removed the autoscroll-on-select feature
- that was causing us grief.
-
-28 June 2007 John Darrington <john@darrington.wattle.id.au>
-
- * gtksheet.c: Removed some features that we dont use, to get better
- speed.
-
-Sat Feb 17 17:36:56 2007 Ben Pfaff <blp@gnu.org>
-
- * gsheet-column-iface.c gsheet-hetero-column.c gsheet-row-iface.c
- gsheet-uniform-column.c gsheet-uniform-row.c gsheetmodel.c
- gtkextra-marshal.c gtkextra.c gtkiconlist.c gtkitementry.c
- gtksheet.c: Add "#include <config.h>".
-
-Mon Jun 19 18:03:21 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * gsheet-column-iface.c gsheet-column-iface.h
- gsheet-hetero-column.c gsheet-row-iface.c gsheet-row-iface.h
- gsheet-uniform-column.c gsheet-uniform-row.c gtksheet.c
- gtksheet.h: Fixed some warnings. Corrected errors updating
- row/column titles
-
-Di Mai 30 19:51:19 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * gtksheet.c gtksheet.h: constness. Removed dependence on glib2.10
-
-Sat May 27 16:29:36 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * gtksheet.c: Removed call to gtk_entry_set_text, which caused warnings
- and was unnecessary.
-
-Thu May 25 17:58:51 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * gsheet-column-iface.c gsheet-column-iface.h gsheet-hetero-column.c
- gsheet-row-iface.c gsheet-row-iface.h gsheet-uniform-row.c
- gtksheet-extra.h gtksheet.c: Plugged memory leaks. Rationalised the way
- that GtkSheetButtons are created.
-
-Sat May 20 21:02:03 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * gsheetmodel.c gsheetmodel.h: Added columns-inserted and columns-deleted
- signals. Added g_sheet_get_{row,column}_count functions.
-
- * gtksheet.c gtksheet.h: Allowed -1 to be passed to
- gtk_sheet_set_active_cell to indicate no active cell.
-
-Mon May 15 16:10:49 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * gtksheet.c: Removed code which rendered the title buttons a second
- time. Cut and Paste error ?
-
-Sat May 13 07:58:32 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * gsheetmodel.c gsheetmodel.h gtksheet.c gtksheeet.h: Added
- free_strings flag to tell the sheet whether to free the string
- data passed from the model.
-
-Thu May 11 22:20:04 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * gtksheet.c, gtksheet.h: Fixed broken deallocation of sheet->pixmap.
-
-Thu May 4 17:55:48 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * gtksheet.c: Added callback on inserted rows.
-
-Sat Jan 28 08:48:08 2006 UTC John Darrington <john@darrington.wattle.id.au>
-
- * Separated the data out of the GtkSheet. The gtksheet should now be
- regarded as a way of looking into the data. The data is represented by a
- GSheetModel and the rows and columns by GSheetRow and GSheetColumn.
--- /dev/null
+2008-05-08 Ben Pfaff <blp@gnu.org>
+
+ Patch #6506. Reviewed by John Darrington.
+
+ * gtksheet.c (gtk_sheet_unrealize): Don't call gtk_widget_unparent
+ on sheet->button if it's null.
+
+2008-05-06 Ben Pfaff <blp@gnu.org>
+
+ * gtksheet.c (gtk_sheet_dispose): Set the sheet's entry_container
+ and button members to NULL after unref'ing them, so that a later
+ call to gtk_sheet_for_all will not try to dereference a dangling
+ pointer.
+
+2008-03-06 John Darrington <john@darrington.wattle.id.au>
+
+ * gsheet-row-iface.c gsheet-row-iface.h: Delete unused, unneccesary
+ gpointer variable from the interface.
+
+ * gtksheet.c: Update to match new gsheet-row-iface
+
+2008-02-27 John Darrington <john@darrington.wattle.id.au>
+ * gtksheet.c gtksheet.h: Corrected some leaks and other problems
+ related to de-allocating the sheet.
+
+2008-02-27 John Darrington <john@darrington.wattle.id.au>
+ * gtksheet.c: (gtk_sheet_expose) Don't queue a redraw on the entry
+ widget. Fixes bug #21073
+
+2008-02-20 John Darrington <john@darrington.wattle.id.au>
+
+ * gtksheet.c gtksheet.h: Removed some unused signals.
+ Made the models properties of the widget.
+
+2008-02-08 John Darrington <john@darrington.wattle.id.au>
+
+ * gtksheet.c: Removed the sheet_locked feature, which we never
+ used, and interfered with the editability of the entry widget.
+
+ * gtksheet.c: Add one to the row to which we scroll. Seems like
+ the best way to cope with granularity problems.
+
+21 Septempber 2007 John Darrington <john@darrington.wattle.id.au>
+
+ * gtksheet.c (range_update_callback): Scroll to cell 0,0 if the
+ current position is outside the model's range.
+
+24 July 2007 John Darrington <john@darrington.wattle.id.au>
+
+ * gtksheet.c gtksheet.h: Removed the `clip' feature, which IMO
+ is a croc, and we're unlikely to use. In its place, added a primary
+ selection which supports text and html targets.
+
+16 July 2007 John Darrington <john@darrington.wattle.id.au>
+
+ * gtksheet.c gtksheet.h: Removed some legacy functions called from
+ gtk_sheet_finalize which caused unnecessary delays when shutting down.
+
+12 July 2007 John Darrington <john@darrington.wattle.id.au>
+
+ * gtksheet.c gtksheet.h: Removed view member and replaced with
+ function call. Removed hadjustment_changed and vadjustment_changed
+ functions which did nothing. Added some whitespace arount !=
+ operators.
+
+09 July 2007 John Darrington <john@darrington.wattle.id.au>
+
+ * gtksheet.c gtksheet.h (gtk_sheet_get_active_cell): Allowed row,
+ column to be NULL.
+
+07 July 2007 John Darrington <john@darrington.wattle.id.au>
+
+ * gsheet-column-iface.c gsheet-column-iface.h gsheet-row-iface.c
+ gsheet-row-iface.h gtksheet.c gtksheet.h: Added a "subtitle"
+ feature on row/column titles, which shows tooltip-like popups.
+
+03 July 2007 John Darrington <john@darrington.wattle.id.au>
+
+ * gtksheet.c gtksheet.h: Removed the autoscroll-on-select feature
+ that was causing us grief.
+
+28 June 2007 John Darrington <john@darrington.wattle.id.au>
+
+ * gtksheet.c: Removed some features that we dont use, to get better
+ speed.
+
+Sat Feb 17 17:36:56 2007 Ben Pfaff <blp@gnu.org>
+
+ * gsheet-column-iface.c gsheet-hetero-column.c gsheet-row-iface.c
+ gsheet-uniform-column.c gsheet-uniform-row.c gsheetmodel.c
+ gtkextra-marshal.c gtkextra.c gtkiconlist.c gtkitementry.c
+ gtksheet.c: Add "#include <config.h>".
+
+Mon Jun 19 18:03:21 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * gsheet-column-iface.c gsheet-column-iface.h
+ gsheet-hetero-column.c gsheet-row-iface.c gsheet-row-iface.h
+ gsheet-uniform-column.c gsheet-uniform-row.c gtksheet.c
+ gtksheet.h: Fixed some warnings. Corrected errors updating
+ row/column titles
+
+Di Mai 30 19:51:19 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * gtksheet.c gtksheet.h: constness. Removed dependence on glib2.10
+
+Sat May 27 16:29:36 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * gtksheet.c: Removed call to gtk_entry_set_text, which caused warnings
+ and was unnecessary.
+
+Thu May 25 17:58:51 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * gsheet-column-iface.c gsheet-column-iface.h gsheet-hetero-column.c
+ gsheet-row-iface.c gsheet-row-iface.h gsheet-uniform-row.c
+ gtksheet-extra.h gtksheet.c: Plugged memory leaks. Rationalised the way
+ that GtkSheetButtons are created.
+
+Sat May 20 21:02:03 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * gsheetmodel.c gsheetmodel.h: Added columns-inserted and columns-deleted
+ signals. Added g_sheet_get_{row,column}_count functions.
+
+ * gtksheet.c gtksheet.h: Allowed -1 to be passed to
+ gtk_sheet_set_active_cell to indicate no active cell.
+
+Mon May 15 16:10:49 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * gtksheet.c: Removed code which rendered the title buttons a second
+ time. Cut and Paste error ?
+
+Sat May 13 07:58:32 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * gsheetmodel.c gsheetmodel.h gtksheet.c gtksheeet.h: Added
+ free_strings flag to tell the sheet whether to free the string
+ data passed from the model.
+
+Thu May 11 22:20:04 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * gtksheet.c, gtksheet.h: Fixed broken deallocation of sheet->pixmap.
+
+Thu May 4 17:55:48 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * gtksheet.c: Added callback on inserted rows.
+
+Sat Jan 28 08:48:08 2006 UTC John Darrington <john@darrington.wattle.id.au>
+
+ * Separated the data out of the GtkSheet. The gtksheet should now be
+ regarded as a way of looking into the data. The data is represented by a
+ GSheetModel and the rows and columns by GSheetRow and GSheetColumn.
lib/gtksheet/gtkitementry.c \
lib/gtksheet/gtksheet.c \
lib/gtksheet/gtksheet.h
+
+EXTRA_DIST += lib/gtksheet/OChangeLog
+++ /dev/null
-Sun Jan 9 00:57 2006 Jason Stover <jason@sakla.net>
-
- * pspp_linreg.h: Altered the coefficient structure to include
- variable/value pairs.
-
- * coefficient.c: Added functions to handle the matching between
- model coefficients and their corresponding variables and values.
-
- * linreg.c: (pspp_linreg_cache_free) Added pspp_linreg_coeff_free ()
- to free coefficient structures.
-
-Sun Oct 23 13:46:56 2005 Ben Pfaff <blp@gnu.org>
-
- * linreg.c: (pspp_linreg) Removed unused variable `mse'.
-
-----------------------------------------------------------------------
-Local Variables:
-mode: change-log
-version-control: never
-End:
--- /dev/null
+Sun Jan 9 00:57 2006 Jason Stover <jason@sakla.net>
+
+ * pspp_linreg.h: Altered the coefficient structure to include
+ variable/value pairs.
+
+ * coefficient.c: Added functions to handle the matching between
+ model coefficients and their corresponding variables and values.
+
+ * linreg.c: (pspp_linreg_cache_free) Added pspp_linreg_coeff_free ()
+ to free coefficient structures.
+
+Sun Oct 23 13:46:56 2005 Ben Pfaff <blp@gnu.org>
+
+ * linreg.c: (pspp_linreg) Removed unused variable `mse'.
+
+----------------------------------------------------------------------
+Local Variables:
+mode: change-log
+version-control: never
+End:
lib_linreg_liblinreg_a_SOURCES = \
lib/linreg/sweep.c lib/linreg/sweep.h
+
+EXTRA_DIST += lib/linreg/OChangeLog
+++ /dev/null
-2007-11-03 John Darrington <john@darrington.wattle.id.au>
-
- * gnumeric-reader.c gnumeric-reader.h: New files.
-
-Thu May 4 21:47:48 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming procedure execution. In this phase, move
- procedure.c and procedure.h from src to src/data. Update
- makefiles and #includes accordingly.
-
- * automake.mk: Remove special rule for src/procedure.o.
-
- * procedure.c: Moved to src/data.
-
- * procedure.h: Moved to src/data.
-
-Wed May 3 22:24:34 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming procedure execution. In this phase, get rid of
- many global variables, consolidating procedure execution in
- procedure.c. Encapsulate transformations in new "struct
- trns_chain". Also, change implementation of N OF CASES, FILTER,
- and PROCESS IF from special cases to transformations.
-
- * procedure.c: (global var vfm_source) Make static. Changed
- external references to use in_input_program(), proc_set_source(),
- or proc_capture_output() instead.
- (global var vfm_sink) Make static. Changed external references to
- use proc_set_sink() instead.
- (global var default_dict) Move here from data/dictionary.c.
- (static var permanent_trns_chain) New var.
- (static var temp_dict) Renamed permanent_dict, updated references.
- (static var temporary_trns_chain) New var.
- (static var cur_trns_chain) New var.
- (static var in_procedure) Removed.
- (global var t_trns) Removed.
- (global var n_trns) Removed.
- (global var m_trns) Removed.
- (global var f_trns) Removed.
- (procedure) Even if there's "nothing to do" we need to clear
- PROCESS IF, N OF CASES, vector state. (This should be
- abstracted.)
- (multipass_callback) New function.
- (multipass_procedure) New function.
- (open_active_file) Add N OF CASES, FILTER, PROCESS IF
- transformations. Finalize transformations. No need to call
- ctl_stack_clear() anymore because finalizers will do that.
- (write_case) Simplify and rewrite.
- (execute_transformations) Removed.
- (filter_case) Removed.
- (close_active_file) Use proc_cancel_temporary_transformations().
- No need to clear PROCESS IF, N OF CASES here anymore because
- helpers do that.
- (multipass_procedure_with_splits) Keep track of success.
- (multipass_split_callback) Ditto.
- (multipass_split_output) Ditto.
- (discard_variables) No need to call ctl_stack_clear() anymore
- because finalizers will do that.
- (proc_capture_transformations) New function.
- (add_transformation) Rewrite in terms of trns_chain_append().
- (add_transformation_with_finalizer) New function.
- (next_transformation) Rewrite in terms of trns_chain_next().
- (proc_in_temporary_transformations) New function.
- (proc_start_temporary_transformations) New function.
- (proc_make_temporary_transformations_permanent) New function.
- (proc_cancel_temporary_transformations) New function.
- (cancel_transformations) Rename proc_cancel_all_transformations(),
- rewrite in terms of trns_chain_destroy().
- (proc_init) New function.
- (proc_done) New function.
- (proc_set_sink) New function.
- (proc_set_source) New function.
- (proc_has_source) New function.
- (proc_capture_output) New function.
- (add_case_limit_trns) New function.
- (case_limit_trns_proc) New function.
- (case_limit_trns_free) New function.
- (add_filter_trns) New function.
- (filter_trns_proc) New function.
- (add_process_if_trns) New function.
- (process_if_trns_proc) New function.
- (process_if_trns_free) New function.
-
-Wed Apr 26 20:00:00 2006 Ben Pfaff <blp@gnu.org>
-
- * procedure.c (create_trns_case): Fix inverted decision on whether
- numeric values should be initialized to 0 or SYSMIS.
-
-Wed Apr 26 19:48:52 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming procedure execution. In this phase, assert
- that add_transformation() is not called during procedure
- execution. Thanks to John Darrington for the suggestion.
-
- * procedure.c: (static var in_procedure) New var.
- (internal_procedure) Get rid of recursive_call local var and
- logic.
- (open_active_file) Set in_procedure and make sure it wasn't
- already set.
- (close_active_file) Reset in_procedure and make sure it was
- already set.
- (add_transformation) Make sure we're not in a procedure.
-
-Wed Apr 26 19:33:52 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming procedure execution. In this phase, break
- procedure.c into multiple files.
-
- * procedure.c (vfm_last_invocation): Rename
- time_of_last_procedure(). Update all references.
- (struct storage_stream_info) Move to data/storage-stream.c.
- (storage_sink_open) Ditto.
- (destroy_storage_stream_info) Ditto.
- (storage_sink_write) Ditto.
- (storage_sink_destroy) Ditto.
- (storage_sink_make_source) Ditto.
- (var storage_sink_class) Ditto.
- (storage_source_count) Ditto.
- (storage_source_read) Ditto.
- (storage_source_destroy) Ditto.
- (storage_source_class) Ditto.
- (storage_source_get_casefile) Ditto.
- (storage_source_create) Ditto.
- (null_sink_class) Move to data/case-sink.c.
- (create_case_source) Move to data/case-source.c.
- (free_case_source) Ditto.
- (case_source_is_class) Ditto.
- (create_case_sink) Move to data/case-sink.c.
- (free_case_sink) Ditto.
-
- * procedure.h: (struct case_source) Move to data/case-source.h.
- (struct case_source_class) Ditto.
- (struct case_sink) Move to data/case-sink.h.
- (struct case_sink_class) Ditto.
-
-Thu Apr 27 09:28:25 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * automake.mk: Removed explicit dependencies for message.o, since
- that module no longer exists.
-
-Wed Apr 26 15:29:45 2006 Ben Pfaff <blp@gnu.org>
-
- Start reforming procedure execution. In this phase, get rid of
- function prototypes for never-defined functions.
-
- * procedure.h: Get rid of function prototypes for never-defined
- functions.
-
-Wed Apr 26 12:58:46 2006 Ben Pfaff <blp@gnu.org>
-
- Improve the way we handle the various parsing "states". Until now
- we've hard-coded the state transitions in the command definition
- file, but that's error-prone and, worse, it's redundant--we can
- figure out what state we're in anyhow. We can cleanly handle
- INPUT PROGRAM and FILE TYPE with a nested command-processing loop.
-
- * procedure.c (case_source_is_complex): Removed.
- (discard_variables) No need to set pgm_state anymore.
-
-Tue Apr 25 11:06:49 2006 Ben Pfaff <blp@gnu.org>
-
- Finish reforming error message support. In this phase, move
- message.c into libpspp.
-
- * message.c: Move to libpspp.
-
-Tue Apr 25 10:47:37 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming error message support. In this phase, drop
- actual message printing from core code, substituting a callback,
- and add the callback to each UI. Also, move verbose_msg() into
- its own module.
-
- * message.c: (var err_error_count) Renamed error_count and moved
- to ui/terminal/msg-ui.c.
- (var err_warning_count) Renamed warning_count and moved to
- ui/terminal/msg-ui.c.
- (err_check_count) Renamed check_msg_count() and moved to
- ui/terminal/msg-ui.c.
- (dump_message) Rewrote to take stream instead of function pointer
- and moved to ui/terminal/msg-ui.c.
- (msg_emit) Moved its guts to ui/terminal/msg-ui.c as handle_msg()
- and rewrote to just pass message to callback.
-
- (var err_verbosity) Renamed "verbosity" and moved to
- libpspp/verbose-msg.c.
- (verbose_msg) Moved to libpspp/verbose-msg.c.
-
- (var err_already_flagged) Removed.
- (puts_stdout) Removed.
-
- (var msg_handler) New static variable.
- (msg_init) New function.
- (msg_get_command_name) New function.
-
-Mon Apr 24 17:40:08 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming error message support. In this phase, rename
- all the message functions and types to start with "msg", except
- for the ones that will be moving to other modules anyway.
-
- All references to the identifiers below were updated likewise.
-
- * message.c: (err_done) Renamed msg_done().
- (err_push_file_locator) Renamed msg_push_msg_locator().
- (err_pop_file_locator) Renamed msg_pop_msg_locator().
- (err_location) Renamed msg_location().
- (err_set_command_name) Renamed msg_set_command_name().
-
-Mon Apr 24 14:11:33 2006 Ben Pfaff <blp@gnu.org>
-
- * message.c: Use exit.h from gnulib instead of checking for and
- defining EXIT_SUCCESS and EXIT_FAILURE by hand.
-
-Sun Apr 23 22:00:23 2006 Ben Pfaff <blp@gnu.org>
-
- 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.
-
- * message.c: (tmsg) Removed.
- (msg) Use err_msg() instead of err_vmsg(). Format message
- ourselves.
- (err_vmsg) Renamed err_msg(). Changed interface, dropping message
- and va_list args which are now in the error struct.
-
-Sun Apr 23 20:35:28 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming error message support.
-
- * message.c: Use linebreak module from gnulib instead of home-brew
- line breaking.
- (puts_stdout) Rewrote.
- (dump_message) Rewrote. Changed interface and updated all callers.
- (compulsory_break) Removed.
- (char_is_break) Removed.
- (break_before) Removed.
- (break_after) Removed.
- (macro BREAK_LONG_WORD) Removed.
-
-Sun Apr 16 20:41:10 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming error message support. In this phase, we
- divide the classification of messages along "category" and
- "severity" axes.
-
- * message.c: (err_vmsg) Rewrite to deal with categories and
- severities in a straightforward manner instead of mixing them into
- classes.
- [0] (puts_stderr) Removed (dead code).
- (msg) Changed first argument from `int' to `enum msg_class'.
- (tmsg) Ditto.
-
-Sun Apr 16 18:53:12 2006 Ben Pfaff <blp@gnu.org>
-
- GNU standards require "file name" instead of "filename" in
- documentation. It's nice for our code to follow the convention
- too.
-
- Basically did search and replace in the whole source tree. Major
- changes in function names or struct member names have their own
- change log entries.
-
-Sun Apr 16 15:58:56 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming error message support. In this phase, we get
- rid of VM() and the other msg() support for "verbosity", replacing
- it by a new function verbose_msg().
-
- * message.c: (verbose_msg) New function.
- (err_vmsg) Remove support for verbosity levels.
-
-Sun Apr 16 11:46:51 2006 Ben Pfaff <blp@gnu.org>
-
- Start reforming error message support. In this phase, we get rid
- of "installation errors" and change all uses of msg() in the
- output drivers to uses of error() or error_at_line().
-
- * message.c: (err_vmsg) Get rid of IE, IS support.
-
-Sat Mar 11 14:17:47 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * automake.mk: Changed the pattern specific AM_CPPFLAGS to two target
- specific ones. Eventually there will be none at all.
-
- * automake.mk: Moved the pspp binary to ui/terminal
-
-Sat Mar 4 12:59:08 2006 Ben Pfaff <blp@gnu.org>
-
- * In many source files, #include "compiler.h" to get GCC attribute
- definitions.
-
-Sat Mar 4 12:28:09 2006 Ben Pfaff <blp@gnu.org>
-
- * In many source files, replace INT_DIGITS by
- INT_STRLEN_BOUND(int) and include intprops.h.
-
-John Darrington:
-
- * Replaced '_' with '-' in most filenames.
-
- * Renamed files as follows:
- vfm.[ch] to procedure.[ch]
- error.[ch] to message.[ch]
- getl.[ch] to line-buffer.[ch]
- mkfile.[ch] to make-file.[ch]
- pfm-write.h to por-file-writer.h
- pfm-write.c to por-file-writer.c
- sfmP.h to sfm-private.h
- lex-def.c to identifier.c
- lex-def.h to identifier.h
- sfm-read.c to sys-file-reader.c
- sfm-read.h to sys-file-reader.h
- sfm-write.h to sys-file-writer.h
- sfm-write.c to sys-file-writer.c
- chart.[ch] to chart-geometry.[ch]
- val.h to value.h
- var.h to variable.h
- vars-atr.c to variable.c
- ctl-stack.c to control-stack.c
- ctl-stack.h to control-stack.h
- dfm-read.c to data-reader.c
- dfm-write.c to data-writer.c
- dfm-write.h to data-writer.h
- dfm-read.h to data-reader.h
- apply-dict.c to apply-dictionary.c
- mis-val.c to missing-values.c
- sysfile-info.c to sys-file-info.c
- modify-vars.c to modifiy-variables.c
- rename-vars.c to rename-variables.c
- val-labs.c to value-labels.c
- var-display.c to variable-display.c
- var-labs.c to variable-label.c
- format-prs.c to format-parser.c
- range-prs.c to range-parser.c
- range-prs.h to range-parser.h
- subclist.c to subcommand-list.c
- subclist.h to subcommand-list.h
- vars-prs.c to variable-parser.c
- descript.c to descriptives.c
- sort-prs.c to sort-criteria.c/sort-cases.c
- sort-prs.h to sort-criteria.h
- sel-if.c to select-if.c
- algorithm.c to array.c
- algorithm.h to array.h
- bitvector.h to bit-vector.h
- som.c to manager.c
- som.h to manager.h
- tab.h to table.h
- tab.c to table.c
- readln.c to read-line.c
- readln.h to read-line.h
- cmdline.c to command-line.c
- cmdline.h to command-line.h
-
-
-Sat Feb 11 22:35:20 2006 Ben Pfaff <blp@gnu.org>
-
- General clean-ups and minor bug fixes.
-
- * filename.h: Move DIR_SEPARATOR, PATH_SEPARATOR here from
- pref.h.orig.
-
- * lex-def.h: (macro CHAR_IS_ID1) Removed. All references changed
- to lex_is_id1().
- (macro CHAR_IS_IDN) Removed. All references changed to
- lex_is_idn().
-
- * lex-def.c: (lex_is_id1) New function.
- (lex_is_idn) New function.
- (lex_skip_identifier) New function.
- (lex_id_match_len) Return bool instead of int.
- (lex_id_match) Ditto.
-
- * command.c: (parse_command_name) Convert parsed words to
- uppercase to make error messages easier to read.
- (cmd_host) Fix return value.
-
- * dfm-read.c: (read_inline_record) Use tokens to check for BEGIN
- DATA, not specialized lexical analysis.
-
- * print.c: (print_space_trns_proc) Count of lines should be `int',
- otherwise we might never finish.
- (print_space_trns_free) Close writer.
-
- * lexer.c: (enum string_type) New enum.
- (lex_get) Remove essentially unused local variable `cp'.
- Use enum string_type values. Use parse_id().
- (parse_id) New function.
- (lex_look_ahead) Recognize octal strings too.
- (strip_comments) New function.
- (lex_get_line) Rewrite.
- (lex_preprocess_line) Removed.
- (convert_numeric_string_to_char_string) Use enum string_type.
- (parse_string) Ditto.
-
- * autorecode.c: (recode) Clone correct number of bytes based on
- source string width.
-
-Sat Feb 11 22:34:38 2006 Ben Pfaff <blp@gnu.org>
-
- Reduce dependencies on getl, and of getl.
-
- * data-in.c: (vdls_error) Don't output different message depending
- on whether we're interactive.
-
- * getl.h: (struct getl_line_list) Removed.
- (struct getl_script) Removed.
- (GETL_PRPT_*) Removed.
- (GETL_MODE_*) Removed.
- (GETL_PROMPT_FIRST, GETL_PROMPT_LATER, GETL_PROMPT_DATA,
- GETL_PROMPT_CNT) New enums.
-
- * settings.c: (static var prompt) Removed.
- (static var cprompt) Removed.
- (static var dprompt) Removed.
- (settings_done) Don't initialize prompt, cprompt, dprompt.
- (get_prompt) Removed.
- (set_prompt) Removed.
- (get_dprompt) Removed.
- (set_dprompt) Removed.
- (get_cprompt) Removed.
- (set_cprompt) Removed.
-
- * pfm-read.c: (corrupt_msg) Don't show filename and line number,
- to get rid of getl_location().
-
- * sfm-read.c: (corrupt_msg) Ditto.
-
- * getl.c: (struct getl_source) New.
- (static var cur_source) New.
- (static var last_source) New.
- (static var DO_REPEAT_level) Removed.
- (global var getl_head) Removed.
- (global var getl_tail) Removed.
- (getl_initialize) Call init_prompts().
- (getl_add_file) Removed.
- (getl_include) Removed.
- (getl_add_DO_REPEAT_file) Removed.
- (getl_handle_line_buffer) Removed.
- (getl_close_file) Removed.
- (getl_close_all) Removed.
- (getl_is_separate) Removed.
- (getl_set_separate) Removed.
- (getl_reading_script) Removed.
- (append_source) New function.
- (include_source) New function.
- (create_source) New function.
- (create_syntax_file_source) New function.
- (create_filter_source) New function.
- (create_function_source) New function.
- (create_interactive_source) New function.
- (getl_append_syntax_file) New function.
- (getl_include_syntax_file) New function.
- (getl_include_filter) New function.
- (getl_include_function) New function.
- (getl_append_interactive) New function.
- (getl_abort_noninteractive) New function.
- (getl_is_interactive) New function.
- (close_source) New function.
- (getl_location) Use new `cur_source' var.
- (getl_uninitialize) Use close_source(). Call uninit_prompts().
- (read_syntax_file) New function.
- (read_line_from_source) New function.
- (do_read_line) New function.
- (getl_read_line) Rewrite.
- (static var prompts) New.
- (static var current_style) New.
- (init_prompts) New function.
- (uninit_prompts) New function.
- (getl_get_prompt) New function.
- (getl_set_prompt) New function.
- (getl_set_prompt_style) New function.
- (get_prompt) New function.
-
- * command.c: Merge the EXIT (aka Q, aka QUIT) and FINISH commands,
- and make EXIT undocumented. EXIT was a PSPP extension that never
- really entirely made sense.
- (cmd_exit) Removed.
- (cmd_finish) Return CMD_EOF unconditionally.
- (cmd_clear_transformations) Drop requirement of interactivity.
-
- * command.def: Merge the EXIT (aka Q, aka QUIT) and FINISH
- commands.
-
- * repeat.c: Major changes to match getl revision.
- (struct line_list) New struct.
- (enum repeat_entry_type) New.
- (struct repeat_entry) Made `type' an enum repeat_entry_type.
- (struct repeat_block) New.
- (static var repeat_tab) Removed.
- (static var count) Removed.
- (static var line_buf_head) Removed.
- (static var line_buf_tail) Removed.
- (cmd_do_repeat) Rewritten.
- (clean_up) Removed.
- (append_record) Removed.
- (recognize_keyword) New function.
- (internal_cmd_do_repeat) Removed.
- (parse_specification) New function.
- (skip_indentor) New function.
- (recognize_do_repeat) New function.
- (recognize_end_repeat) New function.
- (parse_lines) New function.
- (create_vars) New function.
- (parse_ids) Use enum repeat_entry_type.
- (parse_strings) Ditto.
- (find_DO_REPEAT_substitution) Renamed find_substitution(),
- rewrote.
- (perform_DO_REPEAT_substitutions) Renamed do_repeat_filter(),
- rewrote.
- (do_repeat_read) New function.
- (do_repeat_close) New function.
-
- * data-list.c: Don't need to keep track of eof from getl anymore,
- because getl can tell us now.
- (struct data_list_pgm) Removed `eof' member.
- (cmd_data_list) Don't assign to `eof'.
- (get_data_list_read_func) Renamed read_from_data_list(), changed
- interface.
- (read_from_data_list_fixed) Changed interface.
- (read_from_data_list_free) Changed interface.
- (read_from_data_list_list) Changed interface.
- (data_list_trns_proc) Rewrote based on dfm_eof() and
- dfm_reader_error().
- (data_list_source_read) Check for dfm reader errors.
-
- * dfm-read.c: (enum dfm_reader_flags) Removed DFM_EOF in favor of
- new `eof_cnt' member in struct dfm_reader.
- (struct dfm_reader) New `eof_cnt' member.
- (dfm_close_reader) Check `eof_cnt', not DFM_EOF.
- (dfm_open_reader) Initialize `eof_cnt'.
- (read_inline_record) Set prompt style with
- getl_set_prompt_style().
- (read_record) Rewrite.
- (cmd_begin_data) Set prompt style with getl_set_prompt_style().
-
- * include.c: (cmd_include) Use getl_include_syntax_file().
-
- * set.q: (cmd_set) Use getl_set_prompt().
-
- * html.c: (postopen) Remove "source-file" expansion variable, to
- avoid use of getl_location().
-
- * postscript.c: (postopen) Remove "source-file" expansion
- variable, to avoid use of getl_location().
-
- * cmdline.c: (parse_command_line) Drop -c command line option,
- because it wasn't very useful. -i command line option now calls
- getl_append_interactive(). Use new getl function interfaces.
- Drop support for clearing dictionary between syntax files and thus
- the "+" command line syntax.
- (static var pre_syntax_message) Remove description of now-gone -c
- option. Remove "+" command line syntax.
-
- * main.c: (main) Only call handle_error() if the return value is
- an error.
- (execute_command) Use getl_set_prompt_style(). Drop support for
- clearing dictionary between syntax files.
- (handle_error) Handle CMD_CASCADING_FAILURE. Don't call err_break().
-
- * readln.c: Drop lots of #ifdefs. Now that the Autoconf tests are
- pickier, we can just use HAVE_READLINE.
- (static var welcomed) Move into welcome().
- (welcome) Make `welcomed' a local static var. Check for and read
- history file here.
- (global var getl_mode) Removed.
- (global var getl_interactive) Removed.
- (global var getl_prompt) Removed.
- (getl_read_line) removed.
- (readln_read) New function.
- (read_console) Removed.
-
-
-Sat Feb 11 22:16:21 2006 Ben Pfaff <blp@gnu.org>
-
- Try to reduce some of the nastier dependencies on the error
- module, and at the same time make PSPP nicer to deal with, by
- getting rid of fatal errors. All the existing calls to msg (FE,
- ...) or err_cond_fail() or err_failure() have been replaced by
- propagating an error upward to the command-dispatch layer.
- Unfortunately this propagation took a fair bit of extra mechanism,
- because now a lot of functions can fail that couldn't before.
-
- New command return value CMD_CASCADING_FAILURE which indicates to
- the command processor that syntax file processing should be
- abandoned. Many commands were modified to return
- CMD_CASCADING_FAILURE. When this modification was trivial it
- isn't mentioned in detail below.
-
- Transformation procedures (trns_proc_func) and free functions
- (trns_free_func) now have a `bool' return type, which is normally
- true, but false when an I/O or other serious error occurs. All
- transformation functions were modified to have this return type.
- When this modification was trivial it isn't mentioned in detail
- below.
-
- * pspp-error.h: (FE) Removed this error class.
-
- * error.c: (err_failure) Removed.
- (err_cond_fail) Removed.
- (err_break) Removed (it was unused).
- (err_check_count) Don't cause a fatal error--instead, stop reading
- the syntax file.
- (err_vmsg) Don't have FE anymore, so no need to call terminate().
-
- * any-reader.c: (any_reader_error) New function.
-
- * any-writer.c: (any_writer_write) Propagate
- scratch_writer_write_case()'s new return value.
- (any_writer_error) New function.
- (any_writer_close) Propagate underlying function's new return
- value.
-
- * casefile.c: Add an "error state" to a casefile. A casefile that
- encounters an I/O error enters the error state, and afterward
- reading and writing cases fails.
- (struct casefile) Add `ok' member.
- (casefile_create) Set `ok' to true.
- (casefile_destroy) Use io_error().
- (casefile_error) New function.
- (casefile_sleep) Now returns bool to indicate success.
- (casefile_append) Ditto.
- (casefile_append_xfer) Ditto.
- (casefile_to_disk) Ditto.
- (write_case_to_disk) Don't do anything in error state.
- (flush_buffer) Don't do anything in error state. Use io_error().
- (reader_open_file) Ditto.
- (fill_buffer) Ditto.
- (casereader_read) Don't do anything in error state. Handle
- errors.
- (casereader_read_xfer_assert) Removed, because now an I/O error
- can occur even if the caller knows a case exists.
- (io_error) New function.
-
- * mkfile.c: (make_temp_file) Make failure non-fatal.
- (make_unique_file_stream) Ditto.
-
- * pfm-read.c: Add an error state.
- (struct pfm_reader) Add `ok' member to indicate error state.
- (error) Set `ok' to false.
- (pfm_open_reader) Set `ok' to true. Make failure non-fatal.
- (pfm_read_case) Don't do anything in error state.
- (pfm_read_error) New function.
-
- * pfm-write.c: Postpone most error checking in favor of checking
- ferror() afterward.
- (pfm_open_writer) Make failure non-fatal. Check for write error
- after writing header.
- (buf_write) Don't do anything if error has occurred. Postpone
- error checking. Change return type to void.
- (write_float) Postpone error checking. Change return type to
- void.
- (write_int) Ditto.
- (write_string) Ditto.
- (write_header) Ditto.
- (write_version_data) Ditto.
- (write_format) Ditto.
- (write_value) Ditto.
- (write_variables) Ditto.
- (write_value_labels) Ditto.
- (pfm_write_case) Don't do anything if error has occurred.
- (pfm_write_error) New function.
- (pfm_close_writer) Change return type to bool. Return false if an
- I/O error occurred.
-
- * scratch-reader.c: (scratch_reader_error) New function.
-
- * scratch-writer.c: (scratch_writer_write_case) Change return type
- to bool. Propagate casefile error return.
- (scratch_writer_error) New function.
- (scratch_writer_close) Change return type to bool. Propagate
- casefile error return.
-
- * sfm-read.c: Add an error state.
- (struct sfm_reader) Add `ok' member.
- (sfm_open_reader) Initialize `ok'. Make errors non-fatal.
- (buf_read) Set `ok' to false on error.
- (buffer_input) Do nothing in error state. Set `ok' to false on
- error.
- (read_compressed_data) Set `ok' false on error.
- (sfm_read_case) Return false in error state.
- (fread_ok) Set `ok' false on error.
- (sfm_read_error) New function.
-
- * sfm-write.c: Postpone most error checking in favor of checking
- ferror() afterward.
- (sfm_open_writer) Make failure non-fatal. Check for write error
- after writing header.
- (write_header) Postpone error checking. Change return type to
- void.
- (write_variable) Ditto.
- (write_value_labels) Ditto.
- (write_documents) Ditto.
- (write_variable_display_parameters) Ditto.
- (write_longvar_table) Ditto.
- (write_rec_7_34) Ditto.
- (buf_write) Ditto.
- (ensure_buf_space) Ditto.
- (sfm_write_case) Do nothing if write error has occurred.
- (sfm_write_error) New function.
- (pfm_close_writer) Change return type to bool. Return false if an
- I/O error occurred.
-
- * var.h: Introduced a new return value for trns_proc_func that
- means "a serious error has occurred, so abort the procedure
- entirely". Because the hard-coded values of -1, -2, etc. were
- becoming even a worse idea now, also introduced some macros for
- them: TRNS_CONTINUE, TRNS_DROP_CASE, TRNS_ERROR, TRNS_NEXT_CASE,
- TRNS_END_FILE. Also replaced all references to the hard-coded
- values by uses of the macros.
-
- * command.h: New command return value CMD_CASCADING_FAILURE which
- indicates to the command processor that syntax file processing
- should be abandoned.
-
- * dfm-read.c: (dfm_open_reader) Make failure non-fatal.
- (dfm_reader_error) New function.
- (read_inline_record) Make unexpected end of file nonfatal.
- (read_file_record) Make read error nonfatal.
- (dfm_eof) Make second unexpected end of file nonfatal.
- (cmd_begin_data) Make errors nonfatal.
-
- * dfm-write.c: (dfm_open_writer) Make failure non-fatal.
- (dfm_write_error) New function.
- (dfm_put_record) Do nothing in error state. Now return error
- state.
- (dfm_close_reader) Now return `bool' indicating error state.
-
- * file-type.c: (file_type_source_read) Now return `bool'
- indicating error state.
-
- * get.c: (case_reader_source_read) Now return `bool' indicating
- write error.
- (case_writer_destroy) Ditto.
- (case_writer_write_case) Ditto.
- (struct mtf_proc) New member `ok' indicating error state.
- (cmd_match_files) Initialize and deal with `ok'.
- (mtf_processing_finish) Now return `bool' indicating I/O error.
- (mtf_free_file) Renamed mtf_close_file(). Now return `bool'
- indicating I/O error.
- (mtf_free) Now return `bool' indicating I/O error.
- (mtf_delete_file_in_place) Ditto.
- (mtf_read_nonactive_records) Ditto.
- (mtf_processing) Ditto.
-
- * inpt-pgm.c: (input_program_source_read) Now return `bool'
- indicating I/O error. Handle new TRNS_ERROR transformation return
- value.
-
- * matrix-data.c: Introduce error state.
- (cmd_matrix_data) Check error return values.
- (read_matrices_without_rowtype) Now return `bool' indicating I/O
- error.
- (matrix_data_read_without_rowtype) Ditto.
- (dump_cell_content) Ditto.
- (nr_output_data) Ditto.
- (read_matrices_with_rowtype) Ditto.
- (matrix_data_read_with_rowtype) Ditto.
- (wr_output_data) Ditto.
-
- * lexer.c: (lex_init) Make unexpected eof non-fatal.
- (lex_get) Ditto.
- (lex_look_ahead) Ditto.
- (unexpected_eof) Removed.
- (convert_numeric_string_to_char_string) Make unexpected eof
- non-fatal.
- (parse_string) Ditto.
-
- * flip.c: Make I/O errors non-fatal.
- (struct flip_pgm) Add `pool', `output_buf' members.
- (cmd_flip) Create and use pool. Propagate errors.
- (destroy_flip_pgm) Rewrite, using pool.
- (struct flip_sink_info) Removed.
- (flip_sink_create) Use pool. Make errors non-fatal.
- (flip_sink_write) Make errors non-fatal.
- (flip_file) Make errors non-fatal. Make `bool' return type to
- indicate failure.
- (flip_sink_destroy) Remove.
- (static var flip_sink_class) Use NULL as destroy func, not
- flip_sink_destroy().
-
- * sort.c: Make I/O errors non-fatal. Propagate errors.
- (sort_active_file_in_place) Propagate errors.
- (sort_active_file_to_casefile) Ditto.
- (do_internal_sort) Ditto.
- (do_external_sort) Ditto.
- (write_runs) Ditto.
- (destroy_initial_run_state) Propagate errors via new `bool' return
- type.
- (merge) Propagate errors.
- (merge_once) Ditto.
-
- * output.c: [GLOBAL_DEBUGGING] Remove reentrancy detection,
- because it used msg (FE, ...) and wasn't very useful.
-
- * main.c: (handle_error) Handle CMD_CASCADING_FAILURE.
-
- * vfm.c: (struct write_case_data) Change `proc_func' return type
- to bool.
- (procedure) Add `bool' return type to indicate I/O error.
- Propagate errors.
- (internal_procedure) Ditto.
- (write_case) Ditto.
- (execute_transformations) If a transformation returns TRNS_ERROR,
- propagate the error.
- (close_active_file) Add `bool' return type to indicate I/O error.
- Propagate errors.
- (cancel_transformations) Add `bool' return type to indicate I/O
- error. Propagate errors.
- (struct split_aux_data) Change `proc_func' return type to bool.
- (procedure_with_splits) Change `proc_func' return type to bool.
- Add `bool' return type to indicate I/O error.
- (multipass_procedure_with_splits) Change `split_func' return type
- to bool. Add `bool' return type to indicate I/O error.
- (multipass_split_callback) Add `bool' return type to indicate I/O
- error. Propagate errors.
-
- * vfm.h: (struct case_source_class) Change `read' return type from
- void to bool to allow reporting I/O errors. Updated all
- implementations to do so.
- (struct case_sink_class) Change `write' return type from void to
- bool to allow reporting I/O errors. Updated all implementations
- to do so.
-
-Sun Feb 12 18:12:56 2006 Ben Pfaff <blp@gnu.org>
-
- * pool.c: Useful new functions.
- (pool_tmpfile) New function.
- (pool_attach_file) New function.
- (pool_detach_file) New function.
- (pool_fopen) Reimplement in terms of pool_attach_file().
- (pool_fclose) Reimplement in terms of pool_detach_file(). Fix
- double-free.
-
- * str.c: Useful new functions.
- (ds_swap) New function.
- (ds_rtrim_spaces) New function.
- (ds_chomp) New function.
- (ds_is_empty) New function.
- (ds_first) New function.
- (ds_last) New function.
-
-Sat Feb 11 21:51:21 2006 Ben Pfaff <blp@gnu.org>
-
- Get rid of finished, start_interactive globals.
-
- * command.c: (cmd_exit) Instead of setting `finished', return
- CMD_EOF.
- (cmd_finish) Ditto.
-
- * command.h: New enum CMD_EOF.
-
- * main.c: (global var finished) Removed.
- (global var start_interactive) Removed.
- (main) Execute commands until CMD_EOF is the return value.
- If parse_command_line() returns false, don't execute any commands
- at all.
-
- * cmdline.c: (parse_command_line) If the command line indicates we
- shouldn't execute syntax files, return false instead of
- terminating.
- (usage) Don't terminate.
-
-Sat Feb 11 21:48:31 2006 Ben Pfaff <blp@gnu.org>
-
- Get rid of cur_proc global. Replace by functions in err and tab
- modules, which were the users.
-
- * error.c: (static var command_name) New static var.
- (err_vmsg) Use command_name.
- (err_set_command_name) New function.
-
- * tab.c: (static var command_name) New static var.
- (tabi_title) Use command_name.
- (tab_set_command_name) New function.
-
- * command.c: (global var cur_proc) Removed.
- (cmd_parse) Call err_set_command_name(), tab_set_command_name()
- around executing command to set and clear command name.
-
-Sat Feb 11 21:44:50 2006 Ben Pfaff <blp@gnu.org>
-
- Get rid of glob.c, glob.h.
-
- * Makefile.am: (pspp_SOURCES) Remove glob.c, glob.h.
-
- * dictionary.c: Move default_dict definition here.
-
- * glob.c: Removed.
- (global var FILTER_before_TEMPORARY) Variable removed. All
- references deleted. The info in this var was redundant with
- temp_dict, so they were changed to use temp_dict where needed.
-
- * glob.h: Removed.
-
- * start-date.c: New file. Moved get_start_date() here.
-
- * start-date.h: New file.
-
-Fri Feb 3 20:34:52 2006 Ben Pfaff <blp@gnu.org>
-
- * font.h: (struct font_set) Removed, because unused.
-
-Sat Jan 28 17:45:36 2006 Ben Pfaff <blp@gnu.org>
-
- 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 <blp@gnu.org>
-
- 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 <blp@gnu.org>
-
- 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 <blp@gnu.org>
-
- 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 <jason@sakla.net>
-
- * 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 <john@darrington.wattle.id.au>
-
- * 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 <john@darrington.wattle.id.au>
-
- * getl.c error.c: Separated file_loc functionality from error.c
-
-Mon Dec 19 14:01:56 WST 2005 John Darrington <john@darrington.wattle.id.au>
-
- * 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 <john@darrington.wattle.id.au>
-
- * examine.q: Fixed buglet when cleaning up at end of procedure.
-
-Tue Dec 13 22:34:42 2005 Ben Pfaff <blp@gnu.org>
-
- 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 <blp@gnu.org>
-
- 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 <blp@gnu.org>
-
- 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 <john@darrington.wattle.id.au>
-
- * 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 <blp@gnu.org>
-
- * 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 <blp@gnu.org>
-
- * var.h: (struct variable) Make `init', `reinit' bool values.
- Rearrange fields.
-
-Fri Nov 4 19:43:01 2005 Ben Pfaff <blp@gnu.org>
-
- * recode.c: Rewrote whole file, as clean-up.
-
-Fri Nov 4 19:37:50 2005 Ben Pfaff <blp@gnu.org>
-
- * 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 <blp@gnu.org>
-
- * 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 <blp@gnu.org>
-
- 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 <blp@gnu.org>
-
- 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 <blp@gnu.org>
-
- 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 <blp@gnu.org>
-
- * 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 <blp@gnu.org>
-
- 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 <john@darrington.wattle.id.au>
-
- 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 <blp@gnu.org>
-
- 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 <john@darrington.wattle.id.au>
-
- 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 <blp@gnu.org>
-
- * 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 <blp@gnu.org>
-
- 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 <ctype.h> 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 <john@darrington.wattle.id.au>
-
- 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 <blp@gnu.org>
-
- 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 <blp@gnu.org>
-
- * output.c: (outp_read_devices) Fix message.
-
-Sat Sep 17 11:13:13 2005 Ben Pfaff <blp@gnu.org>
-
- * 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 <john@darrington.wattle.id.au>
-
- * 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 <blp@gnu.org>
-
- * lexer.c: (lex_sbc_only_once) New function.
- (lex_sbc_missing) New function.
-
-Sun Aug 21 00:00:47 2005 Ben Pfaff <blp@gnu.org>
-
- * case.h: (case_str) Make it return `unsigned char'.
-
-Sat Aug 20 23:56:14 2005 Ben Pfaff <blp@gnu.org>
-
- 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 <blp@gnu.org>
-
- * factor_stats.c: Needed <config.h> included earlier.
-
- * percentiles.c: Needed to include <config.h>.
-
- * val.h: Don't include "config.h".
-
-Sat Aug 6 21:26:27 2005 Ben Pfaff <blp@gnu.org>
-
- 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 <blp@gnu.org>
-
- 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
- <stdbool.h>, 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 <time.h> 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 <time.h> 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
- <stdbool.h>, not "bool.h".
-
-Sat Jul 30 23:13:17 2005 Ben Pfaff <blp@gnu.org>
-
- * expressions/parse.c: (validate_function_args) Fix two msg() bugs
- found by -Wformat.
-
-Sat Jul 30 23:10:01 2005 Ben Pfaff <blp@gnu.org>
-
- * 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 <blp@gnu.org>
-
- * vars-atr.c: (var_is_valid_name) Fix three msg() bugs found by
- -Wformat.
-
-Sat Jul 30 22:58:33 2005 Ben Pfaff <blp@gnu.org>
-
- * rank.q: (parse_rank_function) Fix msg() bug found by -Wformat.
-
-Sat Jul 30 22:56:12 2005 Ben Pfaff <blp@gnu.org>
-
- * postscript.c: (postopen) Cast `char' to `unsigned char' before
- passing to isspace().
-
-Sat Jul 30 22:52:09 2005 Ben Pfaff <blp@gnu.org>
-
- * pfm-read.c: (read_variables) Fix msg() bug found by -Wformat.
-
-Sat Jul 30 22:50:57 2005 Ben Pfaff <blp@gnu.org>
-
- * histogram.c: Include <config.h>.
-
-Sat Jul 30 22:48:50 2005 Ben Pfaff <blp@gnu.org>
-
- * get.c: (cmd_match_files) Fix msg() bug found by -Wformat.
-
-Sat Jul 30 22:46:10 2005 Ben Pfaff <blp@gnu.org>
-
- * format.c: (check_common_specifier) Fix msg() bug found by
- -Wformat.
- (check_output_specifier) Ditto.
-
-Sat Jul 30 22:43:57 2005 Ben Pfaff <blp@gnu.org>
-
- * file-handle.q: (cmd_file_handle) Fix msg() bug found by
- -Wformat.
-
-Sat Jul 30 22:41:44 2005 Ben Pfaff <blp@gnu.org>
-
- * 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 <blp@gnu.org>
-
- * command.c: (find_word) Cast `char' to `unsigned char' before
- passing to isspace().
-
-Sat Jul 30 22:36:29 2005 Ben Pfaff <blp@gnu.org>
-
- * case.c: (case_compare) Implement as delegating to
- case_compare_2dict().
-
-Sat Jul 30 22:34:18 2005 Ben Pfaff <blp@gnu.org>
-
- * algorithm.c: Inclusion of <alloca.h> is unneeded.
-
-Sat Jul 30 22:01:32 2005 Ben Pfaff <blp@gnu.org>
-
- * 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 <blp@gnu.org>
-
- 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 <blp@gnu.org>
-
- * data-in.c: (parse_numeric) Allow "1+23" even for F format, for
- compatibility.
-
-Sun Jul 24 18:47:37 2005 Ben Pfaff <blp@gnu.org>
-
- * pfm-read.c: (read_version_data) Read and ignore author field.
-
-Wed Jul 6 20:44:27 2005 Ben Pfaff <blp@gnu.org>
-
- * 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" <mdb@radix.net>.
-
-Mon Jul 4 18:01:15 2005 Ben Pfaff <blp@gnu.org>
-
- * flip.c: [HAVE_SYS_TYPES_H] Really include <sys/types.h>. The
- preprocessor test for sys/types.h was accidentally inverted. This
- was bug 12789.
-
-Sun Jul 3 22:47:39 2005 Ben Pfaff <blp@gnu.org>
-
- * 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 <blp@gnu.org>
-
- Fix NDEBUG compile errors.
-
- * hash.h: Needed explicit #include <assert.h>.
-
- * linked-list.c: (ll_next) First arg is UNUSED when NDEBUG is
- defined.
-
-Sun Jun 12 23:44:38 2005 Ben Pfaff <blp@gnu.org>
-
- 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 <blp@gnu.org>
-
- 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 <blp@gnu.org>
-
- 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 <blp@gnu.org>
-
- 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 <blp@gnu.org>
-
- Fix bug 11894.
-
- * output.c: (outp_read_devices) Fix message.
-
-Fri May 27 12:34:43 WST 2005 John Darrington <john@darrington.wattle.id.au>
-
- * 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 <blp@gnu.org>
-
- 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 <blp@gnu.org>
-
- * 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 <john@darrington.wattle.id.au>
-
- * 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 <john@darrington.wattle.id.au>
-
- *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 <john@darrington.wattle.id.au>
-
- * 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 <blp@gnu.org>
-
- * 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 <blp@gnu.org>
-
- * data-out.c: (format_and_round) Don't output leading `-' if value
- rounds to zero.
-
-Tue May 17 00:06:43 2005 Ben Pfaff <blp@gnu.org>
-
- 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 <blp@gnu.org>
-
- 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 <blp@gnu.org>
-
- * 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 <blp@gnu.org>
-
- 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 <blp@gnu.org>
-
- 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 <john@darrington.wattle.id.au>
-
- * dfm-read.c: Fixed polarity of test in dfm-close-reader. Closes
- Bug #13082
-
-Tue May 10 20:08:18 2005 Ben Pfaff <blp@gnu.org>
-
- * 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 <blp@gnu.org>
-
- 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 <john@darrington.wattle.id.au>
-
- * sysfile-info.c: Fixed bug [# 13024 ]
-
-Sun May 8 13:52:12 2005 Ben Pfaff <blp@gnu.org>
-
- "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 <john@darrington.wattle.id.au>
-
- * 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 <blp@gnu.org>
-
- 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 <blp@gnu.org>
-
- 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 <john@darrington.wattle.id.au>
-
- * casefile.c: Removed unnecessary #include <valgrind/valgrind.h>
-
-Tue May 3 19:14:48 WST 2005 John Darrington <john@darrington.wattle.id.au>
-
- * 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 <john@darrington.wattle.id.au>
-
- * 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 <blp@gnu.org>
-
- 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 <blp@gnu.org>
-
- 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 <blp@gnu.org>
-
- * lexer.c: (lex_error) Improve error messages.
-
-Mon May 2 22:28:17 2005 Ben Pfaff <blp@gnu.org>
-
- * 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 <blp@gnu.org>
-
- * flip.c: [HAVE_SYS_TYPES_H] Include <sys/types.h>. Fixes bug
- 12789.
-
-Mon May 2 22:02:52 2005 Ben Pfaff <blp@gnu.org>
-
- * 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 <blp@gnu.org>
-
- * var-display.c: (cmd_variable_alignment) Fix memory leak.
- (cmd_variable_level) Ditto.
-
-Sun May 1 22:49:04 2005 Ben Pfaff <blp@gnu.org>
-
- 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 <blp@gnu.org>
-
- * dictionary.c: (dict_clone) Properly copy vectors.
-
-Sun May 1 22:07:58 2005 Ben Pfaff <blp@gnu.org>
-
- 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 <blp@gnu.org>
-
- * algorithm.c: (move_element) New function.
-
-Sun May 1 22:05:35 2005 Ben Pfaff <blp@gnu.org>
-
- * aggregate.c: (parse_aggregate_functions) Always initialize
- destvar.
-
-Sun May 1 22:03:47 2005 Ben Pfaff <blp@gnu.org>
-
- * 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 <john@darrington.wattle.id.au>
-
- * 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 <blp@gnu.org>
-
- * expressions/parse.c: Improve previous fix for bug 12858 (LAG).
-
-Fri Apr 29 09:28:00 WST 2005 John Darrington <john@darrington.wattle.id.au>
-
- * 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 <john@darrington.wattle.id.au>
-
- * 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 <john@darrington.wattle.id.au>
-
- * command.def echo.c: Added the ECHO command.
-
-Mon Apr 25 22:55:59 2005 Ben Pfaff <blp@gnu.org>
-
- Finish fixing MATCH FILES (bug 11677).
-
- * get.c: (trim_dictionary) Rewrite in terms of drop_variables(),
- keep_variables(), rename_variables().
- (drop_variables) New function.
- (keep_variables) New function.
- (struct mtf_file) Rename `in' to `in_name'. Add `in_var'.
- (cmd_match_files) Deal with in_var. Use drop_variables(),
- keep_variables(). When IN is specified, require BY. Set master
- variables after master dictionary is complete. Add IN variables
- after master dictionary is complete.
- (mtf_free_file) Free `in_name'.
- (mtf_delete_file_in_place) Set in_var value to 0.
- (mtf_read_nonactive_records) Rephrase.
- (mtf_processing) Support IN. Rephrase. Fix bugs.
- (mtf_merge_dictionary) Don't set master variables; we do that
- later now.
- (get_master) Don't insist that there's a master variable.
-
-Mon Apr 25 22:55:22 2005 Ben Pfaff <blp@gnu.org>
-
- Kluge to make some variable renaming sort of work.
- Needs real fix.
-
- * dictionary.c: (dict_rename_var) Call dict_add_longvar_entry().
-
-Mon Apr 25 22:52:28 2005 Ben Pfaff <blp@gnu.org>
-
- Add functions for comparing sets of variables between cases.
- Use the functions.
-
- * case.c: (case_compare) New function.
- (case_compare_2dict) New function.
-
- * aggregate.c: (struct agr_proc) Remove `prev_break' member. Add
- `break_case'.
- (cmd_aggregate) Nullify break_case. Don't call
- initialize_aggregate_info().
- (agr_destroy) Destroy break_case.
- (aggregate_single_case) Rewrite. Use case_compare().
- (dump_aggregate_info) Copy from break_case into output.
- (initialize_aggregate_info) Copy break_case from input.
-
- * get.c: (mtf_compare_BY_values) Use case_compare_2dict().
-
- * vfm.c: (equal_splits) Use case_compare().
-
-Sat Apr 23 17:01:04 WST 2005 John Darrington <john@darrington.wattle.id.au>
-
- * dictionary.c vars-prs.c sfm-write.c: Fixed some memory leaks
-
-Sun Apr 17 23:08:15 2005 Ben Pfaff <blp@gnu.org>
-
- Start work on fixing MATCH FILES.
-
- * get.c: (enum operation) Remove OP_MATCH.
- (trim_dictionary) Change return value to bool. Don't support
- OP_MATCH.
- (struct mtf_file) Remove `first', `last' members.
- (struct mtf_proc) Add `first', `last' members. Change mtf_case
- from `struct ccase *' to `struct ccase'. Remove `by' member.
- (cmd_match_files) Essentially rewrite.
- (mtf_free) Don't free `by' member. Destroy `mtf_case' member.
- (mtf_read_nonactive_records) mtf_ parameter is not unused.
- (mtf_processing) Ditto. Also rephrase some code.
- (mtf_merge_dictionary) Rewrite for easy comprehension.
-
-Sun Apr 17 23:06:00 2005 Ben Pfaff <blp@gnu.org>
-
- * matrix-data.c: (wr_output_data) [DEBUGGING] Fix compilation
- error.
-
- * q2c.c: (dump_token) [DEBUGGING] Fix compilation error.
-
-Thu Apr 14 2005 John Darrington
-
- * var-display.c: New file.
-
- * format.h var.h sfm-read.c sfm-write.c dictionary.c : Added
- display_width, measure and alignment parameters to variables.
-
- * aggregate.c command.def compute.c count.c data-list.c descript.c
- dictionary.c dictionary.h expr-prs.c file-type.c flip.c get.c
- lexer.c lexer.h loop.c modify-vars.c pfm-read.c recode.c repeat.c
- sfm-read.c sfm-write.c sfm-write.h sfmP.h val-labs.c val.h var.h
- vars-prs.c vector.c :
- - Replaced literal constants representing maximum variable name
- length with macro definitions.
- - Added support for long variable names.
- - Changed lexer such that it no longer makes tokens upper
- case, but relies upon case insensitive behaviour of commands.
-
-Mon Apr 4 22:27:34 2005 Ben Pfaff <blp@gnu.org>
-
- * aggregate.c: (parse_aggregate_functions) If dict_create_var()
- fails, don't dereference the resulting null pointer (bug 12427).
- Also, fix double free error.
-
-Sat Mar 19 23:06:02 2005 Ben Pfaff <blp@gnu.org>
-
- * aggregate.c: (parse_aggregate_functions) Fix N_NO_VARS format.
- (accumulate_aggregate_info) Set int1 to 1 for SUM.
- (dump_aggregate_info) Only make SUM non-missing if there was at
- least one variate.
-
-Sat Mar 19 14:48:19 2005 Ben Pfaff <blp@gnu.org>
-
- * aggregate.c: (dump_aggregate_info) Properly test whether the
- destination variable is numeric, when making the result
- system-missing for columnwise missing values.
-
-Mon Mar 14 21:52:34 2005 Ben Pfaff <blp@gnu.org>
-
- * misc.h: Remove GCC specializations.
-
-Mon Mar 14 21:07:23 2005 Ben Pfaff <blp@gnu.org>
-
- Make sort stable (bug 12313).
-
- * sort.c: Don't need to include some headers anymore.
- (static var min_buffers) New variable.
- (static var max_buffers) New variable.
- (static var allow_internal_sort) New variable.
- (cmd_sort_cases) Add test mode.
- (sort_execute) Rephrase.
- (do_internal_sort) Don't try internal sorting if
- allow_internal_sort is set.
- (struct external_sort) Renamed `initial_runs' to `runs' and
- updated all references.
- (macro MIN_BUFFER_TOTAL_SIZE_RECS) Removed.
- (macro MIN_BUFFER_SIZE_BYTES) Removed.
- (macro MIN_BUFFER_SIZE_RECS) Removed.
- (compare_initial_runs) Removed.
- (struct record_run) Add member `idx'.
- (write_initial_runs) Pass increasing values to process_case() as
- index.
- (process_case) Add `idx' parameter and use it to initialize new
- `idx' member.
- (allocate_cases) Limit allocated buffers to max_buffers.
- (compare_record_run) Use new `idx' member for last resort
- comparison, for stability.
- (end_run) Call casefile_sleep() on irs->casefile, to prevent
- running out of file descriptors.
- (struct merge_state) Removed.
- (merge) Don't need to allocate cases. Always use MAX_MERGE_ORDER
- unless we have fewer runs left. Always merge consecutive runs,
- for stability. Return the final run.
- (mod) Removed.
- (choose_merge) New function.
- (merge_once) Rewritten.
-
-Mon Mar 14 21:05:42 2005 Ben Pfaff <blp@gnu.org>
-
- * cmdline.c: (static var testing_mode) Move into
- parse_command_line().
-
-Mon Mar 14 21:05:13 2005 Ben Pfaff <blp@gnu.org>
-
- * algorithm.c: (remove_range) New function.
- (remove_element) New function.
-
- * dictionary.c: (dict_delete_var) Use remove_element().
-
- * flip.c: (cmd_flip) Ditto.
-
-Sun Mar 13 22:52:05 2005 Ben Pfaff <blp@gnu.org>
-
- * file-handle.q: (struct file_handle) `open_mode' should not be
- const.
-
-Sun Mar 13 22:40:54 2005 Ben Pfaff <blp@gnu.org>
-
- First phase of making SORT CASES stable (bug 12313).
-
- * sort.c: (struct indexed_case) New structure.
- (do_internal_sort) Rewrite to make internal sorting stable.
- (compare_case_dblptrs) Removed.
- (compare_indexed_cases) New function.
-
-Sun Mar 13 22:38:40 2005 Ben Pfaff <blp@gnu.org>
-
- Clean-ups.
-
- * casefile.c: (casereader_read_xfer_assert) New function.
-
- * dictionary.c: (dict_compact_case) New function.
-
- * flip.c: (struct flip_pgm) New member idx_to_fv.
- (cmd_flip) Initialize idx_to_fv member.
- (destroy_flip_pgm) Free idx_to_fv member.
- (flip_sink_write) Use struct flip_pgm member instead of case_sink
- member.
- (flip_sink_write) Ditto.
-
- * vfm.c: (write_case) Use dict_compact_case() instead of
- compact_case().
- (compact_case) Removed.
- (storage_source_create) Removed `dict' parameter. All references
- updated.
-
- * vfm.h: (struct case_source) Removed `value_cnt' member. All
- references removed.
- (struct case_sink) Removed `dict', `idx_to_fv' members. All
- references removed.
-
-Sun Mar 13 22:35:55 2005 Ben Pfaff <blp@gnu.org>
-
- More AGGREGATE fixes.
-
- * aggregate.c: (accumulate_aggregate_info) Implement NMISS and
- NUMISS for strings. Fix FOUT, POUT, FGT, FLT, FIN, FOUT for
- strings.
- (initialize_aggregate_info) Fix initialization for MIN, MAX for
- strings.
-
-Sat Mar 12 23:26:21 2005 Ben Pfaff <blp@gnu.org>
-
- Start work on testing and debugging AGGREGATE.
-
- * aggregate.c: (cmd_aggregate) Use discrete bool variables instead
- of a bit-map. Require proper subcommand ordering. Make OUTFILE
- subcommand mandatory.
- (parse_aggregate_functions) Check that PIN, POUT, FIN, FOUT
- functions' arguments are in the correct order and swap them if
- not.
- (accumulate_aggregate_info) Make SUM include weights. Add various
- string functions.
- (dump_aggregate_info) Add various string functions.
- (initialize_aggregate_info) Initialize int1 for MIN, MAX.
-
- * sort.c: (sort_parse_criteria) Add parameter for returning
- whether any directions were specified. All callers updated.
-
-Sun Mar 13 14:54:27 WST 2005 John Darrington <john@darrington.wattle.id.au>
-
- * t-test.q: Fixed erroneous logic in compare_group_binary.
-
-Sat Mar 12 13:29:21 2005 Ben Pfaff <blp@gnu.org>
-
- * split-file.c: (cmd_split_file) Ignore LAYERED and SEPARATE
- keywords (bug 11628).
-
-Sat Mar 12 13:17:12 2005 Ben Pfaff <blp@gnu.org>
-
- * 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 <blp@gnu.org>
-
- * file-handle.q: (struct file_handle) Change open_mode from
- character pointer to 3-char array, for safety. Updated all
- references.
-
-Sat Mar 12 12:15:49 2005 Ben Pfaff <blp@gnu.org>
-
- Thanks to Ben Kujala <bkujala@oregonchildcare.org> for reporting
- these bugs.
-
- * pfm-read.c: (read_header) Improve error message for many cases
- in which the input is not actually a portable file.
-
- * file-handle.q: (fh_open) When we give an error message, actually
- return NULL.
-
-Fri Mar 11 11:50:30 2005 Ben Pfaff <blp@gnu.org>
-
- * format.c: (check_common_specifier) New function for checks
- common to check_input_specifier() and check_output_specifier().
- (check_input_specifier) Use check_common_specifier().
- (check_output_specifier) Use check_common_specifier().
- (check_string_specifier) Removed.
- (check_specifier_type) New function.
- (check_specifier_width) New function.
- (get_format_var_width) Fix bug.
-
- * formats.c: (internal_cmd_formats) Only accept numeric variables.
-
- * lexer.c: (check_id) Rename lex_id_to_token(), make public,
- update all references. Make case-insensitive.
-
- * pfm-read.c: Essentially rewrite the whole file. Now much
- cleaner.
-
- * print.c: (check_string_width) New function.
- (fixed_parse_compatible) Use check_string_width(),
- check_specifier_type().
- (dump_fmt_list) Ditto.
-
- * str.c: (st_trim_copy) New function.
- (st_uppercase) New function.
-
- * vars-atr.c: (var_is_valid_name) New function.
-
- * expressions/parse.c: (type_coercion_core) Use
- check_specifier_type().
-
-Fri Mar 11 11:31:24 2005 Ben Pfaff <blp@gnu.org>
-
- * expressions/evaluate.c: (cmd_debug_evaluate) Fix memory leaks.
-
- * expressions/parse.c: (no_match) Ditto.
-
-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
-
- * permissions.c Inhibited the PERMISSIONS command when SAFER is on.
-
- * command.def Added a lot more unimplemented commands.
-
- * copyleft.[ch] cmdline.c Moved legal information to copyleft.c
-
-Sat Jan 8 23:58:34 2005 Ben Pfaff <blp@gnu.org>
-
- * sort.c: (compare_initial_runs) Needed additional level of
- dereferencing.
- (merge_once) Fix plenty of stupid mistakes.
-
-Sat Jan 8 23:55:27 2005 Ben Pfaff <blp@gnu.org>
-
- * casefile.c: (casefile_sleep) Need to flush_buffer() after
- calling casefile_to_disk() or we will lose the last block in the
- file if the casefile started out as disk-based.
- (casefile_get_reader) Initialize reader->destructive to 0.
- (cmd_debug_casefile) Add new test pattern.
- (test_casefile) Define new test pattern to make sure
- casefile_sleep() works properly.
-
-Fri Jan 7 08:00:05 WST 2005 John Darrington <john@darrington.wattle.id.au>
-
- * Makefile.am chart.[ch] histogram.[ch] piechart.c (Modified);
- plot-hist.c plot-chart.c (Added) Reorganised these files in an
- attempt to seperate the creation and processing of charts from their
- actuall renedering.
-
- * examine.q frequencies.q generated charts conditional upon the NO_CHARTS
- macro.
-
-Thu Jan 6 18:48:58 WST 2005 John Darrington <john@darrington.wattle.id.au>
-
- * main.c Added a signal handler for SIGFPE
-
- * sort.c Somewhat more robust fix to the previous entry.
-
-Wed Jan 5 21:23:31 2005 Ben Pfaff <blp@gnu.org>
-
- * sort.c: (merge) Fix assertion for proper Huffman merge pattern:
- 0 == 1 modulo 1. See Knuth 5.4.9 (vol. 3, 2nd ed.,
- pp. 361). Thanks to John Darrington <john@cellform.com.au> for
- reporting the bug.
-
-Wed Jan 5 22:42:26 WST 2005 John Darrington <john@darrington.wattle.id.au>
-
- * case.h Fixed bug # 11307
-
-Wed Jan 5 08:30:48 WST 2005 John Darrington <john@darrington.wattle.id.au>
-
- * val-labs.c Fixed bug which caused a crash if VALUE LABELS had
- a trailing slash.
-
-Mon Jan 3 17:44:37 2005 Ben Pfaff <blp@gnu.org>
-
- * pfm-read.c: (read_variables) Remove direct manipulation of
- v->aux, which is no longer needed. Fixes bug 11483.
-
-Sat Jan 1 19:01:16 WST 2005 John Darrington <john@darrington.wattle.id.au>
-
- * data-list.c Fixed a bug in parsing delimiters.
-
- * group.c vars-atr.c Fixed buglet in hash/compare functions for alpha
- values.
-
- * percentiles.c Properly handled calculation of Tukey hinges where
- the number of data is small.
-
- * oneway.q Used the generic value_to_string function for independent
- variable instead of trying to do it ourselves.
-
- * box-whisker.c Fixed a buglet which caused a crash if the number of
- data was zero
-
-
-Fri Dec 31 16:47:45 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * examine.q box-whisker.c chart.h Implemented boxplots in EXAMINE
-
- * percentiles.c Fixed some bugs when calculating percentiles when
- there's a small number of cases.
-
-Wed Dec 29 08:18:08 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * percentiles.[ch] Added. Calculates percentiles and Tukey hinges
-
- * examine.q factor_stats.[ch] Added calculation of percentiles
-
-Fri Dec 24 15:09:11 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * t-test.q Fixed bug #11227 Made t-test work when the independent
- variable is alpha
-
-Sat Dec 11 11:43:45 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * factor_stats.c Fixed calculation of trimmed mean under various
- special conditions.
-
-Sat Dec 4 17:14:45 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * histogram.c chart.[ch] factor_stats.c frequencies.q
-
- Added code to calculate sensible histogram ranges and limits.
-
-Thu Dec 2 13:37:43 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * chart.h Updated to reflect many API changes.
-
- * cartesian.c chart.c Moved the definitions of chart_write_{xy}scale from
- cartesian.c and into chart.c
-
- * factorstats.[ch] Added the histogram calculations
-
- * casefile.c Removed an unused variable.
-
- * frequencies.q examine.q histogram.c Reworked the API for
- histograms.
-
- * piechart.c Revised the API for piecharts.
-
- * var.h Moved the definitions of freq_tab and freq out of var.h
- and into frequencies.q where they belong.
-
-Tue Nov 30 21:10:20 2004 Ben Pfaff <blp@gnu.org>
-
- * flip.c: (flip_file) Check for off_t separately from fseeko(),
- using AC_TYPE_OFF_T.
-
-Tue Nov 30 08:47:41 2004 Ben Pfaff <blp@gnu.org>
-
- * flip.c: (flip_file) If fseeko() is not available, use long int
- for off_t. Thanks to "Marshall DeBerry" <mdb@radix.net> for
- reporting the problem.
-
-Mon Nov 29 12:20:59 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * examine.q factor_stats.[ch] Changed stderr to se_mean to avoid
- conflict with stdio.
-
-Sun Nov 21 10:32:41 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * var-labs.c (var_to_string) Now returns null if the variable is null
-
- * value-labels.c (value_to_string) Made it return null if either the
- value or the variable is null.
-
- * hash.c (hsh_clear) Fixed a buglet.
-
- * examine.q factor_stats.[ch] Largely rewrote, because I'd started
- with the wrong model.
-
- * casefile.[ch] Added a function to return the casereader.case_idx
- member
-
- * examine.q Implemented the extreme values results.
-
-John Darrington <john@darrington.wattle.id.au>
-
- * settings.h set.c glob.[ch] frequencies.q q2c.c error.c lexer.[ch]
- output.[ch] getline.c
-
- Plugged some memory leaks
-
-Mon Nov 15 23:47:40 2004 Ben Pfaff <blp@gnu.org>
-
- Adopt GSL random number generators, paving the way for providing
- the complete suite of random number generators on expressions.
-
- * Makefile.am: Remove random.c, random.h.
-
- * random.c: Removed.
-
- * random.h: Removed.
-
- * algorithm.c: (algo_default_random) Use GSL functions.
-
- * casefile.c: (test_casefile) Use GSL RNG functions.
-
- * expr-evl.c: (expr_evaluate) Use GSL RNG functions for OP_NORMAL,
- OP_UNIFORM.
-
- * sample.c: (cmd_sample) Use GSL RNG functions.
- (sample_trns_proc) Ditto.
-
- * set.q: (static var set_seed) Removed.
- (static var seed_flag) Removed.
- (static var rng) New variable.
- (aux_stc_custom_seed) No seed value anymore, don't print anything.
- (stc_custom_seed) Use new seed functions.
- (seed_is_set) Removed.
- (get_rng) New function that composes the entire external
- interface.
- (set_rng) New function.
- (random_seed) New function.
-
-Mon Nov 15 22:08:25 2004 Ben Pfaff <blp@gnu.org>
-
- * expr-evl.c: (expr_evaluate) Fix XDATE.JDAY formula. Thanks to
- John Darrington <john@darrington.wattle.id.au> for reporting this
- bug.
-
-Tue Nov 16 13:19:18 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * permissions.c command.def Added the PERMISSIONS command
-
-Mon Nov 15 01:33:32 2004 Ben Pfaff <blp@gnu.org>
-
- * q2c.c: (dump_header) Don't try to emit #includes at very top of
- output file because that will precede #include <config.h>, which
- is bad.
- (main) Add needed headers to /* (header) */ code.
-
-Mon Nov 15 01:21:36 2004 Ben Pfaff <blp@gnu.org>
-
- Instead of making system or portable file readers responsible for
- dropping and reordering variables, make them read full cases and
- let the caller take care of any changes.
-
- * get.c: New "case map" structure to handle this. Use for GET,
- IMPORT, MATCH FILES. Essentially rewrite the whole file.
-
- * pfm-read.c: (pfm_read_case) Read into provided case. Signature
- changed appropriately.
-
- * sfm-read.c: (sfm_read_case) Ditto.
-
-Mon Nov 15 00:47:45 2004 Ben Pfaff <blp@gnu.org>
-
- Decided that case_serialize() and case_unserialize() were too
- abstract. Also we need a couple more functions to avoid excessive
- copying for data in/out fast paths.
-
- * case.c: (case_serial_size) Removed.
- (case_serialize) Rename case_to_values() and make its argument
- explicitly an array of union values.
- (case_unserialize) Rename case_from_values() and make its argument
- explicitly an array of union values.
- (case_data_all) New function.
- (case_data_all_rw) New function.
-
- * casefile.c: (struct casefile) Change buffer from array of
- unsigned char to array of union value for better accuracy.
- Redefine buffer_used and buffer_size in terms of values, not
- bytes. Remove case_size because it is now redundant with
- value_cnt. Fix up all references to these members.
-
-Mon Nov 15 00:45:46 2004 Ben Pfaff <blp@gnu.org>
-
- * barchart.c: (struct subcat) Make `label' member const to silence
- GCC warning with -Wwrite-strings.
-
- * cartesian.c: (struct dataset) Ditto.
-
- * case.c: Don't re-define NDEBUG if already defined.
- Add lots of comments.
-
- * str.c: Fix includes.
-
- * crosstabs.q: Fix includes.
-
- * examine.q: Fix includes. Fix GCC warning about unused
- variables.
-
- * frequencies.q: (stat macro) Removed and replaced where used by
- its expansion.
-
- * list.q: Fix includes.
-
- * oneway.q: Fix includes.
-
- * piechart.c: Fix includes. Only define M_PI if not already
- defined.
-
- * sfm-read.c: (bswap) New function.
- (bswap_int32) Write in terms of bswap.
- (bswap_flt64) Ditto.
-
- * str.c: (ds_data) Add external definition here, needed because
- str.h has only an `extern inline' version.
-
- * value-labels.c: Fix includes.
-
-Mon Nov 15 00:40:55 2004 Ben Pfaff <blp@gnu.org>
-
- Instead of providing a system or portable file writer with a raw
- case in the format needed for output, provide it with a regular
- case. The writer takes care of any needed translation.
-
- * aggregate.c: Adopt new scheme for AGGREGATE.
- (struct agr_proc) sfm_agr_case member removed.
- (write_case_to_sfm) Removed because the new interface is easier to
- use.
-
- * get.c: Adopt new scheme for SAVE, XSAVE, EXPORT.
-
- * pfm-write.c: Implement new scheme.
-
- * sfm-write.c: Ditto.
-
-Mon Nov 15 00:32:24 2004 Ben Pfaff <blp@gnu.org>
-
- Instead of treating `struct file_handle' as a class to subclass
- into data files, system files, and portable files, instead use it
- as a helper that coordinates access. Now it is opaque, too.
-
- This means that most references to a struct file_handle are now
- changed into references to one of struct dfm_reader, struct
- dfm_writer, struct sfm_reader, struct sfm_writer, struct
- pfm_reader, or struct pfm_writer, according to what's being read
- or written.
-
- Most related changes are only worth summarizing briefly.
-
- * dictionary.c: (dict_clear) Destroy aux data in deleted
- variables.
- (dict_clear_aux) New function.
- (dict_create_var) Initialize aux, aux_dtor.
- (dict_delete_var) Destroy aux data in deleted variable.
-
- * file-handle.h: (struct fh_ext_class) Removed.
- (struct file_handle) Removed.
- (fh_init_files) Removed.
-
- * file-handle.q: Changed references to a handle's `private' member
- to direct references.
- (struct private_file_handle) Renamed file_handle.
- Add next, open_cnt, type, open_mode, aux members.
- (struct file_handle_list) Removed.
- (extern var inline_file) Removed.
- (static var file_handles) Changed from file_handle_list * to
- file_handle *.
- (create_file_handle) Initialize new members.
- (fh_close_handle) Removed.
- (mode_name) New function.
- (fh_open) New function.
- (fh_close) New function.
- (fh_parse_file_handle) Renamed fh_parse().
-
- * glob.c: (init_glob) Remove fh_init_files() call.
-
- * aggregate.c: use sfm_writer.
- (create_sysfile) Removed because the new interface is simpler.
-
- * apply-dict.c: Use sfm_reader.
-
- * data-list.c: Use dfm_reader.
-
- * file-type.c: Use dfm_reader.
-
- * get.c: Use sfm_reader, sfm_writer, pfm_reader, pfm_writer.
-
- * inpt-pgm.c: Use dfm_reader.
-
- * print.c: Use dfm_writer.
-
- * sysfile-info: Use sfm_reader.
-
- * dfm-read.c: Adopt new file handle infrastructure.
-
- * dfm-write.c: Ditto.
-
- * pfm-read.c: Ditto.
-
- * pfm-write.c: Ditto.
-
- * sfm-read.c: Ditto.
-
- * sfm-write.c: Ditto.
-
-Mon Nov 15 00:31:44 2004 Ben Pfaff <blp@gnu.org>
-
- Break dictionary functions into separate header file.
-
- * dictionary.h: New file.
-
- * var.h: Moved dict_*() functions to dictionary.h.
-
-Mon Nov 15 00:30:33 2004 Ben Pfaff <blp@gnu.org>
-
- Get rid of procedure-specific union in struct variable, using
- instead a void * pointer and a destructor function.
-
- Most related changes are only worth brief summaries.
-
- * crosstabs.q: Fix includes. Use new struct var_range in lieu of
- old p.crs member in struct variable.
-
- * frequencies.q: Fix includes. Use new struct var_freqs in lieu
- of old p.frq member in struct variable.
-
- * histogram.c: (draw_histogram) Takes new freq_tab arg because
- it's no longer possible to grab this from var->p.frq.
-
- * piechart.c: (draw_piechart) Ditto.
-
- * group.c: (group_proc_get) New function.
-
- * levene.c: Use group_proc_get() in lieu of old p.grp_data member
- in struct variable.
-
- * oneway.q: Ditto.
-
- * t-test.q: Ditto.
-
- * main.c: (execute_command) Clear aux data in default_dict after
- each command. (It's debatable whether this should be done.)
-
- * matrix-data.c: Use new struct mxd_var in lieu of old p.mxd
- member in struct variable.
-
- * means.q: Get rid of integer mode, which is not included in
- recent SPSS and was the only code that wanted per-variable private
- data.
-
- * var.h: (struct crosstab_proc) Removed.
- (struct frequencies_proc) Removed.
- (struct list_proc) Removed.
- (struct get_proc) Removed.
- (struct means_proc) Removed.
- (struct matrix_data_proc) Removed.
- (struct match_files_proc) Removed.
- (lots of enums) Removed.
- (struct variable) Removed members `p', `get'. Add member
- `aux_dtor'.
-
- * vars-atr.c: (var_attach_aux) New function.
- (var_detach_aux) New function.
- (var_clear_aux) New function.
- (var_dtor_free) New function.
- (discard_variables) Use NULL instead of inline_file.
-
-Fri Nov 12 10:07:11 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * value-labs.c Fixed the implmentation of value_to_string, so
- that it properly handles alpha values.
-
- * oneway.q Changed instances where labels were being probed manually,
- to use the canonical {var,value}_to_string functions
-
-Thu Nov 11 21:01:31 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * examine.q cartesian.c chart.[ch] Added normal and detrended normal
- plots. Changed the API of the cartesian plot to be a much lower level
- thing.
-
-Sun Nov 7 17:25:04 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * examine.q Added some of the parametric calculations
-
- * factor_stats.[ch] Created
-
-Sat Nov 6 21:24:31 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * examine.q Changed the definition of factors to be a composite, and
- dealt with the consequences.
-
-Sat Nov 6 20:40:38 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * examine.q Fixed problem where examine wasn't dealing properly with
- splits
-
-Sat Nov 6 14:49:47 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * oneway.q Fixed problem where oneway wasn't dealing properly with
- splits
-
-Thu Nov 4 11:09:01 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * q2c.c examine.q Fixed a bug (feature?) whereby arrays in the
- command which had settings didn't get the appropriate code
- generated.
-
- * val.h value-labels.[ch] var-labs.c Added v*to_string functions
- to convert variables/values to strings.
-
- * examine.q Added framework for the EXAMINE command.
-
-Mon Nov 1 12:46:17 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * q2c.c frequencies.q set.q t-test.q Fixed the q2c parsing of DBL
- subcommand types. Changed frequencies.q to use it rather then the
- custom parser. Dealt with the consequences. Added a test for NTILES
- subcommand of frequencies.
-
-Sat Oct 30 09:16:29 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * oneway.q Fixed up the behaviour when given missing values
-
- * levene.c oneway.q Fixed a buglet with the levene statistic and
- incorporated the levene test into the oneway command.
-
- * group.h t-test.q Moved the CMP_EQ and CMP_LE symbols out of
- global scope, since they're only relevant to T-TEST
-
-Fri Oct 29 17:39:03 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * group.c group.h group_proc.h levene.c oneway.q t-test.q
-
- Made the t-test more consistent
- with the way it handles groups. That is, it now uses a hash instead
- of an array of 2. Also, made the levene.c file independent of the
- implementation of the t-test. So now levene should be fine for both
- t-test and anova.
-
- * Added an oneway.q file for one way anova
-
-Wed Jun 2 22:08:02 2004 Ben Pfaff <blp@gnu.org>
-
- * descript.c: (cmd_descriptives) Remove harmless but bogus test in
- STATISTICS parsing.
-
-Mon May 31 20:45:24 2004 Ben Pfaff <blp@gnu.org>
-
- Fix memory leaks.
-
- * data-list.c: (cmd_data_list) Free dls->delims on lossage.
- (data_list_trns_free) Free dls->delims.
-
- * t-test.q: (tts_custom_pairs) Free vars.
- (ssbox_one_sample_init) Fix tab_vline() argument.
- (ssbox_independent_samples_init) Ditto.
- (trbox_paired_init) Ditto.
- (trbox_one_sample_init) Ditto.
-
-Mon May 31 17:19:27 2004 Ben Pfaff <blp@gnu.org>
-
- Generalize casefiles to the extent that we can use them for
- sorting and other kinds of data transformations. Change cases to
- be copy-on-write to improve memory efficiency in common cases.
- Every access to a member of a `struct ccase' was changed to be a
- call to a case_*() function, especially case_data(), case_num(),
- case_str(), or case_data_rw(). Many instances of a local variable
- named "case_num" were changed to "case_idx" as a consequence.
- Many `struct ccase *' were changed to actual `struct ccase'
- because of copying semantics of cases. In several places there
- was a choice between updating debug code to work with the new ADTs
- or just deleting it because it was useless; I chose to delete it.
-
- * Makefile.am: (pspp_SOURCES) Add case.c, case.h.
-
- * case.c: New file.
-
- * case.h: New file.
-
- * aggregate.c: (struct agr_proc) Change type of `sort' to
- sort_criteria *. Add `break_vars', `break_var_cnt' members.
- Rename `vars' to `agr_vars', all references updated. Change
- `agr_case' to type `struct ccase'.
- (cmd_aggregate) Deal with new members. Use case_create(),
- sort_active_file_in_place(), sort_active_file_to_casefile().
- (agr_destroy) Deal with new members.
- (aggregate_single_case) Ditto.
- (dump_aggregate_info) Ditto.
- (initialize_aggregate_info) Ditto.
- (agr_to_active_file) Ditto.
- (presorted_agr_to_sysfile) Ditto.
- (sort_agr_to_sysfile) Removed.
-
- * alloc.c: (out_of_memory) Make non-static.
-
- * alloc.h: Prototype out_of_memory().
-
- * casefile.c: Switched from a linked list in-memory representation
- to a two-level array-style representation. The linked list was
- appropriate when we could stick a header onto cases, but that's no
- longer the case. Also, the two-level array will allow for random
- in-memory access in case that's ever wanted. Also added the
- concept of a `destructive casereader', one that destroys cases in
- the underlying casefile as they are read out.
- (macro CASES_PER_BLOCK) New macro.
- (struct casefile) New members `value_cnt', `case_list_size',
- `case_acct_size', `being_destroyed', `cases'. Removed `head',
- `tail'.
- (struct casereader) Removed `cur'. Added `destructive', `c'.
- (global var casefiles) Made static.
- (static var case_bytes) New var.
- (casefile_create) Takes a value count, not a case size in bytes,
- to conform to the case interface. All callers updated. Deal with
- new and removed members.
- (casefile_destroy) Deal with new and removed members.
- (casefile_sleep) New function.
- (casefile_get_case_size) Removed.
- (casefile_get_value_cnt) New function.
- (casefile_append) Rewritten to deal with new and removed members.
- (casefile_append_xfer) New function.
- (write_case_to_disk) Use case_serialize().
- (call_posix_fadvise) Removed because posix_fadvise64 segfaults.
- Couldn't figure out why.
- (casefile_to_disk) Don't call call_posix_fadvise. Rewritten to
- deal with new and removed members.
- (merge) Removed.
- (merge_sort) Removed.
- (casefile_sort) Removed.
- (casefile_get_reader) Deal with new and removed members.
- (casefile_get_destructive_reader) New function.
- (reader_open_file) Make code more readable. Create case for
- reader.
- (casereader_get_casefile) New function.
- (casereader_read) Deal with new and removed members. Now returns
- a copy of the case, so that the caller is responsible for
- destroying the returned case.
- (casereader_read_xfer) New function.
- (casereader_destroy) Destroy reader's case.
- (test_casefile) Second arg is now a value count, all callers
- updated. Now tests destructive readers too.
- (get_random_case) Deal with new case ADT.
- (write_random_case) Ditto.
- (read_and_verify_random_case) Ditto.
-
- * crosstabs.q: Remove debug code.
-
- * descript.q: (calc_descriptives) Deal with new case, casefile
- ADTs.
-
- * dfm.c: (cmd_begin_data) There's no storage_source_class anymore.
-
- * do-if.c: Remove unneeded header inclusion.
-
- * expr-prs.c: Remove debug code.
-
- * exprP.h: Remove debug code.
-
- * flip.c: (flip_file) Use fseeko() if available.
-
- * formats.c: Remove debug code.
-
- * get.c: Remove debug code.
- (struct mtf_file) Change `input' from `union value *' to `struct
- ccase', all references updated.
-
- * levene.c: (levene) Deal with new case, casefile ADTs.
-
- * list.q: Remove debug code.
-
- * loop.c: Remove debug code.
-
- * matrix-data.c: Remove debug code.
-
- * means.q: Remove debug code.
-
- * mis-val.c: Remove debug code.
-
- * pfm-read.c: Remove debug code.
- (pfm_read_code) Change second arg from `union value *' to `struct
- ccase *', all references updated.
-
- * recode.c: (string_to_long) Make first arg const.
- (convert_to_double) Ditto.
-
- * repeat.c: Remove debug code.
-
- * sample.c: Remove debug code.
-
- * sfm-read.c: Remove debug code.
- (sfm_read_case) Change second arg from `union value *' to `struct
- ccase *'.
-
- * sort.c: Redone in terms of casefiles.
- (enum sort_direction) Moved here from sort.h.
- (struct sort_criterion) New structure.
- (struct sort_criteria) New structure.
- (cmd_sort_cases) Rewritten.
- (prepare_to_sort_active_file) New function.
- (sort_active_file_in_place) New function.
- (sort_active_file_to_casefile) New function.
- (parse_sort) Renamed sort_parse_criteria(), rewritten & interface
- changed, all callers updated.
- (destroy_sort_cases_pgm) Renamed sort_destroy_criteria(),
- rewritten & interface changed, all callers updated.
- (sort_cases) Renamed sort_execute(), rewritten & interface
- changed, all callers updated.
- (struct internal_sort) Removed.
- (do_internal_sort) Rewritten, interface changed.
- (destroy_internal_sort) Removed.
- (compare_case_dblptrs) Use sort_criteria instead of sort_case_pgm.
- (struct initial_run) Removed; an initial run is now just a
- casefile.
- (compare_initial_runs) Rewritten.
- (struct external_sort) Changed almost completely.
- (do_external_sort) Rewritten, interface changed.
- (destroy_external_sort) Rewritten.
- [HAVE_MKDTEMP] (make_temp_dir) Removed.
- [!HAVE_MKDTEMP] (do_mkdir) Removed.
- [!HAVE_MKDTEMP] (make_temp_dir) Removed.
- (init_external_sort) Removed.
- (simulate_error) Removed.
- (rmdir_temp_dir) Removed.
- (get_temp_file_name) Removed.
- (open_temp_file) Removed.
- (close_temp_file) Removed.
- (remove_temp_file) Removed.
- (write_temp_file) Removed.
- (read_temp_file) Removed.
- (struct record_run) Change `record' from `struct case_lit *' to
- `struct ccase'.
- (struct initial_run_state) Remove `idx_to_fv', `free_list',
- `file_idx', `output_file'. Add `run', casefile'. Change
- `last_output' from `struct case_list *' to `struct ccase'.
- (write_initial_runs) Change interface, rewrite.
- (sort_sink_write) Renamed process_case(), changed interfaced,
- rewrote.
- (destroy_initial_run_state) Rewritten.
- (allocate_cases) Rewritten.
- (compare_record) Interface changed, rewritten.
- (start_run) Rewritten.
- (end_run) Rewritten.
- (output_record) Rewritten.
- (grab_case) Removed.
- (release_case) Removed.
- (struct merge_case) Change `cases' from double pointer to single
- pointer.
- (merge) Deal with new case and casefile ADTs.
- (struct run) Removed.
- (merge_once) Rewritten, interface changed.
- (fill_run_buffer) Removed.
- (sort_sink_make_source) Removed.
- (sort_sink_class) Removed.
- (struct sort_source_aux) Removed.
- (sort_source_read_helper) Removed.
- (sort_source_read) Removed.
- (read_sort_output) Removed.
- (read_internal_sort_output) Removed.
- (read_external_sort_output) Removed.
- (sort_source_destroy) Removed.
- (sort_source_class) Removed.
-
- * sort.h: (struct sort_cases_pgm) Removed.
- (enum sort_direction) Moved to sort.c.
-
- * t-test.q: (calculate) Deal with new case, casefile ADTs.
-
- * tab.c: Remove debug code.
-
- * var-labs.c: Remove debug code.
-
- * var.h: (struct ccase) Removed.
- (struct case_list) Removed.
-
- * vars-atr.c: (discard_variables) Use free_case_source().
-
- * vars-prs.c: (parse_vs_variable) Make arg const.
- (parse_dict_variable) Ditto.
- (parse_variables) Make struct dictionary * arg const.
- (parse_var_set_vars) Make struct var_set * arg const.
- (struct var_set) Add const to some of the function pointers' args.
- (var_set_get_cnt) Make arg const.
- (var_set_get_var) Make first arg const.
- (var_set_lookup_var) Make first arg const.
- (dict_var_set_get_cnt) Make arg const.
- (dict_var_set_get_var) Make first arg const.
- (dict_var_set_lookup_var) Make first arg const.
- (var_set_create_from_dict) Make arg const. Add cast to aux
- assignment.
- (struct array_var_set) Add const to var member.
- (array_var_set_get_cnt) Make arg const.
- (array_var_set_get_var) Make first arg const.
- (array_var_set_lookup_var) Make first arg const.
- (var_set_create_from_array) Make first arg const. Insert cast.
-
- * vfm.c: (struct write_case_data) Change trns_case, sink_case
- members from `struct ccase *' to `struct ccase'.
- (static var lag_queue) Change from double to single pointer.
- (procedure) Optimize trivial case.
- (internal_procedure) Deal with changed case, case_source ADTs.
- (create_trns_case) Changed interface, rewrote.
- (open_active_interface) Initialize modified lag queue.
- (write_case) Deal with changed case ADT.
- (lag_case) Deal with modified lag queue.
- (close_active_file) Destroy modified lag queue.
- Deal with changed case_source, case_sink ADTs.
- (destroy_storage_stream_info) Make null arg into no-op.
- (storage_sink_make_source) Set aux in created source.
- (storage_source_read) Deal with changed case, casefile ADTs.
- (storage_source_create) New function.
- (lagged_case) Rewrite.
- (free_case_source) New function.
- (free_case_sink) Rewrite.
- (struct split_aux_data) Changed prev_case from `struct ccase *' to
- `struct ccase'.
- (procedure_with_splits) Deal with changed prev_case.
- (procedure_with_splits_callback) Ditto.
- (multipass_split_aux_data) Changed prev_case from `struct ccase *' to
- `struct ccase'.
- (multipass_procedure_with_splits) Deal with changed prev_case.
- (multipass_split_callback) Ditto.
-
-
-Mon May 31 17:19:06 2004 Ben Pfaff <blp@gnu.org>
-
- The workspace idea didn't work out.
-
- * Makefile.am: (pspp_SOURCES) Remove workspace.c, workspace.h.
-
- * workspace.c: Removed.
-
- * workspace.h: Removed.
-
-Sun May 30 18:35:19 2004 Ben Pfaff <blp@gnu.org>
-
- Fully implement arbitrary delimiters on DATA LIST, extending the
- half implementation that was already there.
-
- * data-list.c: (struct data_list_pgm) Remove `delim', add
- `delims', `delim_cnt'.
- (cmd_data_list) Initialize new members. Parse delimiters and
- clean up code a bit.
- (cut_field) Extract fields with arbitrary delimiters. Also, fix
- handling of leading commas.
- (read_from_data_list_fixed) Expand tabs. Adapt to new DFM
- interfaces.
- (read_from_data_list_free) Adapt to new DFM interfaces.
- (read_from_data_list_list) Ditto.
- (repeating_data_trns_proc) Ditto.
-
- * dfm.c: Split up reader and writer into separate code, because
- they do different things. Use struct string instead of explicit
- allocation code, for clarity.
- (enum dfm_reader_flags) New enum.
- (struct dfm_fhuser_ext) Removed.
- (struct dfm_reader_ext) New.
- (get_reader) New function, used by just about all the reader
- functions.
- (dfm_close) Removed.
- (close_reader) New function.
- (dfm_open_for_reading) Rewrite initialization of dfm_fhuser_ext.
- (dfm_open_for_writing) Ditto.
- (macro force_line_buffer_expansion) Removed.
- (count_tabs) Removed.
- (tabs_to_spaces) Removed.
- (read_record) Deal with new dfm_reader_ext. Use struct string
- functions. Don't convert tabs to spaces.
- (dfm_eof) New function.
- (dfm_get_record) Changed interface, rewrote.
- (dfm_expand_tabs) New function.
- (dfm_fwd_record) Renamed dfm_forward_record(), updated to new
- dfm_reader_ext, rewritten.
- (dfm_bkwd_record) Renamed dfm_reread_record(), updated to new
- dfm_reader_ext, rewritten.
- (dfm_set_record) Removed in favor of dfm_forward_columns().
- (dfm_forward_columns) New function.
- (dfm_get_cur_col) Renamed dfm_column_start, updated to new
- dfm_reader_ext, rewritten.
- (static var dfm_r_class) Use close_reader for the destructor.
- (struct dfm_writer_ext) New.
- (dfm_put_record) Updated to new dfm_writer_ext, rewritten. Uses
- bounce buffer now instead of local allocation.
- (close_writer) New function.
- (static var dfm_writer_ext) Use close_writer for destructor.
- (cmd_begin_data) Adapt to new dfm_reader_ext.
-
- * file-handle.q: Add support for per-file tab width.
- (struct private_file_handle) Add tab_width member.
- (q2c specifications) Add tabwidth subcommand.
- (cmd_file_handle) Put parsed tab width into private_file_handle.
- (create_file_handle) Set default tab width.
- (handle_get_tab_width) New function.
-
- * file-type.c: (file_type_source_read) Adapt to new DFM interface.
-
- * inpt-pgm.c: (reread_trns_proc) Ditto.
-
- * matrix-data.c: (context) Ditto.
- (another_token) Ditto.
- (mget_token) Ditto.
- (force_eol) Ditto.
-
-Sun May 30 18:33:59 2004 Ben Pfaff <blp@gnu.org>
-
- * casefile.c: (casefile_destroy) Fix memory leak by freeing
- cf->filename.
- (casereader_destroy) Don't close file descriptor -1.
-
- * recode.c: (cmd_recode) Fix memory leak.
-
- * set.q: (q2c specifications) Fix typo in user message.
-
- * str.c: (st_bare_pad_len_copy) Change memcpy to memmove to avoid
- undefined behavior for overlapping arguments.
-
-Sun May 30 18:31:48 2004 Ben Pfaff <blp@gnu.org>
-
- * casefile.c: valgrind doesn't implement posix_fadvise() yet, so
- don't call it when we're running under valgrind.
- (call_posix_fadvise) New function.
- (casefile_to_disk) Use call_posix_fadvise().
- (reader_open_file) Ditto.
-
-Sun May 30 18:20:12 2004 Ben Pfaff <blp@gnu.org>
-
- Update our string ADTs, struct string and struct len_string. Get
- rid of pool support, which was largely unused. Rename lots of
- functions to have more obvious or consistent names.
-
- * ascii.c: Get rid of ascii_pool. It was only used for string
- allocations.
- (ascii_open_global) Don't create ascii_pool.
- (ascii_close_driver) Don't destroy ascii_pool.
- (ascii_postopen_driver) Don't use pool.
- (ascii_close_driver) Destroy strings manually.
-
- * str.c: (ds_create) Remove pool argument, all references updated.
- (ds_init) Ditto.
- (ds_replace) Remove pool support, make more efficient when we
- don't need to reallocate.
- (ds_destroy) Remove pool support.
- (ds_rpad) New function.
- (ds_size) Renamed ds_capacity(), all references updated.
- (ds_value) Renamed ds_c_str(), all references updated.
- (ds_concat) Renamed ds_puts(), all references updated.
- (ds_concat_buffer) Renamed ds_concat(), all references updated.
- (ds_putchar) Renamed ds_putc(), all references updated.
- (ds_getline) Renamed ds_gets(), all references updated.
- (ls_create) Remove pool argument, all references updated.
- (ls_create_buffer) Ditto.
- (ls_destroy) Removed pool support.
- (ls_value) Renamed ls_c_str(), all references updated.
-
- * str.h: (ls_length) [__GNUC__] Add inline version.
- (ls_c_str) [__GNUC__] Add inline version.
- (ls_end) [__GNUC__] Add inline version.
- (struct string) Remove pool member. Rename `size' to `capacity',
- all references updated.
-
- * tab.c: (text_format) Instead of using pool argument to
- ls_create_buffer(), call pool_register() on allocated data.
-
-Mon Apr 26 22:40:07 2004 Ben Pfaff <blp@gnu.org>
-
- We're abusing the current ASCII driver by telling it to allocate a
- 9999-line, 9999-character page in the tests. This causes some
- systems to curl up and die because it allocates 20 MB of
- contiguous RAM. This change alleviates at least part of the
- problem. It is mostly a stop-gap until the new output system is
- ready.
-
- * ascii.c: (struct line) New structure.
- (struct ascii_driver_ext) Remove `page', `page_size', `line_len',
- `line_len_size', `n_output' members. Add `lines', `lines_cap'.
- (ascii_preopen_driver) Initialize new members, not old ones.
- (ascii_close_driver) Destroy new members, not old ones.
- (ascii_open_page) Allocate new members, not old ones.
- (expand_line) Allocate room in line.
- (draw_line) Use new members.
- (ascii_line_horz) Ditto.
- (ascii_line_vert) Ditto.
- (ascii_line_intersection) Ditto.
- (text_draw) Ditto.
- (output_lines) Ditto.
- (ascii_close_page) Ditto.
-
-Sun Apr 25 23:40:15 2004 Ben Pfaff <blp@gnu.org>
-
- * matrix.c: Dead code. Removed.
-
- * matrix.h: Dead code. Removed.
-
-Fri Apr 16 23:59:51 2004 Ben Pfaff <blp@gnu.org>
-
- Contrary to what I'd always understood, there is an efficient
- algorithm for deletion from a hash table populated via linear
- probing. This change implements it.
-
- * hash.c: (hsh_rehash) Probe in increasing order.
- (hsh_probe) Ditto.
- (locate_matching_entry) Ditto.
- (hsh_delete) Use Knuth's Algorithm 6.4R for deletion.
-
-Tue Apr 13 19:24:15 2004 Ben Pfaff <blp@gnu.org>
-
- * moments.c (calc_moments): Adjust calculation of kurtosis to
- avoid subtracting huge numbers from huge numbers, on Michael
- Kiefte's advice.
-
-Sun Apr 11 14:22:12 2004 Ben Pfaff <blp@gnu.org>
-
- Rework moments routines for improved numerical stability based on
- Michael Kiefte's advice. Any bugs or remaining numerical problems
- are still mine though.
-
- There is now a struct moments1 for use with one-pass moments. It
- uses a provisional means algorithm as an attempt to improve
- accuracy of higher moments. The older struct moments now only
- handles two-pass moments.
-
- * aggregate.c: Use moments1 instead moments.
-
- * descript.c: Revert previous change, which is no longer needed
- due to the moments revision.
-
- * moments.c: (calc_moments) New function for calculating variance,
- skewness, kurtosis.
- (moments_pass_one) Only accumulate weights bigger than zero.
- (moments_calculate) Allow calculating the mean on pass one, others
- require pass two. Implement in terms of calc_moments().
- (struct moments1) New structure.
- (init_moments1) New function.
- (moments1_clear) Ditto.
- (moments1_create) Ditto.
- (moments1_add) Ditto.
- (moments1_calculate) Ditto.
- (moments1_destroy) Ditto.
- (cmd_debug_moments) Deal with `struct moments' or `struct
- moments1' as requested by user.
-
-Sun Apr 11 14:21:55 2004 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am (pspp_SOURCES): Remove debug.c.
-
- * debug.c: Removed. It was empty anyway.
-
-Fri Apr 9 20:04:49 2004 Ben Pfaff <blp@gnu.org>
-
- * descript.c (calc_descriptives): Fix assert failure when only
- MOMENT_MEAN is needed.
-
-2004-04-09 Michael Kiefte <mkiefte@dal.ca>
-
- * descript.c:
-
- fixed problem with parsing in match_statistic() causing
- "DESCRIPTIVE STAT=MEAN." to barf.
-
- "MEAN" is now default if "SORT" given without specification.
-
- Fixed infinite loop with "DESCRIPT GIBBERISH=ALL." Parsing is
- generally less forgiving of syntax errors: better to have it do
- nothing and type it in again then to not know what it actually did
- instead.
-
- z-score transformation now checks score for user-missing values
- and checks std_dev for SYSMIS.
-
-2004-04-06 Michael Kiefte <mkiefte@dal.ca>
-
- * aggregate.c, crosstabs.q, descript.c, dictionary.c, frequencies.q, levene.c, t-test.q, var.h:
- Changed dict_get_case_weight() to accept an additional int * flag
- to complain about system-missing, user-missing, zero, or negative
- weights and updated existing functions to pass int * to
- dict_get_case_weight().
-
-2004-04-05 jmd <jmd@gnu.org>
-
- * main.c: Fixed configuration problems with gsl
-
- * t-test.q: Fixed some problems encountered when compiling under Cygwin
-
-2004-04-03 blp <blp@gnu.org>
-
- * lexer.c, ChangeLog:
- Fix infinite loop on comment at end of file, add test.
-
-2004-04-03 jmd <jmd@gnu.org>
-
- * settings.h, var.h, ChangeLog, Makefile.am, cmdline.c, command.c, command.h, error.h, filename.c, frequencies.q, lexer.h, main.c, q2c.c, set.q:
- Fixed the calculation of percentiles and added --syntax and --algorithm options
-
-Sat Apr 3 11:43:37 2004 Ben Pfaff <blp@gnu.org>
-
- * lexer.c: (lex_skip_comment) Handle end-of-file correctly (I
- hope).
-
-Sat Apr 3 15:00:18 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * frequencies.q: Fixed the calculation of percentiles
-
- * Makefile.am: Added the --ansi flag and dealt with the
- consequences. Added some entries to PSPP_sources so that
- make distcheck would pass
-
- * cmdline.c: Added the --syntax and --algorithm options
-
- * q2c.c: Added an implicit /ALGORITHM subcommand to everything.
-
-Fri Apr 2 11:25:22 WAST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * t-test.q, levene.c, levene.h Converted t-test (incl levene) to
- use the new multipass_split_... mechanism.
-
-Wed Mar 31 22:36:22 2004 Ben Pfaff <blp@gnu.org>
-
- * frequencies.q: (calc_stats) Use moments data structure and
- calc_seskew(), calc_sekurt() functions.
-
- * set.q main.c settings.h Added support for --syntax and --algorithm
- options
-
-Tue Mar 30 22:04:19 2004 Ben Pfaff <blp@gnu.org>
-
- * vfm.c: Had to get last call to multipass_split_output() inside
- open_active_file()/close_active_file() pairing, so introduce new
- function.
- (internal_procedure) Move procedure() code here, except for calls
- to open_active_file() and close_active_file().
- (procedure) Wrap open_active_file() and close_active_file() around
- internal_procedure().
- (multipass_procedure_with_splits) Wrap open_active_file() and
- close_active_file() around internal_procedure().
-
-Tue Mar 30 22:01:57 2004 Ben Pfaff <blp@gnu.org>
-
- * descript.c: (cmd_descriptives) Free `vars' to avoid memory leak.
-
-Mon Mar 29 16:26:40 2004 Ben Pfaff <blp@gnu.org>
-
- * debug.c: Removed. Moved cmd_debug_evaluate() into expr-evl.c.
-
- * expr-evl.c: (cmd_debug_evaluate) Moved here from debug.c.
-
-Mon Mar 29 16:03:08 2004 Ben Pfaff <blp@gnu.org>
-
- * algorithm.c: By default turn off some of the more expensive
- assertions.
- (expensive_assert) New macro which expands to assert if
- EXTRA_CHECKS is defined, to nothing otherwise.
- (unique) Use expensive_assert().
- (binary_search) Ditto.
- (push_heap) Ditto.
- (pop_heap) Ditto.
- (make_heap) Ditto.
- (sort_heap) Ditto.
-
- * command.c: (conflicting_3char_prefixes) Words that are the same
- don't cause conflicts when they are abbreviated to the first three
- letters.
-
- * expr-evl.c: (CONCAT_func) Fix memory leak by incrementing struct
- nonterm_node's n earlier.
- (generic_str_func) Ditto.
-
-Mon Mar 29 15:32:17 2004 Ben Pfaff <blp@gnu.org>
-
- Add support for multipass procedures. Rewrite DESCRIPTIVES to
- test multipass support, take advantage of new moments
- calculation, and to not be such crappy code. Get rid of q2c
- processing for DESCRIPTIVES.
-
- * vfm.c: (struct multipass_split_aux_data) New structure.
- (multipass_procedure_with_splits) New function.
- (multipass_split_callback) New function.
- (multipass_split_output) New function.
- * descript.q: Removed.
-
- * descript.c: New file.
-
- * var.h: Removed descriptives enums.
- (struct descriptives_proc) Removed.
- (struct variable) Removed p.dsc.
-
- * Makefile.am: (q_sources_c) Remove descript.c.
- (q_sources_q) Removed descript.q.
-
-Mon Mar 29 15:31:55 2004 Ben Pfaff <blp@gnu.org>
-
- New manager for keeping track of used workspace.
-
- * workspace.c: New file.
-
- * workspace.h: New file.
-
- * Makefile.am: (pspp_SOURCES) Add workspace.c, workspace.h.
-
- * sort.c: (do_internal_sort) Use workspace_malloc().
- (destroy_internal_sort) Use workspace_free().
-
-Mon Mar 29 15:31:08 2004 Ben Pfaff <blp@gnu.org>
-
- New `struct casefile' for managing sets of cases.
-
- * casefile.c: New file.
-
- * casefile.h: New file.
-
- * command.def: Add DEBUG CASEFILE command.
-
- * Makefile.am: (pspp_SOURCES) Add casefile.c, casefile.h.
-
- * sort.c: (sort_cases) Move logic for sending storage file to disk
- into do_external_sort().
- (struct internal_sort) Use an array of ccase pointers instead of a
- case_list.
- (do_internal_sort) Rewrite to handle casefiles.
- (compare_case_list) Removed.
- (compare_cases) New function.
- (compare_case_dblptrs) New function.
- (read_internal_sort_output) Deal with new struct internal_sort.
-
- * vfm.c: (static var workspace_overflow) Removed.
- (struct storage_stream_info) Removed all the members. Added
- struct casefile * member.
- (storage_sink_open) Use casefile.
- (open_storage_file) Removed.
- (write_storage_file) Removed.
- (storage_to_disk) Removed.
- (destroy_storage_stream_info) Use casefile.
- (storage_sink_write) Use casefile.
- (storage_sink_make_source) Use casefile.
- (storage_source_count) Use casefile.
- (storage_source_read) Use casefile.
- (storage_source_on_disk) Removed.
- (storage_source_get_cases) Removed.
- (storage_source_set_cases) Removed.
- (storage_source_get_casefile) New function.
-
-Mon Mar 29 15:30:09 2004 Ben Pfaff <blp@gnu.org>
-
- New `struct moments' for calculating moments.
-
- * stats.c: Removed.
-
- * stats.h: Removed.
-
- * moments.c: New file.
-
- * moments.h: New file.
-
- * command.def: Add DEBUG MOMENTS command.
-
- * Makefile.am: (pspp_SOURCES) Add moments.c, moments.h. Remove
- stats.c, stats.h.
-
- * aggregate.c: Modify AGGREGATE to use the new moments
- calculation, even if not in such a great way.
- (struct agr_var) Add `moments' member.
- (parse_aggregate_functions) Set `moments' member to null.
- (agr_destroy) Destroy `moments' member.
- (accumulate_aggregate_info) Use `moments' for standard deviation.
- (dump_aggregate_info) Ditto.
- (initialize_aggregate_info) Create or clear `moments'.
-
- * misc.h: Add pow2(), pow3(), pow4() functions in place of sqr(),
- cube(), pow4() that were in stats.h. All references updated.
-
- * crosstabs.q: stats.h had chi-square significance functions. Use
- GSL instead.
- (display_chisq) Use gsl_cdf_chisq_Q() instead of chisq_sig().
-
- * expr-evl.c: (expr_evaluate) Use moments_of_values() for
- OP_CFVAR, OP_MEAN, OP_SD, OP_VARIANCE.
-
-Fri Mar 26 14:21:23 2004 Ben Pfaff <blp@gnu.org>
-
- * dictionary.c: (dict_compact_values) Compacted values need to
- start off from 0.
-
-Fri Mar 26 00:54:57 2004 Ben Pfaff <blp@gnu.org>
-
- * var-labs.c: (cmd_variable_labels) For compatibility, don't allow
- `/' at start. Check return value of parse_variables() for error
- return.
-
-Fri Mar 26 00:19:27 2004 Ben Pfaff <blp@gnu.org>
-
- Revamp expressions: make the code a little nicer, and fix bugs
- found in testing.
-
- * expr-evl.c: (expr_evaluate) Make expression argument const.
- Support OP_ADD, OP_SUB, OP_MUL, OP_DIV instead of OP_PLUS, OP_MUL.
- OP_POW is missing for arg 2 <= 0. OP_LOG is natural log, not
- base-10 log. Fix OP_ANY, OP_ANY_STRING, OP_RANGE, OP_RANGE_STRING
- off-by-ones. Add OP_MAX_STRING, OP_MIN_STRING. Fix OP_TIME_HMS,
- OP_DATE_WKYR boundary conditions. Add OP_CTIME_DAYS,
- OP_CTIME_HOURS, OP_CTIME_MINUTES, OP_CTIME_DAYS, OP_CTIME_SECONDS.
- Support OP_INDEX_2, OP_INDEX_3, OP_RINDEX_2, OP_RINDEX_3 instead
- of OP_INDEX, OP_INDEX_OPT, OP_RINDEX, OP_RINDEX_OPT. Merge
- OP_LPAD_OPT into OP_LPAD, OP_RPAD_OPT into OP_RPAD, OP_LTRIM_OPT
- into OP_LTRIM, OP_RTRIM_OPT into OP_RTRIM, OP_NUMBER_OPT into
- OP_NUMBER. Fix OP_RTRIM fragility. Support OP_SUBSTR_2,
- OP_SUBSTR_3 instead of OP_SUBSTR, OP_SUBSTR_OPT. Remove OP_INV.
- Simplify OP_SYSMIS. Remove OP_STR_MIS.
-
- * expr-opt.c: (optimize_expression) Rewrite.
- (macro n0) Removed.
- (macro n1) Removed.
- (macro n2) Removed.
- (macro s0) Removed.
- (macro s0l) Removed.
- (macro s1) Removed.
- (macro s1l) Removed.
- (macro s2) Removed.
- (macro s2l) Removed.
- (macro s) Removed.
- (macro sl) Removed.
- (eq_num_con) New function.
- (optimize_tree) New function.
- (macro rnc) Removed.
- (macro frnc) Removed.
- (str_search) Add const to string params.
- (str_rsearch) Ditto.
- (evaluate_tree_no_missing) Renamed from evaluate_tree. Add num[],
- str[], str_len[] locals to substitute for most of removed macros.
- Support OP_ADD, OP_SUB, OP_MUL, OP_DIV instead of OP_PLUS, OP_MUL.
- Removed support for missing values because we're never called with
- missing values. Use set_number() or set_number_errno() instead of
- rnc or frnc. Removed any stuff that caused trouble in testing.
- We can re-add it later if it really slows anything. Fix some
- random problems.
- (evaluate_tree_with_missing) Not yet supported. To be added later
- if it's important.
- (repl_num_con) Removed.
- (collapse_node) New function.
- (force_repl_num_con) Removed.
- (set_number) New function.
- (set_number_errno) New function.
- (repl_str_con) Removed.
- (set_string) New function.
- (yrmoda) Tighten boundary conditions. Adopt 2030 cut-off for
- 2-digit years.
- (dump_node) No special case for OP_AND, OP_OR.
-
- * expr-prs.c: (expr_prs) Honor EXPR_NO_OPTIMIZE bit. Rewrite.
- (expr_get_type) New function.
- (type_check) Rewrite.
- (type_coercion) New function.
- (struct operator) New structure.
- (match_operator New function.
- (parse_binary_operators) New function.
- (parse_inverting_unary_operator) New function.
- (parse_or) Rewritten.
- (parse_and) Rewritten.
- (parse_not) Rewritten.
- (parse_rel) Rewritten.
- (parse_add) Rewritten.
- (parse_mul) Rewritten.
- (parse_neg) Rewritten.
- (parse_exp) Rewritten.
- (parse_sysvar) Add $TRUE, $FALSE system variables.
- Get $LENGTH, $WIDTH from get_viewlength(), get_viewwidth().
- (parse_primary) Use allocate_var_node(), allocate_num_con(),
- allocate_str_con().
- (struct function) Remove desc, change `func' prototype.
- (unary_func) Remove special cases.
- (MISSING_func) Reduce to unary_func() that just returns a boolean.
- (SYSMIS_func) Handle SYSMIS((x)) like SYSMIS(x).
- (VALUE_func) Use allocate_var_node().
- (nary_num_func) Allow MIN and MAX for strings.
- Use allocate_var_node(). Properly clean up.
- Fix return type.
- (generic_str_func) Use local table instead of removed `desc'
- member. Mostly rewrite.
- (get_num_args) Revise error message.
- (parse_function) Return EXPR_ERROR, not 0 on error.
- (macro op) Removed.
- (macro varies) Removed.
- (ops[]) Use expr.def.
- (free_node) Do nothing if node is null.
- (allocate_num_con) New function.
- (allocate_str_con) New function.
- (allocate_var_node) New function.
- (allocate_binary_nonterminal) New function.
- (append_nonterminal_arg) Removed.
- (static var func_tab[]) Revised.
- (expr_debug_print_postfix) Make parameter const.
- Use printf() instead of debug_printf().
-
- * expr.def: New file.
-
- * expr.h: Change PXP_* to EXPR_*, all references updated. Also
- use named enum instead of unnamed, all references updated. Add
- EXPR_ANY, EXPR_NO_OPTIMIZE.
-
- * exprP.h: Remove EX_*. Add DEFINE_OPERATOR. Use expr.def
- instead of defining OP_* directly.
- (macro IS_TERMINAL) New macro.
- (macro IS_NONTERMINAL) New macro.
- (enum OP_NO_FLAGS) New.
-
-Fri Mar 26 00:18:01 2004 Ben Pfaff <blp@gnu.org>
-
- * error.c: (err_assert_fail) msg variable needs to be non-const.
-
-Fri Mar 26 00:17:24 2004 Ben Pfaff <blp@gnu.org>
-
- * debug.c: (cmd_debug_evaluate) Rewrite.
-
-Fri Mar 26 00:15:13 2004 Ben Pfaff <blp@gnu.org>
-
- Fix some CROSSTABS bit rot stupidity.
-
- * crosstabs.q: Reorder the CELLS subcommands for compatibility.
- (internal_cmd_crosstabs) Initializes cells[] correctly.
- (float_M_suffix) Rename format_cell_entry(), change prototype,
- rewrite.
- (display_crosstabulation) Fix cell formatting.
-
-Fri Mar 26 00:14:09 2004 Ben Pfaff <blp@gnu.org>
-
- Make lex_rest_of_line(), lex_entire_end() not discard lines. Have
- to call lex_discard_line() to do that.
-
- * command.c: (run_command) Call lex_discard_line() after
- lex_rest_of_line().
-
- * lexer.c: (lex_entire_end) Change behavior.
- (lex_rest_of_line) Change behavior. Return const char *.
- (lex_discard_line) Don't clear getl_buf, don't emit message.
-
- * main.c: (handle_error) Emit message here.
-
- * repeat.c: (internal_cmd_do_repeat) Use lex_discard_line()
- instead of lex_entire_line().
-
- * str.c: (mm_find_reverse) Make length params size_t. Rewrite.
-
- * title.c: (get_title) Call lex_discard_line() after
- lex_rest_of_line().
- (cmd_file_label) Ditto.
- (cmd_document) Deal with const char * return value.
-
-Fri Mar 26 00:10:16 2004 Ben Pfaff <blp@gnu.org>
-
- Removed REMARK command.
-
- * command.c: (extract_prefix) Removed.
- (output_line) Removed.
- (cmd_remark) Removed.
-
- * command.def: Remove REMARK.
-
-Fri Mar 26 00:08:38 2004 Ben Pfaff <blp@gnu.org>
-
- Added abort() after lots of assert(0) invocations to avoid some
- compiler warnings. We really need a NOT_REACHED macro.
-
-Tue Mar 23 08:00:42 WAST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * sort.c: Added missing call to temp_file_close. Changed error
- messages to warnings.
-
- * set.q: Improved setting of set_view{length,width} to be more tolerant
- of buggy OSes.
-
-Sun Mar 21 10:11:14 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * val-labs.c: Fixed a bug where PSPP would crash, if VALUE LABELS was
- used with incorrect syntax.
-
- * error.c, error.h et al: Overridden definition of assert for a
- custom one.
-
- * test-q.c: Fixed a buglet where it would crash if no /VARIABLES
- subcommand was given when it ought to have been.
-
-Sat Mar 20 22:19:08 2004 Ben Pfaff <blp@gnu.org>
-
- * tab.c: (tab_vline) Fix assertions to respect row_ofs and
- col_ofs.
- (tab_hline) Ditto.
- (tab_box) Ditto.
- (tab_joint_text) Ditto.
-
-Sat Mar 20 17:57:23 2004 Ben Pfaff <blp@gnu.org>
-
- * levene.c: Add #include.
-
- * set.q: (set_viewport) Add `int' argument to make its prototype
- correct for signal().
-
-Sat Mar 20 15:35:17 2004 Ben Pfaff <blp@gnu.org>
-
- * expr-evl.c: (expr_evaluate) Assert that `c' is nonzero before
- using it.
-
-Sat Mar 20 15:18:16 2004 Ben Pfaff <blp@gnu.org>
-
- Changed DFM from open-at-first-access to explicit-open. Before,
- calling dfm_get_record() or dfm_put_record() would automatically
- open the file. Now, you have to call dfm_open_for_reading() or
- dfm_open_for_writing() explicitly. This makes it possible to
- check permissions, file existence, etc. earlier.
-
- Also made struct file_handle more opaque, and clean up in general.
-
- * data-list.c: (cmd_data_list) Open handle for reading.
-
- * dfm.c: (struct dfm_fhuser_ext) Add `where', `saw_begin_data'
- members.
- (open_file_r) Renamed dfm_open_for_reading(), rewrote.
- (open_file_w) Renamed dfm_open_for_writing(), rewrote.
- (open_inline_file) Removed.
- (read_record) For inline_file, if we haven't seen BEGIN DATA, read
- it. Deal with line_number in extension record instead of file
- handle.
- (dfm_get_record) Rewrote.
- (dfm_put_record) Rewrote.
- (dfm_push) Assert file is open and one of ours. Deal with
- line_number in extension record instead of file handle.
- (dfm_pop) Assert file is open and one of ours. Deal with
- line_number in extension record instead of file handle.
- (cmd_begin_data) Use dfm_open_for_reading(). Mark that we saw
- BEGIN DATA.
-
- * file-handle.h: (enum constants RH_RF_*) Removed.
- (enum constants FH_MD_*) Removed.
- (struct file_handle) Removed `name', `norm_fn', `fn', `where',
- `recform', `lrecl', `mode' members. Public references to
- `recform' changed to use handle_get_mode(), references to `lrecl'
- changed to use handle_get_record_width(). Added `private' member.
- (enum file_handle_mode) New.
-
- * file-handle.q: (struct private_file_handle) New structure.
- (struct file_handle_list) New structure.
- (static var files) New.
- (static var file_handles) Removed.
- (init_file_handle) Removed.
- (create_file_handle) Removed.
- (get_handle_with_name) New function.
- (get_handle_for_filename) New function.
- (cmd_file_handle) Rewritten.
- (hash_file_handle) Removed.
- (cmp_file_handle) Removed.
- (fh_init_files) Rewritten.
- (fh_parse_file_handle) Rewritten. Allows identifiers as
- filenames.
- (fh_get_handle_by_name) Renamed handle_get_name(), all references
- updated. Rewritten.
- (fh_get_handle_by_filename) Renamed handle_get_filename(), all
- references updated. Rewritten.
- (fh_record_width) Renamed handle_get_record_width(), all
- references updated. Rewritten.
- (handle_get_mode) New function.
-
- * file-type.c: (cmd_file_type) Open handle for reading.
-
- * filename.c: [unix] (struct file_identity) New structure.
- [unix] (fn_get_identity) New function.
- [unix] (fn_free_identity) New function.
- [unix] (fn_compare_file_identities) New function.
- [!unix] (struct file_identity) New structure.
- [!unix] (fn_get_identity) New function.
- [!unix] (fn_free_identity) New function.
- [!unix] (fn_compare_file_identities) New function.
-
- * lexer.c: (static var put) Renamed put_token, all references
- updated.
- (static var put_tokstr) New.
- (static var put_tokval) New.
- (lex_init) Initialize put_tokstr().
- (restore_token) New function.
- (save_token) New function.
- (lex_get) Use restore_token().
- (lex_put_back) Use save_token().
- (lex_put_back_id) New function.
- (lex_put_forward) Removed.
- (lex_preprocess_line) Set put_token instead of using
- lex_put_forward().
- (lex_negative_to_dash) Use save_token(), set put_token directly.
- (dump_token) Use stderr instead of stdout.
-
- * main.c: (main) Remove call to cmd_init().
-
- * matrix-data.c: (cmd_matrix_data) Open file for reading.
-
- * pfm-read.c: Use handle_get_filename() instead of trying to use
- h->fn directly, all over.
-
- * pfm-write.c: Ditto.
-
- * print.c: (internal_cmd_print) Open handle for writing.
- (dump_table) Use handle_get_filename().
- (print_trns_proc) Use handle_get_mode().
- (cmd_print_space) Use fh_parse_file_handle().
- Open handle for writing.
- [0] (debug_print) Removed.
-
- * sfm-read.c: Use handle_get_filename() instead of trying to use
- h->fn directly, all over.
-
- * sfm-write.c: Ditto.
-
-Sat Mar 20 14:35:48 2004 Ben Pfaff <blp@gnu.org>
-
- Fix memory leaks.
-
- * autorecode.c: (arc_free) Free arc->src_values.
-
- * error.c: (msg) Free buf.
-
- * val-labs.c: (do_value_labels) Always free vars.
-
- * vfm.c: (close_active_file) If sink has no make_source then call
- its destroy function.
-
-Sat Mar 20 14:00:24 2004 Ben Pfaff <blp@gnu.org>
-
- Fixed cmd_parse() so that it always skips past a full command
- name. A few special commands for which this would be bad get
- special treatment. This lets us drop code for skipping past the
- end of a command name in most cmd_*() functions. It's not worth
- listing all the commands affected.
-
- * command.c: (struct command) Remove `cmd' member, replace by
- `name' member, all references updated. Remove `word', `next',
- `skip_entire_name' members.
- (macro DEFCMD) Deal with revised `struct command'.
- (macro UNIMPL) Ditto.
- (macro SPCCMD) New macro for commands whose last word shouldn't be
- skipped.
- (static array cmd_table[]) Make const, rename `commands', remove
- sentinel element.
- (macro COMMAND_CNT) New macro.
- (split_words) Removed.
- (cmd_init) Removed.
- (FILE_TYPE_okay) Make parameter const.
- (cmd_parse) Improve error messages.
- (match_strings) New function.
- (next_word) New function.
- (enum command_match) New enum.
- (conflicting_3char_prefixes) New function.
- (conflicting_3char_prefix_command) New function.
- (cmd_match_words) New function.
- (count_matching_commands) New function.
- (get_command_name) New function.
- (free_words) New function.
- (unknown_command_error) New function.
- (figure_out_command) Renamed parse_command_name(), rewritten.
-
- * command.def: Removed @ command. Marked BEGIN DATA, DOCUMENT,
- FILE LABEL, REMARK, SUBTITLE, TITLE as special. Renamed EVALUATE
- to DEBUG EVALUATE. Added N alias for N OF CASES, SORT alias for
- SORT CASES.
-
- * command.h: (macro SPCCMD) New.
-
- * include.c: (cmd_include_at) Removed.
- (cmd_include) Allow identifier to be used as filename.
-
- * inpt-pgm.c: (cmd_reread) Use fh_parse_file_handle().
-
- * t-test.q: (cmd_t_test) Command name is now parsed for us.
-
-
-Sat Mar 20 13:56:00 2004 Ben Pfaff <blp@gnu.org>
-
- Start work on better test framework.
-
- * Makefile.am: (pspp_sources) Add debug.c.
-
- * debug.c: New file.
-
- * compute.c: (cmd_evaluate) Moved to debug.c, renamed
- cmd_debug_evaluate().
-
- * expr-prs.c: (expr_parse) Remove PXP_DUMP support.
-
- * expr.h: (enum constant PXP_DUMP) Removed.
-
-Sat Mar 20 00:05:42 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * set.q: Implemented the SHOW command, and synced it to the existing
- SET cmd.
-
- Added a handler for SIGWINCH so that viewlength and viewwidth follow
- changes as the window size is changed.
-
- Added fallback to set viewlength and viewwidth from LINES and COLUMS
- environment variables if other methods are not available.
-
- glob.c: Removed a lot of global variables from glob.c and encapsulated
- them in set.q
-
- random.c: Tidied up the way the random seed is set.
-
- str.c: Added a ds_vprintf function.
-
- error.c: Extended dump_message so that messages are always broken at
- '\n' characters.
-
-Thu Mar 18 11:07:14 2004 Ben Pfaff <blp@gnu.org>
-
- * pfm-write.c: (bufwrite) Write out the correct element for string
- variables. From Andreas Streichardt <streichardt@globalpark.de>.
-
-Mon Mar 15 20:48:03 2004 Ben Pfaff <blp@gnu.org>
-
- Get rid of static and global (!) vars in matrix-data.c.
-
- * matrix-data.c: (static var nr_data) Removed.
- (static var nr_factor_values) Removed.
- (static var max_cell_index) Removed.
- (static var split_values) Removed.
- (struct nr_aux_data) New structure.
- (read_matrices_without_rowtype) Use a local struct nr_aux_data in
- place of static vars, pass to create_case_source() and procedure()
- as aux data.
- (nr_read_data_lines) Use struct nr_aux_data * parameter instead of
- struct matrix_data_pgm *.
- (nr_read_splits) Ditto.
- (nr_read_factors) Ditto.
- (nr_output_data) Ditto.
- (static var wr_content) Removed.
- (global var wr_data) Removed.
- (global var wr_current) Removed.
- (struct wr_aux_data) New structure.
- (read_matrices_with_rowtype) Use a local struct wr_aux_data in
- place of static vars, pass to create_case_source() and procedure()
- as aux data.
- (matrix_data_read_with_rowtype) Use struct wr_aux_data * parameter
- instead of matrix_data_pgm *.
- (wr_read_splits) Ditto.
- (wr_output_data) Ditto.
- (wr_read_rowtype) Ditto.
- (wr_read_factors) Ditto.
- (wr_read_indeps) Ditto.
-
-Mon Mar 15 20:07:29 2004 Ben Pfaff <blp@gnu.org>
-
- Get rid of static vars in autorecode.c.
-
- * autorecode.c: (struct autorecode_trns) Rename `arc' to `specs',
- `n_arc' to `spec_cnt'. All references updated.
- (static var v_src) Removed.
- (static var v_dest) Removed.
- (static var h_trns) Removed.
- (static var nv_src) Removed.
- (static var descend) Removed.
- (static var print) Removed.
- (enum direction) New enum.
- (struct autorecode_pgm) New structure.
- (cmd_autorecode) Use struct autorecode_pgm instead of static vars.
- Move n_dest local var into struct autorecode_pgm for ease of
- clean-up. Use arc_free().
- (arc_free) New function.
- (recode) Modify to take struct autorecode_pgm * parameter instead
- of using statics. Let the caller clean up.
- (autorecode_proc_func) Use struct autorecode_pgm * auxiliary data
- instead of statics. Rearrange code a little.
-
-Mon Mar 15 00:25:02 2004 Ben Pfaff <blp@gnu.org>
-
- Get rid of static, global vars in recode.c. Remove debug code.
-
- * recode.c: (static var head) Removed.
- (global var v) Removed.
- (global var nv) Removed.
- (cmd_recode) New local variables head, v, nv. Initialize and free
- v. Don't call debug_print().
- [DEBUGGING] (dump_dest) Removed.
- [DEBUGGING] (debug_print) Removed.
-
-Mon Mar 15 00:14:49 2004 Ben Pfaff <blp@gnu.org>
-
- Get rid of static vars in expr-opt.c.
-
- * expr-opt.c: (static var e) Removed.
- (static var nop) Removed.
- (static var mop) Removed.
- (static var ndbl) Removed.
- (static var mdbl) Removed.
- (static var nstr) Removed.
- (static var mstr) Removed.
- (static var nvars) Removed.
- (static var mvars) Removed.
- (struct expr_dump_state) New structure.
- (dump_expression) Use new struct expr_dump_state instead of static
- vars and pass to functions we call.
- (dump_node) Use struct expr_dump_state * parameter.
- (emit) Ditto.
- (emit_num_con) Ditto.
- (emit_str_con) Ditto.
- (emit_var) Ditto.
-
-Mon Mar 15 00:03:51 2004 Ben Pfaff <blp@gnu.org>
-
- Get rid of static var in COUNT.
-
- * count.c: (static var head) Move into cmd_count().
- (cmd_count) [DEBUGGING] Don't call debug_print.
- [DEBUGGING] (debug_print) Removed.
-
-Sun Mar 14 23:56:09 2004 Ben Pfaff <blp@gnu.org>
-
- Get rid of static vars in VALUE LABELS, ADD VALUE LABELS.
-
- * val-labs.c: (static var v) Removed.
- (static var nv) Removed.
- [DEBUGGING] (debug_print) Removed.
- (verify_val_labs) Add struct variable **, int parameters.
- (get_label) Ditto. Improve error messages, streamline.
- (erase_labels) New function for erasing value labels, taking over
- part of verify_val_labs()'s function.
- (init) Removed.
- (done) Removed.
- (cmd_value_labels) No need to call init() or done() anymore.
- (cmd_add_value_labels) Ditto.
- (do_value_labels) Add vars, var_cnt local variables. Clean up
- after them internally. Call erase_labels() if we should. Don't
- call debug_print().
-
-Sun Mar 14 23:33:53 2004 Ben Pfaff <blp@gnu.org>
-
- Get rid of static vars in MATCH FILES.
-
- * get.c: (static var mtf_head) Removed.
- (static var mtf_tail) Removed.
- (static var mtf_by) Removed.
- (static var mtf_n_by) Removed.
- (static var mtf_master) Removed.
- (static var mtf_seq_num) Removed.
- (static var mtf_seq_nums) Removed.
- (static var mtf_sink) Removed.
- (static var mtf_case) Removed.
- (struct mtf_proc) New structure.
- (cmd_match_files) Use struct mtf_proc instead of static vars.
- (mtf_processing_finish) Ditto.
- (mtf_free) Ditto.
- (mtf_delete_file_in_place) Ditto.
- (mtf_read_nonactive_records) Ditto.
- (mtf_compare_BY_values) Ditto.
- (mtf_processing) Ditto.
- (mtf_merge_dictionary) Ditto.
-
-Sun Mar 14 22:48:12 2004 Ben Pfaff <blp@gnu.org>
-
- * command.def: Add CASESTOVARS, VARSTOCASES unimplemented commands.
-
- * dictionary.c: (dict_rename_var) Add assertion.
- (dict_contains_var) Check by index instead of name.
-
-Sun Mar 14 22:01:02 2004 Ben Pfaff <blp@gnu.org>
-
- Get rid of compaction_necessary, compaction_nval, compaction_case.
- Redo VFM interface. Replace disk_sink and memory_sink by
- storage_sink, disk_source and memory_source by storage_source.
-
- * vfm.h: (struct case_sink) Add `dict', `idx_to_fv', `value_cnt'
- members.
-
- * vfm.c:
- (struct write_case_data) Remove `begin_func', `end_func',
- `func_aux' members. Add `aux', `trns_case', `sink_case',
- `cases_written', `cases_analyzed' members.
- (global var compaction_necessary) Make static.
- (global var compaction_nval) Removed.
- (global var compaction_case) Removed.
- (static var case_count) Removed.
- (struct procedure_aux_data) Removed.
- (struct split_aux_data) Removed.
- (procedure) Remove begin_func, end_func parameters. Rewrite.
- (static var not_canceled) Removed.
- (process_active_file) Removed.
- (process_active_file_write_case) Removed.
- (process_active_file_output_case) Removed.
- (prepare_for_writing) Moved into open_active_file().
- (arrange_compaction) Ditto.
- (setup_lag) Ditto.
- (open_active_file) Rewrote.
- (write_case) New function.
- [DEBUGGING] (index_to_varname) Removed.
- (execute_transformations) New function.
- (exclude_this_case) Renamed filter_case(), changed interface.
- (clear_case) Added struct ccase * parameter to interface.
- (close_active_file) Added struct write_case_data * parameter,
- rewrote.
- (disk_sink_create) Removed.
- (disk_sink_destroy) Removed.
- (disk_sink_make_source) Removed.
- (disk_sink_write) Removed.
- (disk_source_count) Removed.
- (disk_source_destroy) Removed.
- (disk_source_read) Removed.
- (global var disk_sink_class) Removed.
- (global var disk_source_class) Removed.
- (global var memory_sink_class) Removed.
- (global var memory_source_class) Removed.
- (memory_sink_create) Removed.
- (memory_sink_destroy) Removed.
- (memory_sink_make_source) Removed.
- (memory_sink_write) Removed.
- (memory_source_count) Removed.
- (memory_source_destroy) Removed.
- (memory_source_get_cases) Removed.
- (memory_source_read) Removed.
- (memory_source_set_cases) Removed.
- (struct disk_stream_info) Removed.
- (struct memory_sink_info) Removed.
- (struct memory_source_info) Removed.
- (write_active_file_to_disk) Removed.
- (destroy_storage_stream_info) New function.
- (global var null_sink_class) New var.
- (global var storage_sink_class) New var.
- (global var storage_source_class) New var.
- (open_storage_file) New function.
- (storage_sink_destroy) New function.
- (storage_sink_make_source) New function.
- (storage_sink_open) New function.
- (storage_sink_write) New function.
- (storage_source_count) New function.
- (storage_source_destroy) New function.
- (storage_source_get_cases) New function.
- (storage_source_on_disk) New function.
- (storage_source_read) New function.
- (storage_source_set_cases) New function.
- (storage_source_to_disk) New function.
- (storage_to_disk) New function.
- (struct storage_stream_info) New structure.
- (write_storage_file) New function.
- (procedure_write_case) Removed.
- (create_case_source) Add `struct dictionary *' parameter, all
- references updated.
- (create_case_sink) Ditto.
- (free_case_sink) New function.
- (struct split_aux_data) New structure.
- (procedure_with_splits) New function implementing what procedure()
- used to.
- (SPLIT_FILE_proc_func) Removed.
- (procedure_with_splits_callback) New function.
- (equal_splits) New function.
-
- * aggregate.c: Pass around a struct instead of using statics.
- (static var outfile) Remove.
- (enum type) Give it tag `missing_treatment'.
- (static var missing) Remove.
- (static var sort) Remove.
- (static var agr_first) Remove.
- (static var agr_next) Remove.
- (static var case_count) Remove.
- (static var prev_case) Remove.
- (static var buf64_1xx) Remove.
- (static var buf_1xx) Remove.
- (struct agr_proc) New structure incorporating the above.
- (cmd_aggregate) Use new struct. Clean up error handling using
- agr_destroy(). Completely rewrite actual implementation of
- aggregation.
- (create_sysfile) Add struct agr_proc * parameter, modify
- accordingly.
- (parse_aggregate_functions) Ditto.
- (free_aggregate_functions) Ditto. Rename agr_destroy().
- (aggregate_single_case) Add struct agr_proc * parameter, modify
- accordingly.
- (accumulate_aggregate_info) Ditto.
- (dump_aggregate_info) Ditto.
- (initialize_aggregate_info) Ditto.
- (agr_00x_trns_proc) Removed.
- (agr_00x_end_func) Removed.
- (agr_10x_trns_proc) Removed.
- (agr_10x_trns_free) Removed.
- (agr_10x_end_func) Removed.
- (agr_11x_read) Removed.
- (agr_11x_finish) Removed.
- [DEBUGGING] (debug_print) Removed.
- (write_case_to_sfm) Add struct agr_proc * parameter, modify
- accordingly.
- (agr_to_active_file) New function.
- (presorted_agr_to_sysfile) New function.
- (sort_agr_to_sysfile) New function.
-
- * autorecode.c: (cmd_autorecode) Use procedure_with_splits().
-
- * crosstabs.q: (internal_cmd_crosstabs) Ditto.
-
- * descript.q: (cmd_descriptives) Ditto.
-
- * dfm.c: (cmd_begin_data) Check for storage_source_class. Adapt
- to new procedure() interface.
-
- * command.c: (cmd_execute) Adapt to new procedure() interface.
-
- * dictionary.c: (dict_compact_values) Also delete scratch
- variables.
- (dict_get_compacted_value_cnt) New function.
- (dict_get_compacted_idx_to_fv) New function.
-
- * flip.c: (cmd_flip) Warn about and cancel TEMPORARY.
- (cmd_flip) Adapt to new procedure() interface.
- (flip_sink_write) Use sink->idx_to_fv.
-
- * frequencies.q: (internal_cmd_frequencies) Use
- procedure_with_splits().
-
- * get.c: (cmd_save_internal) Adapt to new procedure() interface.
- (static var mtf_sink) New static var.
- (static var mtf_case) New static var.
- (cmd_match_files) Warn about and cancel TEMPORARY. Redo the way
- we actually implement the matching.
- (mtf_delete_file_in_place) Use mtf_case.
- (mtf_processing) Use mtf_case and mtf_sink.
- (cmd_export) Adapt to new procedure() interface.
-
- * levene.c: (levene) Use procedure_with_splits().
-
- * list.q: (cmd_list) Use procedure_with_splits().
-
- * matrix-data.c: (read_matrices_without_rowtype) Adapt to new
- procedure() interface.
- (read_matrices_with_rowtype) Ditto.
-
- * modify-vars.c; (cmd_modify_vars) Warn about and cancel
- TEMPORARY. Adapt to new procedure() interface.
-
- * rename-vars.c: Warn about and cancel TEMPORARY.
-
- * sort.c: (cmd_sort_cases) Warn about TEMPORARY.
- (sort_cases) Use dict_get_compacted_value_cnt() instead of
- compaction_nval. Adapt to new procedure() interface. Use
- storage_source_to_disk().
- (do_internal_sort) Don't try to dump the cases to memory.
- (compare_case_lists) Pass null idx_to_fv.
- (struct initial_run_state) Add `idx_to_fv' member. Remove
- `case_size' member.
- (write_initial_runs) Don't initialize irs->case_size. Adapt to
- new procedure() interface. Reset irs->idx_to_fv after calling
- procedure().
- (sort_sink_write) Set irs->idx_to_fv. Use case_size from struct
- sort_cases_pgm. Pass irs, not struct sort_cases_pgm to
- push_heap().
- (destroy_initial_run_state) Don't dereference irs after freeing
- it.
- (allocate_cases) Don't calculate case_size locally.
- (compare_record) Add idx_to_fv parameter.
- (compare_record_run) Change parameter from struct sort_cases_pgm *
- to struct initial_run_state *. Pass irs->idx_to_fv to
- compare_record().
- (compare_record_run) Third parameter now a struct
- initial_run_state *.
- (output_record) No need for out_case anymore. Pass irs, not
- struct sort_cases_pgm to pop_heap(). Use case_size from struct
- sort_cases_pgm.
- (merge) Use case_size from struct sort_cases_pgm.
- (merge_once) Use case_size from struct sort_cases_pgm.
- Pass null pointer to compare_record() as idx_to_fv.
- (global var sort_sink_class) Make static.
-
- * t-test.q: (cmd_t_test) Use procedure_with_splits().
-
- * temporary.c: Remove debugging crap.
-
-Sat Mar 13 14:19:52 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * t-test.q, levene.c: Fixed up the handling of MISSING values
- int the T-TEST
-
-Fri Mar 12 16:23:35 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * t-test.q, levene.c: Added support for T-TEST /GROUP where only
- one value is given.
-
-Wed Mar 10 23:25:13 2004 Ben Pfaff <blp@gnu.org>
-
- Change explicit variable name checks into use of
- dict_class_from_id().
-
- * dictionary.c: (dict_create_var) Change explicit variable name
- check into use of dict_class_from_id().
-
- * get.c: (trim_dictionary) Ditto.
-
- * sel-if.c: (cmd_filter) Ditto.
-
- * sysfile-info.c: (cmd_display) Ditto.
-
- * vars-prs.c: (parse_DATA_LIST_vars) Ditto.
-
- * vfm.c: (arrange_compaction) Ditto.
-
- * weight.c: (cmd_weight) Ditto.
-
-Wed Mar 10 21:16:34 2004 Ben Pfaff <blp@gnu.org>
-
- * temporary.c: (cmd_temporary) When TEMPORARY was the first
- transformation following the input program, if any, for some
- reason we special-cased f_trns. That's just wrong. It should
- always be set to n_trns.
-
-Tue Mar 9 23:44:40 2004 Ben Pfaff <blp@gnu.org>
-
- * format.c: (parse_format_specifier_name) Fix brown-bag bug
- introduced in last check-in.
-
-Tue Mar 9 23:10:41 2004 Ben Pfaff <blp@gnu.org>
-
- * format.c: (global array translate_fmt[]) Removed.
- (translate_fmt) New function as replacement.
- (parse_format_specifier_name) Rewrite.
-
- * pfm-read.c: (convert_format) Use translate_fmt() instead of
- translate_fmt[].
-
- * sfm-read.c: (parse_format_spec) Ditto.
-
- * postscript.c: (text) Fix handling of fonts with missing
- ligatures.
-
- * sort.c: (struct external_sort) Add temp_name member.
- (destroy_external_sort) Free temp_dir, temp_name members.
- (init_external_sort) Allocate temp_name.
- (get_temp_file_name) Change prototype.
- (open_temp_file) Deal with change to get_temp_file_name().
- (close_temp_file) Ditto.
- (remove_temp_file) Ditto.
- (write_temp_file) Ditto.
- (read_temp_file) Ditto.
- (sort_sink_destroy) Removed.
- (sort_sink_class) Change destroy member to null.
-
-Tue Mar 9 22:36:34 2004 Ben Pfaff <blp@gnu.org>
-
- Eliminate temp_case.
-
- * aggregate.c: (cmd_aggregate) No need to save/restore temp_case
- anymore. Use agr_11x_finish().
- (aggregate_single_case) Make first param const.
- (accumulate_aggregate_info) Ditto.
- (agr_00x_end_func) Use compaction_case, not temp_case.
- (agr_11x_func) Break into agr_11x_read(), agr_11x_finish().
-
- * data-list.c: (struct data_list_pgm) Add `case_size' member.
- (cmd_data_list) Initialize case_size.
- (read_from_data_list_fixed) Add struct ccase * param, use instead
- of temp_case.
- (read_from_data_list_free) Ditto.
- (read_from_data_list_list) Ditto.
- (read_one_case) Rename data_list_trns_proc(), all references
- updated. Add argument in calling above functions. Use c
- argument instead of temp_case.
- (destroy_dls) Rename data_list_trns_free(), all references
- updated.
-
- * expr-evl.c: (expr_evaluate) Make second parameter const.
-
- * file-type.c: (struct file_type_pgm) Add `case_size' member.
- (cmd_end_file_type) Initialize `case_size'.
- (file_type_source_read) Add struct ccase * parameter. Use instead
- of temp_case.
-
- * flip.c: Rewritten.
-
- * get.c: (struct get_pgm) New structure to keep track of
- case_size.
- (cmd_get) Initialize case_size.
- (cmd_import) Ditto.
- (get_source) Deal with struct get_pgm.
- (get_source_read) Add struct ccase * parameter, use instead of
- temp_case.
- (import_source_read) Ditto.
-
- * get.c: Use a null pointer instead of temp_case to represent the
- "current case" in a struct mtf_file's input member.
- (mtf_processing_finish) Pass null to mtf_processing(), not
- temp_case.
- (mtf_read_nonactive_records) Don't set iter->input to temp_case.
- (mtf_compare_BY_values) Add extra arg, use instead of null input
- members.
- (mtf_processing) Use c parameter instead of temp_case. Pass
- compaction_case to process_active_file_output_case().
-
- * glob.c: (global variable temp_case) Removed.
-
- * inpt-pgm.c: (struct input_program_pgm) Add `case_size' member.
- (cmd_input_program) Initialize case_size. Set
- vfm_source->value_cnt.
- (init_case) Add struct ccase * parameter, use instead of
- temp_case.
- (clear_case) Ditto.
- (input_program_source_read) Ditto.
-
- * matrix-data.c: (matrix_data_read_without_rowtype) Ditto.
- (dump_cell_content) Ditto.
- (nr_output_data) Ditto.
- (read_matrices_without_rowtype) Ditto.
- (matrix_data_read_with_rowtype) Ditto.
- (wr_read_splits) Ditto.
- (wr_output_data) Ditto.
-
- * sort.h: (struct sort_cases_pgm) New member `case_size'.
-
- * sort.c: (sort_cases) Initialize scp->case_size.
- (struct external_sort) Remove `case_size' member.
- (write_initial_runs) Only call vfm_sink->class_destroy if
- non-null.
- (struct sort_source_aux) New structure.
- (sort_source_read_helper) New function.
- (sort_source_read) Use sort_source_read_helper().
- (read_sort_output) Change interface to be more reasonable.
- (read_internal_sort_output) Ditto.
- (read_external_sort_output) Ditto.
-
- * vars-prs.c: (dict_class_to_name) Pass return value through
- gettext.
-
- * vfm.c: (struct procedure_aux_data) Add `trns_case' member.
- (procedure) Initialize trns_case.
- (procedure) Pass trns_case to vfm_source->class->read().
- Free trns_case.
- (process_active_file) Start using struct procedure_aux_data.
- (process_active_file_write_case) Pass trns_case to
- transformations, lag_case(), clear_case().
- (process_active_file_output_case) Add struct ccase * parameter.
- (create_trns_case) New function.
- (make_temp_case) Removed.
- (vector_initialization) Removed.
- (close_active_file) Only call make_source if non-null, otherwise
- set vfm_source to null pointer. Don't free temp_case.
- (disk_source_read) Add struct ccase * parameter, use instead of
- temp_case.
- (memory_source_read) Ditto.
- (lag_case) Add const struct ccase * member.
- (procedure_write_case) Use trns_case instead of temp_case.
- (clear_case) Add struct ccase * member, use instead of temp_case.
- (exclude_this_case) Ditto.
- (create_case_source) Add struct dictionary * parameter, use to
- initialize source->value_cnt.
-
- * vfm.h: (struct case_source) Add `value_cnt' member.
- (struct case_source_class) Add struct ccase * parameter to `read'
- member function pointer.
- (struct case_sink_class) Make struct ccase * parameter const in
- `write' member function pointer.
-
-Wed Mar 3 20:44:37 2004 Ben Pfaff <blp@gnu.org>
-
- Fix a lot of "possibly uninitialized variable" warnings. Some of
- them are even real bugs. A few of them make me wonder how the
- code ever worked.
-
- * aggregate.c: (parse_aggregate_functions) Initialize `function.
-
- * ascii.c: (output_lines) Add default case to switch.
-
- * crosstabs.q: Remove static variable `expected' and all
- references to it.
- (display_crosstabulation) Always calculate expected value.
- (calc_chisq) Ditto.
- (output_pivot_table) Initialize `cmp'.
- (display_crosstabulation) New variable `last_row', which is
- initialized.
-
- * data-in.c: (parse_numeric) Always initialize sign. How did this
- work at all?!
-
- * data-list.c: (repeating_data_trns_proc) Always initialize code.
- Always set info.ofs. (How did this work?!)
-
- * expr-opt.c: (optimize_tree) Always initialize `m'.
- (evaluate_tree) Always initialize `c'. (How did this work?)
-
- * frequencies.q: (frq_custom_variables) Always initialize min,
- max.
- (frq_custom_grouped) Always initialize `dl'.
-
- * groff-font.c: (groff_read_font) Always initialize char_set.
-
- * matrix-data.c: (nr_output_data) Initialize `split'.
- (wr_read_splits) Remove shadowing split_cnt declaration.
- (wr_output_data) Initialize `split'.
-
- * output.c: (tokener) Skip add character on syntax error.
-
- * pool.c: (pool_strndup) Always set `copy'. (How did this work?!)
-
- * postscript.c: (read_ps_encodings) Use line.string instead of
- uninitialized `bp'.
- (write_text) Add default case to switch.
- (text) Always initialize multiple variables. Fix bug with
- ligatures.
-
- * print.c: (fixed_parse_fortran) Initialize head.
- (alloc_line) Add default case to switch.
-
- * recode.c: (parse_dest_spec) Handle case where nothing matches.
- (recode_trns_proc) Move variable declaration inward. Add default
- case to switch.
-
- * sfm-read.c: (read_header) Initialize skip_amt.
-
- * sysfile-info.c: (display_variables) Always initialize pc.
-
- * vars-prs.c: Initialized `included'.
-
-Wed Mar 3 09:30:09 2004 Ben Pfaff <blp@gnu.org>
-
- * main.c: (main) sigaction()'s sa_flags member was uninitialized.
- Just use signal() instead.
-
-Wed Mar 3 09:26:30 2004 Ben Pfaff <blp@gnu.org>
-
- Get rid of vfm_sink_info and vfm_source_info.
-
- * aggregate.c: (agr_00x_end_func) Don't increment
- sfm_sink_info.ncases.
-
- * sort.c: (do_internal_sort) Get case count from
- vfm_source->class->count().
- (struct external_sort) Add `case_size' member.
- (do_external_sort) Initialize case_size.
- (struct initial_run_state) Add `case_size' member.
- (write_initial_runs) Initialize case_size.
- (sort_sink_write) Use case_size.
- (read_external_sort_output) Use case_size. Get case_cnt from
- initial_runs.
-
- * vfm.c: (struct write_case_data) Add underscores to existing arg
- names, all references updated. Renamed `aux' as `func_aux', all
- references updated. Added new `aux' member.
- (global var vfm_source_info) Removed.
- (global var vfm_sink_info) Removed.
- (struct procedure_aux_data) New.
- (struct split_aux_data) New.
- (procedure) Use `aux' fields for procedure_aux_data,
- split_aux_data.
- (process_active_file_write_case) Pass case_count + 1 to
- transformation procedures, exclude_this_case().
- (process_active_file_output_case) Don't increment
- vfm_sink_info.ncases.
- (prepare_for_writing) Don't initialize vfm_sink_info. Don't try
- to send data to disk early.
- (make_temp_case) Don't use vfm_sink_info.case_size.
- (close_active_file) Don't initialize vfm_source_info.
- (struct disk_stream_info) New, to allow for case_cnt and case_size fields.
- (disk_sink_create) Initialize and/or update disk_stream_info.
- (disk_sink_write) Ditto.
- (disk_sink_destroy) Ditto.
- (disk_sink_make_source) Ditto.
- (disk_source_read) Ditto.
- (disk_source_destroy) Ditto.
- (global var disk_source_class) Add disk_source_count().
- (disk_source_count) New function.
- (struct memory_sink_info) Add `case_cnt', `case_size' members.
- (struct memory_source_info) Ditto.
- (memory_sink_create) Deal with case_cnt, case_size.
- (memory_sink_write) Ditto.
- (memory_sink_make_source) Ditto.
- (memory_source_read) Ditto.
- (memory_source_count) New function.
- (memory_source_class) Add memory_source_count().
- (procedure_write_case) Don't use vfm_sink_info.ncases. Do use
- proc_aux->cases_written, and pass it to transformation procedures
- and exclude_this_case ().
- (exclude_this_case) Add case_num parameter. Pass it to
- expr_evaluate().
- (SPLIT_FILE_procfunc) Use split_aux->prev_case instead of static
- variable.
-
- * vfm.h: (struct case_source_class) Add `count' member.
-
- * vfmP.h: (struct stream_info) Removed.
- (global variable vfm_source_info) Removed.
- (global variable vfm_sink_info) Removed.
-
-Tue Mar 2 23:38:17 2004 Ben Pfaff <blp@gnu.org>
-
- * var.h: (typedef trns_proc_func) New typedef.
- (trns_free_func) New typedef.
- (struct trns_header) Change `proc' to type trns_proc_func, `free'
- to type trns_free_func. This only changes the actual type of
- trns_proc_func, adding a `case_num' parameter. Updated all
- implementations to use the typedefs instead.
-
- * compute.c: (compute_num) Pass case_num to expr_evaluate().
- (compute_num_vec) Ditto.
- (compute_str) Ditto.
- (compute_str_vec) Ditto.
-
- * do-if.c: (do_if_trns_proc) Ditto.
-
- * expr-evl.c: (expr_evaluate) Add new case_num parameter, use for
- OP_CASENUM.
-
- * inpt-pgm.c: (input_program_source_read) Maintain case count,
- pass to transformation functions.
- (reread_trns_proc) Pass case_num arg to expr_evaluate().
-
- * loop.c: (loop_1_trns_proc) Ditto.
- (loop_2_trns_proc) Ditto.
- (loop_3_trns_proc) Ditto.
-
- * print.c: (print_space_trns_proc) Ditto.
-
- * sel-if.c: (select_if_proc) Ditto.
-
-Tue Mar 2 11:36:52 2004 Ben Pfaff <blp@gnu.org>
-
- * frequencies.q: (cleanup_freq_tab) Avoid memory leak by
- destroying hash table.
-
- * glob.c: (read_active_file) Variable not referenced, removed.
- (cancel_input_pgm) Ditto.
-
- * levene.c: Add #include <stdlib.h> needed to call free().
-
- * aggregate.c: (parse_aggregate_functions) Make `function'
- variable const.
-
-Tue Mar 2 11:30:56 2004 Ben Pfaff <blp@gnu.org>
-
- Start working to eliminate VFM dependence on static variables.
-
- * command.c: (cmd_parse) Use case_source_is_class().
-
- * data-list.c: Rewrite to eliminate use of static variables.
-
- * dfm.c: (cmd_begin_data) Use case_source_is_class().
-
- * file-handle.q: (fh_handle_name) Make parameter const.
-
- * file-type.c: Rewrite to eliminate use of static variables.
-
- * flip.c: Rewrite to eliminate use of static variables.
-
- * format.c: (get_format_var_width) New function.
-
- * get.c: Eliminate use of static variables.
-
- * inpt-pgm.c: Eliminate use of static variables.
-
- * matrix-data.c: Eliminate use of static variables.
-
- * set.q: (set_max_workspace) New variable.
- (cmd_set) Use SET WORKSPACE to modify set_max_workspace.
-
- * var.h: (struct case_list) Move here from vfmP.h.
-
- * vars-atr.c: (discard_variables) Handle new vfm_source type.
-
- * vfm.c: (vfm_source) Change type from struct case_stream to
- struct case_source.
- (vfm_sink) Change type from struct case_stream to struct
- case_sink.
- (static var paging) Rename workspace_overflow, all references
- updated.
- (procedure) Use new class structures.
- (process_active_file) Ditto.
- (process_active_file_write_case) Ditto.
- (prepare_for_writing) Use set_max_workspace. Use new class
- structures.
- (close_active_file) Use new class structures. Free old sink.
- (global var disk_source_file) Removed.
- (global var disk_sink_file) Removed.
- (disk_stream_init) Removed.
- (disk_stream_read) Removed.
- (disk_stream_write) Removed.
- (disk_stream_mode) Removed.
- (disk_stream_destroy_source) Removed.
- (disk_stream_destroy_sink) Removed.
- (global var vfm_disk_stream) Removed.
- (disk_sink_create) New function.
- (disk_sink_write) New function.
- (disk_sink_destroy) New function.
- (disk_sink_make_source) New function.
- (disk_sink_class) New static var.
- (disk_source_read) New function.
- (disk_source_destroy) New function.
- (global var vfm_source_class) New var.
- (global var memory_source_cases) Removed.
- (global var memory_sink_cases) Removed.
- (global var memory_sink_max_cases) Removed.
- (struct memory_sink_info) New struct.
- (memory_stream_init) Removed.
- (memory_stream_read) Removed.
- (memory_stream_write) Removed.
- (memory_stream_mode) Removed.
- (memory_stream_destroy_source) Removed.
- (memory_stream_destroy_sink) Removed.
- (global var vfm_memory_stream) Removed.
- (page_to_disk) Renamed write_active_file_to_disk().
- (memory_sink_create) New function.
- (memory_sink_write) New function.
- (memory_sink_destroy) New function.
- (memory_sink_make_source) New function.
- (memory_sink_class) New static var.
- (memory_source_read) New function.
- (memory_source_destroy) New function.
- (memory_source_get_cases) New function.
- (memory_source_set_cases) New function.
- (global var vfm_source_class) New var.
- (procedure_write_case) Use new class structures.
- (create_case_source) New function.
- (case_source_is_complex) New function.
- (case_source_is_class) New function.
- (create_case_sink) New function.
-
- * vfm.h: (global variable reinit_sysmis) Not used, removed.
- (global variable reinit_blanks) Not used, removed.
- (global variable init_zero) Not used, removed.
- (global variable init_blanks) Not used, removed.
- (struct case_source) New struct.
- (struct case_source_class) New struct.
- (struct case_sink) New struct.
- (struct case_sink_class) New struct.
- (struct case_stream) Removed.
-
- * vfmP.h: (struct case_list) Moved to var.h.
-
-Tue Mar 2 11:28:30 2004 Ben Pfaff <blp@gnu.org>
-
- * algorithm.c: (count_equal) New function.
- (count_if) New function.
- (unique) Add assertions.
- (partition) Add assertions.
- (is_partitioned) New function.
- (copy_if) Add assertions.
- (remove_equal) Add assertions.
- (lexicographical_compare) Rename lexicographical_compare_3way.
- (sort) Add assertions. Rephrase some code.
- (is_sorted) New function.
-
-Sun Feb 29 23:24:57 2004 Ben Pfaff <blp@gnu.org>
-
- Rewrite SORT CASES.
-
- * sort.c: Completely rewrite.
-
- * sort.h: Expose interface via struct sort_cases_pgm, not via
- global variables.
-
- * aggregate.c: (sort) New static var.
- (cmd_aggregate) Use sort.
- (create_sysfile) Ditto.
- (aggregate_single_case) Ditto.
- (dump_aggregate_info) Ditto.
- (agr_00x_end_func) Ditto.
- (debug_print) Ditto.
-
- * var.h: (enum SRT_ASCEND) Removed.
- (enum SRT_DESCEND) Removed.
- (struct sort_cases_proc) Removed.
- (struct variable) Remove p.srt member.
-
-Sun Feb 29 23:22:45 2004 Ben Pfaff <blp@gnu.org>
-
- Get rid of the old, crappy heap structure and replace it by a new,
- shiny, C++ STL-like heap structure.
-
- * Makefile.am: (pspp_SOURCES) Remove heap.c, heap.h.
-
- * algorithm.c: (push_heap) New function.
- (heapify) Ditto.
- (pop_heap) Ditto.
- (make_heap) Ditto.
- (sort_heap) Ditto.
- (is_heap) Ditto.
-
- * heap.c: Removed.
-
- * heap.h: Removed.
-
-Sun Feb 29 23:21:53 2004 Ben Pfaff <blp@gnu.org>
-
- Increase warning level.
-
- * Makefile.am: (AM_CFLAGS) Remove -Wnouninitialized.
-
-Sat Feb 21 17:38:58 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * main.c: Added a signal handler for SIGSEGV requesting a bug report.
-
-Fri Feb 20 23:22:14 2004 Ben Pfaff <blp@gnu.org>
-
- * dictionary.c: (dict_create_var) Fix root cause of bug worked
- around by previous change log entry.
-
- * compute.c: (lvalue_finalize) Remove workaround from previous
- change log entry.
-
-Fri Feb 20 14:37:41 WAST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * compute.c: Fixed a bug where the Format was not getting set for
- computed variables (thus causing a crash when SAVEing).
-
- * Added a test to stop this bug ever coming back
-
-Wed Feb 18 22:21:35 2004 Ben Pfaff <blp@gnu.org>
-
- Got rid of approx.h. In general, replaced all references to
- approx_eq() by ==, approx_lt() by <, etc. Other types of changes
- noted below.
-
- * Makefile.am: (pspp_SOURCES) Removed approx.h.
-
- * data-out.c: (try_F) Replaced test for approx_eq(number, 0.0) by
- test for mag < EPSILON.
-
- * misc.h: Add definition of EPSILON.
-
-Wed Feb 18 21:32:44 2004 Ben Pfaff <blp@gnu.org>
-
- * vfm.c: (procedure) Add check to prevent recursive call.
-
-Wed Feb 18 21:48:54 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * Moved the declarations relating to values to their own header file
- (val.h)
-
- * Added levene.c and levene.h
-
- * vars-atr.c: Changed the signature of compare_values to
- take const * arguments.
-
- * t-test.q: Changed the structure of struct t_test_proc
- variables now contain their own group statistics information.
- Eventually, t_test_proc might get renamed, because it'd be
- applicable to other commands too.
-
-Mon Feb 16 23:15:51 2004 Ben Pfaff <blp@gnu.org>
-
- * data-out.c: Clean up. Changed interface of convert_*() to take
- either a `double' or a `const char *' instead of a `const union
- value *'. Update all implementations of those interfaces.
- (data_out) Use switch statements instead of a table.
- (convert_AHEX) Rewrite.
-
- * format.h: Update comment.
-
-Mon Feb 16 22:14:36 2004 Ben Pfaff <blp@gnu.org>
-
- * q2c.c: (dump_header) Add an Emacs header line to output files
- that makes generated .c files read-only by default, to make it
- difficult to accidentally change generated files.
-
-Mon Feb 16 22:12:07 2004 Ben Pfaff <blp@gnu.org>
-
- * frequencies.q: (compare_freq_numeric_a) Compare by frequency,
- not bogus a->v.c <=> b->v.c pointer compare.
- (compare_freq_alpha_a) Ditto.
- (compare_freq_numeric_d) Ditto.
- (compare_freq_alpha_d) Ditto.
-
-Mon Feb 16 22:00:53 2004 Ben Pfaff <blp@gnu.org>
-
- Changed data_out() to store string data directly into a `union
- value''s s member, not indirectly into c.
-
- * crosstabs.q: (output_pivot_table) Use format_short() instead of
- data_out().
- (table_value_missing) Ditto.
- (float_M_suffix) Ditto.
- (format_short) New function.
-
- * data-in.h: (data_in_finite_line) Remove inline definition.
-
- * data-list.c: (destroy_dls_var_spec) New function.
- (destroy_dls) Rewrite in terms of destroy_dls_var_spec().
- (data_list_source_destroy_source) Avoid cast.
- (struct repeating_data_trns) New field `id_value'. Update
- comments.
- (cmd_repeating_data) Initialize id_value. Use new
- repeating_data_trns_free() for freeing REPEATING DATA
- transformations.
- (rpd_parse_record) Rewrite support for record ID to be less bogus.
- (repeating_data_trns_free) New function.
-
- * data-out.c: (data_out) Change return type to `void' by replacing
- error returns by writing a message into the output buffer.
- (convert_A) Read from v->s instead of v->c.
- (convert_AHEX) Ditto.
-
- * expr-evl.c: Update comment.
- (expr_evaluate) Add assertion in OP_STRING case.
-
- * format.h: (macro MAX_FORMATTED_LEN) New macro.
-
- * list.q: (list_cases) Update for new data_out() semantics.
-
- * print.c: (print_trns_proc) Ditto.
-
- * tab.c: (tab_value) Ditto.
- (tab_float) Avoid stupid cast.
-
- * var.h: Update comments.
- (macro MAX_STRING) New macro.
- (macro MAX_ELEMS_PER_VALUE) New macro.
-
- * vars-atr.c: (compare_values) New function.
-
- * vfm.c: (dump_splits) Update for new data_out() semantics.
-
-Mon Feb 16 21:45:47 2004 Ben Pfaff <blp@gnu.org>
-
- * crosstabs.q: (struct table_entry) Rename v[] to values[]. All
- references updated.
- (struct crosstab) Rename v[] to vars[]. All references updated.
- (hash_table_entry) Replace the hash algorithm and fix a bug at the
- same time, which caused the hash value to depend only on a single
- value, not all of the variables' values.
-
-Mon Feb 16 12:49:53 2004 Ben Pfaff <blp@gnu.org>
-
- Clean up struct dictionary's value_cnt usage.
-
- * dictionary.c: Add a function comment to each function.
- (struct dictionary) Rename value_cnt to next_value_idx, which more
- accurately reflects its meaning. All references updated.
- (dict_rename_vars) Add assertion.
- (dict_get_value_cnt) Rename dict_get_next_value_idx(). All
- references updated.
- (dict_get_case_size) New function.
-
- * aggregate.c: (create_sysfile) Use dict_get_case_size().
-
- * get.c: (mtf_read_nonactive_records) Ditto.
-
- * sort.c: (allocate_cases) Ditto.
- (write_initial_runs) Ditto.
- (merge) Ditto.
- (merge_once) Ditto.
-
- * vfm.c: (prepare_for_writing) Ditto.
- (setup_lag) Ditto.
- (lag_case) Ditto.
-
-Mon Feb 16 00:17:55 2004 Ben Pfaff <blp@gnu.org>
-
- Make vfm.c slightly less grotesque.
-
- * vfm.c: (filter_var) Removed.
- (filter_index) Removed.
- (FILTERED macro) Removed.
- (exclude_this_case) New function.
- (process_active_file_write_case) Use exclude_this_case() instead
- of FILTERED and inline tests.
- (procedure_write_case) Ditto.
- (setup_filter) Removed.
- (open_active_file) Don't call setup_filter().
- (close_active_file) Call dict_get_filter() instead of checking
- filter_var.
-
-Mon Feb 16 00:01:53 2004 Ben Pfaff <blp@gnu.org>
-
- * var.h: (struct variable) Update comments.
-
-Sun Feb 15 23:14:59 2004 Ben Pfaff <blp@gnu.org>
-
- New functions dict_create_var_assert(), dict_lookup_var_assert().
- Converted several dict_*_var()/assert pairs into a single
- dict_*_var_assert().
-
- * dictionary.c: (dict_create_var_assert) New function.
- (dict_lookup_var_assert) New function.
-
-Sun Feb 15 23:06:08 2004 Ben Pfaff <blp@gnu.org>
-
- Got rid of "struct long_vec", envector(), devector(), etc. Added
- two members `init', `reinit' to struct variable as a substitute.
-
- * Makefile.am: (pspp_SOURCES) Removed cases.c, cases.h.
-
- * cases.c: Removed.
-
- * cases.h: Removed.
-
- * aggregate.c: (parse_aggregate_functions) destvar doesn't need
- init.
-
- * autorecode.c: (cmd_autorecode) destvars don't need init.
-
- * compute.c: (lvalue_finalize) Set reinit.
-
- * data-list.c: (fixed_parse_compatible) Don't need init usually.
- (dump_fmt_list) Ditto.
- (parse_free) Ditto.
-
- * descript.q: (run_z_pass) Don't need init for z-scores.
-
- * dictionary.c: (dict_create_var) Initialize `init', `reinit'
- members.
- (dict_clone_var) Copy `reinit' member, initialize `init' member.
-
- * glob.c: (init_glob) Remove vec_init() calls.
-
- * inpt-pgm.c: (cmd_end_input_program) Use `reinit', not `left'.
-
- * loop.c: (internal_cmd_loop) Don't need to call envector().
-
- * numeric.c: (cmd_numeric) Ditto.
- (cmd_string) Ditto.
- (cmd_leave) Ditto. Set `init', `reinit' members.
-
- * recode.c: (cmd_recode) Don't need to call envector().
-
- * repeat.c: (internal_cmd_do_repeat) Ditto.
-
- * var.h: (struct variable) Remove `left'. Add `init', `reinit'.
- (force_create_variable) Removed prototype.
- (force_dup_variable) Ditto.
-
- * vector.c: (cmd_vector) Don't need to call envector().
-
- * vfm.c: (reinit_sysmis) Removed.
- (reinit_blanks) Removed.
- (init_zero) Removed.
- (init_blanks) Removed.
- (process_active_file_write_case) No need to deal with vectors.
- Call clear_temp_case().
- (vector_initialization) Rewrite to use `init', `reinit'.
- (close_active_file) No need to call vec_clear().
- (procedure_write_case) Call clear_temp_case().
- (clear_temp_case) New function.
-
-Sun Feb 15 20:50:36 2004 Ben Pfaff <blp@gnu.org>
-
- * pfm-write.c: (bufwrite) Get rid of nasty cast that also invoked
- undefined behavior.
-
-Thu Feb 12 23:35:15 2004 Ben Pfaff <blp@gnu.org>
-
- Add auxiliary argument to procedure() interface. Associated small
- clean-ups of vfm interface.
-
- * Updated every caller of procedure() and process_active_file() to
- reflect modified interface. Simple, ordinary changes not listed
- otherwise below.
-
- * Updated every function that implements struct case_stream's
- `read' function to take a write_case_func and a write_case_data.
- Also updated every caller of write_case() to instead call them
- through these arguments. In some cases this meant that the extra
- args had to be threaded through a couple of extra levels. This
- wasn't difficult or interesting so the details won't be given.
-
- * data-list.c: (struct repeating_data_trns) Add members
- `write_case', `wc_data' as kluge.
- (read_one_set_of_repetitions) Rename repeating_data_trns_proc and
- make non-static.
- (repeating_data_set_write_case) New function.
-
- * data-list.h: New file to declare repeating_data_trns_proc() and
- repeating_data_set_write_case().
-
- * inpt-pgm.c: (input_program_source_read) Call
- repeating_data_set_write_case() for all the REPEATING DATA
- transformations, so that they know where to send their cases.
- It's a big kluge. Also kluge in END CASE.
- (end_case_trns_proc) Never called anymore, but we still need it,
- so just assert(0).
-
- * sort.c: (read_sort_output) Update to match struct case_stream
- `read' member.
-
- * vfm.c: (struct write_case_data) New structure.
- (proc_func) Removed.
- (virt_proc_func) Removed.
- (begin_func) Removed.
- (virt_begin_func) Removed.
- (end_func) Removed.
- (write_case) Removed.
- (procedure) Added an auxiliary parameter to each function pointer
- argument's prototype. Added an auxiliary data parameter.
- Rewrote.
- (process_active_file) Ditto.
- (process_active_file_write_case) Pass aux data along.
- (close_active_file) Ditto.
- (procedure_write_case) Ditto.
- (SPLIT_FILE_procfunc) Ditto.
-
- * vfm.h: (typedef write_case_data) New.
- (typedef write_case_func) New.
- (struct case_stream) Add parameters to `read' member prototype.
-
-Thu Feb 12 19:24:53 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * t-test.q: Added calculations for independent samples. (But no Levene
- test yet!)
-
- * Makefile.am: Moved q_sources_c into own variable
-
-Wed Feb 11 23:56:51 2004 Ben Pfaff <blp@gnu.org>
-
- Miscellaneous cleanups.
-
- * Change unused to UNUSED in many source files to reflect modified
- pref.h. Change use of __WIN32__, __MSDOS, __DJGPP__,
- __CYGWIN32__, __unix__, and unix not to assume that they're
- defined to a nonzero value. Change use of __attribute__ to use
- NO_RETURN or PRINTF_FORMAT instead.
-
- * alloc.h: Move definitions for local_alloc(), local_free() here
- from ../pref.h.orig and simplify.
-
- * expr-evl.c: Instead of working differently based on PAGED_STACK,
- use a pool allocator unconditionally.
- (CHECK_STRING_SPACE) Removed.
- (ALLOC_STRING_SPACE) Removed.
- (expr_evaluate) Use e->pool instead of CHECK_STRING_SPACE and
- ALLOC_STRING_SPACE.
-
- * expr-opt.c: (dump_expression) Allocate string pool.
-
- * expr-prs.c: (expr_free) Free string pool.
-
- * pool.c: (pool_destroy) This pool must be removed from its
- parent's list of gizmos, not from its own. Use free_all_gizmos().
- (pool_clear) New function.
- (free_all_gizmos) New function.
- (pool_alloc) Use space in empty block after this one if any.
- (pool_release) Only empty out blocks, don't actually free() them.
-
- * print.c: Get rid of PAGED_STACK special case by always
- dynamically allocating line buffers.
- (struct print_trns) Always include the `line' member.
- (internal_cmd_print) Always initialize the `line' member.
- (alloc_line) Always allocate memory for `line'.
- (print_trns_proc) Always initialize buf from `line' member.
- (print_trns_free) Always free `line' memory.
-
- * sort.c: (allocate_file_handles) Special-case MS-DOS for mkdir()
- call.
-
-Wed Feb 11 20:33:18 2004 Ben Pfaff <blp@gnu.org>
-
- * flip.c: 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 besides.
- (struct varname) Make name a 9-character fixed-size array
- instead of a 1-character variable size array.
- (make_new_var) Allow digits in variable names.
- (flip_stream_write) Limit numeric values to 8 characters and
- format system missing and very large and small values more
- appropriately.
-
-Thu Feb 5 13:19:06 WAST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * command.c: Fixed test on command return status for the correct
- value, which had been causing a crash under certain invalid input.
-
-Wed Feb 4 15:34:11 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * t-test.q: Added calculations for the one sample variant of the T-TEST
-
-Tue Feb 3 20:09:54 2004 Ben Pfaff <blp@gnu.org>
-
- * tab.c: (render_strip) Fix bug that sometimes caused joined text
- in joined cells to be rendered outside box boundaries.
-
-Tue Feb 3 18:56:45 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * random.c (rng_create): Fixed seeding so that it gets reseeded after
- SET seed=xx has been called.
-
-Mon Jan 19 14:08:09 2004 Ben Pfaff <blp@gnu.org>
-
- * random.c (rng_get_double): Fix always-returning-zero bug in my
- preferred way, and at the same time make sure rounding doesn't
- bite us.
-
-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.
-
-Wed Dec 31 16:27:33 WAST 2003 John Darrington <john@darrington.wattle.id.au>
-
- * Fixed bug where FREQ would crash on alpha values
-
-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.
-
-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.
-
-Wed Dec 31 07:19:46 WST 2003 John Darrington <john@darrington.wattle.id.au>
-
- * Removed redundant code from output.h
-
-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.
-
-Fri Dec 19 23:35:04 2003 Ben Pfaff <blp@gnu.org>
-
- * algorithm.c (binary_search): Fix comparison.
-
-Fri Dec 19 23:27:45 2003 Ben Pfaff <blp@gnu.org>
-
- * algorithm.c: (binary_search) Fix assertion.
-
-Fri Dec 19 21:31:48 2003 Ben Pfaff <blp@gnu.org>
-
- * sysfile-info.c: (compare_vectors_by_name) Rewrite.
-
-Fri Dec 19 21:30:24 2003 Ben Pfaff <blp@gnu.org>
-
- * sort.c: (compare_case_lists) Rewrite.
-
-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.
-
-Fri Dec 19 16:42:13 2003 Ben Pfaff <blp@gnu.org>
-
- * postscript.c: (int_2_compare) Rewrite.
- (compare_line) Rewrite.
-
-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.
-
-Fri Dec 19 16:23:45 2003 Ben Pfaff <blp@gnu.org>
-
- * matrix-data.c (compare_variables_by_mxd_vartype): Rewrite.
-
-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.
-
-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.
-
-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.
-
-Thu Dec 18 12:27:03 WAST 2003 John Darrington <john@darrington.wattle.id.au>
- * added a calculation of the mode to FREQUENCIES
-
-Wed Dec 17 12:53:01 WAST 2003 John Darrington <john@darrington.wattle.id.au>
-
- * moved (un)defs of DEBUGGING to config.h
-
-Mon Dec 15 21:35:59 2003 Ben Pfaff <blp@gnu.org>
-
- * groff-font.c: (add_kern) Fix indentation.
- (add_kern) Use & instead of % to take power-of-2 modulus.
- (font_get_kern_adjust) Likewise.
-
-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.
-
-Fri Dec 12 13:31:58 2003 Ben Pfaff <blp@gnu.org>
-
- * All source files: Get rid of nasty special cases for Checker,
- which is pretty obsolete now.
-
-Thu Dec 11 21:38:24 WST 2003 John Darrington <john@darrington.wattle.id.au>
-
- * Fixed a bug apparent when using the FREQUENCIES command with the
- html driver. The html driver was incorrectly trying to display
- empty cells.
-
-Sun Jan 2 21:40:13 2000 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Reorganized. Put locale dir in version.c instead
- of passing it to each compile command. Only put local gmp libs in
- LD_ADD if not installed on system. Remove `boast' target.
-
- * All source files: struct and union typedefs eliminated.
- `sizeof type' replaced by `sizeof object' where practical. Moved
- `unused' qualifiers from start to end of declarations for gcc
- 2.7.2 compatibility. Change `while (1)' to `for (;;)'. Made
- assertions on pointers strictly compliant. Removed _ prefixes on
- some function parameter names.
-
- * alloc.c: New source file, containing these external linkage
- functions removed from common.c: xmalloc, xcalloc, xrealloc,
- xstrdup.
-
- * arena.c: Removed.
-
- * arena.h: Removed.
-
- * ascii.c: Migrated from arenas to pools.
- (struct ascii_driver_ext) ops[], box[], fonts[] changed from
- c_string to len_string. All references changed.
- (ascii_option) Signature changed to comply to new output.c
- interface.
- (count_fancy_chars) Removed.
- (delineate) Removed support for rich text.
- (ascii_text_metrics) Ditto.
- (text_draw) Ditto.
- (output_shorts) Change `box', `off', `on' from c_string to
- len_string. Change `remaining' from int to size_t.
- (ascii_close_page) Make page numbering less haphazard.
-
- * autorecode.c: Migrate from arenas to pools.
-
- * avl.c: Migrate from arenas to pools. Synch from libavl 1.4.0.
-
- * bitvector.h: New file containing these macros from misc.h:
- SET_BIT, CLEAR_BIT, SET_BIT_TO, TEST_BIT, BIT_INDEX.
-
- * command.c: (struct command) cmd1, cmd2, cmd3 members changed to
- word[3]. ncmd removed.
- (var empty_string) Removed.
- (var cmd_table) Declaration updated.
- (var cmdtab) Removed.
- (cmp_command) Removed.
- (split_words) Rewritten to use strtok_r().
- (init_cmd_parser) Renamed cmd_init(). Rewritten.
- (find_command) Removed.
- (FILE_TYPE_okay) Rewritten.
- (cmd_parse) Rewritten. Semantics of the return value of command
- handlers has changed: they must now return one of the new CMD_*
- enumerals, rather than a magic value. This meant that all
- commands had to be modified, and they were.
- (figure_out_command) New function.
-
- * command.def: Add CORRELATIONS, PEARSON CORRELATIONS. Add
- #defines for INIT, INPU, etc.
-
- * command.h: New CMD_* enum series.
- (cur_proc) Make const char *, not char *.
- (cmd_init) Prototype.
- (cmd_parse) Ditto.
-
- * common.c: Removed.
-
- * common.h: Removed.
-
- * correlations.q: New file.
-
- * crosstabs.q: Migrate from arenas to pools. Migrate to new-style
- q2c.
- (custom_tables) Renamed crs_custom_tables().
- (custom_variables) Renamed crs_custom_variables().
- (calc_integer) Add in some `const' qualifiers.
- (table_value_missing) Change from a_string to len_string.
- (float_M_suffix) Change from a_string to len_string.
-
- * data-in.c: Rewritten. All references to
- parse_string_as_format() changed to data_in().
-
- * data-in.h: New file.
-
- * data-list.c: Change DLS_* from #define's to enums. Move from
- rpd_msg() to tmsg().
- (RPD_ERR) New #define.
- (do_reading) Change dfm_push_cust() to dfm_push(), pop_cust() to
- dfm_pop().
- (read_from_data_list_fixed) Change from old
- parse_string_as_format() to new data_in().
- (read_from_data_list_free) Ditto.
- (read_from_data_list_list) Ditto.
- (cmd_repeating_data) Modify approach to checking for end of
- command.
- (rpd_msg) Removed.
- (rpd_parse_record) Change from old parse_string_as_format() to new
- data_in(). Change from old convert_format_to_string() to new
- data_out().
- (read_one_set_of_repetitions) Change dfm_push_cust() to
- dfm_push(), pop_cust() to dfm_pop().
-
- * data-out.c: Rewritten. All references to
- convert_format_to_string() changed to data_out().
-
- * descript.q: Migrate to new q2c.
- (cmd_descriptives) Removed.
- (internal_cmd_descriptives) Renamed cmd_descriptives ().
- (custom_variables) Renamed dsc_custom_variables().
-
- * dfm.c: (struct dfm_fhuser_ext) `ln' removed. All references
- removed.
- (open_file_r) Initialize h->where.line_number. Migrate to new
- struct string.
- (open_file_w) Initialize h->where.line_number.
- (read_record) Change from ext->ln to h->where.line_number.
- Migrate to struct string.
- (dfm_put_record) Rephrased.
- (dfm_push_cust) Renamed dfm_push(), rewritten.
- (dfm_pop) New function.
-
- * error.c: All references updated.
- (glob var error_count) Renamed err_err_count.
- (glob var warning_count) Renamed err_warning_count.
- (glob var error_already_flagged) Renamed err_already_flagged.
- (glob var verbosity) Renamed err_verbosity.
- (glob var cust_fn) Removed.
- (glob var cust_ln) Removed.
- (static var file_loc) New.
- (static var nfile_loc) New.
- (static var mfile_loc) New.
- (tmsg) New function.
- (push_cust) Removed.
- (pop_cust) Removed.
- (msg) Rewritten.
- (static var terminating) Removed.
- (failure) Renamed err_failure().
- (hcf) Renamed err_hcf().
- (err_push_file_locator) New function.
- (err_pop_file_locator) New function.
- (err_location) New function.
- (check_error_count) Renamed err_check_count().
- (vmsg) Renamed err_vmsg(). Interface changed.
- (verbose_msg) Removed.
- (err_cond_fail) New function.
- (error_break) Renamed err_break().
-
- * error.h: All references updated.
- (enum MSG_CLASS_COUNT) Renamed ERR_CLASS_COUNT.
- (enum ERR_CLASS_MASK, ERR_VERBOSITY_SHIFT, ERR_VERBOSITY_MASK)
- New.
- (struct file_locator) New.
- (struct error) New.
- (macro verbose_msg) Removed.
- (macro cond_fail) Removed.
-
- * expr-opt.c: (evaluate_tree) sizeof(char) == 1.
-
- * expr-prs.c: Reorganized. All references updated.
- (exprtypename) Renamed expr_type_name().
- (typename) Renamed type_name().
- (free_expression) Renamed expr_free().
- (parse_expression) Renamed expr_parse(). Uses new type_check()
- function.
- (init_functab) Renamed init_func_tab().
- (type_check) New function.
- (parse_or) Rewritten to use new allocate_nonterminal() and
- append_nonterminal_arg() functions.
- (parse_and) Ditto.
- (parse_not) Ditto.
- (parse_rel) Ditto. Also simplified logic.
- (parse_add) Ditto.
- (parse_mul) Ditto.
- (parse_neg) Ditto.
- (parse_exp) Ditto.
- (SYSMIS_func) Ditto.
- (VALUE_func) Rephrased.
- (CONCAT_func) Fix memory leak by replacing free by free_node on
- lossage.
- (generic_str_func) Ditto.
- (parse_function) Ditto. Also rephrasings. Uses bsearch() to find
- function.
- (allocate_nonterminal) New function.
- (append_nonterminal_arg) New function.
- (static func_tab[]) Now at file level.
- (cmp_func) Moved.
- (init_func_tab) Moved. Now just uses qsort() to sort func_tab[].
-
- * expr.h: (enum series OP_*) Moved to exprP.h.
- (OP_* defines) Ditto.
- (struct op_desc) Ditto.
- (global ops[]) Ditto.
- (struct num_con_node) Ditto.
- (struct str_con_node) Ditto.
- (struct var_node) Ditto.
- (struct lag_node) Ditto.
- (struct casenum_node) Ditto.
- (struct nonterm_node) Ditto.
- (union any_node) Members renamed.
- (struct sys_node) Removed.
- (struct val_node) Removed.
- (operator typedef) Removed.
- (typedef exprtype) Removed.
- (enum series EX_*) Moved to exprP.h.
- (struct expression) Ditto. Also renamed a lot of the members.
- (PXP_* defines) Changed to enums.
- (free_node prototype) Moved to exprP.h.
-
- * file-handle.h: (struct file_handle) New member `where'.
-
- * file-handle.q: Migrated to new q2c format.
- (prepend_current_directory) Removed (dead code).
- (cmd_file_handle) Incorporated all of internal_cmd_file_handle().
- (fh_get_handle_by_filename) Removed dead code.
- Set new `where' member.
-
- * file-type.c: (file_type_source_read) References to
- parse_string_as_format() changed to data_in().
- dfm_push_cust()/pop_cust() changed to dfm_push()/dfm_pop().
-
- * filename.c: All references updated.
- (init_filename) Renamed fn_init().
- (expand_line) Removed.
- (macro EXPAND_LINE) Removed.
- (interp_vars) Renamed fn_interp_vars(). Now uses st_*() instead
- of custom functions.
- (gnu_getcwd) Renamed fn_get_cwd(), rewritten.
- (tilde_expand) Renamed fn_tilde_expand(), uses ds_*().
- (normalize_filename) Renamed fn_normalize().
- (search_path) Renamed fn_search_path(), rewritten.
- (prepend_dir) Renamed fn_prepend_dir().
- (blp_getenv) Renamed fn_getenv().
- (blp_dirname) Renamed fn_dirname().
- (fn_basename) New function, not used.
- (absolute_filename_p) Renamed fn_absolute_p().
- (is_special_filename) Renamed fn_special_p().
- (file_exists) Renamed fn_exists_p().
- (readlink_malloc) Renamed fn_readlink().
- (getenv_default) Renamed fn_getenv_default().
- (open_file) Renamed fn_open().
- (close_file) Renamed fn_close().
- (open_file_ext) Renamed fn_open_ext().
- (close_file_ext) Renamed fn_close_ext().
-
- * font.h: Migrate from arenas to pools.
-
- * format.c: (parse_format_specifier_name) Deal with ds_* strings.
-
- * frequencies.g: Migrate from arenas to pools.
-
- * frequencies.q: Migrate to new q2c version. Migrate from arenas
- to pools.
-
- * getline.c: All references updated.
- (global getl_buf) Changed from char * to struct string.
- (static getl_include_path) Ditto.
- (global getl_buf_len) Removed.
- (global getl_buf_size) Removed.
- (getl_include_path) Deal with new getl_buf, getl_include_path.
- (getl_uninitialize) New function.
- (getl_get_current_directory) Rewritten.
- (getl_clear_include_path) Rewritten.
- (getl_add_include_dir) Rewritten.
- (getl_add_file) Assertion fixed.
- (getl_add_virtual_file) Change initial value of `remaining_loops'
- from 2 to 1.
- (welcome) Rewritten.
- (handle_line_buffer) Make static. Change logic to make
- getl_add_virtual_file() change sensible. Use ds_*() strings.
- (getl_read_line) Use ds_*() strings. Implement SET ECHO.
- (getl_close_file) Moved.
- (getl_location) New function.
-
- * getline.h: All references updated.
- (macro curln) Removed.
- (macro curfn) Removed.
- (macro am_interactive) Renamed getl_am_interactive.
- (macro am_reading_script) Renamed getl_reading_script.
-
- * glob.c: (global fmt_parse_ignore_error) Removed.
- (init_glob) Use locale_dir not LOCALEDIR. Use feholdexcept() on
- systems that support it (C99). Turn off SET ECHO by default. No
- necessary julcal initialization anymore.
-
- * groff-font.c: Migrate from arenas to pools.
- (groff_read_font) Use err_push_file_locator().
- (groff_read_DESC) Ditto.
- (font_msg) Use tmsg().
-
- * hash.c: (hsh_sort) Fix debug code.
- [GLOBAL_DEBUGGING] Include stdio.h.
-
- * hash.h: (macro force_hsh_insert) Rephrase.
-
- * heap.c: Rewritten.
-
- * heap.h: Rewritten.
-
- * html.c: (html_option) Change from outp_value to struct string.
- (postopen) Change from curfn to getl_location().
- (escape_string) Remove rich-text code. Signature changed.
- (output_tab_table) Switch from a_string to struct len_string.
- Remove rich text support.
-
- * lexer.c: All references updated. Largely rewritten. Major
- changes listed below. Removed tagged quote support. Adapted to
- struct string tokstr.
- (global tokstr) Changed to struct string.
- (global tokstr_size) Removed.
- (global tokstr_len) Removed.
- (global tokid) New.
- (global tokint) Removed.
- (global toklongstr) Removed.
- (C* defines) Removed.
- (static tbl[]) Removed.
- (static id[]) Removed.
- (static une[]) Removed.
- (discard_line) Renamed lex_discard_line().
- (get_entire_line) Renamed lex_entire_line().
- (get_rest_of_line) Renamed lex_rest_of_line().
- (get_dotted_rest_of_line) Merged into lex_rest_of_line().
- (make_hexit) Removed.
- (syntax_error) Renamed lex_error(). Return value removed.
- (get_token_representation) Renamed lex_token_representation().
- (putback) Renamed lex_put_back().
- (putfwd) Renamed lex_put_forward().
- (convert_negative_to_dash) Renamed lex_negative_to_dash().
- (set_prog) Renamed lex_set_prog().
- (init_lex) Renamed lex_init().
- (reset_eof) Renamed lex_reset_eof().
- (lookahead) Renamed lex_look_ahead().
- (check_id) Rewritten.
- (yylex) Renamed lex_get(), rewritten.
- (lex_end_of_command) New function. Many commands were rephrased
- using this.
- (lex_integer_p) New function. Replaces compare of tokint against
- NOT_LONG.
- (lex_integer) New function. Replaces tokint.
- (match_tok) Renamed lex_match().
- (match_id) Renamed lex_match_id().
- (match_int) Renamed lex_match_int().
- (force_match_id) Renamed lex_force_match_id(), added return value.
- (force_match) Renamed lex_force_match(), added return value.
- (force_string) Renamed lex_force_string(), added return value.
- (force_int) Renamed lex_force_int(), added return value.
- (lex_id_match_len) New function.
- (id_match) Renamed lex_id_match(), rewritten.
- (get_line) Renamed lex_get_line().
- (preprocess_line) Renamed lex_preprocess_line().
- (tokname) Renamed lex_token_name().
- (bin_value_func) Removed.
- (oct_value_func) Removed.
- (hex_value_func) Removed.
- (unexpected_eof) New function.
- (convert_numeric_string_to_char_string) New function.
- (parse_string) Rewritten, signature changed.
- (add_tokstr_char) Removed.
- (add_tokstr_unsigned) Removed.
- (add_tokstr_string) Removed.
- (parse_tagged_quote) Removed.
- (skip_comment) Renamed lex_skip_comment().
-
- * lexer.h: All references updated.
- (macro is_id1) Renamed CHAR_IS_ID1.
- (macro is_idn) Renamed CHAR_IS_IDN.
- (token names ID, NUM, STRING, STOP, ... WITH, EXP) Renamed with
- prefix T_: T_ID, T_NUM, T_STRING, T_STOP, ... T_WITH, T_EXP.
- (macro get_token) Removed.
- (macro id_match) Removed.
- (macro force_match_id) Removed.
- (macro force_match) Removed.
- (macro force_string) Removed.
- (macro force_int) Removed.
- (macro force_num) Removed.
- (macro force_id) Removed.
-
- * lexerP.h: Removed.
-
- * list.q: Migrated to new q2c format.
- (write_line) Deal with struct len_string.
- (write_varname) Ditto.
- (write_fallback_headers) Ditto.
-
- * magic.c: New file, incorporating the following global variables
- previously in other files: endian, second_lowest_value. And both
- of those are conditional on #define's.
-
- * magic.h: New file, incorporating the following global variable
- declarations: endian, second_lowest_value, and the following macro
- declarations: NOT_DOUBLE, NOT_LONG, NOT_INT.
-
- * main.c: Added declarations of pgmname, finished, curdate,
- start_interactive.
- (main) Call new parse_script() function.
- (parse_script) New function.
- (execute_command) New function.
- (dump_token) Removed.
- (handle_error) New function.
-
- * matrix.c: New file.
-
- * matrix.h: New file.
-
- * matrix-data.c: Migrated from arenas to pools.
- (mget_token) Change from parse_string_as_format() to data_in().
-
- * means.q: Migrate to new q2c.
- (custom_tables) Renamed mns_custom_tables().
- (custom_crossbreak) Renamed mns_custom_crossbreak().
- (custom_variables) Renamed mns_custom_variables().
-
- * mis-val.c: (static var width) Changed from `int' to `size_t'.
- (parse_varnames) Prototype.
- (parse_numeric) Rephrasings.
- (parse_alpha) Adapt to new struct string tokstr.
-
- * misc.c: (intlog10) Rewritten.
- (spacing) Removed.
- (ansi_rand) Renamed real_rand(), moved into random.c.
- (ansi_srand) Renamed real_srand(), moved into random.c.
- (setup_randomize) Moved to random.c.
- (rand_uniform) Ditto.
- (rand_normal) Ditto.
- (rand_simple) Ditto.
- (get_config_line) Removed.
- (reverse) Removed (dead code).
-
- * misc.h: (macro SET_BIT) Moved to bitvector.h.
- (macro CLEAR_BIT) Ditto.
- (macro TEST_BIT) Ditto.
- (macro SET_BIT_TO) Ditto.
- (macro BIT_INDEX) Ditto.
-
- * output.c: (outp_read_devices) Move to err_push_file_locator()
- from push_cust(). Use struct string.
- (expand_op_tokstr) Removed.
- (static var op_tokstr) Changed to struct string.
- (static var op_tokstr_size) Removed.
- (tokener) Rephrasings. Use struct string.
- (parse_options) Use struct string.
- (destroy_driver) Fix assertion.
- (outp_get_paper_size) Move to err_push_file_locator().
- [0] Removed dead code.
- (outp_string_width) Move to len_string.
-
- * output.h: Comment fixes.
- (TAG_* enum series) Removed.
- (struct outp_value) Removed.
- (enum OUTP_T_FANCY) Removed.
- (struct outp_text) `s' changed from a_string to len_string.
- (struct outp_class) `option' change arg 3 from outp_value to
- struct string.
-
- * pfm-read.c: (corrupt_msg) Rewritten.
-
- * pfm-write.c: (bufwrite) Fix assertion.
-
- * pool.c: New file, reference version.
-
- * pool.h: New file, reference version.
-
- * postscript.c: (ps_font_sizes) Fix assertion.
- (ps_option) Change arg 3 from outp_value to struct string.
- Adapt to struct string.
- (macro output_line) Removed.
- (macro add_string) Removed.
- (output_encodings) Adapted to struct string. Moved to
- err_push_file_locator().
- (find_encoding_file) Fix assertion.
- (read_ps_encodings) Move to err_push_file_locator().
- (postopen) Use getl_location() instead of curfn.
- (out_text_plain) Move to len_string.
- (text) Ditto. Remove rich text support.
-
- * print.c: (cmd_print) Remove now-unneeded resource cleanup code.
- (cmd_print_eject) Ditto.
- (cmd_write) Ditto.
- (internal_cmd_print) Now cleans up after itself. Uses
- fh_parse_file_handle() now.
- (cmd_print_space) Use PXP_NUMERIC to type-check.
-
- * q2c.c: Overhauled. Removed _("") i18n support. All references
- updated. All output functions updated to handle structures rather
- than local or static variables. Adapt to new PSPP lex_*()
- functions.
- (macro _) Removed.
- (macro N_) Removed.
- (macro MAX_N_SBC) Removed.
- (global bare) Removed.
- (enum STRING) Renamed T_STRING.
- (enum ID) Renamed T_ID.
- (get_buffer) Buffer size increased.
- (strlower) Renamed st_lower(), rephrased.
- (strupper) Renamed st_upper(), rephrased.
- (skip_ws) New function.
- (get_line) Don't special-case any types of lines (like those
- beginning with ! or $, for instance).
- (get_token) Renamed lex_get(). Rephrased.
- (static var `prefix') New.
- (parse) New function.
- (parse_setting) Minor rephrasing.
- (dump_specifier_vars) Ditto.
- (make_identifier) Put null terminator on identifier, duh.
- (dump_vars) Renamed dump_declarations(). Never indent. Never
- static. Output changed entirely.
- (dump_specifier_init) Rephrase.
- (dump_vars_init) No index variable needed. Other modifications.
- (dump_parser) Don't parse command name. Do dump functions instead
- of just code fragments.
- (dump_free) Dump function instead of code fragment.
- (recognize_directive) New function.
- (main) Use recognize_directive(). Don't rely on magic $ line
- beginning: instead, parse comments. Update list of headers.
-
- * random.c: New file, containing the following functions:
- real_rand(), real_srand(), setup_randomize, shuffle, rand_uniform,
- rand_normal, rand_simple.
-
- * random.h: New file.
-
- * recode.c: (cmd_recode) Merge internal_cmd_recode() into this
- function. `max_src_width', `max_dst_width' changed to size_t.
- (internal_cmd_recode) Removed.
- (parse_dest_spec) Merge similar cases.
- (parse_src_spec) Add assertion.
-
- * repeat.c: (recognize_keyword) New function.
- (internal_cmd_do_repeat) Parse and handle PRINT keyword on END
- REPEAT. Improve recognition of END REPEAT (use
- recognize_keyword()). Move from curfn to getl_location(). Use
- struct string.
-
- (perform_DO_REPEAT_substitutions) Adapt to struct string.
-
- * set.q: Adapt to new q2c.
- (cmd_set) Range-check some values better.
- (custom_blanks) Renamed stc_custom_blanks().
- (custom_length) Renamed stc_custom_length().
- (custom_results) Renamed stc_custom_results().
- (custom_seed) Renamed stc_custom_seed().
- (custom_width) Renamed stc_custom_width().
- (custom_format) Renamed stc_custom_format().
- (custom_journal) Renamed stc_custom_journal().
- (custom_color) Renamed stc_custom_color().
- (custom_listing) Renamed stc_custom_listing().
- (custom_disk) Renamed stc_custom_disk().
- (custom_log) Renamed stc_custom_log().
- (custom_rcolor) Renamed stc_custom_rcolor().
- (custom_viewlength) Renamed stc_custom_viewlength().
- (custom_workdev) Renamed stc_custom_workdev().
-
- * settings.h: Not necessary to include format.h any longer.
-
- * sfm-read.h: (macro bswap_int32) Moved here from sfmP.h.
- (corrupt_msg) Rewritten.
-
- * sort.c: Adapt to rewritten heap ADT.
-
- * str.c: (aa_strcpy) Removed.
- (ab_strcpy) Removed.
- (ac_strcpy) Removed.
- (ba_strcpy) Removed.
- (bb_strcpy) Removed.
- (ca_strcpy) Removed.
- (aa_strdup) Removed.
- (aa_strdupcpy) Removed.
- (ba_strdup) Removed.
- (sa_strdup) Removed.
- (memrev) Renamed mm_reverse().
- (memrmem) Renamed mm_find_reverse().
- (cmp_str) Renamed st_compare_pad().
- (strmaxcpy) Removed.
- (strbarepadcpy) Renamed st_bare_pad_copy(), signature changed.
- (strbarepadlencpy) Renamed st_bare_pad_len_copy(), signature
- changed.
- (strpadcpy) Renamed st_pad_copy(), signature changed.
- (blpstrset) Removed.
- (ds_create) New function.
- (ds_init) New function.
- (ds_replace) New function.
- (ds_destroy) New function.
- (ds_clear) New function.
- (ds_extend) New function.
- (ds_shrink) New function.
- (ds_truncate) New function.
- (ds_length) New function.
- (ds_size) New function.
- (ds_value) New function.
- (ds_end) New function.
- (ds_concat) New function.
- (ds_concat_buffer) New function.
- (ds_printf) New function.
- (ds_putchar) New function.
- (ds_getline) New function.
- (ds_get_config_line) New function derived from the old
- misc.c:get_config_line().
- (ls_create) New function.
- (ls_create_buffer) New function.
- (ls_init) New function.
- (ls_shallow_copy) New function.
- (ls_destroy) New function.
- (ls_null) New function.
- (ls_null_p) New function.
- (ls_empty_p) New function.
- (ls_length) New function.
- (ls_value) New function.
- (ls_end) New function.
-
- * str.h: Reformatted.
- (struct a_string) Removed.
- (struct b_string) Removed.
- (struct c_string) Removed.
- (struct len_string) New.
- (struct string) New.
- (macro as_streq) Removed.
- (macro bs_streq) Removed.
- (macro cs_streq) Removed.
- (macro sa_streq) Removed.
- (macro sb_streq) Removed.
- [__GNUC__] (inline function ds_putchar) New function.
- [__GNUC__] (inline function ds_length) New function.
- [__GNUC__] (inline function ds_value) New function.
- [__GNUC__] (inline function ds_end) New function.
-
- * sysfile-info.c: (cmd_sysfile_info) Rephrased.
- (display_vectors) Fix missing i18n.
-
- * t-test.q: Migrate to new q2c.
-
- * tab.c: Migrate from arenas to pools.
- (tab_create) Use struct len_string.
- (tab_realloc) Ditto.
- (text_format) Ditto.
- (tab_joint_text) Ditto.
- (tab_natural_width) Remove rich text support.
- (tab_natural_height) Ditto.
- (tab_output_text) Handle TAT_FIX.
- (tab_raw) Change arg from a_string to len_string.
- (tabi_driver) Fix assertion. Use struct len_string.
- (render_strip) Use struct len_string. Remove rich text support.
- Add `const' qualifiers.
-
- * tab.h: (enum TAB_RICH) Remove.
- (enums TAB_COL_NONE, TAB_COL_DONE) New. Where appropriate,
- SOM_COL_* updated to read TAB_COL_*.
- (struct tab_table) Change arena to pool. Change a_string to
- len_string.
-
- * temporary.c: (restore_dictionary) Rewrite Checker code.
-
- * var.h: (macros MAX_SHORT_STRING, MIN_LONG_STRING, SYSMIS,
- LOWEST, HIGHEST) Moved here from common.h.
- (typedef any_trns) Removed. All references changed to `struct
- trns_header'.
-
- * vars-atr.c: (force_create_variable) Fix assertion.
- (force_dup_variable) Fix assertion.
-
-Thu Jun 3 18:40:42 1999 Ben Pfaff <blp@gnu.org>
-
- Using alphanumeric variables in functions under AGGREGATE
- segfaulted. Fixed. Thanks to Dr. Dirk Melcher
- <BZN-mdksh@t-online.de> for reporting this bug.
-
- * aggregate.c: (parse_aggregate_functions) When setting the
- FSTRING bit, also allocate memory for the `string' member of
- agr_next.
- (free_aggregate_functions) Free iter->string. Don't use the
- non-function bits when indexing the array of functions.
- [DEBUGGING] (debug_print) Don't use the non-function bits when
- indexing the array of functions.
-
-Sun May 30 00:00:54 1999 Ben Pfaff <blp@gnu.org>
-
- Under certain circumstances, the final case would be omitted from
- the results of an AGGREGATE operation. Fixed. Thanks to Dr. Dirk
- Melcher <BZN-mdksh@t-online.de> for reporting this bug.
-
- * aggregate.c (agr_00x_end_func): Increment number of cases in
- sink before writing case. For streams that keep track of how many
- cases there are based on this value, this means that the last case
- will be read in on the next stream read.
-
-Sat May 29 22:03:31 1999 Ben Pfaff <blp@gnu.org>
-
- Undefined behavior was invoked by referencing a freed pointer.
-
- * vfm.c (memory_stream_write): Free pointer *after* checking for
- non-null status.
-
-Sat May 29 22:02:22 1999 Ben Pfaff <blp@gnu.org>
-
- A wrong record size was displayed when paging the active file to
- disk.
-
- * vfm.c: (memory_stream_write) Fix off-by-one error.
-
-Sat May 29 21:50:26 1999 Ben Pfaff <blp@gnu.org>
-
- Not having enough temporary space for sorting caused a core dump.
- Fixed.
-
- * sort.c: (allocate_cases) Initialize i.
-
-Sat May 29 21:40:54 1999 Ben Pfaff <blp@gnu.org>
-
- Syntax errors in function descriptions on AGGREGATE caused core
- dumps. Fixed.
-
- * aggregate.c (cmd_aggregate): Don't free agr_dict after calling
- free_aggregate_functions(), since that function already frees
- agr_dict.
-
-Sat May 29 21:06:10 1999 Ben Pfaff <blp@gnu.org>
-
- A null pointer was dereferenced, causing a core dump, when
- PERCENTILES was specified on FREQUENCIES. This fixes the problem,
- but PSPP still doesn't calculate percentiles. Thanks to Regnor
- Jernsletten <rjernsle@eunet.no> for reporting this problem.
-
- * arena.c: (arena_malloc) If the arena hasn't been initialized
- already, initialize it.
-
-Sat May 29 20:47:29 1999 Ben Pfaff <blp@gnu.org>
-
- * Makefile.cygwin: New file supplied by Hankin <hankin@dunno.com>
- for compilation with Cygnus Windows B20. Not used by other
- systems.
-
-Sat May 29 20:36:04 1999 Ben Pfaff <blp@gnu.org>
-
- SORT always sorted in ascending order. Fixed. Thanks to Dr. Dirk
- Melcher <BZN-mdksh@t-online.de> for reporting this bug.
-
- * sort.c: (compare_case_lists) Reverse sense of comparison if
- sorting in descending order.
- (compare_record) Ditto.
-
-Tue Mar 9 13:18:54 1999 Ben Pfaff <blp@gnu.org>
-
- SPLIT FILE with a string variable caused a core dump. Fixed.
-
- * vfm.c: If the variable is a string then make a temporary value
- struct pointing to it. The underlying problem is a lot bigger
- than this (see TODO) but this is a stopgap for the simple case at
- least.
-
-Tue Mar 9 13:15:53 1999 Ben Pfaff <blp@gnu.org>
-
- Nested INCLUDEs didn't work. Fixed.
-
- * getline.c: (getl_include) Set first_line to NULL in allocated
- structure.
-
-Tue Mar 9 13:13:46 1999 Ben Pfaff <blp@gnu.org>
-
- The MATCH FILES procedure set the values of variables not present
- to 0. It should have been SYSMIS. This is now fixed.
-
- * get.c: (mtf_delete_file_in_place) Replace 0.0 by SYSMIS.
-
-Tue Mar 9 12:52:23 1999 Ben Pfaff <blp@gnu.org>
-
- The REMARK command was too aggressive about skipping lines. It
- didn't like being the last command in a file.
-
- * command.c: (cmd_remark) Call get_entire_line() instead of
- get_line().
-
-Tue Mar 9 12:48:05 1999 Ben Pfaff <blp@gnu.org>
-
- Comment parsing wasn't consistent with the rest of the code in its
- idea of where one command ends and another starts. This meant
- that sometimes commands would be mysteriously ignored. Thanks to
- Dr. Dirk Melcher <BZN-mdksh@t-online.de> for reporting this bug.
-
- * command.c: (parse_cmd) Hand off comment parsing to new function
- skip_comment() in lexer.c.
- * lexer.c: (skip_comment) New function.
-
-Wed Jan 20 20:22:07 1999 Ben Pfaff <blp@gnu.org>
-
- The TABLE subcommand on MATCH FILES worked only erratically at
- best. This fixes it. Thanks to Dr. Dirk Melcher
- <BZN-mdksh@t-online.de> for reporting this bug.
-
- * get.c: (mtf_compare_BY_values) When comparing string values, a
- difference of 1 is still a difference :-)
- (mtf_processing) Inverted TABLE reading logic fixed. Also don't
- advance TABLE files automatically when matched. Comment fixes.
-
-Tue Jan 19 22:32:31 1999 Ben Pfaff <blp@gnu.org>
-
- VARIABLE LABELS rejected a slash before the first variable
- specification, contradicting the documentation. Thanks to Walter
- M. Gray <graywm@northernc.on.ca> for reporting this bug.
-
- * var-labs.c: (cmd_variable_labels) Ignore a leading slash in
- command specification.
-
-Tue Jan 19 22:29:54 1999 Ben Pfaff <blp@gnu.org>
-
- Because of an incorrect optimization in memory allocation,
- CROSSTABS sometimes segfaulted when asked to output multiple
- tables. Thanks to Walter M. Gray <graywm@northernc.on.ca> for
- reporting this bug.
-
- * crosstabs.q: (postcalc) New variables maxcols, maxcells, which
- are passed to output_pivot_table() for its use.
- (output_pivot_table) Instead of assuming the number of columns is
- constant, keep track with maxcols. In general mode, use maxcells
- to determine whether more matrix cells need to be allocated.
-
-Tue Jan 19 22:27:46 1999 Ben Pfaff <blp@gnu.org>
-
- CROSSTABS didn't display value labels for column and row
- variables. Thanks to Walter M. Gray <graywm@northernc.on.ca> for
- reporting this bug.
-
- * crosstabs.q: (table_value_missing) If the specified value has a
- value label for this variable, then show it instead of the raw
- value.
- (display_dimensions) Delegate display of value_labels to
- table_value_missing.
-
-Mon Jan 18 20:04:06 1999 Ben Pfaff <blp@gnu.org>
-
- WRITE didn't write line ends. Fixed. Thanks to Dr. Dirk Melcher
- <BZN-mdksh@t-online.de> for reporting this bug.
-
- * print.c: (print_trns_proc) Write (CR/)LF if PRINT is used _or_
- if the file isn't declared as binary.
-
-Mon Jan 18 19:56:45 1999 Ben Pfaff <blp@gnu.org>
-
- MATCH FILES corrupted memory and dumped core on some syntax
- errors. Fixed.
-
- * get.c: (cmd_match_files) Set file->handle to NULL before
- jumping to lossage.
- (mtf_free_file) Don't free a null dictionary.
-
-Mon Jan 18 19:27:57 1999 Ben Pfaff <blp@gnu.org>
-
- MATCH FILES should set numeric values not available to the
- system-missing value, not to 0. Thanks to Dr. Dirk Melcher
- <BZN-mdksh@t-online.de> for reporting this bug.
-
- * get.c: (mtf_processing) Set unused records to system-missing,
- not 0.
-
-Mon Jan 18 15:06:46 1999 Ben Pfaff <blp@gnu.org>
-
- KEEP didn't work properly on the SAVE procedure. Fixed. Thanks
- to Ralf Geschke <ralf@kuerbis.org> for reporting this bug.
-
- * temporary.c: (save_dictionary) Initialize var_by_name AVL tree
- in newly created dictionary, and add each copied variable to the
- tree.
-
-Mon Jan 18 15:04:48 1999 Ben Pfaff <blp@gnu.org>
-
- Memory leak fix.
-
- * get.c: (trim_dictionary) Free variable list for KEEP after
- finishing with it.
-
-Mon Jan 18 12:57:36 1999 Ben Pfaff <blp@gnu.org>
-
- Some systems didn't like the way open_file was coded. Thanks to
- Hankin <hankin@rogue.consultco.com> for pointing this out.
-
- * filename.c: (open_file) Don't try to store stdin, stdout,
- stderr as part of an array, because that doesn't always work.
-
-Mon Jan 18 12:53:27 1999 Ben Pfaff <blp@gnu.org>
-
- The SAVE procedure didn't save long string variables properly.
- Fixed by this patch. Thanks to Hankin
- <hankin@rogue.consultco.com> for this patch.
-
- * sfm-write.c: (write_variable) Fix off-by-one error in writing
- out variable pad records.
-
-Tue Jan 5 14:29:27 1999 Ben Pfaff <blp@gnu.org>
-
- Previously, if PRINT SPACE were given a negative argument, it
- would report an error, then spin in an (almost) infinite loop.
- This fixes that behavior.
-
- * print.c: (print_space_trns_proc) After reporting a negative
- argument, set number of lines to print to 1.
-
-Tue Jan 5 13:59:55 1999 Ben Pfaff <blp@gnu.org>
-
- SPSS 8.0 outputs some new record types in its system files, and it
- allows longer value labels. Accept these system files.
-
- * sfm-read.c: (sfm_read_dictionary) Ignore record type 7 subtype
- 11 emitted by SPSS 8.0.
-
-Tue Jan 5 13:55:50 1999 Ben Pfaff <blp@gnu.org>
-
- The LIST procedure was too conservative in allocating space for
- buffers, which caused a bug that only showed up with very long
- output variables. Thanks to Hankin <hankin@dunno.com> for this
- bug report.
-
- * list.q: (determine_layout) Allocate 1022 bytes instead of 256.
-
-Tue Jan 5 13:34:34 1999 Ben Pfaff <blp@gnu.org>
-
- Typo meant string format specifiers weren't checked properly. I
- think that Hankin <hankin@dunno.com> sent me this report, but I'm
- willing to be corrected on this point.
-
- * format.c: (check_string_specifier) Fix obvious typo.
-
-Tue Jan 5 12:50:42 1999 Ben Pfaff <blp@gnu.org>
-
- Using $CASENUM in an expression didn't work. Here's a fix.
- Thanks to Dirk Melcher <BZN-mdksh@t-online.de> for reporting this
- bug.
-
- * expr-evl.c: (evaluate_expression) Add OP_CASENUM case.
-
- * expr-opt.c: (dump_node) OP_CASENUM is acceptable.
-
-Tue Jan 5 12:47:48 1999 Ben Pfaff <blp@gnu.org>
-
- The changes in 0.2.1 to fix DATA LIST FREE parsing broke some
- other behavior, *sigh*. This patch hopefully fixes that. This
- time I've actually tested it.
-
- Thanks to Hankin <hankin@dunno.com> for reporting this bug.
-
- * data-list.c: (read_from_data_list_free,
- read_from_data_list_list) Call parse_string_as_format() directly
- without mucking around with the field width.
-
-Tue Jan 5 12:31:19 1999 Ben Pfaff <blp@gnu.org>
-
- Occasionally, you may encounter a script that wants to be
- interpreted in interactive mode. Make -i emulate this behavior to
- allow such scripts to be executed with PSPP.
-
- Thanks to Hankin <hankin@dunno.com> for reporting this behavior.
-
- * cmdline.c: (pre_syntax_message[]) Update -i description.
-
- * lexer.c: (preprocess_line) When getl_interactive is 2 (i.e.,
- when -i is given on the command line) don't treat unindented lines
- as starting a new command.
-
-Tue Jan 5 12:30:10 1999 Ben Pfaff <blp@gnu.org>
-
- In conjunction with egcs 1.1.1, Checker emits some bogus warnings,
- mostly caused by local initialized aggregates. After egcs is
- fixed upstream these can be removed, but for now they're not a big
- deal.
-
- * ascii.c: (ascii_postopen_driver) Checker chokes on local
- initialized arrays. Avoid this.
-
- * sfm-write.c: (sfm_write_dictionary) Don't use a local
- initialized struct.
-
-Tue Jan 5 12:07:24 1999 Ben Pfaff <blp@gnu.org>
-
- egcs 1.1.1 has some new warnings relative to gcc 2.8.1, which the
- following changes avoid. Currently I compile sources with egcs
- 1.1.1 and gcc 2.7.2.3 before sending them out.
-
- * apply-dict.c: (apply_dict) Use new avl_traverser_init() macro.
-
- * ascii.c: (option_tab[]) Initialize all struct members.
-
- * avl.h: (avl_traverser_init) New macro.
-
- * command.c: (DEFCMD, UNIMPL macros, cmd_table[]) Initialize all
- struct members.
-
- * crosstabs.q: (enum_var_values) Use new hsh_iterator_init()
- macro.
-
- * hash.c: Comment fix.
-
- * hash.h: (hsh_iterator_init) New macro.
-
- * html.c: (option_tab[]) Initialize all struct members.
-
- * pfm-write.c: (write_value_labels) Use new avl_traverser_init()
- macro.
-
- * postscript.c: (option_tab[]) Initialize all struct members.
- (output_encodings, preclose, dump_lines) Use new
- hsh_iterator_init() macro.
-
- * sfm-write.c: (write_value_labels) Use new avl_traverser_init()
- macro.
-
- * sysfile-info.c: (describe_variable) Use new avl_traverser_init()
- macro.
-
-Thu Nov 19 12:32:45 1998 Ben Pfaff <blp@gnu.org>
-
- * data-in.c: Examined each of the parsing functions to make sure
- that they wouldn't dump core if they were passed a string of the
- wrong length, since now the DATA LIST FREE/LIST routines don't
- check for field width before passing it to the data parser.
- (parse_RBHEX, parse_AHEX) Reject odd length input.
- (parse_string_as_format) Reject input that's too short or too
- long.
-
- * data-list.c: Before, the DATA LIST FREE/LIST routines would pad
- a field to its entire declared output width then pass it to the
- data-in parsing routines. This contradicted the documented
- behavior. This is fixed in these changes. Thanks to Mark H. Wood
- <mwood@IUPUI.Edu>. In addition, this fixes a few more details of
- free-format parsing that differed from SPSS.
- (cut_field) Commas and spaces are treated identically. Returns
- the proper column instead of a fixed 1 value.
- (parse_field) Removed.
- (read_from_data_list_free, read_from_data_list_list) Call
- parse_string_as_format directly instead of parse_field.
-
- * heap.c: (heap_delete) Stylistic fixes.
-
-Sun Aug 9 11:12:13 1998 Ben Pfaff <blp@gnu.org>
-
- * loop.c: (loop_2_trns_proc) Formatting fix.
-
- * sel-if.c: (cmd_filter) Set FILTER_before_TEMPORARY.
-
- * var.h: (glob var FILTER_before_TEMPORARY) New global var.
-
- * vfm.c: (macro FILTERED) New.
- (static var filter_var) New.
- (process_active_file_write_case) Use FILTERED.
- (setup_filter) Set filter_var.
- (close_active_file) Delete the filter if not
- FILTER_before_TEMPORARY.
- (procedure_write_case) Use FILTERED.
-
-Sat Aug 8 00:20:14 1998 Ben Pfaff <blp@gnu.org>
-
- * crosstabs.q: Changed /PIVOT={ON,OFF} to /FORMAT={PIVOT,NOPIVOT}.
-
- * data-in.c: (parse_day_count) Message fix.
- (parse_month) Style fix.
-
- * data-list.c: (struct data_list_pgm) New member eof.
- (cmd_data_list) Init eof to 0.
- (do_reading) Implement the /END subcommand and read-past-eof
- checking.
-
- * do-if.c: Include stdio.h when debugging.
- (cmd_else_if) Make sure the command is .-terminated.
-
- * glob.c: (init_glob) Capitalize the command prompt.
-
- * inpt-pgm.c: (end_case_trns_proc) Debugging message.
- (end_file_trns_proc) Debugging message.
-
- * loop.c: (internal_cmd_loop) Make it work when there's no loop
- index!
- (loop_2_trns_proc) Enable MXLOOPS (why was this disabled?)
-
- * main.c: (dump_token) Make kwtab[] const.
-
- * set.q: Spelling, comment fixes.
-
- * sysfile-info.c: (cmd_display) DISPLAY VECTORS not DISPLAY
- VECTOR.
-
- * vars-prs.c: (fill_all_vars) Style fix.
-
- * vfm.c: (index_to_varname) Return const.
-
-Tue Aug 4 23:49:23 1998 Ben Pfaff <blp@gnu.org>
-
- * Changes in many source files for partial -ansi -pedantic and
- no-debugging compliance: Remove trailing common in enum
- declarations; add `unused' attributes; insert some appropriate
- casts.
-
- * cmdline.c: (parse_command_line) Add new --testing-mode flag.
-
- * command.c: (shell) Make static.
- (run_command) Make static.
-
- * data-list.c: (dump_fixed_table) Remove use of local_strdup().
-
- * dfm.c: (cmd_begin_data) I18n fix.
-
- * error.c: (verbose_msg) Define if __STRICT_ANSI__.
-
- * error.h: (macro verbose_msg) Define if __STRICT_ANSI__.
-
- * expr-opt.c: (evaluate_tree) Don't initialize local arrays if
- __STRICT_ANSI__.
-
- * file-handle.q: Don't prepend the source file directory name to
- the data file name. (Ongoing issue.)
- (prepend_current_directory) Comment out.
- (internal_cmd_file_handle) Don't call prepend_current_directory().
- (fh_get_handle_by_filename) Ditto.
-
- * filename.c: Append zero byte to readlink() return value.
-
- * getline.c: (getl_read_line) I18n fix.
-
- * lexer.h: Don't use gcc features if __STRICT_ANSI__.
-
- * misc.h: Don't use gcc features if __STRICT_ANSI__.
-
- * pfm-write.c: (bufwrite) Don't try to increment a void * pointer
- directly.
-
- * postscript.c: (output_encodings) Don't use local_strdup().
- (postopen) Ditto.
-
- * print.c: Don't use gcc features if __STRICT_ANSI__.
-
- * q2c.c: (dump_vars) Don't put a , at the end of the last enum.
-
- * recode.c: (parse_src_spec) Fully brace nested if's.
-
- * set.q: (global var set_testing_mode) New var.
-
-Wed Jul 29 22:01:44 1998 Ben Pfaff <blp@gnu.org>
-
- * ascii.c: Add some more `unused' attributes that only come into
- play when NDEBUG is defined.
- (ascii_close_page) Set s_len when reallocating s.
-
- * crosstabs.q: (delete_missing) New function.
- (output_pivot_table) Call delete_missing() if /MISSING=REPORT.
- (make_summary_table) Create summary table reallocable.
-
- * postscript.c: Add more `unused' attributes as above.
-
- * tab.c: (tab_create) [GLOBAL_DEBUGGING] Set reallocable member.
- (tab_realloc) [GLOBAL_DEBUGGING] Assert that table is reallocable.
-
- * tab.h: (struct tab_table) [GLOBAL_DEBUGGING] New `reallocable'
- member.
-
- * var.h: (macro force_dup_variable) [!GLOBAL_DEBUGGING] Remove
- gratuitous space between parameter definition.
-
- * vars-atr.c: Changed some assert(0)'s to abort()'s to prevent
- complaints about running off the end of functions with NDEBUG
- enabled.
-
-Sun Jul 5 00:17:25 1998 Ben Pfaff <blp@gnu.org>
-
- * Several source files: Removed some PORTME notes when reflection
- revealed that ANSI forbids that sort of breakage. Also, added
- lots of `unused' qualifiers here and there.
-
- * aggregate.c: (accumulate_aggregate_info) Remove local var
- weighting that turned out not to be used.
-
- * avl.c: Update to version 1.1.0. Add unused specifier.
- (avl_destroy) Initialize ab to 0. Comment fixes. Cast return
- value to void *.
- (avl_probe) Replace some instances of 1 with +1 where appropriate.
- (avl_find) Cast return value to void *.
- (avl_delete) q doesn't need to be initialized at the beginning of
- the function. Replace some instances of 1 with +1.
- (force_avl_delete) Renamed avl_force_delete, all references changed.
- (compare_ints) `param' marked unused.
- (print_int) `param' marked unused.
- (recurse_tree) Replace some instances of 1 with +1.
-
- * avl.h: Update to version 1.1.0. Only declares avl function
- types if not already declared.
- (AVL_MAX_HEIGHT) Only define if not already defined.
- (struct avl_node) New unused member char pad[2].
- [GLOBAL_DEBUGGING] Change conditionalization to NDEBUG instead.
- (force_avl_insert) Renamed avl_force_insert.
- (force_avl_delete) Renamed avl_force_delete.
-
- * crosstabs.q: (struct table_entry) Put `freq' into a union with
- new member `data'.
- (struct crosstab) Add new member `ofs'.
- (glob var int_tab) Removed.
- (custom_tables) In integer mode, assign v[i] properly through the
- indirect var_dict.
- (custom_variables) Now p.crs.max == max + 1.
- [DEBUGGING] (debug_print) p.crs.min and p.crs.max are now ints.
- (precalc) Implement integer mode.
- (calc_integer) Implement integer mode.
- (compare_table_entry) Remove unused local variable `comparing'.
- (make_summary_table) Implement integer mode.
- (macro ns_rows) Implemented as static variable now.
- (several variables) Made static, from global.
- (output_pivot_table) Use table_value_missing() for column heads.
- Remove several unused local variables. Implement integer mode
- table summing. Count up ns_rows.
- (crosstabs_dim) Make columns wider when /MISSING=REPORT requested.
- (find_pivot_extent) Moved into find_pivot_extent_general; now just
- calls that function or find_pivot_extent_integer.
- (find_pivot_extent_integer) New function.
- (enum_var_values) Implemented for integer mode.
- (table_value_missing) New function.
- (display_dimensions) Call table_value_missing() for heads.
- (float_M_suffix) New function.
- (display_crosstabulation) Call table_value_missing() for row
- heads. Handle missing values in /MISSING=REPORT mode.
- (calc_fisher) Remove unused var N.
- (calc_r) Remove unused var fact.
-
- * data-list.c: (dump_fixed_table) Fix table dimensioning.
- (read_one_set_of_repetitions) Remove unused vars var_spec, column.
-
- * data-out.c: (insert_commas) Remove unused var cp.
- (convert_CCx) Remove unused vars save_set_decimal,
- save_set_grouping.
-
- * descript.q: (dump_z_table) Fix table dimensioning.
- (pre_calc) Remove unused var j.
- (display) Remove unused vars title, s. Fix table dimensioning.
-
- * expr-evl.c: Comment fixes.
-
- * frequencies.q: (full_dim) New function.
- (dump_full) Fix table dimensioning.
- (condensed_dim) New function.
- (dump_condensed) Fix table dimensioning.
-
- * get.c: (cmd_match_files) Remove unused var n_val. Remove unused
- label winnage.
-
- * html.c: (html_close_drive) Remove unused var i.
- (postopen) Remove unused vars title, curfn_len, cp.
- (preclose) Remove unused vars this, x.
-
- * lexer.c: Comment fixes.
-
- * matrix-data.c: (cmd_matrix_data) Remove unused var index.
-
- * means.q: (custom_tables) Remove unused var m_dim.
-
- * mis-val.c: Format fix.
-
- * modify-vars.c: (cmd_modify_vars) Remove unused var new_dict.
-
- * output.c: (outp_get_paper_size) Remove unused var cp.
-
- * pfm-read.c: (read_float) Remove unused var save, unused label
- underflow.
- (read_variables) Remove unused vars cp, j.
- (read_value_label) Remove unused var j.
-
- * pfm-write.c: (bufwrite) Remove unused var i.
-
- * postscript.c: (ps_postopen_drive) Remove unused vars dev_info,
- fn.
- (output_encodings) Remove unused vars char_cp, n_output.
- (read_ps_encodings) Remove unused var ep.
- (postopen) Remove unused var title.
- (preclose) Remove unused var fp.
- (ps_open_page) Remove unused vars true, false, orientation,
- mirror_horz, mirror_vert, width, length.
- (ps_text_metrics) Remove unused var x.
-
- * q2c.c: (find_symbol) Remove unused var y.
- (parse_setting) Remove unused parameter sbc, all references
- changed.
- (dump_parser) Remove unused var cp.
- (dump_free) Remove unused var i.
-
- * set.q: (static vars args, n) Removed.
- (internal_cmd_gset) Removed.
-
- * sfm-read.c: (sfm_read_dictionary) Removed unused var i.
- (read_machine_flt64_info) Removed unused var file_endian.
- (read_documents) Removed unused var i.
- (read_compressed_data) Removed unused parameter dict, all
- references changed.
-
- * sfm-write.c: (bufwrite) Removed unused var i.
- (sfm_write_case) Removed unused var i.
-
- * sort.c: (merge_once) Remove unused var t.
- (write_separate) #if 0 out as dead code.
-
- * split-file.c: (cmd_split_file) Remove unused var i.
-
- * sysfile-info.c: (sysfile_info_dim) New function.
- (cmd_sysfile_info) Fix table dimensioning.
- (variables_dim) New function.
- (display_variables) Fix table dimensioning.
- (describe_variable) Remove unused var prev_r.
-
- * t-test.q: (z_postcalc) Removed.
- (pairs_calc) Remove unused var bad_weight.
- (postcalc) Remove unused vars dfn, dfd.
-
- * tab.c: (tab_create) Set t->dim to NULL.
- (tab_dim) Make sure t->dim is NULL first.
- (tab_natural_width) Remove parameter `clamp'.
- (tab_value) Remove duplicate assertion for table.
- (tab_raw) New function.
- (nowrap_dim) New function.
- (wrap_dim) New function.
- (tab_output_text) Fix table dimensioning.
-
- * tab.h: (tab_raw) New macro.
-
- * val-labs.c: (get_label) Remove unused var type.
- (copy_value_labels) Remove unused var trav.
-
- * var.h: (struct crosstab_proc) Completely changed.
-
- * vars-prs.c: (parse_dict_variable) Remove unused var v.
-
- * vfm.c: (open_active_file) Remove unused vars i, lp.
-
- * weight.c: (weight_trns_proc) #if 0 out as dead code.
-
-Tue Jun 2 23:37:21 1998 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Add apply-dict.c, flip.c.
-
- * apply-dict.c: New file.
-
- * command.c: (struct command) Make cmd[] larger for CLEAR
- TRANSFORMATIONS command name.
- (parse_cmd) Make sure we're in a valid state before using it as an
- index. Discard variables and reset state on invalid transitions.
- (cmd_clear_transformations) New function.
-
- * command.def: Add APPLY DICTIONARY, CLEAR TRANSFORMATIONS, FLIP.
- Add unimplemented PRESERVE, RESTORE.
-
- * file-handle.h: Include stddef.h.
-
- * flip.c: New file.
-
- * pfm-read.c: (parse_value) Pad value label values with spaces,
- not nulls.
-
- * sfm-read.c: (struct sfm_fhuser_ext) Add reference count.
- (sfm_close) Decrement reference count, make sure it's zero.
- (sfm_maybe_close) New function.
- (sfm_read_dictionary) Handle reference counts.
-
- * vars-atr.c: (clear_default_dict) New function.
- (discard_variables) Use clear_default_dict().
-
-Sun May 31 00:58:05 1998 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Add pfm-write.c.
- (LDADD) Add the libgmp2 libraries.
-
- * command.def: Define EXPORT.
-
- * get.c: (cmd_export) New function.
- (export_write_case_func) New function.
-
- * pfm-read.c: (static spss2ascii[]) Make it const.
-
- * pfm-write.c: New file.
-
- * sfm-write.c: Formatting, comment fixes.
-
- * var.h: Comment fix.
-
-Fri May 29 21:44:12 1998 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Add pfm.h, pfm-read.c.
-
- * command.def: IMPORT is now implemented.
-
- * format.c: (glob var translate_fmt[]) New var.
-
- * get.c: (enum GTSV_NONE) Renamed GTSV_OPT_NONE.
- (cmd_import) New function.
- (import_source_read) New function.
- (glob var import_source) New var.
-
- * pfm-read.c: New file.
-
- * pfm.h: New file.
-
- * sfm-read.c: (parse_format_spec) Local variable translate_fmt[]
- moved in format.c.
- (dump_dictionary) Disabled printing a couple of items.
-
-Mon May 25 12:42:37 1998 Ben Pfaff <blp@gnu.org>
-
- * crosstabs.q: (postcalc) Call make_summary_table().
- (make_summary_table) New function.
- (insert_summary) New function.
- (display_dimensions) Remove some unnecessary arguments, all
- references changed.
- (output_pivot_table) Fix lots of problems with the risk table
- setup.
- (submit) Don't display an empty table.
- (display_risk) Fix order of arguments to calc_risk().
-
- * glob.c: Always include assert.h and stdlib.h.
-
- * output.h: (enum OUTP_T_JUST_FULL) Removed, all references
- removed.
-
- * tab.c: (tab_create) Cosmetic changes.
-
- * tab.h: (enum TAB_JUSTIFY) Removed, all references removed.
-
-Sun May 24 22:39:23 1998 Ben Pfaff <blp@gnu.org>
-
- * tab.def: Removed.
-
- * crosstabs.q: (output_pivot_table) Headers drawing and submission
- code simplified, moved into new function submit().
- (submit) New function.
- (crosstabs_dim) New function.
- (display_directional) Substitute variable names for %s where
- appropriate.
- (somers_d_v[], somers_d_ase[], somers_d_t[]) New static vars.
- (calc_symmetric) Initialize parameters only if non-NULL.
- Calculate Somers' d.
- (calc_directional) Calculate Somers' d (or copy it, really).
- Calculate eta.
-
- * output.c: (outp_string_width) New function.
-
- * postscript.c: (postopen) Calculate font widths based on the
- width of the zero '0' character, not the width of the space
- character. Set paper-width and paper-length based on points, not
- device units.
- (ps_open_page) Fix page setup string for landscape mode.
-
- * som.h: (struct som_dimension) Removed.
- (struct som_table_class) height, width members take int * not
- som_dimesion * now.
-
- * tab.c: Many functions now have added parameter validation.
- (tab_height, tab_width) These functions were removed and merged
- into a single function tab_resize(), and all references changed.
- (tab_dim) Rewritten since the interface changed; reduced from
- hundreds of lines to two. All callers were changed. Currently
- most of them just use tab_natural_dimensions as their callback and
- await detailed translation of functionality.
- (tab_natural_width) New function.
- (tab_natural_height) New function.
- (tab_natural_dimensions) New function. This is a callback
- function, not something that you'd want to call directly.
- (tab_nat_dim) Removed.
- (tabi_table) Allocates t->w and t->h.
- (tabi_driver) Inlined sum_columns()'s functionality. Calls the
- dimensions callback.
- (evaluate_dimensions) Removed.
- (sum_columns) Removed.
-
- * tab.h: (enum TAL_1THIN) Removed.
- (enum series t_*) Removed.
- (struct tab_table) Members trh, trv changed to unsigned char *
- from int *. Member dim changed to a function pointer from a
- unsigned char *. Member max_stack_height removed. New members
- hr_tot, vr_tot.
- (macros tab_l, tab_r, tab_t, tab_b) New.
-
-Sat May 23 23:22:13 1998 Ben Pfaff <blp@gnu.org>
-
- * ascii.c: (delineate) Assign last_space_nchars before skipping
- spaces, to fix right justification.
-
- * crosstabs.q: (static vars risk, direct) New vars.
- (static var pearson_r) Removed.
- (glob var chisq_fisher) Made static.
- (static vars row_tot[], col_tot[]) Don't include grand total
- anymore.
- (static var grand_total) Renamed W, all references changed.
- (output_pivot_table) Only make `table' if num_cells != 0. Make
- risk and directional tables. Deal with grand total no longer part
- of col_tot[]. Free rows and cols after we're done with them.
- (display_risk) New function.
- (display_directional) New function.
- (clac_r) Rewritten so that it stores all its results into its
- arguments, so it can be used for Spearman's correlation too.
- (calc_symmetric) Added a t[] argument, all references changed.
- Calculates ASEs for tau-b, tau-c, gamma. Calculates Spearman's r,
- Pearson's r, Cohen's kappa.
- (calc_risk) New function.
- (calc_directional) New function.
-
- * som.c: (som_submit) Improved debugging code.
-
- * stats.c: (hypercube) New function.
- (cube) New function.
- (sqr) New function.
- (normal_sig) Went back to old implementation, which actually
- worked.
-
- * stats.h: (macros square, cube, hypercube) Removed. The
- equivalent functions in stats.c are inlined here; all references
- to square changed to sqr.
-
-Fri May 22 00:03:41 1998 Ben Pfaff <blp@gnu.org>
-
- * crosstabs.q: (N_SYMMETRIC) New define.
- (postcalc) Disable debug printing.
- (static vars chisq_fisher, pearson_r) New.
- (output_pivot_table) Add support for symmetric measures. Add
- chi-square output of exact sigs.
- (display_chisq) Rewritten.
- (display_symmetric) New function.
- (gamma_int) New function.
- (Pr) New function.
- (swap) New function.
- (calc_fisher) New function.
- (calc_chisq) Check boundary conditions better. Calculate Yates,
- Fisher, Mantel-Haenszel tests.
- (calc_r) New function.
- (calc_symmetric) New function.
-
- * stats.c: (normal_sig) Rewritten with new algorithm. Renamed
- from calc_normal.
- (chisq_sig) Better boundary conditions. Renamed from
- calc_significance.
-
- * tab.h: (struct tab_table) New member cf.
-
- * tab.c: (tab_create) Set cf.
- (tab_width) New function.
- (tab_realloc) Handle cf.
- (tab_vline) Handle cf.
- (tab_hline) Handle cf.
- (tab_box) Handle cf.
- (tab_value) Handle cf.
- (tab_float) Handle cf.
- (tab_text) Handle cf.
- (tab_joint_text) Handle cf.
- (tab_offset) Handle cf.
- (tab_next_row) Handle cf.
- (evaluate_dimensions) Handle cf.
- (render_strip) Handle cf.
-
-Wed May 20 00:03:59 1998 Ben Pfaff <blp@gnu.org>
-
- * crosstabs.q: (postcalc) New vars row_tot, col_tot, pass them to
- output_pivot_table().
- (output_pivot_table) Moved lots of local variables outside and
- made them static. Add beginnings of chi-square statistic
- support. Now column and row totals aren't in the main matrix.
- Always zero out any leftover rows & columns after we're done with
- the table entries. Move all output stuff into
- display_dimensions(), display_crosstabs(), display_chisq().
- (display_dimensions) New function.
- (display_crosstabulation) New function.
- (display_chisq) New function.
- (calc_chisq) Implemented Pearson and likelihood-ratio chisquares.
-
- * frequencies.q: (dump_full, dump_condensed) Remove tab_null()
- references, simplify logic.
-
- * postscript.c: Remove scale, translate-x, translate-y,
- mirror-horz, mirror-vert, rotate-180 options.
- (struct ps_driver_ext) Remove scale, translate_x, translate_y.
- All references deleted.
- (macro YT) New macro.
- (array option_tab[]) Removed options.
- (ps_option) Removed options.
- (ps_open_page) Write page setup explicitly to output file, without
- using now-deleted BP function.
- (macro dump_line) Use YT().
- (macro dump_thick_line) Use YT().
- (draw_headers) Use YT().
- (switch_font) Reorder arguments to SF function.
- (write_text) Use YT().
-
- * sfm-read.c: (sfm_read_case) Don't attempt to read variables that
- have get.fv == -1.
-
- * sysfile-info.c: (describe_variables) Don't use tab_nulls().
-
- * tab.c: (tab_create) Initialize t->ct to zeros. Remove
- null-debugging code.
- (tab_realloc) Remove null-debugging code. Initialize new regions
- of t->ct to zeros.
- (tab_vline) Support offsets.
- (tab_hline) Support offsets.
- (tab_box) Support offsets.
- (tab_null) Removed.
- (tab_nulls) Removed.
- (tab_row) Removed.
- (tab_col) Removed.
- (evaluate_dimensions) Remove null-debugging code. Understand
- TAB_EMPTY attribute. Assert that text.s.s is always non-NULL if
- TAB_EMPTY not present.
-
- * tab.h: New cell attribute TAB_EMPTY.
- (macros tab_nr, tab_nc, tab_row, tab_col) New.
-
- * vars-atr.c: (init_variable) Set get.fv to -1 so that GET doesn't
- try to read them from system files.
-
- * vfm.c: (dump_splits) Don't call tab_null().
-
-Sat May 16 19:36:55 1998 Ben Pfaff <blp@gnu.org>
-
- * crosstabs.q: (struct crosstab) Added `missing' member.
- (custom_tables) Init missing.
- (calc_general) Handle missing values.
- (calc_chisq) New function.
- (output_pivot_table) Start work on chi-square output. Update for
- new tab offset support functions. Shorten statistic names.
-
- * Several files: add in more `const's to placate gcc's warnings.
-
- * tab.h: (struct tab_table) Add col_ofs, row_ofs members. Comment
- fixes.
-
- * tab.c: (tab_height, tab_realloc, tab_vline, tab_hline, tab_box,
- tab_null, tab_nulls, tab_value, tab_float, tab_text,
- tab_joint_text) Add col_ofs and row_ofs support.
- (tab_offset) New function.
- (tab_next_row) New function.
- (tab_row) New function.
- (tab_col) New function.
- (tabi_table) Add col_ofs and row_ofs support.
-
- * vars-atr.c: (is_system_missing) New function.
-
-Tue May 12 16:14:30 1998 Ben Pfaff <blp@gnu.org>
-
- * crosstabs.q: Expanded subcommand names RESID --> RESIDUAL, etc.
- (static var no_cells) Removed.
- (static var num_cells) New.
- (static var expected) New.
- (static var cells[]) New.
- (internal_cmd_crosstabs) Deal with new variables.
- (postcalc) Removed most of the meat and put it in new function
- output_pivot_table().
- (output_pivot_table) Calculates and outputs an entire pivot table.
-
- * postscript.c: (postopen) Fix problems with free()ing addresses
- not obtained from malloc().
-
- * som.c: (som_submit) Add assertion.
-
- * sysfile-info.c: (describe_variable) Use new tab_nulls()
- function.
-
- * tab.c: (static var tab_names[]) New.
- (tab_realloc) -1 for nc or nr indicates no change.
- (tab_nulls) New function.
- (tab_dim) Use tab_names[].
- (tabi_cumulate) Don't include bottom or right headers. Furrfu.
- (evaluate_dimensions) Don't terminate on uninited cells, just put
- an X in them and emit a notice. Use tab_names[].
-
- * tab.h: Move bits into tab.def.
-
- * tab.def: New. Don't try to declare tab_table_class because then
- som.h has to be included.
-
-Thu May 7 22:55:04 1998 Ben Pfaff <blp@gnu.org>
-
- * command.def: New file, contains all the command definitions
- previously included bodily in command.c.
-
- * format.def: New file, contains all of the format definitions
- previously split across format.h, format.c, and sfm-write.c.
-
- * lexer.h: Renamed from tokens.h in order to match corresponding
- .c file name.
-
- * lexerP.h: Moved some rarely used functions exported by lexer.c
- into here.
-
- * Makefile.am: Commemorate renamed files.
- (EXTRA_DIST) Add command.def, format.def.
-
- * command.c: [0] (walk_cmdtable_func) Removed.
-
- * crosstabs.q: (postcalc) Made it work and print out matrices
- proving it.
- (enum_column_values) Renamed enum_var_values, generalized for any
- variable.
-
- * format.h: (struct fmt_desc) New member `spss'.
-
- * q2c.c: (main) Generated code includes lexer.h instead of
- tokens.h.
-
- * sfm-write.c: (write_format_spec) Use new spss member of fmt_spec
- instead of an independent translation table.
-
-Tue May 5 13:19:03 1998 Ben Pfaff <blp@gnu.org>
-
- * Lots of source files: Added const to declarations.
-
- * aggregate.c: (parse_aggregate_function) Rename inner i to j.
-
- * arena.c: (arena_clear) Set prev pointer to null when done.
-
- * ascii.c: (ascii_option) Rename index as indx.
-
- * avl.c: This is now a separate library called libavl.
- (xmalloc) Make static.
- (avl_probe) Step A7 can use the cache instead of an explicit
- compare.
- (avl_delete) Don't maintain a q pointer because it's always
- available in the pointer stack. Comment fix.
-
- * avl.h: This is now a separate library called libavl.
-
- * command.c: (cmd_table[]) Remove spurious trailing "".
-
- * common.h: Only include random() fix if this system needs it.
-
- * crosstabs.q: Include alloca headers.
- (n_sorted_tab) New global var.
- (postcalc) Mostly rewritten.
- (find_pivot_extent) Rewritten.
- (enum_column_values) Rewritten.
-
- * data-out.c: (convert_F) Rename inner n as n_spaces.
-
- * error.c: (dump_message) Don't have an outer var i.
-
- * file-handle.q: (static var f) Removed. All references removed.
- (internal_cmd_file_handle) Uses a local variable instead of f.
-
- * get.c: (trim_dictionary) Change scope of i, i1, i2.
- (cmd_match_files) Don't strcpy tokstr into sbc (why was this ever
- done?)
-
- * getline.h: Declare getl_history as extern. Reported by
- palme@uni-wuppertal.de (Hubert Palme).
-
- * postscript.c: (postopen) Some large mods for constness.
-
- * recode.c: Remove spurious copyrights since PSPP is owned by FSF
- anyway.
-
-Fri Apr 24 12:52:47 1998 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Rename BUILT_SOURCES to q_sources, all references
- changed. Add avl.c, avl.h to pspp_SOURCES. Remove avllib from
- LDADD.
-
- * avl.c, avl.h: New files. These form a clean-room
- reimplementation of avllib. Iterative algorithms are used in
- place of recursive ones, so there is no resemblance in the code.
-
- * Lots of headers: Don't include other headers by default.
-
- * Lots of source files: Explicitly include all needed headers.
-
- * arena.c: (arena_clear) New function.
-
- * crosstabs.q: (ROW_VAR, COL_VAR) New enums.
- (static var ar) Removed.
- (staitc vars ar_tc, ar_col) New.
- (cmd_crosstabs) Destroy the arenas.
- (internal_cmd_crosstabs) Create the arenas.
- (precalc) Don't need a free function for the hash.
- (calc_general) Make sure to zero out the trailer on the key data
- before inserting.
- (print_table_entries) Updated.
- (postcalc) Worked on actually implementing.
- (find_pivot_extent) New function.
- (compare_value) New function.
- (enum_column_values) New function.
-
- * data-in.c: (parse_month) Make local array `static const'.
-
- * data-out.c: (convert_date) Make local array `static const'.
- (convert_WKDAY) Same.
- (convert_MONTH) Same.
-
- * frequencies.q: (postprocess_freq_tab) avl_walk_inorder() has
- been renamed to avl_walk().
-
- * hash.c: Rewritten more efficiently.
-
- * hash.h: Add attribute const to hsh_next_prime declaration.
-
- * lexer.c: (id_match) Make arguments const.
-
- * postscript.c: (ps_postopen_driver) Make default fonts the
- Helvetica family.
-
- * q2c.c: (main) Generated code needs stdlib.h.
-
- * sfm-write.c: (write_value_labels) An avl_traverser needs to be
- initialized to 0 now, not to NULL. All other references to
- avl_traverser were updated in the same way.
-
- * tokens.h: Macro version of id_match updated to use const
- properly.
-
- * val-labs.c: (inc_ref_count) New function.
- (copy_value_labels) Simply through use of new avl_copy() function.
-
-Wed Apr 15 13:01:58 1998 Ben Pfaff <blp@gnu.org>
-
- * crosstabs.q: Probably doesn't compile. New PIVOT subcommand.
- (postcalc) Worked on this.
-
- * postscript.c: (OPO_DOUBLE_LINE) New enum.
- (struct ps_driver_ext) New line_width_thick member.
- (ps_preopen_drive) Init line_width_thick.
- (option_tab[]) Add line-* options.
- (ps_option) Parse line-* options.
- (postopen) Add line_width_thick support. Strip leading spaces on
- prologue output lines.
- (ps_open_page) Include line_width_thick in output.
- (macro dump_thick_line) New.
- (dump_fancy_line) Support thick lines as well as double lines.
-
-Tue Apr 14 00:50:08 1998 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Add crosstabs.c to BUILT_SOURCES. Add crosstabs.q
- to pspp_SOURCES. Add crosstabs.q to EXTRA_DIST.
-
- * Many source files: Rename `options' to `pv_opts' as appropriate.
-
- * command.c: (static var cmd_table[]) Add CROSSTABS command.
-
- * common.c: (xcalloc) New function.
-
- * crosstabs.q: New file. Not finished yet, though.
-
- * data-list.c: Comment fix.
-
- * error.c: Remove some old Checker cruft.
-
- * frequencies.q: (dump_full) Cumulate valid percent instead of
- regular percent.
-
- * getline.c: Comment fix.
-
- * hash.c: Comment fixes.
-
- * hash.h: (struct hsh_table) Make hash functions return unsigned
- instead of int to avoid problems with taking the modulo of
- negative return values. All references changed.
-
- * misc.c: (intlog10) Make its table static const instead of auto.
-
- * sfm-read.c: (read_header) Make `prefix' static const instead of
- auto.
-
- * var.h: (union value) Add member `hash'.
- (struct variable) Rename prv_index as `foo'--all references
- changed. Reorder.
- (typedef pv_opts) Removed. All references changed.
-
- * vars-prs.c: (parse_variables) Message fixes.
-
-Mon Mar 9 15:35:08 1998 Ben Pfaff <blp@gnu.org>
-
- * get.c: (cmd_match_files) Don't reverse the order of FILEs as
- they are being inserted. Don't check for BY variables of
- different types. Discard variables if the active file isn't
- included in the merge.
- (mtf_processing) Essentially rewritten.
- (mtf_merge_dictionary) Check for master/slave variables of
- different types/widths.
-
- * vfm.c: (static var not_canceled) New var.
- (process_active_file) Don't call vfm_source->read() if
- there's no vfm-source. Initialize not_canceled.
- (process_active_file_write_case) Honor and update not_canceled.
- (prepare_for_writing) Rollback changes from yesterday, they were
- wrong.
- (close_active_file) Don't destroy vfm_source unless it exists.
-
-Mon Mar 9 00:56:16 1998 Ben Pfaff <blp@gnu.org>
-
- * Lots of source files: Added { } around nested if/else constructs
- to avoid new gcc 2.8 warnings.
-
- * data-in.c: (parse_Z) Declare `int' type explicitly.
- (convert_Z) Ditto.
-
- * get.c: (struct mtf_file) Add prev, next_min, by, input members.
- (cmd_match_files) Initialize mtf_by_values. Manage by, input,
- prev members. Put TABLEs at the end of the chain and FILEs at the
- beginning. Don't allow the active file in STATE_INIT. Use proper
- `seen' value for the active file. Fill out the by members and
- make sure they're of consistent type. Do the actual merge
- operation.
- (mtf_processing_finish) New function.
- (var_type_description) New function.
- (mtf_free_file) New function.
- (mtf_free) Rewritten.
- (mtf_delete_file_in_place) New function.
- (mtf_read_nonactive_records) New function.
- (mtf_compare_BY_values) New function.
- (static var mtf_seq_no) New var.
- (mtf_processing) New function.
- (mtf_merge_dictionary) Assign nval members for the system file
- dictionary. Assign fv values for its variables. Point each slave
- variable to the corresponding master variable.
-
- * hash.c: Include str.h.
-
- * mis-val.c: (copy_missing_values) src arg is const.
-
- * misc.c: (spacing) Make `max' var explicitly int.
-
- * sfm-read.c: (dump_dictionary) Message reformatting.
- (sfm_read_case) Add assertion.
-
- * sort.c: Esthetic fixes.
-
- * var.h: (struct match_files_proc) New struct.
- (struct variable) Add private data match_files_proc.
-
- * vars-atr.c: (delete_variable) Implement. Add argument for the
- dictionary that owning the variable.
- (dup_variable) Add assertion.
-
- * vfm.c: Comment fixes, hopefully the comments are correct now.
- (process_active_file) New function.
- (process_active_file_write_case) New function.
- (process_active_file_output_case) New function.
- (prepare_for_writing) Use temp_dict->nval for vfm_info, not
- default_dict.nval.
- (write_case) Renamed procedure_write_case(). Now write_case is a
- pointer to a function. Style fixes.
-
-1998-03-05 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (q2c) Link with libmisc.
- (version.c) Define default_config_path, include_path,
- groff_font_path.
-
- * ascii.c: (ascii_postopen_driver) When the default newline string
- is requested, open file in text mode. Suggested by
- palme@uni-wuppertal.de (Hubert Palme).
- (static vars line_buf, line_p) Change from char * to unsigned char
- *.
- (ascii_close_page) char * to unsigned char *.
-
- * cmdline.c: (parse_command_line) Implement -r option by
- prepending ~/.pspp/rc to the list of files to process.
-
- * command.c: (cmd_remark) Reset getl_prompt to the standard prompt
- before pulling in a final line.
- (null_func, null_int_func) Removed (dead code).
-
- * descript.q: (display) Calculate width of variable name column
- properly. Calculate number of valid cases properly. Reported by
- palme@uni-wuppertal.de (Hubert Palme).
-
- * filename.c: (init_filename) Use default_config_path instead of
- now obsolete CONFIG_PATH.
-
- * getline.c: (getl_initialize) Use include_path instead of now
- obsolete INCLUDE_PATH.
- (getl_add_file) New argument `where'. All references changed.
-
- * groff.c: (find_font_file) Use groff_font_path instead of now
- obsolete GROFF_FONT_PATH.
-
- * postscript.c: (find_ps_file) Use groff_font_path instead of now
- obsolete GROFF_FONT_PATH. Copy through temporary variable to
- avoid problems with constness.
-
- * str.h: (macro cs_streq) New macro.
-
- * version.h: (glob var default_config_path, include_path,
- groff_font_path) New vars.
-
-1998-02-23 Ben Pfaff <blp@gnu.org>
-
- * Many source files: Change verbose_msg() priority levels and
- messages.
-
- * aggregate.c: Include debug-print.h.
-
- * cmdline.c: (parse_command_line) Add --safer/-s and --command/-c
- options.
- (static var pre_syntax_message) Document --safer/-s and
- --command/-c.
-
- * command.c: (cmd_erase, cmd_host) Disable if set_safer is set.
-
- * dfm.c: (open_inline_file) [__CHECKER__] Zero out ext->file,
- because it's not used but it's still copied.
- (open_file_r) Remove gratuitous debug message.
-
- * filename.c: (safety_violation) New function.
- (open_file) Remove gratuitous debug messages. Don't allow pipe
- files if set_safer is set.
-
- * get.c: Turn off debugging.
-
- * getline.c: (getl_add_virtual_file) New function.
- (getl_read_line) Add verbose_msg() call for opening new syntax
- file.
- (getl_perform_delayed_reset) Add a return value describing whether
- any action was taken. Call reset_eof().
-
- * getline.h: Comment fix.
-
- * groff-font.c: (groff_read_font) Use `goto next_iteration' in
- place of incorrect `continue'. Use strtok_r() instead of
- strtok(). Always check strtok_r() return value.
- (groff_read_DESC) Use strtok_r() instead of strtok().
-
- * lexer.c: (reset_eof) New function.
-
- * main.c: (parse) Get a token after performing a delayed reset
- action; allow empty syntax files.
-
- * postscript.c: (output_encodings) Use strtok_r() instead of
- strtok().
-
- * q2c.c: (dump_parser) Use strtok_r() instead of strtok().
-
- * set.q: Comment fixes.
- (glob var set_safer) New var.
- (internal_cmd_set) Support SAFER.
-
- * str.h: [!HAVE_STRTOK_R] Declare strtok_r() prototype.
-
- * temporary.c: (free_dictionary) Set d->splits to NULL after
- freeing.
-
- * vars-atr.c: (clear_variable) Decrement dict->n_splits if
- variable deleted, not if it *isn't* deleted.
-
-1998-02-16 Ben Pfaff <blp@gnu.org>
-
- * command.c: (array cmd_table[]) Add MATCH FILES.
-
- * common.c: Comment fixes.
-
- * data-list.c, dfm.c, error.c, filename.c, list.q, matrix-data.c,
- modify-vars.c, postscript.c, sfm-read.c, sfm-write.c, tab.c:
- Include alloca.h. Problem reported by palme@uni-wuppertal.de
- (Hubert Palme).
-
- * expr-opt.c: Include str.h. Problem reported by
- palme@uni-wuppertal.de (Hubert Palme).
-
- * get.c: (cmd_get) [DEBUGGING] Update v->p.get to v->get.
- (static var mtf_by) Change from char ** to variable **.
- (static var mtf_master) New var.
- (mtf_merge_dictionary) New function.
- (cmd_match_files) Init mtf_master. Parse mtf_by according to new
- var type. Reorder tests properly. Initialize file->dict. Detect
- TABLE= without BY=. Read file dictionaries and merge them. Give
- subcommand name with IN, LAST, FIRST error messages. Create IN,
- LAST, FIRST variables. Comment fixes.
- (mtf_free) Don't free default_dict. Free mtf_master.
-
- * getline.c: Define getl_mode. Change getl_buf_size to size_t
- from int.
- (handle_line_buffer) Cast int to size_t in comparison to avoid
- warning.
-
- * getline.h: Declare getl_mode extern.
-
- * groff-font.c: (groff_read_font) Type-fix calls to getline.
- (groff_read_DESC) Make line_size a size_t.
- (match_tok) Parenthesize name to avoid macro expansion.
-
- * mis-val.c: (copy_missing_values) New function.
-
- * postscript.c: (postopen) Make buf_size a size_t.
-
- * sfm-read.c: (dump_dictionary) Make global from static. Print
- variable info in parts for easier debugging with Checker.
-
- * temporary.c: (copy_variable) Use copy_value_labels().
- (new_dictionary) New arg: whether to copy file label, documents.
-
- * val-labs.c: (copy_value_labels) New function.
-
- * var.h: (enums MISSING_*) Add MISSING_COUNT.
-
- * vars-atr.c: [GLOBAL_DEBUGGING] (force_dup_variable) New
- function.
- (dup_variable) Set prv_index, get.fv, get.nv.
-
-Fri Feb 13 15:38:36 1998 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (pspp_SOURCE) Add htmlP.h.
-
- * Many source files: For ANSI-compliance, add empty statement
- after label. Reported by palme@uni-wuppertal.de (Hubert Palme)
- and Micah Altman <maltman@www-vdc.fas.harvard.edu>.
-
- * data-in.c: (parse_numeric) Some header files break on
- -DBL_MIN_10_EXP because they get a --; add () for safety.
- Reported by palme@uni-wuppertal.de (Hubert Palme).
-
- * dfm.c: Idea by Dr Eberhard W Lisse <el@linux.lisse.na>.
- (struct dfm_fhuser_ext) Change `file' from FILE * to file_ext.
- (dfm_close) Use close_file_ext.
- (open_inline_file) Set file.file to NULL, not file.
- (open_file_r, open_file_w) Initialize file.file; fill in file_ext
- struct and use open_file_ext().
- (read_record) Use file.file.
-
- * file-handle.q: (prepend_current_directory) Pass through special
- filenames.
-
- * filename.c: Only include unistd.h if HAVE_UNISTD_H.
- (normalize_filename) Pass through special filenames.
- (open_file, close_file) Accept pipe| and |pipe syntaxes as
- equivalent.
- (dirname) Rename blp_dirname() because of name conflict on some
- OS. All references changed. Reported by palme@uni-wuppertal.de
- (Hubert Palme).
- (is_special_filename) New function.
-
- * get.c: (GTSV_OPT*) Add GTSV_OPT_MATCH_FILES.
- (trim_dictionary) Conditionalize some of the options on whether
- GTSV_OPT_MATCH_FILES is in *options.
- (rename_variables) Don't allow variables to be renamed as scratch
- variables.
- (MTF_*) New enum series.
- (struct mtf_file) New struct.
- (static vars mtf_head, mtf_tail, mtf_by, mtf_n_by, mtf_free) New
- vars.
- (cmd_match_files, mtf_free) New functions.
-
- * lexer.c: (match_int) Needed parentheses around name to escape
- macro expansion. Reported by Micah Altman
- <maltman@www-vdc.fas.harvard.edu>.
-
- * print.c: Needed to include alloca.h. Reported by Micah Altman
- <maltman@www-vdc.fas.harvard.edu>.
-
- * recode.c: (convert_to_double) Parenthesize -DBL_MIN_10_EXP to
- -(DBL_MIN_10_EXP). Reported by palme@uni-wuppertal.de (Hubert
- Palme).
-
- * str.h: Include stdarg.h. Reported by palme@uni-wuppertal.de
- (Hubert Palme) and Micah Altman <maltman@www-vdc.fas.harvard.edu>.
-
-Thu Feb 5 00:18:21 1998 Ben Pfaff <blp@gnu.org>
-
- * html.c: (struct html_driver_ext) Move into htmlP.h.
- (html_preopen_driver) Initialize cp_x, cp_y.
- (html_submit) Implement as call to output_tab_table().
- (change_attributes) New function.
- (escape_string) New function.
- (output_tab_table) New function.
-
- * list.q: (write_all_headers) Add code for writing headers for the
- html driver.
- (clean_up) Write out the html close-table tag.
- (determine_layout) Ignore html driver.
- (list_cases) Write html data.
-
- * som.c: (som_submit) Move more of the code into output_table().
-
- * tab.c: (static var hit) Make a global var and rename tab_hit.
- (static var tab_table_class) Make a global var.
-
- * htmlP.h: New file.
-
-Tue Feb 3 16:12:18 1998 Ben Pfaff <blp@gnu.org>
-
- * dump-sysfile.c: Removed.
-
- * html.c: (preclose) Change comment in emitted code.
-
- * matrix-data.c: Debugging off by default. Comment fixes.
- (static var container) New var.
- (cmd_matrix_data) Create and destroy container. Initialize
- is_per_factor[] to 0s. Move code into new function
- string_to_content_type(). Require split values to be present in
- the data when ROWTYPE_ is explicit. Call specific function, not
- general read_matrices().
- (string_to_content_type) New function.
- (context) Exclude all whitespace, not just spaces.
- (mget_token) A dot is a number. Add assertion.
- (static var data) Renamed nr_data.
- (static var factor_values) Renamed nr_factor_values.
- (read_matrices) Renamed read_matrices_without_rowtype(). Handle
- only specific case. Close data_file before exit.
- (fill_matrix) New function.
- (read_data_lines) Renamed nr_read_data_lines(). Remove debug
- printing. Style fixes. Message fixes. Move code into
- fill_matrix().
- (read_matrices_without_rowtype) Rename
- matrix_data_read_without_rowtype(). Fix off-by-one error on
- loops. Allocate nr_data[] memory from arena.
- (read_matrices_with_rowtype) Removed.
- (read_splits) Renamed nr_read_splits(). Style fixes.
- (read_factors) Renamed nr_read_factors().
- (dump_cell_content) Comment fixes. Arguments changed. Change
- debug printing. All references changed.
- (output_data) Renamed nr_output_data().
- (static var wr_content) New var.
- (struct factor_data) New struct.
- (static var wr_data) New var.
- (static var wr_current) New var.
- (matrix_data_source_destroy_source) Removed.
- (read_matrices_with_rowtype) New function.
- (matrix_data_read_with_rowtype) New function.
- (wr_read_splits) New function.
- (compare_factors) New function.
- (wr_output_data) New function.
- (wr_read_rowtype) New function.
- (wr_read_factors) New function.
- (wr_read_indeps) New function.
- (glob var matrix_data_source) Make destroy_source member NULL as
- well.
-
-Fri Jan 23 00:09:08 1998 Ben Pfaff <blp@gnu.org>
-
- * lexer.c: (syntax_error) Give better error message when at end of
- file.
-
- * matrix-data.c: (var content_names[]) Fix PROX spelling. Change
- N_SCALAR to output as plain N.
- (mdump_token) Change output format.
- (context) Fix message output interaction with spaces in input.
- (another_token) New function.
- (force_eol) Improved error message.
- (static var max_cell_index) New var.
- (read_matrices) Init `cells'. factor_values is now per-cell.
- Init max_cell_index.
- (read_data_lines) Replace `compare' local with new `compare' arg.
- Debugging messages changed. Only read factors if per_factor.
- Propagate error return from read_factors(), force_eol().
- Copy N_SCALAR values across the N vector.
- (read_matrices_without_rowtype) Don't init `cells'. Don't need to
- check parentheses manually since we now have is_per_factor[].
- Call read_data_lines() with new args. Check for end of data after
- looping, using another_token().
- (read_factors) Arguments changed. Use max_cell_index to determine
- whether to read or compare factors. Message fixes.
- (dump_cell_content) New function.
- (output_data) Completely rewritten because content types were
- supported to be nested inside factor values, not vice versa.
-
-Thu Jan 22 00:26:38 1998 Ben Pfaff <blp@gnu.org>
-
- * lexer.c: (syntax_error) Support formatted varargs messages.
-
- * matrix-data.c: Turn debugging on by default.
- (static content_type[]) New array.
- (static content_names[]) New array.
- (static rowtype_, varname_) New vars.
- (static is_per_factor[]) New array.
- (static split_values) Moved declaration.
- (static n_continuous, first_continuous) New var.
- (cmd_matrix_data) Don't init split_values. Assign ROWTYPE_ to
- rowtype_. Simplify SPLIT code. Init is_per_factor[]. Assign
- VARNAME_ to varname_. Initialize first_continuous, n_continuous.
- Check for continuous variables.
- [DEBUGGING] (debug_print) Remove content_names[].
- (mdump_token) New macro.
- (mget_token_dump) New function.
- (mdump_token) New function.
- (context) New function.
- (mget_token) Fix messages.
- (static var data, split_values, factor_values) New vars.
- (read_matrices) Manage split_values, factor_values.
- (read_data_lines) New function.
- (read_matrices_without_rowtype) Implemented.
- (read_splits) Message fixes. Uses `just_read'.
- (read_factors) New function.
- (output_data) New function.
- (matrix_data_source_destroy_source) Close the file handle.
- (glob var matrix_source) Change name from "DATA LIST" to "MATRIX
- DATA".
-
- * str.c: (strpadcmp) Removed.
-
- * vfm.c: (dump_splits) Initialize i; fix test for end of splits.
-
-Sun Jan 18 00:30:59 1998 Ben Pfaff <blp@gnu.org>
-
- * Lots of source files: Add cast to unsigned character to calls to
- tolower() and toupper().
-
- * aggregate.c: Set default_dict.splits to NULL.
-
- * command.c: (static variable tab[]) Add MATRIX DATA.
-
- * data-in.c: Add debugging defines. Formatting fixes.
-
- * expr-opt.c: Formatting fixes.
-
- * lexer.c: (syntax_error) Message fixes.
-
- * matrix-data.c: New enum series.
- (static vars fmt, section, diag, explicit_rowtype, signle_split,
- split_values, n_factors, factors, cells, pop_n, contents,
- n_contents) New vars.
- (cmd_matrix_data) Finished implementation.
- (compare_variables_by_mxd_vartype) New function.
- [DEBUGGING] (debug_print) New function.
- (static vars mtoken, mtokstr, mtoklen, mtokval) New vars.
- (read_matrices) New function.
- (read_matrices_without_rowtype) New function.
- (read_matrices_with_rowtype) New function.
- (read_splits) New function.
- (mget_token) New function.
- (force_eol) New function.
- [0] (test_tokenizer) New function.
- (matrix_data_source_destroy_source) New function.
- (glob var matrix_data_source) New var.
-
- * misc.h: Include ieeefp.h if present.
-
- * split-file.h: (cmd_split_file) Changes corresponding to struct
- dictionary changes.
-
- * str.h: Fix memmem prototype.
-
- * temporary.c: (save_dictionary, restore_dictionary,
- free_dictionary) Changes corresponding to struct dictionary
- changes.
-
- * var.h: (MXD_* enums) New enum series.
- (struct matrix_data_proc) New struct.
- (struct split) Removed.
- (struct dictionary) Changed `splits' member from `split *' to
- `variable **'.
- (macro force_create_variable) New macro. Replaced lots of
- create_variable()/assert() calls with calls to this macro.
-
- * vars-atr.c: (discard_variables) Changed assertion.
- [GLOBAL_DEBUGGING] (force_create_variable) New function
- called by the macro of the same name.
- (clear_variable) Changes to delete splits from the dictionary
- corresponding to struct dictionary changes.
-
- * vars-prs.c: (parse_variables) [GLOBAL_DEBUGGING] Check for
- corrupted variable `index' values in the dictionary passed in
- every time this function is called.
-
- * vfm.c: (dump_splits, SPLIT_FILE_procfunc) Changes corresponding
- to struct dictionary changes.
-
-Tue Jan 13 23:45:02 1998 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (pspp_SOURCES) Add matrix-data.c.
-
- * command.c: New includes.
- (static array cmd_table[]) Add ERASE, HOST, NEW FILE.
- (cmd_erase) New function.
- [unix] (shell) New function.
- (run_command) New function.
- (cmd_host) New function.
- (cmd_new_file) New function.
-
- * expr-prs.c: (parse_primary) Message fix.
-
- * inpt-pgm.c: Formatting fix.
- (cmd_reread) Implement the FILE subcommand.
-
- * matrix-data.c: New file.
-
- * q2c.c: (dump_header) Change output commenting style.
-
- * weight.c: Comment fix.
-
-Tue Jan 13 00:53:39 1998 Ben Pfaff <blp@gnu.org>
-
- * aggregate.c: (buf64_10x) Renamed buf64_1xx, all references
- changed.
- (buf_10x) Renamed buf_1xx, all references changed.
- (cmd_aggregate) Implemented cases 010, 011, 110, and 111 (all
- cases now implemented).
- (create_sysfile) New function.
- (agr_11x_func) New function.
-
- * data-in.c: (parse_numeric) Work properly if there's an
- explicitly coded decimal point in the data and decimal places are
- specified on DATA LIST. Bug reported by Dr Eberhard W Lisse
- <el@linux.lisse.na>.
-
- * get.c: (cmd_get, cmd_save_internal) Allow extraneous slash
- before file specification on GET, SAVE, XSAVE. Bug reported by Dr
- Eberhard W Lisse <el@linux.lisse.na>.
-
- * q2c.c: [!HAVE_STRERROR] Include misc/strerror.c, not
- strerror.c. Bug reported by Alexandre Oliva
- <oliva@dcc.unicamp.br>.
-
- * sort.c: Include sort.h. Comment fixes. A few esthetic fixes.
- (static var separate_case_tab) New var.
- (cmd_sort_cases) Cancel temporary transformations here. Free
- v_sort before return.
- (sort_cases) Run an EXECUTE procedure if SEPARATE is nonzero and
- we're reading from a sort stream. Don't cancel temporary
- transformations. Offload internal sorting to do_internal_sort().
- (do_internal_sort) New function. Handles internal sorting even
- when SEPARATE is nonzero. Doesn't free v_sort.
- (do_external_sort) Take new arg SEPARATE. Only destroy `x' if
- it's non-NULL.
- (write_initial_runs) Take new arg SEPARATE. Only destroy the old
- sink if SEPARATE is zero.
- (read_output_cases) Renamed read_sort_output(), all references
- changed. Now uses separate_case_tab when it exists.
- (write_separate) New function.
-
- * vfm.c: (page_to_disk) Destroy memory_source_cases, not
- memory_sink_cases. Don't redundantly call
- vfm_source->destroy_source().
- (memory_stream_mode) After switching over, set memory_sink_cases
- to NULL.
-
-Sat Jan 10 23:35:51 1998 Ben Pfaff <blp@gnu.org>
-
- * aggregate.c: (struct agr_var) Expand dbl[] array from 2 to 3
- elements.
- (static var prev_case) New, moved out of aggregate_single_case()
- local scope.
- (static var buf64_10x, buf_10x) New.
- (cmd_aggregate) Initialize prev_case. Comment fixes. Implement
- the 000, 001, 100, and 101 cases. Free prev_case.
- (parse_aggregate_functions) Disallow scratch variables.
- (free_aggregate_functions) Only free agr_dict if non-null. Use
- iter->function to determine numeric/string type, not
- iter->src->type.
- (aggregate_single_case) Don't manage prev_case. Initialize
- aggregate info after dumping it.
- (accumulate_aggregate_info) Fix sum, weighted sum, mean, weighted
- mean, stddev, weighted stddev definitions.
- (dump_aggregate_info) Implemented.
- (initialize_aggregate_info) Renamed from
- initialize_aggregate_functions(). Initializes dbl[2].
- (agr_00x_trns_proc, agr_00x_end_func, write_case_to_sfm,
- agr_10x_trns_proc, agr_10x_trns_free, agr_10x_end_func) New.
-
- * cases.c: (alloc_val) Removed.
-
- * get.c: (cmd_save_internal) Initialize new `dict' member.
-
- * sfm-write.c: (sfm_write_dictionary, write_header,
- write_variable, write_value_labels, write_documents) Reorganize,
- simplify for new parameter structure.
- (write_variable) Only one variable * argument now.
-
- * sfm.h: (struct sfm_write_info) Removed `pri', `sec', and
- replaced by new `dict' member.
-
- * temporary.c: (new_dictionary) Initialize n_documents.
-
- * vars-atr.c: (dup_variable) Allocate `value's from dict into
- v->fv manually.
- (init_variable, replace_variable) Eliminate usage of alloc_val().
-
- * vars-prs.c: (parse_DATA_LIST_vars) Accept PV_NO_SCRATCH option.
-
- * vfm.c: (arrange_compaction) Allow `temporary' value of 2 to
- signal that AGGREGATE is to be used for forming final cases.
- (close_active_file) Call end_func before stopping lagging. Cancel
- temporary after finishing compaction.
- (write_case) Comment fixes. Cleaned up.
- (compact_case) Let AGGREGATE handle compaction when `temporary' is
- 2.
-
-Sat Jan 10 02:10:47 1998 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (BUILT_SOURCES) Add means.c.
- (pspp_SOURCES) Add means.c.
- (EXTRA_DIST) Add means.q.
-
- * command.c: (array cmd_table[]) Add MEANS.
-
- * common.h: Esthetic fixes. Comment fixes. Test for
- MAX_SHORT_STRING greater than 8.
- (macros LOWEST, HIGHEST) New.
-
- * data-in.c, data-list.c, recode.c: Comment fixes.
-
- * means.q: New file, base version.
-
- * mis-val.c: (parse_num_or_range, parse_numeric) Replace -DBL_MAX
- with LOWEST, DBL_MAX with HIGHEST.
-
- * q2c.c: (dump_vars) Add an enum to array types giving the number
- of values for the enum.
-
- * sfm-read.c: (sfm_read_dictionary, read_machine_flt64_info)
- Replace second_lowest_value with second_lowest_flt64.
-
- * sfm-write.c: (write_variable, write_rec_7_34) Replace
- second_lowest_value with second_lowest_flt64.
-
- * t-test.q: Comment fix.
-
- * temporary.c: (restore_dictionary) Esthetic fix.
-
- * tokens.h: (force_match_id, force_match, force_string, force_int,
- force_num, force_id) Replace msg() with syntax_error().
-
- * var.h: (struct means_proc) New.
- (struct variable) Add mns member to `p' union.
-
- * vars-prs.c: (parse_variable, parse_dict_variable,
- parse_variables, parse_DATA_LIST_vars) Replace msg() with
- syntax_error().
-
-Thu Jan 8 22:28:41 1998 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (pspp_SOURCES) Add tab.h.
-
- * Most source files: Added a cast to unsigned char in usages of
- the ctype is*() functions. Replaced `end of command expected'
- calls to msg() with calls to syntax_error().
-
- * frequencies.q: (dump_condensed) Fix tab_dim() column reference.
-
- * lexer.c: (hex_val) Removed (was dead code).
- (idmatch) Parenthesize function name to avoid macro expansion.
-
- * postscript.c: Comment fixes.
- (ps_preopen_driver) Change default font size to 10pt.
-
- * sfm-read.c: (read_variables) Byteswap sv.print, sv.write as
- int32s.
- (parse_format_spec) Change system-file format spec argument type
- to int32. Parse the format spec with bitwise operators.
-
- * sfmP.h: (struct sysfile_format) Removed.
- (struct sysfile_variable) Changed print, write members from
- sysfile_format to int32.
-
- * tokens.h: Esthetic fixes.
- [__GNUC__] (macro id_match) New macro to hopefully speed up
- identifier matching.
- (macros match_id, match_tok, match_int) Implemented in
- compiler-independent manner; no longer GNU C only.
-
- * vfm.h: Include time.h.
-
-Mon Jan 5 11:06:15 1998 Ben Pfaff <blp@gnu.org>
-
- * data-list.c: (dump_fixed_table) Change tab_dim().
-
- * dump-sysfile.c: (open_sysfile) Fix mmap() call.
-
- * error.c: Include command.h.
-
- * frequencies.g: Formatting fixes.
-
- * frequencies.q: Add tab_dim() calls. Make the total cell a
- joined cell.
-
- * glob.c: Include command.h.
-
- * sfm-read.c: (struct sfm_fhuser_ext) New members sysmis, highest,
- lowest.
- (sfm_read_dictionary) Initialize sysmis, highest, lowest.
- (sfm_read_machine_flt64_info) Update sysmis, highest, lowest.
- (read_variables) Byteswap sv.type; byteswap sv.print, sv.write as
- the other elements (is this right?).
- (read_variables) Use lowest, highest members.
- (parse_format_spec) New arg `vv' for more stringent checking.
- (dump_dictionary) Byteswaps nonexplicit data.
- (sfm_read_case) Byteswap numeric data.
-
- * som.c: Initialize table_num to 1.
- (render_segments) Remember to increment y_index after each table
- segment.
-
- * sysfile-info.c: (cmd_sysfile_info) Change tab_dim(). Don't call
- avl_count() on a NULL tree. No title for the second table.
- (cmd_display) Handle DISPLAY VECTORS by calling display_vectors().
- Handle AS_SCRATCH as AS_NAMES. Warn if no variables. Re-enable;
- fix call to display_variables().
- (display_variables) Default to 4 columns, not 3. Set up headers.
- Column title is Variable, not Name. Fix index column.
- Add joint text. Add tab_dim(). Handle value labels properly.
- Handle DISPLAY LABELS properly. Draw boxes correctly.
- (describe_variable) Value labels don't need titles. Don't clear
- nonexistent index column.
- (compare_vectors_by_name) New function.
- (display_vectors) New function.
-
- * tab.c: (tab_height) Add assertion.
- (tab_null) Add debug code.
- (evaluate_dimensions) Add debug code.
-
- * var.h: (struct variable) get_proc data is sometimes used
- simultaneously with other per-procedure info, therefore it was
- removed from the union. All references changed.
-
-Sun Jan 4 18:13:33 1998 Ben Pfaff <blp@gnu.org>
-
- * ascii.c: (ascii_close_page) Put title on second line of headers
- if there is no subtitle.
-
- * command.c: (glob var cur_proc) Move definition here, from
- common.c.
- (cmd_remark) Emit blank line before remarks.
-
- * command.h: (glob var cur_proc) Move declaration here, from
- common.h.
-
- * data-list.c: (dump_fixed_table) Fix messages.
- (dump_free_table) Call tab_nat_dim().
-
- * descript.q: (dump_z_table) Modify tab_dim() call.
-
- * frequencies.q: (dump_condensed, dump_statistics) Add tab_dim()
- call.
- (dump_statistics) Don't output header.
-
- * groff-font.c: Minor format fix.
-
- * html.c: Comment fix.
-
- * list.q: (write_varname) Indent after advancing page.
-
- * output.h: Minor reordering.
-
- * postscript.c: Comment fixes. Many places, '\n' was replaced by
- a reference to eol[].
- (struct ps_driver_ext) New member eol[].
- (ps_preopen_driver) Initialize eol[].
- (ps_postopen_driver) Fix sense of text for text_opt, line_opt
- defaults. Handle headers. Fix test for minimum page length.
- (static var option_tab[]) Add `line-ends'.
- (ps_option) Handle line-ends to change eol[].
- (postopen) Scale prop_em_width and fixed_width properly. Set the
- prologue title to outp_title if applicable. Replace the prologue
- line ends with eol[]. Call draw_headers() if headers are enabled.
- (text_width) New function.
- (out_text_plain) New function.
- (draw_headers) New function.
-
- * print.c: (dump_table) Call tab_nat_dim().
-
- * som.c: (som_blank_line) Only advance a line if not at the top of
- a page.
- (som_submit) Move several informational table calls here.
- Increment subtable_num if SOMF_NO_TITLE not set.
- (output_table) Advance a line if SOMF_NO_SPACING not set.
- (render_columns, render_segments, render_simple) Handle spacing
- between tables. Handle table titles. Remove debug output.
-
- * som.h: (SOMF_*) New enum series.
- (struct som_table_class) New member `flags'.
-
- * sysfile-info.c: (cmd_sysfile_info) Calls tab_nat_dim(). No
- headers or spacing.
- (display_variables) Calls tab_nat_dim().
- (describe_variable) Remove restriction on number of value labels.
- Make value labels separated by thin lines.
-
- * tab.c: (tab_create) Default `flags' to none.
- (tab_float) New arg `w'. All references changed.
- (tab_nat_dim) New function.
- (tab_output_text) No title or spacing.
- (tab_flags) New function.
- (tabi_flags) New function.
- (tabi_title) New function.
- (strip_height) Removed.
- (tabi_render) Skip title when necessary.
- (static var tab_tab_class) Add tabi_flags, tabi_title.
- (evaluate_dimensions) Disable display of column, row size.
- (sum_columns) Add title height to top header.
- (render_strip) Moved within file.
-
- * tab.h: (struct tab_table) New member `flags'.
-
- * vfm.c: (dump_splits) Calls tab_nat_dim(). No title.
-
-Sat Jan 3 16:55:44 1998 Ben Pfaff <blp@gnu.org>
-
- * Most source files: Add `const' attribute in all appropriate
- places.
-
- * sysfile-info.c: (cmd_sysfile_info) Add tab_dim() call, add a
- column to the variables table for use by describe_variable().
- (cmd_display) Disable for the present.
- (display_documents) Don't wrap documents.
- (display_variables) Table has four columns now.
- (describe_variable) Table has four columns now. Don't use a
- subtable, use joined cells instead.
-
- * tab.c: (tab_create) Don't set `join'.
- (tab_realloc) ct array is not made up of a_string's.
- Reallocate trh, hrh, h arrays, initialize trh array. Initialize
- cell contents on GLOBAL_DEBUGGING, not DEBUGGING.
- (text_format) New function.
- (tab_title) Rewritten, uses text_format().
- (tab_text) Rewritten, uses text_format().
- (tab_joint_text) New function.
- (tab_join) Removed.
- (static var hit) New variable.
- (render_strip) New args r1, r2. Implement joined cells that fit
- on a single page.
- (tabi_render) Increment hit. Pass new args to render_strip().
- (evaluate_dimensions) [GLOBAL_DEBUGGING] Check for uninitialized
- cells. For t_naw and t_nah, ignore joined cells and null cells in
- calculations.
-
- * tab.h: (struct tab_join_rect) Removed.
- (struct tab_table) Removed `join'.
- (TAB_JOIN_MAIN) Removed.
- (struct tab_joined_cell) New struct.
- (TAT_NOWRAP) New enum.
-
-Fri Jan 2 01:39:58 1998 Ben Pfaff <blp@gnu.org>
-
- * ascii.c: (ascii_postopen) Replace ASCII_* macros with their
- expansions.
- (ascii_postopen_driver) Fix initialization of *_spacing so that
- the TAL_0 bit doesn't count.
-
- * data-list.c: (dump_fixed_table) Use natural width for Format
- column.
-
- * glob.c: (rerange) Removed.
- (get_date) Formatting fixes. Internationalization fix.
-
- * html.c: (html_postopen_driver) Replace HTML_DEFAULT_OUTPUT_FILE
- with "pspp.html".
-
- * postscript.c: (ps_postopen_driver) Replace
- PS_DEFAULT_OUTPUT_FILE with "pspp.ps".
-
- * som.c: (som_submit) Don't eject page before every table.
- (output_table) Fix order of arguments on call to area().
- (render_columns) Fix calculation of max_len.
-
- * tab.c: (tabi_cumulate) Minor change to increase elegance.
- (render_strip) New function.
- (strip_height) New function.
- (tabi_render) Rewrite as calls to render_strip().
-
- * tab.h: (TAT_* enums) Removed TAT_RICH, all references removed.
- Renumbered TAT_PRINTF, TAT_TITLE, TAT_FIX to correspond better
- with the TAB_* and OUTP_T_* constants.
-
-Thu Jan 1 11:53:52 1998 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Formatting fixes.
-
- * ascii.c: (ascii_postopen_driver) Initialize *_line_spacing[],
- *_line_width[].
-
- * data-list.c: (dump_fixed_table) Add tab_dim() call.
-
- * descript.q: (dump_z_table, display) Add tab_dim() calls.
-
- * dump-sysfile.c: (glob var length) Make type off_t.
- (usage) Fix arguments.
- (main) Return 0.
-
- * output.h: (OUTP_T_*) Change constants' value to match tab.h.
- Now right-justification is the default so many references had to
- change.
- (struct outp_class) Removed line_width, all references changed.
- (OUTP_DEV_*) Add OUTP_DEV_DISABLED.
- (struct outp_driver) Add elements horiz_line_width,
- vert_line_width, horiz_line_spacing, vert_line_spacing. Remove
- som element.
-
- * postscript.c: (outp_encodings) Formatting fixes. Fix garbage
- collection.
- (postopen) Initialize all the informational members of
- outp_driver.
-
- * som.c: (som_blank_line) New function, renamed from blank_line(),
- all references changed.
- (som_submit) Disables drivers whose pages can't be opened.
- (render_columns, render_simple, render_segments) Add debug output.
- (render_columns) Fix loop range.
- (render_simple) Don't try to render the headers, they're taken
- care of automatically. Advance cp_y past the table when done.
- (render_segments) Fix loop ranges.
-
- * tab.c: Initialize new members of tab_table.
- (tab_vline) Handle trv[]; don't set style for spacing-only lines.
- (tab_hline) Handle trh[]; don't set style for spacing-only lines.
- (tab_box) Handle trh[], trv[]; don't set style for spacing-only
- lines.
- (set_expr) Removed.
- (tab_dim) New function.
- (tab_col_width) Removed.
- (tab_row_height) Removed.
- (tab_output_text) Call tab_dim().
- (tabi_driver) Call evaluate_dimensions(), sum_columns().
- (tabi_area) Implemented.
- (tabi_cumulate) Implemented.
- (tabi_render) Partially implemented, but broken.
- (var tab_table_class) Made static.
- (evaluate_dimensions) New function.
- (sum_columns) New function.
-
- * tab.h: (enum t_*) Now start at t_end. New: t_ptw, t_nr, t_nc,
- t_nah, t_naw, t_neg, t_xch, t_dup, t_lbl, t_jnz, t_sac, t_sar,
- t_scr, t_srr, t_sentinel. Removed: t_nat.
- (struct tab_table) New: wl, wr, ht, hb, trh, hrh, trv, wrv, dim,
- max_stack_height, w, h. Removed: ce, re.
- (macro blank_line) Removed.
- (glob var zero_length) Removed.
-
-Fri Dec 26 15:44:31 1997 Ben Pfaff <blp@gnu.org>
-
- * Most source files: include some of the new include files broken
- out of var.h.
-
- * Makefile.am: (pspp_SOURCES) Add all the new source files to the
- list.
-
- * aggregate.c: (glob var outfile) Make static.
-
- * command.c: (glob var pgm_state) Move here.
-
- * common.c: (glob vars endian, second_lowest_value, pgmname,
- finished, curdate, cur_proc, start_interactive, history_file) Move
- here.
-
- * descript.q: (structs dsc_z_score, descriptives_trns) Move here.
-
- * file-handle.q: (glob vars files, inline_file) Move here.
-
- * glob.c: Lost lots of glob vars, detailed in individual file
- entries.
- (init_glob) set_printer, set_screen were obsolete, deleted.
- set_cprompt has fewer spaces because pspp has fewer letters than
- fiasco.
-
- * inpt-pgm.c: (glob vars inp_init, inp_init_size) Move here.
- (inp_nval) Made static.
-
- * lexer.c: (glob vars token, tokval, tokstr, tokstr_size,
- tokstr_len, toklongstr, tokint) Move here.
-
- * misc.c: Lost several vars and functions.
-
- * set.q: (all the set_* variables) Move here.
-
- * str.c: (strmaxcpy, strbarepadcpy, strbarepadlencpy, strpadcpy,
- blpstrset, strpadcmp, memrev, memrmem, cmp_str) Move here from
- misc.c.
-
- * tab.c: (set_expr, tab_col_width, tab_row_height) New functions.
-
- * tab.h: (enum series t_*) New enums.
- (struct tab_table) Use arena struct tag. New members ce, re.
-
- * tokens.h: Comment fixes.
-
- * var.h: Move lots of enums and variables and functions and
- structures to other files. Use and declare a lot more union and
- struct tags. Comment fixes.
-
- * vector.c: (glob vars vec, nvec) Move here.
-
- * vfm.c: (glob vars reinit_sysmis, reinit_blanks, init_zero,
- init_blanks, last_vfm_invocation) Move here.
-
- * cases.h: New file.
- (struct long_vec) Move here.
- (vec_init, vec_clear, vec_insert, vec_delete, devector, envector)
- Move here.
-
- * command.h: New file.
- (STATE_* enums) Move here.
- (glob var pgm_state) Move here.
-
- * format.c: New file.
- (glob var formats) Move here.
- (parse_format_specifier_name, fmt_to_string,
- check_input_specifier, check_output_specifier,
- check_string_specifier, convert_fmt_ItoO, parse_format_specifier)
- Move here.
-
- * format.h: New file. Move functions now in format.c here.
- (FMT_* enums) Move here.
- (struct fmt_desc) Move here.
- (FCAT_* enums) Move here.
- (struct fmt_spec) Move here.
- (glob vars formats, fmt_parse_ignore_error) Move here.
-
- * inpt-pgm.h: New file.
- (INP_* enums) Move here, make #defines into enums.
- (glob vars inp_init, inp_init_size) Move here.
-
- * sort.h: New file.
- (glob vars v_sort, nv_sort) Move here.
- (sort_cases, read_sort_output) Move here.
-
- * vector.h: New file.
- (struct vector) Move here, add struct tag.
- (glob vars vec, nvec) Move here.
- (find_vector) Move here.
-
- * New file.
- (glob vars last_vfm_invocation, temp_case, reinit_sysmis,
- reinit_blanks, init_zero, init_blanks) Move here.
- (struct case_stream) Move here.
- (glob vars vfm_source, vfm_sink, vfm_memory_stream,
- vfm_disk_stream, sort_stream, data_list_source,
- input_program_source, file_type_source, get_source, n_lag) Move
- here.
- (procedure, write_case, lagged_case, compact_case, page_to_disk)
- Move here.
-
-Wed Dec 24 22:40:42 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (pspp_SOURCES) Added html.c, som.c, som.h.
- (LDADD) Add libdcdflib.
-
- * ascii.c: Comment and formatting fixes. Almost every external
- function had an assert added, checking driver_open and page_open.
- (ascii_init_driver) Broken into ascii_preopen_driver,
- ascii_postopen_driver, ascii_close_driver. Manages driver_open.
- (ascii_open_page) Sets page_open.
- (ascii_close_page) Clears page_open.
-
- * html.c: Comment and formatting fixes. Almost every external
- function had an assert added, checking driver_open and page_open.
- (html_init_driver) Broken into html_preopen_driver,
- html_postopen_driver, html_close_driver. Manages driver_open.
- (html_open_page) Sets page_open.
- (html_close_page) Clears page_open.
- (html_submit) Disabled.
-
- * lexer.c: (parse_string) Remove debugging printf.
-
- * list.q: (determine_layout) Open a page if one is not yet open.
-
- * output.c: Comment fixes.
- (add_class) Set the class member of the new list element.
- (parse_options) Don't handle device type.
- (colon_tokenize) New function.
- (configure_driver) New four-field format with a field for device
- type. Now initialize driver_open, page_open, next, and prev
- fields. Use new colon_tokenize() function. Don't do a memory
- copy to replace a driver, it doesn't work; instead delete the old
- driver and insert a new one.
- (destroy_driver) Don't call som_destroy_driver(). Close the page
- if it's open. Find the class in the list of classes and decrement
- that reference count. Remove the driver from the global driver
- list.
- (outp_iterate_enabled_drivers) Renamed outp_drivers(). All
- references changed. Rewritten. Don't return a driver that's not
- enabled.
- (outp_eject_page) All references to som_internal_eject_page()
- changed to use this. Sets cp_x to 0 as well as cp_y.
-
- * output.h: (OUTP_I_* enums) Removed.
- (struct som_submission_form) Removed.
- (struct outp_class) init_driver broken into preopen_driver,
- postopen_driver, and close_driver. submit changed to take a
- som_table argument.
-
- * postscript.c: Comment and formatting fixes. Almost every
- external function had an assert added, checking driver_open and
- page_open.
- (ps_init_driver) Broken into ps_preopen_driver,
- ps_postopen_driver, ps_close_driver. Manages driver_open.
- (ps_open_page) Sets page_open.
- (ps_close_page) Clears page_open.
-
- * som.c: New file, base implementation.
-
- * som.h: (struct som_table) Add struct tag.
- (enum SOM_COL_ACROSS) Removed.
- (SOM_ROWS, SOM_COLUMNS) New enums.
- (struct som_table_class) Add member `cumulate'. Remove `segment';
- change `render' arguments.
- (struct som_point, struct som_rect) Removed.
- (som_submit_table) Fixed typo, should have been som_submit.
-
- * sysfile-info: (describe_variable) Don't try to insert a
- subtable; just destroy it for now.
-
- * t-test.q: Include dcdflib/cdflib.h instead of cdflib.h. Fix
- references to value labels.
-
- * tab.c: (tab_destroy) New function.
- (tab_columns) Change argument.
- [0] (tab_submit) Remove dead code.
- (tab_title) Allocate string from the table's arena.
- (tab_output_text) Only free the buffer if we allocated it.
- (tab_submit) New function.
- (static vars t, d) New static vars.
- (tabi_table, tabi_driver, tabi_count, tabi_area, tabi_columns,
- tabi_headers, tabi_cumulate, tabi_render) New functions.
- (glob var tab_table_class) New global var.
-
- * tab.h: (struct tab_join_rect) Don't use a som_rect; directly
- encapsulate the rectangle. All references changed.
-
-Sun Dec 21 16:18:58 1997 Ben Pfaff <blp@gnu.org>
-
- * All header files updated to use struct tags in addition to
- typedefs for all structures. Don't use word `struct' in struct
- tags.
-
- * Makefile.am: (pspp_SOURCES) Remove html.c.
- (INCLUDES) Replace the lib/* includes with a single lib/ include;
- all references updated.
-
- * command.c: (parse_cmd) Remove call to som_check_workspace.
- (output_line) Update to new som.
-
- * data-in.c: (parse_numeric) A single dot is not an error; it is
- the system-missing value.
-
- * data-list.c: (dump_fixed_table, dump_free_table) Update to new
- som.
-
- * data-out.c: Added `const' as appropriate to many prototypes.
- (convert_E, convert_F, convert_CCx) Take double argument instead
- of value * argument.
- (convert_format_to_string) Call changed functions appropriately.
- Instead of modifying the caller's value for FCAT_SHIFT_DECIMAL,
- make a local copy of the value.
-
- * descript.q: Remove custom_variables() prototype now provided by
- q2c.
- (custom_variables) Don't increment sbc_variables, the caller does
- this.
- (dump_z_table, display) Update to new som.
-
- * error.c: (vmsg) Add const to prototype. Remove code to handle
- `too many errors' condition.
- (check_error_count) New function.
- (msg) Add const to prototype.
-
- * filename.c: (open_file) Rewrite for elegance.
-
- * frequencies.q: Remove custom_*() prototypes now provided by q2c.
- (dump_full, dump_condensed, dump_statistics) Update for new som.
-
- * list.q: Don't include somP.h. Change all references to
- som_driver_ext to refer to the new members of som_driver. Change
- som_internal_eject_page() references to outp_eject_page().
-
- * main.c: (parse) Rewrite for elegance. Add call to
- check_error_count().
-
- * output.c: (add_class, outp_list_classes, outp_configure_driver)
- Rewrite or revise for new outp_driver_class_list structure.
- (outp_iterate_enabled_drivers) Fix comparison between disabled
- devices and current device type.
- (outp_eject_page) New function.
-
- * output.h: Comment fixes.
- (struct outp_driver) New members driver_open, page_open, cp_x,
- cp_y, font_height, prop_em_width, fixed_width. Deleted members
- ref_count, next.
- (struct outp_driver_class_list) New struct.
- (outp_class_list) Changed to type outp_driver_class_list; all
- references updated.
-
- * print.c: (dump_table, print_trns_proc) Updated for new som.
-
- * q2c.c: (dump_vars) Simplify array subcommand code. Declare
- prototypes for custom subcommands.
- (dump_subcommand) Always include the `else'.
- (dump_parser) Fix comments in output code.
-
- * set.q: Reordered functions.
-
- * som-frnt.c, som-high.c, som-low.c, somP.h: Removed.
-
- * som.h: Rewritten from scratch.
-
- * str.h: Remove dead code.
-
- * tab.c, tab.h: New files, base implementation.
-
- * sysfile-info.c: (cmd_sysfile_info, describe_variable) Update to
- new som.
-
- * t-test.q: New code from John Williams
- <johnr.williams@stonebow.otago.ac.nz>. Include math.h, cdflib.h.
- Many many new static vars and defines.
- (precalc, postcalc, g_postcalc, z_postcalc, t_pairs, t_groups,
- groups_calc, pairs_calc, z_dev_calc, z_calc) New functions.
- (struct value_list) New struct.
- (variance, covariance, pooled_variance, oneway, pearson_r, f_sig,
- t_crt, t_sig, print_t_groups) New functions.
- (cmd_t_test) Implemented.
-
- * temporary.c: (cancel_temporary) Only free the temp_dict if it's
- non-NULL.
-
- * vfm.c: (dump_splits) Update to new som.
-
-Thu Dec 4 23:02:22 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (fiasco_SOURCES) Add html.c.
-
- * aggregate.c: Base source.
-
- * ascii.c: (postopen, preclose) Reformat.
-
- * data-out.c, expr-evl.c: Comment fixes.
-
- * filename.c: (open_file) When opening a file for writing, use
- line buffering instead of full buffering for better interactive
- performance. Suggested by Valerio Aimale
- <valerio@svpop.com.dist.unige.it>. Also, recognize special file
- names `stdin', `stdout', `stderr'.
-
- * groff-font.c: Comment fixes.
-
- * html.c: New file; base version.
-
- * list.q: (write_all_headers, clean_up, determine_layout,
- list_cases) Ignore `special' devices for now. Needs to be fixed
- later.
-
- * output.c: (outp_init) Add html driver to list; reverse list
- order.
-
- * output.h: (struct outp_class_struct) New members `special',
- `submit'; comment fixes. All references changed.
-
- * postscript.c: (ps_init_driver) Make defaults for text_opt,
- line_opt depend on whether the OUTP_DEV_SCREEN bit is set on the
- device.
- (postopen) Comment fix.
- (preclose) Comment fixes, formatting fixes. Change x->file.file
- references to more proper f->file.
-
- * som-high.c: (som_submit_table) Special classes use their own
- renderers.
-
- * som.h: Comment fixes.
-
- * temporary.c: (new_dictionary) Don't try to xstrdup() a NULL
- string.
-
-Tue Dec 2 14:36:07 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (fiasco_SOURCES) Add aggregate.c back in.
-
- * aggregate.c: Still working on this.
-
- * command.c: (cmd_table[]) Add AGGREGATE back in.
- (split_words) Make '-' a legal word separator as well as ' '.
-
- * main.c: Comment fixes.
-
- * q2c.c: (dump_parser) Don't require the procedure's full name to
- be present, in the generated source.
-
- * t-test.q: Change name to `t-test' from `t test'. Let PAIRS be
- multiply specified and let it be default; let MISSING, CRITERIA,
- FORMAT be multiply specified.
- (cmd_t_test) Parse command name. [DEBUGGING] Call debug_print().
- (custom_groups) Fix defaults.
- (custom_pairs) Check whether this is a PAIRS subcommand before
- attempting to parse. Better garbage collection. Proper storage
- allocation.
- [DEBUGGING] (debug_print) New function.
-
- * temporary.c: Comment fixes.
- (copy_variable) Don't copy variable name and index.
- (save_dictionary) Copy variable name and index by hand.
-
- * vars-atr.c: Comment fixes.
- (create_variable) New dictionary argument. All references
- changed.
- (common_init_stuff) New dictionary argument. All references
- changed.
- (init_variable) New dictionary argument. All references changed.
- (dup_variable) New function.
-
- * vars-prs.c: (parse_variables) If there are any errors, we always
- return 0. Previously, it was possible for some types of errors to
- be ignored.
-
-Sat Nov 22 01:20:59 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (fiasco_SOURCES) For 0.1.5 release, remove
- aggregate.c.
-
- * command.c: (cmd_table[]) Comment out AGGREGATE; add T TEST.
-
- * list.q, t-test.q: Remove ALL option from VARLIST declaration in
- grammar rules.
-
- * q2c.c: Comment fixes.
- (SBC_* enums) Remove SBC_VARLIST_ALL; all references removed.
-
- * t-test.q: (cmd_list) Rename cmd_t_test.
-
- * temporary.c: (new_dictionary) Don't declare as static.
-
-Fri Nov 21 00:03:06 1997 Ben Pfaff <blp@gnu.org>
-
- * aggregate.c: Changes, still not finished.
-
- * file-handle.q, frequencies.q, list.q, set.q: Comment fixes.
-
- * q2c.c: Comment fixes. Now its output is internationalized.
- (get_token) Fix parsing of escapes within literal strings.
- (main) Fix bad #line directives in output.
-
- * t-test.q: Base implementation.
-
- * temporary.c: (new_dictionary) New function.
- (restore_dictionary) [__CHECKER__] Change fill character to *
- (from @).
-
-Sun Nov 16 01:29:57 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (BUILT_SOURCES, fiasco_SOURCES) Add t-test.c
-
- * aggregate.c: Changes, still not finished.
-
- * descript.q, list.q: Comment fixes.
-
- * q2c.c: Almost completely rewritten.
-
- * t-test.q: New file, not complete.
-
-Fri Nov 14 00:14:48 1997 Ben Pfaff <blp@gnu.org>
-
- * aggregate.c: Changes, still not finished.
-
- * sort.c: (sort_cases) Call cancel_temporary() instead of doing it
- by hand.
-
- * temporary.c: (cancel_temporary) New function.
-
- * vars-atr.c: (discard_variables) Call cancel_temporary() instead
- of doing it by hand.
-
- * vfm.c: (close_active_file) After restoring a TEMPORARY
- dictionary, set temp_dict to NULL. Cancel TEMPORARY through
- cancel_temporary().
- (SPLIT_FILE_procfunc) Comment fix.
-
-Tue Oct 28 16:08:45 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (fiasco_SOURCES) Add aggregate.c.
-
- * aggregate.c: New file, not finished yet.
-
- * command.c: (cmd_table) Add AGGREGATE.
-
- * common.h: (pgm_state) Move declaration to var.h.
-
- * lexer.c: (bin_value_func, oct_value_func, hex_value_func) i18n
- fixes.
- (parse_string) Message fix.
-
- * recode.c: Comment fix.
-
- * sfm-read.c: (read_variables) Code esthetic fixes.
- (write_header) Default date is `Jan', not `JAN'.
-
- * sfmP.h: (bswap_int32) [!__linux__] Fix off-by-one errors.
-
- * sort.c: (cmd_sort_cases) Farm the work out to new function
- parse_sort_variables().
- (parse_sort_variables) New function.
- (sort_cases) New function. Cancels temporary transformations,
- which sorting didn't do previously.
- (cmd_sort_cases) Better garbage collection on error. Uses
- do_external_sort().
- (write_initial_runs, merge_once) Improved code esthetics.
- (sort_stream_read) Reduced to one call to read_output_cases().
- (read_output_cases) New function.
-
- * var-labs.c: (cmd_variable_labels) Re-enabled truncation of
- variable labels to 120 characters.
-
- * var.h: Comment fixes.
- (glob var pgm_state) From common.h.
-
- * vars-atr.c: (discard_variables) Set pgm_state to STATE_INIT.
-
- * vars-prs.c: (parse_DATA_LIST_vars) Support PV_SINGLE in
- options. Set *names to NULL on error.
-
- * vfm.c: (memory_stream_init) Assert compaction_nval != 0.
-
-Thu Oct 9 09:59:49 1997 Ben Pfaff <blp@gnu.org>
-
- * sfm-write.c, vfm.c: [HAVE_UNISTD] #include <unistd.h>, needed by
- SunOS4. From Alexandre Oliva <oliva@dcc.unicamp.br>.
-
-Wed Oct 8 18:55:24 1997 Ben Pfaff <blp@gnu.org>
-
- * vfm.c: (page_to_disk) Added missing local variables.
-
-Tue Oct 7 20:23:17 1997 Ben Pfaff <blp@gnu.org>
-
- * get.c: Comment fix.
-
- * sort.c: (cmd_sort_cases) Attempt to perform internal sort if the
- source is anything other than a disk stream, not just if it's in a
- memory stream. Call page_to_disk() before external sort.
- (allocate_cases) Message fix.
-
- * vfm.c: (prepare_for_writing) Warn user when paging workspace to
- disk.
- (page_to_disk) New function.
-
-Sun Oct 5 15:56:14 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (INCLUDES) Include .. instead of $(top_srcdir).
-
- * common.h: (macro strerror) Remove. From Alexandre Oliva
- <oliva@dcc.unicamp.br>.
-
- * get.c: (dict_delete_run) The number of variables to delete is
- not necessarily the number of variables that need to be shifted
- up.
- (trim_dictionary) Don't set *options to 0. Fix bug that caused
- too many variables to be deleted.
-
- * postscript.c: Comment fix.
-
- * q2c.c: Include strerror.c. From Alexandre Oliva
- <oliva@dcc.unicamp.br>.
-
- * set.q: #undef ON and OFF. From Alexandre Oliva
- <oliva@dcc.unicamp.br>.
-
- * sfm-read.c: (sfm_read_dictionary) Don't set the file class too
- early, otherwise errors cause a bad free().
-
- * str.h: (macro nvsprintf) s/FORMATS/FORMAT/ typo. From Alexandre
- Oliva <oliva@dcc.unicamp.br>.
-
- * temporary.c: (save_dictionary) Don't allocate memory if
- n_documents is 0.
-
- * vfm.c: (memory_stream_write) Message fix.
-
-Sat Oct 4 16:20:43 1997 Ben Pfaff <blp@gnu.org>
-
- * command.c: (static var cmd_table[]) Define REPEATING DATA
- command.
-
- * common.h: Added support for broken systems that are missing
- EXIT_SUCCESS, EXIT_FAILURE, RAND_MAX, and/or strerror().
-
- * Many source files: Replace syntax error messages via msg() with
- call to syntax_error().
-
- * data-list.c: (dump_fixed_table) Add support for dumping table
- for REPEATING DATA as well as DATA LIST FIXED.
- (cmd_repeating_data) Allows and requires `/' between subcommands.
- Does proper thing with allowing rpd.starts_end to stay 0. Allows
- CONTINUED specifications to be omitted. Forces CONTINUED to be
- specified if ID is. Calculates starts_end, cont_end from logical
- record length as reported by fhp. Calls dump_fixed_table() if
- requested. Fixed length of record copied by memcpy.
- (parse_num_or_var) Sets `num' to 0, not NOT_INT, for variables.
- Message fix.
- (realize_value) Returns sensible value for out-of-range variable
- values.
- (rpd_parse_record) New argument `ofs'. Fixed confusion between
- length of occurrences and length of line. Added warning for
- fields that exceed the line length. Fixed infinite loop.
- (read_one_set_of_repetitions) Numerous minor changes for more
- complete SPSS compliance. Message fixes.
-
- * dfm.c: (dfm_close) If the file being closed is the inline file,
- read all the remaining data before closing it.
- (dfm_get_record) Don't close the file on lossage, as either it
- has been closed already or it doesn't belong to us.
-
- * error.c: (puts_stdout) New function.
- (vmsg) Use puts_stdout instead of puts.
-
- * file-handle.q: (fh_record_width) New function.
-
- * inpt-pgm.c: (init_case) Fixed buffer overrun when inp_nval % 4
- == 0.
- (clear_case) Ditto.
- (input_program_source_read) Made an old kluge an approved method.
-
- * lexer.c: (syntax_error) New function.
-
- * misc.c: [BROKEN_RAND] (ansi_rand, ansi_srand; static var next)
- New.
-
- * output.c: (oupt_get_paper_size) Message fix.
-
- * q2c.c: Numerous fixes to formatting of generated code made to
- conform to GNU coding standards. Uses syntax_error() in generated
- code. Other miscellaneous generated message fixes. Added support
- for broken systems that are missing EXIT_SUCCESS, EXIT_FAILURE,
- RAND_MAX, and/or strerror().
-
-Sat Oct 4 02:09:56 1997 Ben Pfaff <blp@gnu.org>
-
- * data-in.c: Comment fixes.
-
- * data-list.c: (struct repeating_data_trns) New member `id_spec'.
- (find_variable_input_spec) New function.
- (cmd_repeating_data) Initializes id_spec.
- (rpd_parse_record) Implemented.
- (read_one_set_of_repetitions) Returns -3 by default in order to
- kluge out some potential bugs.
-
- * data-out.c: Comment fixes.
-
- * file-type.c: (internal_cmd_record_type) Message fix.
-
- * inpt-pgm.c: (input_program_source_read) Special temporary kluge
- for handling -3 return value.
-
-Sat Sep 20 23:58:15 1997 Ben Pfaff <blp@gnu.org>
-
- * data-list.c: Comment fixes.
- (struct dls_var_spec) Reordered members.
- (read_from_data_list_fixed) Restructured.
- (struct repeating_data_trns) Reordered members. Renamed `starts'
- as `starts_beg', `ends' as `starts_end'.
- (cmd_repeating_data) Calculates length of repeated data if
- necessary and possible.
- (parse_num_or_var) Don't allow string variables.
- (realize_value) New function.
- (rpd_msg) New function.
- (rpd_parse_record) New function. Currently stubbed out.
- (read_one_set_of_repetitions) Implemented.
-
- * inpt-pgm.c: (input_program_source_read) Comment fix.
-
-Thu Sep 18 21:34:57 1997 Ben Pfaff <blp@gnu.org>
-
- * command.c: (cmd_end_repeat_p) Removed.
- (init_cmd_parser) Doesn't set cmd_end_repeat_p.
- (parse_cmd_name) Removed.
-
- * data-list.c: Comment fixes.
- (data_list_pgm) Removed `eof' member.
- (static var first) New var.
- (cmd_data_list) Sets `first'. Ensures that DATA LIST uses the
- FILE TYPE file inside FILE TYPE structures.
- (append_var_spec) Appends to *first, not dls.spec.
- (parse_fixed) Message fixes.
- (struct rpd_num_or_var) New.
- (struct repeating_data_trns) New.
- (static var rpd) New.
- (cmd_repeating_data) New function.
- (parse_num_or_var) New function.
- (parse_repeating_data) New function.
- (read_one_set_of_repetitions) New function.
-
- * file-type.c: (cmd_file_type) Message fixes. Always
- default_handle to FILE TYPE file handle.
- (internal_cmd_record_type) Message fixes.
-
-Wed Aug 20 14:22:03 1997 Ben Pfaff <blp@gnu.org>
-
- * repeat.c: Comment fix. Disable debugging.
-
- * temporary.c: (restore_dictionary) Sets splits to NULL and
- n_splits to 0 before destroying the variables because now doing
- this tries to remove split variables.
-
- * vars-atr.c: (discard_variables) Asserts that n_splits is 0 after
- destroying the dictionary.
- (clear_variable) Removes a variable from splits after destroying
- it.
-
-Mon Aug 18 18:06:55 1997 Ben Pfaff <blp@gnu.org>
-
- * cmdline.c: (set_compat) Removed.
- (pick_compat) Removed.
- (parse_command_line) Removed -c option.
- (pre_syntax_message) Removed -c option.
- (usage) Remove compatibility code.
-
- * common.h: (macros VER_PC, VER_WND, VER_X) Removed.
- (glob var compat) Removed.
-
- * compute.c: (type_check) Fixed messages about type mismatches.
-
- * data-list.c: (cmd_data_list) Removed compatibility code.
- (fixed_parse_compatible) Calls convert_negative_to_dash().
- Fixed bug where it only set the variable in fx.spec if it created
- the variable itself.
- (dump_fmt_list) Spelling fix.
- (cut_field) Removed compatibility code.
-
- * dfm.c: (cmd_begin_data) Don't require a command terminator on
- BEGIN DATA command.
-
- * expr-evl.c: (evaluate_expression) Implement LAG.
-
- * expr-prs.c: (parse_add) Calls convert_negative_to_dash().
- (parse_neg) Calls convert_negative_to_dash().
- (LAG_func) Increases n_lag to the lag requested. Fixed assignment
- bug.
-
- * expr.h: (struct expression_struct) Removed member max_lag.
-
- * file-type.c: (parse_col_spec) Calls convert_negative_to_dash().
- (internal_cmd_record_type) Removed special handling to produce
- negative numbers from dash tokens.
-
- * getline.c: (static var DO_REPEAT_level) New var.
- (getl_add_DO_REPEAT_file) Increments DO_REPEAT_level.
- (handle_line_buffer) Copies the line into getl_buf; doesn't call
- copy_with_DO_REPEAT_substitutions().
- (getl_read_line) Maintains value of getl_mode. Calls
- perform_DO_REPEAT_substitutions() whenever DO_REPEAT_level is
- positive.
- (getl_close_file) Decrements DO_REPEAT_level when appropriate.
-
- * getline.h: (getl_mode) New glob var.
-
- * glob.c: Comment fixes.
- (init_glob) Restructured. Sets set_seed.
- (init_compat_dependent) Removed. All references removed.
- (get_date) Format changed from MM/DD/YY to DD MMM YYYY.
- (__htonl, __htons) Removed. (What were these for?)
-
- * lexer.c: (static var tbl) Dash set to class CNUM.
- (make_hexit) New function from data-out.c.
- (get_token_representation) Rewritten.
- (convert_negative_to_dash) New function.
- (lex_init_compat_dependent) Removed.
- (yylex) A dash is parsed as part of a number if it is followed by
- a digit. The ASCII representation of a number is copied to
- tokstr. String parsing farmed out to parse_string(). Comment
- fixes.
- (bin_value_func, oct_value_func, hex_value_func, parse_string) New
- functions.
- (preprocess_line) Line processing depends on interactive/batch
- mode, not on compatibility mode. Removed PC+ compatibility code.
-
- * loop.c: (loop_3_trns_proc) Comment fix.
-
- * main.c: Remove dead code.
- (main) Remove call to init_compat_dependent().
-
- * misc.c: (convert_fmt_ItoO) Make E format conversion more
- conformant.
-
- * print.c: (parse_string_argument) Calls
- convert_negative_to_dash().
- (fixed_parse_compatible) Calls convert_negative_to_dash().
-
- * repeat.c: (RPT_* defines) Removed.
- (struct rpt_numeric) Removed.
- (struct repeat_entry) New member type, changed `replacement' from
- char * to char **.
- (clean_up) Deallocation adapted to new repeat_entry.
- (internal_cmd_do_repeat) `type' defaults to 0. Remove lookahead()
- usage. Creates vars for `type' of 1.
- (parse_ids) Sets type of 1. Adapted to new repeat_entry.
- (store_numeric) Rewritten, new interface.
- (parse_numbers) Rewritten.
- (parse_strings) Rewritten.
- (find_DO_REPEAT_substitution) New function.
- (perform_DO_REPEAT_substitutions) New function.
- (copy_with_DO_REPEAT_substitutions) Removed.
- (debug_print) Rewritten.
-
- * set.q: Comment fix.
- (custom_results) Removed compatibility code.
- (internal_cmd_set) Removed SET EMULATION subcommand. Removed
- compatibility code.
-
- * sysfile-info.c: (cmd_display) Removed compatibility code.
-
- * tokens.h: Comment fixes.
- (token types enum) Removed `toktype' typedef name for this int
- type. Removed SUBST. Restructured.
-
- * vars-atr.c: (discard_variables) Sets n_lag to 0.
-
- * vars-prs.c: Comment fix.
-
- * vfm.c: Comment fixes.
- (glob var n_lag) New var.
- (static vars lag_count, lag_head, lag_queue) New vars.
- (procedure) Removed argument nlag.
- (setup_lag) New function.
- (close_active_file) Discards lagging state.
- (lag_case) New function.
- (lagged_case) New function.
- (write_case) Lags a case if lagging.
-
- * weight.c: (cmd_weight) Removed compatibility code.
-
-Sun Aug 17 22:34:40 1997 Ben Pfaff <blp@gnu.org>
-
- * getline.h: (struct getl_script) New members loop_index, macros.
-
- * getline.c: (getl_add_file) Sets first_line field to NULL.
- (getl_add_DO_REPEAT_file) New function.
- (handle_line_buffer) When the current line's length is negative,
- set the filename and line number. Increment line number after
- reading line. Pass the line to
- copy_with_DO_REPEAT_substitutions() for processing.
- (getl_close_file) Free DO REPEAT lines before freeing the
- filename, and just set the filename to NULL when doing this,
- because otherwise the filename gets freed twice.
-
- * glob.c: (glob var queuing) Removed. All references removed.
-
- * lexer.c: Comment fixes.
- (get_token_representation) New function.
-
- * repeat.c: Comment fixes.
- (struct repeat_entry) Replaced type and v union members with a
- simple string.
- (append_record) New function.
- (internal_cmd_do_repeat) Started reforming it for the new
- repeat_entry struct. Properly records filename changes in the
- getl_line_buf. Fixed improper use of = for ==. Fixed sense of
- strncasecmp() result usage. Uses append_record() to simplify.
- Properly discards END REPEAT line. Calls getl_add_DO_REPEAT_file
- to add in the file.
-
- (copy_with_DO_REPEAT_substitutions) Started coding.
-
- [DEBUGGING] (debug_print_lines) New function.
-
- * set.q: (custom_results, internal_cmd_set) s/VER_PCP40/VER_PC/;
-
- * tokens.h: (macro is_id1, is_idn) New macros.
-
-Sat Aug 16 10:57:41 1997 Ben Pfaff <blp@gnu.org>
-
- * cmdline.c: (static var pre_syntax_message) Changed `win'
- compatibility mode to `wnd'.
-
- * data-list.c: (fixed_parse_spss) Renamed
- fixed_parse_compatible().
-
- * glob.c: (init_glob) Excise unused code for
- program_invocation_short_name.
-
- * lexer.c: (preprocess_line) Leading indentors are ignored in Wnd
- as well as in X.
-
- * print.c: (fixed_parse_spss) Renamed fixed_parse_compatible().
-
- * set.q: `win' compatibility renamed `wnd'.
-
-Thu Aug 14 22:11:12 1997 Ben Pfaff <blp@gnu.org>
-
- * filename.c: [__WIN32__] Change the included Windows header files
- (again).
- (absolute_filename_p) [__MSDOS__] A filename with a colon as the
- second character is absolute.
- (dirname) Fix logic error. Don't printf() the results.
- (prepend_dir) Don't printf() the results.
-
- * getline.c: (handle_line_buffer) New function.
- (getl_read_line) Reads line with handle_line_buffer() when
- appropriate.
- (getl_close_file) Discard line buffer data.
-
- * getline.h: Comment fixes.
- (struct getl_line_list) New struct.
- (getl_script_struct) Added line buffer members. These are hooks
- for use by DO REPEAT to allow it to insert virtual source code
- into the program.
-
- * glob.c: (init_glob) [__DJGPP__ || (__WIN32__ && __BORLANDC__)]
- Override Borland C++ stupidity that claims Windows has a console
- window size of 0x3.
-
- * repeat.c: This is in the process of being restructured from
- using a token-buffering approach to the DO REPEAT facility to
- using the more flexible approach of a line-buffering approach in
- conjunction with the getline module. Comment fixes.
- (struct tok_struct) Removed.
- (static vars queue_index, queue_head, queue) Removed.
- (static vars line_buf_head, line_buf_tail) New vars.
- (internal_cmd_do_repeat) Instead of queuing tokens, queue lines.
- Not complete.
- (pull_queue, destroy_queue) Removed.
- [DEBUGGING] (debug_print_tokens) Removed.
-
-Tue Aug 5 13:57:58 1997 Ben Pfaff <blp@gnu.org>
-
- * file-handle.q: (prepend_current_directory) New function.
- (internal_cmd_file_handle, fh_get_handle_by_filename) Prepends
- current directory before normalizing filename.
-
- * filename.c: (gnu_getcwd) New function.
- (absolute_filename_p) New function.
- (search_path) New argument, PREPEND. All references changed to
- pass NULL except those explicitly mentioned. Uses
- absolute_filename_p(). Prepends PREPEND before trying the
- filename.
- (dirname, prepend_dir) New functions.
-
- * getline.c: (getl_get_current_directory) New function.
- (getl_include) Passes getl_get_current_directory() as PREPEND arg
- to search_path().
-
-Sun Aug 3 11:42:36 1997 Ben Pfaff <blp@gnu.org>
-
- * In several source files, the term `script' was replaced with
- `syntax file' inside error messages. Usage of the term `script'
- in the sense of a syntax file is now deprecated.
-
- * cmdline.c: (static vars pre_syntax_message, post_syntax_message)
- Updated messages.
-
- * dump-sysfile.c: (usage) Update message.
-
- * getline.c: (getl_read_line) Ignore lines beginning with `#!'.
-
- * getline.h: (glob var getl_include_path) Declare extern.
-
- * list.q: Define EXTERN as extern before #including somP.h.
-
- * var.h: Remove declaration of `disptype' variable.
-
- * vfm.c: (close_active_file) After switching the data sink to a
- data source, set vfm_sink to NULL, because it doesn't exist any
- more.
-
-Thu Jul 17 21:41:44 1997 Ben Pfaff <blp@gnu.org>
-
- * glob.c: [__BORLANDC__] Include math.h. Define _matherr() and
- _matherrl() to ignore all math errors.
-
- * sfm-read.c: (read_value_labels) When reading the labels from
- disk, read the little parts separately instead of as a struct;
- this avoids alignment problems.
-
- * sfm-write.c: (struct sfm_fhuser_ext) New member `elem_type'.
- (sfm_write_dictionary) Sets elem_type and frees it on lossage.
- (write_header) Allocates and initializes elem_type.
- (sfm_write_case) Uses elem_type to determine how to handle each
- flt64 element.
- (sfm_close) Frees elem_type.
-
- * sfmP.h: Comment fix.
- [__BORLANDC__] Uses #pragma -a to adjust structure member
- alignment.
-
-Thu Jul 17 01:55:12 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (fiasco_SOURCES) Remove display.c.
-
- * common.c: Fix typo.
-
- * dfm.c: (read_record) Remove strncasecmp() emulation and fix the
- sense of the condition.
-
- * expr-evl.c: (macro ALLOC_STRING_SPACE) [!PAGED_STACK] Add
- line-continuation backslash.
-
- * filename.c: [__WIN32__] Include <windef.h> before <winbase.h>.
-
- * frequencies.q: (custom_grouped, add_percentile) Don't use a
- non-constant expression as an argument to sizeof.
-
- * glob.c: [__WIN32__ && __BORLANDC__] When including <conio.h>,
- undefine gettext macro because that's a conio function.
-
- * hash.h: (hsh_prime_tab declaration) Remove.
-
- * list.q: (write_fallback_headers) Move `leader' allocation out of
- main loop. Change to local_alloc() allocation.
-
- * output.h: Formatting fixes. Put __attribute__ in right place on
- function prototypes.
-
- * sfm-read.c: (read_machine_flt64_info, read_variables) Change
- incorrect `SECOND_LOWEST_VALUE' references to proper
- `second_lowest_value'.
-
- * som-frnt.c: (EXTERN macro) Define as `extern' instead of null
- value. This way 2 out of 3 of the som files define the vars
- extern, the correct way, that actually works under BC++.
- (som_set_float) Don't use nonconstant initializers for a struct.
-
- * som-high.c: Add the standard alloca() header.
- (replicate_table) Add prototype.
-
- Merged DISPLAY routine.
- * sysfile-info.c: (AS_*) New enum series.
- (cmd_sysfile_info) Gutted. Calls describe_variable() to do the
- dirty work.
- (cmd_display, display_macros, display_documents,
- display_variables) Stolen from defunct display.c.
- (describe_variable) New function.
-
- * temporary.c: [0] (display_tree) New debug function.
- (copy_variable) Performs shallow copy of value labels instead of
- deep copy; i.e., just copys the AVL tree and increments the
- reference counts.
-
- * val-labs.c: Comment fixes.
- (do_value_labels) Optionally skip leading forward slash.
- (get_label) Creates only a single value label instead of many
- copies of one, and sets the reference count.
-
- * display.c: Removed.
-
- * dump-sysfile.c: New file, not yet complete.
-
-Fri Jul 11 23:02:18 1997 Ben Pfaff <blp@gnu.org>
-
- For lots of source files I added more verbose_msg's. These aren't
- listed below as they have tested as being benign. In some cases
- these replaced debug_printf() calls.
-
- * output.c: (outp_read_devices) Message fix.
-
- * postscript.c: (output_encodings) Message fix. Reports errors on
- fclose().
- (postopen) Message fix.
-
-Fri Jul 11 14:09:40 1997 Ben Pfaff <blp@gnu.org>
-
- * dfm.c: (dfm_close) Don't call fclose() for a NULL FILE.
-
- * filename.c: (close_file_ext) Set f->file to NULL *after* closing
- it.
-
- * main.c: Remove <malloc.h> #include.
-
- * mis-val.c: (parse_numeric) Set .f member for each missing[]
- instead of trying to just set the missing[] itself, which is a
- gcc-specific idiom.
-
- * sfm-read.c: (read_variables) Same.
-
- * str.h: Add memmem() prototype.
-
- * val-labs.c, var-labs.c: Replace <malloc.h> with <stdlib.h>.
-
-Thu Jul 10 22:13:53 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (q2c) Don't include any libraries in the link.
-
- * dfm.c: (force_line_buffer_extension) New macro.
- (count_tabs) New function.
- (tabs_To_spaces) New function.
- (read_record) Calls tabs_to_spaces() on the line being processed.
-
- * q2c.c: Disabled i18n for this proglet so that libintl.a doesn't
- have to be compiled twice (once for CC, once for LOCAL_CC).
-
-Sun Jul 6 19:14:33 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (INCLUDES) Add intl directory; fix directories.
- (LDADD) Add @INTLLIBS@.
- (q2c) Add LIBS, @INTLLIBS@ to link step.
-
- * inpt-pgm.c: Turn off debugging.
-
- * postscript.c: (postopen) Format fix. local_free() blocks
- returned by local_alloc(); don't free() them.
-
-Sat Jul 5 23:44:51 1997 Ben Pfaff <blp@gnu.org>
-
- * data-in.c: (parse_string_as_format) Comment fix. Fix check for
- string length.
-
- * data-list.c: (read_from_data_list_fixed) Pass proper value for
- LEN arg, not simply the full string length.
-
- * sort.c: (allocate_file_handles) Check SPSS compatible temp file
- directories before generic temp file directories.
-
- * vfm.c: Disable debugging.
-
-Fri Jul 4 13:26:41 1997 Ben Pfaff <blp@gnu.org>
-
- * get.c: Comment fix.
- (cmd_save_internal) Always passes GTSV_OPT_SAVE option.
-
-Wed Jun 25 22:52:28 1997 Ben Pfaff <blp@gnu.org>
-
- * expr-prs.c: (debug_print_postfix) Conditionally included on
- GLOBAL_DEBUGGING. Removed out_header() reference.
-
- * exprP.h: Removed #undef GLOBAL_DEBUGGING.
-
-Sun Jun 22 22:00:28 1997 Ben Pfaff <blp@gnu.org>
-
- * ascii.c: Removed obsolete ascii_close_page() prototype.
-
- * command.c: (output_line) Comment fix.
-
- * data-in.c: Formatting fix.
- (parse_string_as_format) Now the `fc' argument is used only for
- the purpose of error messages; it is not an index into the string
- passed. All references changed.
-
- * data-list.c: Comment fix.
- (cut_field) Comment fix. Now returns the column number of the
- position of the field cut out on success.
- (parse_field) Added `column' argument. Puts the column numbers in
- the error message.
- (read_from_data_list_free, read_from_data_list_list) Record the
- column number returned by cut_field(), pass it to parse_field().
-
- * dfm.c: Comment fix.
-
- * do-ifP.h: Comment fix.
-
- * expr-prs.c: (SYSMIS_func) Implemented string-type arguments for
- the SYSMIS function.
-
- * expr.h, exprP.h: Comment fix.
-
- * glob.c: (init_glob) Only calls setlocale() and family if
- ENABLE_NLS set.
-
- * hash.h: Comment fix.
-
- * include.c: Comment fix.
-
- * output.c: Comment fix.
-
- * postscript.c: (ps_line_intersection) Simplified assertion.
-
- * repeat.c: Comment fix.
-
- * vars-atr.c: Comment fix.
-
- * vars-prs.c: Comment fix.
-
- * vfm.c: (vector_initialization) [DEBUGGING] Fixed undefined
- behavior with usage of postincrement.
- (memory_stream_read) Discards cases as it goes.
-
-Sun Jun 15 16:45:17 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Cleans q2c, not just distcleans it. Distcleans
- foo.
-
- * Most source files: Includes debug-print.h, related comment
- fixes.
-
- * cases.c: (alloc_val) Removed complex allocation code. Merely
- increments default_dict.nval and returns the former value.
- (envector, devector) Removed references to lv member of struct
- variable.
-
- * common.h: (macro VME) Replaced complex definition with simple
- one.
-
- * data-list.c: (cmd_data_list) Sets vfm_source instead of
- read_active_file and cancel_input_pgm.
- (read_from_data_list, cancel_data_list) Removed.
- (data_list_source_read, data_list_source_destroy_source) New
- functions.
- (glob var data_list_source) New var.
-
- * dfm.c: (open_file_r, open_file_w) Simplified debug output.
- (cmd_begin_data) Improved criteria for an input program accessing
- the inline file. Still not perfect.
-
- * do-if.c: (do_if_trns_proc) Simplified debug output.
-
- * expr-prs.c: Comment fixes.
- [DEBUGGING] (debug_print_postfix) Simplified debug output.
-
- * file-handle.q: (fh_close_handle) Simplified debug output.
-
- * file-type.c: Comment fixes.
- (cmd_file_type) Sets vfm_source instead of read_active_file and
- cancel_input_pgm.
- (cmd_end_file_type) On failure, discards variables in place of
- just canceling the input program.
- (read_from_file_type) Renamed file_type_source_read.
- (cancel_file_type) Renamed file_type_source_destroy_source.
- (glob var file_type_source) New var.
-
- * get.c: (GTSV_* enum series) New enums GTSV_OPT_SAVE, GTSV_NONE.
- (cmd_get) Initializes options to GTSV_NONE before passing to
- trim_dictionary(). Removed `lv' reference. Sets vfm_source
- instead of read_active_file and cancel_input_pgm.
- (cmd_save_internal) Initializes options before passing to
- trim_dictionary(). Local var `nval' removed.
- (dict_delete_run) Comment fixes.
- (trim_dictionary) Comment fixes. Disallows scratch variables if
- GTSV_OPT_SAVE set in options.
- (read_from_get) Renamed get_source_read.
- (cancel_get) Renamed get_source_destroy_source.
- (glob var get_source) New var.
-
- * inpt-pgm.c: (cmd_input_program) Sets vfm_source instead of
- read_active_file and cancel_input_pgm.
- (read_from_input_program) Renamed input_program_source_read.
- Simplified debug output.
- (cancel_input_program) Renamed
- input_program_source_destroy_source.
- (glob var input_program_source) New var.
-
- * loop.c: (loop_1_trns_proc) Simplified debug output.
-
- * main.c: (dump_token) Made eof output more explicit.
-
- * sfm-read.c: (read_variables, dump_dictionary) Removed `lv'
- references.
-
- * sort.c: (cmd_sort_cases) Disallows scratch variables. Removed
- code for always-memory or always-disk cases. malloc's case-list
- based on vfm_source_info.ncases. Explicit support for
- memory_stream via memory_source_cases.
- (do_external_sort) Sets vfm_source instead of read_active_file and
- cancel_input_pgm.
- (allocate_file_handles) The temporary directory permissions are
- set to 0700 instead of 0777.
- (allocate_cases) Formatting fixes. Simplified debug output.
- (output_record) Compacts the case if necessary before writing it
- out.
- (close_handle, open_handle_w) Simplified debug output.
- (write_initial_runs) Destroys vfm_sink, then sets it to
- sort_stream. Writes records to memory based on
- vfm_sink_info.case_size.
- (write_to_sort_cases) Renamed sort_stream_write().
- (merge) Simplified error handling. Simplified debug output.
- Formatting fixes.
- (read_from_external_sort) Renamed sort_stream_read().
- Reads records based on vfm_source_info.case_size.
- (sort_stream_write) Writes records to memory based on
- vfm_sink_info.case_size.
- (sort_stream_mode) New function.
- (glob var sort_stream) New variable.
-
- * temporary.c: (cmd_temporary) Simplified debug output.
- (copy_variable) Removed references to `lv'.
-
- * title.c: (get_title) Simplified debug output.
-
- * var.h: Comment fixes.
- (struct get_proc) Removed member `lv'.
- (struct variable) Removed member `lv'. Comment fixes.
- (glob vars read_active_file, write_active_file, cancel_input_pgm)
- Removed.
- (struct case_stream) New.
-
- * vars-atr.c: (discard_variables) Changed cancel_input_pgm,
- read_active_file references to use vfm_source.
- (init_variable, replace_variable) Removed references to `lv'.
-
- * vfm.c: Comment fixes.
- (glob var vfm_source, vfm_sink, vfm_source_info, vfm_sink_info)
- New variables.
- (static var queue, qh, qt, n_lag) Removed. All references
- removed.
- (glob var compaction_necessary, compaction_nval, compaction_case,
- paging) New variables.
- (record_case) Removed.
- (procedure) Comment fixes. Calls vfm_source->read() instead of
- read_active_file().
- (lag) Removed.
- (prepare_for_writing, arrange_compaction, make_temp_case,
- vector_initialization, setup_filter) New function.
- (open_active_file) Most of the code moved into the abovementioned
- new functions. Now sets temp_dict to &default_dict if there is no
- temporary dictionary, for convenience. New debug output.
- (close_active_file) Deals with changing the sink to the source.
- Calls finish_compaction(). Frees compaction_case. Mostly
- rewritten.
- (glob vars disk_source_file, disk_sink_file) New vars.
- (destroy_active_file, read_from_memory) Removed.
- (disk_stream_init, disk_stream_read, disk_stream_write,
- disk_stream_mode, disk_stream_destroy_source,
- disk_stream_destroy_sink) New functions.
- (glob var vfm_disk_stream) New var.
- (glob vars memory_source_cases, memory_sink_cases,
- memory_sink_iter, memory_sink_max_cases) New vars.
- (memory_stream_init, memory_stream_read, memory_stream_write,
- memory_stream_mode, memory_stream_destroy_source,
- memory_stream_destroy_sink) New functions.
- (glob var vfm_memory_stream) New var.
- (write_case) Local var `i' renamed `cur_trns'; local var `retval'
- named `more_cases'. Simplified debug output. Otherwise mostly
- rewritten.
- (record_case) Moved into the stream drivers. Removed.
- (transform) Removed (was dead code).
- (SPLIT_FILE_procfunc) s/vfm_replacement/vfm_sink_info/. In the
- common case that the splits don't change, we don't need to copy
- the case into prev_case again--pointless.
- (compact_case) New function.
- (finish_compaction) New function.
-
- * vfmP.h: Comment fixes.
- (DEV_* enum series) Removed.
- (struct storage) Renamed `stream_info'. Removed variant record.
- Removed `device' member.
-
- * debug-print.h: New file.
-
-Sun Jun 8 01:12:38 1997 Ben Pfaff <blp@gnu.org>
-
- * autorecode.c: Turned off debugging.
-
- * data-list.c: (destroy_dls) Closes the associated file handle.
-
- * descript.q: (custom_variables) Added PV_NO_SCRATCH to
- parse_variables() options.
-
- * dfm.c: (open_file_r) Removed gratuituous argument to msg() call.
-
- * display.c: (display_variables) Really fixed null cell bug.
-
- * file-handle.q: (fh_close_handle) Changed debugging message.
-
- * frequencies.q: (custom_variables) Added PV_NO_SCRATCH to
- parse_variables() options.
-
- * list.q: Added PV_NO_SCRATCH in q2c varlist options.
- (cmd_list) Fails if no variables specified.
- (determine_layout) Writes blank lines manually.
-
- * loop.c: (loop_1_trns_proc) Made debugging code only print
- messages if debugging.
-
- * q2c.c: (dump_subcommand) Appends sbc->message to SBC_VARLIST
- parse_variables() arguments.
- (main) Parses optional parenthesized options to varlist
- subcommands into sbc->message.
-
- * sfm-read.c: Format fix.
-
- * var.h: (FV_*) New enum series.
- (PV_*) New enum PV_NO_SCRATCH.
-
- * vars-prs.c: (find_var) Removed.
- (fill_all_vars) Takes FV_* enum instead of boolean third
- argument. Rewritten to deal with scratch as well as system
- variables.
- (parse_variables) Error message on scratch variable if
- PV_NO_SCRATCH set.
-
- * vfm.c: (static var virt_begin_func) New var.
- (procedure) Sets up virt_begin_func.
- (SPLIT_FILE_procfunc) For the first case, calls virt_begin_func()
- after dump_splits(). For succeeding groups changes, calls
- virt_begin_func() instead of begin_func().
-
-Fri Jun 6 22:42:23 1997 Ben Pfaff <blp@gnu.org>
-
- * count.c, data-out.c, file-handle.q, list.q, loop.c: Turned off
- debugging.
-
- * dfm.c: Added some debugging messages, disabled by default.
- (open_file_r) Fixed error message.
- (read_record) On eof on inline_file, instead of calling
- fh_close_handle(), simply jump to eof label like a normal file.
- Message fixes.
-
- * display.c: Thin lines between rows for certain kinds of
- listing. Fixed `null cell' bug.
-
- * error.c: (failure) Flush stdout, stderr before failing.
-
- * file-handle.q: (fh_close_handle) Added debugging message.
-
- * frequencies.q: (dump_full) Bottom line extends across entire
- table width. Changed title formatting.
- (dump_condensed) Changed title formatting.
- (dump_statistics) Fixed title formatting.
-
- * glob.c: (init_glob) Moved initialization of cur_proc out of #if.
- Sets default value of set_format.
-
- * list.q: (cmd_list) Calls blank_line() before determine_layout().
- Passes write_all_headers() to procedure() as pre-group func.
- (write_all_headers) New function.
- (determine_layout) Removed calls to write_header().
- Calls blank_line() before and after write_fallback_headers().
-
- * recode.c: (recode_trns_free) Only attempts to free head->map if
- non-NULL.
-
- * sfm-read.c: (read_variables) Allows `#' at beginning of system
- file variable names but gives a warning. Sets `left' based on
- first character being/not being `#'. On lossage frees dict->var.
-
- * som-high.c: (som_draw_title) Simplified title formatting.
-
- * vfm.c: (dump_splits) Fixed and changed splits formatting.
-
-Thu Jun 5 22:51:15 1997 Ben Pfaff <blp@gnu.org>
-
- * autorecode.c: (cmd_autorecode) Sets h_trans to NULL at
- beginning. Frees v_src, v_dest on successful exit. Frees
- h_trans[*], h_trans on lossage.
- (recode) Frees h_trans[*], h_trans.
-
- * dfm.c: (dfm_close) Formatting change.
- (open_inline_file) Now passed a dfm_fhuser_ext to initialize; no
- longer allocates its own in inline_file.
- (open_file_r) Passes the local dfm_fhuser_ext to
- open_inline_file().
- (open_file_w) Message fix.
- (read_record) Buffer reallocation strategy changed. Frees
- ext->line even in inline_file to prevent leaks.
- (dfm_put_record) Fixed bug where `ext' was cached before the file
- was opened and thus it would be NULL when the file really was
- open.
- (cmd_begin_data) Sets up inline_file basics itself, then calls
- open_inline_file() for the dfm_fhuser_ext. Formatting fix.
-
- * list.q: (write_line) Formatting fix.
- (clean_up) Minor strategy change. Sets proportional font after
- finishing cleanup.
- (determine_layout) Sets fixed font before writing regular headers,
- or after writing fallback headers.
-
- * modify-vars.c: (cmd_modify_vars) Frees variable lists for DROP
- and KEEP vars after using them.
-
- * postscript.c: (ps_init_driver) Frees x->family.
- (postopen) When loading fonts, free the temporary font name buffer
- after using it.
- (ps_text_set_font_by_position) Free temporary font name buffer
- after using it.
- (text) Fixed code that calculated `lig' so that `lig' always gets
- initialized. Formatting fix.
-
- * som-low.c: (get_cell_size, som_get_table_size) `prop_height' ->
- `font_height'.
- [GLOBAL_DEBUGGIGN] (check_table) Use arena_alloc() to allocate
- cells, not xmalloc(), so that the cells will get destroyed
- automatically.
-
- * sysfile-info.c: (cmd_sysfile_info) Frees the dictionary after
- using it.
-
-Tue Jun 3 23:33:22 1997 Ben Pfaff <blp@gnu.org>
-
- * ascii.c: (ascii_text_draw) Always sets metrics for strings that
- are drawn.
-
- * dfm.c: Comment fix.
-
- * list.q: Comment fixes. Include somP.h. Removed static vars
- table, n_columns, n_rows, part. New struct list_ext. New static
- var line_buf.
- (n_lines_remaining, n_chars_width, write_line) New functions.
- (cmd_list, list_cases) Rewritten.
- (begin_row, end_row, flush_table) Removed.
- (write_header, clean_up, write_varname, write_fallback_headers,
- determine_layout) New functions.
-
- * output.c: (outp_iterate_enabled_drivers) Minor reformat.
-
- * output.h: Comment fix.
-
- * postscript.c: Comment fix.
- (struct ps_driver_ext) Removed prop_size, fixed_size members;
- added font_size. All references changed.
- (ps_init_driver) Initializes font_size. Simplified space checking
- code.
- (static var option_tab[]) Removed prop-size, fixed-size; added
- font-size.
- (ps_option) Handles font_size.
-
- * som-high.c: Moved prototypes into somP.h.
- (som_init_driver) New function.
- (som_submit_table) Moved some code into new function
- som_init_driver().
- (build_target) Moved some code into new function
- som_internal_eject_page().
- (som_eject_page) Uses som_internal_eject_page().
- (som_internal_eject_page) New function.
-
- * som-low.c: Moved prototypes into somP.h.
-
- * som.h: Formatting fixes.
-
- * somP.h: (struct som_driver_ext) Removed em_width;
- added prop_em_width, fixed_width.
-
-Mon Jun 2 14:25:25 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Added `localedir' definition. Added
- -DLOCALEDIR="..." to DEFS. Added -I. to INCLUDES.
-
- * ascii.c: (macro draw_line) Fixed capitalization.
-
- * ascii.c, autorecode.c, cases.c, cmdline.c, command.c, common.c,
- compute.c, count.c, data-in.c, data-list.c, data-out.c,
- descript.q, dfm.c, display.c, do-if.c, error.c, expr-evl.c,
- expr-opt.c, expr-prs.c, file-handle.q, file-type.c, filename.c,
- formats.c, frequencies.q, get.c, getline.c, glob.c, groff-font.c,
- hash.c, heap.c, include.c, inpt-pgm.c, lexer.c, list.q, loop.c,
- main.c, mis-val.c, misc.c, modify-vars.c, numeric.c, output.c,
- postscript.c, print.c, q2c.c, recode.c, rename-vars.c, repeat.c,
- sample.c, sel-if.c, sfm-read.c, sfm-write.c, sfmP.h, som-frnt.c,
- som-high.c, som-low.c, sort.c, split-file.c, sysfile-info.c,
- temporary.c, title.c, tokens.h, val-labs.c, var-labs.c,
- vars-atr.c, vars-prs.c, vector.c, vfm.c, weight.c: Marked strings
- for internationlization.
-
- * glob.c: [HAVE_LOCALE_H] Includes locale.h.
-
-Sun Jun 1 23:31:18 1997 Ben Pfaff <blp@gnu.org>
-
- * do-if.c, sort.c, val-labs.c: Comment fixes.
-
- * glob.c: (init_glob) Uncommented, updated i18n support.
-
- * arena.c, ascii.c, data-in.c, descript.q, error.c, expr-evl.c,
- expr-opt.c, expr-prs.c, filename.c, frequencies.q, groff-font.c,
- output.c, postscript.c, sfm-read.c, som-high.c, vars-prs.c: Made
- the declarations of macros taking arguments a lot nicer.
-
-Sun Jun 1 17:22:04 1997 Ben Pfaff <blp@gnu.org>
-
- * error.h: Removed CE, CW aliases for SE, SW.
-
- * q2c.c: Removed explicit streq() definition since it's duplicated
- in str.h.
-
- * approx.h, error.h, font.h, hash.h, misc.h, output.h, somP.h,
- stats.h, str.h, tokens.h: Made the declarations of macros taking
- arguments a lot nicer-looking of <pinard@iro.umontreal.ca>.
- Comment fixes.
-
-Sun Jun 1 12:02:06 1997 Ben Pfaff <blp@gnu.org>
-
- * cmdline.c: Comment fixes.
- (pick_compat) Changed return type to int. Now, instead of setting
- glob var `compat' to the emulation, returns the emulation. All
- references changed.
- (parse_command_line) Added terminating null to end of
- `long_options' array definition.
- (pre_syntax_message) Fixes.
- (usage) Shows the default emulation in the syntax message by
- calling pick_compat().
-
- * getline.c: (getl_add_include_dir) Separates paths with
- PATH_DELIMITER, not DIR_SEPARATOR.
-
- * glob.c: (init_glob) Fixed references to DEFAULT_VER_PCP40,
- DEFAULT_VER_WIN61, DEFAULT_VER_X40.
-
- * output.c: (outp_configure_macro) Make earlier definitions for a
- particular key override later ones for the same key.
-
-Fri May 30 19:40:49 1997 Ben Pfaff <blp@gnu.org>
-
- * ascii.c: Comment fixes.
-
- * output.c: (outp_get_paper_size)
- s/STAT_OUTPUT_INIT_FILE/STAT_OUTPUT_PAPERSIZE_FILE/.
-
-Sun May 25 22:34:07 1997 Ben Pfaff <blp@gnu.org>
-
- * ascii.c, postscript.c, sfm-read.c, sfm-write.c, sort.c: Include
- <errno.h>. GNU libc 2 enforces this!
-
- * command.c: (parse_cmd) Fixed problem with `else' clause being
- paired with wrong `if'. Comment fix.
-
-Fri May 9 16:53:52 1997 Ben Pfaff <blp@gnu.org>
-
- * getline.c: [!HAVE_LIBREADLINE] (read_console) Changed
- blp_getline() to getline().
-
- * output.c: (outp_eval_dimension) Changed the fix from last time;
- there was no variable `a'.
-
- * q2c.c: (get_line) Fixed boundary condition overrun bug.
-
-Mon May 5 21:58:22 1997 Ben Pfaff <blp@gnu.org>
-
- * output.c: (outp_evaluate_dimension) Fixed handling of negative
- numbers having fractional parts. Added case of a fraction without
- a whole-number part.
-
-Fri May 2 22:08:05 1997 Ben Pfaff <blp@gnu.org>
-
- * ascii.c: (ascii_text_get_font_position) Removed.
-
- * expr.h, exprP.h: Disabled debugging.
-
- * groff-font.c, postscript.c: Changed `groff' to `Groff' in
- several places.
-
- * output.h: (struct outp_class_struct) Removed
- text_get_font_position method. All references deleted.
-
- * postscript.c: Big change here. Fontmaps were completely
- eliminated because of a change in philosophy. Comment fixes.
- (struct ps_fontmap, ps2dit_map, font_family, dit2family_map)
- Removed.
- (struct ps_driver_ext) `position', `fontmap', `prop_name',
- `fixed_name' members removed. New members `prop_family',
- `fixed_family'. `family' member changed to type char *.
- (static var ps_fontmaps) Removed.
- () Removed.
- (ps_init_driver) Removed obsolete references, updated.
- Initializes `translate_x', `translate_y', `scale'. Doesn't read
- fontmap, of course. Refers to font names through internal_name
- rather than subversive means. Frees proper items.
- (static var option_tab[]) Removed `fontmap-file' option; renamed
- `fixed-font', `prop-font'.
- (ps_option) Corresponds to option_tab[].
- (read_fontmap, release_fontmap, ps_to_dit, compare_ps2dit,
- hash_ps2dit, compare_dit2family, hash_dit2family, compare_family,
- hash_family) Removed.
- (postopen) Generates font names from family names. Gets
- PostScript font name properly. New prologue file comment `!!!'
- style.
- (ps_open_page) Adds translate_x, translate_y to BP prologue
- function; gives SF argument floating-point format.
- (ps_text_set_font_by_name) Doesn't try to map PostScript->Groff
- font name. Doesn't change font family.
- (ps_text_set_font_by_position) Generates Groff font name from font
- family name instead of through table lookup.
- (ps_text_set_font_by_family) Renamed `ps_text_set_font_family',
- all references changed. Reduced to simple string assignment.
- (ps_get_font_name) Removed.
- (ps_get_font_family) Reduced to string return.
- (text) Doesn't save `position' since it no longer exists. Ugly
- kluge to save font family--fix soon?
- (load_font) Removed PostScript name argument.
-
-Thu May 1 14:58:59 1997 Ben Pfaff <blp@gnu.org>
-
- * postscript.c: Comment fix.
- (ps_open_page) Puts scale factor in PostScript output.
-
-Sat Apr 26 11:49:32 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Distcleans q2c.
-
-Wed Apr 23 21:33:48 1997 Ben Pfaff <blp@gnu.org>
-
- * ascii.c: (delineate) Sets text size even if width is zero.
-
- * command.c: Comment fix.
- (static var cmd_table[]) Re-enabled EVALUATE command.
- (parse_cmd) Lotsa comment fixes. Fixed infinite loop in parsing
- of comments in script files. Now more liberal on criteria for
- performing a state transition--if *anything* happened correctly,
- not just if *everything* happened correctly.
-
- * data-out.c: (convert_F) Comment fix. Why in the fsck does
- Checker segfault on formatting large numbers and why in the fsck
- hadn't I noticed this before?
-
- * expr.h, exprP.h: No longer turn off GLOBAL_DEBUGGING.
-
- * list.q: (cmd_list) Commented out the actual output routine
- because of various problems. Probably will abandon the idea of
- using the general `crushed tables' for the LIST procedure.
-
- * temporary.c: (restore_dictionary) Sets var_by_name to NULL after
- clearing it. Allocates a new var_by_name dictionary before trying
- to add members to it.
-
- * vars-atr.c: [DEBUGGING] (dump_one_var_node) Removed argument
- `sib'. Changed type of `node' argument.
- [DEBUGGING] (dump_var_tree) Replaced avlwalk() with
- avl_walk_inorder().
- (clear_variable) Only dumps the var tree if var_by_name non-NULL.
- [DEBUGGING] Only deletes the variable from var_by_name if that var
- non-NULL.
-
-Fri Apr 18 16:48:41 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Added include files to SOURCES. Added
- frequencies.q to EXTRA_DIST. Removed include/ from INCLUDES. Now
- includes rules for q2c. Added `boast' target.
-
-Fri Apr 18 15:42:22 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Maintainer-clean Makefile.in.
-
- * Makefile.am: Fixed redundant EXTRA_DIST line.
-
- * ascii.c: Comment fixes.
- (ascii_line_vert) Fixed overly aggressive range check.
-
- * display.c: Removed dead code.
-
- * list.q: Turn debugging on.
- (flush_table) New debug code.
-
- * sfm-read.c: (read_value_labels) malloc's the structure before
- trying to assign to its members.
-
- * sfm-write.c: Comment fix.
-
- * som-high.c: (som_submit_table) Sets som.t and som.d on each call
- to output_table().
- (output_table) No arguments anymore--gets them through `som'
- global. New debug code. In crushed tables, now sets `htv' as
- well as `hv' to avoid bad confusion later.
- (dump_crush_page) New debug code.
-
- * som-low.c: (som_dump_crush_page) New debug code.
-
-Thu Mar 27 01:11:29 1997 Ben Pfaff <blp@gnu.org>
-
- All source files: Broke long lines into multiple lines.
-
- * ascii.c: (ascii_close_page) Uses host_system var in place of
- HOST_SYSTEM constant.
-
- * cmdline.c: (var syntax_message[]) Broke into
- pre_syntax_message[] and post_syntax_message[].
- (usage) Outputs both parts, separated by driver list.
-
- * error.h: Fixed broken formatting.
-
- * expr-opt.c: (str_search, str_rsearch) New functions.
-
- * misc.c: (blp_getdelim) Removed. All references changed to
- `getdelim'.
- (str_search, str_rsearch) Removed.
- (memrmem) New function.
-
- * misc.h: (blp_getline) Removed. All reference changed to
- `getline'.
-
- * stat.h: New file.
-
- * filename.c: Includes "stat.h", not <sys/stat.h>.
- (blp_getenv) Uses host_system var instead of HOST_SYSTEM constant.
-
- * output.c: (outp_list_classes) Changed output formatting.
-
- * sfm-write.c: (write_header) Uses host_system var instead of
- HOST_SYSTEM constant.
- (write_rec_7_34) Extracts version numbers from the version string.
- Untested.
-
- * sort.c: Includes "stat.h", not <sys/stat.h>.
-
- * str.c: (strcasecmp) Removed.
-
- * title.c: (cmd_document) Uses host_system var instead of
- HOST_SYSTEM constant.
-
- * version.c: Generated on-the-fly by the Makefile instead of being
- static.
-
- * str.h: Comment fixes. Doesn't substitute for missing memmove or
- memcpy.
- [!HAVE_STRNCASECMP] Declares strncasecmp().
-
- * version.h: Removed stray character. Comment fixes.
- (vars host_system, build_system) New vars.
-
-Mon Mar 24 21:47:31 1997 Ben Pfaff <blp@gnu.org>
-
- * Most source files: Changed formatting of copyright notice; fixed
- FSF address; reformatted to better conform to GNU standards;
- comment fixes. Added markups to prevent GNU indent from messing
- up my beautiful formatting :-).
-
- * q2c.c: (get_line) Ignores lines that begin with `/* *INDENT' so
- that GNU indent markups can be passed through without problems.
-
-Wed Feb 19 21:30:31 1997 Ben Pfaff <blp@gnu.org>
-
- * get.c: Turned off debugging.
-
- * glob.c: (init_glob) Turned on save-file compression by default.
-
- * sfm-write.c: (sfm_write_case) Fixed bug which resulted in less
- compression than was possible in save files.
-
-Sun Feb 16 20:57:20 1997 Ben Pfaff <blp@gnu.org>
-
- * data-out.c: (convert_F) Comment fixes. Debug message fixes.
-
- * frequencies.q: Removed Fiasco extensions. Updated calculation
- algorithms. Polished output format.
- (struct frq_info_struct) Removed members `max_degree', `min_n',
- all references removed.
- (macro frq_extensions) Removed.
- (static vars min_n, max_degree) Removed, all references removed.
- (internal_cmd_frequencies) Doesn't handle extensions. Doesn't
- calculate `min_n', `max_degree'.
- (postcalc) Passes new arg to dump_statistics().
- (dump_full) Honor NOLABEL option. Buggy? Adds variable name
- title.
- (dump_condensed) Adds variable name title.
- (sum_freqs) Removed.
- (calc_stats) Updated calculation algorithm.
- (dump_statistics) Removed warning for too-few observations.
- Changed table formatting. Adds variable name title if passed new
- arg is nonzero.
-
- * output.h: Comment fix.
-
- * recode.c, sample.c, sort.c: Disabled debug code.
-
- * som-frnt.c: (som_set_value, som_set_float, som_set_text)
- Improved debug code.
-
- * var.h: (enum series frq_*) Removed Fiasco extensions.
-
-Sat Feb 15 21:26:53 1997 Ben Pfaff <blp@gnu.org>
-
- * command.c: Added PROCESS IF to command table.
-
- * Lots & lots of places, removed checks for NULLs preceding calls
- to free_expression(), which itself checks.
-
- * descript.q: Removed Fiasco extensions. Removed optimizations
- for non-weighted active files. Implemented some options.
- Finished polishing output format. Comment fixes. Merged
- `descript.g'.
- (static vars n_glob_miss_list, n_glob_valid, n_glob_missing,
- max_degree, min_n) Removed.
- (macro dsc_extensions) Removed.
- (struct dsc_info_struct) Removed `min_n' member, all references
- fixed.
- (internal_cmd_descriptives) Removed calculation of min_n,
- max_degree. Only deals with one `calc' routine instead of two
- flavors.
- (precalc) Eliminated redundancy. Updated for changes to
- descriptives_proc structure.
- (calc) Moved here from `descript.g'. Rewritten to calculate
- statistics via `moments about the mean' rather than by summing,
- summing squares, summing cubes, and so on.
- (postcalc) Rewritten for new-style statistical calculation.
- (display) Removed support for displaying variables across rows.
- No longer crushes the descriptives table. Removed ancient code.
- Added display of N, by variable and listwise.
-
- * descript.g: Removed; merged into `descript.q'.
-
- * expr-evl.c: (evaluate_expression) Now returns a double. For
- numeric results, it returns the result as well as storing it in
- the passed `value' structure if non-NULL. For string results it
- just returns 0.0 and it must be passed non-NULL. Many references
- to this function were optimized by use of this change, especially
- but not exclusively in `compute.c'.
-
- * frequencies.g: Comment fix.
-
- * glob.c: (glob var process_if_expr) New global var.
-
- * postscript.c: (static var option_tab[]) Corrected entry for
- `fixed_size'.
- (postopen) Sets x->size to x->prop_size.
- (ps_text_set_font_by_name) Sets font size as well as typeface for
- PROP and FIXED fonts.
-
- * sel-if.c: (cmd_process_if) New function.
-
- * sfm-write.c: (struct sfm_fhuser_ext) New member `n_cases'.
- (sfm_write_dictionary) Sets `n_cases' to 0.
- (sfm_write_case) Increments `n_cases'.
- (sfm_close) Attempts to seek the system file back to the header
- and write the number of cases in its proper slot.
-
- * som-frnt.c: (som_insert_table) Masks off expansion options since
- only SOPT_X_NORM seems to work sensibly.
-
- * som-low.c: (get_cell_size) Fixed bug when a table cell was sized
- with a `fixed' value of 2.
-
- * sort.c: (cmd_sort_cases) Cancels PROCESS IF.
-
- * sysfile-info.c: (cmd_sysfile_info) Doesn't display more than 10
- value labels; uses SOPT_NONE instead of SOPT_X_BOTH.
-
- * var.h: (enum series dsc_*) Removed Fiasco extensions.
- (struct descriptives_proc) Removed `miss_noweight'; new members
- `X_bar', `M2', `M3', `M4', `min', `max'.
-
- * vars-atr.c: (discard_variables) Cancels PROCESS IF.
-
- * vfm.c: (close_active_file) Cancels PROCESS IF.
- (write_case) Doesn't process cases unselected by PROCESS IF.
-
-Fri Feb 14 23:32:58 1997 Ben Pfaff <blp@gnu.org>
-
- * glob.c: (glob var err) Removed.
-
- * sysfile-info.c: (cmd_sysfile_info) When adjusting table size,
- doesn't have to take into account number of value labels since
- they're in a subtable anyway. Also, doesn't display more than 10
- value labels since we can't yet break pages in subtables.
-
-Tue Feb 4 15:15:50 1997 Ben Pfaff <blp@gnu.org>
-
- * som-frnt.c: (som_change_table_size) Simple change for elegance
- that shouldn't change behavior.
- (som_set_value) Comment fix.
-
- * som-high.c: (som_submit_table) Message fix.
-
-Wed Jan 22 21:54:00 1997 Ben Pfaff <blp@gnu.org>
-
- * command.c: Added SYSFILE INFO to command table.
-
- * file-handle.q: (fh_handle_filename) New function.
-
- * get.c: (save_trns_proc) Fixed a bug in padding of output data
- with spaces.
-
- * main.c: (parse) New return value for command functions, -3.
-
- * misc.h: Comment fix.
-
- * output.h: Comment fixes.
- (macro COMPONENTS) Removed.
-
- * postscript.c: (write_text) Modified literal_chars[] so that `('
- and ')' are not written to the output in strings as literals.
-
- * sfm-read.c: (sfm_read_dictionary) New argument.
- (read_header) New argument. Sets the information structure's
- values from the header information.
- (read_variables) [__CHECKER__] Redefines isalnum()--some sort of
- bizarre Checker problem, I guess.
- (read_variables) Proper cleanup on lossage.
-
- * sfm.h: (struct sfm_read_info) New struct for use by
- sfm_read_dictionary().
-
- * som-frnt.c: (som_create_table) New argument CREATE_FLAGS,
- currently used just for tables that can be dynamically resized and
- thus have to be allocated with arena_malloc() instead of
- arena_alloc(). All references changed.
- (som_change_table_size) New function.
- (som_insert_table) Bugfix: now inserts `cell', not `c'!
-
- * som-high.c: [GLOBAL_DEBUGGING] (check_table) Moved to som-low.c.
- (som_submit_table) [GLOBAL_DEBUGGING] Doesn't call check_table()
- any more.
-
- * som-low.c: (draw_cell) Calls draw_table_cell() for SCON_TABLE
- cells.
- (draw_intersection) Now takes an argument specifying the table in
- question. All references changed.
- (draw_table_cell) New function.
- (som_get_table_size) [GLOBAL_DEBUGGING] Calls check_table().
- (som_get_table_size) Many nice new explanatory comments.
- [GLOBAL_DEBUGGING] (check_table) Moved here from som-high.c.
-
- * som.h: New enum series SOM_CREATE_* for use as create flags with
- som_create_table().
-
- * str.h: Moved a comment here from TODO.
-
- * sysfile-info.c: New file. Reference implementation.
-
-Sun Jan 19 14:22:11 1997 Ben Pfaff <blp@gnu.org>
-
- * command.c: Added RENAME VARIABLES to table of commands.
-
- * data-in.c: (dls_error) Sets `cust_field'.
- (parse_N) Message fix.
- (parse_day_count) New function.
- (to_roman) Never outputs VX as a `short form' of V.
- (parse_month) Fixed parsing of Roman numerals.
- (parse_trailer) Message fix.
- (parse_DATE, parse_ADATE, parse_EDATE, parse_SDATE, parse_JDATE,
- parse_QYR, parse_MOYR, parse_WKYR, parse_DTIME) Issue a message if
- the date is invalid.
- (parse_SDATE) Fixed swapped day, year.
- (parse_JDATE) Fixed bug for dates in 1582.
- (parse_DTIME) Allows days not between 1 and 31.
- (parse_numeric) Makes local copy of f.type for easier usage.
- FMT_DOLLAR fixed.
-
- * data-out.c: (convert_F) When outputting as scientific, properly
- sets f.type as fp->type.
- (insert_commas) Fixed operator precedence problem with setting of
- nitems. Changed strcpy to memcpy (no null terminator).
- (convert_date) Fixed FMT_JDATE: added 1900 to year.
- (convert_CCx) Essentially rewritten, but now it works.
-
- * display.c: (cmd_display) Added DISPLAY FILE LABEL (undocumented
- feature of Fiasco).
- (display_documents) Implemented.
-
- * error.c: (glob var cust_field) New var.
- (vmsg) Displays cust_field as part of message classes DE and DW.
-
- * formats.c: (debug_print) Fixed to compile under updated
- dictionary format.
-
- * get.c: (cmd_get, cmd_save_internal) Close file handle on
- failure.
-
- * misc.c: (parse_format_specifier) Formatting fix.
-
- * modify-vars.c: (struct var_modification) Renamed `n_reorder' as
- `n_rename' for clarity.
- (cmd_modify_vars) Initializes `forward' and `positional' at
- appropriate times. Frees lists of vars to rename on failure.
- Comment fix. Frees memory on success.
- (rearrange_dict) Simplified `for' loop condition.
-
- * rename-vars.c: New file (reference implementation).
-
- * set.q: (internal_cmd_set) Fixed `emu' test condition.
-
- * sfm-read.c: (read_header) File label is created only if file
- label in file is not blank.
- (read_variables) Initializes `dict' local variable.
- (read_documents) Proper behavior on lossage.
-
- * sfm-write.c: (write_header) Doesn't blank out the file label
- (why was this here to begin with?!)
-
- * temporary.c: (save_dictionary) File label is copied only if
- non-NULL. Doesn't try to xstrdup() dictionary documents.
- Adapted so as to not irritate Checker.
- (free_dictionary) Only destroys var_by_name if non-NULL.
-
- * title.c: (cmd_file_label) Doesn't skip FILE, LABEL tokens.
- (cmd_document) Doesn't skip DOCUMENT token. Adds some header
- lines to the document, indents the document. Also, it works now.
- (add_document_line) New function.
-
- * var.h: (struct dictionary) Reordering.
-
- * vars-prs.c: (parse_variables) On lossage, only local_free()'s
- bits if it was allocated to begin with.
-
-Thu Jan 16 13:08:57 1997 Ben Pfaff <blp@gnu.org>
-
- * command.c: Added MODIFY VARS to list of commands.
-
- * configure.in: Updated custom macros for autoconf 2.12. Removed
- mmap reference; fixed termcap library reference.
-
- * display.c: (display_variables) Fixed a few bugs although it's
- still not well written.
-
- * error.c: [!__CHECKER__] (chkr_disp_call_chain) New function.
- (induce_segfault) Calls chkr_disp_call_chain() instead of
- inducing an actual SIGSEGV.
-
- * expr-opt.c: (evaluate_tree) Swapped order of arguments to
- str_search() and str_rsearch(). Fixed tests for matches on
- OP_INDEX and OP_RINDEX.
-
- * filename.c: (good_getcwd) Removed as the new libc for Checker
- doesn't contain this bug, apparently.
-
- * misc.c: (str_search, str_rsearch) Changed order of arguments for
- consistency with GNU memmem.
- (blp_getdelim) Changed `len' from `int' to `size_t'.
-
- * modify-vars.c: Reference implementation.
-
- * som-frnt.c: (zero_length) New global var.
- (som_create_table) Message fix.
-
- * som.h: Added gcc attributions to som_set_text(),
- som_output_text() prototypes. blank_line() refers to
- zero_length[] instead of a literal null string to suppress gcc
- warnings.
-
- * sort.c: (do_external_sort) Fixed fencepost error on lossage.
- (allocate_cases) Decrements x_max so the last element of x[] can
- be used by the algorithm.
-
- * var.h: Changed minor details of `variable' declaration.
- (struct modify_vars_proc) New struct.
- (struct variable) Added field p.mfv.
-
- * vars-atr.c: Comment fix.
-
- * vars-prs.c: (fill_all_vars) More optimal implementation.
-
- * vfm.c: (dump_splits) Sets the last byte of temp_buf to a null
- character, which it shouldn't have to do but printf() seems to
- read the null byte even though I supply a maximum length...
-
-Fri Jan 10 20:22:08 1997 Ben Pfaff <blp@gnu.org>
-
- * command.c: Removed command alias X for QUIT.
- (parse_cmd) Fixed comment parsing.
-
- * dfm.c: (struct dfm_fhuser_ext) Fields `len', `size' are now of
- type size_t.
- (read_record) Fixed references to len, size.
- (dfm_get_record) Restructured.
-
- * file-handle.h: (struct file_handle) Field `lrecl' now of type
- size_t.
-
- * file-handle.q: (internal_cmd_file_handle) Checks for nonpositive
- record length.
-
- * modify-vars.c: New file. Not complete.
-
- * set.q: (set_ccx) Fixed operator precedence problem regarding ^
- and ==.
-
- * sfm-read.c: (bswap_flt64, read_header, write_variable) Fixed
- problems caused by int/size_t differences.
-
- * sort.c: (output_record, merge_once) Cast `size_t's to `int's in
- appropriate spots.
-
- * str.c: (strcasecmp) Fixed bug that cropped up when the strings
- being compared were of equal length.
-
-Thu Jan 2 19:08:23 1997 Ben Pfaff <blp@gnu.org>
-
- * command.c: Added DOCUMENT, DROP DOCUMENTS, FILE LABEL.
-
- * lexer.c: (get_dotted_rest_of_line) New function.
-
- * sel-if.c: (cmd_filter) Cannot choose string or scratch variables
- as filters.
-
- * sfm-read.c: (sfm_read_dictionary) Calls read_documents() to read
- type 6 records. Frees the dictionary properly.
- (read_header) Initializes the dictionary instead of letting
- read_variables() do it. Sets the dictionary file label from the
- system file.
- (read_documents) New function.
-
- * sfm-write.c: (sfm_write_dictionary) Calls write_documents() to
- write type 6 record if appropriate.
- (write_header) Writes file label from dictionary.
- (write_documents) New function.
-
- * temporary.c: (save_dictionary, restore_dictionary,
- free_dictionary) Properly handle new fields in dictionary struct.
-
- * title.c: (get_title) Returns after failure().
- (cmd_file_label, cmd_document, cmd_drop_documents) New functions
- for new commands FILE LABEL, DOCUMENT, DROP DOCUMENTS. Untested.
-
- * var.h: (struct dictionary) New fields `label', `n_documents',
- `documents'.
-
-Wed Jan 1 22:08:10 1997 Ben Pfaff <blp@gnu.org>
-
- * command.c: Added FILTER to list of commands.
-
- * frequencies.g: [WEIGHTING] Removed test for weighting!=-1 since
- it's always true.
-
- * get.c: (cmd_save_internal) Removed weighting code since it's now
- handled by sfm-write.c. Properly commented out debug code.
-
- * glob.c: (glob var weighting) Removed.
-
- * sel-if.c: Comment fixes.
- (cmd_filter) New function.
-
- * sfm-read.c: (struct sfm_fhuser_ext) New field `weight_index'.
- (sfm_read_dictionary) Sets weighting variable direct in the
- created dictionary now. (Apparently we previously didn't support
- weighting on GET?)
- (read_header) Sets weight_index field in sfm_fhuser_ext from
- header read from disk.
-
- * sfm-write.c: (sfm_write_dictionary) Comment fix.
- (write_header) Now sets the weighting in the header from the
- passed primary dictionary instead of from the sfm_write_info.
-
- * sfm.h: (struct sfm_write_info) Removed field `weight'.
-
- * som-high.c: (dump_crush_table) Fixed a couple of assertions that
- broke on boundary conditions.
-
- * var.h: (struct dictionary) New fields `weight_var',
- `weight_index', and `filter_var'.
- (glob var weighting) Removed. This is now part of struct
- dictionary. All references changed; the less mechanical changes
- are described above.
-
- * vars-atr.c: (find_dict_variable) New function.
-
- * vfm.c: (static var filter_index) New variable.
- (open_active_file) Initializes filter_index from default_dict.
- (write_case) Calls proc_func() only if the filter variable is
- nonzero; this implements FILTER behavior.
-
- * weight.c: (static var weight_varname) Removed.
- (cmd_weight) Modified default_dict instead of glob vars.
- (update_weighting) Changed the signature to modify a dictionary
- instead of glob vars. Now returns the weighting variable.
- (get_weighting_variable) Removed; its function is absorbed by
- update_weighting().
- (stop_weighting) Operates on a dictionary now.
-
-Wed Jan 1 17:00:59 1997 Ben Pfaff <blp@gnu.org>
-
- * sort.c: Removed debugging info from messages.
- (do_external_sort) Cleans up after itself by deleting the
- temporary directory on failure. (On success it is deleted by the
- input program.)
- (allocate_cases) Removed debug code. Added clean up code.
- (output_record) Removed debug code.
- (merge) Added code to close all the input files that are currently
- open. This is a likely location for bugs, because I'm not sure
- about boundary conditions. Removed an unnecesary heap_delete().
- (merge_once) Removed input file "optimization" that in fact
- screwed up the rest of the code. Message and comment fixes.
-
-Sun Dec 29 21:36:48 1996 Ben Pfaff <blp@gnu.org>
-
- * error.c: [__CHECKER__] (induce_segfault) Flushes output streams.
-
- * heap.c: (heap_delete) New argument.
-
- * sort.c: Finished implementation of external sort.
-
- * vfm.c: (read_from_disk) Returns after a disk error.
-
-Sun Dec 22 23:10:39 1996 Ben Pfaff <blp@gnu.org>
-
- * sort.c: (static var state) Removed.
- (static vars max_handles, tmp_basename, tmp_extname,
- huffman_queue) New variables.
- (do_external_sort) Moved most code to new functions.
- Creates huffman_queue.
- (allocate_file_handles, allocate_cases) New functions.
- (static vars run_no, run_length, file_index, case_count) New
- variables.
- (output_record) Returns success. Now really writes to the output
- file.
- (begin_run, end_run) New functions.
- (write_initial_runs) Returns success. Initializes run_no to -1.
- Calls begin_run(), end_run() at appropriate times. Outputs debug
- messages.
- (write_to_sort_cases) Calls begin_run(), end_run() at appropriate
- times.
- (merge) New function.
-
- * heap.c, heap.h: New files. Hopefully in near-final form.
-
-Sat Dec 21 21:51:04 1996 Ben Pfaff <blp@gnu.org>
-
- * glob.c: Added write_active_file to global vars.
-
- * sort.c: Several new miscellaneous static variables.
- (cmd_sort_cases) Big comment fix.
- (perform_case_2) Renamed `do_external_sort' and completely
- rewritten.
- (case_2_proc_func) Removed.
- (output_record, write_initial_runs, write_to_sort_cases,
- compare_record) New functions.
-
- * vfm.c: [DEBUGGING] (index_to_varname) Excised bit rot.
-
-Tue Dec 17 18:57:59 1996 Ben Pfaff <blp@gnu.org>
-
- * sort.c: (perform_case_2) Changed the method for allocation of
- lots of memory--now allocates one case at a time in hopes that
- more cases can be allocated with heavily fragmented memory.
-
- * var.h: (write_active_file) New global var.
-
- * vfm.c: (procedure, close_active_file, write_case,
- SPLIT_FILE_procfunc) Now allow beginfunc, procfunc, and endfunc
- arguments to procedure() to be NULL. All references to
- procedure() that made use of dummy functions were changed to NULL
- functions.
- (open_active_file) If write_active_file is non-NULL, the output
- device becomes DEV_PGM (a new enum).
- (close_active_file) Sets write_active_file to NULL.
- (read_from_memory) Comment fix.
- (record_case) Calls write_active_file() when the output device is
- DEV_PGM.
-
-Sun Dec 15 15:32:16 1996 Ben Pfaff <blp@gnu.org>
-
- * sort.c: New file.
-
- * autorecode.c: (cmd_autorecode) Fixed parsing of options.
- Fixed checking for duplicate varnames.
- (recode) xmalloc()'s the transformation instead of arena_alloc()'ing
- it.
- (autorecode_trns_free) Destroys hash tables for each recoding
- specification.
- (autorecode_proc_func) Compares NULL to *vpp instead of vpp.
-
- * command.c: Added SORT CASES to cmd_table.
- (null_func, null_int_func) Prototyped.
-
- * descript.g: (calc_weight, calc_noweight) Computes own case
- number now.
-
- * frequencies.q: (dump_statistics) Fixed problem with
- too-few-cases warning message.
-
- * get.c: (cmd_save_internal) Handles weighting properly.
-
- * hash.c: (hsh_dump) Output format changed.
- (force_hsh_insert) Actually works now, prototype changed.
-
- * list.q: (static var case_num) New variable.
- (cmd_list) Initializes case_num.
- (list_cases) Increments case_num.
-
- * var.h: Added definitions for SORT CASES. Comment fixes.
-
- * vfm.c: Some definitions moved to new file vfmP.h. Comment
- fixes. `active' renamed vfm_active, `rep' renamed
- vfm_replacement, all references changed.
- (procedure) The procfunc no longer receives a case number. All
- references changed.
- (write_case) Subtle reordering.
- (SPLIT_FILE_procfunc) Counts cases differently. Slightly less
- redundant.
-
- * weight.c: (get_weighting_variable) New function.
-
- * vfmP.h: New file with definitions from vfm.c.
-
-Sat Dec 14 10:35:30 1996 Ben Pfaff <blp@gnu.org>
-
- * command.c: (FILE_TYPE_okay) Commented out some tests because
- they're clumsy and not yet needed.
-
- * var.h: Most *_trns structures moved to their respective source
- files. Some were moved into a new file, do-ifP.h. Comment fixes.
- (union any_trns) Changed to a typedef for trns_header.
- (struct input_program_pgm) Removed.
-
- * vars-prs.c: (parse_variables) Only local_free()'s bits if it
- was allocated in the first place.
-
-Fri Dec 13 21:30:53 1996 Ben Pfaff <blp@gnu.org>
-
- * autorecode.c: New file.
-
- * command.c: Added AUTORECODE to command table; re-enabled SET.
-
- * data-out.c: (convert_F) Handles infinities and NaNs properly.
-
- * error.c: (vmsg) Comment fixes.
-
- * hash.c: Comment fix.
- (hashpjw_d) New function.
- (hashpjw) Reimplemented as call to more general function
- hashpjw_d().
- (internal_comparison_fn) Initializes pointers properly.
- (hsh_sort) [GLOBAL_DEBUGGING] New debugging code.
- (force_hsh_insert, force_hsh_find) New debugging wrapper
- functions.
-
- * main.c: (main) Message fix.
-
- * output.c: (outp_read_devices) Message fix.
-
- * set.q: Comment fixes.
- (custom_results) Implemented Wnd/X form of subcommand.
- (set_routing) New function.
- (internal_cmd_set) Implemented ERRORS, MESSAGES.
-
- * settings.h: (SET_ROUTE_*) New enum series.
- (set_results) Renamed set_results_file, all references changed.
- (set_messages) Removed.
- (glob vars set_errors, set_messages, set_results) New vars.
-
- * title.c: (get_title) Remembers to xstrdup() the result of
- get_rest_of_line().
-
- * var.h: (arc_item, arc_spec, autorecode_trns) New structures for
- use by AUTORECODE.
- (union any_trns) New element `arc'.
-
-Fri Dec 6 23:53:47 1996 Ben Pfaff <blp@gnu.org>
-
- * command.c: (output_line) Removed references to set_screen.
-
- * error.c: (static var terminating) New var.
- (hcf) Sets terminating to 1.
- (vmsg) If terminating is nonzero, does not attempt to call hcf().
- This prevents an infinite loop if an error occurs within hcf().
-
- * expr-evl.c: (evaluate_expression) [__CHECKER__] Replaced case
- statement circumlocution with `case 42000' trick.
- (evaluate_expression) New support for OP_STR_MIS.
-
- * expr-opt.c: (evaluate_expression) [__CHECKER__] Replaced case
- statement circumlocution with `case 42000' trick.
- (dump_node) Handles OP_STR_MIS.
-
- * expr-prs.c: (MISSING_func, SYSMIS_func) Rewrote to handle string
- variables exceptions.
- (parse_function) Message fix.
- (ops[]) Added OP_STR_MIS.
-
- * expr.h: Added OP_STR_MIS to OP_* enum. Comment fixes.
-
- * exprP.h: [__CHECKER__] Removed case statement circumlocution.
-
- * glob.c: Removed set_scrnfile glob var.
- (init_glob) set_errorbreak set to 0 by default.
-
- * groff-font.c: Changed included files.
- (groff_read_font) Initializes font_arena local var correctly.
- (default_font) New function.
-
- * output.c: Comment fixes.
- (glob var disabled_devices) New variable.
- [GLOBAL_DEBUGGING] (static var iterating_driver_list) New
- variable.
- [GLOBAL_DEBUGGING] (reentrancy) New function.
- [GLOBAL_DEBUGGING] (outp_read_devices, outp_done, find_driver,
- outp_iterate_enabled_drivers) Calls to reentrancy().
- (destroy_list) New function.
- (outp_done) Moved code to destroy_list().
- (parse_options) Parses `listing', `screen', `printer' options
- internally.
- (configure_driver) Sets new `device' member of driver.
- (outp_iterate_enabled_drivers, outp_enable_device) New functions.
-
- * output.h: Comment fixes. New enum series OUTP_DEV_*.
- (struct outp_driver_struct) New member `device'.
-
- * postscript.c: (find_encoding_file) Doesn't display its own error
- messages.
- (default_encoding) New function.
- (switch_font) Calls default_encoding() if no encoding can be
- found.
- (text) Makes up a character metric if none exists for the desired
- character.
- (load_font) Properly copies a fallback filename. Calls
- default_font() for a font if none at all are known.
-
- * set.q: Comment fixes. Removed OUTPUT subcommand.
- (custom_listing) Calls outp_enable_device() to enable/disable
- listing device.
- (turn_screen_on) Removed.
- (internal_cmd_set) Calls outp_enable_device() to enable/disable
- screen, printer devices.
-
- * settings.h: Comment fixes.
- (glob vars set_output, set_printer, set_screen, set_scrnfile)
- Removed.
-
- * som-high.c: (som_submit_table, som_eject_page) Use
- outp_iterate_enabled_drivers() instead of iterating
- outp_driver_list directly.
-
-Wed Dec 4 21:34:17 1996 Ben Pfaff <blp@gnu.org>
-
- * data-in.c: (parse_EDATE, parse_SDATE) New functions.
- (parse_string_as_format) Handles new formats.
- (parse_numeric) Now handles DOT and PCT formats.
-
- * data-out.c: (convert_E, convert_F, insert_commas) Handle DOT
- format now.
- (convert_date) Handle EDATE and SDATE formats.
- (convert_CCx) Now if there's not room for the currency characters,
- converts it as F format if it's positive instead of giving up
- quickly. Also fixed save-and-restore bug with decimal point
- characters.
- (convert_format_to_string) Handles new formats.
-
- * misc.c: (formats[]) Added new formats.
- (convert_fmt_ItoO) Supports new formats.
-
- * sfm-read.c: (parse_format_spec) Supports new formats. Better
- data checking. New argument, all references changed.
-
- * sfm-write.c: (write_format_spec) Supports new formats.
-
- * var.h: New formats FMT_DOT, FMT_PCT, FMT_EDATE, FMT_SDATE.
- Comment fixes.
-
-Sun Dec 1 17:19:00 1996 Ben Pfaff <blp@gnu.org>
-
- * cmdline.c: Comment fixes.
- (parse_command_line) Changed return type to void.
-
- * data-in.c: (parse_string_as_format) Added FMT_CCA...FMT_CCE to
- switch.
- (parse_numeric) Handles international numbers (comma as decimal
- point). Some reformatting.
-
- * data-list.c: (parse_free) Default output format is now
- set_format instead of hard-coded F8.2.
- (read_from_data_list_list) Emits error message on undefined data
- only if set_undefined is nonzero.
-
- * data-out.c: (convert_E) Changes decimal point from period to
- comma if appropriate. Restructured. Better comments.
- (convert_F) Changes decimal point from period to comma if
- appropriate.
- (insert_commas) Major bug with handling of negative values fixed.
- Also, inserts periods instead of commas if appropriate.
- (convert_CCx) New function.
- (convert_format_to_string) Added FMT_CCA...FMT_CCE to switch.
- (num_to_string) Changed `.' to set_decimal.
-
- * dfm.c: Comment fixes.
- (dfm_close) Frees ext->line even in inline_file.
- (open_inline_file) New function.
- (open_file_r) When opening the inline file: now properly
- recognizes `BEGIN DATA.' line, and calls open_inline_file() to
- finish up.
- (read_record) Calls fh_close_handle() instead of dfm_close() to
- close the inline file. Makes a copy of the line getl_buf to avoid
- interlock problems.
- (dfm_get_record) Restructured. Now checks the return value of
- open_file_r().
- (cmd_begin_data) Moved open code into open_inline_file(). Relaxed
- checking for use of inline file. No longer tries to close inline
- file.
-
- * error.c: (glob var error_already_flagged) New var.
- (vmsg) Message change. Now checks max number of errors/warnings,
- acts on it.
-
- * file-handle.q: (fh_handle_name) Now allows closing of
- inline_file.
- (fh_init_files) Reformatted.
-
- * get.c: (trim_dictionary) Checks SCOMP option instead of COMP.
-
- * getline.c: (getl_include) Fixed bug that popped up when called
- when file queue was empty.
- (read_console) Resets error_count, warning_count,
- error_already_flagged to zero.
-
- * glob.c: Many changes to update list of variables.
- (init_compat_dependent) Now this function is called whenever
- `compat' changes. It now sets set_seed only if it hasn't
- previously been referenced. It now calls
- lex_init_compat_dependent().
-
- * include.c: (cmd_include_at) Frees temporary buffer instead of
- line buffer.
- (cmd_include) Doesn't make copy of include file name.
-
- * lexer.c: Comment fixes.
- (init_lex) Moved some code into new function
- lex_init_compat_dependent().
- (lex_init_compat_dependent) New function.
- (hex_val) Simplified.
- (preprocess_line) Uses set_endcmd instead of hardcoding `.'.
-
- * main.c: Comment fixes.
- (main) Reformatted.
-
- * misc.c: (formats[]) Added FMT_CCA...FMT_CCE.
- (check_input_specifier) Disallows FMT_CCA...FMT_CCE.
- (convert_fmt_ItoO) Detects FMT_CCA...FMT_CCE.
- (setup_randomize) Sets set_seed_used.
-
- * set.q: Comment fixes.
- (custom_results) Conditionalizes on `compat'.
- (custom_log) Calls custom_journal().
- (set_ccx) New function.
- (cmd_set) Calls init_compat_dependent() when `compat' changes.
- Calls set_ccx() to handle CCA...CCE. Sets set_grouping
- when set_decimal changes. Range-checks values for MITERATE,
- MNEST. Message fixes.
-
- * settings.h: Comment fixes.
- (struct set_cust_currency) New struct.
- (set_cc[], set_grouping, set_seed_used) New global vars.
-
- * var.h: (FMT_CCA...FMT_CCE) New output formats.
- (FCAT_OUTPUT_ONLY) New FCAT_* constant.
-
-Thu Nov 28 23:14:07 1996 Ben Pfaff <blp@gnu.org>
-
- * glob.c: Revised variables to correspond to settings.h.
- (init_glob) Initializes variables from settings.h properly.
-
- * set.q: Began long-overdue major revision to correspond to new
- philosophy. Most code changed.
-
- * settings.h: Mostly changed; reorganized, reordered, large new
- comment.
-
-Thu Nov 28 19:46:10 1996 Ben Pfaff <blp@gnu.org>
-
- * get.c: (cmd_save_internal) No longer forces compression off.
-
- * sfm-read.c: (read_compressed_data) If eof is reached when
- reading a new instruction octet, only signal error if we're in the
- middle of a case.
-
- * sfm-write.c: (COMPRESSION_BIAS) New #define.
- (struct sfm_fhuser_ext) New member `end'.
- (write_header) Refers to COMPRESSION_BIAS instead of magic 100.0.
- (ensure_buf_space) New function.
- (sfm_write_case) Reimplemented in order to support compression.
- (sfm_close) Writes out the remaining contents of the compression
- buffer if any.
-
-Wed Nov 27 23:18:35 1996 Ben Pfaff <blp@gnu.org>
-
- * command.c: Defined SAVE and XSAVE commands in command table.
-
- * common.h: second_lowest_value is of type flt64, not double.
-
- * file-handle.h: Comment fix.
-
- * get.c: Comment fixes.
- (static var `trns') New.
- (save_write_case_func, save_trns_proc, save_trns_free, null_func,
- cmd_save_internal, cmd_save, cmd_xsave) New functions.
- (dict_delete_run) Clears the variables and frees them now.
- (trim_dictionary) Sets default for compression.
- On KEEP subcommand, frees deleted variables as well as clearing
- them. Finally got the sense of the test for deleting all
- variables correct.
- [DEBUGGING] (dump_dict_variables) Message fix.
-
- * glob.c: (init_glob) set_compression set to 1 by default.
-
- * list.q: Properly #includes config.h.
-
- * misc.h: New macro REM_RND_UP.
-
- * settings.h: Comment fix.
-
- * sfm-read.c: (structs sysfile_header, sysfile_format,
- sysfile_variable; inline function bswap_int32) Moved to new file
- sfmP.h.
- (corrupt_msg) [__CHECKER__] No longer induces segfault.
- (sfm_read_dictionary) Fixed bug caused by failing to initialize
- var_by_index.
- (read_machine_flt64_info) Fixed some problems caused by confusion
- between flt64 and double types.
- (read_header) Message fix.
- (read_variables) Fixed set of cases in which we byte-swap sv.print
- and sv.write. Fixed confusion of flt64 and double.
-
- * sfm.h: (struct sfm_write_info) New.
-
- * som-high.c: (som_draw_title) Properly frees `s'.
-
- * temporary.c: (save_dictionary) Comment fix.
-
- * var.h: Comment fixes. New FMT_* enum, FMT_NUMBER_OF_FORMATS.
- (struct trns_header) Formatting fix.
- (struct save_trns) New.
-
- * vars-atr.c: (discard_variables) Comment fix.
-
- * sfm-write.c: New file, baseline release.
-
- * sfmP.h: New file, baseline release.
-
-Sun Nov 24 14:53:53 1996 Ben Pfaff <blp@gnu.org>
-
- * cmdline.c: (parse_command_line) `--version' output updated.
- (glob var syntax_message[]) Added my e-mail address.
-
- * file-handle.q, lexer.c, vfm.c: Changed many instances of
- `illegal' to `invalid'.
-
- * sfm-read.c: (struct sfm_fhuser_ext) New fields used as
- uncompression buffer.
- (sfm_close) Frees decompression buffer.
- (sfm_read_dictionary) Initializes decompression buffer.
- (buffer_input, read_compressed_data) New functions.
- (sfm_read_case) Restructured; now calls read_compressed_data() to
- handle compressed system file data.
-
- * var.h: Comment fix.
-
-Mon Nov 11 15:34:09 1996 Ben Pfaff <blp@gnu.org>
-
- * dfm.c: (dfm_close) Does not set h->{ext,class} because the
- caller handles it.
-
- * get.c: New comments. New static var `get_file'.
- (cmd_get) Now fully implemented. Calls discard_variables();
- initializes fv and lv for all variables; new debug code; sets
- up the dictionary; sets up the input program.
- (read_from_get, cancel_get) New functions.
-
- * sfm-read.c: Comment fixes.
- (sfm_close) New static function.
- (sfm_read_dictionary) Properly sets up the class of the
- file_handle. No longer cares what size the data is in records of
- type 7. Also, on failure, properly cleans up the file_handle and
- free()s some stuff.
- (read_variables) No longer thinks it knows `nval' of the
- dictionary. Now sets p.get.fv, etc., instead of speculatively
- setting fv itself.
- (read_value_labels) Fixed off-by-one error in indexing of
- var_by_index[].
- (sfm_read_case) New function.
- (sfm_r_class) New static var.
-
- * var.h: (get_proc) New struct.
- (struct variable) New member p.get.
-
-Thu Nov 7 20:52:28 1996 Ben Pfaff <blp@gnu.org>
-
- * get.c: Removed GTSV_OPT_MAP because of a misinterpretation of
- the manual's meaning.
- (rename_variables) New function.
- (trim_variables) Doesn't try to parse MAP any more. Removed debug
- code. Now properly reorders the dictionary on the KEEP keyword.
-
- * sfm-read.c: (read_value_labels) Fixed some bugs regarding
- garbage collection.
-
- * vars-atr.c: (clear_variable) New argument `dictionary *'.
- (rename_variable) New function.
- (free_val_lab) Reformatted.
-
-Thu Nov 7 17:29:16 1996 Ben Pfaff <blp@gnu.org>
-
- * var.h: Reindented entire file. Comment fixes.
- (glob vars var, var_by_name, nvar, N, nval, n_splits, splits)
- Removed.
- (glob var default_dict) New.
- (struct indirect_dictionary) Removed.
-
- * Many other source files were changed to add `default_dict.'
- before all references to the dictionary of the active file.
-
- * vars-atr.c: (make_indirect_dictionary) Removed.
-
- * glob.c: Reindented all variable declarations. Updated for
- changed var.h. Comment fixes.
-
- * temporary.c: (restore_dictionary, save_dictionary) Simplified
- because now we can mainly copy dictionary structs.
-
- * vars-prs.c: (is_dict_varname, parse_dict_variable,
- parse_variables) Takes dictionary instead of indirect_dictionary
- first argument.
- (parse_variables) Instead of calling make_indirect_dictionary,
- just sets DICT to &default_dict if DICT is NULL. Of course, lots
- of `*dict.' references had to be changed to `dict->'. Removed
- debug code.
-
-Thu Nov 7 15:48:52 1996 Ben Pfaff <blp@gnu.org>
-
- * get.c: Added GTSV_OPT_* series of enums.
- (trim_dictionary, dict_delete_run) New functions.
- [DEBUGGING] (dump_dict_variables) New function.
- (cmd_get) Calls trim_dictionary() to get dictionary fully set-up.
- [DEBUGGING] Calls dump_dict_variables() to display results.
-
- * glob.c: (cmp_variable) Now a public function declared in var.h.
-
- * sfm-read.c: Turned off debug code. Comment fixes.
- (read_machine_int32_info, read_machine_flt64_info) New functions
- to parse type 7 records.
- (sfm_read_dictionary) Properly byteswaps several fields now.
- Calls read_machine_*_info() to parse type 7 subtypes 3 and 4
- records. [DEBUGGING] Dumps dictionary.
- (read_variables) Sets `index' field of variables created properly.
- Constructs avl tree of variables in dictionary. [DEBUGGING] No
- longer dumps dictionary.
- (read_value_labels) Properly byteswaps fields. [DEBUGGING] New
- debug code.
- [DEBUGGING] (dump_dictionary) No longer stubbed out.
-
- * temporary.c: (restore_dictionary) Destroys `var_by_name' glob
- var before destroying any variables just to save a little time.
-
- * var.h: (struct variable) Reordered in order to make name[] the
- first member; this makes pointers to `variable' pointers to the
- variable name, simplifying avl trees, etc.
- (struct indirect_dictionary) New struct.
-
- * vars-atr.c: (find_variable) Rewritten for efficiency.
- (make_indirect_dictionary, is_dict_varname, parse_dict_variable)
- New functions.
- (is_varname) Rewritten for efficiency.
- (parse_variables) New argument, which is a `dictionary *'. All
- references changed. This function now reads variable names from
- the dictionary passed, or from the default dictionary if NULL.
-
-Tue Nov 5 18:34:59 1996 Ben Pfaff <blp@gnu.org>
-
- * misc.h: Added new macro DIV_RND_UP to perform integer division,
- rounding up. Changed many references to ROUND_UP to use this
- instead.
-
- * sfm-read.c: Includes avl.h.
- (corrupt_msg) Induces a segfault under Checker.
- (macro assertive_bufread) New. Many references to bufread() now
- use this instead.
- (sfm_read_dictionary) Split up into several functions. Added code
- to read dictionary records following the the type 2 records. Not
- quite complete. New variable `var_by_index'.
- (read_header, read_variables) New functions extracted from
- sfm_read_dictionary().
- (read_value_labels) New function.
- (bufread) Checks ferror() if fread() doesn't return the expected
- value; if ferror() is zero it's just EOF.
- (dump_dictionary) Stubbed out.
-
- * BTW: The source code now exceeds 50000 lines!
-
-Mon Nov 4 22:03:28 1996 Ben Pfaff <blp@gnu.org>
-
- * command.c: Added GET to cmd_table[].
-
- * list.q: Removed reference to alloca headers.
- (cmd_list) Gave prototype.
-
- * sfm-read.c: Added DEBUGGING comments.
- (sfm_read_dictionary) Checks bias correctly. Sets
- dict->var_by_name to NULL. Calculates long_string_count
- correctly. realloc's dict->var[] array to minimum size.
- [DEBUGGING] Calls dump_dictionary.
- [DEBUGGING] (dump_dictionary) New function.
-
- * temporary.c: (save_dictionary) Sets var_by_name to NULL.
- (restore_dictionary) If the dictionary contains a non-NULL
- var_by_name, uses that instead of generating one.
- (free_dictionary) Destroys var_by_name.
-
- * var.h: (struct dictionary) Added field `var_by_name'.
-
- * get.c: New file, not complete.
-
-Sun Nov 3 12:24:36 1996 Ben Pfaff <blp@gnu.org>
-
- * mis-val.c: New enums MV_NOR_*. New struct num_or_range.
- (parse_num_or_range) New function.
- (parse_numeric) Reimplemented in order to support LOW THRU <n> and
- <n> THRU HIGH missing values.
-
- * output.h: [__GNUC__>1 && __OPTIMIZE__] (width, height) Made
- __attribute__((const)).
-
- * q2c.c: (get_token) Merged isdigit || isalpha into isalnum.
-
- * sfm-read.c: Finished reference implementation.
-
- * sfm.h: Includes var.h.
-
- * var.h: Comment fixes.
- (struct `variable') Reordered some fields.
-
- * vars-atr.c: (is_num_user_missing) Added support for MISSING_*
- constants added previously.
-
-Wed Oct 30 17:13:08 1996 Ben Pfaff <blp@gnu.org>
-
- * common.h: Comment fixes. Added declaration of
- `second_lowest_value' as variable or macro. Made `compat_type',
- `pgm_state_type' into anonymous enums.
-
- * display.c: Comment fix.
-
- * glob.c: [ENDIAN==UNKNOWN] Added definition for `endian' global
- var.
- [!defined SECOND_LOWEST_VALUE] Added definition for
- `second_lowest_value' global var.
- (compat, pgm_state global vars) Changed types to `int'.
- (init_glob) Initializes `second_lowest_value'.
-
- * sfm-read.c: Continued work, not complete.
-
- * var.h: Added new MISSING_* constants to handle LOWEST and
- HIGHEST.
-
-Sat Oct 26 23:06:06 1996 Ben Pfaff <blp@gnu.org>
-
- * sfm-read.c: New file, not complete.
-
- * cases.c: (vec_insert) Changed vector expansion algorithm.
- (vec_delete) Fixed bug that screwed up deletion sometimes, it was
- mucking up the RECODE transformation in particular.
- (envector) Harmless change in notation.
-
- dfm is now fairly well tested again.
- * dfm.c: (dfm_get_record) Only returns ext->ptr if ext is
- non-NULL--duh.
- (cmd_begin_data) if(ext->line) replaced by if(ext && ext->line).
-
- * recode.c: Comment fix.
-
- * sfm.h: Interface should be fairly final now, or at least for a
- day or so...
-
- * vfm.c: [DEBUGGING] (index_to_varname) New function.
- (open_active_file) [DEBUGGING] Translates ccase indices into
- variable names now to make it easier to understand what's really
- going on.
-
-Sat Oct 26 20:46:31 1996 Ben Pfaff <blp@gnu.org>
-
- * data-in.c: Comment fix.
-
- * data-list.c: Includes dfm.h.
- (do_reading) Uses new function dfm_push_cust().
-
- * data-out.c: (convert_time, convert_WKDAY, convert_MONTH) Added
- `return 1;' at end.
-
- * file-handle.h: Completely changed. Some parts split off into
- new file dfm.h. Implemented in file-handle.q.
- (enum FH_*) Removed.
- (struct fh_ext_class) New struct.
- (struct file_handle) Retained only these fields: name, norm_fn,
- fn, recform, lrecl, mode. New fields class, ext.
- (get_handle_by_name, get_handle_by_filename, parse_file_handle,
- close_handle, handle_name) Added `fh_' prefix to name, all
- references changed.
-
- * dfm.h: New file, implemented in dfm.c.
- (get_record, put_record, fwd_record, bkwd_record, set_record,
- get_cur_col) Functions moved from file-handle.h, now prefixed with
- `dfm_'.
- (dfm_push_cust) New function.
-
- * sfm.h: New file. Incomplete.
-
- * dfm.c: All functions adjusted/rewritten for new dfm/fhp
- interface. Functions reordered, comments changed. Not well
- tested, probably full of bugs.
- (struct dfm_fhuser_ext) New struct.
- (dfm_close) New function.
- (open_file_r) Pickier about finding `BEGIN DATA.' line.
- (open_file_w) User messages changed.
- (get_record) Comment fixed.
- (read_record) Increments ext->ln even for inline_file. Calls
- dfm_close() for inline_file when `END DATA.' encountered.
- (dfm_get_record) Experimental restructuring.
- (dfm_push_cust) New function.
- (cmd_begin_data) Detects whether the inline file was fully read by
- checking whether it is still open; detects whether it was read at
- all by checking whether the line number is greater than zero.
-
- * file-handle.q: All functions adjust/rewritten for new dfm/fhp
- interface. Functions reordered, comments changed. Not well
- tested, probably full of bugs.
- (init_file_handle) Removed initializers for obsolete fields, added
- new fields.
- (fh_close_handle) Much simpler, now mainly calls the class
- function.
- (fh_init_files) Renamed inline file internal filename.
-
- * file-type.c: Includes dfm.h.
- (read_from_file_type) Doesn't use dfm internal state anymore.
-
- * inpt-pgm.c, print.c: Include dfm.h.
-
- * recode.c: (internal_cmd_recode) Casts strlen() return value to
- int in comparison with other int.
-
- * som-high.c: (build_target) Fixed operator precedence problem in
- if statement (& versus ==).
-
-Sat Oct 26 10:39:25 1996 Ben Pfaff <blp@gnu.org>
-
- * dfm.c: (read_record) Can now read fixed-length records; not
- tested.
- (put_record) Can now write fixed-length records; not tested.
-
- * file-handle.h: FH_* defines changed to enums. New enum series
- FH_RF_*, FH_MD_*.
- (struct file_handle) New members recform, lrecl, mode.
-
- * file-handle.q: Parser changed.
- (internal_cmd_file_handle) Added support for new /RECFORM, /MODE,
- /LRECL subcommands. These are compatible with Windows.
- (init_file_handle) Initializes recform, mode fields.
-
- * q2c.c: (get_line) When outputting `!' comment lines, now
- increments the output file line number so that `#line' directives
- are correct.
- (make_identifier) New function that converts an arbitrary string
- into a valid C identifier.
- (dump_vars) Calls make_identifier() in two places in order to
- suppress some errors for bad identifiers.
- (make_match) Allows TRUE as synonym for YES and FALSE as synonym
- for NO. Allows numbers to be prefixed by underscores to make them
- acceptable C identifiers but still to be parsed as numbers by the
- Fiasco lexer.
-
-Thu Oct 24 20:13:42 1996 Ben Pfaff <blp@gnu.org>
-
- * command.c: Re-enabled RECODE, SAMPLE, SELECT IF.
-
- * dfm.c: Comment fixes. (get_record) Gives error if file handle
- was opened for writing.
- (open_file_w) New function.
- (read_record) Uses strncasecmp if available. Improved error
- messages, comments.
- (put_record) New function.
-
- * file-handle.h: Moved function comments into dfm.c and
- file-handle.q. Comment fixes. Removed declarations of
- tilde_expand() and normalize_filename().
- (struct file_handle) Changed `open' from boolean to enumerated
- field to allow for three states--closed, open for reading, open
- for writing--all references changed.
-
- * file-handle.q: Includes filename.h.
-
- * print.c: (CMD_* enums) Renamed PRT_* and moved into var.h; all
- references changed.
- (alloc_line) Makes allowance for line terminator characters in
- calculations.
- (print_trns_proc) Now handles OUTFILE, WRITE differences.
- (print_space_trns_proc) Handles OUTFILE differences.
-
- * recode.c, sample.c: Comment fixes.
-
- * var.h: (struct print_trns) Changed boolean field `eject' to
- bitmapped field `options'; all references changed. New enums
- PRT_* for use with this field.
-
- * exception.h, test-exception.c: Removed.
-
-Thu Oct 24 17:47:14 1996 Ben Pfaff <blp@gnu.org>
-
- * ascii.c: (delineate) Turned off debug output.
-
- * common.c: [Checker and Linux] (__assert_fail, __eprintf) Moved
- to error.c.
-
- * data-in.c: (parse_string_as_format) Sets the entire string value
- to spaces, not just the short string part of it. Is this correct
- now?
-
- * data-out.c: (convert_date) Fixed DATETIME format problems with
- decimal places, removed debug code.
-
- * dfm.c: (open_file_r) Fixed bug where an error would occur in the
- middle of parsing BEGIN DATA that would cause the lexer to read
- from a wild pointer `prog'; now calls new function
- preprocess_line() in lexer.c.
-
- * error.c: [__CHECKER__] (hcf) Calls induce_segfault() on improper
- termination.
- [Checker and Linux] (__assert_fail, _eprintf) Moved from common.c.
- Now call induce_segfault() to induce the segfault.
- (induce_segfault) New function.
-
- * expr-opt.c: Comment fix.
- (parse_sysvar) New function.
- (parse_primary) Added system variable support--calls
- parse_sysvar().
- (global var ops) Added OP_CASENUM operator.
-
- * expr.h: Comment fixes.
- (OP_* enum) added OP_CASENUM operator.
- (struct casenum_node) New struct.
- (union any_union_union) New member `cas' of type `casenum_node'.
-
- * glob.c: (global var last_vfm_invocation) New var.
- (init_glob) Initializes last_vfm_invocation.
-
- * lexer.c: (lookahead) Fixed reversed condition on if statement.
-
- * getline.c: (get_line) Split into get_line() and preprocess_line().
- (preprocess_line) New function.
-
- * var.h: Declares last_vfm_invocation.
-
- * vfm.c: (procedure) Sets last_vfm_invocation.
-
-Wed Oct 23 21:53:43 1996 Ben Pfaff <blp@gnu.org>
-
- * command.c: (parse_cmd) Fixed bad assertion related to
- lookahead().
-
- * data-in.c: (parse_month) Implemented to parse months according
- to full interpretation of standard.
- (to_roman) New function.
- (parse_wk_delimiter) Bug fix (forgot to skip `WK' in string).
- (parse_weekday) Bug fix (forgot to skip all the day name).
-
- * data-list.c: (read_from_data_list_fixed) Fixed bug that screwed
- up parsing of multirecord data items. Also fixed user message.
-
- * data-out.c: Comment fix.
- (year2, year4, convert_date, convert_time, convert_WKDAY,
- convert_MONTH) New functions to support time & date output.
- (convert_format_to_string) Calls new time & date output routines.
-
- * expr-prs.c: (nary_num_func) Found a bug, but didn't fix it yet.
-
- * lexer.c: (lookahead) Noted a previously unnoticed caveat in
- comment.
-
- * main.c: [DEBUGGING] (dump_token) Updated to handle getline.h.
-
- * misc.c: (global var formats) Fixed declarations of DATETIME,
- TIME, DTIME.
-
- * postscript.c: (text) Fixed a pair of bugs in the reallocation of
- the output_char buffer.
-
- * vars-prs.c: (parse_DATA_LIST_vars) Fixed a failure to free
- memory bug. Fixed user messages.
-
-Tue Oct 22 17:27:04 1996 Ben Pfaff <blp@gnu.org>
-
- * Removed #pragma argsused from lots of places.
-
- * data-in.c: Implemented zoned decimal and time-date formats.
- Untested. This is a huge chunk of code--maybe 1000 lines and 50
- new functions.
-
- * data-out.c: Implemented zoned decimal format.
-
- * expr.h: Moved yrmoda() declaration here from exprP.h.
-
- * misc.c: (global var formats) Minor fixes--added
- FCAT_SHIFT_DECIMAL to formats N and Z.
- (convert_fmt_ItoO) Added support for format Z.
-
- * som-frnt.c: (som_set_value) Fixed bug regarding string values.
-
-Mon Oct 21 20:39:59 1996 Ben Pfaff <blp@gnu.org>
-
- * command.c: (parse_cmd) [GLOBAL_DEBUGGING] Inserted call to
- som_check_workspace() that is activated between commands.
-
- * data-list.c: (dump_fixed_table, dump_free_table) Finished these
- for good, I hope.
-
- * list.q: (begin_row) Changed title expansion style from
- SOPT_X_VERT to SOPT_X_SHSP.
-
- * som-frnt.c: Now includes `somP.h'.
- (som_push_workspace, som_pop_workspace) New functions that, taken
- together, form a solution to the recursive table building problem
- mentioned yesterday. Surrounded every table output routine
- throughout the program with calls to these functions.
- [GLOBAL_DEBUGGING] (som_check_workspace) New function.
- (som_create_table) Checks that there's an active workspace.
- (som_destroy_all_tables, som_crush) Removed.
-
- * som-high.c: (global var som_preserve_tables) Removed, all
- references deleted.
- (som_submit_table) Checks that there's an active workspace.
- (dump_columnated_table) Doesn't columnate tables that would have
- just one row per column.
- (dump_crush_page, som_dump_crush_page) Removed debugging code.
- (som_dump_crush_page) Moved row number labels from left side of
- tables to right side.
- (som_get_table_size) Added support for SOPT_X_SHSP.
-
- * som.h: New cell expansion type SOPT_X_SHSP.
-
- * somP.h: (global vars arena_stack, n_arena_stack, m_arena_stack)
- New vars.
- (global var curtab_arena) Moved from som-frnt.c.
-
-Sun Oct 20 13:45:28 1996 Ben Pfaff <blp@gnu.org>
-
- * ascii.c: [GLOBAL_DEBUGGING] (SUPPRESS_WARNINGS) New debug option
- that causes bad location warnings to be suppressed.
- (delineate) Saves current font when calling draw_text(); fixed
- handling of NULLs when backing up. Also fixed line-wrapping bug.
-
- * command.c: Re-enabled `LEAVE', `NUMERIC', `PRINT', `PRINT EJECT',
- `PRINT FORMATS', `PRINT SPACE', `STRING', `TITLE', `WRITE'.
-
- * common.c: Added code to cause assertion failure to dump core
- when run under Checker.
-
- * data-list.c: (dump_fixed_table) Fixed some inconsistencies, but
- there are still bugs.
-
- * glob.c: (__eprintf) Removed.
-
- * list.q: Inserted som_preserve_tables kluge that prevents tables
- from being thrown away due to recursive table building through
- som_output_line being called from a transformation during the LIST
- procedure invocation. This is a general problem that must be
- solved in a better way since it applies to all procedures in
- general.
- (begin_row) Changed title options to SOM_X_VERT from SOM_X_BOTH.
- (flush_table) Removed SOM_TOPT_PRESERVE from submission options.
-
- * numeric.c: Fixed several errors in the form of msg() calls.
-
- * print.c: Updated for use of som.
- (dump_table) Reimplemented.
- (print_trns_proc) Calls som_eject_page() instead of eject_page().
- Calls som_output_text() instead of outs_line().
-
- * som-frnt.c: (som_destroy_all_tables) Sets som_preserve_tables to
- 0.
- (som_output_text) Function moved from som-low.c. Interface
- changed.
-
- * som-high.c: (som_preserve_tables) New global public variable
- declared in som.h.
- (som_submit_table) Destroys the tables only if som_preserve_tables
- is 0.
- (paginate_horizontally) Bugfix: sets som.mpw even if there's only
- one subrow per row. Now labels subrows if there's more than one
- subrow per row.
- (dump_crush_table) Added wishlist comment.
- (som_eject_page) New public function declared in som.h.
-
- * som-low.c: (som_dump_crush_page) Draws row labels if there's
- more than one subrow per row.
- (som_output_text) Moved to som-frnt.c.
-
- * som.h: (SOM_TOPT_PRESERVE) Removed.
-
- * title.c: (get_title) Changed interface.
- (cmd_title) Changed `title' to `outp_title'.
- (cmd_subtitle) Changed `subtitle' to `outp_subtitle'.
-
-Sun Oct 20 09:04:15 1996 Ben Pfaff <blp@gnu.org>
-
- * list.q: (flush_table) Conforms to new partial options in
- som_submission_form.
-
- * som-high.c: (paginate_horizontally) Changed form of subrow
- number labels.
- (build_target) Omits spacing before table if
- SOM_TOPT_PARTIAL_OMIT_TOP is selected.
- (dump_crush_page) Changed interface. Only trims bottom rule if
- SOM_TOPT_PARTIAL_OMIT_BTM is not selected.
- (dump_crush_table) Handles partial tables.
- (output_row_label) New function.
- (som_dump_crush_page) Emits subrow number labels. Draws vertical
- rule on the right edge of narrow subrows.
-
- * som.h: Changed SOM_SUB_PARTIAL_* series of submission type
- constants to a series of SOM_TOPT_PARTIAL_* submission options.
- All references updated.
-
-Fri Oct 18 19:46:49 1996 Ben Pfaff <blp@gnu.org>
-
- * misc.c: Comment fix.
-
- * som-high.c: (examine_table) Treats crushed tables separates for
- purpose of determining header size.
- (paginate_horizontally) Allots space for line numbers in crushed
- tables with lots of subrows per row. Calculates the `maximum page
- width', the width of the widest horizontal page.
- (build_target) Removed trim argument; all references changed.
- Stricter assertions. (dump_crush_page) New function.
- (dump_crush_table) Reimplemented.
-
- * som-low.c: (som_dump_page) Uses new RULE_ROW &c. constants.
- (som_dump_crush_page) Reimplemented, interface changed.
-
- * somP.h: Many many new helper macros for use with crushed tables.
- (global var som) Removed `tv', `cum_y' members; all references
- removed. New members `mpw', `digit_space'.
-
-Sun Sep 29 19:37:03 1996 Ben Pfaff <blp@gnu.org>
-
- * arena.c: (arena_alloc) [!DISCRETE_BLOCKS] Removed `size'
- variable, changed to constant 1024.
- (arena_ca_strdup) Changed `sizeof(a_string)' to
- `sizeof(c_string)'.
- (arena_ca_strdup) [!DISCRETE_BLOCKS] Changed bad cast from
- `(c_string *)' to `(char *)'; this fixed some offset problems.
-
- * filename.c: (readlink_malloc) Changed initial allocation from
- 100 bytes to 128.
- (good_getcwd) Changed from xmalloc() to local_alloc(); removed
- comment.
-
- * postscript.c: (read_fontmap) Fixed leak by changing &owner to
- &fm->owner in several places.
-
- * som-high.c: (output_table) Changed interface to rest of world.
- (examine_crush_table) Removed. Crushed tables are re-broken now,
- in preparation for rewrite.
-
- * som.h: Comment fix.
-
-Sat Sep 28 21:28:07 1996 Ben Pfaff <blp@gnu.org>
-
- * ascii.c: (ascii_init_driver) Disposes of x->file.filename and x
- itself in the cleanup stage.
-
- * descript.q: (display) At least temporarily, changed the table
- format to a crushed table.
-
- * list.q: (begin_row) At least temporarily, added horizontal lines
- between cases.
-
- * som-high.c: (examine_crush_table) Sets som.hh to the width of
- the horizontal "headers," that is, to the width of the far left
- and far right rules.
- (justify_pagination) Sets som.th to the width of the widest row
- in the crushed table. Fixed inner loop off-by-one error.
-
- * som-low.c: (som_dump_crush_page) Added code to draw horizontal
- rules.
-
- * somP.h: Comment fix.
-
-Fri Sep 27 20:08:39 1996 Ben Pfaff <blp@gnu.org>
-
- * filename.c: (open_file_ext) Now, doesn't set f->file to NULL
- before closing it; also, opens the constructed filename `s'
- instead of f->filename.
-
- * postscript.c: Moved initialization of x->loaded, x->prop,
- x->fixed, x->current, also the add_encoding() calls, into
- postopen().
- (preclose) Destroys x->combos; sets x->loaded, x->combos to NULL;
- sets x->last_font to NULL; sets x->next_combo to zero.
-
- * som-high.c: (crushed_row_height) Moved definition farther up.
- (som_submit_table) Doesn't calculate line width, font size until
- after calling open_page(), to accomodate changes to PostScript
- driver.
- (vert_headers) Removed; equivalent functionality moved to
- examine_table(), examine_crush_table().
- (justify_pagination) Replaced with different algorithm.
- (dump_crush_table) Bugfix that caused tables to fail to be clipped
- at the bottom of the page.
-
-Thu Sep 26 22:20:26 1996 Ben Pfaff <blp@gnu.org>
-
- * command.c: Added cmd_list back into cmd_table.
-
- * freq.c, frequencies.q, repeat.c, list.q, vars-atr.c, vfm.c:
- Comment fix: `#define DEBUGGING' --> `#define DEBUGGING 1'.
-
- * list.q: (flush_table) Updated to new som_submission_form format.
-
- * som-frnt.c: Comment fix.
-
- * som-high.c: Changed `#endif' to `#undef EXTERN'.
- (output_table) Calls som_get_table_size() directly; handles
- crushed tables.
- (examine_crush_table) New function; calls vert_headers().
- (examine_table) Moved some code into new function, vert_headers().
- (justify_pagination) New function.
- (dump_plain_table) Removed `static' from `cy'.
- (dump_crush_table) New function.
-
- * som-low.c: (som_dump_crush_page) New function.
-
- * som.h: Comment fixes.
- (enum SOM_TOPT_CRUSH) New.
- (SOM_SUB_PARTIAL_BEG, SOM_SUB_PARTIAL_MID, SOM_SUB_PARTIAL_END)
- Temporarily set to zero to make do with LIST procedure.
-
- * somP.h: Re-ordering.
-
-Wed Sep 25 19:36:11 1996 Ben Pfaff <blp@gnu.org>
-
- * som.c: Split into som-frnt.c, som-high.c, som-low.c.
-
- * somP.h: New file for use by som-high.c, som-low.c.
-
- * q2c.c: Added definition for VME.
- (get_line) Now dumps `!' comment lines to the output file
- verbatim.
-
- * crosstabs.q, descript.q, file-handle.q, frequencies.q, list.q,
- set.q: Changed format of `!' comment lines.
-
-Tue Sep 24 18:39:09 1996 Ben Pfaff <blp@gnu.org>
-
- * All source files: Added copyright notice.
-
- * common.c: (xmalloc, xrealloc, xstrdup) Cast size_t's to unsigned
- longs in msg() calls.
-
- * con32s.c: (xmalloc, xrealloc) Updated from common.c.
-
- * q2c.c: (xmalloc, xrealloc, xstrdup) Updated from common.c.
-
-Sat Sep 21 23:16:31 1996 Ben Pfaff <blp@gnu.org>
-
- * output.c: (outp_read_devices) Changed criteria for
- distinguishing different types of lines.
-
-Fri Sep 20 22:52:28 1996 Ben Pfaff <blp@gnu.org>
-
- * cmdline.c: Changed syntax message.
-
- * filename.c: (good_getcwd) Bug fix (?).
- (normalize_filename) [__BORLANDC__] Uses _fullpath() library
- function.
- (search_path) Appends DIR_SEPARATOR to directory name only if it
- does not already end with one.
-
- * glob.c: Checks STAT_PAGER envvar before PAGER.
-
- * output.c: Checks environment variables instead of just local
- macros.
-
-Tue Sep 10 21:39:00 1996 Ben Pfaff <blp@gnu.org>
-
- * arena.c: (arena_destroy) Swatted a subtle bug that cropped up
- when the pointer passed to the function was within the arena
- itself, so that it couldn't properly be set to NULL _after the
- arena was freed_.
-
- * command.c: Re-enabled DISPLAY.
-
- * display.c: Rewritten to handle tables. Untested.
-
- * filename.c: (search_path) Fixed memory leak.
-
- * frequencies.q: (cmd_frequencies) Frees v_variables.
- (postcalc) Calls cleanup_freq_tab() after displaying statistics.
- (cleanup_freq_tab) New function to garbage collect.
- (dump_full) Elegantized.
-
- * main.c: New comment.
-
- * output.h: New tag for tagged quotes: TAG_NEWLINE.
-
- * postscript.c: Comment fix.
- (release_fontmap, free_font_entry) New functions.
- (ps_init_driver) Sets free_font_entry() as the freefunc for
- hashtable `loaded'. Calls release_fontmap() when destroying a
- driver; also frees the output filename; also frees the
- ps_driver_ext block.
- (free_ps_encoding) Frees the filename as well as the encoding
- block.
- (output_encodings) Frees the line buffer and pops the msg-filename
- stack.
- (read_fontmap) Frees the fontmap filename and the line buffer.
- (postopen, preclose) Misc. garbage collection fixes.
- (ps_open_page) Destroys the `combos' hash table; sets `last_font'
- to NULL; this fixes some output problems.
- (text) Handles TAG_NEWLINE. Untested.
-
- * som.c: (cell_byte_size) Merged SCON_VALUE and SCON_TEXT cases.
- (som_set_string) Removed. All references changed to
- `som_set_text'.
- (som_set_text) Rewritten. New interface. More general.
-
- * som.h: Minor format changes.
- (struct som_value_cell) Removed; all references changed to
- `som_text_cell'.
- (enums SOT_*) Changed.
-
-Mon Sep 9 21:43:13 1996 Ben Pfaff <blp@gnu.org>
-
- * command.c: Re-enabled SPLIT FILE.
-
- * postscript.c: Comment fix.
-
- * som.h: Added `SOT_NONE'.
-
- * split-file.h: (cmd_split_file) Removed superfluous parenthesis.
-
- * vfm.c: (dump_splits) Reimplemented.
-
-Sat Sep 7 22:35:12 1996 Ben Pfaff <blp@gnu.org>
-
- * Compiled the project under gcc 2.7.2, which gave some new
- warnings. This led to many additions of casts from unsigned to
- int sprinkled throughout the code.
-
- * arena.c: Many uses of `unsigned' changed to `size_t'.
-
- * command.c: Added END FILE, END REPEAT to command table.
- (var cmd_end_repeat) Renamed cmd_end_repeat_p.
- (find_command, FILE_TYPE_okay) Not commented out anymore.
- (parse_cmd) Calls FILE_TYPE_okay again.
- (output_line) Added calls to som_output_text() to put the line
- in the output files.
-
- * common.c: (macro VME) Format changes.
- (xstrdup) Asserts that its argument is not NULL.
-
- * data-list.c: Implemented dump_fixed_table().
-
- * inpt-pgm.c: Formatting changes. Comment changes.
- (end_case_proc) Renamed end_case_trns_proc.
- (cmd_end_file, end_file_trns_proc) New functions.
-
- * misc.c: Many uses of `int' and `unsigned' changed to `size_t'.
-
- * misc.h: (local_strdup) New macro corresponding to strdup() but
- allocating its data through local_alloc() if possible--that is, if
- GNU C is in use.
-
- * postscript.c: Comment changes.
- (quote_ps_name, quote_ps_string, output_encodings) New functions.
- (output_line, add_string) New macros supporting
- output_encodings().
- (postopen) Fixed contents of ${fixed-font} and ${prop-font}
- substitution vars. Calls output_encodings() when a line
- consisting of `!encodings' is encountered.
- (preclose) Some code moved into quote_ps_string().
- (dump_line) Changed into macro supporting dump_fancy_line().
- (switch_font) Now outputs DSC "%%IncludeResource: font (...)"
- command when appropriate.
- (write_text) Fixed `literal_char' array (I think it's fixed, at
- least.)
- (text) Fixed bug when width was zero. Now exits immediately on
- zero height_left. Now, when executing `goto restart;', checks
- that cp<end, so that we don't read beyond end-of-string. Also,
- outputs the correct code to the output file by outputting the code
- from the metric instead of the internal metric index.
-
- * repeat.c: (cmd_end_repeat) New function.
-
- * som.c: (var som) `headers' renamed `options' and semantics
- changed. All references changed.
- (draw_title) `if(px!=-1 || px!=-1)' --> `if(px!=-1 || py!=-1)'.
- (build_target) Only inserts spacing if SOM_TOPT_SPACING not
- selected.
- (som_text_table) Removed.
- (som_output_text) New function.
-
- * som.h: (struct som_submission_form) Removed `header', `reuse',
- replaced with bitmapped field `options'.
- (SOM_TOPT_*) New enum set for som_submission_form.options.
- (SOT_*) New enum set for som_output_text().
-
- * temporary.c: (copy_variable) When copying the var label, only
- calls xstrdup() if it's non-NULL.
-
- * var.h: (enum type `vartype') Removed; all references changed to
- `int'.
-
- * vars-atr.c: (init_variable) Changed local var `nbytes' from
- `int' to `size_t'.
-
-Thu Sep 5 22:05:56 1996 Ben Pfaff <blp@gnu.org>
-
- * font.h: Comment changes.
-
- * groff-font.c: (groff_read_font) Initializes `name' field to
- NULL. Handles `encoding' field.
-
- * hash.c: (hsh_dump) [GLOBAL_DEBUGGING] Output formatting changes.
-
- * postscript.c: (struct font_entry) Removed `position' field.
- (struct ps_font_combo) New struct.
- (struct ps_driver_ext) Removed field `next_position'. New fields
- `combos', `next_combo'. `last_font' field changed from
- `font_entry *' to `ps_font_combo *'.
- (ps_init_driver) Reformatted; handles new fields. When
- OPO_AUTO_ENCODE is set, adds the two default fonts' encodings to
- the encoding list.
- (get_encoding, find_encoding_file) New functions.
- (add_encoding) Some code moved out into find_encoding_file().
- (postopen) Changed value for ${title}.
- (preclose) Sets `loaded' field to NULL after destroying the hash
- table.
- (ps_open_page) Added comment. Inits the `combos' and `next_combo'
- fields.
- (ps_text_set_font_by_position) Figures out the current family if
- not known.
- (compare_ps_combo, hash_ps_combo, free_ps_combo) New functions.
- (switch_font) Implemented.
- (write_text) Calls switch_font() more often. Format changes.
- #undefs its macros after they're no longer useful.
- (text) Changed `continue' at one point to a jump to the top of the
- loop because we don't want `separate' reset to 0 at that point.
- (load_font) No longer sets `position' in the font_entry created.
-
-Wed Sep 4 21:45:35 1996 Ben Pfaff <blp@gnu.org>
-
- * font.h: (struct font_desc) New member `encoding', which is not
- properly handled yet.
-
- * glob.c: (init_glob) Some new i18n code, which is probably
- screwed up.
-
- * output.c: (outp_read_devices, outp_get_paper_size) Changed
- `size' local from `int' to `size_t'.
-
- * postscript.c: New driver configuration parameter `auto-encode'.
- New enums OPO_AUTO_ENCODE, ODA_COUNT.
- (struct font_entry) New member `position'.
- (struct ps_driver_ext) Reordered. New hash table member
- `encodings'; new members `next_position', `next_encoding',
- `last_font'. Members `current', `prop', `fixed' changed from type
- `font_desc *' to `font_entry *'; all references changed.
- (struct ps_encoding) New struct.
- (read_ps_encodings, compare_ps_encoding, hash_ps_encoding,
- free_ps_encoding, add_encoding) New functions.
- (ps_init_driver) Added OPO_AUTO_ENCODE to default
- x->output_options. Initializes new members of ps_driver_ext.
- Changed default value for prologue_fn, encoding_fn. Calls
- read_ps_encodings after loading default fonts.
- (option_tab[], ps_option) Handle new configuration parameter.
- (switch_font) New function.
- (struct output_char) `font' member changed from `font_desc *' to
- `font_entry *'. New member `separate'.
- (read_fontmap) Changed `size' from `int' to `size_t'.
- (output_line, put_number) New macros for write_text().
- (write_text) Optimizes text output by consolidating multiple
- calls to PostScript `show' operator.
- (text) Keeps track of when text arguments can't be consolidated by
- write_text(), and marks those spots in the output stream.
- (load_font) Sets `position' of the allocated font_entry to -1, cuz
- the font hasn't been switched to by switch_font(), which is where
- the position is important--the PostScript is what cares about the
- position.
-
-Sat Aug 31 23:52:38 1996 Ben Pfaff <blp@gnu.org>
-
- * hash.c: (hsh_destroy) Ignores NULL argument. Doesn't try to
- call a NULL free_func.
- (hsh_rehash) Elegantized.
- (hsh_probe) Fix bug that manifested when the table was expanded
- and thus had to change location in memory. Good thing
- too--otherwise could have been much more subtle.
- (hsh_find) [GLOBAL_DEBUGGING] Not stubbed out anymore.
- (hsh_foreach) New function for hash table iteration.
-
- * hash.h: (struct hsh_iterator) New.
-
- * lexer.c: (parse_tagged_quote) Font and family name strings in
- tags are now null-terminated.
-
- * output.c: (outp_evaluate_dimension) Fixed over-aggressive unit
- parsing.
- (internal_get_paper_size, outp_get_paper_size) Fixed; now work as
- documented. (Never before tested?)
-
- * output.h: Comment changes.
-
- * postscript.c: New driver options `optimize-text-size',
- `optimize-line-size', `max-fonts-simult'. New enum set for
- specing cached line types. Comment fixes.
- (struct line_form) New struct.
- (struct ps_driver_struct) New members `text_opt', `line_opt',
- `max_fonts', `lines'.
- (ps_init_driver) Initializes new members of ps_driver_struct.
- (user option type enum set) New member `nonneg_int_arg'.
- (static var option_tab[]) Supports new options.
- (ps_option) Handles new options.
- (find_ps_file) Made static. No longer calls hsh_dump().
- (ps_get_var) Made static.
- (preclose) Dumps out proper DSC trailer.
- (ps_open_page) Elegantized.
- (ps_close_page) Calls dump_lines() if appropriate.
- (ps_line_horz, ps_line_vert, ps_line_intersection) Reduced to
- wrappers around line().
- (int_2_compare, compare_line, dump_line, dump_fancy_line,
- dump_lines, hash_line, free_line, line) New functions for support
- of line caching.
- (write_text, text) Made static.
- (text) Added to font support, not finished.
-
-Thu Aug 29 21:36:41 1996 Ben Pfaff <blp@gnu.org>
-
- * font.h: (struct font_desc) New members ascent, descent.
-
- * groff-font.c: (groff_read_font) Calculates font ascent and
- descent from the ascent and descent of the `d' and `p' characters,
- respectively, as per a suggestion on comp.fonts.
-
- * postscript.c: (ps_open_page, ps_close_page, ps_line_horz,
- ps_line_vert, ps_line_intersection) Rewritten to deal with changed
- prologue.
- (write_text) Handles text right-justification and centering (not
- full justification). Still very inefficient. (One output line
- per character?!)
- (struct output_char) Added fields for font and font size.
- (text) Many bugfixes.
-
-Sat Aug 24 23:26:00 1996 Ben Pfaff <blp@gnu.org>
-
- * cmdline.c: (usage) Calls outp_list_classes().
-
- * font.h: Comment fix.
-
- * groff-font.c: New exported global var `space_index'.
- (groff_init) New function to initialize `space_index'.
- (hash_kern) Casts result to unsigned.
- (font_name_to_index) Renamed font_char_name_to_index. All
- references changed. Also, now returns the value of `space_index'
- when passed an ASCII space character as an argument. Fixed
- handling of nulls.
- (font_get_kern_adjust) Changed i from `int' to `unsigned'.
- Handles passed NULL pointers properly.
-
- * lexer.c: (parse_tagged_quote) Comment fix. Better range
- checking.
-
- * output.c: (outp_list_drivers) Removed. Removed all references.
-
- * output.h: Comment fixes.
-
- * postscript.c: (ps_open_global) Calls groff_init().
- (output_char) New structure.
- (write_text) New function.
- (text) No longer stubbed out! Now the output is correct--with a
- few exceptions, one of them being that the page has to be held
- upside down into a mirror.
-
-Sun Aug 11 21:31:22 1996 Ben Pfaff <blp@gnu.org>
-
- * font.h: Comment fix.
-
- * font.c: (name_to_index) Renamed font_name_to_index, made extern.
- All callers changed.
- (number_to_index) Renamed font_number_to_index, made extern. All
- callers changed.
- (font_get_kern_adjust, font_get_char_metrics) New functions.
-
- * output.h: New constant OUTP_T_INTERNAL_DRAW.
-
- * postscript.c: Changed default line width back to 1/2 point.
- (ps_line_horz, ps_line_vert, ps_line_intersection) Now lines are
- in the center of the space allotted for them, not just a fixed
- offset from the edge of the space; this fixes some bugs.
- (ps_line_intersection) Now supports all command line styles.
- (ps_text_get_size) Bug fix in computation of em width.
- (text) New function, the meat behind ps_text_metrics and
- ps_text_draw. Not complete.
- (ps_text_metrics, ps_text_draw) Removed the stub taken from
- ascii.c; call text().
-
-Sat Aug 10 23:28:17 1996 Ben Pfaff <blp@gnu.org>
-
- * arena.c: (arena_free) Assert that the argument is non-NULL.
-
- * groff-font.c: (add_kern) Calls arena_free() for old_kern if and
- only if old_kern is non-NULL.
-
- * postscript.c: (ps_init_driver) Changed default line width to 1
- point.
- (postopen) New prologue variables.
- (ps_line_horz, ps_line_vert, ps_line_intersection) Implements some
- more of the common line styles properly, but not all.
- (ps_text_metrics) Fixed problem with this stubbed out version that
- kept it from taking font sizes into account.
-
-Thu Aug 8 22:31:11 1996 Ben Pfaff <blp@gnu.org>
-
- * arena.c: (arena_malloc) Bug fix.
- (arena_dump) [GLOBAL_DEBUGGING] New function.
-
- * ascii.c: Comment fix.
- (count_fancy_chars, delineate) Now static functions.
-
- * filename.c: (interp_vars) Bug fixes.
-
- * font.h: Comment fixes.
-
- * glob.c: (init_glob) Sets set_viewwidth, set_viewlength at
- beginning in case we have an error message to display before
- initializing the display.
-
- * groff-font.c: Comment fix. Changed rehash threshold from 2/3
- full to 1/2 full.
- (groff_read_font) Bug fixes.
- (name_to_index) Increments hash.used. Sets `name' field of hash
- entry properly.
- (add_kern) Sets kern_max_used after rehashing. Other bug fixes.
-
- * hash.c: Return type changed.
-
- * postscript.c: Continued development. Now marks lines on the
- paper, but very buggy.
-
-Sat Aug 3 20:50:35 1996 Ben Pfaff <blp@gnu.org>
-
- * Changed comments in many source files from `/* xxx /* yyy */' to
- `/* xxx */ /* yyy */' for cleanliness.
-
- * arena.c: (arena_sd_strdup) New function.
-
- * ascii.c: (struct ascii_driver_ext) New member `file'.
- (ascii_init_driver) Fills out member `file' for initing; uses
- close_file_ext for closing drivers.
- (ascii_option) Changed %.*s back to %s because the a_string's are
- always null-terminated.
- (postopen, preclose) New functions.
- (ascii_open_page) Uses new style of open_file_ext.
- (ascii_option, commit_line_buf, output_lines) Use ext->file.file
- instead of this->output.
- (__assert_fail) Removed.
-
- * cmdline.c: Changed syntax_message[].
-
- * error.c: #include's <readline/history.h> only if the history
- library is available, not if just the readline library is
- available.
-
- * filename.c: (expand_line) Removed alloca() support.
- (interp_vars) No longer tilde-expands argument. Limit on output
- length removed.
- (tilde_expand) Now treats argument as path rather than filename.
- [!unix] Now is a no-op function.
- (search_path) Better verbose message formatting.
- (open_file, close_file) Comment fixes.
- (close_file) [!unix] Doesn't bother with pipes.
- (open_file_ext) Completely rewritten, interface revamped.
- (close_file_ext) New function.
-
- * font.h: Comment changes.
-
- * frequencies.q: Removed AIX alloca support since it doesn't use
- alloca.
-
- * hash.c: Comment changes & additions.
- (hsh_create) Initializes entire table instead of first M entries.
- (hsh_probe) Stupid bug fixed. Now it works.
- (hsh_dump) [GLOBAL_DEBUGGING] New function.
-
- * main.c: (parse) Detects EOF properly in token-eating loop.
- Should the STOP token have its value changed to 0?
-
- * misc.c: (blp_getdelim) [HAVE_GETDELIM] Now it's a macro.
- (blp_getline) Now it's a macro.
-
- * output.h: (struct outp_driver) Removed members output, filename.
-
- * output.c: (outp_init) [!NO_POSTSCRIPT] Installs PostScript
- drivers in driver table.
- (outp_read_devices) Frees buf. Warns if there are no active
- output drivers.
- (outp_configure_clear) Sets outp_configure_vec to NULL after
- deleting its elements.
- (configure_driver, destroy_driver) Removed references to output,
- filename members of outp_driver.
- (outp_evaluate_dimension, internal_get_paper_size,
- outp_get_paper_size) New functions.
-
- * postscript.c: Continued development. Now links but doesn't make
- any marks on the page. Lotsa bugs I suppose.
-
- * str.c: (strcasecmp) [!HAVE_STRCASECMP] New function.
-
- * str.h: Comment changes.
-
-Sat Jul 27 22:32:38 1996 Ben Pfaff <blp@gnu.org>
-
- * Removed dependencies on non-nested comments in several files.
- Also removed references to (unix || __unix__) in #if's since
- prefh.orig makes those two equivalent.
-
- * ascii.c: (ascii_open_global) Creates ascii_arena.
- (ascii_close_global) Destroys ascii_arena.
- (ascii_init_driver) Doesn't create ascii_arena.
- (ascii_copy_driver) Removed.
- (ascii_option) Possible bugfix regarding %s vs. %.*s with a_string's.
- (outp_class ascii_class) Removed ascii_copy_driver reference.
-
- * frequencies.q: Now can display all statistics except median.
- Still not finished.
-
- * output.c: Handles outp_class.ref_count so output class
- destructors are called properly.
- (add_class) Sets ref_count to 0.
- (configure_driver) Initializes class if ref_count++ is 0.
- (destroy_driver) Destructs class if --ref_count is 0. Frees the
- class output file name.
-
- * output.h: (struct outp_class) Removed copy_driver, inited.
- Added ref_count.
-
- * postscript.c: Completely replaced but not finished.
-
-Tue Jul 23 21:48:36 1996 Ben Pfaff <blp@gnu.org>
-
- * approx.h: #includes <float.h>.
-
- * arena.h, arena.c: Many functions changed to take an arena **
- instead of an arena *, for consistency. All callers changed.
- (arena_alloc) Now creates a new arena if passed *A that is NULL.
- (arena_destroy) Sets *A to NULL.
-
- * ascii.c: (delineate) Implements OUTP_T_VERT correctly. Removed
- assertion that `width' be positive.
-
- * command.c: Removed #if's from cmd_table.
- (walk_cmdtable_func) [0] New function (debug code).
- (init_cmd_parser) [0] Dumps out cmd_table (debug code).
- (parse_cmd) Doesn't return failure for unimplemented commands.
-
- * common.h: (SYSMIS) Changed from DBL_MAX to -DBL_MAX.
- (SYSCODE) New constant macro.
-
- * descript.q: Checks for positive n_variables before performing
- analysis.
-
- * file-handle.q: (get_handle_by_filename) Bug fix: passes &f to
- avl_find instead of &fp as arg 2.
-
- * frequencies.g, frequencies.q: Continued updating; now compiles &
- works again, but not complete.
-
- * main.c: Changes to user messages.
-
- * misc.c: (reverse) [0] New function.
-
- * settings.h: Comment removed. #includes "common.h".
-
- * som.c: (som_set_null) New function.
- (som_set_value, som_set_string, som_set_text) More detailing
- assertions.
- (som_set_float) Implemented function.
- (dump_columnated_table) Bug fix regarding page breaks.
- (draw_cell) Bug fix regarding text that spilled out of a cell.
- (draw_intersection, draw_horz_rule, draw_vert_rule) No longer draw
- null lines.
- (get_cell_size) Support SCON_EMPTY cells.
- (get_table_size) When calculating rules' widths and heights, mask
- out SLIN_SPACING bit. Added SOPT_X_HLTL support.
-
- * som.h: (som_any_cell) New option SOPT_X_HTLT. Removed
- SOPT_X_SHADE.
- (struct som_submission_form) New member `header'; all users
- changed.
-
- * val-labs.c: (get_label) User messages changed.
-
- * var.h: Changed FREQUENCIES structures.
-
- * vars-atr.c: (is_num_user_missing, is_str_user_missing) Made
- inline.
-
-Fri Jul 19 19:11:13 1996 Ben Pfaff <blp@gnu.org>
-
- * approx.h: Definition of EPSILON now depends on system's
- DBL_EPSILON. Removed GNU C specific code.
- (cmpapx) Renamed approx_compare.
-
- * frequencies.g, frequencies.q: Continued updating; still doesn't
- compile.
-
- * groff-font.c: (name_to_index) Fix bug that kept it from
- compiling.
-
- * hash.c, hash.h: Completed work.
-
- * var.h: Changes to freq_tab, frequencies_proc.
-
-Wed Jul 17 21:23:36 1996 Ben Pfaff <blp@gnu.org>
-
- New hashing code.
- * hash.c, hash.h: New files. Not completed.
- * Makefile.am: Added hash.c to source file list.
- * font.h: (struct font_desc) New member kern_size_p.
- * groff-font.c: Uses hash.h.
- (hashpjw) Moved to hash.c.
- (next_prime_power) Rewrote, renamed hsh_next_prime, moved to
- hash.c.
- (static var hash) New member size_p.
- * var.h: Includes hash.h.
- (struct freq_tab) Changed AVL_TREE to hash_tab.
-
- * vars-prs.c: Comment, formatting fixes.
-
- * frequencies.g, frequencies.q: Continued updating. Not yet
- working.
-
- * formats.c: Bug fix.
-
-Tue Jul 16 22:10:04 1996 Ben Pfaff <blp@gnu.org>
-
- Increasing parallelism between DESCRIPTIVES and FREQUENCIES.
- * descript.g: Comment fixes.
- * descript.q: Comment fixes. Moved some declarations into var.h.
- Made dsc_info a static table. Updated FIXMEs.
- (internal_cmd_descriptives) Beautified.
-
- * frequencies.q: Started updating into working order.
- * frequencies.g: New file analogous to descript.g.
- * var.h: Comment fixes. Added structures for FREQUENCIES.
-
- * som.c: Removed vestiges of crushing and partial table support.
-
-Sun Jul 14 15:45:31 1996 Ben Pfaff <blp@gnu.org>
-
- * Many more changes to som.c especially, but these will not be
- documented as I have resolved to remove them. This patchlevel is
- being released solely so that I can fall back to it if I decide
- that removing the changes is not a good idea.
-
-Sat Jul 13 09:58:44 1996 Ben Pfaff <blp@gnu.org>
-
- * som.c: (global var som) New member `cum_y'.
- (build_target) Properly handles titles for partial tables.
- (dump_partial_beg, dump_partial_mid, dump_partial_end)
- Merged into single new function dump_partial(). Fixed problem
- with titles on partial tables.
- (dump_table) Calls dump_partial() for all parts of partial tables.
- (dump_page) Criteria for drawing title changed.
-
-Fri Jul 12 22:03:36 1996 Ben Pfaff <blp@gnu.org>
-
- * command.c: (cmd_table) Added LIST, WEIGHT.
-
- * command.c: (cmd_remark) No longer frees `s' since it's not
- dynamically allocated.
-
- * data-out.c: (convert_f) Now correctly handles the case where
- abs(v->f)<1 but v->f rounds to a value of 1.00 given the specified
- number of decimals.
- (som_destroy_all_tables) Removed argument. All callers changed.
- (som_vline, som_hline) Argument validity checking corrected.
- (som_set_value) Implemented half-heartedly.
- (replicate_table) Copies tables piece-by-piece when using Checker.
-
- * som.h: New line style SLIN_1THIN, currently equivalent to
- SLIN_0. New enum set SOM_SUB_*.
- (struct som_submission_form) Removed `seq_no'. Added `type'.
-
- * list.q: Newly working file; uses partial tables.
-
- * som.c: (som_reduce_table) Renamed som_set_table_height().
- (som_crush) Removed argument `group'.
- (global var som) Removed `nt', `seq_no'. Added `type'.
- (som_submit_table) Arguments changed.
- (output_table) Removed partial table code.
- (build_target) New arg; partial table support added. All callers
- changed.
- (dump_plain_table) Removed partial table code.
- (dump_partial_beg, dump_partial_mid, dump_partial_end) New functions.
- (dump_table) Supports partial tables.
- (dump_page) New argument to allow not drawing top and/or bottom
- headers. All callers changed. Supports partial tables.
-
-Sat Jul 6 22:22:25 1996 Ben Pfaff <blp@gnu.org>
-
- * data-out.c: Changed `#include <approx.h>' to `#include
- "approx.h".
- (convert_F) Comment fix. Now won't print `-.000', etc.
-
- * descript.q: Now Z-scores work, although there appears to
- be a bug (which might actually be in data-out.c:convert_F()).
- (descriptives_trns_proc, descriptives_trns_free) New functions.
- (run_z_pass) Implemented.
-
- * var.h: Comment fixes.
- (dsc_z_score, descriptives_trns) New structs.
- (descriptives_trns) Added to any_trns as `dsc'.
-
- * error.c, error.h: New error class, IS (Installation Script
- error), used in those instances where the error is in the
- installation, but there is a script file or installation file that
- can be usefully referred to.
-
- * output.c: Change many IE classes to IS classes.
-
- * cases.c, command.c, common.c, crosstabs.q, expr-evl.c,
- frequencies.q, list.q, vars-prs.c, vfm.c: Removed reference to
- HAVE_MALLOC_H because Borland C++ alloca() is broken, so why
- include the corresponding header?
-
- * glob.c: (init_glob) Don't malloc term_buffer under Checker.
- Don't bail out if termcap can't be read.
-
- * som.c: (som_destroy_table) Removed.
- (som_reduce_table, som_destroy_all_tables) New functions.
- (som_crush) New function, not implemented.
-
- * som.h: New table option STAB_CRUSH. Comment fix. New struct
- som_submission_form. Function prototypes revised.
-
- Outputting huge tables (1000s of rows) a few rows at a time
- is supported, though untested. May even break everything.
- Actually, the code doesn't even compile right now.
- * som.c: (struct som) New fields htv, nt, seq_no.
- (som_submit_table) Multiple arguments changed to a single
- pointer to struct submission_form. Only increments subtable_num
- if seq_no is zero. Only destroys table if it's not going to
- be reused.
- (replicate_table) New function.
- (output_table) Comment fix.
- (examine_table) Changed inline code to code calling
- replicate_table(). Calculates htv. Supports partial tables.
- (draw_title) Removed comment.
- (build_target) Only allows for title on first part of partial
- tables.
- (dump_plain_table) Only resets table chunk number on first part
- of partial tables; FIXME: doesn't work quite right. Supports
- partial tables.
- (dump_page) Titles only on first part of partial tables.
-
-Fri Jul 5 20:16:19 1996 Ben Pfaff <blp@gnu.org>
-
- * Thanks to an unreliable IDE hard drive, I have spent the last
- day reconstructing my Debian GNU/Linux installation and redoing
- the previous day's changes--somehow I managed to save every file
- except for output.c and output.h. So the following changes could
- really be considered independent of the output.c, output.h changes
- from Jul 4.
-
- * output.h, output.c: Moved the outp_configure_vec global var,
- outp_names struct, and enum set OUTP_S_* from output.h to output.c.
- outp_configure_vec is now static.
-
-Thu Jul 4 20:20:24 1996 Ben Pfaff <blp@gnu.org>
-
- * The entire philosophy behind configuration of the output drivers
- changed. Now there is a termcap-type configuration where drivers
- to be read are determined beforehand, rather than parsing the
- entire output init file and storing it in memory & deciding what
- to actually use later. Faster & more memory-efficient at the same
- time, cool.
-
- * output.c: Comment fix. Removed outp_init_drivers global var.
- Removed all references to synonyms. New structure outp_defn. New
- global vars outp_macros, outp_configure_vec.
- (search_name, delete_name, add_name, check_configure_vec,
- expand_name, find_defn_value) New static functions.
- (outp_configure_clear, outp_configure_add, outp_configure_macro,
- outp_read_devices) New extern functions.
- (outp_init) Much functionality moved into outp_read_devices.
- (outp_read_devices) Format of output init file changed; name of
- file is `devices' rather than `output' to avoid Makefile
- conflicts.
- (outp_clear) Renamed outp_done.
- (outp_list_classes) Bug fix, cleaned up.
- (outp_list_drivers) Not implemented anymore.
- (outp_configure_driver) Now a static function; simplified; now
- interpolates macros; supports new structure.
- (outp_enable_driver, match_synonym) Removed; all references
- removed.
- (find_driver) First argument removed.
-
- * output.h: Global var outp_init_drivers removed; new structure
- outp_names; new enum set OUTP_S_*; new global var
- outp_configure_vec; function prototypes for output.c exports
- updated.
-
- * main.c: (main) Calls outp_read_devices() after parsing the
- command line.
-
- * cmdline.c: (parse_command_line) New option -v --verbose;
- --version changed to -V. --device option changed syntax to just
- take a single device name. Accepts key=value declaration of
- output init file macros. Syntax message updated.
-
- * filename.c: (expand_line) New function.
- (interp_environ_vars) Renamed interp_vars; no longer uses
- fixed-size buffer.
- (blp_getenv) Allows $ARCH and $VER pseudo-environment-vars to be
- overridden by real environment vars.
- (search_path) Uses verbose_msg() instead of #ifdef'd printf().
- * filename.h: interp_environ_vars() renamed interp_vars().
-
- * error.c, error.h: Added extern variable `verbosity', message
- class MM.
-
- * error.c: (vmsg) Support message class MM.
- (verbose_msg) New function.
-
- * descript.q: (generate_z_varname) Bug fix in generation of
- Z-score varnames.
- (dump_z_table) Bug fix in column headers.
-
- * ascii.c: (ascii_init_driver) Changed minimum number of lines per
- page from 29 to 15. Don't set a default for ops[OPS_INIT,
- OPS_DONE]. Writes the uninit string when the driver is closed.
- (ascii_open_page) Write the init string before the first page.
- (output_shorts) Form of main loop changed from `while' to `for'.
- Bug fix with overstrikes: the character is printed *after* the
- backspace. Eliminated a lot of `& 0xff' modifiers.
- (advance_to_left_margin) New function.
- (return_carriage, output_lines) Handle left margin.
-
-Thu Jul 4 00:35:59 1996 Ben Pfaff <blp@gnu.org>
-
- * ascii.c: New option `carriage-return-style'.
-
- * ascii.c: (count_fancy_chars) New function.
- (delineate, text_metrics) Use new function; bug fixes regarding
- rich text strings.
- (text_draw) Bug fix with rich text.
- (output_string, output_shorts) Reordered.
- (output_shorts) Now handles boxchars and some overstrike font
- changes.
- (output_char, return_carriage) New functions.
- (output_lines) Now handles overstriking and font changes properly;
- some code moved to output_shorts.
-
-Tue Jul 2 22:13:23 1996 Ben Pfaff <blp@gnu.org>
-
- [GLOBAL_DEBUGGING]
- * ascii.c: New member `debug' in ascii_driver_ext.
- (ascii_init_driver, delineate) Uses new member.
-
- Now you can set a vertical height on writing text.
- * ascii.c: (delineate) Keeps track of vertical position.
- (text_draw) No longer considers fully justified text an internal
- error.
-
- * output.h: New flag OUTP_T_VERT; other OUTP_T_ values changed.
-
- Tables' titles are drawn; they can have variable height.
- * som.c: `som' struct has new member, title_height.
- (draw_title) New argument. Moved within file. All caller
- changed.
- (build_target) New argument, amount of space needed for first row.
- Calculates height of title, takes that into account. All callers
- changed.
- (dump_plain_table, dump_columnated_table) Took calculation of y1,
- y2 out of loop.
- (dump_columnated_table) [GLOBAL_DEBUGGING] Debugging code
- improved.
- (dump_columnated_table) Organized for readability.
- (dump_page) Makes use of som.title_height.
-
- * som.c: Many comment bug fixes.
-
- * descript.q: (try_name, generate_z_name) Bug fix regarding
- generation of Z-score variable names.
- * var.h: Removed num from descriptives_proc; all referents removed.
-
-Mon Jul 1 22:13:39 1996 Ben Pfaff <blp@gnu.org>
-
- * ascii.c: (ascii_line_horz, ascii_line_vert,
- ascii_line_intersection) Added debugging code.
-
- Added a descriptive line above each table to describe it.
- * command.c: (parse_cmd) Calls som_new_series.
-
- * som.c: New static vars table_num, subtable_num. New `som'
- member `title'.
- (dump_page) New arguments.
- (som_submit_table) Handle new variables.
-
- * som.c, som.h: (som_submit_table) New arguments. All callers
- changed.
- (som_new_series) New function.
- (build_target) Makes room for extra line.
- (draw_title) New function.
- (dump_page) Calls draw_title. Bug fix: doesn't always set
- som.ext->cp to 0.
-
- Columnation of tables support.
- * som.h: Deleted fr, lr, ri from som_table. Reorganized.
-
- * som.c: Deleted references to fr, lr, ri.
- (som_columnate) Bux fix: sets group member of table.
- (som_add_options) Function removed.
- (dump_table) Split into three functions; extensively reworked.
-
- * descript.q: (dump_z_table) Better output table formatting; added
- title support to correspond to som.h changes.
- (display) Title support.
-
- * output.h: Added OUTP_T_NONE.
-
-Mon Jul 1 13:00:00 1996 Ben Pfaff <blp@gnu.org>
-
- * descript.q: Improved handling of Z scores; still not perfect.
-
- * output.h, ascii.c: Added hook for getting em width of current
- font.
-
- * som.c: Uses new em-width hook. Added debugging code to
- several functions.
- (som_columnate) New argument.
- (som_add_options) Removed.
-
-Jun 29 17:40:47 1996 Ben Pfaff <blp@gnu.org>
-
- * som.h, som.c, output.c, output.h, ascii.c: Updated to work with
- rules as a property of the table instead of as a property of the
- cells.
-
- * ascii.c: Added `header' to table of options.
-
- * descript.q: Added even shorter statistic names; modified to work
- with new som interface.
-
- * misc.c (blp_getdelim): Bug fix.
-
- * version.c: includes 'conf.h'.
-
-----------------------------------------------------------------------
-Local Variables:
-mode: change-log
-version-control: never
-End:
--- /dev/null
+2007-11-03 John Darrington <john@darrington.wattle.id.au>
+
+ * gnumeric-reader.c gnumeric-reader.h: New files.
+
+Thu May 4 21:47:48 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming procedure execution. In this phase, move
+ procedure.c and procedure.h from src to src/data. Update
+ makefiles and #includes accordingly.
+
+ * automake.mk: Remove special rule for src/procedure.o.
+
+ * procedure.c: Moved to src/data.
+
+ * procedure.h: Moved to src/data.
+
+Wed May 3 22:24:34 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming procedure execution. In this phase, get rid of
+ many global variables, consolidating procedure execution in
+ procedure.c. Encapsulate transformations in new "struct
+ trns_chain". Also, change implementation of N OF CASES, FILTER,
+ and PROCESS IF from special cases to transformations.
+
+ * procedure.c: (global var vfm_source) Make static. Changed
+ external references to use in_input_program(), proc_set_source(),
+ or proc_capture_output() instead.
+ (global var vfm_sink) Make static. Changed external references to
+ use proc_set_sink() instead.
+ (global var default_dict) Move here from data/dictionary.c.
+ (static var permanent_trns_chain) New var.
+ (static var temp_dict) Renamed permanent_dict, updated references.
+ (static var temporary_trns_chain) New var.
+ (static var cur_trns_chain) New var.
+ (static var in_procedure) Removed.
+ (global var t_trns) Removed.
+ (global var n_trns) Removed.
+ (global var m_trns) Removed.
+ (global var f_trns) Removed.
+ (procedure) Even if there's "nothing to do" we need to clear
+ PROCESS IF, N OF CASES, vector state. (This should be
+ abstracted.)
+ (multipass_callback) New function.
+ (multipass_procedure) New function.
+ (open_active_file) Add N OF CASES, FILTER, PROCESS IF
+ transformations. Finalize transformations. No need to call
+ ctl_stack_clear() anymore because finalizers will do that.
+ (write_case) Simplify and rewrite.
+ (execute_transformations) Removed.
+ (filter_case) Removed.
+ (close_active_file) Use proc_cancel_temporary_transformations().
+ No need to clear PROCESS IF, N OF CASES here anymore because
+ helpers do that.
+ (multipass_procedure_with_splits) Keep track of success.
+ (multipass_split_callback) Ditto.
+ (multipass_split_output) Ditto.
+ (discard_variables) No need to call ctl_stack_clear() anymore
+ because finalizers will do that.
+ (proc_capture_transformations) New function.
+ (add_transformation) Rewrite in terms of trns_chain_append().
+ (add_transformation_with_finalizer) New function.
+ (next_transformation) Rewrite in terms of trns_chain_next().
+ (proc_in_temporary_transformations) New function.
+ (proc_start_temporary_transformations) New function.
+ (proc_make_temporary_transformations_permanent) New function.
+ (proc_cancel_temporary_transformations) New function.
+ (cancel_transformations) Rename proc_cancel_all_transformations(),
+ rewrite in terms of trns_chain_destroy().
+ (proc_init) New function.
+ (proc_done) New function.
+ (proc_set_sink) New function.
+ (proc_set_source) New function.
+ (proc_has_source) New function.
+ (proc_capture_output) New function.
+ (add_case_limit_trns) New function.
+ (case_limit_trns_proc) New function.
+ (case_limit_trns_free) New function.
+ (add_filter_trns) New function.
+ (filter_trns_proc) New function.
+ (add_process_if_trns) New function.
+ (process_if_trns_proc) New function.
+ (process_if_trns_free) New function.
+
+Wed Apr 26 20:00:00 2006 Ben Pfaff <blp@gnu.org>
+
+ * procedure.c (create_trns_case): Fix inverted decision on whether
+ numeric values should be initialized to 0 or SYSMIS.
+
+Wed Apr 26 19:48:52 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming procedure execution. In this phase, assert
+ that add_transformation() is not called during procedure
+ execution. Thanks to John Darrington for the suggestion.
+
+ * procedure.c: (static var in_procedure) New var.
+ (internal_procedure) Get rid of recursive_call local var and
+ logic.
+ (open_active_file) Set in_procedure and make sure it wasn't
+ already set.
+ (close_active_file) Reset in_procedure and make sure it was
+ already set.
+ (add_transformation) Make sure we're not in a procedure.
+
+Wed Apr 26 19:33:52 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming procedure execution. In this phase, break
+ procedure.c into multiple files.
+
+ * procedure.c (vfm_last_invocation): Rename
+ time_of_last_procedure(). Update all references.
+ (struct storage_stream_info) Move to data/storage-stream.c.
+ (storage_sink_open) Ditto.
+ (destroy_storage_stream_info) Ditto.
+ (storage_sink_write) Ditto.
+ (storage_sink_destroy) Ditto.
+ (storage_sink_make_source) Ditto.
+ (var storage_sink_class) Ditto.
+ (storage_source_count) Ditto.
+ (storage_source_read) Ditto.
+ (storage_source_destroy) Ditto.
+ (storage_source_class) Ditto.
+ (storage_source_get_casefile) Ditto.
+ (storage_source_create) Ditto.
+ (null_sink_class) Move to data/case-sink.c.
+ (create_case_source) Move to data/case-source.c.
+ (free_case_source) Ditto.
+ (case_source_is_class) Ditto.
+ (create_case_sink) Move to data/case-sink.c.
+ (free_case_sink) Ditto.
+
+ * procedure.h: (struct case_source) Move to data/case-source.h.
+ (struct case_source_class) Ditto.
+ (struct case_sink) Move to data/case-sink.h.
+ (struct case_sink_class) Ditto.
+
+Thu Apr 27 09:28:25 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * automake.mk: Removed explicit dependencies for message.o, since
+ that module no longer exists.
+
+Wed Apr 26 15:29:45 2006 Ben Pfaff <blp@gnu.org>
+
+ Start reforming procedure execution. In this phase, get rid of
+ function prototypes for never-defined functions.
+
+ * procedure.h: Get rid of function prototypes for never-defined
+ functions.
+
+Wed Apr 26 12:58:46 2006 Ben Pfaff <blp@gnu.org>
+
+ Improve the way we handle the various parsing "states". Until now
+ we've hard-coded the state transitions in the command definition
+ file, but that's error-prone and, worse, it's redundant--we can
+ figure out what state we're in anyhow. We can cleanly handle
+ INPUT PROGRAM and FILE TYPE with a nested command-processing loop.
+
+ * procedure.c (case_source_is_complex): Removed.
+ (discard_variables) No need to set pgm_state anymore.
+
+Tue Apr 25 11:06:49 2006 Ben Pfaff <blp@gnu.org>
+
+ Finish reforming error message support. In this phase, move
+ message.c into libpspp.
+
+ * message.c: Move to libpspp.
+
+Tue Apr 25 10:47:37 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming error message support. In this phase, drop
+ actual message printing from core code, substituting a callback,
+ and add the callback to each UI. Also, move verbose_msg() into
+ its own module.
+
+ * message.c: (var err_error_count) Renamed error_count and moved
+ to ui/terminal/msg-ui.c.
+ (var err_warning_count) Renamed warning_count and moved to
+ ui/terminal/msg-ui.c.
+ (err_check_count) Renamed check_msg_count() and moved to
+ ui/terminal/msg-ui.c.
+ (dump_message) Rewrote to take stream instead of function pointer
+ and moved to ui/terminal/msg-ui.c.
+ (msg_emit) Moved its guts to ui/terminal/msg-ui.c as handle_msg()
+ and rewrote to just pass message to callback.
+
+ (var err_verbosity) Renamed "verbosity" and moved to
+ libpspp/verbose-msg.c.
+ (verbose_msg) Moved to libpspp/verbose-msg.c.
+
+ (var err_already_flagged) Removed.
+ (puts_stdout) Removed.
+
+ (var msg_handler) New static variable.
+ (msg_init) New function.
+ (msg_get_command_name) New function.
+
+Mon Apr 24 17:40:08 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming error message support. In this phase, rename
+ all the message functions and types to start with "msg", except
+ for the ones that will be moving to other modules anyway.
+
+ All references to the identifiers below were updated likewise.
+
+ * message.c: (err_done) Renamed msg_done().
+ (err_push_file_locator) Renamed msg_push_msg_locator().
+ (err_pop_file_locator) Renamed msg_pop_msg_locator().
+ (err_location) Renamed msg_location().
+ (err_set_command_name) Renamed msg_set_command_name().
+
+Mon Apr 24 14:11:33 2006 Ben Pfaff <blp@gnu.org>
+
+ * message.c: Use exit.h from gnulib instead of checking for and
+ defining EXIT_SUCCESS and EXIT_FAILURE by hand.
+
+Sun Apr 23 22:00:23 2006 Ben Pfaff <blp@gnu.org>
+
+ 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.
+
+ * message.c: (tmsg) Removed.
+ (msg) Use err_msg() instead of err_vmsg(). Format message
+ ourselves.
+ (err_vmsg) Renamed err_msg(). Changed interface, dropping message
+ and va_list args which are now in the error struct.
+
+Sun Apr 23 20:35:28 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming error message support.
+
+ * message.c: Use linebreak module from gnulib instead of home-brew
+ line breaking.
+ (puts_stdout) Rewrote.
+ (dump_message) Rewrote. Changed interface and updated all callers.
+ (compulsory_break) Removed.
+ (char_is_break) Removed.
+ (break_before) Removed.
+ (break_after) Removed.
+ (macro BREAK_LONG_WORD) Removed.
+
+Sun Apr 16 20:41:10 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming error message support. In this phase, we
+ divide the classification of messages along "category" and
+ "severity" axes.
+
+ * message.c: (err_vmsg) Rewrite to deal with categories and
+ severities in a straightforward manner instead of mixing them into
+ classes.
+ [0] (puts_stderr) Removed (dead code).
+ (msg) Changed first argument from `int' to `enum msg_class'.
+ (tmsg) Ditto.
+
+Sun Apr 16 18:53:12 2006 Ben Pfaff <blp@gnu.org>
+
+ GNU standards require "file name" instead of "filename" in
+ documentation. It's nice for our code to follow the convention
+ too.
+
+ Basically did search and replace in the whole source tree. Major
+ changes in function names or struct member names have their own
+ change log entries.
+
+Sun Apr 16 15:58:56 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming error message support. In this phase, we get
+ rid of VM() and the other msg() support for "verbosity", replacing
+ it by a new function verbose_msg().
+
+ * message.c: (verbose_msg) New function.
+ (err_vmsg) Remove support for verbosity levels.
+
+Sun Apr 16 11:46:51 2006 Ben Pfaff <blp@gnu.org>
+
+ Start reforming error message support. In this phase, we get rid
+ of "installation errors" and change all uses of msg() in the
+ output drivers to uses of error() or error_at_line().
+
+ * message.c: (err_vmsg) Get rid of IE, IS support.
+
+Sat Mar 11 14:17:47 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * automake.mk: Changed the pattern specific AM_CPPFLAGS to two target
+ specific ones. Eventually there will be none at all.
+
+ * automake.mk: Moved the pspp binary to ui/terminal
+
+Sat Mar 4 12:59:08 2006 Ben Pfaff <blp@gnu.org>
+
+ * In many source files, #include "compiler.h" to get GCC attribute
+ definitions.
+
+Sat Mar 4 12:28:09 2006 Ben Pfaff <blp@gnu.org>
+
+ * In many source files, replace INT_DIGITS by
+ INT_STRLEN_BOUND(int) and include intprops.h.
+
+John Darrington:
+
+ * Replaced '_' with '-' in most filenames.
+
+ * Renamed files as follows:
+ vfm.[ch] to procedure.[ch]
+ error.[ch] to message.[ch]
+ getl.[ch] to line-buffer.[ch]
+ mkfile.[ch] to make-file.[ch]
+ pfm-write.h to por-file-writer.h
+ pfm-write.c to por-file-writer.c
+ sfmP.h to sfm-private.h
+ lex-def.c to identifier.c
+ lex-def.h to identifier.h
+ sfm-read.c to sys-file-reader.c
+ sfm-read.h to sys-file-reader.h
+ sfm-write.h to sys-file-writer.h
+ sfm-write.c to sys-file-writer.c
+ chart.[ch] to chart-geometry.[ch]
+ val.h to value.h
+ var.h to variable.h
+ vars-atr.c to variable.c
+ ctl-stack.c to control-stack.c
+ ctl-stack.h to control-stack.h
+ dfm-read.c to data-reader.c
+ dfm-write.c to data-writer.c
+ dfm-write.h to data-writer.h
+ dfm-read.h to data-reader.h
+ apply-dict.c to apply-dictionary.c
+ mis-val.c to missing-values.c
+ sysfile-info.c to sys-file-info.c
+ modify-vars.c to modifiy-variables.c
+ rename-vars.c to rename-variables.c
+ val-labs.c to value-labels.c
+ var-display.c to variable-display.c
+ var-labs.c to variable-label.c
+ format-prs.c to format-parser.c
+ range-prs.c to range-parser.c
+ range-prs.h to range-parser.h
+ subclist.c to subcommand-list.c
+ subclist.h to subcommand-list.h
+ vars-prs.c to variable-parser.c
+ descript.c to descriptives.c
+ sort-prs.c to sort-criteria.c/sort-cases.c
+ sort-prs.h to sort-criteria.h
+ sel-if.c to select-if.c
+ algorithm.c to array.c
+ algorithm.h to array.h
+ bitvector.h to bit-vector.h
+ som.c to manager.c
+ som.h to manager.h
+ tab.h to table.h
+ tab.c to table.c
+ readln.c to read-line.c
+ readln.h to read-line.h
+ cmdline.c to command-line.c
+ cmdline.h to command-line.h
+
+
+Sat Feb 11 22:35:20 2006 Ben Pfaff <blp@gnu.org>
+
+ General clean-ups and minor bug fixes.
+
+ * filename.h: Move DIR_SEPARATOR, PATH_SEPARATOR here from
+ pref.h.orig.
+
+ * lex-def.h: (macro CHAR_IS_ID1) Removed. All references changed
+ to lex_is_id1().
+ (macro CHAR_IS_IDN) Removed. All references changed to
+ lex_is_idn().
+
+ * lex-def.c: (lex_is_id1) New function.
+ (lex_is_idn) New function.
+ (lex_skip_identifier) New function.
+ (lex_id_match_len) Return bool instead of int.
+ (lex_id_match) Ditto.
+
+ * command.c: (parse_command_name) Convert parsed words to
+ uppercase to make error messages easier to read.
+ (cmd_host) Fix return value.
+
+ * dfm-read.c: (read_inline_record) Use tokens to check for BEGIN
+ DATA, not specialized lexical analysis.
+
+ * print.c: (print_space_trns_proc) Count of lines should be `int',
+ otherwise we might never finish.
+ (print_space_trns_free) Close writer.
+
+ * lexer.c: (enum string_type) New enum.
+ (lex_get) Remove essentially unused local variable `cp'.
+ Use enum string_type values. Use parse_id().
+ (parse_id) New function.
+ (lex_look_ahead) Recognize octal strings too.
+ (strip_comments) New function.
+ (lex_get_line) Rewrite.
+ (lex_preprocess_line) Removed.
+ (convert_numeric_string_to_char_string) Use enum string_type.
+ (parse_string) Ditto.
+
+ * autorecode.c: (recode) Clone correct number of bytes based on
+ source string width.
+
+Sat Feb 11 22:34:38 2006 Ben Pfaff <blp@gnu.org>
+
+ Reduce dependencies on getl, and of getl.
+
+ * data-in.c: (vdls_error) Don't output different message depending
+ on whether we're interactive.
+
+ * getl.h: (struct getl_line_list) Removed.
+ (struct getl_script) Removed.
+ (GETL_PRPT_*) Removed.
+ (GETL_MODE_*) Removed.
+ (GETL_PROMPT_FIRST, GETL_PROMPT_LATER, GETL_PROMPT_DATA,
+ GETL_PROMPT_CNT) New enums.
+
+ * settings.c: (static var prompt) Removed.
+ (static var cprompt) Removed.
+ (static var dprompt) Removed.
+ (settings_done) Don't initialize prompt, cprompt, dprompt.
+ (get_prompt) Removed.
+ (set_prompt) Removed.
+ (get_dprompt) Removed.
+ (set_dprompt) Removed.
+ (get_cprompt) Removed.
+ (set_cprompt) Removed.
+
+ * pfm-read.c: (corrupt_msg) Don't show filename and line number,
+ to get rid of getl_location().
+
+ * sfm-read.c: (corrupt_msg) Ditto.
+
+ * getl.c: (struct getl_source) New.
+ (static var cur_source) New.
+ (static var last_source) New.
+ (static var DO_REPEAT_level) Removed.
+ (global var getl_head) Removed.
+ (global var getl_tail) Removed.
+ (getl_initialize) Call init_prompts().
+ (getl_add_file) Removed.
+ (getl_include) Removed.
+ (getl_add_DO_REPEAT_file) Removed.
+ (getl_handle_line_buffer) Removed.
+ (getl_close_file) Removed.
+ (getl_close_all) Removed.
+ (getl_is_separate) Removed.
+ (getl_set_separate) Removed.
+ (getl_reading_script) Removed.
+ (append_source) New function.
+ (include_source) New function.
+ (create_source) New function.
+ (create_syntax_file_source) New function.
+ (create_filter_source) New function.
+ (create_function_source) New function.
+ (create_interactive_source) New function.
+ (getl_append_syntax_file) New function.
+ (getl_include_syntax_file) New function.
+ (getl_include_filter) New function.
+ (getl_include_function) New function.
+ (getl_append_interactive) New function.
+ (getl_abort_noninteractive) New function.
+ (getl_is_interactive) New function.
+ (close_source) New function.
+ (getl_location) Use new `cur_source' var.
+ (getl_uninitialize) Use close_source(). Call uninit_prompts().
+ (read_syntax_file) New function.
+ (read_line_from_source) New function.
+ (do_read_line) New function.
+ (getl_read_line) Rewrite.
+ (static var prompts) New.
+ (static var current_style) New.
+ (init_prompts) New function.
+ (uninit_prompts) New function.
+ (getl_get_prompt) New function.
+ (getl_set_prompt) New function.
+ (getl_set_prompt_style) New function.
+ (get_prompt) New function.
+
+ * command.c: Merge the EXIT (aka Q, aka QUIT) and FINISH commands,
+ and make EXIT undocumented. EXIT was a PSPP extension that never
+ really entirely made sense.
+ (cmd_exit) Removed.
+ (cmd_finish) Return CMD_EOF unconditionally.
+ (cmd_clear_transformations) Drop requirement of interactivity.
+
+ * command.def: Merge the EXIT (aka Q, aka QUIT) and FINISH
+ commands.
+
+ * repeat.c: Major changes to match getl revision.
+ (struct line_list) New struct.
+ (enum repeat_entry_type) New.
+ (struct repeat_entry) Made `type' an enum repeat_entry_type.
+ (struct repeat_block) New.
+ (static var repeat_tab) Removed.
+ (static var count) Removed.
+ (static var line_buf_head) Removed.
+ (static var line_buf_tail) Removed.
+ (cmd_do_repeat) Rewritten.
+ (clean_up) Removed.
+ (append_record) Removed.
+ (recognize_keyword) New function.
+ (internal_cmd_do_repeat) Removed.
+ (parse_specification) New function.
+ (skip_indentor) New function.
+ (recognize_do_repeat) New function.
+ (recognize_end_repeat) New function.
+ (parse_lines) New function.
+ (create_vars) New function.
+ (parse_ids) Use enum repeat_entry_type.
+ (parse_strings) Ditto.
+ (find_DO_REPEAT_substitution) Renamed find_substitution(),
+ rewrote.
+ (perform_DO_REPEAT_substitutions) Renamed do_repeat_filter(),
+ rewrote.
+ (do_repeat_read) New function.
+ (do_repeat_close) New function.
+
+ * data-list.c: Don't need to keep track of eof from getl anymore,
+ because getl can tell us now.
+ (struct data_list_pgm) Removed `eof' member.
+ (cmd_data_list) Don't assign to `eof'.
+ (get_data_list_read_func) Renamed read_from_data_list(), changed
+ interface.
+ (read_from_data_list_fixed) Changed interface.
+ (read_from_data_list_free) Changed interface.
+ (read_from_data_list_list) Changed interface.
+ (data_list_trns_proc) Rewrote based on dfm_eof() and
+ dfm_reader_error().
+ (data_list_source_read) Check for dfm reader errors.
+
+ * dfm-read.c: (enum dfm_reader_flags) Removed DFM_EOF in favor of
+ new `eof_cnt' member in struct dfm_reader.
+ (struct dfm_reader) New `eof_cnt' member.
+ (dfm_close_reader) Check `eof_cnt', not DFM_EOF.
+ (dfm_open_reader) Initialize `eof_cnt'.
+ (read_inline_record) Set prompt style with
+ getl_set_prompt_style().
+ (read_record) Rewrite.
+ (cmd_begin_data) Set prompt style with getl_set_prompt_style().
+
+ * include.c: (cmd_include) Use getl_include_syntax_file().
+
+ * set.q: (cmd_set) Use getl_set_prompt().
+
+ * html.c: (postopen) Remove "source-file" expansion variable, to
+ avoid use of getl_location().
+
+ * postscript.c: (postopen) Remove "source-file" expansion
+ variable, to avoid use of getl_location().
+
+ * cmdline.c: (parse_command_line) Drop -c command line option,
+ because it wasn't very useful. -i command line option now calls
+ getl_append_interactive(). Use new getl function interfaces.
+ Drop support for clearing dictionary between syntax files and thus
+ the "+" command line syntax.
+ (static var pre_syntax_message) Remove description of now-gone -c
+ option. Remove "+" command line syntax.
+
+ * main.c: (main) Only call handle_error() if the return value is
+ an error.
+ (execute_command) Use getl_set_prompt_style(). Drop support for
+ clearing dictionary between syntax files.
+ (handle_error) Handle CMD_CASCADING_FAILURE. Don't call err_break().
+
+ * readln.c: Drop lots of #ifdefs. Now that the Autoconf tests are
+ pickier, we can just use HAVE_READLINE.
+ (static var welcomed) Move into welcome().
+ (welcome) Make `welcomed' a local static var. Check for and read
+ history file here.
+ (global var getl_mode) Removed.
+ (global var getl_interactive) Removed.
+ (global var getl_prompt) Removed.
+ (getl_read_line) removed.
+ (readln_read) New function.
+ (read_console) Removed.
+
+
+Sat Feb 11 22:16:21 2006 Ben Pfaff <blp@gnu.org>
+
+ Try to reduce some of the nastier dependencies on the error
+ module, and at the same time make PSPP nicer to deal with, by
+ getting rid of fatal errors. All the existing calls to msg (FE,
+ ...) or err_cond_fail() or err_failure() have been replaced by
+ propagating an error upward to the command-dispatch layer.
+ Unfortunately this propagation took a fair bit of extra mechanism,
+ because now a lot of functions can fail that couldn't before.
+
+ New command return value CMD_CASCADING_FAILURE which indicates to
+ the command processor that syntax file processing should be
+ abandoned. Many commands were modified to return
+ CMD_CASCADING_FAILURE. When this modification was trivial it
+ isn't mentioned in detail below.
+
+ Transformation procedures (trns_proc_func) and free functions
+ (trns_free_func) now have a `bool' return type, which is normally
+ true, but false when an I/O or other serious error occurs. All
+ transformation functions were modified to have this return type.
+ When this modification was trivial it isn't mentioned in detail
+ below.
+
+ * pspp-error.h: (FE) Removed this error class.
+
+ * error.c: (err_failure) Removed.
+ (err_cond_fail) Removed.
+ (err_break) Removed (it was unused).
+ (err_check_count) Don't cause a fatal error--instead, stop reading
+ the syntax file.
+ (err_vmsg) Don't have FE anymore, so no need to call terminate().
+
+ * any-reader.c: (any_reader_error) New function.
+
+ * any-writer.c: (any_writer_write) Propagate
+ scratch_writer_write_case()'s new return value.
+ (any_writer_error) New function.
+ (any_writer_close) Propagate underlying function's new return
+ value.
+
+ * casefile.c: Add an "error state" to a casefile. A casefile that
+ encounters an I/O error enters the error state, and afterward
+ reading and writing cases fails.
+ (struct casefile) Add `ok' member.
+ (casefile_create) Set `ok' to true.
+ (casefile_destroy) Use io_error().
+ (casefile_error) New function.
+ (casefile_sleep) Now returns bool to indicate success.
+ (casefile_append) Ditto.
+ (casefile_append_xfer) Ditto.
+ (casefile_to_disk) Ditto.
+ (write_case_to_disk) Don't do anything in error state.
+ (flush_buffer) Don't do anything in error state. Use io_error().
+ (reader_open_file) Ditto.
+ (fill_buffer) Ditto.
+ (casereader_read) Don't do anything in error state. Handle
+ errors.
+ (casereader_read_xfer_assert) Removed, because now an I/O error
+ can occur even if the caller knows a case exists.
+ (io_error) New function.
+
+ * mkfile.c: (make_temp_file) Make failure non-fatal.
+ (make_unique_file_stream) Ditto.
+
+ * pfm-read.c: Add an error state.
+ (struct pfm_reader) Add `ok' member to indicate error state.
+ (error) Set `ok' to false.
+ (pfm_open_reader) Set `ok' to true. Make failure non-fatal.
+ (pfm_read_case) Don't do anything in error state.
+ (pfm_read_error) New function.
+
+ * pfm-write.c: Postpone most error checking in favor of checking
+ ferror() afterward.
+ (pfm_open_writer) Make failure non-fatal. Check for write error
+ after writing header.
+ (buf_write) Don't do anything if error has occurred. Postpone
+ error checking. Change return type to void.
+ (write_float) Postpone error checking. Change return type to
+ void.
+ (write_int) Ditto.
+ (write_string) Ditto.
+ (write_header) Ditto.
+ (write_version_data) Ditto.
+ (write_format) Ditto.
+ (write_value) Ditto.
+ (write_variables) Ditto.
+ (write_value_labels) Ditto.
+ (pfm_write_case) Don't do anything if error has occurred.
+ (pfm_write_error) New function.
+ (pfm_close_writer) Change return type to bool. Return false if an
+ I/O error occurred.
+
+ * scratch-reader.c: (scratch_reader_error) New function.
+
+ * scratch-writer.c: (scratch_writer_write_case) Change return type
+ to bool. Propagate casefile error return.
+ (scratch_writer_error) New function.
+ (scratch_writer_close) Change return type to bool. Propagate
+ casefile error return.
+
+ * sfm-read.c: Add an error state.
+ (struct sfm_reader) Add `ok' member.
+ (sfm_open_reader) Initialize `ok'. Make errors non-fatal.
+ (buf_read) Set `ok' to false on error.
+ (buffer_input) Do nothing in error state. Set `ok' to false on
+ error.
+ (read_compressed_data) Set `ok' false on error.
+ (sfm_read_case) Return false in error state.
+ (fread_ok) Set `ok' false on error.
+ (sfm_read_error) New function.
+
+ * sfm-write.c: Postpone most error checking in favor of checking
+ ferror() afterward.
+ (sfm_open_writer) Make failure non-fatal. Check for write error
+ after writing header.
+ (write_header) Postpone error checking. Change return type to
+ void.
+ (write_variable) Ditto.
+ (write_value_labels) Ditto.
+ (write_documents) Ditto.
+ (write_variable_display_parameters) Ditto.
+ (write_longvar_table) Ditto.
+ (write_rec_7_34) Ditto.
+ (buf_write) Ditto.
+ (ensure_buf_space) Ditto.
+ (sfm_write_case) Do nothing if write error has occurred.
+ (sfm_write_error) New function.
+ (pfm_close_writer) Change return type to bool. Return false if an
+ I/O error occurred.
+
+ * var.h: Introduced a new return value for trns_proc_func that
+ means "a serious error has occurred, so abort the procedure
+ entirely". Because the hard-coded values of -1, -2, etc. were
+ becoming even a worse idea now, also introduced some macros for
+ them: TRNS_CONTINUE, TRNS_DROP_CASE, TRNS_ERROR, TRNS_NEXT_CASE,
+ TRNS_END_FILE. Also replaced all references to the hard-coded
+ values by uses of the macros.
+
+ * command.h: New command return value CMD_CASCADING_FAILURE which
+ indicates to the command processor that syntax file processing
+ should be abandoned.
+
+ * dfm-read.c: (dfm_open_reader) Make failure non-fatal.
+ (dfm_reader_error) New function.
+ (read_inline_record) Make unexpected end of file nonfatal.
+ (read_file_record) Make read error nonfatal.
+ (dfm_eof) Make second unexpected end of file nonfatal.
+ (cmd_begin_data) Make errors nonfatal.
+
+ * dfm-write.c: (dfm_open_writer) Make failure non-fatal.
+ (dfm_write_error) New function.
+ (dfm_put_record) Do nothing in error state. Now return error
+ state.
+ (dfm_close_reader) Now return `bool' indicating error state.
+
+ * file-type.c: (file_type_source_read) Now return `bool'
+ indicating error state.
+
+ * get.c: (case_reader_source_read) Now return `bool' indicating
+ write error.
+ (case_writer_destroy) Ditto.
+ (case_writer_write_case) Ditto.
+ (struct mtf_proc) New member `ok' indicating error state.
+ (cmd_match_files) Initialize and deal with `ok'.
+ (mtf_processing_finish) Now return `bool' indicating I/O error.
+ (mtf_free_file) Renamed mtf_close_file(). Now return `bool'
+ indicating I/O error.
+ (mtf_free) Now return `bool' indicating I/O error.
+ (mtf_delete_file_in_place) Ditto.
+ (mtf_read_nonactive_records) Ditto.
+ (mtf_processing) Ditto.
+
+ * inpt-pgm.c: (input_program_source_read) Now return `bool'
+ indicating I/O error. Handle new TRNS_ERROR transformation return
+ value.
+
+ * matrix-data.c: Introduce error state.
+ (cmd_matrix_data) Check error return values.
+ (read_matrices_without_rowtype) Now return `bool' indicating I/O
+ error.
+ (matrix_data_read_without_rowtype) Ditto.
+ (dump_cell_content) Ditto.
+ (nr_output_data) Ditto.
+ (read_matrices_with_rowtype) Ditto.
+ (matrix_data_read_with_rowtype) Ditto.
+ (wr_output_data) Ditto.
+
+ * lexer.c: (lex_init) Make unexpected eof non-fatal.
+ (lex_get) Ditto.
+ (lex_look_ahead) Ditto.
+ (unexpected_eof) Removed.
+ (convert_numeric_string_to_char_string) Make unexpected eof
+ non-fatal.
+ (parse_string) Ditto.
+
+ * flip.c: Make I/O errors non-fatal.
+ (struct flip_pgm) Add `pool', `output_buf' members.
+ (cmd_flip) Create and use pool. Propagate errors.
+ (destroy_flip_pgm) Rewrite, using pool.
+ (struct flip_sink_info) Removed.
+ (flip_sink_create) Use pool. Make errors non-fatal.
+ (flip_sink_write) Make errors non-fatal.
+ (flip_file) Make errors non-fatal. Make `bool' return type to
+ indicate failure.
+ (flip_sink_destroy) Remove.
+ (static var flip_sink_class) Use NULL as destroy func, not
+ flip_sink_destroy().
+
+ * sort.c: Make I/O errors non-fatal. Propagate errors.
+ (sort_active_file_in_place) Propagate errors.
+ (sort_active_file_to_casefile) Ditto.
+ (do_internal_sort) Ditto.
+ (do_external_sort) Ditto.
+ (write_runs) Ditto.
+ (destroy_initial_run_state) Propagate errors via new `bool' return
+ type.
+ (merge) Propagate errors.
+ (merge_once) Ditto.
+
+ * output.c: [GLOBAL_DEBUGGING] Remove reentrancy detection,
+ because it used msg (FE, ...) and wasn't very useful.
+
+ * main.c: (handle_error) Handle CMD_CASCADING_FAILURE.
+
+ * vfm.c: (struct write_case_data) Change `proc_func' return type
+ to bool.
+ (procedure) Add `bool' return type to indicate I/O error.
+ Propagate errors.
+ (internal_procedure) Ditto.
+ (write_case) Ditto.
+ (execute_transformations) If a transformation returns TRNS_ERROR,
+ propagate the error.
+ (close_active_file) Add `bool' return type to indicate I/O error.
+ Propagate errors.
+ (cancel_transformations) Add `bool' return type to indicate I/O
+ error. Propagate errors.
+ (struct split_aux_data) Change `proc_func' return type to bool.
+ (procedure_with_splits) Change `proc_func' return type to bool.
+ Add `bool' return type to indicate I/O error.
+ (multipass_procedure_with_splits) Change `split_func' return type
+ to bool. Add `bool' return type to indicate I/O error.
+ (multipass_split_callback) Add `bool' return type to indicate I/O
+ error. Propagate errors.
+
+ * vfm.h: (struct case_source_class) Change `read' return type from
+ void to bool to allow reporting I/O errors. Updated all
+ implementations to do so.
+ (struct case_sink_class) Change `write' return type from void to
+ bool to allow reporting I/O errors. Updated all implementations
+ to do so.
+
+Sun Feb 12 18:12:56 2006 Ben Pfaff <blp@gnu.org>
+
+ * pool.c: Useful new functions.
+ (pool_tmpfile) New function.
+ (pool_attach_file) New function.
+ (pool_detach_file) New function.
+ (pool_fopen) Reimplement in terms of pool_attach_file().
+ (pool_fclose) Reimplement in terms of pool_detach_file(). Fix
+ double-free.
+
+ * str.c: Useful new functions.
+ (ds_swap) New function.
+ (ds_rtrim_spaces) New function.
+ (ds_chomp) New function.
+ (ds_is_empty) New function.
+ (ds_first) New function.
+ (ds_last) New function.
+
+Sat Feb 11 21:51:21 2006 Ben Pfaff <blp@gnu.org>
+
+ Get rid of finished, start_interactive globals.
+
+ * command.c: (cmd_exit) Instead of setting `finished', return
+ CMD_EOF.
+ (cmd_finish) Ditto.
+
+ * command.h: New enum CMD_EOF.
+
+ * main.c: (global var finished) Removed.
+ (global var start_interactive) Removed.
+ (main) Execute commands until CMD_EOF is the return value.
+ If parse_command_line() returns false, don't execute any commands
+ at all.
+
+ * cmdline.c: (parse_command_line) If the command line indicates we
+ shouldn't execute syntax files, return false instead of
+ terminating.
+ (usage) Don't terminate.
+
+Sat Feb 11 21:48:31 2006 Ben Pfaff <blp@gnu.org>
+
+ Get rid of cur_proc global. Replace by functions in err and tab
+ modules, which were the users.
+
+ * error.c: (static var command_name) New static var.
+ (err_vmsg) Use command_name.
+ (err_set_command_name) New function.
+
+ * tab.c: (static var command_name) New static var.
+ (tabi_title) Use command_name.
+ (tab_set_command_name) New function.
+
+ * command.c: (global var cur_proc) Removed.
+ (cmd_parse) Call err_set_command_name(), tab_set_command_name()
+ around executing command to set and clear command name.
+
+Sat Feb 11 21:44:50 2006 Ben Pfaff <blp@gnu.org>
+
+ Get rid of glob.c, glob.h.
+
+ * Makefile.am: (pspp_SOURCES) Remove glob.c, glob.h.
+
+ * dictionary.c: Move default_dict definition here.
+
+ * glob.c: Removed.
+ (global var FILTER_before_TEMPORARY) Variable removed. All
+ references deleted. The info in this var was redundant with
+ temp_dict, so they were changed to use temp_dict where needed.
+
+ * glob.h: Removed.
+
+ * start-date.c: New file. Moved get_start_date() here.
+
+ * start-date.h: New file.
+
+Fri Feb 3 20:34:52 2006 Ben Pfaff <blp@gnu.org>
+
+ * font.h: (struct font_set) Removed, because unused.
+
+Sat Jan 28 17:45:36 2006 Ben Pfaff <blp@gnu.org>
+
+ 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 <blp@gnu.org>
+
+ 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 <blp@gnu.org>
+
+ 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 <blp@gnu.org>
+
+ 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 <jason@sakla.net>
+
+ * 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 <john@darrington.wattle.id.au>
+
+ * 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 <john@darrington.wattle.id.au>
+
+ * getl.c error.c: Separated file_loc functionality from error.c
+
+Mon Dec 19 14:01:56 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * 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 <john@darrington.wattle.id.au>
+
+ * examine.q: Fixed buglet when cleaning up at end of procedure.
+
+Tue Dec 13 22:34:42 2005 Ben Pfaff <blp@gnu.org>
+
+ 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 <blp@gnu.org>
+
+ 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 <blp@gnu.org>
+
+ 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 <john@darrington.wattle.id.au>
+
+ * 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 <blp@gnu.org>
+
+ * 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 <blp@gnu.org>
+
+ * var.h: (struct variable) Make `init', `reinit' bool values.
+ Rearrange fields.
+
+Fri Nov 4 19:43:01 2005 Ben Pfaff <blp@gnu.org>
+
+ * recode.c: Rewrote whole file, as clean-up.
+
+Fri Nov 4 19:37:50 2005 Ben Pfaff <blp@gnu.org>
+
+ * 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 <blp@gnu.org>
+
+ * 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 <blp@gnu.org>
+
+ 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 <blp@gnu.org>
+
+ 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 <blp@gnu.org>
+
+ 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 <blp@gnu.org>
+
+ * 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 <blp@gnu.org>
+
+ 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 <john@darrington.wattle.id.au>
+
+ 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 <blp@gnu.org>
+
+ 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 <john@darrington.wattle.id.au>
+
+ 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 <blp@gnu.org>
+
+ * 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 <blp@gnu.org>
+
+ 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 <ctype.h> 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 <john@darrington.wattle.id.au>
+
+ 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 <blp@gnu.org>
+
+ 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 <blp@gnu.org>
+
+ * output.c: (outp_read_devices) Fix message.
+
+Sat Sep 17 11:13:13 2005 Ben Pfaff <blp@gnu.org>
+
+ * 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 <john@darrington.wattle.id.au>
+
+ * 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 <blp@gnu.org>
+
+ * lexer.c: (lex_sbc_only_once) New function.
+ (lex_sbc_missing) New function.
+
+Sun Aug 21 00:00:47 2005 Ben Pfaff <blp@gnu.org>
+
+ * case.h: (case_str) Make it return `unsigned char'.
+
+Sat Aug 20 23:56:14 2005 Ben Pfaff <blp@gnu.org>
+
+ 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 <blp@gnu.org>
+
+ * factor_stats.c: Needed <config.h> included earlier.
+
+ * percentiles.c: Needed to include <config.h>.
+
+ * val.h: Don't include "config.h".
+
+Sat Aug 6 21:26:27 2005 Ben Pfaff <blp@gnu.org>
+
+ 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 <blp@gnu.org>
+
+ 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
+ <stdbool.h>, 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 <time.h> 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 <time.h> 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
+ <stdbool.h>, not "bool.h".
+
+Sat Jul 30 23:13:17 2005 Ben Pfaff <blp@gnu.org>
+
+ * expressions/parse.c: (validate_function_args) Fix two msg() bugs
+ found by -Wformat.
+
+Sat Jul 30 23:10:01 2005 Ben Pfaff <blp@gnu.org>
+
+ * 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 <blp@gnu.org>
+
+ * vars-atr.c: (var_is_valid_name) Fix three msg() bugs found by
+ -Wformat.
+
+Sat Jul 30 22:58:33 2005 Ben Pfaff <blp@gnu.org>
+
+ * rank.q: (parse_rank_function) Fix msg() bug found by -Wformat.
+
+Sat Jul 30 22:56:12 2005 Ben Pfaff <blp@gnu.org>
+
+ * postscript.c: (postopen) Cast `char' to `unsigned char' before
+ passing to isspace().
+
+Sat Jul 30 22:52:09 2005 Ben Pfaff <blp@gnu.org>
+
+ * pfm-read.c: (read_variables) Fix msg() bug found by -Wformat.
+
+Sat Jul 30 22:50:57 2005 Ben Pfaff <blp@gnu.org>
+
+ * histogram.c: Include <config.h>.
+
+Sat Jul 30 22:48:50 2005 Ben Pfaff <blp@gnu.org>
+
+ * get.c: (cmd_match_files) Fix msg() bug found by -Wformat.
+
+Sat Jul 30 22:46:10 2005 Ben Pfaff <blp@gnu.org>
+
+ * format.c: (check_common_specifier) Fix msg() bug found by
+ -Wformat.
+ (check_output_specifier) Ditto.
+
+Sat Jul 30 22:43:57 2005 Ben Pfaff <blp@gnu.org>
+
+ * file-handle.q: (cmd_file_handle) Fix msg() bug found by
+ -Wformat.
+
+Sat Jul 30 22:41:44 2005 Ben Pfaff <blp@gnu.org>
+
+ * 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 <blp@gnu.org>
+
+ * command.c: (find_word) Cast `char' to `unsigned char' before
+ passing to isspace().
+
+Sat Jul 30 22:36:29 2005 Ben Pfaff <blp@gnu.org>
+
+ * case.c: (case_compare) Implement as delegating to
+ case_compare_2dict().
+
+Sat Jul 30 22:34:18 2005 Ben Pfaff <blp@gnu.org>
+
+ * algorithm.c: Inclusion of <alloca.h> is unneeded.
+
+Sat Jul 30 22:01:32 2005 Ben Pfaff <blp@gnu.org>
+
+ * 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 <blp@gnu.org>
+
+ 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 <blp@gnu.org>
+
+ * data-in.c: (parse_numeric) Allow "1+23" even for F format, for
+ compatibility.
+
+Sun Jul 24 18:47:37 2005 Ben Pfaff <blp@gnu.org>
+
+ * pfm-read.c: (read_version_data) Read and ignore author field.
+
+Wed Jul 6 20:44:27 2005 Ben Pfaff <blp@gnu.org>
+
+ * 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" <mdb@radix.net>.
+
+Mon Jul 4 18:01:15 2005 Ben Pfaff <blp@gnu.org>
+
+ * flip.c: [HAVE_SYS_TYPES_H] Really include <sys/types.h>. The
+ preprocessor test for sys/types.h was accidentally inverted. This
+ was bug 12789.
+
+Sun Jul 3 22:47:39 2005 Ben Pfaff <blp@gnu.org>
+
+ * 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 <blp@gnu.org>
+
+ Fix NDEBUG compile errors.
+
+ * hash.h: Needed explicit #include <assert.h>.
+
+ * linked-list.c: (ll_next) First arg is UNUSED when NDEBUG is
+ defined.
+
+Sun Jun 12 23:44:38 2005 Ben Pfaff <blp@gnu.org>
+
+ 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 <blp@gnu.org>
+
+ 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 <blp@gnu.org>
+
+ 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 <blp@gnu.org>
+
+ 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 <blp@gnu.org>
+
+ Fix bug 11894.
+
+ * output.c: (outp_read_devices) Fix message.
+
+Fri May 27 12:34:43 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * 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 <blp@gnu.org>
+
+ 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 <blp@gnu.org>
+
+ * 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 <john@darrington.wattle.id.au>
+
+ * 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 <john@darrington.wattle.id.au>
+
+ *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 <john@darrington.wattle.id.au>
+
+ * 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 <blp@gnu.org>
+
+ * 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 <blp@gnu.org>
+
+ * data-out.c: (format_and_round) Don't output leading `-' if value
+ rounds to zero.
+
+Tue May 17 00:06:43 2005 Ben Pfaff <blp@gnu.org>
+
+ 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 <blp@gnu.org>
+
+ 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 <blp@gnu.org>
+
+ * 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 <blp@gnu.org>
+
+ 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 <blp@gnu.org>
+
+ 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 <john@darrington.wattle.id.au>
+
+ * dfm-read.c: Fixed polarity of test in dfm-close-reader. Closes
+ Bug #13082
+
+Tue May 10 20:08:18 2005 Ben Pfaff <blp@gnu.org>
+
+ * 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 <blp@gnu.org>
+
+ 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 <john@darrington.wattle.id.au>
+
+ * sysfile-info.c: Fixed bug [# 13024 ]
+
+Sun May 8 13:52:12 2005 Ben Pfaff <blp@gnu.org>
+
+ "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 <john@darrington.wattle.id.au>
+
+ * 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 <blp@gnu.org>
+
+ 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 <blp@gnu.org>
+
+ 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 <john@darrington.wattle.id.au>
+
+ * casefile.c: Removed unnecessary #include <valgrind/valgrind.h>
+
+Tue May 3 19:14:48 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * 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 <john@darrington.wattle.id.au>
+
+ * 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 <blp@gnu.org>
+
+ 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 <blp@gnu.org>
+
+ 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 <blp@gnu.org>
+
+ * lexer.c: (lex_error) Improve error messages.
+
+Mon May 2 22:28:17 2005 Ben Pfaff <blp@gnu.org>
+
+ * 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 <blp@gnu.org>
+
+ * flip.c: [HAVE_SYS_TYPES_H] Include <sys/types.h>. Fixes bug
+ 12789.
+
+Mon May 2 22:02:52 2005 Ben Pfaff <blp@gnu.org>
+
+ * 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 <blp@gnu.org>
+
+ * var-display.c: (cmd_variable_alignment) Fix memory leak.
+ (cmd_variable_level) Ditto.
+
+Sun May 1 22:49:04 2005 Ben Pfaff <blp@gnu.org>
+
+ 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 <blp@gnu.org>
+
+ * dictionary.c: (dict_clone) Properly copy vectors.
+
+Sun May 1 22:07:58 2005 Ben Pfaff <blp@gnu.org>
+
+ 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 <blp@gnu.org>
+
+ * algorithm.c: (move_element) New function.
+
+Sun May 1 22:05:35 2005 Ben Pfaff <blp@gnu.org>
+
+ * aggregate.c: (parse_aggregate_functions) Always initialize
+ destvar.
+
+Sun May 1 22:03:47 2005 Ben Pfaff <blp@gnu.org>
+
+ * 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 <john@darrington.wattle.id.au>
+
+ * 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 <blp@gnu.org>
+
+ * expressions/parse.c: Improve previous fix for bug 12858 (LAG).
+
+Fri Apr 29 09:28:00 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * 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 <john@darrington.wattle.id.au>
+
+ * 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 <john@darrington.wattle.id.au>
+
+ * command.def echo.c: Added the ECHO command.
+
+Mon Apr 25 22:55:59 2005 Ben Pfaff <blp@gnu.org>
+
+ Finish fixing MATCH FILES (bug 11677).
+
+ * get.c: (trim_dictionary) Rewrite in terms of drop_variables(),
+ keep_variables(), rename_variables().
+ (drop_variables) New function.
+ (keep_variables) New function.
+ (struct mtf_file) Rename `in' to `in_name'. Add `in_var'.
+ (cmd_match_files) Deal with in_var. Use drop_variables(),
+ keep_variables(). When IN is specified, require BY. Set master
+ variables after master dictionary is complete. Add IN variables
+ after master dictionary is complete.
+ (mtf_free_file) Free `in_name'.
+ (mtf_delete_file_in_place) Set in_var value to 0.
+ (mtf_read_nonactive_records) Rephrase.
+ (mtf_processing) Support IN. Rephrase. Fix bugs.
+ (mtf_merge_dictionary) Don't set master variables; we do that
+ later now.
+ (get_master) Don't insist that there's a master variable.
+
+Mon Apr 25 22:55:22 2005 Ben Pfaff <blp@gnu.org>
+
+ Kluge to make some variable renaming sort of work.
+ Needs real fix.
+
+ * dictionary.c: (dict_rename_var) Call dict_add_longvar_entry().
+
+Mon Apr 25 22:52:28 2005 Ben Pfaff <blp@gnu.org>
+
+ Add functions for comparing sets of variables between cases.
+ Use the functions.
+
+ * case.c: (case_compare) New function.
+ (case_compare_2dict) New function.
+
+ * aggregate.c: (struct agr_proc) Remove `prev_break' member. Add
+ `break_case'.
+ (cmd_aggregate) Nullify break_case. Don't call
+ initialize_aggregate_info().
+ (agr_destroy) Destroy break_case.
+ (aggregate_single_case) Rewrite. Use case_compare().
+ (dump_aggregate_info) Copy from break_case into output.
+ (initialize_aggregate_info) Copy break_case from input.
+
+ * get.c: (mtf_compare_BY_values) Use case_compare_2dict().
+
+ * vfm.c: (equal_splits) Use case_compare().
+
+Sat Apr 23 17:01:04 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * dictionary.c vars-prs.c sfm-write.c: Fixed some memory leaks
+
+Sun Apr 17 23:08:15 2005 Ben Pfaff <blp@gnu.org>
+
+ Start work on fixing MATCH FILES.
+
+ * get.c: (enum operation) Remove OP_MATCH.
+ (trim_dictionary) Change return value to bool. Don't support
+ OP_MATCH.
+ (struct mtf_file) Remove `first', `last' members.
+ (struct mtf_proc) Add `first', `last' members. Change mtf_case
+ from `struct ccase *' to `struct ccase'. Remove `by' member.
+ (cmd_match_files) Essentially rewrite.
+ (mtf_free) Don't free `by' member. Destroy `mtf_case' member.
+ (mtf_read_nonactive_records) mtf_ parameter is not unused.
+ (mtf_processing) Ditto. Also rephrase some code.
+ (mtf_merge_dictionary) Rewrite for easy comprehension.
+
+Sun Apr 17 23:06:00 2005 Ben Pfaff <blp@gnu.org>
+
+ * matrix-data.c: (wr_output_data) [DEBUGGING] Fix compilation
+ error.
+
+ * q2c.c: (dump_token) [DEBUGGING] Fix compilation error.
+
+Thu Apr 14 2005 John Darrington
+
+ * var-display.c: New file.
+
+ * format.h var.h sfm-read.c sfm-write.c dictionary.c : Added
+ display_width, measure and alignment parameters to variables.
+
+ * aggregate.c command.def compute.c count.c data-list.c descript.c
+ dictionary.c dictionary.h expr-prs.c file-type.c flip.c get.c
+ lexer.c lexer.h loop.c modify-vars.c pfm-read.c recode.c repeat.c
+ sfm-read.c sfm-write.c sfm-write.h sfmP.h val-labs.c val.h var.h
+ vars-prs.c vector.c :
+ - Replaced literal constants representing maximum variable name
+ length with macro definitions.
+ - Added support for long variable names.
+ - Changed lexer such that it no longer makes tokens upper
+ case, but relies upon case insensitive behaviour of commands.
+
+Mon Apr 4 22:27:34 2005 Ben Pfaff <blp@gnu.org>
+
+ * aggregate.c: (parse_aggregate_functions) If dict_create_var()
+ fails, don't dereference the resulting null pointer (bug 12427).
+ Also, fix double free error.
+
+Sat Mar 19 23:06:02 2005 Ben Pfaff <blp@gnu.org>
+
+ * aggregate.c: (parse_aggregate_functions) Fix N_NO_VARS format.
+ (accumulate_aggregate_info) Set int1 to 1 for SUM.
+ (dump_aggregate_info) Only make SUM non-missing if there was at
+ least one variate.
+
+Sat Mar 19 14:48:19 2005 Ben Pfaff <blp@gnu.org>
+
+ * aggregate.c: (dump_aggregate_info) Properly test whether the
+ destination variable is numeric, when making the result
+ system-missing for columnwise missing values.
+
+Mon Mar 14 21:52:34 2005 Ben Pfaff <blp@gnu.org>
+
+ * misc.h: Remove GCC specializations.
+
+Mon Mar 14 21:07:23 2005 Ben Pfaff <blp@gnu.org>
+
+ Make sort stable (bug 12313).
+
+ * sort.c: Don't need to include some headers anymore.
+ (static var min_buffers) New variable.
+ (static var max_buffers) New variable.
+ (static var allow_internal_sort) New variable.
+ (cmd_sort_cases) Add test mode.
+ (sort_execute) Rephrase.
+ (do_internal_sort) Don't try internal sorting if
+ allow_internal_sort is set.
+ (struct external_sort) Renamed `initial_runs' to `runs' and
+ updated all references.
+ (macro MIN_BUFFER_TOTAL_SIZE_RECS) Removed.
+ (macro MIN_BUFFER_SIZE_BYTES) Removed.
+ (macro MIN_BUFFER_SIZE_RECS) Removed.
+ (compare_initial_runs) Removed.
+ (struct record_run) Add member `idx'.
+ (write_initial_runs) Pass increasing values to process_case() as
+ index.
+ (process_case) Add `idx' parameter and use it to initialize new
+ `idx' member.
+ (allocate_cases) Limit allocated buffers to max_buffers.
+ (compare_record_run) Use new `idx' member for last resort
+ comparison, for stability.
+ (end_run) Call casefile_sleep() on irs->casefile, to prevent
+ running out of file descriptors.
+ (struct merge_state) Removed.
+ (merge) Don't need to allocate cases. Always use MAX_MERGE_ORDER
+ unless we have fewer runs left. Always merge consecutive runs,
+ for stability. Return the final run.
+ (mod) Removed.
+ (choose_merge) New function.
+ (merge_once) Rewritten.
+
+Mon Mar 14 21:05:42 2005 Ben Pfaff <blp@gnu.org>
+
+ * cmdline.c: (static var testing_mode) Move into
+ parse_command_line().
+
+Mon Mar 14 21:05:13 2005 Ben Pfaff <blp@gnu.org>
+
+ * algorithm.c: (remove_range) New function.
+ (remove_element) New function.
+
+ * dictionary.c: (dict_delete_var) Use remove_element().
+
+ * flip.c: (cmd_flip) Ditto.
+
+Sun Mar 13 22:52:05 2005 Ben Pfaff <blp@gnu.org>
+
+ * file-handle.q: (struct file_handle) `open_mode' should not be
+ const.
+
+Sun Mar 13 22:40:54 2005 Ben Pfaff <blp@gnu.org>
+
+ First phase of making SORT CASES stable (bug 12313).
+
+ * sort.c: (struct indexed_case) New structure.
+ (do_internal_sort) Rewrite to make internal sorting stable.
+ (compare_case_dblptrs) Removed.
+ (compare_indexed_cases) New function.
+
+Sun Mar 13 22:38:40 2005 Ben Pfaff <blp@gnu.org>
+
+ Clean-ups.
+
+ * casefile.c: (casereader_read_xfer_assert) New function.
+
+ * dictionary.c: (dict_compact_case) New function.
+
+ * flip.c: (struct flip_pgm) New member idx_to_fv.
+ (cmd_flip) Initialize idx_to_fv member.
+ (destroy_flip_pgm) Free idx_to_fv member.
+ (flip_sink_write) Use struct flip_pgm member instead of case_sink
+ member.
+ (flip_sink_write) Ditto.
+
+ * vfm.c: (write_case) Use dict_compact_case() instead of
+ compact_case().
+ (compact_case) Removed.
+ (storage_source_create) Removed `dict' parameter. All references
+ updated.
+
+ * vfm.h: (struct case_source) Removed `value_cnt' member. All
+ references removed.
+ (struct case_sink) Removed `dict', `idx_to_fv' members. All
+ references removed.
+
+Sun Mar 13 22:35:55 2005 Ben Pfaff <blp@gnu.org>
+
+ More AGGREGATE fixes.
+
+ * aggregate.c: (accumulate_aggregate_info) Implement NMISS and
+ NUMISS for strings. Fix FOUT, POUT, FGT, FLT, FIN, FOUT for
+ strings.
+ (initialize_aggregate_info) Fix initialization for MIN, MAX for
+ strings.
+
+Sat Mar 12 23:26:21 2005 Ben Pfaff <blp@gnu.org>
+
+ Start work on testing and debugging AGGREGATE.
+
+ * aggregate.c: (cmd_aggregate) Use discrete bool variables instead
+ of a bit-map. Require proper subcommand ordering. Make OUTFILE
+ subcommand mandatory.
+ (parse_aggregate_functions) Check that PIN, POUT, FIN, FOUT
+ functions' arguments are in the correct order and swap them if
+ not.
+ (accumulate_aggregate_info) Make SUM include weights. Add various
+ string functions.
+ (dump_aggregate_info) Add various string functions.
+ (initialize_aggregate_info) Initialize int1 for MIN, MAX.
+
+ * sort.c: (sort_parse_criteria) Add parameter for returning
+ whether any directions were specified. All callers updated.
+
+Sun Mar 13 14:54:27 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * t-test.q: Fixed erroneous logic in compare_group_binary.
+
+Sat Mar 12 13:29:21 2005 Ben Pfaff <blp@gnu.org>
+
+ * split-file.c: (cmd_split_file) Ignore LAYERED and SEPARATE
+ keywords (bug 11628).
+
+Sat Mar 12 13:17:12 2005 Ben Pfaff <blp@gnu.org>
+
+ * 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 <blp@gnu.org>
+
+ * file-handle.q: (struct file_handle) Change open_mode from
+ character pointer to 3-char array, for safety. Updated all
+ references.
+
+Sat Mar 12 12:15:49 2005 Ben Pfaff <blp@gnu.org>
+
+ Thanks to Ben Kujala <bkujala@oregonchildcare.org> for reporting
+ these bugs.
+
+ * pfm-read.c: (read_header) Improve error message for many cases
+ in which the input is not actually a portable file.
+
+ * file-handle.q: (fh_open) When we give an error message, actually
+ return NULL.
+
+Fri Mar 11 11:50:30 2005 Ben Pfaff <blp@gnu.org>
+
+ * format.c: (check_common_specifier) New function for checks
+ common to check_input_specifier() and check_output_specifier().
+ (check_input_specifier) Use check_common_specifier().
+ (check_output_specifier) Use check_common_specifier().
+ (check_string_specifier) Removed.
+ (check_specifier_type) New function.
+ (check_specifier_width) New function.
+ (get_format_var_width) Fix bug.
+
+ * formats.c: (internal_cmd_formats) Only accept numeric variables.
+
+ * lexer.c: (check_id) Rename lex_id_to_token(), make public,
+ update all references. Make case-insensitive.
+
+ * pfm-read.c: Essentially rewrite the whole file. Now much
+ cleaner.
+
+ * print.c: (check_string_width) New function.
+ (fixed_parse_compatible) Use check_string_width(),
+ check_specifier_type().
+ (dump_fmt_list) Ditto.
+
+ * str.c: (st_trim_copy) New function.
+ (st_uppercase) New function.
+
+ * vars-atr.c: (var_is_valid_name) New function.
+
+ * expressions/parse.c: (type_coercion_core) Use
+ check_specifier_type().
+
+Fri Mar 11 11:31:24 2005 Ben Pfaff <blp@gnu.org>
+
+ * expressions/evaluate.c: (cmd_debug_evaluate) Fix memory leaks.
+
+ * expressions/parse.c: (no_match) Ditto.
+
+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
+
+ * permissions.c Inhibited the PERMISSIONS command when SAFER is on.
+
+ * command.def Added a lot more unimplemented commands.
+
+ * copyleft.[ch] cmdline.c Moved legal information to copyleft.c
+
+Sat Jan 8 23:58:34 2005 Ben Pfaff <blp@gnu.org>
+
+ * sort.c: (compare_initial_runs) Needed additional level of
+ dereferencing.
+ (merge_once) Fix plenty of stupid mistakes.
+
+Sat Jan 8 23:55:27 2005 Ben Pfaff <blp@gnu.org>
+
+ * casefile.c: (casefile_sleep) Need to flush_buffer() after
+ calling casefile_to_disk() or we will lose the last block in the
+ file if the casefile started out as disk-based.
+ (casefile_get_reader) Initialize reader->destructive to 0.
+ (cmd_debug_casefile) Add new test pattern.
+ (test_casefile) Define new test pattern to make sure
+ casefile_sleep() works properly.
+
+Fri Jan 7 08:00:05 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * Makefile.am chart.[ch] histogram.[ch] piechart.c (Modified);
+ plot-hist.c plot-chart.c (Added) Reorganised these files in an
+ attempt to seperate the creation and processing of charts from their
+ actuall renedering.
+
+ * examine.q frequencies.q generated charts conditional upon the NO_CHARTS
+ macro.
+
+Thu Jan 6 18:48:58 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * main.c Added a signal handler for SIGFPE
+
+ * sort.c Somewhat more robust fix to the previous entry.
+
+Wed Jan 5 21:23:31 2005 Ben Pfaff <blp@gnu.org>
+
+ * sort.c: (merge) Fix assertion for proper Huffman merge pattern:
+ 0 == 1 modulo 1. See Knuth 5.4.9 (vol. 3, 2nd ed.,
+ pp. 361). Thanks to John Darrington <john@cellform.com.au> for
+ reporting the bug.
+
+Wed Jan 5 22:42:26 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * case.h Fixed bug # 11307
+
+Wed Jan 5 08:30:48 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * val-labs.c Fixed bug which caused a crash if VALUE LABELS had
+ a trailing slash.
+
+Mon Jan 3 17:44:37 2005 Ben Pfaff <blp@gnu.org>
+
+ * pfm-read.c: (read_variables) Remove direct manipulation of
+ v->aux, which is no longer needed. Fixes bug 11483.
+
+Sat Jan 1 19:01:16 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * data-list.c Fixed a bug in parsing delimiters.
+
+ * group.c vars-atr.c Fixed buglet in hash/compare functions for alpha
+ values.
+
+ * percentiles.c Properly handled calculation of Tukey hinges where
+ the number of data is small.
+
+ * oneway.q Used the generic value_to_string function for independent
+ variable instead of trying to do it ourselves.
+
+ * box-whisker.c Fixed a buglet which caused a crash if the number of
+ data was zero
+
+
+Fri Dec 31 16:47:45 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * examine.q box-whisker.c chart.h Implemented boxplots in EXAMINE
+
+ * percentiles.c Fixed some bugs when calculating percentiles when
+ there's a small number of cases.
+
+Wed Dec 29 08:18:08 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * percentiles.[ch] Added. Calculates percentiles and Tukey hinges
+
+ * examine.q factor_stats.[ch] Added calculation of percentiles
+
+Fri Dec 24 15:09:11 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * t-test.q Fixed bug #11227 Made t-test work when the independent
+ variable is alpha
+
+Sat Dec 11 11:43:45 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * factor_stats.c Fixed calculation of trimmed mean under various
+ special conditions.
+
+Sat Dec 4 17:14:45 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * histogram.c chart.[ch] factor_stats.c frequencies.q
+
+ Added code to calculate sensible histogram ranges and limits.
+
+Thu Dec 2 13:37:43 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * chart.h Updated to reflect many API changes.
+
+ * cartesian.c chart.c Moved the definitions of chart_write_{xy}scale from
+ cartesian.c and into chart.c
+
+ * factorstats.[ch] Added the histogram calculations
+
+ * casefile.c Removed an unused variable.
+
+ * frequencies.q examine.q histogram.c Reworked the API for
+ histograms.
+
+ * piechart.c Revised the API for piecharts.
+
+ * var.h Moved the definitions of freq_tab and freq out of var.h
+ and into frequencies.q where they belong.
+
+Tue Nov 30 21:10:20 2004 Ben Pfaff <blp@gnu.org>
+
+ * flip.c: (flip_file) Check for off_t separately from fseeko(),
+ using AC_TYPE_OFF_T.
+
+Tue Nov 30 08:47:41 2004 Ben Pfaff <blp@gnu.org>
+
+ * flip.c: (flip_file) If fseeko() is not available, use long int
+ for off_t. Thanks to "Marshall DeBerry" <mdb@radix.net> for
+ reporting the problem.
+
+Mon Nov 29 12:20:59 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * examine.q factor_stats.[ch] Changed stderr to se_mean to avoid
+ conflict with stdio.
+
+Sun Nov 21 10:32:41 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * var-labs.c (var_to_string) Now returns null if the variable is null
+
+ * value-labels.c (value_to_string) Made it return null if either the
+ value or the variable is null.
+
+ * hash.c (hsh_clear) Fixed a buglet.
+
+ * examine.q factor_stats.[ch] Largely rewrote, because I'd started
+ with the wrong model.
+
+ * casefile.[ch] Added a function to return the casereader.case_idx
+ member
+
+ * examine.q Implemented the extreme values results.
+
+John Darrington <john@darrington.wattle.id.au>
+
+ * settings.h set.c glob.[ch] frequencies.q q2c.c error.c lexer.[ch]
+ output.[ch] getline.c
+
+ Plugged some memory leaks
+
+Mon Nov 15 23:47:40 2004 Ben Pfaff <blp@gnu.org>
+
+ Adopt GSL random number generators, paving the way for providing
+ the complete suite of random number generators on expressions.
+
+ * Makefile.am: Remove random.c, random.h.
+
+ * random.c: Removed.
+
+ * random.h: Removed.
+
+ * algorithm.c: (algo_default_random) Use GSL functions.
+
+ * casefile.c: (test_casefile) Use GSL RNG functions.
+
+ * expr-evl.c: (expr_evaluate) Use GSL RNG functions for OP_NORMAL,
+ OP_UNIFORM.
+
+ * sample.c: (cmd_sample) Use GSL RNG functions.
+ (sample_trns_proc) Ditto.
+
+ * set.q: (static var set_seed) Removed.
+ (static var seed_flag) Removed.
+ (static var rng) New variable.
+ (aux_stc_custom_seed) No seed value anymore, don't print anything.
+ (stc_custom_seed) Use new seed functions.
+ (seed_is_set) Removed.
+ (get_rng) New function that composes the entire external
+ interface.
+ (set_rng) New function.
+ (random_seed) New function.
+
+Mon Nov 15 22:08:25 2004 Ben Pfaff <blp@gnu.org>
+
+ * expr-evl.c: (expr_evaluate) Fix XDATE.JDAY formula. Thanks to
+ John Darrington <john@darrington.wattle.id.au> for reporting this
+ bug.
+
+Tue Nov 16 13:19:18 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * permissions.c command.def Added the PERMISSIONS command
+
+Mon Nov 15 01:33:32 2004 Ben Pfaff <blp@gnu.org>
+
+ * q2c.c: (dump_header) Don't try to emit #includes at very top of
+ output file because that will precede #include <config.h>, which
+ is bad.
+ (main) Add needed headers to /* (header) */ code.
+
+Mon Nov 15 01:21:36 2004 Ben Pfaff <blp@gnu.org>
+
+ Instead of making system or portable file readers responsible for
+ dropping and reordering variables, make them read full cases and
+ let the caller take care of any changes.
+
+ * get.c: New "case map" structure to handle this. Use for GET,
+ IMPORT, MATCH FILES. Essentially rewrite the whole file.
+
+ * pfm-read.c: (pfm_read_case) Read into provided case. Signature
+ changed appropriately.
+
+ * sfm-read.c: (sfm_read_case) Ditto.
+
+Mon Nov 15 00:47:45 2004 Ben Pfaff <blp@gnu.org>
+
+ Decided that case_serialize() and case_unserialize() were too
+ abstract. Also we need a couple more functions to avoid excessive
+ copying for data in/out fast paths.
+
+ * case.c: (case_serial_size) Removed.
+ (case_serialize) Rename case_to_values() and make its argument
+ explicitly an array of union values.
+ (case_unserialize) Rename case_from_values() and make its argument
+ explicitly an array of union values.
+ (case_data_all) New function.
+ (case_data_all_rw) New function.
+
+ * casefile.c: (struct casefile) Change buffer from array of
+ unsigned char to array of union value for better accuracy.
+ Redefine buffer_used and buffer_size in terms of values, not
+ bytes. Remove case_size because it is now redundant with
+ value_cnt. Fix up all references to these members.
+
+Mon Nov 15 00:45:46 2004 Ben Pfaff <blp@gnu.org>
+
+ * barchart.c: (struct subcat) Make `label' member const to silence
+ GCC warning with -Wwrite-strings.
+
+ * cartesian.c: (struct dataset) Ditto.
+
+ * case.c: Don't re-define NDEBUG if already defined.
+ Add lots of comments.
+
+ * str.c: Fix includes.
+
+ * crosstabs.q: Fix includes.
+
+ * examine.q: Fix includes. Fix GCC warning about unused
+ variables.
+
+ * frequencies.q: (stat macro) Removed and replaced where used by
+ its expansion.
+
+ * list.q: Fix includes.
+
+ * oneway.q: Fix includes.
+
+ * piechart.c: Fix includes. Only define M_PI if not already
+ defined.
+
+ * sfm-read.c: (bswap) New function.
+ (bswap_int32) Write in terms of bswap.
+ (bswap_flt64) Ditto.
+
+ * str.c: (ds_data) Add external definition here, needed because
+ str.h has only an `extern inline' version.
+
+ * value-labels.c: Fix includes.
+
+Mon Nov 15 00:40:55 2004 Ben Pfaff <blp@gnu.org>
+
+ Instead of providing a system or portable file writer with a raw
+ case in the format needed for output, provide it with a regular
+ case. The writer takes care of any needed translation.
+
+ * aggregate.c: Adopt new scheme for AGGREGATE.
+ (struct agr_proc) sfm_agr_case member removed.
+ (write_case_to_sfm) Removed because the new interface is easier to
+ use.
+
+ * get.c: Adopt new scheme for SAVE, XSAVE, EXPORT.
+
+ * pfm-write.c: Implement new scheme.
+
+ * sfm-write.c: Ditto.
+
+Mon Nov 15 00:32:24 2004 Ben Pfaff <blp@gnu.org>
+
+ Instead of treating `struct file_handle' as a class to subclass
+ into data files, system files, and portable files, instead use it
+ as a helper that coordinates access. Now it is opaque, too.
+
+ This means that most references to a struct file_handle are now
+ changed into references to one of struct dfm_reader, struct
+ dfm_writer, struct sfm_reader, struct sfm_writer, struct
+ pfm_reader, or struct pfm_writer, according to what's being read
+ or written.
+
+ Most related changes are only worth summarizing briefly.
+
+ * dictionary.c: (dict_clear) Destroy aux data in deleted
+ variables.
+ (dict_clear_aux) New function.
+ (dict_create_var) Initialize aux, aux_dtor.
+ (dict_delete_var) Destroy aux data in deleted variable.
+
+ * file-handle.h: (struct fh_ext_class) Removed.
+ (struct file_handle) Removed.
+ (fh_init_files) Removed.
+
+ * file-handle.q: Changed references to a handle's `private' member
+ to direct references.
+ (struct private_file_handle) Renamed file_handle.
+ Add next, open_cnt, type, open_mode, aux members.
+ (struct file_handle_list) Removed.
+ (extern var inline_file) Removed.
+ (static var file_handles) Changed from file_handle_list * to
+ file_handle *.
+ (create_file_handle) Initialize new members.
+ (fh_close_handle) Removed.
+ (mode_name) New function.
+ (fh_open) New function.
+ (fh_close) New function.
+ (fh_parse_file_handle) Renamed fh_parse().
+
+ * glob.c: (init_glob) Remove fh_init_files() call.
+
+ * aggregate.c: use sfm_writer.
+ (create_sysfile) Removed because the new interface is simpler.
+
+ * apply-dict.c: Use sfm_reader.
+
+ * data-list.c: Use dfm_reader.
+
+ * file-type.c: Use dfm_reader.
+
+ * get.c: Use sfm_reader, sfm_writer, pfm_reader, pfm_writer.
+
+ * inpt-pgm.c: Use dfm_reader.
+
+ * print.c: Use dfm_writer.
+
+ * sysfile-info: Use sfm_reader.
+
+ * dfm-read.c: Adopt new file handle infrastructure.
+
+ * dfm-write.c: Ditto.
+
+ * pfm-read.c: Ditto.
+
+ * pfm-write.c: Ditto.
+
+ * sfm-read.c: Ditto.
+
+ * sfm-write.c: Ditto.
+
+Mon Nov 15 00:31:44 2004 Ben Pfaff <blp@gnu.org>
+
+ Break dictionary functions into separate header file.
+
+ * dictionary.h: New file.
+
+ * var.h: Moved dict_*() functions to dictionary.h.
+
+Mon Nov 15 00:30:33 2004 Ben Pfaff <blp@gnu.org>
+
+ Get rid of procedure-specific union in struct variable, using
+ instead a void * pointer and a destructor function.
+
+ Most related changes are only worth brief summaries.
+
+ * crosstabs.q: Fix includes. Use new struct var_range in lieu of
+ old p.crs member in struct variable.
+
+ * frequencies.q: Fix includes. Use new struct var_freqs in lieu
+ of old p.frq member in struct variable.
+
+ * histogram.c: (draw_histogram) Takes new freq_tab arg because
+ it's no longer possible to grab this from var->p.frq.
+
+ * piechart.c: (draw_piechart) Ditto.
+
+ * group.c: (group_proc_get) New function.
+
+ * levene.c: Use group_proc_get() in lieu of old p.grp_data member
+ in struct variable.
+
+ * oneway.q: Ditto.
+
+ * t-test.q: Ditto.
+
+ * main.c: (execute_command) Clear aux data in default_dict after
+ each command. (It's debatable whether this should be done.)
+
+ * matrix-data.c: Use new struct mxd_var in lieu of old p.mxd
+ member in struct variable.
+
+ * means.q: Get rid of integer mode, which is not included in
+ recent SPSS and was the only code that wanted per-variable private
+ data.
+
+ * var.h: (struct crosstab_proc) Removed.
+ (struct frequencies_proc) Removed.
+ (struct list_proc) Removed.
+ (struct get_proc) Removed.
+ (struct means_proc) Removed.
+ (struct matrix_data_proc) Removed.
+ (struct match_files_proc) Removed.
+ (lots of enums) Removed.
+ (struct variable) Removed members `p', `get'. Add member
+ `aux_dtor'.
+
+ * vars-atr.c: (var_attach_aux) New function.
+ (var_detach_aux) New function.
+ (var_clear_aux) New function.
+ (var_dtor_free) New function.
+ (discard_variables) Use NULL instead of inline_file.
+
+Fri Nov 12 10:07:11 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * value-labs.c Fixed the implmentation of value_to_string, so
+ that it properly handles alpha values.
+
+ * oneway.q Changed instances where labels were being probed manually,
+ to use the canonical {var,value}_to_string functions
+
+Thu Nov 11 21:01:31 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * examine.q cartesian.c chart.[ch] Added normal and detrended normal
+ plots. Changed the API of the cartesian plot to be a much lower level
+ thing.
+
+Sun Nov 7 17:25:04 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * examine.q Added some of the parametric calculations
+
+ * factor_stats.[ch] Created
+
+Sat Nov 6 21:24:31 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * examine.q Changed the definition of factors to be a composite, and
+ dealt with the consequences.
+
+Sat Nov 6 20:40:38 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * examine.q Fixed problem where examine wasn't dealing properly with
+ splits
+
+Sat Nov 6 14:49:47 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * oneway.q Fixed problem where oneway wasn't dealing properly with
+ splits
+
+Thu Nov 4 11:09:01 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * q2c.c examine.q Fixed a bug (feature?) whereby arrays in the
+ command which had settings didn't get the appropriate code
+ generated.
+
+ * val.h value-labels.[ch] var-labs.c Added v*to_string functions
+ to convert variables/values to strings.
+
+ * examine.q Added framework for the EXAMINE command.
+
+Mon Nov 1 12:46:17 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * q2c.c frequencies.q set.q t-test.q Fixed the q2c parsing of DBL
+ subcommand types. Changed frequencies.q to use it rather then the
+ custom parser. Dealt with the consequences. Added a test for NTILES
+ subcommand of frequencies.
+
+Sat Oct 30 09:16:29 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * oneway.q Fixed up the behaviour when given missing values
+
+ * levene.c oneway.q Fixed a buglet with the levene statistic and
+ incorporated the levene test into the oneway command.
+
+ * group.h t-test.q Moved the CMP_EQ and CMP_LE symbols out of
+ global scope, since they're only relevant to T-TEST
+
+Fri Oct 29 17:39:03 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * group.c group.h group_proc.h levene.c oneway.q t-test.q
+
+ Made the t-test more consistent
+ with the way it handles groups. That is, it now uses a hash instead
+ of an array of 2. Also, made the levene.c file independent of the
+ implementation of the t-test. So now levene should be fine for both
+ t-test and anova.
+
+ * Added an oneway.q file for one way anova
+
+Wed Jun 2 22:08:02 2004 Ben Pfaff <blp@gnu.org>
+
+ * descript.c: (cmd_descriptives) Remove harmless but bogus test in
+ STATISTICS parsing.
+
+Mon May 31 20:45:24 2004 Ben Pfaff <blp@gnu.org>
+
+ Fix memory leaks.
+
+ * data-list.c: (cmd_data_list) Free dls->delims on lossage.
+ (data_list_trns_free) Free dls->delims.
+
+ * t-test.q: (tts_custom_pairs) Free vars.
+ (ssbox_one_sample_init) Fix tab_vline() argument.
+ (ssbox_independent_samples_init) Ditto.
+ (trbox_paired_init) Ditto.
+ (trbox_one_sample_init) Ditto.
+
+Mon May 31 17:19:27 2004 Ben Pfaff <blp@gnu.org>
+
+ Generalize casefiles to the extent that we can use them for
+ sorting and other kinds of data transformations. Change cases to
+ be copy-on-write to improve memory efficiency in common cases.
+ Every access to a member of a `struct ccase' was changed to be a
+ call to a case_*() function, especially case_data(), case_num(),
+ case_str(), or case_data_rw(). Many instances of a local variable
+ named "case_num" were changed to "case_idx" as a consequence.
+ Many `struct ccase *' were changed to actual `struct ccase'
+ because of copying semantics of cases. In several places there
+ was a choice between updating debug code to work with the new ADTs
+ or just deleting it because it was useless; I chose to delete it.
+
+ * Makefile.am: (pspp_SOURCES) Add case.c, case.h.
+
+ * case.c: New file.
+
+ * case.h: New file.
+
+ * aggregate.c: (struct agr_proc) Change type of `sort' to
+ sort_criteria *. Add `break_vars', `break_var_cnt' members.
+ Rename `vars' to `agr_vars', all references updated. Change
+ `agr_case' to type `struct ccase'.
+ (cmd_aggregate) Deal with new members. Use case_create(),
+ sort_active_file_in_place(), sort_active_file_to_casefile().
+ (agr_destroy) Deal with new members.
+ (aggregate_single_case) Ditto.
+ (dump_aggregate_info) Ditto.
+ (initialize_aggregate_info) Ditto.
+ (agr_to_active_file) Ditto.
+ (presorted_agr_to_sysfile) Ditto.
+ (sort_agr_to_sysfile) Removed.
+
+ * alloc.c: (out_of_memory) Make non-static.
+
+ * alloc.h: Prototype out_of_memory().
+
+ * casefile.c: Switched from a linked list in-memory representation
+ to a two-level array-style representation. The linked list was
+ appropriate when we could stick a header onto cases, but that's no
+ longer the case. Also, the two-level array will allow for random
+ in-memory access in case that's ever wanted. Also added the
+ concept of a `destructive casereader', one that destroys cases in
+ the underlying casefile as they are read out.
+ (macro CASES_PER_BLOCK) New macro.
+ (struct casefile) New members `value_cnt', `case_list_size',
+ `case_acct_size', `being_destroyed', `cases'. Removed `head',
+ `tail'.
+ (struct casereader) Removed `cur'. Added `destructive', `c'.
+ (global var casefiles) Made static.
+ (static var case_bytes) New var.
+ (casefile_create) Takes a value count, not a case size in bytes,
+ to conform to the case interface. All callers updated. Deal with
+ new and removed members.
+ (casefile_destroy) Deal with new and removed members.
+ (casefile_sleep) New function.
+ (casefile_get_case_size) Removed.
+ (casefile_get_value_cnt) New function.
+ (casefile_append) Rewritten to deal with new and removed members.
+ (casefile_append_xfer) New function.
+ (write_case_to_disk) Use case_serialize().
+ (call_posix_fadvise) Removed because posix_fadvise64 segfaults.
+ Couldn't figure out why.
+ (casefile_to_disk) Don't call call_posix_fadvise. Rewritten to
+ deal with new and removed members.
+ (merge) Removed.
+ (merge_sort) Removed.
+ (casefile_sort) Removed.
+ (casefile_get_reader) Deal with new and removed members.
+ (casefile_get_destructive_reader) New function.
+ (reader_open_file) Make code more readable. Create case for
+ reader.
+ (casereader_get_casefile) New function.
+ (casereader_read) Deal with new and removed members. Now returns
+ a copy of the case, so that the caller is responsible for
+ destroying the returned case.
+ (casereader_read_xfer) New function.
+ (casereader_destroy) Destroy reader's case.
+ (test_casefile) Second arg is now a value count, all callers
+ updated. Now tests destructive readers too.
+ (get_random_case) Deal with new case ADT.
+ (write_random_case) Ditto.
+ (read_and_verify_random_case) Ditto.
+
+ * crosstabs.q: Remove debug code.
+
+ * descript.q: (calc_descriptives) Deal with new case, casefile
+ ADTs.
+
+ * dfm.c: (cmd_begin_data) There's no storage_source_class anymore.
+
+ * do-if.c: Remove unneeded header inclusion.
+
+ * expr-prs.c: Remove debug code.
+
+ * exprP.h: Remove debug code.
+
+ * flip.c: (flip_file) Use fseeko() if available.
+
+ * formats.c: Remove debug code.
+
+ * get.c: Remove debug code.
+ (struct mtf_file) Change `input' from `union value *' to `struct
+ ccase', all references updated.
+
+ * levene.c: (levene) Deal with new case, casefile ADTs.
+
+ * list.q: Remove debug code.
+
+ * loop.c: Remove debug code.
+
+ * matrix-data.c: Remove debug code.
+
+ * means.q: Remove debug code.
+
+ * mis-val.c: Remove debug code.
+
+ * pfm-read.c: Remove debug code.
+ (pfm_read_code) Change second arg from `union value *' to `struct
+ ccase *', all references updated.
+
+ * recode.c: (string_to_long) Make first arg const.
+ (convert_to_double) Ditto.
+
+ * repeat.c: Remove debug code.
+
+ * sample.c: Remove debug code.
+
+ * sfm-read.c: Remove debug code.
+ (sfm_read_case) Change second arg from `union value *' to `struct
+ ccase *'.
+
+ * sort.c: Redone in terms of casefiles.
+ (enum sort_direction) Moved here from sort.h.
+ (struct sort_criterion) New structure.
+ (struct sort_criteria) New structure.
+ (cmd_sort_cases) Rewritten.
+ (prepare_to_sort_active_file) New function.
+ (sort_active_file_in_place) New function.
+ (sort_active_file_to_casefile) New function.
+ (parse_sort) Renamed sort_parse_criteria(), rewritten & interface
+ changed, all callers updated.
+ (destroy_sort_cases_pgm) Renamed sort_destroy_criteria(),
+ rewritten & interface changed, all callers updated.
+ (sort_cases) Renamed sort_execute(), rewritten & interface
+ changed, all callers updated.
+ (struct internal_sort) Removed.
+ (do_internal_sort) Rewritten, interface changed.
+ (destroy_internal_sort) Removed.
+ (compare_case_dblptrs) Use sort_criteria instead of sort_case_pgm.
+ (struct initial_run) Removed; an initial run is now just a
+ casefile.
+ (compare_initial_runs) Rewritten.
+ (struct external_sort) Changed almost completely.
+ (do_external_sort) Rewritten, interface changed.
+ (destroy_external_sort) Rewritten.
+ [HAVE_MKDTEMP] (make_temp_dir) Removed.
+ [!HAVE_MKDTEMP] (do_mkdir) Removed.
+ [!HAVE_MKDTEMP] (make_temp_dir) Removed.
+ (init_external_sort) Removed.
+ (simulate_error) Removed.
+ (rmdir_temp_dir) Removed.
+ (get_temp_file_name) Removed.
+ (open_temp_file) Removed.
+ (close_temp_file) Removed.
+ (remove_temp_file) Removed.
+ (write_temp_file) Removed.
+ (read_temp_file) Removed.
+ (struct record_run) Change `record' from `struct case_lit *' to
+ `struct ccase'.
+ (struct initial_run_state) Remove `idx_to_fv', `free_list',
+ `file_idx', `output_file'. Add `run', casefile'. Change
+ `last_output' from `struct case_list *' to `struct ccase'.
+ (write_initial_runs) Change interface, rewrite.
+ (sort_sink_write) Renamed process_case(), changed interfaced,
+ rewrote.
+ (destroy_initial_run_state) Rewritten.
+ (allocate_cases) Rewritten.
+ (compare_record) Interface changed, rewritten.
+ (start_run) Rewritten.
+ (end_run) Rewritten.
+ (output_record) Rewritten.
+ (grab_case) Removed.
+ (release_case) Removed.
+ (struct merge_case) Change `cases' from double pointer to single
+ pointer.
+ (merge) Deal with new case and casefile ADTs.
+ (struct run) Removed.
+ (merge_once) Rewritten, interface changed.
+ (fill_run_buffer) Removed.
+ (sort_sink_make_source) Removed.
+ (sort_sink_class) Removed.
+ (struct sort_source_aux) Removed.
+ (sort_source_read_helper) Removed.
+ (sort_source_read) Removed.
+ (read_sort_output) Removed.
+ (read_internal_sort_output) Removed.
+ (read_external_sort_output) Removed.
+ (sort_source_destroy) Removed.
+ (sort_source_class) Removed.
+
+ * sort.h: (struct sort_cases_pgm) Removed.
+ (enum sort_direction) Moved to sort.c.
+
+ * t-test.q: (calculate) Deal with new case, casefile ADTs.
+
+ * tab.c: Remove debug code.
+
+ * var-labs.c: Remove debug code.
+
+ * var.h: (struct ccase) Removed.
+ (struct case_list) Removed.
+
+ * vars-atr.c: (discard_variables) Use free_case_source().
+
+ * vars-prs.c: (parse_vs_variable) Make arg const.
+ (parse_dict_variable) Ditto.
+ (parse_variables) Make struct dictionary * arg const.
+ (parse_var_set_vars) Make struct var_set * arg const.
+ (struct var_set) Add const to some of the function pointers' args.
+ (var_set_get_cnt) Make arg const.
+ (var_set_get_var) Make first arg const.
+ (var_set_lookup_var) Make first arg const.
+ (dict_var_set_get_cnt) Make arg const.
+ (dict_var_set_get_var) Make first arg const.
+ (dict_var_set_lookup_var) Make first arg const.
+ (var_set_create_from_dict) Make arg const. Add cast to aux
+ assignment.
+ (struct array_var_set) Add const to var member.
+ (array_var_set_get_cnt) Make arg const.
+ (array_var_set_get_var) Make first arg const.
+ (array_var_set_lookup_var) Make first arg const.
+ (var_set_create_from_array) Make first arg const. Insert cast.
+
+ * vfm.c: (struct write_case_data) Change trns_case, sink_case
+ members from `struct ccase *' to `struct ccase'.
+ (static var lag_queue) Change from double to single pointer.
+ (procedure) Optimize trivial case.
+ (internal_procedure) Deal with changed case, case_source ADTs.
+ (create_trns_case) Changed interface, rewrote.
+ (open_active_interface) Initialize modified lag queue.
+ (write_case) Deal with changed case ADT.
+ (lag_case) Deal with modified lag queue.
+ (close_active_file) Destroy modified lag queue.
+ Deal with changed case_source, case_sink ADTs.
+ (destroy_storage_stream_info) Make null arg into no-op.
+ (storage_sink_make_source) Set aux in created source.
+ (storage_source_read) Deal with changed case, casefile ADTs.
+ (storage_source_create) New function.
+ (lagged_case) Rewrite.
+ (free_case_source) New function.
+ (free_case_sink) Rewrite.
+ (struct split_aux_data) Changed prev_case from `struct ccase *' to
+ `struct ccase'.
+ (procedure_with_splits) Deal with changed prev_case.
+ (procedure_with_splits_callback) Ditto.
+ (multipass_split_aux_data) Changed prev_case from `struct ccase *' to
+ `struct ccase'.
+ (multipass_procedure_with_splits) Deal with changed prev_case.
+ (multipass_split_callback) Ditto.
+
+
+Mon May 31 17:19:06 2004 Ben Pfaff <blp@gnu.org>
+
+ The workspace idea didn't work out.
+
+ * Makefile.am: (pspp_SOURCES) Remove workspace.c, workspace.h.
+
+ * workspace.c: Removed.
+
+ * workspace.h: Removed.
+
+Sun May 30 18:35:19 2004 Ben Pfaff <blp@gnu.org>
+
+ Fully implement arbitrary delimiters on DATA LIST, extending the
+ half implementation that was already there.
+
+ * data-list.c: (struct data_list_pgm) Remove `delim', add
+ `delims', `delim_cnt'.
+ (cmd_data_list) Initialize new members. Parse delimiters and
+ clean up code a bit.
+ (cut_field) Extract fields with arbitrary delimiters. Also, fix
+ handling of leading commas.
+ (read_from_data_list_fixed) Expand tabs. Adapt to new DFM
+ interfaces.
+ (read_from_data_list_free) Adapt to new DFM interfaces.
+ (read_from_data_list_list) Ditto.
+ (repeating_data_trns_proc) Ditto.
+
+ * dfm.c: Split up reader and writer into separate code, because
+ they do different things. Use struct string instead of explicit
+ allocation code, for clarity.
+ (enum dfm_reader_flags) New enum.
+ (struct dfm_fhuser_ext) Removed.
+ (struct dfm_reader_ext) New.
+ (get_reader) New function, used by just about all the reader
+ functions.
+ (dfm_close) Removed.
+ (close_reader) New function.
+ (dfm_open_for_reading) Rewrite initialization of dfm_fhuser_ext.
+ (dfm_open_for_writing) Ditto.
+ (macro force_line_buffer_expansion) Removed.
+ (count_tabs) Removed.
+ (tabs_to_spaces) Removed.
+ (read_record) Deal with new dfm_reader_ext. Use struct string
+ functions. Don't convert tabs to spaces.
+ (dfm_eof) New function.
+ (dfm_get_record) Changed interface, rewrote.
+ (dfm_expand_tabs) New function.
+ (dfm_fwd_record) Renamed dfm_forward_record(), updated to new
+ dfm_reader_ext, rewritten.
+ (dfm_bkwd_record) Renamed dfm_reread_record(), updated to new
+ dfm_reader_ext, rewritten.
+ (dfm_set_record) Removed in favor of dfm_forward_columns().
+ (dfm_forward_columns) New function.
+ (dfm_get_cur_col) Renamed dfm_column_start, updated to new
+ dfm_reader_ext, rewritten.
+ (static var dfm_r_class) Use close_reader for the destructor.
+ (struct dfm_writer_ext) New.
+ (dfm_put_record) Updated to new dfm_writer_ext, rewritten. Uses
+ bounce buffer now instead of local allocation.
+ (close_writer) New function.
+ (static var dfm_writer_ext) Use close_writer for destructor.
+ (cmd_begin_data) Adapt to new dfm_reader_ext.
+
+ * file-handle.q: Add support for per-file tab width.
+ (struct private_file_handle) Add tab_width member.
+ (q2c specifications) Add tabwidth subcommand.
+ (cmd_file_handle) Put parsed tab width into private_file_handle.
+ (create_file_handle) Set default tab width.
+ (handle_get_tab_width) New function.
+
+ * file-type.c: (file_type_source_read) Adapt to new DFM interface.
+
+ * inpt-pgm.c: (reread_trns_proc) Ditto.
+
+ * matrix-data.c: (context) Ditto.
+ (another_token) Ditto.
+ (mget_token) Ditto.
+ (force_eol) Ditto.
+
+Sun May 30 18:33:59 2004 Ben Pfaff <blp@gnu.org>
+
+ * casefile.c: (casefile_destroy) Fix memory leak by freeing
+ cf->filename.
+ (casereader_destroy) Don't close file descriptor -1.
+
+ * recode.c: (cmd_recode) Fix memory leak.
+
+ * set.q: (q2c specifications) Fix typo in user message.
+
+ * str.c: (st_bare_pad_len_copy) Change memcpy to memmove to avoid
+ undefined behavior for overlapping arguments.
+
+Sun May 30 18:31:48 2004 Ben Pfaff <blp@gnu.org>
+
+ * casefile.c: valgrind doesn't implement posix_fadvise() yet, so
+ don't call it when we're running under valgrind.
+ (call_posix_fadvise) New function.
+ (casefile_to_disk) Use call_posix_fadvise().
+ (reader_open_file) Ditto.
+
+Sun May 30 18:20:12 2004 Ben Pfaff <blp@gnu.org>
+
+ Update our string ADTs, struct string and struct len_string. Get
+ rid of pool support, which was largely unused. Rename lots of
+ functions to have more obvious or consistent names.
+
+ * ascii.c: Get rid of ascii_pool. It was only used for string
+ allocations.
+ (ascii_open_global) Don't create ascii_pool.
+ (ascii_close_driver) Don't destroy ascii_pool.
+ (ascii_postopen_driver) Don't use pool.
+ (ascii_close_driver) Destroy strings manually.
+
+ * str.c: (ds_create) Remove pool argument, all references updated.
+ (ds_init) Ditto.
+ (ds_replace) Remove pool support, make more efficient when we
+ don't need to reallocate.
+ (ds_destroy) Remove pool support.
+ (ds_rpad) New function.
+ (ds_size) Renamed ds_capacity(), all references updated.
+ (ds_value) Renamed ds_c_str(), all references updated.
+ (ds_concat) Renamed ds_puts(), all references updated.
+ (ds_concat_buffer) Renamed ds_concat(), all references updated.
+ (ds_putchar) Renamed ds_putc(), all references updated.
+ (ds_getline) Renamed ds_gets(), all references updated.
+ (ls_create) Remove pool argument, all references updated.
+ (ls_create_buffer) Ditto.
+ (ls_destroy) Removed pool support.
+ (ls_value) Renamed ls_c_str(), all references updated.
+
+ * str.h: (ls_length) [__GNUC__] Add inline version.
+ (ls_c_str) [__GNUC__] Add inline version.
+ (ls_end) [__GNUC__] Add inline version.
+ (struct string) Remove pool member. Rename `size' to `capacity',
+ all references updated.
+
+ * tab.c: (text_format) Instead of using pool argument to
+ ls_create_buffer(), call pool_register() on allocated data.
+
+Mon Apr 26 22:40:07 2004 Ben Pfaff <blp@gnu.org>
+
+ We're abusing the current ASCII driver by telling it to allocate a
+ 9999-line, 9999-character page in the tests. This causes some
+ systems to curl up and die because it allocates 20 MB of
+ contiguous RAM. This change alleviates at least part of the
+ problem. It is mostly a stop-gap until the new output system is
+ ready.
+
+ * ascii.c: (struct line) New structure.
+ (struct ascii_driver_ext) Remove `page', `page_size', `line_len',
+ `line_len_size', `n_output' members. Add `lines', `lines_cap'.
+ (ascii_preopen_driver) Initialize new members, not old ones.
+ (ascii_close_driver) Destroy new members, not old ones.
+ (ascii_open_page) Allocate new members, not old ones.
+ (expand_line) Allocate room in line.
+ (draw_line) Use new members.
+ (ascii_line_horz) Ditto.
+ (ascii_line_vert) Ditto.
+ (ascii_line_intersection) Ditto.
+ (text_draw) Ditto.
+ (output_lines) Ditto.
+ (ascii_close_page) Ditto.
+
+Sun Apr 25 23:40:15 2004 Ben Pfaff <blp@gnu.org>
+
+ * matrix.c: Dead code. Removed.
+
+ * matrix.h: Dead code. Removed.
+
+Fri Apr 16 23:59:51 2004 Ben Pfaff <blp@gnu.org>
+
+ Contrary to what I'd always understood, there is an efficient
+ algorithm for deletion from a hash table populated via linear
+ probing. This change implements it.
+
+ * hash.c: (hsh_rehash) Probe in increasing order.
+ (hsh_probe) Ditto.
+ (locate_matching_entry) Ditto.
+ (hsh_delete) Use Knuth's Algorithm 6.4R for deletion.
+
+Tue Apr 13 19:24:15 2004 Ben Pfaff <blp@gnu.org>
+
+ * moments.c (calc_moments): Adjust calculation of kurtosis to
+ avoid subtracting huge numbers from huge numbers, on Michael
+ Kiefte's advice.
+
+Sun Apr 11 14:22:12 2004 Ben Pfaff <blp@gnu.org>
+
+ Rework moments routines for improved numerical stability based on
+ Michael Kiefte's advice. Any bugs or remaining numerical problems
+ are still mine though.
+
+ There is now a struct moments1 for use with one-pass moments. It
+ uses a provisional means algorithm as an attempt to improve
+ accuracy of higher moments. The older struct moments now only
+ handles two-pass moments.
+
+ * aggregate.c: Use moments1 instead moments.
+
+ * descript.c: Revert previous change, which is no longer needed
+ due to the moments revision.
+
+ * moments.c: (calc_moments) New function for calculating variance,
+ skewness, kurtosis.
+ (moments_pass_one) Only accumulate weights bigger than zero.
+ (moments_calculate) Allow calculating the mean on pass one, others
+ require pass two. Implement in terms of calc_moments().
+ (struct moments1) New structure.
+ (init_moments1) New function.
+ (moments1_clear) Ditto.
+ (moments1_create) Ditto.
+ (moments1_add) Ditto.
+ (moments1_calculate) Ditto.
+ (moments1_destroy) Ditto.
+ (cmd_debug_moments) Deal with `struct moments' or `struct
+ moments1' as requested by user.
+
+Sun Apr 11 14:21:55 2004 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am (pspp_SOURCES): Remove debug.c.
+
+ * debug.c: Removed. It was empty anyway.
+
+Fri Apr 9 20:04:49 2004 Ben Pfaff <blp@gnu.org>
+
+ * descript.c (calc_descriptives): Fix assert failure when only
+ MOMENT_MEAN is needed.
+
+2004-04-09 Michael Kiefte <mkiefte@dal.ca>
+
+ * descript.c:
+
+ fixed problem with parsing in match_statistic() causing
+ "DESCRIPTIVE STAT=MEAN." to barf.
+
+ "MEAN" is now default if "SORT" given without specification.
+
+ Fixed infinite loop with "DESCRIPT GIBBERISH=ALL." Parsing is
+ generally less forgiving of syntax errors: better to have it do
+ nothing and type it in again then to not know what it actually did
+ instead.
+
+ z-score transformation now checks score for user-missing values
+ and checks std_dev for SYSMIS.
+
+2004-04-06 Michael Kiefte <mkiefte@dal.ca>
+
+ * aggregate.c, crosstabs.q, descript.c, dictionary.c, frequencies.q, levene.c, t-test.q, var.h:
+ Changed dict_get_case_weight() to accept an additional int * flag
+ to complain about system-missing, user-missing, zero, or negative
+ weights and updated existing functions to pass int * to
+ dict_get_case_weight().
+
+2004-04-05 jmd <jmd@gnu.org>
+
+ * main.c: Fixed configuration problems with gsl
+
+ * t-test.q: Fixed some problems encountered when compiling under Cygwin
+
+2004-04-03 blp <blp@gnu.org>
+
+ * lexer.c, ChangeLog:
+ Fix infinite loop on comment at end of file, add test.
+
+2004-04-03 jmd <jmd@gnu.org>
+
+ * settings.h, var.h, ChangeLog, Makefile.am, cmdline.c, command.c, command.h, error.h, filename.c, frequencies.q, lexer.h, main.c, q2c.c, set.q:
+ Fixed the calculation of percentiles and added --syntax and --algorithm options
+
+Sat Apr 3 11:43:37 2004 Ben Pfaff <blp@gnu.org>
+
+ * lexer.c: (lex_skip_comment) Handle end-of-file correctly (I
+ hope).
+
+Sat Apr 3 15:00:18 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * frequencies.q: Fixed the calculation of percentiles
+
+ * Makefile.am: Added the --ansi flag and dealt with the
+ consequences. Added some entries to PSPP_sources so that
+ make distcheck would pass
+
+ * cmdline.c: Added the --syntax and --algorithm options
+
+ * q2c.c: Added an implicit /ALGORITHM subcommand to everything.
+
+Fri Apr 2 11:25:22 WAST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * t-test.q, levene.c, levene.h Converted t-test (incl levene) to
+ use the new multipass_split_... mechanism.
+
+Wed Mar 31 22:36:22 2004 Ben Pfaff <blp@gnu.org>
+
+ * frequencies.q: (calc_stats) Use moments data structure and
+ calc_seskew(), calc_sekurt() functions.
+
+ * set.q main.c settings.h Added support for --syntax and --algorithm
+ options
+
+Tue Mar 30 22:04:19 2004 Ben Pfaff <blp@gnu.org>
+
+ * vfm.c: Had to get last call to multipass_split_output() inside
+ open_active_file()/close_active_file() pairing, so introduce new
+ function.
+ (internal_procedure) Move procedure() code here, except for calls
+ to open_active_file() and close_active_file().
+ (procedure) Wrap open_active_file() and close_active_file() around
+ internal_procedure().
+ (multipass_procedure_with_splits) Wrap open_active_file() and
+ close_active_file() around internal_procedure().
+
+Tue Mar 30 22:01:57 2004 Ben Pfaff <blp@gnu.org>
+
+ * descript.c: (cmd_descriptives) Free `vars' to avoid memory leak.
+
+Mon Mar 29 16:26:40 2004 Ben Pfaff <blp@gnu.org>
+
+ * debug.c: Removed. Moved cmd_debug_evaluate() into expr-evl.c.
+
+ * expr-evl.c: (cmd_debug_evaluate) Moved here from debug.c.
+
+Mon Mar 29 16:03:08 2004 Ben Pfaff <blp@gnu.org>
+
+ * algorithm.c: By default turn off some of the more expensive
+ assertions.
+ (expensive_assert) New macro which expands to assert if
+ EXTRA_CHECKS is defined, to nothing otherwise.
+ (unique) Use expensive_assert().
+ (binary_search) Ditto.
+ (push_heap) Ditto.
+ (pop_heap) Ditto.
+ (make_heap) Ditto.
+ (sort_heap) Ditto.
+
+ * command.c: (conflicting_3char_prefixes) Words that are the same
+ don't cause conflicts when they are abbreviated to the first three
+ letters.
+
+ * expr-evl.c: (CONCAT_func) Fix memory leak by incrementing struct
+ nonterm_node's n earlier.
+ (generic_str_func) Ditto.
+
+Mon Mar 29 15:32:17 2004 Ben Pfaff <blp@gnu.org>
+
+ Add support for multipass procedures. Rewrite DESCRIPTIVES to
+ test multipass support, take advantage of new moments
+ calculation, and to not be such crappy code. Get rid of q2c
+ processing for DESCRIPTIVES.
+
+ * vfm.c: (struct multipass_split_aux_data) New structure.
+ (multipass_procedure_with_splits) New function.
+ (multipass_split_callback) New function.
+ (multipass_split_output) New function.
+ * descript.q: Removed.
+
+ * descript.c: New file.
+
+ * var.h: Removed descriptives enums.
+ (struct descriptives_proc) Removed.
+ (struct variable) Removed p.dsc.
+
+ * Makefile.am: (q_sources_c) Remove descript.c.
+ (q_sources_q) Removed descript.q.
+
+Mon Mar 29 15:31:55 2004 Ben Pfaff <blp@gnu.org>
+
+ New manager for keeping track of used workspace.
+
+ * workspace.c: New file.
+
+ * workspace.h: New file.
+
+ * Makefile.am: (pspp_SOURCES) Add workspace.c, workspace.h.
+
+ * sort.c: (do_internal_sort) Use workspace_malloc().
+ (destroy_internal_sort) Use workspace_free().
+
+Mon Mar 29 15:31:08 2004 Ben Pfaff <blp@gnu.org>
+
+ New `struct casefile' for managing sets of cases.
+
+ * casefile.c: New file.
+
+ * casefile.h: New file.
+
+ * command.def: Add DEBUG CASEFILE command.
+
+ * Makefile.am: (pspp_SOURCES) Add casefile.c, casefile.h.
+
+ * sort.c: (sort_cases) Move logic for sending storage file to disk
+ into do_external_sort().
+ (struct internal_sort) Use an array of ccase pointers instead of a
+ case_list.
+ (do_internal_sort) Rewrite to handle casefiles.
+ (compare_case_list) Removed.
+ (compare_cases) New function.
+ (compare_case_dblptrs) New function.
+ (read_internal_sort_output) Deal with new struct internal_sort.
+
+ * vfm.c: (static var workspace_overflow) Removed.
+ (struct storage_stream_info) Removed all the members. Added
+ struct casefile * member.
+ (storage_sink_open) Use casefile.
+ (open_storage_file) Removed.
+ (write_storage_file) Removed.
+ (storage_to_disk) Removed.
+ (destroy_storage_stream_info) Use casefile.
+ (storage_sink_write) Use casefile.
+ (storage_sink_make_source) Use casefile.
+ (storage_source_count) Use casefile.
+ (storage_source_read) Use casefile.
+ (storage_source_on_disk) Removed.
+ (storage_source_get_cases) Removed.
+ (storage_source_set_cases) Removed.
+ (storage_source_get_casefile) New function.
+
+Mon Mar 29 15:30:09 2004 Ben Pfaff <blp@gnu.org>
+
+ New `struct moments' for calculating moments.
+
+ * stats.c: Removed.
+
+ * stats.h: Removed.
+
+ * moments.c: New file.
+
+ * moments.h: New file.
+
+ * command.def: Add DEBUG MOMENTS command.
+
+ * Makefile.am: (pspp_SOURCES) Add moments.c, moments.h. Remove
+ stats.c, stats.h.
+
+ * aggregate.c: Modify AGGREGATE to use the new moments
+ calculation, even if not in such a great way.
+ (struct agr_var) Add `moments' member.
+ (parse_aggregate_functions) Set `moments' member to null.
+ (agr_destroy) Destroy `moments' member.
+ (accumulate_aggregate_info) Use `moments' for standard deviation.
+ (dump_aggregate_info) Ditto.
+ (initialize_aggregate_info) Create or clear `moments'.
+
+ * misc.h: Add pow2(), pow3(), pow4() functions in place of sqr(),
+ cube(), pow4() that were in stats.h. All references updated.
+
+ * crosstabs.q: stats.h had chi-square significance functions. Use
+ GSL instead.
+ (display_chisq) Use gsl_cdf_chisq_Q() instead of chisq_sig().
+
+ * expr-evl.c: (expr_evaluate) Use moments_of_values() for
+ OP_CFVAR, OP_MEAN, OP_SD, OP_VARIANCE.
+
+Fri Mar 26 14:21:23 2004 Ben Pfaff <blp@gnu.org>
+
+ * dictionary.c: (dict_compact_values) Compacted values need to
+ start off from 0.
+
+Fri Mar 26 00:54:57 2004 Ben Pfaff <blp@gnu.org>
+
+ * var-labs.c: (cmd_variable_labels) For compatibility, don't allow
+ `/' at start. Check return value of parse_variables() for error
+ return.
+
+Fri Mar 26 00:19:27 2004 Ben Pfaff <blp@gnu.org>
+
+ Revamp expressions: make the code a little nicer, and fix bugs
+ found in testing.
+
+ * expr-evl.c: (expr_evaluate) Make expression argument const.
+ Support OP_ADD, OP_SUB, OP_MUL, OP_DIV instead of OP_PLUS, OP_MUL.
+ OP_POW is missing for arg 2 <= 0. OP_LOG is natural log, not
+ base-10 log. Fix OP_ANY, OP_ANY_STRING, OP_RANGE, OP_RANGE_STRING
+ off-by-ones. Add OP_MAX_STRING, OP_MIN_STRING. Fix OP_TIME_HMS,
+ OP_DATE_WKYR boundary conditions. Add OP_CTIME_DAYS,
+ OP_CTIME_HOURS, OP_CTIME_MINUTES, OP_CTIME_DAYS, OP_CTIME_SECONDS.
+ Support OP_INDEX_2, OP_INDEX_3, OP_RINDEX_2, OP_RINDEX_3 instead
+ of OP_INDEX, OP_INDEX_OPT, OP_RINDEX, OP_RINDEX_OPT. Merge
+ OP_LPAD_OPT into OP_LPAD, OP_RPAD_OPT into OP_RPAD, OP_LTRIM_OPT
+ into OP_LTRIM, OP_RTRIM_OPT into OP_RTRIM, OP_NUMBER_OPT into
+ OP_NUMBER. Fix OP_RTRIM fragility. Support OP_SUBSTR_2,
+ OP_SUBSTR_3 instead of OP_SUBSTR, OP_SUBSTR_OPT. Remove OP_INV.
+ Simplify OP_SYSMIS. Remove OP_STR_MIS.
+
+ * expr-opt.c: (optimize_expression) Rewrite.
+ (macro n0) Removed.
+ (macro n1) Removed.
+ (macro n2) Removed.
+ (macro s0) Removed.
+ (macro s0l) Removed.
+ (macro s1) Removed.
+ (macro s1l) Removed.
+ (macro s2) Removed.
+ (macro s2l) Removed.
+ (macro s) Removed.
+ (macro sl) Removed.
+ (eq_num_con) New function.
+ (optimize_tree) New function.
+ (macro rnc) Removed.
+ (macro frnc) Removed.
+ (str_search) Add const to string params.
+ (str_rsearch) Ditto.
+ (evaluate_tree_no_missing) Renamed from evaluate_tree. Add num[],
+ str[], str_len[] locals to substitute for most of removed macros.
+ Support OP_ADD, OP_SUB, OP_MUL, OP_DIV instead of OP_PLUS, OP_MUL.
+ Removed support for missing values because we're never called with
+ missing values. Use set_number() or set_number_errno() instead of
+ rnc or frnc. Removed any stuff that caused trouble in testing.
+ We can re-add it later if it really slows anything. Fix some
+ random problems.
+ (evaluate_tree_with_missing) Not yet supported. To be added later
+ if it's important.
+ (repl_num_con) Removed.
+ (collapse_node) New function.
+ (force_repl_num_con) Removed.
+ (set_number) New function.
+ (set_number_errno) New function.
+ (repl_str_con) Removed.
+ (set_string) New function.
+ (yrmoda) Tighten boundary conditions. Adopt 2030 cut-off for
+ 2-digit years.
+ (dump_node) No special case for OP_AND, OP_OR.
+
+ * expr-prs.c: (expr_prs) Honor EXPR_NO_OPTIMIZE bit. Rewrite.
+ (expr_get_type) New function.
+ (type_check) Rewrite.
+ (type_coercion) New function.
+ (struct operator) New structure.
+ (match_operator New function.
+ (parse_binary_operators) New function.
+ (parse_inverting_unary_operator) New function.
+ (parse_or) Rewritten.
+ (parse_and) Rewritten.
+ (parse_not) Rewritten.
+ (parse_rel) Rewritten.
+ (parse_add) Rewritten.
+ (parse_mul) Rewritten.
+ (parse_neg) Rewritten.
+ (parse_exp) Rewritten.
+ (parse_sysvar) Add $TRUE, $FALSE system variables.
+ Get $LENGTH, $WIDTH from get_viewlength(), get_viewwidth().
+ (parse_primary) Use allocate_var_node(), allocate_num_con(),
+ allocate_str_con().
+ (struct function) Remove desc, change `func' prototype.
+ (unary_func) Remove special cases.
+ (MISSING_func) Reduce to unary_func() that just returns a boolean.
+ (SYSMIS_func) Handle SYSMIS((x)) like SYSMIS(x).
+ (VALUE_func) Use allocate_var_node().
+ (nary_num_func) Allow MIN and MAX for strings.
+ Use allocate_var_node(). Properly clean up.
+ Fix return type.
+ (generic_str_func) Use local table instead of removed `desc'
+ member. Mostly rewrite.
+ (get_num_args) Revise error message.
+ (parse_function) Return EXPR_ERROR, not 0 on error.
+ (macro op) Removed.
+ (macro varies) Removed.
+ (ops[]) Use expr.def.
+ (free_node) Do nothing if node is null.
+ (allocate_num_con) New function.
+ (allocate_str_con) New function.
+ (allocate_var_node) New function.
+ (allocate_binary_nonterminal) New function.
+ (append_nonterminal_arg) Removed.
+ (static var func_tab[]) Revised.
+ (expr_debug_print_postfix) Make parameter const.
+ Use printf() instead of debug_printf().
+
+ * expr.def: New file.
+
+ * expr.h: Change PXP_* to EXPR_*, all references updated. Also
+ use named enum instead of unnamed, all references updated. Add
+ EXPR_ANY, EXPR_NO_OPTIMIZE.
+
+ * exprP.h: Remove EX_*. Add DEFINE_OPERATOR. Use expr.def
+ instead of defining OP_* directly.
+ (macro IS_TERMINAL) New macro.
+ (macro IS_NONTERMINAL) New macro.
+ (enum OP_NO_FLAGS) New.
+
+Fri Mar 26 00:18:01 2004 Ben Pfaff <blp@gnu.org>
+
+ * error.c: (err_assert_fail) msg variable needs to be non-const.
+
+Fri Mar 26 00:17:24 2004 Ben Pfaff <blp@gnu.org>
+
+ * debug.c: (cmd_debug_evaluate) Rewrite.
+
+Fri Mar 26 00:15:13 2004 Ben Pfaff <blp@gnu.org>
+
+ Fix some CROSSTABS bit rot stupidity.
+
+ * crosstabs.q: Reorder the CELLS subcommands for compatibility.
+ (internal_cmd_crosstabs) Initializes cells[] correctly.
+ (float_M_suffix) Rename format_cell_entry(), change prototype,
+ rewrite.
+ (display_crosstabulation) Fix cell formatting.
+
+Fri Mar 26 00:14:09 2004 Ben Pfaff <blp@gnu.org>
+
+ Make lex_rest_of_line(), lex_entire_end() not discard lines. Have
+ to call lex_discard_line() to do that.
+
+ * command.c: (run_command) Call lex_discard_line() after
+ lex_rest_of_line().
+
+ * lexer.c: (lex_entire_end) Change behavior.
+ (lex_rest_of_line) Change behavior. Return const char *.
+ (lex_discard_line) Don't clear getl_buf, don't emit message.
+
+ * main.c: (handle_error) Emit message here.
+
+ * repeat.c: (internal_cmd_do_repeat) Use lex_discard_line()
+ instead of lex_entire_line().
+
+ * str.c: (mm_find_reverse) Make length params size_t. Rewrite.
+
+ * title.c: (get_title) Call lex_discard_line() after
+ lex_rest_of_line().
+ (cmd_file_label) Ditto.
+ (cmd_document) Deal with const char * return value.
+
+Fri Mar 26 00:10:16 2004 Ben Pfaff <blp@gnu.org>
+
+ Removed REMARK command.
+
+ * command.c: (extract_prefix) Removed.
+ (output_line) Removed.
+ (cmd_remark) Removed.
+
+ * command.def: Remove REMARK.
+
+Fri Mar 26 00:08:38 2004 Ben Pfaff <blp@gnu.org>
+
+ Added abort() after lots of assert(0) invocations to avoid some
+ compiler warnings. We really need a NOT_REACHED macro.
+
+Tue Mar 23 08:00:42 WAST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * sort.c: Added missing call to temp_file_close. Changed error
+ messages to warnings.
+
+ * set.q: Improved setting of set_view{length,width} to be more tolerant
+ of buggy OSes.
+
+Sun Mar 21 10:11:14 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * val-labs.c: Fixed a bug where PSPP would crash, if VALUE LABELS was
+ used with incorrect syntax.
+
+ * error.c, error.h et al: Overridden definition of assert for a
+ custom one.
+
+ * test-q.c: Fixed a buglet where it would crash if no /VARIABLES
+ subcommand was given when it ought to have been.
+
+Sat Mar 20 22:19:08 2004 Ben Pfaff <blp@gnu.org>
+
+ * tab.c: (tab_vline) Fix assertions to respect row_ofs and
+ col_ofs.
+ (tab_hline) Ditto.
+ (tab_box) Ditto.
+ (tab_joint_text) Ditto.
+
+Sat Mar 20 17:57:23 2004 Ben Pfaff <blp@gnu.org>
+
+ * levene.c: Add #include.
+
+ * set.q: (set_viewport) Add `int' argument to make its prototype
+ correct for signal().
+
+Sat Mar 20 15:35:17 2004 Ben Pfaff <blp@gnu.org>
+
+ * expr-evl.c: (expr_evaluate) Assert that `c' is nonzero before
+ using it.
+
+Sat Mar 20 15:18:16 2004 Ben Pfaff <blp@gnu.org>
+
+ Changed DFM from open-at-first-access to explicit-open. Before,
+ calling dfm_get_record() or dfm_put_record() would automatically
+ open the file. Now, you have to call dfm_open_for_reading() or
+ dfm_open_for_writing() explicitly. This makes it possible to
+ check permissions, file existence, etc. earlier.
+
+ Also made struct file_handle more opaque, and clean up in general.
+
+ * data-list.c: (cmd_data_list) Open handle for reading.
+
+ * dfm.c: (struct dfm_fhuser_ext) Add `where', `saw_begin_data'
+ members.
+ (open_file_r) Renamed dfm_open_for_reading(), rewrote.
+ (open_file_w) Renamed dfm_open_for_writing(), rewrote.
+ (open_inline_file) Removed.
+ (read_record) For inline_file, if we haven't seen BEGIN DATA, read
+ it. Deal with line_number in extension record instead of file
+ handle.
+ (dfm_get_record) Rewrote.
+ (dfm_put_record) Rewrote.
+ (dfm_push) Assert file is open and one of ours. Deal with
+ line_number in extension record instead of file handle.
+ (dfm_pop) Assert file is open and one of ours. Deal with
+ line_number in extension record instead of file handle.
+ (cmd_begin_data) Use dfm_open_for_reading(). Mark that we saw
+ BEGIN DATA.
+
+ * file-handle.h: (enum constants RH_RF_*) Removed.
+ (enum constants FH_MD_*) Removed.
+ (struct file_handle) Removed `name', `norm_fn', `fn', `where',
+ `recform', `lrecl', `mode' members. Public references to
+ `recform' changed to use handle_get_mode(), references to `lrecl'
+ changed to use handle_get_record_width(). Added `private' member.
+ (enum file_handle_mode) New.
+
+ * file-handle.q: (struct private_file_handle) New structure.
+ (struct file_handle_list) New structure.
+ (static var files) New.
+ (static var file_handles) Removed.
+ (init_file_handle) Removed.
+ (create_file_handle) Removed.
+ (get_handle_with_name) New function.
+ (get_handle_for_filename) New function.
+ (cmd_file_handle) Rewritten.
+ (hash_file_handle) Removed.
+ (cmp_file_handle) Removed.
+ (fh_init_files) Rewritten.
+ (fh_parse_file_handle) Rewritten. Allows identifiers as
+ filenames.
+ (fh_get_handle_by_name) Renamed handle_get_name(), all references
+ updated. Rewritten.
+ (fh_get_handle_by_filename) Renamed handle_get_filename(), all
+ references updated. Rewritten.
+ (fh_record_width) Renamed handle_get_record_width(), all
+ references updated. Rewritten.
+ (handle_get_mode) New function.
+
+ * file-type.c: (cmd_file_type) Open handle for reading.
+
+ * filename.c: [unix] (struct file_identity) New structure.
+ [unix] (fn_get_identity) New function.
+ [unix] (fn_free_identity) New function.
+ [unix] (fn_compare_file_identities) New function.
+ [!unix] (struct file_identity) New structure.
+ [!unix] (fn_get_identity) New function.
+ [!unix] (fn_free_identity) New function.
+ [!unix] (fn_compare_file_identities) New function.
+
+ * lexer.c: (static var put) Renamed put_token, all references
+ updated.
+ (static var put_tokstr) New.
+ (static var put_tokval) New.
+ (lex_init) Initialize put_tokstr().
+ (restore_token) New function.
+ (save_token) New function.
+ (lex_get) Use restore_token().
+ (lex_put_back) Use save_token().
+ (lex_put_back_id) New function.
+ (lex_put_forward) Removed.
+ (lex_preprocess_line) Set put_token instead of using
+ lex_put_forward().
+ (lex_negative_to_dash) Use save_token(), set put_token directly.
+ (dump_token) Use stderr instead of stdout.
+
+ * main.c: (main) Remove call to cmd_init().
+
+ * matrix-data.c: (cmd_matrix_data) Open file for reading.
+
+ * pfm-read.c: Use handle_get_filename() instead of trying to use
+ h->fn directly, all over.
+
+ * pfm-write.c: Ditto.
+
+ * print.c: (internal_cmd_print) Open handle for writing.
+ (dump_table) Use handle_get_filename().
+ (print_trns_proc) Use handle_get_mode().
+ (cmd_print_space) Use fh_parse_file_handle().
+ Open handle for writing.
+ [0] (debug_print) Removed.
+
+ * sfm-read.c: Use handle_get_filename() instead of trying to use
+ h->fn directly, all over.
+
+ * sfm-write.c: Ditto.
+
+Sat Mar 20 14:35:48 2004 Ben Pfaff <blp@gnu.org>
+
+ Fix memory leaks.
+
+ * autorecode.c: (arc_free) Free arc->src_values.
+
+ * error.c: (msg) Free buf.
+
+ * val-labs.c: (do_value_labels) Always free vars.
+
+ * vfm.c: (close_active_file) If sink has no make_source then call
+ its destroy function.
+
+Sat Mar 20 14:00:24 2004 Ben Pfaff <blp@gnu.org>
+
+ Fixed cmd_parse() so that it always skips past a full command
+ name. A few special commands for which this would be bad get
+ special treatment. This lets us drop code for skipping past the
+ end of a command name in most cmd_*() functions. It's not worth
+ listing all the commands affected.
+
+ * command.c: (struct command) Remove `cmd' member, replace by
+ `name' member, all references updated. Remove `word', `next',
+ `skip_entire_name' members.
+ (macro DEFCMD) Deal with revised `struct command'.
+ (macro UNIMPL) Ditto.
+ (macro SPCCMD) New macro for commands whose last word shouldn't be
+ skipped.
+ (static array cmd_table[]) Make const, rename `commands', remove
+ sentinel element.
+ (macro COMMAND_CNT) New macro.
+ (split_words) Removed.
+ (cmd_init) Removed.
+ (FILE_TYPE_okay) Make parameter const.
+ (cmd_parse) Improve error messages.
+ (match_strings) New function.
+ (next_word) New function.
+ (enum command_match) New enum.
+ (conflicting_3char_prefixes) New function.
+ (conflicting_3char_prefix_command) New function.
+ (cmd_match_words) New function.
+ (count_matching_commands) New function.
+ (get_command_name) New function.
+ (free_words) New function.
+ (unknown_command_error) New function.
+ (figure_out_command) Renamed parse_command_name(), rewritten.
+
+ * command.def: Removed @ command. Marked BEGIN DATA, DOCUMENT,
+ FILE LABEL, REMARK, SUBTITLE, TITLE as special. Renamed EVALUATE
+ to DEBUG EVALUATE. Added N alias for N OF CASES, SORT alias for
+ SORT CASES.
+
+ * command.h: (macro SPCCMD) New.
+
+ * include.c: (cmd_include_at) Removed.
+ (cmd_include) Allow identifier to be used as filename.
+
+ * inpt-pgm.c: (cmd_reread) Use fh_parse_file_handle().
+
+ * t-test.q: (cmd_t_test) Command name is now parsed for us.
+
+
+Sat Mar 20 13:56:00 2004 Ben Pfaff <blp@gnu.org>
+
+ Start work on better test framework.
+
+ * Makefile.am: (pspp_sources) Add debug.c.
+
+ * debug.c: New file.
+
+ * compute.c: (cmd_evaluate) Moved to debug.c, renamed
+ cmd_debug_evaluate().
+
+ * expr-prs.c: (expr_parse) Remove PXP_DUMP support.
+
+ * expr.h: (enum constant PXP_DUMP) Removed.
+
+Sat Mar 20 00:05:42 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * set.q: Implemented the SHOW command, and synced it to the existing
+ SET cmd.
+
+ Added a handler for SIGWINCH so that viewlength and viewwidth follow
+ changes as the window size is changed.
+
+ Added fallback to set viewlength and viewwidth from LINES and COLUMS
+ environment variables if other methods are not available.
+
+ glob.c: Removed a lot of global variables from glob.c and encapsulated
+ them in set.q
+
+ random.c: Tidied up the way the random seed is set.
+
+ str.c: Added a ds_vprintf function.
+
+ error.c: Extended dump_message so that messages are always broken at
+ '\n' characters.
+
+Thu Mar 18 11:07:14 2004 Ben Pfaff <blp@gnu.org>
+
+ * pfm-write.c: (bufwrite) Write out the correct element for string
+ variables. From Andreas Streichardt <streichardt@globalpark.de>.
+
+Mon Mar 15 20:48:03 2004 Ben Pfaff <blp@gnu.org>
+
+ Get rid of static and global (!) vars in matrix-data.c.
+
+ * matrix-data.c: (static var nr_data) Removed.
+ (static var nr_factor_values) Removed.
+ (static var max_cell_index) Removed.
+ (static var split_values) Removed.
+ (struct nr_aux_data) New structure.
+ (read_matrices_without_rowtype) Use a local struct nr_aux_data in
+ place of static vars, pass to create_case_source() and procedure()
+ as aux data.
+ (nr_read_data_lines) Use struct nr_aux_data * parameter instead of
+ struct matrix_data_pgm *.
+ (nr_read_splits) Ditto.
+ (nr_read_factors) Ditto.
+ (nr_output_data) Ditto.
+ (static var wr_content) Removed.
+ (global var wr_data) Removed.
+ (global var wr_current) Removed.
+ (struct wr_aux_data) New structure.
+ (read_matrices_with_rowtype) Use a local struct wr_aux_data in
+ place of static vars, pass to create_case_source() and procedure()
+ as aux data.
+ (matrix_data_read_with_rowtype) Use struct wr_aux_data * parameter
+ instead of matrix_data_pgm *.
+ (wr_read_splits) Ditto.
+ (wr_output_data) Ditto.
+ (wr_read_rowtype) Ditto.
+ (wr_read_factors) Ditto.
+ (wr_read_indeps) Ditto.
+
+Mon Mar 15 20:07:29 2004 Ben Pfaff <blp@gnu.org>
+
+ Get rid of static vars in autorecode.c.
+
+ * autorecode.c: (struct autorecode_trns) Rename `arc' to `specs',
+ `n_arc' to `spec_cnt'. All references updated.
+ (static var v_src) Removed.
+ (static var v_dest) Removed.
+ (static var h_trns) Removed.
+ (static var nv_src) Removed.
+ (static var descend) Removed.
+ (static var print) Removed.
+ (enum direction) New enum.
+ (struct autorecode_pgm) New structure.
+ (cmd_autorecode) Use struct autorecode_pgm instead of static vars.
+ Move n_dest local var into struct autorecode_pgm for ease of
+ clean-up. Use arc_free().
+ (arc_free) New function.
+ (recode) Modify to take struct autorecode_pgm * parameter instead
+ of using statics. Let the caller clean up.
+ (autorecode_proc_func) Use struct autorecode_pgm * auxiliary data
+ instead of statics. Rearrange code a little.
+
+Mon Mar 15 00:25:02 2004 Ben Pfaff <blp@gnu.org>
+
+ Get rid of static, global vars in recode.c. Remove debug code.
+
+ * recode.c: (static var head) Removed.
+ (global var v) Removed.
+ (global var nv) Removed.
+ (cmd_recode) New local variables head, v, nv. Initialize and free
+ v. Don't call debug_print().
+ [DEBUGGING] (dump_dest) Removed.
+ [DEBUGGING] (debug_print) Removed.
+
+Mon Mar 15 00:14:49 2004 Ben Pfaff <blp@gnu.org>
+
+ Get rid of static vars in expr-opt.c.
+
+ * expr-opt.c: (static var e) Removed.
+ (static var nop) Removed.
+ (static var mop) Removed.
+ (static var ndbl) Removed.
+ (static var mdbl) Removed.
+ (static var nstr) Removed.
+ (static var mstr) Removed.
+ (static var nvars) Removed.
+ (static var mvars) Removed.
+ (struct expr_dump_state) New structure.
+ (dump_expression) Use new struct expr_dump_state instead of static
+ vars and pass to functions we call.
+ (dump_node) Use struct expr_dump_state * parameter.
+ (emit) Ditto.
+ (emit_num_con) Ditto.
+ (emit_str_con) Ditto.
+ (emit_var) Ditto.
+
+Mon Mar 15 00:03:51 2004 Ben Pfaff <blp@gnu.org>
+
+ Get rid of static var in COUNT.
+
+ * count.c: (static var head) Move into cmd_count().
+ (cmd_count) [DEBUGGING] Don't call debug_print.
+ [DEBUGGING] (debug_print) Removed.
+
+Sun Mar 14 23:56:09 2004 Ben Pfaff <blp@gnu.org>
+
+ Get rid of static vars in VALUE LABELS, ADD VALUE LABELS.
+
+ * val-labs.c: (static var v) Removed.
+ (static var nv) Removed.
+ [DEBUGGING] (debug_print) Removed.
+ (verify_val_labs) Add struct variable **, int parameters.
+ (get_label) Ditto. Improve error messages, streamline.
+ (erase_labels) New function for erasing value labels, taking over
+ part of verify_val_labs()'s function.
+ (init) Removed.
+ (done) Removed.
+ (cmd_value_labels) No need to call init() or done() anymore.
+ (cmd_add_value_labels) Ditto.
+ (do_value_labels) Add vars, var_cnt local variables. Clean up
+ after them internally. Call erase_labels() if we should. Don't
+ call debug_print().
+
+Sun Mar 14 23:33:53 2004 Ben Pfaff <blp@gnu.org>
+
+ Get rid of static vars in MATCH FILES.
+
+ * get.c: (static var mtf_head) Removed.
+ (static var mtf_tail) Removed.
+ (static var mtf_by) Removed.
+ (static var mtf_n_by) Removed.
+ (static var mtf_master) Removed.
+ (static var mtf_seq_num) Removed.
+ (static var mtf_seq_nums) Removed.
+ (static var mtf_sink) Removed.
+ (static var mtf_case) Removed.
+ (struct mtf_proc) New structure.
+ (cmd_match_files) Use struct mtf_proc instead of static vars.
+ (mtf_processing_finish) Ditto.
+ (mtf_free) Ditto.
+ (mtf_delete_file_in_place) Ditto.
+ (mtf_read_nonactive_records) Ditto.
+ (mtf_compare_BY_values) Ditto.
+ (mtf_processing) Ditto.
+ (mtf_merge_dictionary) Ditto.
+
+Sun Mar 14 22:48:12 2004 Ben Pfaff <blp@gnu.org>
+
+ * command.def: Add CASESTOVARS, VARSTOCASES unimplemented commands.
+
+ * dictionary.c: (dict_rename_var) Add assertion.
+ (dict_contains_var) Check by index instead of name.
+
+Sun Mar 14 22:01:02 2004 Ben Pfaff <blp@gnu.org>
+
+ Get rid of compaction_necessary, compaction_nval, compaction_case.
+ Redo VFM interface. Replace disk_sink and memory_sink by
+ storage_sink, disk_source and memory_source by storage_source.
+
+ * vfm.h: (struct case_sink) Add `dict', `idx_to_fv', `value_cnt'
+ members.
+
+ * vfm.c:
+ (struct write_case_data) Remove `begin_func', `end_func',
+ `func_aux' members. Add `aux', `trns_case', `sink_case',
+ `cases_written', `cases_analyzed' members.
+ (global var compaction_necessary) Make static.
+ (global var compaction_nval) Removed.
+ (global var compaction_case) Removed.
+ (static var case_count) Removed.
+ (struct procedure_aux_data) Removed.
+ (struct split_aux_data) Removed.
+ (procedure) Remove begin_func, end_func parameters. Rewrite.
+ (static var not_canceled) Removed.
+ (process_active_file) Removed.
+ (process_active_file_write_case) Removed.
+ (process_active_file_output_case) Removed.
+ (prepare_for_writing) Moved into open_active_file().
+ (arrange_compaction) Ditto.
+ (setup_lag) Ditto.
+ (open_active_file) Rewrote.
+ (write_case) New function.
+ [DEBUGGING] (index_to_varname) Removed.
+ (execute_transformations) New function.
+ (exclude_this_case) Renamed filter_case(), changed interface.
+ (clear_case) Added struct ccase * parameter to interface.
+ (close_active_file) Added struct write_case_data * parameter,
+ rewrote.
+ (disk_sink_create) Removed.
+ (disk_sink_destroy) Removed.
+ (disk_sink_make_source) Removed.
+ (disk_sink_write) Removed.
+ (disk_source_count) Removed.
+ (disk_source_destroy) Removed.
+ (disk_source_read) Removed.
+ (global var disk_sink_class) Removed.
+ (global var disk_source_class) Removed.
+ (global var memory_sink_class) Removed.
+ (global var memory_source_class) Removed.
+ (memory_sink_create) Removed.
+ (memory_sink_destroy) Removed.
+ (memory_sink_make_source) Removed.
+ (memory_sink_write) Removed.
+ (memory_source_count) Removed.
+ (memory_source_destroy) Removed.
+ (memory_source_get_cases) Removed.
+ (memory_source_read) Removed.
+ (memory_source_set_cases) Removed.
+ (struct disk_stream_info) Removed.
+ (struct memory_sink_info) Removed.
+ (struct memory_source_info) Removed.
+ (write_active_file_to_disk) Removed.
+ (destroy_storage_stream_info) New function.
+ (global var null_sink_class) New var.
+ (global var storage_sink_class) New var.
+ (global var storage_source_class) New var.
+ (open_storage_file) New function.
+ (storage_sink_destroy) New function.
+ (storage_sink_make_source) New function.
+ (storage_sink_open) New function.
+ (storage_sink_write) New function.
+ (storage_source_count) New function.
+ (storage_source_destroy) New function.
+ (storage_source_get_cases) New function.
+ (storage_source_on_disk) New function.
+ (storage_source_read) New function.
+ (storage_source_set_cases) New function.
+ (storage_source_to_disk) New function.
+ (storage_to_disk) New function.
+ (struct storage_stream_info) New structure.
+ (write_storage_file) New function.
+ (procedure_write_case) Removed.
+ (create_case_source) Add `struct dictionary *' parameter, all
+ references updated.
+ (create_case_sink) Ditto.
+ (free_case_sink) New function.
+ (struct split_aux_data) New structure.
+ (procedure_with_splits) New function implementing what procedure()
+ used to.
+ (SPLIT_FILE_proc_func) Removed.
+ (procedure_with_splits_callback) New function.
+ (equal_splits) New function.
+
+ * aggregate.c: Pass around a struct instead of using statics.
+ (static var outfile) Remove.
+ (enum type) Give it tag `missing_treatment'.
+ (static var missing) Remove.
+ (static var sort) Remove.
+ (static var agr_first) Remove.
+ (static var agr_next) Remove.
+ (static var case_count) Remove.
+ (static var prev_case) Remove.
+ (static var buf64_1xx) Remove.
+ (static var buf_1xx) Remove.
+ (struct agr_proc) New structure incorporating the above.
+ (cmd_aggregate) Use new struct. Clean up error handling using
+ agr_destroy(). Completely rewrite actual implementation of
+ aggregation.
+ (create_sysfile) Add struct agr_proc * parameter, modify
+ accordingly.
+ (parse_aggregate_functions) Ditto.
+ (free_aggregate_functions) Ditto. Rename agr_destroy().
+ (aggregate_single_case) Add struct agr_proc * parameter, modify
+ accordingly.
+ (accumulate_aggregate_info) Ditto.
+ (dump_aggregate_info) Ditto.
+ (initialize_aggregate_info) Ditto.
+ (agr_00x_trns_proc) Removed.
+ (agr_00x_end_func) Removed.
+ (agr_10x_trns_proc) Removed.
+ (agr_10x_trns_free) Removed.
+ (agr_10x_end_func) Removed.
+ (agr_11x_read) Removed.
+ (agr_11x_finish) Removed.
+ [DEBUGGING] (debug_print) Removed.
+ (write_case_to_sfm) Add struct agr_proc * parameter, modify
+ accordingly.
+ (agr_to_active_file) New function.
+ (presorted_agr_to_sysfile) New function.
+ (sort_agr_to_sysfile) New function.
+
+ * autorecode.c: (cmd_autorecode) Use procedure_with_splits().
+
+ * crosstabs.q: (internal_cmd_crosstabs) Ditto.
+
+ * descript.q: (cmd_descriptives) Ditto.
+
+ * dfm.c: (cmd_begin_data) Check for storage_source_class. Adapt
+ to new procedure() interface.
+
+ * command.c: (cmd_execute) Adapt to new procedure() interface.
+
+ * dictionary.c: (dict_compact_values) Also delete scratch
+ variables.
+ (dict_get_compacted_value_cnt) New function.
+ (dict_get_compacted_idx_to_fv) New function.
+
+ * flip.c: (cmd_flip) Warn about and cancel TEMPORARY.
+ (cmd_flip) Adapt to new procedure() interface.
+ (flip_sink_write) Use sink->idx_to_fv.
+
+ * frequencies.q: (internal_cmd_frequencies) Use
+ procedure_with_splits().
+
+ * get.c: (cmd_save_internal) Adapt to new procedure() interface.
+ (static var mtf_sink) New static var.
+ (static var mtf_case) New static var.
+ (cmd_match_files) Warn about and cancel TEMPORARY. Redo the way
+ we actually implement the matching.
+ (mtf_delete_file_in_place) Use mtf_case.
+ (mtf_processing) Use mtf_case and mtf_sink.
+ (cmd_export) Adapt to new procedure() interface.
+
+ * levene.c: (levene) Use procedure_with_splits().
+
+ * list.q: (cmd_list) Use procedure_with_splits().
+
+ * matrix-data.c: (read_matrices_without_rowtype) Adapt to new
+ procedure() interface.
+ (read_matrices_with_rowtype) Ditto.
+
+ * modify-vars.c; (cmd_modify_vars) Warn about and cancel
+ TEMPORARY. Adapt to new procedure() interface.
+
+ * rename-vars.c: Warn about and cancel TEMPORARY.
+
+ * sort.c: (cmd_sort_cases) Warn about TEMPORARY.
+ (sort_cases) Use dict_get_compacted_value_cnt() instead of
+ compaction_nval. Adapt to new procedure() interface. Use
+ storage_source_to_disk().
+ (do_internal_sort) Don't try to dump the cases to memory.
+ (compare_case_lists) Pass null idx_to_fv.
+ (struct initial_run_state) Add `idx_to_fv' member. Remove
+ `case_size' member.
+ (write_initial_runs) Don't initialize irs->case_size. Adapt to
+ new procedure() interface. Reset irs->idx_to_fv after calling
+ procedure().
+ (sort_sink_write) Set irs->idx_to_fv. Use case_size from struct
+ sort_cases_pgm. Pass irs, not struct sort_cases_pgm to
+ push_heap().
+ (destroy_initial_run_state) Don't dereference irs after freeing
+ it.
+ (allocate_cases) Don't calculate case_size locally.
+ (compare_record) Add idx_to_fv parameter.
+ (compare_record_run) Change parameter from struct sort_cases_pgm *
+ to struct initial_run_state *. Pass irs->idx_to_fv to
+ compare_record().
+ (compare_record_run) Third parameter now a struct
+ initial_run_state *.
+ (output_record) No need for out_case anymore. Pass irs, not
+ struct sort_cases_pgm to pop_heap(). Use case_size from struct
+ sort_cases_pgm.
+ (merge) Use case_size from struct sort_cases_pgm.
+ (merge_once) Use case_size from struct sort_cases_pgm.
+ Pass null pointer to compare_record() as idx_to_fv.
+ (global var sort_sink_class) Make static.
+
+ * t-test.q: (cmd_t_test) Use procedure_with_splits().
+
+ * temporary.c: Remove debugging crap.
+
+Sat Mar 13 14:19:52 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * t-test.q, levene.c: Fixed up the handling of MISSING values
+ int the T-TEST
+
+Fri Mar 12 16:23:35 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * t-test.q, levene.c: Added support for T-TEST /GROUP where only
+ one value is given.
+
+Wed Mar 10 23:25:13 2004 Ben Pfaff <blp@gnu.org>
+
+ Change explicit variable name checks into use of
+ dict_class_from_id().
+
+ * dictionary.c: (dict_create_var) Change explicit variable name
+ check into use of dict_class_from_id().
+
+ * get.c: (trim_dictionary) Ditto.
+
+ * sel-if.c: (cmd_filter) Ditto.
+
+ * sysfile-info.c: (cmd_display) Ditto.
+
+ * vars-prs.c: (parse_DATA_LIST_vars) Ditto.
+
+ * vfm.c: (arrange_compaction) Ditto.
+
+ * weight.c: (cmd_weight) Ditto.
+
+Wed Mar 10 21:16:34 2004 Ben Pfaff <blp@gnu.org>
+
+ * temporary.c: (cmd_temporary) When TEMPORARY was the first
+ transformation following the input program, if any, for some
+ reason we special-cased f_trns. That's just wrong. It should
+ always be set to n_trns.
+
+Tue Mar 9 23:44:40 2004 Ben Pfaff <blp@gnu.org>
+
+ * format.c: (parse_format_specifier_name) Fix brown-bag bug
+ introduced in last check-in.
+
+Tue Mar 9 23:10:41 2004 Ben Pfaff <blp@gnu.org>
+
+ * format.c: (global array translate_fmt[]) Removed.
+ (translate_fmt) New function as replacement.
+ (parse_format_specifier_name) Rewrite.
+
+ * pfm-read.c: (convert_format) Use translate_fmt() instead of
+ translate_fmt[].
+
+ * sfm-read.c: (parse_format_spec) Ditto.
+
+ * postscript.c: (text) Fix handling of fonts with missing
+ ligatures.
+
+ * sort.c: (struct external_sort) Add temp_name member.
+ (destroy_external_sort) Free temp_dir, temp_name members.
+ (init_external_sort) Allocate temp_name.
+ (get_temp_file_name) Change prototype.
+ (open_temp_file) Deal with change to get_temp_file_name().
+ (close_temp_file) Ditto.
+ (remove_temp_file) Ditto.
+ (write_temp_file) Ditto.
+ (read_temp_file) Ditto.
+ (sort_sink_destroy) Removed.
+ (sort_sink_class) Change destroy member to null.
+
+Tue Mar 9 22:36:34 2004 Ben Pfaff <blp@gnu.org>
+
+ Eliminate temp_case.
+
+ * aggregate.c: (cmd_aggregate) No need to save/restore temp_case
+ anymore. Use agr_11x_finish().
+ (aggregate_single_case) Make first param const.
+ (accumulate_aggregate_info) Ditto.
+ (agr_00x_end_func) Use compaction_case, not temp_case.
+ (agr_11x_func) Break into agr_11x_read(), agr_11x_finish().
+
+ * data-list.c: (struct data_list_pgm) Add `case_size' member.
+ (cmd_data_list) Initialize case_size.
+ (read_from_data_list_fixed) Add struct ccase * param, use instead
+ of temp_case.
+ (read_from_data_list_free) Ditto.
+ (read_from_data_list_list) Ditto.
+ (read_one_case) Rename data_list_trns_proc(), all references
+ updated. Add argument in calling above functions. Use c
+ argument instead of temp_case.
+ (destroy_dls) Rename data_list_trns_free(), all references
+ updated.
+
+ * expr-evl.c: (expr_evaluate) Make second parameter const.
+
+ * file-type.c: (struct file_type_pgm) Add `case_size' member.
+ (cmd_end_file_type) Initialize `case_size'.
+ (file_type_source_read) Add struct ccase * parameter. Use instead
+ of temp_case.
+
+ * flip.c: Rewritten.
+
+ * get.c: (struct get_pgm) New structure to keep track of
+ case_size.
+ (cmd_get) Initialize case_size.
+ (cmd_import) Ditto.
+ (get_source) Deal with struct get_pgm.
+ (get_source_read) Add struct ccase * parameter, use instead of
+ temp_case.
+ (import_source_read) Ditto.
+
+ * get.c: Use a null pointer instead of temp_case to represent the
+ "current case" in a struct mtf_file's input member.
+ (mtf_processing_finish) Pass null to mtf_processing(), not
+ temp_case.
+ (mtf_read_nonactive_records) Don't set iter->input to temp_case.
+ (mtf_compare_BY_values) Add extra arg, use instead of null input
+ members.
+ (mtf_processing) Use c parameter instead of temp_case. Pass
+ compaction_case to process_active_file_output_case().
+
+ * glob.c: (global variable temp_case) Removed.
+
+ * inpt-pgm.c: (struct input_program_pgm) Add `case_size' member.
+ (cmd_input_program) Initialize case_size. Set
+ vfm_source->value_cnt.
+ (init_case) Add struct ccase * parameter, use instead of
+ temp_case.
+ (clear_case) Ditto.
+ (input_program_source_read) Ditto.
+
+ * matrix-data.c: (matrix_data_read_without_rowtype) Ditto.
+ (dump_cell_content) Ditto.
+ (nr_output_data) Ditto.
+ (read_matrices_without_rowtype) Ditto.
+ (matrix_data_read_with_rowtype) Ditto.
+ (wr_read_splits) Ditto.
+ (wr_output_data) Ditto.
+
+ * sort.h: (struct sort_cases_pgm) New member `case_size'.
+
+ * sort.c: (sort_cases) Initialize scp->case_size.
+ (struct external_sort) Remove `case_size' member.
+ (write_initial_runs) Only call vfm_sink->class_destroy if
+ non-null.
+ (struct sort_source_aux) New structure.
+ (sort_source_read_helper) New function.
+ (sort_source_read) Use sort_source_read_helper().
+ (read_sort_output) Change interface to be more reasonable.
+ (read_internal_sort_output) Ditto.
+ (read_external_sort_output) Ditto.
+
+ * vars-prs.c: (dict_class_to_name) Pass return value through
+ gettext.
+
+ * vfm.c: (struct procedure_aux_data) Add `trns_case' member.
+ (procedure) Initialize trns_case.
+ (procedure) Pass trns_case to vfm_source->class->read().
+ Free trns_case.
+ (process_active_file) Start using struct procedure_aux_data.
+ (process_active_file_write_case) Pass trns_case to
+ transformations, lag_case(), clear_case().
+ (process_active_file_output_case) Add struct ccase * parameter.
+ (create_trns_case) New function.
+ (make_temp_case) Removed.
+ (vector_initialization) Removed.
+ (close_active_file) Only call make_source if non-null, otherwise
+ set vfm_source to null pointer. Don't free temp_case.
+ (disk_source_read) Add struct ccase * parameter, use instead of
+ temp_case.
+ (memory_source_read) Ditto.
+ (lag_case) Add const struct ccase * member.
+ (procedure_write_case) Use trns_case instead of temp_case.
+ (clear_case) Add struct ccase * member, use instead of temp_case.
+ (exclude_this_case) Ditto.
+ (create_case_source) Add struct dictionary * parameter, use to
+ initialize source->value_cnt.
+
+ * vfm.h: (struct case_source) Add `value_cnt' member.
+ (struct case_source_class) Add struct ccase * parameter to `read'
+ member function pointer.
+ (struct case_sink_class) Make struct ccase * parameter const in
+ `write' member function pointer.
+
+Wed Mar 3 20:44:37 2004 Ben Pfaff <blp@gnu.org>
+
+ Fix a lot of "possibly uninitialized variable" warnings. Some of
+ them are even real bugs. A few of them make me wonder how the
+ code ever worked.
+
+ * aggregate.c: (parse_aggregate_functions) Initialize `function.
+
+ * ascii.c: (output_lines) Add default case to switch.
+
+ * crosstabs.q: Remove static variable `expected' and all
+ references to it.
+ (display_crosstabulation) Always calculate expected value.
+ (calc_chisq) Ditto.
+ (output_pivot_table) Initialize `cmp'.
+ (display_crosstabulation) New variable `last_row', which is
+ initialized.
+
+ * data-in.c: (parse_numeric) Always initialize sign. How did this
+ work at all?!
+
+ * data-list.c: (repeating_data_trns_proc) Always initialize code.
+ Always set info.ofs. (How did this work?!)
+
+ * expr-opt.c: (optimize_tree) Always initialize `m'.
+ (evaluate_tree) Always initialize `c'. (How did this work?)
+
+ * frequencies.q: (frq_custom_variables) Always initialize min,
+ max.
+ (frq_custom_grouped) Always initialize `dl'.
+
+ * groff-font.c: (groff_read_font) Always initialize char_set.
+
+ * matrix-data.c: (nr_output_data) Initialize `split'.
+ (wr_read_splits) Remove shadowing split_cnt declaration.
+ (wr_output_data) Initialize `split'.
+
+ * output.c: (tokener) Skip add character on syntax error.
+
+ * pool.c: (pool_strndup) Always set `copy'. (How did this work?!)
+
+ * postscript.c: (read_ps_encodings) Use line.string instead of
+ uninitialized `bp'.
+ (write_text) Add default case to switch.
+ (text) Always initialize multiple variables. Fix bug with
+ ligatures.
+
+ * print.c: (fixed_parse_fortran) Initialize head.
+ (alloc_line) Add default case to switch.
+
+ * recode.c: (parse_dest_spec) Handle case where nothing matches.
+ (recode_trns_proc) Move variable declaration inward. Add default
+ case to switch.
+
+ * sfm-read.c: (read_header) Initialize skip_amt.
+
+ * sysfile-info.c: (display_variables) Always initialize pc.
+
+ * vars-prs.c: Initialized `included'.
+
+Wed Mar 3 09:30:09 2004 Ben Pfaff <blp@gnu.org>
+
+ * main.c: (main) sigaction()'s sa_flags member was uninitialized.
+ Just use signal() instead.
+
+Wed Mar 3 09:26:30 2004 Ben Pfaff <blp@gnu.org>
+
+ Get rid of vfm_sink_info and vfm_source_info.
+
+ * aggregate.c: (agr_00x_end_func) Don't increment
+ sfm_sink_info.ncases.
+
+ * sort.c: (do_internal_sort) Get case count from
+ vfm_source->class->count().
+ (struct external_sort) Add `case_size' member.
+ (do_external_sort) Initialize case_size.
+ (struct initial_run_state) Add `case_size' member.
+ (write_initial_runs) Initialize case_size.
+ (sort_sink_write) Use case_size.
+ (read_external_sort_output) Use case_size. Get case_cnt from
+ initial_runs.
+
+ * vfm.c: (struct write_case_data) Add underscores to existing arg
+ names, all references updated. Renamed `aux' as `func_aux', all
+ references updated. Added new `aux' member.
+ (global var vfm_source_info) Removed.
+ (global var vfm_sink_info) Removed.
+ (struct procedure_aux_data) New.
+ (struct split_aux_data) New.
+ (procedure) Use `aux' fields for procedure_aux_data,
+ split_aux_data.
+ (process_active_file_write_case) Pass case_count + 1 to
+ transformation procedures, exclude_this_case().
+ (process_active_file_output_case) Don't increment
+ vfm_sink_info.ncases.
+ (prepare_for_writing) Don't initialize vfm_sink_info. Don't try
+ to send data to disk early.
+ (make_temp_case) Don't use vfm_sink_info.case_size.
+ (close_active_file) Don't initialize vfm_source_info.
+ (struct disk_stream_info) New, to allow for case_cnt and case_size fields.
+ (disk_sink_create) Initialize and/or update disk_stream_info.
+ (disk_sink_write) Ditto.
+ (disk_sink_destroy) Ditto.
+ (disk_sink_make_source) Ditto.
+ (disk_source_read) Ditto.
+ (disk_source_destroy) Ditto.
+ (global var disk_source_class) Add disk_source_count().
+ (disk_source_count) New function.
+ (struct memory_sink_info) Add `case_cnt', `case_size' members.
+ (struct memory_source_info) Ditto.
+ (memory_sink_create) Deal with case_cnt, case_size.
+ (memory_sink_write) Ditto.
+ (memory_sink_make_source) Ditto.
+ (memory_source_read) Ditto.
+ (memory_source_count) New function.
+ (memory_source_class) Add memory_source_count().
+ (procedure_write_case) Don't use vfm_sink_info.ncases. Do use
+ proc_aux->cases_written, and pass it to transformation procedures
+ and exclude_this_case ().
+ (exclude_this_case) Add case_num parameter. Pass it to
+ expr_evaluate().
+ (SPLIT_FILE_procfunc) Use split_aux->prev_case instead of static
+ variable.
+
+ * vfm.h: (struct case_source_class) Add `count' member.
+
+ * vfmP.h: (struct stream_info) Removed.
+ (global variable vfm_source_info) Removed.
+ (global variable vfm_sink_info) Removed.
+
+Tue Mar 2 23:38:17 2004 Ben Pfaff <blp@gnu.org>
+
+ * var.h: (typedef trns_proc_func) New typedef.
+ (trns_free_func) New typedef.
+ (struct trns_header) Change `proc' to type trns_proc_func, `free'
+ to type trns_free_func. This only changes the actual type of
+ trns_proc_func, adding a `case_num' parameter. Updated all
+ implementations to use the typedefs instead.
+
+ * compute.c: (compute_num) Pass case_num to expr_evaluate().
+ (compute_num_vec) Ditto.
+ (compute_str) Ditto.
+ (compute_str_vec) Ditto.
+
+ * do-if.c: (do_if_trns_proc) Ditto.
+
+ * expr-evl.c: (expr_evaluate) Add new case_num parameter, use for
+ OP_CASENUM.
+
+ * inpt-pgm.c: (input_program_source_read) Maintain case count,
+ pass to transformation functions.
+ (reread_trns_proc) Pass case_num arg to expr_evaluate().
+
+ * loop.c: (loop_1_trns_proc) Ditto.
+ (loop_2_trns_proc) Ditto.
+ (loop_3_trns_proc) Ditto.
+
+ * print.c: (print_space_trns_proc) Ditto.
+
+ * sel-if.c: (select_if_proc) Ditto.
+
+Tue Mar 2 11:36:52 2004 Ben Pfaff <blp@gnu.org>
+
+ * frequencies.q: (cleanup_freq_tab) Avoid memory leak by
+ destroying hash table.
+
+ * glob.c: (read_active_file) Variable not referenced, removed.
+ (cancel_input_pgm) Ditto.
+
+ * levene.c: Add #include <stdlib.h> needed to call free().
+
+ * aggregate.c: (parse_aggregate_functions) Make `function'
+ variable const.
+
+Tue Mar 2 11:30:56 2004 Ben Pfaff <blp@gnu.org>
+
+ Start working to eliminate VFM dependence on static variables.
+
+ * command.c: (cmd_parse) Use case_source_is_class().
+
+ * data-list.c: Rewrite to eliminate use of static variables.
+
+ * dfm.c: (cmd_begin_data) Use case_source_is_class().
+
+ * file-handle.q: (fh_handle_name) Make parameter const.
+
+ * file-type.c: Rewrite to eliminate use of static variables.
+
+ * flip.c: Rewrite to eliminate use of static variables.
+
+ * format.c: (get_format_var_width) New function.
+
+ * get.c: Eliminate use of static variables.
+
+ * inpt-pgm.c: Eliminate use of static variables.
+
+ * matrix-data.c: Eliminate use of static variables.
+
+ * set.q: (set_max_workspace) New variable.
+ (cmd_set) Use SET WORKSPACE to modify set_max_workspace.
+
+ * var.h: (struct case_list) Move here from vfmP.h.
+
+ * vars-atr.c: (discard_variables) Handle new vfm_source type.
+
+ * vfm.c: (vfm_source) Change type from struct case_stream to
+ struct case_source.
+ (vfm_sink) Change type from struct case_stream to struct
+ case_sink.
+ (static var paging) Rename workspace_overflow, all references
+ updated.
+ (procedure) Use new class structures.
+ (process_active_file) Ditto.
+ (process_active_file_write_case) Ditto.
+ (prepare_for_writing) Use set_max_workspace. Use new class
+ structures.
+ (close_active_file) Use new class structures. Free old sink.
+ (global var disk_source_file) Removed.
+ (global var disk_sink_file) Removed.
+ (disk_stream_init) Removed.
+ (disk_stream_read) Removed.
+ (disk_stream_write) Removed.
+ (disk_stream_mode) Removed.
+ (disk_stream_destroy_source) Removed.
+ (disk_stream_destroy_sink) Removed.
+ (global var vfm_disk_stream) Removed.
+ (disk_sink_create) New function.
+ (disk_sink_write) New function.
+ (disk_sink_destroy) New function.
+ (disk_sink_make_source) New function.
+ (disk_sink_class) New static var.
+ (disk_source_read) New function.
+ (disk_source_destroy) New function.
+ (global var vfm_source_class) New var.
+ (global var memory_source_cases) Removed.
+ (global var memory_sink_cases) Removed.
+ (global var memory_sink_max_cases) Removed.
+ (struct memory_sink_info) New struct.
+ (memory_stream_init) Removed.
+ (memory_stream_read) Removed.
+ (memory_stream_write) Removed.
+ (memory_stream_mode) Removed.
+ (memory_stream_destroy_source) Removed.
+ (memory_stream_destroy_sink) Removed.
+ (global var vfm_memory_stream) Removed.
+ (page_to_disk) Renamed write_active_file_to_disk().
+ (memory_sink_create) New function.
+ (memory_sink_write) New function.
+ (memory_sink_destroy) New function.
+ (memory_sink_make_source) New function.
+ (memory_sink_class) New static var.
+ (memory_source_read) New function.
+ (memory_source_destroy) New function.
+ (memory_source_get_cases) New function.
+ (memory_source_set_cases) New function.
+ (global var vfm_source_class) New var.
+ (procedure_write_case) Use new class structures.
+ (create_case_source) New function.
+ (case_source_is_complex) New function.
+ (case_source_is_class) New function.
+ (create_case_sink) New function.
+
+ * vfm.h: (global variable reinit_sysmis) Not used, removed.
+ (global variable reinit_blanks) Not used, removed.
+ (global variable init_zero) Not used, removed.
+ (global variable init_blanks) Not used, removed.
+ (struct case_source) New struct.
+ (struct case_source_class) New struct.
+ (struct case_sink) New struct.
+ (struct case_sink_class) New struct.
+ (struct case_stream) Removed.
+
+ * vfmP.h: (struct case_list) Moved to var.h.
+
+Tue Mar 2 11:28:30 2004 Ben Pfaff <blp@gnu.org>
+
+ * algorithm.c: (count_equal) New function.
+ (count_if) New function.
+ (unique) Add assertions.
+ (partition) Add assertions.
+ (is_partitioned) New function.
+ (copy_if) Add assertions.
+ (remove_equal) Add assertions.
+ (lexicographical_compare) Rename lexicographical_compare_3way.
+ (sort) Add assertions. Rephrase some code.
+ (is_sorted) New function.
+
+Sun Feb 29 23:24:57 2004 Ben Pfaff <blp@gnu.org>
+
+ Rewrite SORT CASES.
+
+ * sort.c: Completely rewrite.
+
+ * sort.h: Expose interface via struct sort_cases_pgm, not via
+ global variables.
+
+ * aggregate.c: (sort) New static var.
+ (cmd_aggregate) Use sort.
+ (create_sysfile) Ditto.
+ (aggregate_single_case) Ditto.
+ (dump_aggregate_info) Ditto.
+ (agr_00x_end_func) Ditto.
+ (debug_print) Ditto.
+
+ * var.h: (enum SRT_ASCEND) Removed.
+ (enum SRT_DESCEND) Removed.
+ (struct sort_cases_proc) Removed.
+ (struct variable) Remove p.srt member.
+
+Sun Feb 29 23:22:45 2004 Ben Pfaff <blp@gnu.org>
+
+ Get rid of the old, crappy heap structure and replace it by a new,
+ shiny, C++ STL-like heap structure.
+
+ * Makefile.am: (pspp_SOURCES) Remove heap.c, heap.h.
+
+ * algorithm.c: (push_heap) New function.
+ (heapify) Ditto.
+ (pop_heap) Ditto.
+ (make_heap) Ditto.
+ (sort_heap) Ditto.
+ (is_heap) Ditto.
+
+ * heap.c: Removed.
+
+ * heap.h: Removed.
+
+Sun Feb 29 23:21:53 2004 Ben Pfaff <blp@gnu.org>
+
+ Increase warning level.
+
+ * Makefile.am: (AM_CFLAGS) Remove -Wnouninitialized.
+
+Sat Feb 21 17:38:58 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * main.c: Added a signal handler for SIGSEGV requesting a bug report.
+
+Fri Feb 20 23:22:14 2004 Ben Pfaff <blp@gnu.org>
+
+ * dictionary.c: (dict_create_var) Fix root cause of bug worked
+ around by previous change log entry.
+
+ * compute.c: (lvalue_finalize) Remove workaround from previous
+ change log entry.
+
+Fri Feb 20 14:37:41 WAST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * compute.c: Fixed a bug where the Format was not getting set for
+ computed variables (thus causing a crash when SAVEing).
+
+ * Added a test to stop this bug ever coming back
+
+Wed Feb 18 22:21:35 2004 Ben Pfaff <blp@gnu.org>
+
+ Got rid of approx.h. In general, replaced all references to
+ approx_eq() by ==, approx_lt() by <, etc. Other types of changes
+ noted below.
+
+ * Makefile.am: (pspp_SOURCES) Removed approx.h.
+
+ * data-out.c: (try_F) Replaced test for approx_eq(number, 0.0) by
+ test for mag < EPSILON.
+
+ * misc.h: Add definition of EPSILON.
+
+Wed Feb 18 21:32:44 2004 Ben Pfaff <blp@gnu.org>
+
+ * vfm.c: (procedure) Add check to prevent recursive call.
+
+Wed Feb 18 21:48:54 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * Moved the declarations relating to values to their own header file
+ (val.h)
+
+ * Added levene.c and levene.h
+
+ * vars-atr.c: Changed the signature of compare_values to
+ take const * arguments.
+
+ * t-test.q: Changed the structure of struct t_test_proc
+ variables now contain their own group statistics information.
+ Eventually, t_test_proc might get renamed, because it'd be
+ applicable to other commands too.
+
+Mon Feb 16 23:15:51 2004 Ben Pfaff <blp@gnu.org>
+
+ * data-out.c: Clean up. Changed interface of convert_*() to take
+ either a `double' or a `const char *' instead of a `const union
+ value *'. Update all implementations of those interfaces.
+ (data_out) Use switch statements instead of a table.
+ (convert_AHEX) Rewrite.
+
+ * format.h: Update comment.
+
+Mon Feb 16 22:14:36 2004 Ben Pfaff <blp@gnu.org>
+
+ * q2c.c: (dump_header) Add an Emacs header line to output files
+ that makes generated .c files read-only by default, to make it
+ difficult to accidentally change generated files.
+
+Mon Feb 16 22:12:07 2004 Ben Pfaff <blp@gnu.org>
+
+ * frequencies.q: (compare_freq_numeric_a) Compare by frequency,
+ not bogus a->v.c <=> b->v.c pointer compare.
+ (compare_freq_alpha_a) Ditto.
+ (compare_freq_numeric_d) Ditto.
+ (compare_freq_alpha_d) Ditto.
+
+Mon Feb 16 22:00:53 2004 Ben Pfaff <blp@gnu.org>
+
+ Changed data_out() to store string data directly into a `union
+ value''s s member, not indirectly into c.
+
+ * crosstabs.q: (output_pivot_table) Use format_short() instead of
+ data_out().
+ (table_value_missing) Ditto.
+ (float_M_suffix) Ditto.
+ (format_short) New function.
+
+ * data-in.h: (data_in_finite_line) Remove inline definition.
+
+ * data-list.c: (destroy_dls_var_spec) New function.
+ (destroy_dls) Rewrite in terms of destroy_dls_var_spec().
+ (data_list_source_destroy_source) Avoid cast.
+ (struct repeating_data_trns) New field `id_value'. Update
+ comments.
+ (cmd_repeating_data) Initialize id_value. Use new
+ repeating_data_trns_free() for freeing REPEATING DATA
+ transformations.
+ (rpd_parse_record) Rewrite support for record ID to be less bogus.
+ (repeating_data_trns_free) New function.
+
+ * data-out.c: (data_out) Change return type to `void' by replacing
+ error returns by writing a message into the output buffer.
+ (convert_A) Read from v->s instead of v->c.
+ (convert_AHEX) Ditto.
+
+ * expr-evl.c: Update comment.
+ (expr_evaluate) Add assertion in OP_STRING case.
+
+ * format.h: (macro MAX_FORMATTED_LEN) New macro.
+
+ * list.q: (list_cases) Update for new data_out() semantics.
+
+ * print.c: (print_trns_proc) Ditto.
+
+ * tab.c: (tab_value) Ditto.
+ (tab_float) Avoid stupid cast.
+
+ * var.h: Update comments.
+ (macro MAX_STRING) New macro.
+ (macro MAX_ELEMS_PER_VALUE) New macro.
+
+ * vars-atr.c: (compare_values) New function.
+
+ * vfm.c: (dump_splits) Update for new data_out() semantics.
+
+Mon Feb 16 21:45:47 2004 Ben Pfaff <blp@gnu.org>
+
+ * crosstabs.q: (struct table_entry) Rename v[] to values[]. All
+ references updated.
+ (struct crosstab) Rename v[] to vars[]. All references updated.
+ (hash_table_entry) Replace the hash algorithm and fix a bug at the
+ same time, which caused the hash value to depend only on a single
+ value, not all of the variables' values.
+
+Mon Feb 16 12:49:53 2004 Ben Pfaff <blp@gnu.org>
+
+ Clean up struct dictionary's value_cnt usage.
+
+ * dictionary.c: Add a function comment to each function.
+ (struct dictionary) Rename value_cnt to next_value_idx, which more
+ accurately reflects its meaning. All references updated.
+ (dict_rename_vars) Add assertion.
+ (dict_get_value_cnt) Rename dict_get_next_value_idx(). All
+ references updated.
+ (dict_get_case_size) New function.
+
+ * aggregate.c: (create_sysfile) Use dict_get_case_size().
+
+ * get.c: (mtf_read_nonactive_records) Ditto.
+
+ * sort.c: (allocate_cases) Ditto.
+ (write_initial_runs) Ditto.
+ (merge) Ditto.
+ (merge_once) Ditto.
+
+ * vfm.c: (prepare_for_writing) Ditto.
+ (setup_lag) Ditto.
+ (lag_case) Ditto.
+
+Mon Feb 16 00:17:55 2004 Ben Pfaff <blp@gnu.org>
+
+ Make vfm.c slightly less grotesque.
+
+ * vfm.c: (filter_var) Removed.
+ (filter_index) Removed.
+ (FILTERED macro) Removed.
+ (exclude_this_case) New function.
+ (process_active_file_write_case) Use exclude_this_case() instead
+ of FILTERED and inline tests.
+ (procedure_write_case) Ditto.
+ (setup_filter) Removed.
+ (open_active_file) Don't call setup_filter().
+ (close_active_file) Call dict_get_filter() instead of checking
+ filter_var.
+
+Mon Feb 16 00:01:53 2004 Ben Pfaff <blp@gnu.org>
+
+ * var.h: (struct variable) Update comments.
+
+Sun Feb 15 23:14:59 2004 Ben Pfaff <blp@gnu.org>
+
+ New functions dict_create_var_assert(), dict_lookup_var_assert().
+ Converted several dict_*_var()/assert pairs into a single
+ dict_*_var_assert().
+
+ * dictionary.c: (dict_create_var_assert) New function.
+ (dict_lookup_var_assert) New function.
+
+Sun Feb 15 23:06:08 2004 Ben Pfaff <blp@gnu.org>
+
+ Got rid of "struct long_vec", envector(), devector(), etc. Added
+ two members `init', `reinit' to struct variable as a substitute.
+
+ * Makefile.am: (pspp_SOURCES) Removed cases.c, cases.h.
+
+ * cases.c: Removed.
+
+ * cases.h: Removed.
+
+ * aggregate.c: (parse_aggregate_functions) destvar doesn't need
+ init.
+
+ * autorecode.c: (cmd_autorecode) destvars don't need init.
+
+ * compute.c: (lvalue_finalize) Set reinit.
+
+ * data-list.c: (fixed_parse_compatible) Don't need init usually.
+ (dump_fmt_list) Ditto.
+ (parse_free) Ditto.
+
+ * descript.q: (run_z_pass) Don't need init for z-scores.
+
+ * dictionary.c: (dict_create_var) Initialize `init', `reinit'
+ members.
+ (dict_clone_var) Copy `reinit' member, initialize `init' member.
+
+ * glob.c: (init_glob) Remove vec_init() calls.
+
+ * inpt-pgm.c: (cmd_end_input_program) Use `reinit', not `left'.
+
+ * loop.c: (internal_cmd_loop) Don't need to call envector().
+
+ * numeric.c: (cmd_numeric) Ditto.
+ (cmd_string) Ditto.
+ (cmd_leave) Ditto. Set `init', `reinit' members.
+
+ * recode.c: (cmd_recode) Don't need to call envector().
+
+ * repeat.c: (internal_cmd_do_repeat) Ditto.
+
+ * var.h: (struct variable) Remove `left'. Add `init', `reinit'.
+ (force_create_variable) Removed prototype.
+ (force_dup_variable) Ditto.
+
+ * vector.c: (cmd_vector) Don't need to call envector().
+
+ * vfm.c: (reinit_sysmis) Removed.
+ (reinit_blanks) Removed.
+ (init_zero) Removed.
+ (init_blanks) Removed.
+ (process_active_file_write_case) No need to deal with vectors.
+ Call clear_temp_case().
+ (vector_initialization) Rewrite to use `init', `reinit'.
+ (close_active_file) No need to call vec_clear().
+ (procedure_write_case) Call clear_temp_case().
+ (clear_temp_case) New function.
+
+Sun Feb 15 20:50:36 2004 Ben Pfaff <blp@gnu.org>
+
+ * pfm-write.c: (bufwrite) Get rid of nasty cast that also invoked
+ undefined behavior.
+
+Thu Feb 12 23:35:15 2004 Ben Pfaff <blp@gnu.org>
+
+ Add auxiliary argument to procedure() interface. Associated small
+ clean-ups of vfm interface.
+
+ * Updated every caller of procedure() and process_active_file() to
+ reflect modified interface. Simple, ordinary changes not listed
+ otherwise below.
+
+ * Updated every function that implements struct case_stream's
+ `read' function to take a write_case_func and a write_case_data.
+ Also updated every caller of write_case() to instead call them
+ through these arguments. In some cases this meant that the extra
+ args had to be threaded through a couple of extra levels. This
+ wasn't difficult or interesting so the details won't be given.
+
+ * data-list.c: (struct repeating_data_trns) Add members
+ `write_case', `wc_data' as kluge.
+ (read_one_set_of_repetitions) Rename repeating_data_trns_proc and
+ make non-static.
+ (repeating_data_set_write_case) New function.
+
+ * data-list.h: New file to declare repeating_data_trns_proc() and
+ repeating_data_set_write_case().
+
+ * inpt-pgm.c: (input_program_source_read) Call
+ repeating_data_set_write_case() for all the REPEATING DATA
+ transformations, so that they know where to send their cases.
+ It's a big kluge. Also kluge in END CASE.
+ (end_case_trns_proc) Never called anymore, but we still need it,
+ so just assert(0).
+
+ * sort.c: (read_sort_output) Update to match struct case_stream
+ `read' member.
+
+ * vfm.c: (struct write_case_data) New structure.
+ (proc_func) Removed.
+ (virt_proc_func) Removed.
+ (begin_func) Removed.
+ (virt_begin_func) Removed.
+ (end_func) Removed.
+ (write_case) Removed.
+ (procedure) Added an auxiliary parameter to each function pointer
+ argument's prototype. Added an auxiliary data parameter.
+ Rewrote.
+ (process_active_file) Ditto.
+ (process_active_file_write_case) Pass aux data along.
+ (close_active_file) Ditto.
+ (procedure_write_case) Ditto.
+ (SPLIT_FILE_procfunc) Ditto.
+
+ * vfm.h: (typedef write_case_data) New.
+ (typedef write_case_func) New.
+ (struct case_stream) Add parameters to `read' member prototype.
+
+Thu Feb 12 19:24:53 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * t-test.q: Added calculations for independent samples. (But no Levene
+ test yet!)
+
+ * Makefile.am: Moved q_sources_c into own variable
+
+Wed Feb 11 23:56:51 2004 Ben Pfaff <blp@gnu.org>
+
+ Miscellaneous cleanups.
+
+ * Change unused to UNUSED in many source files to reflect modified
+ pref.h. Change use of __WIN32__, __MSDOS, __DJGPP__,
+ __CYGWIN32__, __unix__, and unix not to assume that they're
+ defined to a nonzero value. Change use of __attribute__ to use
+ NO_RETURN or PRINTF_FORMAT instead.
+
+ * alloc.h: Move definitions for local_alloc(), local_free() here
+ from ../pref.h.orig and simplify.
+
+ * expr-evl.c: Instead of working differently based on PAGED_STACK,
+ use a pool allocator unconditionally.
+ (CHECK_STRING_SPACE) Removed.
+ (ALLOC_STRING_SPACE) Removed.
+ (expr_evaluate) Use e->pool instead of CHECK_STRING_SPACE and
+ ALLOC_STRING_SPACE.
+
+ * expr-opt.c: (dump_expression) Allocate string pool.
+
+ * expr-prs.c: (expr_free) Free string pool.
+
+ * pool.c: (pool_destroy) This pool must be removed from its
+ parent's list of gizmos, not from its own. Use free_all_gizmos().
+ (pool_clear) New function.
+ (free_all_gizmos) New function.
+ (pool_alloc) Use space in empty block after this one if any.
+ (pool_release) Only empty out blocks, don't actually free() them.
+
+ * print.c: Get rid of PAGED_STACK special case by always
+ dynamically allocating line buffers.
+ (struct print_trns) Always include the `line' member.
+ (internal_cmd_print) Always initialize the `line' member.
+ (alloc_line) Always allocate memory for `line'.
+ (print_trns_proc) Always initialize buf from `line' member.
+ (print_trns_free) Always free `line' memory.
+
+ * sort.c: (allocate_file_handles) Special-case MS-DOS for mkdir()
+ call.
+
+Wed Feb 11 20:33:18 2004 Ben Pfaff <blp@gnu.org>
+
+ * flip.c: 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 besides.
+ (struct varname) Make name a 9-character fixed-size array
+ instead of a 1-character variable size array.
+ (make_new_var) Allow digits in variable names.
+ (flip_stream_write) Limit numeric values to 8 characters and
+ format system missing and very large and small values more
+ appropriately.
+
+Thu Feb 5 13:19:06 WAST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * command.c: Fixed test on command return status for the correct
+ value, which had been causing a crash under certain invalid input.
+
+Wed Feb 4 15:34:11 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * t-test.q: Added calculations for the one sample variant of the T-TEST
+
+Tue Feb 3 20:09:54 2004 Ben Pfaff <blp@gnu.org>
+
+ * tab.c: (render_strip) Fix bug that sometimes caused joined text
+ in joined cells to be rendered outside box boundaries.
+
+Tue Feb 3 18:56:45 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * random.c (rng_create): Fixed seeding so that it gets reseeded after
+ SET seed=xx has been called.
+
+Mon Jan 19 14:08:09 2004 Ben Pfaff <blp@gnu.org>
+
+ * random.c (rng_get_double): Fix always-returning-zero bug in my
+ preferred way, and at the same time make sure rounding doesn't
+ bite us.
+
+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.
+
+Wed Dec 31 16:27:33 WAST 2003 John Darrington <john@darrington.wattle.id.au>
+
+ * Fixed bug where FREQ would crash on alpha values
+
+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.
+
+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.
+
+Wed Dec 31 07:19:46 WST 2003 John Darrington <john@darrington.wattle.id.au>
+
+ * Removed redundant code from output.h
+
+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.
+
+Fri Dec 19 23:35:04 2003 Ben Pfaff <blp@gnu.org>
+
+ * algorithm.c (binary_search): Fix comparison.
+
+Fri Dec 19 23:27:45 2003 Ben Pfaff <blp@gnu.org>
+
+ * algorithm.c: (binary_search) Fix assertion.
+
+Fri Dec 19 21:31:48 2003 Ben Pfaff <blp@gnu.org>
+
+ * sysfile-info.c: (compare_vectors_by_name) Rewrite.
+
+Fri Dec 19 21:30:24 2003 Ben Pfaff <blp@gnu.org>
+
+ * sort.c: (compare_case_lists) Rewrite.
+
+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.
+
+Fri Dec 19 16:42:13 2003 Ben Pfaff <blp@gnu.org>
+
+ * postscript.c: (int_2_compare) Rewrite.
+ (compare_line) Rewrite.
+
+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.
+
+Fri Dec 19 16:23:45 2003 Ben Pfaff <blp@gnu.org>
+
+ * matrix-data.c (compare_variables_by_mxd_vartype): Rewrite.
+
+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.
+
+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.
+
+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.
+
+Thu Dec 18 12:27:03 WAST 2003 John Darrington <john@darrington.wattle.id.au>
+ * added a calculation of the mode to FREQUENCIES
+
+Wed Dec 17 12:53:01 WAST 2003 John Darrington <john@darrington.wattle.id.au>
+
+ * moved (un)defs of DEBUGGING to config.h
+
+Mon Dec 15 21:35:59 2003 Ben Pfaff <blp@gnu.org>
+
+ * groff-font.c: (add_kern) Fix indentation.
+ (add_kern) Use & instead of % to take power-of-2 modulus.
+ (font_get_kern_adjust) Likewise.
+
+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.
+
+Fri Dec 12 13:31:58 2003 Ben Pfaff <blp@gnu.org>
+
+ * All source files: Get rid of nasty special cases for Checker,
+ which is pretty obsolete now.
+
+Thu Dec 11 21:38:24 WST 2003 John Darrington <john@darrington.wattle.id.au>
+
+ * Fixed a bug apparent when using the FREQUENCIES command with the
+ html driver. The html driver was incorrectly trying to display
+ empty cells.
+
+Sun Jan 2 21:40:13 2000 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Reorganized. Put locale dir in version.c instead
+ of passing it to each compile command. Only put local gmp libs in
+ LD_ADD if not installed on system. Remove `boast' target.
+
+ * All source files: struct and union typedefs eliminated.
+ `sizeof type' replaced by `sizeof object' where practical. Moved
+ `unused' qualifiers from start to end of declarations for gcc
+ 2.7.2 compatibility. Change `while (1)' to `for (;;)'. Made
+ assertions on pointers strictly compliant. Removed _ prefixes on
+ some function parameter names.
+
+ * alloc.c: New source file, containing these external linkage
+ functions removed from common.c: xmalloc, xcalloc, xrealloc,
+ xstrdup.
+
+ * arena.c: Removed.
+
+ * arena.h: Removed.
+
+ * ascii.c: Migrated from arenas to pools.
+ (struct ascii_driver_ext) ops[], box[], fonts[] changed from
+ c_string to len_string. All references changed.
+ (ascii_option) Signature changed to comply to new output.c
+ interface.
+ (count_fancy_chars) Removed.
+ (delineate) Removed support for rich text.
+ (ascii_text_metrics) Ditto.
+ (text_draw) Ditto.
+ (output_shorts) Change `box', `off', `on' from c_string to
+ len_string. Change `remaining' from int to size_t.
+ (ascii_close_page) Make page numbering less haphazard.
+
+ * autorecode.c: Migrate from arenas to pools.
+
+ * avl.c: Migrate from arenas to pools. Synch from libavl 1.4.0.
+
+ * bitvector.h: New file containing these macros from misc.h:
+ SET_BIT, CLEAR_BIT, SET_BIT_TO, TEST_BIT, BIT_INDEX.
+
+ * command.c: (struct command) cmd1, cmd2, cmd3 members changed to
+ word[3]. ncmd removed.
+ (var empty_string) Removed.
+ (var cmd_table) Declaration updated.
+ (var cmdtab) Removed.
+ (cmp_command) Removed.
+ (split_words) Rewritten to use strtok_r().
+ (init_cmd_parser) Renamed cmd_init(). Rewritten.
+ (find_command) Removed.
+ (FILE_TYPE_okay) Rewritten.
+ (cmd_parse) Rewritten. Semantics of the return value of command
+ handlers has changed: they must now return one of the new CMD_*
+ enumerals, rather than a magic value. This meant that all
+ commands had to be modified, and they were.
+ (figure_out_command) New function.
+
+ * command.def: Add CORRELATIONS, PEARSON CORRELATIONS. Add
+ #defines for INIT, INPU, etc.
+
+ * command.h: New CMD_* enum series.
+ (cur_proc) Make const char *, not char *.
+ (cmd_init) Prototype.
+ (cmd_parse) Ditto.
+
+ * common.c: Removed.
+
+ * common.h: Removed.
+
+ * correlations.q: New file.
+
+ * crosstabs.q: Migrate from arenas to pools. Migrate to new-style
+ q2c.
+ (custom_tables) Renamed crs_custom_tables().
+ (custom_variables) Renamed crs_custom_variables().
+ (calc_integer) Add in some `const' qualifiers.
+ (table_value_missing) Change from a_string to len_string.
+ (float_M_suffix) Change from a_string to len_string.
+
+ * data-in.c: Rewritten. All references to
+ parse_string_as_format() changed to data_in().
+
+ * data-in.h: New file.
+
+ * data-list.c: Change DLS_* from #define's to enums. Move from
+ rpd_msg() to tmsg().
+ (RPD_ERR) New #define.
+ (do_reading) Change dfm_push_cust() to dfm_push(), pop_cust() to
+ dfm_pop().
+ (read_from_data_list_fixed) Change from old
+ parse_string_as_format() to new data_in().
+ (read_from_data_list_free) Ditto.
+ (read_from_data_list_list) Ditto.
+ (cmd_repeating_data) Modify approach to checking for end of
+ command.
+ (rpd_msg) Removed.
+ (rpd_parse_record) Change from old parse_string_as_format() to new
+ data_in(). Change from old convert_format_to_string() to new
+ data_out().
+ (read_one_set_of_repetitions) Change dfm_push_cust() to
+ dfm_push(), pop_cust() to dfm_pop().
+
+ * data-out.c: Rewritten. All references to
+ convert_format_to_string() changed to data_out().
+
+ * descript.q: Migrate to new q2c.
+ (cmd_descriptives) Removed.
+ (internal_cmd_descriptives) Renamed cmd_descriptives ().
+ (custom_variables) Renamed dsc_custom_variables().
+
+ * dfm.c: (struct dfm_fhuser_ext) `ln' removed. All references
+ removed.
+ (open_file_r) Initialize h->where.line_number. Migrate to new
+ struct string.
+ (open_file_w) Initialize h->where.line_number.
+ (read_record) Change from ext->ln to h->where.line_number.
+ Migrate to struct string.
+ (dfm_put_record) Rephrased.
+ (dfm_push_cust) Renamed dfm_push(), rewritten.
+ (dfm_pop) New function.
+
+ * error.c: All references updated.
+ (glob var error_count) Renamed err_err_count.
+ (glob var warning_count) Renamed err_warning_count.
+ (glob var error_already_flagged) Renamed err_already_flagged.
+ (glob var verbosity) Renamed err_verbosity.
+ (glob var cust_fn) Removed.
+ (glob var cust_ln) Removed.
+ (static var file_loc) New.
+ (static var nfile_loc) New.
+ (static var mfile_loc) New.
+ (tmsg) New function.
+ (push_cust) Removed.
+ (pop_cust) Removed.
+ (msg) Rewritten.
+ (static var terminating) Removed.
+ (failure) Renamed err_failure().
+ (hcf) Renamed err_hcf().
+ (err_push_file_locator) New function.
+ (err_pop_file_locator) New function.
+ (err_location) New function.
+ (check_error_count) Renamed err_check_count().
+ (vmsg) Renamed err_vmsg(). Interface changed.
+ (verbose_msg) Removed.
+ (err_cond_fail) New function.
+ (error_break) Renamed err_break().
+
+ * error.h: All references updated.
+ (enum MSG_CLASS_COUNT) Renamed ERR_CLASS_COUNT.
+ (enum ERR_CLASS_MASK, ERR_VERBOSITY_SHIFT, ERR_VERBOSITY_MASK)
+ New.
+ (struct file_locator) New.
+ (struct error) New.
+ (macro verbose_msg) Removed.
+ (macro cond_fail) Removed.
+
+ * expr-opt.c: (evaluate_tree) sizeof(char) == 1.
+
+ * expr-prs.c: Reorganized. All references updated.
+ (exprtypename) Renamed expr_type_name().
+ (typename) Renamed type_name().
+ (free_expression) Renamed expr_free().
+ (parse_expression) Renamed expr_parse(). Uses new type_check()
+ function.
+ (init_functab) Renamed init_func_tab().
+ (type_check) New function.
+ (parse_or) Rewritten to use new allocate_nonterminal() and
+ append_nonterminal_arg() functions.
+ (parse_and) Ditto.
+ (parse_not) Ditto.
+ (parse_rel) Ditto. Also simplified logic.
+ (parse_add) Ditto.
+ (parse_mul) Ditto.
+ (parse_neg) Ditto.
+ (parse_exp) Ditto.
+ (SYSMIS_func) Ditto.
+ (VALUE_func) Rephrased.
+ (CONCAT_func) Fix memory leak by replacing free by free_node on
+ lossage.
+ (generic_str_func) Ditto.
+ (parse_function) Ditto. Also rephrasings. Uses bsearch() to find
+ function.
+ (allocate_nonterminal) New function.
+ (append_nonterminal_arg) New function.
+ (static func_tab[]) Now at file level.
+ (cmp_func) Moved.
+ (init_func_tab) Moved. Now just uses qsort() to sort func_tab[].
+
+ * expr.h: (enum series OP_*) Moved to exprP.h.
+ (OP_* defines) Ditto.
+ (struct op_desc) Ditto.
+ (global ops[]) Ditto.
+ (struct num_con_node) Ditto.
+ (struct str_con_node) Ditto.
+ (struct var_node) Ditto.
+ (struct lag_node) Ditto.
+ (struct casenum_node) Ditto.
+ (struct nonterm_node) Ditto.
+ (union any_node) Members renamed.
+ (struct sys_node) Removed.
+ (struct val_node) Removed.
+ (operator typedef) Removed.
+ (typedef exprtype) Removed.
+ (enum series EX_*) Moved to exprP.h.
+ (struct expression) Ditto. Also renamed a lot of the members.
+ (PXP_* defines) Changed to enums.
+ (free_node prototype) Moved to exprP.h.
+
+ * file-handle.h: (struct file_handle) New member `where'.
+
+ * file-handle.q: Migrated to new q2c format.
+ (prepend_current_directory) Removed (dead code).
+ (cmd_file_handle) Incorporated all of internal_cmd_file_handle().
+ (fh_get_handle_by_filename) Removed dead code.
+ Set new `where' member.
+
+ * file-type.c: (file_type_source_read) References to
+ parse_string_as_format() changed to data_in().
+ dfm_push_cust()/pop_cust() changed to dfm_push()/dfm_pop().
+
+ * filename.c: All references updated.
+ (init_filename) Renamed fn_init().
+ (expand_line) Removed.
+ (macro EXPAND_LINE) Removed.
+ (interp_vars) Renamed fn_interp_vars(). Now uses st_*() instead
+ of custom functions.
+ (gnu_getcwd) Renamed fn_get_cwd(), rewritten.
+ (tilde_expand) Renamed fn_tilde_expand(), uses ds_*().
+ (normalize_filename) Renamed fn_normalize().
+ (search_path) Renamed fn_search_path(), rewritten.
+ (prepend_dir) Renamed fn_prepend_dir().
+ (blp_getenv) Renamed fn_getenv().
+ (blp_dirname) Renamed fn_dirname().
+ (fn_basename) New function, not used.
+ (absolute_filename_p) Renamed fn_absolute_p().
+ (is_special_filename) Renamed fn_special_p().
+ (file_exists) Renamed fn_exists_p().
+ (readlink_malloc) Renamed fn_readlink().
+ (getenv_default) Renamed fn_getenv_default().
+ (open_file) Renamed fn_open().
+ (close_file) Renamed fn_close().
+ (open_file_ext) Renamed fn_open_ext().
+ (close_file_ext) Renamed fn_close_ext().
+
+ * font.h: Migrate from arenas to pools.
+
+ * format.c: (parse_format_specifier_name) Deal with ds_* strings.
+
+ * frequencies.g: Migrate from arenas to pools.
+
+ * frequencies.q: Migrate to new q2c version. Migrate from arenas
+ to pools.
+
+ * getline.c: All references updated.
+ (global getl_buf) Changed from char * to struct string.
+ (static getl_include_path) Ditto.
+ (global getl_buf_len) Removed.
+ (global getl_buf_size) Removed.
+ (getl_include_path) Deal with new getl_buf, getl_include_path.
+ (getl_uninitialize) New function.
+ (getl_get_current_directory) Rewritten.
+ (getl_clear_include_path) Rewritten.
+ (getl_add_include_dir) Rewritten.
+ (getl_add_file) Assertion fixed.
+ (getl_add_virtual_file) Change initial value of `remaining_loops'
+ from 2 to 1.
+ (welcome) Rewritten.
+ (handle_line_buffer) Make static. Change logic to make
+ getl_add_virtual_file() change sensible. Use ds_*() strings.
+ (getl_read_line) Use ds_*() strings. Implement SET ECHO.
+ (getl_close_file) Moved.
+ (getl_location) New function.
+
+ * getline.h: All references updated.
+ (macro curln) Removed.
+ (macro curfn) Removed.
+ (macro am_interactive) Renamed getl_am_interactive.
+ (macro am_reading_script) Renamed getl_reading_script.
+
+ * glob.c: (global fmt_parse_ignore_error) Removed.
+ (init_glob) Use locale_dir not LOCALEDIR. Use feholdexcept() on
+ systems that support it (C99). Turn off SET ECHO by default. No
+ necessary julcal initialization anymore.
+
+ * groff-font.c: Migrate from arenas to pools.
+ (groff_read_font) Use err_push_file_locator().
+ (groff_read_DESC) Ditto.
+ (font_msg) Use tmsg().
+
+ * hash.c: (hsh_sort) Fix debug code.
+ [GLOBAL_DEBUGGING] Include stdio.h.
+
+ * hash.h: (macro force_hsh_insert) Rephrase.
+
+ * heap.c: Rewritten.
+
+ * heap.h: Rewritten.
+
+ * html.c: (html_option) Change from outp_value to struct string.
+ (postopen) Change from curfn to getl_location().
+ (escape_string) Remove rich-text code. Signature changed.
+ (output_tab_table) Switch from a_string to struct len_string.
+ Remove rich text support.
+
+ * lexer.c: All references updated. Largely rewritten. Major
+ changes listed below. Removed tagged quote support. Adapted to
+ struct string tokstr.
+ (global tokstr) Changed to struct string.
+ (global tokstr_size) Removed.
+ (global tokstr_len) Removed.
+ (global tokid) New.
+ (global tokint) Removed.
+ (global toklongstr) Removed.
+ (C* defines) Removed.
+ (static tbl[]) Removed.
+ (static id[]) Removed.
+ (static une[]) Removed.
+ (discard_line) Renamed lex_discard_line().
+ (get_entire_line) Renamed lex_entire_line().
+ (get_rest_of_line) Renamed lex_rest_of_line().
+ (get_dotted_rest_of_line) Merged into lex_rest_of_line().
+ (make_hexit) Removed.
+ (syntax_error) Renamed lex_error(). Return value removed.
+ (get_token_representation) Renamed lex_token_representation().
+ (putback) Renamed lex_put_back().
+ (putfwd) Renamed lex_put_forward().
+ (convert_negative_to_dash) Renamed lex_negative_to_dash().
+ (set_prog) Renamed lex_set_prog().
+ (init_lex) Renamed lex_init().
+ (reset_eof) Renamed lex_reset_eof().
+ (lookahead) Renamed lex_look_ahead().
+ (check_id) Rewritten.
+ (yylex) Renamed lex_get(), rewritten.
+ (lex_end_of_command) New function. Many commands were rephrased
+ using this.
+ (lex_integer_p) New function. Replaces compare of tokint against
+ NOT_LONG.
+ (lex_integer) New function. Replaces tokint.
+ (match_tok) Renamed lex_match().
+ (match_id) Renamed lex_match_id().
+ (match_int) Renamed lex_match_int().
+ (force_match_id) Renamed lex_force_match_id(), added return value.
+ (force_match) Renamed lex_force_match(), added return value.
+ (force_string) Renamed lex_force_string(), added return value.
+ (force_int) Renamed lex_force_int(), added return value.
+ (lex_id_match_len) New function.
+ (id_match) Renamed lex_id_match(), rewritten.
+ (get_line) Renamed lex_get_line().
+ (preprocess_line) Renamed lex_preprocess_line().
+ (tokname) Renamed lex_token_name().
+ (bin_value_func) Removed.
+ (oct_value_func) Removed.
+ (hex_value_func) Removed.
+ (unexpected_eof) New function.
+ (convert_numeric_string_to_char_string) New function.
+ (parse_string) Rewritten, signature changed.
+ (add_tokstr_char) Removed.
+ (add_tokstr_unsigned) Removed.
+ (add_tokstr_string) Removed.
+ (parse_tagged_quote) Removed.
+ (skip_comment) Renamed lex_skip_comment().
+
+ * lexer.h: All references updated.
+ (macro is_id1) Renamed CHAR_IS_ID1.
+ (macro is_idn) Renamed CHAR_IS_IDN.
+ (token names ID, NUM, STRING, STOP, ... WITH, EXP) Renamed with
+ prefix T_: T_ID, T_NUM, T_STRING, T_STOP, ... T_WITH, T_EXP.
+ (macro get_token) Removed.
+ (macro id_match) Removed.
+ (macro force_match_id) Removed.
+ (macro force_match) Removed.
+ (macro force_string) Removed.
+ (macro force_int) Removed.
+ (macro force_num) Removed.
+ (macro force_id) Removed.
+
+ * lexerP.h: Removed.
+
+ * list.q: Migrated to new q2c format.
+ (write_line) Deal with struct len_string.
+ (write_varname) Ditto.
+ (write_fallback_headers) Ditto.
+
+ * magic.c: New file, incorporating the following global variables
+ previously in other files: endian, second_lowest_value. And both
+ of those are conditional on #define's.
+
+ * magic.h: New file, incorporating the following global variable
+ declarations: endian, second_lowest_value, and the following macro
+ declarations: NOT_DOUBLE, NOT_LONG, NOT_INT.
+
+ * main.c: Added declarations of pgmname, finished, curdate,
+ start_interactive.
+ (main) Call new parse_script() function.
+ (parse_script) New function.
+ (execute_command) New function.
+ (dump_token) Removed.
+ (handle_error) New function.
+
+ * matrix.c: New file.
+
+ * matrix.h: New file.
+
+ * matrix-data.c: Migrated from arenas to pools.
+ (mget_token) Change from parse_string_as_format() to data_in().
+
+ * means.q: Migrate to new q2c.
+ (custom_tables) Renamed mns_custom_tables().
+ (custom_crossbreak) Renamed mns_custom_crossbreak().
+ (custom_variables) Renamed mns_custom_variables().
+
+ * mis-val.c: (static var width) Changed from `int' to `size_t'.
+ (parse_varnames) Prototype.
+ (parse_numeric) Rephrasings.
+ (parse_alpha) Adapt to new struct string tokstr.
+
+ * misc.c: (intlog10) Rewritten.
+ (spacing) Removed.
+ (ansi_rand) Renamed real_rand(), moved into random.c.
+ (ansi_srand) Renamed real_srand(), moved into random.c.
+ (setup_randomize) Moved to random.c.
+ (rand_uniform) Ditto.
+ (rand_normal) Ditto.
+ (rand_simple) Ditto.
+ (get_config_line) Removed.
+ (reverse) Removed (dead code).
+
+ * misc.h: (macro SET_BIT) Moved to bitvector.h.
+ (macro CLEAR_BIT) Ditto.
+ (macro TEST_BIT) Ditto.
+ (macro SET_BIT_TO) Ditto.
+ (macro BIT_INDEX) Ditto.
+
+ * output.c: (outp_read_devices) Move to err_push_file_locator()
+ from push_cust(). Use struct string.
+ (expand_op_tokstr) Removed.
+ (static var op_tokstr) Changed to struct string.
+ (static var op_tokstr_size) Removed.
+ (tokener) Rephrasings. Use struct string.
+ (parse_options) Use struct string.
+ (destroy_driver) Fix assertion.
+ (outp_get_paper_size) Move to err_push_file_locator().
+ [0] Removed dead code.
+ (outp_string_width) Move to len_string.
+
+ * output.h: Comment fixes.
+ (TAG_* enum series) Removed.
+ (struct outp_value) Removed.
+ (enum OUTP_T_FANCY) Removed.
+ (struct outp_text) `s' changed from a_string to len_string.
+ (struct outp_class) `option' change arg 3 from outp_value to
+ struct string.
+
+ * pfm-read.c: (corrupt_msg) Rewritten.
+
+ * pfm-write.c: (bufwrite) Fix assertion.
+
+ * pool.c: New file, reference version.
+
+ * pool.h: New file, reference version.
+
+ * postscript.c: (ps_font_sizes) Fix assertion.
+ (ps_option) Change arg 3 from outp_value to struct string.
+ Adapt to struct string.
+ (macro output_line) Removed.
+ (macro add_string) Removed.
+ (output_encodings) Adapted to struct string. Moved to
+ err_push_file_locator().
+ (find_encoding_file) Fix assertion.
+ (read_ps_encodings) Move to err_push_file_locator().
+ (postopen) Use getl_location() instead of curfn.
+ (out_text_plain) Move to len_string.
+ (text) Ditto. Remove rich text support.
+
+ * print.c: (cmd_print) Remove now-unneeded resource cleanup code.
+ (cmd_print_eject) Ditto.
+ (cmd_write) Ditto.
+ (internal_cmd_print) Now cleans up after itself. Uses
+ fh_parse_file_handle() now.
+ (cmd_print_space) Use PXP_NUMERIC to type-check.
+
+ * q2c.c: Overhauled. Removed _("") i18n support. All references
+ updated. All output functions updated to handle structures rather
+ than local or static variables. Adapt to new PSPP lex_*()
+ functions.
+ (macro _) Removed.
+ (macro N_) Removed.
+ (macro MAX_N_SBC) Removed.
+ (global bare) Removed.
+ (enum STRING) Renamed T_STRING.
+ (enum ID) Renamed T_ID.
+ (get_buffer) Buffer size increased.
+ (strlower) Renamed st_lower(), rephrased.
+ (strupper) Renamed st_upper(), rephrased.
+ (skip_ws) New function.
+ (get_line) Don't special-case any types of lines (like those
+ beginning with ! or $, for instance).
+ (get_token) Renamed lex_get(). Rephrased.
+ (static var `prefix') New.
+ (parse) New function.
+ (parse_setting) Minor rephrasing.
+ (dump_specifier_vars) Ditto.
+ (make_identifier) Put null terminator on identifier, duh.
+ (dump_vars) Renamed dump_declarations(). Never indent. Never
+ static. Output changed entirely.
+ (dump_specifier_init) Rephrase.
+ (dump_vars_init) No index variable needed. Other modifications.
+ (dump_parser) Don't parse command name. Do dump functions instead
+ of just code fragments.
+ (dump_free) Dump function instead of code fragment.
+ (recognize_directive) New function.
+ (main) Use recognize_directive(). Don't rely on magic $ line
+ beginning: instead, parse comments. Update list of headers.
+
+ * random.c: New file, containing the following functions:
+ real_rand(), real_srand(), setup_randomize, shuffle, rand_uniform,
+ rand_normal, rand_simple.
+
+ * random.h: New file.
+
+ * recode.c: (cmd_recode) Merge internal_cmd_recode() into this
+ function. `max_src_width', `max_dst_width' changed to size_t.
+ (internal_cmd_recode) Removed.
+ (parse_dest_spec) Merge similar cases.
+ (parse_src_spec) Add assertion.
+
+ * repeat.c: (recognize_keyword) New function.
+ (internal_cmd_do_repeat) Parse and handle PRINT keyword on END
+ REPEAT. Improve recognition of END REPEAT (use
+ recognize_keyword()). Move from curfn to getl_location(). Use
+ struct string.
+
+ (perform_DO_REPEAT_substitutions) Adapt to struct string.
+
+ * set.q: Adapt to new q2c.
+ (cmd_set) Range-check some values better.
+ (custom_blanks) Renamed stc_custom_blanks().
+ (custom_length) Renamed stc_custom_length().
+ (custom_results) Renamed stc_custom_results().
+ (custom_seed) Renamed stc_custom_seed().
+ (custom_width) Renamed stc_custom_width().
+ (custom_format) Renamed stc_custom_format().
+ (custom_journal) Renamed stc_custom_journal().
+ (custom_color) Renamed stc_custom_color().
+ (custom_listing) Renamed stc_custom_listing().
+ (custom_disk) Renamed stc_custom_disk().
+ (custom_log) Renamed stc_custom_log().
+ (custom_rcolor) Renamed stc_custom_rcolor().
+ (custom_viewlength) Renamed stc_custom_viewlength().
+ (custom_workdev) Renamed stc_custom_workdev().
+
+ * settings.h: Not necessary to include format.h any longer.
+
+ * sfm-read.h: (macro bswap_int32) Moved here from sfmP.h.
+ (corrupt_msg) Rewritten.
+
+ * sort.c: Adapt to rewritten heap ADT.
+
+ * str.c: (aa_strcpy) Removed.
+ (ab_strcpy) Removed.
+ (ac_strcpy) Removed.
+ (ba_strcpy) Removed.
+ (bb_strcpy) Removed.
+ (ca_strcpy) Removed.
+ (aa_strdup) Removed.
+ (aa_strdupcpy) Removed.
+ (ba_strdup) Removed.
+ (sa_strdup) Removed.
+ (memrev) Renamed mm_reverse().
+ (memrmem) Renamed mm_find_reverse().
+ (cmp_str) Renamed st_compare_pad().
+ (strmaxcpy) Removed.
+ (strbarepadcpy) Renamed st_bare_pad_copy(), signature changed.
+ (strbarepadlencpy) Renamed st_bare_pad_len_copy(), signature
+ changed.
+ (strpadcpy) Renamed st_pad_copy(), signature changed.
+ (blpstrset) Removed.
+ (ds_create) New function.
+ (ds_init) New function.
+ (ds_replace) New function.
+ (ds_destroy) New function.
+ (ds_clear) New function.
+ (ds_extend) New function.
+ (ds_shrink) New function.
+ (ds_truncate) New function.
+ (ds_length) New function.
+ (ds_size) New function.
+ (ds_value) New function.
+ (ds_end) New function.
+ (ds_concat) New function.
+ (ds_concat_buffer) New function.
+ (ds_printf) New function.
+ (ds_putchar) New function.
+ (ds_getline) New function.
+ (ds_get_config_line) New function derived from the old
+ misc.c:get_config_line().
+ (ls_create) New function.
+ (ls_create_buffer) New function.
+ (ls_init) New function.
+ (ls_shallow_copy) New function.
+ (ls_destroy) New function.
+ (ls_null) New function.
+ (ls_null_p) New function.
+ (ls_empty_p) New function.
+ (ls_length) New function.
+ (ls_value) New function.
+ (ls_end) New function.
+
+ * str.h: Reformatted.
+ (struct a_string) Removed.
+ (struct b_string) Removed.
+ (struct c_string) Removed.
+ (struct len_string) New.
+ (struct string) New.
+ (macro as_streq) Removed.
+ (macro bs_streq) Removed.
+ (macro cs_streq) Removed.
+ (macro sa_streq) Removed.
+ (macro sb_streq) Removed.
+ [__GNUC__] (inline function ds_putchar) New function.
+ [__GNUC__] (inline function ds_length) New function.
+ [__GNUC__] (inline function ds_value) New function.
+ [__GNUC__] (inline function ds_end) New function.
+
+ * sysfile-info.c: (cmd_sysfile_info) Rephrased.
+ (display_vectors) Fix missing i18n.
+
+ * t-test.q: Migrate to new q2c.
+
+ * tab.c: Migrate from arenas to pools.
+ (tab_create) Use struct len_string.
+ (tab_realloc) Ditto.
+ (text_format) Ditto.
+ (tab_joint_text) Ditto.
+ (tab_natural_width) Remove rich text support.
+ (tab_natural_height) Ditto.
+ (tab_output_text) Handle TAT_FIX.
+ (tab_raw) Change arg from a_string to len_string.
+ (tabi_driver) Fix assertion. Use struct len_string.
+ (render_strip) Use struct len_string. Remove rich text support.
+ Add `const' qualifiers.
+
+ * tab.h: (enum TAB_RICH) Remove.
+ (enums TAB_COL_NONE, TAB_COL_DONE) New. Where appropriate,
+ SOM_COL_* updated to read TAB_COL_*.
+ (struct tab_table) Change arena to pool. Change a_string to
+ len_string.
+
+ * temporary.c: (restore_dictionary) Rewrite Checker code.
+
+ * var.h: (macros MAX_SHORT_STRING, MIN_LONG_STRING, SYSMIS,
+ LOWEST, HIGHEST) Moved here from common.h.
+ (typedef any_trns) Removed. All references changed to `struct
+ trns_header'.
+
+ * vars-atr.c: (force_create_variable) Fix assertion.
+ (force_dup_variable) Fix assertion.
+
+Thu Jun 3 18:40:42 1999 Ben Pfaff <blp@gnu.org>
+
+ Using alphanumeric variables in functions under AGGREGATE
+ segfaulted. Fixed. Thanks to Dr. Dirk Melcher
+ <BZN-mdksh@t-online.de> for reporting this bug.
+
+ * aggregate.c: (parse_aggregate_functions) When setting the
+ FSTRING bit, also allocate memory for the `string' member of
+ agr_next.
+ (free_aggregate_functions) Free iter->string. Don't use the
+ non-function bits when indexing the array of functions.
+ [DEBUGGING] (debug_print) Don't use the non-function bits when
+ indexing the array of functions.
+
+Sun May 30 00:00:54 1999 Ben Pfaff <blp@gnu.org>
+
+ Under certain circumstances, the final case would be omitted from
+ the results of an AGGREGATE operation. Fixed. Thanks to Dr. Dirk
+ Melcher <BZN-mdksh@t-online.de> for reporting this bug.
+
+ * aggregate.c (agr_00x_end_func): Increment number of cases in
+ sink before writing case. For streams that keep track of how many
+ cases there are based on this value, this means that the last case
+ will be read in on the next stream read.
+
+Sat May 29 22:03:31 1999 Ben Pfaff <blp@gnu.org>
+
+ Undefined behavior was invoked by referencing a freed pointer.
+
+ * vfm.c (memory_stream_write): Free pointer *after* checking for
+ non-null status.
+
+Sat May 29 22:02:22 1999 Ben Pfaff <blp@gnu.org>
+
+ A wrong record size was displayed when paging the active file to
+ disk.
+
+ * vfm.c: (memory_stream_write) Fix off-by-one error.
+
+Sat May 29 21:50:26 1999 Ben Pfaff <blp@gnu.org>
+
+ Not having enough temporary space for sorting caused a core dump.
+ Fixed.
+
+ * sort.c: (allocate_cases) Initialize i.
+
+Sat May 29 21:40:54 1999 Ben Pfaff <blp@gnu.org>
+
+ Syntax errors in function descriptions on AGGREGATE caused core
+ dumps. Fixed.
+
+ * aggregate.c (cmd_aggregate): Don't free agr_dict after calling
+ free_aggregate_functions(), since that function already frees
+ agr_dict.
+
+Sat May 29 21:06:10 1999 Ben Pfaff <blp@gnu.org>
+
+ A null pointer was dereferenced, causing a core dump, when
+ PERCENTILES was specified on FREQUENCIES. This fixes the problem,
+ but PSPP still doesn't calculate percentiles. Thanks to Regnor
+ Jernsletten <rjernsle@eunet.no> for reporting this problem.
+
+ * arena.c: (arena_malloc) If the arena hasn't been initialized
+ already, initialize it.
+
+Sat May 29 20:47:29 1999 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.cygwin: New file supplied by Hankin <hankin@dunno.com>
+ for compilation with Cygnus Windows B20. Not used by other
+ systems.
+
+Sat May 29 20:36:04 1999 Ben Pfaff <blp@gnu.org>
+
+ SORT always sorted in ascending order. Fixed. Thanks to Dr. Dirk
+ Melcher <BZN-mdksh@t-online.de> for reporting this bug.
+
+ * sort.c: (compare_case_lists) Reverse sense of comparison if
+ sorting in descending order.
+ (compare_record) Ditto.
+
+Tue Mar 9 13:18:54 1999 Ben Pfaff <blp@gnu.org>
+
+ SPLIT FILE with a string variable caused a core dump. Fixed.
+
+ * vfm.c: If the variable is a string then make a temporary value
+ struct pointing to it. The underlying problem is a lot bigger
+ than this (see TODO) but this is a stopgap for the simple case at
+ least.
+
+Tue Mar 9 13:15:53 1999 Ben Pfaff <blp@gnu.org>
+
+ Nested INCLUDEs didn't work. Fixed.
+
+ * getline.c: (getl_include) Set first_line to NULL in allocated
+ structure.
+
+Tue Mar 9 13:13:46 1999 Ben Pfaff <blp@gnu.org>
+
+ The MATCH FILES procedure set the values of variables not present
+ to 0. It should have been SYSMIS. This is now fixed.
+
+ * get.c: (mtf_delete_file_in_place) Replace 0.0 by SYSMIS.
+
+Tue Mar 9 12:52:23 1999 Ben Pfaff <blp@gnu.org>
+
+ The REMARK command was too aggressive about skipping lines. It
+ didn't like being the last command in a file.
+
+ * command.c: (cmd_remark) Call get_entire_line() instead of
+ get_line().
+
+Tue Mar 9 12:48:05 1999 Ben Pfaff <blp@gnu.org>
+
+ Comment parsing wasn't consistent with the rest of the code in its
+ idea of where one command ends and another starts. This meant
+ that sometimes commands would be mysteriously ignored. Thanks to
+ Dr. Dirk Melcher <BZN-mdksh@t-online.de> for reporting this bug.
+
+ * command.c: (parse_cmd) Hand off comment parsing to new function
+ skip_comment() in lexer.c.
+ * lexer.c: (skip_comment) New function.
+
+Wed Jan 20 20:22:07 1999 Ben Pfaff <blp@gnu.org>
+
+ The TABLE subcommand on MATCH FILES worked only erratically at
+ best. This fixes it. Thanks to Dr. Dirk Melcher
+ <BZN-mdksh@t-online.de> for reporting this bug.
+
+ * get.c: (mtf_compare_BY_values) When comparing string values, a
+ difference of 1 is still a difference :-)
+ (mtf_processing) Inverted TABLE reading logic fixed. Also don't
+ advance TABLE files automatically when matched. Comment fixes.
+
+Tue Jan 19 22:32:31 1999 Ben Pfaff <blp@gnu.org>
+
+ VARIABLE LABELS rejected a slash before the first variable
+ specification, contradicting the documentation. Thanks to Walter
+ M. Gray <graywm@northernc.on.ca> for reporting this bug.
+
+ * var-labs.c: (cmd_variable_labels) Ignore a leading slash in
+ command specification.
+
+Tue Jan 19 22:29:54 1999 Ben Pfaff <blp@gnu.org>
+
+ Because of an incorrect optimization in memory allocation,
+ CROSSTABS sometimes segfaulted when asked to output multiple
+ tables. Thanks to Walter M. Gray <graywm@northernc.on.ca> for
+ reporting this bug.
+
+ * crosstabs.q: (postcalc) New variables maxcols, maxcells, which
+ are passed to output_pivot_table() for its use.
+ (output_pivot_table) Instead of assuming the number of columns is
+ constant, keep track with maxcols. In general mode, use maxcells
+ to determine whether more matrix cells need to be allocated.
+
+Tue Jan 19 22:27:46 1999 Ben Pfaff <blp@gnu.org>
+
+ CROSSTABS didn't display value labels for column and row
+ variables. Thanks to Walter M. Gray <graywm@northernc.on.ca> for
+ reporting this bug.
+
+ * crosstabs.q: (table_value_missing) If the specified value has a
+ value label for this variable, then show it instead of the raw
+ value.
+ (display_dimensions) Delegate display of value_labels to
+ table_value_missing.
+
+Mon Jan 18 20:04:06 1999 Ben Pfaff <blp@gnu.org>
+
+ WRITE didn't write line ends. Fixed. Thanks to Dr. Dirk Melcher
+ <BZN-mdksh@t-online.de> for reporting this bug.
+
+ * print.c: (print_trns_proc) Write (CR/)LF if PRINT is used _or_
+ if the file isn't declared as binary.
+
+Mon Jan 18 19:56:45 1999 Ben Pfaff <blp@gnu.org>
+
+ MATCH FILES corrupted memory and dumped core on some syntax
+ errors. Fixed.
+
+ * get.c: (cmd_match_files) Set file->handle to NULL before
+ jumping to lossage.
+ (mtf_free_file) Don't free a null dictionary.
+
+Mon Jan 18 19:27:57 1999 Ben Pfaff <blp@gnu.org>
+
+ MATCH FILES should set numeric values not available to the
+ system-missing value, not to 0. Thanks to Dr. Dirk Melcher
+ <BZN-mdksh@t-online.de> for reporting this bug.
+
+ * get.c: (mtf_processing) Set unused records to system-missing,
+ not 0.
+
+Mon Jan 18 15:06:46 1999 Ben Pfaff <blp@gnu.org>
+
+ KEEP didn't work properly on the SAVE procedure. Fixed. Thanks
+ to Ralf Geschke <ralf@kuerbis.org> for reporting this bug.
+
+ * temporary.c: (save_dictionary) Initialize var_by_name AVL tree
+ in newly created dictionary, and add each copied variable to the
+ tree.
+
+Mon Jan 18 15:04:48 1999 Ben Pfaff <blp@gnu.org>
+
+ Memory leak fix.
+
+ * get.c: (trim_dictionary) Free variable list for KEEP after
+ finishing with it.
+
+Mon Jan 18 12:57:36 1999 Ben Pfaff <blp@gnu.org>
+
+ Some systems didn't like the way open_file was coded. Thanks to
+ Hankin <hankin@rogue.consultco.com> for pointing this out.
+
+ * filename.c: (open_file) Don't try to store stdin, stdout,
+ stderr as part of an array, because that doesn't always work.
+
+Mon Jan 18 12:53:27 1999 Ben Pfaff <blp@gnu.org>
+
+ The SAVE procedure didn't save long string variables properly.
+ Fixed by this patch. Thanks to Hankin
+ <hankin@rogue.consultco.com> for this patch.
+
+ * sfm-write.c: (write_variable) Fix off-by-one error in writing
+ out variable pad records.
+
+Tue Jan 5 14:29:27 1999 Ben Pfaff <blp@gnu.org>
+
+ Previously, if PRINT SPACE were given a negative argument, it
+ would report an error, then spin in an (almost) infinite loop.
+ This fixes that behavior.
+
+ * print.c: (print_space_trns_proc) After reporting a negative
+ argument, set number of lines to print to 1.
+
+Tue Jan 5 13:59:55 1999 Ben Pfaff <blp@gnu.org>
+
+ SPSS 8.0 outputs some new record types in its system files, and it
+ allows longer value labels. Accept these system files.
+
+ * sfm-read.c: (sfm_read_dictionary) Ignore record type 7 subtype
+ 11 emitted by SPSS 8.0.
+
+Tue Jan 5 13:55:50 1999 Ben Pfaff <blp@gnu.org>
+
+ The LIST procedure was too conservative in allocating space for
+ buffers, which caused a bug that only showed up with very long
+ output variables. Thanks to Hankin <hankin@dunno.com> for this
+ bug report.
+
+ * list.q: (determine_layout) Allocate 1022 bytes instead of 256.
+
+Tue Jan 5 13:34:34 1999 Ben Pfaff <blp@gnu.org>
+
+ Typo meant string format specifiers weren't checked properly. I
+ think that Hankin <hankin@dunno.com> sent me this report, but I'm
+ willing to be corrected on this point.
+
+ * format.c: (check_string_specifier) Fix obvious typo.
+
+Tue Jan 5 12:50:42 1999 Ben Pfaff <blp@gnu.org>
+
+ Using $CASENUM in an expression didn't work. Here's a fix.
+ Thanks to Dirk Melcher <BZN-mdksh@t-online.de> for reporting this
+ bug.
+
+ * expr-evl.c: (evaluate_expression) Add OP_CASENUM case.
+
+ * expr-opt.c: (dump_node) OP_CASENUM is acceptable.
+
+Tue Jan 5 12:47:48 1999 Ben Pfaff <blp@gnu.org>
+
+ The changes in 0.2.1 to fix DATA LIST FREE parsing broke some
+ other behavior, *sigh*. This patch hopefully fixes that. This
+ time I've actually tested it.
+
+ Thanks to Hankin <hankin@dunno.com> for reporting this bug.
+
+ * data-list.c: (read_from_data_list_free,
+ read_from_data_list_list) Call parse_string_as_format() directly
+ without mucking around with the field width.
+
+Tue Jan 5 12:31:19 1999 Ben Pfaff <blp@gnu.org>
+
+ Occasionally, you may encounter a script that wants to be
+ interpreted in interactive mode. Make -i emulate this behavior to
+ allow such scripts to be executed with PSPP.
+
+ Thanks to Hankin <hankin@dunno.com> for reporting this behavior.
+
+ * cmdline.c: (pre_syntax_message[]) Update -i description.
+
+ * lexer.c: (preprocess_line) When getl_interactive is 2 (i.e.,
+ when -i is given on the command line) don't treat unindented lines
+ as starting a new command.
+
+Tue Jan 5 12:30:10 1999 Ben Pfaff <blp@gnu.org>
+
+ In conjunction with egcs 1.1.1, Checker emits some bogus warnings,
+ mostly caused by local initialized aggregates. After egcs is
+ fixed upstream these can be removed, but for now they're not a big
+ deal.
+
+ * ascii.c: (ascii_postopen_driver) Checker chokes on local
+ initialized arrays. Avoid this.
+
+ * sfm-write.c: (sfm_write_dictionary) Don't use a local
+ initialized struct.
+
+Tue Jan 5 12:07:24 1999 Ben Pfaff <blp@gnu.org>
+
+ egcs 1.1.1 has some new warnings relative to gcc 2.8.1, which the
+ following changes avoid. Currently I compile sources with egcs
+ 1.1.1 and gcc 2.7.2.3 before sending them out.
+
+ * apply-dict.c: (apply_dict) Use new avl_traverser_init() macro.
+
+ * ascii.c: (option_tab[]) Initialize all struct members.
+
+ * avl.h: (avl_traverser_init) New macro.
+
+ * command.c: (DEFCMD, UNIMPL macros, cmd_table[]) Initialize all
+ struct members.
+
+ * crosstabs.q: (enum_var_values) Use new hsh_iterator_init()
+ macro.
+
+ * hash.c: Comment fix.
+
+ * hash.h: (hsh_iterator_init) New macro.
+
+ * html.c: (option_tab[]) Initialize all struct members.
+
+ * pfm-write.c: (write_value_labels) Use new avl_traverser_init()
+ macro.
+
+ * postscript.c: (option_tab[]) Initialize all struct members.
+ (output_encodings, preclose, dump_lines) Use new
+ hsh_iterator_init() macro.
+
+ * sfm-write.c: (write_value_labels) Use new avl_traverser_init()
+ macro.
+
+ * sysfile-info.c: (describe_variable) Use new avl_traverser_init()
+ macro.
+
+Thu Nov 19 12:32:45 1998 Ben Pfaff <blp@gnu.org>
+
+ * data-in.c: Examined each of the parsing functions to make sure
+ that they wouldn't dump core if they were passed a string of the
+ wrong length, since now the DATA LIST FREE/LIST routines don't
+ check for field width before passing it to the data parser.
+ (parse_RBHEX, parse_AHEX) Reject odd length input.
+ (parse_string_as_format) Reject input that's too short or too
+ long.
+
+ * data-list.c: Before, the DATA LIST FREE/LIST routines would pad
+ a field to its entire declared output width then pass it to the
+ data-in parsing routines. This contradicted the documented
+ behavior. This is fixed in these changes. Thanks to Mark H. Wood
+ <mwood@IUPUI.Edu>. In addition, this fixes a few more details of
+ free-format parsing that differed from SPSS.
+ (cut_field) Commas and spaces are treated identically. Returns
+ the proper column instead of a fixed 1 value.
+ (parse_field) Removed.
+ (read_from_data_list_free, read_from_data_list_list) Call
+ parse_string_as_format directly instead of parse_field.
+
+ * heap.c: (heap_delete) Stylistic fixes.
+
+Sun Aug 9 11:12:13 1998 Ben Pfaff <blp@gnu.org>
+
+ * loop.c: (loop_2_trns_proc) Formatting fix.
+
+ * sel-if.c: (cmd_filter) Set FILTER_before_TEMPORARY.
+
+ * var.h: (glob var FILTER_before_TEMPORARY) New global var.
+
+ * vfm.c: (macro FILTERED) New.
+ (static var filter_var) New.
+ (process_active_file_write_case) Use FILTERED.
+ (setup_filter) Set filter_var.
+ (close_active_file) Delete the filter if not
+ FILTER_before_TEMPORARY.
+ (procedure_write_case) Use FILTERED.
+
+Sat Aug 8 00:20:14 1998 Ben Pfaff <blp@gnu.org>
+
+ * crosstabs.q: Changed /PIVOT={ON,OFF} to /FORMAT={PIVOT,NOPIVOT}.
+
+ * data-in.c: (parse_day_count) Message fix.
+ (parse_month) Style fix.
+
+ * data-list.c: (struct data_list_pgm) New member eof.
+ (cmd_data_list) Init eof to 0.
+ (do_reading) Implement the /END subcommand and read-past-eof
+ checking.
+
+ * do-if.c: Include stdio.h when debugging.
+ (cmd_else_if) Make sure the command is .-terminated.
+
+ * glob.c: (init_glob) Capitalize the command prompt.
+
+ * inpt-pgm.c: (end_case_trns_proc) Debugging message.
+ (end_file_trns_proc) Debugging message.
+
+ * loop.c: (internal_cmd_loop) Make it work when there's no loop
+ index!
+ (loop_2_trns_proc) Enable MXLOOPS (why was this disabled?)
+
+ * main.c: (dump_token) Make kwtab[] const.
+
+ * set.q: Spelling, comment fixes.
+
+ * sysfile-info.c: (cmd_display) DISPLAY VECTORS not DISPLAY
+ VECTOR.
+
+ * vars-prs.c: (fill_all_vars) Style fix.
+
+ * vfm.c: (index_to_varname) Return const.
+
+Tue Aug 4 23:49:23 1998 Ben Pfaff <blp@gnu.org>
+
+ * Changes in many source files for partial -ansi -pedantic and
+ no-debugging compliance: Remove trailing common in enum
+ declarations; add `unused' attributes; insert some appropriate
+ casts.
+
+ * cmdline.c: (parse_command_line) Add new --testing-mode flag.
+
+ * command.c: (shell) Make static.
+ (run_command) Make static.
+
+ * data-list.c: (dump_fixed_table) Remove use of local_strdup().
+
+ * dfm.c: (cmd_begin_data) I18n fix.
+
+ * error.c: (verbose_msg) Define if __STRICT_ANSI__.
+
+ * error.h: (macro verbose_msg) Define if __STRICT_ANSI__.
+
+ * expr-opt.c: (evaluate_tree) Don't initialize local arrays if
+ __STRICT_ANSI__.
+
+ * file-handle.q: Don't prepend the source file directory name to
+ the data file name. (Ongoing issue.)
+ (prepend_current_directory) Comment out.
+ (internal_cmd_file_handle) Don't call prepend_current_directory().
+ (fh_get_handle_by_filename) Ditto.
+
+ * filename.c: Append zero byte to readlink() return value.
+
+ * getline.c: (getl_read_line) I18n fix.
+
+ * lexer.h: Don't use gcc features if __STRICT_ANSI__.
+
+ * misc.h: Don't use gcc features if __STRICT_ANSI__.
+
+ * pfm-write.c: (bufwrite) Don't try to increment a void * pointer
+ directly.
+
+ * postscript.c: (output_encodings) Don't use local_strdup().
+ (postopen) Ditto.
+
+ * print.c: Don't use gcc features if __STRICT_ANSI__.
+
+ * q2c.c: (dump_vars) Don't put a , at the end of the last enum.
+
+ * recode.c: (parse_src_spec) Fully brace nested if's.
+
+ * set.q: (global var set_testing_mode) New var.
+
+Wed Jul 29 22:01:44 1998 Ben Pfaff <blp@gnu.org>
+
+ * ascii.c: Add some more `unused' attributes that only come into
+ play when NDEBUG is defined.
+ (ascii_close_page) Set s_len when reallocating s.
+
+ * crosstabs.q: (delete_missing) New function.
+ (output_pivot_table) Call delete_missing() if /MISSING=REPORT.
+ (make_summary_table) Create summary table reallocable.
+
+ * postscript.c: Add more `unused' attributes as above.
+
+ * tab.c: (tab_create) [GLOBAL_DEBUGGING] Set reallocable member.
+ (tab_realloc) [GLOBAL_DEBUGGING] Assert that table is reallocable.
+
+ * tab.h: (struct tab_table) [GLOBAL_DEBUGGING] New `reallocable'
+ member.
+
+ * var.h: (macro force_dup_variable) [!GLOBAL_DEBUGGING] Remove
+ gratuitous space between parameter definition.
+
+ * vars-atr.c: Changed some assert(0)'s to abort()'s to prevent
+ complaints about running off the end of functions with NDEBUG
+ enabled.
+
+Sun Jul 5 00:17:25 1998 Ben Pfaff <blp@gnu.org>
+
+ * Several source files: Removed some PORTME notes when reflection
+ revealed that ANSI forbids that sort of breakage. Also, added
+ lots of `unused' qualifiers here and there.
+
+ * aggregate.c: (accumulate_aggregate_info) Remove local var
+ weighting that turned out not to be used.
+
+ * avl.c: Update to version 1.1.0. Add unused specifier.
+ (avl_destroy) Initialize ab to 0. Comment fixes. Cast return
+ value to void *.
+ (avl_probe) Replace some instances of 1 with +1 where appropriate.
+ (avl_find) Cast return value to void *.
+ (avl_delete) q doesn't need to be initialized at the beginning of
+ the function. Replace some instances of 1 with +1.
+ (force_avl_delete) Renamed avl_force_delete, all references changed.
+ (compare_ints) `param' marked unused.
+ (print_int) `param' marked unused.
+ (recurse_tree) Replace some instances of 1 with +1.
+
+ * avl.h: Update to version 1.1.0. Only declares avl function
+ types if not already declared.
+ (AVL_MAX_HEIGHT) Only define if not already defined.
+ (struct avl_node) New unused member char pad[2].
+ [GLOBAL_DEBUGGING] Change conditionalization to NDEBUG instead.
+ (force_avl_insert) Renamed avl_force_insert.
+ (force_avl_delete) Renamed avl_force_delete.
+
+ * crosstabs.q: (struct table_entry) Put `freq' into a union with
+ new member `data'.
+ (struct crosstab) Add new member `ofs'.
+ (glob var int_tab) Removed.
+ (custom_tables) In integer mode, assign v[i] properly through the
+ indirect var_dict.
+ (custom_variables) Now p.crs.max == max + 1.
+ [DEBUGGING] (debug_print) p.crs.min and p.crs.max are now ints.
+ (precalc) Implement integer mode.
+ (calc_integer) Implement integer mode.
+ (compare_table_entry) Remove unused local variable `comparing'.
+ (make_summary_table) Implement integer mode.
+ (macro ns_rows) Implemented as static variable now.
+ (several variables) Made static, from global.
+ (output_pivot_table) Use table_value_missing() for column heads.
+ Remove several unused local variables. Implement integer mode
+ table summing. Count up ns_rows.
+ (crosstabs_dim) Make columns wider when /MISSING=REPORT requested.
+ (find_pivot_extent) Moved into find_pivot_extent_general; now just
+ calls that function or find_pivot_extent_integer.
+ (find_pivot_extent_integer) New function.
+ (enum_var_values) Implemented for integer mode.
+ (table_value_missing) New function.
+ (display_dimensions) Call table_value_missing() for heads.
+ (float_M_suffix) New function.
+ (display_crosstabulation) Call table_value_missing() for row
+ heads. Handle missing values in /MISSING=REPORT mode.
+ (calc_fisher) Remove unused var N.
+ (calc_r) Remove unused var fact.
+
+ * data-list.c: (dump_fixed_table) Fix table dimensioning.
+ (read_one_set_of_repetitions) Remove unused vars var_spec, column.
+
+ * data-out.c: (insert_commas) Remove unused var cp.
+ (convert_CCx) Remove unused vars save_set_decimal,
+ save_set_grouping.
+
+ * descript.q: (dump_z_table) Fix table dimensioning.
+ (pre_calc) Remove unused var j.
+ (display) Remove unused vars title, s. Fix table dimensioning.
+
+ * expr-evl.c: Comment fixes.
+
+ * frequencies.q: (full_dim) New function.
+ (dump_full) Fix table dimensioning.
+ (condensed_dim) New function.
+ (dump_condensed) Fix table dimensioning.
+
+ * get.c: (cmd_match_files) Remove unused var n_val. Remove unused
+ label winnage.
+
+ * html.c: (html_close_drive) Remove unused var i.
+ (postopen) Remove unused vars title, curfn_len, cp.
+ (preclose) Remove unused vars this, x.
+
+ * lexer.c: Comment fixes.
+
+ * matrix-data.c: (cmd_matrix_data) Remove unused var index.
+
+ * means.q: (custom_tables) Remove unused var m_dim.
+
+ * mis-val.c: Format fix.
+
+ * modify-vars.c: (cmd_modify_vars) Remove unused var new_dict.
+
+ * output.c: (outp_get_paper_size) Remove unused var cp.
+
+ * pfm-read.c: (read_float) Remove unused var save, unused label
+ underflow.
+ (read_variables) Remove unused vars cp, j.
+ (read_value_label) Remove unused var j.
+
+ * pfm-write.c: (bufwrite) Remove unused var i.
+
+ * postscript.c: (ps_postopen_drive) Remove unused vars dev_info,
+ fn.
+ (output_encodings) Remove unused vars char_cp, n_output.
+ (read_ps_encodings) Remove unused var ep.
+ (postopen) Remove unused var title.
+ (preclose) Remove unused var fp.
+ (ps_open_page) Remove unused vars true, false, orientation,
+ mirror_horz, mirror_vert, width, length.
+ (ps_text_metrics) Remove unused var x.
+
+ * q2c.c: (find_symbol) Remove unused var y.
+ (parse_setting) Remove unused parameter sbc, all references
+ changed.
+ (dump_parser) Remove unused var cp.
+ (dump_free) Remove unused var i.
+
+ * set.q: (static vars args, n) Removed.
+ (internal_cmd_gset) Removed.
+
+ * sfm-read.c: (sfm_read_dictionary) Removed unused var i.
+ (read_machine_flt64_info) Removed unused var file_endian.
+ (read_documents) Removed unused var i.
+ (read_compressed_data) Removed unused parameter dict, all
+ references changed.
+
+ * sfm-write.c: (bufwrite) Removed unused var i.
+ (sfm_write_case) Removed unused var i.
+
+ * sort.c: (merge_once) Remove unused var t.
+ (write_separate) #if 0 out as dead code.
+
+ * split-file.c: (cmd_split_file) Remove unused var i.
+
+ * sysfile-info.c: (sysfile_info_dim) New function.
+ (cmd_sysfile_info) Fix table dimensioning.
+ (variables_dim) New function.
+ (display_variables) Fix table dimensioning.
+ (describe_variable) Remove unused var prev_r.
+
+ * t-test.q: (z_postcalc) Removed.
+ (pairs_calc) Remove unused var bad_weight.
+ (postcalc) Remove unused vars dfn, dfd.
+
+ * tab.c: (tab_create) Set t->dim to NULL.
+ (tab_dim) Make sure t->dim is NULL first.
+ (tab_natural_width) Remove parameter `clamp'.
+ (tab_value) Remove duplicate assertion for table.
+ (tab_raw) New function.
+ (nowrap_dim) New function.
+ (wrap_dim) New function.
+ (tab_output_text) Fix table dimensioning.
+
+ * tab.h: (tab_raw) New macro.
+
+ * val-labs.c: (get_label) Remove unused var type.
+ (copy_value_labels) Remove unused var trav.
+
+ * var.h: (struct crosstab_proc) Completely changed.
+
+ * vars-prs.c: (parse_dict_variable) Remove unused var v.
+
+ * vfm.c: (open_active_file) Remove unused vars i, lp.
+
+ * weight.c: (weight_trns_proc) #if 0 out as dead code.
+
+Tue Jun 2 23:37:21 1998 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Add apply-dict.c, flip.c.
+
+ * apply-dict.c: New file.
+
+ * command.c: (struct command) Make cmd[] larger for CLEAR
+ TRANSFORMATIONS command name.
+ (parse_cmd) Make sure we're in a valid state before using it as an
+ index. Discard variables and reset state on invalid transitions.
+ (cmd_clear_transformations) New function.
+
+ * command.def: Add APPLY DICTIONARY, CLEAR TRANSFORMATIONS, FLIP.
+ Add unimplemented PRESERVE, RESTORE.
+
+ * file-handle.h: Include stddef.h.
+
+ * flip.c: New file.
+
+ * pfm-read.c: (parse_value) Pad value label values with spaces,
+ not nulls.
+
+ * sfm-read.c: (struct sfm_fhuser_ext) Add reference count.
+ (sfm_close) Decrement reference count, make sure it's zero.
+ (sfm_maybe_close) New function.
+ (sfm_read_dictionary) Handle reference counts.
+
+ * vars-atr.c: (clear_default_dict) New function.
+ (discard_variables) Use clear_default_dict().
+
+Sun May 31 00:58:05 1998 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Add pfm-write.c.
+ (LDADD) Add the libgmp2 libraries.
+
+ * command.def: Define EXPORT.
+
+ * get.c: (cmd_export) New function.
+ (export_write_case_func) New function.
+
+ * pfm-read.c: (static spss2ascii[]) Make it const.
+
+ * pfm-write.c: New file.
+
+ * sfm-write.c: Formatting, comment fixes.
+
+ * var.h: Comment fix.
+
+Fri May 29 21:44:12 1998 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Add pfm.h, pfm-read.c.
+
+ * command.def: IMPORT is now implemented.
+
+ * format.c: (glob var translate_fmt[]) New var.
+
+ * get.c: (enum GTSV_NONE) Renamed GTSV_OPT_NONE.
+ (cmd_import) New function.
+ (import_source_read) New function.
+ (glob var import_source) New var.
+
+ * pfm-read.c: New file.
+
+ * pfm.h: New file.
+
+ * sfm-read.c: (parse_format_spec) Local variable translate_fmt[]
+ moved in format.c.
+ (dump_dictionary) Disabled printing a couple of items.
+
+Mon May 25 12:42:37 1998 Ben Pfaff <blp@gnu.org>
+
+ * crosstabs.q: (postcalc) Call make_summary_table().
+ (make_summary_table) New function.
+ (insert_summary) New function.
+ (display_dimensions) Remove some unnecessary arguments, all
+ references changed.
+ (output_pivot_table) Fix lots of problems with the risk table
+ setup.
+ (submit) Don't display an empty table.
+ (display_risk) Fix order of arguments to calc_risk().
+
+ * glob.c: Always include assert.h and stdlib.h.
+
+ * output.h: (enum OUTP_T_JUST_FULL) Removed, all references
+ removed.
+
+ * tab.c: (tab_create) Cosmetic changes.
+
+ * tab.h: (enum TAB_JUSTIFY) Removed, all references removed.
+
+Sun May 24 22:39:23 1998 Ben Pfaff <blp@gnu.org>
+
+ * tab.def: Removed.
+
+ * crosstabs.q: (output_pivot_table) Headers drawing and submission
+ code simplified, moved into new function submit().
+ (submit) New function.
+ (crosstabs_dim) New function.
+ (display_directional) Substitute variable names for %s where
+ appropriate.
+ (somers_d_v[], somers_d_ase[], somers_d_t[]) New static vars.
+ (calc_symmetric) Initialize parameters only if non-NULL.
+ Calculate Somers' d.
+ (calc_directional) Calculate Somers' d (or copy it, really).
+ Calculate eta.
+
+ * output.c: (outp_string_width) New function.
+
+ * postscript.c: (postopen) Calculate font widths based on the
+ width of the zero '0' character, not the width of the space
+ character. Set paper-width and paper-length based on points, not
+ device units.
+ (ps_open_page) Fix page setup string for landscape mode.
+
+ * som.h: (struct som_dimension) Removed.
+ (struct som_table_class) height, width members take int * not
+ som_dimesion * now.
+
+ * tab.c: Many functions now have added parameter validation.
+ (tab_height, tab_width) These functions were removed and merged
+ into a single function tab_resize(), and all references changed.
+ (tab_dim) Rewritten since the interface changed; reduced from
+ hundreds of lines to two. All callers were changed. Currently
+ most of them just use tab_natural_dimensions as their callback and
+ await detailed translation of functionality.
+ (tab_natural_width) New function.
+ (tab_natural_height) New function.
+ (tab_natural_dimensions) New function. This is a callback
+ function, not something that you'd want to call directly.
+ (tab_nat_dim) Removed.
+ (tabi_table) Allocates t->w and t->h.
+ (tabi_driver) Inlined sum_columns()'s functionality. Calls the
+ dimensions callback.
+ (evaluate_dimensions) Removed.
+ (sum_columns) Removed.
+
+ * tab.h: (enum TAL_1THIN) Removed.
+ (enum series t_*) Removed.
+ (struct tab_table) Members trh, trv changed to unsigned char *
+ from int *. Member dim changed to a function pointer from a
+ unsigned char *. Member max_stack_height removed. New members
+ hr_tot, vr_tot.
+ (macros tab_l, tab_r, tab_t, tab_b) New.
+
+Sat May 23 23:22:13 1998 Ben Pfaff <blp@gnu.org>
+
+ * ascii.c: (delineate) Assign last_space_nchars before skipping
+ spaces, to fix right justification.
+
+ * crosstabs.q: (static vars risk, direct) New vars.
+ (static var pearson_r) Removed.
+ (glob var chisq_fisher) Made static.
+ (static vars row_tot[], col_tot[]) Don't include grand total
+ anymore.
+ (static var grand_total) Renamed W, all references changed.
+ (output_pivot_table) Only make `table' if num_cells != 0. Make
+ risk and directional tables. Deal with grand total no longer part
+ of col_tot[]. Free rows and cols after we're done with them.
+ (display_risk) New function.
+ (display_directional) New function.
+ (clac_r) Rewritten so that it stores all its results into its
+ arguments, so it can be used for Spearman's correlation too.
+ (calc_symmetric) Added a t[] argument, all references changed.
+ Calculates ASEs for tau-b, tau-c, gamma. Calculates Spearman's r,
+ Pearson's r, Cohen's kappa.
+ (calc_risk) New function.
+ (calc_directional) New function.
+
+ * som.c: (som_submit) Improved debugging code.
+
+ * stats.c: (hypercube) New function.
+ (cube) New function.
+ (sqr) New function.
+ (normal_sig) Went back to old implementation, which actually
+ worked.
+
+ * stats.h: (macros square, cube, hypercube) Removed. The
+ equivalent functions in stats.c are inlined here; all references
+ to square changed to sqr.
+
+Fri May 22 00:03:41 1998 Ben Pfaff <blp@gnu.org>
+
+ * crosstabs.q: (N_SYMMETRIC) New define.
+ (postcalc) Disable debug printing.
+ (static vars chisq_fisher, pearson_r) New.
+ (output_pivot_table) Add support for symmetric measures. Add
+ chi-square output of exact sigs.
+ (display_chisq) Rewritten.
+ (display_symmetric) New function.
+ (gamma_int) New function.
+ (Pr) New function.
+ (swap) New function.
+ (calc_fisher) New function.
+ (calc_chisq) Check boundary conditions better. Calculate Yates,
+ Fisher, Mantel-Haenszel tests.
+ (calc_r) New function.
+ (calc_symmetric) New function.
+
+ * stats.c: (normal_sig) Rewritten with new algorithm. Renamed
+ from calc_normal.
+ (chisq_sig) Better boundary conditions. Renamed from
+ calc_significance.
+
+ * tab.h: (struct tab_table) New member cf.
+
+ * tab.c: (tab_create) Set cf.
+ (tab_width) New function.
+ (tab_realloc) Handle cf.
+ (tab_vline) Handle cf.
+ (tab_hline) Handle cf.
+ (tab_box) Handle cf.
+ (tab_value) Handle cf.
+ (tab_float) Handle cf.
+ (tab_text) Handle cf.
+ (tab_joint_text) Handle cf.
+ (tab_offset) Handle cf.
+ (tab_next_row) Handle cf.
+ (evaluate_dimensions) Handle cf.
+ (render_strip) Handle cf.
+
+Wed May 20 00:03:59 1998 Ben Pfaff <blp@gnu.org>
+
+ * crosstabs.q: (postcalc) New vars row_tot, col_tot, pass them to
+ output_pivot_table().
+ (output_pivot_table) Moved lots of local variables outside and
+ made them static. Add beginnings of chi-square statistic
+ support. Now column and row totals aren't in the main matrix.
+ Always zero out any leftover rows & columns after we're done with
+ the table entries. Move all output stuff into
+ display_dimensions(), display_crosstabs(), display_chisq().
+ (display_dimensions) New function.
+ (display_crosstabulation) New function.
+ (display_chisq) New function.
+ (calc_chisq) Implemented Pearson and likelihood-ratio chisquares.
+
+ * frequencies.q: (dump_full, dump_condensed) Remove tab_null()
+ references, simplify logic.
+
+ * postscript.c: Remove scale, translate-x, translate-y,
+ mirror-horz, mirror-vert, rotate-180 options.
+ (struct ps_driver_ext) Remove scale, translate_x, translate_y.
+ All references deleted.
+ (macro YT) New macro.
+ (array option_tab[]) Removed options.
+ (ps_option) Removed options.
+ (ps_open_page) Write page setup explicitly to output file, without
+ using now-deleted BP function.
+ (macro dump_line) Use YT().
+ (macro dump_thick_line) Use YT().
+ (draw_headers) Use YT().
+ (switch_font) Reorder arguments to SF function.
+ (write_text) Use YT().
+
+ * sfm-read.c: (sfm_read_case) Don't attempt to read variables that
+ have get.fv == -1.
+
+ * sysfile-info.c: (describe_variables) Don't use tab_nulls().
+
+ * tab.c: (tab_create) Initialize t->ct to zeros. Remove
+ null-debugging code.
+ (tab_realloc) Remove null-debugging code. Initialize new regions
+ of t->ct to zeros.
+ (tab_vline) Support offsets.
+ (tab_hline) Support offsets.
+ (tab_box) Support offsets.
+ (tab_null) Removed.
+ (tab_nulls) Removed.
+ (tab_row) Removed.
+ (tab_col) Removed.
+ (evaluate_dimensions) Remove null-debugging code. Understand
+ TAB_EMPTY attribute. Assert that text.s.s is always non-NULL if
+ TAB_EMPTY not present.
+
+ * tab.h: New cell attribute TAB_EMPTY.
+ (macros tab_nr, tab_nc, tab_row, tab_col) New.
+
+ * vars-atr.c: (init_variable) Set get.fv to -1 so that GET doesn't
+ try to read them from system files.
+
+ * vfm.c: (dump_splits) Don't call tab_null().
+
+Sat May 16 19:36:55 1998 Ben Pfaff <blp@gnu.org>
+
+ * crosstabs.q: (struct crosstab) Added `missing' member.
+ (custom_tables) Init missing.
+ (calc_general) Handle missing values.
+ (calc_chisq) New function.
+ (output_pivot_table) Start work on chi-square output. Update for
+ new tab offset support functions. Shorten statistic names.
+
+ * Several files: add in more `const's to placate gcc's warnings.
+
+ * tab.h: (struct tab_table) Add col_ofs, row_ofs members. Comment
+ fixes.
+
+ * tab.c: (tab_height, tab_realloc, tab_vline, tab_hline, tab_box,
+ tab_null, tab_nulls, tab_value, tab_float, tab_text,
+ tab_joint_text) Add col_ofs and row_ofs support.
+ (tab_offset) New function.
+ (tab_next_row) New function.
+ (tab_row) New function.
+ (tab_col) New function.
+ (tabi_table) Add col_ofs and row_ofs support.
+
+ * vars-atr.c: (is_system_missing) New function.
+
+Tue May 12 16:14:30 1998 Ben Pfaff <blp@gnu.org>
+
+ * crosstabs.q: Expanded subcommand names RESID --> RESIDUAL, etc.
+ (static var no_cells) Removed.
+ (static var num_cells) New.
+ (static var expected) New.
+ (static var cells[]) New.
+ (internal_cmd_crosstabs) Deal with new variables.
+ (postcalc) Removed most of the meat and put it in new function
+ output_pivot_table().
+ (output_pivot_table) Calculates and outputs an entire pivot table.
+
+ * postscript.c: (postopen) Fix problems with free()ing addresses
+ not obtained from malloc().
+
+ * som.c: (som_submit) Add assertion.
+
+ * sysfile-info.c: (describe_variable) Use new tab_nulls()
+ function.
+
+ * tab.c: (static var tab_names[]) New.
+ (tab_realloc) -1 for nc or nr indicates no change.
+ (tab_nulls) New function.
+ (tab_dim) Use tab_names[].
+ (tabi_cumulate) Don't include bottom or right headers. Furrfu.
+ (evaluate_dimensions) Don't terminate on uninited cells, just put
+ an X in them and emit a notice. Use tab_names[].
+
+ * tab.h: Move bits into tab.def.
+
+ * tab.def: New. Don't try to declare tab_table_class because then
+ som.h has to be included.
+
+Thu May 7 22:55:04 1998 Ben Pfaff <blp@gnu.org>
+
+ * command.def: New file, contains all the command definitions
+ previously included bodily in command.c.
+
+ * format.def: New file, contains all of the format definitions
+ previously split across format.h, format.c, and sfm-write.c.
+
+ * lexer.h: Renamed from tokens.h in order to match corresponding
+ .c file name.
+
+ * lexerP.h: Moved some rarely used functions exported by lexer.c
+ into here.
+
+ * Makefile.am: Commemorate renamed files.
+ (EXTRA_DIST) Add command.def, format.def.
+
+ * command.c: [0] (walk_cmdtable_func) Removed.
+
+ * crosstabs.q: (postcalc) Made it work and print out matrices
+ proving it.
+ (enum_column_values) Renamed enum_var_values, generalized for any
+ variable.
+
+ * format.h: (struct fmt_desc) New member `spss'.
+
+ * q2c.c: (main) Generated code includes lexer.h instead of
+ tokens.h.
+
+ * sfm-write.c: (write_format_spec) Use new spss member of fmt_spec
+ instead of an independent translation table.
+
+Tue May 5 13:19:03 1998 Ben Pfaff <blp@gnu.org>
+
+ * Lots of source files: Added const to declarations.
+
+ * aggregate.c: (parse_aggregate_function) Rename inner i to j.
+
+ * arena.c: (arena_clear) Set prev pointer to null when done.
+
+ * ascii.c: (ascii_option) Rename index as indx.
+
+ * avl.c: This is now a separate library called libavl.
+ (xmalloc) Make static.
+ (avl_probe) Step A7 can use the cache instead of an explicit
+ compare.
+ (avl_delete) Don't maintain a q pointer because it's always
+ available in the pointer stack. Comment fix.
+
+ * avl.h: This is now a separate library called libavl.
+
+ * command.c: (cmd_table[]) Remove spurious trailing "".
+
+ * common.h: Only include random() fix if this system needs it.
+
+ * crosstabs.q: Include alloca headers.
+ (n_sorted_tab) New global var.
+ (postcalc) Mostly rewritten.
+ (find_pivot_extent) Rewritten.
+ (enum_column_values) Rewritten.
+
+ * data-out.c: (convert_F) Rename inner n as n_spaces.
+
+ * error.c: (dump_message) Don't have an outer var i.
+
+ * file-handle.q: (static var f) Removed. All references removed.
+ (internal_cmd_file_handle) Uses a local variable instead of f.
+
+ * get.c: (trim_dictionary) Change scope of i, i1, i2.
+ (cmd_match_files) Don't strcpy tokstr into sbc (why was this ever
+ done?)
+
+ * getline.h: Declare getl_history as extern. Reported by
+ palme@uni-wuppertal.de (Hubert Palme).
+
+ * postscript.c: (postopen) Some large mods for constness.
+
+ * recode.c: Remove spurious copyrights since PSPP is owned by FSF
+ anyway.
+
+Fri Apr 24 12:52:47 1998 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Rename BUILT_SOURCES to q_sources, all references
+ changed. Add avl.c, avl.h to pspp_SOURCES. Remove avllib from
+ LDADD.
+
+ * avl.c, avl.h: New files. These form a clean-room
+ reimplementation of avllib. Iterative algorithms are used in
+ place of recursive ones, so there is no resemblance in the code.
+
+ * Lots of headers: Don't include other headers by default.
+
+ * Lots of source files: Explicitly include all needed headers.
+
+ * arena.c: (arena_clear) New function.
+
+ * crosstabs.q: (ROW_VAR, COL_VAR) New enums.
+ (static var ar) Removed.
+ (staitc vars ar_tc, ar_col) New.
+ (cmd_crosstabs) Destroy the arenas.
+ (internal_cmd_crosstabs) Create the arenas.
+ (precalc) Don't need a free function for the hash.
+ (calc_general) Make sure to zero out the trailer on the key data
+ before inserting.
+ (print_table_entries) Updated.
+ (postcalc) Worked on actually implementing.
+ (find_pivot_extent) New function.
+ (compare_value) New function.
+ (enum_column_values) New function.
+
+ * data-in.c: (parse_month) Make local array `static const'.
+
+ * data-out.c: (convert_date) Make local array `static const'.
+ (convert_WKDAY) Same.
+ (convert_MONTH) Same.
+
+ * frequencies.q: (postprocess_freq_tab) avl_walk_inorder() has
+ been renamed to avl_walk().
+
+ * hash.c: Rewritten more efficiently.
+
+ * hash.h: Add attribute const to hsh_next_prime declaration.
+
+ * lexer.c: (id_match) Make arguments const.
+
+ * postscript.c: (ps_postopen_driver) Make default fonts the
+ Helvetica family.
+
+ * q2c.c: (main) Generated code needs stdlib.h.
+
+ * sfm-write.c: (write_value_labels) An avl_traverser needs to be
+ initialized to 0 now, not to NULL. All other references to
+ avl_traverser were updated in the same way.
+
+ * tokens.h: Macro version of id_match updated to use const
+ properly.
+
+ * val-labs.c: (inc_ref_count) New function.
+ (copy_value_labels) Simply through use of new avl_copy() function.
+
+Wed Apr 15 13:01:58 1998 Ben Pfaff <blp@gnu.org>
+
+ * crosstabs.q: Probably doesn't compile. New PIVOT subcommand.
+ (postcalc) Worked on this.
+
+ * postscript.c: (OPO_DOUBLE_LINE) New enum.
+ (struct ps_driver_ext) New line_width_thick member.
+ (ps_preopen_drive) Init line_width_thick.
+ (option_tab[]) Add line-* options.
+ (ps_option) Parse line-* options.
+ (postopen) Add line_width_thick support. Strip leading spaces on
+ prologue output lines.
+ (ps_open_page) Include line_width_thick in output.
+ (macro dump_thick_line) New.
+ (dump_fancy_line) Support thick lines as well as double lines.
+
+Tue Apr 14 00:50:08 1998 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Add crosstabs.c to BUILT_SOURCES. Add crosstabs.q
+ to pspp_SOURCES. Add crosstabs.q to EXTRA_DIST.
+
+ * Many source files: Rename `options' to `pv_opts' as appropriate.
+
+ * command.c: (static var cmd_table[]) Add CROSSTABS command.
+
+ * common.c: (xcalloc) New function.
+
+ * crosstabs.q: New file. Not finished yet, though.
+
+ * data-list.c: Comment fix.
+
+ * error.c: Remove some old Checker cruft.
+
+ * frequencies.q: (dump_full) Cumulate valid percent instead of
+ regular percent.
+
+ * getline.c: Comment fix.
+
+ * hash.c: Comment fixes.
+
+ * hash.h: (struct hsh_table) Make hash functions return unsigned
+ instead of int to avoid problems with taking the modulo of
+ negative return values. All references changed.
+
+ * misc.c: (intlog10) Make its table static const instead of auto.
+
+ * sfm-read.c: (read_header) Make `prefix' static const instead of
+ auto.
+
+ * var.h: (union value) Add member `hash'.
+ (struct variable) Rename prv_index as `foo'--all references
+ changed. Reorder.
+ (typedef pv_opts) Removed. All references changed.
+
+ * vars-prs.c: (parse_variables) Message fixes.
+
+Mon Mar 9 15:35:08 1998 Ben Pfaff <blp@gnu.org>
+
+ * get.c: (cmd_match_files) Don't reverse the order of FILEs as
+ they are being inserted. Don't check for BY variables of
+ different types. Discard variables if the active file isn't
+ included in the merge.
+ (mtf_processing) Essentially rewritten.
+ (mtf_merge_dictionary) Check for master/slave variables of
+ different types/widths.
+
+ * vfm.c: (static var not_canceled) New var.
+ (process_active_file) Don't call vfm_source->read() if
+ there's no vfm-source. Initialize not_canceled.
+ (process_active_file_write_case) Honor and update not_canceled.
+ (prepare_for_writing) Rollback changes from yesterday, they were
+ wrong.
+ (close_active_file) Don't destroy vfm_source unless it exists.
+
+Mon Mar 9 00:56:16 1998 Ben Pfaff <blp@gnu.org>
+
+ * Lots of source files: Added { } around nested if/else constructs
+ to avoid new gcc 2.8 warnings.
+
+ * data-in.c: (parse_Z) Declare `int' type explicitly.
+ (convert_Z) Ditto.
+
+ * get.c: (struct mtf_file) Add prev, next_min, by, input members.
+ (cmd_match_files) Initialize mtf_by_values. Manage by, input,
+ prev members. Put TABLEs at the end of the chain and FILEs at the
+ beginning. Don't allow the active file in STATE_INIT. Use proper
+ `seen' value for the active file. Fill out the by members and
+ make sure they're of consistent type. Do the actual merge
+ operation.
+ (mtf_processing_finish) New function.
+ (var_type_description) New function.
+ (mtf_free_file) New function.
+ (mtf_free) Rewritten.
+ (mtf_delete_file_in_place) New function.
+ (mtf_read_nonactive_records) New function.
+ (mtf_compare_BY_values) New function.
+ (static var mtf_seq_no) New var.
+ (mtf_processing) New function.
+ (mtf_merge_dictionary) Assign nval members for the system file
+ dictionary. Assign fv values for its variables. Point each slave
+ variable to the corresponding master variable.
+
+ * hash.c: Include str.h.
+
+ * mis-val.c: (copy_missing_values) src arg is const.
+
+ * misc.c: (spacing) Make `max' var explicitly int.
+
+ * sfm-read.c: (dump_dictionary) Message reformatting.
+ (sfm_read_case) Add assertion.
+
+ * sort.c: Esthetic fixes.
+
+ * var.h: (struct match_files_proc) New struct.
+ (struct variable) Add private data match_files_proc.
+
+ * vars-atr.c: (delete_variable) Implement. Add argument for the
+ dictionary that owning the variable.
+ (dup_variable) Add assertion.
+
+ * vfm.c: Comment fixes, hopefully the comments are correct now.
+ (process_active_file) New function.
+ (process_active_file_write_case) New function.
+ (process_active_file_output_case) New function.
+ (prepare_for_writing) Use temp_dict->nval for vfm_info, not
+ default_dict.nval.
+ (write_case) Renamed procedure_write_case(). Now write_case is a
+ pointer to a function. Style fixes.
+
+1998-03-05 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (q2c) Link with libmisc.
+ (version.c) Define default_config_path, include_path,
+ groff_font_path.
+
+ * ascii.c: (ascii_postopen_driver) When the default newline string
+ is requested, open file in text mode. Suggested by
+ palme@uni-wuppertal.de (Hubert Palme).
+ (static vars line_buf, line_p) Change from char * to unsigned char
+ *.
+ (ascii_close_page) char * to unsigned char *.
+
+ * cmdline.c: (parse_command_line) Implement -r option by
+ prepending ~/.pspp/rc to the list of files to process.
+
+ * command.c: (cmd_remark) Reset getl_prompt to the standard prompt
+ before pulling in a final line.
+ (null_func, null_int_func) Removed (dead code).
+
+ * descript.q: (display) Calculate width of variable name column
+ properly. Calculate number of valid cases properly. Reported by
+ palme@uni-wuppertal.de (Hubert Palme).
+
+ * filename.c: (init_filename) Use default_config_path instead of
+ now obsolete CONFIG_PATH.
+
+ * getline.c: (getl_initialize) Use include_path instead of now
+ obsolete INCLUDE_PATH.
+ (getl_add_file) New argument `where'. All references changed.
+
+ * groff.c: (find_font_file) Use groff_font_path instead of now
+ obsolete GROFF_FONT_PATH.
+
+ * postscript.c: (find_ps_file) Use groff_font_path instead of now
+ obsolete GROFF_FONT_PATH. Copy through temporary variable to
+ avoid problems with constness.
+
+ * str.h: (macro cs_streq) New macro.
+
+ * version.h: (glob var default_config_path, include_path,
+ groff_font_path) New vars.
+
+1998-02-23 Ben Pfaff <blp@gnu.org>
+
+ * Many source files: Change verbose_msg() priority levels and
+ messages.
+
+ * aggregate.c: Include debug-print.h.
+
+ * cmdline.c: (parse_command_line) Add --safer/-s and --command/-c
+ options.
+ (static var pre_syntax_message) Document --safer/-s and
+ --command/-c.
+
+ * command.c: (cmd_erase, cmd_host) Disable if set_safer is set.
+
+ * dfm.c: (open_inline_file) [__CHECKER__] Zero out ext->file,
+ because it's not used but it's still copied.
+ (open_file_r) Remove gratuitous debug message.
+
+ * filename.c: (safety_violation) New function.
+ (open_file) Remove gratuitous debug messages. Don't allow pipe
+ files if set_safer is set.
+
+ * get.c: Turn off debugging.
+
+ * getline.c: (getl_add_virtual_file) New function.
+ (getl_read_line) Add verbose_msg() call for opening new syntax
+ file.
+ (getl_perform_delayed_reset) Add a return value describing whether
+ any action was taken. Call reset_eof().
+
+ * getline.h: Comment fix.
+
+ * groff-font.c: (groff_read_font) Use `goto next_iteration' in
+ place of incorrect `continue'. Use strtok_r() instead of
+ strtok(). Always check strtok_r() return value.
+ (groff_read_DESC) Use strtok_r() instead of strtok().
+
+ * lexer.c: (reset_eof) New function.
+
+ * main.c: (parse) Get a token after performing a delayed reset
+ action; allow empty syntax files.
+
+ * postscript.c: (output_encodings) Use strtok_r() instead of
+ strtok().
+
+ * q2c.c: (dump_parser) Use strtok_r() instead of strtok().
+
+ * set.q: Comment fixes.
+ (glob var set_safer) New var.
+ (internal_cmd_set) Support SAFER.
+
+ * str.h: [!HAVE_STRTOK_R] Declare strtok_r() prototype.
+
+ * temporary.c: (free_dictionary) Set d->splits to NULL after
+ freeing.
+
+ * vars-atr.c: (clear_variable) Decrement dict->n_splits if
+ variable deleted, not if it *isn't* deleted.
+
+1998-02-16 Ben Pfaff <blp@gnu.org>
+
+ * command.c: (array cmd_table[]) Add MATCH FILES.
+
+ * common.c: Comment fixes.
+
+ * data-list.c, dfm.c, error.c, filename.c, list.q, matrix-data.c,
+ modify-vars.c, postscript.c, sfm-read.c, sfm-write.c, tab.c:
+ Include alloca.h. Problem reported by palme@uni-wuppertal.de
+ (Hubert Palme).
+
+ * expr-opt.c: Include str.h. Problem reported by
+ palme@uni-wuppertal.de (Hubert Palme).
+
+ * get.c: (cmd_get) [DEBUGGING] Update v->p.get to v->get.
+ (static var mtf_by) Change from char ** to variable **.
+ (static var mtf_master) New var.
+ (mtf_merge_dictionary) New function.
+ (cmd_match_files) Init mtf_master. Parse mtf_by according to new
+ var type. Reorder tests properly. Initialize file->dict. Detect
+ TABLE= without BY=. Read file dictionaries and merge them. Give
+ subcommand name with IN, LAST, FIRST error messages. Create IN,
+ LAST, FIRST variables. Comment fixes.
+ (mtf_free) Don't free default_dict. Free mtf_master.
+
+ * getline.c: Define getl_mode. Change getl_buf_size to size_t
+ from int.
+ (handle_line_buffer) Cast int to size_t in comparison to avoid
+ warning.
+
+ * getline.h: Declare getl_mode extern.
+
+ * groff-font.c: (groff_read_font) Type-fix calls to getline.
+ (groff_read_DESC) Make line_size a size_t.
+ (match_tok) Parenthesize name to avoid macro expansion.
+
+ * mis-val.c: (copy_missing_values) New function.
+
+ * postscript.c: (postopen) Make buf_size a size_t.
+
+ * sfm-read.c: (dump_dictionary) Make global from static. Print
+ variable info in parts for easier debugging with Checker.
+
+ * temporary.c: (copy_variable) Use copy_value_labels().
+ (new_dictionary) New arg: whether to copy file label, documents.
+
+ * val-labs.c: (copy_value_labels) New function.
+
+ * var.h: (enums MISSING_*) Add MISSING_COUNT.
+
+ * vars-atr.c: [GLOBAL_DEBUGGING] (force_dup_variable) New
+ function.
+ (dup_variable) Set prv_index, get.fv, get.nv.
+
+Fri Feb 13 15:38:36 1998 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (pspp_SOURCE) Add htmlP.h.
+
+ * Many source files: For ANSI-compliance, add empty statement
+ after label. Reported by palme@uni-wuppertal.de (Hubert Palme)
+ and Micah Altman <maltman@www-vdc.fas.harvard.edu>.
+
+ * data-in.c: (parse_numeric) Some header files break on
+ -DBL_MIN_10_EXP because they get a --; add () for safety.
+ Reported by palme@uni-wuppertal.de (Hubert Palme).
+
+ * dfm.c: Idea by Dr Eberhard W Lisse <el@linux.lisse.na>.
+ (struct dfm_fhuser_ext) Change `file' from FILE * to file_ext.
+ (dfm_close) Use close_file_ext.
+ (open_inline_file) Set file.file to NULL, not file.
+ (open_file_r, open_file_w) Initialize file.file; fill in file_ext
+ struct and use open_file_ext().
+ (read_record) Use file.file.
+
+ * file-handle.q: (prepend_current_directory) Pass through special
+ filenames.
+
+ * filename.c: Only include unistd.h if HAVE_UNISTD_H.
+ (normalize_filename) Pass through special filenames.
+ (open_file, close_file) Accept pipe| and |pipe syntaxes as
+ equivalent.
+ (dirname) Rename blp_dirname() because of name conflict on some
+ OS. All references changed. Reported by palme@uni-wuppertal.de
+ (Hubert Palme).
+ (is_special_filename) New function.
+
+ * get.c: (GTSV_OPT*) Add GTSV_OPT_MATCH_FILES.
+ (trim_dictionary) Conditionalize some of the options on whether
+ GTSV_OPT_MATCH_FILES is in *options.
+ (rename_variables) Don't allow variables to be renamed as scratch
+ variables.
+ (MTF_*) New enum series.
+ (struct mtf_file) New struct.
+ (static vars mtf_head, mtf_tail, mtf_by, mtf_n_by, mtf_free) New
+ vars.
+ (cmd_match_files, mtf_free) New functions.
+
+ * lexer.c: (match_int) Needed parentheses around name to escape
+ macro expansion. Reported by Micah Altman
+ <maltman@www-vdc.fas.harvard.edu>.
+
+ * print.c: Needed to include alloca.h. Reported by Micah Altman
+ <maltman@www-vdc.fas.harvard.edu>.
+
+ * recode.c: (convert_to_double) Parenthesize -DBL_MIN_10_EXP to
+ -(DBL_MIN_10_EXP). Reported by palme@uni-wuppertal.de (Hubert
+ Palme).
+
+ * str.h: Include stdarg.h. Reported by palme@uni-wuppertal.de
+ (Hubert Palme) and Micah Altman <maltman@www-vdc.fas.harvard.edu>.
+
+Thu Feb 5 00:18:21 1998 Ben Pfaff <blp@gnu.org>
+
+ * html.c: (struct html_driver_ext) Move into htmlP.h.
+ (html_preopen_driver) Initialize cp_x, cp_y.
+ (html_submit) Implement as call to output_tab_table().
+ (change_attributes) New function.
+ (escape_string) New function.
+ (output_tab_table) New function.
+
+ * list.q: (write_all_headers) Add code for writing headers for the
+ html driver.
+ (clean_up) Write out the html close-table tag.
+ (determine_layout) Ignore html driver.
+ (list_cases) Write html data.
+
+ * som.c: (som_submit) Move more of the code into output_table().
+
+ * tab.c: (static var hit) Make a global var and rename tab_hit.
+ (static var tab_table_class) Make a global var.
+
+ * htmlP.h: New file.
+
+Tue Feb 3 16:12:18 1998 Ben Pfaff <blp@gnu.org>
+
+ * dump-sysfile.c: Removed.
+
+ * html.c: (preclose) Change comment in emitted code.
+
+ * matrix-data.c: Debugging off by default. Comment fixes.
+ (static var container) New var.
+ (cmd_matrix_data) Create and destroy container. Initialize
+ is_per_factor[] to 0s. Move code into new function
+ string_to_content_type(). Require split values to be present in
+ the data when ROWTYPE_ is explicit. Call specific function, not
+ general read_matrices().
+ (string_to_content_type) New function.
+ (context) Exclude all whitespace, not just spaces.
+ (mget_token) A dot is a number. Add assertion.
+ (static var data) Renamed nr_data.
+ (static var factor_values) Renamed nr_factor_values.
+ (read_matrices) Renamed read_matrices_without_rowtype(). Handle
+ only specific case. Close data_file before exit.
+ (fill_matrix) New function.
+ (read_data_lines) Renamed nr_read_data_lines(). Remove debug
+ printing. Style fixes. Message fixes. Move code into
+ fill_matrix().
+ (read_matrices_without_rowtype) Rename
+ matrix_data_read_without_rowtype(). Fix off-by-one error on
+ loops. Allocate nr_data[] memory from arena.
+ (read_matrices_with_rowtype) Removed.
+ (read_splits) Renamed nr_read_splits(). Style fixes.
+ (read_factors) Renamed nr_read_factors().
+ (dump_cell_content) Comment fixes. Arguments changed. Change
+ debug printing. All references changed.
+ (output_data) Renamed nr_output_data().
+ (static var wr_content) New var.
+ (struct factor_data) New struct.
+ (static var wr_data) New var.
+ (static var wr_current) New var.
+ (matrix_data_source_destroy_source) Removed.
+ (read_matrices_with_rowtype) New function.
+ (matrix_data_read_with_rowtype) New function.
+ (wr_read_splits) New function.
+ (compare_factors) New function.
+ (wr_output_data) New function.
+ (wr_read_rowtype) New function.
+ (wr_read_factors) New function.
+ (wr_read_indeps) New function.
+ (glob var matrix_data_source) Make destroy_source member NULL as
+ well.
+
+Fri Jan 23 00:09:08 1998 Ben Pfaff <blp@gnu.org>
+
+ * lexer.c: (syntax_error) Give better error message when at end of
+ file.
+
+ * matrix-data.c: (var content_names[]) Fix PROX spelling. Change
+ N_SCALAR to output as plain N.
+ (mdump_token) Change output format.
+ (context) Fix message output interaction with spaces in input.
+ (another_token) New function.
+ (force_eol) Improved error message.
+ (static var max_cell_index) New var.
+ (read_matrices) Init `cells'. factor_values is now per-cell.
+ Init max_cell_index.
+ (read_data_lines) Replace `compare' local with new `compare' arg.
+ Debugging messages changed. Only read factors if per_factor.
+ Propagate error return from read_factors(), force_eol().
+ Copy N_SCALAR values across the N vector.
+ (read_matrices_without_rowtype) Don't init `cells'. Don't need to
+ check parentheses manually since we now have is_per_factor[].
+ Call read_data_lines() with new args. Check for end of data after
+ looping, using another_token().
+ (read_factors) Arguments changed. Use max_cell_index to determine
+ whether to read or compare factors. Message fixes.
+ (dump_cell_content) New function.
+ (output_data) Completely rewritten because content types were
+ supported to be nested inside factor values, not vice versa.
+
+Thu Jan 22 00:26:38 1998 Ben Pfaff <blp@gnu.org>
+
+ * lexer.c: (syntax_error) Support formatted varargs messages.
+
+ * matrix-data.c: Turn debugging on by default.
+ (static content_type[]) New array.
+ (static content_names[]) New array.
+ (static rowtype_, varname_) New vars.
+ (static is_per_factor[]) New array.
+ (static split_values) Moved declaration.
+ (static n_continuous, first_continuous) New var.
+ (cmd_matrix_data) Don't init split_values. Assign ROWTYPE_ to
+ rowtype_. Simplify SPLIT code. Init is_per_factor[]. Assign
+ VARNAME_ to varname_. Initialize first_continuous, n_continuous.
+ Check for continuous variables.
+ [DEBUGGING] (debug_print) Remove content_names[].
+ (mdump_token) New macro.
+ (mget_token_dump) New function.
+ (mdump_token) New function.
+ (context) New function.
+ (mget_token) Fix messages.
+ (static var data, split_values, factor_values) New vars.
+ (read_matrices) Manage split_values, factor_values.
+ (read_data_lines) New function.
+ (read_matrices_without_rowtype) Implemented.
+ (read_splits) Message fixes. Uses `just_read'.
+ (read_factors) New function.
+ (output_data) New function.
+ (matrix_data_source_destroy_source) Close the file handle.
+ (glob var matrix_source) Change name from "DATA LIST" to "MATRIX
+ DATA".
+
+ * str.c: (strpadcmp) Removed.
+
+ * vfm.c: (dump_splits) Initialize i; fix test for end of splits.
+
+Sun Jan 18 00:30:59 1998 Ben Pfaff <blp@gnu.org>
+
+ * Lots of source files: Add cast to unsigned character to calls to
+ tolower() and toupper().
+
+ * aggregate.c: Set default_dict.splits to NULL.
+
+ * command.c: (static variable tab[]) Add MATRIX DATA.
+
+ * data-in.c: Add debugging defines. Formatting fixes.
+
+ * expr-opt.c: Formatting fixes.
+
+ * lexer.c: (syntax_error) Message fixes.
+
+ * matrix-data.c: New enum series.
+ (static vars fmt, section, diag, explicit_rowtype, signle_split,
+ split_values, n_factors, factors, cells, pop_n, contents,
+ n_contents) New vars.
+ (cmd_matrix_data) Finished implementation.
+ (compare_variables_by_mxd_vartype) New function.
+ [DEBUGGING] (debug_print) New function.
+ (static vars mtoken, mtokstr, mtoklen, mtokval) New vars.
+ (read_matrices) New function.
+ (read_matrices_without_rowtype) New function.
+ (read_matrices_with_rowtype) New function.
+ (read_splits) New function.
+ (mget_token) New function.
+ (force_eol) New function.
+ [0] (test_tokenizer) New function.
+ (matrix_data_source_destroy_source) New function.
+ (glob var matrix_data_source) New var.
+
+ * misc.h: Include ieeefp.h if present.
+
+ * split-file.h: (cmd_split_file) Changes corresponding to struct
+ dictionary changes.
+
+ * str.h: Fix memmem prototype.
+
+ * temporary.c: (save_dictionary, restore_dictionary,
+ free_dictionary) Changes corresponding to struct dictionary
+ changes.
+
+ * var.h: (MXD_* enums) New enum series.
+ (struct matrix_data_proc) New struct.
+ (struct split) Removed.
+ (struct dictionary) Changed `splits' member from `split *' to
+ `variable **'.
+ (macro force_create_variable) New macro. Replaced lots of
+ create_variable()/assert() calls with calls to this macro.
+
+ * vars-atr.c: (discard_variables) Changed assertion.
+ [GLOBAL_DEBUGGING] (force_create_variable) New function
+ called by the macro of the same name.
+ (clear_variable) Changes to delete splits from the dictionary
+ corresponding to struct dictionary changes.
+
+ * vars-prs.c: (parse_variables) [GLOBAL_DEBUGGING] Check for
+ corrupted variable `index' values in the dictionary passed in
+ every time this function is called.
+
+ * vfm.c: (dump_splits, SPLIT_FILE_procfunc) Changes corresponding
+ to struct dictionary changes.
+
+Tue Jan 13 23:45:02 1998 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (pspp_SOURCES) Add matrix-data.c.
+
+ * command.c: New includes.
+ (static array cmd_table[]) Add ERASE, HOST, NEW FILE.
+ (cmd_erase) New function.
+ [unix] (shell) New function.
+ (run_command) New function.
+ (cmd_host) New function.
+ (cmd_new_file) New function.
+
+ * expr-prs.c: (parse_primary) Message fix.
+
+ * inpt-pgm.c: Formatting fix.
+ (cmd_reread) Implement the FILE subcommand.
+
+ * matrix-data.c: New file.
+
+ * q2c.c: (dump_header) Change output commenting style.
+
+ * weight.c: Comment fix.
+
+Tue Jan 13 00:53:39 1998 Ben Pfaff <blp@gnu.org>
+
+ * aggregate.c: (buf64_10x) Renamed buf64_1xx, all references
+ changed.
+ (buf_10x) Renamed buf_1xx, all references changed.
+ (cmd_aggregate) Implemented cases 010, 011, 110, and 111 (all
+ cases now implemented).
+ (create_sysfile) New function.
+ (agr_11x_func) New function.
+
+ * data-in.c: (parse_numeric) Work properly if there's an
+ explicitly coded decimal point in the data and decimal places are
+ specified on DATA LIST. Bug reported by Dr Eberhard W Lisse
+ <el@linux.lisse.na>.
+
+ * get.c: (cmd_get, cmd_save_internal) Allow extraneous slash
+ before file specification on GET, SAVE, XSAVE. Bug reported by Dr
+ Eberhard W Lisse <el@linux.lisse.na>.
+
+ * q2c.c: [!HAVE_STRERROR] Include misc/strerror.c, not
+ strerror.c. Bug reported by Alexandre Oliva
+ <oliva@dcc.unicamp.br>.
+
+ * sort.c: Include sort.h. Comment fixes. A few esthetic fixes.
+ (static var separate_case_tab) New var.
+ (cmd_sort_cases) Cancel temporary transformations here. Free
+ v_sort before return.
+ (sort_cases) Run an EXECUTE procedure if SEPARATE is nonzero and
+ we're reading from a sort stream. Don't cancel temporary
+ transformations. Offload internal sorting to do_internal_sort().
+ (do_internal_sort) New function. Handles internal sorting even
+ when SEPARATE is nonzero. Doesn't free v_sort.
+ (do_external_sort) Take new arg SEPARATE. Only destroy `x' if
+ it's non-NULL.
+ (write_initial_runs) Take new arg SEPARATE. Only destroy the old
+ sink if SEPARATE is zero.
+ (read_output_cases) Renamed read_sort_output(), all references
+ changed. Now uses separate_case_tab when it exists.
+ (write_separate) New function.
+
+ * vfm.c: (page_to_disk) Destroy memory_source_cases, not
+ memory_sink_cases. Don't redundantly call
+ vfm_source->destroy_source().
+ (memory_stream_mode) After switching over, set memory_sink_cases
+ to NULL.
+
+Sat Jan 10 23:35:51 1998 Ben Pfaff <blp@gnu.org>
+
+ * aggregate.c: (struct agr_var) Expand dbl[] array from 2 to 3
+ elements.
+ (static var prev_case) New, moved out of aggregate_single_case()
+ local scope.
+ (static var buf64_10x, buf_10x) New.
+ (cmd_aggregate) Initialize prev_case. Comment fixes. Implement
+ the 000, 001, 100, and 101 cases. Free prev_case.
+ (parse_aggregate_functions) Disallow scratch variables.
+ (free_aggregate_functions) Only free agr_dict if non-null. Use
+ iter->function to determine numeric/string type, not
+ iter->src->type.
+ (aggregate_single_case) Don't manage prev_case. Initialize
+ aggregate info after dumping it.
+ (accumulate_aggregate_info) Fix sum, weighted sum, mean, weighted
+ mean, stddev, weighted stddev definitions.
+ (dump_aggregate_info) Implemented.
+ (initialize_aggregate_info) Renamed from
+ initialize_aggregate_functions(). Initializes dbl[2].
+ (agr_00x_trns_proc, agr_00x_end_func, write_case_to_sfm,
+ agr_10x_trns_proc, agr_10x_trns_free, agr_10x_end_func) New.
+
+ * cases.c: (alloc_val) Removed.
+
+ * get.c: (cmd_save_internal) Initialize new `dict' member.
+
+ * sfm-write.c: (sfm_write_dictionary, write_header,
+ write_variable, write_value_labels, write_documents) Reorganize,
+ simplify for new parameter structure.
+ (write_variable) Only one variable * argument now.
+
+ * sfm.h: (struct sfm_write_info) Removed `pri', `sec', and
+ replaced by new `dict' member.
+
+ * temporary.c: (new_dictionary) Initialize n_documents.
+
+ * vars-atr.c: (dup_variable) Allocate `value's from dict into
+ v->fv manually.
+ (init_variable, replace_variable) Eliminate usage of alloc_val().
+
+ * vars-prs.c: (parse_DATA_LIST_vars) Accept PV_NO_SCRATCH option.
+
+ * vfm.c: (arrange_compaction) Allow `temporary' value of 2 to
+ signal that AGGREGATE is to be used for forming final cases.
+ (close_active_file) Call end_func before stopping lagging. Cancel
+ temporary after finishing compaction.
+ (write_case) Comment fixes. Cleaned up.
+ (compact_case) Let AGGREGATE handle compaction when `temporary' is
+ 2.
+
+Sat Jan 10 02:10:47 1998 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (BUILT_SOURCES) Add means.c.
+ (pspp_SOURCES) Add means.c.
+ (EXTRA_DIST) Add means.q.
+
+ * command.c: (array cmd_table[]) Add MEANS.
+
+ * common.h: Esthetic fixes. Comment fixes. Test for
+ MAX_SHORT_STRING greater than 8.
+ (macros LOWEST, HIGHEST) New.
+
+ * data-in.c, data-list.c, recode.c: Comment fixes.
+
+ * means.q: New file, base version.
+
+ * mis-val.c: (parse_num_or_range, parse_numeric) Replace -DBL_MAX
+ with LOWEST, DBL_MAX with HIGHEST.
+
+ * q2c.c: (dump_vars) Add an enum to array types giving the number
+ of values for the enum.
+
+ * sfm-read.c: (sfm_read_dictionary, read_machine_flt64_info)
+ Replace second_lowest_value with second_lowest_flt64.
+
+ * sfm-write.c: (write_variable, write_rec_7_34) Replace
+ second_lowest_value with second_lowest_flt64.
+
+ * t-test.q: Comment fix.
+
+ * temporary.c: (restore_dictionary) Esthetic fix.
+
+ * tokens.h: (force_match_id, force_match, force_string, force_int,
+ force_num, force_id) Replace msg() with syntax_error().
+
+ * var.h: (struct means_proc) New.
+ (struct variable) Add mns member to `p' union.
+
+ * vars-prs.c: (parse_variable, parse_dict_variable,
+ parse_variables, parse_DATA_LIST_vars) Replace msg() with
+ syntax_error().
+
+Thu Jan 8 22:28:41 1998 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (pspp_SOURCES) Add tab.h.
+
+ * Most source files: Added a cast to unsigned char in usages of
+ the ctype is*() functions. Replaced `end of command expected'
+ calls to msg() with calls to syntax_error().
+
+ * frequencies.q: (dump_condensed) Fix tab_dim() column reference.
+
+ * lexer.c: (hex_val) Removed (was dead code).
+ (idmatch) Parenthesize function name to avoid macro expansion.
+
+ * postscript.c: Comment fixes.
+ (ps_preopen_driver) Change default font size to 10pt.
+
+ * sfm-read.c: (read_variables) Byteswap sv.print, sv.write as
+ int32s.
+ (parse_format_spec) Change system-file format spec argument type
+ to int32. Parse the format spec with bitwise operators.
+
+ * sfmP.h: (struct sysfile_format) Removed.
+ (struct sysfile_variable) Changed print, write members from
+ sysfile_format to int32.
+
+ * tokens.h: Esthetic fixes.
+ [__GNUC__] (macro id_match) New macro to hopefully speed up
+ identifier matching.
+ (macros match_id, match_tok, match_int) Implemented in
+ compiler-independent manner; no longer GNU C only.
+
+ * vfm.h: Include time.h.
+
+Mon Jan 5 11:06:15 1998 Ben Pfaff <blp@gnu.org>
+
+ * data-list.c: (dump_fixed_table) Change tab_dim().
+
+ * dump-sysfile.c: (open_sysfile) Fix mmap() call.
+
+ * error.c: Include command.h.
+
+ * frequencies.g: Formatting fixes.
+
+ * frequencies.q: Add tab_dim() calls. Make the total cell a
+ joined cell.
+
+ * glob.c: Include command.h.
+
+ * sfm-read.c: (struct sfm_fhuser_ext) New members sysmis, highest,
+ lowest.
+ (sfm_read_dictionary) Initialize sysmis, highest, lowest.
+ (sfm_read_machine_flt64_info) Update sysmis, highest, lowest.
+ (read_variables) Byteswap sv.type; byteswap sv.print, sv.write as
+ the other elements (is this right?).
+ (read_variables) Use lowest, highest members.
+ (parse_format_spec) New arg `vv' for more stringent checking.
+ (dump_dictionary) Byteswaps nonexplicit data.
+ (sfm_read_case) Byteswap numeric data.
+
+ * som.c: Initialize table_num to 1.
+ (render_segments) Remember to increment y_index after each table
+ segment.
+
+ * sysfile-info.c: (cmd_sysfile_info) Change tab_dim(). Don't call
+ avl_count() on a NULL tree. No title for the second table.
+ (cmd_display) Handle DISPLAY VECTORS by calling display_vectors().
+ Handle AS_SCRATCH as AS_NAMES. Warn if no variables. Re-enable;
+ fix call to display_variables().
+ (display_variables) Default to 4 columns, not 3. Set up headers.
+ Column title is Variable, not Name. Fix index column.
+ Add joint text. Add tab_dim(). Handle value labels properly.
+ Handle DISPLAY LABELS properly. Draw boxes correctly.
+ (describe_variable) Value labels don't need titles. Don't clear
+ nonexistent index column.
+ (compare_vectors_by_name) New function.
+ (display_vectors) New function.
+
+ * tab.c: (tab_height) Add assertion.
+ (tab_null) Add debug code.
+ (evaluate_dimensions) Add debug code.
+
+ * var.h: (struct variable) get_proc data is sometimes used
+ simultaneously with other per-procedure info, therefore it was
+ removed from the union. All references changed.
+
+Sun Jan 4 18:13:33 1998 Ben Pfaff <blp@gnu.org>
+
+ * ascii.c: (ascii_close_page) Put title on second line of headers
+ if there is no subtitle.
+
+ * command.c: (glob var cur_proc) Move definition here, from
+ common.c.
+ (cmd_remark) Emit blank line before remarks.
+
+ * command.h: (glob var cur_proc) Move declaration here, from
+ common.h.
+
+ * data-list.c: (dump_fixed_table) Fix messages.
+ (dump_free_table) Call tab_nat_dim().
+
+ * descript.q: (dump_z_table) Modify tab_dim() call.
+
+ * frequencies.q: (dump_condensed, dump_statistics) Add tab_dim()
+ call.
+ (dump_statistics) Don't output header.
+
+ * groff-font.c: Minor format fix.
+
+ * html.c: Comment fix.
+
+ * list.q: (write_varname) Indent after advancing page.
+
+ * output.h: Minor reordering.
+
+ * postscript.c: Comment fixes. Many places, '\n' was replaced by
+ a reference to eol[].
+ (struct ps_driver_ext) New member eol[].
+ (ps_preopen_driver) Initialize eol[].
+ (ps_postopen_driver) Fix sense of text for text_opt, line_opt
+ defaults. Handle headers. Fix test for minimum page length.
+ (static var option_tab[]) Add `line-ends'.
+ (ps_option) Handle line-ends to change eol[].
+ (postopen) Scale prop_em_width and fixed_width properly. Set the
+ prologue title to outp_title if applicable. Replace the prologue
+ line ends with eol[]. Call draw_headers() if headers are enabled.
+ (text_width) New function.
+ (out_text_plain) New function.
+ (draw_headers) New function.
+
+ * print.c: (dump_table) Call tab_nat_dim().
+
+ * som.c: (som_blank_line) Only advance a line if not at the top of
+ a page.
+ (som_submit) Move several informational table calls here.
+ Increment subtable_num if SOMF_NO_TITLE not set.
+ (output_table) Advance a line if SOMF_NO_SPACING not set.
+ (render_columns, render_segments, render_simple) Handle spacing
+ between tables. Handle table titles. Remove debug output.
+
+ * som.h: (SOMF_*) New enum series.
+ (struct som_table_class) New member `flags'.
+
+ * sysfile-info.c: (cmd_sysfile_info) Calls tab_nat_dim(). No
+ headers or spacing.
+ (display_variables) Calls tab_nat_dim().
+ (describe_variable) Remove restriction on number of value labels.
+ Make value labels separated by thin lines.
+
+ * tab.c: (tab_create) Default `flags' to none.
+ (tab_float) New arg `w'. All references changed.
+ (tab_nat_dim) New function.
+ (tab_output_text) No title or spacing.
+ (tab_flags) New function.
+ (tabi_flags) New function.
+ (tabi_title) New function.
+ (strip_height) Removed.
+ (tabi_render) Skip title when necessary.
+ (static var tab_tab_class) Add tabi_flags, tabi_title.
+ (evaluate_dimensions) Disable display of column, row size.
+ (sum_columns) Add title height to top header.
+ (render_strip) Moved within file.
+
+ * tab.h: (struct tab_table) New member `flags'.
+
+ * vfm.c: (dump_splits) Calls tab_nat_dim(). No title.
+
+Sat Jan 3 16:55:44 1998 Ben Pfaff <blp@gnu.org>
+
+ * Most source files: Add `const' attribute in all appropriate
+ places.
+
+ * sysfile-info.c: (cmd_sysfile_info) Add tab_dim() call, add a
+ column to the variables table for use by describe_variable().
+ (cmd_display) Disable for the present.
+ (display_documents) Don't wrap documents.
+ (display_variables) Table has four columns now.
+ (describe_variable) Table has four columns now. Don't use a
+ subtable, use joined cells instead.
+
+ * tab.c: (tab_create) Don't set `join'.
+ (tab_realloc) ct array is not made up of a_string's.
+ Reallocate trh, hrh, h arrays, initialize trh array. Initialize
+ cell contents on GLOBAL_DEBUGGING, not DEBUGGING.
+ (text_format) New function.
+ (tab_title) Rewritten, uses text_format().
+ (tab_text) Rewritten, uses text_format().
+ (tab_joint_text) New function.
+ (tab_join) Removed.
+ (static var hit) New variable.
+ (render_strip) New args r1, r2. Implement joined cells that fit
+ on a single page.
+ (tabi_render) Increment hit. Pass new args to render_strip().
+ (evaluate_dimensions) [GLOBAL_DEBUGGING] Check for uninitialized
+ cells. For t_naw and t_nah, ignore joined cells and null cells in
+ calculations.
+
+ * tab.h: (struct tab_join_rect) Removed.
+ (struct tab_table) Removed `join'.
+ (TAB_JOIN_MAIN) Removed.
+ (struct tab_joined_cell) New struct.
+ (TAT_NOWRAP) New enum.
+
+Fri Jan 2 01:39:58 1998 Ben Pfaff <blp@gnu.org>
+
+ * ascii.c: (ascii_postopen) Replace ASCII_* macros with their
+ expansions.
+ (ascii_postopen_driver) Fix initialization of *_spacing so that
+ the TAL_0 bit doesn't count.
+
+ * data-list.c: (dump_fixed_table) Use natural width for Format
+ column.
+
+ * glob.c: (rerange) Removed.
+ (get_date) Formatting fixes. Internationalization fix.
+
+ * html.c: (html_postopen_driver) Replace HTML_DEFAULT_OUTPUT_FILE
+ with "pspp.html".
+
+ * postscript.c: (ps_postopen_driver) Replace
+ PS_DEFAULT_OUTPUT_FILE with "pspp.ps".
+
+ * som.c: (som_submit) Don't eject page before every table.
+ (output_table) Fix order of arguments on call to area().
+ (render_columns) Fix calculation of max_len.
+
+ * tab.c: (tabi_cumulate) Minor change to increase elegance.
+ (render_strip) New function.
+ (strip_height) New function.
+ (tabi_render) Rewrite as calls to render_strip().
+
+ * tab.h: (TAT_* enums) Removed TAT_RICH, all references removed.
+ Renumbered TAT_PRINTF, TAT_TITLE, TAT_FIX to correspond better
+ with the TAB_* and OUTP_T_* constants.
+
+Thu Jan 1 11:53:52 1998 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Formatting fixes.
+
+ * ascii.c: (ascii_postopen_driver) Initialize *_line_spacing[],
+ *_line_width[].
+
+ * data-list.c: (dump_fixed_table) Add tab_dim() call.
+
+ * descript.q: (dump_z_table, display) Add tab_dim() calls.
+
+ * dump-sysfile.c: (glob var length) Make type off_t.
+ (usage) Fix arguments.
+ (main) Return 0.
+
+ * output.h: (OUTP_T_*) Change constants' value to match tab.h.
+ Now right-justification is the default so many references had to
+ change.
+ (struct outp_class) Removed line_width, all references changed.
+ (OUTP_DEV_*) Add OUTP_DEV_DISABLED.
+ (struct outp_driver) Add elements horiz_line_width,
+ vert_line_width, horiz_line_spacing, vert_line_spacing. Remove
+ som element.
+
+ * postscript.c: (outp_encodings) Formatting fixes. Fix garbage
+ collection.
+ (postopen) Initialize all the informational members of
+ outp_driver.
+
+ * som.c: (som_blank_line) New function, renamed from blank_line(),
+ all references changed.
+ (som_submit) Disables drivers whose pages can't be opened.
+ (render_columns, render_simple, render_segments) Add debug output.
+ (render_columns) Fix loop range.
+ (render_simple) Don't try to render the headers, they're taken
+ care of automatically. Advance cp_y past the table when done.
+ (render_segments) Fix loop ranges.
+
+ * tab.c: Initialize new members of tab_table.
+ (tab_vline) Handle trv[]; don't set style for spacing-only lines.
+ (tab_hline) Handle trh[]; don't set style for spacing-only lines.
+ (tab_box) Handle trh[], trv[]; don't set style for spacing-only
+ lines.
+ (set_expr) Removed.
+ (tab_dim) New function.
+ (tab_col_width) Removed.
+ (tab_row_height) Removed.
+ (tab_output_text) Call tab_dim().
+ (tabi_driver) Call evaluate_dimensions(), sum_columns().
+ (tabi_area) Implemented.
+ (tabi_cumulate) Implemented.
+ (tabi_render) Partially implemented, but broken.
+ (var tab_table_class) Made static.
+ (evaluate_dimensions) New function.
+ (sum_columns) New function.
+
+ * tab.h: (enum t_*) Now start at t_end. New: t_ptw, t_nr, t_nc,
+ t_nah, t_naw, t_neg, t_xch, t_dup, t_lbl, t_jnz, t_sac, t_sar,
+ t_scr, t_srr, t_sentinel. Removed: t_nat.
+ (struct tab_table) New: wl, wr, ht, hb, trh, hrh, trv, wrv, dim,
+ max_stack_height, w, h. Removed: ce, re.
+ (macro blank_line) Removed.
+ (glob var zero_length) Removed.
+
+Fri Dec 26 15:44:31 1997 Ben Pfaff <blp@gnu.org>
+
+ * Most source files: include some of the new include files broken
+ out of var.h.
+
+ * Makefile.am: (pspp_SOURCES) Add all the new source files to the
+ list.
+
+ * aggregate.c: (glob var outfile) Make static.
+
+ * command.c: (glob var pgm_state) Move here.
+
+ * common.c: (glob vars endian, second_lowest_value, pgmname,
+ finished, curdate, cur_proc, start_interactive, history_file) Move
+ here.
+
+ * descript.q: (structs dsc_z_score, descriptives_trns) Move here.
+
+ * file-handle.q: (glob vars files, inline_file) Move here.
+
+ * glob.c: Lost lots of glob vars, detailed in individual file
+ entries.
+ (init_glob) set_printer, set_screen were obsolete, deleted.
+ set_cprompt has fewer spaces because pspp has fewer letters than
+ fiasco.
+
+ * inpt-pgm.c: (glob vars inp_init, inp_init_size) Move here.
+ (inp_nval) Made static.
+
+ * lexer.c: (glob vars token, tokval, tokstr, tokstr_size,
+ tokstr_len, toklongstr, tokint) Move here.
+
+ * misc.c: Lost several vars and functions.
+
+ * set.q: (all the set_* variables) Move here.
+
+ * str.c: (strmaxcpy, strbarepadcpy, strbarepadlencpy, strpadcpy,
+ blpstrset, strpadcmp, memrev, memrmem, cmp_str) Move here from
+ misc.c.
+
+ * tab.c: (set_expr, tab_col_width, tab_row_height) New functions.
+
+ * tab.h: (enum series t_*) New enums.
+ (struct tab_table) Use arena struct tag. New members ce, re.
+
+ * tokens.h: Comment fixes.
+
+ * var.h: Move lots of enums and variables and functions and
+ structures to other files. Use and declare a lot more union and
+ struct tags. Comment fixes.
+
+ * vector.c: (glob vars vec, nvec) Move here.
+
+ * vfm.c: (glob vars reinit_sysmis, reinit_blanks, init_zero,
+ init_blanks, last_vfm_invocation) Move here.
+
+ * cases.h: New file.
+ (struct long_vec) Move here.
+ (vec_init, vec_clear, vec_insert, vec_delete, devector, envector)
+ Move here.
+
+ * command.h: New file.
+ (STATE_* enums) Move here.
+ (glob var pgm_state) Move here.
+
+ * format.c: New file.
+ (glob var formats) Move here.
+ (parse_format_specifier_name, fmt_to_string,
+ check_input_specifier, check_output_specifier,
+ check_string_specifier, convert_fmt_ItoO, parse_format_specifier)
+ Move here.
+
+ * format.h: New file. Move functions now in format.c here.
+ (FMT_* enums) Move here.
+ (struct fmt_desc) Move here.
+ (FCAT_* enums) Move here.
+ (struct fmt_spec) Move here.
+ (glob vars formats, fmt_parse_ignore_error) Move here.
+
+ * inpt-pgm.h: New file.
+ (INP_* enums) Move here, make #defines into enums.
+ (glob vars inp_init, inp_init_size) Move here.
+
+ * sort.h: New file.
+ (glob vars v_sort, nv_sort) Move here.
+ (sort_cases, read_sort_output) Move here.
+
+ * vector.h: New file.
+ (struct vector) Move here, add struct tag.
+ (glob vars vec, nvec) Move here.
+ (find_vector) Move here.
+
+ * New file.
+ (glob vars last_vfm_invocation, temp_case, reinit_sysmis,
+ reinit_blanks, init_zero, init_blanks) Move here.
+ (struct case_stream) Move here.
+ (glob vars vfm_source, vfm_sink, vfm_memory_stream,
+ vfm_disk_stream, sort_stream, data_list_source,
+ input_program_source, file_type_source, get_source, n_lag) Move
+ here.
+ (procedure, write_case, lagged_case, compact_case, page_to_disk)
+ Move here.
+
+Wed Dec 24 22:40:42 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (pspp_SOURCES) Added html.c, som.c, som.h.
+ (LDADD) Add libdcdflib.
+
+ * ascii.c: Comment and formatting fixes. Almost every external
+ function had an assert added, checking driver_open and page_open.
+ (ascii_init_driver) Broken into ascii_preopen_driver,
+ ascii_postopen_driver, ascii_close_driver. Manages driver_open.
+ (ascii_open_page) Sets page_open.
+ (ascii_close_page) Clears page_open.
+
+ * html.c: Comment and formatting fixes. Almost every external
+ function had an assert added, checking driver_open and page_open.
+ (html_init_driver) Broken into html_preopen_driver,
+ html_postopen_driver, html_close_driver. Manages driver_open.
+ (html_open_page) Sets page_open.
+ (html_close_page) Clears page_open.
+ (html_submit) Disabled.
+
+ * lexer.c: (parse_string) Remove debugging printf.
+
+ * list.q: (determine_layout) Open a page if one is not yet open.
+
+ * output.c: Comment fixes.
+ (add_class) Set the class member of the new list element.
+ (parse_options) Don't handle device type.
+ (colon_tokenize) New function.
+ (configure_driver) New four-field format with a field for device
+ type. Now initialize driver_open, page_open, next, and prev
+ fields. Use new colon_tokenize() function. Don't do a memory
+ copy to replace a driver, it doesn't work; instead delete the old
+ driver and insert a new one.
+ (destroy_driver) Don't call som_destroy_driver(). Close the page
+ if it's open. Find the class in the list of classes and decrement
+ that reference count. Remove the driver from the global driver
+ list.
+ (outp_iterate_enabled_drivers) Renamed outp_drivers(). All
+ references changed. Rewritten. Don't return a driver that's not
+ enabled.
+ (outp_eject_page) All references to som_internal_eject_page()
+ changed to use this. Sets cp_x to 0 as well as cp_y.
+
+ * output.h: (OUTP_I_* enums) Removed.
+ (struct som_submission_form) Removed.
+ (struct outp_class) init_driver broken into preopen_driver,
+ postopen_driver, and close_driver. submit changed to take a
+ som_table argument.
+
+ * postscript.c: Comment and formatting fixes. Almost every
+ external function had an assert added, checking driver_open and
+ page_open.
+ (ps_init_driver) Broken into ps_preopen_driver,
+ ps_postopen_driver, ps_close_driver. Manages driver_open.
+ (ps_open_page) Sets page_open.
+ (ps_close_page) Clears page_open.
+
+ * som.c: New file, base implementation.
+
+ * som.h: (struct som_table) Add struct tag.
+ (enum SOM_COL_ACROSS) Removed.
+ (SOM_ROWS, SOM_COLUMNS) New enums.
+ (struct som_table_class) Add member `cumulate'. Remove `segment';
+ change `render' arguments.
+ (struct som_point, struct som_rect) Removed.
+ (som_submit_table) Fixed typo, should have been som_submit.
+
+ * sysfile-info: (describe_variable) Don't try to insert a
+ subtable; just destroy it for now.
+
+ * t-test.q: Include dcdflib/cdflib.h instead of cdflib.h. Fix
+ references to value labels.
+
+ * tab.c: (tab_destroy) New function.
+ (tab_columns) Change argument.
+ [0] (tab_submit) Remove dead code.
+ (tab_title) Allocate string from the table's arena.
+ (tab_output_text) Only free the buffer if we allocated it.
+ (tab_submit) New function.
+ (static vars t, d) New static vars.
+ (tabi_table, tabi_driver, tabi_count, tabi_area, tabi_columns,
+ tabi_headers, tabi_cumulate, tabi_render) New functions.
+ (glob var tab_table_class) New global var.
+
+ * tab.h: (struct tab_join_rect) Don't use a som_rect; directly
+ encapsulate the rectangle. All references changed.
+
+Sun Dec 21 16:18:58 1997 Ben Pfaff <blp@gnu.org>
+
+ * All header files updated to use struct tags in addition to
+ typedefs for all structures. Don't use word `struct' in struct
+ tags.
+
+ * Makefile.am: (pspp_SOURCES) Remove html.c.
+ (INCLUDES) Replace the lib/* includes with a single lib/ include;
+ all references updated.
+
+ * command.c: (parse_cmd) Remove call to som_check_workspace.
+ (output_line) Update to new som.
+
+ * data-in.c: (parse_numeric) A single dot is not an error; it is
+ the system-missing value.
+
+ * data-list.c: (dump_fixed_table, dump_free_table) Update to new
+ som.
+
+ * data-out.c: Added `const' as appropriate to many prototypes.
+ (convert_E, convert_F, convert_CCx) Take double argument instead
+ of value * argument.
+ (convert_format_to_string) Call changed functions appropriately.
+ Instead of modifying the caller's value for FCAT_SHIFT_DECIMAL,
+ make a local copy of the value.
+
+ * descript.q: Remove custom_variables() prototype now provided by
+ q2c.
+ (custom_variables) Don't increment sbc_variables, the caller does
+ this.
+ (dump_z_table, display) Update to new som.
+
+ * error.c: (vmsg) Add const to prototype. Remove code to handle
+ `too many errors' condition.
+ (check_error_count) New function.
+ (msg) Add const to prototype.
+
+ * filename.c: (open_file) Rewrite for elegance.
+
+ * frequencies.q: Remove custom_*() prototypes now provided by q2c.
+ (dump_full, dump_condensed, dump_statistics) Update for new som.
+
+ * list.q: Don't include somP.h. Change all references to
+ som_driver_ext to refer to the new members of som_driver. Change
+ som_internal_eject_page() references to outp_eject_page().
+
+ * main.c: (parse) Rewrite for elegance. Add call to
+ check_error_count().
+
+ * output.c: (add_class, outp_list_classes, outp_configure_driver)
+ Rewrite or revise for new outp_driver_class_list structure.
+ (outp_iterate_enabled_drivers) Fix comparison between disabled
+ devices and current device type.
+ (outp_eject_page) New function.
+
+ * output.h: Comment fixes.
+ (struct outp_driver) New members driver_open, page_open, cp_x,
+ cp_y, font_height, prop_em_width, fixed_width. Deleted members
+ ref_count, next.
+ (struct outp_driver_class_list) New struct.
+ (outp_class_list) Changed to type outp_driver_class_list; all
+ references updated.
+
+ * print.c: (dump_table, print_trns_proc) Updated for new som.
+
+ * q2c.c: (dump_vars) Simplify array subcommand code. Declare
+ prototypes for custom subcommands.
+ (dump_subcommand) Always include the `else'.
+ (dump_parser) Fix comments in output code.
+
+ * set.q: Reordered functions.
+
+ * som-frnt.c, som-high.c, som-low.c, somP.h: Removed.
+
+ * som.h: Rewritten from scratch.
+
+ * str.h: Remove dead code.
+
+ * tab.c, tab.h: New files, base implementation.
+
+ * sysfile-info.c: (cmd_sysfile_info, describe_variable) Update to
+ new som.
+
+ * t-test.q: New code from John Williams
+ <johnr.williams@stonebow.otago.ac.nz>. Include math.h, cdflib.h.
+ Many many new static vars and defines.
+ (precalc, postcalc, g_postcalc, z_postcalc, t_pairs, t_groups,
+ groups_calc, pairs_calc, z_dev_calc, z_calc) New functions.
+ (struct value_list) New struct.
+ (variance, covariance, pooled_variance, oneway, pearson_r, f_sig,
+ t_crt, t_sig, print_t_groups) New functions.
+ (cmd_t_test) Implemented.
+
+ * temporary.c: (cancel_temporary) Only free the temp_dict if it's
+ non-NULL.
+
+ * vfm.c: (dump_splits) Update to new som.
+
+Thu Dec 4 23:02:22 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (fiasco_SOURCES) Add html.c.
+
+ * aggregate.c: Base source.
+
+ * ascii.c: (postopen, preclose) Reformat.
+
+ * data-out.c, expr-evl.c: Comment fixes.
+
+ * filename.c: (open_file) When opening a file for writing, use
+ line buffering instead of full buffering for better interactive
+ performance. Suggested by Valerio Aimale
+ <valerio@svpop.com.dist.unige.it>. Also, recognize special file
+ names `stdin', `stdout', `stderr'.
+
+ * groff-font.c: Comment fixes.
+
+ * html.c: New file; base version.
+
+ * list.q: (write_all_headers, clean_up, determine_layout,
+ list_cases) Ignore `special' devices for now. Needs to be fixed
+ later.
+
+ * output.c: (outp_init) Add html driver to list; reverse list
+ order.
+
+ * output.h: (struct outp_class_struct) New members `special',
+ `submit'; comment fixes. All references changed.
+
+ * postscript.c: (ps_init_driver) Make defaults for text_opt,
+ line_opt depend on whether the OUTP_DEV_SCREEN bit is set on the
+ device.
+ (postopen) Comment fix.
+ (preclose) Comment fixes, formatting fixes. Change x->file.file
+ references to more proper f->file.
+
+ * som-high.c: (som_submit_table) Special classes use their own
+ renderers.
+
+ * som.h: Comment fixes.
+
+ * temporary.c: (new_dictionary) Don't try to xstrdup() a NULL
+ string.
+
+Tue Dec 2 14:36:07 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (fiasco_SOURCES) Add aggregate.c back in.
+
+ * aggregate.c: Still working on this.
+
+ * command.c: (cmd_table[]) Add AGGREGATE back in.
+ (split_words) Make '-' a legal word separator as well as ' '.
+
+ * main.c: Comment fixes.
+
+ * q2c.c: (dump_parser) Don't require the procedure's full name to
+ be present, in the generated source.
+
+ * t-test.q: Change name to `t-test' from `t test'. Let PAIRS be
+ multiply specified and let it be default; let MISSING, CRITERIA,
+ FORMAT be multiply specified.
+ (cmd_t_test) Parse command name. [DEBUGGING] Call debug_print().
+ (custom_groups) Fix defaults.
+ (custom_pairs) Check whether this is a PAIRS subcommand before
+ attempting to parse. Better garbage collection. Proper storage
+ allocation.
+ [DEBUGGING] (debug_print) New function.
+
+ * temporary.c: Comment fixes.
+ (copy_variable) Don't copy variable name and index.
+ (save_dictionary) Copy variable name and index by hand.
+
+ * vars-atr.c: Comment fixes.
+ (create_variable) New dictionary argument. All references
+ changed.
+ (common_init_stuff) New dictionary argument. All references
+ changed.
+ (init_variable) New dictionary argument. All references changed.
+ (dup_variable) New function.
+
+ * vars-prs.c: (parse_variables) If there are any errors, we always
+ return 0. Previously, it was possible for some types of errors to
+ be ignored.
+
+Sat Nov 22 01:20:59 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (fiasco_SOURCES) For 0.1.5 release, remove
+ aggregate.c.
+
+ * command.c: (cmd_table[]) Comment out AGGREGATE; add T TEST.
+
+ * list.q, t-test.q: Remove ALL option from VARLIST declaration in
+ grammar rules.
+
+ * q2c.c: Comment fixes.
+ (SBC_* enums) Remove SBC_VARLIST_ALL; all references removed.
+
+ * t-test.q: (cmd_list) Rename cmd_t_test.
+
+ * temporary.c: (new_dictionary) Don't declare as static.
+
+Fri Nov 21 00:03:06 1997 Ben Pfaff <blp@gnu.org>
+
+ * aggregate.c: Changes, still not finished.
+
+ * file-handle.q, frequencies.q, list.q, set.q: Comment fixes.
+
+ * q2c.c: Comment fixes. Now its output is internationalized.
+ (get_token) Fix parsing of escapes within literal strings.
+ (main) Fix bad #line directives in output.
+
+ * t-test.q: Base implementation.
+
+ * temporary.c: (new_dictionary) New function.
+ (restore_dictionary) [__CHECKER__] Change fill character to *
+ (from @).
+
+Sun Nov 16 01:29:57 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (BUILT_SOURCES, fiasco_SOURCES) Add t-test.c
+
+ * aggregate.c: Changes, still not finished.
+
+ * descript.q, list.q: Comment fixes.
+
+ * q2c.c: Almost completely rewritten.
+
+ * t-test.q: New file, not complete.
+
+Fri Nov 14 00:14:48 1997 Ben Pfaff <blp@gnu.org>
+
+ * aggregate.c: Changes, still not finished.
+
+ * sort.c: (sort_cases) Call cancel_temporary() instead of doing it
+ by hand.
+
+ * temporary.c: (cancel_temporary) New function.
+
+ * vars-atr.c: (discard_variables) Call cancel_temporary() instead
+ of doing it by hand.
+
+ * vfm.c: (close_active_file) After restoring a TEMPORARY
+ dictionary, set temp_dict to NULL. Cancel TEMPORARY through
+ cancel_temporary().
+ (SPLIT_FILE_procfunc) Comment fix.
+
+Tue Oct 28 16:08:45 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (fiasco_SOURCES) Add aggregate.c.
+
+ * aggregate.c: New file, not finished yet.
+
+ * command.c: (cmd_table) Add AGGREGATE.
+
+ * common.h: (pgm_state) Move declaration to var.h.
+
+ * lexer.c: (bin_value_func, oct_value_func, hex_value_func) i18n
+ fixes.
+ (parse_string) Message fix.
+
+ * recode.c: Comment fix.
+
+ * sfm-read.c: (read_variables) Code esthetic fixes.
+ (write_header) Default date is `Jan', not `JAN'.
+
+ * sfmP.h: (bswap_int32) [!__linux__] Fix off-by-one errors.
+
+ * sort.c: (cmd_sort_cases) Farm the work out to new function
+ parse_sort_variables().
+ (parse_sort_variables) New function.
+ (sort_cases) New function. Cancels temporary transformations,
+ which sorting didn't do previously.
+ (cmd_sort_cases) Better garbage collection on error. Uses
+ do_external_sort().
+ (write_initial_runs, merge_once) Improved code esthetics.
+ (sort_stream_read) Reduced to one call to read_output_cases().
+ (read_output_cases) New function.
+
+ * var-labs.c: (cmd_variable_labels) Re-enabled truncation of
+ variable labels to 120 characters.
+
+ * var.h: Comment fixes.
+ (glob var pgm_state) From common.h.
+
+ * vars-atr.c: (discard_variables) Set pgm_state to STATE_INIT.
+
+ * vars-prs.c: (parse_DATA_LIST_vars) Support PV_SINGLE in
+ options. Set *names to NULL on error.
+
+ * vfm.c: (memory_stream_init) Assert compaction_nval != 0.
+
+Thu Oct 9 09:59:49 1997 Ben Pfaff <blp@gnu.org>
+
+ * sfm-write.c, vfm.c: [HAVE_UNISTD] #include <unistd.h>, needed by
+ SunOS4. From Alexandre Oliva <oliva@dcc.unicamp.br>.
+
+Wed Oct 8 18:55:24 1997 Ben Pfaff <blp@gnu.org>
+
+ * vfm.c: (page_to_disk) Added missing local variables.
+
+Tue Oct 7 20:23:17 1997 Ben Pfaff <blp@gnu.org>
+
+ * get.c: Comment fix.
+
+ * sort.c: (cmd_sort_cases) Attempt to perform internal sort if the
+ source is anything other than a disk stream, not just if it's in a
+ memory stream. Call page_to_disk() before external sort.
+ (allocate_cases) Message fix.
+
+ * vfm.c: (prepare_for_writing) Warn user when paging workspace to
+ disk.
+ (page_to_disk) New function.
+
+Sun Oct 5 15:56:14 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (INCLUDES) Include .. instead of $(top_srcdir).
+
+ * common.h: (macro strerror) Remove. From Alexandre Oliva
+ <oliva@dcc.unicamp.br>.
+
+ * get.c: (dict_delete_run) The number of variables to delete is
+ not necessarily the number of variables that need to be shifted
+ up.
+ (trim_dictionary) Don't set *options to 0. Fix bug that caused
+ too many variables to be deleted.
+
+ * postscript.c: Comment fix.
+
+ * q2c.c: Include strerror.c. From Alexandre Oliva
+ <oliva@dcc.unicamp.br>.
+
+ * set.q: #undef ON and OFF. From Alexandre Oliva
+ <oliva@dcc.unicamp.br>.
+
+ * sfm-read.c: (sfm_read_dictionary) Don't set the file class too
+ early, otherwise errors cause a bad free().
+
+ * str.h: (macro nvsprintf) s/FORMATS/FORMAT/ typo. From Alexandre
+ Oliva <oliva@dcc.unicamp.br>.
+
+ * temporary.c: (save_dictionary) Don't allocate memory if
+ n_documents is 0.
+
+ * vfm.c: (memory_stream_write) Message fix.
+
+Sat Oct 4 16:20:43 1997 Ben Pfaff <blp@gnu.org>
+
+ * command.c: (static var cmd_table[]) Define REPEATING DATA
+ command.
+
+ * common.h: Added support for broken systems that are missing
+ EXIT_SUCCESS, EXIT_FAILURE, RAND_MAX, and/or strerror().
+
+ * Many source files: Replace syntax error messages via msg() with
+ call to syntax_error().
+
+ * data-list.c: (dump_fixed_table) Add support for dumping table
+ for REPEATING DATA as well as DATA LIST FIXED.
+ (cmd_repeating_data) Allows and requires `/' between subcommands.
+ Does proper thing with allowing rpd.starts_end to stay 0. Allows
+ CONTINUED specifications to be omitted. Forces CONTINUED to be
+ specified if ID is. Calculates starts_end, cont_end from logical
+ record length as reported by fhp. Calls dump_fixed_table() if
+ requested. Fixed length of record copied by memcpy.
+ (parse_num_or_var) Sets `num' to 0, not NOT_INT, for variables.
+ Message fix.
+ (realize_value) Returns sensible value for out-of-range variable
+ values.
+ (rpd_parse_record) New argument `ofs'. Fixed confusion between
+ length of occurrences and length of line. Added warning for
+ fields that exceed the line length. Fixed infinite loop.
+ (read_one_set_of_repetitions) Numerous minor changes for more
+ complete SPSS compliance. Message fixes.
+
+ * dfm.c: (dfm_close) If the file being closed is the inline file,
+ read all the remaining data before closing it.
+ (dfm_get_record) Don't close the file on lossage, as either it
+ has been closed already or it doesn't belong to us.
+
+ * error.c: (puts_stdout) New function.
+ (vmsg) Use puts_stdout instead of puts.
+
+ * file-handle.q: (fh_record_width) New function.
+
+ * inpt-pgm.c: (init_case) Fixed buffer overrun when inp_nval % 4
+ == 0.
+ (clear_case) Ditto.
+ (input_program_source_read) Made an old kluge an approved method.
+
+ * lexer.c: (syntax_error) New function.
+
+ * misc.c: [BROKEN_RAND] (ansi_rand, ansi_srand; static var next)
+ New.
+
+ * output.c: (oupt_get_paper_size) Message fix.
+
+ * q2c.c: Numerous fixes to formatting of generated code made to
+ conform to GNU coding standards. Uses syntax_error() in generated
+ code. Other miscellaneous generated message fixes. Added support
+ for broken systems that are missing EXIT_SUCCESS, EXIT_FAILURE,
+ RAND_MAX, and/or strerror().
+
+Sat Oct 4 02:09:56 1997 Ben Pfaff <blp@gnu.org>
+
+ * data-in.c: Comment fixes.
+
+ * data-list.c: (struct repeating_data_trns) New member `id_spec'.
+ (find_variable_input_spec) New function.
+ (cmd_repeating_data) Initializes id_spec.
+ (rpd_parse_record) Implemented.
+ (read_one_set_of_repetitions) Returns -3 by default in order to
+ kluge out some potential bugs.
+
+ * data-out.c: Comment fixes.
+
+ * file-type.c: (internal_cmd_record_type) Message fix.
+
+ * inpt-pgm.c: (input_program_source_read) Special temporary kluge
+ for handling -3 return value.
+
+Sat Sep 20 23:58:15 1997 Ben Pfaff <blp@gnu.org>
+
+ * data-list.c: Comment fixes.
+ (struct dls_var_spec) Reordered members.
+ (read_from_data_list_fixed) Restructured.
+ (struct repeating_data_trns) Reordered members. Renamed `starts'
+ as `starts_beg', `ends' as `starts_end'.
+ (cmd_repeating_data) Calculates length of repeated data if
+ necessary and possible.
+ (parse_num_or_var) Don't allow string variables.
+ (realize_value) New function.
+ (rpd_msg) New function.
+ (rpd_parse_record) New function. Currently stubbed out.
+ (read_one_set_of_repetitions) Implemented.
+
+ * inpt-pgm.c: (input_program_source_read) Comment fix.
+
+Thu Sep 18 21:34:57 1997 Ben Pfaff <blp@gnu.org>
+
+ * command.c: (cmd_end_repeat_p) Removed.
+ (init_cmd_parser) Doesn't set cmd_end_repeat_p.
+ (parse_cmd_name) Removed.
+
+ * data-list.c: Comment fixes.
+ (data_list_pgm) Removed `eof' member.
+ (static var first) New var.
+ (cmd_data_list) Sets `first'. Ensures that DATA LIST uses the
+ FILE TYPE file inside FILE TYPE structures.
+ (append_var_spec) Appends to *first, not dls.spec.
+ (parse_fixed) Message fixes.
+ (struct rpd_num_or_var) New.
+ (struct repeating_data_trns) New.
+ (static var rpd) New.
+ (cmd_repeating_data) New function.
+ (parse_num_or_var) New function.
+ (parse_repeating_data) New function.
+ (read_one_set_of_repetitions) New function.
+
+ * file-type.c: (cmd_file_type) Message fixes. Always
+ default_handle to FILE TYPE file handle.
+ (internal_cmd_record_type) Message fixes.
+
+Wed Aug 20 14:22:03 1997 Ben Pfaff <blp@gnu.org>
+
+ * repeat.c: Comment fix. Disable debugging.
+
+ * temporary.c: (restore_dictionary) Sets splits to NULL and
+ n_splits to 0 before destroying the variables because now doing
+ this tries to remove split variables.
+
+ * vars-atr.c: (discard_variables) Asserts that n_splits is 0 after
+ destroying the dictionary.
+ (clear_variable) Removes a variable from splits after destroying
+ it.
+
+Mon Aug 18 18:06:55 1997 Ben Pfaff <blp@gnu.org>
+
+ * cmdline.c: (set_compat) Removed.
+ (pick_compat) Removed.
+ (parse_command_line) Removed -c option.
+ (pre_syntax_message) Removed -c option.
+ (usage) Remove compatibility code.
+
+ * common.h: (macros VER_PC, VER_WND, VER_X) Removed.
+ (glob var compat) Removed.
+
+ * compute.c: (type_check) Fixed messages about type mismatches.
+
+ * data-list.c: (cmd_data_list) Removed compatibility code.
+ (fixed_parse_compatible) Calls convert_negative_to_dash().
+ Fixed bug where it only set the variable in fx.spec if it created
+ the variable itself.
+ (dump_fmt_list) Spelling fix.
+ (cut_field) Removed compatibility code.
+
+ * dfm.c: (cmd_begin_data) Don't require a command terminator on
+ BEGIN DATA command.
+
+ * expr-evl.c: (evaluate_expression) Implement LAG.
+
+ * expr-prs.c: (parse_add) Calls convert_negative_to_dash().
+ (parse_neg) Calls convert_negative_to_dash().
+ (LAG_func) Increases n_lag to the lag requested. Fixed assignment
+ bug.
+
+ * expr.h: (struct expression_struct) Removed member max_lag.
+
+ * file-type.c: (parse_col_spec) Calls convert_negative_to_dash().
+ (internal_cmd_record_type) Removed special handling to produce
+ negative numbers from dash tokens.
+
+ * getline.c: (static var DO_REPEAT_level) New var.
+ (getl_add_DO_REPEAT_file) Increments DO_REPEAT_level.
+ (handle_line_buffer) Copies the line into getl_buf; doesn't call
+ copy_with_DO_REPEAT_substitutions().
+ (getl_read_line) Maintains value of getl_mode. Calls
+ perform_DO_REPEAT_substitutions() whenever DO_REPEAT_level is
+ positive.
+ (getl_close_file) Decrements DO_REPEAT_level when appropriate.
+
+ * getline.h: (getl_mode) New glob var.
+
+ * glob.c: Comment fixes.
+ (init_glob) Restructured. Sets set_seed.
+ (init_compat_dependent) Removed. All references removed.
+ (get_date) Format changed from MM/DD/YY to DD MMM YYYY.
+ (__htonl, __htons) Removed. (What were these for?)
+
+ * lexer.c: (static var tbl) Dash set to class CNUM.
+ (make_hexit) New function from data-out.c.
+ (get_token_representation) Rewritten.
+ (convert_negative_to_dash) New function.
+ (lex_init_compat_dependent) Removed.
+ (yylex) A dash is parsed as part of a number if it is followed by
+ a digit. The ASCII representation of a number is copied to
+ tokstr. String parsing farmed out to parse_string(). Comment
+ fixes.
+ (bin_value_func, oct_value_func, hex_value_func, parse_string) New
+ functions.
+ (preprocess_line) Line processing depends on interactive/batch
+ mode, not on compatibility mode. Removed PC+ compatibility code.
+
+ * loop.c: (loop_3_trns_proc) Comment fix.
+
+ * main.c: Remove dead code.
+ (main) Remove call to init_compat_dependent().
+
+ * misc.c: (convert_fmt_ItoO) Make E format conversion more
+ conformant.
+
+ * print.c: (parse_string_argument) Calls
+ convert_negative_to_dash().
+ (fixed_parse_compatible) Calls convert_negative_to_dash().
+
+ * repeat.c: (RPT_* defines) Removed.
+ (struct rpt_numeric) Removed.
+ (struct repeat_entry) New member type, changed `replacement' from
+ char * to char **.
+ (clean_up) Deallocation adapted to new repeat_entry.
+ (internal_cmd_do_repeat) `type' defaults to 0. Remove lookahead()
+ usage. Creates vars for `type' of 1.
+ (parse_ids) Sets type of 1. Adapted to new repeat_entry.
+ (store_numeric) Rewritten, new interface.
+ (parse_numbers) Rewritten.
+ (parse_strings) Rewritten.
+ (find_DO_REPEAT_substitution) New function.
+ (perform_DO_REPEAT_substitutions) New function.
+ (copy_with_DO_REPEAT_substitutions) Removed.
+ (debug_print) Rewritten.
+
+ * set.q: Comment fix.
+ (custom_results) Removed compatibility code.
+ (internal_cmd_set) Removed SET EMULATION subcommand. Removed
+ compatibility code.
+
+ * sysfile-info.c: (cmd_display) Removed compatibility code.
+
+ * tokens.h: Comment fixes.
+ (token types enum) Removed `toktype' typedef name for this int
+ type. Removed SUBST. Restructured.
+
+ * vars-atr.c: (discard_variables) Sets n_lag to 0.
+
+ * vars-prs.c: Comment fix.
+
+ * vfm.c: Comment fixes.
+ (glob var n_lag) New var.
+ (static vars lag_count, lag_head, lag_queue) New vars.
+ (procedure) Removed argument nlag.
+ (setup_lag) New function.
+ (close_active_file) Discards lagging state.
+ (lag_case) New function.
+ (lagged_case) New function.
+ (write_case) Lags a case if lagging.
+
+ * weight.c: (cmd_weight) Removed compatibility code.
+
+Sun Aug 17 22:34:40 1997 Ben Pfaff <blp@gnu.org>
+
+ * getline.h: (struct getl_script) New members loop_index, macros.
+
+ * getline.c: (getl_add_file) Sets first_line field to NULL.
+ (getl_add_DO_REPEAT_file) New function.
+ (handle_line_buffer) When the current line's length is negative,
+ set the filename and line number. Increment line number after
+ reading line. Pass the line to
+ copy_with_DO_REPEAT_substitutions() for processing.
+ (getl_close_file) Free DO REPEAT lines before freeing the
+ filename, and just set the filename to NULL when doing this,
+ because otherwise the filename gets freed twice.
+
+ * glob.c: (glob var queuing) Removed. All references removed.
+
+ * lexer.c: Comment fixes.
+ (get_token_representation) New function.
+
+ * repeat.c: Comment fixes.
+ (struct repeat_entry) Replaced type and v union members with a
+ simple string.
+ (append_record) New function.
+ (internal_cmd_do_repeat) Started reforming it for the new
+ repeat_entry struct. Properly records filename changes in the
+ getl_line_buf. Fixed improper use of = for ==. Fixed sense of
+ strncasecmp() result usage. Uses append_record() to simplify.
+ Properly discards END REPEAT line. Calls getl_add_DO_REPEAT_file
+ to add in the file.
+
+ (copy_with_DO_REPEAT_substitutions) Started coding.
+
+ [DEBUGGING] (debug_print_lines) New function.
+
+ * set.q: (custom_results, internal_cmd_set) s/VER_PCP40/VER_PC/;
+
+ * tokens.h: (macro is_id1, is_idn) New macros.
+
+Sat Aug 16 10:57:41 1997 Ben Pfaff <blp@gnu.org>
+
+ * cmdline.c: (static var pre_syntax_message) Changed `win'
+ compatibility mode to `wnd'.
+
+ * data-list.c: (fixed_parse_spss) Renamed
+ fixed_parse_compatible().
+
+ * glob.c: (init_glob) Excise unused code for
+ program_invocation_short_name.
+
+ * lexer.c: (preprocess_line) Leading indentors are ignored in Wnd
+ as well as in X.
+
+ * print.c: (fixed_parse_spss) Renamed fixed_parse_compatible().
+
+ * set.q: `win' compatibility renamed `wnd'.
+
+Thu Aug 14 22:11:12 1997 Ben Pfaff <blp@gnu.org>
+
+ * filename.c: [__WIN32__] Change the included Windows header files
+ (again).
+ (absolute_filename_p) [__MSDOS__] A filename with a colon as the
+ second character is absolute.
+ (dirname) Fix logic error. Don't printf() the results.
+ (prepend_dir) Don't printf() the results.
+
+ * getline.c: (handle_line_buffer) New function.
+ (getl_read_line) Reads line with handle_line_buffer() when
+ appropriate.
+ (getl_close_file) Discard line buffer data.
+
+ * getline.h: Comment fixes.
+ (struct getl_line_list) New struct.
+ (getl_script_struct) Added line buffer members. These are hooks
+ for use by DO REPEAT to allow it to insert virtual source code
+ into the program.
+
+ * glob.c: (init_glob) [__DJGPP__ || (__WIN32__ && __BORLANDC__)]
+ Override Borland C++ stupidity that claims Windows has a console
+ window size of 0x3.
+
+ * repeat.c: This is in the process of being restructured from
+ using a token-buffering approach to the DO REPEAT facility to
+ using the more flexible approach of a line-buffering approach in
+ conjunction with the getline module. Comment fixes.
+ (struct tok_struct) Removed.
+ (static vars queue_index, queue_head, queue) Removed.
+ (static vars line_buf_head, line_buf_tail) New vars.
+ (internal_cmd_do_repeat) Instead of queuing tokens, queue lines.
+ Not complete.
+ (pull_queue, destroy_queue) Removed.
+ [DEBUGGING] (debug_print_tokens) Removed.
+
+Tue Aug 5 13:57:58 1997 Ben Pfaff <blp@gnu.org>
+
+ * file-handle.q: (prepend_current_directory) New function.
+ (internal_cmd_file_handle, fh_get_handle_by_filename) Prepends
+ current directory before normalizing filename.
+
+ * filename.c: (gnu_getcwd) New function.
+ (absolute_filename_p) New function.
+ (search_path) New argument, PREPEND. All references changed to
+ pass NULL except those explicitly mentioned. Uses
+ absolute_filename_p(). Prepends PREPEND before trying the
+ filename.
+ (dirname, prepend_dir) New functions.
+
+ * getline.c: (getl_get_current_directory) New function.
+ (getl_include) Passes getl_get_current_directory() as PREPEND arg
+ to search_path().
+
+Sun Aug 3 11:42:36 1997 Ben Pfaff <blp@gnu.org>
+
+ * In several source files, the term `script' was replaced with
+ `syntax file' inside error messages. Usage of the term `script'
+ in the sense of a syntax file is now deprecated.
+
+ * cmdline.c: (static vars pre_syntax_message, post_syntax_message)
+ Updated messages.
+
+ * dump-sysfile.c: (usage) Update message.
+
+ * getline.c: (getl_read_line) Ignore lines beginning with `#!'.
+
+ * getline.h: (glob var getl_include_path) Declare extern.
+
+ * list.q: Define EXTERN as extern before #including somP.h.
+
+ * var.h: Remove declaration of `disptype' variable.
+
+ * vfm.c: (close_active_file) After switching the data sink to a
+ data source, set vfm_sink to NULL, because it doesn't exist any
+ more.
+
+Thu Jul 17 21:41:44 1997 Ben Pfaff <blp@gnu.org>
+
+ * glob.c: [__BORLANDC__] Include math.h. Define _matherr() and
+ _matherrl() to ignore all math errors.
+
+ * sfm-read.c: (read_value_labels) When reading the labels from
+ disk, read the little parts separately instead of as a struct;
+ this avoids alignment problems.
+
+ * sfm-write.c: (struct sfm_fhuser_ext) New member `elem_type'.
+ (sfm_write_dictionary) Sets elem_type and frees it on lossage.
+ (write_header) Allocates and initializes elem_type.
+ (sfm_write_case) Uses elem_type to determine how to handle each
+ flt64 element.
+ (sfm_close) Frees elem_type.
+
+ * sfmP.h: Comment fix.
+ [__BORLANDC__] Uses #pragma -a to adjust structure member
+ alignment.
+
+Thu Jul 17 01:55:12 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (fiasco_SOURCES) Remove display.c.
+
+ * common.c: Fix typo.
+
+ * dfm.c: (read_record) Remove strncasecmp() emulation and fix the
+ sense of the condition.
+
+ * expr-evl.c: (macro ALLOC_STRING_SPACE) [!PAGED_STACK] Add
+ line-continuation backslash.
+
+ * filename.c: [__WIN32__] Include <windef.h> before <winbase.h>.
+
+ * frequencies.q: (custom_grouped, add_percentile) Don't use a
+ non-constant expression as an argument to sizeof.
+
+ * glob.c: [__WIN32__ && __BORLANDC__] When including <conio.h>,
+ undefine gettext macro because that's a conio function.
+
+ * hash.h: (hsh_prime_tab declaration) Remove.
+
+ * list.q: (write_fallback_headers) Move `leader' allocation out of
+ main loop. Change to local_alloc() allocation.
+
+ * output.h: Formatting fixes. Put __attribute__ in right place on
+ function prototypes.
+
+ * sfm-read.c: (read_machine_flt64_info, read_variables) Change
+ incorrect `SECOND_LOWEST_VALUE' references to proper
+ `second_lowest_value'.
+
+ * som-frnt.c: (EXTERN macro) Define as `extern' instead of null
+ value. This way 2 out of 3 of the som files define the vars
+ extern, the correct way, that actually works under BC++.
+ (som_set_float) Don't use nonconstant initializers for a struct.
+
+ * som-high.c: Add the standard alloca() header.
+ (replicate_table) Add prototype.
+
+ Merged DISPLAY routine.
+ * sysfile-info.c: (AS_*) New enum series.
+ (cmd_sysfile_info) Gutted. Calls describe_variable() to do the
+ dirty work.
+ (cmd_display, display_macros, display_documents,
+ display_variables) Stolen from defunct display.c.
+ (describe_variable) New function.
+
+ * temporary.c: [0] (display_tree) New debug function.
+ (copy_variable) Performs shallow copy of value labels instead of
+ deep copy; i.e., just copys the AVL tree and increments the
+ reference counts.
+
+ * val-labs.c: Comment fixes.
+ (do_value_labels) Optionally skip leading forward slash.
+ (get_label) Creates only a single value label instead of many
+ copies of one, and sets the reference count.
+
+ * display.c: Removed.
+
+ * dump-sysfile.c: New file, not yet complete.
+
+Fri Jul 11 23:02:18 1997 Ben Pfaff <blp@gnu.org>
+
+ For lots of source files I added more verbose_msg's. These aren't
+ listed below as they have tested as being benign. In some cases
+ these replaced debug_printf() calls.
+
+ * output.c: (outp_read_devices) Message fix.
+
+ * postscript.c: (output_encodings) Message fix. Reports errors on
+ fclose().
+ (postopen) Message fix.
+
+Fri Jul 11 14:09:40 1997 Ben Pfaff <blp@gnu.org>
+
+ * dfm.c: (dfm_close) Don't call fclose() for a NULL FILE.
+
+ * filename.c: (close_file_ext) Set f->file to NULL *after* closing
+ it.
+
+ * main.c: Remove <malloc.h> #include.
+
+ * mis-val.c: (parse_numeric) Set .f member for each missing[]
+ instead of trying to just set the missing[] itself, which is a
+ gcc-specific idiom.
+
+ * sfm-read.c: (read_variables) Same.
+
+ * str.h: Add memmem() prototype.
+
+ * val-labs.c, var-labs.c: Replace <malloc.h> with <stdlib.h>.
+
+Thu Jul 10 22:13:53 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (q2c) Don't include any libraries in the link.
+
+ * dfm.c: (force_line_buffer_extension) New macro.
+ (count_tabs) New function.
+ (tabs_To_spaces) New function.
+ (read_record) Calls tabs_to_spaces() on the line being processed.
+
+ * q2c.c: Disabled i18n for this proglet so that libintl.a doesn't
+ have to be compiled twice (once for CC, once for LOCAL_CC).
+
+Sun Jul 6 19:14:33 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (INCLUDES) Add intl directory; fix directories.
+ (LDADD) Add @INTLLIBS@.
+ (q2c) Add LIBS, @INTLLIBS@ to link step.
+
+ * inpt-pgm.c: Turn off debugging.
+
+ * postscript.c: (postopen) Format fix. local_free() blocks
+ returned by local_alloc(); don't free() them.
+
+Sat Jul 5 23:44:51 1997 Ben Pfaff <blp@gnu.org>
+
+ * data-in.c: (parse_string_as_format) Comment fix. Fix check for
+ string length.
+
+ * data-list.c: (read_from_data_list_fixed) Pass proper value for
+ LEN arg, not simply the full string length.
+
+ * sort.c: (allocate_file_handles) Check SPSS compatible temp file
+ directories before generic temp file directories.
+
+ * vfm.c: Disable debugging.
+
+Fri Jul 4 13:26:41 1997 Ben Pfaff <blp@gnu.org>
+
+ * get.c: Comment fix.
+ (cmd_save_internal) Always passes GTSV_OPT_SAVE option.
+
+Wed Jun 25 22:52:28 1997 Ben Pfaff <blp@gnu.org>
+
+ * expr-prs.c: (debug_print_postfix) Conditionally included on
+ GLOBAL_DEBUGGING. Removed out_header() reference.
+
+ * exprP.h: Removed #undef GLOBAL_DEBUGGING.
+
+Sun Jun 22 22:00:28 1997 Ben Pfaff <blp@gnu.org>
+
+ * ascii.c: Removed obsolete ascii_close_page() prototype.
+
+ * command.c: (output_line) Comment fix.
+
+ * data-in.c: Formatting fix.
+ (parse_string_as_format) Now the `fc' argument is used only for
+ the purpose of error messages; it is not an index into the string
+ passed. All references changed.
+
+ * data-list.c: Comment fix.
+ (cut_field) Comment fix. Now returns the column number of the
+ position of the field cut out on success.
+ (parse_field) Added `column' argument. Puts the column numbers in
+ the error message.
+ (read_from_data_list_free, read_from_data_list_list) Record the
+ column number returned by cut_field(), pass it to parse_field().
+
+ * dfm.c: Comment fix.
+
+ * do-ifP.h: Comment fix.
+
+ * expr-prs.c: (SYSMIS_func) Implemented string-type arguments for
+ the SYSMIS function.
+
+ * expr.h, exprP.h: Comment fix.
+
+ * glob.c: (init_glob) Only calls setlocale() and family if
+ ENABLE_NLS set.
+
+ * hash.h: Comment fix.
+
+ * include.c: Comment fix.
+
+ * output.c: Comment fix.
+
+ * postscript.c: (ps_line_intersection) Simplified assertion.
+
+ * repeat.c: Comment fix.
+
+ * vars-atr.c: Comment fix.
+
+ * vars-prs.c: Comment fix.
+
+ * vfm.c: (vector_initialization) [DEBUGGING] Fixed undefined
+ behavior with usage of postincrement.
+ (memory_stream_read) Discards cases as it goes.
+
+Sun Jun 15 16:45:17 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Cleans q2c, not just distcleans it. Distcleans
+ foo.
+
+ * Most source files: Includes debug-print.h, related comment
+ fixes.
+
+ * cases.c: (alloc_val) Removed complex allocation code. Merely
+ increments default_dict.nval and returns the former value.
+ (envector, devector) Removed references to lv member of struct
+ variable.
+
+ * common.h: (macro VME) Replaced complex definition with simple
+ one.
+
+ * data-list.c: (cmd_data_list) Sets vfm_source instead of
+ read_active_file and cancel_input_pgm.
+ (read_from_data_list, cancel_data_list) Removed.
+ (data_list_source_read, data_list_source_destroy_source) New
+ functions.
+ (glob var data_list_source) New var.
+
+ * dfm.c: (open_file_r, open_file_w) Simplified debug output.
+ (cmd_begin_data) Improved criteria for an input program accessing
+ the inline file. Still not perfect.
+
+ * do-if.c: (do_if_trns_proc) Simplified debug output.
+
+ * expr-prs.c: Comment fixes.
+ [DEBUGGING] (debug_print_postfix) Simplified debug output.
+
+ * file-handle.q: (fh_close_handle) Simplified debug output.
+
+ * file-type.c: Comment fixes.
+ (cmd_file_type) Sets vfm_source instead of read_active_file and
+ cancel_input_pgm.
+ (cmd_end_file_type) On failure, discards variables in place of
+ just canceling the input program.
+ (read_from_file_type) Renamed file_type_source_read.
+ (cancel_file_type) Renamed file_type_source_destroy_source.
+ (glob var file_type_source) New var.
+
+ * get.c: (GTSV_* enum series) New enums GTSV_OPT_SAVE, GTSV_NONE.
+ (cmd_get) Initializes options to GTSV_NONE before passing to
+ trim_dictionary(). Removed `lv' reference. Sets vfm_source
+ instead of read_active_file and cancel_input_pgm.
+ (cmd_save_internal) Initializes options before passing to
+ trim_dictionary(). Local var `nval' removed.
+ (dict_delete_run) Comment fixes.
+ (trim_dictionary) Comment fixes. Disallows scratch variables if
+ GTSV_OPT_SAVE set in options.
+ (read_from_get) Renamed get_source_read.
+ (cancel_get) Renamed get_source_destroy_source.
+ (glob var get_source) New var.
+
+ * inpt-pgm.c: (cmd_input_program) Sets vfm_source instead of
+ read_active_file and cancel_input_pgm.
+ (read_from_input_program) Renamed input_program_source_read.
+ Simplified debug output.
+ (cancel_input_program) Renamed
+ input_program_source_destroy_source.
+ (glob var input_program_source) New var.
+
+ * loop.c: (loop_1_trns_proc) Simplified debug output.
+
+ * main.c: (dump_token) Made eof output more explicit.
+
+ * sfm-read.c: (read_variables, dump_dictionary) Removed `lv'
+ references.
+
+ * sort.c: (cmd_sort_cases) Disallows scratch variables. Removed
+ code for always-memory or always-disk cases. malloc's case-list
+ based on vfm_source_info.ncases. Explicit support for
+ memory_stream via memory_source_cases.
+ (do_external_sort) Sets vfm_source instead of read_active_file and
+ cancel_input_pgm.
+ (allocate_file_handles) The temporary directory permissions are
+ set to 0700 instead of 0777.
+ (allocate_cases) Formatting fixes. Simplified debug output.
+ (output_record) Compacts the case if necessary before writing it
+ out.
+ (close_handle, open_handle_w) Simplified debug output.
+ (write_initial_runs) Destroys vfm_sink, then sets it to
+ sort_stream. Writes records to memory based on
+ vfm_sink_info.case_size.
+ (write_to_sort_cases) Renamed sort_stream_write().
+ (merge) Simplified error handling. Simplified debug output.
+ Formatting fixes.
+ (read_from_external_sort) Renamed sort_stream_read().
+ Reads records based on vfm_source_info.case_size.
+ (sort_stream_write) Writes records to memory based on
+ vfm_sink_info.case_size.
+ (sort_stream_mode) New function.
+ (glob var sort_stream) New variable.
+
+ * temporary.c: (cmd_temporary) Simplified debug output.
+ (copy_variable) Removed references to `lv'.
+
+ * title.c: (get_title) Simplified debug output.
+
+ * var.h: Comment fixes.
+ (struct get_proc) Removed member `lv'.
+ (struct variable) Removed member `lv'. Comment fixes.
+ (glob vars read_active_file, write_active_file, cancel_input_pgm)
+ Removed.
+ (struct case_stream) New.
+
+ * vars-atr.c: (discard_variables) Changed cancel_input_pgm,
+ read_active_file references to use vfm_source.
+ (init_variable, replace_variable) Removed references to `lv'.
+
+ * vfm.c: Comment fixes.
+ (glob var vfm_source, vfm_sink, vfm_source_info, vfm_sink_info)
+ New variables.
+ (static var queue, qh, qt, n_lag) Removed. All references
+ removed.
+ (glob var compaction_necessary, compaction_nval, compaction_case,
+ paging) New variables.
+ (record_case) Removed.
+ (procedure) Comment fixes. Calls vfm_source->read() instead of
+ read_active_file().
+ (lag) Removed.
+ (prepare_for_writing, arrange_compaction, make_temp_case,
+ vector_initialization, setup_filter) New function.
+ (open_active_file) Most of the code moved into the abovementioned
+ new functions. Now sets temp_dict to &default_dict if there is no
+ temporary dictionary, for convenience. New debug output.
+ (close_active_file) Deals with changing the sink to the source.
+ Calls finish_compaction(). Frees compaction_case. Mostly
+ rewritten.
+ (glob vars disk_source_file, disk_sink_file) New vars.
+ (destroy_active_file, read_from_memory) Removed.
+ (disk_stream_init, disk_stream_read, disk_stream_write,
+ disk_stream_mode, disk_stream_destroy_source,
+ disk_stream_destroy_sink) New functions.
+ (glob var vfm_disk_stream) New var.
+ (glob vars memory_source_cases, memory_sink_cases,
+ memory_sink_iter, memory_sink_max_cases) New vars.
+ (memory_stream_init, memory_stream_read, memory_stream_write,
+ memory_stream_mode, memory_stream_destroy_source,
+ memory_stream_destroy_sink) New functions.
+ (glob var vfm_memory_stream) New var.
+ (write_case) Local var `i' renamed `cur_trns'; local var `retval'
+ named `more_cases'. Simplified debug output. Otherwise mostly
+ rewritten.
+ (record_case) Moved into the stream drivers. Removed.
+ (transform) Removed (was dead code).
+ (SPLIT_FILE_procfunc) s/vfm_replacement/vfm_sink_info/. In the
+ common case that the splits don't change, we don't need to copy
+ the case into prev_case again--pointless.
+ (compact_case) New function.
+ (finish_compaction) New function.
+
+ * vfmP.h: Comment fixes.
+ (DEV_* enum series) Removed.
+ (struct storage) Renamed `stream_info'. Removed variant record.
+ Removed `device' member.
+
+ * debug-print.h: New file.
+
+Sun Jun 8 01:12:38 1997 Ben Pfaff <blp@gnu.org>
+
+ * autorecode.c: Turned off debugging.
+
+ * data-list.c: (destroy_dls) Closes the associated file handle.
+
+ * descript.q: (custom_variables) Added PV_NO_SCRATCH to
+ parse_variables() options.
+
+ * dfm.c: (open_file_r) Removed gratuituous argument to msg() call.
+
+ * display.c: (display_variables) Really fixed null cell bug.
+
+ * file-handle.q: (fh_close_handle) Changed debugging message.
+
+ * frequencies.q: (custom_variables) Added PV_NO_SCRATCH to
+ parse_variables() options.
+
+ * list.q: Added PV_NO_SCRATCH in q2c varlist options.
+ (cmd_list) Fails if no variables specified.
+ (determine_layout) Writes blank lines manually.
+
+ * loop.c: (loop_1_trns_proc) Made debugging code only print
+ messages if debugging.
+
+ * q2c.c: (dump_subcommand) Appends sbc->message to SBC_VARLIST
+ parse_variables() arguments.
+ (main) Parses optional parenthesized options to varlist
+ subcommands into sbc->message.
+
+ * sfm-read.c: Format fix.
+
+ * var.h: (FV_*) New enum series.
+ (PV_*) New enum PV_NO_SCRATCH.
+
+ * vars-prs.c: (find_var) Removed.
+ (fill_all_vars) Takes FV_* enum instead of boolean third
+ argument. Rewritten to deal with scratch as well as system
+ variables.
+ (parse_variables) Error message on scratch variable if
+ PV_NO_SCRATCH set.
+
+ * vfm.c: (static var virt_begin_func) New var.
+ (procedure) Sets up virt_begin_func.
+ (SPLIT_FILE_procfunc) For the first case, calls virt_begin_func()
+ after dump_splits(). For succeeding groups changes, calls
+ virt_begin_func() instead of begin_func().
+
+Fri Jun 6 22:42:23 1997 Ben Pfaff <blp@gnu.org>
+
+ * count.c, data-out.c, file-handle.q, list.q, loop.c: Turned off
+ debugging.
+
+ * dfm.c: Added some debugging messages, disabled by default.
+ (open_file_r) Fixed error message.
+ (read_record) On eof on inline_file, instead of calling
+ fh_close_handle(), simply jump to eof label like a normal file.
+ Message fixes.
+
+ * display.c: Thin lines between rows for certain kinds of
+ listing. Fixed `null cell' bug.
+
+ * error.c: (failure) Flush stdout, stderr before failing.
+
+ * file-handle.q: (fh_close_handle) Added debugging message.
+
+ * frequencies.q: (dump_full) Bottom line extends across entire
+ table width. Changed title formatting.
+ (dump_condensed) Changed title formatting.
+ (dump_statistics) Fixed title formatting.
+
+ * glob.c: (init_glob) Moved initialization of cur_proc out of #if.
+ Sets default value of set_format.
+
+ * list.q: (cmd_list) Calls blank_line() before determine_layout().
+ Passes write_all_headers() to procedure() as pre-group func.
+ (write_all_headers) New function.
+ (determine_layout) Removed calls to write_header().
+ Calls blank_line() before and after write_fallback_headers().
+
+ * recode.c: (recode_trns_free) Only attempts to free head->map if
+ non-NULL.
+
+ * sfm-read.c: (read_variables) Allows `#' at beginning of system
+ file variable names but gives a warning. Sets `left' based on
+ first character being/not being `#'. On lossage frees dict->var.
+
+ * som-high.c: (som_draw_title) Simplified title formatting.
+
+ * vfm.c: (dump_splits) Fixed and changed splits formatting.
+
+Thu Jun 5 22:51:15 1997 Ben Pfaff <blp@gnu.org>
+
+ * autorecode.c: (cmd_autorecode) Sets h_trans to NULL at
+ beginning. Frees v_src, v_dest on successful exit. Frees
+ h_trans[*], h_trans on lossage.
+ (recode) Frees h_trans[*], h_trans.
+
+ * dfm.c: (dfm_close) Formatting change.
+ (open_inline_file) Now passed a dfm_fhuser_ext to initialize; no
+ longer allocates its own in inline_file.
+ (open_file_r) Passes the local dfm_fhuser_ext to
+ open_inline_file().
+ (open_file_w) Message fix.
+ (read_record) Buffer reallocation strategy changed. Frees
+ ext->line even in inline_file to prevent leaks.
+ (dfm_put_record) Fixed bug where `ext' was cached before the file
+ was opened and thus it would be NULL when the file really was
+ open.
+ (cmd_begin_data) Sets up inline_file basics itself, then calls
+ open_inline_file() for the dfm_fhuser_ext. Formatting fix.
+
+ * list.q: (write_line) Formatting fix.
+ (clean_up) Minor strategy change. Sets proportional font after
+ finishing cleanup.
+ (determine_layout) Sets fixed font before writing regular headers,
+ or after writing fallback headers.
+
+ * modify-vars.c: (cmd_modify_vars) Frees variable lists for DROP
+ and KEEP vars after using them.
+
+ * postscript.c: (ps_init_driver) Frees x->family.
+ (postopen) When loading fonts, free the temporary font name buffer
+ after using it.
+ (ps_text_set_font_by_position) Free temporary font name buffer
+ after using it.
+ (text) Fixed code that calculated `lig' so that `lig' always gets
+ initialized. Formatting fix.
+
+ * som-low.c: (get_cell_size, som_get_table_size) `prop_height' ->
+ `font_height'.
+ [GLOBAL_DEBUGGIGN] (check_table) Use arena_alloc() to allocate
+ cells, not xmalloc(), so that the cells will get destroyed
+ automatically.
+
+ * sysfile-info.c: (cmd_sysfile_info) Frees the dictionary after
+ using it.
+
+Tue Jun 3 23:33:22 1997 Ben Pfaff <blp@gnu.org>
+
+ * ascii.c: (ascii_text_draw) Always sets metrics for strings that
+ are drawn.
+
+ * dfm.c: Comment fix.
+
+ * list.q: Comment fixes. Include somP.h. Removed static vars
+ table, n_columns, n_rows, part. New struct list_ext. New static
+ var line_buf.
+ (n_lines_remaining, n_chars_width, write_line) New functions.
+ (cmd_list, list_cases) Rewritten.
+ (begin_row, end_row, flush_table) Removed.
+ (write_header, clean_up, write_varname, write_fallback_headers,
+ determine_layout) New functions.
+
+ * output.c: (outp_iterate_enabled_drivers) Minor reformat.
+
+ * output.h: Comment fix.
+
+ * postscript.c: Comment fix.
+ (struct ps_driver_ext) Removed prop_size, fixed_size members;
+ added font_size. All references changed.
+ (ps_init_driver) Initializes font_size. Simplified space checking
+ code.
+ (static var option_tab[]) Removed prop-size, fixed-size; added
+ font-size.
+ (ps_option) Handles font_size.
+
+ * som-high.c: Moved prototypes into somP.h.
+ (som_init_driver) New function.
+ (som_submit_table) Moved some code into new function
+ som_init_driver().
+ (build_target) Moved some code into new function
+ som_internal_eject_page().
+ (som_eject_page) Uses som_internal_eject_page().
+ (som_internal_eject_page) New function.
+
+ * som-low.c: Moved prototypes into somP.h.
+
+ * som.h: Formatting fixes.
+
+ * somP.h: (struct som_driver_ext) Removed em_width;
+ added prop_em_width, fixed_width.
+
+Mon Jun 2 14:25:25 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Added `localedir' definition. Added
+ -DLOCALEDIR="..." to DEFS. Added -I. to INCLUDES.
+
+ * ascii.c: (macro draw_line) Fixed capitalization.
+
+ * ascii.c, autorecode.c, cases.c, cmdline.c, command.c, common.c,
+ compute.c, count.c, data-in.c, data-list.c, data-out.c,
+ descript.q, dfm.c, display.c, do-if.c, error.c, expr-evl.c,
+ expr-opt.c, expr-prs.c, file-handle.q, file-type.c, filename.c,
+ formats.c, frequencies.q, get.c, getline.c, glob.c, groff-font.c,
+ hash.c, heap.c, include.c, inpt-pgm.c, lexer.c, list.q, loop.c,
+ main.c, mis-val.c, misc.c, modify-vars.c, numeric.c, output.c,
+ postscript.c, print.c, q2c.c, recode.c, rename-vars.c, repeat.c,
+ sample.c, sel-if.c, sfm-read.c, sfm-write.c, sfmP.h, som-frnt.c,
+ som-high.c, som-low.c, sort.c, split-file.c, sysfile-info.c,
+ temporary.c, title.c, tokens.h, val-labs.c, var-labs.c,
+ vars-atr.c, vars-prs.c, vector.c, vfm.c, weight.c: Marked strings
+ for internationlization.
+
+ * glob.c: [HAVE_LOCALE_H] Includes locale.h.
+
+Sun Jun 1 23:31:18 1997 Ben Pfaff <blp@gnu.org>
+
+ * do-if.c, sort.c, val-labs.c: Comment fixes.
+
+ * glob.c: (init_glob) Uncommented, updated i18n support.
+
+ * arena.c, ascii.c, data-in.c, descript.q, error.c, expr-evl.c,
+ expr-opt.c, expr-prs.c, filename.c, frequencies.q, groff-font.c,
+ output.c, postscript.c, sfm-read.c, som-high.c, vars-prs.c: Made
+ the declarations of macros taking arguments a lot nicer.
+
+Sun Jun 1 17:22:04 1997 Ben Pfaff <blp@gnu.org>
+
+ * error.h: Removed CE, CW aliases for SE, SW.
+
+ * q2c.c: Removed explicit streq() definition since it's duplicated
+ in str.h.
+
+ * approx.h, error.h, font.h, hash.h, misc.h, output.h, somP.h,
+ stats.h, str.h, tokens.h: Made the declarations of macros taking
+ arguments a lot nicer-looking of <pinard@iro.umontreal.ca>.
+ Comment fixes.
+
+Sun Jun 1 12:02:06 1997 Ben Pfaff <blp@gnu.org>
+
+ * cmdline.c: Comment fixes.
+ (pick_compat) Changed return type to int. Now, instead of setting
+ glob var `compat' to the emulation, returns the emulation. All
+ references changed.
+ (parse_command_line) Added terminating null to end of
+ `long_options' array definition.
+ (pre_syntax_message) Fixes.
+ (usage) Shows the default emulation in the syntax message by
+ calling pick_compat().
+
+ * getline.c: (getl_add_include_dir) Separates paths with
+ PATH_DELIMITER, not DIR_SEPARATOR.
+
+ * glob.c: (init_glob) Fixed references to DEFAULT_VER_PCP40,
+ DEFAULT_VER_WIN61, DEFAULT_VER_X40.
+
+ * output.c: (outp_configure_macro) Make earlier definitions for a
+ particular key override later ones for the same key.
+
+Fri May 30 19:40:49 1997 Ben Pfaff <blp@gnu.org>
+
+ * ascii.c: Comment fixes.
+
+ * output.c: (outp_get_paper_size)
+ s/STAT_OUTPUT_INIT_FILE/STAT_OUTPUT_PAPERSIZE_FILE/.
+
+Sun May 25 22:34:07 1997 Ben Pfaff <blp@gnu.org>
+
+ * ascii.c, postscript.c, sfm-read.c, sfm-write.c, sort.c: Include
+ <errno.h>. GNU libc 2 enforces this!
+
+ * command.c: (parse_cmd) Fixed problem with `else' clause being
+ paired with wrong `if'. Comment fix.
+
+Fri May 9 16:53:52 1997 Ben Pfaff <blp@gnu.org>
+
+ * getline.c: [!HAVE_LIBREADLINE] (read_console) Changed
+ blp_getline() to getline().
+
+ * output.c: (outp_eval_dimension) Changed the fix from last time;
+ there was no variable `a'.
+
+ * q2c.c: (get_line) Fixed boundary condition overrun bug.
+
+Mon May 5 21:58:22 1997 Ben Pfaff <blp@gnu.org>
+
+ * output.c: (outp_evaluate_dimension) Fixed handling of negative
+ numbers having fractional parts. Added case of a fraction without
+ a whole-number part.
+
+Fri May 2 22:08:05 1997 Ben Pfaff <blp@gnu.org>
+
+ * ascii.c: (ascii_text_get_font_position) Removed.
+
+ * expr.h, exprP.h: Disabled debugging.
+
+ * groff-font.c, postscript.c: Changed `groff' to `Groff' in
+ several places.
+
+ * output.h: (struct outp_class_struct) Removed
+ text_get_font_position method. All references deleted.
+
+ * postscript.c: Big change here. Fontmaps were completely
+ eliminated because of a change in philosophy. Comment fixes.
+ (struct ps_fontmap, ps2dit_map, font_family, dit2family_map)
+ Removed.
+ (struct ps_driver_ext) `position', `fontmap', `prop_name',
+ `fixed_name' members removed. New members `prop_family',
+ `fixed_family'. `family' member changed to type char *.
+ (static var ps_fontmaps) Removed.
+ () Removed.
+ (ps_init_driver) Removed obsolete references, updated.
+ Initializes `translate_x', `translate_y', `scale'. Doesn't read
+ fontmap, of course. Refers to font names through internal_name
+ rather than subversive means. Frees proper items.
+ (static var option_tab[]) Removed `fontmap-file' option; renamed
+ `fixed-font', `prop-font'.
+ (ps_option) Corresponds to option_tab[].
+ (read_fontmap, release_fontmap, ps_to_dit, compare_ps2dit,
+ hash_ps2dit, compare_dit2family, hash_dit2family, compare_family,
+ hash_family) Removed.
+ (postopen) Generates font names from family names. Gets
+ PostScript font name properly. New prologue file comment `!!!'
+ style.
+ (ps_open_page) Adds translate_x, translate_y to BP prologue
+ function; gives SF argument floating-point format.
+ (ps_text_set_font_by_name) Doesn't try to map PostScript->Groff
+ font name. Doesn't change font family.
+ (ps_text_set_font_by_position) Generates Groff font name from font
+ family name instead of through table lookup.
+ (ps_text_set_font_by_family) Renamed `ps_text_set_font_family',
+ all references changed. Reduced to simple string assignment.
+ (ps_get_font_name) Removed.
+ (ps_get_font_family) Reduced to string return.
+ (text) Doesn't save `position' since it no longer exists. Ugly
+ kluge to save font family--fix soon?
+ (load_font) Removed PostScript name argument.
+
+Thu May 1 14:58:59 1997 Ben Pfaff <blp@gnu.org>
+
+ * postscript.c: Comment fix.
+ (ps_open_page) Puts scale factor in PostScript output.
+
+Sat Apr 26 11:49:32 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Distcleans q2c.
+
+Wed Apr 23 21:33:48 1997 Ben Pfaff <blp@gnu.org>
+
+ * ascii.c: (delineate) Sets text size even if width is zero.
+
+ * command.c: Comment fix.
+ (static var cmd_table[]) Re-enabled EVALUATE command.
+ (parse_cmd) Lotsa comment fixes. Fixed infinite loop in parsing
+ of comments in script files. Now more liberal on criteria for
+ performing a state transition--if *anything* happened correctly,
+ not just if *everything* happened correctly.
+
+ * data-out.c: (convert_F) Comment fix. Why in the fsck does
+ Checker segfault on formatting large numbers and why in the fsck
+ hadn't I noticed this before?
+
+ * expr.h, exprP.h: No longer turn off GLOBAL_DEBUGGING.
+
+ * list.q: (cmd_list) Commented out the actual output routine
+ because of various problems. Probably will abandon the idea of
+ using the general `crushed tables' for the LIST procedure.
+
+ * temporary.c: (restore_dictionary) Sets var_by_name to NULL after
+ clearing it. Allocates a new var_by_name dictionary before trying
+ to add members to it.
+
+ * vars-atr.c: [DEBUGGING] (dump_one_var_node) Removed argument
+ `sib'. Changed type of `node' argument.
+ [DEBUGGING] (dump_var_tree) Replaced avlwalk() with
+ avl_walk_inorder().
+ (clear_variable) Only dumps the var tree if var_by_name non-NULL.
+ [DEBUGGING] Only deletes the variable from var_by_name if that var
+ non-NULL.
+
+Fri Apr 18 16:48:41 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Added include files to SOURCES. Added
+ frequencies.q to EXTRA_DIST. Removed include/ from INCLUDES. Now
+ includes rules for q2c. Added `boast' target.
+
+Fri Apr 18 15:42:22 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Maintainer-clean Makefile.in.
+
+ * Makefile.am: Fixed redundant EXTRA_DIST line.
+
+ * ascii.c: Comment fixes.
+ (ascii_line_vert) Fixed overly aggressive range check.
+
+ * display.c: Removed dead code.
+
+ * list.q: Turn debugging on.
+ (flush_table) New debug code.
+
+ * sfm-read.c: (read_value_labels) malloc's the structure before
+ trying to assign to its members.
+
+ * sfm-write.c: Comment fix.
+
+ * som-high.c: (som_submit_table) Sets som.t and som.d on each call
+ to output_table().
+ (output_table) No arguments anymore--gets them through `som'
+ global. New debug code. In crushed tables, now sets `htv' as
+ well as `hv' to avoid bad confusion later.
+ (dump_crush_page) New debug code.
+
+ * som-low.c: (som_dump_crush_page) New debug code.
+
+Thu Mar 27 01:11:29 1997 Ben Pfaff <blp@gnu.org>
+
+ All source files: Broke long lines into multiple lines.
+
+ * ascii.c: (ascii_close_page) Uses host_system var in place of
+ HOST_SYSTEM constant.
+
+ * cmdline.c: (var syntax_message[]) Broke into
+ pre_syntax_message[] and post_syntax_message[].
+ (usage) Outputs both parts, separated by driver list.
+
+ * error.h: Fixed broken formatting.
+
+ * expr-opt.c: (str_search, str_rsearch) New functions.
+
+ * misc.c: (blp_getdelim) Removed. All references changed to
+ `getdelim'.
+ (str_search, str_rsearch) Removed.
+ (memrmem) New function.
+
+ * misc.h: (blp_getline) Removed. All reference changed to
+ `getline'.
+
+ * stat.h: New file.
+
+ * filename.c: Includes "stat.h", not <sys/stat.h>.
+ (blp_getenv) Uses host_system var instead of HOST_SYSTEM constant.
+
+ * output.c: (outp_list_classes) Changed output formatting.
+
+ * sfm-write.c: (write_header) Uses host_system var instead of
+ HOST_SYSTEM constant.
+ (write_rec_7_34) Extracts version numbers from the version string.
+ Untested.
+
+ * sort.c: Includes "stat.h", not <sys/stat.h>.
+
+ * str.c: (strcasecmp) Removed.
+
+ * title.c: (cmd_document) Uses host_system var instead of
+ HOST_SYSTEM constant.
+
+ * version.c: Generated on-the-fly by the Makefile instead of being
+ static.
+
+ * str.h: Comment fixes. Doesn't substitute for missing memmove or
+ memcpy.
+ [!HAVE_STRNCASECMP] Declares strncasecmp().
+
+ * version.h: Removed stray character. Comment fixes.
+ (vars host_system, build_system) New vars.
+
+Mon Mar 24 21:47:31 1997 Ben Pfaff <blp@gnu.org>
+
+ * Most source files: Changed formatting of copyright notice; fixed
+ FSF address; reformatted to better conform to GNU standards;
+ comment fixes. Added markups to prevent GNU indent from messing
+ up my beautiful formatting :-).
+
+ * q2c.c: (get_line) Ignores lines that begin with `/* *INDENT' so
+ that GNU indent markups can be passed through without problems.
+
+Wed Feb 19 21:30:31 1997 Ben Pfaff <blp@gnu.org>
+
+ * get.c: Turned off debugging.
+
+ * glob.c: (init_glob) Turned on save-file compression by default.
+
+ * sfm-write.c: (sfm_write_case) Fixed bug which resulted in less
+ compression than was possible in save files.
+
+Sun Feb 16 20:57:20 1997 Ben Pfaff <blp@gnu.org>
+
+ * data-out.c: (convert_F) Comment fixes. Debug message fixes.
+
+ * frequencies.q: Removed Fiasco extensions. Updated calculation
+ algorithms. Polished output format.
+ (struct frq_info_struct) Removed members `max_degree', `min_n',
+ all references removed.
+ (macro frq_extensions) Removed.
+ (static vars min_n, max_degree) Removed, all references removed.
+ (internal_cmd_frequencies) Doesn't handle extensions. Doesn't
+ calculate `min_n', `max_degree'.
+ (postcalc) Passes new arg to dump_statistics().
+ (dump_full) Honor NOLABEL option. Buggy? Adds variable name
+ title.
+ (dump_condensed) Adds variable name title.
+ (sum_freqs) Removed.
+ (calc_stats) Updated calculation algorithm.
+ (dump_statistics) Removed warning for too-few observations.
+ Changed table formatting. Adds variable name title if passed new
+ arg is nonzero.
+
+ * output.h: Comment fix.
+
+ * recode.c, sample.c, sort.c: Disabled debug code.
+
+ * som-frnt.c: (som_set_value, som_set_float, som_set_text)
+ Improved debug code.
+
+ * var.h: (enum series frq_*) Removed Fiasco extensions.
+
+Sat Feb 15 21:26:53 1997 Ben Pfaff <blp@gnu.org>
+
+ * command.c: Added PROCESS IF to command table.
+
+ * Lots & lots of places, removed checks for NULLs preceding calls
+ to free_expression(), which itself checks.
+
+ * descript.q: Removed Fiasco extensions. Removed optimizations
+ for non-weighted active files. Implemented some options.
+ Finished polishing output format. Comment fixes. Merged
+ `descript.g'.
+ (static vars n_glob_miss_list, n_glob_valid, n_glob_missing,
+ max_degree, min_n) Removed.
+ (macro dsc_extensions) Removed.
+ (struct dsc_info_struct) Removed `min_n' member, all references
+ fixed.
+ (internal_cmd_descriptives) Removed calculation of min_n,
+ max_degree. Only deals with one `calc' routine instead of two
+ flavors.
+ (precalc) Eliminated redundancy. Updated for changes to
+ descriptives_proc structure.
+ (calc) Moved here from `descript.g'. Rewritten to calculate
+ statistics via `moments about the mean' rather than by summing,
+ summing squares, summing cubes, and so on.
+ (postcalc) Rewritten for new-style statistical calculation.
+ (display) Removed support for displaying variables across rows.
+ No longer crushes the descriptives table. Removed ancient code.
+ Added display of N, by variable and listwise.
+
+ * descript.g: Removed; merged into `descript.q'.
+
+ * expr-evl.c: (evaluate_expression) Now returns a double. For
+ numeric results, it returns the result as well as storing it in
+ the passed `value' structure if non-NULL. For string results it
+ just returns 0.0 and it must be passed non-NULL. Many references
+ to this function were optimized by use of this change, especially
+ but not exclusively in `compute.c'.
+
+ * frequencies.g: Comment fix.
+
+ * glob.c: (glob var process_if_expr) New global var.
+
+ * postscript.c: (static var option_tab[]) Corrected entry for
+ `fixed_size'.
+ (postopen) Sets x->size to x->prop_size.
+ (ps_text_set_font_by_name) Sets font size as well as typeface for
+ PROP and FIXED fonts.
+
+ * sel-if.c: (cmd_process_if) New function.
+
+ * sfm-write.c: (struct sfm_fhuser_ext) New member `n_cases'.
+ (sfm_write_dictionary) Sets `n_cases' to 0.
+ (sfm_write_case) Increments `n_cases'.
+ (sfm_close) Attempts to seek the system file back to the header
+ and write the number of cases in its proper slot.
+
+ * som-frnt.c: (som_insert_table) Masks off expansion options since
+ only SOPT_X_NORM seems to work sensibly.
+
+ * som-low.c: (get_cell_size) Fixed bug when a table cell was sized
+ with a `fixed' value of 2.
+
+ * sort.c: (cmd_sort_cases) Cancels PROCESS IF.
+
+ * sysfile-info.c: (cmd_sysfile_info) Doesn't display more than 10
+ value labels; uses SOPT_NONE instead of SOPT_X_BOTH.
+
+ * var.h: (enum series dsc_*) Removed Fiasco extensions.
+ (struct descriptives_proc) Removed `miss_noweight'; new members
+ `X_bar', `M2', `M3', `M4', `min', `max'.
+
+ * vars-atr.c: (discard_variables) Cancels PROCESS IF.
+
+ * vfm.c: (close_active_file) Cancels PROCESS IF.
+ (write_case) Doesn't process cases unselected by PROCESS IF.
+
+Fri Feb 14 23:32:58 1997 Ben Pfaff <blp@gnu.org>
+
+ * glob.c: (glob var err) Removed.
+
+ * sysfile-info.c: (cmd_sysfile_info) When adjusting table size,
+ doesn't have to take into account number of value labels since
+ they're in a subtable anyway. Also, doesn't display more than 10
+ value labels since we can't yet break pages in subtables.
+
+Tue Feb 4 15:15:50 1997 Ben Pfaff <blp@gnu.org>
+
+ * som-frnt.c: (som_change_table_size) Simple change for elegance
+ that shouldn't change behavior.
+ (som_set_value) Comment fix.
+
+ * som-high.c: (som_submit_table) Message fix.
+
+Wed Jan 22 21:54:00 1997 Ben Pfaff <blp@gnu.org>
+
+ * command.c: Added SYSFILE INFO to command table.
+
+ * file-handle.q: (fh_handle_filename) New function.
+
+ * get.c: (save_trns_proc) Fixed a bug in padding of output data
+ with spaces.
+
+ * main.c: (parse) New return value for command functions, -3.
+
+ * misc.h: Comment fix.
+
+ * output.h: Comment fixes.
+ (macro COMPONENTS) Removed.
+
+ * postscript.c: (write_text) Modified literal_chars[] so that `('
+ and ')' are not written to the output in strings as literals.
+
+ * sfm-read.c: (sfm_read_dictionary) New argument.
+ (read_header) New argument. Sets the information structure's
+ values from the header information.
+ (read_variables) [__CHECKER__] Redefines isalnum()--some sort of
+ bizarre Checker problem, I guess.
+ (read_variables) Proper cleanup on lossage.
+
+ * sfm.h: (struct sfm_read_info) New struct for use by
+ sfm_read_dictionary().
+
+ * som-frnt.c: (som_create_table) New argument CREATE_FLAGS,
+ currently used just for tables that can be dynamically resized and
+ thus have to be allocated with arena_malloc() instead of
+ arena_alloc(). All references changed.
+ (som_change_table_size) New function.
+ (som_insert_table) Bugfix: now inserts `cell', not `c'!
+
+ * som-high.c: [GLOBAL_DEBUGGING] (check_table) Moved to som-low.c.
+ (som_submit_table) [GLOBAL_DEBUGGING] Doesn't call check_table()
+ any more.
+
+ * som-low.c: (draw_cell) Calls draw_table_cell() for SCON_TABLE
+ cells.
+ (draw_intersection) Now takes an argument specifying the table in
+ question. All references changed.
+ (draw_table_cell) New function.
+ (som_get_table_size) [GLOBAL_DEBUGGING] Calls check_table().
+ (som_get_table_size) Many nice new explanatory comments.
+ [GLOBAL_DEBUGGING] (check_table) Moved here from som-high.c.
+
+ * som.h: New enum series SOM_CREATE_* for use as create flags with
+ som_create_table().
+
+ * str.h: Moved a comment here from TODO.
+
+ * sysfile-info.c: New file. Reference implementation.
+
+Sun Jan 19 14:22:11 1997 Ben Pfaff <blp@gnu.org>
+
+ * command.c: Added RENAME VARIABLES to table of commands.
+
+ * data-in.c: (dls_error) Sets `cust_field'.
+ (parse_N) Message fix.
+ (parse_day_count) New function.
+ (to_roman) Never outputs VX as a `short form' of V.
+ (parse_month) Fixed parsing of Roman numerals.
+ (parse_trailer) Message fix.
+ (parse_DATE, parse_ADATE, parse_EDATE, parse_SDATE, parse_JDATE,
+ parse_QYR, parse_MOYR, parse_WKYR, parse_DTIME) Issue a message if
+ the date is invalid.
+ (parse_SDATE) Fixed swapped day, year.
+ (parse_JDATE) Fixed bug for dates in 1582.
+ (parse_DTIME) Allows days not between 1 and 31.
+ (parse_numeric) Makes local copy of f.type for easier usage.
+ FMT_DOLLAR fixed.
+
+ * data-out.c: (convert_F) When outputting as scientific, properly
+ sets f.type as fp->type.
+ (insert_commas) Fixed operator precedence problem with setting of
+ nitems. Changed strcpy to memcpy (no null terminator).
+ (convert_date) Fixed FMT_JDATE: added 1900 to year.
+ (convert_CCx) Essentially rewritten, but now it works.
+
+ * display.c: (cmd_display) Added DISPLAY FILE LABEL (undocumented
+ feature of Fiasco).
+ (display_documents) Implemented.
+
+ * error.c: (glob var cust_field) New var.
+ (vmsg) Displays cust_field as part of message classes DE and DW.
+
+ * formats.c: (debug_print) Fixed to compile under updated
+ dictionary format.
+
+ * get.c: (cmd_get, cmd_save_internal) Close file handle on
+ failure.
+
+ * misc.c: (parse_format_specifier) Formatting fix.
+
+ * modify-vars.c: (struct var_modification) Renamed `n_reorder' as
+ `n_rename' for clarity.
+ (cmd_modify_vars) Initializes `forward' and `positional' at
+ appropriate times. Frees lists of vars to rename on failure.
+ Comment fix. Frees memory on success.
+ (rearrange_dict) Simplified `for' loop condition.
+
+ * rename-vars.c: New file (reference implementation).
+
+ * set.q: (internal_cmd_set) Fixed `emu' test condition.
+
+ * sfm-read.c: (read_header) File label is created only if file
+ label in file is not blank.
+ (read_variables) Initializes `dict' local variable.
+ (read_documents) Proper behavior on lossage.
+
+ * sfm-write.c: (write_header) Doesn't blank out the file label
+ (why was this here to begin with?!)
+
+ * temporary.c: (save_dictionary) File label is copied only if
+ non-NULL. Doesn't try to xstrdup() dictionary documents.
+ Adapted so as to not irritate Checker.
+ (free_dictionary) Only destroys var_by_name if non-NULL.
+
+ * title.c: (cmd_file_label) Doesn't skip FILE, LABEL tokens.
+ (cmd_document) Doesn't skip DOCUMENT token. Adds some header
+ lines to the document, indents the document. Also, it works now.
+ (add_document_line) New function.
+
+ * var.h: (struct dictionary) Reordering.
+
+ * vars-prs.c: (parse_variables) On lossage, only local_free()'s
+ bits if it was allocated to begin with.
+
+Thu Jan 16 13:08:57 1997 Ben Pfaff <blp@gnu.org>
+
+ * command.c: Added MODIFY VARS to list of commands.
+
+ * configure.in: Updated custom macros for autoconf 2.12. Removed
+ mmap reference; fixed termcap library reference.
+
+ * display.c: (display_variables) Fixed a few bugs although it's
+ still not well written.
+
+ * error.c: [!__CHECKER__] (chkr_disp_call_chain) New function.
+ (induce_segfault) Calls chkr_disp_call_chain() instead of
+ inducing an actual SIGSEGV.
+
+ * expr-opt.c: (evaluate_tree) Swapped order of arguments to
+ str_search() and str_rsearch(). Fixed tests for matches on
+ OP_INDEX and OP_RINDEX.
+
+ * filename.c: (good_getcwd) Removed as the new libc for Checker
+ doesn't contain this bug, apparently.
+
+ * misc.c: (str_search, str_rsearch) Changed order of arguments for
+ consistency with GNU memmem.
+ (blp_getdelim) Changed `len' from `int' to `size_t'.
+
+ * modify-vars.c: Reference implementation.
+
+ * som-frnt.c: (zero_length) New global var.
+ (som_create_table) Message fix.
+
+ * som.h: Added gcc attributions to som_set_text(),
+ som_output_text() prototypes. blank_line() refers to
+ zero_length[] instead of a literal null string to suppress gcc
+ warnings.
+
+ * sort.c: (do_external_sort) Fixed fencepost error on lossage.
+ (allocate_cases) Decrements x_max so the last element of x[] can
+ be used by the algorithm.
+
+ * var.h: Changed minor details of `variable' declaration.
+ (struct modify_vars_proc) New struct.
+ (struct variable) Added field p.mfv.
+
+ * vars-atr.c: Comment fix.
+
+ * vars-prs.c: (fill_all_vars) More optimal implementation.
+
+ * vfm.c: (dump_splits) Sets the last byte of temp_buf to a null
+ character, which it shouldn't have to do but printf() seems to
+ read the null byte even though I supply a maximum length...
+
+Fri Jan 10 20:22:08 1997 Ben Pfaff <blp@gnu.org>
+
+ * command.c: Removed command alias X for QUIT.
+ (parse_cmd) Fixed comment parsing.
+
+ * dfm.c: (struct dfm_fhuser_ext) Fields `len', `size' are now of
+ type size_t.
+ (read_record) Fixed references to len, size.
+ (dfm_get_record) Restructured.
+
+ * file-handle.h: (struct file_handle) Field `lrecl' now of type
+ size_t.
+
+ * file-handle.q: (internal_cmd_file_handle) Checks for nonpositive
+ record length.
+
+ * modify-vars.c: New file. Not complete.
+
+ * set.q: (set_ccx) Fixed operator precedence problem regarding ^
+ and ==.
+
+ * sfm-read.c: (bswap_flt64, read_header, write_variable) Fixed
+ problems caused by int/size_t differences.
+
+ * sort.c: (output_record, merge_once) Cast `size_t's to `int's in
+ appropriate spots.
+
+ * str.c: (strcasecmp) Fixed bug that cropped up when the strings
+ being compared were of equal length.
+
+Thu Jan 2 19:08:23 1997 Ben Pfaff <blp@gnu.org>
+
+ * command.c: Added DOCUMENT, DROP DOCUMENTS, FILE LABEL.
+
+ * lexer.c: (get_dotted_rest_of_line) New function.
+
+ * sel-if.c: (cmd_filter) Cannot choose string or scratch variables
+ as filters.
+
+ * sfm-read.c: (sfm_read_dictionary) Calls read_documents() to read
+ type 6 records. Frees the dictionary properly.
+ (read_header) Initializes the dictionary instead of letting
+ read_variables() do it. Sets the dictionary file label from the
+ system file.
+ (read_documents) New function.
+
+ * sfm-write.c: (sfm_write_dictionary) Calls write_documents() to
+ write type 6 record if appropriate.
+ (write_header) Writes file label from dictionary.
+ (write_documents) New function.
+
+ * temporary.c: (save_dictionary, restore_dictionary,
+ free_dictionary) Properly handle new fields in dictionary struct.
+
+ * title.c: (get_title) Returns after failure().
+ (cmd_file_label, cmd_document, cmd_drop_documents) New functions
+ for new commands FILE LABEL, DOCUMENT, DROP DOCUMENTS. Untested.
+
+ * var.h: (struct dictionary) New fields `label', `n_documents',
+ `documents'.
+
+Wed Jan 1 22:08:10 1997 Ben Pfaff <blp@gnu.org>
+
+ * command.c: Added FILTER to list of commands.
+
+ * frequencies.g: [WEIGHTING] Removed test for weighting!=-1 since
+ it's always true.
+
+ * get.c: (cmd_save_internal) Removed weighting code since it's now
+ handled by sfm-write.c. Properly commented out debug code.
+
+ * glob.c: (glob var weighting) Removed.
+
+ * sel-if.c: Comment fixes.
+ (cmd_filter) New function.
+
+ * sfm-read.c: (struct sfm_fhuser_ext) New field `weight_index'.
+ (sfm_read_dictionary) Sets weighting variable direct in the
+ created dictionary now. (Apparently we previously didn't support
+ weighting on GET?)
+ (read_header) Sets weight_index field in sfm_fhuser_ext from
+ header read from disk.
+
+ * sfm-write.c: (sfm_write_dictionary) Comment fix.
+ (write_header) Now sets the weighting in the header from the
+ passed primary dictionary instead of from the sfm_write_info.
+
+ * sfm.h: (struct sfm_write_info) Removed field `weight'.
+
+ * som-high.c: (dump_crush_table) Fixed a couple of assertions that
+ broke on boundary conditions.
+
+ * var.h: (struct dictionary) New fields `weight_var',
+ `weight_index', and `filter_var'.
+ (glob var weighting) Removed. This is now part of struct
+ dictionary. All references changed; the less mechanical changes
+ are described above.
+
+ * vars-atr.c: (find_dict_variable) New function.
+
+ * vfm.c: (static var filter_index) New variable.
+ (open_active_file) Initializes filter_index from default_dict.
+ (write_case) Calls proc_func() only if the filter variable is
+ nonzero; this implements FILTER behavior.
+
+ * weight.c: (static var weight_varname) Removed.
+ (cmd_weight) Modified default_dict instead of glob vars.
+ (update_weighting) Changed the signature to modify a dictionary
+ instead of glob vars. Now returns the weighting variable.
+ (get_weighting_variable) Removed; its function is absorbed by
+ update_weighting().
+ (stop_weighting) Operates on a dictionary now.
+
+Wed Jan 1 17:00:59 1997 Ben Pfaff <blp@gnu.org>
+
+ * sort.c: Removed debugging info from messages.
+ (do_external_sort) Cleans up after itself by deleting the
+ temporary directory on failure. (On success it is deleted by the
+ input program.)
+ (allocate_cases) Removed debug code. Added clean up code.
+ (output_record) Removed debug code.
+ (merge) Added code to close all the input files that are currently
+ open. This is a likely location for bugs, because I'm not sure
+ about boundary conditions. Removed an unnecesary heap_delete().
+ (merge_once) Removed input file "optimization" that in fact
+ screwed up the rest of the code. Message and comment fixes.
+
+Sun Dec 29 21:36:48 1996 Ben Pfaff <blp@gnu.org>
+
+ * error.c: [__CHECKER__] (induce_segfault) Flushes output streams.
+
+ * heap.c: (heap_delete) New argument.
+
+ * sort.c: Finished implementation of external sort.
+
+ * vfm.c: (read_from_disk) Returns after a disk error.
+
+Sun Dec 22 23:10:39 1996 Ben Pfaff <blp@gnu.org>
+
+ * sort.c: (static var state) Removed.
+ (static vars max_handles, tmp_basename, tmp_extname,
+ huffman_queue) New variables.
+ (do_external_sort) Moved most code to new functions.
+ Creates huffman_queue.
+ (allocate_file_handles, allocate_cases) New functions.
+ (static vars run_no, run_length, file_index, case_count) New
+ variables.
+ (output_record) Returns success. Now really writes to the output
+ file.
+ (begin_run, end_run) New functions.
+ (write_initial_runs) Returns success. Initializes run_no to -1.
+ Calls begin_run(), end_run() at appropriate times. Outputs debug
+ messages.
+ (write_to_sort_cases) Calls begin_run(), end_run() at appropriate
+ times.
+ (merge) New function.
+
+ * heap.c, heap.h: New files. Hopefully in near-final form.
+
+Sat Dec 21 21:51:04 1996 Ben Pfaff <blp@gnu.org>
+
+ * glob.c: Added write_active_file to global vars.
+
+ * sort.c: Several new miscellaneous static variables.
+ (cmd_sort_cases) Big comment fix.
+ (perform_case_2) Renamed `do_external_sort' and completely
+ rewritten.
+ (case_2_proc_func) Removed.
+ (output_record, write_initial_runs, write_to_sort_cases,
+ compare_record) New functions.
+
+ * vfm.c: [DEBUGGING] (index_to_varname) Excised bit rot.
+
+Tue Dec 17 18:57:59 1996 Ben Pfaff <blp@gnu.org>
+
+ * sort.c: (perform_case_2) Changed the method for allocation of
+ lots of memory--now allocates one case at a time in hopes that
+ more cases can be allocated with heavily fragmented memory.
+
+ * var.h: (write_active_file) New global var.
+
+ * vfm.c: (procedure, close_active_file, write_case,
+ SPLIT_FILE_procfunc) Now allow beginfunc, procfunc, and endfunc
+ arguments to procedure() to be NULL. All references to
+ procedure() that made use of dummy functions were changed to NULL
+ functions.
+ (open_active_file) If write_active_file is non-NULL, the output
+ device becomes DEV_PGM (a new enum).
+ (close_active_file) Sets write_active_file to NULL.
+ (read_from_memory) Comment fix.
+ (record_case) Calls write_active_file() when the output device is
+ DEV_PGM.
+
+Sun Dec 15 15:32:16 1996 Ben Pfaff <blp@gnu.org>
+
+ * sort.c: New file.
+
+ * autorecode.c: (cmd_autorecode) Fixed parsing of options.
+ Fixed checking for duplicate varnames.
+ (recode) xmalloc()'s the transformation instead of arena_alloc()'ing
+ it.
+ (autorecode_trns_free) Destroys hash tables for each recoding
+ specification.
+ (autorecode_proc_func) Compares NULL to *vpp instead of vpp.
+
+ * command.c: Added SORT CASES to cmd_table.
+ (null_func, null_int_func) Prototyped.
+
+ * descript.g: (calc_weight, calc_noweight) Computes own case
+ number now.
+
+ * frequencies.q: (dump_statistics) Fixed problem with
+ too-few-cases warning message.
+
+ * get.c: (cmd_save_internal) Handles weighting properly.
+
+ * hash.c: (hsh_dump) Output format changed.
+ (force_hsh_insert) Actually works now, prototype changed.
+
+ * list.q: (static var case_num) New variable.
+ (cmd_list) Initializes case_num.
+ (list_cases) Increments case_num.
+
+ * var.h: Added definitions for SORT CASES. Comment fixes.
+
+ * vfm.c: Some definitions moved to new file vfmP.h. Comment
+ fixes. `active' renamed vfm_active, `rep' renamed
+ vfm_replacement, all references changed.
+ (procedure) The procfunc no longer receives a case number. All
+ references changed.
+ (write_case) Subtle reordering.
+ (SPLIT_FILE_procfunc) Counts cases differently. Slightly less
+ redundant.
+
+ * weight.c: (get_weighting_variable) New function.
+
+ * vfmP.h: New file with definitions from vfm.c.
+
+Sat Dec 14 10:35:30 1996 Ben Pfaff <blp@gnu.org>
+
+ * command.c: (FILE_TYPE_okay) Commented out some tests because
+ they're clumsy and not yet needed.
+
+ * var.h: Most *_trns structures moved to their respective source
+ files. Some were moved into a new file, do-ifP.h. Comment fixes.
+ (union any_trns) Changed to a typedef for trns_header.
+ (struct input_program_pgm) Removed.
+
+ * vars-prs.c: (parse_variables) Only local_free()'s bits if it
+ was allocated in the first place.
+
+Fri Dec 13 21:30:53 1996 Ben Pfaff <blp@gnu.org>
+
+ * autorecode.c: New file.
+
+ * command.c: Added AUTORECODE to command table; re-enabled SET.
+
+ * data-out.c: (convert_F) Handles infinities and NaNs properly.
+
+ * error.c: (vmsg) Comment fixes.
+
+ * hash.c: Comment fix.
+ (hashpjw_d) New function.
+ (hashpjw) Reimplemented as call to more general function
+ hashpjw_d().
+ (internal_comparison_fn) Initializes pointers properly.
+ (hsh_sort) [GLOBAL_DEBUGGING] New debugging code.
+ (force_hsh_insert, force_hsh_find) New debugging wrapper
+ functions.
+
+ * main.c: (main) Message fix.
+
+ * output.c: (outp_read_devices) Message fix.
+
+ * set.q: Comment fixes.
+ (custom_results) Implemented Wnd/X form of subcommand.
+ (set_routing) New function.
+ (internal_cmd_set) Implemented ERRORS, MESSAGES.
+
+ * settings.h: (SET_ROUTE_*) New enum series.
+ (set_results) Renamed set_results_file, all references changed.
+ (set_messages) Removed.
+ (glob vars set_errors, set_messages, set_results) New vars.
+
+ * title.c: (get_title) Remembers to xstrdup() the result of
+ get_rest_of_line().
+
+ * var.h: (arc_item, arc_spec, autorecode_trns) New structures for
+ use by AUTORECODE.
+ (union any_trns) New element `arc'.
+
+Fri Dec 6 23:53:47 1996 Ben Pfaff <blp@gnu.org>
+
+ * command.c: (output_line) Removed references to set_screen.
+
+ * error.c: (static var terminating) New var.
+ (hcf) Sets terminating to 1.
+ (vmsg) If terminating is nonzero, does not attempt to call hcf().
+ This prevents an infinite loop if an error occurs within hcf().
+
+ * expr-evl.c: (evaluate_expression) [__CHECKER__] Replaced case
+ statement circumlocution with `case 42000' trick.
+ (evaluate_expression) New support for OP_STR_MIS.
+
+ * expr-opt.c: (evaluate_expression) [__CHECKER__] Replaced case
+ statement circumlocution with `case 42000' trick.
+ (dump_node) Handles OP_STR_MIS.
+
+ * expr-prs.c: (MISSING_func, SYSMIS_func) Rewrote to handle string
+ variables exceptions.
+ (parse_function) Message fix.
+ (ops[]) Added OP_STR_MIS.
+
+ * expr.h: Added OP_STR_MIS to OP_* enum. Comment fixes.
+
+ * exprP.h: [__CHECKER__] Removed case statement circumlocution.
+
+ * glob.c: Removed set_scrnfile glob var.
+ (init_glob) set_errorbreak set to 0 by default.
+
+ * groff-font.c: Changed included files.
+ (groff_read_font) Initializes font_arena local var correctly.
+ (default_font) New function.
+
+ * output.c: Comment fixes.
+ (glob var disabled_devices) New variable.
+ [GLOBAL_DEBUGGING] (static var iterating_driver_list) New
+ variable.
+ [GLOBAL_DEBUGGING] (reentrancy) New function.
+ [GLOBAL_DEBUGGING] (outp_read_devices, outp_done, find_driver,
+ outp_iterate_enabled_drivers) Calls to reentrancy().
+ (destroy_list) New function.
+ (outp_done) Moved code to destroy_list().
+ (parse_options) Parses `listing', `screen', `printer' options
+ internally.
+ (configure_driver) Sets new `device' member of driver.
+ (outp_iterate_enabled_drivers, outp_enable_device) New functions.
+
+ * output.h: Comment fixes. New enum series OUTP_DEV_*.
+ (struct outp_driver_struct) New member `device'.
+
+ * postscript.c: (find_encoding_file) Doesn't display its own error
+ messages.
+ (default_encoding) New function.
+ (switch_font) Calls default_encoding() if no encoding can be
+ found.
+ (text) Makes up a character metric if none exists for the desired
+ character.
+ (load_font) Properly copies a fallback filename. Calls
+ default_font() for a font if none at all are known.
+
+ * set.q: Comment fixes. Removed OUTPUT subcommand.
+ (custom_listing) Calls outp_enable_device() to enable/disable
+ listing device.
+ (turn_screen_on) Removed.
+ (internal_cmd_set) Calls outp_enable_device() to enable/disable
+ screen, printer devices.
+
+ * settings.h: Comment fixes.
+ (glob vars set_output, set_printer, set_screen, set_scrnfile)
+ Removed.
+
+ * som-high.c: (som_submit_table, som_eject_page) Use
+ outp_iterate_enabled_drivers() instead of iterating
+ outp_driver_list directly.
+
+Wed Dec 4 21:34:17 1996 Ben Pfaff <blp@gnu.org>
+
+ * data-in.c: (parse_EDATE, parse_SDATE) New functions.
+ (parse_string_as_format) Handles new formats.
+ (parse_numeric) Now handles DOT and PCT formats.
+
+ * data-out.c: (convert_E, convert_F, insert_commas) Handle DOT
+ format now.
+ (convert_date) Handle EDATE and SDATE formats.
+ (convert_CCx) Now if there's not room for the currency characters,
+ converts it as F format if it's positive instead of giving up
+ quickly. Also fixed save-and-restore bug with decimal point
+ characters.
+ (convert_format_to_string) Handles new formats.
+
+ * misc.c: (formats[]) Added new formats.
+ (convert_fmt_ItoO) Supports new formats.
+
+ * sfm-read.c: (parse_format_spec) Supports new formats. Better
+ data checking. New argument, all references changed.
+
+ * sfm-write.c: (write_format_spec) Supports new formats.
+
+ * var.h: New formats FMT_DOT, FMT_PCT, FMT_EDATE, FMT_SDATE.
+ Comment fixes.
+
+Sun Dec 1 17:19:00 1996 Ben Pfaff <blp@gnu.org>
+
+ * cmdline.c: Comment fixes.
+ (parse_command_line) Changed return type to void.
+
+ * data-in.c: (parse_string_as_format) Added FMT_CCA...FMT_CCE to
+ switch.
+ (parse_numeric) Handles international numbers (comma as decimal
+ point). Some reformatting.
+
+ * data-list.c: (parse_free) Default output format is now
+ set_format instead of hard-coded F8.2.
+ (read_from_data_list_list) Emits error message on undefined data
+ only if set_undefined is nonzero.
+
+ * data-out.c: (convert_E) Changes decimal point from period to
+ comma if appropriate. Restructured. Better comments.
+ (convert_F) Changes decimal point from period to comma if
+ appropriate.
+ (insert_commas) Major bug with handling of negative values fixed.
+ Also, inserts periods instead of commas if appropriate.
+ (convert_CCx) New function.
+ (convert_format_to_string) Added FMT_CCA...FMT_CCE to switch.
+ (num_to_string) Changed `.' to set_decimal.
+
+ * dfm.c: Comment fixes.
+ (dfm_close) Frees ext->line even in inline_file.
+ (open_inline_file) New function.
+ (open_file_r) When opening the inline file: now properly
+ recognizes `BEGIN DATA.' line, and calls open_inline_file() to
+ finish up.
+ (read_record) Calls fh_close_handle() instead of dfm_close() to
+ close the inline file. Makes a copy of the line getl_buf to avoid
+ interlock problems.
+ (dfm_get_record) Restructured. Now checks the return value of
+ open_file_r().
+ (cmd_begin_data) Moved open code into open_inline_file(). Relaxed
+ checking for use of inline file. No longer tries to close inline
+ file.
+
+ * error.c: (glob var error_already_flagged) New var.
+ (vmsg) Message change. Now checks max number of errors/warnings,
+ acts on it.
+
+ * file-handle.q: (fh_handle_name) Now allows closing of
+ inline_file.
+ (fh_init_files) Reformatted.
+
+ * get.c: (trim_dictionary) Checks SCOMP option instead of COMP.
+
+ * getline.c: (getl_include) Fixed bug that popped up when called
+ when file queue was empty.
+ (read_console) Resets error_count, warning_count,
+ error_already_flagged to zero.
+
+ * glob.c: Many changes to update list of variables.
+ (init_compat_dependent) Now this function is called whenever
+ `compat' changes. It now sets set_seed only if it hasn't
+ previously been referenced. It now calls
+ lex_init_compat_dependent().
+
+ * include.c: (cmd_include_at) Frees temporary buffer instead of
+ line buffer.
+ (cmd_include) Doesn't make copy of include file name.
+
+ * lexer.c: Comment fixes.
+ (init_lex) Moved some code into new function
+ lex_init_compat_dependent().
+ (lex_init_compat_dependent) New function.
+ (hex_val) Simplified.
+ (preprocess_line) Uses set_endcmd instead of hardcoding `.'.
+
+ * main.c: Comment fixes.
+ (main) Reformatted.
+
+ * misc.c: (formats[]) Added FMT_CCA...FMT_CCE.
+ (check_input_specifier) Disallows FMT_CCA...FMT_CCE.
+ (convert_fmt_ItoO) Detects FMT_CCA...FMT_CCE.
+ (setup_randomize) Sets set_seed_used.
+
+ * set.q: Comment fixes.
+ (custom_results) Conditionalizes on `compat'.
+ (custom_log) Calls custom_journal().
+ (set_ccx) New function.
+ (cmd_set) Calls init_compat_dependent() when `compat' changes.
+ Calls set_ccx() to handle CCA...CCE. Sets set_grouping
+ when set_decimal changes. Range-checks values for MITERATE,
+ MNEST. Message fixes.
+
+ * settings.h: Comment fixes.
+ (struct set_cust_currency) New struct.
+ (set_cc[], set_grouping, set_seed_used) New global vars.
+
+ * var.h: (FMT_CCA...FMT_CCE) New output formats.
+ (FCAT_OUTPUT_ONLY) New FCAT_* constant.
+
+Thu Nov 28 23:14:07 1996 Ben Pfaff <blp@gnu.org>
+
+ * glob.c: Revised variables to correspond to settings.h.
+ (init_glob) Initializes variables from settings.h properly.
+
+ * set.q: Began long-overdue major revision to correspond to new
+ philosophy. Most code changed.
+
+ * settings.h: Mostly changed; reorganized, reordered, large new
+ comment.
+
+Thu Nov 28 19:46:10 1996 Ben Pfaff <blp@gnu.org>
+
+ * get.c: (cmd_save_internal) No longer forces compression off.
+
+ * sfm-read.c: (read_compressed_data) If eof is reached when
+ reading a new instruction octet, only signal error if we're in the
+ middle of a case.
+
+ * sfm-write.c: (COMPRESSION_BIAS) New #define.
+ (struct sfm_fhuser_ext) New member `end'.
+ (write_header) Refers to COMPRESSION_BIAS instead of magic 100.0.
+ (ensure_buf_space) New function.
+ (sfm_write_case) Reimplemented in order to support compression.
+ (sfm_close) Writes out the remaining contents of the compression
+ buffer if any.
+
+Wed Nov 27 23:18:35 1996 Ben Pfaff <blp@gnu.org>
+
+ * command.c: Defined SAVE and XSAVE commands in command table.
+
+ * common.h: second_lowest_value is of type flt64, not double.
+
+ * file-handle.h: Comment fix.
+
+ * get.c: Comment fixes.
+ (static var `trns') New.
+ (save_write_case_func, save_trns_proc, save_trns_free, null_func,
+ cmd_save_internal, cmd_save, cmd_xsave) New functions.
+ (dict_delete_run) Clears the variables and frees them now.
+ (trim_dictionary) Sets default for compression.
+ On KEEP subcommand, frees deleted variables as well as clearing
+ them. Finally got the sense of the test for deleting all
+ variables correct.
+ [DEBUGGING] (dump_dict_variables) Message fix.
+
+ * glob.c: (init_glob) set_compression set to 1 by default.
+
+ * list.q: Properly #includes config.h.
+
+ * misc.h: New macro REM_RND_UP.
+
+ * settings.h: Comment fix.
+
+ * sfm-read.c: (structs sysfile_header, sysfile_format,
+ sysfile_variable; inline function bswap_int32) Moved to new file
+ sfmP.h.
+ (corrupt_msg) [__CHECKER__] No longer induces segfault.
+ (sfm_read_dictionary) Fixed bug caused by failing to initialize
+ var_by_index.
+ (read_machine_flt64_info) Fixed some problems caused by confusion
+ between flt64 and double types.
+ (read_header) Message fix.
+ (read_variables) Fixed set of cases in which we byte-swap sv.print
+ and sv.write. Fixed confusion of flt64 and double.
+
+ * sfm.h: (struct sfm_write_info) New.
+
+ * som-high.c: (som_draw_title) Properly frees `s'.
+
+ * temporary.c: (save_dictionary) Comment fix.
+
+ * var.h: Comment fixes. New FMT_* enum, FMT_NUMBER_OF_FORMATS.
+ (struct trns_header) Formatting fix.
+ (struct save_trns) New.
+
+ * vars-atr.c: (discard_variables) Comment fix.
+
+ * sfm-write.c: New file, baseline release.
+
+ * sfmP.h: New file, baseline release.
+
+Sun Nov 24 14:53:53 1996 Ben Pfaff <blp@gnu.org>
+
+ * cmdline.c: (parse_command_line) `--version' output updated.
+ (glob var syntax_message[]) Added my e-mail address.
+
+ * file-handle.q, lexer.c, vfm.c: Changed many instances of
+ `illegal' to `invalid'.
+
+ * sfm-read.c: (struct sfm_fhuser_ext) New fields used as
+ uncompression buffer.
+ (sfm_close) Frees decompression buffer.
+ (sfm_read_dictionary) Initializes decompression buffer.
+ (buffer_input, read_compressed_data) New functions.
+ (sfm_read_case) Restructured; now calls read_compressed_data() to
+ handle compressed system file data.
+
+ * var.h: Comment fix.
+
+Mon Nov 11 15:34:09 1996 Ben Pfaff <blp@gnu.org>
+
+ * dfm.c: (dfm_close) Does not set h->{ext,class} because the
+ caller handles it.
+
+ * get.c: New comments. New static var `get_file'.
+ (cmd_get) Now fully implemented. Calls discard_variables();
+ initializes fv and lv for all variables; new debug code; sets
+ up the dictionary; sets up the input program.
+ (read_from_get, cancel_get) New functions.
+
+ * sfm-read.c: Comment fixes.
+ (sfm_close) New static function.
+ (sfm_read_dictionary) Properly sets up the class of the
+ file_handle. No longer cares what size the data is in records of
+ type 7. Also, on failure, properly cleans up the file_handle and
+ free()s some stuff.
+ (read_variables) No longer thinks it knows `nval' of the
+ dictionary. Now sets p.get.fv, etc., instead of speculatively
+ setting fv itself.
+ (read_value_labels) Fixed off-by-one error in indexing of
+ var_by_index[].
+ (sfm_read_case) New function.
+ (sfm_r_class) New static var.
+
+ * var.h: (get_proc) New struct.
+ (struct variable) New member p.get.
+
+Thu Nov 7 20:52:28 1996 Ben Pfaff <blp@gnu.org>
+
+ * get.c: Removed GTSV_OPT_MAP because of a misinterpretation of
+ the manual's meaning.
+ (rename_variables) New function.
+ (trim_variables) Doesn't try to parse MAP any more. Removed debug
+ code. Now properly reorders the dictionary on the KEEP keyword.
+
+ * sfm-read.c: (read_value_labels) Fixed some bugs regarding
+ garbage collection.
+
+ * vars-atr.c: (clear_variable) New argument `dictionary *'.
+ (rename_variable) New function.
+ (free_val_lab) Reformatted.
+
+Thu Nov 7 17:29:16 1996 Ben Pfaff <blp@gnu.org>
+
+ * var.h: Reindented entire file. Comment fixes.
+ (glob vars var, var_by_name, nvar, N, nval, n_splits, splits)
+ Removed.
+ (glob var default_dict) New.
+ (struct indirect_dictionary) Removed.
+
+ * Many other source files were changed to add `default_dict.'
+ before all references to the dictionary of the active file.
+
+ * vars-atr.c: (make_indirect_dictionary) Removed.
+
+ * glob.c: Reindented all variable declarations. Updated for
+ changed var.h. Comment fixes.
+
+ * temporary.c: (restore_dictionary, save_dictionary) Simplified
+ because now we can mainly copy dictionary structs.
+
+ * vars-prs.c: (is_dict_varname, parse_dict_variable,
+ parse_variables) Takes dictionary instead of indirect_dictionary
+ first argument.
+ (parse_variables) Instead of calling make_indirect_dictionary,
+ just sets DICT to &default_dict if DICT is NULL. Of course, lots
+ of `*dict.' references had to be changed to `dict->'. Removed
+ debug code.
+
+Thu Nov 7 15:48:52 1996 Ben Pfaff <blp@gnu.org>
+
+ * get.c: Added GTSV_OPT_* series of enums.
+ (trim_dictionary, dict_delete_run) New functions.
+ [DEBUGGING] (dump_dict_variables) New function.
+ (cmd_get) Calls trim_dictionary() to get dictionary fully set-up.
+ [DEBUGGING] Calls dump_dict_variables() to display results.
+
+ * glob.c: (cmp_variable) Now a public function declared in var.h.
+
+ * sfm-read.c: Turned off debug code. Comment fixes.
+ (read_machine_int32_info, read_machine_flt64_info) New functions
+ to parse type 7 records.
+ (sfm_read_dictionary) Properly byteswaps several fields now.
+ Calls read_machine_*_info() to parse type 7 subtypes 3 and 4
+ records. [DEBUGGING] Dumps dictionary.
+ (read_variables) Sets `index' field of variables created properly.
+ Constructs avl tree of variables in dictionary. [DEBUGGING] No
+ longer dumps dictionary.
+ (read_value_labels) Properly byteswaps fields. [DEBUGGING] New
+ debug code.
+ [DEBUGGING] (dump_dictionary) No longer stubbed out.
+
+ * temporary.c: (restore_dictionary) Destroys `var_by_name' glob
+ var before destroying any variables just to save a little time.
+
+ * var.h: (struct variable) Reordered in order to make name[] the
+ first member; this makes pointers to `variable' pointers to the
+ variable name, simplifying avl trees, etc.
+ (struct indirect_dictionary) New struct.
+
+ * vars-atr.c: (find_variable) Rewritten for efficiency.
+ (make_indirect_dictionary, is_dict_varname, parse_dict_variable)
+ New functions.
+ (is_varname) Rewritten for efficiency.
+ (parse_variables) New argument, which is a `dictionary *'. All
+ references changed. This function now reads variable names from
+ the dictionary passed, or from the default dictionary if NULL.
+
+Tue Nov 5 18:34:59 1996 Ben Pfaff <blp@gnu.org>
+
+ * misc.h: Added new macro DIV_RND_UP to perform integer division,
+ rounding up. Changed many references to ROUND_UP to use this
+ instead.
+
+ * sfm-read.c: Includes avl.h.
+ (corrupt_msg) Induces a segfault under Checker.
+ (macro assertive_bufread) New. Many references to bufread() now
+ use this instead.
+ (sfm_read_dictionary) Split up into several functions. Added code
+ to read dictionary records following the the type 2 records. Not
+ quite complete. New variable `var_by_index'.
+ (read_header, read_variables) New functions extracted from
+ sfm_read_dictionary().
+ (read_value_labels) New function.
+ (bufread) Checks ferror() if fread() doesn't return the expected
+ value; if ferror() is zero it's just EOF.
+ (dump_dictionary) Stubbed out.
+
+ * BTW: The source code now exceeds 50000 lines!
+
+Mon Nov 4 22:03:28 1996 Ben Pfaff <blp@gnu.org>
+
+ * command.c: Added GET to cmd_table[].
+
+ * list.q: Removed reference to alloca headers.
+ (cmd_list) Gave prototype.
+
+ * sfm-read.c: Added DEBUGGING comments.
+ (sfm_read_dictionary) Checks bias correctly. Sets
+ dict->var_by_name to NULL. Calculates long_string_count
+ correctly. realloc's dict->var[] array to minimum size.
+ [DEBUGGING] Calls dump_dictionary.
+ [DEBUGGING] (dump_dictionary) New function.
+
+ * temporary.c: (save_dictionary) Sets var_by_name to NULL.
+ (restore_dictionary) If the dictionary contains a non-NULL
+ var_by_name, uses that instead of generating one.
+ (free_dictionary) Destroys var_by_name.
+
+ * var.h: (struct dictionary) Added field `var_by_name'.
+
+ * get.c: New file, not complete.
+
+Sun Nov 3 12:24:36 1996 Ben Pfaff <blp@gnu.org>
+
+ * mis-val.c: New enums MV_NOR_*. New struct num_or_range.
+ (parse_num_or_range) New function.
+ (parse_numeric) Reimplemented in order to support LOW THRU <n> and
+ <n> THRU HIGH missing values.
+
+ * output.h: [__GNUC__>1 && __OPTIMIZE__] (width, height) Made
+ __attribute__((const)).
+
+ * q2c.c: (get_token) Merged isdigit || isalpha into isalnum.
+
+ * sfm-read.c: Finished reference implementation.
+
+ * sfm.h: Includes var.h.
+
+ * var.h: Comment fixes.
+ (struct `variable') Reordered some fields.
+
+ * vars-atr.c: (is_num_user_missing) Added support for MISSING_*
+ constants added previously.
+
+Wed Oct 30 17:13:08 1996 Ben Pfaff <blp@gnu.org>
+
+ * common.h: Comment fixes. Added declaration of
+ `second_lowest_value' as variable or macro. Made `compat_type',
+ `pgm_state_type' into anonymous enums.
+
+ * display.c: Comment fix.
+
+ * glob.c: [ENDIAN==UNKNOWN] Added definition for `endian' global
+ var.
+ [!defined SECOND_LOWEST_VALUE] Added definition for
+ `second_lowest_value' global var.
+ (compat, pgm_state global vars) Changed types to `int'.
+ (init_glob) Initializes `second_lowest_value'.
+
+ * sfm-read.c: Continued work, not complete.
+
+ * var.h: Added new MISSING_* constants to handle LOWEST and
+ HIGHEST.
+
+Sat Oct 26 23:06:06 1996 Ben Pfaff <blp@gnu.org>
+
+ * sfm-read.c: New file, not complete.
+
+ * cases.c: (vec_insert) Changed vector expansion algorithm.
+ (vec_delete) Fixed bug that screwed up deletion sometimes, it was
+ mucking up the RECODE transformation in particular.
+ (envector) Harmless change in notation.
+
+ dfm is now fairly well tested again.
+ * dfm.c: (dfm_get_record) Only returns ext->ptr if ext is
+ non-NULL--duh.
+ (cmd_begin_data) if(ext->line) replaced by if(ext && ext->line).
+
+ * recode.c: Comment fix.
+
+ * sfm.h: Interface should be fairly final now, or at least for a
+ day or so...
+
+ * vfm.c: [DEBUGGING] (index_to_varname) New function.
+ (open_active_file) [DEBUGGING] Translates ccase indices into
+ variable names now to make it easier to understand what's really
+ going on.
+
+Sat Oct 26 20:46:31 1996 Ben Pfaff <blp@gnu.org>
+
+ * data-in.c: Comment fix.
+
+ * data-list.c: Includes dfm.h.
+ (do_reading) Uses new function dfm_push_cust().
+
+ * data-out.c: (convert_time, convert_WKDAY, convert_MONTH) Added
+ `return 1;' at end.
+
+ * file-handle.h: Completely changed. Some parts split off into
+ new file dfm.h. Implemented in file-handle.q.
+ (enum FH_*) Removed.
+ (struct fh_ext_class) New struct.
+ (struct file_handle) Retained only these fields: name, norm_fn,
+ fn, recform, lrecl, mode. New fields class, ext.
+ (get_handle_by_name, get_handle_by_filename, parse_file_handle,
+ close_handle, handle_name) Added `fh_' prefix to name, all
+ references changed.
+
+ * dfm.h: New file, implemented in dfm.c.
+ (get_record, put_record, fwd_record, bkwd_record, set_record,
+ get_cur_col) Functions moved from file-handle.h, now prefixed with
+ `dfm_'.
+ (dfm_push_cust) New function.
+
+ * sfm.h: New file. Incomplete.
+
+ * dfm.c: All functions adjusted/rewritten for new dfm/fhp
+ interface. Functions reordered, comments changed. Not well
+ tested, probably full of bugs.
+ (struct dfm_fhuser_ext) New struct.
+ (dfm_close) New function.
+ (open_file_r) Pickier about finding `BEGIN DATA.' line.
+ (open_file_w) User messages changed.
+ (get_record) Comment fixed.
+ (read_record) Increments ext->ln even for inline_file. Calls
+ dfm_close() for inline_file when `END DATA.' encountered.
+ (dfm_get_record) Experimental restructuring.
+ (dfm_push_cust) New function.
+ (cmd_begin_data) Detects whether the inline file was fully read by
+ checking whether it is still open; detects whether it was read at
+ all by checking whether the line number is greater than zero.
+
+ * file-handle.q: All functions adjust/rewritten for new dfm/fhp
+ interface. Functions reordered, comments changed. Not well
+ tested, probably full of bugs.
+ (init_file_handle) Removed initializers for obsolete fields, added
+ new fields.
+ (fh_close_handle) Much simpler, now mainly calls the class
+ function.
+ (fh_init_files) Renamed inline file internal filename.
+
+ * file-type.c: Includes dfm.h.
+ (read_from_file_type) Doesn't use dfm internal state anymore.
+
+ * inpt-pgm.c, print.c: Include dfm.h.
+
+ * recode.c: (internal_cmd_recode) Casts strlen() return value to
+ int in comparison with other int.
+
+ * som-high.c: (build_target) Fixed operator precedence problem in
+ if statement (& versus ==).
+
+Sat Oct 26 10:39:25 1996 Ben Pfaff <blp@gnu.org>
+
+ * dfm.c: (read_record) Can now read fixed-length records; not
+ tested.
+ (put_record) Can now write fixed-length records; not tested.
+
+ * file-handle.h: FH_* defines changed to enums. New enum series
+ FH_RF_*, FH_MD_*.
+ (struct file_handle) New members recform, lrecl, mode.
+
+ * file-handle.q: Parser changed.
+ (internal_cmd_file_handle) Added support for new /RECFORM, /MODE,
+ /LRECL subcommands. These are compatible with Windows.
+ (init_file_handle) Initializes recform, mode fields.
+
+ * q2c.c: (get_line) When outputting `!' comment lines, now
+ increments the output file line number so that `#line' directives
+ are correct.
+ (make_identifier) New function that converts an arbitrary string
+ into a valid C identifier.
+ (dump_vars) Calls make_identifier() in two places in order to
+ suppress some errors for bad identifiers.
+ (make_match) Allows TRUE as synonym for YES and FALSE as synonym
+ for NO. Allows numbers to be prefixed by underscores to make them
+ acceptable C identifiers but still to be parsed as numbers by the
+ Fiasco lexer.
+
+Thu Oct 24 20:13:42 1996 Ben Pfaff <blp@gnu.org>
+
+ * command.c: Re-enabled RECODE, SAMPLE, SELECT IF.
+
+ * dfm.c: Comment fixes. (get_record) Gives error if file handle
+ was opened for writing.
+ (open_file_w) New function.
+ (read_record) Uses strncasecmp if available. Improved error
+ messages, comments.
+ (put_record) New function.
+
+ * file-handle.h: Moved function comments into dfm.c and
+ file-handle.q. Comment fixes. Removed declarations of
+ tilde_expand() and normalize_filename().
+ (struct file_handle) Changed `open' from boolean to enumerated
+ field to allow for three states--closed, open for reading, open
+ for writing--all references changed.
+
+ * file-handle.q: Includes filename.h.
+
+ * print.c: (CMD_* enums) Renamed PRT_* and moved into var.h; all
+ references changed.
+ (alloc_line) Makes allowance for line terminator characters in
+ calculations.
+ (print_trns_proc) Now handles OUTFILE, WRITE differences.
+ (print_space_trns_proc) Handles OUTFILE differences.
+
+ * recode.c, sample.c: Comment fixes.
+
+ * var.h: (struct print_trns) Changed boolean field `eject' to
+ bitmapped field `options'; all references changed. New enums
+ PRT_* for use with this field.
+
+ * exception.h, test-exception.c: Removed.
+
+Thu Oct 24 17:47:14 1996 Ben Pfaff <blp@gnu.org>
+
+ * ascii.c: (delineate) Turned off debug output.
+
+ * common.c: [Checker and Linux] (__assert_fail, __eprintf) Moved
+ to error.c.
+
+ * data-in.c: (parse_string_as_format) Sets the entire string value
+ to spaces, not just the short string part of it. Is this correct
+ now?
+
+ * data-out.c: (convert_date) Fixed DATETIME format problems with
+ decimal places, removed debug code.
+
+ * dfm.c: (open_file_r) Fixed bug where an error would occur in the
+ middle of parsing BEGIN DATA that would cause the lexer to read
+ from a wild pointer `prog'; now calls new function
+ preprocess_line() in lexer.c.
+
+ * error.c: [__CHECKER__] (hcf) Calls induce_segfault() on improper
+ termination.
+ [Checker and Linux] (__assert_fail, _eprintf) Moved from common.c.
+ Now call induce_segfault() to induce the segfault.
+ (induce_segfault) New function.
+
+ * expr-opt.c: Comment fix.
+ (parse_sysvar) New function.
+ (parse_primary) Added system variable support--calls
+ parse_sysvar().
+ (global var ops) Added OP_CASENUM operator.
+
+ * expr.h: Comment fixes.
+ (OP_* enum) added OP_CASENUM operator.
+ (struct casenum_node) New struct.
+ (union any_union_union) New member `cas' of type `casenum_node'.
+
+ * glob.c: (global var last_vfm_invocation) New var.
+ (init_glob) Initializes last_vfm_invocation.
+
+ * lexer.c: (lookahead) Fixed reversed condition on if statement.
+
+ * getline.c: (get_line) Split into get_line() and preprocess_line().
+ (preprocess_line) New function.
+
+ * var.h: Declares last_vfm_invocation.
+
+ * vfm.c: (procedure) Sets last_vfm_invocation.
+
+Wed Oct 23 21:53:43 1996 Ben Pfaff <blp@gnu.org>
+
+ * command.c: (parse_cmd) Fixed bad assertion related to
+ lookahead().
+
+ * data-in.c: (parse_month) Implemented to parse months according
+ to full interpretation of standard.
+ (to_roman) New function.
+ (parse_wk_delimiter) Bug fix (forgot to skip `WK' in string).
+ (parse_weekday) Bug fix (forgot to skip all the day name).
+
+ * data-list.c: (read_from_data_list_fixed) Fixed bug that screwed
+ up parsing of multirecord data items. Also fixed user message.
+
+ * data-out.c: Comment fix.
+ (year2, year4, convert_date, convert_time, convert_WKDAY,
+ convert_MONTH) New functions to support time & date output.
+ (convert_format_to_string) Calls new time & date output routines.
+
+ * expr-prs.c: (nary_num_func) Found a bug, but didn't fix it yet.
+
+ * lexer.c: (lookahead) Noted a previously unnoticed caveat in
+ comment.
+
+ * main.c: [DEBUGGING] (dump_token) Updated to handle getline.h.
+
+ * misc.c: (global var formats) Fixed declarations of DATETIME,
+ TIME, DTIME.
+
+ * postscript.c: (text) Fixed a pair of bugs in the reallocation of
+ the output_char buffer.
+
+ * vars-prs.c: (parse_DATA_LIST_vars) Fixed a failure to free
+ memory bug. Fixed user messages.
+
+Tue Oct 22 17:27:04 1996 Ben Pfaff <blp@gnu.org>
+
+ * Removed #pragma argsused from lots of places.
+
+ * data-in.c: Implemented zoned decimal and time-date formats.
+ Untested. This is a huge chunk of code--maybe 1000 lines and 50
+ new functions.
+
+ * data-out.c: Implemented zoned decimal format.
+
+ * expr.h: Moved yrmoda() declaration here from exprP.h.
+
+ * misc.c: (global var formats) Minor fixes--added
+ FCAT_SHIFT_DECIMAL to formats N and Z.
+ (convert_fmt_ItoO) Added support for format Z.
+
+ * som-frnt.c: (som_set_value) Fixed bug regarding string values.
+
+Mon Oct 21 20:39:59 1996 Ben Pfaff <blp@gnu.org>
+
+ * command.c: (parse_cmd) [GLOBAL_DEBUGGING] Inserted call to
+ som_check_workspace() that is activated between commands.
+
+ * data-list.c: (dump_fixed_table, dump_free_table) Finished these
+ for good, I hope.
+
+ * list.q: (begin_row) Changed title expansion style from
+ SOPT_X_VERT to SOPT_X_SHSP.
+
+ * som-frnt.c: Now includes `somP.h'.
+ (som_push_workspace, som_pop_workspace) New functions that, taken
+ together, form a solution to the recursive table building problem
+ mentioned yesterday. Surrounded every table output routine
+ throughout the program with calls to these functions.
+ [GLOBAL_DEBUGGING] (som_check_workspace) New function.
+ (som_create_table) Checks that there's an active workspace.
+ (som_destroy_all_tables, som_crush) Removed.
+
+ * som-high.c: (global var som_preserve_tables) Removed, all
+ references deleted.
+ (som_submit_table) Checks that there's an active workspace.
+ (dump_columnated_table) Doesn't columnate tables that would have
+ just one row per column.
+ (dump_crush_page, som_dump_crush_page) Removed debugging code.
+ (som_dump_crush_page) Moved row number labels from left side of
+ tables to right side.
+ (som_get_table_size) Added support for SOPT_X_SHSP.
+
+ * som.h: New cell expansion type SOPT_X_SHSP.
+
+ * somP.h: (global vars arena_stack, n_arena_stack, m_arena_stack)
+ New vars.
+ (global var curtab_arena) Moved from som-frnt.c.
+
+Sun Oct 20 13:45:28 1996 Ben Pfaff <blp@gnu.org>
+
+ * ascii.c: [GLOBAL_DEBUGGING] (SUPPRESS_WARNINGS) New debug option
+ that causes bad location warnings to be suppressed.
+ (delineate) Saves current font when calling draw_text(); fixed
+ handling of NULLs when backing up. Also fixed line-wrapping bug.
+
+ * command.c: Re-enabled `LEAVE', `NUMERIC', `PRINT', `PRINT EJECT',
+ `PRINT FORMATS', `PRINT SPACE', `STRING', `TITLE', `WRITE'.
+
+ * common.c: Added code to cause assertion failure to dump core
+ when run under Checker.
+
+ * data-list.c: (dump_fixed_table) Fixed some inconsistencies, but
+ there are still bugs.
+
+ * glob.c: (__eprintf) Removed.
+
+ * list.q: Inserted som_preserve_tables kluge that prevents tables
+ from being thrown away due to recursive table building through
+ som_output_line being called from a transformation during the LIST
+ procedure invocation. This is a general problem that must be
+ solved in a better way since it applies to all procedures in
+ general.
+ (begin_row) Changed title options to SOM_X_VERT from SOM_X_BOTH.
+ (flush_table) Removed SOM_TOPT_PRESERVE from submission options.
+
+ * numeric.c: Fixed several errors in the form of msg() calls.
+
+ * print.c: Updated for use of som.
+ (dump_table) Reimplemented.
+ (print_trns_proc) Calls som_eject_page() instead of eject_page().
+ Calls som_output_text() instead of outs_line().
+
+ * som-frnt.c: (som_destroy_all_tables) Sets som_preserve_tables to
+ 0.
+ (som_output_text) Function moved from som-low.c. Interface
+ changed.
+
+ * som-high.c: (som_preserve_tables) New global public variable
+ declared in som.h.
+ (som_submit_table) Destroys the tables only if som_preserve_tables
+ is 0.
+ (paginate_horizontally) Bugfix: sets som.mpw even if there's only
+ one subrow per row. Now labels subrows if there's more than one
+ subrow per row.
+ (dump_crush_table) Added wishlist comment.
+ (som_eject_page) New public function declared in som.h.
+
+ * som-low.c: (som_dump_crush_page) Draws row labels if there's
+ more than one subrow per row.
+ (som_output_text) Moved to som-frnt.c.
+
+ * som.h: (SOM_TOPT_PRESERVE) Removed.
+
+ * title.c: (get_title) Changed interface.
+ (cmd_title) Changed `title' to `outp_title'.
+ (cmd_subtitle) Changed `subtitle' to `outp_subtitle'.
+
+Sun Oct 20 09:04:15 1996 Ben Pfaff <blp@gnu.org>
+
+ * list.q: (flush_table) Conforms to new partial options in
+ som_submission_form.
+
+ * som-high.c: (paginate_horizontally) Changed form of subrow
+ number labels.
+ (build_target) Omits spacing before table if
+ SOM_TOPT_PARTIAL_OMIT_TOP is selected.
+ (dump_crush_page) Changed interface. Only trims bottom rule if
+ SOM_TOPT_PARTIAL_OMIT_BTM is not selected.
+ (dump_crush_table) Handles partial tables.
+ (output_row_label) New function.
+ (som_dump_crush_page) Emits subrow number labels. Draws vertical
+ rule on the right edge of narrow subrows.
+
+ * som.h: Changed SOM_SUB_PARTIAL_* series of submission type
+ constants to a series of SOM_TOPT_PARTIAL_* submission options.
+ All references updated.
+
+Fri Oct 18 19:46:49 1996 Ben Pfaff <blp@gnu.org>
+
+ * misc.c: Comment fix.
+
+ * som-high.c: (examine_table) Treats crushed tables separates for
+ purpose of determining header size.
+ (paginate_horizontally) Allots space for line numbers in crushed
+ tables with lots of subrows per row. Calculates the `maximum page
+ width', the width of the widest horizontal page.
+ (build_target) Removed trim argument; all references changed.
+ Stricter assertions. (dump_crush_page) New function.
+ (dump_crush_table) Reimplemented.
+
+ * som-low.c: (som_dump_page) Uses new RULE_ROW &c. constants.
+ (som_dump_crush_page) Reimplemented, interface changed.
+
+ * somP.h: Many many new helper macros for use with crushed tables.
+ (global var som) Removed `tv', `cum_y' members; all references
+ removed. New members `mpw', `digit_space'.
+
+Sun Sep 29 19:37:03 1996 Ben Pfaff <blp@gnu.org>
+
+ * arena.c: (arena_alloc) [!DISCRETE_BLOCKS] Removed `size'
+ variable, changed to constant 1024.
+ (arena_ca_strdup) Changed `sizeof(a_string)' to
+ `sizeof(c_string)'.
+ (arena_ca_strdup) [!DISCRETE_BLOCKS] Changed bad cast from
+ `(c_string *)' to `(char *)'; this fixed some offset problems.
+
+ * filename.c: (readlink_malloc) Changed initial allocation from
+ 100 bytes to 128.
+ (good_getcwd) Changed from xmalloc() to local_alloc(); removed
+ comment.
+
+ * postscript.c: (read_fontmap) Fixed leak by changing &owner to
+ &fm->owner in several places.
+
+ * som-high.c: (output_table) Changed interface to rest of world.
+ (examine_crush_table) Removed. Crushed tables are re-broken now,
+ in preparation for rewrite.
+
+ * som.h: Comment fix.
+
+Sat Sep 28 21:28:07 1996 Ben Pfaff <blp@gnu.org>
+
+ * ascii.c: (ascii_init_driver) Disposes of x->file.filename and x
+ itself in the cleanup stage.
+
+ * descript.q: (display) At least temporarily, changed the table
+ format to a crushed table.
+
+ * list.q: (begin_row) At least temporarily, added horizontal lines
+ between cases.
+
+ * som-high.c: (examine_crush_table) Sets som.hh to the width of
+ the horizontal "headers," that is, to the width of the far left
+ and far right rules.
+ (justify_pagination) Sets som.th to the width of the widest row
+ in the crushed table. Fixed inner loop off-by-one error.
+
+ * som-low.c: (som_dump_crush_page) Added code to draw horizontal
+ rules.
+
+ * somP.h: Comment fix.
+
+Fri Sep 27 20:08:39 1996 Ben Pfaff <blp@gnu.org>
+
+ * filename.c: (open_file_ext) Now, doesn't set f->file to NULL
+ before closing it; also, opens the constructed filename `s'
+ instead of f->filename.
+
+ * postscript.c: Moved initialization of x->loaded, x->prop,
+ x->fixed, x->current, also the add_encoding() calls, into
+ postopen().
+ (preclose) Destroys x->combos; sets x->loaded, x->combos to NULL;
+ sets x->last_font to NULL; sets x->next_combo to zero.
+
+ * som-high.c: (crushed_row_height) Moved definition farther up.
+ (som_submit_table) Doesn't calculate line width, font size until
+ after calling open_page(), to accomodate changes to PostScript
+ driver.
+ (vert_headers) Removed; equivalent functionality moved to
+ examine_table(), examine_crush_table().
+ (justify_pagination) Replaced with different algorithm.
+ (dump_crush_table) Bugfix that caused tables to fail to be clipped
+ at the bottom of the page.
+
+Thu Sep 26 22:20:26 1996 Ben Pfaff <blp@gnu.org>
+
+ * command.c: Added cmd_list back into cmd_table.
+
+ * freq.c, frequencies.q, repeat.c, list.q, vars-atr.c, vfm.c:
+ Comment fix: `#define DEBUGGING' --> `#define DEBUGGING 1'.
+
+ * list.q: (flush_table) Updated to new som_submission_form format.
+
+ * som-frnt.c: Comment fix.
+
+ * som-high.c: Changed `#endif' to `#undef EXTERN'.
+ (output_table) Calls som_get_table_size() directly; handles
+ crushed tables.
+ (examine_crush_table) New function; calls vert_headers().
+ (examine_table) Moved some code into new function, vert_headers().
+ (justify_pagination) New function.
+ (dump_plain_table) Removed `static' from `cy'.
+ (dump_crush_table) New function.
+
+ * som-low.c: (som_dump_crush_page) New function.
+
+ * som.h: Comment fixes.
+ (enum SOM_TOPT_CRUSH) New.
+ (SOM_SUB_PARTIAL_BEG, SOM_SUB_PARTIAL_MID, SOM_SUB_PARTIAL_END)
+ Temporarily set to zero to make do with LIST procedure.
+
+ * somP.h: Re-ordering.
+
+Wed Sep 25 19:36:11 1996 Ben Pfaff <blp@gnu.org>
+
+ * som.c: Split into som-frnt.c, som-high.c, som-low.c.
+
+ * somP.h: New file for use by som-high.c, som-low.c.
+
+ * q2c.c: Added definition for VME.
+ (get_line) Now dumps `!' comment lines to the output file
+ verbatim.
+
+ * crosstabs.q, descript.q, file-handle.q, frequencies.q, list.q,
+ set.q: Changed format of `!' comment lines.
+
+Tue Sep 24 18:39:09 1996 Ben Pfaff <blp@gnu.org>
+
+ * All source files: Added copyright notice.
+
+ * common.c: (xmalloc, xrealloc, xstrdup) Cast size_t's to unsigned
+ longs in msg() calls.
+
+ * con32s.c: (xmalloc, xrealloc) Updated from common.c.
+
+ * q2c.c: (xmalloc, xrealloc, xstrdup) Updated from common.c.
+
+Sat Sep 21 23:16:31 1996 Ben Pfaff <blp@gnu.org>
+
+ * output.c: (outp_read_devices) Changed criteria for
+ distinguishing different types of lines.
+
+Fri Sep 20 22:52:28 1996 Ben Pfaff <blp@gnu.org>
+
+ * cmdline.c: Changed syntax message.
+
+ * filename.c: (good_getcwd) Bug fix (?).
+ (normalize_filename) [__BORLANDC__] Uses _fullpath() library
+ function.
+ (search_path) Appends DIR_SEPARATOR to directory name only if it
+ does not already end with one.
+
+ * glob.c: Checks STAT_PAGER envvar before PAGER.
+
+ * output.c: Checks environment variables instead of just local
+ macros.
+
+Tue Sep 10 21:39:00 1996 Ben Pfaff <blp@gnu.org>
+
+ * arena.c: (arena_destroy) Swatted a subtle bug that cropped up
+ when the pointer passed to the function was within the arena
+ itself, so that it couldn't properly be set to NULL _after the
+ arena was freed_.
+
+ * command.c: Re-enabled DISPLAY.
+
+ * display.c: Rewritten to handle tables. Untested.
+
+ * filename.c: (search_path) Fixed memory leak.
+
+ * frequencies.q: (cmd_frequencies) Frees v_variables.
+ (postcalc) Calls cleanup_freq_tab() after displaying statistics.
+ (cleanup_freq_tab) New function to garbage collect.
+ (dump_full) Elegantized.
+
+ * main.c: New comment.
+
+ * output.h: New tag for tagged quotes: TAG_NEWLINE.
+
+ * postscript.c: Comment fix.
+ (release_fontmap, free_font_entry) New functions.
+ (ps_init_driver) Sets free_font_entry() as the freefunc for
+ hashtable `loaded'. Calls release_fontmap() when destroying a
+ driver; also frees the output filename; also frees the
+ ps_driver_ext block.
+ (free_ps_encoding) Frees the filename as well as the encoding
+ block.
+ (output_encodings) Frees the line buffer and pops the msg-filename
+ stack.
+ (read_fontmap) Frees the fontmap filename and the line buffer.
+ (postopen, preclose) Misc. garbage collection fixes.
+ (ps_open_page) Destroys the `combos' hash table; sets `last_font'
+ to NULL; this fixes some output problems.
+ (text) Handles TAG_NEWLINE. Untested.
+
+ * som.c: (cell_byte_size) Merged SCON_VALUE and SCON_TEXT cases.
+ (som_set_string) Removed. All references changed to
+ `som_set_text'.
+ (som_set_text) Rewritten. New interface. More general.
+
+ * som.h: Minor format changes.
+ (struct som_value_cell) Removed; all references changed to
+ `som_text_cell'.
+ (enums SOT_*) Changed.
+
+Mon Sep 9 21:43:13 1996 Ben Pfaff <blp@gnu.org>
+
+ * command.c: Re-enabled SPLIT FILE.
+
+ * postscript.c: Comment fix.
+
+ * som.h: Added `SOT_NONE'.
+
+ * split-file.h: (cmd_split_file) Removed superfluous parenthesis.
+
+ * vfm.c: (dump_splits) Reimplemented.
+
+Sat Sep 7 22:35:12 1996 Ben Pfaff <blp@gnu.org>
+
+ * Compiled the project under gcc 2.7.2, which gave some new
+ warnings. This led to many additions of casts from unsigned to
+ int sprinkled throughout the code.
+
+ * arena.c: Many uses of `unsigned' changed to `size_t'.
+
+ * command.c: Added END FILE, END REPEAT to command table.
+ (var cmd_end_repeat) Renamed cmd_end_repeat_p.
+ (find_command, FILE_TYPE_okay) Not commented out anymore.
+ (parse_cmd) Calls FILE_TYPE_okay again.
+ (output_line) Added calls to som_output_text() to put the line
+ in the output files.
+
+ * common.c: (macro VME) Format changes.
+ (xstrdup) Asserts that its argument is not NULL.
+
+ * data-list.c: Implemented dump_fixed_table().
+
+ * inpt-pgm.c: Formatting changes. Comment changes.
+ (end_case_proc) Renamed end_case_trns_proc.
+ (cmd_end_file, end_file_trns_proc) New functions.
+
+ * misc.c: Many uses of `int' and `unsigned' changed to `size_t'.
+
+ * misc.h: (local_strdup) New macro corresponding to strdup() but
+ allocating its data through local_alloc() if possible--that is, if
+ GNU C is in use.
+
+ * postscript.c: Comment changes.
+ (quote_ps_name, quote_ps_string, output_encodings) New functions.
+ (output_line, add_string) New macros supporting
+ output_encodings().
+ (postopen) Fixed contents of ${fixed-font} and ${prop-font}
+ substitution vars. Calls output_encodings() when a line
+ consisting of `!encodings' is encountered.
+ (preclose) Some code moved into quote_ps_string().
+ (dump_line) Changed into macro supporting dump_fancy_line().
+ (switch_font) Now outputs DSC "%%IncludeResource: font (...)"
+ command when appropriate.
+ (write_text) Fixed `literal_char' array (I think it's fixed, at
+ least.)
+ (text) Fixed bug when width was zero. Now exits immediately on
+ zero height_left. Now, when executing `goto restart;', checks
+ that cp<end, so that we don't read beyond end-of-string. Also,
+ outputs the correct code to the output file by outputting the code
+ from the metric instead of the internal metric index.
+
+ * repeat.c: (cmd_end_repeat) New function.
+
+ * som.c: (var som) `headers' renamed `options' and semantics
+ changed. All references changed.
+ (draw_title) `if(px!=-1 || px!=-1)' --> `if(px!=-1 || py!=-1)'.
+ (build_target) Only inserts spacing if SOM_TOPT_SPACING not
+ selected.
+ (som_text_table) Removed.
+ (som_output_text) New function.
+
+ * som.h: (struct som_submission_form) Removed `header', `reuse',
+ replaced with bitmapped field `options'.
+ (SOM_TOPT_*) New enum set for som_submission_form.options.
+ (SOT_*) New enum set for som_output_text().
+
+ * temporary.c: (copy_variable) When copying the var label, only
+ calls xstrdup() if it's non-NULL.
+
+ * var.h: (enum type `vartype') Removed; all references changed to
+ `int'.
+
+ * vars-atr.c: (init_variable) Changed local var `nbytes' from
+ `int' to `size_t'.
+
+Thu Sep 5 22:05:56 1996 Ben Pfaff <blp@gnu.org>
+
+ * font.h: Comment changes.
+
+ * groff-font.c: (groff_read_font) Initializes `name' field to
+ NULL. Handles `encoding' field.
+
+ * hash.c: (hsh_dump) [GLOBAL_DEBUGGING] Output formatting changes.
+
+ * postscript.c: (struct font_entry) Removed `position' field.
+ (struct ps_font_combo) New struct.
+ (struct ps_driver_ext) Removed field `next_position'. New fields
+ `combos', `next_combo'. `last_font' field changed from
+ `font_entry *' to `ps_font_combo *'.
+ (ps_init_driver) Reformatted; handles new fields. When
+ OPO_AUTO_ENCODE is set, adds the two default fonts' encodings to
+ the encoding list.
+ (get_encoding, find_encoding_file) New functions.
+ (add_encoding) Some code moved out into find_encoding_file().
+ (postopen) Changed value for ${title}.
+ (preclose) Sets `loaded' field to NULL after destroying the hash
+ table.
+ (ps_open_page) Added comment. Inits the `combos' and `next_combo'
+ fields.
+ (ps_text_set_font_by_position) Figures out the current family if
+ not known.
+ (compare_ps_combo, hash_ps_combo, free_ps_combo) New functions.
+ (switch_font) Implemented.
+ (write_text) Calls switch_font() more often. Format changes.
+ #undefs its macros after they're no longer useful.
+ (text) Changed `continue' at one point to a jump to the top of the
+ loop because we don't want `separate' reset to 0 at that point.
+ (load_font) No longer sets `position' in the font_entry created.
+
+Wed Sep 4 21:45:35 1996 Ben Pfaff <blp@gnu.org>
+
+ * font.h: (struct font_desc) New member `encoding', which is not
+ properly handled yet.
+
+ * glob.c: (init_glob) Some new i18n code, which is probably
+ screwed up.
+
+ * output.c: (outp_read_devices, outp_get_paper_size) Changed
+ `size' local from `int' to `size_t'.
+
+ * postscript.c: New driver configuration parameter `auto-encode'.
+ New enums OPO_AUTO_ENCODE, ODA_COUNT.
+ (struct font_entry) New member `position'.
+ (struct ps_driver_ext) Reordered. New hash table member
+ `encodings'; new members `next_position', `next_encoding',
+ `last_font'. Members `current', `prop', `fixed' changed from type
+ `font_desc *' to `font_entry *'; all references changed.
+ (struct ps_encoding) New struct.
+ (read_ps_encodings, compare_ps_encoding, hash_ps_encoding,
+ free_ps_encoding, add_encoding) New functions.
+ (ps_init_driver) Added OPO_AUTO_ENCODE to default
+ x->output_options. Initializes new members of ps_driver_ext.
+ Changed default value for prologue_fn, encoding_fn. Calls
+ read_ps_encodings after loading default fonts.
+ (option_tab[], ps_option) Handle new configuration parameter.
+ (switch_font) New function.
+ (struct output_char) `font' member changed from `font_desc *' to
+ `font_entry *'. New member `separate'.
+ (read_fontmap) Changed `size' from `int' to `size_t'.
+ (output_line, put_number) New macros for write_text().
+ (write_text) Optimizes text output by consolidating multiple
+ calls to PostScript `show' operator.
+ (text) Keeps track of when text arguments can't be consolidated by
+ write_text(), and marks those spots in the output stream.
+ (load_font) Sets `position' of the allocated font_entry to -1, cuz
+ the font hasn't been switched to by switch_font(), which is where
+ the position is important--the PostScript is what cares about the
+ position.
+
+Sat Aug 31 23:52:38 1996 Ben Pfaff <blp@gnu.org>
+
+ * hash.c: (hsh_destroy) Ignores NULL argument. Doesn't try to
+ call a NULL free_func.
+ (hsh_rehash) Elegantized.
+ (hsh_probe) Fix bug that manifested when the table was expanded
+ and thus had to change location in memory. Good thing
+ too--otherwise could have been much more subtle.
+ (hsh_find) [GLOBAL_DEBUGGING] Not stubbed out anymore.
+ (hsh_foreach) New function for hash table iteration.
+
+ * hash.h: (struct hsh_iterator) New.
+
+ * lexer.c: (parse_tagged_quote) Font and family name strings in
+ tags are now null-terminated.
+
+ * output.c: (outp_evaluate_dimension) Fixed over-aggressive unit
+ parsing.
+ (internal_get_paper_size, outp_get_paper_size) Fixed; now work as
+ documented. (Never before tested?)
+
+ * output.h: Comment changes.
+
+ * postscript.c: New driver options `optimize-text-size',
+ `optimize-line-size', `max-fonts-simult'. New enum set for
+ specing cached line types. Comment fixes.
+ (struct line_form) New struct.
+ (struct ps_driver_struct) New members `text_opt', `line_opt',
+ `max_fonts', `lines'.
+ (ps_init_driver) Initializes new members of ps_driver_struct.
+ (user option type enum set) New member `nonneg_int_arg'.
+ (static var option_tab[]) Supports new options.
+ (ps_option) Handles new options.
+ (find_ps_file) Made static. No longer calls hsh_dump().
+ (ps_get_var) Made static.
+ (preclose) Dumps out proper DSC trailer.
+ (ps_open_page) Elegantized.
+ (ps_close_page) Calls dump_lines() if appropriate.
+ (ps_line_horz, ps_line_vert, ps_line_intersection) Reduced to
+ wrappers around line().
+ (int_2_compare, compare_line, dump_line, dump_fancy_line,
+ dump_lines, hash_line, free_line, line) New functions for support
+ of line caching.
+ (write_text, text) Made static.
+ (text) Added to font support, not finished.
+
+Thu Aug 29 21:36:41 1996 Ben Pfaff <blp@gnu.org>
+
+ * font.h: (struct font_desc) New members ascent, descent.
+
+ * groff-font.c: (groff_read_font) Calculates font ascent and
+ descent from the ascent and descent of the `d' and `p' characters,
+ respectively, as per a suggestion on comp.fonts.
+
+ * postscript.c: (ps_open_page, ps_close_page, ps_line_horz,
+ ps_line_vert, ps_line_intersection) Rewritten to deal with changed
+ prologue.
+ (write_text) Handles text right-justification and centering (not
+ full justification). Still very inefficient. (One output line
+ per character?!)
+ (struct output_char) Added fields for font and font size.
+ (text) Many bugfixes.
+
+Sat Aug 24 23:26:00 1996 Ben Pfaff <blp@gnu.org>
+
+ * cmdline.c: (usage) Calls outp_list_classes().
+
+ * font.h: Comment fix.
+
+ * groff-font.c: New exported global var `space_index'.
+ (groff_init) New function to initialize `space_index'.
+ (hash_kern) Casts result to unsigned.
+ (font_name_to_index) Renamed font_char_name_to_index. All
+ references changed. Also, now returns the value of `space_index'
+ when passed an ASCII space character as an argument. Fixed
+ handling of nulls.
+ (font_get_kern_adjust) Changed i from `int' to `unsigned'.
+ Handles passed NULL pointers properly.
+
+ * lexer.c: (parse_tagged_quote) Comment fix. Better range
+ checking.
+
+ * output.c: (outp_list_drivers) Removed. Removed all references.
+
+ * output.h: Comment fixes.
+
+ * postscript.c: (ps_open_global) Calls groff_init().
+ (output_char) New structure.
+ (write_text) New function.
+ (text) No longer stubbed out! Now the output is correct--with a
+ few exceptions, one of them being that the page has to be held
+ upside down into a mirror.
+
+Sun Aug 11 21:31:22 1996 Ben Pfaff <blp@gnu.org>
+
+ * font.h: Comment fix.
+
+ * font.c: (name_to_index) Renamed font_name_to_index, made extern.
+ All callers changed.
+ (number_to_index) Renamed font_number_to_index, made extern. All
+ callers changed.
+ (font_get_kern_adjust, font_get_char_metrics) New functions.
+
+ * output.h: New constant OUTP_T_INTERNAL_DRAW.
+
+ * postscript.c: Changed default line width back to 1/2 point.
+ (ps_line_horz, ps_line_vert, ps_line_intersection) Now lines are
+ in the center of the space allotted for them, not just a fixed
+ offset from the edge of the space; this fixes some bugs.
+ (ps_line_intersection) Now supports all command line styles.
+ (ps_text_get_size) Bug fix in computation of em width.
+ (text) New function, the meat behind ps_text_metrics and
+ ps_text_draw. Not complete.
+ (ps_text_metrics, ps_text_draw) Removed the stub taken from
+ ascii.c; call text().
+
+Sat Aug 10 23:28:17 1996 Ben Pfaff <blp@gnu.org>
+
+ * arena.c: (arena_free) Assert that the argument is non-NULL.
+
+ * groff-font.c: (add_kern) Calls arena_free() for old_kern if and
+ only if old_kern is non-NULL.
+
+ * postscript.c: (ps_init_driver) Changed default line width to 1
+ point.
+ (postopen) New prologue variables.
+ (ps_line_horz, ps_line_vert, ps_line_intersection) Implements some
+ more of the common line styles properly, but not all.
+ (ps_text_metrics) Fixed problem with this stubbed out version that
+ kept it from taking font sizes into account.
+
+Thu Aug 8 22:31:11 1996 Ben Pfaff <blp@gnu.org>
+
+ * arena.c: (arena_malloc) Bug fix.
+ (arena_dump) [GLOBAL_DEBUGGING] New function.
+
+ * ascii.c: Comment fix.
+ (count_fancy_chars, delineate) Now static functions.
+
+ * filename.c: (interp_vars) Bug fixes.
+
+ * font.h: Comment fixes.
+
+ * glob.c: (init_glob) Sets set_viewwidth, set_viewlength at
+ beginning in case we have an error message to display before
+ initializing the display.
+
+ * groff-font.c: Comment fix. Changed rehash threshold from 2/3
+ full to 1/2 full.
+ (groff_read_font) Bug fixes.
+ (name_to_index) Increments hash.used. Sets `name' field of hash
+ entry properly.
+ (add_kern) Sets kern_max_used after rehashing. Other bug fixes.
+
+ * hash.c: Return type changed.
+
+ * postscript.c: Continued development. Now marks lines on the
+ paper, but very buggy.
+
+Sat Aug 3 20:50:35 1996 Ben Pfaff <blp@gnu.org>
+
+ * Changed comments in many source files from `/* xxx /* yyy */' to
+ `/* xxx */ /* yyy */' for cleanliness.
+
+ * arena.c: (arena_sd_strdup) New function.
+
+ * ascii.c: (struct ascii_driver_ext) New member `file'.
+ (ascii_init_driver) Fills out member `file' for initing; uses
+ close_file_ext for closing drivers.
+ (ascii_option) Changed %.*s back to %s because the a_string's are
+ always null-terminated.
+ (postopen, preclose) New functions.
+ (ascii_open_page) Uses new style of open_file_ext.
+ (ascii_option, commit_line_buf, output_lines) Use ext->file.file
+ instead of this->output.
+ (__assert_fail) Removed.
+
+ * cmdline.c: Changed syntax_message[].
+
+ * error.c: #include's <readline/history.h> only if the history
+ library is available, not if just the readline library is
+ available.
+
+ * filename.c: (expand_line) Removed alloca() support.
+ (interp_vars) No longer tilde-expands argument. Limit on output
+ length removed.
+ (tilde_expand) Now treats argument as path rather than filename.
+ [!unix] Now is a no-op function.
+ (search_path) Better verbose message formatting.
+ (open_file, close_file) Comment fixes.
+ (close_file) [!unix] Doesn't bother with pipes.
+ (open_file_ext) Completely rewritten, interface revamped.
+ (close_file_ext) New function.
+
+ * font.h: Comment changes.
+
+ * frequencies.q: Removed AIX alloca support since it doesn't use
+ alloca.
+
+ * hash.c: Comment changes & additions.
+ (hsh_create) Initializes entire table instead of first M entries.
+ (hsh_probe) Stupid bug fixed. Now it works.
+ (hsh_dump) [GLOBAL_DEBUGGING] New function.
+
+ * main.c: (parse) Detects EOF properly in token-eating loop.
+ Should the STOP token have its value changed to 0?
+
+ * misc.c: (blp_getdelim) [HAVE_GETDELIM] Now it's a macro.
+ (blp_getline) Now it's a macro.
+
+ * output.h: (struct outp_driver) Removed members output, filename.
+
+ * output.c: (outp_init) [!NO_POSTSCRIPT] Installs PostScript
+ drivers in driver table.
+ (outp_read_devices) Frees buf. Warns if there are no active
+ output drivers.
+ (outp_configure_clear) Sets outp_configure_vec to NULL after
+ deleting its elements.
+ (configure_driver, destroy_driver) Removed references to output,
+ filename members of outp_driver.
+ (outp_evaluate_dimension, internal_get_paper_size,
+ outp_get_paper_size) New functions.
+
+ * postscript.c: Continued development. Now links but doesn't make
+ any marks on the page. Lotsa bugs I suppose.
+
+ * str.c: (strcasecmp) [!HAVE_STRCASECMP] New function.
+
+ * str.h: Comment changes.
+
+Sat Jul 27 22:32:38 1996 Ben Pfaff <blp@gnu.org>
+
+ * Removed dependencies on non-nested comments in several files.
+ Also removed references to (unix || __unix__) in #if's since
+ prefh.orig makes those two equivalent.
+
+ * ascii.c: (ascii_open_global) Creates ascii_arena.
+ (ascii_close_global) Destroys ascii_arena.
+ (ascii_init_driver) Doesn't create ascii_arena.
+ (ascii_copy_driver) Removed.
+ (ascii_option) Possible bugfix regarding %s vs. %.*s with a_string's.
+ (outp_class ascii_class) Removed ascii_copy_driver reference.
+
+ * frequencies.q: Now can display all statistics except median.
+ Still not finished.
+
+ * output.c: Handles outp_class.ref_count so output class
+ destructors are called properly.
+ (add_class) Sets ref_count to 0.
+ (configure_driver) Initializes class if ref_count++ is 0.
+ (destroy_driver) Destructs class if --ref_count is 0. Frees the
+ class output file name.
+
+ * output.h: (struct outp_class) Removed copy_driver, inited.
+ Added ref_count.
+
+ * postscript.c: Completely replaced but not finished.
+
+Tue Jul 23 21:48:36 1996 Ben Pfaff <blp@gnu.org>
+
+ * approx.h: #includes <float.h>.
+
+ * arena.h, arena.c: Many functions changed to take an arena **
+ instead of an arena *, for consistency. All callers changed.
+ (arena_alloc) Now creates a new arena if passed *A that is NULL.
+ (arena_destroy) Sets *A to NULL.
+
+ * ascii.c: (delineate) Implements OUTP_T_VERT correctly. Removed
+ assertion that `width' be positive.
+
+ * command.c: Removed #if's from cmd_table.
+ (walk_cmdtable_func) [0] New function (debug code).
+ (init_cmd_parser) [0] Dumps out cmd_table (debug code).
+ (parse_cmd) Doesn't return failure for unimplemented commands.
+
+ * common.h: (SYSMIS) Changed from DBL_MAX to -DBL_MAX.
+ (SYSCODE) New constant macro.
+
+ * descript.q: Checks for positive n_variables before performing
+ analysis.
+
+ * file-handle.q: (get_handle_by_filename) Bug fix: passes &f to
+ avl_find instead of &fp as arg 2.
+
+ * frequencies.g, frequencies.q: Continued updating; now compiles &
+ works again, but not complete.
+
+ * main.c: Changes to user messages.
+
+ * misc.c: (reverse) [0] New function.
+
+ * settings.h: Comment removed. #includes "common.h".
+
+ * som.c: (som_set_null) New function.
+ (som_set_value, som_set_string, som_set_text) More detailing
+ assertions.
+ (som_set_float) Implemented function.
+ (dump_columnated_table) Bug fix regarding page breaks.
+ (draw_cell) Bug fix regarding text that spilled out of a cell.
+ (draw_intersection, draw_horz_rule, draw_vert_rule) No longer draw
+ null lines.
+ (get_cell_size) Support SCON_EMPTY cells.
+ (get_table_size) When calculating rules' widths and heights, mask
+ out SLIN_SPACING bit. Added SOPT_X_HLTL support.
+
+ * som.h: (som_any_cell) New option SOPT_X_HTLT. Removed
+ SOPT_X_SHADE.
+ (struct som_submission_form) New member `header'; all users
+ changed.
+
+ * val-labs.c: (get_label) User messages changed.
+
+ * var.h: Changed FREQUENCIES structures.
+
+ * vars-atr.c: (is_num_user_missing, is_str_user_missing) Made
+ inline.
+
+Fri Jul 19 19:11:13 1996 Ben Pfaff <blp@gnu.org>
+
+ * approx.h: Definition of EPSILON now depends on system's
+ DBL_EPSILON. Removed GNU C specific code.
+ (cmpapx) Renamed approx_compare.
+
+ * frequencies.g, frequencies.q: Continued updating; still doesn't
+ compile.
+
+ * groff-font.c: (name_to_index) Fix bug that kept it from
+ compiling.
+
+ * hash.c, hash.h: Completed work.
+
+ * var.h: Changes to freq_tab, frequencies_proc.
+
+Wed Jul 17 21:23:36 1996 Ben Pfaff <blp@gnu.org>
+
+ New hashing code.
+ * hash.c, hash.h: New files. Not completed.
+ * Makefile.am: Added hash.c to source file list.
+ * font.h: (struct font_desc) New member kern_size_p.
+ * groff-font.c: Uses hash.h.
+ (hashpjw) Moved to hash.c.
+ (next_prime_power) Rewrote, renamed hsh_next_prime, moved to
+ hash.c.
+ (static var hash) New member size_p.
+ * var.h: Includes hash.h.
+ (struct freq_tab) Changed AVL_TREE to hash_tab.
+
+ * vars-prs.c: Comment, formatting fixes.
+
+ * frequencies.g, frequencies.q: Continued updating. Not yet
+ working.
+
+ * formats.c: Bug fix.
+
+Tue Jul 16 22:10:04 1996 Ben Pfaff <blp@gnu.org>
+
+ Increasing parallelism between DESCRIPTIVES and FREQUENCIES.
+ * descript.g: Comment fixes.
+ * descript.q: Comment fixes. Moved some declarations into var.h.
+ Made dsc_info a static table. Updated FIXMEs.
+ (internal_cmd_descriptives) Beautified.
+
+ * frequencies.q: Started updating into working order.
+ * frequencies.g: New file analogous to descript.g.
+ * var.h: Comment fixes. Added structures for FREQUENCIES.
+
+ * som.c: Removed vestiges of crushing and partial table support.
+
+Sun Jul 14 15:45:31 1996 Ben Pfaff <blp@gnu.org>
+
+ * Many more changes to som.c especially, but these will not be
+ documented as I have resolved to remove them. This patchlevel is
+ being released solely so that I can fall back to it if I decide
+ that removing the changes is not a good idea.
+
+Sat Jul 13 09:58:44 1996 Ben Pfaff <blp@gnu.org>
+
+ * som.c: (global var som) New member `cum_y'.
+ (build_target) Properly handles titles for partial tables.
+ (dump_partial_beg, dump_partial_mid, dump_partial_end)
+ Merged into single new function dump_partial(). Fixed problem
+ with titles on partial tables.
+ (dump_table) Calls dump_partial() for all parts of partial tables.
+ (dump_page) Criteria for drawing title changed.
+
+Fri Jul 12 22:03:36 1996 Ben Pfaff <blp@gnu.org>
+
+ * command.c: (cmd_table) Added LIST, WEIGHT.
+
+ * command.c: (cmd_remark) No longer frees `s' since it's not
+ dynamically allocated.
+
+ * data-out.c: (convert_f) Now correctly handles the case where
+ abs(v->f)<1 but v->f rounds to a value of 1.00 given the specified
+ number of decimals.
+ (som_destroy_all_tables) Removed argument. All callers changed.
+ (som_vline, som_hline) Argument validity checking corrected.
+ (som_set_value) Implemented half-heartedly.
+ (replicate_table) Copies tables piece-by-piece when using Checker.
+
+ * som.h: New line style SLIN_1THIN, currently equivalent to
+ SLIN_0. New enum set SOM_SUB_*.
+ (struct som_submission_form) Removed `seq_no'. Added `type'.
+
+ * list.q: Newly working file; uses partial tables.
+
+ * som.c: (som_reduce_table) Renamed som_set_table_height().
+ (som_crush) Removed argument `group'.
+ (global var som) Removed `nt', `seq_no'. Added `type'.
+ (som_submit_table) Arguments changed.
+ (output_table) Removed partial table code.
+ (build_target) New arg; partial table support added. All callers
+ changed.
+ (dump_plain_table) Removed partial table code.
+ (dump_partial_beg, dump_partial_mid, dump_partial_end) New functions.
+ (dump_table) Supports partial tables.
+ (dump_page) New argument to allow not drawing top and/or bottom
+ headers. All callers changed. Supports partial tables.
+
+Sat Jul 6 22:22:25 1996 Ben Pfaff <blp@gnu.org>
+
+ * data-out.c: Changed `#include <approx.h>' to `#include
+ "approx.h".
+ (convert_F) Comment fix. Now won't print `-.000', etc.
+
+ * descript.q: Now Z-scores work, although there appears to
+ be a bug (which might actually be in data-out.c:convert_F()).
+ (descriptives_trns_proc, descriptives_trns_free) New functions.
+ (run_z_pass) Implemented.
+
+ * var.h: Comment fixes.
+ (dsc_z_score, descriptives_trns) New structs.
+ (descriptives_trns) Added to any_trns as `dsc'.
+
+ * error.c, error.h: New error class, IS (Installation Script
+ error), used in those instances where the error is in the
+ installation, but there is a script file or installation file that
+ can be usefully referred to.
+
+ * output.c: Change many IE classes to IS classes.
+
+ * cases.c, command.c, common.c, crosstabs.q, expr-evl.c,
+ frequencies.q, list.q, vars-prs.c, vfm.c: Removed reference to
+ HAVE_MALLOC_H because Borland C++ alloca() is broken, so why
+ include the corresponding header?
+
+ * glob.c: (init_glob) Don't malloc term_buffer under Checker.
+ Don't bail out if termcap can't be read.
+
+ * som.c: (som_destroy_table) Removed.
+ (som_reduce_table, som_destroy_all_tables) New functions.
+ (som_crush) New function, not implemented.
+
+ * som.h: New table option STAB_CRUSH. Comment fix. New struct
+ som_submission_form. Function prototypes revised.
+
+ Outputting huge tables (1000s of rows) a few rows at a time
+ is supported, though untested. May even break everything.
+ Actually, the code doesn't even compile right now.
+ * som.c: (struct som) New fields htv, nt, seq_no.
+ (som_submit_table) Multiple arguments changed to a single
+ pointer to struct submission_form. Only increments subtable_num
+ if seq_no is zero. Only destroys table if it's not going to
+ be reused.
+ (replicate_table) New function.
+ (output_table) Comment fix.
+ (examine_table) Changed inline code to code calling
+ replicate_table(). Calculates htv. Supports partial tables.
+ (draw_title) Removed comment.
+ (build_target) Only allows for title on first part of partial
+ tables.
+ (dump_plain_table) Only resets table chunk number on first part
+ of partial tables; FIXME: doesn't work quite right. Supports
+ partial tables.
+ (dump_page) Titles only on first part of partial tables.
+
+Fri Jul 5 20:16:19 1996 Ben Pfaff <blp@gnu.org>
+
+ * Thanks to an unreliable IDE hard drive, I have spent the last
+ day reconstructing my Debian GNU/Linux installation and redoing
+ the previous day's changes--somehow I managed to save every file
+ except for output.c and output.h. So the following changes could
+ really be considered independent of the output.c, output.h changes
+ from Jul 4.
+
+ * output.h, output.c: Moved the outp_configure_vec global var,
+ outp_names struct, and enum set OUTP_S_* from output.h to output.c.
+ outp_configure_vec is now static.
+
+Thu Jul 4 20:20:24 1996 Ben Pfaff <blp@gnu.org>
+
+ * The entire philosophy behind configuration of the output drivers
+ changed. Now there is a termcap-type configuration where drivers
+ to be read are determined beforehand, rather than parsing the
+ entire output init file and storing it in memory & deciding what
+ to actually use later. Faster & more memory-efficient at the same
+ time, cool.
+
+ * output.c: Comment fix. Removed outp_init_drivers global var.
+ Removed all references to synonyms. New structure outp_defn. New
+ global vars outp_macros, outp_configure_vec.
+ (search_name, delete_name, add_name, check_configure_vec,
+ expand_name, find_defn_value) New static functions.
+ (outp_configure_clear, outp_configure_add, outp_configure_macro,
+ outp_read_devices) New extern functions.
+ (outp_init) Much functionality moved into outp_read_devices.
+ (outp_read_devices) Format of output init file changed; name of
+ file is `devices' rather than `output' to avoid Makefile
+ conflicts.
+ (outp_clear) Renamed outp_done.
+ (outp_list_classes) Bug fix, cleaned up.
+ (outp_list_drivers) Not implemented anymore.
+ (outp_configure_driver) Now a static function; simplified; now
+ interpolates macros; supports new structure.
+ (outp_enable_driver, match_synonym) Removed; all references
+ removed.
+ (find_driver) First argument removed.
+
+ * output.h: Global var outp_init_drivers removed; new structure
+ outp_names; new enum set OUTP_S_*; new global var
+ outp_configure_vec; function prototypes for output.c exports
+ updated.
+
+ * main.c: (main) Calls outp_read_devices() after parsing the
+ command line.
+
+ * cmdline.c: (parse_command_line) New option -v --verbose;
+ --version changed to -V. --device option changed syntax to just
+ take a single device name. Accepts key=value declaration of
+ output init file macros. Syntax message updated.
+
+ * filename.c: (expand_line) New function.
+ (interp_environ_vars) Renamed interp_vars; no longer uses
+ fixed-size buffer.
+ (blp_getenv) Allows $ARCH and $VER pseudo-environment-vars to be
+ overridden by real environment vars.
+ (search_path) Uses verbose_msg() instead of #ifdef'd printf().
+ * filename.h: interp_environ_vars() renamed interp_vars().
+
+ * error.c, error.h: Added extern variable `verbosity', message
+ class MM.
+
+ * error.c: (vmsg) Support message class MM.
+ (verbose_msg) New function.
+
+ * descript.q: (generate_z_varname) Bug fix in generation of
+ Z-score varnames.
+ (dump_z_table) Bug fix in column headers.
+
+ * ascii.c: (ascii_init_driver) Changed minimum number of lines per
+ page from 29 to 15. Don't set a default for ops[OPS_INIT,
+ OPS_DONE]. Writes the uninit string when the driver is closed.
+ (ascii_open_page) Write the init string before the first page.
+ (output_shorts) Form of main loop changed from `while' to `for'.
+ Bug fix with overstrikes: the character is printed *after* the
+ backspace. Eliminated a lot of `& 0xff' modifiers.
+ (advance_to_left_margin) New function.
+ (return_carriage, output_lines) Handle left margin.
+
+Thu Jul 4 00:35:59 1996 Ben Pfaff <blp@gnu.org>
+
+ * ascii.c: New option `carriage-return-style'.
+
+ * ascii.c: (count_fancy_chars) New function.
+ (delineate, text_metrics) Use new function; bug fixes regarding
+ rich text strings.
+ (text_draw) Bug fix with rich text.
+ (output_string, output_shorts) Reordered.
+ (output_shorts) Now handles boxchars and some overstrike font
+ changes.
+ (output_char, return_carriage) New functions.
+ (output_lines) Now handles overstriking and font changes properly;
+ some code moved to output_shorts.
+
+Tue Jul 2 22:13:23 1996 Ben Pfaff <blp@gnu.org>
+
+ [GLOBAL_DEBUGGING]
+ * ascii.c: New member `debug' in ascii_driver_ext.
+ (ascii_init_driver, delineate) Uses new member.
+
+ Now you can set a vertical height on writing text.
+ * ascii.c: (delineate) Keeps track of vertical position.
+ (text_draw) No longer considers fully justified text an internal
+ error.
+
+ * output.h: New flag OUTP_T_VERT; other OUTP_T_ values changed.
+
+ Tables' titles are drawn; they can have variable height.
+ * som.c: `som' struct has new member, title_height.
+ (draw_title) New argument. Moved within file. All caller
+ changed.
+ (build_target) New argument, amount of space needed for first row.
+ Calculates height of title, takes that into account. All callers
+ changed.
+ (dump_plain_table, dump_columnated_table) Took calculation of y1,
+ y2 out of loop.
+ (dump_columnated_table) [GLOBAL_DEBUGGING] Debugging code
+ improved.
+ (dump_columnated_table) Organized for readability.
+ (dump_page) Makes use of som.title_height.
+
+ * som.c: Many comment bug fixes.
+
+ * descript.q: (try_name, generate_z_name) Bug fix regarding
+ generation of Z-score variable names.
+ * var.h: Removed num from descriptives_proc; all referents removed.
+
+Mon Jul 1 22:13:39 1996 Ben Pfaff <blp@gnu.org>
+
+ * ascii.c: (ascii_line_horz, ascii_line_vert,
+ ascii_line_intersection) Added debugging code.
+
+ Added a descriptive line above each table to describe it.
+ * command.c: (parse_cmd) Calls som_new_series.
+
+ * som.c: New static vars table_num, subtable_num. New `som'
+ member `title'.
+ (dump_page) New arguments.
+ (som_submit_table) Handle new variables.
+
+ * som.c, som.h: (som_submit_table) New arguments. All callers
+ changed.
+ (som_new_series) New function.
+ (build_target) Makes room for extra line.
+ (draw_title) New function.
+ (dump_page) Calls draw_title. Bug fix: doesn't always set
+ som.ext->cp to 0.
+
+ Columnation of tables support.
+ * som.h: Deleted fr, lr, ri from som_table. Reorganized.
+
+ * som.c: Deleted references to fr, lr, ri.
+ (som_columnate) Bux fix: sets group member of table.
+ (som_add_options) Function removed.
+ (dump_table) Split into three functions; extensively reworked.
+
+ * descript.q: (dump_z_table) Better output table formatting; added
+ title support to correspond to som.h changes.
+ (display) Title support.
+
+ * output.h: Added OUTP_T_NONE.
+
+Mon Jul 1 13:00:00 1996 Ben Pfaff <blp@gnu.org>
+
+ * descript.q: Improved handling of Z scores; still not perfect.
+
+ * output.h, ascii.c: Added hook for getting em width of current
+ font.
+
+ * som.c: Uses new em-width hook. Added debugging code to
+ several functions.
+ (som_columnate) New argument.
+ (som_add_options) Removed.
+
+Jun 29 17:40:47 1996 Ben Pfaff <blp@gnu.org>
+
+ * som.h, som.c, output.c, output.h, ascii.c: Updated to work with
+ rules as a property of the table instead of as a property of the
+ cells.
+
+ * ascii.c: Added `header' to table of options.
+
+ * descript.q: Added even shorter statistic names; modified to work
+ with new som interface.
+
+ * misc.c (blp_getdelim): Bug fix.
+
+ * version.c: includes 'conf.h'.
+
+----------------------------------------------------------------------
+Local Variables:
+mode: change-log
+version-control: never
+End:
include $(top_srcdir)/src/ui/automake.mk
AM_CPPFLAGS += -I$(top_srcdir)/src -I$(top_srcdir)/lib -DPKGDATADIR=\"$(pkgdatadir)\"
+
+EXTRA_DIST += src/OChangeLog
+++ /dev/null
-2008-07-25 Ben Pfaff <blp@gnu.org>
-
- * casereader-translator.c (struct casereader_arithmetic_sequence):
- New struct.
- (casereader_create_arithmetic_sequence): New function.
- (cas_translate): New function.
- (cas_destroy): New function.
-
-2008-07-26 John Darrington <john@darrington.wattle.id.au>
-
- * case-ordering.c case-ordering.h: Removed the value_cnt
- associated with the ordering structure.
-
-2008-07-16 Jason Stover <jhs@math.gcsu.edu>
-
- * category.c (cat_get_category_count): New function.
-
-2008-05-15 Ben Pfaff <blp@gnu.org>
-
- Patch #6512.
-
- * data-out.c (output_infinite): Use gsl_isnan instead of isnan,
- and gsl_isinf instead of isinf, as a stopgap measure for
- portability until appropriate gnulib modules are available.
-
- * por-file-writer.c (format_trig_double): Similarly, use
- gsl_finite instead of finite.
-
-2008-03-18 John Darrington <john@darrington.wattle.id.au>
-
- * data-in.c: If category is custom currency, then use
- numeric format for input.
-
-2008-03-06 Ben Pfaff <blp@gnu.org>
-
- * dictionary.c (var_name_is_insertable): New function.
- (make_hinted_name): Don't accept variable names that match PSPP
- keywords. Thanks to Jason Stover for reporting the problem.
-
-2008-03-06 Ben Pfaff <blp@gnu.org>
-
- * format-guesser.c (syntax): Require month names to be spelled out
- as English words, so that single characters that happen to be
- Roman numerals don't get detected as months. Thanks to John
- Darrington for reporting this bug.
-
-2008-03-04 Ben Pfaff <blp@gnu.org>
-
- Patch #6441. Reviewed by John Darrington.
-
- * format.c (fmt_fix): New function.
- (fmt_fix_input): New function.
- (fmt_fix_output): New function.
-
- * format.def: Correct minimum width for DATETIME format. It was
- 7, should have been 17.
-
- * automake.mk: Add new files.
-
- * format-guesser.c: New file.
-
- * format-guesser.h: New file.
-
-2008-02-18 Ben Pfaff <blp@gnu.org>
-
- Patch #6426. Reviewed by John Darrington.
-
- * format.c (min_width): Renamed fmt_min_width and made public.
- Updated all references.
- (max_width): Renamed fmt_max_width and made public. Updated all
- references.
- (max_decimals): Renamed fmt_max_decimals and made public. Updated
- all references.
- (var_create): Use the new functions for default variable
- attributes below.
- (var_default_formats): New function.
- (var_default_measure): New function.
- (var_default_alignment): New function.
-
- * format.h (macro FMT_MAX_NUMERIC_WIDTH): New macro.
-
-2008-02-09 Ben Pfaff <blp@gnu.org>
-
- Add a couple of extensions to GET DATA TYPE=TXT. Patch #6412.
- Thanks to John Darrington for review.
-
- * data-in.c (data_in): Add new argument to designate the last
- column of the data field being parsed, for use in error messages.
- Update all callers.
-
- * data-parser (struct data_parser): New member `quote_escape'.
- (data_parser_create): Initialize quote_escape.
- (data_parser_set_quotes): New function.
- (cut_field): Support escaped quotes.
- (parse_delimited_span): Ditto.
- (parse_delimited_no_span): Ditto.
-
- * get-data.c (parse_get_txt): Support ESCAPE extension subcommand
- in enhanced mode. Only support multiple quote characters in
- enhanced mode.
-
-2008-02-06 John Darrington <john@darrington.wattle.id.au>
-
- psql-reader.c psql-reader.h: Read more than one tuple at
- once. Fix bug reading a query which returns no data. Fix bug
- when transformation followed a reader.
- Ask the server for the number of records in the query, for the
- benefit of the gui.
-
-2008-02-05 John Darrington <john@darrington.wattle.id.au>
-
- psql-reader.c: So yesterday they release postgresql 8.3.0
- which has money represented with 64 bits. They must get
- paid more than me.
-
-2008-02-02 John Darrington <john@darrington.wattle.id.au>
-
- psql-reader.c psql-reader.h: New files. Thanks to Ben Pfaff
- for reviewing this code.
-
-2008-02-02 Ben Pfaff <blp@gnu.org>
-
- Patch #6347.
-
- * sys-file-reader.c (read_variable_record): Allow missing values
- to be specified on long string variables, but warn about them
- because PSPP does not yet support them.
- (read_extension_record): Ignore extension records 20 and 21, which
- PSPP does not yet support.
- (read_header): Fix error message when floating-point format cannot
- be identified.
-
-2008-02-01 Ben Pfaff <blp@gnu.org>
-
- Patch #6386. Thanks to John Darrington for review and for the
- updates to gnumeric-reader.c.
-
- * dictionary.c (make_hinted_name): New function.
- (make_numeric_name): New function.
- (dict_make_unique_var_name): New function.
-
- * gnumeric-reader.c (devise_name): Removed.
- (munge_name): Removed.
- (gnumeric_open_reader): Use new function
- dict_make_unique_var_name.
-
- * short-names.c (set_var_short_name_suffix): Use new function
- str_format_26adic.
-
-2008-01-19 John Darrington <john@darrington.wattle.id.au>
-
- * settings.c settings.h: Moved static variables into a
- single struct. Renamed functions to have a settings_ prefix.
-
-2008-01-14 John Darrington <john@darrington.wattle.id.au>
-
- * data-out.c (output_AHEX): Corrected number of bytes in
- call to output_hex. Closes bug #22011
-
-2008-01-02 John Darrington <john@darrington.wattle.id.au>
-
- * variable.c variable.h: Replaced var_get_value_name with
- var_append_value_name which doesn't use any static data.
- Thanks to Ben for review.
-
-2007-12-07 Ben Pfaff <blp@gnu.org>
-
- Patch #6302.
-
- * casegrouper.c (casegrouper_get_next_group): Cause a casegrouper
- made from an empty casereader produce a casegrouper with no
- groups, instead of one with one group that has no cases.
-
- * casereader.c (casereader_is_empty): New function.
-
-2007-12-06 Ben Pfaff <blp@gnu.org>
-
- Patch #6303.
-
- * sys-file-reader.c (read_display_parameters): Handle variable
- display parameters record with only 2 data items per variable.
- Reported by Guido Gay <gay@irer.it>.
-
-2007-12-04 Ben Pfaff <blp@gnu.org>
-
- * identifier.c (lex_id_match_n): New function.
- (lex_id_match): Reimplement in terms of lex_id_match_n.
-
-2007-11-24 Ben Pfaff <blp@gnu.org>
-
- * automake.mk (src_data_libdata_a_SOURCES): Add val-type.h, to fix
- make distcheck.
-
-2007-11-24 Ben Pfaff <blp@gnu.org>
-
- Fix warning reported when reading back system files that include
- very long string variables. Thanks to Guido Gay <gay@irer.it> for
- reporting this bug.
-
- * short-names.c (short_names_assign): Fix dumb typo, in which `i'
- was written where `j' was meant.
-
-2007-11-18 Ben Pfaff <blp@gnu.org>
-
- Properly write variables that include a range of missing values to
- system files. Thanks to Guido Gay <gay@irer.it> for reporting
- this bug.
-
- * sys-file-writer.c (write_variable): Correctly calculate
- n_missing_values field when writing variables that include a range
- of missing values.
-
-2007-11-10 Ben Pfaff <blp@gnu.org>
-
- Cleanups and bug fixes devised while writing up documentation.
- Patch #6262.
-
- * automake.mk (src_data_libdata_a_SOURCES): Add new files.
-
- * dict-class.c: New file.
- (dict_class_from_id): Move here.
- (dict_class_to_name): Move here.
-
- * dict-class.h: New file.
- (enum dict_class): Move here. Change from consecutive integers to
- consecutive bits, to make testing for any of multiple values
- easier. Add new DC_ALL constant.
-
- * dictionary.c (struct dictionary): Change `case_limit' from
- size_t to casenumber.
- (dict_get_vars): Make final argument an enum dict_class.
- (dict_get_vars_mutable): Ditto.
- (dict_get_case_limit): Change return value to casenumber.
- (dict_set_case_limit): Change final argument to a casenumber.
- (dict_unset_split_var): Add assertion. Rephrase slightly.
- (dict_set_label): Use xstrndup to simplify.
-
- * format.c (fmt_step_width): AHEX format also needs 2-byte
- stepping.
- (fmt_set_style): Simplify assertions.
-
- * missing-values.c (mv_add_num_range): Rename mv_add_range.
- Simplify implementation.
- (mv_has_value): Simplify implementation.
- (mv_pop_value): Remove the first value, not the last, to avoid
- having GET followed by SAVE reverse the order of missing values.
- (mv_peek_value): Rename mv_get_value. Simplify assertion.
- (mv_has_range): Simplify implementation.
- (mv_peek_range): Rename mv_get_range.
- (can_resize_string): Removed.
- (mv_is_resizable): Use value_is_resizable.
- (mv_resize): Use value_resize.
-
- * short-names.h (SHORT_NAME_LEN): Move here.
-
- * val-type.h: New file, for definitions related to type and width
- of abstract values. Before, these definitions were mixed among
- those related to "union value" and those related to variables.
- (macro SYSMIS): Move here.
- (macro LOWEST): Move here.
- (macro HIGHEST): Move here.
- (macro MAX_STRING); Move here.
- (enum val_type): New enum with values VAL_NUMERIC and VAL_STRING.
- Replaces enum var_type that had values VAR_NUMERIC and VAR_STRING.
- All references updated.
- (val_type_is_valid): New function. Replaces var_type_is_valid.
- All references updated.
- (val_type_from_width): New function. Replaces
- var_type_from_width. All references updated.
-
- * value-labels.c (val_labs_copy): Renamed val_labs_clone. All
- references updated.
- (val_labs_can_set_width): Use value_is_resizable.
- (val_labs_add): Simply return false if the value labels set is too
- wide, instead of having undefined behavior.
- (val_labs_replace): Ditto.
- (val_labs_replace): Ditto.
- (val_labs_first): Set iterator to null if iteration is complete.
- (val_labs_first_sorted): Ditto.
- (val_labs_done): Become a no-op if the iterator is null.
-
- * value.c (value_is_resizable): New function.
- (value_resize): New function.
-
- * variable.c (var_get_dict_class): New function.
-
- * variable.h (macro LONG_NAME_LEN): Rename VAR_NAME_LEN. Update
- all references.
-
-2007-11-08 Ben Pfaff <blp@gnu.org>
-
- * data-in.c: Make formatted data parsing locale-independent.
- (parse_number): Use c_strtod instead of strtod, to avoid
- locale-specific behavior.
- (parse_Z): Ditto.
-
-2007-11-06 Ben Pfaff <blp@gnu.org>
-
- Patch #6256: add support for binary, 360 file formats. Reviewed
- by John Darrington.
-
- * data-in.c (struct data_in): Add `encoding' member.
- (data_in): Add `encoding' parameter, and re-encode the data passed
- in where appropriate. Update all callers to pass it in.
- (parse_A): Implement EBCDIC recoding wart described in manual.
- (parse_AHEX): Implement EBCDIC recoding.
-
- * data-out.c (data_out_legacy): New function.
- (data_out): Make into a wrapper around data_out_legacy.
-
- * file-handle-def.c (struct file_handle): New member `encoding'.
- (fh_create_file): Set encoding.
- (fh_default_properties): Set default encoding.
- (fh_get_legacy_encoding): New function.
-
- * file-handle-def.h (enum fh_mode): New modes FH_MODE_FIXED
- (that replaces FH_MODE_BINARY), FH_MODE_VARIABLE,
- FH_MODE_360_VARIABLE, FH_MODE_360_SPANNED.
- (struct fh_properties): New member `encoding'.
-
-2007-11-05 Ben Pfaff <blp@gnu.org>
-
- Patch #6258. Reviewed by John Darrington.
-
- * file-handle-def.c (fh_lock): Add comment that TYPE should be
- marked with N_() in the caller. Added these markings to each
- caller too. Should make i18n easier.
- Suggested by Chusslove Illich <caslav.ilic@gmx.net>.
-
-2007-11-03 Ben Pfaff <blp@gnu.org>
-
- Allow output files to overwrite input files (bug #21280).
-
- * file-handle-def.c: Separate locking of files for input and for
- output, to allow both to take place at once. Also, distinguish a
- file handle from the identity of the underlying file, because the
- identity of a file changes over time and the file handle can't
- represent two different identities.
- (struct file_handle): Remove `next', `open_cnt', `deleted',
- `type', `open_mode', `aux', `identity' members. Change `id' from
- char array to char *. Add `ref_cnt' member.
- (file_handle_from_ll) New function.
- (file_handles) Removed.
- (named_handles) New variable.
- (fh_init) Initialize named_handles.
- (fh_done) Remove name from all named_handles.
- (free_handle) Updated for modified struct file_handle.
- (unname_handle) New function.
- (fh_ref) New function.
- (fh_from_file_name) Removed.
- (fh_unref) New function.
- (fh_unname) New function.
- (fh_from_id) Rewritten.
- (create_handle) Updated for modified struct file_handle.
- (fh_inline_file) Increment the handle's ref count.
- (fh_create_file) Updated for modified struct file_handle.
- (fh_create_scratch) Ditto.
- (fh_free) Removed.
- (mode_name) Removed.
- (fh_open) Removed.
- (fh_close) Removed.
- (fh_is_open) Removed.
- (fh_get_id) Updated for modified struct file_handle.
- (fh_get_default_handle) Increment the handle's ref count.
- (fh_set_default_handle) Handle ref counts.
- (struct fh_lock) New structure.
- (locks) New static var.
- (fh_lock) New function.
- (fh_unlock) New function.
- (fh_lock_get_aux) New function.
- (fh_lock_set_aux) New function.
- (fh_is_locked) New function.
- (make_key) New function.
- (free_key) New function.
- (compare_fh_locks) New function.
- (hash_fh_lock) New function.
-
- * file-handle-def.h (enum fh_access) New enum.
-
- * file-name.c: Made file_identity the same in all supported
- environments.
- (struct file_identity): New `name' member.
- (fn_get_identity): For a file that doesn't exist, get the
- dev/inode of its directory plus its name. If even the directory
- doesn't exist, just use its name. Merge the Windows
- implementation into the Unix one.
- (fn_compare_file_identities): Rewritten. Merge the Windows
- implementation into the Unix one.
- (fn_hash_identity): New function.
-
- * make-file.c (struct replace_file): New structure.
- (all_files): New static var.
- (replace_file_start): New function.
- (replace_file_commit): New function.
- (replace_file_abort): New function.
- (free_replace_file): New function.
- (unlink_replace_files): New function.
-
- * por-file-reader.c (struct pfm_reader): Add `lock' member.
- (close_reader): Unlock file.
- (pfm_open_reader): Lock file.
-
- * por-file-writer.c (struct pfm_writer): Add fh_lock, replace_file
- members.
- (pfm_open_writer): Lock file and prepare for its replacement.
- (close_writer): Unlock file.
-
- * scratch-handle.h (struct scratch_handle): Add unique_id so that
- different generations of a scratch file can be distinguished.
-
- * scratch-reader.c (scratch_reader_open): Verify that the file is
- a scratch file.
-
- * scratch-writer.c (struct scratch_writer): Add `lock' and `dict',
- remove scratch_handle member.
- (scratch_writer_open): Lock handle. Prepare to replace handle
- data, instead of doing it immediately.
- (scratch_writer_casewriter_destroy): Replace handle data and
- unlock handle.
-
- * sys-file-reader.c (struct sfm_reader): Add `lock' member.
- (sfm_open_reader): Lock file.
- (close_reader): Unlock file.
-
- * sys-file-writer.c (struct sfm_writer): Add fh_lock, replace_file
- members.
- (sfm_open_writer): Lock file and prepare for its replacement.
- (close_writer): Unlock file.
-
-2007-11-02 Ben Pfaff <blp@gnu.org>
-
- * data-out.c (output_number): Use isfinite (from C99) instead of
- gsl_isfinite, since we now have universal support for it in
- gnulib.
- (output_infinite): Ditto.
- [!HAVE_ROUND] (round): Remove definition, since we now have a
- replacement in gnulib.
-
-2007-10-27 John Darrington <john@darrington.wattle.id.au>
-
- * dictionary.c: Fixed bug in dict_clone, where the vardict.dict member
- wasn't initialised correctly. Closes bugs #21330 and 21397
-
-
-2007-10-08 Ben Pfaff <blp@gnu.org>
-
- Fix bug #21280. Thanks to John Darrington for review.
-
- * file-name.c (create_stream): New function.
-
- * por-file-writer.c (pfm_open_writer): Use fh_open to open the
- file handle before creating the file, to ensure that we don't
- truncate a file that we're reading. Make code easier to read by
- using create_stream.
-
- * sys-file-write.c (sfm_open_writer): Ditto.
-
-2007-10-01 Ben Pfaff <blp@gnu.org>
-
- Fix bug #21192. Thanks to John Darrington for review.
-
- * casereader.c (casereader_read): Decrement case_cnt before
- calling the casereader's "read" member function, so that we
- interact properly with lazy_casereader.
-
- * datasheet.c: Add regression test for above bug fix.
- (clone_datasheet): New function.
- (lazy_callback): New function.
- (check_datasheet_casereader): New function.
- (check_datasheet): Check datasheet contents are reported correctly
- through an ordinary casereader and a lazy casereader.
- (clone_model): Use clone_datasheet.
-
-2007-09-24 Ben Pfaff <blp@gnu.org>
-
- Patch #6210. Reviewed by John Darrington.
- * settings.c: Drop "long view", which is not needed any longer.
- (static var long_view): Removed.
- (force_long_view): Removed.
- (get_viewwidth): Removed.
- (init_viewport): Removed long_view reference.
-
-2007-09-19 John Darrington <john@darrington.wattle.id.au>
-
- * settings.c settings.h: Changed viewport's length and width to be
- owned by the user interface which uses the data library. This allows
- better abstraction, and makes dynamically adjustable dimensions easier.
-
-2007-09-18 Ben Pfaff <blp@gnu.org>
-
- * procedure.c (proc_extract_active_file_data): New function.
-
- * lazy-casereader.h: New file.
-
- * lazy-casereader.c: New file.
-
- * casereader.c (casereader_dynamic_cast): New function.
-
-2007-09-14 Ben Pfaff <blp@gnu.org>
-
- * dictionary.c (dict_clone): Copy case indexes from cloned
- dictionary. Fixes bug #21061. Reviewed by John Darrington.
-
-2007-09-13 John Darrington <john@darrington.wattle.id.au>
-
- * value.c value.h (create_value): New function.
-
-2007-09-12 Ben Pfaff <blp@gnu.org>
-
- Make it clear that translator casereader and casewriter translate
- functions are supposed to destroy their input case.
-
- * casereader-translator.c (struct casereader_translator): Change
- input case parameter of translate member function from const
- struct ccase * to struct ccase *.
- (casereader_create_translator): Ditto, for translate parameter.
-
- * casewriter-translator.c (struct casewriter_translator): Ditto.
- (casewriter_create_translator): Ditto.
-
-2007-08-27 John Darrington <john@darrington.wattle.id.au>
-
- * sys-file-reader.c (read_display_parameters): Force display width
- to 8, if the sys file says 0 (like SPSS does).
-
-2007-08-12 Ben Pfaff <blp@gnu.org>
-
- * dictionary.c (dict_dump): New function.
-
-2007-08-12 Ben Pfaff <blp@gnu.org>
-
- Drop dict_compactor in favor of using the new struct case_map.
-
- * dictionary.c (struct copy_map): Removed.
- (struct dict_compactor): Removed.
- (dict_make_compactor): Removed.
- (dict_compactor_compact): Removed.
- (dict_compactor_destroy): Removed.
-
- * procedure.c (struct data_set): Change `compactor' member to be a
- struct case_map *.
- (proc_open): Use case_map_to_compact_dict instead of
- dict_make_compactor.
- (proc_casereader_read): Use case_map_execute instead of
- dict_compactor_compact.
- (proc_commit): Use case_map_destroy instead of
- dict_compactor_destroy.
-
- * scratch-writer.c (struct scratch_writer): Change `compactor'
- member to be a struct case_map *.
- (scratch_writer_open): Use case_map_to_compact_dict instead of
- dict_make_compactor.
- (scratch_writer_casewriter_write): Use case_map_execute instead of
- dict_compactor_compact.
-
-2007-08-12 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Add case-map.c, case-map.h.
-
- * case-map.c: New file.
-
- * case-map.h: New file.
-
-2007-08-12 Ben Pfaff <blp@gnu.org>
-
- * dictionary.c (dict_compact_values): Don't delete scratch
- variables as well as compacting case indexes. Update all callers.
- (dict_get_compacted_value_cnt): Rename dict_count_values and
- change interface. Update all callers.
- (dict_get_compacted_value_cnt): Remove.
- (dict_compacting_would_shrink): Remove.
- (dict_compacting_would_change): Remove.
- (dict_make_compactor): Add new parameter. Update all callers.
-
- * procedure.c (proc_casereader_read): Use casewriter_get_value_cnt
- instead of dict_count_values, changing an O(N) operation into
- O(1).
-
-2007-08-12 Ben Pfaff <blp@gnu.org>
-
- * casereader.c (casereader_read): Don't require cases read by a
- casereader to be exactly the expected size: as long as they're big
- enough, it's OK.
-
-2007-08-12 Ben Pfaff <blp@gnu.org>
-
- Make casewriters keep track of the number of `union value's in
- each case. This is useful for two reasons: casewriter_write can
- then check that the case being written is large enough, and later
- recipients of the casewriter can determine the size of the case.
-
- * casewriter-translator.c (casewriter_create_translator): Add
- value_cnt parameter.
-
- * casewriter.c (struct casewriter): Add value_cnt member.
- (casewriter_write): Check that the case passed in is big enough.
- (casewriter_get_value_cnt): New function.
- (casewriter_create): Add value_cnt parameter.
-
-2007-08-09 Ben Pfaff <blp@gnu.org>
-
- Fix bug reported by Jason Stover.
- * settings.c: Move get_termcap_viewport and in particular the
- #include for <curses.h> to the end of the file. curses.h
- redefines bool on some systems (e.g. OpenBSD), which causes
- disagreement between uses of bool before its inclusion and
- afterward.
- Tested by Jason Stover.
-
-2007-07-29 Ben Pfaff <blp@gnu.org>
-
- Provisional fix for bug #18692 and bug #20161. Reviewed by John
- Darrington.
-
- * file-name.c (fn_open): Only pass "r" or "w" to popen as mode
- argument (never "rb" or "wb") because SUSv3 says that only those
- modes are defined, and glibc in fact rejects other modes.
-
- Open portable files with fn_open so that they can be read from
- pipes. Fix missing fh_close call to go along with fh_open.
- Report an error if the file close reports an error.
- * por-file-reader.c (close_reader): New function.
- (por_file_casereader_destroy): Use close_reader.
- (pfm_open_reader): Open file with fn_open.
-
-2007-07-28 Ben Pfaff <blp@gnu.org>
-
- Make PSPP able to read all the portable files I could find on the
- web. Thanks to John Darrington for review. Bug #17620.
- * por-file-reader.c (struct pfm_reader): New member `line_length'.
- (error): Print file offset in hexadecimal.
- (warning): New function.
- (advance): Treat lines less than 80 bytes long as padded to 80
- bytes with spaces.
- (pfm_open_reader): Call read_documents if we find an "E" record.
- (convert_format): Convert invalid formats to the default format
- instead of aborting reading the file.
- (read_variables): Rename duplicate variable names instead of
- aborting reading the file.
- (read_value_label): Allow string variables of different widths to
- be assigned value labels in the same record. Replace duplicate
- value labels instead of aborting.
- (read_documents): New function.
-
- * por-file-writer.c (pfm_open_writer): Call write_documents if the
- dictionary has documents.
- (write_documents): New function.
-
-2007-07-25 Ben Pfaff <blp@gnu.org>
-
- Fix bugs related to bug #17213.
-
- * settings.c: Use HAVE_LIBNCURSES instead of HAVE_LIBTERMCAP,
- since the former is what config.h has. Include the needed ncurses
- headers.
- (static var echo) Rename to `do_echo' because the original name is
- the same as an ncurses identifier.
- (get_termcap_viewport) Use error instead of msg.
-
- * file-name.c (fn_interp_vars): Fix interpolation of $VARS.
- (fn_close): Don't close stdin, stdout, stderr.
-
-2007-07-26 John Darrington <john@darrington.wattle.id.au>
-
- * procedure.c procedure.h: Added callbacks which get invoked whenever
- a dataset's transformation chain changes.
-
-2007-07-24 Ben Pfaff <blp@gnu.org>
-
- Fix bug #6113.
- * sys-file-writer.c (write_variable_display_parameters): Use new
- var_default_display_width function to choose display width of
- segments after the first one in a given variable.
- * variable.c (var_create): Use var_default_display_width to pick
- new variable's display width.
- (var_default_display_width): New function.
- Reviewed by John Darrington.
-
-2007-07-24 Ben Pfaff <blp@gnu.org>
-
- Fix bug #20427.
- * por-file-writer.c (write_variables): Write weight variable.
- Reviewed by John Darrington.
-
-2007-07-23 Ben Pfaff <blp@gnu.org>
-
- Improvements to system file reader and writer.
-
- First, move all detailed knowledge of very long strings into
- sys-file-private.[ch], so that this nasty stuff can be isolated.
-
- * sys-file-private.c (REAL_VLS_CHUNK): New macro.
- (EFFECTIVE_VLS_CHUNK): New macro.
- (min_int): New function.
- (max_int): New function.
- (sfm_width_to_bytes): Rewrite.
- (sfm_width_to_octs): New function.
- (sfm_segment_alloc_width): New function.
- (sfm_segment_alloc_bytes): New function.
- (sfm_segment_used_bytes): New function.
- (sfm_segment_offset): New function.
- (sfm_segment_effective_offset): New function.
- (sfm_dictionary_to_sfm_vars): New function.
-
- * sys-file-private.h (MIN_VERY_LONG_STRING): Removed.
- (EFFECTIVE_LONG_STRING_LENGTH): Removed.
- (struct sfm_var): New structure.
-
- Next, improvements to the system file reader.
-
- * sys-file-reader.h (struct sfm_read_info): Changed `case_cnt' to
- type casenumber. Added `version_major', `version_minor',
- `version_revision'.
-
- * sys-file-reader.c (struct sfm_reader): Replaced `flt64_cnt' by
- `oct_cnt'. Rename `vars', `var_cnt' to `sfm_vars', `sfm_var_cnt'.
- Change `case_cnt' to type casenumber. Removed `has_vls'.
- (struct sfm_var): Removed.
- (sfm_open_reader): Don't warn on wrong case size if the file was
- written by SPSS 13, which tends to get it wrong. Use
- sfm_dictionary_to_sfm_vars.
- (read_header): Always output system file info.
- (read_variable_record): Simplify code for reading missing values.
- (read_machine_int32_info): Save version numbers from system file
- into info struct passed as new argument.
- (read_long_string_map): Restructured to use new sys-file-private
- functions.
- (read_value_labels): Use size_overflow_p.
- (sys_file_casereader_read): Get rid of distinction between fast
- and slow paths. Use information provided by sys-file-primate's
- struct sfm_var to simplify code.
- (skip_whole_strings): New function.
- (read_int32): Renamed read_int. Changed return value to int.
- Updated all callers.
- (read_flt64): Renamed read_float. Changed return value to
- double. Updated all callers.
- (int32_to_native): Removed. Changed callers to use
- integer_convert.
- (flt64_to_double): Removed. Changed callers to use float_convert.
-
- Finally, get rid of int32, flt64 terminology and types in system
- file writer. The former wasn't very useful since a POSIX "int"
- can hold the whole range of int32 and we generally didn't have a
- need for it to be exactly-32-bits, just at-least-32-bits. The
- latter was inconvenient because we had to assume that it could be
- different from double and thereby convert special values SYSMIS,
- HIGHEST, LOWEST to and from it in multiple places. Instead, now
- we just use "int" and "double" in most places, and do conversions,
- if necessary, very close to where we do I/O. This change meant
- that the writer code couldn't represent records in the file as C
- structs any longer, but that's no great loss. The code actually
- seems to be more readable without them.
-
- Simplify the compression buffering code: only buffer as much as
- necessary, which is no more than eight 8-byte units at any given
- time.
-
- * sys-file-writer.c (typedef flt64): Removed.
- (macro second_lowest_flt64): Removed.
- (struct sysfile_header): Removed.
- (struct sysfile_variable): Removed.
- (struct sfm_writer): Removed `needs_translation', `has_vls',
- `flt64_cnt'. Changed `compress' to type bool and `case_cnt' to
- type casenumber. Renamed `vars' to `sfm_vars', `var_cnt' to
- `sfm_var_cnt'. Replaced `buf', `end', `ptr', `x', `y' for
- compression buffering by `opcodes', `opcode_cnt', `data',
- `data_cnt'. Renamed `var_cnt_vls' as `segment_cnt'.
- (sfm_open_writer): Use sfm_dictionary_to_sfm_vars. Use simple
- data writer functions instead of structures.
- (calc_oct_idx): New function.
- (write_header): Use simple data writer functions instead of
- structures.
- (write_format_spec): Renamed write_format. New argument.
- (write_variable_continuation_records): New function.
- (write_variable): Use simple data writer functions instead of
- structures. Use write_variable_continuation_records. Write
- entire very long string instead of requiring caller to understand
- them.
- (write_value_labels): Use simple data writer functions instead of
- structures.
- (write_documents): Ditto.
- (write_variable_display_parameters): Use sys-file-private
- functions to simplify. Use simple data writer functions instead
- of structures.
- (write_vls_length_table): Use simple data writer functions instead
- of structures.
- (write_longvar_table): Ditto.
- (write_rec_7_34): Break into new functions
- write_integer_info_record, write_float_info_record. Use simple
- data writer functions instead of structures.
- (buf_write): Removed.
- (append_string_max): Removed.
- (ensure_buf_space): Removed.
- (sys_file_casewriter_write): Get rid of the distinction between
- fast and slow paths, which didn't seem to be too useful. Use new
- functions write_case_uncompressed, write_case_compressed.
- (put_instruction): Removed.
- (put_element): Removed.
- (write_compressed_data): Removed.
- (close_writer): Use flush_compressed. Only write case count to
- system file if it will fit in the field.
- (write_case_compressed): New function.
- (write_case_uncompressed): New function.
- (flush_compressed): New function.
- (put_cmp_opcode): New function.
- (put_cmp_number): New function.
- (write_int): New function.
- (convert_double_to_output_format): New function.
- (write_float): New function.
- (write_value): New function.
- (write_string): New function.
- (write_bytes): New function.
- (write_zeros): New function.
- (write_spaces): New function.
-
- Reviewed by John Darrington.
-
-2007-07-22 Ben Pfaff <blp@gnu.org>
-
- Don't try to write very long strings to portable files. The
- format does not support it.
-
- * por-file-writer.c (MAX_POR_WIDTH): New macro.
- (pfm_open_writer): Limit output width to MAX_POR_WIDTH.
- (write_format): Add arg to take width to resize format to.
- (write_value): Limit width of value written to MAX_POR_WIDTH.
- (write_variables): Limit width of variable and its output formats
- to MAX_POR_WIDTH.
- Reviewed by John Darrington.
-
-2007-07-22 Ben Pfaff <blp@gnu.org>
-
- * sys-file-reader.c (read_variable_to_value_map): Use max_warnings
- local variable instead of literal 5.
- Reviewed by John Darrington.
-
-2007-07-22 Ben Pfaff <blp@gnu.org>
-
- Fix problems with uniqueness of short names in system files with
- very long string variables. Now a variable may have multiple
- short names.
-
- * automake.mk (src_data_libdata_a_SOURCES): Add new files
- short-names.c, short-names.h.
-
- * dictionary.c (dict_clone): Clone all the short names.
- (compare_strings): Move into short-names.c.
- (hash_strings): Ditto.
- (set_var_short_name_suffix): Ditto.
- (dict_assign_short_names): Ditto, rename short_names_assign,
- change to assign all short names.
-
- * por-file-writer.c (write_variables): Use short_names_assign
- instead of dict_assign_short_names.
-
- * short-names.c: New file.
-
- * short-names.h: New file.
-
- * sys-file-private.c (sfm_width_to_segments): New function.
-
- * sys-file-reader.c (read_long_var_name_map): Save and restore all
- the short names, not just the first one.
-
- * sys-file-writer.c (cont_var_name): Removed.
- (sfm_open_writer): Use short_names_assign instead of
- dict_assign_short_names. Use unique short names assigned by
- short_names_assign instead of those generated by cont_var_name.
-
- * variable.c (struct variable): Remove `short_name' member,
- replace by `short_names' and `short_name_cnt'.
- (var_create) Initialize new members.
- (var_get_short_name_cnt): New function.
- (var_get_short_name): Now takes an index argument. Changed most
- callers to pass 0.
- (var_set_short_name): Ditto.
- (var_clear_short_name): Renamed var_clear_short_names, changed to
- clear all short names.
-
- Reviewed by John Darrington.
-
-2007-07-22 Ben Pfaff <blp@gnu.org>
-
- * variable.c (var_set_width): Use new var_set_width function.
-
- * missing-values.c (mv_n_values): Drop assertion, which was not
- needed.
-
- * format.c (fmt_default_for_width): New function.
- (fmt_resize): New function.
-
- Reviewed by John Darrington.
-
-2007-07-18 John Darrington <john@darrington.wattle.id.au>
-
- * datasheet.c (datasheet_delete_columns): Added assertion to check
- we're not deleting outside the range of the sheet.
-
-
- * dictionary.c dictionary.h variable.c: Added the ability for string
- variables to be resized.
-
- * vardict.h: Added some prototypes (moved from dictionary.h) as
- these should only be called by variable.c
-
-
-2007-07-14 John Darrington <john@darrington.wattle.id.au>
-
- * sfm-reader.c: Respect case_cnt field in file header.
-
-2007-07-01 John Darrington <john@darrington.wattle.id.au>
-
- * transformation.c transformation.h (trns_chain_execute): Changed the
- signature (Patch #6057)
-
-2007-06-10 Ben Pfaff <blp@gnu.org>
-
- * casereader-filter.c (casereader_filter_destroy): Make sure to
- write all the remaining excluded cases to the casewriter, if any.
-
- * caseinit.c (init_list_destroy): Rewrite.
- (init_list_clear): Ditto.
-
- * casegrouper.c (casegrouper_get_next_group): Always set *reader
- to null when returning false.
-
-2007-06-06 Ben Pfaff <blp@gnu.org>
-
- Actually implement the new procedure code and adapt all of its
- clients to match. Also adapt all of the other case sources and
- sinks in the tree and their clients to use the
- casereader/casewriter infrastructure.
-
- * automake.mk: Add and remove files.
-
- * any-reader.c: Change into a casereader.
- * por-file-reader.c: Ditto.
- * scratch-reader.c: Ditto.
- * sys-file-reader.c: Ditto.
-
- * any-writer.c: Change into a casewriter.
- * por-file-writer.c: Ditto.
- * scratch-writer.c: Ditto.
- * sys-file-writer.c: Ditto.
-
- * procedure.c: Change to use casereader, casewriter, caseinit, and
- other new infrastructure.
-
- * scratch-handle.c: Adapt to new infrastructure.
-
- * case-sink.c: Removed, now dead code.
- * case-sink.h: Ditto.
- * case-source.c: Ditto.
- * case-source.h: Ditto.
- * casefile-factory.c: Ditto.
- * casefile-private.h: Ditto.
- * casefile.c: Ditto.
- * casefile.h: Ditto.
- * casefilter.c: Ditto.
- * casefilter.h: Ditto.
- * fastfile.c: Ditto.
- * fastfile.h: Ditto.
- * fastfile-factory.c: Ditto.
- * fastfile-factory.h: Ditto.
- * storage-stream.c: Ditto.
- * storage-stream.h: Ditto.
-
-2007-06-06 Ben Pfaff <blp@gnu.org>
-
- Add datasheet code.
-
- * automake.mk: Add new files.
-
- * datasheet.c: New file.
-
- * datasheet.h: New file.
-
-2007-06-06 Ben Pfaff <blp@gnu.org>
-
- Until now, the procedure code has provided a case to the
- case_source, which has filled in the data values that come from
- the active file. "Left" data values that don't come from the
- active file naturally stay the same from case to case, because the
- procedure code keeps using that same case.
-
- One of the compromises that comes with the new procedure code is
- that the active file allocates and provides its own case, which
- the procedure code then has to resize to provide room for any
- other variables that should go in the case and then fill in the
- values of "left" variables. Then, when we're done with that case,
- we have to save the values of "left" variables to copy into the
- next case read from the active file.
-
- The caseinit code helps with this.
-
- * automake.mk: Add new files.
-
- * caseinit.c: New file.
-
- * caseinit.h: New file.
-
-2007-06-06 Ben Pfaff <blp@gnu.org>
-
- * value.h (value_cnt_from_width): New function.
-
- * variable.c (var_get_value_cnt): Use new function.
-
-2007-06-06 Ben Pfaff <blp@gnu.org>
-
- Add casegrouper, to allow cases read from a given casereader to be
- broken into groups, each of which has its own casereader.
- Generally cases are grouped based on having equal values for some
- set of variables.
-
- * automake.mk: Add new files.
-
- * casegrouper.c: New file.
-
- * casegrouper.h: New file.
-
-2007-06-06 Ben Pfaff <blp@gnu.org>
-
- Add interface to lexicographical ordering of cases.
-
- * automake.mk: Add new files.
-
- * case-ordering.c: New file.
-
- * case-ordering.h: New file.
-
-2007-06-06 Ben Pfaff <blp@gnu.org>
-
- Add casereaders and casewriters, the basis of the new data processing
- implementation. A casereader is a uniform interface to reading cases
- from a data source; a casewriter is a uniform interface to writing
- cases to a data sink.
-
- * automake.mk: Add new files.
-
- * casereader-filter.c: New file.
-
- * casereader-provider.h: New file.
-
- * casereader-translator.c: New file.
-
- * casereader.c: New file.
-
- * casereader.h: New file.
-
- * casewriter-provider.h: New file.
-
- * casewriter-translator.c: New file.
-
- * casewriter.c: New file.
-
- * casewriter.h: New file.
-
-2007-06-06 Ben Pfaff <blp@gnu.org>
-
- "casewindow" data structure that extends the deque (from libpspp)
- of cases with the ability to dump cases to disk if we get too many
- of them in memory.
-
- * automake.mk: Add new files.
-
- * casewindow.c: New file.
-
- * casewindow.h: New file.
-
-2007-06-06 Ben Pfaff <blp@gnu.org>
-
- sparse_cases data structure that augments a sparse_array of cases
- with the ability to dump cases to disk if we get too many cases in
- memory.
-
- * automake.mk: Add new files.
-
- * sparse-cases.c: New file.
-
- * sparse-cases.h: New file.
-
-2007-06-06 Ben Pfaff <blp@gnu.org>
-
- Adds a low-level on-disk case array data structure.
-
- * automake.mk: Add new files.
-
- * case-tmpfile.c: New file.
-
- * case-tmpfile.h: New file.
-
-2007-06-06 Ben Pfaff <blp@gnu.org>
-
- In a couple of places we calculate the maximum number of cases to
- keep in memory based on the user-defined workspace. Enable
- centralizing the calculation through a new function.
-
- * settings.c (get_workspace_cases): New function.
-
-2007-06-06 Ben Pfaff <blp@gnu.org>
-
- The casenumber type is defined in transformations.h, but case.h is
- a more sensible place. Move it.
-
- * case.h (CASENUMBER_MAX): New macro.
- (typedef casenumber): Move here, from transformations.h.
-
-2007-06-03 Ben Pfaff <blp@gnu.org>
-
- Slightly generalize case_to_values and case_from_values functions.
-
- * case.c (case_to_values): Rename case_copy_out, change interface.
- (case_from_values): Rename case_copy_in, change interface.
-
- * fastfile.c (fastfilereader_get_next_case): Update caller.
- (write_case_to_disk): Ditto.
-
-2007-06-02 Ben Pfaff <blp@gnu.org>
-
- Clean up after a forgotten part of patch #5829.
-
- * casedeque.h: Remove unused file.
-
- * automake.mk: Remove casedeque.h from sources.
-
-2007-05-10 Jason Stover <jhs@math.gcsu.edu>
-
- * category.c: Removed redundant #include
-
-2007-05-06 Ben Pfaff <blp@gnu.org>
-
- Abstract the documents within a dictionary a little better.
- Thanks to John Darrington for suggestion, initial version, and
- review. Patch #5917.
-
- * dictionary.c (struct dictionary): Change `documents' member from
- char * to struct string.
- (dict_clear): Destroy struct string.
- (dict_get_documents): Convert struct string to char *.
- (dict_set_documents): Set struct string. Pad to 80-character
- multiple.
- (dict_clear_documents): New function.
- (dict_add_document_line): New function.
- (dict_get_document_line_cnt): New function.
- (dict_get_document_line): New function.
-
- * dictionary.h (macro DOC_LINE_LENGTH): New macro.
-
- * sys-file-reader.c (read_documents): Use new document functions.
-
-2007-04-19 John Darrington <john@darrington.wattle.id.au>
-
- * sys-file-reader.c: When reading a system file which has no
- long name table, automatically create one where the long names
- are the lower case versions of the short names.
-
-2007-04-22 Ben Pfaff <blp@gnu.org>
-
- * dictionary.c (dict_set_split_vars): dict_destroy expects that
- dict_clear will free most data related to the dictionary.
- dict_clear does a decent job, except that dict_set_split_vars on
- some systems won't actually free the dict's "split" member.
- Instead, it'll allocate a 1-byte region. Fix this.
-
- * value.c (value_copy): New function.
- (value_set_missing): Ditto.
-
-2007-04-22 John Darrington <john@darrington.wattle.id.au>
-
- * Deleted existing category.h and moved cat-routines.h into
- category.h Encapsulated struct cat_vals better.
-
-2007-04-19 John Darrington <john@darrington.wattle.id.au>
-
- * sys-file-reader.c: When reading a system file which has no
- long name table, automatically create one where the long names
- are the lower case versions of the short names.
-
-2007-04-16 John Darrington <john@darrington.wattle.id.au>
-
- * sys-file-reader.c: Some versions of Other Software seem to
- produce system files with string variables' measure set to
- zero. We'll assume these are supposed to be nominal variables.
-
-2007-03-30 Ben Pfaff <blp@gnu.org>
-
- * procedure.c: Adapt to new deque data structure.
-
-Mon Feb 19 10:53:21 2007 John McCabe-Dansted <gmatht@gmail.com>
- Ben Pfaff <blp@gnu.org>
-
- * file-name.c: Mingw compatibility fixes.
- (fn_search_path): Use ISSLASH instead of comparing against '/'
- directly.
- (fn_dir_name): Use dir_name from gnulib.
- (fn_is_absolute): Use IS_ABSOLUTE_FILE_NAME from gnulib.
- (fn_get_identity): Use GetFullPathName instead of canonicalize
- from gnulib, because the latter does not fully support
- Windows-style path names. Use this implementation based on the
- detected presence of Windows instead of the absence of Unix, since
- the new implementation is Windows-specific.
- (fn_compare_file_identities): In Windows implementation, compare
- names case-insensitively.
-
-Sun Feb 18 13:28:02 2007 Ben Pfaff <blp@gnu.org>
-
- * make-file.c: Don't include mkstemp.h, because gnulib now causes
- <stdlib.h> to have the same effect.
-
-Sun Feb 18 11:20:24 2007 Ben Pfaff <blp@gnu.org>
-
- * por-file-reader.c: Add missing _() around messages.
-
-Sun Feb 11 20:44:13 2007 Ben Pfaff <blp@gnu.org>
-
- * make-file.c: Include "mkstemp.h", without which linking on
- mingw32 fails.
-
-Thu Feb 8 14:59:05 2007 Ben Pfaff <blp@gnu.org>
-
- Reduce platform dependence.
-
- * file-name.c (fn_tilde_expand): Removed, and removed calls to it.
- Everywhere we using this, we really should have just depended on
- the shell to expand tildes.
- (fn_search_path): Simplify, given that we don't do tilde expansion
- any longer.
- (fn_normalize): Removed. Caller changed to use the canonicalize
- module from gnulib.
- (fn_get_cwd): Removed. Only user was fn_normalize.
- (fn_is_absolute): Really only test for absolute names.
- (fn_is_special): Use pipe files if HAVE_POPEN, not if we're in
- unix.
- (fn_readlink): Removed, as it was only used fn_normalize.
- (fn_exists): Assume the stat function is available; gnulib does.
- (fn_open): Use pipe files if HAVE_POPEN, not if we're in unix.
-
-Sat Feb 3 21:52:17 2007 Ben Pfaff <blp@gnu.org>
-
- * dictionary.c (dict_create_vector_assert): New function.
-
-Wed Feb 7 21:25:15 2007 Ben Pfaff <blp@gnu.org>
-
- * file-name.c (fn_normalize): Correct name of function
- fn_is_special. Thanks to John McCabe-Dansted <gmatht@gmail.com>
- for pointing this out.
-
-Thu Feb 1 16:53:37 2007 Ben Pfaff <blp@gnu.org>
-
- We are using a single member in struct file_handle, the "name"
- field, for more than one purpose. When it begins with '"', it's a
- file name; otherwise, it's a token that can be used to identify
- it. When that assertion fires, it's because we searched for the
- name case-sensitively as a file name (so that there was no match),
- and then we try to insert it case-insensitively as a token, which
- fails because duplicates aren't allowed.
-
- Solution: break the two purposes into two separate fields. This
- fixes the problem and likely makes the code easier to read too.
-
- Fixes bug #18922. Thanks to John Darrington for bug report and
- review.
-
- * file-handle-def.c (struct file_handle): New `id' member.
- (fh_from_name): Rename fh_from_id. Update all callers.
- (create_handle): New `id' parameter. Update all callers.
- (fh_create_file): Ditto.
- (fh_get_id): New function.
-
-Mon Jan 15 16:18:10 2007 Ben Pfaff <blp@gnu.org>
-
- * case.c (case_is_null): Change return type to bool.
-
-Mon Jan 15 10:57:28 2007 Ben Pfaff <blp@gnu.org>
-
- Add debugging code.
-
- * case.c (case_clone) [DEBUGGING]: When debugging, don't use
- reference counting to share data. This makes it easy for
- valgrind, etc. to find accesses to cases that have been destroyed
- but have been kept around by another user's ref-count. This often
- happens when the data set is small enough to find in memory; if a
- bigger data set that would overflow to disk were used, then data
- corruption would occur.
-
-Mon Jan 15 10:55:18 2007 Ben Pfaff <blp@gnu.org>
-
- Simplify code.
-
- * case.c (case_unshare): Make it check internally whether the
- ref_cnt is greater than 1, so that the callers don't have to.
- Update callers not to check.
-
-Mon Jan 15 10:53:01 2007 Ben Pfaff <blp@gnu.org>
-
- Before, I was thinking that I might want to get rid of reference
- counting at some point. Now, I'm pretty sure that it's here to
- stay. Thus, because we have to store the value_cnt anyway for
- reference-counted cases, we might as well expose it to users.
-
- * case.c (case_get_value_cnt): New function.
- (case_resize): Drop OLD_CNT argument. Update all callers. Only
- resize case if its size actually changed.
-
- * casefile.c (casefile_append_xfer): Use case_get_value_cnt
- instead of peeking inside struct case directly.
- (casefile_append): Ditto.
-
-Mon Jan 15 10:50:22 2007 Ben Pfaff <blp@gnu.org>
-
- Get rid of the inlines for the case functions, which made the
- header file hard to read. (Also, in testing with "-O2 -DNDEBUG",
- the inlines didn't speed up "make check" at all, which is not a
- perfect benchmark but seems indicative.)
-
- * case.c: Remove #ifdef DEBUGGING...#endif around many function
- definitions. Remove some assertions on nonnull pointers that were
- redundant with a pointer dereference soon after in the function.
- Also:
- (struct case_data): Move definition here from case.h.
- (case_data): Ditto.
- (case_num): Ditto.
- (case_str): Ditto.
- (case_data_wr): Ditto.
-
-Sun Jan 14 21:41:12 2007 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Add casedeque.h to sources.
-
- * casedeque.h: New file.
-
- * procedure.c: (struct dataset) Change lag_count, lag_head,
- lag_queue member into single struct casedeque member. Update all
- users to use the casedeque instead.
- (lag_case) Removed.
-
-Sun Jan 14 21:43:12 2007 Ben Pfaff <blp@gnu.org>
-
- * procedure.c: Simplify lagged cases interface. Updated all
- clients--well, the only client--to use the simplified interface.
- (dataset_n_lag) Removed.
- (dataset_set_n_lag) Removed.
- (dataset_need_lag) New function.
-
-Tue Jan 9 07:20:05 WST 2007 John Darrington <john@darrington.wattle.id.au>
-
- * dictionary.c procedure.c: More changes to ensure that callbacks occur
- whenever appropriate, but only when the dataset/dictionary is in a
- consistent state.
-
-Sun Jan 7 08:33:04 WST 2007 John Darrington <john@darrington.wattle.id.au>
-
- * dictionary.c dictionary.h : Added callbacks for change of filter and
- split variables. Refactored some code to ensure that callbacks get
- invoked when appropriate.
-
- * procedure.c (proc_cancel_temporary_transformations): Make sure that
- replace_dict callback occurs when permanent_dict replaces the current
- dictionary.
-
-Wed Jan 3 11:02:11 WST 2007 John Darrington <john@darrington.wattle.id.au>
-
- * dictionary.c dictionary.h : Added callback for when the weight
- variable of a dictionary changes.
-
-Mon Jan 1 10:36:26 WST 2007 John Darrington <john@darrington.wattle.id.au>
-
- * dictionary.c dictionary.h : Added replace_source and replace_dict
- callbacks, and functions to deal with them.
-
-Fri Dec 22 13:56:08 2006 Ben Pfaff <blp@gnu.org>
-
- Simplify missing value handling.
-
- * missing-values.h (enum mv_class): New type.
- (enum mv_type): Moved definition into missing-values.c and renamed
- each MV_* to MVT_*, to distinguish them from the exposed mv_class
- enums. Updated all uses.
- (struct missing_values): Changed type of `type' from `enum
- mv_type' to `int' because the definition is no longer exposed.
-
- * missing-values.c (mv_is_value_missing): Add new enum mv_class
- parameter. Update all callers.
- (mv_is_num_missing): Ditto.
- (mv_is_str_missing): Ditto.
- (mv_is_value_user_missing): Removed. Changed callers to use
- mv_is_value_missing.
- (mv_is_num_user_missing): Removed. Changed callers to use
- mv_is_num_missing.
- (mv_is_str_user_missing): Removed. Changed callers to use
- mv_is_str_missing.
- (mv_is_value_system_missing): Removed. Changed callers to use
- mv_is_value_missing.
- (mv_set_type): Removed. Changed callers to use mv_clear.
- (mv_clear): New function.
-
- * variable.c (var_is_value_missing): Add new enum mv_class
- parameter. Update all callers.
- (var_is_num_missing): Ditto.
- (var_is_str_missing): Ditto.
- (var_is_value_user_missing): Removed. Changed callers to use
- var_is_value_missing.
- (var_is_num_user_missing): Removed. Changed callers to use
- var_is_num_missing.
- (var_is_str_user_missing): Removed. Changed callers to use
- var_is_str_missing.
- (var_is_value_system_missing): Removed. Changed callers to use
- var_is_value_missing.
-
- * casefilter.c (struct casefilter): Use enum mv_class in place of
- bool.
- (casefilter_variable_missing): Adapt to new member.
- (casefilter_create): Change signature to take enum mv_class,
- update callers.
-
-Fri Dec 22 20:08:38 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * casefile-factory.h fastfile-factory.c fastfile-factory.h: New files.
-
- * case-sink.c case-sink.h procedure.c procedure.h
- storage-stream.c: Now uses the factory.
-
-Sat Dec 16 22:05:18 2006 Ben Pfaff <blp@gnu.org>
-
- Make it possible to pull cases from the active file with a
- function call, instead of requiring indirection through a callback
- function.
-
- * case-source.h (struct case_source_class): Change ->read function
- to return a single case, instead of calling a callback function
- for each case. Change ->destroy function to return an error
- status.
-
- * case-source.c (free_case_source): Pass along the value returned
- by the case_source ->destroy function.
-
- * procedure.c (struct write_case_data): Removed.
- (struct dataset): Added some members to track procedure state.
- (procedure): Optimize the trivial case at this level.
- (internal_procedure): Re-implement in terms of proc_open,
- proc_read, proc_close.
- (proc_open) New function.
- (proc_read) New function.
- (proc_close) New function.
- (write_case) Moved into proc_read.
- (close_active_file) Moved closing of data source into proc_close.
-
- * storage-source.c: Rewrote to conform with modified
- case_source_class interface.
-
- * transformations.c (trns_chain_execute): Added argument to allow
- starting execution from an arbitrary transformation. Updated
- callers.
-
- * transformations.h (enum TRNS_NEXT_CASE) Renamed TRNS_END_CASE.
-
-Sat Dec 16 14:09:25 2006 Ben Pfaff <blp@gnu.org>
-
- * sys-file-reader.c (read_display_parameters): Don't assume that
- MEASURE_* and ALIGN_* have the same values found in system files.
-
- * sys-file-writer.c (write_variable_display_parameters): Ditto.
-
- * variable.h: Change MEASURE_NOMINAL, MEASURE_ORDINAL,
- MEASURE_SCALE to be 0-based instead of 1-based. This also fixes
- the value of n_MEASURES, which was off by 1 (at least from my
- point of view).
-
-Sat Dec 16 12:17:34 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * dictionary.c dictionary.h vardict.h variable.c: Added optional
- callbacks which are invoked when the dictionary or its
- variables are changed.
-
- * missing-values.c missing-values.h value-labels.c: Tidied up
- consistency checks, and made some of them return false
- instead of assert-failing.
-
-Wed Dec 13 19:30:11 2006 Ben Pfaff <blp@gnu.org>
-
- * calendar.c (calendar_days_in_month): New function.
-
-Mon Dec 11 07:53:39 2006 Ben Pfaff <blp@gnu.org>
-
- * value-labels.c (hash_int_val_lab): Only hash as many bytes as
- the value label's width.
-
-Sun Dec 10 14:21:29 2006 Ben Pfaff <blp@gnu.org>
-
- * sfm-private.h: Move contents into sys-file-writer.c, which is
- the only remaining user. Removed Borland C++-specific directives.
-
- * sys-file-reader.c: Clean up and rewrite entire file. The
- rewritten version is simpler and better abstracted, and should be
- easier to maintain and extend. It avoids using structures to read
- file data, which is prone to padding variations among compilers.
- It should also handle non-IEEE 754 system files, although I
- haven't been able to find any. It has been tested against many
- .sav files obtained from the Web and found to produce the same
- results as the earlier version of the code, or in some cases
- improved results. It is more tolerant of format variations found
- in the wild.
-
- * sys-file-reader.h (struct sfm_read_info): Removed `big_endian'
- member, putting an enum integer_format in its place. New member
- `float_format'. Changed `compressed' member to type bool.
-
-Sun Dec 10 13:48:53 2006 Ben Pfaff <blp@gnu.org>
-
- * dictionary.c (dict_delete_consecutive_vars): New function.
-
-Sat Dec 9 20:08:25 2006 Ben Pfaff <blp@gnu.org>
-
- * file-name.c (fn_search_path): Remove prefix arg that was unused
- by any caller. Updated all callers.
-
-Sat Dec 9 20:04:22 2006 Ben Pfaff <blp@gnu.org>
-
- * format.c (fmt_dollar_template): Use user's decimal point
- character. Add assertion.
-
-Sat Dec 9 20:02:25 2006 Ben Pfaff <blp@gnu.org>
-
- * format.c (fmt_dollar_template): New function, based on
- dollar_format_template from var-type-dialog.c.
-
-Sat Dec 9 18:05:59 2006 Ben Pfaff <blp@gnu.org>
-
- * data-out.c (output_scientific): Fix bad assumption that "buf" is
- null-terminated.
-
-Sat Dec 9 17:23:23 2006 Ben Pfaff <blp@gnu.org>
-
- Finish converting struct variable to an opaque type. In this
- phase, we add remaining setter and getter functions, convert the
- remaining PSPP code to use them, and do a bunch of cleanup. The
- resulting changes are pervasive but mostly trivial, and only the
- notable changes are logged.
-
- * automake.mk (src_data_libdata_a_SOURCES): Add the new source
- files.
-
- * case.c (case_data): Renamed case_data_idx.
- (case_num): Renamed case_num_idx.
- (case_str): Renamed case_str_idx.
- (case_data_rw): Renamed case_data_rw_idx.
-
- * case.h (case_data): New function with old name and an interface
- that takes a variable instead of an index, which is easier to
- use. Updated all callers to use the new interface, or to use the
- new *_idx function (see above).
- (case_num): Ditto.
- (case_str): Ditto.
- (case_data_rw): Ditto.
-
- * category.c (cat_stored_values_destroy): Changed interface to
- take a struct cat_vals * instead of a struct variable *.
-
- * dictionary.c (dict_clone): Use new vector_clone function.
- (dict_clear) Use new var_destroy function.
- (add_var) New function.
- (dict_create_var) Rewrite in terms of dict_create_var_assert.
- (dict_create_var_assert) Rewrite in terms of add_var.
- (dict_clone_var) Rewrite in terms of dict_clone_var_assert.
- (dict_clone_var_assert) Rewrite in terms of var_clone, add_var.
- (dict_lookup_var) Use new var_create, var_destroy functions.
- (dict_contains_var) Rewrite in terms of new vardict functionality.
- (set_var_dict_index) New function.
- (set_var_case_index) New function.
- (reindex_vars) New function.
- (dict_delete_var) Rewrite in terms of new vardict functionality.
- (dict_reorder_var) Ditto.
- (dict_reorder_vars) Ditto.
- (rename_var) New function.
- (dict_rename_var) Use rename_var.
- (dict_rename_vars) Use pool to simplify code. Use rename_var.
- (dict_get_compacted_idx_to_fv) Rename
- dict_get_compacted_dict_index_to_case_index, update callers.
- (dict_create_vector) Use new vector_create function.
- (dict_clear_vectors) Use new vector_destroy function.
- (set_var_short_name_suffix) Move here from variable.c, renamed
- from var_set_short_name_suffix, make static, update caller.
-
- * sys-file-private.c: New file.
- (sfm_width_to_bytes) Moved here from variable.c, renamed from
- width_to_bytes, update callers.
-
- * sys-file-private.h: New file. Later it will supplant
- sfm-private.h; for now it supplements it.
- (macro MIN_VERY_LONG_STRING) New macro.
- (macro EFFECTIVE_LONG_STRING_LENGTH) New macro, from value.h.
-
- * sys-file-reader.c: Use MIN_VERY_LONG_STRING - 1 where
- MAX_LONG_STRING was used before.
-
- * sys-file-writer.c: Ditto.
-
- * value-labels.c: Change the paradigm here to be that a null
- pointer is OK for a struct val_labs * in most cases; it just
- represents an empty set of value labels.
- (val_labs_copy) A copy of a null set is a null set.
- (val_labs_count) A null set has 0 labels.
- (val_labs_replace) Change return type to void. Rewrite for
- simplicity.
- (val_labs_find) A null set does not contain the value.
- (value_to_string) Moved to variable.c, renamed var_get_value_name,
- transposed argument order, updated all callers.
-
- * value.c: New file.
- (value_dup) Moved here from variable.c.
- (compare_values) Ditto.
- (hash_value) Ditto.
-
- * value.h: (macro MAX_SHORT_STRING) Rewrote for simplicity.
- (macro MAX_LONG_STRING) Removed, because it was only interesting
- for system files, not for general code.
- (macro MAX_VERY_LONG_STRING) Ditto.
- (macro EFFECTIVE_LONG_STRING_LENGTH) Moved to sys-file-private.h.
- (macro MAX_ELEMS_PER_VALUE) Removed, as it was unused.
-
- * vardict.h: New file, for an interface between variables and
- their dictionaries.
-
- * variable.c: A lot of functions were moved around, for better
- organization.
- (struct variable) Move definition here, from variable.h.
- (var_type_adj) Removed--makes i18n hard.
- (var_type_noun) Ditto.
- (var_create) New function.
- (var_clone) New function.
- (var_destroy) New function.
- (var_set_name) Assert that variable is not in a dictionary.
- (compare_var_names) Rename compare_vars_by_name and fix a couple
- of callers who thought the args were strings.
- (hash_var_name) Rename hash_var_by_name.
- (compare_var_ptr_names) Rename compare_var_ptrs_by_name.
- (hash_var_ptr_name) Rename hash_var_ptr_by_name.
- (var_is_very_long_string) Removed, because it was only interesting
- to system file code.
- (var_set_missing_values) Allow the argument to be the wrong width,
- as long as we can resize it. Simplify callers who were doing the
- resizing themselves.
- (var_get_value_labels) New function.
- (var_has_value_labels) New function.
- (var_set_value_labels) New function.
- (alloc_value_labels) New function.
- (var_add_value_label) New function.
- (var_replace_value_label) New function.
- (var_clear_value_labels) New function.
- (var_lookup_value_label) New function.
- (var_get_value_name) Moved here from variable.c, renamed from
- var_get_value_name, transposed argument order, updated all
- callers.
- (var_to_string) Moved here, from variable-label.c.
- (var_set_leave) New function.
- (var_get_leave) New function.
- (var_must_leave) New function.
- (var_set_short_name_suffix) Moved to dictionary.c, renamed
- set_var_short_name_suffix.
- (var_get_dict_index) New function.
- (var_get_case_index) New function.
- (var_get_obs_vals) New function.
- (var_set_obs_vals) New function.
- (var_has_obs_vals) New function.
- (var_get_vardict) New function.
- (var_set_vardict) New function.
- (var_has_vardict) New function.
- (var_clear_vardict) New function.
- (value_dup) Moved to value.c.
- (compare_values) Ditto.
- (hash_value) Ditto.
-
- * variable.h: (enum NUMERIC) Rename VAR_NUMERIC, update all users.
- (enum ALPHA) Rename VAR_STRING, update all users.
-
- * vector.c: New file.
- (struct vector) Moved here, from variable.h.
- (check_widths) New function.
- (vector_create) New function.
- (vector_clone) New function.
- (vector_destroy) New function.
- (vector_get_name) New function.
- (vector_get_var) New function.
- (vector_get_var_cnt) New function.
- (compare_vector_ptrs_by_name) New function.
-
- * vector.h: New file.
-
-Sun Dec 10 11:32:56 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * casefilter.c (casefilter_variable_missing): Avoided comparision of
- string variables to SYSMIS. Thanks to Ben Pfaff for reporting this
- problem.
-
-Sat Dec 9 07:18:03 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * value-labels.c (destroy_atoms): New function.
- * value-labels.c (atom_create): Call destroy_atoms in atexit handler.
-
-Thu Dec 7 17:38:26 2006 Ben Pfaff <blp@gnu.org>
-
- Thanks to Jason Stover for pointing out this problem.
-
- * data-out.c (output_number): Use gsl_finite from GSL, which is
- portable, instead of isfinite, which is not.
- (power256) Ditto.
-
-Thu Dec 7 15:22:38 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * variable.c variable.h (value_dup): New function.
-
-Mon Dec 4 22:20:17 2006 Ben Pfaff <blp@gnu.org>
-
- Start converting struct variable to an opaque type. In this
- phase, we add a bunch of setter and getter functions and convert
- most of the PSPP code to use them. The resulting changes are
- pervasive but mostly trivial, and only the notable changes are
- logged.
-
- * format.c (fmt_equal): New function.
-
- * variable.c (var_type_is_valid): New function.
- (measure_is_valid) Moved here, from format.c.
- (alignment_is_valid) Moved here, from format.c.
- (var_get_name) New function.
- (var_set_name) New function.
- (width_to_type) New function.
- (var_get_type) New function.
- (var_get_width) New function.
- (var_set_width) New function.
- (var_is_numeric) New function.
- (var_is_alpha) New function.
- (var_is_short_string) New function.
- (var_is_long_string) New function.
- (var_is_very_long_string) New function.
- (var_get_missing_values) New function.
- (var_set_missing_values) New function.
- (var_clear_missing_values) New function.
- (var_has_missing_values) New function.
- (var_is_value_missing) New function.
- (var_is_num_missing) New function.
- (var_is_str_missing) New function.
- (var_is_value_user_missing) New function.
- (var_is_num_user_missing) New function.
- (var_is_str_user_missing) New function.
- (var_is_value_system_missing) New function.
- (var_get_print_format) New function.
- (var_set_print_format) New function.
- (var_get_write_format) New function.
- (var_set_write_format) New function.
- (var_set_both_formats) New function.
- (var_get_label) New function.
- (var_set_label) New function.
- (var_clear_label) New function.
- (var_has_label) New function.
- (var_get_measure) New function.
- (var_set_measure) New function.
- (var_get_display_width) New function.
- (var_set_display_width) New function.
- (var_get_alignment) New function.
- (var_set_alignment) New function.
- (var_get_value_cnt) New function.
- (var_get_leave) New function.
- (var_get_short_name) New function.
-
- * variable.h: (struct variable) Removed "type" and "nv" members;
- they are now computed from "width" where needed.
-
-Mon Dec 4 21:38:40 2006 Ben Pfaff <blp@gnu.org>
-
- * missing-values.c (mv_resize): Don't write beyond end of the
- allocated buffer when resizing a long string.
-
-Sat Dec 2 16:28:32 2006 Ben Pfaff <blp@gnu.org>
-
- Clean up identifier code: don't require identifier enumerations to
- be in a particular order; make better use of string library;
- expose less of the internals.
-
- * identifier.c: (lex_skip_identifier) Rename lex_id_get_length,
- change interface. Updated all callers.
- (lex_id_match) Change interface to use struct substring, update
- all callers.
- (lex_id_match_len) Removed. Update callers to use lex_id_match.
- (global array keywords[]) Make static, change form. Update all
- users to use lex_id_name instead.
- (lex_is_keyword) New function.
- (lex_id_to_token) Change interface to use struct substring, update
- all callers.
- (lex_id_name) New function.
-
- * identifier.h: (T_FIRST_KEYWORD) Removed. Changed users to call
- lex_is_keyword instead.
- (T_LAST_KEYWORD) Removed.
- (T_N_KEYWORDS) Removed.
-
-Sat Nov 18 20:46:35 2006 Ben Pfaff <blp@gnu.org>
-
- * format.c: (fmt_date_template) Distinguish characters for which a
- space is output and any date delimiter is allowed on input, from
- those for which a space is output and only a space is allowed on
- input. The former is represented by X, the latter by a space.
- Also, drop distinction between h and H, changing the former to the
- latter.
-
- * data-in.c: Completely rewrite internals to conform to SPSS input
- formats as closely as possible.
- (data_in) Changed external interface by replacing the structure
- that was used as a single argument by a set of arguments. Updated
- all callers.
- (data_in_finite_line) Removed. Converted all callers to use plain
- data_in.
- (data_in_get_integer_format) New function.
- (data_in_set_integer_format) New function.
- (data_in_get_float_format) New function.
- (data_in_set_float_format) New function.
-
- * data-in.h: (enums DI_IGNORE_ERROR, DI_IMPLIED_DECIMALS) Removed.
- (struct data_in) Removed.
-
- * data-out.c: (output_date) Drop each component from the input as
- it is output, to allow us to drop the distinction between h (a
- count of hours) and H (the hour of day) template characters.
- Also, handle new X template character.
- (output_scientific) Follow more rational rule on when to drop
- fraction introduced between SPSS 13 and 15. Updated test case to
- match new behavior.
-
-Sat Nov 11 11:41:26 2006 Ben Pfaff <blp@gnu.org>
-
- Fix buffer overflow reported by John Darrington.
-
- * data-out.c (output_bcd_integer): In case of SYSMIS, etc.,
- realize that DIGITS is a count of nibbles, not of bytes.
-
-Sat Nov 4 15:59:56 2006 Ben Pfaff <blp@gnu.org>
-
- * calendar.c (calendar_offset_to_gregorian) Also return the
- year-of-day. Change callers to new interface.
-
- * data-out.c: Completely rewrite internals to conform to SPSS
- output formats as completely as possible.
- (data_out) Change interface to put input parameters before output
- parameters, for consistency with the style I now prefer. Update
- all callers.
- (data_out_get_integer_format) New public function.
- (data_out_set_integer_format) New public function.
- (data_out_get_float_format) New public function.
- (data_out_set_float_format) New public function.
-
- * data-out.h: New file. Move prototype for data_out here, from
- format.h.
-
- * format.c: (fmt_step_width) Use equality comparison instead of
- bitwise and, for clarity.
- (fmt_is_string) Ditto.
- (fmt_input_to_output) Fix categories that are translated to F
- format.
-
-Sun Nov 5 08:29:34 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * casefilter.c casefilter.h (new files), casefile.c casefile.h
- casefile-private.h: Added casefilter to assist commands with missing
- values.
-
-Sat Nov 4 11:47:09 2006 Ben Pfaff <blp@gnu.org>
-
- Implement SET ERRORS, SHOW ERRORS. Fixes bug #17609.
-
- * settings.c: (route_errors_to_terminal) New variable.
- (route_errors_to_listing) New variable.
- (get_error_routing_to_terminal) New function.
- (set_error_routing_to_terminal) New function.
- (get_error_routing_to_listing) New function.
- (set_error_routing_to_listing) New function.
-
- * settings.h: (SET_ROUTE_* enums) Removed, because unused.
-
-Tue Oct 31 19:58:27 2006 Ben Pfaff <blp@gnu.org>
-
- * format.c: Completely rewrite, to achieve better abstraction.
- Rewrite all references to formats in other files.
-
- * format.def: Rewrite and reorganize.
-
- * settings.c: Move everything related to custom currency formats
- into format.[ch], changing them in form, so as to group related
- code and definitions better. Changed all references to use the
- new functions.
- (static var decimal) Removed.
- (static var grouping) Removed.
- (static var cc) Removed.
- (get_decimal) Removed.
- (set_decimal) Removed.
- (get_grouping) Removed.
- (set_grouping) Removed.
- (get_cc) Removed.
- (set_cc) Removed.
-
- * settings.h: (macro CC_CNT) Removed.
- (macro CC_WIDTH) Removed.
- (struct custom_currency) Removed.
-
-Tue Oct 31 19:56:19 2006 Ben Pfaff <blp@gnu.org>
-
- * data-in.c (data_in): Use switch statement instead of table, to
- avoid dependence on the order of the FMT_* enums.
-
-Tue Oct 31 19:35:36 2006 Ben Pfaff <blp@gnu.org>
-
- * data-out.c: (num_to_string) Removed, because it was dead code.
-
-Tue Oct 31 18:09:24 2006 Ben Pfaff <blp@gnu.org>
-
- * data-in.c (parse_trailer): Fix error message.
-
-Sat Oct 28 11:56:50 2006 Ben Pfaff <blp@gnu.org>
-
- * format.c (fmt_is_binary): New function.
-
-Thu Oct 19 22:59:56 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * procedure.c procedure.h: Encapsulated the static data into a single
- struct.
-
-Sat Oct 14 16:56:44 2006 Ben Pfaff <blp@gnu.org>
-
- * casefile.c (casereader_read_xfer): Always initialize the case,
- even on an error condition.
-
-Wed Sep 27 09:37:49 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * procedure.c (case_limit_trns_proc): Fixed buglet which rendered the
- entire function useless.
-
-Mon Sep 25 17:11:46 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * casefile-private.h casefile.c casefile.h fastfile.c: Created new
- casereader method casereader_clone.
-
- * procedure.c pransformations.h: Introduced new type casenum_t
-
-Thu Sep 21 07:00:30 2006 Ben Pfaff <blp@gnu.org>
-
- * variable.c: (width_to_bytes) Rephrase code for clarify.
-
-Sun Jul 16 19:52:03 2006 Ben Pfaff <blp@gnu.org>
-
- * format.c: (fmt_type_from_string) New function.
- (fmt_to_string) Include decimals in output if the format has
- decimals, even if the format type does not. This way, we can
- accurately reproduce incorrect formats in user output.
- (check_common_specifier) Make the check for a bad format type an
- assertion, so we get bug reports if they show up. Fix message.
- Check for decimal places with a format type that doesn't allow
- them.
- (check_input_specifier) Remove check for FMT_X, which has been
- deleted.
- (check_output_specifier) Ditto.
-
- * format.def: Remove FMT_T, FMT_X, FMT_DESCEND, FMT_NEWREC.
-
- * format.h: (macro FMT_TYPE_LEN_MAX) New macro.
- (struct fmt_desc) Use FMT_TYPE_LEN_MAX in definition.
- (enum fmt_parse_flags) Removed.
-
-Mon Jul 17 18:26:21 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * casefile.c casefile.h: Converted to an abstract base class.
- * casefile-private.h fastfile.c fastfile.h: New files.
- * automake.mk procedure.c scratch-writer.c storage-stream.c
-
-Wed Jul 12 21:02:26 2006 Ben Pfaff <blp@gnu.org>
-
- * procedure.c (internal_procedure): Create sink_case with only as
- many values as the compacted dictionary.
-
-Wed Jul 12 21:01:00 2006 Ben Pfaff <blp@gnu.org>
-
- Remove "debugging" code that caused plenty of false positives and
- no true positives.
-
- * case.h (struct ccase): [DEBUGGING] Remove `this' member.
-
- * case.c: Remove all references to `this' member.
-
-Thu Jul 6 19:09:53 2006 Ben Pfaff <blp@gnu.org>
-
- Fix link error noted by Jason Stover.
-
- * storage-stream.c: Include <assert.h>.
-
-Tue Jul 4 08:47:35 2006 Ben Pfaff <blp@gnu.org>
-
- Fix bug #15766 (/KEEP subcommand on SAVE doesn't fully support
- ALL) and additional underlying system file issues.
-
- Thanks to John Darrington for review.
-
- First problem: var_hash points to variables not owned by the
- sys-file-reader, which the caller may free or modify. Use an
- array of sfm_vars instead, as done earlier (e.g. CVS version
- 1.12).
-
- * sys-file-reader.c (struct sfm_reader): Remove var_hash, svars
- members and remove all code that references it. Add vars, var_cnt
- members. Remove fix_specials member, which was unused.
- (struct sfm_var) Remove name member, which was unused.
- (sfm_close_reader) Free vars member instead of var_hash.
- (compare_var_shortnames) Removed.
- (hash_var_shortname) Removed.
- (sfm_open_reader) Fill out vars array.
- (compare_var_index) Removed.
- (sfm_read_case) Use vars instead of var_hash.
-
- Second problem: we're confused about when we actually have very
- long strings, causing us to choose incorrectly between slow path
- and fast path in sfm_read_case.
-
- * sys-file-reader.c: (sfm_open_reader) Only mark has_vls if we
- have very long strings, not when we have long variable names,
- which is an unrelated feature.
-
-Tue Jun 27 12:06:49 2006 Ben Pfaff <blp@gnu.org>
-
- * variable.h: Move var_set and variable parsing declarations to
- new header, src/language/lexer/variable-parser.h. Modified lots
- of files to include the new header.
-
-Sun Jun 25 22:39:32 2006 Ben Pfaff <blp@gnu.org>
-
- * value-labels.c (value_to_string): When there's no value label,
- format the variable according to its print format, instead of
- always effectively using A or F format.
-
-Mon Jun 19 18:05:42 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * casefile.c (casefile_get_random_reader): Nasty hack to get around
- the mode assertion.
-
- * format.c: Removed tortological assertion.
-
-Fri Jun 9 12:20:09 2006 Ben Pfaff <blp@gnu.org>
-
- Reform string library.
-
- * file-name.c (fn_interp_vars): Change interface to take a
- substring as input. Updated all users.
-
-Fri Jun 9 12:11:24 2006 Ben Pfaff <blp@gnu.org>
-
- * format.c (measure_is_valid): Really return false when m >=
- n_MEASURES.
-
-Tue Jun 6 18:46:26 2006 Ben Pfaff <blp@gnu.org>
-
- Implement random access to casefiles, for use in GUI.
-
- * casefile.c: (struct casereader) Add `random', `file_ofs',
- `buffer_ofs' members.
- (casefile_get_random_reader) New function.
- (read_open_file) Break part into new function
- seek_and_fill_buffer().
- (fill_buffer) Update buffer_ofs, file_ofs.
- (casereader_seek) New function.
-
-Tue May 30 19:52:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * settings.c: Added call to i18n{done, init}.
-
-Tue May 9 21:09:17 2006 Ben Pfaff <blp@gnu.org>
-
- * procedure.h: Add WARN_UNUSED_RESULT to procedure function
- prototypes.
-
-Tue May 9 21:08:05 2006 Ben Pfaff <blp@gnu.org>
-
- * casefile.c: Convert many uses of `int' to `bool'.
-
-Sat May 6 22:49:43 2006 Ben Pfaff <blp@gnu.org>
-
- * transformations.c (trns_chain_destroy): Destroy chain's trns
- member, to fix memory leak.
-
-Sat May 6 22:48:30 2006 Ben Pfaff <blp@gnu.org>
-
- * storage-stream.c (storage_source_decapsulate): Destroy case
- source to fix memory leak.
-
-Sat May 6 22:46:47 2006 Ben Pfaff <blp@gnu.org>
-
- * scratch-reader.c (scratch_reader_read_case): Copy into existing
- case passed as argument instead of initializing the argument as a
- case. Fixes memory leak that showed up in
- tests/command/aggregate.sh with scratch files.
-
-Sat May 6 22:45:55 2006 Ben Pfaff <blp@gnu.org>
-
- * procedure.c (proc_done): Destroy default_dict, to fix memory
- leak.
-
-Sat May 6 22:44:44 2006 Ben Pfaff <blp@gnu.org>
-
- Simplify procedure_with_splits().
-
- * procedure.c (struct split_aux_data): Removed case_count member.
- (procedure_with_splits) Don't initialize case_count.
- (split_procedure_case_func) Check whether prev_case is null
- instead of case_count.
- (split_procedure_end_func) Ditto.
-
-Sat May 6 22:42:23 2006 Ben Pfaff <blp@gnu.org>
-
- * case.c (case_move): Do nothing if dst and src are the same
- object.
- (case_try_create) Merge two similar cases.
- (case_copy) Unshare only if data must be actually copied.
-
-Sun May 7 10:04:06 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * data-in.c data-out.c dictionary.c sys-file-reader.c
- sys-file-writer.c variable.c variable.h: Reworked very long string
- support for better encapsulation.
-
-Sat May 6 19:02:00 2006 Ben Pfaff <blp@gnu.org>
-
- * value-labels.c (val_labs_can_set_width): New function.
- (val_labs_set_width) Clear labels if increasing width to long
- string.
- (val_labs_destroy) Remove unneeded test for null.
-
-Sat May 6 16:14:08 2006 Ben Pfaff <blp@gnu.org>
-
- * value-labels.h: Remove unneeded dependency on variable.h.
-
-Sat May 6 15:58:36 2006 Ben Pfaff <blp@gnu.org>
-
- Get rid of `char *c' member in union value, for cleanliness.
-
- * value.h: (union value) Remove `c' member.
-
-Sat May 6 15:36:59 2006 Ben Pfaff <blp@gnu.org>
-
- Make dictionary compacting functions a little more general.
-
- * sys-file-writer.c (sfm_open_writer): Use
- dict_compacting_would_change().
- (does_dict_need_translation) Removed.
-
-Sat May 6 15:35:42 2006 Ben Pfaff <blp@gnu.org>
-
- Make dictionary compacting functions a little more general.
-
- * dictionary.c (dict_needs_compaction): Rename
- dict_compacting_would_shrink(). Update all callers.
- (dict_compacting_would_change) New function.
-
-Sat May 6 14:25:49 2006 Ben Pfaff <blp@gnu.org>
-
- * sys-file-writer.c: (does_dict_need_translation) Fix bug:
- inverted return value (!).
-
-Sat May 6 13:37:52 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming procedure execution.
-
- * procedure.c: Search and replace "vfm" by "proc". Notably:
- (static var vfm_source) Rename proc_source. Update all
- references.
- (static var vfm_sink) Rename proc_sink. Update all references.
-
-Sat May 6 12:38:55 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming procedure execution. In this phase, remove
- PROCESS IF, which was deprecated anyway and can be easily
- simulated with TEMPORARY followed by SELECT IF.
-
- * procedure.c: (open_active_file) Don't call
- add_process_if_trns().
- (discard_variables) Get rid of redundant call to
- proc_cancel_all_transformations().
- (add_process_if_trns) Removed.
- (process_if_trns_proc) Removed.
- (process_if_trns_free) Removed.
-
-Sat May 6 10:58:05 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming procedure execution. In this phase, add
- `const' to the case passed to procedure()'s callback.
-
- Updated all users of procedure() as well.
-
- * procedure.c: (struct write_case_data) Add "const" to ccase
- parameter for case_func member.
- (procedure) Add "const" to ccase parameter for proc_func
- parameter.
- (multipass_case_func) Make ccase parameter const.
- (internal_procedure) Add "const" to ccase parameter for case_func
- parameter.
- (split_procedure_case_func) Make ccase parameter const.
- (multipass_split_case_func) Make ccase parameter const.
-
-Sat May 6 10:30:33 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming procedure execution. In this phase, get rid of
- the output code for SPLIT FILE groups in procedure.c, which really
- shouldn't be doing any output. Move it into the individual
- procedures instead. This also adds some flexibility.
-
- Updated many users of procedure_with_splits() and
- multipass_procedure_with_splits() to call
- output_split_file_values() and to deal with increased use of
- const.
-
- * procedure.c: (struct split_aux_data) Add "const struct ccase *"
- parameter to begin_func member.
- (procedure_with_splits) Add "const struct ccase *" parameter to
- begin_func parameter. Make ccase parameter const in proc_func
- parameter.
- (split_procedure_case_func) Don't dump split file group. Pass
- case to begin_func.
- (dump_splits) Moved to language/dictionary/split-file.c as
- output_split_file_values().
- (struct multipass_split_aux_data) Add "const struct ccase *"
- parameter to split_func member.
- (multipass_procedure_with_splits) Add "const struct ccase *"
- parameter to split_func parameter.
- (multipass_split_case_func) Save new SPLIT FILE case before
- outputting case.
- (multipass_split_output) Pass saved SPLIT FILE case to split_func.
-
-Fri May 5 22:48:50 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming procedure execution. Change
- internal_procedure() so that it calls open_active_file() and
- close_active_file(), which isolates most of the actual procedure
- functionality.
-
- * procedure.c: (struct write_case_data) Rename `proc_func' member
- to `case_func' and update all references.
- (procedure) Rewrite as one-line wrapper around
- internal_procedure().
- (struct multipass_aux_data) New.
- (multipass_callback) Renamed multipass_case_func(). Use struct
- multipass_aux_data as auxiliary data.
- (multipass_end_func) New function.
- (multipass_procedure) Rewrite as wrapper for internal_procedure()
- that uses multipass_case_func, multipass_end_func.
- (internal_procedure) Add `end_func' argument. Move optimization
- of trivial case in here. Move call to open_active_file() and
- close_active_file() in here. Now assert that vfm_source is
- non-null.
- (procedure_with_splits_callback) Rename
- split_procedure_case_func().
- (split_procedure_end_func) New function.
- (multipass_split_callback) Rename multipass_split_case_func.
- (multipass_split_end_func) New function.
- (discard_variables) No need to test for nonnull vfm_source.
-
-Fri May 5 21:34:02 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming procedure execution. Get rid of unused member.
-
- * procedure.c: (struct write_case_data) Remove `cases_analyzed'
- member.
- (write_case) Don't increment cases_analyzed.
-
-Thu May 4 21:50:11 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming procedure execution. In this phase, move
- procedure.c and procedure.h from src to src/data. Update
- makefiles and #includes accordingly.
-
- * procedure.c: Moved here from src/.
-
- * procedure.h: Moved here from src/.
-
-Wed May 3 22:42:12 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming procedure execution. In this phase, get rid of
- many global variables, consolidating procedure execution in
- procedure.c. Encapsulate transformations in new "struct
- trns_chain". Also, change implementation of N OF CASES, FILTER,
- and PROCESS IF from special cases to transformations.
-
- * automake.mk: (src_data_libdata_a_SOURCES) Add transformations.c,
- transformations.h.
-
- * dictionary.c: (global variable default_dict) Move to
- src/procedure.c.
-
- * variable.h: (TRNS_*) Move to transformations.h.
- (struct transformation) Move to transformations.c.
-
-Thu May 4 13:47:06 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * sys-file-reader.c: Fixed invalid read problems.
-
-Tue May 2 15:57:10 2006 Ben Pfaff <blp@gnu.org>
-
- * storage-stream.c: Add missing function comments.
-
-Tue May 2 15:50:21 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming procedure execution. In this phase, add some
- new, needed functionality to storage-stream.
-
- * storage-stream.c: (storage_source_decapsulate) New function.
-
-Tue May 2 15:43:36 2006 Ben Pfaff <blp@gnu.org>
-
- * variable.c (width_to_bytes): Declarations must precede
- statements for C90 compliance.
-
-Tue May 2 10:42:05 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * data-out.c, data-in.c, variable.c, variable.h: New functions
- copy_mangle and copy_demangle for reading/writing cases; emulates the
- way SPSS deals with strings > 255 bytes.
-
- * sys-file-reader.c sys-file-writer.c: Added support for Record 7,
- subtype 14 needed for strings longer than 255 bytes.
-
- * dictionary.c, format.def, value.c : Updated to use MAX_STRING
- instead of literal values. Also fixed some constness issues.
-
- * format.h: Constness
-
- * sfm-private.h: Renamed the case_size identifier, since I discovered
- that SPSS's respect for this variable is very nominal.
-
-Mon May 1 15:45:42 2006 Ben Pfaff <blp@gnu.org>
-
- Change case limit type from int to size_t.
-
- * dictionary.c: (struct dictionary) Change type of case_limit
- member.
- (dict_get_case_limit) Change return type.
- (dict_set_case_limit) Change parameter type.
-
-Wed Apr 26 20:01:19 2006 Ben Pfaff <blp@gnu.org>
-
- * variable.h: (struct variable) Rename `reinit' member as `leave'
- and invert sense. Fix up all references.
-
-Wed Apr 26 19:39:28 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming procedure execution. In this phase, break
- procedure.c into multiple files.
-
- * automake.mk: (src_data_libdata_a_SOURCES) Add all the new files.
-
- * case-sink.c: New file.
-
- * case-sink.h: New file.
-
- * case-source.c: New file.
-
- * case-source.h: New file.
-
- * storage-stream.c: New file.
-
- * storage-stream.h: New file.
-
-Wed Apr 26 14:55:19 2006 Ben Pfaff <blp@gnu.org>
-
- * variable.h: (struct variable) Remove `init' member and all
- references to it from other files. It was initialized in several
- places, but nothing really ever used it for anything worthwhile.
- Thanks to Jason Stover for pointing out how confusing this
- member is.
-
-Sun Apr 23 22:04:45 2006 Ben Pfaff <blp@gnu.org>
-
- 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.
-
- * casefile.c: (io_error) Use err_msg() instead of err_vmsg().
- Format message ourselves.
-
- * data-in.c: (vdls_error) Ditto.
-
- * por-file-reader.c: (error) Ditto.
-
- * sys-file-reader.c: (corrupt_msg) Ditto.
-
-Sun Apr 16 18:49:51 2006 Ben Pfaff <blp@gnu.org>
-
- GNU standards require "file name" instead of "filename" in
- documentation. It's nice for our code to follow the convention
- too.
-
- * casefile.c: (struct casefile) Rename `filename' member to
- `file_name'. Updated all references.
-
- * file-name.c: [!unix] (struct file_identity) Rename
- normalized_filename member to normalized_file_name. Updated all
- references.
-
-Sun Apr 16 18:35:33 2006 Ben Pfaff <blp@gnu.org>
-
- We don't really support anything but Unix-like environments well,
- so we might as well de-obfuscate by writing directory and path
- separators explicitly.
-
- * file-name.h: (macro DIR_SEPARATOR) Removed. Changed all usages
- to just '/'.
- (macro PATH_SEPARATOR) Removed. Changed all usages to just ':'.
- (macro DIR_SEPARATOR_STRING) Removed. Changed all usages to just
- "/".
- (macro PATH_SEPARATOR_STRING) Removed. Changed all usages to just
- ":"
-
-Sun Apr 16 18:28:35 2006 Ben Pfaff <blp@gnu.org>
-
- GNU standards require "file name" instead of "filename" in
- documentation. It's nice for our code to follow the convention
- too.
-
- * filename.c: Rename to file-name.c.
-
- * filename.h: Rename to file-name.h. Update all inclusions.
- Update header guards.
-
- * automake.mk: Update file names.
-
-Sun Apr 16 16:42:47 2006 Ben Pfaff <blp@gnu.org>
-
- * filename.c: (fn_dirname) Renamed fn_dir_name(), all references
- updated.
- (fn_basename) Removed (dead code).
- (fn_absolute_p) Renamed fn_is_absolute(), all references updated.
- (fn_special_p) Renamed fn_is_special(), all references updated.
- (fn_exists_p) Renamed fn_exists(), all references updated.
-
-Sun Apr 16 16:33:58 2006 Ben Pfaff <blp@gnu.org>
-
- * filename.c: (fn_tilde_expand) Rewrite for cleaner code.
- Also, now it only tilde-expands file names, not paths.
- (fn_search_path) Tilde-expand one directory at a time.
-
-Sun Apr 16 16:28:06 2006 Ben Pfaff <blp@gnu.org>
-
- * filename.c: (fn_search_path) rewrite for cleaner code. Also,
- get rid of non-Unixlike version of the code, which has probably
- never been tested.
- (fn_prepend_dir) Removed (dead code).
-
- * filename.h: (macro DIR_SEPARATOR_STRING) New.
- (macro PATH_SEPARATOR_STRING) New.
-Sun Apr 16 16:05:28 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming error message support. In this phase, we get
- rid of VM() and the other msg() support for "verbosity", replacing
- it by a new function verbose_msg().
-
- * filename.c: (fn_search_path) Use verbose_msg() instead of
- msg(VM(), ...).
-
-Sat Apr 15 19:53:19 2006 Ben Pfaff <blp@gnu.org>
-
- * sfm-private.h: Get rid of #defines after #error, which makes no
- sense.
-
-Sat Apr 15 19:48:57 2006 Ben Pfaff <blp@gnu.org>
-
- Get rid of our own int32 type in favor of the standard int32_t
- type.
-
- * sfm-private.h: (int32 macro) Don't define this anymore. Do
- include <stdint.h>.
-
- * sys-file-reader.c: Use int32_t instead of int32 throughout.
-
- * sys-file-writer.c: Use int32_t instead of int32 throughout.
-
-Sat Apr 15 19:36:47 2006 Ben Pfaff <blp@gnu.org>
-
- Remove ill-considered file routines that are no longer used.
-
- * filename.c: (fn_open_ext) Removed.
- (fn_close_ext) Removed.
-
- * filename.h: (struct file_ext) Removed.
-
-Mon Apr 3 13:22:39 2006 Ben Pfaff <blp@gnu.org>
-
- * variable.c (var_is_valid_name): Move declarations before code
- for C90 compliance.
-
-Tue Apr 4 15:28:40 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * filename.ch (fn_interp_vars): Fixed small buglet.
-
-Tue Mar 28 13:47:16 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * filename.[ch] (fn_interp_vars): Changed the signature and semantics
- so as to modify the string inline. Thus makeing it easier to
- destroy the results when no longer needed.
-
-2006-03-25 Jason Stover <jhs@math.gcsu.edu>
-
- * category.c (cat_stored_values_destroy): Fixed memory leak.
-
-Fri Mar 24 18:15:41 2006 Ben Pfaff <blp@gnu.org>
-
- Add some missing frees. Thanks to John Darrington for reporting
- these.
-
- * any-writer.c (any_writer_close): Free writer.
-
- * any-reader.c (any_reader_close): Free reader.
-
-Mon Mar 20 16:33:53 2006 Ben Pfaff <blp@gnu.org>
-
- * por-file-reader.c: (error) Mark as NO_RETURN.
-
-Sat Mar 11 15:06:07 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * settings.c: Changed default value of scompress to true.
-
-Sat Mar 4 13:22:51 2006 Ben Pfaff <blp@gnu.org>
-
- * sfm-private.h: Include variable.h, to get SHORT_NAME_LEN.
-
- * value.h: Remove check on MAX_SHORT_STRING, which I don't think
- really applies.
-
- * variable.h: Move definition of SHORT_NAME_LEN, LONG_NAME_LEN
- here from pref.h.orig.
-
-Sat Mar 4 12:50:48 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * sys-file-reader.c: Fixed bug reading compressed files.
-
-Thu Mar 2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * Numerous renames. See src/ChangeLog for details.
-
- * Moved files from src directory
--- /dev/null
+2008-07-25 Ben Pfaff <blp@gnu.org>
+
+ * casereader-translator.c (struct casereader_arithmetic_sequence):
+ New struct.
+ (casereader_create_arithmetic_sequence): New function.
+ (cas_translate): New function.
+ (cas_destroy): New function.
+
+2008-07-26 John Darrington <john@darrington.wattle.id.au>
+
+ * case-ordering.c case-ordering.h: Removed the value_cnt
+ associated with the ordering structure.
+
+2008-07-16 Jason Stover <jhs@math.gcsu.edu>
+
+ * category.c (cat_get_category_count): New function.
+
+2008-05-15 Ben Pfaff <blp@gnu.org>
+
+ Patch #6512.
+
+ * data-out.c (output_infinite): Use gsl_isnan instead of isnan,
+ and gsl_isinf instead of isinf, as a stopgap measure for
+ portability until appropriate gnulib modules are available.
+
+ * por-file-writer.c (format_trig_double): Similarly, use
+ gsl_finite instead of finite.
+
+2008-03-18 John Darrington <john@darrington.wattle.id.au>
+
+ * data-in.c: If category is custom currency, then use
+ numeric format for input.
+
+2008-03-06 Ben Pfaff <blp@gnu.org>
+
+ * dictionary.c (var_name_is_insertable): New function.
+ (make_hinted_name): Don't accept variable names that match PSPP
+ keywords. Thanks to Jason Stover for reporting the problem.
+
+2008-03-06 Ben Pfaff <blp@gnu.org>
+
+ * format-guesser.c (syntax): Require month names to be spelled out
+ as English words, so that single characters that happen to be
+ Roman numerals don't get detected as months. Thanks to John
+ Darrington for reporting this bug.
+
+2008-03-04 Ben Pfaff <blp@gnu.org>
+
+ Patch #6441. Reviewed by John Darrington.
+
+ * format.c (fmt_fix): New function.
+ (fmt_fix_input): New function.
+ (fmt_fix_output): New function.
+
+ * format.def: Correct minimum width for DATETIME format. It was
+ 7, should have been 17.
+
+ * automake.mk: Add new files.
+
+ * format-guesser.c: New file.
+
+ * format-guesser.h: New file.
+
+2008-02-18 Ben Pfaff <blp@gnu.org>
+
+ Patch #6426. Reviewed by John Darrington.
+
+ * format.c (min_width): Renamed fmt_min_width and made public.
+ Updated all references.
+ (max_width): Renamed fmt_max_width and made public. Updated all
+ references.
+ (max_decimals): Renamed fmt_max_decimals and made public. Updated
+ all references.
+ (var_create): Use the new functions for default variable
+ attributes below.
+ (var_default_formats): New function.
+ (var_default_measure): New function.
+ (var_default_alignment): New function.
+
+ * format.h (macro FMT_MAX_NUMERIC_WIDTH): New macro.
+
+2008-02-09 Ben Pfaff <blp@gnu.org>
+
+ Add a couple of extensions to GET DATA TYPE=TXT. Patch #6412.
+ Thanks to John Darrington for review.
+
+ * data-in.c (data_in): Add new argument to designate the last
+ column of the data field being parsed, for use in error messages.
+ Update all callers.
+
+ * data-parser (struct data_parser): New member `quote_escape'.
+ (data_parser_create): Initialize quote_escape.
+ (data_parser_set_quotes): New function.
+ (cut_field): Support escaped quotes.
+ (parse_delimited_span): Ditto.
+ (parse_delimited_no_span): Ditto.
+
+ * get-data.c (parse_get_txt): Support ESCAPE extension subcommand
+ in enhanced mode. Only support multiple quote characters in
+ enhanced mode.
+
+2008-02-06 John Darrington <john@darrington.wattle.id.au>
+
+ psql-reader.c psql-reader.h: Read more than one tuple at
+ once. Fix bug reading a query which returns no data. Fix bug
+ when transformation followed a reader.
+ Ask the server for the number of records in the query, for the
+ benefit of the gui.
+
+2008-02-05 John Darrington <john@darrington.wattle.id.au>
+
+ psql-reader.c: So yesterday they release postgresql 8.3.0
+ which has money represented with 64 bits. They must get
+ paid more than me.
+
+2008-02-02 John Darrington <john@darrington.wattle.id.au>
+
+ psql-reader.c psql-reader.h: New files. Thanks to Ben Pfaff
+ for reviewing this code.
+
+2008-02-02 Ben Pfaff <blp@gnu.org>
+
+ Patch #6347.
+
+ * sys-file-reader.c (read_variable_record): Allow missing values
+ to be specified on long string variables, but warn about them
+ because PSPP does not yet support them.
+ (read_extension_record): Ignore extension records 20 and 21, which
+ PSPP does not yet support.
+ (read_header): Fix error message when floating-point format cannot
+ be identified.
+
+2008-02-01 Ben Pfaff <blp@gnu.org>
+
+ Patch #6386. Thanks to John Darrington for review and for the
+ updates to gnumeric-reader.c.
+
+ * dictionary.c (make_hinted_name): New function.
+ (make_numeric_name): New function.
+ (dict_make_unique_var_name): New function.
+
+ * gnumeric-reader.c (devise_name): Removed.
+ (munge_name): Removed.
+ (gnumeric_open_reader): Use new function
+ dict_make_unique_var_name.
+
+ * short-names.c (set_var_short_name_suffix): Use new function
+ str_format_26adic.
+
+2008-01-19 John Darrington <john@darrington.wattle.id.au>
+
+ * settings.c settings.h: Moved static variables into a
+ single struct. Renamed functions to have a settings_ prefix.
+
+2008-01-14 John Darrington <john@darrington.wattle.id.au>
+
+ * data-out.c (output_AHEX): Corrected number of bytes in
+ call to output_hex. Closes bug #22011
+
+2008-01-02 John Darrington <john@darrington.wattle.id.au>
+
+ * variable.c variable.h: Replaced var_get_value_name with
+ var_append_value_name which doesn't use any static data.
+ Thanks to Ben for review.
+
+2007-12-07 Ben Pfaff <blp@gnu.org>
+
+ Patch #6302.
+
+ * casegrouper.c (casegrouper_get_next_group): Cause a casegrouper
+ made from an empty casereader produce a casegrouper with no
+ groups, instead of one with one group that has no cases.
+
+ * casereader.c (casereader_is_empty): New function.
+
+2007-12-06 Ben Pfaff <blp@gnu.org>
+
+ Patch #6303.
+
+ * sys-file-reader.c (read_display_parameters): Handle variable
+ display parameters record with only 2 data items per variable.
+ Reported by Guido Gay <gay@irer.it>.
+
+2007-12-04 Ben Pfaff <blp@gnu.org>
+
+ * identifier.c (lex_id_match_n): New function.
+ (lex_id_match): Reimplement in terms of lex_id_match_n.
+
+2007-11-24 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk (src_data_libdata_a_SOURCES): Add val-type.h, to fix
+ make distcheck.
+
+2007-11-24 Ben Pfaff <blp@gnu.org>
+
+ Fix warning reported when reading back system files that include
+ very long string variables. Thanks to Guido Gay <gay@irer.it> for
+ reporting this bug.
+
+ * short-names.c (short_names_assign): Fix dumb typo, in which `i'
+ was written where `j' was meant.
+
+2007-11-18 Ben Pfaff <blp@gnu.org>
+
+ Properly write variables that include a range of missing values to
+ system files. Thanks to Guido Gay <gay@irer.it> for reporting
+ this bug.
+
+ * sys-file-writer.c (write_variable): Correctly calculate
+ n_missing_values field when writing variables that include a range
+ of missing values.
+
+2007-11-10 Ben Pfaff <blp@gnu.org>
+
+ Cleanups and bug fixes devised while writing up documentation.
+ Patch #6262.
+
+ * automake.mk (src_data_libdata_a_SOURCES): Add new files.
+
+ * dict-class.c: New file.
+ (dict_class_from_id): Move here.
+ (dict_class_to_name): Move here.
+
+ * dict-class.h: New file.
+ (enum dict_class): Move here. Change from consecutive integers to
+ consecutive bits, to make testing for any of multiple values
+ easier. Add new DC_ALL constant.
+
+ * dictionary.c (struct dictionary): Change `case_limit' from
+ size_t to casenumber.
+ (dict_get_vars): Make final argument an enum dict_class.
+ (dict_get_vars_mutable): Ditto.
+ (dict_get_case_limit): Change return value to casenumber.
+ (dict_set_case_limit): Change final argument to a casenumber.
+ (dict_unset_split_var): Add assertion. Rephrase slightly.
+ (dict_set_label): Use xstrndup to simplify.
+
+ * format.c (fmt_step_width): AHEX format also needs 2-byte
+ stepping.
+ (fmt_set_style): Simplify assertions.
+
+ * missing-values.c (mv_add_num_range): Rename mv_add_range.
+ Simplify implementation.
+ (mv_has_value): Simplify implementation.
+ (mv_pop_value): Remove the first value, not the last, to avoid
+ having GET followed by SAVE reverse the order of missing values.
+ (mv_peek_value): Rename mv_get_value. Simplify assertion.
+ (mv_has_range): Simplify implementation.
+ (mv_peek_range): Rename mv_get_range.
+ (can_resize_string): Removed.
+ (mv_is_resizable): Use value_is_resizable.
+ (mv_resize): Use value_resize.
+
+ * short-names.h (SHORT_NAME_LEN): Move here.
+
+ * val-type.h: New file, for definitions related to type and width
+ of abstract values. Before, these definitions were mixed among
+ those related to "union value" and those related to variables.
+ (macro SYSMIS): Move here.
+ (macro LOWEST): Move here.
+ (macro HIGHEST): Move here.
+ (macro MAX_STRING); Move here.
+ (enum val_type): New enum with values VAL_NUMERIC and VAL_STRING.
+ Replaces enum var_type that had values VAR_NUMERIC and VAR_STRING.
+ All references updated.
+ (val_type_is_valid): New function. Replaces var_type_is_valid.
+ All references updated.
+ (val_type_from_width): New function. Replaces
+ var_type_from_width. All references updated.
+
+ * value-labels.c (val_labs_copy): Renamed val_labs_clone. All
+ references updated.
+ (val_labs_can_set_width): Use value_is_resizable.
+ (val_labs_add): Simply return false if the value labels set is too
+ wide, instead of having undefined behavior.
+ (val_labs_replace): Ditto.
+ (val_labs_replace): Ditto.
+ (val_labs_first): Set iterator to null if iteration is complete.
+ (val_labs_first_sorted): Ditto.
+ (val_labs_done): Become a no-op if the iterator is null.
+
+ * value.c (value_is_resizable): New function.
+ (value_resize): New function.
+
+ * variable.c (var_get_dict_class): New function.
+
+ * variable.h (macro LONG_NAME_LEN): Rename VAR_NAME_LEN. Update
+ all references.
+
+2007-11-08 Ben Pfaff <blp@gnu.org>
+
+ * data-in.c: Make formatted data parsing locale-independent.
+ (parse_number): Use c_strtod instead of strtod, to avoid
+ locale-specific behavior.
+ (parse_Z): Ditto.
+
+2007-11-06 Ben Pfaff <blp@gnu.org>
+
+ Patch #6256: add support for binary, 360 file formats. Reviewed
+ by John Darrington.
+
+ * data-in.c (struct data_in): Add `encoding' member.
+ (data_in): Add `encoding' parameter, and re-encode the data passed
+ in where appropriate. Update all callers to pass it in.
+ (parse_A): Implement EBCDIC recoding wart described in manual.
+ (parse_AHEX): Implement EBCDIC recoding.
+
+ * data-out.c (data_out_legacy): New function.
+ (data_out): Make into a wrapper around data_out_legacy.
+
+ * file-handle-def.c (struct file_handle): New member `encoding'.
+ (fh_create_file): Set encoding.
+ (fh_default_properties): Set default encoding.
+ (fh_get_legacy_encoding): New function.
+
+ * file-handle-def.h (enum fh_mode): New modes FH_MODE_FIXED
+ (that replaces FH_MODE_BINARY), FH_MODE_VARIABLE,
+ FH_MODE_360_VARIABLE, FH_MODE_360_SPANNED.
+ (struct fh_properties): New member `encoding'.
+
+2007-11-05 Ben Pfaff <blp@gnu.org>
+
+ Patch #6258. Reviewed by John Darrington.
+
+ * file-handle-def.c (fh_lock): Add comment that TYPE should be
+ marked with N_() in the caller. Added these markings to each
+ caller too. Should make i18n easier.
+ Suggested by Chusslove Illich <caslav.ilic@gmx.net>.
+
+2007-11-03 Ben Pfaff <blp@gnu.org>
+
+ Allow output files to overwrite input files (bug #21280).
+
+ * file-handle-def.c: Separate locking of files for input and for
+ output, to allow both to take place at once. Also, distinguish a
+ file handle from the identity of the underlying file, because the
+ identity of a file changes over time and the file handle can't
+ represent two different identities.
+ (struct file_handle): Remove `next', `open_cnt', `deleted',
+ `type', `open_mode', `aux', `identity' members. Change `id' from
+ char array to char *. Add `ref_cnt' member.
+ (file_handle_from_ll) New function.
+ (file_handles) Removed.
+ (named_handles) New variable.
+ (fh_init) Initialize named_handles.
+ (fh_done) Remove name from all named_handles.
+ (free_handle) Updated for modified struct file_handle.
+ (unname_handle) New function.
+ (fh_ref) New function.
+ (fh_from_file_name) Removed.
+ (fh_unref) New function.
+ (fh_unname) New function.
+ (fh_from_id) Rewritten.
+ (create_handle) Updated for modified struct file_handle.
+ (fh_inline_file) Increment the handle's ref count.
+ (fh_create_file) Updated for modified struct file_handle.
+ (fh_create_scratch) Ditto.
+ (fh_free) Removed.
+ (mode_name) Removed.
+ (fh_open) Removed.
+ (fh_close) Removed.
+ (fh_is_open) Removed.
+ (fh_get_id) Updated for modified struct file_handle.
+ (fh_get_default_handle) Increment the handle's ref count.
+ (fh_set_default_handle) Handle ref counts.
+ (struct fh_lock) New structure.
+ (locks) New static var.
+ (fh_lock) New function.
+ (fh_unlock) New function.
+ (fh_lock_get_aux) New function.
+ (fh_lock_set_aux) New function.
+ (fh_is_locked) New function.
+ (make_key) New function.
+ (free_key) New function.
+ (compare_fh_locks) New function.
+ (hash_fh_lock) New function.
+
+ * file-handle-def.h (enum fh_access) New enum.
+
+ * file-name.c: Made file_identity the same in all supported
+ environments.
+ (struct file_identity): New `name' member.
+ (fn_get_identity): For a file that doesn't exist, get the
+ dev/inode of its directory plus its name. If even the directory
+ doesn't exist, just use its name. Merge the Windows
+ implementation into the Unix one.
+ (fn_compare_file_identities): Rewritten. Merge the Windows
+ implementation into the Unix one.
+ (fn_hash_identity): New function.
+
+ * make-file.c (struct replace_file): New structure.
+ (all_files): New static var.
+ (replace_file_start): New function.
+ (replace_file_commit): New function.
+ (replace_file_abort): New function.
+ (free_replace_file): New function.
+ (unlink_replace_files): New function.
+
+ * por-file-reader.c (struct pfm_reader): Add `lock' member.
+ (close_reader): Unlock file.
+ (pfm_open_reader): Lock file.
+
+ * por-file-writer.c (struct pfm_writer): Add fh_lock, replace_file
+ members.
+ (pfm_open_writer): Lock file and prepare for its replacement.
+ (close_writer): Unlock file.
+
+ * scratch-handle.h (struct scratch_handle): Add unique_id so that
+ different generations of a scratch file can be distinguished.
+
+ * scratch-reader.c (scratch_reader_open): Verify that the file is
+ a scratch file.
+
+ * scratch-writer.c (struct scratch_writer): Add `lock' and `dict',
+ remove scratch_handle member.
+ (scratch_writer_open): Lock handle. Prepare to replace handle
+ data, instead of doing it immediately.
+ (scratch_writer_casewriter_destroy): Replace handle data and
+ unlock handle.
+
+ * sys-file-reader.c (struct sfm_reader): Add `lock' member.
+ (sfm_open_reader): Lock file.
+ (close_reader): Unlock file.
+
+ * sys-file-writer.c (struct sfm_writer): Add fh_lock, replace_file
+ members.
+ (sfm_open_writer): Lock file and prepare for its replacement.
+ (close_writer): Unlock file.
+
+2007-11-02 Ben Pfaff <blp@gnu.org>
+
+ * data-out.c (output_number): Use isfinite (from C99) instead of
+ gsl_isfinite, since we now have universal support for it in
+ gnulib.
+ (output_infinite): Ditto.
+ [!HAVE_ROUND] (round): Remove definition, since we now have a
+ replacement in gnulib.
+
+2007-10-27 John Darrington <john@darrington.wattle.id.au>
+
+ * dictionary.c: Fixed bug in dict_clone, where the vardict.dict member
+ wasn't initialised correctly. Closes bugs #21330 and 21397
+
+
+2007-10-08 Ben Pfaff <blp@gnu.org>
+
+ Fix bug #21280. Thanks to John Darrington for review.
+
+ * file-name.c (create_stream): New function.
+
+ * por-file-writer.c (pfm_open_writer): Use fh_open to open the
+ file handle before creating the file, to ensure that we don't
+ truncate a file that we're reading. Make code easier to read by
+ using create_stream.
+
+ * sys-file-write.c (sfm_open_writer): Ditto.
+
+2007-10-01 Ben Pfaff <blp@gnu.org>
+
+ Fix bug #21192. Thanks to John Darrington for review.
+
+ * casereader.c (casereader_read): Decrement case_cnt before
+ calling the casereader's "read" member function, so that we
+ interact properly with lazy_casereader.
+
+ * datasheet.c: Add regression test for above bug fix.
+ (clone_datasheet): New function.
+ (lazy_callback): New function.
+ (check_datasheet_casereader): New function.
+ (check_datasheet): Check datasheet contents are reported correctly
+ through an ordinary casereader and a lazy casereader.
+ (clone_model): Use clone_datasheet.
+
+2007-09-24 Ben Pfaff <blp@gnu.org>
+
+ Patch #6210. Reviewed by John Darrington.
+ * settings.c: Drop "long view", which is not needed any longer.
+ (static var long_view): Removed.
+ (force_long_view): Removed.
+ (get_viewwidth): Removed.
+ (init_viewport): Removed long_view reference.
+
+2007-09-19 John Darrington <john@darrington.wattle.id.au>
+
+ * settings.c settings.h: Changed viewport's length and width to be
+ owned by the user interface which uses the data library. This allows
+ better abstraction, and makes dynamically adjustable dimensions easier.
+
+2007-09-18 Ben Pfaff <blp@gnu.org>
+
+ * procedure.c (proc_extract_active_file_data): New function.
+
+ * lazy-casereader.h: New file.
+
+ * lazy-casereader.c: New file.
+
+ * casereader.c (casereader_dynamic_cast): New function.
+
+2007-09-14 Ben Pfaff <blp@gnu.org>
+
+ * dictionary.c (dict_clone): Copy case indexes from cloned
+ dictionary. Fixes bug #21061. Reviewed by John Darrington.
+
+2007-09-13 John Darrington <john@darrington.wattle.id.au>
+
+ * value.c value.h (create_value): New function.
+
+2007-09-12 Ben Pfaff <blp@gnu.org>
+
+ Make it clear that translator casereader and casewriter translate
+ functions are supposed to destroy their input case.
+
+ * casereader-translator.c (struct casereader_translator): Change
+ input case parameter of translate member function from const
+ struct ccase * to struct ccase *.
+ (casereader_create_translator): Ditto, for translate parameter.
+
+ * casewriter-translator.c (struct casewriter_translator): Ditto.
+ (casewriter_create_translator): Ditto.
+
+2007-08-27 John Darrington <john@darrington.wattle.id.au>
+
+ * sys-file-reader.c (read_display_parameters): Force display width
+ to 8, if the sys file says 0 (like SPSS does).
+
+2007-08-12 Ben Pfaff <blp@gnu.org>
+
+ * dictionary.c (dict_dump): New function.
+
+2007-08-12 Ben Pfaff <blp@gnu.org>
+
+ Drop dict_compactor in favor of using the new struct case_map.
+
+ * dictionary.c (struct copy_map): Removed.
+ (struct dict_compactor): Removed.
+ (dict_make_compactor): Removed.
+ (dict_compactor_compact): Removed.
+ (dict_compactor_destroy): Removed.
+
+ * procedure.c (struct data_set): Change `compactor' member to be a
+ struct case_map *.
+ (proc_open): Use case_map_to_compact_dict instead of
+ dict_make_compactor.
+ (proc_casereader_read): Use case_map_execute instead of
+ dict_compactor_compact.
+ (proc_commit): Use case_map_destroy instead of
+ dict_compactor_destroy.
+
+ * scratch-writer.c (struct scratch_writer): Change `compactor'
+ member to be a struct case_map *.
+ (scratch_writer_open): Use case_map_to_compact_dict instead of
+ dict_make_compactor.
+ (scratch_writer_casewriter_write): Use case_map_execute instead of
+ dict_compactor_compact.
+
+2007-08-12 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Add case-map.c, case-map.h.
+
+ * case-map.c: New file.
+
+ * case-map.h: New file.
+
+2007-08-12 Ben Pfaff <blp@gnu.org>
+
+ * dictionary.c (dict_compact_values): Don't delete scratch
+ variables as well as compacting case indexes. Update all callers.
+ (dict_get_compacted_value_cnt): Rename dict_count_values and
+ change interface. Update all callers.
+ (dict_get_compacted_value_cnt): Remove.
+ (dict_compacting_would_shrink): Remove.
+ (dict_compacting_would_change): Remove.
+ (dict_make_compactor): Add new parameter. Update all callers.
+
+ * procedure.c (proc_casereader_read): Use casewriter_get_value_cnt
+ instead of dict_count_values, changing an O(N) operation into
+ O(1).
+
+2007-08-12 Ben Pfaff <blp@gnu.org>
+
+ * casereader.c (casereader_read): Don't require cases read by a
+ casereader to be exactly the expected size: as long as they're big
+ enough, it's OK.
+
+2007-08-12 Ben Pfaff <blp@gnu.org>
+
+ Make casewriters keep track of the number of `union value's in
+ each case. This is useful for two reasons: casewriter_write can
+ then check that the case being written is large enough, and later
+ recipients of the casewriter can determine the size of the case.
+
+ * casewriter-translator.c (casewriter_create_translator): Add
+ value_cnt parameter.
+
+ * casewriter.c (struct casewriter): Add value_cnt member.
+ (casewriter_write): Check that the case passed in is big enough.
+ (casewriter_get_value_cnt): New function.
+ (casewriter_create): Add value_cnt parameter.
+
+2007-08-09 Ben Pfaff <blp@gnu.org>
+
+ Fix bug reported by Jason Stover.
+ * settings.c: Move get_termcap_viewport and in particular the
+ #include for <curses.h> to the end of the file. curses.h
+ redefines bool on some systems (e.g. OpenBSD), which causes
+ disagreement between uses of bool before its inclusion and
+ afterward.
+ Tested by Jason Stover.
+
+2007-07-29 Ben Pfaff <blp@gnu.org>
+
+ Provisional fix for bug #18692 and bug #20161. Reviewed by John
+ Darrington.
+
+ * file-name.c (fn_open): Only pass "r" or "w" to popen as mode
+ argument (never "rb" or "wb") because SUSv3 says that only those
+ modes are defined, and glibc in fact rejects other modes.
+
+ Open portable files with fn_open so that they can be read from
+ pipes. Fix missing fh_close call to go along with fh_open.
+ Report an error if the file close reports an error.
+ * por-file-reader.c (close_reader): New function.
+ (por_file_casereader_destroy): Use close_reader.
+ (pfm_open_reader): Open file with fn_open.
+
+2007-07-28 Ben Pfaff <blp@gnu.org>
+
+ Make PSPP able to read all the portable files I could find on the
+ web. Thanks to John Darrington for review. Bug #17620.
+ * por-file-reader.c (struct pfm_reader): New member `line_length'.
+ (error): Print file offset in hexadecimal.
+ (warning): New function.
+ (advance): Treat lines less than 80 bytes long as padded to 80
+ bytes with spaces.
+ (pfm_open_reader): Call read_documents if we find an "E" record.
+ (convert_format): Convert invalid formats to the default format
+ instead of aborting reading the file.
+ (read_variables): Rename duplicate variable names instead of
+ aborting reading the file.
+ (read_value_label): Allow string variables of different widths to
+ be assigned value labels in the same record. Replace duplicate
+ value labels instead of aborting.
+ (read_documents): New function.
+
+ * por-file-writer.c (pfm_open_writer): Call write_documents if the
+ dictionary has documents.
+ (write_documents): New function.
+
+2007-07-25 Ben Pfaff <blp@gnu.org>
+
+ Fix bugs related to bug #17213.
+
+ * settings.c: Use HAVE_LIBNCURSES instead of HAVE_LIBTERMCAP,
+ since the former is what config.h has. Include the needed ncurses
+ headers.
+ (static var echo) Rename to `do_echo' because the original name is
+ the same as an ncurses identifier.
+ (get_termcap_viewport) Use error instead of msg.
+
+ * file-name.c (fn_interp_vars): Fix interpolation of $VARS.
+ (fn_close): Don't close stdin, stdout, stderr.
+
+2007-07-26 John Darrington <john@darrington.wattle.id.au>
+
+ * procedure.c procedure.h: Added callbacks which get invoked whenever
+ a dataset's transformation chain changes.
+
+2007-07-24 Ben Pfaff <blp@gnu.org>
+
+ Fix bug #6113.
+ * sys-file-writer.c (write_variable_display_parameters): Use new
+ var_default_display_width function to choose display width of
+ segments after the first one in a given variable.
+ * variable.c (var_create): Use var_default_display_width to pick
+ new variable's display width.
+ (var_default_display_width): New function.
+ Reviewed by John Darrington.
+
+2007-07-24 Ben Pfaff <blp@gnu.org>
+
+ Fix bug #20427.
+ * por-file-writer.c (write_variables): Write weight variable.
+ Reviewed by John Darrington.
+
+2007-07-23 Ben Pfaff <blp@gnu.org>
+
+ Improvements to system file reader and writer.
+
+ First, move all detailed knowledge of very long strings into
+ sys-file-private.[ch], so that this nasty stuff can be isolated.
+
+ * sys-file-private.c (REAL_VLS_CHUNK): New macro.
+ (EFFECTIVE_VLS_CHUNK): New macro.
+ (min_int): New function.
+ (max_int): New function.
+ (sfm_width_to_bytes): Rewrite.
+ (sfm_width_to_octs): New function.
+ (sfm_segment_alloc_width): New function.
+ (sfm_segment_alloc_bytes): New function.
+ (sfm_segment_used_bytes): New function.
+ (sfm_segment_offset): New function.
+ (sfm_segment_effective_offset): New function.
+ (sfm_dictionary_to_sfm_vars): New function.
+
+ * sys-file-private.h (MIN_VERY_LONG_STRING): Removed.
+ (EFFECTIVE_LONG_STRING_LENGTH): Removed.
+ (struct sfm_var): New structure.
+
+ Next, improvements to the system file reader.
+
+ * sys-file-reader.h (struct sfm_read_info): Changed `case_cnt' to
+ type casenumber. Added `version_major', `version_minor',
+ `version_revision'.
+
+ * sys-file-reader.c (struct sfm_reader): Replaced `flt64_cnt' by
+ `oct_cnt'. Rename `vars', `var_cnt' to `sfm_vars', `sfm_var_cnt'.
+ Change `case_cnt' to type casenumber. Removed `has_vls'.
+ (struct sfm_var): Removed.
+ (sfm_open_reader): Don't warn on wrong case size if the file was
+ written by SPSS 13, which tends to get it wrong. Use
+ sfm_dictionary_to_sfm_vars.
+ (read_header): Always output system file info.
+ (read_variable_record): Simplify code for reading missing values.
+ (read_machine_int32_info): Save version numbers from system file
+ into info struct passed as new argument.
+ (read_long_string_map): Restructured to use new sys-file-private
+ functions.
+ (read_value_labels): Use size_overflow_p.
+ (sys_file_casereader_read): Get rid of distinction between fast
+ and slow paths. Use information provided by sys-file-primate's
+ struct sfm_var to simplify code.
+ (skip_whole_strings): New function.
+ (read_int32): Renamed read_int. Changed return value to int.
+ Updated all callers.
+ (read_flt64): Renamed read_float. Changed return value to
+ double. Updated all callers.
+ (int32_to_native): Removed. Changed callers to use
+ integer_convert.
+ (flt64_to_double): Removed. Changed callers to use float_convert.
+
+ Finally, get rid of int32, flt64 terminology and types in system
+ file writer. The former wasn't very useful since a POSIX "int"
+ can hold the whole range of int32 and we generally didn't have a
+ need for it to be exactly-32-bits, just at-least-32-bits. The
+ latter was inconvenient because we had to assume that it could be
+ different from double and thereby convert special values SYSMIS,
+ HIGHEST, LOWEST to and from it in multiple places. Instead, now
+ we just use "int" and "double" in most places, and do conversions,
+ if necessary, very close to where we do I/O. This change meant
+ that the writer code couldn't represent records in the file as C
+ structs any longer, but that's no great loss. The code actually
+ seems to be more readable without them.
+
+ Simplify the compression buffering code: only buffer as much as
+ necessary, which is no more than eight 8-byte units at any given
+ time.
+
+ * sys-file-writer.c (typedef flt64): Removed.
+ (macro second_lowest_flt64): Removed.
+ (struct sysfile_header): Removed.
+ (struct sysfile_variable): Removed.
+ (struct sfm_writer): Removed `needs_translation', `has_vls',
+ `flt64_cnt'. Changed `compress' to type bool and `case_cnt' to
+ type casenumber. Renamed `vars' to `sfm_vars', `var_cnt' to
+ `sfm_var_cnt'. Replaced `buf', `end', `ptr', `x', `y' for
+ compression buffering by `opcodes', `opcode_cnt', `data',
+ `data_cnt'. Renamed `var_cnt_vls' as `segment_cnt'.
+ (sfm_open_writer): Use sfm_dictionary_to_sfm_vars. Use simple
+ data writer functions instead of structures.
+ (calc_oct_idx): New function.
+ (write_header): Use simple data writer functions instead of
+ structures.
+ (write_format_spec): Renamed write_format. New argument.
+ (write_variable_continuation_records): New function.
+ (write_variable): Use simple data writer functions instead of
+ structures. Use write_variable_continuation_records. Write
+ entire very long string instead of requiring caller to understand
+ them.
+ (write_value_labels): Use simple data writer functions instead of
+ structures.
+ (write_documents): Ditto.
+ (write_variable_display_parameters): Use sys-file-private
+ functions to simplify. Use simple data writer functions instead
+ of structures.
+ (write_vls_length_table): Use simple data writer functions instead
+ of structures.
+ (write_longvar_table): Ditto.
+ (write_rec_7_34): Break into new functions
+ write_integer_info_record, write_float_info_record. Use simple
+ data writer functions instead of structures.
+ (buf_write): Removed.
+ (append_string_max): Removed.
+ (ensure_buf_space): Removed.
+ (sys_file_casewriter_write): Get rid of the distinction between
+ fast and slow paths, which didn't seem to be too useful. Use new
+ functions write_case_uncompressed, write_case_compressed.
+ (put_instruction): Removed.
+ (put_element): Removed.
+ (write_compressed_data): Removed.
+ (close_writer): Use flush_compressed. Only write case count to
+ system file if it will fit in the field.
+ (write_case_compressed): New function.
+ (write_case_uncompressed): New function.
+ (flush_compressed): New function.
+ (put_cmp_opcode): New function.
+ (put_cmp_number): New function.
+ (write_int): New function.
+ (convert_double_to_output_format): New function.
+ (write_float): New function.
+ (write_value): New function.
+ (write_string): New function.
+ (write_bytes): New function.
+ (write_zeros): New function.
+ (write_spaces): New function.
+
+ Reviewed by John Darrington.
+
+2007-07-22 Ben Pfaff <blp@gnu.org>
+
+ Don't try to write very long strings to portable files. The
+ format does not support it.
+
+ * por-file-writer.c (MAX_POR_WIDTH): New macro.
+ (pfm_open_writer): Limit output width to MAX_POR_WIDTH.
+ (write_format): Add arg to take width to resize format to.
+ (write_value): Limit width of value written to MAX_POR_WIDTH.
+ (write_variables): Limit width of variable and its output formats
+ to MAX_POR_WIDTH.
+ Reviewed by John Darrington.
+
+2007-07-22 Ben Pfaff <blp@gnu.org>
+
+ * sys-file-reader.c (read_variable_to_value_map): Use max_warnings
+ local variable instead of literal 5.
+ Reviewed by John Darrington.
+
+2007-07-22 Ben Pfaff <blp@gnu.org>
+
+ Fix problems with uniqueness of short names in system files with
+ very long string variables. Now a variable may have multiple
+ short names.
+
+ * automake.mk (src_data_libdata_a_SOURCES): Add new files
+ short-names.c, short-names.h.
+
+ * dictionary.c (dict_clone): Clone all the short names.
+ (compare_strings): Move into short-names.c.
+ (hash_strings): Ditto.
+ (set_var_short_name_suffix): Ditto.
+ (dict_assign_short_names): Ditto, rename short_names_assign,
+ change to assign all short names.
+
+ * por-file-writer.c (write_variables): Use short_names_assign
+ instead of dict_assign_short_names.
+
+ * short-names.c: New file.
+
+ * short-names.h: New file.
+
+ * sys-file-private.c (sfm_width_to_segments): New function.
+
+ * sys-file-reader.c (read_long_var_name_map): Save and restore all
+ the short names, not just the first one.
+
+ * sys-file-writer.c (cont_var_name): Removed.
+ (sfm_open_writer): Use short_names_assign instead of
+ dict_assign_short_names. Use unique short names assigned by
+ short_names_assign instead of those generated by cont_var_name.
+
+ * variable.c (struct variable): Remove `short_name' member,
+ replace by `short_names' and `short_name_cnt'.
+ (var_create) Initialize new members.
+ (var_get_short_name_cnt): New function.
+ (var_get_short_name): Now takes an index argument. Changed most
+ callers to pass 0.
+ (var_set_short_name): Ditto.
+ (var_clear_short_name): Renamed var_clear_short_names, changed to
+ clear all short names.
+
+ Reviewed by John Darrington.
+
+2007-07-22 Ben Pfaff <blp@gnu.org>
+
+ * variable.c (var_set_width): Use new var_set_width function.
+
+ * missing-values.c (mv_n_values): Drop assertion, which was not
+ needed.
+
+ * format.c (fmt_default_for_width): New function.
+ (fmt_resize): New function.
+
+ Reviewed by John Darrington.
+
+2007-07-18 John Darrington <john@darrington.wattle.id.au>
+
+ * datasheet.c (datasheet_delete_columns): Added assertion to check
+ we're not deleting outside the range of the sheet.
+
+
+ * dictionary.c dictionary.h variable.c: Added the ability for string
+ variables to be resized.
+
+ * vardict.h: Added some prototypes (moved from dictionary.h) as
+ these should only be called by variable.c
+
+
+2007-07-14 John Darrington <john@darrington.wattle.id.au>
+
+ * sfm-reader.c: Respect case_cnt field in file header.
+
+2007-07-01 John Darrington <john@darrington.wattle.id.au>
+
+ * transformation.c transformation.h (trns_chain_execute): Changed the
+ signature (Patch #6057)
+
+2007-06-10 Ben Pfaff <blp@gnu.org>
+
+ * casereader-filter.c (casereader_filter_destroy): Make sure to
+ write all the remaining excluded cases to the casewriter, if any.
+
+ * caseinit.c (init_list_destroy): Rewrite.
+ (init_list_clear): Ditto.
+
+ * casegrouper.c (casegrouper_get_next_group): Always set *reader
+ to null when returning false.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ Actually implement the new procedure code and adapt all of its
+ clients to match. Also adapt all of the other case sources and
+ sinks in the tree and their clients to use the
+ casereader/casewriter infrastructure.
+
+ * automake.mk: Add and remove files.
+
+ * any-reader.c: Change into a casereader.
+ * por-file-reader.c: Ditto.
+ * scratch-reader.c: Ditto.
+ * sys-file-reader.c: Ditto.
+
+ * any-writer.c: Change into a casewriter.
+ * por-file-writer.c: Ditto.
+ * scratch-writer.c: Ditto.
+ * sys-file-writer.c: Ditto.
+
+ * procedure.c: Change to use casereader, casewriter, caseinit, and
+ other new infrastructure.
+
+ * scratch-handle.c: Adapt to new infrastructure.
+
+ * case-sink.c: Removed, now dead code.
+ * case-sink.h: Ditto.
+ * case-source.c: Ditto.
+ * case-source.h: Ditto.
+ * casefile-factory.c: Ditto.
+ * casefile-private.h: Ditto.
+ * casefile.c: Ditto.
+ * casefile.h: Ditto.
+ * casefilter.c: Ditto.
+ * casefilter.h: Ditto.
+ * fastfile.c: Ditto.
+ * fastfile.h: Ditto.
+ * fastfile-factory.c: Ditto.
+ * fastfile-factory.h: Ditto.
+ * storage-stream.c: Ditto.
+ * storage-stream.h: Ditto.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ Add datasheet code.
+
+ * automake.mk: Add new files.
+
+ * datasheet.c: New file.
+
+ * datasheet.h: New file.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ Until now, the procedure code has provided a case to the
+ case_source, which has filled in the data values that come from
+ the active file. "Left" data values that don't come from the
+ active file naturally stay the same from case to case, because the
+ procedure code keeps using that same case.
+
+ One of the compromises that comes with the new procedure code is
+ that the active file allocates and provides its own case, which
+ the procedure code then has to resize to provide room for any
+ other variables that should go in the case and then fill in the
+ values of "left" variables. Then, when we're done with that case,
+ we have to save the values of "left" variables to copy into the
+ next case read from the active file.
+
+ The caseinit code helps with this.
+
+ * automake.mk: Add new files.
+
+ * caseinit.c: New file.
+
+ * caseinit.h: New file.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ * value.h (value_cnt_from_width): New function.
+
+ * variable.c (var_get_value_cnt): Use new function.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ Add casegrouper, to allow cases read from a given casereader to be
+ broken into groups, each of which has its own casereader.
+ Generally cases are grouped based on having equal values for some
+ set of variables.
+
+ * automake.mk: Add new files.
+
+ * casegrouper.c: New file.
+
+ * casegrouper.h: New file.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ Add interface to lexicographical ordering of cases.
+
+ * automake.mk: Add new files.
+
+ * case-ordering.c: New file.
+
+ * case-ordering.h: New file.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ Add casereaders and casewriters, the basis of the new data processing
+ implementation. A casereader is a uniform interface to reading cases
+ from a data source; a casewriter is a uniform interface to writing
+ cases to a data sink.
+
+ * automake.mk: Add new files.
+
+ * casereader-filter.c: New file.
+
+ * casereader-provider.h: New file.
+
+ * casereader-translator.c: New file.
+
+ * casereader.c: New file.
+
+ * casereader.h: New file.
+
+ * casewriter-provider.h: New file.
+
+ * casewriter-translator.c: New file.
+
+ * casewriter.c: New file.
+
+ * casewriter.h: New file.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ "casewindow" data structure that extends the deque (from libpspp)
+ of cases with the ability to dump cases to disk if we get too many
+ of them in memory.
+
+ * automake.mk: Add new files.
+
+ * casewindow.c: New file.
+
+ * casewindow.h: New file.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ sparse_cases data structure that augments a sparse_array of cases
+ with the ability to dump cases to disk if we get too many cases in
+ memory.
+
+ * automake.mk: Add new files.
+
+ * sparse-cases.c: New file.
+
+ * sparse-cases.h: New file.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ Adds a low-level on-disk case array data structure.
+
+ * automake.mk: Add new files.
+
+ * case-tmpfile.c: New file.
+
+ * case-tmpfile.h: New file.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ In a couple of places we calculate the maximum number of cases to
+ keep in memory based on the user-defined workspace. Enable
+ centralizing the calculation through a new function.
+
+ * settings.c (get_workspace_cases): New function.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ The casenumber type is defined in transformations.h, but case.h is
+ a more sensible place. Move it.
+
+ * case.h (CASENUMBER_MAX): New macro.
+ (typedef casenumber): Move here, from transformations.h.
+
+2007-06-03 Ben Pfaff <blp@gnu.org>
+
+ Slightly generalize case_to_values and case_from_values functions.
+
+ * case.c (case_to_values): Rename case_copy_out, change interface.
+ (case_from_values): Rename case_copy_in, change interface.
+
+ * fastfile.c (fastfilereader_get_next_case): Update caller.
+ (write_case_to_disk): Ditto.
+
+2007-06-02 Ben Pfaff <blp@gnu.org>
+
+ Clean up after a forgotten part of patch #5829.
+
+ * casedeque.h: Remove unused file.
+
+ * automake.mk: Remove casedeque.h from sources.
+
+2007-05-10 Jason Stover <jhs@math.gcsu.edu>
+
+ * category.c: Removed redundant #include
+
+2007-05-06 Ben Pfaff <blp@gnu.org>
+
+ Abstract the documents within a dictionary a little better.
+ Thanks to John Darrington for suggestion, initial version, and
+ review. Patch #5917.
+
+ * dictionary.c (struct dictionary): Change `documents' member from
+ char * to struct string.
+ (dict_clear): Destroy struct string.
+ (dict_get_documents): Convert struct string to char *.
+ (dict_set_documents): Set struct string. Pad to 80-character
+ multiple.
+ (dict_clear_documents): New function.
+ (dict_add_document_line): New function.
+ (dict_get_document_line_cnt): New function.
+ (dict_get_document_line): New function.
+
+ * dictionary.h (macro DOC_LINE_LENGTH): New macro.
+
+ * sys-file-reader.c (read_documents): Use new document functions.
+
+2007-04-19 John Darrington <john@darrington.wattle.id.au>
+
+ * sys-file-reader.c: When reading a system file which has no
+ long name table, automatically create one where the long names
+ are the lower case versions of the short names.
+
+2007-04-22 Ben Pfaff <blp@gnu.org>
+
+ * dictionary.c (dict_set_split_vars): dict_destroy expects that
+ dict_clear will free most data related to the dictionary.
+ dict_clear does a decent job, except that dict_set_split_vars on
+ some systems won't actually free the dict's "split" member.
+ Instead, it'll allocate a 1-byte region. Fix this.
+
+ * value.c (value_copy): New function.
+ (value_set_missing): Ditto.
+
+2007-04-22 John Darrington <john@darrington.wattle.id.au>
+
+ * Deleted existing category.h and moved cat-routines.h into
+ category.h Encapsulated struct cat_vals better.
+
+2007-04-19 John Darrington <john@darrington.wattle.id.au>
+
+ * sys-file-reader.c: When reading a system file which has no
+ long name table, automatically create one where the long names
+ are the lower case versions of the short names.
+
+2007-04-16 John Darrington <john@darrington.wattle.id.au>
+
+ * sys-file-reader.c: Some versions of Other Software seem to
+ produce system files with string variables' measure set to
+ zero. We'll assume these are supposed to be nominal variables.
+
+2007-03-30 Ben Pfaff <blp@gnu.org>
+
+ * procedure.c: Adapt to new deque data structure.
+
+Mon Feb 19 10:53:21 2007 John McCabe-Dansted <gmatht@gmail.com>
+ Ben Pfaff <blp@gnu.org>
+
+ * file-name.c: Mingw compatibility fixes.
+ (fn_search_path): Use ISSLASH instead of comparing against '/'
+ directly.
+ (fn_dir_name): Use dir_name from gnulib.
+ (fn_is_absolute): Use IS_ABSOLUTE_FILE_NAME from gnulib.
+ (fn_get_identity): Use GetFullPathName instead of canonicalize
+ from gnulib, because the latter does not fully support
+ Windows-style path names. Use this implementation based on the
+ detected presence of Windows instead of the absence of Unix, since
+ the new implementation is Windows-specific.
+ (fn_compare_file_identities): In Windows implementation, compare
+ names case-insensitively.
+
+Sun Feb 18 13:28:02 2007 Ben Pfaff <blp@gnu.org>
+
+ * make-file.c: Don't include mkstemp.h, because gnulib now causes
+ <stdlib.h> to have the same effect.
+
+Sun Feb 18 11:20:24 2007 Ben Pfaff <blp@gnu.org>
+
+ * por-file-reader.c: Add missing _() around messages.
+
+Sun Feb 11 20:44:13 2007 Ben Pfaff <blp@gnu.org>
+
+ * make-file.c: Include "mkstemp.h", without which linking on
+ mingw32 fails.
+
+Thu Feb 8 14:59:05 2007 Ben Pfaff <blp@gnu.org>
+
+ Reduce platform dependence.
+
+ * file-name.c (fn_tilde_expand): Removed, and removed calls to it.
+ Everywhere we using this, we really should have just depended on
+ the shell to expand tildes.
+ (fn_search_path): Simplify, given that we don't do tilde expansion
+ any longer.
+ (fn_normalize): Removed. Caller changed to use the canonicalize
+ module from gnulib.
+ (fn_get_cwd): Removed. Only user was fn_normalize.
+ (fn_is_absolute): Really only test for absolute names.
+ (fn_is_special): Use pipe files if HAVE_POPEN, not if we're in
+ unix.
+ (fn_readlink): Removed, as it was only used fn_normalize.
+ (fn_exists): Assume the stat function is available; gnulib does.
+ (fn_open): Use pipe files if HAVE_POPEN, not if we're in unix.
+
+Sat Feb 3 21:52:17 2007 Ben Pfaff <blp@gnu.org>
+
+ * dictionary.c (dict_create_vector_assert): New function.
+
+Wed Feb 7 21:25:15 2007 Ben Pfaff <blp@gnu.org>
+
+ * file-name.c (fn_normalize): Correct name of function
+ fn_is_special. Thanks to John McCabe-Dansted <gmatht@gmail.com>
+ for pointing this out.
+
+Thu Feb 1 16:53:37 2007 Ben Pfaff <blp@gnu.org>
+
+ We are using a single member in struct file_handle, the "name"
+ field, for more than one purpose. When it begins with '"', it's a
+ file name; otherwise, it's a token that can be used to identify
+ it. When that assertion fires, it's because we searched for the
+ name case-sensitively as a file name (so that there was no match),
+ and then we try to insert it case-insensitively as a token, which
+ fails because duplicates aren't allowed.
+
+ Solution: break the two purposes into two separate fields. This
+ fixes the problem and likely makes the code easier to read too.
+
+ Fixes bug #18922. Thanks to John Darrington for bug report and
+ review.
+
+ * file-handle-def.c (struct file_handle): New `id' member.
+ (fh_from_name): Rename fh_from_id. Update all callers.
+ (create_handle): New `id' parameter. Update all callers.
+ (fh_create_file): Ditto.
+ (fh_get_id): New function.
+
+Mon Jan 15 16:18:10 2007 Ben Pfaff <blp@gnu.org>
+
+ * case.c (case_is_null): Change return type to bool.
+
+Mon Jan 15 10:57:28 2007 Ben Pfaff <blp@gnu.org>
+
+ Add debugging code.
+
+ * case.c (case_clone) [DEBUGGING]: When debugging, don't use
+ reference counting to share data. This makes it easy for
+ valgrind, etc. to find accesses to cases that have been destroyed
+ but have been kept around by another user's ref-count. This often
+ happens when the data set is small enough to find in memory; if a
+ bigger data set that would overflow to disk were used, then data
+ corruption would occur.
+
+Mon Jan 15 10:55:18 2007 Ben Pfaff <blp@gnu.org>
+
+ Simplify code.
+
+ * case.c (case_unshare): Make it check internally whether the
+ ref_cnt is greater than 1, so that the callers don't have to.
+ Update callers not to check.
+
+Mon Jan 15 10:53:01 2007 Ben Pfaff <blp@gnu.org>
+
+ Before, I was thinking that I might want to get rid of reference
+ counting at some point. Now, I'm pretty sure that it's here to
+ stay. Thus, because we have to store the value_cnt anyway for
+ reference-counted cases, we might as well expose it to users.
+
+ * case.c (case_get_value_cnt): New function.
+ (case_resize): Drop OLD_CNT argument. Update all callers. Only
+ resize case if its size actually changed.
+
+ * casefile.c (casefile_append_xfer): Use case_get_value_cnt
+ instead of peeking inside struct case directly.
+ (casefile_append): Ditto.
+
+Mon Jan 15 10:50:22 2007 Ben Pfaff <blp@gnu.org>
+
+ Get rid of the inlines for the case functions, which made the
+ header file hard to read. (Also, in testing with "-O2 -DNDEBUG",
+ the inlines didn't speed up "make check" at all, which is not a
+ perfect benchmark but seems indicative.)
+
+ * case.c: Remove #ifdef DEBUGGING...#endif around many function
+ definitions. Remove some assertions on nonnull pointers that were
+ redundant with a pointer dereference soon after in the function.
+ Also:
+ (struct case_data): Move definition here from case.h.
+ (case_data): Ditto.
+ (case_num): Ditto.
+ (case_str): Ditto.
+ (case_data_wr): Ditto.
+
+Sun Jan 14 21:41:12 2007 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Add casedeque.h to sources.
+
+ * casedeque.h: New file.
+
+ * procedure.c: (struct dataset) Change lag_count, lag_head,
+ lag_queue member into single struct casedeque member. Update all
+ users to use the casedeque instead.
+ (lag_case) Removed.
+
+Sun Jan 14 21:43:12 2007 Ben Pfaff <blp@gnu.org>
+
+ * procedure.c: Simplify lagged cases interface. Updated all
+ clients--well, the only client--to use the simplified interface.
+ (dataset_n_lag) Removed.
+ (dataset_set_n_lag) Removed.
+ (dataset_need_lag) New function.
+
+Tue Jan 9 07:20:05 WST 2007 John Darrington <john@darrington.wattle.id.au>
+
+ * dictionary.c procedure.c: More changes to ensure that callbacks occur
+ whenever appropriate, but only when the dataset/dictionary is in a
+ consistent state.
+
+Sun Jan 7 08:33:04 WST 2007 John Darrington <john@darrington.wattle.id.au>
+
+ * dictionary.c dictionary.h : Added callbacks for change of filter and
+ split variables. Refactored some code to ensure that callbacks get
+ invoked when appropriate.
+
+ * procedure.c (proc_cancel_temporary_transformations): Make sure that
+ replace_dict callback occurs when permanent_dict replaces the current
+ dictionary.
+
+Wed Jan 3 11:02:11 WST 2007 John Darrington <john@darrington.wattle.id.au>
+
+ * dictionary.c dictionary.h : Added callback for when the weight
+ variable of a dictionary changes.
+
+Mon Jan 1 10:36:26 WST 2007 John Darrington <john@darrington.wattle.id.au>
+
+ * dictionary.c dictionary.h : Added replace_source and replace_dict
+ callbacks, and functions to deal with them.
+
+Fri Dec 22 13:56:08 2006 Ben Pfaff <blp@gnu.org>
+
+ Simplify missing value handling.
+
+ * missing-values.h (enum mv_class): New type.
+ (enum mv_type): Moved definition into missing-values.c and renamed
+ each MV_* to MVT_*, to distinguish them from the exposed mv_class
+ enums. Updated all uses.
+ (struct missing_values): Changed type of `type' from `enum
+ mv_type' to `int' because the definition is no longer exposed.
+
+ * missing-values.c (mv_is_value_missing): Add new enum mv_class
+ parameter. Update all callers.
+ (mv_is_num_missing): Ditto.
+ (mv_is_str_missing): Ditto.
+ (mv_is_value_user_missing): Removed. Changed callers to use
+ mv_is_value_missing.
+ (mv_is_num_user_missing): Removed. Changed callers to use
+ mv_is_num_missing.
+ (mv_is_str_user_missing): Removed. Changed callers to use
+ mv_is_str_missing.
+ (mv_is_value_system_missing): Removed. Changed callers to use
+ mv_is_value_missing.
+ (mv_set_type): Removed. Changed callers to use mv_clear.
+ (mv_clear): New function.
+
+ * variable.c (var_is_value_missing): Add new enum mv_class
+ parameter. Update all callers.
+ (var_is_num_missing): Ditto.
+ (var_is_str_missing): Ditto.
+ (var_is_value_user_missing): Removed. Changed callers to use
+ var_is_value_missing.
+ (var_is_num_user_missing): Removed. Changed callers to use
+ var_is_num_missing.
+ (var_is_str_user_missing): Removed. Changed callers to use
+ var_is_str_missing.
+ (var_is_value_system_missing): Removed. Changed callers to use
+ var_is_value_missing.
+
+ * casefilter.c (struct casefilter): Use enum mv_class in place of
+ bool.
+ (casefilter_variable_missing): Adapt to new member.
+ (casefilter_create): Change signature to take enum mv_class,
+ update callers.
+
+Fri Dec 22 20:08:38 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * casefile-factory.h fastfile-factory.c fastfile-factory.h: New files.
+
+ * case-sink.c case-sink.h procedure.c procedure.h
+ storage-stream.c: Now uses the factory.
+
+Sat Dec 16 22:05:18 2006 Ben Pfaff <blp@gnu.org>
+
+ Make it possible to pull cases from the active file with a
+ function call, instead of requiring indirection through a callback
+ function.
+
+ * case-source.h (struct case_source_class): Change ->read function
+ to return a single case, instead of calling a callback function
+ for each case. Change ->destroy function to return an error
+ status.
+
+ * case-source.c (free_case_source): Pass along the value returned
+ by the case_source ->destroy function.
+
+ * procedure.c (struct write_case_data): Removed.
+ (struct dataset): Added some members to track procedure state.
+ (procedure): Optimize the trivial case at this level.
+ (internal_procedure): Re-implement in terms of proc_open,
+ proc_read, proc_close.
+ (proc_open) New function.
+ (proc_read) New function.
+ (proc_close) New function.
+ (write_case) Moved into proc_read.
+ (close_active_file) Moved closing of data source into proc_close.
+
+ * storage-source.c: Rewrote to conform with modified
+ case_source_class interface.
+
+ * transformations.c (trns_chain_execute): Added argument to allow
+ starting execution from an arbitrary transformation. Updated
+ callers.
+
+ * transformations.h (enum TRNS_NEXT_CASE) Renamed TRNS_END_CASE.
+
+Sat Dec 16 14:09:25 2006 Ben Pfaff <blp@gnu.org>
+
+ * sys-file-reader.c (read_display_parameters): Don't assume that
+ MEASURE_* and ALIGN_* have the same values found in system files.
+
+ * sys-file-writer.c (write_variable_display_parameters): Ditto.
+
+ * variable.h: Change MEASURE_NOMINAL, MEASURE_ORDINAL,
+ MEASURE_SCALE to be 0-based instead of 1-based. This also fixes
+ the value of n_MEASURES, which was off by 1 (at least from my
+ point of view).
+
+Sat Dec 16 12:17:34 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * dictionary.c dictionary.h vardict.h variable.c: Added optional
+ callbacks which are invoked when the dictionary or its
+ variables are changed.
+
+ * missing-values.c missing-values.h value-labels.c: Tidied up
+ consistency checks, and made some of them return false
+ instead of assert-failing.
+
+Wed Dec 13 19:30:11 2006 Ben Pfaff <blp@gnu.org>
+
+ * calendar.c (calendar_days_in_month): New function.
+
+Mon Dec 11 07:53:39 2006 Ben Pfaff <blp@gnu.org>
+
+ * value-labels.c (hash_int_val_lab): Only hash as many bytes as
+ the value label's width.
+
+Sun Dec 10 14:21:29 2006 Ben Pfaff <blp@gnu.org>
+
+ * sfm-private.h: Move contents into sys-file-writer.c, which is
+ the only remaining user. Removed Borland C++-specific directives.
+
+ * sys-file-reader.c: Clean up and rewrite entire file. The
+ rewritten version is simpler and better abstracted, and should be
+ easier to maintain and extend. It avoids using structures to read
+ file data, which is prone to padding variations among compilers.
+ It should also handle non-IEEE 754 system files, although I
+ haven't been able to find any. It has been tested against many
+ .sav files obtained from the Web and found to produce the same
+ results as the earlier version of the code, or in some cases
+ improved results. It is more tolerant of format variations found
+ in the wild.
+
+ * sys-file-reader.h (struct sfm_read_info): Removed `big_endian'
+ member, putting an enum integer_format in its place. New member
+ `float_format'. Changed `compressed' member to type bool.
+
+Sun Dec 10 13:48:53 2006 Ben Pfaff <blp@gnu.org>
+
+ * dictionary.c (dict_delete_consecutive_vars): New function.
+
+Sat Dec 9 20:08:25 2006 Ben Pfaff <blp@gnu.org>
+
+ * file-name.c (fn_search_path): Remove prefix arg that was unused
+ by any caller. Updated all callers.
+
+Sat Dec 9 20:04:22 2006 Ben Pfaff <blp@gnu.org>
+
+ * format.c (fmt_dollar_template): Use user's decimal point
+ character. Add assertion.
+
+Sat Dec 9 20:02:25 2006 Ben Pfaff <blp@gnu.org>
+
+ * format.c (fmt_dollar_template): New function, based on
+ dollar_format_template from var-type-dialog.c.
+
+Sat Dec 9 18:05:59 2006 Ben Pfaff <blp@gnu.org>
+
+ * data-out.c (output_scientific): Fix bad assumption that "buf" is
+ null-terminated.
+
+Sat Dec 9 17:23:23 2006 Ben Pfaff <blp@gnu.org>
+
+ Finish converting struct variable to an opaque type. In this
+ phase, we add remaining setter and getter functions, convert the
+ remaining PSPP code to use them, and do a bunch of cleanup. The
+ resulting changes are pervasive but mostly trivial, and only the
+ notable changes are logged.
+
+ * automake.mk (src_data_libdata_a_SOURCES): Add the new source
+ files.
+
+ * case.c (case_data): Renamed case_data_idx.
+ (case_num): Renamed case_num_idx.
+ (case_str): Renamed case_str_idx.
+ (case_data_rw): Renamed case_data_rw_idx.
+
+ * case.h (case_data): New function with old name and an interface
+ that takes a variable instead of an index, which is easier to
+ use. Updated all callers to use the new interface, or to use the
+ new *_idx function (see above).
+ (case_num): Ditto.
+ (case_str): Ditto.
+ (case_data_rw): Ditto.
+
+ * category.c (cat_stored_values_destroy): Changed interface to
+ take a struct cat_vals * instead of a struct variable *.
+
+ * dictionary.c (dict_clone): Use new vector_clone function.
+ (dict_clear) Use new var_destroy function.
+ (add_var) New function.
+ (dict_create_var) Rewrite in terms of dict_create_var_assert.
+ (dict_create_var_assert) Rewrite in terms of add_var.
+ (dict_clone_var) Rewrite in terms of dict_clone_var_assert.
+ (dict_clone_var_assert) Rewrite in terms of var_clone, add_var.
+ (dict_lookup_var) Use new var_create, var_destroy functions.
+ (dict_contains_var) Rewrite in terms of new vardict functionality.
+ (set_var_dict_index) New function.
+ (set_var_case_index) New function.
+ (reindex_vars) New function.
+ (dict_delete_var) Rewrite in terms of new vardict functionality.
+ (dict_reorder_var) Ditto.
+ (dict_reorder_vars) Ditto.
+ (rename_var) New function.
+ (dict_rename_var) Use rename_var.
+ (dict_rename_vars) Use pool to simplify code. Use rename_var.
+ (dict_get_compacted_idx_to_fv) Rename
+ dict_get_compacted_dict_index_to_case_index, update callers.
+ (dict_create_vector) Use new vector_create function.
+ (dict_clear_vectors) Use new vector_destroy function.
+ (set_var_short_name_suffix) Move here from variable.c, renamed
+ from var_set_short_name_suffix, make static, update caller.
+
+ * sys-file-private.c: New file.
+ (sfm_width_to_bytes) Moved here from variable.c, renamed from
+ width_to_bytes, update callers.
+
+ * sys-file-private.h: New file. Later it will supplant
+ sfm-private.h; for now it supplements it.
+ (macro MIN_VERY_LONG_STRING) New macro.
+ (macro EFFECTIVE_LONG_STRING_LENGTH) New macro, from value.h.
+
+ * sys-file-reader.c: Use MIN_VERY_LONG_STRING - 1 where
+ MAX_LONG_STRING was used before.
+
+ * sys-file-writer.c: Ditto.
+
+ * value-labels.c: Change the paradigm here to be that a null
+ pointer is OK for a struct val_labs * in most cases; it just
+ represents an empty set of value labels.
+ (val_labs_copy) A copy of a null set is a null set.
+ (val_labs_count) A null set has 0 labels.
+ (val_labs_replace) Change return type to void. Rewrite for
+ simplicity.
+ (val_labs_find) A null set does not contain the value.
+ (value_to_string) Moved to variable.c, renamed var_get_value_name,
+ transposed argument order, updated all callers.
+
+ * value.c: New file.
+ (value_dup) Moved here from variable.c.
+ (compare_values) Ditto.
+ (hash_value) Ditto.
+
+ * value.h: (macro MAX_SHORT_STRING) Rewrote for simplicity.
+ (macro MAX_LONG_STRING) Removed, because it was only interesting
+ for system files, not for general code.
+ (macro MAX_VERY_LONG_STRING) Ditto.
+ (macro EFFECTIVE_LONG_STRING_LENGTH) Moved to sys-file-private.h.
+ (macro MAX_ELEMS_PER_VALUE) Removed, as it was unused.
+
+ * vardict.h: New file, for an interface between variables and
+ their dictionaries.
+
+ * variable.c: A lot of functions were moved around, for better
+ organization.
+ (struct variable) Move definition here, from variable.h.
+ (var_type_adj) Removed--makes i18n hard.
+ (var_type_noun) Ditto.
+ (var_create) New function.
+ (var_clone) New function.
+ (var_destroy) New function.
+ (var_set_name) Assert that variable is not in a dictionary.
+ (compare_var_names) Rename compare_vars_by_name and fix a couple
+ of callers who thought the args were strings.
+ (hash_var_name) Rename hash_var_by_name.
+ (compare_var_ptr_names) Rename compare_var_ptrs_by_name.
+ (hash_var_ptr_name) Rename hash_var_ptr_by_name.
+ (var_is_very_long_string) Removed, because it was only interesting
+ to system file code.
+ (var_set_missing_values) Allow the argument to be the wrong width,
+ as long as we can resize it. Simplify callers who were doing the
+ resizing themselves.
+ (var_get_value_labels) New function.
+ (var_has_value_labels) New function.
+ (var_set_value_labels) New function.
+ (alloc_value_labels) New function.
+ (var_add_value_label) New function.
+ (var_replace_value_label) New function.
+ (var_clear_value_labels) New function.
+ (var_lookup_value_label) New function.
+ (var_get_value_name) Moved here from variable.c, renamed from
+ var_get_value_name, transposed argument order, updated all
+ callers.
+ (var_to_string) Moved here, from variable-label.c.
+ (var_set_leave) New function.
+ (var_get_leave) New function.
+ (var_must_leave) New function.
+ (var_set_short_name_suffix) Moved to dictionary.c, renamed
+ set_var_short_name_suffix.
+ (var_get_dict_index) New function.
+ (var_get_case_index) New function.
+ (var_get_obs_vals) New function.
+ (var_set_obs_vals) New function.
+ (var_has_obs_vals) New function.
+ (var_get_vardict) New function.
+ (var_set_vardict) New function.
+ (var_has_vardict) New function.
+ (var_clear_vardict) New function.
+ (value_dup) Moved to value.c.
+ (compare_values) Ditto.
+ (hash_value) Ditto.
+
+ * variable.h: (enum NUMERIC) Rename VAR_NUMERIC, update all users.
+ (enum ALPHA) Rename VAR_STRING, update all users.
+
+ * vector.c: New file.
+ (struct vector) Moved here, from variable.h.
+ (check_widths) New function.
+ (vector_create) New function.
+ (vector_clone) New function.
+ (vector_destroy) New function.
+ (vector_get_name) New function.
+ (vector_get_var) New function.
+ (vector_get_var_cnt) New function.
+ (compare_vector_ptrs_by_name) New function.
+
+ * vector.h: New file.
+
+Sun Dec 10 11:32:56 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * casefilter.c (casefilter_variable_missing): Avoided comparision of
+ string variables to SYSMIS. Thanks to Ben Pfaff for reporting this
+ problem.
+
+Sat Dec 9 07:18:03 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * value-labels.c (destroy_atoms): New function.
+ * value-labels.c (atom_create): Call destroy_atoms in atexit handler.
+
+Thu Dec 7 17:38:26 2006 Ben Pfaff <blp@gnu.org>
+
+ Thanks to Jason Stover for pointing out this problem.
+
+ * data-out.c (output_number): Use gsl_finite from GSL, which is
+ portable, instead of isfinite, which is not.
+ (power256) Ditto.
+
+Thu Dec 7 15:22:38 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * variable.c variable.h (value_dup): New function.
+
+Mon Dec 4 22:20:17 2006 Ben Pfaff <blp@gnu.org>
+
+ Start converting struct variable to an opaque type. In this
+ phase, we add a bunch of setter and getter functions and convert
+ most of the PSPP code to use them. The resulting changes are
+ pervasive but mostly trivial, and only the notable changes are
+ logged.
+
+ * format.c (fmt_equal): New function.
+
+ * variable.c (var_type_is_valid): New function.
+ (measure_is_valid) Moved here, from format.c.
+ (alignment_is_valid) Moved here, from format.c.
+ (var_get_name) New function.
+ (var_set_name) New function.
+ (width_to_type) New function.
+ (var_get_type) New function.
+ (var_get_width) New function.
+ (var_set_width) New function.
+ (var_is_numeric) New function.
+ (var_is_alpha) New function.
+ (var_is_short_string) New function.
+ (var_is_long_string) New function.
+ (var_is_very_long_string) New function.
+ (var_get_missing_values) New function.
+ (var_set_missing_values) New function.
+ (var_clear_missing_values) New function.
+ (var_has_missing_values) New function.
+ (var_is_value_missing) New function.
+ (var_is_num_missing) New function.
+ (var_is_str_missing) New function.
+ (var_is_value_user_missing) New function.
+ (var_is_num_user_missing) New function.
+ (var_is_str_user_missing) New function.
+ (var_is_value_system_missing) New function.
+ (var_get_print_format) New function.
+ (var_set_print_format) New function.
+ (var_get_write_format) New function.
+ (var_set_write_format) New function.
+ (var_set_both_formats) New function.
+ (var_get_label) New function.
+ (var_set_label) New function.
+ (var_clear_label) New function.
+ (var_has_label) New function.
+ (var_get_measure) New function.
+ (var_set_measure) New function.
+ (var_get_display_width) New function.
+ (var_set_display_width) New function.
+ (var_get_alignment) New function.
+ (var_set_alignment) New function.
+ (var_get_value_cnt) New function.
+ (var_get_leave) New function.
+ (var_get_short_name) New function.
+
+ * variable.h: (struct variable) Removed "type" and "nv" members;
+ they are now computed from "width" where needed.
+
+Mon Dec 4 21:38:40 2006 Ben Pfaff <blp@gnu.org>
+
+ * missing-values.c (mv_resize): Don't write beyond end of the
+ allocated buffer when resizing a long string.
+
+Sat Dec 2 16:28:32 2006 Ben Pfaff <blp@gnu.org>
+
+ Clean up identifier code: don't require identifier enumerations to
+ be in a particular order; make better use of string library;
+ expose less of the internals.
+
+ * identifier.c: (lex_skip_identifier) Rename lex_id_get_length,
+ change interface. Updated all callers.
+ (lex_id_match) Change interface to use struct substring, update
+ all callers.
+ (lex_id_match_len) Removed. Update callers to use lex_id_match.
+ (global array keywords[]) Make static, change form. Update all
+ users to use lex_id_name instead.
+ (lex_is_keyword) New function.
+ (lex_id_to_token) Change interface to use struct substring, update
+ all callers.
+ (lex_id_name) New function.
+
+ * identifier.h: (T_FIRST_KEYWORD) Removed. Changed users to call
+ lex_is_keyword instead.
+ (T_LAST_KEYWORD) Removed.
+ (T_N_KEYWORDS) Removed.
+
+Sat Nov 18 20:46:35 2006 Ben Pfaff <blp@gnu.org>
+
+ * format.c: (fmt_date_template) Distinguish characters for which a
+ space is output and any date delimiter is allowed on input, from
+ those for which a space is output and only a space is allowed on
+ input. The former is represented by X, the latter by a space.
+ Also, drop distinction between h and H, changing the former to the
+ latter.
+
+ * data-in.c: Completely rewrite internals to conform to SPSS input
+ formats as closely as possible.
+ (data_in) Changed external interface by replacing the structure
+ that was used as a single argument by a set of arguments. Updated
+ all callers.
+ (data_in_finite_line) Removed. Converted all callers to use plain
+ data_in.
+ (data_in_get_integer_format) New function.
+ (data_in_set_integer_format) New function.
+ (data_in_get_float_format) New function.
+ (data_in_set_float_format) New function.
+
+ * data-in.h: (enums DI_IGNORE_ERROR, DI_IMPLIED_DECIMALS) Removed.
+ (struct data_in) Removed.
+
+ * data-out.c: (output_date) Drop each component from the input as
+ it is output, to allow us to drop the distinction between h (a
+ count of hours) and H (the hour of day) template characters.
+ Also, handle new X template character.
+ (output_scientific) Follow more rational rule on when to drop
+ fraction introduced between SPSS 13 and 15. Updated test case to
+ match new behavior.
+
+Sat Nov 11 11:41:26 2006 Ben Pfaff <blp@gnu.org>
+
+ Fix buffer overflow reported by John Darrington.
+
+ * data-out.c (output_bcd_integer): In case of SYSMIS, etc.,
+ realize that DIGITS is a count of nibbles, not of bytes.
+
+Sat Nov 4 15:59:56 2006 Ben Pfaff <blp@gnu.org>
+
+ * calendar.c (calendar_offset_to_gregorian) Also return the
+ year-of-day. Change callers to new interface.
+
+ * data-out.c: Completely rewrite internals to conform to SPSS
+ output formats as completely as possible.
+ (data_out) Change interface to put input parameters before output
+ parameters, for consistency with the style I now prefer. Update
+ all callers.
+ (data_out_get_integer_format) New public function.
+ (data_out_set_integer_format) New public function.
+ (data_out_get_float_format) New public function.
+ (data_out_set_float_format) New public function.
+
+ * data-out.h: New file. Move prototype for data_out here, from
+ format.h.
+
+ * format.c: (fmt_step_width) Use equality comparison instead of
+ bitwise and, for clarity.
+ (fmt_is_string) Ditto.
+ (fmt_input_to_output) Fix categories that are translated to F
+ format.
+
+Sun Nov 5 08:29:34 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * casefilter.c casefilter.h (new files), casefile.c casefile.h
+ casefile-private.h: Added casefilter to assist commands with missing
+ values.
+
+Sat Nov 4 11:47:09 2006 Ben Pfaff <blp@gnu.org>
+
+ Implement SET ERRORS, SHOW ERRORS. Fixes bug #17609.
+
+ * settings.c: (route_errors_to_terminal) New variable.
+ (route_errors_to_listing) New variable.
+ (get_error_routing_to_terminal) New function.
+ (set_error_routing_to_terminal) New function.
+ (get_error_routing_to_listing) New function.
+ (set_error_routing_to_listing) New function.
+
+ * settings.h: (SET_ROUTE_* enums) Removed, because unused.
+
+Tue Oct 31 19:58:27 2006 Ben Pfaff <blp@gnu.org>
+
+ * format.c: Completely rewrite, to achieve better abstraction.
+ Rewrite all references to formats in other files.
+
+ * format.def: Rewrite and reorganize.
+
+ * settings.c: Move everything related to custom currency formats
+ into format.[ch], changing them in form, so as to group related
+ code and definitions better. Changed all references to use the
+ new functions.
+ (static var decimal) Removed.
+ (static var grouping) Removed.
+ (static var cc) Removed.
+ (get_decimal) Removed.
+ (set_decimal) Removed.
+ (get_grouping) Removed.
+ (set_grouping) Removed.
+ (get_cc) Removed.
+ (set_cc) Removed.
+
+ * settings.h: (macro CC_CNT) Removed.
+ (macro CC_WIDTH) Removed.
+ (struct custom_currency) Removed.
+
+Tue Oct 31 19:56:19 2006 Ben Pfaff <blp@gnu.org>
+
+ * data-in.c (data_in): Use switch statement instead of table, to
+ avoid dependence on the order of the FMT_* enums.
+
+Tue Oct 31 19:35:36 2006 Ben Pfaff <blp@gnu.org>
+
+ * data-out.c: (num_to_string) Removed, because it was dead code.
+
+Tue Oct 31 18:09:24 2006 Ben Pfaff <blp@gnu.org>
+
+ * data-in.c (parse_trailer): Fix error message.
+
+Sat Oct 28 11:56:50 2006 Ben Pfaff <blp@gnu.org>
+
+ * format.c (fmt_is_binary): New function.
+
+Thu Oct 19 22:59:56 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * procedure.c procedure.h: Encapsulated the static data into a single
+ struct.
+
+Sat Oct 14 16:56:44 2006 Ben Pfaff <blp@gnu.org>
+
+ * casefile.c (casereader_read_xfer): Always initialize the case,
+ even on an error condition.
+
+Wed Sep 27 09:37:49 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * procedure.c (case_limit_trns_proc): Fixed buglet which rendered the
+ entire function useless.
+
+Mon Sep 25 17:11:46 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * casefile-private.h casefile.c casefile.h fastfile.c: Created new
+ casereader method casereader_clone.
+
+ * procedure.c pransformations.h: Introduced new type casenum_t
+
+Thu Sep 21 07:00:30 2006 Ben Pfaff <blp@gnu.org>
+
+ * variable.c: (width_to_bytes) Rephrase code for clarify.
+
+Sun Jul 16 19:52:03 2006 Ben Pfaff <blp@gnu.org>
+
+ * format.c: (fmt_type_from_string) New function.
+ (fmt_to_string) Include decimals in output if the format has
+ decimals, even if the format type does not. This way, we can
+ accurately reproduce incorrect formats in user output.
+ (check_common_specifier) Make the check for a bad format type an
+ assertion, so we get bug reports if they show up. Fix message.
+ Check for decimal places with a format type that doesn't allow
+ them.
+ (check_input_specifier) Remove check for FMT_X, which has been
+ deleted.
+ (check_output_specifier) Ditto.
+
+ * format.def: Remove FMT_T, FMT_X, FMT_DESCEND, FMT_NEWREC.
+
+ * format.h: (macro FMT_TYPE_LEN_MAX) New macro.
+ (struct fmt_desc) Use FMT_TYPE_LEN_MAX in definition.
+ (enum fmt_parse_flags) Removed.
+
+Mon Jul 17 18:26:21 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * casefile.c casefile.h: Converted to an abstract base class.
+ * casefile-private.h fastfile.c fastfile.h: New files.
+ * automake.mk procedure.c scratch-writer.c storage-stream.c
+
+Wed Jul 12 21:02:26 2006 Ben Pfaff <blp@gnu.org>
+
+ * procedure.c (internal_procedure): Create sink_case with only as
+ many values as the compacted dictionary.
+
+Wed Jul 12 21:01:00 2006 Ben Pfaff <blp@gnu.org>
+
+ Remove "debugging" code that caused plenty of false positives and
+ no true positives.
+
+ * case.h (struct ccase): [DEBUGGING] Remove `this' member.
+
+ * case.c: Remove all references to `this' member.
+
+Thu Jul 6 19:09:53 2006 Ben Pfaff <blp@gnu.org>
+
+ Fix link error noted by Jason Stover.
+
+ * storage-stream.c: Include <assert.h>.
+
+Tue Jul 4 08:47:35 2006 Ben Pfaff <blp@gnu.org>
+
+ Fix bug #15766 (/KEEP subcommand on SAVE doesn't fully support
+ ALL) and additional underlying system file issues.
+
+ Thanks to John Darrington for review.
+
+ First problem: var_hash points to variables not owned by the
+ sys-file-reader, which the caller may free or modify. Use an
+ array of sfm_vars instead, as done earlier (e.g. CVS version
+ 1.12).
+
+ * sys-file-reader.c (struct sfm_reader): Remove var_hash, svars
+ members and remove all code that references it. Add vars, var_cnt
+ members. Remove fix_specials member, which was unused.
+ (struct sfm_var) Remove name member, which was unused.
+ (sfm_close_reader) Free vars member instead of var_hash.
+ (compare_var_shortnames) Removed.
+ (hash_var_shortname) Removed.
+ (sfm_open_reader) Fill out vars array.
+ (compare_var_index) Removed.
+ (sfm_read_case) Use vars instead of var_hash.
+
+ Second problem: we're confused about when we actually have very
+ long strings, causing us to choose incorrectly between slow path
+ and fast path in sfm_read_case.
+
+ * sys-file-reader.c: (sfm_open_reader) Only mark has_vls if we
+ have very long strings, not when we have long variable names,
+ which is an unrelated feature.
+
+Tue Jun 27 12:06:49 2006 Ben Pfaff <blp@gnu.org>
+
+ * variable.h: Move var_set and variable parsing declarations to
+ new header, src/language/lexer/variable-parser.h. Modified lots
+ of files to include the new header.
+
+Sun Jun 25 22:39:32 2006 Ben Pfaff <blp@gnu.org>
+
+ * value-labels.c (value_to_string): When there's no value label,
+ format the variable according to its print format, instead of
+ always effectively using A or F format.
+
+Mon Jun 19 18:05:42 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * casefile.c (casefile_get_random_reader): Nasty hack to get around
+ the mode assertion.
+
+ * format.c: Removed tortological assertion.
+
+Fri Jun 9 12:20:09 2006 Ben Pfaff <blp@gnu.org>
+
+ Reform string library.
+
+ * file-name.c (fn_interp_vars): Change interface to take a
+ substring as input. Updated all users.
+
+Fri Jun 9 12:11:24 2006 Ben Pfaff <blp@gnu.org>
+
+ * format.c (measure_is_valid): Really return false when m >=
+ n_MEASURES.
+
+Tue Jun 6 18:46:26 2006 Ben Pfaff <blp@gnu.org>
+
+ Implement random access to casefiles, for use in GUI.
+
+ * casefile.c: (struct casereader) Add `random', `file_ofs',
+ `buffer_ofs' members.
+ (casefile_get_random_reader) New function.
+ (read_open_file) Break part into new function
+ seek_and_fill_buffer().
+ (fill_buffer) Update buffer_ofs, file_ofs.
+ (casereader_seek) New function.
+
+Tue May 30 19:52:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * settings.c: Added call to i18n{done, init}.
+
+Tue May 9 21:09:17 2006 Ben Pfaff <blp@gnu.org>
+
+ * procedure.h: Add WARN_UNUSED_RESULT to procedure function
+ prototypes.
+
+Tue May 9 21:08:05 2006 Ben Pfaff <blp@gnu.org>
+
+ * casefile.c: Convert many uses of `int' to `bool'.
+
+Sat May 6 22:49:43 2006 Ben Pfaff <blp@gnu.org>
+
+ * transformations.c (trns_chain_destroy): Destroy chain's trns
+ member, to fix memory leak.
+
+Sat May 6 22:48:30 2006 Ben Pfaff <blp@gnu.org>
+
+ * storage-stream.c (storage_source_decapsulate): Destroy case
+ source to fix memory leak.
+
+Sat May 6 22:46:47 2006 Ben Pfaff <blp@gnu.org>
+
+ * scratch-reader.c (scratch_reader_read_case): Copy into existing
+ case passed as argument instead of initializing the argument as a
+ case. Fixes memory leak that showed up in
+ tests/command/aggregate.sh with scratch files.
+
+Sat May 6 22:45:55 2006 Ben Pfaff <blp@gnu.org>
+
+ * procedure.c (proc_done): Destroy default_dict, to fix memory
+ leak.
+
+Sat May 6 22:44:44 2006 Ben Pfaff <blp@gnu.org>
+
+ Simplify procedure_with_splits().
+
+ * procedure.c (struct split_aux_data): Removed case_count member.
+ (procedure_with_splits) Don't initialize case_count.
+ (split_procedure_case_func) Check whether prev_case is null
+ instead of case_count.
+ (split_procedure_end_func) Ditto.
+
+Sat May 6 22:42:23 2006 Ben Pfaff <blp@gnu.org>
+
+ * case.c (case_move): Do nothing if dst and src are the same
+ object.
+ (case_try_create) Merge two similar cases.
+ (case_copy) Unshare only if data must be actually copied.
+
+Sun May 7 10:04:06 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * data-in.c data-out.c dictionary.c sys-file-reader.c
+ sys-file-writer.c variable.c variable.h: Reworked very long string
+ support for better encapsulation.
+
+Sat May 6 19:02:00 2006 Ben Pfaff <blp@gnu.org>
+
+ * value-labels.c (val_labs_can_set_width): New function.
+ (val_labs_set_width) Clear labels if increasing width to long
+ string.
+ (val_labs_destroy) Remove unneeded test for null.
+
+Sat May 6 16:14:08 2006 Ben Pfaff <blp@gnu.org>
+
+ * value-labels.h: Remove unneeded dependency on variable.h.
+
+Sat May 6 15:58:36 2006 Ben Pfaff <blp@gnu.org>
+
+ Get rid of `char *c' member in union value, for cleanliness.
+
+ * value.h: (union value) Remove `c' member.
+
+Sat May 6 15:36:59 2006 Ben Pfaff <blp@gnu.org>
+
+ Make dictionary compacting functions a little more general.
+
+ * sys-file-writer.c (sfm_open_writer): Use
+ dict_compacting_would_change().
+ (does_dict_need_translation) Removed.
+
+Sat May 6 15:35:42 2006 Ben Pfaff <blp@gnu.org>
+
+ Make dictionary compacting functions a little more general.
+
+ * dictionary.c (dict_needs_compaction): Rename
+ dict_compacting_would_shrink(). Update all callers.
+ (dict_compacting_would_change) New function.
+
+Sat May 6 14:25:49 2006 Ben Pfaff <blp@gnu.org>
+
+ * sys-file-writer.c: (does_dict_need_translation) Fix bug:
+ inverted return value (!).
+
+Sat May 6 13:37:52 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming procedure execution.
+
+ * procedure.c: Search and replace "vfm" by "proc". Notably:
+ (static var vfm_source) Rename proc_source. Update all
+ references.
+ (static var vfm_sink) Rename proc_sink. Update all references.
+
+Sat May 6 12:38:55 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming procedure execution. In this phase, remove
+ PROCESS IF, which was deprecated anyway and can be easily
+ simulated with TEMPORARY followed by SELECT IF.
+
+ * procedure.c: (open_active_file) Don't call
+ add_process_if_trns().
+ (discard_variables) Get rid of redundant call to
+ proc_cancel_all_transformations().
+ (add_process_if_trns) Removed.
+ (process_if_trns_proc) Removed.
+ (process_if_trns_free) Removed.
+
+Sat May 6 10:58:05 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming procedure execution. In this phase, add
+ `const' to the case passed to procedure()'s callback.
+
+ Updated all users of procedure() as well.
+
+ * procedure.c: (struct write_case_data) Add "const" to ccase
+ parameter for case_func member.
+ (procedure) Add "const" to ccase parameter for proc_func
+ parameter.
+ (multipass_case_func) Make ccase parameter const.
+ (internal_procedure) Add "const" to ccase parameter for case_func
+ parameter.
+ (split_procedure_case_func) Make ccase parameter const.
+ (multipass_split_case_func) Make ccase parameter const.
+
+Sat May 6 10:30:33 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming procedure execution. In this phase, get rid of
+ the output code for SPLIT FILE groups in procedure.c, which really
+ shouldn't be doing any output. Move it into the individual
+ procedures instead. This also adds some flexibility.
+
+ Updated many users of procedure_with_splits() and
+ multipass_procedure_with_splits() to call
+ output_split_file_values() and to deal with increased use of
+ const.
+
+ * procedure.c: (struct split_aux_data) Add "const struct ccase *"
+ parameter to begin_func member.
+ (procedure_with_splits) Add "const struct ccase *" parameter to
+ begin_func parameter. Make ccase parameter const in proc_func
+ parameter.
+ (split_procedure_case_func) Don't dump split file group. Pass
+ case to begin_func.
+ (dump_splits) Moved to language/dictionary/split-file.c as
+ output_split_file_values().
+ (struct multipass_split_aux_data) Add "const struct ccase *"
+ parameter to split_func member.
+ (multipass_procedure_with_splits) Add "const struct ccase *"
+ parameter to split_func parameter.
+ (multipass_split_case_func) Save new SPLIT FILE case before
+ outputting case.
+ (multipass_split_output) Pass saved SPLIT FILE case to split_func.
+
+Fri May 5 22:48:50 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming procedure execution. Change
+ internal_procedure() so that it calls open_active_file() and
+ close_active_file(), which isolates most of the actual procedure
+ functionality.
+
+ * procedure.c: (struct write_case_data) Rename `proc_func' member
+ to `case_func' and update all references.
+ (procedure) Rewrite as one-line wrapper around
+ internal_procedure().
+ (struct multipass_aux_data) New.
+ (multipass_callback) Renamed multipass_case_func(). Use struct
+ multipass_aux_data as auxiliary data.
+ (multipass_end_func) New function.
+ (multipass_procedure) Rewrite as wrapper for internal_procedure()
+ that uses multipass_case_func, multipass_end_func.
+ (internal_procedure) Add `end_func' argument. Move optimization
+ of trivial case in here. Move call to open_active_file() and
+ close_active_file() in here. Now assert that vfm_source is
+ non-null.
+ (procedure_with_splits_callback) Rename
+ split_procedure_case_func().
+ (split_procedure_end_func) New function.
+ (multipass_split_callback) Rename multipass_split_case_func.
+ (multipass_split_end_func) New function.
+ (discard_variables) No need to test for nonnull vfm_source.
+
+Fri May 5 21:34:02 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming procedure execution. Get rid of unused member.
+
+ * procedure.c: (struct write_case_data) Remove `cases_analyzed'
+ member.
+ (write_case) Don't increment cases_analyzed.
+
+Thu May 4 21:50:11 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming procedure execution. In this phase, move
+ procedure.c and procedure.h from src to src/data. Update
+ makefiles and #includes accordingly.
+
+ * procedure.c: Moved here from src/.
+
+ * procedure.h: Moved here from src/.
+
+Wed May 3 22:42:12 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming procedure execution. In this phase, get rid of
+ many global variables, consolidating procedure execution in
+ procedure.c. Encapsulate transformations in new "struct
+ trns_chain". Also, change implementation of N OF CASES, FILTER,
+ and PROCESS IF from special cases to transformations.
+
+ * automake.mk: (src_data_libdata_a_SOURCES) Add transformations.c,
+ transformations.h.
+
+ * dictionary.c: (global variable default_dict) Move to
+ src/procedure.c.
+
+ * variable.h: (TRNS_*) Move to transformations.h.
+ (struct transformation) Move to transformations.c.
+
+Thu May 4 13:47:06 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * sys-file-reader.c: Fixed invalid read problems.
+
+Tue May 2 15:57:10 2006 Ben Pfaff <blp@gnu.org>
+
+ * storage-stream.c: Add missing function comments.
+
+Tue May 2 15:50:21 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming procedure execution. In this phase, add some
+ new, needed functionality to storage-stream.
+
+ * storage-stream.c: (storage_source_decapsulate) New function.
+
+Tue May 2 15:43:36 2006 Ben Pfaff <blp@gnu.org>
+
+ * variable.c (width_to_bytes): Declarations must precede
+ statements for C90 compliance.
+
+Tue May 2 10:42:05 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * data-out.c, data-in.c, variable.c, variable.h: New functions
+ copy_mangle and copy_demangle for reading/writing cases; emulates the
+ way SPSS deals with strings > 255 bytes.
+
+ * sys-file-reader.c sys-file-writer.c: Added support for Record 7,
+ subtype 14 needed for strings longer than 255 bytes.
+
+ * dictionary.c, format.def, value.c : Updated to use MAX_STRING
+ instead of literal values. Also fixed some constness issues.
+
+ * format.h: Constness
+
+ * sfm-private.h: Renamed the case_size identifier, since I discovered
+ that SPSS's respect for this variable is very nominal.
+
+Mon May 1 15:45:42 2006 Ben Pfaff <blp@gnu.org>
+
+ Change case limit type from int to size_t.
+
+ * dictionary.c: (struct dictionary) Change type of case_limit
+ member.
+ (dict_get_case_limit) Change return type.
+ (dict_set_case_limit) Change parameter type.
+
+Wed Apr 26 20:01:19 2006 Ben Pfaff <blp@gnu.org>
+
+ * variable.h: (struct variable) Rename `reinit' member as `leave'
+ and invert sense. Fix up all references.
+
+Wed Apr 26 19:39:28 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming procedure execution. In this phase, break
+ procedure.c into multiple files.
+
+ * automake.mk: (src_data_libdata_a_SOURCES) Add all the new files.
+
+ * case-sink.c: New file.
+
+ * case-sink.h: New file.
+
+ * case-source.c: New file.
+
+ * case-source.h: New file.
+
+ * storage-stream.c: New file.
+
+ * storage-stream.h: New file.
+
+Wed Apr 26 14:55:19 2006 Ben Pfaff <blp@gnu.org>
+
+ * variable.h: (struct variable) Remove `init' member and all
+ references to it from other files. It was initialized in several
+ places, but nothing really ever used it for anything worthwhile.
+ Thanks to Jason Stover for pointing out how confusing this
+ member is.
+
+Sun Apr 23 22:04:45 2006 Ben Pfaff <blp@gnu.org>
+
+ 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.
+
+ * casefile.c: (io_error) Use err_msg() instead of err_vmsg().
+ Format message ourselves.
+
+ * data-in.c: (vdls_error) Ditto.
+
+ * por-file-reader.c: (error) Ditto.
+
+ * sys-file-reader.c: (corrupt_msg) Ditto.
+
+Sun Apr 16 18:49:51 2006 Ben Pfaff <blp@gnu.org>
+
+ GNU standards require "file name" instead of "filename" in
+ documentation. It's nice for our code to follow the convention
+ too.
+
+ * casefile.c: (struct casefile) Rename `filename' member to
+ `file_name'. Updated all references.
+
+ * file-name.c: [!unix] (struct file_identity) Rename
+ normalized_filename member to normalized_file_name. Updated all
+ references.
+
+Sun Apr 16 18:35:33 2006 Ben Pfaff <blp@gnu.org>
+
+ We don't really support anything but Unix-like environments well,
+ so we might as well de-obfuscate by writing directory and path
+ separators explicitly.
+
+ * file-name.h: (macro DIR_SEPARATOR) Removed. Changed all usages
+ to just '/'.
+ (macro PATH_SEPARATOR) Removed. Changed all usages to just ':'.
+ (macro DIR_SEPARATOR_STRING) Removed. Changed all usages to just
+ "/".
+ (macro PATH_SEPARATOR_STRING) Removed. Changed all usages to just
+ ":"
+
+Sun Apr 16 18:28:35 2006 Ben Pfaff <blp@gnu.org>
+
+ GNU standards require "file name" instead of "filename" in
+ documentation. It's nice for our code to follow the convention
+ too.
+
+ * filename.c: Rename to file-name.c.
+
+ * filename.h: Rename to file-name.h. Update all inclusions.
+ Update header guards.
+
+ * automake.mk: Update file names.
+
+Sun Apr 16 16:42:47 2006 Ben Pfaff <blp@gnu.org>
+
+ * filename.c: (fn_dirname) Renamed fn_dir_name(), all references
+ updated.
+ (fn_basename) Removed (dead code).
+ (fn_absolute_p) Renamed fn_is_absolute(), all references updated.
+ (fn_special_p) Renamed fn_is_special(), all references updated.
+ (fn_exists_p) Renamed fn_exists(), all references updated.
+
+Sun Apr 16 16:33:58 2006 Ben Pfaff <blp@gnu.org>
+
+ * filename.c: (fn_tilde_expand) Rewrite for cleaner code.
+ Also, now it only tilde-expands file names, not paths.
+ (fn_search_path) Tilde-expand one directory at a time.
+
+Sun Apr 16 16:28:06 2006 Ben Pfaff <blp@gnu.org>
+
+ * filename.c: (fn_search_path) rewrite for cleaner code. Also,
+ get rid of non-Unixlike version of the code, which has probably
+ never been tested.
+ (fn_prepend_dir) Removed (dead code).
+
+ * filename.h: (macro DIR_SEPARATOR_STRING) New.
+ (macro PATH_SEPARATOR_STRING) New.
+Sun Apr 16 16:05:28 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming error message support. In this phase, we get
+ rid of VM() and the other msg() support for "verbosity", replacing
+ it by a new function verbose_msg().
+
+ * filename.c: (fn_search_path) Use verbose_msg() instead of
+ msg(VM(), ...).
+
+Sat Apr 15 19:53:19 2006 Ben Pfaff <blp@gnu.org>
+
+ * sfm-private.h: Get rid of #defines after #error, which makes no
+ sense.
+
+Sat Apr 15 19:48:57 2006 Ben Pfaff <blp@gnu.org>
+
+ Get rid of our own int32 type in favor of the standard int32_t
+ type.
+
+ * sfm-private.h: (int32 macro) Don't define this anymore. Do
+ include <stdint.h>.
+
+ * sys-file-reader.c: Use int32_t instead of int32 throughout.
+
+ * sys-file-writer.c: Use int32_t instead of int32 throughout.
+
+Sat Apr 15 19:36:47 2006 Ben Pfaff <blp@gnu.org>
+
+ Remove ill-considered file routines that are no longer used.
+
+ * filename.c: (fn_open_ext) Removed.
+ (fn_close_ext) Removed.
+
+ * filename.h: (struct file_ext) Removed.
+
+Mon Apr 3 13:22:39 2006 Ben Pfaff <blp@gnu.org>
+
+ * variable.c (var_is_valid_name): Move declarations before code
+ for C90 compliance.
+
+Tue Apr 4 15:28:40 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * filename.ch (fn_interp_vars): Fixed small buglet.
+
+Tue Mar 28 13:47:16 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * filename.[ch] (fn_interp_vars): Changed the signature and semantics
+ so as to modify the string inline. Thus makeing it easier to
+ destroy the results when no longer needed.
+
+2006-03-25 Jason Stover <jhs@math.gcsu.edu>
+
+ * category.c (cat_stored_values_destroy): Fixed memory leak.
+
+Fri Mar 24 18:15:41 2006 Ben Pfaff <blp@gnu.org>
+
+ Add some missing frees. Thanks to John Darrington for reporting
+ these.
+
+ * any-writer.c (any_writer_close): Free writer.
+
+ * any-reader.c (any_reader_close): Free reader.
+
+Mon Mar 20 16:33:53 2006 Ben Pfaff <blp@gnu.org>
+
+ * por-file-reader.c: (error) Mark as NO_RETURN.
+
+Sat Mar 11 15:06:07 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * settings.c: Changed default value of scompress to true.
+
+Sat Mar 4 13:22:51 2006 Ben Pfaff <blp@gnu.org>
+
+ * sfm-private.h: Include variable.h, to get SHORT_NAME_LEN.
+
+ * value.h: Remove check on MAX_SHORT_STRING, which I don't think
+ really applies.
+
+ * variable.h: Move definition of SHORT_NAME_LEN, LONG_NAME_LEN
+ here from pref.h.orig.
+
+Sat Mar 4 12:50:48 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * sys-file-reader.c: Fixed bug reading compressed files.
+
+Thu Mar 2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * Numerous renames. See src/ChangeLog for details.
+
+ * Moved files from src directory
src/data/variable.c \
src/data/vector.c \
src/data/vector.h
+
+EXTRA_DIST += src/data/OChangeLog
+++ /dev/null
-2008-03-04 Ben Pfaff <blp@gnu.org>
-
- Patch #6441. Reviewed by John Darrington.
-
- * command.def: Add DEBUG FORMAT GUESSER command.
-
-2007-12-04 Ben Pfaff <blp@gnu.org>
-
- * command.def: Add GET DATA command.
-
-2007-11-05 Ben Pfaff <blp@gnu.org>
-
- Patch #6258. Reviewed by John Darrington.
-
- * command.c (report_state_mismatch): Replace code to construct an
- error message from bits and pieces by a switch statement that
- hard-codes each possible error. Makes i18n easier.
- Suggested by Chusslove Illich <caslav.ilic@gmx.net>.
-
-2007-09-22 Ben Pfaff <blp@gnu.org>
-
- Bug #21128. Reviewed by John Darrington.
-
- * command.def: Add DEBUG PAPER SIZE command.
-
-2007-09-05 John Darrington <john@darrington.wattle.id.au>
-
- * command.c (do_parse_command): Translate CMD_FAILURE into
- CMD_CASCADING_FAILURE, if the ERRMODE_STOP is set on the syntax
- source.
-
-2007-06-06 Ben Pfaff <blp@gnu.org>
-
- * command.def: Add DEBUG DATASHEET command. Remove DEBUG CASEFILE
- command.
-
-2007-03-18 Ben Pfaff <blp@gnu.org>
-
- * syntax-string-source.c (close): Rename to do_close to avoid
- conflict with POSIX function of the same name.
-
-Thu Feb 8 15:04:42 2007 Ben Pfaff <blp@gnu.org>
-
- Reduce platform dependence.
-
- * command.c (shell): Always define this function, instead of only
- in unix, but make it a stub when fork or execl is not available.
- (run_command): Move parsing code into cmd_host.
- (cmd_host): Drop unix dependence now that the shell function is
- always defined.
-
-Sun Jan 21 15:31:52 WST 2007 John Darrington <john@darrington.wattle.id.au>
-
- * command.c command.h: Renamed cmd_parse to cmd_parse_in_state.
- New function cmd_parse.
-
-Wed Dec 13 21:02:51 2006 Ben Pfaff <blp@gnu.org>
-
- * command.def: Add DELETE VARS.
-
-Sat Dec 16 22:15:55 2006 Ben Pfaff <blp@gnu.org>
-
- Make it possible to pull cases from the active file with a
- function call, instead of requiring indirection through a callback
- function.
-
- * command.def: Marked MATRIX DATA as unimplemented.
-
-Sun Dec 3 11:59:10 2006 Ben Pfaff <blp@gnu.org>
-
- * syntax-file.c (read_syntax_file): Always read GETL_BATCH lines.
-
-Wed Nov 29 19:35:44 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * command.c: Updated to reflect changed function names.
-
- * line-buffer.c line-buffer.h: Removed. Guts of it moved to
- libpspp/getl.[ch] The rest moved to files listed below.
-
- * syntax-file.c syntax-file.h prompt.c prompt.h: New files.
-
-Wed Nov 22 06:26:42 2006 Ben Pfaff <blp@gnu.org>
-
- * command.def: HOST command needs F_KEEP_FINAL_TOKEN.
-
-Sat Oct 28 16:15:56 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * linebuffer.c linebuffer.h: Moved getl_buf from here, into
- lexer/lexer.c
-
-Thu Oct 26 20:19:00 2006 Ben Pfaff <blp@gnu.org>
-
- * command.def: Add DEBUG FLOAT FORMAT.
-
-Fri Oct 20 10:59:06 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * command.def: Added additional unimpl commands.
-
-Sun Oct 15 19:38:55 2006 Ben Pfaff <blp@gnu.org>
-
- * command.c: (do_parse_command) Issue an error for unimplemented
- commands, instead of silently ignoring them. Reported by John
- Darrington.
-
-Wed Jun 28 11:38:23 2006 Ben Pfaff <blp@gnu.org>
-
- Don't offer both the full and abbreviated names for a single
- command in command name completion.
-
- * command.c: (enum flags) Add F_ABBREV flag.
- (cmd_complete) Ignore command with F_ABBREV flag set.
-
- * command.def: Add F_ABBREV to N, Q, SORT commands.
-
-Tue Jun 27 22:36:38 2006 Ben Pfaff <blp@gnu.org>
-
- Fix regression in command name completion reported by John
- Darrington. Now completion is again state-dependent and occurs
- only on the first line of a command.
-
- * command.c (do_parse_command): Move reading the first token of
- the command here, from execute_command and cmd_input_program.
- Call set_completion_state and getl_set_prompt_style here.
- (do_parse_command) Use in_correct_state instead of
- verify_valid_command.
- (verify_valid_command) Break into two new functions,
- in_correct_state and report_state_mismatch.
- (set_completion_state) New function.
- (cmd_complete) New function.
- [HAVE_READLINE] (pspp_attempted_completion_function) Removed.
- [HAVE_READLINE] (command_generator) Removed.
-
- * line-buffer.c: (struct getl_source) Change `interactive' member
- signature to take enum getl_prompt_style instead of const char *.
- (create_interactive_source) Ditto, for parameter type.
- (getl_append_interactive) Ditto.
- (read_line_from_source) Pass get_prompt_style() to interactive
- function instead of get_prompt().
- (get_prompt) Removed.
- (get_prompt_style) New function.
-
-Sat May 6 13:25:25 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming procedure execution. In this phase, remove
- PROCESS IF, which was deprecated anyway and can be easily
- simulated with TEMPORARY followed by SELECT IF.
-
- * command.def: Removed PROCESS IF.
-
-Mon May 1 18:17:52 2006 Ben Pfaff <blp@gnu.org>
-
- Further clean up the CMD_* command result codes.
-
- * command.c (cmd_result_is_valid): New function.
- (cmd_result_is_success) Assert that argument is valid. Simplified
- check to one for a positive result.
- (cmd_result_is_failure) Assert that argument is valid. Simplified
- check to one for a negative result.
- (do_parse_command) Check that command's returned result is valid.
-
- * command.h: (enum cmd_result) Renamed CMD_QUIT to CMD_FINISH and
- updated all users. Removed CMD_END_SUBLOOP in favor of new
- CMD_PRIVATE_FIRST...CMD_PRIVATE_LAST range. Changed failure codes
- to have negative values.
-
-Mon May 1 15:56:56 2006 Ben Pfaff <blp@gnu.org>
-
- Remove vestiges of FILE TYPE support.
-
- * command.def: Mark FILE TYPE, RECORD TYPE unimplemented.
-
-Wed Apr 26 21:13:46 2006 Ben Pfaff <blp@gnu.org>
-
- CLEAR TRANSFORMATIONS is unsafe as implemented. It's a fair
- amount of work to implement it correctly, so make it
- unimplemented.
-
- * command.c: (cmd_clear_transformations) Removed.
-
- * command.def: Mark CLEAR TRANSFORMATIONS as unimplemented.
-
-Wed Apr 26 13:06:42 2006 Ben Pfaff <blp@gnu.org>
-
- Work on readline completion.
-
- * command.c: (pspp_completion_function) Removed.
- (pspp_attempted_completion_function) New function.
- (command_generator) New function.
-
-Wed Apr 26 13:04:48 2006 Ben Pfaff <blp@gnu.org>
-
- Improve the way we handle the various parsing "states". Until now
- we've hard-coded the state transitions in the command definition
- file, but that's error-prone and, worse, it's redundant--we can
- figure out what state we're in anyhow. We can cleanly handle
- INPUT PROGRAM and FILE TYPE with a nested command-processing loop.
-
- * command.c: (cmd_result_is_success) New function.
- (cmd_result_is_failure) New function.
- (enum states) New enum.
- (enum flags) New enum.
- (struct command) Add states, flags members. Remove transition,
- skip_entire_name, debug members. Renamed func member as function.
- (macro DEFCMD) Removed.
- (macro DBGCMD) Removed.
- (macro SPCCMD) Removed.
- (macro UNIMPL) Removed.
- (macro DEF_CMD) New.
- (macro UNIMPL_CMD) New.
- (macro COMMAND_CNT) Changed to static const var, renamed
- command_cnt. Updated all references.
- (FILE_TYPE_okay) Removed.
- (cmd_parse) Rewrote in terms of do_parse_command().
- (do_parse_command) New function.
- (find_command) New function.
- (unknown_command_error) Use struct string to simplify code.
- (parse_command_name) Recognize comment command names. Handle
- flags. Don't reject testing-mode-only commands here--let higher
- level do it.
- (verify_valid_command) New function.
- (cmd_comment) New function.
-
- * command.def: Completely rewritten and now sensibly organized.
-
- * command.h: (enum STATE_*) Renamed CMD_STATE_*.
- (CMD_*) Now "enum cmd_result". Added CMD_QUIT. New
- CMD_END_SUBLOOP. Removed CMD_TRAILING_GARBAGE, CMD_PART_SUCCESS,
- CMD_PART_SUCCESS_MAYBE and replaced all references by CMD_FAILURE.
- Added CMD_NOT_IMPLEMENTED.
- (macro DEFCMD) Removed.
- (macro DBGCMD) Removed.
- (macro SPCCMD) Removed.
- (macro UNIMPL) Removed.
- (macro DEF_CMD) New.
- (macro UNIMPL_CMD) New.
-
-Mon Apr 3 11:03:36 2006 Ben Pfaff <blp@gnu.org>
-
- * list.q: (write_all_headers) Adapt to new html and output
- internals.
- (clean_up) Ditto.
- (write_varname) Ditto.
- (write_fallback_headers) Ditto.
- (determine_layout) Ditto.
- (list_cases) Ditto.
-
-
-Thu Mar 2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * Moved files from src directory
--- /dev/null
+2008-03-04 Ben Pfaff <blp@gnu.org>
+
+ Patch #6441. Reviewed by John Darrington.
+
+ * command.def: Add DEBUG FORMAT GUESSER command.
+
+2007-12-04 Ben Pfaff <blp@gnu.org>
+
+ * command.def: Add GET DATA command.
+
+2007-11-05 Ben Pfaff <blp@gnu.org>
+
+ Patch #6258. Reviewed by John Darrington.
+
+ * command.c (report_state_mismatch): Replace code to construct an
+ error message from bits and pieces by a switch statement that
+ hard-codes each possible error. Makes i18n easier.
+ Suggested by Chusslove Illich <caslav.ilic@gmx.net>.
+
+2007-09-22 Ben Pfaff <blp@gnu.org>
+
+ Bug #21128. Reviewed by John Darrington.
+
+ * command.def: Add DEBUG PAPER SIZE command.
+
+2007-09-05 John Darrington <john@darrington.wattle.id.au>
+
+ * command.c (do_parse_command): Translate CMD_FAILURE into
+ CMD_CASCADING_FAILURE, if the ERRMODE_STOP is set on the syntax
+ source.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ * command.def: Add DEBUG DATASHEET command. Remove DEBUG CASEFILE
+ command.
+
+2007-03-18 Ben Pfaff <blp@gnu.org>
+
+ * syntax-string-source.c (close): Rename to do_close to avoid
+ conflict with POSIX function of the same name.
+
+Thu Feb 8 15:04:42 2007 Ben Pfaff <blp@gnu.org>
+
+ Reduce platform dependence.
+
+ * command.c (shell): Always define this function, instead of only
+ in unix, but make it a stub when fork or execl is not available.
+ (run_command): Move parsing code into cmd_host.
+ (cmd_host): Drop unix dependence now that the shell function is
+ always defined.
+
+Sun Jan 21 15:31:52 WST 2007 John Darrington <john@darrington.wattle.id.au>
+
+ * command.c command.h: Renamed cmd_parse to cmd_parse_in_state.
+ New function cmd_parse.
+
+Wed Dec 13 21:02:51 2006 Ben Pfaff <blp@gnu.org>
+
+ * command.def: Add DELETE VARS.
+
+Sat Dec 16 22:15:55 2006 Ben Pfaff <blp@gnu.org>
+
+ Make it possible to pull cases from the active file with a
+ function call, instead of requiring indirection through a callback
+ function.
+
+ * command.def: Marked MATRIX DATA as unimplemented.
+
+Sun Dec 3 11:59:10 2006 Ben Pfaff <blp@gnu.org>
+
+ * syntax-file.c (read_syntax_file): Always read GETL_BATCH lines.
+
+Wed Nov 29 19:35:44 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * command.c: Updated to reflect changed function names.
+
+ * line-buffer.c line-buffer.h: Removed. Guts of it moved to
+ libpspp/getl.[ch] The rest moved to files listed below.
+
+ * syntax-file.c syntax-file.h prompt.c prompt.h: New files.
+
+Wed Nov 22 06:26:42 2006 Ben Pfaff <blp@gnu.org>
+
+ * command.def: HOST command needs F_KEEP_FINAL_TOKEN.
+
+Sat Oct 28 16:15:56 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * linebuffer.c linebuffer.h: Moved getl_buf from here, into
+ lexer/lexer.c
+
+Thu Oct 26 20:19:00 2006 Ben Pfaff <blp@gnu.org>
+
+ * command.def: Add DEBUG FLOAT FORMAT.
+
+Fri Oct 20 10:59:06 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * command.def: Added additional unimpl commands.
+
+Sun Oct 15 19:38:55 2006 Ben Pfaff <blp@gnu.org>
+
+ * command.c: (do_parse_command) Issue an error for unimplemented
+ commands, instead of silently ignoring them. Reported by John
+ Darrington.
+
+Wed Jun 28 11:38:23 2006 Ben Pfaff <blp@gnu.org>
+
+ Don't offer both the full and abbreviated names for a single
+ command in command name completion.
+
+ * command.c: (enum flags) Add F_ABBREV flag.
+ (cmd_complete) Ignore command with F_ABBREV flag set.
+
+ * command.def: Add F_ABBREV to N, Q, SORT commands.
+
+Tue Jun 27 22:36:38 2006 Ben Pfaff <blp@gnu.org>
+
+ Fix regression in command name completion reported by John
+ Darrington. Now completion is again state-dependent and occurs
+ only on the first line of a command.
+
+ * command.c (do_parse_command): Move reading the first token of
+ the command here, from execute_command and cmd_input_program.
+ Call set_completion_state and getl_set_prompt_style here.
+ (do_parse_command) Use in_correct_state instead of
+ verify_valid_command.
+ (verify_valid_command) Break into two new functions,
+ in_correct_state and report_state_mismatch.
+ (set_completion_state) New function.
+ (cmd_complete) New function.
+ [HAVE_READLINE] (pspp_attempted_completion_function) Removed.
+ [HAVE_READLINE] (command_generator) Removed.
+
+ * line-buffer.c: (struct getl_source) Change `interactive' member
+ signature to take enum getl_prompt_style instead of const char *.
+ (create_interactive_source) Ditto, for parameter type.
+ (getl_append_interactive) Ditto.
+ (read_line_from_source) Pass get_prompt_style() to interactive
+ function instead of get_prompt().
+ (get_prompt) Removed.
+ (get_prompt_style) New function.
+
+Sat May 6 13:25:25 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming procedure execution. In this phase, remove
+ PROCESS IF, which was deprecated anyway and can be easily
+ simulated with TEMPORARY followed by SELECT IF.
+
+ * command.def: Removed PROCESS IF.
+
+Mon May 1 18:17:52 2006 Ben Pfaff <blp@gnu.org>
+
+ Further clean up the CMD_* command result codes.
+
+ * command.c (cmd_result_is_valid): New function.
+ (cmd_result_is_success) Assert that argument is valid. Simplified
+ check to one for a positive result.
+ (cmd_result_is_failure) Assert that argument is valid. Simplified
+ check to one for a negative result.
+ (do_parse_command) Check that command's returned result is valid.
+
+ * command.h: (enum cmd_result) Renamed CMD_QUIT to CMD_FINISH and
+ updated all users. Removed CMD_END_SUBLOOP in favor of new
+ CMD_PRIVATE_FIRST...CMD_PRIVATE_LAST range. Changed failure codes
+ to have negative values.
+
+Mon May 1 15:56:56 2006 Ben Pfaff <blp@gnu.org>
+
+ Remove vestiges of FILE TYPE support.
+
+ * command.def: Mark FILE TYPE, RECORD TYPE unimplemented.
+
+Wed Apr 26 21:13:46 2006 Ben Pfaff <blp@gnu.org>
+
+ CLEAR TRANSFORMATIONS is unsafe as implemented. It's a fair
+ amount of work to implement it correctly, so make it
+ unimplemented.
+
+ * command.c: (cmd_clear_transformations) Removed.
+
+ * command.def: Mark CLEAR TRANSFORMATIONS as unimplemented.
+
+Wed Apr 26 13:06:42 2006 Ben Pfaff <blp@gnu.org>
+
+ Work on readline completion.
+
+ * command.c: (pspp_completion_function) Removed.
+ (pspp_attempted_completion_function) New function.
+ (command_generator) New function.
+
+Wed Apr 26 13:04:48 2006 Ben Pfaff <blp@gnu.org>
+
+ Improve the way we handle the various parsing "states". Until now
+ we've hard-coded the state transitions in the command definition
+ file, but that's error-prone and, worse, it's redundant--we can
+ figure out what state we're in anyhow. We can cleanly handle
+ INPUT PROGRAM and FILE TYPE with a nested command-processing loop.
+
+ * command.c: (cmd_result_is_success) New function.
+ (cmd_result_is_failure) New function.
+ (enum states) New enum.
+ (enum flags) New enum.
+ (struct command) Add states, flags members. Remove transition,
+ skip_entire_name, debug members. Renamed func member as function.
+ (macro DEFCMD) Removed.
+ (macro DBGCMD) Removed.
+ (macro SPCCMD) Removed.
+ (macro UNIMPL) Removed.
+ (macro DEF_CMD) New.
+ (macro UNIMPL_CMD) New.
+ (macro COMMAND_CNT) Changed to static const var, renamed
+ command_cnt. Updated all references.
+ (FILE_TYPE_okay) Removed.
+ (cmd_parse) Rewrote in terms of do_parse_command().
+ (do_parse_command) New function.
+ (find_command) New function.
+ (unknown_command_error) Use struct string to simplify code.
+ (parse_command_name) Recognize comment command names. Handle
+ flags. Don't reject testing-mode-only commands here--let higher
+ level do it.
+ (verify_valid_command) New function.
+ (cmd_comment) New function.
+
+ * command.def: Completely rewritten and now sensibly organized.
+
+ * command.h: (enum STATE_*) Renamed CMD_STATE_*.
+ (CMD_*) Now "enum cmd_result". Added CMD_QUIT. New
+ CMD_END_SUBLOOP. Removed CMD_TRAILING_GARBAGE, CMD_PART_SUCCESS,
+ CMD_PART_SUCCESS_MAYBE and replaced all references by CMD_FAILURE.
+ Added CMD_NOT_IMPLEMENTED.
+ (macro DEFCMD) Removed.
+ (macro DBGCMD) Removed.
+ (macro SPCCMD) Removed.
+ (macro UNIMPL) Removed.
+ (macro DEF_CMD) New.
+ (macro UNIMPL_CMD) New.
+
+Mon Apr 3 11:03:36 2006 Ben Pfaff <blp@gnu.org>
+
+ * list.q: (write_all_headers) Adapt to new html and output
+ internals.
+ (clean_up) Ditto.
+ (write_varname) Ditto.
+ (write_fallback_headers) Ditto.
+ (determine_layout) Ditto.
+ (list_cases) Ditto.
+
+
+Thu Mar 2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * Moved files from src directory
$(src_language_stats_built_sources) \
$(language_tests_built_sources) \
$(expressions_built_sources)
+
+EXTRA_DIST += src/language/OChangeLog
+++ /dev/null
-2008-05-15 Ben Pfaff <blp@gnu.org>
-
- Patch #6512.
-
- * loop.c (loop_trns_proc): Use gsl_finite instead of finite, , as
- a stopgap measure for portability until appropriate gnulib modules
- are available.
-
-2007-09-23 Ben Pfaff <blp@gnu.org>
-
- Bug #21111. Reviewed by John Darrington.
-
- * do-if.c: Fix ELSE and ELSE IF clauses.
- (add_clause): Drop TARGET_INDEX argument and figure out the target
- of the jump on our own. The caller couldn't compensate for the
- inserted BREAK transformation. Updated all callers.
-
-Fri Feb 2 22:41:43 WST 2007 John Darrington <john@darrington.wattle.id.au>
-
- * repeat.c (parse_numbers): Fixed bug parseing ranges vs. lists.
- Ensured that floats are accepted in lists, but not in ranges.
-
-Tue Dec 19 08:12:46 2006 Ben Pfaff <blp@gnu.org>
-
- Fix LOOP. Thanks to Daniel Williams
- <Daniel.E.Williams@state.or.us> for reporting one of the bugs
- fixed here.
-
- * loop.c (cmd_loop): Keep track of whether we created the index
- variable and delete it if parsing fails, instead of creating it
- after parsing the IF clause. This allows the index variable to be
- used in the IF clause. This incidentally fixes a segfault when no
- index variable was used. Also, return CMD_CASCADING_FAILURE if we
- fail.
- (parse_if_clause): Don't allow more than one IF clause.
- (parse_index_clause): Don't allow more than one index clause.
- Create the index variable if it doesn't exist.
- (end_loop_trns_proc): Invert the sense of END LOOP's IF clause.
-
-Sat Dec 9 20:12:34 2006 Ben Pfaff <blp@gnu.org>
-
- * repeat.c (parse_lines): Issue an error when attempting to nest
- DO REPEAT in compatibility mode.
-
-Sat Dec 2 17:01:59 2006 Ben Pfaff <blp@gnu.org>
-
- Significant cleanup to DO REPEAT.
-
- * repeat.c: (struct line_list) Rename struct repeat_line. Use
- struct ll instead of explicit "next" pointer. Make "file_name"
- const. Change "const char *line" to "struct substring text". Add
- `syntax' member. Update all references.
- (enum repeat_entry_type) Rename repeat_macro_type, update all
- references.
- (struct repeat_entry) Rename struct repeat_macro. Use struct ll
- instead of explicit "next" pointer. Change "char[] id" to "struct
- substring name". Change "char **replacement" to "struct substring
- *replacements". Update all references.
- (struct repeat_block) Use struct ll_list for lists of lines,
- macros. Change "cur_line" to struct ll *.
- (cmd_do_repeat) Don't bother adding an empty getl source at all.
- This saves special-casing an empty source in repeat_read.
- (parse_specification) Use new find_macro function.
- (find_macro) New function.
- (skip_indentor) Removed.
- (recognize_keyword) Change interface, update callers.
- (recognize_do_repeat) Ditto.
- (recognize_end_repeat) Ditto.
- (parse_lines) Use lex_preprocess_line to preprocess the input line
- to check for DO REPEAT and END REPEAT, instead of coding it
- inline.
- (parse_ids) Need to make a copy of the array parsed by
- parse_mixed_vars_pool, instead of using it verbatim, because we're
- using struct substring now.
- (add_replacement) Use struct substring in interface, instead of
- const char *, and update all callers.
- (find_substitution) Rewrite using substring, in terms of
- find_macro.
- (do_repeat_filter) Use struct substring to simplify code.
- (current_line) New function.
-
-Sat Dec 2 16:40:12 2006 Ben Pfaff <blp@gnu.org>
-
- Fix lack of ->name and ->location in DO REPEAT's getl_interface.
- See bug #15702.
-
- * repeat.c: (cmd_do_repeat) Initialize name, location in
- getl_interface.
- (do_repeat_read) Adjust semantics of cur_line so that, after the
- call, it points to the line just returned, instead of to the next
- line to be returned. Thus, do_repeat_name and do_repeat_location
- can use cur_line to obtain the info they need.
- (do_repeat_name) New function.
- (do_repeat_location) New function.
-
-Thu Nov 30 22:01:27 2006 Ben Pfaff <blp@gnu.org>
-
- * repeat.c (do_repeat_read): Properly handle empty DO REPEAT...END
- REPEAT block. Fixes bug #18407. Thanks to John Darrington for
- reporting this bug.
-
-Sat Oct 28 16:18:48 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * repeat.c: Eliminated references to extern variable getl_buf.
-
-Sun May 7 18:18:33 2006 Ben Pfaff <blp@gnu.org>
-
- Fix memory leaks.
-
- * repeat.c: (parse_ids) Take pool parameter and allocate all
- memory from pool. Reduce implementation from loop to single call
- to parse_mixed_vars_pool().
- (store_numeric) Removed.
- (add_replacement) New function.
- (parse_numbers) Take pool parameter and allocate all memory from
- pool. Require ranges to be in increasing order.
- (parse_strings) Take pool parameter and allocate all memory from
- pool.
-
-Wed May 3 22:45:41 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming procedure execution. In this phase, get rid of
- many global variables, consolidating procedure execution in
- procedure.c. Encapsulate transformations in new "struct
- trns_chain". Also, change implementation of N OF CASES, FILTER,
- and PROCESS IF from special cases to transformations.
-
- * do-if.c: (cmd_do_if) Use finalizer to ensure control stack gets
- cleared.
- (do_if_finalize_func) New function.
-
- * loop.c: (create_loop_trns) Use finalizer to ensure control stack gets
- cleared.
- (loop_trns_finalize) New function.
-
- * temporary.c: (global var temporary) Removed. Changed references
- to use proc_make_temporary_transformations_permanent() or
- proc_in_temporary_transformations().
- (global var temp_dict) Removed.
- (global var temp_trns) Removed.
- (cmd_temporary) Reimplement in terms of
- proc_in_temporary_transformations() and
- proc_start_temporary_transformations().
- (cancel_temporary) Moved to procedure.c, renamed
- proc_cancel_temporary_transformations().
-
-Thu Mar 2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * Moved files from src directory
--- /dev/null
+2008-05-15 Ben Pfaff <blp@gnu.org>
+
+ Patch #6512.
+
+ * loop.c (loop_trns_proc): Use gsl_finite instead of finite, , as
+ a stopgap measure for portability until appropriate gnulib modules
+ are available.
+
+2007-09-23 Ben Pfaff <blp@gnu.org>
+
+ Bug #21111. Reviewed by John Darrington.
+
+ * do-if.c: Fix ELSE and ELSE IF clauses.
+ (add_clause): Drop TARGET_INDEX argument and figure out the target
+ of the jump on our own. The caller couldn't compensate for the
+ inserted BREAK transformation. Updated all callers.
+
+Fri Feb 2 22:41:43 WST 2007 John Darrington <john@darrington.wattle.id.au>
+
+ * repeat.c (parse_numbers): Fixed bug parseing ranges vs. lists.
+ Ensured that floats are accepted in lists, but not in ranges.
+
+Tue Dec 19 08:12:46 2006 Ben Pfaff <blp@gnu.org>
+
+ Fix LOOP. Thanks to Daniel Williams
+ <Daniel.E.Williams@state.or.us> for reporting one of the bugs
+ fixed here.
+
+ * loop.c (cmd_loop): Keep track of whether we created the index
+ variable and delete it if parsing fails, instead of creating it
+ after parsing the IF clause. This allows the index variable to be
+ used in the IF clause. This incidentally fixes a segfault when no
+ index variable was used. Also, return CMD_CASCADING_FAILURE if we
+ fail.
+ (parse_if_clause): Don't allow more than one IF clause.
+ (parse_index_clause): Don't allow more than one index clause.
+ Create the index variable if it doesn't exist.
+ (end_loop_trns_proc): Invert the sense of END LOOP's IF clause.
+
+Sat Dec 9 20:12:34 2006 Ben Pfaff <blp@gnu.org>
+
+ * repeat.c (parse_lines): Issue an error when attempting to nest
+ DO REPEAT in compatibility mode.
+
+Sat Dec 2 17:01:59 2006 Ben Pfaff <blp@gnu.org>
+
+ Significant cleanup to DO REPEAT.
+
+ * repeat.c: (struct line_list) Rename struct repeat_line. Use
+ struct ll instead of explicit "next" pointer. Make "file_name"
+ const. Change "const char *line" to "struct substring text". Add
+ `syntax' member. Update all references.
+ (enum repeat_entry_type) Rename repeat_macro_type, update all
+ references.
+ (struct repeat_entry) Rename struct repeat_macro. Use struct ll
+ instead of explicit "next" pointer. Change "char[] id" to "struct
+ substring name". Change "char **replacement" to "struct substring
+ *replacements". Update all references.
+ (struct repeat_block) Use struct ll_list for lists of lines,
+ macros. Change "cur_line" to struct ll *.
+ (cmd_do_repeat) Don't bother adding an empty getl source at all.
+ This saves special-casing an empty source in repeat_read.
+ (parse_specification) Use new find_macro function.
+ (find_macro) New function.
+ (skip_indentor) Removed.
+ (recognize_keyword) Change interface, update callers.
+ (recognize_do_repeat) Ditto.
+ (recognize_end_repeat) Ditto.
+ (parse_lines) Use lex_preprocess_line to preprocess the input line
+ to check for DO REPEAT and END REPEAT, instead of coding it
+ inline.
+ (parse_ids) Need to make a copy of the array parsed by
+ parse_mixed_vars_pool, instead of using it verbatim, because we're
+ using struct substring now.
+ (add_replacement) Use struct substring in interface, instead of
+ const char *, and update all callers.
+ (find_substitution) Rewrite using substring, in terms of
+ find_macro.
+ (do_repeat_filter) Use struct substring to simplify code.
+ (current_line) New function.
+
+Sat Dec 2 16:40:12 2006 Ben Pfaff <blp@gnu.org>
+
+ Fix lack of ->name and ->location in DO REPEAT's getl_interface.
+ See bug #15702.
+
+ * repeat.c: (cmd_do_repeat) Initialize name, location in
+ getl_interface.
+ (do_repeat_read) Adjust semantics of cur_line so that, after the
+ call, it points to the line just returned, instead of to the next
+ line to be returned. Thus, do_repeat_name and do_repeat_location
+ can use cur_line to obtain the info they need.
+ (do_repeat_name) New function.
+ (do_repeat_location) New function.
+
+Thu Nov 30 22:01:27 2006 Ben Pfaff <blp@gnu.org>
+
+ * repeat.c (do_repeat_read): Properly handle empty DO REPEAT...END
+ REPEAT block. Fixes bug #18407. Thanks to John Darrington for
+ reporting this bug.
+
+Sat Oct 28 16:18:48 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * repeat.c: Eliminated references to extern variable getl_buf.
+
+Sun May 7 18:18:33 2006 Ben Pfaff <blp@gnu.org>
+
+ Fix memory leaks.
+
+ * repeat.c: (parse_ids) Take pool parameter and allocate all
+ memory from pool. Reduce implementation from loop to single call
+ to parse_mixed_vars_pool().
+ (store_numeric) Removed.
+ (add_replacement) New function.
+ (parse_numbers) Take pool parameter and allocate all memory from
+ pool. Require ranges to be in increasing order.
+ (parse_strings) Take pool parameter and allocate all memory from
+ pool.
+
+Wed May 3 22:45:41 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming procedure execution. In this phase, get rid of
+ many global variables, consolidating procedure execution in
+ procedure.c. Encapsulate transformations in new "struct
+ trns_chain". Also, change implementation of N OF CASES, FILTER,
+ and PROCESS IF from special cases to transformations.
+
+ * do-if.c: (cmd_do_if) Use finalizer to ensure control stack gets
+ cleared.
+ (do_if_finalize_func) New function.
+
+ * loop.c: (create_loop_trns) Use finalizer to ensure control stack gets
+ cleared.
+ (loop_trns_finalize) New function.
+
+ * temporary.c: (global var temporary) Removed. Changed references
+ to use proc_make_temporary_transformations_permanent() or
+ proc_in_temporary_transformations().
+ (global var temp_dict) Removed.
+ (global var temp_trns) Removed.
+ (cmd_temporary) Reimplement in terms of
+ proc_in_temporary_transformations() and
+ proc_start_temporary_transformations().
+ (cancel_temporary) Moved to procedure.c, renamed
+ proc_cancel_temporary_transformations().
+
+Thu Mar 2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * Moved files from src directory
src/language/control/repeat.c \
src/language/control/repeat.h
+EXTRA_DIST += src/language/control/OChangeLog
+++ /dev/null
-2008-05-15 Ben Pfaff <blp@gnu.org>
-
- Patch #6512.
-
- * inpt-pgm.c (reread_trns_proc): Use gsl_finite instead of finite,
- as a stopgap measure for portability until appropriate gnulib
- modules are available.
-
-2008-02-06 John Darrington <john@darrington.wattle.id.au>
-
- * get-data.c: Add a /BSIZE subcommand to PSQL reader.
-
-2008-02-02 John Darrington <john@darrington.wattle.id.au>
-
- * get-data.c (cmd_get_data): Support PSQL type.
-
-2007-12-07 Ben Pfaff <blp@gnu.org>
-
- Patch #6302.
-
- * data-parser.c (data_parser_make_active_file): Fix case count
- argument to casereader_create_sequential, which fixes data reading
- in the GUI.
- Provided by John Darrington.
-
-2007-12-04 Ben Pfaff <blp@gnu.org>
-
- Move DATA LIST parsing into generic infrastructure, and generalize
- it slightly. Then, use the same infrastructure to implement GET
- DATA/TYPE=TXT.
-
- * data-parser.c: New file.
-
- * data-parser.h: New file.
-
- * data-list.c (struct dls_var_spec): Removed.
- (ll_to_dls_var_spec): Removed.
- (enum dls_type): Removed.
- (struct data_list_pgm): Rename struct data_list_trns. Remove
- pool, specs, type, record_cnt, delims, skip_records, value_cnt
- members. Add new `parser' member.
- (cmd_data_list): Use data-parser infrastructure.
- (parse_fixed): Ditto.
- (parse_free): Ditto.
- (dump_fixed_table): Removed.
- (dump_free_table): Removed.
- (cut_field): Removed.
- (read_from_data_list): Removed.
- (read_from_data_list_fixed): Removed.
- (read_from_data_list_free): Removed.
- (read_from_data_list_list): Removed.
- (data_list_trns_free): Rename arguments for clarity.
- (data_list_trns_proc): Ditto.
- (data_list_casereader_read): Removed.
- (data_list_casereader_destroy): Removed.
- (data_list_casereader_class): Removed.
-
- * get-data.c (cmd_get_data): Support TXT type.
- (set_type): New function.
- (parse_get_txt): New function.
-
-2007-12-04 Ben Pfaff <blp@gnu.org>
-
- * placement-parser.c (parse_column): New function.
- (parse_column_range): Add `base' argument. Update all callers.
-
-2007-12-04 Ben Pfaff <blp@gnu.org>
-
- Make GET DATA a separate command, instead of something invoked
- indirectly from GET.
-
- * automake.mk: Remove get-data.h from sources.
-
- * get-data.h: Removed.
-
- * get-data.c (parse_get_data_command): Rename cmd_get_data.
-
- * get.c (parse_read_command): No longer any need to check for DATA
- keyword.
-
-2007-12-04 Ben Pfaff <blp@gnu.org>
-
- * src/language/data-io/data-reader.c (struct dfm_reader): New
- `file_size' member to support dfm_get_percent_read.
- (dfm_open_reader): Initialize file_size.
- (dfm_get_percent_read): New function.
-
-2007-11-08 Ben Pfaff <blp@gnu.org>
-
- Patch #6256: add support for binary, 360 file formats. Reviewed
- by John Darrington.
-
- * data-reader.c (struct dfm_reader): New member `block_left'.
- (dfm_open_reader): Initialize block_left. For FH_MODE_TEXT, open
- the file in text mode.
- (read_error): New function.
- (partial_record): New function.
- (try_to_read_fully): New function.
- (enum descriptor_type): New enum.
- (read_descriptor_word): New function.
- (corrupt_size): New function.
- (read_size): New function.
- (read_file_record): Implement new modes.
- (read_record): Now take care of tracking line numbers here.
- (dfm_reader_get_legacy_encoding): New function.
-
- * data-writer.c (dfm_put_record): Implement new modes.
- (dfm_writer_get_legacy_encoding): New function.
-
- * file-handle.q: Parse new formats.
- (cmd_file_handle): Set up new formats.
-
- * print.c (struct print_trns): New member `encoding'.
- (internal_cmd_print): Set encoding.
- (print_trns_proc): Recode output data if necessary.
- (flush_records): Recode leader byte.
-
-2007-11-03 Ben Pfaff <blp@gnu.org>
-
- Allow output files to overwrite input files (bug #21280).
-
- * data-list.c (cmd_data_list): Manage file handle reference
- counts.
-
- * data-reader.c (struct dfm_reader): Add `lock' member.
- (dfm_close_reader): Simplify, as reference counting is now
- separate from locking.
- (dfm_open_reader): Lock file.
-
- * data-writer.c (struct dfm_writer): Add fh_lock, replace_file
- members.
- (dfm_open_writer): Lock file and prepare for replacement.
- (dfm_close_writer): Unlock file and replace it.
-
- * file-handle.q (cmd_close_file_handle): Use fh_unname.
- (fh_parse): Don't distinguish existing handles for a given file
- name from new ones. Manage file handle reference counts.
-
- * get.c (parse_read_command): Manage file handle reference counts.
- (parse_write_command): Ditto.
- (mtf_close_all_files): Ditto.
-
- * inpt-pgm.c (cmd_reread): Manage file handle reference counts.
-
- * print-space.c (cmd_print_space): Manage file handle reference
- counts.
-
- * print.c (internal_cmd_print): Manage file handle reference
- counts.
-
-2007-11-03 John Darrington <john@darrington.wattle.id.au>
-
- * get.c: Add GET DATA command variant.
-
- * get-data.c get-data.h (new files): Added support for
- GET DATA /TYPE='gnm' command.
-
-2007-09-23 Ben Pfaff <blp@gnu.org>
-
- Bug #21111. Reviewed by John Darrington.
-
- * data-list.c (data_list_trns_proc): Properly set retval when END
- subcommand is in use.
- (cmd_data_list): Don't allow END subcommand to be used with DATA
- LIST FREE or LIST.
-
-2007-09-12 Ben Pfaff <blp@gnu.org>
-
- * get.c (get_translate_case): Change input case parameter from
- const struct ccase * to struct ccase *, to match change in
- casereader and casewriter translators. Destroy input case, to fix
- memory leak.
-
-2007-08-12 Ben Pfaff <blp@gnu.org>
-
- * get.c (parse_read_command): Compact the values in the target
- dictionary, to save space.
-
-2007-08-12 Ben Pfaff <blp@gnu.org>
-
- * get.c (struct case_map): Move into new file src/data/case-map.c.
- (start_case_map): Ditto, and rename case_map_prepare_dict.
- (finish_case_map): Ditto, and rename case_map_from_dict.
- (map_case): Ditto, and rename case_map_execute.
- (destroy_case_map): Ditto, and rename case_map_destroy.
- (case_map_get_value_cnt): Ditto.
-
-2007-08-12 Ben Pfaff <blp@gnu.org>
-
- * get.c (case_map_get_value_cnt): New function.
-
-2007-07-25 Ben Pfaff <blp@gnu.org>
-
- Fix bug #17100.
- * data-list.c (read_from_data_list_fixed): Handle multi-record
- DATA LIST correctly.
-
-2007-07-11 Ben Pfaff <blp@gnu.org>
-
- * get.c (map_case): Create destination case instead of leaving it
- undefined. Fixes bug #20285.
- Reviewed by John Darrington.
-
-2007-06-06 Ben Pfaff <blp@gnu.org>
-
- * get.c: Essentially rewrite MATCH FILES to support FIRST and
- LAST.
-
-2007-06-06 Ben Pfaff <blp@gnu.org>
-
- Adapt case sources, sinks, and clients of procedure code to the
- new infrastructure.
-
- * data-list.c: Make DATA LIST into a casereader.
-
- * get.c: Change GET, IMPORT, SAVE, EXPORT to use casereaders,
- casewriters.
-
- * inpt-pgm.c: Use caseinit code. Turn INPUT PROGRAM into a
- casereader.
-
- * list.q: Adapt to new procedure code.
-
-2007-05-06 Ben Pfaff <blp@gnu.org>
-
- Abstract the documents within a dictionary a little better.
- Thanks to John Darrington for suggestion, initial version, and
- review. Patch #5917.
-
- * get.c (mtf_merge_dictionary): Simplify creating merged document.
-
- * sys-file-info.c (display_documents): Use new
- dict_get_document_line_cnt and dict_get_document_line functions.
-
-Thu Feb 1 16:56:02 2007 Ben Pfaff <blp@gnu.org>
-
- * file-handle.q (fh_parse): Update to new fh_create_file
- prototype.
-
-Sat Dec 16 22:16:18 2006 Ben Pfaff <blp@gnu.org>
-
- Make it possible to pull cases from the active file with a
- function call, instead of requiring indirection through a callback
- function.
-
- * automake.mk: Removed matrix-data.c.
-
- * matrix-data.c: Removed.
-
- * data-list.c (data_list_source_read): Conform with new
- case_source_class interface.
- (data_list_source_destroy): Ditto.
-
- * get.c (case_reader_source_class): Ditto.
- (case_reader_source_destroy): Ditto.
- (parse_output_proc): Take advantage of new procedure interface.
- (output_proc): Removed.
- (struct mtf_file): Add "struct ccase *" member to allow use of new
- procedure interface.
- (cmd_match_files): Take advantage of new procedure interface.
- (mtf_processing_finish): Removed.
- (mtf_read_nonactive_records): Renamed mtf_read_records. Now reads
- from every file, without any exception for the active file.
- (mtf_compare_BY_values): Simplify for new interface.
- (mtf_processing): Simplify for new interface.
-
- * inpt-pgm.c (is_valid_state): New function.
- (input_program_source_read): Conform with new case_source_class
- interface.
- (input_program_source_destroy): Ditto.
- (end_case_trns_proc): Now just needs to return TRNS_END_CASE.
-
-Sat Dec 9 18:43:34 2006 Ben Pfaff <blp@gnu.org>
-
- * list.q (cmd_list): Use new var_create, var_destroy functions.
-
-Thu Nov 30 21:51:58 2006 Ben Pfaff <blp@gnu.org>
-
- * inpt-pgm.c (cmd_reread): Always return error code upon detecting
- syntax error. Fixes bug #18419. Thanks to John Darrington for
- reporting this bug.
-
-Sun Nov 19 09:17:45 2006 Ben Pfaff <blp@gnu.org>
-
- * data-list.c (parse_free): Follow documented (but odd) rule that
- N format is treated as F format for free-field input.
-
- * data-reader.c (read_file_record): Drop new-line character from
- input text lines. This is symmetrical with the recently changed
- dfm_put_record semantics.
-
-Thu Nov 2 20:56:03 2006 Ben Pfaff <blp@gnu.org>
-
- Implement SKIP keyword on DATA LIST. Fixes bug #17099.
-
- * data-list.c: (struct data_list_pgm) Add `skip_records' members.
- (cmd_data_list) Set skip_records based on user input.
- (data_list_source_read) Skip records requested by user.
-
-Tue Oct 31 20:04:06 2006 Ben Pfaff <blp@gnu.org>
-
- * placement-parser.c: (PRS_TYPE_T) Now that struct fmt_spec uses
- an enum fmt_type for its type member, we can't depend on the
- ability to put negative values into that member as out-of-band
- values, because enum fmt_type might be an unsigned type. So use
- values around SCHAR_MAX instead, because we know that SCHAR_MAX
- will fit into any type, signed or unsigned, and there aren't
- nearly that many format types.
- (parse_var_placements) Add for_input parameter to specify whether
- we're parsing input or output formats. Update all callers.
- (fixed_parse_columns) Ditto.
- (fixed_parse_fortran) Ditto.
-
-Tue Oct 31 18:21:48 2006 Ben Pfaff <blp@gnu.org>
-
- * print-space.c (print_space_trns_proc): Let dfm_put_record add
- the new-line character, to match dfm_put_record change below.
-
-Sat Oct 28 11:57:19 2006 Ben Pfaff <blp@gnu.org>
-
- * data-writer.c (struct dfm_writer): Removed `bounce' member, and
- all references to it.
- (dfm_put_record) Change semantics so that it adds formatting
- itself, such as new-line characters, instead of putting that
- responsibility on the caller. Also, pad binary records with
- spaces instead of zeros, for compatibility.
-
- * print.c (struct prt_out_spec) New member `sysmis_as_spaces'.
- (struct print_trns) Remove `omit_new_lines' and all references,
- since dfm_put_record() is taking care of that. Add
- `include_prefix'.
- (internal_cmd_print) Allow an empty set of data to print. Set
- include_prefix.
- (parse_specs) Allow an empty set of data to print.
- (parse_variable_argument) Only add space with PRINT command. Set
- sysmis_as_spaces.
- (print_trns_proc) Indent records if include_prefix is set, for
- compatibility. Output SYSMIS as spaces if sysmis_as_spaces is
- set. Put "1" in first column if PRINT EJECT is used with an
- external output file.
- (flush_records) Ditto.
-
-Sat Oct 28 16:19:57 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * data-reader.c: Eliminated references to extern variable getl_buf
-
-Sat Aug 5 08:25:07 2006 Ben Pfaff <blp@gnu.org>
-
- Fix bug #17329 in REREAD parsing, reported by John Darrington.
-
- * inpt-pgm.c (cmd_reread): Fix file handle parsing.
-
-Mon Jul 31 10:32:31 2006 Ben Pfaff <blp@gnu.org>
-
- * print.c (parse_specs): Allow a comma between specifications.
-
-Sun Jul 16 19:57:10 2006 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: (src_language_data_io_libdata_io_a_SOURCE) Add
- print-space.c, placement-parser.c, placement-parser.h.
-
- * data-list.c: Basically rewrote the whole thing. Broke out a lot
- of code into placement-parser.c. Code is much cleaner now.
-
- * placement-parser.c: New file.
-
- * placement-parser.h: New file.
-
- * print.c: Basically rewrote the whole thing. Broke out PRINT
- SPACE into print-space.c. Code is much cleaner now.
-
- * print-space.c: New file.
-
-Sat Jul 1 17:39:40 2006 Ben Pfaff <blp@gnu.org>
-
- Fix bug #11612, "q2c documentation does not agree with code".
-
- * list.q: Audit use of q2c "+" prefixes that indicate that a
- command may appear multiple times.
-
-Sat Jul 1 20:44:22 2006 Ben Pfaff <blp@gnu.org>
-
- Fix bug #15786: System File Creation crashes if directoy is
- nonexistent.
-
- * get.c (parse_write_command): Check that the any_writer open
- succeeds.
-
-Tue Jun 27 22:44:28 2006 Ben Pfaff <blp@gnu.org>
-
- Fix regression in command name completion reported by John
- Darrington. Now completion is again state-dependent and occurs
- only on the first line of a command.
-
- * inpt-pgm.c: (cmd_input_program) Reading of first token in
- command moved into cmd_parse.
-
-Fri Jun 9 13:56:00 2006 Ben Pfaff <blp@gnu.org>
-
- Reform string library.
-
- * matrix-data.c (context): Use dynamic string.
- (another_token) Deal with changed dfm_get_record() interface.
- (mget_token) Ditto.
- (force_eol) Ditto.
-
- * data-list.c (struct data_list_pgm) Delete delims, delim_cnt
- members, replacing them by struct string delims. Update all
- references to use struct string functions.
- (cut_field) Change interface to avoid needing "end_blank", by
- getting the data-reader to remember that state for us. Change
- internals to use substring. Update both callers.
-
- * data-reader.c (read_file_record): Use ds_read_stream().
- (dfm_get_record) Change interface to return substring. Updated
- all callers.
- (dfm_expand_tabs) Use ds_find_char(). Now maintain position
- relative to end-of-line. Use ds_swap().
- (dfm_reread_record) Don't limit position by line length.
- (dfm_column_start) Make parameter const.
- (dfm_columns_past_end) New function.
- (dfm_get_column) New function.
-
-Thu May 25 18:26:26 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * print.c (print_trns_free): Made the code agree with the comment, by
- not freeing PRT. Has the side effect that the command no longer
- crashes on invalid syntax.
-
-Tue May 9 20:55:46 2006 Ben Pfaff <blp@gnu.org>
-
- * get.c (cmd_match_files): Fix memory leak replacing default_dict.
-
-Sat May 6 22:25:09 2006 Ben Pfaff <blp@gnu.org>
-
- Fix segfault.
-
- * list.q (write_fallback_headers): (write_fallback_headers)
- Properly record width of leader and pass it to write_varname().
-
-Sat May 6 19:03:13 2006 Ben Pfaff <blp@gnu.org>
-
- * get.c: (mtf_merge_dictionary) Fix value label memory leak.
-
-Sat May 6 13:51:16 2006 Ben Pfaff <blp@gnu.org>
-
- Use a casefile, instead of a case sink, for MATCH FILES output.
- It's more straightforward, although it has the same effect.
-
- * get.c: (struct mtf_proc) Replace `sink' case sink member by
- `output' casefile member.
- (cmd_match_files) Work with casefile instead of sink.
- (mtf_processing) Add case to casefile instead of sink.
-
-Sat May 6 10:43:07 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming procedure execution. In this phase, get rid of
- the output code for SPLIT FILE groups in procedure.c, which really
- shouldn't be doing any output. Move it into the individual
- procedures instead. This also adds some flexibility.
-
- * list.q (write_all_headers): Call output_split_file_values().
-
-Wed May 3 23:00:17 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming procedure execution. In this phase, get rid of
- many global variables, consolidating procedure execution in
- procedure.c. Encapsulate transformations in new "struct
- trns_chain". Also, change implementation of N OF CASES, FILTER,
- and PROCESS IF from special cases to transformations.
-
- * data-list.c: (data_list_trns_proc) Return TRNS_END_FILE at end
- of file. (Why didn't we do this before?)
- (cmd_match_files) Direct procedure output to null sink.
- Use discard_variables() instead of indirect version.
-
- * inpt-pgm.c: Use transformation chain.
- (struct input_program_pgm) Add trns_chain member.
- (cmd_input_program) Initialize trns_chain member and capture
- transformations with proc_capture_transformations().
- (input_program_source_read) Use trns_chain_execute().
- (destroy_input_program) Destroy input chain.
-
-Tue May 2 10:39:56 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * list.q Changed from using fixed length char buffers to struct
- string so that any length variables can be used.
-
-Mon May 1 18:21:19 2006 Ben Pfaff <blp@gnu.org>
-
- Further clean up the CMD_* command result codes.
-
- * (enum cmd_result_extensions) New. Add CMD_END_INPUT_PROGRAM and
- CMD_END_CASE result codes.
- (struct input_program_pgm) Added case_nr, write_case, wc_data
- members for use by END CASE transformation.
- (emit_END_CASE) New function.
- (cmd_input_program) Interpret CMD_END_CASE by outputting an END
- CASE transformation. If none is output by the input program
- itself, add one automatically at the end. Change lack of
- variables from warning to error.
- (cmd_end_input_program) Return CMD_END_INPUT_PROGRAM instead of
- CMD_END_SUBLOOP.
- (input_program_source_read) No longer any need to special-case END
- CASE. Handle TRNS_DROP_CASE properly. Initialize new members in
- inp for use by END CASE transformation.
- (destroy_input_program) New function.
- (input_program_source_destroy) Just call destroy_input_program().
- (cmd_end_case) Just return CMD_END_CASE.
- (end_case_trns_proc) No longer a stub handled by
- input_program_source_read(). Actually output the case and
- increment the case number.
-
-Mon May 1 16:06:30 2006 Ben Pfaff <blp@gnu.org>
-
- Remove vestiges of REPEATING DATA support.
-
- * data-list.c: (struct rpd_num_or_var) Removed.
- (struct repeating_data_trns) Removed.
- (cmd_repeating_data) Removed.
- (find_variable_input_spec) Removed.
- (parse_num_or_var) Removed.
- (parse_repeating_data) Removed.
- (realize_value) Removed.
- (struct rpd_parse_info) Removed.
- (rpd_parse_record) Removed.
- (repeating_data_trns_proc) Removed.
- (repeating_data_trns_free) Removed.
- (repeating_data_set_write_case) Removed.
- (rpd_msg) Removed.
-
- * inpt-pgm.c: (input_program_source_read) Don't deal with
- REPEATING DATA.
-
- * data-list.h: Removed.
-
- * automake.mk (src_language_data_io_libdata_io_a_SOURCES): Removed
- data-list.h.
-
-Mon May 1 15:58:28 2006 Ben Pfaff <blp@gnu.org>
-
- Remove vestiges of FILE TYPE support.
-
- * data-list.c: (cmd_data_list) Don't check for FILE TYPE.
- (cmd_repeating_data) Ditto.
-
- * automake.mk (src_language_data_io_libdata_io_a_SOURCES): Remove
- file-type.c, file-type.h.
-
- * file-type.c: Removed.
-
- * file-type.h: Removed.
-
-Wed Apr 26 13:16:28 2006 Ben Pfaff <blp@gnu.org>
-
- Improve the way we handle the various parsing "states". Until now
- we've hard-coded the state transitions in the command definition
- file, but that's error-prone and, worse, it's redundant--we can
- figure out what state we're in anyhow. We can cleanly handle
- INPUT PROGRAM and FILE TYPE with a nested command-processing loop.
-
- * data-list.c: (cmd_data_list) Use in_file_type() or
- in_input_program() in place of case_source_is_class() or
- case_source_is_complex().
-
- * file-type.c: NB: Not really fixed except minimally to compile,
- because it doesn't work anyway.
- (in_file_type) New function.
- (cmd_record_type) No need to check that we're in FILE TYPE.
- (cmd_end_file_type) Ditto.
- (var file_type_source_class) Make static.
-
- * get.c: (cmd_match_files) Check vfm_source instead of pgm_state.
-
- * inpt-pgm.c: (in_input_program) New function.
- (cmd_input_program) Rewrite to include nested command processing
- loop.
- (cmd_end_input_program) Just return CMD_END_SUBLOOP.
- (var input_program_source_class) Make static.
- (cmd_end_case) No need to check that we're in INPUT PROGRAM.
- (cmd_end_file) Ditto.
-
- * automake.mk (src_language_data_io_libdata_io_a_SOURCES): Add
- file-type.h, inpt-pgm.h.
-
- * file-type.h: New file.
-
- * inpt-pgm.h: New file.
-
-Tue Apr 25 13:11:55 2006 Ben Pfaff <blp@gnu.org>
-
- * print.c: Don't special-case MS-DOS line terminators.
- (macro LINE_END_WIDTH) Removed.
- (alloc_line) Line ends are 1 byte.
- (print_trns_proc) Just output \n for line end.
-
-Sun Apr 23 22:05:58 2006 Ben Pfaff <blp@gnu.org>
-
- 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.
-
- * data-list.c: (macro RPD_ERR) Removed.
- (rpd_msg) New function. Updated all references to tmsg() to call
- this function instead.
-
-Sat Apr 15 19:38:13 2006 Ben Pfaff <blp@gnu.org>
-
- Remove last users of struct file_ext so we can get rid of it
- entirely.
-
- * data-reader.c: (struct dfm_reader) Change file member from
- struct file_ext to FILE *. Updated all references.
- (dfm_close_reader) Close file with fn_close() instead of
- fn_close_ext(). Also, make a copy of the file name from the file
- handle before closing it, because we can't extract it after we
- close the file.
- (dfm_open_reader) Open file with fn_open() instead of
- fn_open_ext().
-
- * data-writer.c: (struct dfm_writer) Change file member
- struct file_ext to FILE *. Updated all references.
- (dfm_close_writer) Close file with fn_close() instead of
- fn_close_ext(). Also, make a copy of the file name from the file
- handle before closing it, because we can't extract it after we
- close the file.
- (dfm_open_writer) Open file with fn_open() instead of
- fn_open_ext().
-
-Sat Apr 15 18:00:32 2006 Ben Pfaff <blp@gnu.org>
-
- * data-list.c: Add prototype to suppress warning for
- cmd_repeating_data().
-
-Thu Mar 2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * Moved files from src directory
--- /dev/null
+2008-05-15 Ben Pfaff <blp@gnu.org>
+
+ Patch #6512.
+
+ * inpt-pgm.c (reread_trns_proc): Use gsl_finite instead of finite,
+ as a stopgap measure for portability until appropriate gnulib
+ modules are available.
+
+2008-02-06 John Darrington <john@darrington.wattle.id.au>
+
+ * get-data.c: Add a /BSIZE subcommand to PSQL reader.
+
+2008-02-02 John Darrington <john@darrington.wattle.id.au>
+
+ * get-data.c (cmd_get_data): Support PSQL type.
+
+2007-12-07 Ben Pfaff <blp@gnu.org>
+
+ Patch #6302.
+
+ * data-parser.c (data_parser_make_active_file): Fix case count
+ argument to casereader_create_sequential, which fixes data reading
+ in the GUI.
+ Provided by John Darrington.
+
+2007-12-04 Ben Pfaff <blp@gnu.org>
+
+ Move DATA LIST parsing into generic infrastructure, and generalize
+ it slightly. Then, use the same infrastructure to implement GET
+ DATA/TYPE=TXT.
+
+ * data-parser.c: New file.
+
+ * data-parser.h: New file.
+
+ * data-list.c (struct dls_var_spec): Removed.
+ (ll_to_dls_var_spec): Removed.
+ (enum dls_type): Removed.
+ (struct data_list_pgm): Rename struct data_list_trns. Remove
+ pool, specs, type, record_cnt, delims, skip_records, value_cnt
+ members. Add new `parser' member.
+ (cmd_data_list): Use data-parser infrastructure.
+ (parse_fixed): Ditto.
+ (parse_free): Ditto.
+ (dump_fixed_table): Removed.
+ (dump_free_table): Removed.
+ (cut_field): Removed.
+ (read_from_data_list): Removed.
+ (read_from_data_list_fixed): Removed.
+ (read_from_data_list_free): Removed.
+ (read_from_data_list_list): Removed.
+ (data_list_trns_free): Rename arguments for clarity.
+ (data_list_trns_proc): Ditto.
+ (data_list_casereader_read): Removed.
+ (data_list_casereader_destroy): Removed.
+ (data_list_casereader_class): Removed.
+
+ * get-data.c (cmd_get_data): Support TXT type.
+ (set_type): New function.
+ (parse_get_txt): New function.
+
+2007-12-04 Ben Pfaff <blp@gnu.org>
+
+ * placement-parser.c (parse_column): New function.
+ (parse_column_range): Add `base' argument. Update all callers.
+
+2007-12-04 Ben Pfaff <blp@gnu.org>
+
+ Make GET DATA a separate command, instead of something invoked
+ indirectly from GET.
+
+ * automake.mk: Remove get-data.h from sources.
+
+ * get-data.h: Removed.
+
+ * get-data.c (parse_get_data_command): Rename cmd_get_data.
+
+ * get.c (parse_read_command): No longer any need to check for DATA
+ keyword.
+
+2007-12-04 Ben Pfaff <blp@gnu.org>
+
+ * src/language/data-io/data-reader.c (struct dfm_reader): New
+ `file_size' member to support dfm_get_percent_read.
+ (dfm_open_reader): Initialize file_size.
+ (dfm_get_percent_read): New function.
+
+2007-11-08 Ben Pfaff <blp@gnu.org>
+
+ Patch #6256: add support for binary, 360 file formats. Reviewed
+ by John Darrington.
+
+ * data-reader.c (struct dfm_reader): New member `block_left'.
+ (dfm_open_reader): Initialize block_left. For FH_MODE_TEXT, open
+ the file in text mode.
+ (read_error): New function.
+ (partial_record): New function.
+ (try_to_read_fully): New function.
+ (enum descriptor_type): New enum.
+ (read_descriptor_word): New function.
+ (corrupt_size): New function.
+ (read_size): New function.
+ (read_file_record): Implement new modes.
+ (read_record): Now take care of tracking line numbers here.
+ (dfm_reader_get_legacy_encoding): New function.
+
+ * data-writer.c (dfm_put_record): Implement new modes.
+ (dfm_writer_get_legacy_encoding): New function.
+
+ * file-handle.q: Parse new formats.
+ (cmd_file_handle): Set up new formats.
+
+ * print.c (struct print_trns): New member `encoding'.
+ (internal_cmd_print): Set encoding.
+ (print_trns_proc): Recode output data if necessary.
+ (flush_records): Recode leader byte.
+
+2007-11-03 Ben Pfaff <blp@gnu.org>
+
+ Allow output files to overwrite input files (bug #21280).
+
+ * data-list.c (cmd_data_list): Manage file handle reference
+ counts.
+
+ * data-reader.c (struct dfm_reader): Add `lock' member.
+ (dfm_close_reader): Simplify, as reference counting is now
+ separate from locking.
+ (dfm_open_reader): Lock file.
+
+ * data-writer.c (struct dfm_writer): Add fh_lock, replace_file
+ members.
+ (dfm_open_writer): Lock file and prepare for replacement.
+ (dfm_close_writer): Unlock file and replace it.
+
+ * file-handle.q (cmd_close_file_handle): Use fh_unname.
+ (fh_parse): Don't distinguish existing handles for a given file
+ name from new ones. Manage file handle reference counts.
+
+ * get.c (parse_read_command): Manage file handle reference counts.
+ (parse_write_command): Ditto.
+ (mtf_close_all_files): Ditto.
+
+ * inpt-pgm.c (cmd_reread): Manage file handle reference counts.
+
+ * print-space.c (cmd_print_space): Manage file handle reference
+ counts.
+
+ * print.c (internal_cmd_print): Manage file handle reference
+ counts.
+
+2007-11-03 John Darrington <john@darrington.wattle.id.au>
+
+ * get.c: Add GET DATA command variant.
+
+ * get-data.c get-data.h (new files): Added support for
+ GET DATA /TYPE='gnm' command.
+
+2007-09-23 Ben Pfaff <blp@gnu.org>
+
+ Bug #21111. Reviewed by John Darrington.
+
+ * data-list.c (data_list_trns_proc): Properly set retval when END
+ subcommand is in use.
+ (cmd_data_list): Don't allow END subcommand to be used with DATA
+ LIST FREE or LIST.
+
+2007-09-12 Ben Pfaff <blp@gnu.org>
+
+ * get.c (get_translate_case): Change input case parameter from
+ const struct ccase * to struct ccase *, to match change in
+ casereader and casewriter translators. Destroy input case, to fix
+ memory leak.
+
+2007-08-12 Ben Pfaff <blp@gnu.org>
+
+ * get.c (parse_read_command): Compact the values in the target
+ dictionary, to save space.
+
+2007-08-12 Ben Pfaff <blp@gnu.org>
+
+ * get.c (struct case_map): Move into new file src/data/case-map.c.
+ (start_case_map): Ditto, and rename case_map_prepare_dict.
+ (finish_case_map): Ditto, and rename case_map_from_dict.
+ (map_case): Ditto, and rename case_map_execute.
+ (destroy_case_map): Ditto, and rename case_map_destroy.
+ (case_map_get_value_cnt): Ditto.
+
+2007-08-12 Ben Pfaff <blp@gnu.org>
+
+ * get.c (case_map_get_value_cnt): New function.
+
+2007-07-25 Ben Pfaff <blp@gnu.org>
+
+ Fix bug #17100.
+ * data-list.c (read_from_data_list_fixed): Handle multi-record
+ DATA LIST correctly.
+
+2007-07-11 Ben Pfaff <blp@gnu.org>
+
+ * get.c (map_case): Create destination case instead of leaving it
+ undefined. Fixes bug #20285.
+ Reviewed by John Darrington.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ * get.c: Essentially rewrite MATCH FILES to support FIRST and
+ LAST.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ Adapt case sources, sinks, and clients of procedure code to the
+ new infrastructure.
+
+ * data-list.c: Make DATA LIST into a casereader.
+
+ * get.c: Change GET, IMPORT, SAVE, EXPORT to use casereaders,
+ casewriters.
+
+ * inpt-pgm.c: Use caseinit code. Turn INPUT PROGRAM into a
+ casereader.
+
+ * list.q: Adapt to new procedure code.
+
+2007-05-06 Ben Pfaff <blp@gnu.org>
+
+ Abstract the documents within a dictionary a little better.
+ Thanks to John Darrington for suggestion, initial version, and
+ review. Patch #5917.
+
+ * get.c (mtf_merge_dictionary): Simplify creating merged document.
+
+ * sys-file-info.c (display_documents): Use new
+ dict_get_document_line_cnt and dict_get_document_line functions.
+
+Thu Feb 1 16:56:02 2007 Ben Pfaff <blp@gnu.org>
+
+ * file-handle.q (fh_parse): Update to new fh_create_file
+ prototype.
+
+Sat Dec 16 22:16:18 2006 Ben Pfaff <blp@gnu.org>
+
+ Make it possible to pull cases from the active file with a
+ function call, instead of requiring indirection through a callback
+ function.
+
+ * automake.mk: Removed matrix-data.c.
+
+ * matrix-data.c: Removed.
+
+ * data-list.c (data_list_source_read): Conform with new
+ case_source_class interface.
+ (data_list_source_destroy): Ditto.
+
+ * get.c (case_reader_source_class): Ditto.
+ (case_reader_source_destroy): Ditto.
+ (parse_output_proc): Take advantage of new procedure interface.
+ (output_proc): Removed.
+ (struct mtf_file): Add "struct ccase *" member to allow use of new
+ procedure interface.
+ (cmd_match_files): Take advantage of new procedure interface.
+ (mtf_processing_finish): Removed.
+ (mtf_read_nonactive_records): Renamed mtf_read_records. Now reads
+ from every file, without any exception for the active file.
+ (mtf_compare_BY_values): Simplify for new interface.
+ (mtf_processing): Simplify for new interface.
+
+ * inpt-pgm.c (is_valid_state): New function.
+ (input_program_source_read): Conform with new case_source_class
+ interface.
+ (input_program_source_destroy): Ditto.
+ (end_case_trns_proc): Now just needs to return TRNS_END_CASE.
+
+Sat Dec 9 18:43:34 2006 Ben Pfaff <blp@gnu.org>
+
+ * list.q (cmd_list): Use new var_create, var_destroy functions.
+
+Thu Nov 30 21:51:58 2006 Ben Pfaff <blp@gnu.org>
+
+ * inpt-pgm.c (cmd_reread): Always return error code upon detecting
+ syntax error. Fixes bug #18419. Thanks to John Darrington for
+ reporting this bug.
+
+Sun Nov 19 09:17:45 2006 Ben Pfaff <blp@gnu.org>
+
+ * data-list.c (parse_free): Follow documented (but odd) rule that
+ N format is treated as F format for free-field input.
+
+ * data-reader.c (read_file_record): Drop new-line character from
+ input text lines. This is symmetrical with the recently changed
+ dfm_put_record semantics.
+
+Thu Nov 2 20:56:03 2006 Ben Pfaff <blp@gnu.org>
+
+ Implement SKIP keyword on DATA LIST. Fixes bug #17099.
+
+ * data-list.c: (struct data_list_pgm) Add `skip_records' members.
+ (cmd_data_list) Set skip_records based on user input.
+ (data_list_source_read) Skip records requested by user.
+
+Tue Oct 31 20:04:06 2006 Ben Pfaff <blp@gnu.org>
+
+ * placement-parser.c: (PRS_TYPE_T) Now that struct fmt_spec uses
+ an enum fmt_type for its type member, we can't depend on the
+ ability to put negative values into that member as out-of-band
+ values, because enum fmt_type might be an unsigned type. So use
+ values around SCHAR_MAX instead, because we know that SCHAR_MAX
+ will fit into any type, signed or unsigned, and there aren't
+ nearly that many format types.
+ (parse_var_placements) Add for_input parameter to specify whether
+ we're parsing input or output formats. Update all callers.
+ (fixed_parse_columns) Ditto.
+ (fixed_parse_fortran) Ditto.
+
+Tue Oct 31 18:21:48 2006 Ben Pfaff <blp@gnu.org>
+
+ * print-space.c (print_space_trns_proc): Let dfm_put_record add
+ the new-line character, to match dfm_put_record change below.
+
+Sat Oct 28 11:57:19 2006 Ben Pfaff <blp@gnu.org>
+
+ * data-writer.c (struct dfm_writer): Removed `bounce' member, and
+ all references to it.
+ (dfm_put_record) Change semantics so that it adds formatting
+ itself, such as new-line characters, instead of putting that
+ responsibility on the caller. Also, pad binary records with
+ spaces instead of zeros, for compatibility.
+
+ * print.c (struct prt_out_spec) New member `sysmis_as_spaces'.
+ (struct print_trns) Remove `omit_new_lines' and all references,
+ since dfm_put_record() is taking care of that. Add
+ `include_prefix'.
+ (internal_cmd_print) Allow an empty set of data to print. Set
+ include_prefix.
+ (parse_specs) Allow an empty set of data to print.
+ (parse_variable_argument) Only add space with PRINT command. Set
+ sysmis_as_spaces.
+ (print_trns_proc) Indent records if include_prefix is set, for
+ compatibility. Output SYSMIS as spaces if sysmis_as_spaces is
+ set. Put "1" in first column if PRINT EJECT is used with an
+ external output file.
+ (flush_records) Ditto.
+
+Sat Oct 28 16:19:57 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * data-reader.c: Eliminated references to extern variable getl_buf
+
+Sat Aug 5 08:25:07 2006 Ben Pfaff <blp@gnu.org>
+
+ Fix bug #17329 in REREAD parsing, reported by John Darrington.
+
+ * inpt-pgm.c (cmd_reread): Fix file handle parsing.
+
+Mon Jul 31 10:32:31 2006 Ben Pfaff <blp@gnu.org>
+
+ * print.c (parse_specs): Allow a comma between specifications.
+
+Sun Jul 16 19:57:10 2006 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: (src_language_data_io_libdata_io_a_SOURCE) Add
+ print-space.c, placement-parser.c, placement-parser.h.
+
+ * data-list.c: Basically rewrote the whole thing. Broke out a lot
+ of code into placement-parser.c. Code is much cleaner now.
+
+ * placement-parser.c: New file.
+
+ * placement-parser.h: New file.
+
+ * print.c: Basically rewrote the whole thing. Broke out PRINT
+ SPACE into print-space.c. Code is much cleaner now.
+
+ * print-space.c: New file.
+
+Sat Jul 1 17:39:40 2006 Ben Pfaff <blp@gnu.org>
+
+ Fix bug #11612, "q2c documentation does not agree with code".
+
+ * list.q: Audit use of q2c "+" prefixes that indicate that a
+ command may appear multiple times.
+
+Sat Jul 1 20:44:22 2006 Ben Pfaff <blp@gnu.org>
+
+ Fix bug #15786: System File Creation crashes if directoy is
+ nonexistent.
+
+ * get.c (parse_write_command): Check that the any_writer open
+ succeeds.
+
+Tue Jun 27 22:44:28 2006 Ben Pfaff <blp@gnu.org>
+
+ Fix regression in command name completion reported by John
+ Darrington. Now completion is again state-dependent and occurs
+ only on the first line of a command.
+
+ * inpt-pgm.c: (cmd_input_program) Reading of first token in
+ command moved into cmd_parse.
+
+Fri Jun 9 13:56:00 2006 Ben Pfaff <blp@gnu.org>
+
+ Reform string library.
+
+ * matrix-data.c (context): Use dynamic string.
+ (another_token) Deal with changed dfm_get_record() interface.
+ (mget_token) Ditto.
+ (force_eol) Ditto.
+
+ * data-list.c (struct data_list_pgm) Delete delims, delim_cnt
+ members, replacing them by struct string delims. Update all
+ references to use struct string functions.
+ (cut_field) Change interface to avoid needing "end_blank", by
+ getting the data-reader to remember that state for us. Change
+ internals to use substring. Update both callers.
+
+ * data-reader.c (read_file_record): Use ds_read_stream().
+ (dfm_get_record) Change interface to return substring. Updated
+ all callers.
+ (dfm_expand_tabs) Use ds_find_char(). Now maintain position
+ relative to end-of-line. Use ds_swap().
+ (dfm_reread_record) Don't limit position by line length.
+ (dfm_column_start) Make parameter const.
+ (dfm_columns_past_end) New function.
+ (dfm_get_column) New function.
+
+Thu May 25 18:26:26 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * print.c (print_trns_free): Made the code agree with the comment, by
+ not freeing PRT. Has the side effect that the command no longer
+ crashes on invalid syntax.
+
+Tue May 9 20:55:46 2006 Ben Pfaff <blp@gnu.org>
+
+ * get.c (cmd_match_files): Fix memory leak replacing default_dict.
+
+Sat May 6 22:25:09 2006 Ben Pfaff <blp@gnu.org>
+
+ Fix segfault.
+
+ * list.q (write_fallback_headers): (write_fallback_headers)
+ Properly record width of leader and pass it to write_varname().
+
+Sat May 6 19:03:13 2006 Ben Pfaff <blp@gnu.org>
+
+ * get.c: (mtf_merge_dictionary) Fix value label memory leak.
+
+Sat May 6 13:51:16 2006 Ben Pfaff <blp@gnu.org>
+
+ Use a casefile, instead of a case sink, for MATCH FILES output.
+ It's more straightforward, although it has the same effect.
+
+ * get.c: (struct mtf_proc) Replace `sink' case sink member by
+ `output' casefile member.
+ (cmd_match_files) Work with casefile instead of sink.
+ (mtf_processing) Add case to casefile instead of sink.
+
+Sat May 6 10:43:07 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming procedure execution. In this phase, get rid of
+ the output code for SPLIT FILE groups in procedure.c, which really
+ shouldn't be doing any output. Move it into the individual
+ procedures instead. This also adds some flexibility.
+
+ * list.q (write_all_headers): Call output_split_file_values().
+
+Wed May 3 23:00:17 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming procedure execution. In this phase, get rid of
+ many global variables, consolidating procedure execution in
+ procedure.c. Encapsulate transformations in new "struct
+ trns_chain". Also, change implementation of N OF CASES, FILTER,
+ and PROCESS IF from special cases to transformations.
+
+ * data-list.c: (data_list_trns_proc) Return TRNS_END_FILE at end
+ of file. (Why didn't we do this before?)
+ (cmd_match_files) Direct procedure output to null sink.
+ Use discard_variables() instead of indirect version.
+
+ * inpt-pgm.c: Use transformation chain.
+ (struct input_program_pgm) Add trns_chain member.
+ (cmd_input_program) Initialize trns_chain member and capture
+ transformations with proc_capture_transformations().
+ (input_program_source_read) Use trns_chain_execute().
+ (destroy_input_program) Destroy input chain.
+
+Tue May 2 10:39:56 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * list.q Changed from using fixed length char buffers to struct
+ string so that any length variables can be used.
+
+Mon May 1 18:21:19 2006 Ben Pfaff <blp@gnu.org>
+
+ Further clean up the CMD_* command result codes.
+
+ * (enum cmd_result_extensions) New. Add CMD_END_INPUT_PROGRAM and
+ CMD_END_CASE result codes.
+ (struct input_program_pgm) Added case_nr, write_case, wc_data
+ members for use by END CASE transformation.
+ (emit_END_CASE) New function.
+ (cmd_input_program) Interpret CMD_END_CASE by outputting an END
+ CASE transformation. If none is output by the input program
+ itself, add one automatically at the end. Change lack of
+ variables from warning to error.
+ (cmd_end_input_program) Return CMD_END_INPUT_PROGRAM instead of
+ CMD_END_SUBLOOP.
+ (input_program_source_read) No longer any need to special-case END
+ CASE. Handle TRNS_DROP_CASE properly. Initialize new members in
+ inp for use by END CASE transformation.
+ (destroy_input_program) New function.
+ (input_program_source_destroy) Just call destroy_input_program().
+ (cmd_end_case) Just return CMD_END_CASE.
+ (end_case_trns_proc) No longer a stub handled by
+ input_program_source_read(). Actually output the case and
+ increment the case number.
+
+Mon May 1 16:06:30 2006 Ben Pfaff <blp@gnu.org>
+
+ Remove vestiges of REPEATING DATA support.
+
+ * data-list.c: (struct rpd_num_or_var) Removed.
+ (struct repeating_data_trns) Removed.
+ (cmd_repeating_data) Removed.
+ (find_variable_input_spec) Removed.
+ (parse_num_or_var) Removed.
+ (parse_repeating_data) Removed.
+ (realize_value) Removed.
+ (struct rpd_parse_info) Removed.
+ (rpd_parse_record) Removed.
+ (repeating_data_trns_proc) Removed.
+ (repeating_data_trns_free) Removed.
+ (repeating_data_set_write_case) Removed.
+ (rpd_msg) Removed.
+
+ * inpt-pgm.c: (input_program_source_read) Don't deal with
+ REPEATING DATA.
+
+ * data-list.h: Removed.
+
+ * automake.mk (src_language_data_io_libdata_io_a_SOURCES): Removed
+ data-list.h.
+
+Mon May 1 15:58:28 2006 Ben Pfaff <blp@gnu.org>
+
+ Remove vestiges of FILE TYPE support.
+
+ * data-list.c: (cmd_data_list) Don't check for FILE TYPE.
+ (cmd_repeating_data) Ditto.
+
+ * automake.mk (src_language_data_io_libdata_io_a_SOURCES): Remove
+ file-type.c, file-type.h.
+
+ * file-type.c: Removed.
+
+ * file-type.h: Removed.
+
+Wed Apr 26 13:16:28 2006 Ben Pfaff <blp@gnu.org>
+
+ Improve the way we handle the various parsing "states". Until now
+ we've hard-coded the state transitions in the command definition
+ file, but that's error-prone and, worse, it's redundant--we can
+ figure out what state we're in anyhow. We can cleanly handle
+ INPUT PROGRAM and FILE TYPE with a nested command-processing loop.
+
+ * data-list.c: (cmd_data_list) Use in_file_type() or
+ in_input_program() in place of case_source_is_class() or
+ case_source_is_complex().
+
+ * file-type.c: NB: Not really fixed except minimally to compile,
+ because it doesn't work anyway.
+ (in_file_type) New function.
+ (cmd_record_type) No need to check that we're in FILE TYPE.
+ (cmd_end_file_type) Ditto.
+ (var file_type_source_class) Make static.
+
+ * get.c: (cmd_match_files) Check vfm_source instead of pgm_state.
+
+ * inpt-pgm.c: (in_input_program) New function.
+ (cmd_input_program) Rewrite to include nested command processing
+ loop.
+ (cmd_end_input_program) Just return CMD_END_SUBLOOP.
+ (var input_program_source_class) Make static.
+ (cmd_end_case) No need to check that we're in INPUT PROGRAM.
+ (cmd_end_file) Ditto.
+
+ * automake.mk (src_language_data_io_libdata_io_a_SOURCES): Add
+ file-type.h, inpt-pgm.h.
+
+ * file-type.h: New file.
+
+ * inpt-pgm.h: New file.
+
+Tue Apr 25 13:11:55 2006 Ben Pfaff <blp@gnu.org>
+
+ * print.c: Don't special-case MS-DOS line terminators.
+ (macro LINE_END_WIDTH) Removed.
+ (alloc_line) Line ends are 1 byte.
+ (print_trns_proc) Just output \n for line end.
+
+Sun Apr 23 22:05:58 2006 Ben Pfaff <blp@gnu.org>
+
+ 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.
+
+ * data-list.c: (macro RPD_ERR) Removed.
+ (rpd_msg) New function. Updated all references to tmsg() to call
+ this function instead.
+
+Sat Apr 15 19:38:13 2006 Ben Pfaff <blp@gnu.org>
+
+ Remove last users of struct file_ext so we can get rid of it
+ entirely.
+
+ * data-reader.c: (struct dfm_reader) Change file member from
+ struct file_ext to FILE *. Updated all references.
+ (dfm_close_reader) Close file with fn_close() instead of
+ fn_close_ext(). Also, make a copy of the file name from the file
+ handle before closing it, because we can't extract it after we
+ close the file.
+ (dfm_open_reader) Open file with fn_open() instead of
+ fn_open_ext().
+
+ * data-writer.c: (struct dfm_writer) Change file member
+ struct file_ext to FILE *. Updated all references.
+ (dfm_close_writer) Close file with fn_close() instead of
+ fn_close_ext(). Also, make a copy of the file name from the file
+ handle before closing it, because we can't extract it after we
+ close the file.
+ (dfm_open_writer) Open file with fn_open() instead of
+ fn_open_ext().
+
+Sat Apr 15 18:00:32 2006 Ben Pfaff <blp@gnu.org>
+
+ * data-list.c: Add prototype to suppress warning for
+ cmd_repeating_data().
+
+Thu Mar 2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * Moved files from src directory
EXTRA_DIST += $(src_language_data_io_built_sources:.c=.q)
CLEANFILES += $(src_language_data_io_built_sources)
+EXTRA_DIST += src/language/data-io/OChangeLog
+++ /dev/null
-2008-03-16 Ben Pfaff <blp@gnu.org>
-
- Patch #6452. Reviewed by John Darrington.
-
- * variable-display.c (cmd_variable_width): Fix parsing bug. Also,
- limit variable display widths to within range 1 thru 2 *
- MAX_STRING.
-
-2007-11-11 Ben Pfaff <blp@gnu.org>
-
- * sys-file-info.c (display_variables): Fix DISPLAY LABELS. Thanks
- to Guido Gay <gay@irer.it> for reporting this bug.
-
-2007-11-03 Ben Pfaff <blp@gnu.org>
-
- Allow output files to overwrite input files (bug #21280).
-
- * apply-dictionary.c (cmd_apply_dictionary): Manage file handle
- reference counts.
-
- * sys-file-info.c (cmd_sysfile_info): Manage file handle reference
- counts.
-
-2007-08-12 Ben Pfaff <blp@gnu.org>
-
- Output variable measurement level, alignment, and display width as
- part of DISPLAY DICTIONARY and SYSFILE INFO output. Bug #13019.
- Reviewed by John Darrington.
- * sys-file-info.c (cmd_sysfile_info): Allow space for new rows of
- info in output.
- (display_variables): Ditto.
- (describe_variable): Output variable measurement level, alignment,
- and display width as part of DISPLAY DICTIONARY and SYSFILE INFO
- output.
-
-2007-06-06 Ben Pfaff <blp@gnu.org>
-
- Adapt case sources, sinks, and clients of procedure code to the
- new infrastructure.
-
- * apply-dictionary.c: Now any_reader_open returns a casereader.
-
- * sys-file-open.c: Now sfm_reader_open returns a casereader.
-
-Sat Feb 3 21:52:35 2007 Ben Pfaff <blp@gnu.org>
-
- * vector.c (cmd_vector): Add support for specifying an output
- format in the short form of the command, fixing bug #18706.
- Rewrite to get rid of weird data structure and simplify.
-
- * sys-file-info.c (display_vectors): For DISPLAY VECTORS, display,
- in addition to the names of vectors, the names, positions, and
- print formats of the variables contained in the vectors.
-
-Wed Dec 13 20:59:54 2006 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Add delete-variables.c
-
- * delete-variables.c (cmd_delete_variables): New function, in new
- file.
-
-Sun Dec 10 13:55:58 2006 Ben Pfaff <blp@gnu.org>
-
- * sys-file-info.c (cmd_sysfile_info): Report floating-point format
- used in system file.
-
-Sat Dec 9 18:44:26 2006 Ben Pfaff <blp@gnu.org>
-
- * variable-label.c: Move to src/data/variable.c.
-
- * vector.c (cmd_vector): Use PV_SAME_WIDTH in parse_variables
- call, because string variables in a vector must have the same
- width.
-
-Thu Nov 30 22:06:21 2006 Ben Pfaff <blp@gnu.org>
-
- * value-labels.c (get_label): Allow commas between values and
- labels and between value labels. Fixes bug #18303. Thanks to
- John Darrington for reporting this bug.
-
-Sat Nov 4 16:04:19 2006 Ben Pfaff <blp@gnu.org>
-
- * numeric.c: (cmd_string) Check that output format is valid.
- Simplify parsing.
-
-Wed Nov 1 20:50:54 2006 Ben Pfaff <blp@gnu.org>
-
- * sys-file-info.c: (cmd_display) Use compare_var_ptr_names to
- compare "struct variable **"s, not compare_var_names. Fixes bug
- #17423.
-
-Sat May 6 19:03:34 2006 Ben Pfaff <blp@gnu.org>
-
- * apply-dictionary.c: (cmd_apply_dictionary) Use new function
- val_labs_can_set_width().
-
-Sat May 6 10:43:22 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming procedure execution. In this phase, get rid of
- the output code for SPLIT FILE groups in procedure.c, which really
- shouldn't be doing any output. Move it into the individual
- procedures instead. This also adds some flexibility.
-
- * split-file.c (output_split_file_values): New function.
-
-Sat May 6 10:42:19 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming procedure execution. In this phase, get rid of
- the output code for SPLIT FILE groups in procedure.c, which really
- shouldn't be doing any output. Move it into the individual
- procedures instead. This also adds some flexibility.
-
- * automake.mk (src_language_dictionary_libcmddict_a_SOURCES): Add
- split-file.h.
-
-Thu Mar 2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * Moved files from src directory
--- /dev/null
+2008-03-16 Ben Pfaff <blp@gnu.org>
+
+ Patch #6452. Reviewed by John Darrington.
+
+ * variable-display.c (cmd_variable_width): Fix parsing bug. Also,
+ limit variable display widths to within range 1 thru 2 *
+ MAX_STRING.
+
+2007-11-11 Ben Pfaff <blp@gnu.org>
+
+ * sys-file-info.c (display_variables): Fix DISPLAY LABELS. Thanks
+ to Guido Gay <gay@irer.it> for reporting this bug.
+
+2007-11-03 Ben Pfaff <blp@gnu.org>
+
+ Allow output files to overwrite input files (bug #21280).
+
+ * apply-dictionary.c (cmd_apply_dictionary): Manage file handle
+ reference counts.
+
+ * sys-file-info.c (cmd_sysfile_info): Manage file handle reference
+ counts.
+
+2007-08-12 Ben Pfaff <blp@gnu.org>
+
+ Output variable measurement level, alignment, and display width as
+ part of DISPLAY DICTIONARY and SYSFILE INFO output. Bug #13019.
+ Reviewed by John Darrington.
+ * sys-file-info.c (cmd_sysfile_info): Allow space for new rows of
+ info in output.
+ (display_variables): Ditto.
+ (describe_variable): Output variable measurement level, alignment,
+ and display width as part of DISPLAY DICTIONARY and SYSFILE INFO
+ output.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ Adapt case sources, sinks, and clients of procedure code to the
+ new infrastructure.
+
+ * apply-dictionary.c: Now any_reader_open returns a casereader.
+
+ * sys-file-open.c: Now sfm_reader_open returns a casereader.
+
+Sat Feb 3 21:52:35 2007 Ben Pfaff <blp@gnu.org>
+
+ * vector.c (cmd_vector): Add support for specifying an output
+ format in the short form of the command, fixing bug #18706.
+ Rewrite to get rid of weird data structure and simplify.
+
+ * sys-file-info.c (display_vectors): For DISPLAY VECTORS, display,
+ in addition to the names of vectors, the names, positions, and
+ print formats of the variables contained in the vectors.
+
+Wed Dec 13 20:59:54 2006 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Add delete-variables.c
+
+ * delete-variables.c (cmd_delete_variables): New function, in new
+ file.
+
+Sun Dec 10 13:55:58 2006 Ben Pfaff <blp@gnu.org>
+
+ * sys-file-info.c (cmd_sysfile_info): Report floating-point format
+ used in system file.
+
+Sat Dec 9 18:44:26 2006 Ben Pfaff <blp@gnu.org>
+
+ * variable-label.c: Move to src/data/variable.c.
+
+ * vector.c (cmd_vector): Use PV_SAME_WIDTH in parse_variables
+ call, because string variables in a vector must have the same
+ width.
+
+Thu Nov 30 22:06:21 2006 Ben Pfaff <blp@gnu.org>
+
+ * value-labels.c (get_label): Allow commas between values and
+ labels and between value labels. Fixes bug #18303. Thanks to
+ John Darrington for reporting this bug.
+
+Sat Nov 4 16:04:19 2006 Ben Pfaff <blp@gnu.org>
+
+ * numeric.c: (cmd_string) Check that output format is valid.
+ Simplify parsing.
+
+Wed Nov 1 20:50:54 2006 Ben Pfaff <blp@gnu.org>
+
+ * sys-file-info.c: (cmd_display) Use compare_var_ptr_names to
+ compare "struct variable **"s, not compare_var_names. Fixes bug
+ #17423.
+
+Sat May 6 19:03:34 2006 Ben Pfaff <blp@gnu.org>
+
+ * apply-dictionary.c: (cmd_apply_dictionary) Use new function
+ val_labs_can_set_width().
+
+Sat May 6 10:43:22 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming procedure execution. In this phase, get rid of
+ the output code for SPLIT FILE groups in procedure.c, which really
+ shouldn't be doing any output. Move it into the individual
+ procedures instead. This also adds some flexibility.
+
+ * split-file.c (output_split_file_values): New function.
+
+Sat May 6 10:42:19 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming procedure execution. In this phase, get rid of
+ the output code for SPLIT FILE groups in procedure.c, which really
+ shouldn't be doing any output. Move it into the individual
+ procedures instead. This also adds some flexibility.
+
+ * automake.mk (src_language_dictionary_libcmddict_a_SOURCES): Add
+ split-file.h.
+
+Thu Mar 2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * Moved files from src directory
src/language/dictionary/variable-display.c \
src/language/dictionary/weight.c
+EXTRA_DIST += src/language/dictionary/OChangeLog
+++ /dev/null
-2008-05-15 Ben Pfaff <blp@gnu.org>
-
- 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 <blp@gnu.org>
-
- 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 <blp@gnu.org>
-
- 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 <blp@gnu.org>
-
- * 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 <blp@gnu.org>
-
- * 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 <blp@gnu.org>
-
- * operations.def: Reverse order of arguments to DATEDIFF, for
- compatibility. Thanks to Daniel Williams
- <Daniel.E.Williams@state.or.us> for reporting this bug.
-
-Wed Dec 13 19:30:26 2006 Ben Pfaff <blp@gnu.org>
-
- 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 <blp@gnu.org>
-
- * 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 <blp@gnu.org>
-
- * evaluate.c (cmd_debug_evaluate): Don't try to resize a null
- case.
-
-Fri Jun 9 13:59:15 2006 Ben Pfaff <blp@gnu.org>
-
- 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 <john@darrington.wattle.id.au>
-
- * evaluate.c: Removed call to copy_mangle, and replaced with the
- original buf_copy_rpad.
-
-Mon May 1 15:11:48 2006 Ben Pfaff <blp@gnu.org>
-
- 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 <blp@gnu.org>
-
- 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 <john@darrington.wattle.id.au>
-
- * Moved files from src directory
--- /dev/null
+2008-05-15 Ben Pfaff <blp@gnu.org>
+
+ 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 <blp@gnu.org>
+
+ 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 <blp@gnu.org>
+
+ 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 <blp@gnu.org>
+
+ * 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 <blp@gnu.org>
+
+ * 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 <blp@gnu.org>
+
+ * operations.def: Reverse order of arguments to DATEDIFF, for
+ compatibility. Thanks to Daniel Williams
+ <Daniel.E.Williams@state.or.us> for reporting this bug.
+
+Wed Dec 13 19:30:26 2006 Ben Pfaff <blp@gnu.org>
+
+ 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 <blp@gnu.org>
+
+ * 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 <blp@gnu.org>
+
+ * evaluate.c (cmd_debug_evaluate): Don't try to resize a null
+ case.
+
+Fri Jun 9 13:59:15 2006 Ben Pfaff <blp@gnu.org>
+
+ 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 <john@darrington.wattle.id.au>
+
+ * evaluate.c: Removed call to copy_mangle, and replaced with the
+ original buf_copy_rpad.
+
+Mon May 1 15:11:48 2006 Ben Pfaff <blp@gnu.org>
+
+ 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 <blp@gnu.org>
+
+ 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 <john@darrington.wattle.id.au>
+
+ * Moved files from src directory
.inc.pl.inc:
$(generate_from_pl)
+
+EXTRA_DIST += src/language/expressions/OChangeLog
+++ /dev/null
-2007-12-04 Ben Pfaff <blp@gnu.org>
-
- * lexer.c (lex_match_id_n): New function.
- (lex_match_id): Reimplement in terms of lex_match_id_n.
-
-2007-08-16 Ben Pfaff <blp@gnu.org>
-
- Implement journaling. Bug #17240.
-
- * lexer.c (lex_get_line_raw): Pass the line read to journal_write.
-
-2007-06-03 Ben Pfaff <blp@gnu.org>
-
- Implement missing functions for subcommand integer lists.
-
- * subcommand-list.c (subc_list_int_create): New function.
- (subc_list_int_push): New function.
- (subc_list_int_count): New function.
- (subc_list_int_at): New function.
- (subc_list_int_destroy): New function.
-
-2007-05-06 Ben Pfaff <blp@gnu.org>
-
- Abstract the documents within a dictionary a little better.
- Thanks to John Darrington for suggestion, initial version, and
- review. Patch #5917.
-
- * lexer.c (lex_entire_line): Add const to parameter.
- (lex_entire_line_ds): Ditto.
- (lex_rest_of_line): Drop end_dot parameter. Update all callers to
- use lex_end_dot instead.
- (lex_end_dot): New function.
-
-2007-05-03 John Darrington <john@darrington.wattle.id.au>
-
- * lexer.c lexer.h: Added lex_is_string function.
-
-2007-04-15 Ben Pfaff <blp@gnu.org>
-
- * q2c.c: Fully support lists of integer values. Add support for
- lists of string values. Add some more needed declarations to
- headers.
-
-Fri Feb 16 11:14:42 2007 Ben Pfaff <blp@gnu.org>
-
- Better support cross-compiling by using CC_FOR_BUILD and
- EXEEXT_FOR_BUILD for q2c.
-
- * automake.mk: Use EXEEXT_FOR_BUILD and CC_FOR_BUILD to build and
- clean q2c.
-
- * q2c.c: Avoid external dependencies, besides the standard C
- library.
-
-Sun Feb 11 20:31:51 2007 Ben Pfaff <blp@gnu.org>
-
- * q2c.c: Make q2c link under mingw32, by eliminating the
- dependency on localtime. Gnulib replaces localtime by a fixed
- version, but we don't link q2c against gnulib. q2c only uses
- localtime to put the time of processing into the output file,
- which I've never in practice found to be useful, so the patch just
- drops this feature.
-
-Wed Dec 13 21:00:24 2006 Ben Pfaff <blp@gnu.org>
-
- * variable-parser.c (parse_variables): If not successful, set
- output pointer to NULL and output count to 0.
-
-Sat Dec 9 18:46:11 2006 Ben Pfaff <blp@gnu.org>
-
- * variable-parser.h: New PV_SAME_WIDTH variable parsing option.
-
- * variable-parser.c (add_variable): Implement new PV_SAME_WIDTH
- option.
- (parse_var_set_vars) Ditto.
- (array_var_set_lookup_var_idx) Use new var_create, var_destroy
- functions.
-
-Sat Dec 2 21:19:50 2006 Ben Pfaff <blp@gnu.org>
-
- General clean-up.
-
- * lexer.c: (lex_token_name) Don't use a static buffer or, rather,
- use a separate static buffer for each possible answer.
- (lex_token_representation) Now use lex_token_name as building
- block. Previously this broke lex_force_match because it uses
- lex_token_name in a call to lex_error, which in turn uses
- lex_token_representation.
- (lex_force_match_id) Use lex_match_id as building block, to
- simplify.
- (parse_id) Rewrite to work with modified lex_id_to_token and
- lex_id_get_length. The computation of rest_of_line is a bit of an
- abomination but it will get fixed later.
-
-Sat Dec 2 20:16:50 2006 Ben Pfaff <blp@gnu.org>
-
- * lexer.c (struct lexer): Change function signature for
- `read_line' to take an "enum getl_syntax *" instead of "bool *".
- (lex_create) Ditto, for argument.
- (lex_preprocess_line) New function.
- (lex_get_line_raw) New arg, to allow caller to obtain getl_syntax
- of the line read.
- (lex_get_line) Use lex_get_line_raw and lex_preprocess_line to
- simplify.
-
-Sun Nov 19 09:20:42 2006 Ben Pfaff <blp@gnu.org>
-
- * range-parser.c (parse_num_range): Because data_in takes an enum
- fmt_type now, not a struct fmt_spec, change the type of the
- corresponding argument. Updated all callers.
- (parse_number) Ditto.
-
-Sun Nov 12 06:34:06 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * format-parser.c format-parser.h lexer.c lexer.h q2c.c range-parser.c
- range-parser.h subcommand-list.c variable-parser.c
- variable-parser.h:
-
- Encapsulated the lexer into an object, and updated everything
- accordingly.
-
-Tue Oct 31 18:09:32 2006 Ben Pfaff <blp@gnu.org>
-
- * range-parser.c (parse_number): Fix error message.
-
-Sat Oct 28 16:17:18 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * lexer.c lexer.h: Added a line_buffer (previously an external
- reference called getl_buf).
-
-Thu Oct 26 20:18:03 2006 Ben Pfaff <blp@gnu.org>
-
- * lexer.c (parse_string): Make lexing of binary, hex, and octal
- strings work (fixes bug #17948). Allow null bytes in strings, now
- that there's a use for them (see tests/formats/float-format.sh).
-
-Sun Jul 16 21:03:34 2006 Ben Pfaff <blp@gnu.org>
-
- * format-parser.h: New file. Moved prototypes of format-parser.c
- functions here, from lexer.h.
-
- * format-parser.c: (parse_format_specifier_name) Rewrote and
- changed semantics.
- (parse_abstract_format_specifier) New function.
- (parse_format_specifier) Rewrote in terms of
- parse_abstract_format_specifier. Removed "options" parameter, so
- callers had to be updated. Callers that didn't want messages
- emitted were changed to use the new msg_disable/msg_enable
- functions.
-
- * variables-parser.c: (parse_variables_pool) New function.
- (register_vars_pool) New function.
- (parse_DATA_LIST_vars_pool) New function.
- (parse_mixed_vars_pool) Use register_vars_pool. Assert that
- PV_APPEND is not in the options.
-
-Sat Jul 1 17:40:38 2006 Ben Pfaff <blp@gnu.org>
-
- Fix bug #11612, "q2c documentation does not agree with code".
-
- * q2c.c (parse_subcommand): Make "+" mean ARITY_MANY, absence
- mean ARITY_ONCE_ONLY.
-
-Tue Jul 4 09:45:12 2006 Ben Pfaff <blp@gnu.org>
-
- Fix bug #15766 (/KEEP subcommand on SAVE doesn't fully support
- ALL) and additional underlying system file issues.
-
- * variable-parser.c (add_variable): Move test earlier for clarity
- and efficiency.
- (parse_var_set_vars) Accept ALL within a variable list, not just
- at the beginning of one.
-
-Tue Jun 27 22:54:30 2006 Ben Pfaff <blp@gnu.org>
-
- * automake.mk (src_language_lexer_liblexer_a_SOURCES): Add
- variable-parser.h.
-
-Tue Jun 27 19:15:33 2006 Ben Pfaff <blp@gnu.org>
-
- Add auxiliary data pointer to q2c parse_<command> function, and
- pass it along to the custom parser functions.
-
- Updated all uses of custom functions in all the existing .q files.
-
- * q2c.c (dump_declarations): Include auxiliary parameter in
- function prototypes.
- (dump_subcommand) Include aux arg in calls to custom functions.
- (dump_parser) Include aux param in parse_<command> function
- definition. Include aux arg in calls to custom functions.
-
-Tue Jun 27 12:07:34 2006 Ben Pfaff <blp@gnu.org>
-
- * variable-parser.h: New header. Moved the var_set and variable
- parsing declarations here.
-
- * q2c.c (main): Emit include for new variable-parser.h header.
-
-Sun Jun 25 22:41:00 2006 Ben Pfaff <blp@gnu.org>
-
- * q2c.c (dump_free): For SBC_DBL_LIST, enclose the output code in
- curly braces, because it contains a variable declaration and might
- not be at the beginning of a block.
-
-Fri Jun 9 14:02:19 2006 Ben Pfaff <blp@gnu.org>
-
- Reform string library.
-
- * q2c.c (dump_subcommand): ds_c_str() became ds_cstr(), in
- generated code.
-
-Wed Apr 26 13:30:41 2006 Ben Pfaff <blp@gnu.org>
-
- * lexer.c: (lex_discard_rest_of_command) New function.
-
-Mon Apr 24 14:12:08 2006 Ben Pfaff <blp@gnu.org>
-
- * q2c.c: Use exit.h from gnulib instead of checking for and
- defining EXIT_SUCCESS and EXIT_FAILURE by hand.
-
-Sat Apr 15 14:30:35 2006 Ben Pfaff <blp@gnu.org>
-
- * q2c.c: Change DEBUGGING macro to DUMP_TOKENS for clarity and to
- avoid dumping all the tokens to stdout when --enable-debug is
- passed to configure.
-
-Fri Mar 10 08:29:25 2006 Ben Pfaff <blp@gnu.org>
-
- * q2c.c: (dump_free) Free proper member for var list, instead of
- hard-coding to v_variables. Thanks to Jason Stover for reporting
- this bug.
-
-Thu Mar 2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * Moved files from src directory
--- /dev/null
+2007-12-04 Ben Pfaff <blp@gnu.org>
+
+ * lexer.c (lex_match_id_n): New function.
+ (lex_match_id): Reimplement in terms of lex_match_id_n.
+
+2007-08-16 Ben Pfaff <blp@gnu.org>
+
+ Implement journaling. Bug #17240.
+
+ * lexer.c (lex_get_line_raw): Pass the line read to journal_write.
+
+2007-06-03 Ben Pfaff <blp@gnu.org>
+
+ Implement missing functions for subcommand integer lists.
+
+ * subcommand-list.c (subc_list_int_create): New function.
+ (subc_list_int_push): New function.
+ (subc_list_int_count): New function.
+ (subc_list_int_at): New function.
+ (subc_list_int_destroy): New function.
+
+2007-05-06 Ben Pfaff <blp@gnu.org>
+
+ Abstract the documents within a dictionary a little better.
+ Thanks to John Darrington for suggestion, initial version, and
+ review. Patch #5917.
+
+ * lexer.c (lex_entire_line): Add const to parameter.
+ (lex_entire_line_ds): Ditto.
+ (lex_rest_of_line): Drop end_dot parameter. Update all callers to
+ use lex_end_dot instead.
+ (lex_end_dot): New function.
+
+2007-05-03 John Darrington <john@darrington.wattle.id.au>
+
+ * lexer.c lexer.h: Added lex_is_string function.
+
+2007-04-15 Ben Pfaff <blp@gnu.org>
+
+ * q2c.c: Fully support lists of integer values. Add support for
+ lists of string values. Add some more needed declarations to
+ headers.
+
+Fri Feb 16 11:14:42 2007 Ben Pfaff <blp@gnu.org>
+
+ Better support cross-compiling by using CC_FOR_BUILD and
+ EXEEXT_FOR_BUILD for q2c.
+
+ * automake.mk: Use EXEEXT_FOR_BUILD and CC_FOR_BUILD to build and
+ clean q2c.
+
+ * q2c.c: Avoid external dependencies, besides the standard C
+ library.
+
+Sun Feb 11 20:31:51 2007 Ben Pfaff <blp@gnu.org>
+
+ * q2c.c: Make q2c link under mingw32, by eliminating the
+ dependency on localtime. Gnulib replaces localtime by a fixed
+ version, but we don't link q2c against gnulib. q2c only uses
+ localtime to put the time of processing into the output file,
+ which I've never in practice found to be useful, so the patch just
+ drops this feature.
+
+Wed Dec 13 21:00:24 2006 Ben Pfaff <blp@gnu.org>
+
+ * variable-parser.c (parse_variables): If not successful, set
+ output pointer to NULL and output count to 0.
+
+Sat Dec 9 18:46:11 2006 Ben Pfaff <blp@gnu.org>
+
+ * variable-parser.h: New PV_SAME_WIDTH variable parsing option.
+
+ * variable-parser.c (add_variable): Implement new PV_SAME_WIDTH
+ option.
+ (parse_var_set_vars) Ditto.
+ (array_var_set_lookup_var_idx) Use new var_create, var_destroy
+ functions.
+
+Sat Dec 2 21:19:50 2006 Ben Pfaff <blp@gnu.org>
+
+ General clean-up.
+
+ * lexer.c: (lex_token_name) Don't use a static buffer or, rather,
+ use a separate static buffer for each possible answer.
+ (lex_token_representation) Now use lex_token_name as building
+ block. Previously this broke lex_force_match because it uses
+ lex_token_name in a call to lex_error, which in turn uses
+ lex_token_representation.
+ (lex_force_match_id) Use lex_match_id as building block, to
+ simplify.
+ (parse_id) Rewrite to work with modified lex_id_to_token and
+ lex_id_get_length. The computation of rest_of_line is a bit of an
+ abomination but it will get fixed later.
+
+Sat Dec 2 20:16:50 2006 Ben Pfaff <blp@gnu.org>
+
+ * lexer.c (struct lexer): Change function signature for
+ `read_line' to take an "enum getl_syntax *" instead of "bool *".
+ (lex_create) Ditto, for argument.
+ (lex_preprocess_line) New function.
+ (lex_get_line_raw) New arg, to allow caller to obtain getl_syntax
+ of the line read.
+ (lex_get_line) Use lex_get_line_raw and lex_preprocess_line to
+ simplify.
+
+Sun Nov 19 09:20:42 2006 Ben Pfaff <blp@gnu.org>
+
+ * range-parser.c (parse_num_range): Because data_in takes an enum
+ fmt_type now, not a struct fmt_spec, change the type of the
+ corresponding argument. Updated all callers.
+ (parse_number) Ditto.
+
+Sun Nov 12 06:34:06 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * format-parser.c format-parser.h lexer.c lexer.h q2c.c range-parser.c
+ range-parser.h subcommand-list.c variable-parser.c
+ variable-parser.h:
+
+ Encapsulated the lexer into an object, and updated everything
+ accordingly.
+
+Tue Oct 31 18:09:32 2006 Ben Pfaff <blp@gnu.org>
+
+ * range-parser.c (parse_number): Fix error message.
+
+Sat Oct 28 16:17:18 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * lexer.c lexer.h: Added a line_buffer (previously an external
+ reference called getl_buf).
+
+Thu Oct 26 20:18:03 2006 Ben Pfaff <blp@gnu.org>
+
+ * lexer.c (parse_string): Make lexing of binary, hex, and octal
+ strings work (fixes bug #17948). Allow null bytes in strings, now
+ that there's a use for them (see tests/formats/float-format.sh).
+
+Sun Jul 16 21:03:34 2006 Ben Pfaff <blp@gnu.org>
+
+ * format-parser.h: New file. Moved prototypes of format-parser.c
+ functions here, from lexer.h.
+
+ * format-parser.c: (parse_format_specifier_name) Rewrote and
+ changed semantics.
+ (parse_abstract_format_specifier) New function.
+ (parse_format_specifier) Rewrote in terms of
+ parse_abstract_format_specifier. Removed "options" parameter, so
+ callers had to be updated. Callers that didn't want messages
+ emitted were changed to use the new msg_disable/msg_enable
+ functions.
+
+ * variables-parser.c: (parse_variables_pool) New function.
+ (register_vars_pool) New function.
+ (parse_DATA_LIST_vars_pool) New function.
+ (parse_mixed_vars_pool) Use register_vars_pool. Assert that
+ PV_APPEND is not in the options.
+
+Sat Jul 1 17:40:38 2006 Ben Pfaff <blp@gnu.org>
+
+ Fix bug #11612, "q2c documentation does not agree with code".
+
+ * q2c.c (parse_subcommand): Make "+" mean ARITY_MANY, absence
+ mean ARITY_ONCE_ONLY.
+
+Tue Jul 4 09:45:12 2006 Ben Pfaff <blp@gnu.org>
+
+ Fix bug #15766 (/KEEP subcommand on SAVE doesn't fully support
+ ALL) and additional underlying system file issues.
+
+ * variable-parser.c (add_variable): Move test earlier for clarity
+ and efficiency.
+ (parse_var_set_vars) Accept ALL within a variable list, not just
+ at the beginning of one.
+
+Tue Jun 27 22:54:30 2006 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk (src_language_lexer_liblexer_a_SOURCES): Add
+ variable-parser.h.
+
+Tue Jun 27 19:15:33 2006 Ben Pfaff <blp@gnu.org>
+
+ Add auxiliary data pointer to q2c parse_<command> function, and
+ pass it along to the custom parser functions.
+
+ Updated all uses of custom functions in all the existing .q files.
+
+ * q2c.c (dump_declarations): Include auxiliary parameter in
+ function prototypes.
+ (dump_subcommand) Include aux arg in calls to custom functions.
+ (dump_parser) Include aux param in parse_<command> function
+ definition. Include aux arg in calls to custom functions.
+
+Tue Jun 27 12:07:34 2006 Ben Pfaff <blp@gnu.org>
+
+ * variable-parser.h: New header. Moved the var_set and variable
+ parsing declarations here.
+
+ * q2c.c (main): Emit include for new variable-parser.h header.
+
+Sun Jun 25 22:41:00 2006 Ben Pfaff <blp@gnu.org>
+
+ * q2c.c (dump_free): For SBC_DBL_LIST, enclose the output code in
+ curly braces, because it contains a variable declaration and might
+ not be at the beginning of a block.
+
+Fri Jun 9 14:02:19 2006 Ben Pfaff <blp@gnu.org>
+
+ Reform string library.
+
+ * q2c.c (dump_subcommand): ds_c_str() became ds_cstr(), in
+ generated code.
+
+Wed Apr 26 13:30:41 2006 Ben Pfaff <blp@gnu.org>
+
+ * lexer.c: (lex_discard_rest_of_command) New function.
+
+Mon Apr 24 14:12:08 2006 Ben Pfaff <blp@gnu.org>
+
+ * q2c.c: Use exit.h from gnulib instead of checking for and
+ defining EXIT_SUCCESS and EXIT_FAILURE by hand.
+
+Sat Apr 15 14:30:35 2006 Ben Pfaff <blp@gnu.org>
+
+ * q2c.c: Change DEBUGGING macro to DUMP_TOKENS for clarity and to
+ avoid dumping all the tokens to stdout when --enable-debug is
+ passed to configure.
+
+Fri Mar 10 08:29:25 2006 Ben Pfaff <blp@gnu.org>
+
+ * q2c.c: (dump_free) Free proper member for var list, instead of
+ hard-coding to v_variables. Thanks to Jason Stover for reporting
+ this bug.
+
+Thu Mar 2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * Moved files from src directory
CLEANFILES += src/language/lexer/q2c$(EXEEXT_FOR_BUILD)
+
+EXTRA_DIST += src/language/lexer/OChangeLog
+++ /dev/null
-2008-07-24 Jason H Stover <jhs@math.gcsu.edu>
-
- * glm.q (run_glm): Dropped weight argument.
-
-2008-07-22 Jason H Stover <jhs@math.gcsu.edu>
-
- * glm.q (run_glm): Re-written to form covariance matrix rather
- than store entire data set in memory.
-
- * glm.q (data_pass_one): Renamed prepare_categories() to
- data_pass_one(). Accumulate mean and variance.
-
-2008-06-21 Jason Stover <jhs@math.gcsu.edu>
-
- * regression.q (reg_stats_coeff): Use new accessor function
- pspp_coeff_get_sd. Fixed bug 23567. No longer call compute_moments
- in run_regression. Pass entire design_matrix to pspp_linreg ().
-
-2008-05-29 John Darrington <john@darrington.wattle.id.au>
-
- * examine.q: Fixed bug where incorrect levels of dereferencing
- were applied to pointers.
-
-2008-04-09 John Darrington <john@darrington.wattle.id.au>
-
- * regression.q: Fix display of degrees of freedom.
-
-2008-04-08 Jason Stover <jhs@math.gcsu.edu>
-
- * regression.q (identify_indep_vars): Don't panic unless
- n_indep_vars is 0.
-
-2008-03-16 Ben Pfaff <blp@gnu.org>
-
- Bug #22037. Thanks to John Darrington for reporting this bug.
-
- * crosstabs.q (calc_general): Only the short string prefix of long
- string variables are tabulated, so we must not copy or zero out
- more data than that.
-
-2008-03-10 Jason Stover <jhs@math.gcsu.edu>
-
- * regression.q (run_regression): Removed code for EXPORT
- subcommand. Remove use of coefficient 0 as the intercept.
-
-2008-02-14 John Darrington <john@darrington.wattle.id.au>
-
- * examine.q: Fixed counts of missing variables. Thanks to
- Jason Stover for reporting this problem.
-
-2008-01-02 John Darrington <john@darrington.wattle.id.au>
-
- * binomial.c chisquare.c examine.q frequencies.q oneway.q regression.q : updated
- all users of var_get_value_name to use replacement function var_append_value_name.
-
-2007-12-07 Ben Pfaff <blp@gnu.org>
-
- Patch #6302.
-
- * crosstabs.q (precalc): Initialize data structures even if the
- first case cannot be read.
-
- * frequencies.q (precalc): Ditto.
-
-2007-11-03 Ben Pfaff <blp@gnu.org>
-
- Allow output files to overwrite input files (bug #21280).
-
- * aggregate.c (cmd_aggregate): Manage file handle reference
- counts.
-
- * correlations.q (internal_cmd_frequencies): Ditto.
- (cor_custom_matrix): Ditto.
-
- * regression.q (regression_custom_export): Ditto.
- (cmd_regression): Ditto.
-
-2007-10-12 Ben Pfaff <blp@gnu.org>
-
- * flip.c (flip_file): No need to conditionally substitute for
- "fseeko" and "off_t" manually anymore, as gnulib takes care of it
- for us.
-
-2007-09-21 Jason Stover <jhs@wonko.gcsu.edu>
-
- * regression.q (run_regression): Partial fix of memory leak, bug
- 21056.
-
-2007-09-19 Ben Pfaff <blp@gnu.org>
-
- Fix bug #21108.
-
- * aggregate.c (cmd_aggregate): Destroy casereader consistently,
- even if casereader fails.
-
- * examine.q (run_examine): Ditto.
-
- * glm.q (run_glm): Ditto.
-
- * oneway.q (run_oneway): Ditto.
-
- * regression.q (run_regression): Ditto.
-
- * t-test.q (calculate): Ditto.
-
- * descriptives.c (calc_descriptives): Ditto. Also avoid
- gratuitous casereader_clone.
-
-2007-09-13 Jason Stover <jhs@math.gcsu.edu>
-
- * regression.q (cmd_regression): Move declaration of models in to
- definition of cmd_regression.
-
- * regression.q (run_regression): Free mom to fix memory leak.
-
-2007-09-12 Ben Pfaff <blp@gnu.org>
-
- * crosstabs.q (postcalc): Free sorted_tab and the structures that
- it points to, to plug a memory leak. Fixes bug #20910. Thanks to
- John Darrington for reporting this bug and for review.
-
-2007-09-04 Ben Pfaff <blp@gnu.org>
-
- * crosstabs.q (cmd_crosstabs): Free xtab and the structures that
- it points to, to plug a memory leak. Fixes bug #18315.
-
-2007-08-15 Jason Stover <jhs@wonko.gcsu.edu>
-
- * regression.q (identify_indep_vars): Print an error if dependent
- and independent variables are the same. Fixes bug 19819.
-
-2007-08-12 Ben Pfaff <blp@gnu.org>
-
- * flip.c: Drop use of dict_get_compacted_dict_index_to_case_index
- and just use the ordinary case indexes. There seemed to be no
- reason for the former method.
-
-2007-08-03 Ben Pfaff <blp@gnu.org>
-
- * rank.q (rank_cmd): Instead of sorting by SPLIT FILE vars, group
- by them. Fixes bug #17239.
- Reviewed by John Darrington.
-
-2007-08-01 Ben Pfaff <blp@gnu.org>
-
- Clean up handling of median, by treating it almost like any other
- percentile. Fixes bug #17424. Thanks to John Darrington for
- review.
- * frequencies.q (internal_cmd_frequencies): Fix handling of bit
- masks for `stats' variable. If median is selected, turn it off
- and add a 50th percentile.
- (add_percentile): Simplify code a little.
- (calc_stats): Drop special casing of median.
- (dump_statistics): Ditto, except that we label the 50th percentile
- as "50 (Median)" to make it clear that it's also the median.
-
-2007-07-31 Ben Pfaff <blp@gnu.org>
-
- Remove integer mode from FREQUENCIES and incidentally fix bug
- #17421. Reviewed by John Darrington.
- * frequencies.q (int_pool): Rename data_pool.
- (gen_pool): Rename syntax_pool.
- (enum FRQM_*): Removed.
- (struct freq_tab): Removed `mode', `vector', `min', `max',
- `out_of_range', `sysmis' members.
- (calc): Delete support for integer mode.
- (precalc): Ditto.
- (postprocess_freq_tab): Ditto.
- (cleanup_freq_tab): Ditto.
- (frq_custom_variables): Ditto.
-
-2007-07-28 John Darrington <john@darrington.wattle.id.au>
-
- * t-test.q: Moved the order in which groups are displayed in the
- independent samples case, where a cut point is given.
-
-2007-07-27 Ben Pfaff <blp@gnu.org>
-
- * regression.q (run_regression): Move casereader_destroy call so
- that it always gets called, not just if there was some valid
- data. Fixes bug #19581.
- Reviewed by Jason Stover.
-
-2007-07-24 Ben Pfaff <blp@gnu.org>
-
- * flip.c (struct flip_pgm): Remove `case_size' member (now
- unused).
- (cmd_flip): Pass var_cnt as number of cases instead of case_cnt,
- to fix bug #20494. Don't assign to `case_size' member, which was
- unused after assignment.
- (build_dictionary): When NEWNAMES not used, get the number of
- variables right, to fix bug #20493.
-
-2007-07-10 Jason Stover <jhs@math.gcsu.edu>
-
- * glm.q: Initial version of the GLM procedure.
-
-2007-06-06 Ben Pfaff <blp@gnu.org>
-
- Adapt case sources, sinks, and clients of procedure code to the
- new infrastructure.
-
- * aggregate.c: Simplify greatly since everything is more uniform
- now.
-
- * autorecode.c: Adapt to new procedure code.
- * binomial.c: Ditto.
- * chisquare.c: Ditto.
- * crosstabs.q: Ditto.
- * descriptives.c: Ditto.
- * examine.q: Ditto.
- * npar-summary.c: Ditto.
- * frequencies.q: Ditto.
- * npar.q: Ditto.
- * oneway.q: Ditto.
- * regression.q: Ditto.
- * sort-cases.c: Ditto.
- * t-test.c: Ditto.
-
- * sort-criteria.c: Rewrite to output a struct case_ordering.
-
- * flip.c: Rewrite to be a casereader.
-
- * rank.q: Simplify greatly since casereaders are much more
- flexible than what we had before.
-
-2007-05-15 Jason Stover <jhs@math.gcsu.edu>
-
- * regression.q (run_regression): Tell the user when the data
- contain no valid cases.
-
-2007-05-08 Jason Stover <jhs@math.gcsu.edu>
-
- * regression.q: Partial fix of bug which caused a crash if
- dependent variable and independent variable were the same.
-
-2007-04-16 John Darrington <john@darrington.wattle.id.au>
-
- * t-test.q: Changed the output width of reported counts and
- degrees of freedom, to avoid truncating these values. Thanks
- to Seth Woolley for reporting this problem. A proper fix involves
- re-thinking the output driver.
-
-2007-04-12 Jason Stover <jhs@math.gcsu.edu>
-
- * regression.q (run_regression): Added if (n_data >0) to fix bug
- 19581.
-
-2007-03-29 Jason Stover <jhs@math.gcsu.edu>
-
- * regression.q (prepare_data): New function.
-
- * regression.q (compute_moments): New function.
-
-2007-03-18 Ben Pfaff <blp@gnu.org>
-
- * crosstabs.q (static var write): Rename write_style to avoid
- conflict with POSIX function of same name.
-
-2007-03-16 Jason Stover <jhs@math.gcsu.edu>
-
- * regression.q (run_regression): Added support for moments.
-
-Sat Feb 17 08:16:00 2007 Ben Pfaff <blp@gnu.org>
-
- * flip.c (flip_sink_create): Improve error message when temporary
- file cannot be created.
-
-Tue Feb 6 19:58:03 2007 Ben Pfaff <blp@gnu.org>
-
- * flip.c (flip_file): Give better error message on end-of-file.
-
-2007-02-04 Jason Stover <jhs@math.gcsu.edu>
-
- * regression.q: Fixed p-value computation in the test for
- individual regression coefficients.
-
-Mon Jan 15 11:03:20 2007 Ben Pfaff <blp@gnu.org>
-
- Fix bugs found by valgrind when --enable-debug is used with the
- new case code. These bugs are hidden when the data set is small
- enough to find in memory; if a bigger data set that would overflow
- to disk were used, then data corruption would occur.
-
- * chisquare.c (create_freq_hash): Pass free_freq_mutable_hash to
- hsh_create as free function. Make copy of data put into hash.
-
- * oneway.q (free_value): New function.
- (run_oneway): Use free_value as arg to hsh_create. Make copy of
- data put into hash.
-
- * rank.q (rank_cases): Don't access data in case after we've given
- away the case.
-
-Tue Jan 9 19:16:11 2007 Ben Pfaff <blp@gnu.org>
-
- Fix bug #18739.
-
- * aggregate.c (parse_aggregate_functions) Initialize
- function_name.
-
-Fri Dec 22 14:04:09 2006 Ben Pfaff <blp@gnu.org>
-
- Simplify missing value handling.
-
- * aggregate.c (struct agr_var): Remove `bool include_missing', add
- `enum mv_class exclude'. Remove `int missing', add `bool
- saw_missing'. Update users.
-
- * descriptives.c (struct dsc_trns): Removed `int
- include_user_missing', add `enum mv_class exclude'. Update users.
- (struct dsc_proc): Ditto.
-
- * examine.q: (static var value_is_missing): Rename
- `exclude_values', change type to `enum mv_class'. Update users.
-
- * rank.q: Ditto.
-
-Fri Dec 22 19:22:18 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * frequencies.q : Fixed bug #17420, where the table bounds were overun
- when /FORMAT=nolabels was given.
-
-Wed Dec 20 18:45:31 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * binomial.c binomial.h : New files. Thanks to Jason Stover
- for assistance with these.
-
- * chisquare.c chisquare.h freq.c freq.h npar-summary.c npar-summary.h
- npar.h npar.q: New files. Implementing NPAR TESTS.
-
- * frequencies.q : Moved structure definitions into freq.[ch]
-
-Sat Dec 16 22:26:44 2006 Ben Pfaff <blp@gnu.org>
-
- Make it possible to pull cases from the active file with a
- function call, instead of requiring indirection through a callback
- function.
-
- * aggregate.c (cmd_aggregate): Take advantage of new procedure
- interface.
- (agr_to_active_file): Removed.
- (presorted_agr_to_sysfile): Removed.
-
- * autorecode.c (cmd_autorecode): Take advantage of new procedure
- interface.
- (autorecode_proc_func): Removed.
-
- * flip.c (struct flip_pgm): New members to allow conformance with
- new case_source_class interface.
- (cmd_flip): Adapt to new case_source_class interface.
- (flip_source_read): Ditto.
- (flip_source_destroy): Ditto.
-
-Sat Dec 16 12:54:27 2006 Ben Pfaff <blp@gnu.org>
-
- * rank.q (rank_custom_variables): Allow grouping variables to be
- strings. Fixes bug #18533. Thanks to John Darrington for review.
-
-Sat Dec 9 18:47:51 2006 Ben Pfaff <blp@gnu.org>
-
- * regression.q (is_depvar): Compare variable pointers instead of
- variable names.
-
-Thu Dec 7 15:26:25 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * examine.q: Allocated the categorical values for the dependent and
- independent variables, on the heap. Hence they can be of any width.
-
-Wed Dec 6 21:14:26 2006 Ben Pfaff <blp@gnu.org>
-
- * regression.q (reg_inserted): Compare variable pointers instead
- of variable indexes.
-
-Mon Dec 4 22:33:46 2006 Ben Pfaff <blp@gnu.org>
-
- * crosstabs.q (insert_summary): Use var_to_string for labeling.
- (output_pivot_table) Ditto.
- (submit) Ditto.
-
- * frequencies.q (setup_z_trns): Ditto.
- (dump_full) Ditto.
- (dump_condensed) Ditto.
- (dump_statistics) Ditto.
-
-
-Sun Nov 5 08:31:42 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * t-test.q, oneway.q: Changed to use the new casefilter structure.
-
-Sat Oct 14 16:52:28 2006 Ben Pfaff <blp@gnu.org>
-
- * rank.q: (rank_sorted_casefile) Add some missing case_destroy()
- calls to fix a memory leak.
-
-Sun Oct 8 09:45:40 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * rank.q: Plugged a small memory leak which occurred under error
- conditions.
-
-Sat Oct 7 11:06:01 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * rank.q: Implemented most of the RANK command.
-
-2006-07-14 Jason Stover <jhs@math.gcsu.edu>
-
- * regression.q (run_regression): New function to move knowledge of
- pspp_linreg_cache out of math/coefficient.[ch].
-
-Sat Jul 1 17:41:46 2006 Ben Pfaff <blp@gnu.org>
-
- Fix bug #11612, "q2c documentation does not agree with code".
-
- * examine.q: Audit use of q2c "+" prefixes that indicate that a
- command may appear multiple times.
-
- * frequencies.q: Ditto.
-
- * oneway.q: Ditto.
-
- * regression.q: Ditto.
-
- * t-test.q: Ditto.
-
-Fri Jun 23 14:18:22 2006 Ben Pfaff <blp@gnu.org>
-
- Support long string variables on FREQUENCIES, as
- an extension when in enhanced algorithms mode. For Greg Hunt
- <greg@firmansyah.com>.
-
- * frequencies.q: (struct freq) Change `v' member from union value
- to union value *. Update all references.
- (struct var_freqs) Add width, print members to represent effective
- variable width and display format.
- (calc) Copy entire long string value into the hash table.
- (frq_custom_variables) Set new width, print members.
- (hash_value_alpha) Get width from var_freqs.
- (compare_value_alpha_a) Ditto.
- (compare_freq_alpha_a) Ditto.
- (compare_freq_alpha_d) Ditto.
- (dump_full) Get display format from var_freqs.
- (dump_condensed) Ditto.
-
-Mon Jun 19 22:07:13 2006 Ben Pfaff <blp@gnu.org>
-
- * frequencies.q: (dump_full) Only put the first MAX_SHORT_STRING
- bytes of string variables into the output cells, seeing as we only
- copy that many.
- (dump_condensed) Ditto.
-
-Mon Jun 19 21:52:05 2006 Ben Pfaff <blp@gnu.org>
-
- Fixes a bug reported by Greg Hunt <greg@firmansyah.com>.
-
- * frequencies.q: (hsh_hash_bytes) We only copy the first
- MAX_SHORT_STRING bytes of string variables, so we must only
- compare that many bytes, even if the string variable is longer.
- (compare_value_alpha_a) Ditto.
- (compare_freq_alpha_a) Ditto.
- (compare_freq_alpha_d) Ditto.
-
-2006-05-11 Jason Stover <jhs@math.gcsu.edu>
-
- * regression.q: Adjusted code to account for cache->coeff being a
- pspp_linreg_coeff **.
-
-Sun May 7 18:31:25 2006 Ben Pfaff <blp@gnu.org>
-
- Fix memory leak.
-
- * aggregate.c (cmd_aggregate): Free default_dict before replacing
- it.
-
-Sun May 7 17:09:19 2006 Ben Pfaff <blp@gnu.org>
-
- * flip.c (flip_file): Check return value of pool_fclose().
-
-Sat May 6 16:00:13 2006 Ben Pfaff <blp@gnu.org>
-
- Get rid of `char *c' member in union value, for cleanliness.
-
- * aggregate.c: (union agr_argument) New union.
- (struct agr_var) Change element type of arg[] from union value to
- union agr_argument.
- (parse_aggregate_functions) Change local variable types likewise.
-
- * autorecode.c: (union arc_value) New union.
- (struct arc_item) Change "from" from union value to union
- arc_value.
- (recode) Change local variable from union value to union
- arc_value.
- (autorecode_trns_proc) Ditto.
- (compare_alpha_value) Ditto.
- (hash_alpha_value) Ditto.
- (compare_numeric_value) Ditto.
- (hash_numeric_value) Ditto.
- (autorecode_proc_func) Ditto.
-
-Sat May 6 10:43:33 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming procedure execution. In this phase, get rid of
- the output code for SPLIT FILE groups in procedure.c, which really
- shouldn't be doing any output. Move it into the individual
- procedures instead. This also adds some flexibility.
-
- * crosstabs.q (precalc): Call output_split_file_values().
-
- * descriptives.c (calc_descriptives): Ditto.
-
- * examine.q (run_examine): Ditto.
-
- * frequencies.q (precalc): Ditto.
-
- * oneway.q (run_oneway): Ditto.
-
- * regression.q (run_regression): Ditto.
-
- * t-test.q (calculate): Ditto.
-
-Wed May 3 23:05:31 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming procedure execution. In this phase, get rid of
- many global variables, consolidating procedure execution in
- procedure.c. Encapsulate transformations in new "struct
- trns_chain". Also, change implementation of N OF CASES, FILTER,
- and PROCESS IF from special cases to transformations.
-
- * aggregate.c (cmd_aggregate) Use discard_variables().
-
-2006-04-28 Jason Stover <jhs@math.gcsu.edu>
-
- * regression.q (regression_trns_resid_proc): Pass only the
- variables used in the model to (*model->residual)().
-
- * regression.q (regression_trns_pred_proc): Pass only the
- variables used in the model to (*model->pred)().
-
-2006-04-26 Jason Stover <jhs@math.gcsu.edu>
-
- * regression.q: Added support for multiple transformations.
-
- * regression.q (regression_trns_resid_proc): New function.
-
- * regression.q (regression_trns_pred_proc): New function.
-
- * regression.q (subcommand_save): Added support for saving
- predicted values.
-
- * regression.q (regression_trns_free): New function.
-
- * regression.q (reg_get_name): New function.
-
- * regression.q (reg_save_var): New function.
-
-Tue Apr 25 13:18:56 2006 Ben Pfaff <blp@gnu.org>
-
- * rank.q (parse_rank_function): Use SE instead of ME for parse
- errors.
-
-Tue Apr 25 13:16:28 2006 Ben Pfaff <blp@gnu.org>
-
- * flip.c (flip_sink_write): Use snprintf() to simplify a bit of
- code.
-
-2006-04-21 Jason Stover <jhs@math.gcsu.edu>
-
- * regression.q (try_name): New function. (Partly copied from
- try_name in descriptives.c.)
-
- * regression.q (subcommand_save): Choose residual variable names
- correctly.
-
-2006-04-20 Jason Stover <jhs@math.gcsu.edu>
-
- * regression.q (cmd_regression): Moved call to subcommand_save()
- outside multipass_procedure_with_splits().
-
- * regression.q (regression_trns_proc): Fixed value counter n_vals
- before calling *model->residual().
-
-2006-04-19 Jason Stover <jhs@math.gcsu.edu>
-
- * regression.q (regression_trns_proc): Fixed the look-up of the
- number of variables.
-
-2006-04-18 Jason Stover <jhs@math.gcsu.edu>
-
- * regression.q (regression_trns_proc): Look up the residual
- variable in the linear regression cache.
-
- * regression.q (subcommand_save): Set the residual variable in the
- linear regression cache.
-
-2006-04-17 Jason Stover <jason@wonko.gcsu.edu>
-
- * regression.q (regression_trns_proc): Accept case_idx as an int
- to match the definition of trns_proc_func.
-
-2006-04-17 Jason Stover <jhs@math.gcsu.edu>
-
- * regression.q (regression_trns_proc): New function.
-
- * regression.q (subcommand_save): Create variable residuals and
- add a transformation to assign values to them. Also free the
- linreg_cache if the SAVE command was not called. Removed the
- casereading loop. Placed actual computation of residuals in
- regression_trns_proc.
-
- * regression.q (run_regression): Moved call to free
- pspp_linreg_cache to subcommand_save.
-
-Sat Apr 15 18:01:03 2006 Ben Pfaff <blp@gnu.org>
-
- * examine.q (output_examine): Add casts to fix warnings.
-
-2006-04-07 Jason Stover <jhs@math.gcsu.edu>
-
- * regression.q (subcommand_save): New function.
-
-2006-04-04 Jason Stover <jhs@math.gcsu.edu>
-
- * regression.q: New function reg_has_categorical () to tell
- whether a pspp_linreg_struct was made with any variables of type
- ALPHA.
-
- * regression.q: (subcommand_export): Call
- reg_print_categorical_encoding() only if the model uses any
- categorical variables.
-
-Mon Mar 27 16:00:42 2006 Ben Pfaff <blp@gnu.org>
-
- * crosstabs.q: (output_pivot_table) Drop spurious space from
- message.
-
-2006-03-15 Jason Stover <jhs@math.gcsu.edu>
-
- * regression.q: Added custom syntax parser for VARIABLES subcommand
-
- * regression.q: Moved most instructions for run_regression ()
- inside the loop over dependent variables.
-
-Thu Mar 2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * Moved files from src directory
--- /dev/null
+2008-07-24 Jason H Stover <jhs@math.gcsu.edu>
+
+ * glm.q (run_glm): Dropped weight argument.
+
+2008-07-22 Jason H Stover <jhs@math.gcsu.edu>
+
+ * glm.q (run_glm): Re-written to form covariance matrix rather
+ than store entire data set in memory.
+
+ * glm.q (data_pass_one): Renamed prepare_categories() to
+ data_pass_one(). Accumulate mean and variance.
+
+2008-06-21 Jason Stover <jhs@math.gcsu.edu>
+
+ * regression.q (reg_stats_coeff): Use new accessor function
+ pspp_coeff_get_sd. Fixed bug 23567. No longer call compute_moments
+ in run_regression. Pass entire design_matrix to pspp_linreg ().
+
+2008-05-29 John Darrington <john@darrington.wattle.id.au>
+
+ * examine.q: Fixed bug where incorrect levels of dereferencing
+ were applied to pointers.
+
+2008-04-09 John Darrington <john@darrington.wattle.id.au>
+
+ * regression.q: Fix display of degrees of freedom.
+
+2008-04-08 Jason Stover <jhs@math.gcsu.edu>
+
+ * regression.q (identify_indep_vars): Don't panic unless
+ n_indep_vars is 0.
+
+2008-03-16 Ben Pfaff <blp@gnu.org>
+
+ Bug #22037. Thanks to John Darrington for reporting this bug.
+
+ * crosstabs.q (calc_general): Only the short string prefix of long
+ string variables are tabulated, so we must not copy or zero out
+ more data than that.
+
+2008-03-10 Jason Stover <jhs@math.gcsu.edu>
+
+ * regression.q (run_regression): Removed code for EXPORT
+ subcommand. Remove use of coefficient 0 as the intercept.
+
+2008-02-14 John Darrington <john@darrington.wattle.id.au>
+
+ * examine.q: Fixed counts of missing variables. Thanks to
+ Jason Stover for reporting this problem.
+
+2008-01-02 John Darrington <john@darrington.wattle.id.au>
+
+ * binomial.c chisquare.c examine.q frequencies.q oneway.q regression.q : updated
+ all users of var_get_value_name to use replacement function var_append_value_name.
+
+2007-12-07 Ben Pfaff <blp@gnu.org>
+
+ Patch #6302.
+
+ * crosstabs.q (precalc): Initialize data structures even if the
+ first case cannot be read.
+
+ * frequencies.q (precalc): Ditto.
+
+2007-11-03 Ben Pfaff <blp@gnu.org>
+
+ Allow output files to overwrite input files (bug #21280).
+
+ * aggregate.c (cmd_aggregate): Manage file handle reference
+ counts.
+
+ * correlations.q (internal_cmd_frequencies): Ditto.
+ (cor_custom_matrix): Ditto.
+
+ * regression.q (regression_custom_export): Ditto.
+ (cmd_regression): Ditto.
+
+2007-10-12 Ben Pfaff <blp@gnu.org>
+
+ * flip.c (flip_file): No need to conditionally substitute for
+ "fseeko" and "off_t" manually anymore, as gnulib takes care of it
+ for us.
+
+2007-09-21 Jason Stover <jhs@wonko.gcsu.edu>
+
+ * regression.q (run_regression): Partial fix of memory leak, bug
+ 21056.
+
+2007-09-19 Ben Pfaff <blp@gnu.org>
+
+ Fix bug #21108.
+
+ * aggregate.c (cmd_aggregate): Destroy casereader consistently,
+ even if casereader fails.
+
+ * examine.q (run_examine): Ditto.
+
+ * glm.q (run_glm): Ditto.
+
+ * oneway.q (run_oneway): Ditto.
+
+ * regression.q (run_regression): Ditto.
+
+ * t-test.q (calculate): Ditto.
+
+ * descriptives.c (calc_descriptives): Ditto. Also avoid
+ gratuitous casereader_clone.
+
+2007-09-13 Jason Stover <jhs@math.gcsu.edu>
+
+ * regression.q (cmd_regression): Move declaration of models in to
+ definition of cmd_regression.
+
+ * regression.q (run_regression): Free mom to fix memory leak.
+
+2007-09-12 Ben Pfaff <blp@gnu.org>
+
+ * crosstabs.q (postcalc): Free sorted_tab and the structures that
+ it points to, to plug a memory leak. Fixes bug #20910. Thanks to
+ John Darrington for reporting this bug and for review.
+
+2007-09-04 Ben Pfaff <blp@gnu.org>
+
+ * crosstabs.q (cmd_crosstabs): Free xtab and the structures that
+ it points to, to plug a memory leak. Fixes bug #18315.
+
+2007-08-15 Jason Stover <jhs@wonko.gcsu.edu>
+
+ * regression.q (identify_indep_vars): Print an error if dependent
+ and independent variables are the same. Fixes bug 19819.
+
+2007-08-12 Ben Pfaff <blp@gnu.org>
+
+ * flip.c: Drop use of dict_get_compacted_dict_index_to_case_index
+ and just use the ordinary case indexes. There seemed to be no
+ reason for the former method.
+
+2007-08-03 Ben Pfaff <blp@gnu.org>
+
+ * rank.q (rank_cmd): Instead of sorting by SPLIT FILE vars, group
+ by them. Fixes bug #17239.
+ Reviewed by John Darrington.
+
+2007-08-01 Ben Pfaff <blp@gnu.org>
+
+ Clean up handling of median, by treating it almost like any other
+ percentile. Fixes bug #17424. Thanks to John Darrington for
+ review.
+ * frequencies.q (internal_cmd_frequencies): Fix handling of bit
+ masks for `stats' variable. If median is selected, turn it off
+ and add a 50th percentile.
+ (add_percentile): Simplify code a little.
+ (calc_stats): Drop special casing of median.
+ (dump_statistics): Ditto, except that we label the 50th percentile
+ as "50 (Median)" to make it clear that it's also the median.
+
+2007-07-31 Ben Pfaff <blp@gnu.org>
+
+ Remove integer mode from FREQUENCIES and incidentally fix bug
+ #17421. Reviewed by John Darrington.
+ * frequencies.q (int_pool): Rename data_pool.
+ (gen_pool): Rename syntax_pool.
+ (enum FRQM_*): Removed.
+ (struct freq_tab): Removed `mode', `vector', `min', `max',
+ `out_of_range', `sysmis' members.
+ (calc): Delete support for integer mode.
+ (precalc): Ditto.
+ (postprocess_freq_tab): Ditto.
+ (cleanup_freq_tab): Ditto.
+ (frq_custom_variables): Ditto.
+
+2007-07-28 John Darrington <john@darrington.wattle.id.au>
+
+ * t-test.q: Moved the order in which groups are displayed in the
+ independent samples case, where a cut point is given.
+
+2007-07-27 Ben Pfaff <blp@gnu.org>
+
+ * regression.q (run_regression): Move casereader_destroy call so
+ that it always gets called, not just if there was some valid
+ data. Fixes bug #19581.
+ Reviewed by Jason Stover.
+
+2007-07-24 Ben Pfaff <blp@gnu.org>
+
+ * flip.c (struct flip_pgm): Remove `case_size' member (now
+ unused).
+ (cmd_flip): Pass var_cnt as number of cases instead of case_cnt,
+ to fix bug #20494. Don't assign to `case_size' member, which was
+ unused after assignment.
+ (build_dictionary): When NEWNAMES not used, get the number of
+ variables right, to fix bug #20493.
+
+2007-07-10 Jason Stover <jhs@math.gcsu.edu>
+
+ * glm.q: Initial version of the GLM procedure.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ Adapt case sources, sinks, and clients of procedure code to the
+ new infrastructure.
+
+ * aggregate.c: Simplify greatly since everything is more uniform
+ now.
+
+ * autorecode.c: Adapt to new procedure code.
+ * binomial.c: Ditto.
+ * chisquare.c: Ditto.
+ * crosstabs.q: Ditto.
+ * descriptives.c: Ditto.
+ * examine.q: Ditto.
+ * npar-summary.c: Ditto.
+ * frequencies.q: Ditto.
+ * npar.q: Ditto.
+ * oneway.q: Ditto.
+ * regression.q: Ditto.
+ * sort-cases.c: Ditto.
+ * t-test.c: Ditto.
+
+ * sort-criteria.c: Rewrite to output a struct case_ordering.
+
+ * flip.c: Rewrite to be a casereader.
+
+ * rank.q: Simplify greatly since casereaders are much more
+ flexible than what we had before.
+
+2007-05-15 Jason Stover <jhs@math.gcsu.edu>
+
+ * regression.q (run_regression): Tell the user when the data
+ contain no valid cases.
+
+2007-05-08 Jason Stover <jhs@math.gcsu.edu>
+
+ * regression.q: Partial fix of bug which caused a crash if
+ dependent variable and independent variable were the same.
+
+2007-04-16 John Darrington <john@darrington.wattle.id.au>
+
+ * t-test.q: Changed the output width of reported counts and
+ degrees of freedom, to avoid truncating these values. Thanks
+ to Seth Woolley for reporting this problem. A proper fix involves
+ re-thinking the output driver.
+
+2007-04-12 Jason Stover <jhs@math.gcsu.edu>
+
+ * regression.q (run_regression): Added if (n_data >0) to fix bug
+ 19581.
+
+2007-03-29 Jason Stover <jhs@math.gcsu.edu>
+
+ * regression.q (prepare_data): New function.
+
+ * regression.q (compute_moments): New function.
+
+2007-03-18 Ben Pfaff <blp@gnu.org>
+
+ * crosstabs.q (static var write): Rename write_style to avoid
+ conflict with POSIX function of same name.
+
+2007-03-16 Jason Stover <jhs@math.gcsu.edu>
+
+ * regression.q (run_regression): Added support for moments.
+
+Sat Feb 17 08:16:00 2007 Ben Pfaff <blp@gnu.org>
+
+ * flip.c (flip_sink_create): Improve error message when temporary
+ file cannot be created.
+
+Tue Feb 6 19:58:03 2007 Ben Pfaff <blp@gnu.org>
+
+ * flip.c (flip_file): Give better error message on end-of-file.
+
+2007-02-04 Jason Stover <jhs@math.gcsu.edu>
+
+ * regression.q: Fixed p-value computation in the test for
+ individual regression coefficients.
+
+Mon Jan 15 11:03:20 2007 Ben Pfaff <blp@gnu.org>
+
+ Fix bugs found by valgrind when --enable-debug is used with the
+ new case code. These bugs are hidden when the data set is small
+ enough to find in memory; if a bigger data set that would overflow
+ to disk were used, then data corruption would occur.
+
+ * chisquare.c (create_freq_hash): Pass free_freq_mutable_hash to
+ hsh_create as free function. Make copy of data put into hash.
+
+ * oneway.q (free_value): New function.
+ (run_oneway): Use free_value as arg to hsh_create. Make copy of
+ data put into hash.
+
+ * rank.q (rank_cases): Don't access data in case after we've given
+ away the case.
+
+Tue Jan 9 19:16:11 2007 Ben Pfaff <blp@gnu.org>
+
+ Fix bug #18739.
+
+ * aggregate.c (parse_aggregate_functions) Initialize
+ function_name.
+
+Fri Dec 22 14:04:09 2006 Ben Pfaff <blp@gnu.org>
+
+ Simplify missing value handling.
+
+ * aggregate.c (struct agr_var): Remove `bool include_missing', add
+ `enum mv_class exclude'. Remove `int missing', add `bool
+ saw_missing'. Update users.
+
+ * descriptives.c (struct dsc_trns): Removed `int
+ include_user_missing', add `enum mv_class exclude'. Update users.
+ (struct dsc_proc): Ditto.
+
+ * examine.q: (static var value_is_missing): Rename
+ `exclude_values', change type to `enum mv_class'. Update users.
+
+ * rank.q: Ditto.
+
+Fri Dec 22 19:22:18 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * frequencies.q : Fixed bug #17420, where the table bounds were overun
+ when /FORMAT=nolabels was given.
+
+Wed Dec 20 18:45:31 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * binomial.c binomial.h : New files. Thanks to Jason Stover
+ for assistance with these.
+
+ * chisquare.c chisquare.h freq.c freq.h npar-summary.c npar-summary.h
+ npar.h npar.q: New files. Implementing NPAR TESTS.
+
+ * frequencies.q : Moved structure definitions into freq.[ch]
+
+Sat Dec 16 22:26:44 2006 Ben Pfaff <blp@gnu.org>
+
+ Make it possible to pull cases from the active file with a
+ function call, instead of requiring indirection through a callback
+ function.
+
+ * aggregate.c (cmd_aggregate): Take advantage of new procedure
+ interface.
+ (agr_to_active_file): Removed.
+ (presorted_agr_to_sysfile): Removed.
+
+ * autorecode.c (cmd_autorecode): Take advantage of new procedure
+ interface.
+ (autorecode_proc_func): Removed.
+
+ * flip.c (struct flip_pgm): New members to allow conformance with
+ new case_source_class interface.
+ (cmd_flip): Adapt to new case_source_class interface.
+ (flip_source_read): Ditto.
+ (flip_source_destroy): Ditto.
+
+Sat Dec 16 12:54:27 2006 Ben Pfaff <blp@gnu.org>
+
+ * rank.q (rank_custom_variables): Allow grouping variables to be
+ strings. Fixes bug #18533. Thanks to John Darrington for review.
+
+Sat Dec 9 18:47:51 2006 Ben Pfaff <blp@gnu.org>
+
+ * regression.q (is_depvar): Compare variable pointers instead of
+ variable names.
+
+Thu Dec 7 15:26:25 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * examine.q: Allocated the categorical values for the dependent and
+ independent variables, on the heap. Hence they can be of any width.
+
+Wed Dec 6 21:14:26 2006 Ben Pfaff <blp@gnu.org>
+
+ * regression.q (reg_inserted): Compare variable pointers instead
+ of variable indexes.
+
+Mon Dec 4 22:33:46 2006 Ben Pfaff <blp@gnu.org>
+
+ * crosstabs.q (insert_summary): Use var_to_string for labeling.
+ (output_pivot_table) Ditto.
+ (submit) Ditto.
+
+ * frequencies.q (setup_z_trns): Ditto.
+ (dump_full) Ditto.
+ (dump_condensed) Ditto.
+ (dump_statistics) Ditto.
+
+
+Sun Nov 5 08:31:42 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * t-test.q, oneway.q: Changed to use the new casefilter structure.
+
+Sat Oct 14 16:52:28 2006 Ben Pfaff <blp@gnu.org>
+
+ * rank.q: (rank_sorted_casefile) Add some missing case_destroy()
+ calls to fix a memory leak.
+
+Sun Oct 8 09:45:40 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * rank.q: Plugged a small memory leak which occurred under error
+ conditions.
+
+Sat Oct 7 11:06:01 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * rank.q: Implemented most of the RANK command.
+
+2006-07-14 Jason Stover <jhs@math.gcsu.edu>
+
+ * regression.q (run_regression): New function to move knowledge of
+ pspp_linreg_cache out of math/coefficient.[ch].
+
+Sat Jul 1 17:41:46 2006 Ben Pfaff <blp@gnu.org>
+
+ Fix bug #11612, "q2c documentation does not agree with code".
+
+ * examine.q: Audit use of q2c "+" prefixes that indicate that a
+ command may appear multiple times.
+
+ * frequencies.q: Ditto.
+
+ * oneway.q: Ditto.
+
+ * regression.q: Ditto.
+
+ * t-test.q: Ditto.
+
+Fri Jun 23 14:18:22 2006 Ben Pfaff <blp@gnu.org>
+
+ Support long string variables on FREQUENCIES, as
+ an extension when in enhanced algorithms mode. For Greg Hunt
+ <greg@firmansyah.com>.
+
+ * frequencies.q: (struct freq) Change `v' member from union value
+ to union value *. Update all references.
+ (struct var_freqs) Add width, print members to represent effective
+ variable width and display format.
+ (calc) Copy entire long string value into the hash table.
+ (frq_custom_variables) Set new width, print members.
+ (hash_value_alpha) Get width from var_freqs.
+ (compare_value_alpha_a) Ditto.
+ (compare_freq_alpha_a) Ditto.
+ (compare_freq_alpha_d) Ditto.
+ (dump_full) Get display format from var_freqs.
+ (dump_condensed) Ditto.
+
+Mon Jun 19 22:07:13 2006 Ben Pfaff <blp@gnu.org>
+
+ * frequencies.q: (dump_full) Only put the first MAX_SHORT_STRING
+ bytes of string variables into the output cells, seeing as we only
+ copy that many.
+ (dump_condensed) Ditto.
+
+Mon Jun 19 21:52:05 2006 Ben Pfaff <blp@gnu.org>
+
+ Fixes a bug reported by Greg Hunt <greg@firmansyah.com>.
+
+ * frequencies.q: (hsh_hash_bytes) We only copy the first
+ MAX_SHORT_STRING bytes of string variables, so we must only
+ compare that many bytes, even if the string variable is longer.
+ (compare_value_alpha_a) Ditto.
+ (compare_freq_alpha_a) Ditto.
+ (compare_freq_alpha_d) Ditto.
+
+2006-05-11 Jason Stover <jhs@math.gcsu.edu>
+
+ * regression.q: Adjusted code to account for cache->coeff being a
+ pspp_linreg_coeff **.
+
+Sun May 7 18:31:25 2006 Ben Pfaff <blp@gnu.org>
+
+ Fix memory leak.
+
+ * aggregate.c (cmd_aggregate): Free default_dict before replacing
+ it.
+
+Sun May 7 17:09:19 2006 Ben Pfaff <blp@gnu.org>
+
+ * flip.c (flip_file): Check return value of pool_fclose().
+
+Sat May 6 16:00:13 2006 Ben Pfaff <blp@gnu.org>
+
+ Get rid of `char *c' member in union value, for cleanliness.
+
+ * aggregate.c: (union agr_argument) New union.
+ (struct agr_var) Change element type of arg[] from union value to
+ union agr_argument.
+ (parse_aggregate_functions) Change local variable types likewise.
+
+ * autorecode.c: (union arc_value) New union.
+ (struct arc_item) Change "from" from union value to union
+ arc_value.
+ (recode) Change local variable from union value to union
+ arc_value.
+ (autorecode_trns_proc) Ditto.
+ (compare_alpha_value) Ditto.
+ (hash_alpha_value) Ditto.
+ (compare_numeric_value) Ditto.
+ (hash_numeric_value) Ditto.
+ (autorecode_proc_func) Ditto.
+
+Sat May 6 10:43:33 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming procedure execution. In this phase, get rid of
+ the output code for SPLIT FILE groups in procedure.c, which really
+ shouldn't be doing any output. Move it into the individual
+ procedures instead. This also adds some flexibility.
+
+ * crosstabs.q (precalc): Call output_split_file_values().
+
+ * descriptives.c (calc_descriptives): Ditto.
+
+ * examine.q (run_examine): Ditto.
+
+ * frequencies.q (precalc): Ditto.
+
+ * oneway.q (run_oneway): Ditto.
+
+ * regression.q (run_regression): Ditto.
+
+ * t-test.q (calculate): Ditto.
+
+Wed May 3 23:05:31 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming procedure execution. In this phase, get rid of
+ many global variables, consolidating procedure execution in
+ procedure.c. Encapsulate transformations in new "struct
+ trns_chain". Also, change implementation of N OF CASES, FILTER,
+ and PROCESS IF from special cases to transformations.
+
+ * aggregate.c (cmd_aggregate) Use discard_variables().
+
+2006-04-28 Jason Stover <jhs@math.gcsu.edu>
+
+ * regression.q (regression_trns_resid_proc): Pass only the
+ variables used in the model to (*model->residual)().
+
+ * regression.q (regression_trns_pred_proc): Pass only the
+ variables used in the model to (*model->pred)().
+
+2006-04-26 Jason Stover <jhs@math.gcsu.edu>
+
+ * regression.q: Added support for multiple transformations.
+
+ * regression.q (regression_trns_resid_proc): New function.
+
+ * regression.q (regression_trns_pred_proc): New function.
+
+ * regression.q (subcommand_save): Added support for saving
+ predicted values.
+
+ * regression.q (regression_trns_free): New function.
+
+ * regression.q (reg_get_name): New function.
+
+ * regression.q (reg_save_var): New function.
+
+Tue Apr 25 13:18:56 2006 Ben Pfaff <blp@gnu.org>
+
+ * rank.q (parse_rank_function): Use SE instead of ME for parse
+ errors.
+
+Tue Apr 25 13:16:28 2006 Ben Pfaff <blp@gnu.org>
+
+ * flip.c (flip_sink_write): Use snprintf() to simplify a bit of
+ code.
+
+2006-04-21 Jason Stover <jhs@math.gcsu.edu>
+
+ * regression.q (try_name): New function. (Partly copied from
+ try_name in descriptives.c.)
+
+ * regression.q (subcommand_save): Choose residual variable names
+ correctly.
+
+2006-04-20 Jason Stover <jhs@math.gcsu.edu>
+
+ * regression.q (cmd_regression): Moved call to subcommand_save()
+ outside multipass_procedure_with_splits().
+
+ * regression.q (regression_trns_proc): Fixed value counter n_vals
+ before calling *model->residual().
+
+2006-04-19 Jason Stover <jhs@math.gcsu.edu>
+
+ * regression.q (regression_trns_proc): Fixed the look-up of the
+ number of variables.
+
+2006-04-18 Jason Stover <jhs@math.gcsu.edu>
+
+ * regression.q (regression_trns_proc): Look up the residual
+ variable in the linear regression cache.
+
+ * regression.q (subcommand_save): Set the residual variable in the
+ linear regression cache.
+
+2006-04-17 Jason Stover <jason@wonko.gcsu.edu>
+
+ * regression.q (regression_trns_proc): Accept case_idx as an int
+ to match the definition of trns_proc_func.
+
+2006-04-17 Jason Stover <jhs@math.gcsu.edu>
+
+ * regression.q (regression_trns_proc): New function.
+
+ * regression.q (subcommand_save): Create variable residuals and
+ add a transformation to assign values to them. Also free the
+ linreg_cache if the SAVE command was not called. Removed the
+ casereading loop. Placed actual computation of residuals in
+ regression_trns_proc.
+
+ * regression.q (run_regression): Moved call to free
+ pspp_linreg_cache to subcommand_save.
+
+Sat Apr 15 18:01:03 2006 Ben Pfaff <blp@gnu.org>
+
+ * examine.q (output_examine): Add casts to fix warnings.
+
+2006-04-07 Jason Stover <jhs@math.gcsu.edu>
+
+ * regression.q (subcommand_save): New function.
+
+2006-04-04 Jason Stover <jhs@math.gcsu.edu>
+
+ * regression.q: New function reg_has_categorical () to tell
+ whether a pspp_linreg_struct was made with any variables of type
+ ALPHA.
+
+ * regression.q: (subcommand_export): Call
+ reg_print_categorical_encoding() only if the model uses any
+ categorical variables.
+
+Mon Mar 27 16:00:42 2006 Ben Pfaff <blp@gnu.org>
+
+ * crosstabs.q: (output_pivot_table) Drop spurious space from
+ message.
+
+2006-03-15 Jason Stover <jhs@math.gcsu.edu>
+
+ * regression.q: Added custom syntax parser for VARIABLES subcommand
+
+ * regression.q: Moved most instructions for run_regression ()
+ inside the loop over dependent variables.
+
+Thu Mar 2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * Moved files from src directory
EXTRA_DIST += $(src_language_stats_built_sources:.c=.q)
CLEANFILES += $(src_language_stats_built_sources)
+EXTRA_DIST += src/language/stats/OChangeLog
+++ /dev/null
-2008-03-04 Ben Pfaff <blp@gnu.org>
-
- Patch #6441. Reviewed by John Darrington.
-
- * automake.mk: Add new file.
-
- * format-guesser-test.c: New file.
-
-2007-09-22 Ben Pfaff <blp@gnu.org>
-
- Bug #21128. Reviewed by John Darrington.
-
- * automake.mk: Add new file.
-
- * paper-size.c: New file.
-
-2007-06-06 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Add new file.
-
- * datasheet-test.c: New file.
-
-2007-04-22 Ben Pfaff <blp@gnu.org>
-
- Implement model checker for testing purposes.
-
- Patch #5873.
-
- * automake.mk: Add check-model.[ch].
-
- * check-model.h: New file.
-
- * check-model.q: New file.
-
-Thu Oct 26 20:19:19 2006 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Add float-format.c.
-
- * float-format.c: New file.
-
-Sat Oct 14 16:21:45 2006 Ben Pfaff <blp@gnu.org>
-
- * casefile-test.c: (test_casereader_clone) Free cases that we
- read, to avoid memory leak.
-
-Tue Jun 6 18:48:00 2006 Ben Pfaff <blp@gnu.org>
-
- * casefile-test.c: (test_casefile) Test the new casereader_seek()
- function.
-
-Thu Mar 2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * Moved files from src directory
--- /dev/null
+2008-03-04 Ben Pfaff <blp@gnu.org>
+
+ Patch #6441. Reviewed by John Darrington.
+
+ * automake.mk: Add new file.
+
+ * format-guesser-test.c: New file.
+
+2007-09-22 Ben Pfaff <blp@gnu.org>
+
+ Bug #21128. Reviewed by John Darrington.
+
+ * automake.mk: Add new file.
+
+ * paper-size.c: New file.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Add new file.
+
+ * datasheet-test.c: New file.
+
+2007-04-22 Ben Pfaff <blp@gnu.org>
+
+ Implement model checker for testing purposes.
+
+ Patch #5873.
+
+ * automake.mk: Add check-model.[ch].
+
+ * check-model.h: New file.
+
+ * check-model.q: New file.
+
+Thu Oct 26 20:19:19 2006 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Add float-format.c.
+
+ * float-format.c: New file.
+
+Sat Oct 14 16:21:45 2006 Ben Pfaff <blp@gnu.org>
+
+ * casefile-test.c: (test_casereader_clone) Free cases that we
+ read, to avoid memory leak.
+
+Tue Jun 6 18:48:00 2006 Ben Pfaff <blp@gnu.org>
+
+ * casefile-test.c: (test_casefile) Test the new casereader_seek()
+ function.
+
+Thu Mar 2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * Moved files from src directory
all_q_sources += $(language_tests_built_sources:.c=.q)
EXTRA_DIST += $(language_tests_built_sources:.c=.q)
CLEANFILES += $(language_tests_built_sources)
+
+EXTRA_DIST += src/language/tests/OChangeLog
+++ /dev/null
-2007-09-16 Ben Pfaff <blp@gnu.org>
-
- * set.q (show_warranty): Use fputs to print lack-of-warranty
- statement, instead of msg. This is because msg now outputs the
- message to output devices, and the output subsystem is not
- prepared to deal with table cells that exceed one page in length.
- Thanks to John Darrington for bug report and review. Bug #21093.
- (show_copying) Ditto.
-
-2007-08-16 Ben Pfaff <blp@gnu.org>
-
- Implement journaling. Bug #17240.
-
- * set.q: Add LOG subcommand as synonym for JOURNAL.
- (stc_custom_journal): Implement.
- (stc_custom_log): New function.
-
-2007-05-06 Ben Pfaff <blp@gnu.org>
-
- Abstract the documents within a dictionary a little better.
- Thanks to John Darrington for suggestion, initial version, and
- review. Patch #5917.
-
- * title.c (add_document_line): Removed.
- (add_document_trailer): New function.
- (cmd_document): Rewrite to yield SPSS-like output and to use the
- updated document API.
- (cmd_add_documents): Ditto.
-
-2007-05-03 John Darrington <john@darrington.wattle.id.au>
-
- * title.c: Implemented ADD DOCUMENT command.
-
-Sun Nov 19 09:21:39 2006 Ben Pfaff <blp@gnu.org>
-
- * set.q: Add RIB, RRB settings to control binary formats used by
- data_out.
- (cmd_set) Implement SET RIB, RRB.
- (show_rib) New function.
- (show_rrb) New function.
- (static var show_table[]) Add SHOW RIB, RRB.
-
-Sat Nov 4 16:05:47 2006 Ben Pfaff <blp@gnu.org>
-
- * set.q: Add WIB, WRB settings to control binary formats used by
- data_out.
- (cmd_set) Implement SET WIB, WRB.
- (stc_to_integer_format) New function.
- (stc_to_float_format) New function.
- (show_integer_format) New function.
- (show_float_format) New function.
- (show_wib) New function.
- (show_wrb) New function.
- (static var show_table[]) Add SHOW WIB, WRB.
-
-Sat Nov 4 11:48:23 2006 Ben Pfaff <blp@gnu.org>
-
- * set.q: Update ERRORS, MESSAGES, RESULTS command syntax.
- (cmd_set) Handle ERRORS command.
- (show_errors) New function.
- (var show_table[]) Add ERRORS to the table.
-
-Tue Oct 31 20:10:24 2006 Ben Pfaff <blp@gnu.org>
-
- * set.q (cmd_set): Drop the `ok' variable, which didn't do
- anything useful.
- (extract_cc_token) Adapt to new fmt_number_style.
- (do_cc) Ditto.
- (format_cc) Ditto.
- (show_cc) Change parameter to be an enum fmt_type. Adjust all
- callers.
-
-Wed Apr 26 15:06:22 2006 Ben Pfaff <blp@gnu.org>
-
- * set.q: Use SN instead of MN for most output from SHOW, because
- the output is tied to the SHOW command that caused it.
-
-Tue Apr 25 13:21:12 2006 Ben Pfaff <blp@gnu.org>
-
- * permissions.c (change_permissions): Use SE instead of ME for
- errors associated with a syntax file command.
-
-Thu Mar 2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * Moved files from src directory
--- /dev/null
+2007-09-16 Ben Pfaff <blp@gnu.org>
+
+ * set.q (show_warranty): Use fputs to print lack-of-warranty
+ statement, instead of msg. This is because msg now outputs the
+ message to output devices, and the output subsystem is not
+ prepared to deal with table cells that exceed one page in length.
+ Thanks to John Darrington for bug report and review. Bug #21093.
+ (show_copying) Ditto.
+
+2007-08-16 Ben Pfaff <blp@gnu.org>
+
+ Implement journaling. Bug #17240.
+
+ * set.q: Add LOG subcommand as synonym for JOURNAL.
+ (stc_custom_journal): Implement.
+ (stc_custom_log): New function.
+
+2007-05-06 Ben Pfaff <blp@gnu.org>
+
+ Abstract the documents within a dictionary a little better.
+ Thanks to John Darrington for suggestion, initial version, and
+ review. Patch #5917.
+
+ * title.c (add_document_line): Removed.
+ (add_document_trailer): New function.
+ (cmd_document): Rewrite to yield SPSS-like output and to use the
+ updated document API.
+ (cmd_add_documents): Ditto.
+
+2007-05-03 John Darrington <john@darrington.wattle.id.au>
+
+ * title.c: Implemented ADD DOCUMENT command.
+
+Sun Nov 19 09:21:39 2006 Ben Pfaff <blp@gnu.org>
+
+ * set.q: Add RIB, RRB settings to control binary formats used by
+ data_out.
+ (cmd_set) Implement SET RIB, RRB.
+ (show_rib) New function.
+ (show_rrb) New function.
+ (static var show_table[]) Add SHOW RIB, RRB.
+
+Sat Nov 4 16:05:47 2006 Ben Pfaff <blp@gnu.org>
+
+ * set.q: Add WIB, WRB settings to control binary formats used by
+ data_out.
+ (cmd_set) Implement SET WIB, WRB.
+ (stc_to_integer_format) New function.
+ (stc_to_float_format) New function.
+ (show_integer_format) New function.
+ (show_float_format) New function.
+ (show_wib) New function.
+ (show_wrb) New function.
+ (static var show_table[]) Add SHOW WIB, WRB.
+
+Sat Nov 4 11:48:23 2006 Ben Pfaff <blp@gnu.org>
+
+ * set.q: Update ERRORS, MESSAGES, RESULTS command syntax.
+ (cmd_set) Handle ERRORS command.
+ (show_errors) New function.
+ (var show_table[]) Add ERRORS to the table.
+
+Tue Oct 31 20:10:24 2006 Ben Pfaff <blp@gnu.org>
+
+ * set.q (cmd_set): Drop the `ok' variable, which didn't do
+ anything useful.
+ (extract_cc_token) Adapt to new fmt_number_style.
+ (do_cc) Ditto.
+ (format_cc) Ditto.
+ (show_cc) Change parameter to be an enum fmt_type. Adjust all
+ callers.
+
+Wed Apr 26 15:06:22 2006 Ben Pfaff <blp@gnu.org>
+
+ * set.q: Use SN instead of MN for most output from SHOW, because
+ the output is tied to the SHOW command that caused it.
+
+Tue Apr 25 13:21:12 2006 Ben Pfaff <blp@gnu.org>
+
+ * permissions.c (change_permissions): Use SE instead of ME for
+ errors associated with a syntax file command.
+
+Thu Mar 2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * Moved files from src directory
EXTRA_DIST += $(src_language_utilities_built_sources:.c=.q)
CLEANFILES += $(src_language_utilities_built_sources)
+
+EXTRA_DIST += src/language/utilities/OChangeLog
+++ /dev/null
-2007-04-16 Ben Pfaff <blp@gnu.org>
-
- * recode.c (parse_map_in): Improve error message when user
- attempts to use THRU with string variables.
- Suggested by seth@swoolley.homeip.net.
-
-2007-04-15 Ben Pfaff <blp@gnu.org>
-
- * recode.c (parse_mappings): Initialize "out" member of mapping
- for CONVERT, fixing an uninitialized data bug.
-
-2007-04-15 Ben Pfaff <blp@gnu.org>
-
- * recode.c (enlarge_dst_widths): Source isn't null-terminated, so
- don't pretend it is.
- (var_is_num_missing): MISSING should include system-missing values
- too.
-
-Thu Feb 1 16:51:16 2007 Ben Pfaff <blp@gnu.org>
-
- * recode.c (find_src_numeric): Handle MAP_SYSMIS case, which was
- carelessly overlooked until now. Fixes bug #18917. Thanks to
- John Darrington for bug report and review.
-
-Sat Dec 9 18:48:20 2006 Ben Pfaff <blp@gnu.org>
-
- * compute.c (struct compute_trns): Remove `fv' member, which was
- redundant with `variable'.
-
-Thu Nov 30 22:46:50 2006 Ben Pfaff <blp@gnu.org>
-
- * compute.c: Fix bug #17422, which reports that a variable created
- by assignment in a COMPUTE command could not be used in the
- computation expression.
- (struct lvalue) Drop `var_name' member in favor of `variable'
- pointer. Add `is_new_variable' member to allow us to know whether
- to delete the variable at destruction time, in case of an error.
- (lvalue_parse) Create variable whose name is specified, if it does
- not already exist, as a numeric variable.
- (lvalue_get_type) Rewrite to work with revised lvalue structure.
- New `dict' parameter, which propagates back up its call chain.
- (lvalue_finalize) No need to create variable here since we did so
- at parse time.
- (lvalue_destroy) Destroy variable if `is_new_variable' set.
-
-Sat Oct 7 11:04:01 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * automake.mk fail.c: Added a debug transformation which always fails.
-
-Sat May 6 16:02:55 2006 Ben Pfaff <blp@gnu.org>
-
- Get rid of `char *c' member in union value, for cleanliness.
-
- * recode.c: (union recode_value) New union.
- (struct map_in) Change x, y types to union recode_value.
- (struct map_out) Change value type to union recode_value.
- (find_src_string) Wrap data_in() call so it uses a real `union
- value'.
-
-Sat May 6 14:08:42 2006 Ben Pfaff <blp@gnu.org>
-
- * select-if.c (cmd_filter): Make FILTER without any further
- keywords turn off filtering, with a warning, for compatibility.
- Change errors from cascading failures to ordinary failures. Check
- for command terminator.
-
-Sat May 6 13:25:57 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming procedure execution. In this phase, remove
- PROCESS IF, which was deprecated anyway and can be easily
- simulated with TEMPORARY followed by SELECT IF.
-
- * select-if.c (cmd_process_if): Removed.
- (global var process_if_expr) Removed, along with all references
- globally.
-
-Tue Apr 25 13:23:25 2006 Ben Pfaff <blp@gnu.org>
-
- * select-if.c (cmd_process_if): Use SW instead of MW for warning
- associated with a syntax file command.
-
-Thu Mar 2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * Moved files from src directory
--- /dev/null
+2007-04-16 Ben Pfaff <blp@gnu.org>
+
+ * recode.c (parse_map_in): Improve error message when user
+ attempts to use THRU with string variables.
+ Suggested by seth@swoolley.homeip.net.
+
+2007-04-15 Ben Pfaff <blp@gnu.org>
+
+ * recode.c (parse_mappings): Initialize "out" member of mapping
+ for CONVERT, fixing an uninitialized data bug.
+
+2007-04-15 Ben Pfaff <blp@gnu.org>
+
+ * recode.c (enlarge_dst_widths): Source isn't null-terminated, so
+ don't pretend it is.
+ (var_is_num_missing): MISSING should include system-missing values
+ too.
+
+Thu Feb 1 16:51:16 2007 Ben Pfaff <blp@gnu.org>
+
+ * recode.c (find_src_numeric): Handle MAP_SYSMIS case, which was
+ carelessly overlooked until now. Fixes bug #18917. Thanks to
+ John Darrington for bug report and review.
+
+Sat Dec 9 18:48:20 2006 Ben Pfaff <blp@gnu.org>
+
+ * compute.c (struct compute_trns): Remove `fv' member, which was
+ redundant with `variable'.
+
+Thu Nov 30 22:46:50 2006 Ben Pfaff <blp@gnu.org>
+
+ * compute.c: Fix bug #17422, which reports that a variable created
+ by assignment in a COMPUTE command could not be used in the
+ computation expression.
+ (struct lvalue) Drop `var_name' member in favor of `variable'
+ pointer. Add `is_new_variable' member to allow us to know whether
+ to delete the variable at destruction time, in case of an error.
+ (lvalue_parse) Create variable whose name is specified, if it does
+ not already exist, as a numeric variable.
+ (lvalue_get_type) Rewrite to work with revised lvalue structure.
+ New `dict' parameter, which propagates back up its call chain.
+ (lvalue_finalize) No need to create variable here since we did so
+ at parse time.
+ (lvalue_destroy) Destroy variable if `is_new_variable' set.
+
+Sat Oct 7 11:04:01 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * automake.mk fail.c: Added a debug transformation which always fails.
+
+Sat May 6 16:02:55 2006 Ben Pfaff <blp@gnu.org>
+
+ Get rid of `char *c' member in union value, for cleanliness.
+
+ * recode.c: (union recode_value) New union.
+ (struct map_in) Change x, y types to union recode_value.
+ (struct map_out) Change value type to union recode_value.
+ (find_src_string) Wrap data_in() call so it uses a real `union
+ value'.
+
+Sat May 6 14:08:42 2006 Ben Pfaff <blp@gnu.org>
+
+ * select-if.c (cmd_filter): Make FILTER without any further
+ keywords turn off filtering, with a warning, for compatibility.
+ Change errors from cascading failures to ordinary failures. Check
+ for command terminator.
+
+Sat May 6 13:25:57 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming procedure execution. In this phase, remove
+ PROCESS IF, which was deprecated anyway and can be easily
+ simulated with TEMPORARY followed by SELECT IF.
+
+ * select-if.c (cmd_process_if): Removed.
+ (global var process_if_expr) Removed, along with all references
+ globally.
+
+Tue Apr 25 13:23:25 2006 Ben Pfaff <blp@gnu.org>
+
+ * select-if.c (cmd_process_if): Use SW instead of MW for warning
+ associated with a syntax file command.
+
+Thu Mar 2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * Moved files from src directory
src/language/xforms/sample.c \
src/language/xforms/recode.c \
src/language/xforms/select-if.c
+
+EXTRA_DIST += src/language/xforms/OChangeLog
+++ /dev/null
-2008-05-15 Ben Pfaff <blp@gnu.org>
-
- Patch #6512.
-
- * hash.c (hsh_hash_int): Use gsl_isnan instead of isnan, as a
- stopgap measure for portability until appropriate gnulib modules
- are available.
-
- * misc.h (macro isinf): Remove implementations of isinf, isnan,
- and finite, because they were not effective and we are now using
- the equivalent GSL functions.
-
-2008-03-04 Ben Pfaff <blp@gnu.org>
-
- Patch #6427. Reviewed by John Darrington.
-
- * automake.mk: Remove moved files.
-
- * syntax-gen.c: Moved to src/ui (and rewritten).
-
- * syntax-gen.h: Ditto.
-
-2008-03-04 Ben Pfaff <blp@gnu.org>
-
- Patch #6441. Reviewed by John Darrington.
-
- * str.c (ss_match_char_in): New function.
-
-2008-02-18 Ben Pfaff <blp@gnu.org>
-
- Patch #6426. Thanks to John Darrington for review.
-
- * str.c (ds_read_line): Add argument to limit the length of the
- line to be read. Update all callers.
-
-2008-02-01 Ben Pfaff <blp@gnu.org>
-
- Patch #6386. Thanks to John Darrington for review.
-
- * str.c (str_format_26adic): New function.
-
-2007-12-24 John Darrington <john@darrington.wattle.id.au>
-
- * taint.c (taint_destroy): Return true if pointer is null.
-
-2007-11-25 Ben Pfaff <blp@gnu.org>
-
- * float-format.c (assemble_number): Only store 32 bits for Z short
- format. Partial fix for bug #21590.
-
-2007-11-08 Ben Pfaff <blp@gnu.org>
-
- * str.c (ds_read_stream): Change return value semantics to be more
- useful. Update all users.
-
-2007-11-03 John Darrington <john@darrington.wattle.id.au>
-
- * i18n.c i18n.h: Added convertor from UTF8 to system.
- This is needed for reading gnumeric files (and possibly others).
-
-2007-10-11 Ben Pfaff <blp@gnu.org>
-
- * xalloc.h: Removed. Changed all users to include "xalloc.h" from
- gnulib instead.
-
- * xalloc.c: Removed.
-
-2007-10-11 Ben Pfaff <blp@gnu.org>
-
- * alloc.h (local_alloc): Removed. Changed all users to use
- xmalloca instead.
- (local_free): Removed. Changed all users to use freea instead.
-
-2007-10-11 Ben Pfaff <blp@gnu.org>
-
- * float-format.c (float_get_lowest): New function.
-
- * magic.c: Removed.
-
- * magic.h: Removed. Changed all references to NOT_INT,
- NOT_DOUBLE, and NOT_LONG to use other constants. Changed
- references to second_lowest_value to call float_get_lowest.
-
-2007-10-10 Ben Pfaff <blp@gnu.org>
-
- We assume IEEE-754 now.
-
- * float-format.h (enum float_format): Don't check for
- FPREP_IEEE754 macro any longer.
-
- * magic.h: Ditto.
-
-2007-09-16 Ben Pfaff <blp@gnu.org>
-
- * copyleft.c: Add trailing new-lines to lack-of-warranty
- statement.
-
-2007-09-05 John Darrington <john@darrington.wattle.id.au>
-
- * getl.c: Add extra members to struct getl_source, to maintain the
- error mode and the syntax_mode.
-
-2007-07-25 Ben Pfaff <blp@gnu.org>
-
- * getl.c (getl_append_source): Add source to *end* of list.
- Otherwise the list ends up in reverse order.
-
- * automake.mk (src/libpspp/version.c): Use $HOME instead of ~ in
- paths. We don't interpolate ~.
-
-2007-07-22 Ben Pfaff <blp@gnu.org>
-
- * str.h: Include xstrndup.h also.
-
- * float-format.c (float_get_double): New function.
-
-2007-07-06 Ben Pfaff <blp@gnu.org>
-
- * copyleft.c (legal): Update startup notice to use format
- recommended by latest GNU coding standards.
-
-2007-06-06 Ben Pfaff <blp@gnu.org>
-
- * array.c (binary_search): Fix assertion.
-
-2007-06-06 Ben Pfaff <blp@gnu.org>
-
- Add error propagation layer. Patch #5916, slightly revised.
-
- * automake.mk: Add new files.
-
- * taint.c: New file.
-
- * taint.h: New file.
-
-2007-06-03 Ben Pfaff <blp@gnu.org>
-
- Add ability for reverse iteration to tower code.
-
- * tower.c (tower_last): New function.
- (tower_prev): New function.
- (abt_to_tower_node): New function.
- (first_node): Use abt_to_tower_node.
- (last_node): New function.
- (next_ndoe): Use abt_to_tower_node.
- (prev_node): New function.
-
-2007-06-03 Ben Pfaff <blp@gnu.org>
-
- * tower.c: Cache repeated lookups of a single tower element. This
- turns such lookups into O(1) operations without harming the big-O
- of other operations.
-
- * tower.h (struct tower): Add members for caching.
-
- * range-set.c (range_set_clone): New function.
-
- * array.c (insert_range): New function.
- (insert_element): New function.
- (move_range): New function.
-
-2007-04-25 Ben Pfaff <blp@gnu.org>
-
- * model-checker.c: Don't use type sighandler_t, which is a GNU
- extension. Reported by "Daniel E WILLIAMS"
- <Daniel.E.Williams@state.or.us>.
-
-2007-04-25 John Darrington <john@darrington.wattle.id.au>
-
- * i18n.c: Fixed bug converting long strings
-
-2007-04-22 Ben Pfaff <blp@gnu.org>
-
- Patch #5884.
-
- * ll.h (ll_for_each_reverse): New macro.
- (ll_for_each_reverse_continue): New macro.
- (ll_for_each_reverse_safe): New macro.
- (ll_for_each_safe_reverse_continue): New macro.
- (ll_for_each_reverse_preremove): New macro.
- (ll_for_each_reverse_postremove): New macro.
- (ll_remove__): Removed (dead code).
- (ll_tail__): New macro.
- (ll_prev__): New macro.
-
-2007-04-22 Ben Pfaff <blp@gnu.org>
-
- Implement model checker for testing purposes.
-
- Patch #5873.
-
- * automake.mk (src_libpspp_libpspp_a_SOURCES): Add
- model-checker.[ch]. Alphabetize.
-
- * model-checker.c: New file.
-
- * model-checker.h: New file.
-
-2007-04-03 Ben Pfaff <blp@gnu.org>
-
- Apply patches #5828, #5837, #5841, #5843.
-
- * abt.c (insert_relative): New function.
- (abt_insert_after): New function.
- (abt_insert_before): New function.
-
- * range-map.c: New file.
-
- * range-map.h: New file.
-
- * range-set.c: New file.
-
- * range-set.h: New file.
-
- * tower.c: New file.
-
- * tower.h: New file.
-
-2007-04-01 Ben Pfaff <blp@gnu.org>
-
- * bt.c: Need #include <limits.h>. Thanks to "John McCabe-Dansted"
- <gmatht@gmail.com> for pointing this out.
-
-2007-03-31 Ben Pfaff <blp@gnu.org>
-
- Patch #5827.
-
- * automake.mk (src_libpspp_libpspp_a_SOURCES): Add bt.c.
-
- * bt.h: New file.
-
- * bt.c: New file.
-
-2007-03-30 Ben Pfaff <blp@gnu.org>
-
- Patch #5829.
-
- * automake.mk (src_libpspp_libpspp_a_SOURCES): Add deque.c.
-
- * deque.h: Completely rewrote. Adapted client to new interface.
-
- * deque.c: New file.
-
-2007-03-25 Ben Pfaff <blp@gnu.org>
-
- * automake.mk (src_libpspp_libpspp_a_SOURCES): Add
- sparse-array.[ch].
-
- * pool.c (pool_zalloc): New function.
- (pool_calloc): New function.
-
- * sparse-array.c: New file.
-
- * sparse-array.h: New file.
-
-Mon Mar 5 20:55:49 CET 2007 John Darrington <john@darrington.wattle.id.au>
-
- * i18n.c: Cast second argument of iconv using ICONV_CONST
-
-2007-02-22 Ben Pfaff <blp@gnu.org>
-
- * string.h: Don't include vsnprintf.h any more, because gnulib has
- now absorbed it into string.h.
-
-Thu Feb 22 12:25:52 CET 2007 John Darrington <john@darrington.wattle.id.au>
-
- * syntax-gen.h syntax-gen.c: New files.
-
-Sun Feb 18 11:21:41 2007 Ben Pfaff <blp@gnu.org>
-
- * alloc.h: Remove useless parentheses in #if "defined" operator.
-
- * misc.h: Ditto.
-
-Tue Feb 6 20:00:13 2007 Ben Pfaff <blp@gnu.org>
-
- * misc.h [!HAVE_ISINF] (isinf): Define only if isinf is not
- defined as a macro, because mingw seems to have the macro without
- the function.
- [!HAVE_ISNAN] (isnan): Ditto, for symmetry only.
- [!AHVE_FINITE] (finite): Ditto, for symmetry only.
-
-Tue Feb 6 19:58:46 2007 Ben Pfaff <blp@gnu.org>
-
- * compiler.h (PRINTF_FORMAT): Use __printf__ instead of printf to
- avoid problem with "#define printf libintl_printf" that libintl is
- fond of doing.
- (SCANF_FORMAT): Ditto, for symmetry only.
-
-Tue Feb 6 19:47:10 2007 Ben Pfaff <blp@gnu.org>
-
- * float-format.h: [FPREP_IEEE754] [WORDS_BIGENDIAN] Add missing
- comma.
-
-Wed Jan 24 21:13:32 2007 Ben Pfaff <blp@gnu.org>
-
- * abt.c: New file.
-
- * abt.h: New file.
-
- * automake.mk: Add abt.c, abt.h to sources.
-
-Sun Jan 14 21:44:18 2007 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Add deque.h to sources.
-
- * deque.h: New file.
-
-Wed Jan 10 06:49:38 2007 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Add heap.c, heap.h to sources.
-
- * heap.c: New file.
-
- * heap.h: New file.
-
-Sun Dec 10 13:54:03 2006 Ben Pfaff <blp@gnu.org>
-
- * str.c (ss_tokenize): Skip the first delimiter character
- following the token. Otherwise, changing delimiters from token to
- token can't have a sensible effect, because we'll get the previous
- delimiter as part of the next token.
- (ss_match_string): New function.
-
-Sat Dec 9 18:48:55 2006 Ben Pfaff <blp@gnu.org>
-
- * misc.h (macro range): Removed, as it was unused.
-
-Sat Dec 9 07:19:01 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * array.c: Removed gratuitous #include
-
-Thu Dec 7 20:33:23 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * getl.c getl.h : Changed signature of create function to take a
- string indicating the initial include path.
-
-Sun Dec 3 11:36:10 2006 Ben Pfaff <blp@gnu.org>
-
- * str.h (SS_LITERAL_INITIALIZER): Cast the string literal to "char
- *". This normally does nothing but when GCC's -Wwrite-strings is
- used it fixes a warning that otherwise can't be avoided.
-
-Sun Dec 3 11:35:35 2006 Ben Pfaff <blp@gnu.org>
-
- * str.c (ss_alloc_substring_pool): New function.
- (ss_alloc_uninit_pool) New function.
-
-Sun Dec 3 11:28:06 2006 Ben Pfaff <blp@gnu.org>
-
- * getl.h: (enum getl_syntax) New enumeration to distinguish
- between "batch" and "interactive" in a clearer way than a bool.
- (struct getl_interface) Add an arg to "read" to return the
- intended syntax mode. Add an arg to "filter" to specify the
- syntax mode of the line to filter.
-
- * getl.c (do_read_line): Instead of returning the syntax type of
- the line read based on whether the source itself is interactive,
- return it based on whether the line itself should be treated as
- having batch or interactive syntax. Also, adapt interface to the
- new interfaces of lex_init() and getl_interface.
-
-Wed Nov 29 19:35:44 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * getl.c getl.h: New files. Created interface from base of
- language/line-buffer.[ch]
-
- * msg-locator.c msg-locator.h: New files. Moved from
- language/line-buffer.[ch]
-
-Fri Nov 24 17:27:00 2006 Ben Pfaff <blp@gnu.org>
-
- * misc.h: (min) Removed. All references updated to use MIN, from
- minmax.h provided by gnulib.
- (max) Ditto (for MAX).
-
-Sun Nov 19 09:22:26 2006 Ben Pfaff <blp@gnu.org>
-
- * str.c (ss_get_long): New function.
- (ss_compare_case) Ditto.
- (ss_equals) Ditto.
- (ss_equals_case) Ditto.
-
-Tue Oct 31 19:28:19 2006 Ben Pfaff <blp@gnu.org>
-
- * str.h: [!HAVE_STRCHR] Drop compatibility code, because now we
- assume a C89 compliant library. (Gnulib makes this assumption so
- we might as well too.)
- [!HAVE_STRRCHR] Ditto.
-
-Thu Oct 26 20:19:50 2006 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Add the new files.
-
- * legacy-encoding.c: New file.
-
- * legacy-encoding.h: New file.
-
- * float-format.c: New file.
-
- * float-format.h: New file.
-
- * integer-format.c: New file.
-
- * integer-format.h: New file.
-
-Sun Oct 15 09:49:50 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * hash.c hash.h: Added hsh_create_pool, a hash which uses a pool
- for its memory allocation.
-
-Mon Jul 31 15:49:46 2006 Ben Pfaff <blp@gnu.org>
-
- * compiler.h: (macro CONST_FUNCTION) New macro.
- (macro PURE_FUNCTION) New macro.
-
-Sun Jul 16 21:07:35 2006 Ben Pfaff <blp@gnu.org>
-
- * message.c: (static int messages_disabled) New variable.
- (msg_emit) Don't emit the message if messages are disabled.
- (msg_disable) New function.
- (msg_enable) New function.
-
- * str.c: (free_string) New function.
- (ds_register_pool) New function.
- (ds_unregister_pool) New function.
- (ds_set_length) New function.
-
-Mon Jul 10 17:26:58 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * llx.c: #included compiler.h and removed explicit preprocessor cruft.
-
-Fri Jul 7 20:01:26 2006 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: (src_libpspp_libpspp_a_SOURCES) Add assertion.h.
-
- * assertion.h: New file. Replaced usage of assert(0) and abort()
- with NOT_REACHED() from this file throughout the source tree.
-
- * message.c: (request_bug_report_and_abort) Revise message printed
- to include request to include lines above the message, which
- should include an assertion failure message in many cases.
- (msg_assert_fail) Removed.
-
- * message.h: (assert) Removed.
- (request_bug_report_and_abort) Mark NO_RETURN.
-
-Mon Jul 3 09:36:42 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * i18n.c: Made character conversion tolerant of failure to create the
- necessary iconv structs.
-
-Sat Jul 1 15:32:54 2006 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: (src_libpspp_libpspp_a_SOURCES) Add new files.
-
- * ll.c: New file.
-
- * ll.h: New file.
-
- * llx.c: New file.
-
- * llx.h: New file.
-
-Sun Jun 25 22:35:28 2006 Ben Pfaff <blp@gnu.org>
-
- Optimize rehashing: we know that none of the entries in the hash
- table are equal, so we need not compare them to each other during
- rehashing.
-
- * hash.c: (locate_empty_entry) New function.
- (rehash) Use locate_empty_entry() instead of
- locate_matching_entry().
-
-Fri Jun 9 14:03:29 2006 Ben Pfaff <blp@gnu.org>
-
- Reform string library.
-
- * str.c (ss_empty): New function. Replaces some uses of ls_init()
- or ls_null().
- (ss_cstr) New function. Replaces some uses of ls_init().
- (ss_buffer) New function. Replaces some uses of ls_init().
- (ss_substr) New function.
- (ss_head) New function.
- (ss_tail) New function.
- (ss_alloc_substring) New function. Replaces use of ls_create().
- (ss_alloc_uninit) New function.
- (ss_dealloc) New function. Replaces use of ls_destroy().
- (ss_truncate) New function.
- (ss_rtrim) New function.
- (ss_ltrim) New function.
- (ss_trim) New function.
- (ss_chomp) New function.
- (ss_separate) New function.
- (ss_tokenize) New function.
- (ss_advance) New function.
- (ds_create) Renamed ds_init_cstr(). Updated all callers.
- (ss_match_char) New function.
- (ss_get_char) New function.
- (ss_get_until) New function.
- (ss_get_chars) New function.
- (ss_is_empty) New function.
- (ss_length) New function. Replaces ls_length().
- (ss_data) New function. Replaces many uses of ls_c_str().
- (ss_end) New function. Replaces ls_end().
- (ss_at) New function.
- (ss_first) New function.
- (ss_last) New function.
- (ss_span) New function.
- (ss_cspan) New function.
- (ss_compare) New function.
- (ss_pointer_to_position) New function.
- (ss_xstrdup) New function.
- (ds_init) Renamed ds_init_empty(). All callers updated.
- (ds_init_string) New function.
- (ds_init_substring) Changed interface to take a struct substring.
- Updated all callers.
- (ds_init_cstr) New function. Replaces ds_create(). All callers
- updated.
- (ds_assign_substring) Changed interface to take a struct
- substring. Updated all callers.
- (ds_assign_buffer) Removed. Changed all callers to use
- ds_assign_substring().
- (ds_assign_c_str) Renamed ds_assign_cstr(). All callers updated.
- (ds_ss) New function.
- (ds_substr) New function.
- (ds_head) New function.
- (ds_tail) New function.
- (ds_rtrim) New function. Replaces ds_rtrim_spaces(). All callers
- updated.
- (ds_ltrim) New function. Replaces ds_ltrim_spaces(). All callers
- updated.
- (ds_trim) New function. Replaces ds_trim_spaces(). All callers
- updated.
- (ds_rtrim_spaces) Removed.
- (ds_ltrim_spaces) Removed.
- (ds_trim_spaces) Removed.
- (ds_separate) Changed interface to use substrings. All callers
- updated.
- (ds_tokenize) Changed interface to use substrings. All callers
- updated.
- (ds_c_str) Renamed ds_cstr(). All callers updated.
- (ds_span) Changed interface to use substring for SKIP_SET and
- dropped OFS. All callers updated.
- (ds_cspan) Changed interface to use substring for STOP_SET and
- dropped OFS. All callers updated.
- (ds_find_char) New function.
- (ds_compare) New function.
- (ds_pointer_to_position) New function.
- (ds_xstrdup) New function. Replaced all users of
- xstrdup(ds_c_str(s)) by a call to this function.
- (ds_gets) Renamed ds_read_line(). All callers updated.
- (ds_get_config_line) Renamed ds_read_config_line(). All callers
- updated.
- (ds_puts) Renamed ds_put_cstr(). All callers updated.
- (ds_put_substring) New function. Replaces ds_concat(). All
- callers updated.
- (ds_concat) Removed.
- (ds_append_uninit) Renamed ds_put_uninit(). All callers updated.
- (ds_printf) Renamed ds_put_format(). All callers updated.
- (ds_vprintf) Renamed ds_put_vformat(). All callers updated.
- (ds_putc) Renamed ds_put_char(). All callers updated.
- (ds_putc_multiple) Renamed ds_put_char_multiple(). All callers
- updated.
- (ls_create) Removed. Replaced by ss_alloc_substring().
- (ls_create_buffer) Removed. Replaced by ss_alloc_substring().
- (ls_init) Removed. Replaced by ss_buffer().
- (ls_shallow_copy) Removed. Just use assignment.
- (ls_destroy) Removed. Replaced by ss_dealloc().
- (ls_null) Removed.
- (ls_null_p) Removed.
- (ls_empty_p) Removed. Replaced by ss_is_empty().
- (ls_c_str) Removed.
- (ls_end) Removed. Replaced by ss_end().
-
- * str.h (struct fixed_string): Renamed struct substring, updated
- all users.
- (CC_SPACES) New macro.
- (CC_DIGITS) Ditto.
- (CC_XDIGITS) Ditto.
- (CC_LETTERS) Ditto.
- (CC_ALNUM) Ditto.
- (SS_EMPTY_INITIALIZER) Ditto.
- (SS_LITERAL_INITIALIZER) Ditto.
- (struct string) Removed string, length members. Add substring
- member.
- (DS_INITIALIZER) Rename DS_EMPTY_INITIALIZER.
-
-Tue May 30 19:45:12 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * i18n.c i18n.h: New files.
-
-Tue May 16 06:50:35 2006 Ben Pfaff <blp@gnu.org>
-
- * automake.mk (src/libpspp/version.c): Removed groff_font_path,
- which is no longer used.
-
- * message.c (request_bug_report_and_abort): Don't print
- groff_font_path, which no longer exists.
-
- * version.h (locale_dir): Removed groff_font_path.
-
-Sun May 14 22:06:53 2006 Ben Pfaff <blp@gnu.org>
-
- * str.c (spprintf): Moved definition of spprintf() here, from
- str.h.
-
- * str.h: (nsprintf) Removed. Changed all users to use sprintf()
- instead.
- (nvsprintf) Removed. Changed all users to use vsprintf() instead.
-
-Sun May 14 20:52:20 2006 Ben Pfaff <blp@gnu.org>
-
- * str.c (ds_init): Remove `capacity' argument and just initialize
- the string to a capacity of zero. Updated all callers.
-
-Tue May 9 09:56:57 2006 Ben Pfaff <blp@gnu.org>
-
- * va_copy.h: Removed. Now use va_copy() provided by gnulib
- instead.
-
- * automake.mk: (src_libpspp_libpspp_a_SOURCES) Removed va_copy.h.
-
-Sun May 7 18:17:32 2006 Ben Pfaff <blp@gnu.org>
-
- * pool.c (pool_vasprintf): New function.
- (pool_asprintf) New function.
-
-Sun May 7 17:09:54 2006 Ben Pfaff <blp@gnu.org>
-
- * compiler.h: (macro WARN_UNUSED_RESULT) New macro.
-
-Sun May 7 14:32:25 2006 Ben Pfaff <blp@gnu.org>
-
- * va_copy.h: New header.
-
- * str.c: Use header instead of inlining va_copy() macro
- implementation.
-
-Sun May 7 10:06:29 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * array.c array.h: Constness of sort.
-
-Thu May 4 18:01:37 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * message.c message.h: Added functions to create and copy a msg.
-
-Tue May 2 15:41:50 2006 Ben Pfaff <blp@gnu.org>
-
- * str.c (ds_append_uninit): No need to add 1 to arg passed to
- ds_extend(), because the argument does not include space for a
- null terminator. Also, fix warning.
-
-Tue Apr 25 11:07:19 2006 Ben Pfaff <blp@gnu.org>
-
- Finish reforming error message support. In this phase, move
- message.c into libpspp.
-
- * message.c: Move here from src/. Also remove a few unneeded
- headers.
-
- * automake.mk (src_libpspp_libpspp_a_SOURCES): Add message.c.
-
-Tue Apr 25 10:54:44 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming error message support. In this phase, drop
- actual message printing from core code, substituting a callback,
- and add the callback to each UI. Also, move verbose_msg() into
- its own module.
-
- * automake.mk (src_libpspp_libpspp_a_SOURCES): Added
- verbose-msg.c, verbose-msg.h.
-
- * verbose-msg.c: New file.
-
- * verbose-msg.h: New file.
-
-Mon Apr 24 17:26:47 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming error message support. In this phase, rename
- all the message functions and types to start with "msg", except
- for the ones that will be moving to other modules anyway.
-
- All references to the identifiers below were updated likewise.
-
- * message.h: (enum file_locator) Renamed `enum msg_locator'.
- (struct error) Renamed `struct msg'.
- (err_assert_fail) Renamed msg_assert_fail().
-
-Sun Apr 23 22:07:06 2006 Ben Pfaff <blp@gnu.org>
-
- 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.
-
- * message.h: (struct error) Remove `title' member. Add `text'
- member.
-
-Sun Apr 16 20:43:35 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming error message support. In this phase, we
- divide the classification of messages along "category" and
- "severity" axes.
-
- * message.h: (enum msg_class) Named this set of enumerations.
- (enum msg_category) New enum: MSG_GENERAL, MSG_SYNTAX, MSG_DATA.
- (enum msg_severity) New enum: MSG_ERROR, MSG_WARNING, MSG_NOTE.
- (msg_class_to_category) New inline function.
- (msg_class_to_severity) New inline function.
- (msg_class_from_category_and_severity) New inline function.
- (struct error) Removed `class' member, added `category',
- `severity'. Updated all users of this struct to use the new
- members.
-
-Sun Apr 16 20:33:19 2006 Ben Pfaff <blp@gnu.org>
-
- * str.c (ds_vprintf): Don't try to write into the string if it is
- null.
-
-Sun Apr 16 18:52:41 2006 Ben Pfaff <blp@gnu.org>
-
- GNU standards require "file name" instead of "filename" in
- documentation. It's nice for our code to follow the convention
- too.
-
- * message.h: (struct file_locator) Rename filename member to
- file_name. Updated all references.
-
-Sun Apr 16 16:05:43 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming error message support. In this phase, we get
- rid of VM() and the other msg() support for "verbosity", replacing
- it by a new function verbose_msg().
-
- * message.h: (enum ERR_CLASS_COUNT) Renamed ERR_CLASS_CNT.
- (enum ERR_CLASS_MASK) Removed.
- (enum ERR_VERBOSITY_SHIFT) Removed.
- (enum ERR_VERBOSITY_MASK) Removed.
- (macro VM) Removed.
-
-Sun Apr 16 11:48:07 2006 Ben Pfaff <blp@gnu.org>
-
- Start reforming error message support. In this phase, we get rid
- of "installation errors" and change all uses of msg() in the
- output drivers to uses of error() or error_at_line().
-
- * message.h: Remove IE, IS enums.
-
-Mon Apr 3 11:10:21 2006 Ben Pfaff <blp@gnu.org>
-
- * str.c: (ds_separate) Change interface for cleanliness and
- consistency with ds_tokenize(), and rewrite to shorten and
- simplify. Updated all callers.
- (ds_tokenize) New function.
-
-Fri Mar 31 10:38:46 2006 Ben Pfaff <blp@gnu.org>
-
- Add freaderror() analogous to fwriteerror() in gnulib.
-
- * freaderror.c: New file.
-
- * freaderror.h: New file.
-
-Thu Mar 30 16:15:37 2006 Ben Pfaff <blp@gnu.org>
-
- * str.c: (ds_create) Adjust capacity selection.
- (ds_init) Use MAX macro for clarity.
- (ds_create_substr) Rewrote.
- (ds_replace) Renamed ds_assign_c_str(), reimplemented. Changed
- all callers to use a ds_assign_*() function.
- (ds_init_substring) New function.
- (ds_assign_string) New function.
- (ds_assign_substring) New function.
- (ds_assign_buffer) New function.
- (ds_assign_c_str) New function.
- (ds_truncate) Rewrote for clarity.
- (ds_rpad) Reimplement in terms of ds_putc_multiple().
- (ds_ltrim_spaces) Reimplement.
- (ds_trim_spaces) New function.
- (ds_separate) New function.
- (ds_c_str) Make tolerant of null pointer, allowing static
- initialization of strings.
- (ds_find) Rename ds_span(), change interface.
- (ds_n_find) Rename ds_cspan(), change interface.
- (ds_at) New function.
- (ds_first) Reimplement in terms of ds_at().
- (remove_comment) New function.
- (ds_get_config_line) Reimplement in terms of other functions.
- Change type of LINE_NUMBER parameter. Updated all callers.
- (ds_vprintf) Modify for clarity.
- (ds_putc) Better to be safe than sorry.
- (ds_putc_multiple) New function.
-
- * str.h: (struct string) Reorder members.
- (macro DS_INITIALIZER) New macro that can be used to initialize a
- string (as empty).
- (ds_c_str) Remove inline version.
-
-Tue Mar 28 13:49:11 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * str.[ch]: New functions ds_create_substr, ds_find, ds_n_find,
- ds_ltrim_spaces
-
-Sat Mar 4 12:59:01 2006 Ben Pfaff <blp@gnu.org>
-
- * compiler.h: New file.
-
-Sat Mar 4 11:55:16 2006 Ben Pfaff <blp@gnu.org>
-
- * str.h: Now assume that sprintf() returns the correct value.
- Always implement spprintf as a static inline function. Change
- nsprintf, nvsprintf to simple macros that call sprintf, vsprintf.
-
- * str.c: Remove spprintf, nsprintf, nvsprintf conditional
- definitions.
-
-Thu Mar 2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * Moved files from src directory
--- /dev/null
+2008-05-15 Ben Pfaff <blp@gnu.org>
+
+ Patch #6512.
+
+ * hash.c (hsh_hash_int): Use gsl_isnan instead of isnan, as a
+ stopgap measure for portability until appropriate gnulib modules
+ are available.
+
+ * misc.h (macro isinf): Remove implementations of isinf, isnan,
+ and finite, because they were not effective and we are now using
+ the equivalent GSL functions.
+
+2008-03-04 Ben Pfaff <blp@gnu.org>
+
+ Patch #6427. Reviewed by John Darrington.
+
+ * automake.mk: Remove moved files.
+
+ * syntax-gen.c: Moved to src/ui (and rewritten).
+
+ * syntax-gen.h: Ditto.
+
+2008-03-04 Ben Pfaff <blp@gnu.org>
+
+ Patch #6441. Reviewed by John Darrington.
+
+ * str.c (ss_match_char_in): New function.
+
+2008-02-18 Ben Pfaff <blp@gnu.org>
+
+ Patch #6426. Thanks to John Darrington for review.
+
+ * str.c (ds_read_line): Add argument to limit the length of the
+ line to be read. Update all callers.
+
+2008-02-01 Ben Pfaff <blp@gnu.org>
+
+ Patch #6386. Thanks to John Darrington for review.
+
+ * str.c (str_format_26adic): New function.
+
+2007-12-24 John Darrington <john@darrington.wattle.id.au>
+
+ * taint.c (taint_destroy): Return true if pointer is null.
+
+2007-11-25 Ben Pfaff <blp@gnu.org>
+
+ * float-format.c (assemble_number): Only store 32 bits for Z short
+ format. Partial fix for bug #21590.
+
+2007-11-08 Ben Pfaff <blp@gnu.org>
+
+ * str.c (ds_read_stream): Change return value semantics to be more
+ useful. Update all users.
+
+2007-11-03 John Darrington <john@darrington.wattle.id.au>
+
+ * i18n.c i18n.h: Added convertor from UTF8 to system.
+ This is needed for reading gnumeric files (and possibly others).
+
+2007-10-11 Ben Pfaff <blp@gnu.org>
+
+ * xalloc.h: Removed. Changed all users to include "xalloc.h" from
+ gnulib instead.
+
+ * xalloc.c: Removed.
+
+2007-10-11 Ben Pfaff <blp@gnu.org>
+
+ * alloc.h (local_alloc): Removed. Changed all users to use
+ xmalloca instead.
+ (local_free): Removed. Changed all users to use freea instead.
+
+2007-10-11 Ben Pfaff <blp@gnu.org>
+
+ * float-format.c (float_get_lowest): New function.
+
+ * magic.c: Removed.
+
+ * magic.h: Removed. Changed all references to NOT_INT,
+ NOT_DOUBLE, and NOT_LONG to use other constants. Changed
+ references to second_lowest_value to call float_get_lowest.
+
+2007-10-10 Ben Pfaff <blp@gnu.org>
+
+ We assume IEEE-754 now.
+
+ * float-format.h (enum float_format): Don't check for
+ FPREP_IEEE754 macro any longer.
+
+ * magic.h: Ditto.
+
+2007-09-16 Ben Pfaff <blp@gnu.org>
+
+ * copyleft.c: Add trailing new-lines to lack-of-warranty
+ statement.
+
+2007-09-05 John Darrington <john@darrington.wattle.id.au>
+
+ * getl.c: Add extra members to struct getl_source, to maintain the
+ error mode and the syntax_mode.
+
+2007-07-25 Ben Pfaff <blp@gnu.org>
+
+ * getl.c (getl_append_source): Add source to *end* of list.
+ Otherwise the list ends up in reverse order.
+
+ * automake.mk (src/libpspp/version.c): Use $HOME instead of ~ in
+ paths. We don't interpolate ~.
+
+2007-07-22 Ben Pfaff <blp@gnu.org>
+
+ * str.h: Include xstrndup.h also.
+
+ * float-format.c (float_get_double): New function.
+
+2007-07-06 Ben Pfaff <blp@gnu.org>
+
+ * copyleft.c (legal): Update startup notice to use format
+ recommended by latest GNU coding standards.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ * array.c (binary_search): Fix assertion.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ Add error propagation layer. Patch #5916, slightly revised.
+
+ * automake.mk: Add new files.
+
+ * taint.c: New file.
+
+ * taint.h: New file.
+
+2007-06-03 Ben Pfaff <blp@gnu.org>
+
+ Add ability for reverse iteration to tower code.
+
+ * tower.c (tower_last): New function.
+ (tower_prev): New function.
+ (abt_to_tower_node): New function.
+ (first_node): Use abt_to_tower_node.
+ (last_node): New function.
+ (next_ndoe): Use abt_to_tower_node.
+ (prev_node): New function.
+
+2007-06-03 Ben Pfaff <blp@gnu.org>
+
+ * tower.c: Cache repeated lookups of a single tower element. This
+ turns such lookups into O(1) operations without harming the big-O
+ of other operations.
+
+ * tower.h (struct tower): Add members for caching.
+
+ * range-set.c (range_set_clone): New function.
+
+ * array.c (insert_range): New function.
+ (insert_element): New function.
+ (move_range): New function.
+
+2007-04-25 Ben Pfaff <blp@gnu.org>
+
+ * model-checker.c: Don't use type sighandler_t, which is a GNU
+ extension. Reported by "Daniel E WILLIAMS"
+ <Daniel.E.Williams@state.or.us>.
+
+2007-04-25 John Darrington <john@darrington.wattle.id.au>
+
+ * i18n.c: Fixed bug converting long strings
+
+2007-04-22 Ben Pfaff <blp@gnu.org>
+
+ Patch #5884.
+
+ * ll.h (ll_for_each_reverse): New macro.
+ (ll_for_each_reverse_continue): New macro.
+ (ll_for_each_reverse_safe): New macro.
+ (ll_for_each_safe_reverse_continue): New macro.
+ (ll_for_each_reverse_preremove): New macro.
+ (ll_for_each_reverse_postremove): New macro.
+ (ll_remove__): Removed (dead code).
+ (ll_tail__): New macro.
+ (ll_prev__): New macro.
+
+2007-04-22 Ben Pfaff <blp@gnu.org>
+
+ Implement model checker for testing purposes.
+
+ Patch #5873.
+
+ * automake.mk (src_libpspp_libpspp_a_SOURCES): Add
+ model-checker.[ch]. Alphabetize.
+
+ * model-checker.c: New file.
+
+ * model-checker.h: New file.
+
+2007-04-03 Ben Pfaff <blp@gnu.org>
+
+ Apply patches #5828, #5837, #5841, #5843.
+
+ * abt.c (insert_relative): New function.
+ (abt_insert_after): New function.
+ (abt_insert_before): New function.
+
+ * range-map.c: New file.
+
+ * range-map.h: New file.
+
+ * range-set.c: New file.
+
+ * range-set.h: New file.
+
+ * tower.c: New file.
+
+ * tower.h: New file.
+
+2007-04-01 Ben Pfaff <blp@gnu.org>
+
+ * bt.c: Need #include <limits.h>. Thanks to "John McCabe-Dansted"
+ <gmatht@gmail.com> for pointing this out.
+
+2007-03-31 Ben Pfaff <blp@gnu.org>
+
+ Patch #5827.
+
+ * automake.mk (src_libpspp_libpspp_a_SOURCES): Add bt.c.
+
+ * bt.h: New file.
+
+ * bt.c: New file.
+
+2007-03-30 Ben Pfaff <blp@gnu.org>
+
+ Patch #5829.
+
+ * automake.mk (src_libpspp_libpspp_a_SOURCES): Add deque.c.
+
+ * deque.h: Completely rewrote. Adapted client to new interface.
+
+ * deque.c: New file.
+
+2007-03-25 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk (src_libpspp_libpspp_a_SOURCES): Add
+ sparse-array.[ch].
+
+ * pool.c (pool_zalloc): New function.
+ (pool_calloc): New function.
+
+ * sparse-array.c: New file.
+
+ * sparse-array.h: New file.
+
+Mon Mar 5 20:55:49 CET 2007 John Darrington <john@darrington.wattle.id.au>
+
+ * i18n.c: Cast second argument of iconv using ICONV_CONST
+
+2007-02-22 Ben Pfaff <blp@gnu.org>
+
+ * string.h: Don't include vsnprintf.h any more, because gnulib has
+ now absorbed it into string.h.
+
+Thu Feb 22 12:25:52 CET 2007 John Darrington <john@darrington.wattle.id.au>
+
+ * syntax-gen.h syntax-gen.c: New files.
+
+Sun Feb 18 11:21:41 2007 Ben Pfaff <blp@gnu.org>
+
+ * alloc.h: Remove useless parentheses in #if "defined" operator.
+
+ * misc.h: Ditto.
+
+Tue Feb 6 20:00:13 2007 Ben Pfaff <blp@gnu.org>
+
+ * misc.h [!HAVE_ISINF] (isinf): Define only if isinf is not
+ defined as a macro, because mingw seems to have the macro without
+ the function.
+ [!HAVE_ISNAN] (isnan): Ditto, for symmetry only.
+ [!AHVE_FINITE] (finite): Ditto, for symmetry only.
+
+Tue Feb 6 19:58:46 2007 Ben Pfaff <blp@gnu.org>
+
+ * compiler.h (PRINTF_FORMAT): Use __printf__ instead of printf to
+ avoid problem with "#define printf libintl_printf" that libintl is
+ fond of doing.
+ (SCANF_FORMAT): Ditto, for symmetry only.
+
+Tue Feb 6 19:47:10 2007 Ben Pfaff <blp@gnu.org>
+
+ * float-format.h: [FPREP_IEEE754] [WORDS_BIGENDIAN] Add missing
+ comma.
+
+Wed Jan 24 21:13:32 2007 Ben Pfaff <blp@gnu.org>
+
+ * abt.c: New file.
+
+ * abt.h: New file.
+
+ * automake.mk: Add abt.c, abt.h to sources.
+
+Sun Jan 14 21:44:18 2007 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Add deque.h to sources.
+
+ * deque.h: New file.
+
+Wed Jan 10 06:49:38 2007 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Add heap.c, heap.h to sources.
+
+ * heap.c: New file.
+
+ * heap.h: New file.
+
+Sun Dec 10 13:54:03 2006 Ben Pfaff <blp@gnu.org>
+
+ * str.c (ss_tokenize): Skip the first delimiter character
+ following the token. Otherwise, changing delimiters from token to
+ token can't have a sensible effect, because we'll get the previous
+ delimiter as part of the next token.
+ (ss_match_string): New function.
+
+Sat Dec 9 18:48:55 2006 Ben Pfaff <blp@gnu.org>
+
+ * misc.h (macro range): Removed, as it was unused.
+
+Sat Dec 9 07:19:01 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * array.c: Removed gratuitous #include
+
+Thu Dec 7 20:33:23 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * getl.c getl.h : Changed signature of create function to take a
+ string indicating the initial include path.
+
+Sun Dec 3 11:36:10 2006 Ben Pfaff <blp@gnu.org>
+
+ * str.h (SS_LITERAL_INITIALIZER): Cast the string literal to "char
+ *". This normally does nothing but when GCC's -Wwrite-strings is
+ used it fixes a warning that otherwise can't be avoided.
+
+Sun Dec 3 11:35:35 2006 Ben Pfaff <blp@gnu.org>
+
+ * str.c (ss_alloc_substring_pool): New function.
+ (ss_alloc_uninit_pool) New function.
+
+Sun Dec 3 11:28:06 2006 Ben Pfaff <blp@gnu.org>
+
+ * getl.h: (enum getl_syntax) New enumeration to distinguish
+ between "batch" and "interactive" in a clearer way than a bool.
+ (struct getl_interface) Add an arg to "read" to return the
+ intended syntax mode. Add an arg to "filter" to specify the
+ syntax mode of the line to filter.
+
+ * getl.c (do_read_line): Instead of returning the syntax type of
+ the line read based on whether the source itself is interactive,
+ return it based on whether the line itself should be treated as
+ having batch or interactive syntax. Also, adapt interface to the
+ new interfaces of lex_init() and getl_interface.
+
+Wed Nov 29 19:35:44 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * getl.c getl.h: New files. Created interface from base of
+ language/line-buffer.[ch]
+
+ * msg-locator.c msg-locator.h: New files. Moved from
+ language/line-buffer.[ch]
+
+Fri Nov 24 17:27:00 2006 Ben Pfaff <blp@gnu.org>
+
+ * misc.h: (min) Removed. All references updated to use MIN, from
+ minmax.h provided by gnulib.
+ (max) Ditto (for MAX).
+
+Sun Nov 19 09:22:26 2006 Ben Pfaff <blp@gnu.org>
+
+ * str.c (ss_get_long): New function.
+ (ss_compare_case) Ditto.
+ (ss_equals) Ditto.
+ (ss_equals_case) Ditto.
+
+Tue Oct 31 19:28:19 2006 Ben Pfaff <blp@gnu.org>
+
+ * str.h: [!HAVE_STRCHR] Drop compatibility code, because now we
+ assume a C89 compliant library. (Gnulib makes this assumption so
+ we might as well too.)
+ [!HAVE_STRRCHR] Ditto.
+
+Thu Oct 26 20:19:50 2006 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Add the new files.
+
+ * legacy-encoding.c: New file.
+
+ * legacy-encoding.h: New file.
+
+ * float-format.c: New file.
+
+ * float-format.h: New file.
+
+ * integer-format.c: New file.
+
+ * integer-format.h: New file.
+
+Sun Oct 15 09:49:50 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * hash.c hash.h: Added hsh_create_pool, a hash which uses a pool
+ for its memory allocation.
+
+Mon Jul 31 15:49:46 2006 Ben Pfaff <blp@gnu.org>
+
+ * compiler.h: (macro CONST_FUNCTION) New macro.
+ (macro PURE_FUNCTION) New macro.
+
+Sun Jul 16 21:07:35 2006 Ben Pfaff <blp@gnu.org>
+
+ * message.c: (static int messages_disabled) New variable.
+ (msg_emit) Don't emit the message if messages are disabled.
+ (msg_disable) New function.
+ (msg_enable) New function.
+
+ * str.c: (free_string) New function.
+ (ds_register_pool) New function.
+ (ds_unregister_pool) New function.
+ (ds_set_length) New function.
+
+Mon Jul 10 17:26:58 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * llx.c: #included compiler.h and removed explicit preprocessor cruft.
+
+Fri Jul 7 20:01:26 2006 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: (src_libpspp_libpspp_a_SOURCES) Add assertion.h.
+
+ * assertion.h: New file. Replaced usage of assert(0) and abort()
+ with NOT_REACHED() from this file throughout the source tree.
+
+ * message.c: (request_bug_report_and_abort) Revise message printed
+ to include request to include lines above the message, which
+ should include an assertion failure message in many cases.
+ (msg_assert_fail) Removed.
+
+ * message.h: (assert) Removed.
+ (request_bug_report_and_abort) Mark NO_RETURN.
+
+Mon Jul 3 09:36:42 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * i18n.c: Made character conversion tolerant of failure to create the
+ necessary iconv structs.
+
+Sat Jul 1 15:32:54 2006 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: (src_libpspp_libpspp_a_SOURCES) Add new files.
+
+ * ll.c: New file.
+
+ * ll.h: New file.
+
+ * llx.c: New file.
+
+ * llx.h: New file.
+
+Sun Jun 25 22:35:28 2006 Ben Pfaff <blp@gnu.org>
+
+ Optimize rehashing: we know that none of the entries in the hash
+ table are equal, so we need not compare them to each other during
+ rehashing.
+
+ * hash.c: (locate_empty_entry) New function.
+ (rehash) Use locate_empty_entry() instead of
+ locate_matching_entry().
+
+Fri Jun 9 14:03:29 2006 Ben Pfaff <blp@gnu.org>
+
+ Reform string library.
+
+ * str.c (ss_empty): New function. Replaces some uses of ls_init()
+ or ls_null().
+ (ss_cstr) New function. Replaces some uses of ls_init().
+ (ss_buffer) New function. Replaces some uses of ls_init().
+ (ss_substr) New function.
+ (ss_head) New function.
+ (ss_tail) New function.
+ (ss_alloc_substring) New function. Replaces use of ls_create().
+ (ss_alloc_uninit) New function.
+ (ss_dealloc) New function. Replaces use of ls_destroy().
+ (ss_truncate) New function.
+ (ss_rtrim) New function.
+ (ss_ltrim) New function.
+ (ss_trim) New function.
+ (ss_chomp) New function.
+ (ss_separate) New function.
+ (ss_tokenize) New function.
+ (ss_advance) New function.
+ (ds_create) Renamed ds_init_cstr(). Updated all callers.
+ (ss_match_char) New function.
+ (ss_get_char) New function.
+ (ss_get_until) New function.
+ (ss_get_chars) New function.
+ (ss_is_empty) New function.
+ (ss_length) New function. Replaces ls_length().
+ (ss_data) New function. Replaces many uses of ls_c_str().
+ (ss_end) New function. Replaces ls_end().
+ (ss_at) New function.
+ (ss_first) New function.
+ (ss_last) New function.
+ (ss_span) New function.
+ (ss_cspan) New function.
+ (ss_compare) New function.
+ (ss_pointer_to_position) New function.
+ (ss_xstrdup) New function.
+ (ds_init) Renamed ds_init_empty(). All callers updated.
+ (ds_init_string) New function.
+ (ds_init_substring) Changed interface to take a struct substring.
+ Updated all callers.
+ (ds_init_cstr) New function. Replaces ds_create(). All callers
+ updated.
+ (ds_assign_substring) Changed interface to take a struct
+ substring. Updated all callers.
+ (ds_assign_buffer) Removed. Changed all callers to use
+ ds_assign_substring().
+ (ds_assign_c_str) Renamed ds_assign_cstr(). All callers updated.
+ (ds_ss) New function.
+ (ds_substr) New function.
+ (ds_head) New function.
+ (ds_tail) New function.
+ (ds_rtrim) New function. Replaces ds_rtrim_spaces(). All callers
+ updated.
+ (ds_ltrim) New function. Replaces ds_ltrim_spaces(). All callers
+ updated.
+ (ds_trim) New function. Replaces ds_trim_spaces(). All callers
+ updated.
+ (ds_rtrim_spaces) Removed.
+ (ds_ltrim_spaces) Removed.
+ (ds_trim_spaces) Removed.
+ (ds_separate) Changed interface to use substrings. All callers
+ updated.
+ (ds_tokenize) Changed interface to use substrings. All callers
+ updated.
+ (ds_c_str) Renamed ds_cstr(). All callers updated.
+ (ds_span) Changed interface to use substring for SKIP_SET and
+ dropped OFS. All callers updated.
+ (ds_cspan) Changed interface to use substring for STOP_SET and
+ dropped OFS. All callers updated.
+ (ds_find_char) New function.
+ (ds_compare) New function.
+ (ds_pointer_to_position) New function.
+ (ds_xstrdup) New function. Replaced all users of
+ xstrdup(ds_c_str(s)) by a call to this function.
+ (ds_gets) Renamed ds_read_line(). All callers updated.
+ (ds_get_config_line) Renamed ds_read_config_line(). All callers
+ updated.
+ (ds_puts) Renamed ds_put_cstr(). All callers updated.
+ (ds_put_substring) New function. Replaces ds_concat(). All
+ callers updated.
+ (ds_concat) Removed.
+ (ds_append_uninit) Renamed ds_put_uninit(). All callers updated.
+ (ds_printf) Renamed ds_put_format(). All callers updated.
+ (ds_vprintf) Renamed ds_put_vformat(). All callers updated.
+ (ds_putc) Renamed ds_put_char(). All callers updated.
+ (ds_putc_multiple) Renamed ds_put_char_multiple(). All callers
+ updated.
+ (ls_create) Removed. Replaced by ss_alloc_substring().
+ (ls_create_buffer) Removed. Replaced by ss_alloc_substring().
+ (ls_init) Removed. Replaced by ss_buffer().
+ (ls_shallow_copy) Removed. Just use assignment.
+ (ls_destroy) Removed. Replaced by ss_dealloc().
+ (ls_null) Removed.
+ (ls_null_p) Removed.
+ (ls_empty_p) Removed. Replaced by ss_is_empty().
+ (ls_c_str) Removed.
+ (ls_end) Removed. Replaced by ss_end().
+
+ * str.h (struct fixed_string): Renamed struct substring, updated
+ all users.
+ (CC_SPACES) New macro.
+ (CC_DIGITS) Ditto.
+ (CC_XDIGITS) Ditto.
+ (CC_LETTERS) Ditto.
+ (CC_ALNUM) Ditto.
+ (SS_EMPTY_INITIALIZER) Ditto.
+ (SS_LITERAL_INITIALIZER) Ditto.
+ (struct string) Removed string, length members. Add substring
+ member.
+ (DS_INITIALIZER) Rename DS_EMPTY_INITIALIZER.
+
+Tue May 30 19:45:12 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * i18n.c i18n.h: New files.
+
+Tue May 16 06:50:35 2006 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk (src/libpspp/version.c): Removed groff_font_path,
+ which is no longer used.
+
+ * message.c (request_bug_report_and_abort): Don't print
+ groff_font_path, which no longer exists.
+
+ * version.h (locale_dir): Removed groff_font_path.
+
+Sun May 14 22:06:53 2006 Ben Pfaff <blp@gnu.org>
+
+ * str.c (spprintf): Moved definition of spprintf() here, from
+ str.h.
+
+ * str.h: (nsprintf) Removed. Changed all users to use sprintf()
+ instead.
+ (nvsprintf) Removed. Changed all users to use vsprintf() instead.
+
+Sun May 14 20:52:20 2006 Ben Pfaff <blp@gnu.org>
+
+ * str.c (ds_init): Remove `capacity' argument and just initialize
+ the string to a capacity of zero. Updated all callers.
+
+Tue May 9 09:56:57 2006 Ben Pfaff <blp@gnu.org>
+
+ * va_copy.h: Removed. Now use va_copy() provided by gnulib
+ instead.
+
+ * automake.mk: (src_libpspp_libpspp_a_SOURCES) Removed va_copy.h.
+
+Sun May 7 18:17:32 2006 Ben Pfaff <blp@gnu.org>
+
+ * pool.c (pool_vasprintf): New function.
+ (pool_asprintf) New function.
+
+Sun May 7 17:09:54 2006 Ben Pfaff <blp@gnu.org>
+
+ * compiler.h: (macro WARN_UNUSED_RESULT) New macro.
+
+Sun May 7 14:32:25 2006 Ben Pfaff <blp@gnu.org>
+
+ * va_copy.h: New header.
+
+ * str.c: Use header instead of inlining va_copy() macro
+ implementation.
+
+Sun May 7 10:06:29 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * array.c array.h: Constness of sort.
+
+Thu May 4 18:01:37 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * message.c message.h: Added functions to create and copy a msg.
+
+Tue May 2 15:41:50 2006 Ben Pfaff <blp@gnu.org>
+
+ * str.c (ds_append_uninit): No need to add 1 to arg passed to
+ ds_extend(), because the argument does not include space for a
+ null terminator. Also, fix warning.
+
+Tue Apr 25 11:07:19 2006 Ben Pfaff <blp@gnu.org>
+
+ Finish reforming error message support. In this phase, move
+ message.c into libpspp.
+
+ * message.c: Move here from src/. Also remove a few unneeded
+ headers.
+
+ * automake.mk (src_libpspp_libpspp_a_SOURCES): Add message.c.
+
+Tue Apr 25 10:54:44 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming error message support. In this phase, drop
+ actual message printing from core code, substituting a callback,
+ and add the callback to each UI. Also, move verbose_msg() into
+ its own module.
+
+ * automake.mk (src_libpspp_libpspp_a_SOURCES): Added
+ verbose-msg.c, verbose-msg.h.
+
+ * verbose-msg.c: New file.
+
+ * verbose-msg.h: New file.
+
+Mon Apr 24 17:26:47 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming error message support. In this phase, rename
+ all the message functions and types to start with "msg", except
+ for the ones that will be moving to other modules anyway.
+
+ All references to the identifiers below were updated likewise.
+
+ * message.h: (enum file_locator) Renamed `enum msg_locator'.
+ (struct error) Renamed `struct msg'.
+ (err_assert_fail) Renamed msg_assert_fail().
+
+Sun Apr 23 22:07:06 2006 Ben Pfaff <blp@gnu.org>
+
+ 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.
+
+ * message.h: (struct error) Remove `title' member. Add `text'
+ member.
+
+Sun Apr 16 20:43:35 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming error message support. In this phase, we
+ divide the classification of messages along "category" and
+ "severity" axes.
+
+ * message.h: (enum msg_class) Named this set of enumerations.
+ (enum msg_category) New enum: MSG_GENERAL, MSG_SYNTAX, MSG_DATA.
+ (enum msg_severity) New enum: MSG_ERROR, MSG_WARNING, MSG_NOTE.
+ (msg_class_to_category) New inline function.
+ (msg_class_to_severity) New inline function.
+ (msg_class_from_category_and_severity) New inline function.
+ (struct error) Removed `class' member, added `category',
+ `severity'. Updated all users of this struct to use the new
+ members.
+
+Sun Apr 16 20:33:19 2006 Ben Pfaff <blp@gnu.org>
+
+ * str.c (ds_vprintf): Don't try to write into the string if it is
+ null.
+
+Sun Apr 16 18:52:41 2006 Ben Pfaff <blp@gnu.org>
+
+ GNU standards require "file name" instead of "filename" in
+ documentation. It's nice for our code to follow the convention
+ too.
+
+ * message.h: (struct file_locator) Rename filename member to
+ file_name. Updated all references.
+
+Sun Apr 16 16:05:43 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming error message support. In this phase, we get
+ rid of VM() and the other msg() support for "verbosity", replacing
+ it by a new function verbose_msg().
+
+ * message.h: (enum ERR_CLASS_COUNT) Renamed ERR_CLASS_CNT.
+ (enum ERR_CLASS_MASK) Removed.
+ (enum ERR_VERBOSITY_SHIFT) Removed.
+ (enum ERR_VERBOSITY_MASK) Removed.
+ (macro VM) Removed.
+
+Sun Apr 16 11:48:07 2006 Ben Pfaff <blp@gnu.org>
+
+ Start reforming error message support. In this phase, we get rid
+ of "installation errors" and change all uses of msg() in the
+ output drivers to uses of error() or error_at_line().
+
+ * message.h: Remove IE, IS enums.
+
+Mon Apr 3 11:10:21 2006 Ben Pfaff <blp@gnu.org>
+
+ * str.c: (ds_separate) Change interface for cleanliness and
+ consistency with ds_tokenize(), and rewrite to shorten and
+ simplify. Updated all callers.
+ (ds_tokenize) New function.
+
+Fri Mar 31 10:38:46 2006 Ben Pfaff <blp@gnu.org>
+
+ Add freaderror() analogous to fwriteerror() in gnulib.
+
+ * freaderror.c: New file.
+
+ * freaderror.h: New file.
+
+Thu Mar 30 16:15:37 2006 Ben Pfaff <blp@gnu.org>
+
+ * str.c: (ds_create) Adjust capacity selection.
+ (ds_init) Use MAX macro for clarity.
+ (ds_create_substr) Rewrote.
+ (ds_replace) Renamed ds_assign_c_str(), reimplemented. Changed
+ all callers to use a ds_assign_*() function.
+ (ds_init_substring) New function.
+ (ds_assign_string) New function.
+ (ds_assign_substring) New function.
+ (ds_assign_buffer) New function.
+ (ds_assign_c_str) New function.
+ (ds_truncate) Rewrote for clarity.
+ (ds_rpad) Reimplement in terms of ds_putc_multiple().
+ (ds_ltrim_spaces) Reimplement.
+ (ds_trim_spaces) New function.
+ (ds_separate) New function.
+ (ds_c_str) Make tolerant of null pointer, allowing static
+ initialization of strings.
+ (ds_find) Rename ds_span(), change interface.
+ (ds_n_find) Rename ds_cspan(), change interface.
+ (ds_at) New function.
+ (ds_first) Reimplement in terms of ds_at().
+ (remove_comment) New function.
+ (ds_get_config_line) Reimplement in terms of other functions.
+ Change type of LINE_NUMBER parameter. Updated all callers.
+ (ds_vprintf) Modify for clarity.
+ (ds_putc) Better to be safe than sorry.
+ (ds_putc_multiple) New function.
+
+ * str.h: (struct string) Reorder members.
+ (macro DS_INITIALIZER) New macro that can be used to initialize a
+ string (as empty).
+ (ds_c_str) Remove inline version.
+
+Tue Mar 28 13:49:11 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * str.[ch]: New functions ds_create_substr, ds_find, ds_n_find,
+ ds_ltrim_spaces
+
+Sat Mar 4 12:59:01 2006 Ben Pfaff <blp@gnu.org>
+
+ * compiler.h: New file.
+
+Sat Mar 4 11:55:16 2006 Ben Pfaff <blp@gnu.org>
+
+ * str.h: Now assume that sprintf() returns the correct value.
+ Always implement spprintf as a static inline function. Change
+ nsprintf, nvsprintf to simple macros that call sprintf, vsprintf.
+
+ * str.c: Remove spprintf, nsprintf, nvsprintf conditional
+ definitions.
+
+Thu Mar 2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * Moved files from src directory
sed -e 's/^/ \"/' -e 's/$$/\",/' $(top_srcdir)/AUTHORS >> $@
echo "0 };" >> $@
+
+EXTRA_DIST += src/libpspp/OChangeLog
+++ /dev/null
-2008-08-17 Jason H Stover <jhs@math.gcsu.edu>
-
- * linreg.c (post_sweep_computations): New function to re-use the
- re-usable. New function cache_init() to re-use the re-usable.
- pspp_linreg_with_cov() now estimates parameters via reg_sweep().
-
-2008-08-16 Jason H Stover <jhs@math.gcsu.edu>
-
- * linreg.c (pspp_linreg_with_cov): New function to estimate
- parameters directly from covariance matrix instead of using the
- entire data set.
-
- * linreg.c (rearrange_covariance_matrix): New function to ensure
- the columns of the covariance matrix correspond to the variables
- in the model.
-
-2008-07-24 John Darrington <john@darrington.wattle.id.au>
-
- * merge.c merge.h sort.c sort.h: Removed the value_cnt associated
- with case ordering. This ensures that the casereader returned by
- sort_execute now has the same dimensions as the casereader passed
- in.
-
-2008-07-24 Jason H Stover <jhs@math.gcsu.edu>
-
- * covariance-matrix.c (covariance_pass_two): Dropped weight
- argument. Corrected update of the entries of the covariance
- matrix.
-
- * covariance-matrix.c (column_iterate): Dropped weight
- argument. Corrected update of the entries of the covariance
- matrix.
-
- * covariance-matrix.c (covariance_update_categorical_numeric):
- Dropped weight argument. Corrected update of the entries of the
- covariance matrix.
-
-2008-07-17 Jason H Stover <jhs@math.gcsu.edu>
-
- * covariance-matrix.c (covariance_update_categorical_numeric):
- Altered to match new code in covariance_pass_two();
-
- * covariance-matrix.h: Fix declaration of covariance_pass_two.
-
- * covariance-matrix.c (covariance_pass_two): Moved numeric and
- categorical scopes of V2 inside for loop. If V1 is not
- categorical, but V2 is, recurse with the order of the variables
- reversed to use the code in the previous "if" scope.
-
-2008-07-16 Jason Stover <jhs@math.gcsu.edu>
-
- * covariance-matrix.c (covariance_pass_two): Renamed
- covariance_pass_one. Fixed update of covariance matrix when both
- variables are categorical.
- (column_iterate): New function.
-
-2008-07-15 Jason Stover <jhs@math.gcsu.edu>
-
- * covariance-matrix.c (covariance_pass_one): New file, new function.
-
-2008-06-21 Jason Stover <jhs@math.gcsu.edu>
-
- * linreg.c (pspp_linreg): Accept a struct design_matrix. Use new
- accessor functions pspp_coeff_get_mean, pspp_coeff_get_sd. New
- functions pspp_linreg_get_indep_variable_mean,
- pspp_linreg_set_indep_variable_mean,
- pspp_linreg_get_indep_variable_sd,
- pspp_linreg_set_indep_variable_sd. Altered pspp_linreg_get_coeff
- to use accessor function pspp_coeff_var_to_coeff.
-
- * coefficient.c: New functions pspp_coeff_get_mean,
- pspp_coeff_set_mean, pspp_coeff_get_sd, pspp_coeff_set_sd,
- pspp_coeff_var_to_coeff. Added doubles to hold mean and standard
- deviation in struct varinfo.
-
-2008-06-14 Jason Stover <jhs@math.gcsu.edu>
-
- * linreg/: moved linreg.[ch] to src/math.
-
-2008-05-15 Ben Pfaff <blp@gnu.org>
-
- Patch #6512.
-
- * moments.c (calc_moments): Use gsl_finite instead of finite, as a
- stopgap measure for portability until appropriate gnulib modules
- are available.
-
-2008-03-10 Jason Stover <jhs@math.gcsu.edu>
-
- * coefficient.c (pspp_linreg_get_coeff): Removed use of
- coefficient 0 as intercept.
-
-2008-03-01 Jason Stover <jhs@math.gcsu.edu>
-
- * coefficient.c (pspp_coeff_init): Ensure first arg is not a null
- pointer.
-
- * coefficient.c (pspp_linreg_get_coeff): Make sure we don't return
- a result beyond the last coefficient, or start with a coefficient
- beyond the last one if there is only one.
-
-2007-06-06 Ben Pfaff <blp@gnu.org>
-
- Adapt case sources, sinks, and clients of procedure code to the
- new infrastructure.
-
- * automake.mk: Add new files.
-
- * levene.c: Adapt to new casereaders. Abstract better.
-
- * merge.c: New file.
-
- * merge.h: New file.
-
- * sort.c: Rewrite in terms of case_ordering, merger.
-
-2007-05-31 Jason Stover <jhs@math.gcsu.edu>
-
- * interaction.c: New file.
- * interaction.h : New file.
-
-Mon Feb 5 15:42:14 2007 Ben Pfaff <blp@gnu.org>
-
- * moments.c (moments_pass_two): Reduce number of multiplications.
-
-Thu Dec 7 15:27:49 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * factor-stats.c factor-stats.h: Changed independent values to
- be pointers rather than copies.
-
-Wed Dec 6 21:14:59 2006 Ben Pfaff <blp@gnu.org>
-
- * coefficient.c: (pspp_coeff_get_value) Compare variable pointers
- instead of variable indexes.
- (pspp_linreg_get_coeff) Ditto.
- (design_matrix_col_to_var_index) Removed.
- (design_matrix_col_to_var) Compare variable pointers
- instead of variable indexes.
- (cmp_dm_var_index) Ditto.
- (design_matrix_var_to_column) Ditto.
- (dm_var_to_last_column) Ditto.
-
-Sun Nov 5 08:30:32 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * levene.c levene.h Changed to use the new casefilter structure.
-
-2006-07-15 Jason Stover <jhs@math.gcsu.edu>
-
- * coefficient.c (pspp_coeff_init): Make design_matrix arg const.
-
-2006-07-14 Jason Stover <jhs@math.gcsu.edu>
-
- * coefficient.c (pspp_coeff_init): Removed use of
- pspp_linreg_cache to make the routines more generally useful.
-
-2006-05-19 Jason Stover <jhs@math.gcsu.edu>
-
- * coefficient.h: Renamed pspp_linreg_coeff to pspp_coeff.
-
- * coefficient.c: Moved to src/math.
-
- * coefficient.h: Moved to src/math.
-
-Tue May 9 21:09:37 2006 Ben Pfaff <blp@gnu.org>
-
- * sort.c (sort_active_file_to_casefile): Check return value of
- multipass_procedure().
-
-Wed May 3 23:06:43 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming procedure execution. In this phase, get rid of
- many global variables, consolidating procedure execution in
- procedure.c. Encapsulate transformations in new "struct
- trns_chain". Also, change implementation of N OF CASES, FILTER,
- and PROCESS IF from special cases to transformations.
-
- * sort.c: (prepare_to_sort_active_file) Don't run a procedure
- here.
- (sort_active_file_in_place) Rewrite to run a procedure, capture
- the output, sort the output, and set that as the source for the
- next procedure.
- (struct sort_to_casefile_cb_data) New structure.
- (sort_to_casefile_callback) New function.
- (sort_active_file_to_casefile) Rewrite to use
- multipass_procedure().
-
-Sat Apr 29 11:09:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * removed unused variable.
-
-Sat Apr 15 18:01:22 2006 Ben Pfaff <blp@gnu.org>
-
- * factor-stats.c (metrics_postcalc): Add casts to fix warnings.
-
-Thu Mar 2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * Moved files from src directory
--- /dev/null
+2008-08-17 Jason H Stover <jhs@math.gcsu.edu>
+
+ * linreg.c (post_sweep_computations): New function to re-use the
+ re-usable. New function cache_init() to re-use the re-usable.
+ pspp_linreg_with_cov() now estimates parameters via reg_sweep().
+
+2008-08-16 Jason H Stover <jhs@math.gcsu.edu>
+
+ * linreg.c (pspp_linreg_with_cov): New function to estimate
+ parameters directly from covariance matrix instead of using the
+ entire data set.
+
+ * linreg.c (rearrange_covariance_matrix): New function to ensure
+ the columns of the covariance matrix correspond to the variables
+ in the model.
+
+2008-07-24 John Darrington <john@darrington.wattle.id.au>
+
+ * merge.c merge.h sort.c sort.h: Removed the value_cnt associated
+ with case ordering. This ensures that the casereader returned by
+ sort_execute now has the same dimensions as the casereader passed
+ in.
+
+2008-07-24 Jason H Stover <jhs@math.gcsu.edu>
+
+ * covariance-matrix.c (covariance_pass_two): Dropped weight
+ argument. Corrected update of the entries of the covariance
+ matrix.
+
+ * covariance-matrix.c (column_iterate): Dropped weight
+ argument. Corrected update of the entries of the covariance
+ matrix.
+
+ * covariance-matrix.c (covariance_update_categorical_numeric):
+ Dropped weight argument. Corrected update of the entries of the
+ covariance matrix.
+
+2008-07-17 Jason H Stover <jhs@math.gcsu.edu>
+
+ * covariance-matrix.c (covariance_update_categorical_numeric):
+ Altered to match new code in covariance_pass_two();
+
+ * covariance-matrix.h: Fix declaration of covariance_pass_two.
+
+ * covariance-matrix.c (covariance_pass_two): Moved numeric and
+ categorical scopes of V2 inside for loop. If V1 is not
+ categorical, but V2 is, recurse with the order of the variables
+ reversed to use the code in the previous "if" scope.
+
+2008-07-16 Jason Stover <jhs@math.gcsu.edu>
+
+ * covariance-matrix.c (covariance_pass_two): Renamed
+ covariance_pass_one. Fixed update of covariance matrix when both
+ variables are categorical.
+ (column_iterate): New function.
+
+2008-07-15 Jason Stover <jhs@math.gcsu.edu>
+
+ * covariance-matrix.c (covariance_pass_one): New file, new function.
+
+2008-06-21 Jason Stover <jhs@math.gcsu.edu>
+
+ * linreg.c (pspp_linreg): Accept a struct design_matrix. Use new
+ accessor functions pspp_coeff_get_mean, pspp_coeff_get_sd. New
+ functions pspp_linreg_get_indep_variable_mean,
+ pspp_linreg_set_indep_variable_mean,
+ pspp_linreg_get_indep_variable_sd,
+ pspp_linreg_set_indep_variable_sd. Altered pspp_linreg_get_coeff
+ to use accessor function pspp_coeff_var_to_coeff.
+
+ * coefficient.c: New functions pspp_coeff_get_mean,
+ pspp_coeff_set_mean, pspp_coeff_get_sd, pspp_coeff_set_sd,
+ pspp_coeff_var_to_coeff. Added doubles to hold mean and standard
+ deviation in struct varinfo.
+
+2008-06-14 Jason Stover <jhs@math.gcsu.edu>
+
+ * linreg/: moved linreg.[ch] to src/math.
+
+2008-05-15 Ben Pfaff <blp@gnu.org>
+
+ Patch #6512.
+
+ * moments.c (calc_moments): Use gsl_finite instead of finite, as a
+ stopgap measure for portability until appropriate gnulib modules
+ are available.
+
+2008-03-10 Jason Stover <jhs@math.gcsu.edu>
+
+ * coefficient.c (pspp_linreg_get_coeff): Removed use of
+ coefficient 0 as intercept.
+
+2008-03-01 Jason Stover <jhs@math.gcsu.edu>
+
+ * coefficient.c (pspp_coeff_init): Ensure first arg is not a null
+ pointer.
+
+ * coefficient.c (pspp_linreg_get_coeff): Make sure we don't return
+ a result beyond the last coefficient, or start with a coefficient
+ beyond the last one if there is only one.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ Adapt case sources, sinks, and clients of procedure code to the
+ new infrastructure.
+
+ * automake.mk: Add new files.
+
+ * levene.c: Adapt to new casereaders. Abstract better.
+
+ * merge.c: New file.
+
+ * merge.h: New file.
+
+ * sort.c: Rewrite in terms of case_ordering, merger.
+
+2007-05-31 Jason Stover <jhs@math.gcsu.edu>
+
+ * interaction.c: New file.
+ * interaction.h : New file.
+
+Mon Feb 5 15:42:14 2007 Ben Pfaff <blp@gnu.org>
+
+ * moments.c (moments_pass_two): Reduce number of multiplications.
+
+Thu Dec 7 15:27:49 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * factor-stats.c factor-stats.h: Changed independent values to
+ be pointers rather than copies.
+
+Wed Dec 6 21:14:59 2006 Ben Pfaff <blp@gnu.org>
+
+ * coefficient.c: (pspp_coeff_get_value) Compare variable pointers
+ instead of variable indexes.
+ (pspp_linreg_get_coeff) Ditto.
+ (design_matrix_col_to_var_index) Removed.
+ (design_matrix_col_to_var) Compare variable pointers
+ instead of variable indexes.
+ (cmp_dm_var_index) Ditto.
+ (design_matrix_var_to_column) Ditto.
+ (dm_var_to_last_column) Ditto.
+
+Sun Nov 5 08:30:32 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * levene.c levene.h Changed to use the new casefilter structure.
+
+2006-07-15 Jason Stover <jhs@math.gcsu.edu>
+
+ * coefficient.c (pspp_coeff_init): Make design_matrix arg const.
+
+2006-07-14 Jason Stover <jhs@math.gcsu.edu>
+
+ * coefficient.c (pspp_coeff_init): Removed use of
+ pspp_linreg_cache to make the routines more generally useful.
+
+2006-05-19 Jason Stover <jhs@math.gcsu.edu>
+
+ * coefficient.h: Renamed pspp_linreg_coeff to pspp_coeff.
+
+ * coefficient.c: Moved to src/math.
+
+ * coefficient.h: Moved to src/math.
+
+Tue May 9 21:09:37 2006 Ben Pfaff <blp@gnu.org>
+
+ * sort.c (sort_active_file_to_casefile): Check return value of
+ multipass_procedure().
+
+Wed May 3 23:06:43 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming procedure execution. In this phase, get rid of
+ many global variables, consolidating procedure execution in
+ procedure.c. Encapsulate transformations in new "struct
+ trns_chain". Also, change implementation of N OF CASES, FILTER,
+ and PROCESS IF from special cases to transformations.
+
+ * sort.c: (prepare_to_sort_active_file) Don't run a procedure
+ here.
+ (sort_active_file_in_place) Rewrite to run a procedure, capture
+ the output, sort the output, and set that as the source for the
+ next procedure.
+ (struct sort_to_casefile_cb_data) New structure.
+ (sort_to_casefile_callback) New function.
+ (sort_active_file_to_casefile) Rewrite to use
+ multipass_procedure().
+
+Sat Apr 29 11:09:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * removed unused variable.
+
+Sat Apr 15 18:01:22 2006 Ben Pfaff <blp@gnu.org>
+
+ * factor-stats.c (metrics_postcalc): Add casts to fix warnings.
+
+Thu Mar 2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * Moved files from src directory
src/math/design-matrix.c src/math/design-matrix.h \
src/math/random.c src/math/random.h \
src/math/sort.c src/math/sort.h
+
+EXTRA_DIST += src/math/OChangeLog
+++ /dev/null
-2006-06-04 Jason Stover <jhs@debs.hjklfdsss.org>
-
- * innovations.c (get_covariance): Initial version
-
-2006-05-25 Jason Stover <jhs@math.gcsu.edu>
-
- * innovations.c: New file
-
+++ /dev/null
-2006-07-16 Jason Stover <jhs@math.gcsu.edu>
-
- * innovations.c (get_coef): Fixed diagonal elements and call to
- innovations_convolve().
- (subtract_mean): New function. Subtract the mean before computing
- the coefficients.
-
-2006-07-15 Jason Stover <jhs@math.gcsu.edu>
-
- * innovations.c (get_covariance): Fixed computation of
- covariance. Made COV[i] the lag i covariance.
- (update_cov): New function.
- (get_covariance): Use gsl_vector_view's to get rows of correct
- lag.
-
-2006-07-14 Jason Stover <jhs@math.gcsu.edu>
-
- * innovations.c (innovations_struct_init): Fix initialization of
- coefficient.
-
-2006-07-13 Jason Stover <jhs@math.gcsu.edu>
-
- * innovations.c (pspp_innovations): Altered function to use struct
- design_matrix.
-
-2006-07-06 Jason Stover <jhs@math.gcsu.edu>
-
- * innovations.c (get_covariance): Fixed subscripts.
- (innovations_update_scale): Added check for subscript.
-
-2006-07-05 Jason Stover <jhs@math.gcsu.edu>
-
- * innovations.c (innovations_struct_init): New function.
-
-2006-07-03 Jason Stover <jhs@math.gcsu.edu>
-
- * innovations.c (init_theta): Fixed subscripts.
- * innovations.c (innovations_update_coeff): Fixed subscripts.
- * innovations.c (get_covarience): Fixed subscripts.
- * innovations.c (pspp_innovations_free): New function.
- * innovations.c (pspp_innovations_free_one): New function.
-
-2006-07-02 Jason Stover <jhs@math.gcsu.edu>
-
- * innovations.c (get_coef): Moved instructions to
- innovations_update_coeff() and init_theta().
- * innovations.c (get_coef): Fixed allocation of theta.
- * innovations.c (innovations_update_theta): New function.
- * innovations.c (init_theta): New function.
- * innovations.c (innovations_convolve): Fixed upper bound of
- subscript in sum.
-
-2006-07-01 Jason Stover <jhs@math.gcsu.edu>
-
- * innovations.c: Use gsl_matrices to avoid use of casefiles by
- backend math routine.
-
-2006-06-21 Jason Stover <jhs@math.gcsu.edu>
-
- * innovations.c (innovations_update_scale): New function.
- * innovations.c (get_coef): Save computed coefficients in est->coeff.
-
- * innovations.c (get_coef): Initialize and free the innovations
- coefficients. Call innovations_update_scale ().
-
-2006-06-16 Jason Stover <jhs@math.gcsu.edu>
-
- * innovations.c (innovations_convolve): New function.
- * innovations.c (get_coef): New function.
-
-2006-06-04 Jason Stover <jhs@math.gcsu.edu>
-
- * innovations.c (get_covariance): Initial version
-
-2006-05-25 Jason Stover <jhs@math.gcsu.edu>
-
- * innovations.c: New file
-
--- /dev/null
+2006-07-16 Jason Stover <jhs@math.gcsu.edu>
+
+ * innovations.c (get_coef): Fixed diagonal elements and call to
+ innovations_convolve().
+ (subtract_mean): New function. Subtract the mean before computing
+ the coefficients.
+
+2006-07-15 Jason Stover <jhs@math.gcsu.edu>
+
+ * innovations.c (get_covariance): Fixed computation of
+ covariance. Made COV[i] the lag i covariance.
+ (update_cov): New function.
+ (get_covariance): Use gsl_vector_view's to get rows of correct
+ lag.
+
+2006-07-14 Jason Stover <jhs@math.gcsu.edu>
+
+ * innovations.c (innovations_struct_init): Fix initialization of
+ coefficient.
+
+2006-07-13 Jason Stover <jhs@math.gcsu.edu>
+
+ * innovations.c (pspp_innovations): Altered function to use struct
+ design_matrix.
+
+2006-07-06 Jason Stover <jhs@math.gcsu.edu>
+
+ * innovations.c (get_covariance): Fixed subscripts.
+ (innovations_update_scale): Added check for subscript.
+
+2006-07-05 Jason Stover <jhs@math.gcsu.edu>
+
+ * innovations.c (innovations_struct_init): New function.
+
+2006-07-03 Jason Stover <jhs@math.gcsu.edu>
+
+ * innovations.c (init_theta): Fixed subscripts.
+ * innovations.c (innovations_update_coeff): Fixed subscripts.
+ * innovations.c (get_covarience): Fixed subscripts.
+ * innovations.c (pspp_innovations_free): New function.
+ * innovations.c (pspp_innovations_free_one): New function.
+
+2006-07-02 Jason Stover <jhs@math.gcsu.edu>
+
+ * innovations.c (get_coef): Moved instructions to
+ innovations_update_coeff() and init_theta().
+ * innovations.c (get_coef): Fixed allocation of theta.
+ * innovations.c (innovations_update_theta): New function.
+ * innovations.c (init_theta): New function.
+ * innovations.c (innovations_convolve): Fixed upper bound of
+ subscript in sum.
+
+2006-07-01 Jason Stover <jhs@math.gcsu.edu>
+
+ * innovations.c: Use gsl_matrices to avoid use of casefiles by
+ backend math routine.
+
+2006-06-21 Jason Stover <jhs@math.gcsu.edu>
+
+ * innovations.c (innovations_update_scale): New function.
+ * innovations.c (get_coef): Save computed coefficients in est->coeff.
+
+ * innovations.c (get_coef): Initialize and free the innovations
+ coefficients. Call innovations_update_scale ().
+
+2006-06-16 Jason Stover <jhs@math.gcsu.edu>
+
+ * innovations.c (innovations_convolve): New function.
+ * innovations.c (get_coef): New function.
+
+2006-06-04 Jason Stover <jhs@math.gcsu.edu>
+
+ * innovations.c (get_covariance): Initial version
+
+2006-05-25 Jason Stover <jhs@math.gcsu.edu>
+
+ * innovations.c: New file
+
src_math_ts_libpspp_ts_a_SOURCES = \
src/math/ts/innovations.c \
src/math/ts/innovations.h
+
+EXTRA_DIST += src/math/ts/OChangeLog
+++ /dev/null
-2008-02-08 John Darrington <john@darrington.wattle.id.au>
-
- * journal.c: (journal_write) flush the stream on writes.
- Useful for discovering syntax which causes a crash.
-
-2007-09-25 Ben Pfaff <blp@gnu.org>
-
- Patch #6210. Reviewed by John Darrington.
-
- * ascii.c: Implement ability to resize output device parameters to
- fit terminal window size as it changes.
- (struct ascii_driver_ext): New members `auto_width',
- `auto_length'.
- (ascii_open_driver): Initialize new members, call
- update_page_size.
- (update_page_size): New function to update device size.
- (handle_option): Support new "auto" setting for length, width.
- (ascii_open_page): Call update_page_size.
-
-2007-09-22 Ben Pfaff <blp@gnu.org>
-
- Bug #21128. Reviewed by John Darrington.
-
- * output.c (TWO_CHARS macro): Removed.
- (outp_evaluate_dimension): Changed interface, rewritten. Updated
- all callers.
- (internal_get_paper_size): Removed.
- (parse_unit): New function.
- (parse_paper_size): New function.
- (outp_get_paper_size): Tweaked interface, rewritten.
- (get_standard_paper_size): New function.
- (read_paper_conf): New function.
- (get_default_paper_size): New function.
-
- * postscript.c (ps_open_driver): Use system default paper size as
- default paper, instead of hard-coding US letter.
- (handle_option): Allow outp_evaluate_dimension to supply error
- message instead of generating it here.
-
-2007-09-21 Ben Pfaff <blp@gnu.org>
-
- * ascii.c (struct ascii_driver_ext): New member reported_error.
- (ascii_open_driver): Initialize reported_error.
- (ascii_open_page): Initialize the rest of the ascii driver data
- even if we fail to open the output file. Fixes bug #21117.
-
- * chart.c (chart_create): Initialize lp member. Fixes crash if
- chart initialization fails.
-
- * html.c (html_open_driver): Don't free chart_file_name in error
- case, since html_close_driver will do that. Fixes crash if file
- open fails.
-
- * postscript.c (ps_close_driver): Don't try to write to file if
- it's null. Fixes crash if file open fails.
-
-2007-09-08 John Darrington <john@darrington.wattle.id.au>
-
- * postscript.c html.c: Remove #include "getline.h" to concurr with
- new gnulib arrangements.
-
-2007-08-23 Ben Pfaff <blp@gnu.org>
-
- Implement journaling. Bug #17240.
-
- * automake.mk (output_sources): Add journal.c, journal.h.
-
- * journal.c: New file.
-
- * journal.h: New file.
-
-2007-08-16 Ben Pfaff <blp@gnu.org>
-
- * output.c output.h: export function outp_configure_driver_line.
- * ascii.c: Added an "append" property.
-
-2007-08-12 Ben Pfaff <blp@gnu.org>
-
- Add support for charts to ASCII driver. Bug #16364.
- Thanks to John Darrington for review.
-
- * ascii.c (struct ascii_driver_ext): Add chart_type,
- chart_file_name, chart_cnt members.
- (ascii_open_driver): Initialize new members.
- (static array option_tab): Add new options, reorganize slightly.
- (handle_option): Handle new options.
- (ascii_submit): New function.
- (ascii_chart_initialise): Implement.
- (ascii_chart_finalise): Implement.
-
- * chart.c (chart_init_separate): New function.
- (chart_finalise_separate): New function.
-
- * dummy-chart.c (chart_init_separate): New function.
- (chart_finalise_separate): New function.
-
- * html.c (html_open_driver): Don't free chart_file_name.
- (html_close_driver): Do free chart_file_name.
- (handle_option): Only give an error for chart-files options that
- don't contain "#".
- (html_initialise_chart): Use new chart_init_separate.
- (html_finalise_chart): Use new chart_finalise_separate.
-
-2007-07-25 Ben Pfaff <blp@gnu.org>
-
- Allow the user to specify an initialization string to write at the
- beginning of an ASCII output file.
- * ascii.c (struct ascii_driver_ext): New member `init'.
- (ascii_open_driver): Initialize `init'.
- (ascii_close_driver): Parse `init'.
- (ascii_open_page): Write `init' to output file.
-
- * output.c (get_option_token): Fix parsing of octal constants.
-
-2007-07-25 Ben Pfaff <blp@gnu.org>
-
- Make interactive output go to the terminal (bug #17213), by
- causing the UI to flush output to the user when it prompts for a
- command.
-
- * ascii.c (ascii_open_driver): Move the file open into
- ascii_open_page, so that we can re-open after a flush.
- (ascii_close_driver): Close file using ascii_flush.
- (ascii_open_page): Open the output file if it's not already open.
- Use fn_open so that we can support pipes.
- (ascii_close_page): Do nothing if output file not open.
- (ascii_flush): New function.
- (static var ascii_class): Add ascii_flush.
-
- * manager.c (som_flush): New function.
-
- * output.c (outp_flush): New function.
-
-Tue Feb 20 07:03:48 2007 Ben Pfaff <blp@gnu.org>
-
- * html.c: Don't need to include "getlogin_r.h" anymore, because
- gnulib merged it into <unistd.h>.
-
-Sun Feb 18 11:20:35 2007 Ben Pfaff <blp@gnu.org>
-
- * postscript.c: Add missing _() around message.
-
-Sun Feb 11 17:59:30 2007 Ben Pfaff <blp@gnu.org>
-
- * html.c (html_initialise_chart): Mark `this' parameter UNUSED to
- account for NO_CHARTS case.
-
-Sat Feb 3 21:56:46 2007 Ben Pfaff <blp@gnu.org>
-
- * table.c (tab_hline): Allow t->nr as y argument, so that we can
- draw a line below the bottom row of the table.
-
-Wed Feb 7 21:38:12 2007 Ben Pfaff <blp@gnu.org>
-
- * afm.c: Add #include <limits.h>. Thanks to John McCabe-Dansted
- <gmatht@gmail.com> for pointing out the need.
-
-Sun Oct 8 07:09:34 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * table.c (tab_destroy): Freed title, since this is not allocated
- from the pool.
-
- * html.c (html_open_driver): Freed chart_file_name.
-
-Wed Jul 12 21:03:37 2006 Ben Pfaff <blp@gnu.org>
-
- * table.c (tab_natural_width): Get rid of warning on empty column,
- which tended to just trigger false positives because we handle
- joined cells so badly. We need a real fix, and the warning is not
- helpful.
-
- * table.c (tab_offset): [DEBUGGING] Let row, col arguments be as
- big as row or column count.
-
-Wed Jul 12 20:58:19 2006 Ben Pfaff <blp@gnu.org>
-
- * output.c (outp_drivers): [DEBUGGING] Delete unused declaration.
-
-Sat Jul 1 17:20:03 2006 Ben Pfaff <blp@gnu.org>
-
- Make the destination for charts configurable in the HTML driver.
- Fixes bug #15723, "HTML driver creates .png files insecurely".
-
- * htmlP.h: (struct html_driver_ext) Add chart_file_name, chart_cnt
- members.
-
- * html.c: (html_open_driver) Initialize new members.
- (option_tab var) Add "chart-files" option.
- (handle_option) Parse "chart-files" option.
- (html_initialise_chart) Name file based on "chart-files" option.
-
-Sat Jul 1 22:41:26 2006 Ben Pfaff <blp@gnu.org>
-
- Fix bug #16644: Output Driver crashes in DISPLAY VARIABLES.
-
- * table.c (tab_create): Don't allocate t->hrh, t->wrv yet, because
- the table size might change before we're ready to use them.
- (tabi_table) Allocate them here instead.
-
-Fri Jun 9 14:42:35 2006 Ben Pfaff <blp@gnu.org>
-
- Reform string library.
-
- * output.c (init_default_drivers): Update call to
- configure_driver() to new interface.
- (get_option_token) Use a modifiable substring in interface instead
- of a separate position parameter. Use ss_get_*() functions.
- (configure_driver) Take and work with substrings.
- (configure_driver_line) Update call to configure_driver() to new
- interface.
- (outp_get_paper_size) Use substrings.
-
- * output.h (struct outp_class): Change open_driver interface to
- use substring. Update all implementations.
-
- * table.c (text_format): Change to return substring.
- (tab_title) Use xvasprintf().
-
- * table.h (struct tab_table): Change title member to char *.
-
-Thu May 25 18:02:53 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * table.c: Removed redundant extern declaration.
-
-Sun May 14 14:03:56 2006 Ben Pfaff <blp@gnu.org>
-
- * output.c (outp_eject_page): Always make sure that a page is open
- upon return.
-
-Sun May 14 13:54:58 2006 Ben Pfaff <blp@gnu.org>
-
- * postscript.c: (ps_chart_finalise) Fix format of %%EndDocument
- comment, which screwed up gv's idea of where one page ended and
- the next one began. Thanks to John Darrington for pointing out
- the bug.
-
-Sun Apr 16 11:48:25 2006 Ben Pfaff <blp@gnu.org>
-
- Start reforming error message support. In this phase, we get rid
- of "installation errors" and change all uses of msg() in the
- output drivers to uses of error() or error_at_line().
-
- * Removed all inclusion of <libpspp/message.h> in this directory.
-
- * output.c: Changed all uses of msg() to error() or
- error_at_line().
- (outp_read_devices) Maintain line number in int variable instead
- of "struct file_locator".
- (tokener) Renamed get_option_token(), rewritten, changed interface.
- (outp_parse_options) Change `options' argument to type const
- struct string *. Rewritten.
- (configure_driver) Passes a struct string * to ->open_driver()
- instead of char *.
- (outp_get_paper_size) Maintain line number in int variable instead
- of "struct file_locator". Removed stupid cache.
-
- * output.h: (struct outp_class) Change `open_driver' function to
- take const struct string * instead of const char *. Updated all
- implementations.
-
-Mon Apr 3 11:14:38 2006 Ben Pfaff <blp@gnu.org>
-
- Rewrite a lot of the output drivers and infrastructure.
- Started transitioning from msg() to error().
- Vertical rules in tables now default to putting a small gap
- between columns, instead of no gap or rule at all.
- See NEWS for user-visible changes.
-
- * automake.mk: (output_sources) Add afm.c, afm.h. Remove font.h,
- groff-font.c.
-
- * afm.c, afm.h: New files.
-
- * font.h: Removed.
-
- * groff-font.c: Removed.
-
- * ascii.c: Rewrote and simplified.
-
- * html.c: Ditto.
-
- * postscript.c: Ditto.
-
- * output.c: (struct outp_driver_class_list) Move here from
- output.h. Remove ref_count member and all references to it.
- (outp_init) Remove epsf_class references.
- (init_default_drivers) Use new configure_driver_line() interface.
- (parse_options) Renamed outp_parse_options(), changed interface.
- (configure_driver) Changed args from `const char *'s to `const
- struct string *'s. Rewrote. Don't call ->open_global(). Now
- just calls ->open_driver() instead of ->preopen_driver(),
- ->option(), ->postopen_driver().
- (configure_driver_line) Adapt to new configure_driver() interface.
- (destroy_driver) Don't call ->close_global().
- (option_cmp) Removed.
- (outp_match_keyword) Rewrite for simplicity.
- (outp_open_page) New function. Changed all equivalent
- functionality to use this function instead.
- (outp_close_page) Ditto.
- (outp_eject_page) Use above functions.
- (outp_string_width) Add font argument and change all callers to
- pass one.
-
- * output.h: (struct rect) Removed.
- (OUTP_L_*) Name this enumeration "enum outp_line_style".
- (OUTP_L_SPECIAL) Removed.
- (struct color) Removed.
- (OUTP_F_*) Removed.
- (struct outp_styles) Removed.
- (OUTP_T_*) Removed.
- (enum outp_justification) New, containing OUTP_RIGHT, OUTP_LEFT,
- OUTP_CENTER.
- (enum outp_font) New, containing OUTP_FIXED, OUTP_PROPORTIONAL,
- and OUTP_EMPHASIS.
- (struct outp_text) Replaced `options' member by `font' and
- `justification'. Renamed `s' to `string'. Removed `w', `l'.
- Updated all usages.
- (struct outp_class) Removed `magic', `open_global',
- `close_global', `font_sizes', `preopen_driver', `option',
- `postopen_driver', `line_horz', `line_vert', `line_intersection',
- `box', `polyline_begin', `polyline_point', `polyline_end',
- `text_set_font_by_name', `text_set_font_by_position',
- `text_set_font_family', `text_get_font_name',
- `text_get_font_family', `text_set_Size', and `text_get_size'
- members. Added `open_driver', `close_driver', `line' members.
- Changed interface of `open_page', `close_page', `text_metrics',
- `text_draw' members. Updated all usages.
- (struct outp_driver) Rearranged members. Removed `driver_open',
- `res', `horiz', `vert', `horiz_line_spacing', `vert_line_spacing'
- members.
- (struct outp_option_info) Removed.
- (struct outp_driver_class_list) Removed.
- (outp_match_keyword) Changed interface.
-
- * table.c: (tab_create) Now ignores reallocable argument: tables
- can always be reallocated. Use pool_create_container().
- Initialize vertical rules to UCHAR_MAX.
- (options_to_font) New function.
- (tab_destroy) Remove futile assignment.
- (tab_realloc) Initialize vertical rules to UCHAR_MAX.
- (text_format) Use xvasprintf() instead of local_alloc().
- (tab_title) Always format the argument, and drop the option
- argument. Change all callers to agree.
- (tab_natural_width) Adapt to new ->text_metrics() interface.
- (tab_natural_height) Ditto.
- (tab_joint_text) Clear rules within the joined cell. Now
- necessary because of the default to put spacing between cells.
- (tab_output_text) Use xvasprintf() instead of local_alloc().
- Remove special cases for fixed-width font.
- (rule_to_spacing_type) New function.
- (tabi_driver) Calculate rule widths manually now that we don't
- have ->trh or ->trv. Implement new default for vertical rules.
- (render_rows) New function.
- (tabi_render) Rewrite in terms of render_rows() for clarity.
- (translate_justification) New function.
- (rule_to_draw_type) New function.
- (get_hrule) New function.
- (get_vrule) New function.
- (render_horz_rule) New function.
- (render_vert_rule) New function.
- (render_rule_intersection) New function.
- (strip_width) New function.
- (strip_height) New function.
- (render_cell) New function.
- (render_strip) Rewrite in terms of new functions.
-
- * table.h: (TAB_EMPH) New flag.
- (TAB_FIX) New flag.
- (TAL_3) Removed.
- (TAL_GAP) Added.
- (TAL_SPACING) Removed.
- (struct tab_table) Members `trh', `hrv', `hr_tot', `vr_tot'
- removed.
- [DEBUGGING] (reallocable) Removed.
- (TAT_FIX) Removed. All references replaced by TAB_FIX.
- (TAT_TITLE) Now implies TAB_EMPH.
-
-Thu Mar 30 16:26:56 2006 Ben Pfaff <blp@gnu.org>
-
- * output.c: (colon_tokenize) Removed.
- (configure_driver_line) Rewrote to use ds_separate(). Fixed leak.
-
-Tue Mar 28 13:50:53 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * html.c, postscript.c, output.c: Changed to fit the new signature
- of fn_interp_vars
-
-Sun Mar 5 13:19:32 2006 Ben Pfaff <blp@gnu.org>
-
- * postscript.c: (postopen) Fix segfault when the active file has
- no title.
-
-Sat Mar 4 13:48:16 2006 Ben Pfaff <blp@gnu.org>
-
- We didn't provide a way to define these macros, so obviously
- there's little demand for them.
-
- * html.c: Don't test for NO_HTML.
-
- * postscript.c: Don't test for NO_POSTSCRIPT.
-
- * output.c: Don't test for either of those.
-
-Thu Mar 2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * Moved files from src directory
--- /dev/null
+2008-02-08 John Darrington <john@darrington.wattle.id.au>
+
+ * journal.c: (journal_write) flush the stream on writes.
+ Useful for discovering syntax which causes a crash.
+
+2007-09-25 Ben Pfaff <blp@gnu.org>
+
+ Patch #6210. Reviewed by John Darrington.
+
+ * ascii.c: Implement ability to resize output device parameters to
+ fit terminal window size as it changes.
+ (struct ascii_driver_ext): New members `auto_width',
+ `auto_length'.
+ (ascii_open_driver): Initialize new members, call
+ update_page_size.
+ (update_page_size): New function to update device size.
+ (handle_option): Support new "auto" setting for length, width.
+ (ascii_open_page): Call update_page_size.
+
+2007-09-22 Ben Pfaff <blp@gnu.org>
+
+ Bug #21128. Reviewed by John Darrington.
+
+ * output.c (TWO_CHARS macro): Removed.
+ (outp_evaluate_dimension): Changed interface, rewritten. Updated
+ all callers.
+ (internal_get_paper_size): Removed.
+ (parse_unit): New function.
+ (parse_paper_size): New function.
+ (outp_get_paper_size): Tweaked interface, rewritten.
+ (get_standard_paper_size): New function.
+ (read_paper_conf): New function.
+ (get_default_paper_size): New function.
+
+ * postscript.c (ps_open_driver): Use system default paper size as
+ default paper, instead of hard-coding US letter.
+ (handle_option): Allow outp_evaluate_dimension to supply error
+ message instead of generating it here.
+
+2007-09-21 Ben Pfaff <blp@gnu.org>
+
+ * ascii.c (struct ascii_driver_ext): New member reported_error.
+ (ascii_open_driver): Initialize reported_error.
+ (ascii_open_page): Initialize the rest of the ascii driver data
+ even if we fail to open the output file. Fixes bug #21117.
+
+ * chart.c (chart_create): Initialize lp member. Fixes crash if
+ chart initialization fails.
+
+ * html.c (html_open_driver): Don't free chart_file_name in error
+ case, since html_close_driver will do that. Fixes crash if file
+ open fails.
+
+ * postscript.c (ps_close_driver): Don't try to write to file if
+ it's null. Fixes crash if file open fails.
+
+2007-09-08 John Darrington <john@darrington.wattle.id.au>
+
+ * postscript.c html.c: Remove #include "getline.h" to concurr with
+ new gnulib arrangements.
+
+2007-08-23 Ben Pfaff <blp@gnu.org>
+
+ Implement journaling. Bug #17240.
+
+ * automake.mk (output_sources): Add journal.c, journal.h.
+
+ * journal.c: New file.
+
+ * journal.h: New file.
+
+2007-08-16 Ben Pfaff <blp@gnu.org>
+
+ * output.c output.h: export function outp_configure_driver_line.
+ * ascii.c: Added an "append" property.
+
+2007-08-12 Ben Pfaff <blp@gnu.org>
+
+ Add support for charts to ASCII driver. Bug #16364.
+ Thanks to John Darrington for review.
+
+ * ascii.c (struct ascii_driver_ext): Add chart_type,
+ chart_file_name, chart_cnt members.
+ (ascii_open_driver): Initialize new members.
+ (static array option_tab): Add new options, reorganize slightly.
+ (handle_option): Handle new options.
+ (ascii_submit): New function.
+ (ascii_chart_initialise): Implement.
+ (ascii_chart_finalise): Implement.
+
+ * chart.c (chart_init_separate): New function.
+ (chart_finalise_separate): New function.
+
+ * dummy-chart.c (chart_init_separate): New function.
+ (chart_finalise_separate): New function.
+
+ * html.c (html_open_driver): Don't free chart_file_name.
+ (html_close_driver): Do free chart_file_name.
+ (handle_option): Only give an error for chart-files options that
+ don't contain "#".
+ (html_initialise_chart): Use new chart_init_separate.
+ (html_finalise_chart): Use new chart_finalise_separate.
+
+2007-07-25 Ben Pfaff <blp@gnu.org>
+
+ Allow the user to specify an initialization string to write at the
+ beginning of an ASCII output file.
+ * ascii.c (struct ascii_driver_ext): New member `init'.
+ (ascii_open_driver): Initialize `init'.
+ (ascii_close_driver): Parse `init'.
+ (ascii_open_page): Write `init' to output file.
+
+ * output.c (get_option_token): Fix parsing of octal constants.
+
+2007-07-25 Ben Pfaff <blp@gnu.org>
+
+ Make interactive output go to the terminal (bug #17213), by
+ causing the UI to flush output to the user when it prompts for a
+ command.
+
+ * ascii.c (ascii_open_driver): Move the file open into
+ ascii_open_page, so that we can re-open after a flush.
+ (ascii_close_driver): Close file using ascii_flush.
+ (ascii_open_page): Open the output file if it's not already open.
+ Use fn_open so that we can support pipes.
+ (ascii_close_page): Do nothing if output file not open.
+ (ascii_flush): New function.
+ (static var ascii_class): Add ascii_flush.
+
+ * manager.c (som_flush): New function.
+
+ * output.c (outp_flush): New function.
+
+Tue Feb 20 07:03:48 2007 Ben Pfaff <blp@gnu.org>
+
+ * html.c: Don't need to include "getlogin_r.h" anymore, because
+ gnulib merged it into <unistd.h>.
+
+Sun Feb 18 11:20:35 2007 Ben Pfaff <blp@gnu.org>
+
+ * postscript.c: Add missing _() around message.
+
+Sun Feb 11 17:59:30 2007 Ben Pfaff <blp@gnu.org>
+
+ * html.c (html_initialise_chart): Mark `this' parameter UNUSED to
+ account for NO_CHARTS case.
+
+Sat Feb 3 21:56:46 2007 Ben Pfaff <blp@gnu.org>
+
+ * table.c (tab_hline): Allow t->nr as y argument, so that we can
+ draw a line below the bottom row of the table.
+
+Wed Feb 7 21:38:12 2007 Ben Pfaff <blp@gnu.org>
+
+ * afm.c: Add #include <limits.h>. Thanks to John McCabe-Dansted
+ <gmatht@gmail.com> for pointing out the need.
+
+Sun Oct 8 07:09:34 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * table.c (tab_destroy): Freed title, since this is not allocated
+ from the pool.
+
+ * html.c (html_open_driver): Freed chart_file_name.
+
+Wed Jul 12 21:03:37 2006 Ben Pfaff <blp@gnu.org>
+
+ * table.c (tab_natural_width): Get rid of warning on empty column,
+ which tended to just trigger false positives because we handle
+ joined cells so badly. We need a real fix, and the warning is not
+ helpful.
+
+ * table.c (tab_offset): [DEBUGGING] Let row, col arguments be as
+ big as row or column count.
+
+Wed Jul 12 20:58:19 2006 Ben Pfaff <blp@gnu.org>
+
+ * output.c (outp_drivers): [DEBUGGING] Delete unused declaration.
+
+Sat Jul 1 17:20:03 2006 Ben Pfaff <blp@gnu.org>
+
+ Make the destination for charts configurable in the HTML driver.
+ Fixes bug #15723, "HTML driver creates .png files insecurely".
+
+ * htmlP.h: (struct html_driver_ext) Add chart_file_name, chart_cnt
+ members.
+
+ * html.c: (html_open_driver) Initialize new members.
+ (option_tab var) Add "chart-files" option.
+ (handle_option) Parse "chart-files" option.
+ (html_initialise_chart) Name file based on "chart-files" option.
+
+Sat Jul 1 22:41:26 2006 Ben Pfaff <blp@gnu.org>
+
+ Fix bug #16644: Output Driver crashes in DISPLAY VARIABLES.
+
+ * table.c (tab_create): Don't allocate t->hrh, t->wrv yet, because
+ the table size might change before we're ready to use them.
+ (tabi_table) Allocate them here instead.
+
+Fri Jun 9 14:42:35 2006 Ben Pfaff <blp@gnu.org>
+
+ Reform string library.
+
+ * output.c (init_default_drivers): Update call to
+ configure_driver() to new interface.
+ (get_option_token) Use a modifiable substring in interface instead
+ of a separate position parameter. Use ss_get_*() functions.
+ (configure_driver) Take and work with substrings.
+ (configure_driver_line) Update call to configure_driver() to new
+ interface.
+ (outp_get_paper_size) Use substrings.
+
+ * output.h (struct outp_class): Change open_driver interface to
+ use substring. Update all implementations.
+
+ * table.c (text_format): Change to return substring.
+ (tab_title) Use xvasprintf().
+
+ * table.h (struct tab_table): Change title member to char *.
+
+Thu May 25 18:02:53 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * table.c: Removed redundant extern declaration.
+
+Sun May 14 14:03:56 2006 Ben Pfaff <blp@gnu.org>
+
+ * output.c (outp_eject_page): Always make sure that a page is open
+ upon return.
+
+Sun May 14 13:54:58 2006 Ben Pfaff <blp@gnu.org>
+
+ * postscript.c: (ps_chart_finalise) Fix format of %%EndDocument
+ comment, which screwed up gv's idea of where one page ended and
+ the next one began. Thanks to John Darrington for pointing out
+ the bug.
+
+Sun Apr 16 11:48:25 2006 Ben Pfaff <blp@gnu.org>
+
+ Start reforming error message support. In this phase, we get rid
+ of "installation errors" and change all uses of msg() in the
+ output drivers to uses of error() or error_at_line().
+
+ * Removed all inclusion of <libpspp/message.h> in this directory.
+
+ * output.c: Changed all uses of msg() to error() or
+ error_at_line().
+ (outp_read_devices) Maintain line number in int variable instead
+ of "struct file_locator".
+ (tokener) Renamed get_option_token(), rewritten, changed interface.
+ (outp_parse_options) Change `options' argument to type const
+ struct string *. Rewritten.
+ (configure_driver) Passes a struct string * to ->open_driver()
+ instead of char *.
+ (outp_get_paper_size) Maintain line number in int variable instead
+ of "struct file_locator". Removed stupid cache.
+
+ * output.h: (struct outp_class) Change `open_driver' function to
+ take const struct string * instead of const char *. Updated all
+ implementations.
+
+Mon Apr 3 11:14:38 2006 Ben Pfaff <blp@gnu.org>
+
+ Rewrite a lot of the output drivers and infrastructure.
+ Started transitioning from msg() to error().
+ Vertical rules in tables now default to putting a small gap
+ between columns, instead of no gap or rule at all.
+ See NEWS for user-visible changes.
+
+ * automake.mk: (output_sources) Add afm.c, afm.h. Remove font.h,
+ groff-font.c.
+
+ * afm.c, afm.h: New files.
+
+ * font.h: Removed.
+
+ * groff-font.c: Removed.
+
+ * ascii.c: Rewrote and simplified.
+
+ * html.c: Ditto.
+
+ * postscript.c: Ditto.
+
+ * output.c: (struct outp_driver_class_list) Move here from
+ output.h. Remove ref_count member and all references to it.
+ (outp_init) Remove epsf_class references.
+ (init_default_drivers) Use new configure_driver_line() interface.
+ (parse_options) Renamed outp_parse_options(), changed interface.
+ (configure_driver) Changed args from `const char *'s to `const
+ struct string *'s. Rewrote. Don't call ->open_global(). Now
+ just calls ->open_driver() instead of ->preopen_driver(),
+ ->option(), ->postopen_driver().
+ (configure_driver_line) Adapt to new configure_driver() interface.
+ (destroy_driver) Don't call ->close_global().
+ (option_cmp) Removed.
+ (outp_match_keyword) Rewrite for simplicity.
+ (outp_open_page) New function. Changed all equivalent
+ functionality to use this function instead.
+ (outp_close_page) Ditto.
+ (outp_eject_page) Use above functions.
+ (outp_string_width) Add font argument and change all callers to
+ pass one.
+
+ * output.h: (struct rect) Removed.
+ (OUTP_L_*) Name this enumeration "enum outp_line_style".
+ (OUTP_L_SPECIAL) Removed.
+ (struct color) Removed.
+ (OUTP_F_*) Removed.
+ (struct outp_styles) Removed.
+ (OUTP_T_*) Removed.
+ (enum outp_justification) New, containing OUTP_RIGHT, OUTP_LEFT,
+ OUTP_CENTER.
+ (enum outp_font) New, containing OUTP_FIXED, OUTP_PROPORTIONAL,
+ and OUTP_EMPHASIS.
+ (struct outp_text) Replaced `options' member by `font' and
+ `justification'. Renamed `s' to `string'. Removed `w', `l'.
+ Updated all usages.
+ (struct outp_class) Removed `magic', `open_global',
+ `close_global', `font_sizes', `preopen_driver', `option',
+ `postopen_driver', `line_horz', `line_vert', `line_intersection',
+ `box', `polyline_begin', `polyline_point', `polyline_end',
+ `text_set_font_by_name', `text_set_font_by_position',
+ `text_set_font_family', `text_get_font_name',
+ `text_get_font_family', `text_set_Size', and `text_get_size'
+ members. Added `open_driver', `close_driver', `line' members.
+ Changed interface of `open_page', `close_page', `text_metrics',
+ `text_draw' members. Updated all usages.
+ (struct outp_driver) Rearranged members. Removed `driver_open',
+ `res', `horiz', `vert', `horiz_line_spacing', `vert_line_spacing'
+ members.
+ (struct outp_option_info) Removed.
+ (struct outp_driver_class_list) Removed.
+ (outp_match_keyword) Changed interface.
+
+ * table.c: (tab_create) Now ignores reallocable argument: tables
+ can always be reallocated. Use pool_create_container().
+ Initialize vertical rules to UCHAR_MAX.
+ (options_to_font) New function.
+ (tab_destroy) Remove futile assignment.
+ (tab_realloc) Initialize vertical rules to UCHAR_MAX.
+ (text_format) Use xvasprintf() instead of local_alloc().
+ (tab_title) Always format the argument, and drop the option
+ argument. Change all callers to agree.
+ (tab_natural_width) Adapt to new ->text_metrics() interface.
+ (tab_natural_height) Ditto.
+ (tab_joint_text) Clear rules within the joined cell. Now
+ necessary because of the default to put spacing between cells.
+ (tab_output_text) Use xvasprintf() instead of local_alloc().
+ Remove special cases for fixed-width font.
+ (rule_to_spacing_type) New function.
+ (tabi_driver) Calculate rule widths manually now that we don't
+ have ->trh or ->trv. Implement new default for vertical rules.
+ (render_rows) New function.
+ (tabi_render) Rewrite in terms of render_rows() for clarity.
+ (translate_justification) New function.
+ (rule_to_draw_type) New function.
+ (get_hrule) New function.
+ (get_vrule) New function.
+ (render_horz_rule) New function.
+ (render_vert_rule) New function.
+ (render_rule_intersection) New function.
+ (strip_width) New function.
+ (strip_height) New function.
+ (render_cell) New function.
+ (render_strip) Rewrite in terms of new functions.
+
+ * table.h: (TAB_EMPH) New flag.
+ (TAB_FIX) New flag.
+ (TAL_3) Removed.
+ (TAL_GAP) Added.
+ (TAL_SPACING) Removed.
+ (struct tab_table) Members `trh', `hrv', `hr_tot', `vr_tot'
+ removed.
+ [DEBUGGING] (reallocable) Removed.
+ (TAT_FIX) Removed. All references replaced by TAB_FIX.
+ (TAT_TITLE) Now implies TAB_EMPH.
+
+Thu Mar 30 16:26:56 2006 Ben Pfaff <blp@gnu.org>
+
+ * output.c: (colon_tokenize) Removed.
+ (configure_driver_line) Rewrote to use ds_separate(). Fixed leak.
+
+Tue Mar 28 13:50:53 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * html.c, postscript.c, output.c: Changed to fit the new signature
+ of fn_interp_vars
+
+Sun Mar 5 13:19:32 2006 Ben Pfaff <blp@gnu.org>
+
+ * postscript.c: (postopen) Fix segfault when the active file has
+ no title.
+
+Sat Mar 4 13:48:16 2006 Ben Pfaff <blp@gnu.org>
+
+ We didn't provide a way to define these macros, so obviously
+ there's little demand for them.
+
+ * html.c: Don't test for NO_HTML.
+
+ * postscript.c: Don't test for NO_POSTSCRIPT.
+
+ * output.c: Don't test for either of those.
+
+Thu Mar 2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * Moved files from src directory
EXTRA_DIST += src/output/chart.c
endif
-
+EXTRA_DIST += src/output/OChangeLog
+++ /dev/null
-2007-09-18 Ben Pfaff <blp@gnu.org>
-
- * plot-hist.c (histogram_plot): Remove incorrect assertion. Fixes
- bug #21101. Reviewed by John Darrington.
-
-Sun Feb 11 19:43:39 2007 Ben Pfaff <blp@gnu.org>
-
- * dummy-chart.c: Apply UNUSED and include additional headers to
- avoid complaints from GCC. Patch #5739.
-
-Sat Mar 4 13:24:39 2006 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Move definition of NO_CHARTS here from pref.h.orig.
-
-Thu Mar 2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * Moved files from src directory
--- /dev/null
+2007-09-18 Ben Pfaff <blp@gnu.org>
+
+ * plot-hist.c (histogram_plot): Remove incorrect assertion. Fixes
+ bug #21101. Reviewed by John Darrington.
+
+Sun Feb 11 19:43:39 2007 Ben Pfaff <blp@gnu.org>
+
+ * dummy-chart.c: Apply UNUSED and include additional headers to
+ avoid complaints from GCC. Patch #5739.
+
+Sat Mar 4 13:24:39 2006 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Move definition of NO_CHARTS here from pref.h.orig.
+
+Thu Mar 2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * Moved files from src directory
AM_CPPFLAGS += -DNO_CHARTS
endif
+
+EXTRA_DIST += src/output/charts/OChangeLog
+++ /dev/null
-2008-03-04 Ben Pfaff <blp@gnu.org>
-
- Patch #6427. Reviewed by John Darrington.
-
- * automake.mk: Add new files.
-
- * syntax-gen.c: New file. Based on former
- src/libpspp/syntax-gen.c but rewritten.
-
- * syntax-gen.h: New file. Based on former
- src/libpspp/syntax-gen.h but rewritten.
-
-2007-10-10 Ben Pfaff <blp@gnu.org>
-
- * src/ui/debugger.c: Use debugger if HAVE_FORK is defined, not
- HAVE_SYS_TYPES_H. The latter is almost universal, but the former
- is only available where it can be implemented.
-
-2007-06-06 Ben Pfaff <blp@gnu.org>
-
- Adapt case sources, sinks, and clients of procedure code to the
- new infrastructure.
-
- * automake.mk: Remove files.
-
- * flexifile.c: Removed, dead code.
- * flexifile.h: Ditto.
-
-Thu Feb 8 06:34:52 2007 Ben Pfaff <blp@gnu.org>
-
- * [!(HAVE_SYS_TYPES_H && HAVE_SYS_WAIT_H)] (connect_debugger) In
- this case, we don't know how to connect to GDB, so just return.
-
-Mon Jan 15 11:06:31 2007 Ben Pfaff <blp@gnu.org>
-
- * flexifile.c [DEBUGGING] (dump_case_data): Use case accessor
- functions.
-
-Wed Dec 20 21:14:29 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * flexifile.c (flexifilereader_cnum) : new function
-
-Thu Nov 16 20:44:58 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * debugger.c debugger.h New files.
-
-Mon Jul 17 18:22:18 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * flexifile.c flexifile.h: New files. Implementations of casefiles.
-
-Thu Mar 2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * Moved files from src directory
--- /dev/null
+2008-03-04 Ben Pfaff <blp@gnu.org>
+
+ Patch #6427. Reviewed by John Darrington.
+
+ * automake.mk: Add new files.
+
+ * syntax-gen.c: New file. Based on former
+ src/libpspp/syntax-gen.c but rewritten.
+
+ * syntax-gen.h: New file. Based on former
+ src/libpspp/syntax-gen.h but rewritten.
+
+2007-10-10 Ben Pfaff <blp@gnu.org>
+
+ * src/ui/debugger.c: Use debugger if HAVE_FORK is defined, not
+ HAVE_SYS_TYPES_H. The latter is almost universal, but the former
+ is only available where it can be implemented.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ Adapt case sources, sinks, and clients of procedure code to the
+ new infrastructure.
+
+ * automake.mk: Remove files.
+
+ * flexifile.c: Removed, dead code.
+ * flexifile.h: Ditto.
+
+Thu Feb 8 06:34:52 2007 Ben Pfaff <blp@gnu.org>
+
+ * [!(HAVE_SYS_TYPES_H && HAVE_SYS_WAIT_H)] (connect_debugger) In
+ this case, we don't know how to connect to GDB, so just return.
+
+Mon Jan 15 11:06:31 2007 Ben Pfaff <blp@gnu.org>
+
+ * flexifile.c [DEBUGGING] (dump_case_data): Use case accessor
+ functions.
+
+Wed Dec 20 21:14:29 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * flexifile.c (flexifilereader_cnum) : new function
+
+Thu Nov 16 20:44:58 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * debugger.c debugger.h New files.
+
+Mon Jul 17 18:22:18 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * flexifile.c flexifile.h: New files. Implementations of casefiles.
+
+Thu Mar 2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * Moved files from src directory
src/ui/debugger.h \
src/ui/syntax-gen.c \
src/ui/syntax-gen.h
+
+EXTRA_DIST += src/ui/OChangeLog
+++ /dev/null
-2008-05-20 John Darrington <john@darrington.wattle.id.au>
-
- * automake.mk: Added the -no-undefined flag so that dlls can be built
- on w32 platforms. Abstracted the dependencies of glade-register.c
- into a new shared library libpsppwidgets.so, which can be either
- linked directly by psppire or by libpsppire.so
-
- * psppire-keypad.c: Changed snprintf to g_snprintf so as not to use
- gnulib.
-
-2008-05-15 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Rename install-data-hook to yelp-check and mark it
- phony. This avoids an automake warning for duplicate
- install-data-hook commands in doc/automake.mk and this file
- (automake does not understand double-colon rules, since they are
- not in POSIX).
-
-2008-05-09 John Darrington <john@darrington.wattle.id.au>
-
- * automake.mk: On make install, warn about the non-existance of yelp.
-
-2008-05-08 Ben Pfaff <blp@gnu.org>
-
- Patch #6505. Reviewed by John Darrington.
-
- * text-data-import-dialog.c: Don't make the user wiggle the mouse
- to be able to click on the Forward button twice in quick
- succession.
- (add_page_to_assistant): Mark pages in the assistant complete
- immediately.
- (on_prepare): No longer mark pages complete upon first visit.
-
-2008-05-08 Ben Pfaff <blp@gnu.org>
-
- Patch #6505. Reviewed by John Darrington.
-
- * text-data-import-dialog.c: (struct assistant) New member
- `watch_cursor'.
- (revise_fields_preview): Change the mouse pointer to a watch to
- indicate that a long operation is ongoing.
- (prepare_formats_page): Ditto.
- (on_variable_change): Ditto.
- (push_watch_cursor): New function.
- (pop_watch_cursor): New function.
-
-2008-05-08 John Darrington <john@darrington.wattle.id.au>
-
- * data-editor.c: In popup menus, connect the Insert Variable and
- Insert Case callbacks manually, instead of relying on
- gtk_action_connect_proxy, as the latter connects a label with a
- mnemonic which is inappropriate.
-
-2008-05-06 Ben Pfaff <blp@gnu.org>
-
- Bug #23127. Reviewed by John Darrington. Tested by Jason Stover,
- in an earlier form.
-
- * text-data-import-dialog.c (get_tooltip_location): Prevent crash
- when a tooltip is being prepared when the assistant is closed.
-
-2008-05-06 Ben Pfaff <blp@gnu.org>
-
- * text-data-import-dialog.c (text_data_import_assistant): Allocate
- the struct import_assistant on the heap instead of the stack, to
- make it easier for memory debuggers such as Valgrind to point out
- use of its members after this function returns.
-
-2008-03-25 John Darrington <john@darrington.wattle.id.au>
-
- * data-editor.glade: Removed unused menuitems.
-
- * data-editor.c data-editor.glade: Added Mnemonics to all menuitems.
-
-2008-03-16 Ben Pfaff <blp@gnu.org>
-
- Patch #5368. Reviewed by John Darrington. Tested by Jason
- Stover.
-
- * automake.mk: Add new files.
-
- * data-editor.glade: Add "import delimited text data" menu item.
-
- * data-editor.c: Connect "import delimited text data" menu item.
-
- * text-data-import-dialog.c: New file.
-
- * text-data-import-dialog.h: New file.
-
- * text-data-import.glade: New file.
-
-2008-03-07 Ben Pfaff <blp@gnu.org>
-
- * psppire-var-sheet.c: Initialize "may-create-vars" to TRUE by
- default.
-
-2008-03-06 Ben Pfaff <blp@gnu.org>
-
- * psppire-var-sheet.c psppire-var-sheet.h: Add "may-create-vars"
- property to var sheet that controls whether the user can create
- new variables in the dictionary. Needed by upcoming patch #6358.
- Reviewed by John Darrington.
-
-2008-03-04 Ben Pfaff <blp@gnu.org>
-
- Patch #6427. Reviewed by John Darrington.
-
- * comments-dialog.c: Adapt to new syntax generating code in
- ui/syntax-gen.[ch].
-
- * data-editor.c: Ditto.
-
- * recode-dialog.c: Ditto.
-
- * t-test-independent-samples-dialog.c: Ditto.
-
-2008-02-29 John Darrington <john@darrington.wattle.id.au>
-
- * psppire-data-editor.c psppire-data-editor.h: New files. Contains functionality
- previously scattered thoughout data-editor.c and elsewhere.
-
- * data-editor.c data-editor.h: Abstracted the variable sheet, the data sheet and
- their containing GtkNotebook into a new Object.
-
- * data-sheet.c data-sheet.h: Deleted.
-
- * var-sheet.c var-sheet.h: Deleted. Moved to psppire-var-sheet.[ch]
-
- * psppire-var-sheet.c psppire-var-sheet.h: New files.
-
- * clipboard.c clipboard.h: Deleted. Moved to psppire-data-editor.c
-
- * psppire-var-store.c psppire-var-store.h: Updated symbols to avoid name clashes.
-
- * comments-dialog.c compute-dialog.c crosstabs-dialog.c descriptives-dialog.c
- examine-dialog.c find-dialog.c frequencies-dialog.c goto-case-dialog.c
- oneway-anova-dialog.c rank-dialog.c recode-dialog.c select-cases-dialog.c
- sort-cases-dialog.c split-file-dialog.c t-test-independent-samples-dialog.c
- transpose-dialog.c variable-info-dialog.c weight-cases-dialog.c t-test-one-sample.c
- t-test-paired-samples.c: Updated dialogs to match above changes.
-
-2008-02-27 Jason Stover <jhs@math.gcsu.edu>
-
- * regression-dialog.c: New file.
-
- * regression-dialog.h: New file.
-
- * regression.glade: New file.
-
-2008-02-19 Ben Pfaff <blp@gnu.org>
-
- Patch #6426. Reviewed by John Darrington.
-
- * psppire-var-store.c: Add "trailing-rows", "format-type"
- properties to PsppireVarStore.
-
-2008-02-19 Ben Pfaff <blp@gnu.org>
-
- * message-dialog.c (popup_messages): Always destroy `msg' and
- `lead' strings, avoiding a memory leak. Thanks to John Darrington
- for reporting the problem.
-
-2008-02-19 John Darrington <john@darrington.wattle.id.au>
-
- * dict-display.c: Display names of variables in dialog box
- dictionary treeviews, when the mouse hovers over the variable.
-
-2008-02-13 John Darrington <john@darrington.wattle.id.au>
-
- * variable-info-dialog.c: Fix crash when clicking "Jump" when no
- variable selected. Add a valid predicate so that this can't
- happen anyway.
-
- * compute-dialog.c: Fix crash when trying to set label on non
- existant variable.
-
-2008-02-09 Ben Pfaff <blp@gnu.org>
-
- Consolidate multiple messages into single message dialog. Patch
- #6405. Thanks to John Darrington for review.
-
- * automake.mk (dist_src_ui_gui_psppire_DATA): Add
- message-dialog.glade.
-
- * helper.c (give_help): Use GtkMessageDialog directly instead of
- trying to reuse message-dialog code.
-
- * message-dialog.c: Rewritten.
-
- * message-dialog.glade: New file.
-
-2008-02-08 Jason Stover <jhs@math.gcsu.edu>
-
- * crosstabs-dialog.c: New file.
-
- * crosstabs-dialog.h: New file.
-
- * crosstabs.glade: New file.
-
-2008-02-08 John Darrington <john@darrington.wattle.id.au>
-
- * psppire-data-store.c: Remove feature which automatically inserts
- cases at end of data.
-
- * datasheet.c: Make rows after the last + 1, not editable.
-
-2008-02-08 John Darrington <john@darrington.wattle.id.au>
-
- * sort-cases-dialog.c transpose-dialog.c: Added dialog_valid
- predicates.
-
-2008-02-04 John Darrington <john@darrington.wattle.id.au>
-
- * checkbox-treeview.c: In toggle callback, use the treeview's
- current model, instead of relying on the one set at creation.
- Use attributes instead of cell_renderer functions.
-
-2008-02-03 John Darrington <john@darrington.wattle.id.au>
-
- * psppire-case-file.c psppire-case-file.h: Dont clone the casereader
- before creating datasheet. Add properties instead of direct code
- in _new function.
-
- * psppire-data-store.c: Implement proper dispose function.
-
-2008-01-29 John Darrington <john@darrington.wattle.id.au>
-
- * psppire-var-ptr.c psppire-var-ptr.h: New files
-
- * t-test-paired-samples.c t-test-paired-samples.h: New files
-
- * dialog-common.c dialog-common.h (append_variable_names): Add extra
- argument to specify the column number containing the variables.
-
- * psppire-selector.c psppire-selector.h: Add auxilliary data variable
- to SelectItemsFunc. (is_item_in_dest) transform model value to G_TYPE_INT
- before using. Hence the model need not be of integer type.
-
-2008-01-22 John Darrington <john@darrington.wattle.id.au>
-
- * psppire-dict.c (psppire_dict_rename_var): Fixed bug where
- an assertion failure occured when renaming variables to an
- existing name. Thanks to Ben for reporting this.
-
-2007-12-13 John Darrington <john@darrington.wattle.id.au>
-
- * dialog-common.c dialog-common.h (numeric_only): New function.
-
- * t-test-independent-samples-dialog.c: Added the ability to specify
- groups by a threshold ("Cut Point"). Keep OK/Paste buttons insensitive,
- until groups are properly defined. Prevented variables treeview from
- accepting string variables.
-
-2007-12-08 John Darrington <john@darrington.wattle.id.au>
-
- * data-editor.h data-editor.c: Added hooks for one sample t-test
-
- * t-test-one-sample.c t-test-one-sample.h (new files): Implemented
- a dialog box for the One Sample T Test.
-
- * t-test-independent-samples-dialog.c: Factored out the options sub
- dialog (see following).
-
- * t-test-options.c t-test-options.h (new files): New module
- implementing the options sub-dialog for T tests.
-
-2007-12-07 John Darrington <john@darrington.wattle.id.au>
-
- * frequencies-dialog.c: Made the options subdialog transient
- on the parent.
-
-2007-12-01 John Darrington <john@darrington.wattle.id.au>
-
- * descriptives-dialog.c: Moved the code dealing with checkboxes
- inside treeview widgets into their own files.
-
- * checkbox-treeview.c checkbox-treeview.h: New file (see above).
-
- * frequencies-dialog.c frequencies-dialog.h frequencies.glade: New
- files. Implemented FREQUENCIES dialog box.
-
- * data-editor.c data-editor.h data-editor.glade : Added callback
- for frequencies dialog.
-
-
-2007-11-23 John Darrington <john@darrington.wattle.id.au>
-
- * psppire-acr.c psppire-acr.h: Generalised the external widget
- somewhat. It can now be anything, not necessarily a GTK_ENTRY.
-
- * helper.c helper.h (clone_list_store): New function.
-
- * oneway-anova-dialog.c : Used the clone_list_store function
- instead of writing it ourselves.
-
- * psppire-dialog.c psppire-dialog.h: Added a tabular orientation
- in addition to the horizontal/vertical options.
-
- * recode-dialog.c recode-dialog.h recode.glade (new files).
-
- * psppire-selector.c psppire-selector.h: Added a function to
- allow the prohibition of items based on a predicate.
-
- * dialog-common.h dialog-common.c (homogeneous_types): New function.
-
- * data-editor.c data-editor.glade data-editor.h: Enabled the
- recode dialog options.
-
-
-2007-11-23 John Darrington <john@darrington.wattle.id.au>
-
- * compute-dialog.c (generate_syntax): Append "EXECUTE." to the
- generated syntax.
-
-2007-10-19 John Darrington <john@darrington.wattle.id.au>
-
- * psppire-acr.c psppire-acr.h (new files): Added this new
- composite widget.
-
- * data-editor.c data-editor.h: Added entries for ONEWAY command
- dialog box.
-
- * oneway-anova-dialog.c oneway-anova-dialog.h oneway.glade (new files)
-
-2007-10-06 John Darrington <john@darrington.wattle.id.au>
-
- * psppire-dialog.c psppire-dialog.h: Added a predicate function
- member to indicate when a dialog's state is (not) valid. Added a
- signal "validity-changed" which gets emitted whenever this
- predicate changes.
-
- * psppire-buttonbox.c: Connect to the toplevel window's
- "validity-changed" signal (assuming it happens to be a
- PsppireDialog) and set the OK, PASTE, GOTO and CONTINUE buttons
- according.y.
-
- * descriptives-dialog.c compute-dialog.c: Add a validity predicate.
-
-2007-10-05 Ben Pfaff <blp@gnu.org>
-
- Add DESCRIPTIVES dialog.
-
- * automake.mk (dist_src_ui_gui_psppire_DATA): Add
- descriptives-dialog.data.
- (src_ui_gui_psppire_SOURCES): Add descriptives-dialog.c,
- descriptives-dialog.h.
-
- * data-editor.c (new_data_editor): Connect descriptive dialog to
- action.
-
- * data-editor.glade: Change menu item to invoke DESCRIPTIVES.
-
- * descriptives-dialog.c: New file.
-
- * descriptives-dialog.h: New file.
-
- * descriptives-dialog.glade: New file.
-
-2007-10-04 John Darrington <john@darrington.wattle.id.au>
-
- * compute-dialog.c goto-case-dialog.c main.c psppire-keypad.c: Added
- #include <config.h>
-
- * psppire.glade about.c: Read GPL text from src/libpspp/copyleft.c
- instead of makeing another copy in psppire.glade.
-
- * psppirebuttonbox.c psppire.c: Create a new stock item for
- RESET buttons.
-
-2007-09-26 John Darrington <john@darrington.wattle.id.au>
-
- * output-viewer.c output-viewer.h psppire.c: (closes patch #6210)
- Changed width and length parameters of output driver to
- "auto". Changed default width and length to be something
- acceptable to the ascii driver. (reload_viewer) Dynamically
- allocate the line buffer so that it matches the width of the output.
-
-2007-09-24 Ben Pfaff <blp@gnu.org>
-
- * message-dialog.c (popup_message): Refer to files that contain
- commands as "syntax" files, not "script" files, for better user
- familiarity.
- Patch #6210. Reviewed by John Darrington.
-
-2007-09-19 John Darrington <john@darrington.wattle.id.au>
-
- * message-dialog.c: Changed the ouput message title to be
- appropriate for the severity of the message.
-
- * output-viewer.c output-viewer.h : Added a callback for the resize
- signal of the output viewer, and set the viewport length and
- width accordingly.
-
- * psppire.c: Update to new init_settings interface.
-
-2007-09-27 John Darrington <john@darrington.wattle.id.au>
-
- Addressing bug #20821:
-
- * psppire-dict.c: Added a BACKEND_CHANGED signal to indicate when
- a PsppireDict's struct dictionary has been replaced.
-
- * psppire-var-store.c: Added the appropriate method for
- get_column_count. Added a signal handler for dict:BACKEND_CHANGED,
- which calls the g_sheet_model_range_changed for the entire sheet.
-
-2007-09-18 Ben Pfaff <blp@gnu.org>
-
- * helper.c (create_casereader_from_data_store): New function.
- (execute_syntax): Only replace the active file data by a new
- casereader if syntax caused the active file to be read, to avoid
- exponential slowdown as an increasing number of snippets that do
- not read from the active file are consecutively executed. Bug
- #20910. Reviewed by and heavily influenced by John Darrington.
-
- * psppire-data-store.c (psppire_data_store_get_value_count): New
- function.
-
- * psppire-dict.c (psppire_dict_get_value_cnt): New function.
-
-2007-09-13 John Darrington <john@darrington.wattle.id.au>
-
- * find-dialog.c find-dialog.h: New files.
-
- * data-editor.c data-editor.h data-editor.glade: Added action for
- the find dialog.
-
- * psppire-selector.c: Emit the (de)selected signal when the
- destination entry widget's text changes.
-
-2007-09-10 Ben Pfaff <blp@gnu.org>
-
- * var-sheet.c (psppire_variable_sheet_create): Use xstrdup to save
- string returned by bind_textdomain_codeset. Otherwise it can get
- freed by a subsequent call. Patch #6193. Reviewed by John
- Darrington.
-
-2007-09-06 John Darrington <john@darrington.wattle.id.au>
-
- * helper.c helper.h (execute_syntax): changed return type to
- gboolean to indicated if all the syntax executed successfully or not.
-
- * data-editor.c syntax-editor.c: Fixed update of recent file list
- and window title, on data_file_open. They now only change, if
- the file_open was successfull.
-
-
-2007-08-25 John Darrington <john@darrington.wattle.id.au>
-
- * psppire.c : Enable journal.
-
-2007-08-18 John Darrington <john@darrington.wattle.id.au>
-
- * clipboard.c clipboard.h data-editor.c: Added the ability to paste from
- the clipboard into the data sheet.
-
-2007-08-16 John Darrington <john@darrington.wattle.id.au>
-
- * output-viewer.c output-viewer.h output-viewer.glade (new files)
- helper.c psppire.c syntax-editor.glade window-manager.c
- window-manager.h : Added a basic output viewer window.
-
-2007-08-13 John Darrington <john@darrington.wattle.id.au>
-
- * clipboard.c (clip_to_html clip_to_text): Fixed bug --- use the
- variable count instead of the value count for the columns limit.
-
-2007-08-12 John Darrington <john@darrington.wattle.id.au>
- Ben Pfaff <blp@gnu.org>
-
- Implement Edit|Cut operation for datasheet. Patch #6117.
-
- * automake.mk: Add clipboard.c, clipboard.h.
-
- * clipboard.c: New file.
-
- * clipboard.h: New file.
-
- * data-editor.c (new_data_editor): Connect Edit|Copy to
- on_edit_copy function.
- (data_var_select): Enable or disable Edit|Copy as appropriate.
- (on_edit_copy): New function.
-
- * data-editor.glade: Connect menu items to new operations.
-
-2007-08-12 Ben Pfaff <blp@gnu.org>
-
- * psppire-dict.c (psppire_dict_dump): Don't use
- dict_get_compacted_dict_index_to_case_index, as that function has
- been deleted.
-
-2007-08-13 John Darrington <john@darrington.wattle.id.au>
-
- * psppire-case-file.c (psppire_case_file_append_case):
- Deleted unused function.
-
-2007-08-07 John Darrington <john@darrington.wattle.id.au>
-
- * helper.c (execute_syntax): Set the active file data to NULL at the
- end of the procedure. Thanks to Ben for suggesting this.
-
- * psppire-case-file.c: Added assertions to the remaining functions
- on inaccessible objects.
-
- * psppire-data-store.c psppire-data-store.h: Disconnect or block
- signals on dictionary and case_file, when make_reader has been called.
- Reconnect or unblock them when a new datasheet has been set for the
- data_store.
-
-2007-08-06 John Darrington <john@darrington.wattle.id.au>
-
- * syntax-editor.glade: Changed some properties to be less annoying.
-
-2007-07-29 John Darrington <john@darrington.wattle.id.au>
-
- * helper.c psppire.c: Enabled the output system so that the results
- of analysis can be seen.
-
-2007-07-26 John Darrington <john@darrington.wattle.id.au>
-
- * helper.c helper.h (execute_syntax): removed implicit EXECUTE at end
- of commands.
-
- * data-editor.c data-editor.glade: Added "Run Pending Transformations"
- menuitem.
-
-2007-07-25 John Darrington <john@darrington.wattle.id.au>
-
- * customentry.c: Redraw button in insensitive state, if the widget's
- "editable" style is FALSE. Don't emit the "clicked" signal if
- "editable" is FALSE.
-
- * var-sheet.c: If variables are long-string variables, then set the
- "editable" properties of the entry widgets for the values and missing
- cells to FALSE,
-
-2007-07-18 John Darrington <john@darrington.wattle.id.au>
-
- * psppire-case-file.c psppire-case-file.h psppire-data-store.c
- psppire-dict.c psppire-dict.h psppire-var-store.c : Added the
- ability to resize string variables. Fixed associated problems
- inserting/deleting variables.
-
- * helper.c helper.h (marshaller_VOID__INT_INT_INT): New marshaller
- function.
-
-2007-07-16 John Darrington <john@darrington.wattle.id.au>
-
- * data-editor.c: File Open dialog remembers directory. Thanks to
- Ben Pfaff for this suggestion.
-
-2007-07-15 John Darrington <john@darrington.wattle.id.au>
-
- * compute-dialog.c: Only generate NUMERIC/STRING command if the
- type-and-label dialog was used.
-
-2007-07-12 John Darrington <john@darrington.wattle.id.au>
-
- * psppire-data-store.c: Added call to g_sheet_model_range_changed to
- ensure that datasheet displays the current store.
-
- * psppire-data-store.h: Formatting tidy up.
-
-2007-07-11 John Darrington <john@darrington.wattle.id.au>
-
- * compute-dialog.c : Set type-and-label dialog to sensible state, and made syntax generation depend upon existence of target variable.
-
-2007-07-08 John Darrington <john@darrington.wattle.id.au>
-
- * data-editor.c data-editor.glade data-editor.h: Implemented
- the "Insert Case" button/dialog.
-
-2007-07-08 John Darrington <john@darrington.wattle.id.au>
-
- * goto-case-dialog.c goto-case-dialog.h (new files)
- * automake.mk data-editor.c data-editor.glade data-editor.h
- psppire-case-file.c psppire-case-file.h psppire-data-store.c
- psppire-data-store.h psppire.glade : Implemented the goto-case dialog
-
-
-2007-07-07 John Darrington <john@darrington.wattle.id.au>
-
- * psppire-data-store.c psppire-data-store.h: Made cases number from
- 1 instead of 0.
-
- * psppire-data-store.c: Added a tooltip like feature to display
- the label of variables.
-
-2007-07-03 John Darrington <john@darrington.wattle.id.au>
-
- * data-editor.c data-sheet.c: Turned off autoscrolling, and
- manually move to cell on column click instead.
-
-2007-06-29 John Darrington <john@darrington.wattle.id.au>
-
- * data-editor.c data-editor.glade psppire-data-store.c
- psppire-data-store.h: Enabled cell reference entry and datum
- entry widgets.
-
-2007-06-29 John Darrington <john@darrington.wattle.id.au>
-
- * data-editor.c data-sheet.c: Moved update_cell_ref_entry from
- data-sheet.c to data-editor.c and made it work again.
-
-2007-06-06 Ben Pfaff <blp@gnu.org>
-
- Adapt case sources, sinks, and clients of procedure code to the
- new infrastructure.
-
- * automake.mk: Removed files.
-
- * flexifile-factory.c: Removed, dead code.
- * flexifile-factory.h: Ditto.
-
- * helper.c: Adapt to new procedure and datasheet code.
- * missing-val-dialog.c: Ditto.
- * psppire-case-file.c: Ditto.
- * psppire-data-store.c: Ditto.
- * psppire.c: Ditto.
-
-2007-06-03 Ben Pfaff <blp@gnu.org>
-
- * psppire-var-store.c (psppire_var_store_item_editable): Use
- var_is_alpha.
-
-2007-05-07 John Darrington <john@darrington.wattle.id.au>
-
- * psppire-dialog.c psppire-dialog.h: Added "orientation" property,
- to allow dialogs to be either vertical or horizontal.
-
- * comments-dialog.c comments-dialog.h: New files, invoking
- ADD DOCUMENT cmd.
-
-2007-04-30 John Darrington <john@darrington.wattle.id.au>
-
- * var-display.c var-display.h variable-info-dialog.c
- variable-info-dialog.h : New files.
-
- * data-editor.c :
-
- * psppire-buttonbox.c psppire-buttonbox.h : Added the "buttons"
- property, and optional GOTO and CONTINUE buttons.
-
- * psppire-dialog.h: Added response codes for the new buttons.
-
- * psppire-var-store.c : Moved some code to var-display.[ch]
-
-2007-04-25 John Darrington <john@darrington.wattle.id.au>
-
- * icons/scalable/splash.c icons/splash.png : More eye candy.
-
- * main.c psppire.h : new files.
-
- * psppire.c : Seperated the command line parsing and other
- environment startup from the core psppire code.
-
-2007-04-25 John Darrington <john@darrington.wattle.id.au>
-
- * icons/scalable icons/16x16: new directories.
- * psppire.c : Add new icons to factory.
-
- * dict-display.c: Refactor code get model from modelfilter.
- Added cellrenderer to display icon indicating variables' types.
- Displayed the label of variables, if there is one.
-
-
-2007-04-15 Ben Pfaff <blp@gnu.org>
-
- * compute-dialog.c (function_list_populate): Use new accessor
- functions exported by language/expressions/public.h.
-
-2007-04-15 Ben Pfaff <blp@gnu.org>
-
- * compute-dialog.c: Make #include for parse.inc work with VPATH
- builds.
-
-2007-04-13 John Darrington <john@darrington.wattle.id.au>
-
- * var-type-dialog.c: Added a FMT_DATETIME20 template.
-
-2007-04-04 John Darrington <john@darrington.wattle.id.au>
-
- * compute-dialog.c compute-dialog.h: New files
-
- * data-editor.c data-editor.h data-editor.glade : Added Transform
- menu, and support for Compute dialog
-
- * glade-register.c psppire-buttonbox.c psppire-buttonbox.h
- psppire-vbottonbox.c psppire-vbuttonbox.h psppire-hbuttonbox.c
- psppire-vbuttonbox.h : Made buttonbox an abstract base class
- and separated it into vbuttonbox and hbuttonbox.
-
- * psppire-selector.c : Allowed GtkTextView to be the destination
- widget.
-
- * psppire-keypad.c: Added an "erase" signal. Fixed other
- minor problems.
-
-2007-04-03 Ben Pfaff <blp@gnu.org>
- John McCabe-Dansted <gmatht@gmail.com>
-
- * psppire-selector.c (psppire_selector_set_subjects): Add an
- assert that may or may not trap some Windows-related bugs.
-
-2007-04-03 John Darrington <john@darrington.wattle.id.au>
-
- * data-editor.c data-editor.glade helper.h syntax-editor.c
- syntax-editor.h : Implemented the File->Recently_Used_ menus.
-
-
-2007-03-31 John Darrington <john@darrington.wattle.id.au>
-
- * data-editor.c data-editor.glade data-editor.h dialog-common.c
- psppire-buttonbox.c psppire-dialog.c psppire-dialog.h
- psppire-selector.c psppire-selector.h psppire.c psppire.glade
- sort-cases-dialog.c sort-cases-dialog.h split-file-dialog.c
- transpose-dialog.c weight-cases-dialog.c : Fixed the Refresh
- button on all the dialogs.
-
-2007-03-31 John Darrington <john@darrington.wattle.id.au>
-
- * data-editor.c: Added hooks for the split-file-dialog
-
- * psppire.glade: Added the split file dialog box.
-
- * split-file-dialog.c split-file-dialog.h: New files.
-
- * dialog-common.c dialog-common.h: New files containing functions
- which seem to be used a lot in dialog box implementations.
-
- * psppire-keypad.c psppire-keypad.h: New files. Implements keypad
- thingumy widget.
-
- * psppire-selector.c: Made the orientation of the arrow a property
- of the widget, so that it can be selected from glade.
-
-2007-03-18 Ben Pfaff <blp@gnu.org>
-
- * syntax-editor-source.c (close): Rename do_close to avoid naming
- conflict with POSIX function of same name.
-
-Tue Mar 13 17:20:05 CET 2007 John Darrington <john@darrington.wattle.id.au>
- * psppire.c: Changed gtk_init to gtk_parse_args, followed by a delayed call to gdk_init, so that psppire --version will succeed, even if it
- cannot connect to a display .
-
-Wed Mar 7 19:05:12 CET 2007 John Darrington <john@darrington.wattle.id.au>
-
- * var-sheet.c: Replaced call to nl_langinfo with locale_charset
- from gnulib.
-
-Thu Feb 22 12:27:41 CET 2007 John Darrington <john@darrington.wattle.id.au>
-
- * data-editor.c : called new gen_quoted_string function to properly
- quote filenames in generated syntax.
-
- * window-manager.c : Converted name from filename encoding to UTF8
- before displaying in title bar.
-
-Tue Jan 30 20:13:46 WST 2007 John Darrington <john@darrington.wattle.id.au>
-
- * psppire-dict.c: Call all the callbacks when a new dictionary becomes current.
-
- * data-editor.c: Clear existing file name on FILE NEW.
-
-Sat Jan 27 09:48:21 WST 2007 John Darrington <john@darrington.wattle.id.au>
-
- * var-type-dialog.c: Fixed bugs closing window, apparent when compiled
- against gtk.2.10
-
-Fri Jan 26 15:51:34 WST 2007 John Darrington <john@darrington.wattle.id.au>
-
- * psppire-var-select.c psppire-var-select.h : Deleted.
-
- * psppire-selector.c psppire-selector.h : New files.
-
- * transpose-dialog.c transpose-dialog.h : New files.
-
- * psppire-dict.c psppire-dict.h : Added missing GtkTreeModel
- interface functions.
-
- * weight-cases-dialog.c weight-cases-dialog.h : Re-implemented,
- using new PsppireSelector widget.
-
- * dict-display.c dict-display.h : New files.
-
- * psppire-object.c psppire-object.h : Deleted. Seemed like a good idea at the time.
-
-Tue Jan 23 21:10:01 WST 2007 John Darrington <john@darrington.wattle.id.au>
-
- * helper.c helper.h: New function execute_syntax.
-
- * syntax-editor.c syntax-editor.glade: Disabled data open/save menu
- items.
-
- * data-editor.c data-editor.glade data-editor.h: Enabled data
- open/save/save_as menu-items.
-
- * window-manager.h window-manager.c (default_window_name) : New
- function.
-
-Sat Jan 13 07:47:26 WST 2007 John Darrington <john@darrington.wattle.id.au>
-
- * psppire-case-file.c psppire-data-store.c psppire-dialog.c
- psppire-dict.c psppire-var-select.c : Replaced identifier 'signal'
- with 'signals' to avoid conflict with sysv based systems which use
- this identifer for something else.
- Thanks to Daniel E WILLIAMS for reporting this problem.
-
-Wed Jan 10 07:20:39 WST 2007 John Darrington <john@darrington.wattle.id.au>
-
- * psppire-case-file.c : Make sure there is always a valid flexifile
-
- * psppire-data-store.c : assertions.
-
- * psppire.c: Ignore replace source callbacks if the new source is
- not of storiage_source_class
-
- * syntax-editor.c: Close/Abort source after parsing is complete.
-
-Sun Jan 7 08:38:29 WST 2007 John Darrington <john@darrington.wattle.id.au>
-
- * psppire-dict.c: Add FILTER_CHANGED and SPLIT_CHANGED signals
- corresponding to the callbacks in src/data/dictionary.c
-
- * data-editor.c : Connect functions to the FILTER_CHANGED and
- SPLIT_CHANGED signals to update the status bar accordingly.
-
-Mon Jan 1 10:37:07 WST 2007 John Darrington <john@darrington.wattle.id.au>
-
- * psppire-case-file.c psppire-case-file.h: Changed the backend
- semantics. An object is now created without any backend. A new function ( psppire_case_file_replace_flexifile ) sets the backend to use.
-
- * psppire-data-store.c : Updated callers accordingly.
-
- * psppire-dict.c psppire-dict.h : New function
- (psppire_dict_replace_dictionary) .
-
- * psppire.c : Updated to use new dataset replace_{source, dictionary}
- callbacks.
-
- * syntax-editor.c : parses in state CMD_STATE_DATA unless there are
- no variables in the dictionary.
-
-Mon Dec 25 12:38:24 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * data-editor.c data-editor.glade: Enabled deleting of variables from
- the variable sheet.
-
-Mon Dec 25 11:28:29 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * psppire-dict.c psppire-dict.h: Removed explicit signal emit calls.
- These are not required, now that src/data/dictionary.c has callbacks
-
-Mon Dec 25 08:49:57 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * var-sheet.c val-labs-dialog.c val-labs-dialog.h: Fixed bug in value
- labels dialog box.
-
-Sun Dec 17 08:26:10 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * syntax-editor-source.c syntax-editor-source.h syntax-editor.h:
- New files.
-
- * message-dialog.c : Now reports the filename and line number in
- error messages.
-
- * psppire.c psppire.glade syntax-editor.c: Added the ability to run
- syntax from the syntax editor.
-
-
-Sat Dec 16 14:13:07 2006 Ben Pfaff <blp@gnu.org>
-
- * psppire-data-store.c (geometry_get_justification): Don't assume
- that ALIGN_* and GTK_JUSTIFY_* values coincide.
-
-Sat Dec 16 14:10:43 2006 Ben Pfaff <blp@gnu.org>
-
- * psppire-var-store.c (text_for_column): Adjust to account for new
- values of the MEASURE_* enums.
-
- * var-sheet.c (change_measure): Ditto.
-
-Sat Dec 16 12:24:35 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * psppire-variable.c psppire-variable.h: Deleted.
-
- * psppire-dict.c psppire-dict.h: Removed the caching of the variable
- data, which is now unecessary because src/data/vardict.h maintains
- an association between variables and their dictionary.
-
- * data-sheet.c menu-actions.c missing-val-dialog.c
- missing-val-dialog.h psppire-data-store.c
- psppire-var-store.c psppire-var-store.h
- sort-cases-dialog.c val-labs-dialog.c val-labs-dialog.h
- var-sheet.c var-type-dialog.c var-type-dialog.h: Dealt with the
- consequences of deleting psppire-variable.[ch].
-
-
-Sat Dec 9 20:03:04 2006 Ben Pfaff <blp@gnu.org>
-
- * var-type-dialog.c (var_type_dialog_create): Use
- fmt_dollar_template from data/format.c.
- (dollar_format_template) Removed.
-
-Sat Dec 9 07:19:53 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * syntax-editor.c : New file.
-
-Tue Oct 31 19:25:31 2006 Ben Pfaff <blp@gnu.org>
-
- * var-type-dialog.c: Add missing "#include <config.h>".
-
- * psppire.c: Ditto.
-
-Mon Jul 17 18:21:29 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * automake.mk menu-actions.c psppire-case-file.c psppire-case-file.h
- psppire-data-store.c psppire-dict.c psppire-dict.h psppire-variable.c
- psppire.c psppire.glade: Adjusted code to use the new flexifile object.
-
-Sat Jul 15 11:27:15 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * psppire.c psppire.glade automake.mk icons/* : Added toolbar icons where
- there's no suitable gtk stock icon.
-
-Tue Jul 4 09:08:38 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * psppire.c: Fixed --help and --version options.
-
-Sat Jun 24 16:56:22 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * menu-actions.c: Added goto case and sort cases dialogs.
-
- * psppire-case-file.c psppire-case-file.h: Added sort function.
-
- * psppire-data-store.c psppire-variable.c psppire-variable.h:
- Renamed psppire_variable_get_index to psppire_variable_get_fv and
- dealt with the consequences. Added a psppire_variable_get_index
- function which actually does what the name suggests.
-
- * psppire-dict.c psppire-dict.h: Implemented GtkTreeModel interface,
- which allows a dictionary to be displayed in a GtkTreeView.
-
- * psppire.glade: Added dialog boxes for Goto Case and Sort Case.
-
- * sort-cases-dialog.c sort-cases-dialog.h (new files).
-
-Mon Jun 19 18:10:53 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * psppire-case-file.c psppire-case-file.h (new files)
-
- * automake.mk data-sheet.c data-sheet.h menu-actions.c
- psppire-data-store.c psppire-data-store.h psppire-dict.c
- psppire-dict.h psppire-var-store.c psppire.c
-
- Replaced psppire-case-array.c with psppire-case-file.c, so as to
- allow an arbitrary number of cases to be represented.
-
-Sun Jun 4 15:50:28 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * psppire-var-store.c, psppire.c, var-sheet.c : Unlimited the number of
- variables that can be displayed. Minor i18n issues.
-
-Tue May 30 19:53:35 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * menu-actions.c menu-actions.h psppire.c: Fixed up load/new
- interactions with startup.
-
- * psppire-data-store.c: Fixed bad i18n call.
-
- * pspppire-var-store.c, psppire-var-store.h: constness.
-
- * helper.c: Implemented proper way to convert from PSPP to UTF8 encoding.
-
-
-Sat May 27 16:25:38 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * customentry.c data-sheet.c menu-actions.c message-dialog.c
- missing-val-dialog.c psppire-data-store.c psppire-var-store.c
- psppire.c psppire.glade var-sheet.c: Fixed internationalisation.
-
-Thu May 25 18:01:17 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * psppire-var-store.c: Converted strings to utf8 and returned them on the
- heap.
-
-Sat May 20 21:08:18 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * data-sheet.c, menu-actions.c menu-actions: Fixed data sheet so that
- active cell is never on a deleted variable.
-
- * psppire-data-store.c psppire-data-store.h: Added get_var_count and
- get_case_count functions.
-
- * psppire-dict.c: removed VARIABLE_DELETED (singular) signal.
-
- * psppire.c: Allowed user to specify *.sav file on command line.
-
-Mon May 15 20:01:25 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * menu-actions.c psppire-case-array.c psppire-case-array.h
- psppire-data-store.c psppire-dict.c psppire-dict.h
- psppire-variable.c:
-
- Initialised new cases to SYSMIS/blank when inserting in data sheet.
-
-Sat May 13 08:00:50 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * data-sheet.c, helper.c, helper.h, psppire-data-store.c,
- psppire-var-store.c:
-
- Set free_strings flag so that the gtksheet frees the string data
- when it's done with them.
-
-Thu May 11 22:25:49 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * data-sheet.c helper.c helper.h psppire-data-store.c psppire-var-store.c
- psppire.c: Converted strings to utf8 before passing to gtksheet.
-
- * psppire-dict.c: Changed buffer to more reasonable length
-
- * var-sheet.c: Changed maximum string length to use macro from
- data/values.h
-
-
-Sun May 7 10:07:28 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * psppire-data-store.c: Fixed buglet initialising string members.
-
-Thu May 4 18:04:04 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * message-dialog.c message-dialog.h: Added simple queuing to messages
- reported, and ensure that dialog boxes dont appear when pointer grab
- is active.
-
- * psppire-data-store.c: Fix overflow on very long string variables.
-
- * automake.mk: Fix broken dependency.
-
-
-Tue Apr 25 11:08:04 2006 Ben Pfaff <blp@gnu.org>
-
- Finish reforming error message support. In this phase, move
- message.c into libpspp.
-
- * automake.mk: (src_ui_gui_psppire_SOURCES) Remove src/message.c.
-
-Tue Apr 25 10:56:53 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming error message support. In this phase, drop
- actual message printing from core code, substituting a callback,
- and add the callback to each UI. Also, move verbose_msg() into
- its own module.
-
- * automake.mk: (src_ui_gui_psppire_SOURCES) Add src/message.c.
-
- * message-dialog.c: (message_dialog_init) New function.
- (vmsg) Rename handle_msg(), rewrite as callback function.
- (msg) Removed.
- (msg_emit) Removed.
- (msg_assert_fail) Removed.
- (verbose_msg) Removed.
-
- * psppire.c: (main) Call message_dialog_init().
-
-Sun Apr 23 22:07:49 2006 Ben Pfaff <blp@gnu.org>
-
- 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.
-
- * message-dialog.c: (err_vmsg) Rename err_msg(). Updated
- interface.
-
-Sun Apr 16 20:45:35 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming error message support. In this phase, we
- divide the classification of messages along "category" and
- "severity" axes.
-
- * message-dialog.c: (vmsg) Use severity and category in
- straightforward fashion instead of the less obvious "class".
- (err_vmsg) Construct class before passing along to vmsg().
-
-Sun Apr 16 16:06:54 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming error message support. In this phase, we get
- rid of VM() and the other msg() support for "verbosity", replacing
- it by a new function verbose_msg().
-
- * message-dialog.c: (verbose_msg) New function.
- (err_cond_fail) Removed (dead code).
- (err_failure) Removed (dead code).
-
-Sun Apr 16 11:53:25 2006 Ben Pfaff <blp@gnu.org>
-
- Start reforming error message support. In this phase, we get rid
- of "installation errors" and change all uses of msg() in the
- output drivers to uses of error() or error_at_line().
-
- * message-dialog.c: (vmsg) Removed IE, IS support.
-
-Mon Mar 13 16:42:44 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * psppire.c: Supported (sort of) the --help and --version options.
-
- * Rename error-dialog.[ch] -> message-dialog.[ch]
-
- * Moved code from the psppire module.
-
-Sat Jan 28 16:22:23 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * Separated the data out of the GtkSheet.
-
-Tue Nov 2 19:00:28 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * Very first incarnation.
--- /dev/null
+2008-05-20 John Darrington <john@darrington.wattle.id.au>
+
+ * automake.mk: Added the -no-undefined flag so that dlls can be built
+ on w32 platforms. Abstracted the dependencies of glade-register.c
+ into a new shared library libpsppwidgets.so, which can be either
+ linked directly by psppire or by libpsppire.so
+
+ * psppire-keypad.c: Changed snprintf to g_snprintf so as not to use
+ gnulib.
+
+2008-05-15 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Rename install-data-hook to yelp-check and mark it
+ phony. This avoids an automake warning for duplicate
+ install-data-hook commands in doc/automake.mk and this file
+ (automake does not understand double-colon rules, since they are
+ not in POSIX).
+
+2008-05-09 John Darrington <john@darrington.wattle.id.au>
+
+ * automake.mk: On make install, warn about the non-existance of yelp.
+
+2008-05-08 Ben Pfaff <blp@gnu.org>
+
+ Patch #6505. Reviewed by John Darrington.
+
+ * text-data-import-dialog.c: Don't make the user wiggle the mouse
+ to be able to click on the Forward button twice in quick
+ succession.
+ (add_page_to_assistant): Mark pages in the assistant complete
+ immediately.
+ (on_prepare): No longer mark pages complete upon first visit.
+
+2008-05-08 Ben Pfaff <blp@gnu.org>
+
+ Patch #6505. Reviewed by John Darrington.
+
+ * text-data-import-dialog.c: (struct assistant) New member
+ `watch_cursor'.
+ (revise_fields_preview): Change the mouse pointer to a watch to
+ indicate that a long operation is ongoing.
+ (prepare_formats_page): Ditto.
+ (on_variable_change): Ditto.
+ (push_watch_cursor): New function.
+ (pop_watch_cursor): New function.
+
+2008-05-08 John Darrington <john@darrington.wattle.id.au>
+
+ * data-editor.c: In popup menus, connect the Insert Variable and
+ Insert Case callbacks manually, instead of relying on
+ gtk_action_connect_proxy, as the latter connects a label with a
+ mnemonic which is inappropriate.
+
+2008-05-06 Ben Pfaff <blp@gnu.org>
+
+ Bug #23127. Reviewed by John Darrington. Tested by Jason Stover,
+ in an earlier form.
+
+ * text-data-import-dialog.c (get_tooltip_location): Prevent crash
+ when a tooltip is being prepared when the assistant is closed.
+
+2008-05-06 Ben Pfaff <blp@gnu.org>
+
+ * text-data-import-dialog.c (text_data_import_assistant): Allocate
+ the struct import_assistant on the heap instead of the stack, to
+ make it easier for memory debuggers such as Valgrind to point out
+ use of its members after this function returns.
+
+2008-03-25 John Darrington <john@darrington.wattle.id.au>
+
+ * data-editor.glade: Removed unused menuitems.
+
+ * data-editor.c data-editor.glade: Added Mnemonics to all menuitems.
+
+2008-03-16 Ben Pfaff <blp@gnu.org>
+
+ Patch #5368. Reviewed by John Darrington. Tested by Jason
+ Stover.
+
+ * automake.mk: Add new files.
+
+ * data-editor.glade: Add "import delimited text data" menu item.
+
+ * data-editor.c: Connect "import delimited text data" menu item.
+
+ * text-data-import-dialog.c: New file.
+
+ * text-data-import-dialog.h: New file.
+
+ * text-data-import.glade: New file.
+
+2008-03-07 Ben Pfaff <blp@gnu.org>
+
+ * psppire-var-sheet.c: Initialize "may-create-vars" to TRUE by
+ default.
+
+2008-03-06 Ben Pfaff <blp@gnu.org>
+
+ * psppire-var-sheet.c psppire-var-sheet.h: Add "may-create-vars"
+ property to var sheet that controls whether the user can create
+ new variables in the dictionary. Needed by upcoming patch #6358.
+ Reviewed by John Darrington.
+
+2008-03-04 Ben Pfaff <blp@gnu.org>
+
+ Patch #6427. Reviewed by John Darrington.
+
+ * comments-dialog.c: Adapt to new syntax generating code in
+ ui/syntax-gen.[ch].
+
+ * data-editor.c: Ditto.
+
+ * recode-dialog.c: Ditto.
+
+ * t-test-independent-samples-dialog.c: Ditto.
+
+2008-02-29 John Darrington <john@darrington.wattle.id.au>
+
+ * psppire-data-editor.c psppire-data-editor.h: New files. Contains functionality
+ previously scattered thoughout data-editor.c and elsewhere.
+
+ * data-editor.c data-editor.h: Abstracted the variable sheet, the data sheet and
+ their containing GtkNotebook into a new Object.
+
+ * data-sheet.c data-sheet.h: Deleted.
+
+ * var-sheet.c var-sheet.h: Deleted. Moved to psppire-var-sheet.[ch]
+
+ * psppire-var-sheet.c psppire-var-sheet.h: New files.
+
+ * clipboard.c clipboard.h: Deleted. Moved to psppire-data-editor.c
+
+ * psppire-var-store.c psppire-var-store.h: Updated symbols to avoid name clashes.
+
+ * comments-dialog.c compute-dialog.c crosstabs-dialog.c descriptives-dialog.c
+ examine-dialog.c find-dialog.c frequencies-dialog.c goto-case-dialog.c
+ oneway-anova-dialog.c rank-dialog.c recode-dialog.c select-cases-dialog.c
+ sort-cases-dialog.c split-file-dialog.c t-test-independent-samples-dialog.c
+ transpose-dialog.c variable-info-dialog.c weight-cases-dialog.c t-test-one-sample.c
+ t-test-paired-samples.c: Updated dialogs to match above changes.
+
+2008-02-27 Jason Stover <jhs@math.gcsu.edu>
+
+ * regression-dialog.c: New file.
+
+ * regression-dialog.h: New file.
+
+ * regression.glade: New file.
+
+2008-02-19 Ben Pfaff <blp@gnu.org>
+
+ Patch #6426. Reviewed by John Darrington.
+
+ * psppire-var-store.c: Add "trailing-rows", "format-type"
+ properties to PsppireVarStore.
+
+2008-02-19 Ben Pfaff <blp@gnu.org>
+
+ * message-dialog.c (popup_messages): Always destroy `msg' and
+ `lead' strings, avoiding a memory leak. Thanks to John Darrington
+ for reporting the problem.
+
+2008-02-19 John Darrington <john@darrington.wattle.id.au>
+
+ * dict-display.c: Display names of variables in dialog box
+ dictionary treeviews, when the mouse hovers over the variable.
+
+2008-02-13 John Darrington <john@darrington.wattle.id.au>
+
+ * variable-info-dialog.c: Fix crash when clicking "Jump" when no
+ variable selected. Add a valid predicate so that this can't
+ happen anyway.
+
+ * compute-dialog.c: Fix crash when trying to set label on non
+ existant variable.
+
+2008-02-09 Ben Pfaff <blp@gnu.org>
+
+ Consolidate multiple messages into single message dialog. Patch
+ #6405. Thanks to John Darrington for review.
+
+ * automake.mk (dist_src_ui_gui_psppire_DATA): Add
+ message-dialog.glade.
+
+ * helper.c (give_help): Use GtkMessageDialog directly instead of
+ trying to reuse message-dialog code.
+
+ * message-dialog.c: Rewritten.
+
+ * message-dialog.glade: New file.
+
+2008-02-08 Jason Stover <jhs@math.gcsu.edu>
+
+ * crosstabs-dialog.c: New file.
+
+ * crosstabs-dialog.h: New file.
+
+ * crosstabs.glade: New file.
+
+2008-02-08 John Darrington <john@darrington.wattle.id.au>
+
+ * psppire-data-store.c: Remove feature which automatically inserts
+ cases at end of data.
+
+ * datasheet.c: Make rows after the last + 1, not editable.
+
+2008-02-08 John Darrington <john@darrington.wattle.id.au>
+
+ * sort-cases-dialog.c transpose-dialog.c: Added dialog_valid
+ predicates.
+
+2008-02-04 John Darrington <john@darrington.wattle.id.au>
+
+ * checkbox-treeview.c: In toggle callback, use the treeview's
+ current model, instead of relying on the one set at creation.
+ Use attributes instead of cell_renderer functions.
+
+2008-02-03 John Darrington <john@darrington.wattle.id.au>
+
+ * psppire-case-file.c psppire-case-file.h: Dont clone the casereader
+ before creating datasheet. Add properties instead of direct code
+ in _new function.
+
+ * psppire-data-store.c: Implement proper dispose function.
+
+2008-01-29 John Darrington <john@darrington.wattle.id.au>
+
+ * psppire-var-ptr.c psppire-var-ptr.h: New files
+
+ * t-test-paired-samples.c t-test-paired-samples.h: New files
+
+ * dialog-common.c dialog-common.h (append_variable_names): Add extra
+ argument to specify the column number containing the variables.
+
+ * psppire-selector.c psppire-selector.h: Add auxilliary data variable
+ to SelectItemsFunc. (is_item_in_dest) transform model value to G_TYPE_INT
+ before using. Hence the model need not be of integer type.
+
+2008-01-22 John Darrington <john@darrington.wattle.id.au>
+
+ * psppire-dict.c (psppire_dict_rename_var): Fixed bug where
+ an assertion failure occured when renaming variables to an
+ existing name. Thanks to Ben for reporting this.
+
+2007-12-13 John Darrington <john@darrington.wattle.id.au>
+
+ * dialog-common.c dialog-common.h (numeric_only): New function.
+
+ * t-test-independent-samples-dialog.c: Added the ability to specify
+ groups by a threshold ("Cut Point"). Keep OK/Paste buttons insensitive,
+ until groups are properly defined. Prevented variables treeview from
+ accepting string variables.
+
+2007-12-08 John Darrington <john@darrington.wattle.id.au>
+
+ * data-editor.h data-editor.c: Added hooks for one sample t-test
+
+ * t-test-one-sample.c t-test-one-sample.h (new files): Implemented
+ a dialog box for the One Sample T Test.
+
+ * t-test-independent-samples-dialog.c: Factored out the options sub
+ dialog (see following).
+
+ * t-test-options.c t-test-options.h (new files): New module
+ implementing the options sub-dialog for T tests.
+
+2007-12-07 John Darrington <john@darrington.wattle.id.au>
+
+ * frequencies-dialog.c: Made the options subdialog transient
+ on the parent.
+
+2007-12-01 John Darrington <john@darrington.wattle.id.au>
+
+ * descriptives-dialog.c: Moved the code dealing with checkboxes
+ inside treeview widgets into their own files.
+
+ * checkbox-treeview.c checkbox-treeview.h: New file (see above).
+
+ * frequencies-dialog.c frequencies-dialog.h frequencies.glade: New
+ files. Implemented FREQUENCIES dialog box.
+
+ * data-editor.c data-editor.h data-editor.glade : Added callback
+ for frequencies dialog.
+
+
+2007-11-23 John Darrington <john@darrington.wattle.id.au>
+
+ * psppire-acr.c psppire-acr.h: Generalised the external widget
+ somewhat. It can now be anything, not necessarily a GTK_ENTRY.
+
+ * helper.c helper.h (clone_list_store): New function.
+
+ * oneway-anova-dialog.c : Used the clone_list_store function
+ instead of writing it ourselves.
+
+ * psppire-dialog.c psppire-dialog.h: Added a tabular orientation
+ in addition to the horizontal/vertical options.
+
+ * recode-dialog.c recode-dialog.h recode.glade (new files).
+
+ * psppire-selector.c psppire-selector.h: Added a function to
+ allow the prohibition of items based on a predicate.
+
+ * dialog-common.h dialog-common.c (homogeneous_types): New function.
+
+ * data-editor.c data-editor.glade data-editor.h: Enabled the
+ recode dialog options.
+
+
+2007-11-23 John Darrington <john@darrington.wattle.id.au>
+
+ * compute-dialog.c (generate_syntax): Append "EXECUTE." to the
+ generated syntax.
+
+2007-10-19 John Darrington <john@darrington.wattle.id.au>
+
+ * psppire-acr.c psppire-acr.h (new files): Added this new
+ composite widget.
+
+ * data-editor.c data-editor.h: Added entries for ONEWAY command
+ dialog box.
+
+ * oneway-anova-dialog.c oneway-anova-dialog.h oneway.glade (new files)
+
+2007-10-06 John Darrington <john@darrington.wattle.id.au>
+
+ * psppire-dialog.c psppire-dialog.h: Added a predicate function
+ member to indicate when a dialog's state is (not) valid. Added a
+ signal "validity-changed" which gets emitted whenever this
+ predicate changes.
+
+ * psppire-buttonbox.c: Connect to the toplevel window's
+ "validity-changed" signal (assuming it happens to be a
+ PsppireDialog) and set the OK, PASTE, GOTO and CONTINUE buttons
+ according.y.
+
+ * descriptives-dialog.c compute-dialog.c: Add a validity predicate.
+
+2007-10-05 Ben Pfaff <blp@gnu.org>
+
+ Add DESCRIPTIVES dialog.
+
+ * automake.mk (dist_src_ui_gui_psppire_DATA): Add
+ descriptives-dialog.data.
+ (src_ui_gui_psppire_SOURCES): Add descriptives-dialog.c,
+ descriptives-dialog.h.
+
+ * data-editor.c (new_data_editor): Connect descriptive dialog to
+ action.
+
+ * data-editor.glade: Change menu item to invoke DESCRIPTIVES.
+
+ * descriptives-dialog.c: New file.
+
+ * descriptives-dialog.h: New file.
+
+ * descriptives-dialog.glade: New file.
+
+2007-10-04 John Darrington <john@darrington.wattle.id.au>
+
+ * compute-dialog.c goto-case-dialog.c main.c psppire-keypad.c: Added
+ #include <config.h>
+
+ * psppire.glade about.c: Read GPL text from src/libpspp/copyleft.c
+ instead of makeing another copy in psppire.glade.
+
+ * psppirebuttonbox.c psppire.c: Create a new stock item for
+ RESET buttons.
+
+2007-09-26 John Darrington <john@darrington.wattle.id.au>
+
+ * output-viewer.c output-viewer.h psppire.c: (closes patch #6210)
+ Changed width and length parameters of output driver to
+ "auto". Changed default width and length to be something
+ acceptable to the ascii driver. (reload_viewer) Dynamically
+ allocate the line buffer so that it matches the width of the output.
+
+2007-09-24 Ben Pfaff <blp@gnu.org>
+
+ * message-dialog.c (popup_message): Refer to files that contain
+ commands as "syntax" files, not "script" files, for better user
+ familiarity.
+ Patch #6210. Reviewed by John Darrington.
+
+2007-09-19 John Darrington <john@darrington.wattle.id.au>
+
+ * message-dialog.c: Changed the ouput message title to be
+ appropriate for the severity of the message.
+
+ * output-viewer.c output-viewer.h : Added a callback for the resize
+ signal of the output viewer, and set the viewport length and
+ width accordingly.
+
+ * psppire.c: Update to new init_settings interface.
+
+2007-09-27 John Darrington <john@darrington.wattle.id.au>
+
+ Addressing bug #20821:
+
+ * psppire-dict.c: Added a BACKEND_CHANGED signal to indicate when
+ a PsppireDict's struct dictionary has been replaced.
+
+ * psppire-var-store.c: Added the appropriate method for
+ get_column_count. Added a signal handler for dict:BACKEND_CHANGED,
+ which calls the g_sheet_model_range_changed for the entire sheet.
+
+2007-09-18 Ben Pfaff <blp@gnu.org>
+
+ * helper.c (create_casereader_from_data_store): New function.
+ (execute_syntax): Only replace the active file data by a new
+ casereader if syntax caused the active file to be read, to avoid
+ exponential slowdown as an increasing number of snippets that do
+ not read from the active file are consecutively executed. Bug
+ #20910. Reviewed by and heavily influenced by John Darrington.
+
+ * psppire-data-store.c (psppire_data_store_get_value_count): New
+ function.
+
+ * psppire-dict.c (psppire_dict_get_value_cnt): New function.
+
+2007-09-13 John Darrington <john@darrington.wattle.id.au>
+
+ * find-dialog.c find-dialog.h: New files.
+
+ * data-editor.c data-editor.h data-editor.glade: Added action for
+ the find dialog.
+
+ * psppire-selector.c: Emit the (de)selected signal when the
+ destination entry widget's text changes.
+
+2007-09-10 Ben Pfaff <blp@gnu.org>
+
+ * var-sheet.c (psppire_variable_sheet_create): Use xstrdup to save
+ string returned by bind_textdomain_codeset. Otherwise it can get
+ freed by a subsequent call. Patch #6193. Reviewed by John
+ Darrington.
+
+2007-09-06 John Darrington <john@darrington.wattle.id.au>
+
+ * helper.c helper.h (execute_syntax): changed return type to
+ gboolean to indicated if all the syntax executed successfully or not.
+
+ * data-editor.c syntax-editor.c: Fixed update of recent file list
+ and window title, on data_file_open. They now only change, if
+ the file_open was successfull.
+
+
+2007-08-25 John Darrington <john@darrington.wattle.id.au>
+
+ * psppire.c : Enable journal.
+
+2007-08-18 John Darrington <john@darrington.wattle.id.au>
+
+ * clipboard.c clipboard.h data-editor.c: Added the ability to paste from
+ the clipboard into the data sheet.
+
+2007-08-16 John Darrington <john@darrington.wattle.id.au>
+
+ * output-viewer.c output-viewer.h output-viewer.glade (new files)
+ helper.c psppire.c syntax-editor.glade window-manager.c
+ window-manager.h : Added a basic output viewer window.
+
+2007-08-13 John Darrington <john@darrington.wattle.id.au>
+
+ * clipboard.c (clip_to_html clip_to_text): Fixed bug --- use the
+ variable count instead of the value count for the columns limit.
+
+2007-08-12 John Darrington <john@darrington.wattle.id.au>
+ Ben Pfaff <blp@gnu.org>
+
+ Implement Edit|Cut operation for datasheet. Patch #6117.
+
+ * automake.mk: Add clipboard.c, clipboard.h.
+
+ * clipboard.c: New file.
+
+ * clipboard.h: New file.
+
+ * data-editor.c (new_data_editor): Connect Edit|Copy to
+ on_edit_copy function.
+ (data_var_select): Enable or disable Edit|Copy as appropriate.
+ (on_edit_copy): New function.
+
+ * data-editor.glade: Connect menu items to new operations.
+
+2007-08-12 Ben Pfaff <blp@gnu.org>
+
+ * psppire-dict.c (psppire_dict_dump): Don't use
+ dict_get_compacted_dict_index_to_case_index, as that function has
+ been deleted.
+
+2007-08-13 John Darrington <john@darrington.wattle.id.au>
+
+ * psppire-case-file.c (psppire_case_file_append_case):
+ Deleted unused function.
+
+2007-08-07 John Darrington <john@darrington.wattle.id.au>
+
+ * helper.c (execute_syntax): Set the active file data to NULL at the
+ end of the procedure. Thanks to Ben for suggesting this.
+
+ * psppire-case-file.c: Added assertions to the remaining functions
+ on inaccessible objects.
+
+ * psppire-data-store.c psppire-data-store.h: Disconnect or block
+ signals on dictionary and case_file, when make_reader has been called.
+ Reconnect or unblock them when a new datasheet has been set for the
+ data_store.
+
+2007-08-06 John Darrington <john@darrington.wattle.id.au>
+
+ * syntax-editor.glade: Changed some properties to be less annoying.
+
+2007-07-29 John Darrington <john@darrington.wattle.id.au>
+
+ * helper.c psppire.c: Enabled the output system so that the results
+ of analysis can be seen.
+
+2007-07-26 John Darrington <john@darrington.wattle.id.au>
+
+ * helper.c helper.h (execute_syntax): removed implicit EXECUTE at end
+ of commands.
+
+ * data-editor.c data-editor.glade: Added "Run Pending Transformations"
+ menuitem.
+
+2007-07-25 John Darrington <john@darrington.wattle.id.au>
+
+ * customentry.c: Redraw button in insensitive state, if the widget's
+ "editable" style is FALSE. Don't emit the "clicked" signal if
+ "editable" is FALSE.
+
+ * var-sheet.c: If variables are long-string variables, then set the
+ "editable" properties of the entry widgets for the values and missing
+ cells to FALSE,
+
+2007-07-18 John Darrington <john@darrington.wattle.id.au>
+
+ * psppire-case-file.c psppire-case-file.h psppire-data-store.c
+ psppire-dict.c psppire-dict.h psppire-var-store.c : Added the
+ ability to resize string variables. Fixed associated problems
+ inserting/deleting variables.
+
+ * helper.c helper.h (marshaller_VOID__INT_INT_INT): New marshaller
+ function.
+
+2007-07-16 John Darrington <john@darrington.wattle.id.au>
+
+ * data-editor.c: File Open dialog remembers directory. Thanks to
+ Ben Pfaff for this suggestion.
+
+2007-07-15 John Darrington <john@darrington.wattle.id.au>
+
+ * compute-dialog.c: Only generate NUMERIC/STRING command if the
+ type-and-label dialog was used.
+
+2007-07-12 John Darrington <john@darrington.wattle.id.au>
+
+ * psppire-data-store.c: Added call to g_sheet_model_range_changed to
+ ensure that datasheet displays the current store.
+
+ * psppire-data-store.h: Formatting tidy up.
+
+2007-07-11 John Darrington <john@darrington.wattle.id.au>
+
+ * compute-dialog.c : Set type-and-label dialog to sensible state, and made syntax generation depend upon existence of target variable.
+
+2007-07-08 John Darrington <john@darrington.wattle.id.au>
+
+ * data-editor.c data-editor.glade data-editor.h: Implemented
+ the "Insert Case" button/dialog.
+
+2007-07-08 John Darrington <john@darrington.wattle.id.au>
+
+ * goto-case-dialog.c goto-case-dialog.h (new files)
+ * automake.mk data-editor.c data-editor.glade data-editor.h
+ psppire-case-file.c psppire-case-file.h psppire-data-store.c
+ psppire-data-store.h psppire.glade : Implemented the goto-case dialog
+
+
+2007-07-07 John Darrington <john@darrington.wattle.id.au>
+
+ * psppire-data-store.c psppire-data-store.h: Made cases number from
+ 1 instead of 0.
+
+ * psppire-data-store.c: Added a tooltip like feature to display
+ the label of variables.
+
+2007-07-03 John Darrington <john@darrington.wattle.id.au>
+
+ * data-editor.c data-sheet.c: Turned off autoscrolling, and
+ manually move to cell on column click instead.
+
+2007-06-29 John Darrington <john@darrington.wattle.id.au>
+
+ * data-editor.c data-editor.glade psppire-data-store.c
+ psppire-data-store.h: Enabled cell reference entry and datum
+ entry widgets.
+
+2007-06-29 John Darrington <john@darrington.wattle.id.au>
+
+ * data-editor.c data-sheet.c: Moved update_cell_ref_entry from
+ data-sheet.c to data-editor.c and made it work again.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ Adapt case sources, sinks, and clients of procedure code to the
+ new infrastructure.
+
+ * automake.mk: Removed files.
+
+ * flexifile-factory.c: Removed, dead code.
+ * flexifile-factory.h: Ditto.
+
+ * helper.c: Adapt to new procedure and datasheet code.
+ * missing-val-dialog.c: Ditto.
+ * psppire-case-file.c: Ditto.
+ * psppire-data-store.c: Ditto.
+ * psppire.c: Ditto.
+
+2007-06-03 Ben Pfaff <blp@gnu.org>
+
+ * psppire-var-store.c (psppire_var_store_item_editable): Use
+ var_is_alpha.
+
+2007-05-07 John Darrington <john@darrington.wattle.id.au>
+
+ * psppire-dialog.c psppire-dialog.h: Added "orientation" property,
+ to allow dialogs to be either vertical or horizontal.
+
+ * comments-dialog.c comments-dialog.h: New files, invoking
+ ADD DOCUMENT cmd.
+
+2007-04-30 John Darrington <john@darrington.wattle.id.au>
+
+ * var-display.c var-display.h variable-info-dialog.c
+ variable-info-dialog.h : New files.
+
+ * data-editor.c :
+
+ * psppire-buttonbox.c psppire-buttonbox.h : Added the "buttons"
+ property, and optional GOTO and CONTINUE buttons.
+
+ * psppire-dialog.h: Added response codes for the new buttons.
+
+ * psppire-var-store.c : Moved some code to var-display.[ch]
+
+2007-04-25 John Darrington <john@darrington.wattle.id.au>
+
+ * icons/scalable/splash.c icons/splash.png : More eye candy.
+
+ * main.c psppire.h : new files.
+
+ * psppire.c : Seperated the command line parsing and other
+ environment startup from the core psppire code.
+
+2007-04-25 John Darrington <john@darrington.wattle.id.au>
+
+ * icons/scalable icons/16x16: new directories.
+ * psppire.c : Add new icons to factory.
+
+ * dict-display.c: Refactor code get model from modelfilter.
+ Added cellrenderer to display icon indicating variables' types.
+ Displayed the label of variables, if there is one.
+
+
+2007-04-15 Ben Pfaff <blp@gnu.org>
+
+ * compute-dialog.c (function_list_populate): Use new accessor
+ functions exported by language/expressions/public.h.
+
+2007-04-15 Ben Pfaff <blp@gnu.org>
+
+ * compute-dialog.c: Make #include for parse.inc work with VPATH
+ builds.
+
+2007-04-13 John Darrington <john@darrington.wattle.id.au>
+
+ * var-type-dialog.c: Added a FMT_DATETIME20 template.
+
+2007-04-04 John Darrington <john@darrington.wattle.id.au>
+
+ * compute-dialog.c compute-dialog.h: New files
+
+ * data-editor.c data-editor.h data-editor.glade : Added Transform
+ menu, and support for Compute dialog
+
+ * glade-register.c psppire-buttonbox.c psppire-buttonbox.h
+ psppire-vbottonbox.c psppire-vbuttonbox.h psppire-hbuttonbox.c
+ psppire-vbuttonbox.h : Made buttonbox an abstract base class
+ and separated it into vbuttonbox and hbuttonbox.
+
+ * psppire-selector.c : Allowed GtkTextView to be the destination
+ widget.
+
+ * psppire-keypad.c: Added an "erase" signal. Fixed other
+ minor problems.
+
+2007-04-03 Ben Pfaff <blp@gnu.org>
+ John McCabe-Dansted <gmatht@gmail.com>
+
+ * psppire-selector.c (psppire_selector_set_subjects): Add an
+ assert that may or may not trap some Windows-related bugs.
+
+2007-04-03 John Darrington <john@darrington.wattle.id.au>
+
+ * data-editor.c data-editor.glade helper.h syntax-editor.c
+ syntax-editor.h : Implemented the File->Recently_Used_ menus.
+
+
+2007-03-31 John Darrington <john@darrington.wattle.id.au>
+
+ * data-editor.c data-editor.glade data-editor.h dialog-common.c
+ psppire-buttonbox.c psppire-dialog.c psppire-dialog.h
+ psppire-selector.c psppire-selector.h psppire.c psppire.glade
+ sort-cases-dialog.c sort-cases-dialog.h split-file-dialog.c
+ transpose-dialog.c weight-cases-dialog.c : Fixed the Refresh
+ button on all the dialogs.
+
+2007-03-31 John Darrington <john@darrington.wattle.id.au>
+
+ * data-editor.c: Added hooks for the split-file-dialog
+
+ * psppire.glade: Added the split file dialog box.
+
+ * split-file-dialog.c split-file-dialog.h: New files.
+
+ * dialog-common.c dialog-common.h: New files containing functions
+ which seem to be used a lot in dialog box implementations.
+
+ * psppire-keypad.c psppire-keypad.h: New files. Implements keypad
+ thingumy widget.
+
+ * psppire-selector.c: Made the orientation of the arrow a property
+ of the widget, so that it can be selected from glade.
+
+2007-03-18 Ben Pfaff <blp@gnu.org>
+
+ * syntax-editor-source.c (close): Rename do_close to avoid naming
+ conflict with POSIX function of same name.
+
+Tue Mar 13 17:20:05 CET 2007 John Darrington <john@darrington.wattle.id.au>
+ * psppire.c: Changed gtk_init to gtk_parse_args, followed by a delayed call to gdk_init, so that psppire --version will succeed, even if it
+ cannot connect to a display .
+
+Wed Mar 7 19:05:12 CET 2007 John Darrington <john@darrington.wattle.id.au>
+
+ * var-sheet.c: Replaced call to nl_langinfo with locale_charset
+ from gnulib.
+
+Thu Feb 22 12:27:41 CET 2007 John Darrington <john@darrington.wattle.id.au>
+
+ * data-editor.c : called new gen_quoted_string function to properly
+ quote filenames in generated syntax.
+
+ * window-manager.c : Converted name from filename encoding to UTF8
+ before displaying in title bar.
+
+Tue Jan 30 20:13:46 WST 2007 John Darrington <john@darrington.wattle.id.au>
+
+ * psppire-dict.c: Call all the callbacks when a new dictionary becomes current.
+
+ * data-editor.c: Clear existing file name on FILE NEW.
+
+Sat Jan 27 09:48:21 WST 2007 John Darrington <john@darrington.wattle.id.au>
+
+ * var-type-dialog.c: Fixed bugs closing window, apparent when compiled
+ against gtk.2.10
+
+Fri Jan 26 15:51:34 WST 2007 John Darrington <john@darrington.wattle.id.au>
+
+ * psppire-var-select.c psppire-var-select.h : Deleted.
+
+ * psppire-selector.c psppire-selector.h : New files.
+
+ * transpose-dialog.c transpose-dialog.h : New files.
+
+ * psppire-dict.c psppire-dict.h : Added missing GtkTreeModel
+ interface functions.
+
+ * weight-cases-dialog.c weight-cases-dialog.h : Re-implemented,
+ using new PsppireSelector widget.
+
+ * dict-display.c dict-display.h : New files.
+
+ * psppire-object.c psppire-object.h : Deleted. Seemed like a good idea at the time.
+
+Tue Jan 23 21:10:01 WST 2007 John Darrington <john@darrington.wattle.id.au>
+
+ * helper.c helper.h: New function execute_syntax.
+
+ * syntax-editor.c syntax-editor.glade: Disabled data open/save menu
+ items.
+
+ * data-editor.c data-editor.glade data-editor.h: Enabled data
+ open/save/save_as menu-items.
+
+ * window-manager.h window-manager.c (default_window_name) : New
+ function.
+
+Sat Jan 13 07:47:26 WST 2007 John Darrington <john@darrington.wattle.id.au>
+
+ * psppire-case-file.c psppire-data-store.c psppire-dialog.c
+ psppire-dict.c psppire-var-select.c : Replaced identifier 'signal'
+ with 'signals' to avoid conflict with sysv based systems which use
+ this identifer for something else.
+ Thanks to Daniel E WILLIAMS for reporting this problem.
+
+Wed Jan 10 07:20:39 WST 2007 John Darrington <john@darrington.wattle.id.au>
+
+ * psppire-case-file.c : Make sure there is always a valid flexifile
+
+ * psppire-data-store.c : assertions.
+
+ * psppire.c: Ignore replace source callbacks if the new source is
+ not of storiage_source_class
+
+ * syntax-editor.c: Close/Abort source after parsing is complete.
+
+Sun Jan 7 08:38:29 WST 2007 John Darrington <john@darrington.wattle.id.au>
+
+ * psppire-dict.c: Add FILTER_CHANGED and SPLIT_CHANGED signals
+ corresponding to the callbacks in src/data/dictionary.c
+
+ * data-editor.c : Connect functions to the FILTER_CHANGED and
+ SPLIT_CHANGED signals to update the status bar accordingly.
+
+Mon Jan 1 10:37:07 WST 2007 John Darrington <john@darrington.wattle.id.au>
+
+ * psppire-case-file.c psppire-case-file.h: Changed the backend
+ semantics. An object is now created without any backend. A new function ( psppire_case_file_replace_flexifile ) sets the backend to use.
+
+ * psppire-data-store.c : Updated callers accordingly.
+
+ * psppire-dict.c psppire-dict.h : New function
+ (psppire_dict_replace_dictionary) .
+
+ * psppire.c : Updated to use new dataset replace_{source, dictionary}
+ callbacks.
+
+ * syntax-editor.c : parses in state CMD_STATE_DATA unless there are
+ no variables in the dictionary.
+
+Mon Dec 25 12:38:24 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * data-editor.c data-editor.glade: Enabled deleting of variables from
+ the variable sheet.
+
+Mon Dec 25 11:28:29 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * psppire-dict.c psppire-dict.h: Removed explicit signal emit calls.
+ These are not required, now that src/data/dictionary.c has callbacks
+
+Mon Dec 25 08:49:57 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * var-sheet.c val-labs-dialog.c val-labs-dialog.h: Fixed bug in value
+ labels dialog box.
+
+Sun Dec 17 08:26:10 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * syntax-editor-source.c syntax-editor-source.h syntax-editor.h:
+ New files.
+
+ * message-dialog.c : Now reports the filename and line number in
+ error messages.
+
+ * psppire.c psppire.glade syntax-editor.c: Added the ability to run
+ syntax from the syntax editor.
+
+
+Sat Dec 16 14:13:07 2006 Ben Pfaff <blp@gnu.org>
+
+ * psppire-data-store.c (geometry_get_justification): Don't assume
+ that ALIGN_* and GTK_JUSTIFY_* values coincide.
+
+Sat Dec 16 14:10:43 2006 Ben Pfaff <blp@gnu.org>
+
+ * psppire-var-store.c (text_for_column): Adjust to account for new
+ values of the MEASURE_* enums.
+
+ * var-sheet.c (change_measure): Ditto.
+
+Sat Dec 16 12:24:35 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * psppire-variable.c psppire-variable.h: Deleted.
+
+ * psppire-dict.c psppire-dict.h: Removed the caching of the variable
+ data, which is now unecessary because src/data/vardict.h maintains
+ an association between variables and their dictionary.
+
+ * data-sheet.c menu-actions.c missing-val-dialog.c
+ missing-val-dialog.h psppire-data-store.c
+ psppire-var-store.c psppire-var-store.h
+ sort-cases-dialog.c val-labs-dialog.c val-labs-dialog.h
+ var-sheet.c var-type-dialog.c var-type-dialog.h: Dealt with the
+ consequences of deleting psppire-variable.[ch].
+
+
+Sat Dec 9 20:03:04 2006 Ben Pfaff <blp@gnu.org>
+
+ * var-type-dialog.c (var_type_dialog_create): Use
+ fmt_dollar_template from data/format.c.
+ (dollar_format_template) Removed.
+
+Sat Dec 9 07:19:53 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * syntax-editor.c : New file.
+
+Tue Oct 31 19:25:31 2006 Ben Pfaff <blp@gnu.org>
+
+ * var-type-dialog.c: Add missing "#include <config.h>".
+
+ * psppire.c: Ditto.
+
+Mon Jul 17 18:21:29 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * automake.mk menu-actions.c psppire-case-file.c psppire-case-file.h
+ psppire-data-store.c psppire-dict.c psppire-dict.h psppire-variable.c
+ psppire.c psppire.glade: Adjusted code to use the new flexifile object.
+
+Sat Jul 15 11:27:15 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * psppire.c psppire.glade automake.mk icons/* : Added toolbar icons where
+ there's no suitable gtk stock icon.
+
+Tue Jul 4 09:08:38 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * psppire.c: Fixed --help and --version options.
+
+Sat Jun 24 16:56:22 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * menu-actions.c: Added goto case and sort cases dialogs.
+
+ * psppire-case-file.c psppire-case-file.h: Added sort function.
+
+ * psppire-data-store.c psppire-variable.c psppire-variable.h:
+ Renamed psppire_variable_get_index to psppire_variable_get_fv and
+ dealt with the consequences. Added a psppire_variable_get_index
+ function which actually does what the name suggests.
+
+ * psppire-dict.c psppire-dict.h: Implemented GtkTreeModel interface,
+ which allows a dictionary to be displayed in a GtkTreeView.
+
+ * psppire.glade: Added dialog boxes for Goto Case and Sort Case.
+
+ * sort-cases-dialog.c sort-cases-dialog.h (new files).
+
+Mon Jun 19 18:10:53 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * psppire-case-file.c psppire-case-file.h (new files)
+
+ * automake.mk data-sheet.c data-sheet.h menu-actions.c
+ psppire-data-store.c psppire-data-store.h psppire-dict.c
+ psppire-dict.h psppire-var-store.c psppire.c
+
+ Replaced psppire-case-array.c with psppire-case-file.c, so as to
+ allow an arbitrary number of cases to be represented.
+
+Sun Jun 4 15:50:28 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * psppire-var-store.c, psppire.c, var-sheet.c : Unlimited the number of
+ variables that can be displayed. Minor i18n issues.
+
+Tue May 30 19:53:35 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * menu-actions.c menu-actions.h psppire.c: Fixed up load/new
+ interactions with startup.
+
+ * psppire-data-store.c: Fixed bad i18n call.
+
+ * pspppire-var-store.c, psppire-var-store.h: constness.
+
+ * helper.c: Implemented proper way to convert from PSPP to UTF8 encoding.
+
+
+Sat May 27 16:25:38 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * customentry.c data-sheet.c menu-actions.c message-dialog.c
+ missing-val-dialog.c psppire-data-store.c psppire-var-store.c
+ psppire.c psppire.glade var-sheet.c: Fixed internationalisation.
+
+Thu May 25 18:01:17 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * psppire-var-store.c: Converted strings to utf8 and returned them on the
+ heap.
+
+Sat May 20 21:08:18 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * data-sheet.c, menu-actions.c menu-actions: Fixed data sheet so that
+ active cell is never on a deleted variable.
+
+ * psppire-data-store.c psppire-data-store.h: Added get_var_count and
+ get_case_count functions.
+
+ * psppire-dict.c: removed VARIABLE_DELETED (singular) signal.
+
+ * psppire.c: Allowed user to specify *.sav file on command line.
+
+Mon May 15 20:01:25 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * menu-actions.c psppire-case-array.c psppire-case-array.h
+ psppire-data-store.c psppire-dict.c psppire-dict.h
+ psppire-variable.c:
+
+ Initialised new cases to SYSMIS/blank when inserting in data sheet.
+
+Sat May 13 08:00:50 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * data-sheet.c, helper.c, helper.h, psppire-data-store.c,
+ psppire-var-store.c:
+
+ Set free_strings flag so that the gtksheet frees the string data
+ when it's done with them.
+
+Thu May 11 22:25:49 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * data-sheet.c helper.c helper.h psppire-data-store.c psppire-var-store.c
+ psppire.c: Converted strings to utf8 before passing to gtksheet.
+
+ * psppire-dict.c: Changed buffer to more reasonable length
+
+ * var-sheet.c: Changed maximum string length to use macro from
+ data/values.h
+
+
+Sun May 7 10:07:28 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * psppire-data-store.c: Fixed buglet initialising string members.
+
+Thu May 4 18:04:04 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * message-dialog.c message-dialog.h: Added simple queuing to messages
+ reported, and ensure that dialog boxes dont appear when pointer grab
+ is active.
+
+ * psppire-data-store.c: Fix overflow on very long string variables.
+
+ * automake.mk: Fix broken dependency.
+
+
+Tue Apr 25 11:08:04 2006 Ben Pfaff <blp@gnu.org>
+
+ Finish reforming error message support. In this phase, move
+ message.c into libpspp.
+
+ * automake.mk: (src_ui_gui_psppire_SOURCES) Remove src/message.c.
+
+Tue Apr 25 10:56:53 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming error message support. In this phase, drop
+ actual message printing from core code, substituting a callback,
+ and add the callback to each UI. Also, move verbose_msg() into
+ its own module.
+
+ * automake.mk: (src_ui_gui_psppire_SOURCES) Add src/message.c.
+
+ * message-dialog.c: (message_dialog_init) New function.
+ (vmsg) Rename handle_msg(), rewrite as callback function.
+ (msg) Removed.
+ (msg_emit) Removed.
+ (msg_assert_fail) Removed.
+ (verbose_msg) Removed.
+
+ * psppire.c: (main) Call message_dialog_init().
+
+Sun Apr 23 22:07:49 2006 Ben Pfaff <blp@gnu.org>
+
+ 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.
+
+ * message-dialog.c: (err_vmsg) Rename err_msg(). Updated
+ interface.
+
+Sun Apr 16 20:45:35 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming error message support. In this phase, we
+ divide the classification of messages along "category" and
+ "severity" axes.
+
+ * message-dialog.c: (vmsg) Use severity and category in
+ straightforward fashion instead of the less obvious "class".
+ (err_vmsg) Construct class before passing along to vmsg().
+
+Sun Apr 16 16:06:54 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming error message support. In this phase, we get
+ rid of VM() and the other msg() support for "verbosity", replacing
+ it by a new function verbose_msg().
+
+ * message-dialog.c: (verbose_msg) New function.
+ (err_cond_fail) Removed (dead code).
+ (err_failure) Removed (dead code).
+
+Sun Apr 16 11:53:25 2006 Ben Pfaff <blp@gnu.org>
+
+ Start reforming error message support. In this phase, we get rid
+ of "installation errors" and change all uses of msg() in the
+ output drivers to uses of error() or error_at_line().
+
+ * message-dialog.c: (vmsg) Removed IE, IS support.
+
+Mon Mar 13 16:42:44 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * psppire.c: Supported (sort of) the --help and --version options.
+
+ * Rename error-dialog.[ch] -> message-dialog.[ch]
+
+ * Moved code from the psppire module.
+
+Sat Jan 28 16:22:23 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * Separated the data out of the GtkSheet.
+
+Tue Nov 2 19:00:28 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * Very first incarnation.
echo ' Yelp is available from the GNOME project. ftp://ftp.gnome.org/pub/gnome/sources/yelp' ; \
echo ; \
fi
-.PHONY: yelp-check
+PHONY += yelp-check
+
+EXTRA_DIST += src/ui/gui/OChangeLog
+++ /dev/null
-2008-05-15 Ben Pfaff <blp@gnu.org>
-
- * Use unilbrk.h instead of linebreak.h and ulc_width_linebreaks
- instead of mbs_width_linebreaks for compatibility with latest
- gnulib.
-
-2007-11-03 Ben Pfaff <blp@gnu.org>
-
- Allow output files to overwrite input files (bug #21280).
-
- * main.c (main): Use at_fatal_signal instead of calling signal
- directly.
- (interrupt_handler) Removed.
- (terminate) Rename clean_up. Don't call exit directly.
-
-2007-09-25 Ben Pfaff <blp@gnu.org>
-
- Patch #6210: implement ability to resize output device parameters
- to fit terminal window size as it changes. Reviewed by John
- Darrington.
-
- * automake.mk (src_ui_terminal_libui_a_SOURCES): Add new files.
-
- * terminal.c: New file.
-
- * terminal.h: New file.
-
- * main.c (main): No need to set up SIGWINCH handler any longer.
- But we do need to call terminal_init.
- (set_fallback_viewport): Move to terminal.c.
- [HAVE_LIBNCURSES] (get_termcap_viewport): Ditto.
- [!HAVE_LIBNCURSES] (get_termcap_viewport): Ditto.
-
- * read-line.c (readln_read): After the first line of a command,
- call terminal_check_size to allow it to re-detect the terminal
- size.
-
-2007-09-24 Ben Pfaff <blp@gnu.org>
-
- Patch #6210. Reviewed by John Darrington.
- * main.c (set_fallback_viewport): Make code easier to understand.
- (get_termcap_viewport): Ditto.
-
- * command-line.c (parse_command_line): Don't call force_long_view,
- as that function is no longer necessary.
-
- * msg-ui.c (handle_msg): Only wrap message output to the message
- file to the width of the terminal if the message file is a tty.
-
-2007-09-19 John Darrington <john@darrington.wattle.id.au>
-
- * main.c: Moved get_termcap_viewport from src/data/settings.c
- Added a handler for SIGWINCH to call this function. Adjusted
- init_settings to suit new interface.
-
-2007-09-22 Ben Pfaff <blp@gnu.org>
-
- Bug #21128. Reviewed by John Darrington.
-
- * main.c (i18_init): Set up LC_PAPER locale, if available. Don't
- bother with LC_MONETARY locale, since we don't use it anywhere.
-
-2007-08-26 Ben Pfaff <blp@gnu.org>
-
- Bug #17238. Thanks to John Darrington for review.
-
- * main.c (main): When testing mode is enabled, use a built-in
- output driver configuration instead of reading it from the
- configuration file.
-
- * msg-ui.c (handle_msg): Send error message to non-screen output
- devices also, if routing to listing files is enabled.
-
-2007-08-23 Ben Pfaff <blp@gnu.org>
-
- Implement journaling. Bug #17240.
-
- * msg-ui.c (handle_msg): Send message to write_journal function
- as well as msg_file.
- (dump_message): Change interface so that it takes a function
- pointer instead of a FILE.
- (write_stream): New function.
- (write_journal): New function.
-
- * read-line.c (welcome): Call journal_enable, so that the journal
- is enabled by default.
-
-2007-07-25 Ben Pfaff <blp@gnu.org>
-
- Make interactive output go to the terminal (bug #17213), by
- causing the UI to flush output to the user when it prompts for a
- command.
-
- * command-line.c (parse_command_line): Configure interactive
- output devices if appropriate.
-
- * read-line.c (readln_read): Flush output if this is a prompt for
- the first line of a command.
-
-2007-06-06 Ben Pfaff <blp@gnu.org>
-
- Adapt case sources, sinks, and clients of procedure code to the
- new infrastructure.
-
- * main.c: No need for fastfile_factory any more.
-
-2007-02-25 Ben Pfaff <blp@gnu.org>
-
- Thanks to Jason Stover for verifying that this patch helps under
- NetBSD.
-
- * main.c [HAVE_IEEE_FP]: Include <ieeefp.h>.
- (fpu_init) [HAVE_IEEE_FP]: Use setfpmask to mask floating-point
- exceptions.
-
-Sun Feb 18 13:28:26 2007 Ben Pfaff <blp@gnu.org>
-
- * msg-ui.c: Don't include exit.h, because gnulib fixes up stdlib.h
- as necessary. Do include stdlib.h, because exit.h did so for us
- and we need it.
-
-Thu Feb 8 15:07:04 2007 Ben Pfaff <blp@gnu.org>
-
- * read-line.c (readln_initialize): Instead of only supporting
- history in unix, always support history, and only support a
- history file when $HOME is defined.
- (readln_uninitialize): Ditto.
- (welcome) Call readln_initialize instead of duplicating code.
-
-Sun Dec 10 11:13:53 2006 Ben Pfaff <blp@gnu.org>
-
- * command-line.c (pre_syntax_message): Use term "syntax" instead
- of "script".
-
-Sat Dec 9 07:21:02 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * msg-ui.c (msg_ui_done): call msg_locator_done.
-
-Sun Dec 3 11:57:00 2006 Ben Pfaff <blp@gnu.org>
-
- * read-line.c (read_interactive): Always read GETL_INTERACTIVE
- lines.
-
-Thu Nov 16 20:46:35 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * main.c: Connect debugger on errors.
-
-Tue Nov 7 20:54:32 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * command-line.c msg-ui.c msg-ui.h main.c: Added an -e
- option to set the file for error messages.
-
-Sat Nov 4 15:48:04 2006 Ben Pfaff <blp@gnu.org>
-
- * msg-ui.c (handle_msg): Only write message to terminal if
- get_error_routing_to_terminal() returns true.
-
-Fri Jul 7 20:03:42 2006 Ben Pfaff <blp@gnu.org>
-
- * main.c: (main) Register SIGABRT with bug_handler also.
- (bug_handler) Handle SIGABRT also.
-
-Tue Jun 27 22:44:56 2006 Ben Pfaff <blp@gnu.org>
-
- Fix regression in command name completion reported by John
- Darrington. Now completion is again state-dependent and occurs
- only on the first line of a command.
-
- * main.c (main): Reading of first token in command moved into
- cmd_parse.
- (execute_command) Removed.
-
- * read-line.c: [HAVE_READLINE] (readln_initialize) Postpone
- setting rl_attempted_completion_function until readln_read.
- [HAVE_READLINE] (readln_read) Change param from const char * to
- enum getl_prompt_style. Set rl_attempted_completion_function
- based on style.
- [HAVE_READLINE] (complete_command_name) New function.
- [HAVE_READLINE] (dont_complete) New function.
- [HAVE_READLINE] (command_generator) New function.
-
-Tue Jun 27 08:23:07 2006 Ben Pfaff <blp@gnu.org>
-
- * automake.mk (src_ui_terminal_pspp_LDADD): Add $(LIBICONV).
- Thanks to Jason Stover for reporting the omission.
-
-Thu May 4 21:50:59 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming procedure execution. In this phase, move
- procedure.c and procedure.h from src to src/data. Update
- makefiles and #includes accordingly.
-
- * automake.mk: (src_ui_terminal_pspp_SOURCES) Remove
- src/procedure.c and src/procedure.h.
- (src_ui_terminal_pspp_LDADD) Move libexpressions.a later in list
- to make the link work.
-
-Wed May 3 23:09:37 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming procedure execution. In this phase, get rid of
- many global variables, consolidating procedure execution in
- procedure.c. Encapsulate transformations in new "struct
- trns_chain". Also, change implementation of N OF CASES, FILTER,
- and PROCESS IF from special cases to transformations.
-
- * main.c: (main) Use proc_init().
- (terminate) Use proc_done().
-
-Wed Apr 26 13:34:54 2006 Ben Pfaff <blp@gnu.org>
-
- Improve command name completion in readline.
-
- * read-line.c (readln_initialize): Set up readline to only break
- words for completion at new-line. That way we can complete a
- whole command name. Also, set rl_attempted_completion_function
- instead of rl_completion_entry_function so we can disable
- completing on file names, which is usually not what we want in
- PSPP.
-
-Wed Apr 26 13:31:00 2006 Ben Pfaff <blp@gnu.org>
-
- Improve the way we handle the various parsing "states". Until now
- we've hard-coded the state transitions in the command definition
- file, but that's error-prone and, worse, it's redundant--we can
- figure out what state we're in anyhow. We can cleanly handle
- INPUT PROGRAM and FILE TYPE with a nested command-processing loop.
-
- * automake.mk (src_ui_terminal_pspp_LDADD): Move libui earlier to
- avoid link errors.
-
- * main.c (main): Handle new CMD_* results.
- (execute_command) Move most per-command actions into cmd_parse().
- (handle_error) Removed. cmd_parse() handles command failure.
-
-Tue Apr 25 11:08:17 2006 Ben Pfaff <blp@gnu.org>
-
- Finish reforming error message support. In this phase, move
- message.c into libpspp.
-
- * automake.mk: Remove message.c from sources.
-
-Tue Apr 25 10:58:19 2006 Ben Pfaff <blp@gnu.org>
-
- Continue reforming error message support. In this phase, drop
- actual message printing from core code, substituting a callback,
- and add the callback to each UI. Also, move verbose_msg() into
- its own module.
-
- * automake.mk (src_ui_terminal_libui_a_SOURCES): Add msg-ui.c,
- msg-ui.h.
-
- * command-line.c: (parse_command_line) Call
- verbose_increment_level() instead of increment err_verbosity
- directly, now that we have a little abstraction.
-
- * msg-ui.c: New file.
-
- * msg-ui.h: New file.
-
- * main.c: (main) Call msg_ui_init(). Use any_errors().
- (terminate) Call msg_ui_done(). Make termination order more
- rational.
-
- * read-line.c: (readln_read) Use reset_msg_count() now we have a
- little abstraction.
-
-Tue Apr 25 09:39:46 2006 Ben Pfaff <blp@gnu.org>
-
- * main.c: (terminate) Mark static and NO_RETURN. If called
- recursively, which can only happen via signal, just exit instead
- of trying to gracefully shut down.
-
-Fri Mar 31 10:33:37 2006 Ben Pfaff <blp@gnu.org>
-
- * command-line.c: (var pre_syntax_message) -d and -u are no longer
- supported.
-
-Sat Mar 11 14:18:39 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * automake.mk: Moved the pspp binary here.
-
-Thu Mar 2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * Moved files from src directory
--- /dev/null
+2008-05-15 Ben Pfaff <blp@gnu.org>
+
+ * Use unilbrk.h instead of linebreak.h and ulc_width_linebreaks
+ instead of mbs_width_linebreaks for compatibility with latest
+ gnulib.
+
+2007-11-03 Ben Pfaff <blp@gnu.org>
+
+ Allow output files to overwrite input files (bug #21280).
+
+ * main.c (main): Use at_fatal_signal instead of calling signal
+ directly.
+ (interrupt_handler) Removed.
+ (terminate) Rename clean_up. Don't call exit directly.
+
+2007-09-25 Ben Pfaff <blp@gnu.org>
+
+ Patch #6210: implement ability to resize output device parameters
+ to fit terminal window size as it changes. Reviewed by John
+ Darrington.
+
+ * automake.mk (src_ui_terminal_libui_a_SOURCES): Add new files.
+
+ * terminal.c: New file.
+
+ * terminal.h: New file.
+
+ * main.c (main): No need to set up SIGWINCH handler any longer.
+ But we do need to call terminal_init.
+ (set_fallback_viewport): Move to terminal.c.
+ [HAVE_LIBNCURSES] (get_termcap_viewport): Ditto.
+ [!HAVE_LIBNCURSES] (get_termcap_viewport): Ditto.
+
+ * read-line.c (readln_read): After the first line of a command,
+ call terminal_check_size to allow it to re-detect the terminal
+ size.
+
+2007-09-24 Ben Pfaff <blp@gnu.org>
+
+ Patch #6210. Reviewed by John Darrington.
+ * main.c (set_fallback_viewport): Make code easier to understand.
+ (get_termcap_viewport): Ditto.
+
+ * command-line.c (parse_command_line): Don't call force_long_view,
+ as that function is no longer necessary.
+
+ * msg-ui.c (handle_msg): Only wrap message output to the message
+ file to the width of the terminal if the message file is a tty.
+
+2007-09-19 John Darrington <john@darrington.wattle.id.au>
+
+ * main.c: Moved get_termcap_viewport from src/data/settings.c
+ Added a handler for SIGWINCH to call this function. Adjusted
+ init_settings to suit new interface.
+
+2007-09-22 Ben Pfaff <blp@gnu.org>
+
+ Bug #21128. Reviewed by John Darrington.
+
+ * main.c (i18_init): Set up LC_PAPER locale, if available. Don't
+ bother with LC_MONETARY locale, since we don't use it anywhere.
+
+2007-08-26 Ben Pfaff <blp@gnu.org>
+
+ Bug #17238. Thanks to John Darrington for review.
+
+ * main.c (main): When testing mode is enabled, use a built-in
+ output driver configuration instead of reading it from the
+ configuration file.
+
+ * msg-ui.c (handle_msg): Send error message to non-screen output
+ devices also, if routing to listing files is enabled.
+
+2007-08-23 Ben Pfaff <blp@gnu.org>
+
+ Implement journaling. Bug #17240.
+
+ * msg-ui.c (handle_msg): Send message to write_journal function
+ as well as msg_file.
+ (dump_message): Change interface so that it takes a function
+ pointer instead of a FILE.
+ (write_stream): New function.
+ (write_journal): New function.
+
+ * read-line.c (welcome): Call journal_enable, so that the journal
+ is enabled by default.
+
+2007-07-25 Ben Pfaff <blp@gnu.org>
+
+ Make interactive output go to the terminal (bug #17213), by
+ causing the UI to flush output to the user when it prompts for a
+ command.
+
+ * command-line.c (parse_command_line): Configure interactive
+ output devices if appropriate.
+
+ * read-line.c (readln_read): Flush output if this is a prompt for
+ the first line of a command.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ Adapt case sources, sinks, and clients of procedure code to the
+ new infrastructure.
+
+ * main.c: No need for fastfile_factory any more.
+
+2007-02-25 Ben Pfaff <blp@gnu.org>
+
+ Thanks to Jason Stover for verifying that this patch helps under
+ NetBSD.
+
+ * main.c [HAVE_IEEE_FP]: Include <ieeefp.h>.
+ (fpu_init) [HAVE_IEEE_FP]: Use setfpmask to mask floating-point
+ exceptions.
+
+Sun Feb 18 13:28:26 2007 Ben Pfaff <blp@gnu.org>
+
+ * msg-ui.c: Don't include exit.h, because gnulib fixes up stdlib.h
+ as necessary. Do include stdlib.h, because exit.h did so for us
+ and we need it.
+
+Thu Feb 8 15:07:04 2007 Ben Pfaff <blp@gnu.org>
+
+ * read-line.c (readln_initialize): Instead of only supporting
+ history in unix, always support history, and only support a
+ history file when $HOME is defined.
+ (readln_uninitialize): Ditto.
+ (welcome) Call readln_initialize instead of duplicating code.
+
+Sun Dec 10 11:13:53 2006 Ben Pfaff <blp@gnu.org>
+
+ * command-line.c (pre_syntax_message): Use term "syntax" instead
+ of "script".
+
+Sat Dec 9 07:21:02 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * msg-ui.c (msg_ui_done): call msg_locator_done.
+
+Sun Dec 3 11:57:00 2006 Ben Pfaff <blp@gnu.org>
+
+ * read-line.c (read_interactive): Always read GETL_INTERACTIVE
+ lines.
+
+Thu Nov 16 20:46:35 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * main.c: Connect debugger on errors.
+
+Tue Nov 7 20:54:32 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * command-line.c msg-ui.c msg-ui.h main.c: Added an -e
+ option to set the file for error messages.
+
+Sat Nov 4 15:48:04 2006 Ben Pfaff <blp@gnu.org>
+
+ * msg-ui.c (handle_msg): Only write message to terminal if
+ get_error_routing_to_terminal() returns true.
+
+Fri Jul 7 20:03:42 2006 Ben Pfaff <blp@gnu.org>
+
+ * main.c: (main) Register SIGABRT with bug_handler also.
+ (bug_handler) Handle SIGABRT also.
+
+Tue Jun 27 22:44:56 2006 Ben Pfaff <blp@gnu.org>
+
+ Fix regression in command name completion reported by John
+ Darrington. Now completion is again state-dependent and occurs
+ only on the first line of a command.
+
+ * main.c (main): Reading of first token in command moved into
+ cmd_parse.
+ (execute_command) Removed.
+
+ * read-line.c: [HAVE_READLINE] (readln_initialize) Postpone
+ setting rl_attempted_completion_function until readln_read.
+ [HAVE_READLINE] (readln_read) Change param from const char * to
+ enum getl_prompt_style. Set rl_attempted_completion_function
+ based on style.
+ [HAVE_READLINE] (complete_command_name) New function.
+ [HAVE_READLINE] (dont_complete) New function.
+ [HAVE_READLINE] (command_generator) New function.
+
+Tue Jun 27 08:23:07 2006 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk (src_ui_terminal_pspp_LDADD): Add $(LIBICONV).
+ Thanks to Jason Stover for reporting the omission.
+
+Thu May 4 21:50:59 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming procedure execution. In this phase, move
+ procedure.c and procedure.h from src to src/data. Update
+ makefiles and #includes accordingly.
+
+ * automake.mk: (src_ui_terminal_pspp_SOURCES) Remove
+ src/procedure.c and src/procedure.h.
+ (src_ui_terminal_pspp_LDADD) Move libexpressions.a later in list
+ to make the link work.
+
+Wed May 3 23:09:37 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming procedure execution. In this phase, get rid of
+ many global variables, consolidating procedure execution in
+ procedure.c. Encapsulate transformations in new "struct
+ trns_chain". Also, change implementation of N OF CASES, FILTER,
+ and PROCESS IF from special cases to transformations.
+
+ * main.c: (main) Use proc_init().
+ (terminate) Use proc_done().
+
+Wed Apr 26 13:34:54 2006 Ben Pfaff <blp@gnu.org>
+
+ Improve command name completion in readline.
+
+ * read-line.c (readln_initialize): Set up readline to only break
+ words for completion at new-line. That way we can complete a
+ whole command name. Also, set rl_attempted_completion_function
+ instead of rl_completion_entry_function so we can disable
+ completing on file names, which is usually not what we want in
+ PSPP.
+
+Wed Apr 26 13:31:00 2006 Ben Pfaff <blp@gnu.org>
+
+ Improve the way we handle the various parsing "states". Until now
+ we've hard-coded the state transitions in the command definition
+ file, but that's error-prone and, worse, it's redundant--we can
+ figure out what state we're in anyhow. We can cleanly handle
+ INPUT PROGRAM and FILE TYPE with a nested command-processing loop.
+
+ * automake.mk (src_ui_terminal_pspp_LDADD): Move libui earlier to
+ avoid link errors.
+
+ * main.c (main): Handle new CMD_* results.
+ (execute_command) Move most per-command actions into cmd_parse().
+ (handle_error) Removed. cmd_parse() handles command failure.
+
+Tue Apr 25 11:08:17 2006 Ben Pfaff <blp@gnu.org>
+
+ Finish reforming error message support. In this phase, move
+ message.c into libpspp.
+
+ * automake.mk: Remove message.c from sources.
+
+Tue Apr 25 10:58:19 2006 Ben Pfaff <blp@gnu.org>
+
+ Continue reforming error message support. In this phase, drop
+ actual message printing from core code, substituting a callback,
+ and add the callback to each UI. Also, move verbose_msg() into
+ its own module.
+
+ * automake.mk (src_ui_terminal_libui_a_SOURCES): Add msg-ui.c,
+ msg-ui.h.
+
+ * command-line.c: (parse_command_line) Call
+ verbose_increment_level() instead of increment err_verbosity
+ directly, now that we have a little abstraction.
+
+ * msg-ui.c: New file.
+
+ * msg-ui.h: New file.
+
+ * main.c: (main) Call msg_ui_init(). Use any_errors().
+ (terminate) Call msg_ui_done(). Make termination order more
+ rational.
+
+ * read-line.c: (readln_read) Use reset_msg_count() now we have a
+ little abstraction.
+
+Tue Apr 25 09:39:46 2006 Ben Pfaff <blp@gnu.org>
+
+ * main.c: (terminate) Mark static and NO_RETURN. If called
+ recursively, which can only happen via signal, just exit instead
+ of trying to gracefully shut down.
+
+Fri Mar 31 10:33:37 2006 Ben Pfaff <blp@gnu.org>
+
+ * command-line.c: (var pre_syntax_message) -d and -u are no longer
+ supported.
+
+Sat Mar 11 14:18:39 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * automake.mk: Moved the pspp binary here.
+
+Thu Mar 2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * Moved files from src directory
if RELOCATABLE_VIA_LD
src_ui_terminal_pspp_LDFLAGS += `$(RELOCATABLE_LDFLAGS) $(bindir)`
endif
+
+EXTRA_DIST += src/ui/terminal/OChangeLog
+++ /dev/null
-2008-06-21 Jason Stover <jhs@math.gcsu.edu>
-
- * regression.sh, regression-qr.sh: Fixed column showing
- standardized coefficients.
-
-2008-05-16 John Darrington <john@darrington.wattle.id.au>
-
- * compression.sh print-crash.sh print-strings.sh very-long-strings.sh :
- Removed export VAR=VAL syntax.
-
- * automake.mk: Added test to check for non-portable shell syntax
-
-2008-04-14 Jason Stover <jhs@math.gcsu.edu>
-
- * automake.mk: New test for regression with QR decomposition.
-
- * command/regression-qr.sh: New test for regression with QR decomposition.
-
-2008-03-16 Ben Pfaff <blp@gnu.org>
-
- Bug #22037.
-
- * automake.mk: Add new test.
-
- * bugs/crosstabs-crash2.sh: New test.
-
-2008-03-16 Ben Pfaff <blp@gnu.org>
-
- Patch #6452. Reviewed by John Darrington.
-
- * automake.mk: Add new test.
-
- * command/variable-display.sh: New test.
-
-2008-03-04 Ben Pfaff <blp@gnu.org>
-
- Patch #6441. Reviewed by John Darrington.
-
- * automake.mk: Add new test.
-
- * formats/format-guesser.sh: New test.
-
-2008-02-10 Ben Pfaff <blp@gnu.org>
-
- * command/get-data-txt-examples.sh: Update to match changes to
- documentation (which were in turn updated to show how the escaped
- quote feature works).
-
-2008-02-02 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Add target for dissect-sysfile.
-
- * dissect-sysfile.c: New program.
-
-2008-02-01 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Add new test.
-
- * libpspp/str-test.c: New test.
-
- * command/get-dat-gnm.sh: Update variable names to match new
- naming scheme.
-
-2007-12-04 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Add new tests.
-
- * command/get-data-txt.sh: New test.
-
- * command/get-data-txt-examples.sh: New test.
-
- * command/get-data-txt-importcases.sh: New test.
-
-2007-11-25 Ben Pfaff <blp@gnu.org>
-
- * bugs/compression.sh: Don't fail on big-endian system. Partial
- fix for bug #21590.
-
- * bugs/sysfile-info.sh: Disregard "Integer Format" and "Real
- Format" lines in SYSFILE INFO output, to permit big-endian systems
- to pass also. Partial fix for bug #21590.
-
-2007-11-15 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Add definition of CHARSETALIASDIR to
- TESTS_ENVIRONMENT, to allow locale_charset to find charset.alias
- before running "make install".
-
-2007-11-10 Ben Pfaff <blp@gnu.org>
-
- * bugs/compression.sh: Pass -b option to diff to avoid spurious
- failure on od.
-
-2007-11-08 Ben Pfaff <blp@gnu.org>
-
- Patch #6256: add support for binary, 360 file formats. Reviewed
- by John Darrington.
-
- * automake.mk: Add new file.
-
- * formats/360.sh: New test.
-
-2007-11-07 Ben Pfaff <blp@gnu.org>
-
- * bugs/overwrite-input-file.sh: Don't use non-portable "diff -B".
-
- * bugs/overwrite-special-file.sh: Ditto.
-
- Reported by Jason Stover.
-
-2007-11-03 Ben Pfaff <blp@gnu.org>
-
- Allow output files to overwrite input files (bug #21280).
-
- * automake.mk: Add new file.
-
- * bugs/overwrite-input-file.sh: Rewrite to make sure that we can
- overwrite input files safely.
-
- * bugs/overwrite-special-file.sh: New test.
-
- * command/erase.sh: Fix "activity" message.
-
-2007-11-03 John Darrington <john@darrington.wattle.id.au>
-
- * Book1.gnm.unzipped command/get-data-gnm.sh: New test and data
- for reading gnumeric files.
-
-2007-10-08 Ben Pfaff <blp@gnu.org>
-
- Bug #21280. Thanks to John Darrington for review.
-
- * automake.mk: Add new file.
-
- * bugs/overwrite-input-file.sh: New test.
-
-2007-09-23 Ben Pfaff <blp@gnu.org>
-
- Bug #21111. Reviewed by John Darrington.
-
- * command/input-program.sh: New test.
-
- * command/do-if.sh: New tests.
-
-2007-09-22 Ben Pfaff <blp@gnu.org>
-
- Bug #21128. Reviewed by John Darrington.
-
- * output/paper-size.sh: New test.
-
-2007-09-21 Ben Pfaff <blp@gnu.org>
-
- * bugs/unwritable-dir.sh: New test for bug #21117.
-
-2007-09-19 Ben Pfaff <blp@gnu.org>
-
- * bugs/input-crash.sh: Add regression test for bug #21108.
-
-2007-09-04 Ben Pfaff <blp@gnu.org>
-
- Update scripts that invoke Perl to invoke it as simply "perl" if
- not run from the PSPP Makefiles. Patch #6169. Thanks to John
- Darrington for suggestion and review.
- * bugs/big-input-2.sh: Make $PERL default to perl.
- * command/sort.sh: Ditto.
- * formats/bcd-in.sh: Ditto.
- * formats/date-in.sh: Ditto.
- * formats/ib-in.sh: Ditto.
- * formats/legacy-in.sh: Ditto.
- * formats/num-in.sh: Ditto.
- * formats/num-out.sh: Ditto.
- * formats/time-in.sh: Ditto.
-
-2007-08-26 Ben Pfaff <blp@gnu.org>
-
- * Updated most invocations of PSPP in the tests to use
- --testing-mode and to avoid specifying an output format with -o
- (because --testing-mode implies -o raw-ascii).
-
-2007-08-26 Ben Pfaff <blp@gnu.org>
-
- * command/aggregate.sh: Update output to include error messages,
- which are now sent to output files also.
-
- * command/ranks.h: Ditto.
-
-2007-08-12 Ben Pfaff <blp@gnu.org>
-
- * command/no_case_size.sh: Update to match update DISPLAY and
- SYSFILE INFO command output.
-
- * command/rank.sh: Ditto.
-
- * command/sysfile-info.sh: Ditto.
-
- * command/very-long-strings.sh: Ditto.
-
-2007-08-09 Ben Pfaff <blp@gnu.org>
-
- Fix bug #18982. Thanks to John Darrington for investigation,
- review, and verification of fix.
-
- * formats/date-in.sh: Use a portable pseudo-random number
- generator.
-
- * formats/time-in.sh: Ditto.
-
- * formats/num-in.sh: Ditto.
-
-2007-08-03 Ben Pfaff <blp@gnu.org>
-
- * command/rank.sh: Test RANK with noncontiguous groups of SPLIT
- FILE variables and how they should behave differently from
- noncontiguous groups of BY variables. Regression test for bug
- #17239.
-
-2007-08-01 Ben Pfaff <blp@gnu.org>
-
- * command/weight.sh: Update to match new output format for median
- under FREQUENCIES.
-
- * stats/percentiles-compatible.sh: Ditto.
-
- * stats/percentiles-enhanced.sh: Ditto.
-
-2007-07-28 John Darrington <john@darrington.wattle.id.au>
-
- * command/t-test-1-indep-val.sh: Changed the order of groups in the
- summary box to match new behaviour. (Fixes bug #19604).
-
-2007-07-25 Ben Pfaff <blp@gnu.org>
-
- Fix bug #17100.
- * command/data-list.sh: Add tests for multi-record DATA LIST with
- and without empty trailing record.
-
-2007-07-24 Ben Pfaff <blp@gnu.org>
-
- * command/flip.sh: Add tests to avoid regression on bugs #20493,
- #20494.
-
-2007-07-22 Ben Pfaff <blp@gnu.org>
-
- * command/very-long-strings.sh: Test both compressed and
- uncompressed system files with very long strings.
-
-2007-07-17 Ben Pfaff <blp@gnu.org>
-
- Patch #19335. Reviewed by John Darrington.
-
- * expressions/randist/compare.pl: Use strict and all warnings.
-
- * expressions/randist/randist.pl: Ditto.
-
- * formats/num-out-cmp.pl: Ditto.
-
- * formats/num-out-compare.pl: Ditto.
-
- * formats/num-out-decmp.pl: Ditto.
-
- * formats/num-out.pl: Ditto.
-
-2007-07-17 Ben Pfaff <blp@gnu.org>
-
- * formats/float-format.h: Drop the tests that depend on parsing
- "-0" from a syntax file. Also make float-format.sh error messages
- easier to read, by changing the sed command so that error line
- numbers are easier to match to the test input.
- Reviewed by John Darrington as patch #6091.
-
-2007-07-11 Ben Pfaff <blp@gnu.org>
-
- * xforms/expressions.sh: Remove unused file. Fixes bug
- #18140.
-
-2007-06-06 Ben Pfaff <blp@gnu.org>
-
- * commands/match-files.sh: Test the new support for FIRST and LAST
- subcommands.
-
-2007-06-06 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Remove test.
-
- * xforms/casefile.sh: Removed test.
-
-2007-06-06 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Add new test.
-
- * command/datasheet.sh: New test.
-
-2007-06-03 Ben Pfaff <blp@gnu.org>
-
- * libpspp/tower-test.c: Also test tower_last, tower_prev functions.
-
- * libpspp/range-set-test.c: Also test the range_set_clone function.
-
-2007-05-06 Ben Pfaff <blp@gnu.org>
-
- Abstract the documents within a dictionary a little better.
- Thanks to John Darrington for suggestion, initial version, and
- review. Patch #5917.
-
- * command/file-label.sh: Update to match new DOCUMENT behavior.
-
-2007-04-19 John Darrington <john@darrington.wattle.id.au>
-
- * command/no_case_size.sh command/sysfiles-old.sh:
- Changed tests to reflect new behaviour (case changing) when
- reading system files with no long name table.
-
-2007-04-15 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Add recode.sh to tests.
-
- * xforms/recode.sh: New test.
-
-2007-04-03 Ben Pfaff <blp@gnu.org>
- John McCabe-Dansted <gmatht@gmail.com>
-
- * npar-binomial.sh: Be less picky about whitespace in PSPP output.
-
- * npar-chisquare.sh: Ditto.
-
- * very-long-strings.sh: Ditto.
-
-2007-04-03 Ben Pfaff <blp@gnu.org>
-
- Apply patches #5828, #5837, #5841, #5843.
-
- * automake.mk (tests_libpspp_bt_test_LDADD): Add range-map-test,
- range-set-test, tower-test.
-
- * libpspp/range-map-test.c: New test.
-
- * libpspp/range-set-test.c: New test.
-
- * libpspp/tower-test.c: New test.
-
-2007-03-31 Ben Pfaff <blp@gnu.org>
-
- * automake.mk (tests_libpspp_bt_test_LDADD): Add tests/libpspp/bt.
-
- * libpspp/bt-test.c: New test.
-
-2007-03-25 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Add tests/libpspp/sparse-array-test.
-
- * libpspp/sparse-array-test.c: New test.
-
-2007-03-18 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Don't try to distribute tests that are compiled
- from C source. This fixes "make dist" when "make all" has not yet
- been run.
-
-Mon Feb 12 06:29:30 2007 Ben Pfaff <blp@gnu.org>
-
- * libpspp/ll-test.c, libpspp/llx-test.c: Include <config.h>.
-
-Sat Feb 3 21:57:34 2007 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Add tests/command/vector.sh.
-
- * command/vector.sh: New test.
-
-Wed Jan 24 21:13:53 2007 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Add tests/libpspp/abt-test.
-
- * libpspp/abt-test.c: New test.
-
- * libpspp/heap-test.c, libpspp/ll-test.c, libpspp/llx-test.c:
- Style fixes.
-
-Wed Jan 10 06:50:01 2007 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Add tests/libpspp/heap-test.
-
- * libpspp/heap-test.c: New test.
-
-Wed Dec 13 21:00:46 2006 Ben Pfaff <blp@gnu.org>
-
- * command/rank.sh (activity): Use DELETE VAR (which is new)
- instead of MODIFY VARS.
-
-Tue Dec 19 08:17:28 2006 Ben Pfaff <blp@gnu.org>
-
- * command/loop.sh: Test all the possible combinations of clauses.
-
-Sat Dec 16 14:00:48 2006 Ben Pfaff <blp@gnu.org>
-
- * command/rank.sh: Fix test to allow string grouping variables.
- See bug #18533.
-
-Sat Dec 16 12:20:58 2006 Ben Pfaff <blp@gnu.org>
-
- * expressions/expressions.sh: Fix DATEDIFF function tests to
- correspond with change to DATEDIFF.
-
-Wed Dec 13 19:34:29 2006 Ben Pfaff <blp@gnu.org>
-
- * expressions/expressions.sh: Test DATEDIFF, DATESUM functions.
-
-Sun Dec 10 16:52:04 2006 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Add new test.
-
- * expressions/valuelabel.sh: New test, for VALUELABEL function.
-
-Thu Nov 30 22:46:17 2006 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Add new test.
-
- * bugs/compute-sum.sh: New test, for bug #17422.
-
-Thu Nov 30 22:01:57 2006 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Add new test.
-
- * bugs/empty-do-repeat: New test, for bug #18407.
-
-Wed Nov 22 06:28:04 2006 Ben Pfaff <blp@gnu.org>
-
- * bugs/signals.sh: Fix race condition.
-
-Sun Nov 19 09:23:34 2006 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Add the new tests listed below.
-
- * formats/bcd-in.sh: New test.
-
- * formats/bcd-in.expected.cmp.gz: New support file for
- bcd-in.sh.
-
- * formats/date-in.sh: New test.
-
- * formats/ib-in.sh: New test.
-
- * formats/ib-in.expected.cmp.gz: New test.
-
- * formats/legacy-in.sh: New test.
-
- * formats/legacy-in.expected.cmp.gz: New support file for
- legacy-in.sh.
-
- * formats/month-in.sh: New test.
-
- * formats/num-in.sh: New test.
-
- * formats/num-in.expected.gz: New support file for num-in.sh.
-
- * formats/time-in.sh: New test.
-
- * formats/wkday-in.sh: New test.
-
- * commands/no_case_size.sh: Update output to conform with
- update scientific notation code.
-
- * formats/num-out.expected.cmp.gz: Ditto.
-
-Thu Nov 2 20:58:12 2006 Ben Pfaff <blp@gnu.org>
-
- * command/data-list.sh: Test newly implement SKIP keyword on DATA
- LIST.
-
-Sat Nov 4 16:08:58 2006 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Add binhex-out.sh, date-out.sh, month-out.sh,
- num-out.sh, time-out.sh, wkday-out.sh from formats directory. Add
- formats/inexactify as a program needed by tests.
-
- * command/no_case_size.sh: Update output to conform with updated
- formatted output code.
-
- * expressions/expressions.sh: Ditto.
-
- * formats/binhex-out.sh: New test.
-
- * formats/date-out.sh: New test.
-
- * formats/month-out.sh: New test.
-
- * formats/num-out.sh: New test.
-
- * formats/time-out.sh: New test.
-
- * formats/wkday-out.sh: New test.
-
-Sun Oct 29 14:03:37 2006 Ben Pfaff <blp@gnu.org>
-
- * ll-test.c, llx-test.c: Reduce verbosity of output.
-
-Thu Oct 26 20:20:39 2006 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Add tests/formats/float-format.sh.
-
- * formats/float-format.sh: New test.
-
-Sat Oct 7 11:06:59 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * command/rank.sh: New file
-
-Sun Jul 16 21:08:51 2006 Ben Pfaff <blp@gnu.org>
-
- * command/print.sh: Update output to match PRINT revisions.
-
-Wed Jul 12 10:07:52 2006 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Put ll-test, llx-test in check_PROGRAMS instead of
- noinst_PROGRAMS.
-
-Wed Jul 5 22:15:24 2006 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Add expressions/randist/compare.pl to EXTRA_DIST.
-
-Tue Jul 4 09:59:52 2006 Ben Pfaff <blp@gnu.org>
-
- Fix bug #15766 (/KEEP subcommand on SAVE doesn't fully support
- ALL) and additional underlying system file issues.
-
- * automake.mk: Add keep-all.sh to TESTS.
-
- * bugs/keep-all.sh: New test.
-
-Mon Jul 3 21:09:52 2006 Ben Pfaff <blp@gnu.org>
-
- Modify the random distributions test to verify to 2 more decimal
- places of accuracy, but to allow +/- 1 units in the last (tested)
- place. This allows the test to pass on machines or with compilers
- whose calculated values are off by epsilon from the expected
- results. Because of the way the test is constructed, this was
- quite common and often caused gratuitous test failures.
-
- This is patch #5215, tested by Jason Stover and John Darrington.
-
- * expressions/randist.sh: Use compare.pl to do comparisons.
-
- * expressions/randist/compare.pl: New script to do comparisons.
-
- * expressions/randist/randist.pl: Print output to 4 decimal
- places, not just 2. Also, print a brief explanatory header at the
- top of each output file.
-
- * expressions/randist/*.out: Replace with new expected output.
-
-Sat Jul 1 15:33:37 2006 Ben Pfaff <blp@gnu.org>
-
- * automake.mk: Add ll-test, llx-test to TESTS.
-
- * libpspp/ll-test.c: New file.
-
- * libpspp/llx-test.c: New file.
-
-Sun May 7 18:15:52 2006 Ben Pfaff <blp@gnu.org>
-
- * command/do-repeat.sh: Only use "A TO B" for increasing runs of
- integers, which is all we now support (for closer compatibility).
-
-Wed Apr 26 13:36:42 2006 Ben Pfaff <blp@gnu.org>
-
- * command/missing-values.sh: Update output to match behavior
- changes.
-
-Mon Apr 3 12:32:36 2006 Ben Pfaff <blp@gnu.org>
-
- * Updated tests to match changes in output formatting.
-
-2006-03-23 Jason Stover <jhs@math.gcsu.edu>
-
- * command/regression.sh: New test.
-
-Sat Mar 11 14:16:01 WST 2006 John Darrington <john@darrington.wattle.id.au>
-
- * Updated the tests to use the new location of the pspp binary.
- * Made all the tests work as stand-alone scripts.
-
-Sun Feb 12 19:07:24 2006 Ben Pfaff <blp@gnu.org>
-
- * command/do-repeat.sh: New test.
-
- * bugs/terminate.sh: Removed (no longer applicable).
-
-Fri Nov 4 19:30:34 2005 Ben Pfaff <blp@gnu.org>
-
- * command/recode-bug.sh: Improve failure reports.
-
-Wed Nov 2 21:54:11 2005 Ben Pfaff <blp@gnu.org>
-
- * command/loop.sh: Update expected error messages.
-
-Sun Aug 21 00:20:02 2005 Ben Pfaff <blp@gnu.org>
-
- * command/import-export.sh: Simplify.
-
- * command/sysfiles-old.sh: Use version 2, not 3x.
-
-Sat Aug 6 17:32:39 2005 Ben Pfaff <blp@gnu.org>
-
- * command/missing-values.sh: New test.
-
- * Makefile.am: Add new test.
-
-Mon Aug 1 21:51:46 2005 Ben Pfaff <blp@gnu.org>
-
- * bugs/big-input-2.sh: Don't use 1...100000 (etc.) with Perl
- because that may allocate a large amount of memory.
-
-Mon Aug 1 21:48:54 2005 Ben Pfaff <blp@gnu.org>
-
- * xforms/expression.sh: Break this monolithic test up into 36
- subtests to give a better idea of what's failing in some cases.
-
-Sat Jul 30 21:54:23 2005 Ben Pfaff <blp@gnu.org>
-
- * command/sys-info.sh: Removed. (This was not actually in TESTS
- in Makefile.am, so it was never called. command/sysfile-info.sh
- does what it was trying to do, but better.)
-
-Sat Jul 30 21:50:33 2005 Ben Pfaff <blp@gnu.org>
-
- Fixes for Solaris.
-
- * Most tests: Add `cd /' before `rm -rf $TEMPDIR' because some
- OSes do not allow the current working directory to be removed.
-
- * bugs/big-input-2.sh: Use perl instead of a shell loop, because
- the shell loop was very slow on Solaris.
-
- * command/sort.sh: Use `printf' instead of `echo -n' for
- portability.
-
-Sat Jul 30 21:48:37 2005 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Add coverage.sh, temp_template to EXTRA_DIST.
-
-Sun Jul 24 20:35:04 2005 Ben Pfaff <blp@gnu.org>
-
- * command/sysfile-info.sh: Add "-b -B -w" to diff command line.
- Fixes apparent failure under Cygwin. Thanks to John Darrington
- <john@cellform.com.au> for reporting this problem.
-
-Mon Jul 4 18:02:44 2005 Ben Pfaff <blp@gnu.org>
-
- * command/sysfile-info.sh: Don't verify endianness. Fixes bug
- reported by "Marshall DeBerry" <mdb@radix.net>.
-
-Mon Jun 6 22:40:10 2005 Ben Pfaff <blp@gnu.org>
-
- * command/print.sh: Get rid of RBHEX output. It wasn't worth
- much. Fixes bug 12312.
-
-Tue May 10 19:59:10 2005 Ben Pfaff <blp@gnu.org>
-
- * bugs/agg-crash-2.sh: Fix output given bug 13054.
-
-Wed May 4 23:50:02 2005 Ben Pfaff <blp@gnu.org>
-
- * bugs/match-files-scratch.sh: New test for bug 12948.
-
- * Makefile.am: (TESTS) Add bugs/match-files-scratch.sh.
-
-Sun May 1 23:18:37 2005 Ben Pfaff <blp@gnu.org>
-
- Most tests: changed capitalization of variable names in
- definitions or in output, because now we preserve it.
-
-Mon Apr 25 23:30:17 2005 Ben Pfaff <blp@gnu.org>
-
- * commands/match-files.sh: New test.
-
- * Makefile.am: (TESTS) Add commands/match-files.sh.
-
-Sun Apr 17 16:38:00 2005 Ben Pfaff <blp@gnu.org>
-
- * crosstabs.stat, data-fmts.stat, do-if.stat, do-repeat.stat,
- gengarbage.c, inpt-pgm.stat, mdfy-vars.stat, means.stat,
- mtch-file.stat, pcs-if.stat, recode.stat, repeating.stat,
- reread.data, reread.stat, sys-info.stat, t-test.stat,
- temporary.stat, time-date.stat, vector.stat: Removed because they
- were unused.
-
- * Makefile.am: Removed sort.data references. Fixed up
- DISTCLEANFILES.
-
-Sun Mar 20 14:16:31 2005 Ben Pfaff <blp@gnu.org>
-
- * command/aggregate.sh: Rewrite.
-
-Mon Mar 14 21:58:23 2005 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (TESTS_ENVIRONMENT) Add PERL to the test
- environment.
-
- * commands/sort.sh: Rewrite to test more thoroughly and to verify
- that the sort is stable.
-
-Sat Mar 12 23:30:37 2005 Ben Pfaff <blp@gnu.org>
-
- * bugs/agg-crash-2.sh, bugs/big-input-2.sh, command/aggregate.sh:
- Fix AGGREGATE command syntax.
-
-Sat Mar 12 13:16:34 2005 Ben Pfaff <blp@gnu.org>
-
- * bugs/temp-freq.sh: Add another test.
-
-Fri Mar 11 10:40:41 2005 Ben Pfaff <blp@gnu.org>
-
- * expressions/expressions.sh: Add another test.
-
-Sun Mar 6 19:30:14 2005 Ben Pfaff <blp@gnu.org>
-
- * expressions/vectors.sh: New test.
-
- * Makefile.am: Add expressions/vectors.sh.
-
-Sun Mar 6 17:56:27 2005 Ben Pfaff <blp@gnu.org>
-
- * expressions/expressions.sh: Add tests for generic optimizations.
-
-Sun Mar 6 11:03:58 2005 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Add expressions/variables.sh. Remove expr.stat.
-
- * expr.stat: Removed.
-
-'Mon Feb 28 23:31:16 2005 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Removed xforms/expressions.sh. Added
- expressions/expressions.sh, expressions/epoch.sh,
- expressions/randist.sh.
-
- * command/print.sh: Update error messages.
-
-Sun Feb 13 16:15:09 2005 Ben Pfaff <blp@gnu.org>
-
- * bugs/agg-crash-2.sh: Add new test for Bug #11955.
-
-Fri Feb 11 23:27:08 2005 Ben Pfaff <blp@gnu.org>
-
- * bugs/crosstabs-crash.sh: Add new test for Bug #11916.
-
-Tue Jan 18 19:25:24 WST 2005 John Darrington <john@darrington.wattle.id.au>
-
- * Canonicalised (some of) the tests' temp file names to make it
- easier to recognise valgrind ouput.
-
-Sun Jan 9 16:39:08 WST 2005 John Darrington <john@darrington.wattle.id.au>
-
- * bugs/big-input-2.sh Made the test a bit faster
-
-John Darrington <john@darrington.wattle.id.au>
-
- * command/examine.sh Added
-
-Mon Nov 15 23:52:55 2004 Ben Pfaff <blp@gnu.org>
-
- * bugs/random.sh: Update expected random values to reflect the GSL
- random number generator.
-
-Sat Nov 6 14:49:27 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * command/oneway-with-splits.sh Added.
-
-Sun Oct 31 16:08:47 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * bugs/recode-copy-bug.sh bugs/computebug.sh Fixed problem which
- caused make distcheck to not know where some critical files were.
-
-Mon May 31 21:49:19 2004 Ben Pfaff <blp@gnu.org>
-
- * bugs/t-test-with-temp.sh: Use $SUPERVISOR.
-
- * bugs/t-test-1-indep-val.sh: Ditto.
-
- * bugs/t-test-1-sample-missing-anal.sh: Ditto.
-
- * bugs/t-test-1-sample-missing-list.sh: Ditto.
-
- * bugs/t-test-1s.sh: Ditto.
-
- * bugs/t-test-groups.sh: Ditto.
-
- * bugs/t-test-indep-missing-anal.sh: Ditto.
-
- * bugs/t-test-indep-missing-list.sh: Ditto.
-
- * bugs/t-test-paired-missing-anal.sh: Ditto.
-
- * bugs/t-test-paired-missing-list.sh: Ditto.
-
- * bugs/t-test-pairs.sh: Ditto.
-
-Sun May 30 19:18:26 2004 Ben Pfaff <blp@gnu.org>
-
- * command/tabs.sh: Default tab width is now 4.
-
- * command/data-list.sh: New test.
-
- * Makefile.am: (TESTS) Add command/data-list.sh.
-
-Sun Apr 11 14:21:16 2004 Ben Pfaff <blp@gnu.org>
-
- * stats/moments.sh: Now that our one-pass moments algorithm is
- better we don't have to omit any of the test cases for it.
-
-Fri Apr 9 20:03:33 2004 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (TESTS) Add stats/descript-mean-bug.sh.
-
- * stats/descript-mean-bug.sh: Add test for a bug where
- DESCRIPTIVES asking only for the mean assert-failed.
-
-Sat Apr 3 11:42:31 2004 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (TESTS) Add bugs/comment-at-eof.sh. Alphabetize
- test order.
-
- * bugs/comment-at-eof.sh: Add test for a bug where a comment at
- end of file caused an infinite loop.
-
-Sat Mar 27 11:29:06 WST 2004 John Darrington <john@darrington.wattle.id.au>
-
- * bugs/get.sh Added regression test for a bug in loading a dictionary
- with the GET command.
-
-Tue Mar 30 22:10:08 2004 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (TESTS) Add bugs/multipass.sh.
-
-Mon Mar 29 15:25:09 2004 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (TESTS) Add xforms/casefile.sh,
- stats/descript-basic.sh, stats/descript-missing.sh,
- stats/moments.sh. Remove command/descriptives.sh.
-
- * command/descriptives.sh: Removed.
-
- * command/weight.sh: Fix output (statistic values were wrong!).
-
- * stats/descript-basic.sh: New test.
-
- * stats/descript-missing.sh: New test.
-
- * stats/moments.sh: New test.
-
- * xforms/casefile.sh: New test.
-
- * xforms/expressions.sh: Cleans up after itself now.
-
-Fri Mar 26 00:55:48 2004 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (TESTS) Add xforms/expressions.sh, remove
- command/compute.sh.
-
- * command/beg-data.sh: Remove REMARK usage.
-
- * command/bignum.sh: Ditto.
-
- * command/list.sh: Ditto.
-
- * command/print.sh: Ditto.
-
-Sat Mar 20 18:11:15 2004 Ben Pfaff <blp@gnu.org>
-
- * command/list.sh: Update output.
-
- * command/print.sh: Ditto.
-
- * command/weight.sh: Ditto.
-
-Sun Mar 14 23:04:14 2004 Ben Pfaff <blp@gnu.org>
-
- * command/sort.sh: Use numeric, not string, data to avoid spurious
- valgrind complaints.
-
-Wed Mar 10 21:22:03 2004 Ben Pfaff <blp@gnu.org>
-
- * bugs/temporary.sh: Test that basic use of TEMPORARY works.
-
-Mon Feb 16 21:36:57 2004 Ben Pfaff <blp@gnu.org>
-
- * */*.sh: Prepend $SUPERVISOR to invocations of pspp so that we
- can run valgrind or gdb easily with `make check'
-
-Sat Dec 13 00:08:23 2003 Ben Pfaff <blp@gnu.org>
-
- * syntax: Run a diff when there's no expected output, too.
-
-Fri Jan 7 20:30:23 2000 Ben Pfaff <blp@gnu.org>
-
- * data-fmts.stat: Add more date tests.
-
- * do-repeat.stat: SET ECHO ON.
-
- * syntax: Replace test -L with test -h.
-
-Tue Jan 5 14:21:52 1999 Ben Pfaff <blp@gnu.org>
-
- * data-list.stat, data-list.data: Adjust so that it can tell if
- DATA LIST FREE properly parses and pads string values.
-
- * list.stat: Remove anachronistic `SET EMULATION PC'.
-
- * Rebuilt benchmark.
-
-Tue Jan 5 14:12:58 1999 Ben Pfaff <blp@gnu.org>
-
- * syntax: Replaced `test' calls with `['. This may or may not fix
- the problems some people have reported.
-
-Sun Aug 9 11:15:38 1998 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (EXTRA_DIST) Update for renamed files.
-
- * autorecode.stat: Renamed autorecod.stat.
-
- * begin-data.stat: Renamed beg-data.stat.
-
- * data-formats.stat: Renamed data-fmts.stat.
-
- * expression.stat: Renamed expr.stat.
-
- * file-label.stat: Renamed file-lab.stat.
-
- * input-program.stat: Renamed inpt-pgm.stat.
-
- * modify-vars.stat: Renamed mdfy-vars.stat.
-
- * match-files.stat: Renamed mtch-file.stat.
-
- * process-if.stat: Renamed pcs-if.stat.
-
- * split-file.stat: Renamed splt-file.stat.
-
- * sysfile-info.stat: Renamed sys-info.stat.
-
- * expect/: Refreshed.
-
-Sat Aug 8 00:27:07 1998 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (EXTRA_DIST) Add `syntax'.
- (dist-hook) New target.
-
-Wed Aug 5 00:04:16 1998 Ben Pfaff <blp@gnu.org>
-
- * TEST-RESULTS: Removed.
-
- * show-check-msg: Removed.
-
- * expect/: New.
-
- * syntax: New. Thanks to James R. Van Zandt <jrv@vanzandt.mv.com>
- for this implementation of automatic testing.
-
- * Makefile: (TESTS) Set to the syntax script.
- (bench) New target.
- (EXTRA_DIST) Remove TEST-RESULTS. Add `syntax'.
-
-Sun Jul 5 14:16:18 1998 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (EXTRA_DIST) Add flip.stat.
-
-Sun Jul 5 00:50:41 1998 Ben Pfaff <blp@gnu.org>
-
- * crosstabs.stat: Change to test /MISSING=REPORT.
-
-Tue Jun 2 23:42:23 1998 Ben Pfaff <blp@gnu.org>
-
- * flip.stat: New file.
-
- * weighting.stat: Update.
-
-Mon May 25 12:45:46 1998 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (EXTRA_DIST) Add crosstabs.stat, match-files.stat.
-
- * crosstabs.stat: Turn off cells=all.
-
-Tue May 12 16:22:06 1998 Ben Pfaff <blp@gnu.org>
-
- * crosstabs.stat: Minor changes.
-
-Thu May 7 23:16:03 1998 Ben Pfaff <blp@gnu.org>
-
- * crosstabs.stat: Replace with a test that is hopefully better.
-
-Tue Apr 14 01:00:46 1998 Ben Pfaff <blp@gnu.org>
-
- * crosstabs.stat: New.
-
-Mon Mar 9 15:40:25 1998 Ben Pfaff <blp@gnu.org>
-
- * match-files.stat: More thorough.
-
-Mon Mar 9 01:14:14 1998 Ben Pfaff <blp@gnu.org>
-
- * match-files.stat: More thorough.
-
-1998-03-05 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Use ./gengarbage instead of gengarbage.
-
-1998-02-23 Ben Pfaff <blp@gnu.org>
-
- * Many tests: Remove final finish command.
-
-1998-02-16 Ben Pfaff <blp@gnu.org>
-
- * (DISTCLEANFILES) Clean *.save, pspp.*, foo*
-
- * file-label.stat, sysfile-info.stat: Replace .sav with .save.
-
- * match-files.stat: New file.
-
-Fri Feb 13 15:58:11 1998 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (EXTRA_DIST) Add TEST-RESULTS.
-
-Tue Jan 13 01:11:36 1998 Ben Pfaff <blp@gnu.org>
-
- * aggregate.stat: Some more testing.
-
-Sat Jan 10 23:57:14 1998 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (DISTCLEANFILES) Add aggregate.save.
-
- * aggregate.stat: Slightly more thorough.
-
-Sat Jan 10 02:17:00 1998 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (EXTRA_DIST) Add means.stat, t-test.stat.
-
- * means.stat: New file.
-
-Thu Jan 8 22:38:59 1998 Ben Pfaff <blp@gnu.org>
-
- * Many tests: Removed extra newlines from REMARKs.
-
-Mon Jan 5 11:18:44 1998 Ben Pfaff <blp@gnu.org>
-
- * sysfile-info.stat: Test most of the DISPLAY commands. Update
- title.
-
- * vector.stat: Display vectors.
-
-Sun Jan 4 18:31:36 1998 Ben Pfaff <blp@gnu.org>
-
- * All tests: Added title.
-
- * begin-data.stat: Updated REMARK format.
-
- * descript.stat: Comment fix.
-
-Sun Dec 21 16:57:31 1997 Ben Pfaff <blp@gnu.org>
-
- * TEST-RESULTS: New file.
-
-Fri Dec 5 22:02:20 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (DISTCLEANFILES) Add fiasco.html.
-
-Tue Dec 2 14:55:22 1997 Ben Pfaff <blp@gnu.org>
-
- * t-test.stat: New file.
-
-Fri Nov 14 00:17:25 1997 Ben Pfaff <blp@gnu.org>
-
- * aggregate.stat: Changed.
-
-Tue Oct 28 16:26:25 1997 Ben Pfaff <blp@gnu.org>
-
- * aggregate.stat: New file.
-
- * Makefile.am: (EXTRA_DIST) Add aggregate.stat.
-
-Sun Oct 5 16:02:02 1997 Ben Pfaff <blp@gnu.org>
-
- * fall92.stat, fall92.data: Removed (unknown copyright).
-
- * gengarbage.c: Define EXIT_SUCCESS if not defined by headers.
- From Alexandre Oliva <oliva@dcc.unicamp.br>.
-
-Sat Oct 4 16:35:59 1997 Ben Pfaff <blp@gnu.org>
-
- * repeating.stat: New file.
-
- * Makefile.am: (EXTRA_DIST) Add repeating.stat.
-
-Thu Sep 18 21:40:50 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (EXTRA_DIST) Add lag.stat.
-
-Mon Aug 18 18:31:42 1997 Ben Pfaff <blp@gnu.org>
-
- * do-repeat.stat: Even more useful.
-
- * lag.stat: New file.
-
-Sun Aug 17 22:47:53 1997 Ben Pfaff <blp@gnu.org>
-
- * do-repeat.stat: Made actually useful, not stupid.
-
-Sun Aug 3 11:46:00 1997 Ben Pfaff <blp@gnu.org>
-
- * In several files, replace usage of deprecated term `script' by
- `syntax file'.
-
-Thu Jul 17 02:12:17 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (EXTRA_DIST) Add tabs.stat.
-
- * file-label.stat: Improved.
-
- * sysfile-info.stat: Tests DISPLAY DICTIONARY now as well.
-
-Fri Jul 11 14:13:49 1997 Ben Pfaff <blp@gnu.org>
-
- * gengarbage.c: Reformat. #include's <time.h>. Uses ANSI C
- rand() in place of random(). Calls the randomizer srand().
-
-Thu Jul 10 22:16:34 1997 Ben Pfaff <blp@gnu.org>
-
- * tabs.stat: New file.
-
-Wed Jun 25 22:54:40 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: (EXTRA_DIST) Removed bug.stat, file-type.stat.
-
-Sun Jun 8 01:24:55 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Added fiasco.ps, fiasco.list, foo, foo.sav, msgs to
- DISTCLEANFILES.
-
- * input-program.stat: Made some variables scratch.
-
-Fri Jun 6 22:53:03 1997 Ben Pfaff <blp@gnu.org>
-
- * Many files: Comment fixes, removed `set output raw.' commands.
-
- * Other miscellaneous changes.
-
-Tue Jun 3 23:44:46 1997 Ben Pfaff <blp@gnu.org>
-
- * list.stat: Re-enabled some of it.
-
-Wed Apr 23 21:33:48 1997 Ben Pfaff <blp@gnu.org>
-
- * sysfile-info.stat: A little more generalized now.
-
-Fri Apr 18 15:42:22 1997 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Maintainer-clean Makefile.in.
-
-Thu Mar 27 01:11:29 1997 Ben Pfaff <blp@gnu.org>
-
- * gengarbage.pl: Removed.
-
-Sat Feb 15 21:26:53 1997 Ben Pfaff <blp@gnu.org>
-
- * descript.stat: Syntax fixes.
-
- * process-if.stat: New test for PROCESS IF.
-
-Sun Jan 19 14:22:11 1997 Ben Pfaff <blp@gnu.org>
-
- * autorecode.stat, modify-vars.stat: More thorough.
-
- * data-formats.stat, file-label.stat: New tests.
-
-Thu Jan 16 13:08:57 1997 Ben Pfaff <blp@gnu.org>
-
- * bug.stat: Comment fix.
-
-Wed Jan 1 22:08:10 1997 Ben Pfaff <blp@gnu.org>
-
- * filter.stat: New file; tests FILTER behavior.
-
-Wed Jan 1 17:00:59 1997 Ben Pfaff <blp@gnu.org>
-
- * gengarbage.pl: New perl program equivalent to gengarbage.c.
-
-Sun Dec 29 21:36:48 1996 Ben Pfaff <blp@gnu.org>
-
- * gengarbage.c: Changed.
-
- * sort.stat: Changed.
-
-Sun Dec 22 23:10:39 1996 Ben Pfaff <blp@gnu.org>
-
- * sort.stat: New file.
-
-Fri Dec 13 21:30:53 1996 Ben Pfaff <blp@gnu.org>
-
- * autorecode.stat: New file.
-
- * fall92.stat: Mods for practicality.
-
- * test.bat, testall.bat: Removed.
-
-Thu Nov 28 23:14:07 1996 Ben Pfaff <blp@gnu.org>
-
- * list.stat, weighting.stat: Changed SET COMPATIBILITY subcommand
- to SET EMULATION in anticipation of change.
-
-Sat Oct 26 23:06:06 1996 Ben Pfaff <blp@gnu.org>
-
- * recode.stat: Removed comment about bug, since I fixed that.
-
-Thu Oct 24 20:13:42 1996 Ben Pfaff <blp@gnu.org>
-
- * print.stat: Slightly more thorough.
-
-Thu Oct 24 17:47:14 1996 Ben Pfaff <blp@gnu.org>
-
- * time-date.stat: Slightly more thorough.
-
-Wed Oct 23 21:53:43 1996 Ben Pfaff <blp@gnu.org>
-
- * time-date.stat: New file.
-
-Thu Sep 26 22:20:26 1996 Ben Pfaff <blp@gnu.org>
-
- * list.data: More data.
-
- * list.stat: Handles all that extra data.
-
- * weighting.stat: Doesn't try to list $WEIGHT because PC+ isn't
- quite supported yet.
-
-Wed Sep 4 21:45:35 1996 Ben Pfaff <blp@gnu.org>
-
- * weighting.stat: Tests for proper ligatures. Won't work until
- encodings are correct, of course...
-
-----------------------------------------------------------------------
-Local Variables:
-mode: change-log
-version-control: never
-End:
--- /dev/null
+2008-06-21 Jason Stover <jhs@math.gcsu.edu>
+
+ * regression.sh, regression-qr.sh: Fixed column showing
+ standardized coefficients.
+
+2008-05-16 John Darrington <john@darrington.wattle.id.au>
+
+ * compression.sh print-crash.sh print-strings.sh very-long-strings.sh :
+ Removed export VAR=VAL syntax.
+
+ * automake.mk: Added test to check for non-portable shell syntax
+
+2008-04-14 Jason Stover <jhs@math.gcsu.edu>
+
+ * automake.mk: New test for regression with QR decomposition.
+
+ * command/regression-qr.sh: New test for regression with QR decomposition.
+
+2008-03-16 Ben Pfaff <blp@gnu.org>
+
+ Bug #22037.
+
+ * automake.mk: Add new test.
+
+ * bugs/crosstabs-crash2.sh: New test.
+
+2008-03-16 Ben Pfaff <blp@gnu.org>
+
+ Patch #6452. Reviewed by John Darrington.
+
+ * automake.mk: Add new test.
+
+ * command/variable-display.sh: New test.
+
+2008-03-04 Ben Pfaff <blp@gnu.org>
+
+ Patch #6441. Reviewed by John Darrington.
+
+ * automake.mk: Add new test.
+
+ * formats/format-guesser.sh: New test.
+
+2008-02-10 Ben Pfaff <blp@gnu.org>
+
+ * command/get-data-txt-examples.sh: Update to match changes to
+ documentation (which were in turn updated to show how the escaped
+ quote feature works).
+
+2008-02-02 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Add target for dissect-sysfile.
+
+ * dissect-sysfile.c: New program.
+
+2008-02-01 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Add new test.
+
+ * libpspp/str-test.c: New test.
+
+ * command/get-dat-gnm.sh: Update variable names to match new
+ naming scheme.
+
+2007-12-04 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Add new tests.
+
+ * command/get-data-txt.sh: New test.
+
+ * command/get-data-txt-examples.sh: New test.
+
+ * command/get-data-txt-importcases.sh: New test.
+
+2007-11-25 Ben Pfaff <blp@gnu.org>
+
+ * bugs/compression.sh: Don't fail on big-endian system. Partial
+ fix for bug #21590.
+
+ * bugs/sysfile-info.sh: Disregard "Integer Format" and "Real
+ Format" lines in SYSFILE INFO output, to permit big-endian systems
+ to pass also. Partial fix for bug #21590.
+
+2007-11-15 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Add definition of CHARSETALIASDIR to
+ TESTS_ENVIRONMENT, to allow locale_charset to find charset.alias
+ before running "make install".
+
+2007-11-10 Ben Pfaff <blp@gnu.org>
+
+ * bugs/compression.sh: Pass -b option to diff to avoid spurious
+ failure on od.
+
+2007-11-08 Ben Pfaff <blp@gnu.org>
+
+ Patch #6256: add support for binary, 360 file formats. Reviewed
+ by John Darrington.
+
+ * automake.mk: Add new file.
+
+ * formats/360.sh: New test.
+
+2007-11-07 Ben Pfaff <blp@gnu.org>
+
+ * bugs/overwrite-input-file.sh: Don't use non-portable "diff -B".
+
+ * bugs/overwrite-special-file.sh: Ditto.
+
+ Reported by Jason Stover.
+
+2007-11-03 Ben Pfaff <blp@gnu.org>
+
+ Allow output files to overwrite input files (bug #21280).
+
+ * automake.mk: Add new file.
+
+ * bugs/overwrite-input-file.sh: Rewrite to make sure that we can
+ overwrite input files safely.
+
+ * bugs/overwrite-special-file.sh: New test.
+
+ * command/erase.sh: Fix "activity" message.
+
+2007-11-03 John Darrington <john@darrington.wattle.id.au>
+
+ * Book1.gnm.unzipped command/get-data-gnm.sh: New test and data
+ for reading gnumeric files.
+
+2007-10-08 Ben Pfaff <blp@gnu.org>
+
+ Bug #21280. Thanks to John Darrington for review.
+
+ * automake.mk: Add new file.
+
+ * bugs/overwrite-input-file.sh: New test.
+
+2007-09-23 Ben Pfaff <blp@gnu.org>
+
+ Bug #21111. Reviewed by John Darrington.
+
+ * command/input-program.sh: New test.
+
+ * command/do-if.sh: New tests.
+
+2007-09-22 Ben Pfaff <blp@gnu.org>
+
+ Bug #21128. Reviewed by John Darrington.
+
+ * output/paper-size.sh: New test.
+
+2007-09-21 Ben Pfaff <blp@gnu.org>
+
+ * bugs/unwritable-dir.sh: New test for bug #21117.
+
+2007-09-19 Ben Pfaff <blp@gnu.org>
+
+ * bugs/input-crash.sh: Add regression test for bug #21108.
+
+2007-09-04 Ben Pfaff <blp@gnu.org>
+
+ Update scripts that invoke Perl to invoke it as simply "perl" if
+ not run from the PSPP Makefiles. Patch #6169. Thanks to John
+ Darrington for suggestion and review.
+ * bugs/big-input-2.sh: Make $PERL default to perl.
+ * command/sort.sh: Ditto.
+ * formats/bcd-in.sh: Ditto.
+ * formats/date-in.sh: Ditto.
+ * formats/ib-in.sh: Ditto.
+ * formats/legacy-in.sh: Ditto.
+ * formats/num-in.sh: Ditto.
+ * formats/num-out.sh: Ditto.
+ * formats/time-in.sh: Ditto.
+
+2007-08-26 Ben Pfaff <blp@gnu.org>
+
+ * Updated most invocations of PSPP in the tests to use
+ --testing-mode and to avoid specifying an output format with -o
+ (because --testing-mode implies -o raw-ascii).
+
+2007-08-26 Ben Pfaff <blp@gnu.org>
+
+ * command/aggregate.sh: Update output to include error messages,
+ which are now sent to output files also.
+
+ * command/ranks.h: Ditto.
+
+2007-08-12 Ben Pfaff <blp@gnu.org>
+
+ * command/no_case_size.sh: Update to match update DISPLAY and
+ SYSFILE INFO command output.
+
+ * command/rank.sh: Ditto.
+
+ * command/sysfile-info.sh: Ditto.
+
+ * command/very-long-strings.sh: Ditto.
+
+2007-08-09 Ben Pfaff <blp@gnu.org>
+
+ Fix bug #18982. Thanks to John Darrington for investigation,
+ review, and verification of fix.
+
+ * formats/date-in.sh: Use a portable pseudo-random number
+ generator.
+
+ * formats/time-in.sh: Ditto.
+
+ * formats/num-in.sh: Ditto.
+
+2007-08-03 Ben Pfaff <blp@gnu.org>
+
+ * command/rank.sh: Test RANK with noncontiguous groups of SPLIT
+ FILE variables and how they should behave differently from
+ noncontiguous groups of BY variables. Regression test for bug
+ #17239.
+
+2007-08-01 Ben Pfaff <blp@gnu.org>
+
+ * command/weight.sh: Update to match new output format for median
+ under FREQUENCIES.
+
+ * stats/percentiles-compatible.sh: Ditto.
+
+ * stats/percentiles-enhanced.sh: Ditto.
+
+2007-07-28 John Darrington <john@darrington.wattle.id.au>
+
+ * command/t-test-1-indep-val.sh: Changed the order of groups in the
+ summary box to match new behaviour. (Fixes bug #19604).
+
+2007-07-25 Ben Pfaff <blp@gnu.org>
+
+ Fix bug #17100.
+ * command/data-list.sh: Add tests for multi-record DATA LIST with
+ and without empty trailing record.
+
+2007-07-24 Ben Pfaff <blp@gnu.org>
+
+ * command/flip.sh: Add tests to avoid regression on bugs #20493,
+ #20494.
+
+2007-07-22 Ben Pfaff <blp@gnu.org>
+
+ * command/very-long-strings.sh: Test both compressed and
+ uncompressed system files with very long strings.
+
+2007-07-17 Ben Pfaff <blp@gnu.org>
+
+ Patch #19335. Reviewed by John Darrington.
+
+ * expressions/randist/compare.pl: Use strict and all warnings.
+
+ * expressions/randist/randist.pl: Ditto.
+
+ * formats/num-out-cmp.pl: Ditto.
+
+ * formats/num-out-compare.pl: Ditto.
+
+ * formats/num-out-decmp.pl: Ditto.
+
+ * formats/num-out.pl: Ditto.
+
+2007-07-17 Ben Pfaff <blp@gnu.org>
+
+ * formats/float-format.h: Drop the tests that depend on parsing
+ "-0" from a syntax file. Also make float-format.sh error messages
+ easier to read, by changing the sed command so that error line
+ numbers are easier to match to the test input.
+ Reviewed by John Darrington as patch #6091.
+
+2007-07-11 Ben Pfaff <blp@gnu.org>
+
+ * xforms/expressions.sh: Remove unused file. Fixes bug
+ #18140.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ * commands/match-files.sh: Test the new support for FIRST and LAST
+ subcommands.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Remove test.
+
+ * xforms/casefile.sh: Removed test.
+
+2007-06-06 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Add new test.
+
+ * command/datasheet.sh: New test.
+
+2007-06-03 Ben Pfaff <blp@gnu.org>
+
+ * libpspp/tower-test.c: Also test tower_last, tower_prev functions.
+
+ * libpspp/range-set-test.c: Also test the range_set_clone function.
+
+2007-05-06 Ben Pfaff <blp@gnu.org>
+
+ Abstract the documents within a dictionary a little better.
+ Thanks to John Darrington for suggestion, initial version, and
+ review. Patch #5917.
+
+ * command/file-label.sh: Update to match new DOCUMENT behavior.
+
+2007-04-19 John Darrington <john@darrington.wattle.id.au>
+
+ * command/no_case_size.sh command/sysfiles-old.sh:
+ Changed tests to reflect new behaviour (case changing) when
+ reading system files with no long name table.
+
+2007-04-15 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Add recode.sh to tests.
+
+ * xforms/recode.sh: New test.
+
+2007-04-03 Ben Pfaff <blp@gnu.org>
+ John McCabe-Dansted <gmatht@gmail.com>
+
+ * npar-binomial.sh: Be less picky about whitespace in PSPP output.
+
+ * npar-chisquare.sh: Ditto.
+
+ * very-long-strings.sh: Ditto.
+
+2007-04-03 Ben Pfaff <blp@gnu.org>
+
+ Apply patches #5828, #5837, #5841, #5843.
+
+ * automake.mk (tests_libpspp_bt_test_LDADD): Add range-map-test,
+ range-set-test, tower-test.
+
+ * libpspp/range-map-test.c: New test.
+
+ * libpspp/range-set-test.c: New test.
+
+ * libpspp/tower-test.c: New test.
+
+2007-03-31 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk (tests_libpspp_bt_test_LDADD): Add tests/libpspp/bt.
+
+ * libpspp/bt-test.c: New test.
+
+2007-03-25 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Add tests/libpspp/sparse-array-test.
+
+ * libpspp/sparse-array-test.c: New test.
+
+2007-03-18 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Don't try to distribute tests that are compiled
+ from C source. This fixes "make dist" when "make all" has not yet
+ been run.
+
+Mon Feb 12 06:29:30 2007 Ben Pfaff <blp@gnu.org>
+
+ * libpspp/ll-test.c, libpspp/llx-test.c: Include <config.h>.
+
+Sat Feb 3 21:57:34 2007 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Add tests/command/vector.sh.
+
+ * command/vector.sh: New test.
+
+Wed Jan 24 21:13:53 2007 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Add tests/libpspp/abt-test.
+
+ * libpspp/abt-test.c: New test.
+
+ * libpspp/heap-test.c, libpspp/ll-test.c, libpspp/llx-test.c:
+ Style fixes.
+
+Wed Jan 10 06:50:01 2007 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Add tests/libpspp/heap-test.
+
+ * libpspp/heap-test.c: New test.
+
+Wed Dec 13 21:00:46 2006 Ben Pfaff <blp@gnu.org>
+
+ * command/rank.sh (activity): Use DELETE VAR (which is new)
+ instead of MODIFY VARS.
+
+Tue Dec 19 08:17:28 2006 Ben Pfaff <blp@gnu.org>
+
+ * command/loop.sh: Test all the possible combinations of clauses.
+
+Sat Dec 16 14:00:48 2006 Ben Pfaff <blp@gnu.org>
+
+ * command/rank.sh: Fix test to allow string grouping variables.
+ See bug #18533.
+
+Sat Dec 16 12:20:58 2006 Ben Pfaff <blp@gnu.org>
+
+ * expressions/expressions.sh: Fix DATEDIFF function tests to
+ correspond with change to DATEDIFF.
+
+Wed Dec 13 19:34:29 2006 Ben Pfaff <blp@gnu.org>
+
+ * expressions/expressions.sh: Test DATEDIFF, DATESUM functions.
+
+Sun Dec 10 16:52:04 2006 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Add new test.
+
+ * expressions/valuelabel.sh: New test, for VALUELABEL function.
+
+Thu Nov 30 22:46:17 2006 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Add new test.
+
+ * bugs/compute-sum.sh: New test, for bug #17422.
+
+Thu Nov 30 22:01:57 2006 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Add new test.
+
+ * bugs/empty-do-repeat: New test, for bug #18407.
+
+Wed Nov 22 06:28:04 2006 Ben Pfaff <blp@gnu.org>
+
+ * bugs/signals.sh: Fix race condition.
+
+Sun Nov 19 09:23:34 2006 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Add the new tests listed below.
+
+ * formats/bcd-in.sh: New test.
+
+ * formats/bcd-in.expected.cmp.gz: New support file for
+ bcd-in.sh.
+
+ * formats/date-in.sh: New test.
+
+ * formats/ib-in.sh: New test.
+
+ * formats/ib-in.expected.cmp.gz: New test.
+
+ * formats/legacy-in.sh: New test.
+
+ * formats/legacy-in.expected.cmp.gz: New support file for
+ legacy-in.sh.
+
+ * formats/month-in.sh: New test.
+
+ * formats/num-in.sh: New test.
+
+ * formats/num-in.expected.gz: New support file for num-in.sh.
+
+ * formats/time-in.sh: New test.
+
+ * formats/wkday-in.sh: New test.
+
+ * commands/no_case_size.sh: Update output to conform with
+ update scientific notation code.
+
+ * formats/num-out.expected.cmp.gz: Ditto.
+
+Thu Nov 2 20:58:12 2006 Ben Pfaff <blp@gnu.org>
+
+ * command/data-list.sh: Test newly implement SKIP keyword on DATA
+ LIST.
+
+Sat Nov 4 16:08:58 2006 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Add binhex-out.sh, date-out.sh, month-out.sh,
+ num-out.sh, time-out.sh, wkday-out.sh from formats directory. Add
+ formats/inexactify as a program needed by tests.
+
+ * command/no_case_size.sh: Update output to conform with updated
+ formatted output code.
+
+ * expressions/expressions.sh: Ditto.
+
+ * formats/binhex-out.sh: New test.
+
+ * formats/date-out.sh: New test.
+
+ * formats/month-out.sh: New test.
+
+ * formats/num-out.sh: New test.
+
+ * formats/time-out.sh: New test.
+
+ * formats/wkday-out.sh: New test.
+
+Sun Oct 29 14:03:37 2006 Ben Pfaff <blp@gnu.org>
+
+ * ll-test.c, llx-test.c: Reduce verbosity of output.
+
+Thu Oct 26 20:20:39 2006 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Add tests/formats/float-format.sh.
+
+ * formats/float-format.sh: New test.
+
+Sat Oct 7 11:06:59 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * command/rank.sh: New file
+
+Sun Jul 16 21:08:51 2006 Ben Pfaff <blp@gnu.org>
+
+ * command/print.sh: Update output to match PRINT revisions.
+
+Wed Jul 12 10:07:52 2006 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Put ll-test, llx-test in check_PROGRAMS instead of
+ noinst_PROGRAMS.
+
+Wed Jul 5 22:15:24 2006 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Add expressions/randist/compare.pl to EXTRA_DIST.
+
+Tue Jul 4 09:59:52 2006 Ben Pfaff <blp@gnu.org>
+
+ Fix bug #15766 (/KEEP subcommand on SAVE doesn't fully support
+ ALL) and additional underlying system file issues.
+
+ * automake.mk: Add keep-all.sh to TESTS.
+
+ * bugs/keep-all.sh: New test.
+
+Mon Jul 3 21:09:52 2006 Ben Pfaff <blp@gnu.org>
+
+ Modify the random distributions test to verify to 2 more decimal
+ places of accuracy, but to allow +/- 1 units in the last (tested)
+ place. This allows the test to pass on machines or with compilers
+ whose calculated values are off by epsilon from the expected
+ results. Because of the way the test is constructed, this was
+ quite common and often caused gratuitous test failures.
+
+ This is patch #5215, tested by Jason Stover and John Darrington.
+
+ * expressions/randist.sh: Use compare.pl to do comparisons.
+
+ * expressions/randist/compare.pl: New script to do comparisons.
+
+ * expressions/randist/randist.pl: Print output to 4 decimal
+ places, not just 2. Also, print a brief explanatory header at the
+ top of each output file.
+
+ * expressions/randist/*.out: Replace with new expected output.
+
+Sat Jul 1 15:33:37 2006 Ben Pfaff <blp@gnu.org>
+
+ * automake.mk: Add ll-test, llx-test to TESTS.
+
+ * libpspp/ll-test.c: New file.
+
+ * libpspp/llx-test.c: New file.
+
+Sun May 7 18:15:52 2006 Ben Pfaff <blp@gnu.org>
+
+ * command/do-repeat.sh: Only use "A TO B" for increasing runs of
+ integers, which is all we now support (for closer compatibility).
+
+Wed Apr 26 13:36:42 2006 Ben Pfaff <blp@gnu.org>
+
+ * command/missing-values.sh: Update output to match behavior
+ changes.
+
+Mon Apr 3 12:32:36 2006 Ben Pfaff <blp@gnu.org>
+
+ * Updated tests to match changes in output formatting.
+
+2006-03-23 Jason Stover <jhs@math.gcsu.edu>
+
+ * command/regression.sh: New test.
+
+Sat Mar 11 14:16:01 WST 2006 John Darrington <john@darrington.wattle.id.au>
+
+ * Updated the tests to use the new location of the pspp binary.
+ * Made all the tests work as stand-alone scripts.
+
+Sun Feb 12 19:07:24 2006 Ben Pfaff <blp@gnu.org>
+
+ * command/do-repeat.sh: New test.
+
+ * bugs/terminate.sh: Removed (no longer applicable).
+
+Fri Nov 4 19:30:34 2005 Ben Pfaff <blp@gnu.org>
+
+ * command/recode-bug.sh: Improve failure reports.
+
+Wed Nov 2 21:54:11 2005 Ben Pfaff <blp@gnu.org>
+
+ * command/loop.sh: Update expected error messages.
+
+Sun Aug 21 00:20:02 2005 Ben Pfaff <blp@gnu.org>
+
+ * command/import-export.sh: Simplify.
+
+ * command/sysfiles-old.sh: Use version 2, not 3x.
+
+Sat Aug 6 17:32:39 2005 Ben Pfaff <blp@gnu.org>
+
+ * command/missing-values.sh: New test.
+
+ * Makefile.am: Add new test.
+
+Mon Aug 1 21:51:46 2005 Ben Pfaff <blp@gnu.org>
+
+ * bugs/big-input-2.sh: Don't use 1...100000 (etc.) with Perl
+ because that may allocate a large amount of memory.
+
+Mon Aug 1 21:48:54 2005 Ben Pfaff <blp@gnu.org>
+
+ * xforms/expression.sh: Break this monolithic test up into 36
+ subtests to give a better idea of what's failing in some cases.
+
+Sat Jul 30 21:54:23 2005 Ben Pfaff <blp@gnu.org>
+
+ * command/sys-info.sh: Removed. (This was not actually in TESTS
+ in Makefile.am, so it was never called. command/sysfile-info.sh
+ does what it was trying to do, but better.)
+
+Sat Jul 30 21:50:33 2005 Ben Pfaff <blp@gnu.org>
+
+ Fixes for Solaris.
+
+ * Most tests: Add `cd /' before `rm -rf $TEMPDIR' because some
+ OSes do not allow the current working directory to be removed.
+
+ * bugs/big-input-2.sh: Use perl instead of a shell loop, because
+ the shell loop was very slow on Solaris.
+
+ * command/sort.sh: Use `printf' instead of `echo -n' for
+ portability.
+
+Sat Jul 30 21:48:37 2005 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Add coverage.sh, temp_template to EXTRA_DIST.
+
+Sun Jul 24 20:35:04 2005 Ben Pfaff <blp@gnu.org>
+
+ * command/sysfile-info.sh: Add "-b -B -w" to diff command line.
+ Fixes apparent failure under Cygwin. Thanks to John Darrington
+ <john@cellform.com.au> for reporting this problem.
+
+Mon Jul 4 18:02:44 2005 Ben Pfaff <blp@gnu.org>
+
+ * command/sysfile-info.sh: Don't verify endianness. Fixes bug
+ reported by "Marshall DeBerry" <mdb@radix.net>.
+
+Mon Jun 6 22:40:10 2005 Ben Pfaff <blp@gnu.org>
+
+ * command/print.sh: Get rid of RBHEX output. It wasn't worth
+ much. Fixes bug 12312.
+
+Tue May 10 19:59:10 2005 Ben Pfaff <blp@gnu.org>
+
+ * bugs/agg-crash-2.sh: Fix output given bug 13054.
+
+Wed May 4 23:50:02 2005 Ben Pfaff <blp@gnu.org>
+
+ * bugs/match-files-scratch.sh: New test for bug 12948.
+
+ * Makefile.am: (TESTS) Add bugs/match-files-scratch.sh.
+
+Sun May 1 23:18:37 2005 Ben Pfaff <blp@gnu.org>
+
+ Most tests: changed capitalization of variable names in
+ definitions or in output, because now we preserve it.
+
+Mon Apr 25 23:30:17 2005 Ben Pfaff <blp@gnu.org>
+
+ * commands/match-files.sh: New test.
+
+ * Makefile.am: (TESTS) Add commands/match-files.sh.
+
+Sun Apr 17 16:38:00 2005 Ben Pfaff <blp@gnu.org>
+
+ * crosstabs.stat, data-fmts.stat, do-if.stat, do-repeat.stat,
+ gengarbage.c, inpt-pgm.stat, mdfy-vars.stat, means.stat,
+ mtch-file.stat, pcs-if.stat, recode.stat, repeating.stat,
+ reread.data, reread.stat, sys-info.stat, t-test.stat,
+ temporary.stat, time-date.stat, vector.stat: Removed because they
+ were unused.
+
+ * Makefile.am: Removed sort.data references. Fixed up
+ DISTCLEANFILES.
+
+Sun Mar 20 14:16:31 2005 Ben Pfaff <blp@gnu.org>
+
+ * command/aggregate.sh: Rewrite.
+
+Mon Mar 14 21:58:23 2005 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (TESTS_ENVIRONMENT) Add PERL to the test
+ environment.
+
+ * commands/sort.sh: Rewrite to test more thoroughly and to verify
+ that the sort is stable.
+
+Sat Mar 12 23:30:37 2005 Ben Pfaff <blp@gnu.org>
+
+ * bugs/agg-crash-2.sh, bugs/big-input-2.sh, command/aggregate.sh:
+ Fix AGGREGATE command syntax.
+
+Sat Mar 12 13:16:34 2005 Ben Pfaff <blp@gnu.org>
+
+ * bugs/temp-freq.sh: Add another test.
+
+Fri Mar 11 10:40:41 2005 Ben Pfaff <blp@gnu.org>
+
+ * expressions/expressions.sh: Add another test.
+
+Sun Mar 6 19:30:14 2005 Ben Pfaff <blp@gnu.org>
+
+ * expressions/vectors.sh: New test.
+
+ * Makefile.am: Add expressions/vectors.sh.
+
+Sun Mar 6 17:56:27 2005 Ben Pfaff <blp@gnu.org>
+
+ * expressions/expressions.sh: Add tests for generic optimizations.
+
+Sun Mar 6 11:03:58 2005 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Add expressions/variables.sh. Remove expr.stat.
+
+ * expr.stat: Removed.
+
+'Mon Feb 28 23:31:16 2005 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Removed xforms/expressions.sh. Added
+ expressions/expressions.sh, expressions/epoch.sh,
+ expressions/randist.sh.
+
+ * command/print.sh: Update error messages.
+
+Sun Feb 13 16:15:09 2005 Ben Pfaff <blp@gnu.org>
+
+ * bugs/agg-crash-2.sh: Add new test for Bug #11955.
+
+Fri Feb 11 23:27:08 2005 Ben Pfaff <blp@gnu.org>
+
+ * bugs/crosstabs-crash.sh: Add new test for Bug #11916.
+
+Tue Jan 18 19:25:24 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * Canonicalised (some of) the tests' temp file names to make it
+ easier to recognise valgrind ouput.
+
+Sun Jan 9 16:39:08 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+ * bugs/big-input-2.sh Made the test a bit faster
+
+John Darrington <john@darrington.wattle.id.au>
+
+ * command/examine.sh Added
+
+Mon Nov 15 23:52:55 2004 Ben Pfaff <blp@gnu.org>
+
+ * bugs/random.sh: Update expected random values to reflect the GSL
+ random number generator.
+
+Sat Nov 6 14:49:27 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * command/oneway-with-splits.sh Added.
+
+Sun Oct 31 16:08:47 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * bugs/recode-copy-bug.sh bugs/computebug.sh Fixed problem which
+ caused make distcheck to not know where some critical files were.
+
+Mon May 31 21:49:19 2004 Ben Pfaff <blp@gnu.org>
+
+ * bugs/t-test-with-temp.sh: Use $SUPERVISOR.
+
+ * bugs/t-test-1-indep-val.sh: Ditto.
+
+ * bugs/t-test-1-sample-missing-anal.sh: Ditto.
+
+ * bugs/t-test-1-sample-missing-list.sh: Ditto.
+
+ * bugs/t-test-1s.sh: Ditto.
+
+ * bugs/t-test-groups.sh: Ditto.
+
+ * bugs/t-test-indep-missing-anal.sh: Ditto.
+
+ * bugs/t-test-indep-missing-list.sh: Ditto.
+
+ * bugs/t-test-paired-missing-anal.sh: Ditto.
+
+ * bugs/t-test-paired-missing-list.sh: Ditto.
+
+ * bugs/t-test-pairs.sh: Ditto.
+
+Sun May 30 19:18:26 2004 Ben Pfaff <blp@gnu.org>
+
+ * command/tabs.sh: Default tab width is now 4.
+
+ * command/data-list.sh: New test.
+
+ * Makefile.am: (TESTS) Add command/data-list.sh.
+
+Sun Apr 11 14:21:16 2004 Ben Pfaff <blp@gnu.org>
+
+ * stats/moments.sh: Now that our one-pass moments algorithm is
+ better we don't have to omit any of the test cases for it.
+
+Fri Apr 9 20:03:33 2004 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (TESTS) Add stats/descript-mean-bug.sh.
+
+ * stats/descript-mean-bug.sh: Add test for a bug where
+ DESCRIPTIVES asking only for the mean assert-failed.
+
+Sat Apr 3 11:42:31 2004 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (TESTS) Add bugs/comment-at-eof.sh. Alphabetize
+ test order.
+
+ * bugs/comment-at-eof.sh: Add test for a bug where a comment at
+ end of file caused an infinite loop.
+
+Sat Mar 27 11:29:06 WST 2004 John Darrington <john@darrington.wattle.id.au>
+
+ * bugs/get.sh Added regression test for a bug in loading a dictionary
+ with the GET command.
+
+Tue Mar 30 22:10:08 2004 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (TESTS) Add bugs/multipass.sh.
+
+Mon Mar 29 15:25:09 2004 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (TESTS) Add xforms/casefile.sh,
+ stats/descript-basic.sh, stats/descript-missing.sh,
+ stats/moments.sh. Remove command/descriptives.sh.
+
+ * command/descriptives.sh: Removed.
+
+ * command/weight.sh: Fix output (statistic values were wrong!).
+
+ * stats/descript-basic.sh: New test.
+
+ * stats/descript-missing.sh: New test.
+
+ * stats/moments.sh: New test.
+
+ * xforms/casefile.sh: New test.
+
+ * xforms/expressions.sh: Cleans up after itself now.
+
+Fri Mar 26 00:55:48 2004 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (TESTS) Add xforms/expressions.sh, remove
+ command/compute.sh.
+
+ * command/beg-data.sh: Remove REMARK usage.
+
+ * command/bignum.sh: Ditto.
+
+ * command/list.sh: Ditto.
+
+ * command/print.sh: Ditto.
+
+Sat Mar 20 18:11:15 2004 Ben Pfaff <blp@gnu.org>
+
+ * command/list.sh: Update output.
+
+ * command/print.sh: Ditto.
+
+ * command/weight.sh: Ditto.
+
+Sun Mar 14 23:04:14 2004 Ben Pfaff <blp@gnu.org>
+
+ * command/sort.sh: Use numeric, not string, data to avoid spurious
+ valgrind complaints.
+
+Wed Mar 10 21:22:03 2004 Ben Pfaff <blp@gnu.org>
+
+ * bugs/temporary.sh: Test that basic use of TEMPORARY works.
+
+Mon Feb 16 21:36:57 2004 Ben Pfaff <blp@gnu.org>
+
+ * */*.sh: Prepend $SUPERVISOR to invocations of pspp so that we
+ can run valgrind or gdb easily with `make check'
+
+Sat Dec 13 00:08:23 2003 Ben Pfaff <blp@gnu.org>
+
+ * syntax: Run a diff when there's no expected output, too.
+
+Fri Jan 7 20:30:23 2000 Ben Pfaff <blp@gnu.org>
+
+ * data-fmts.stat: Add more date tests.
+
+ * do-repeat.stat: SET ECHO ON.
+
+ * syntax: Replace test -L with test -h.
+
+Tue Jan 5 14:21:52 1999 Ben Pfaff <blp@gnu.org>
+
+ * data-list.stat, data-list.data: Adjust so that it can tell if
+ DATA LIST FREE properly parses and pads string values.
+
+ * list.stat: Remove anachronistic `SET EMULATION PC'.
+
+ * Rebuilt benchmark.
+
+Tue Jan 5 14:12:58 1999 Ben Pfaff <blp@gnu.org>
+
+ * syntax: Replaced `test' calls with `['. This may or may not fix
+ the problems some people have reported.
+
+Sun Aug 9 11:15:38 1998 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (EXTRA_DIST) Update for renamed files.
+
+ * autorecode.stat: Renamed autorecod.stat.
+
+ * begin-data.stat: Renamed beg-data.stat.
+
+ * data-formats.stat: Renamed data-fmts.stat.
+
+ * expression.stat: Renamed expr.stat.
+
+ * file-label.stat: Renamed file-lab.stat.
+
+ * input-program.stat: Renamed inpt-pgm.stat.
+
+ * modify-vars.stat: Renamed mdfy-vars.stat.
+
+ * match-files.stat: Renamed mtch-file.stat.
+
+ * process-if.stat: Renamed pcs-if.stat.
+
+ * split-file.stat: Renamed splt-file.stat.
+
+ * sysfile-info.stat: Renamed sys-info.stat.
+
+ * expect/: Refreshed.
+
+Sat Aug 8 00:27:07 1998 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (EXTRA_DIST) Add `syntax'.
+ (dist-hook) New target.
+
+Wed Aug 5 00:04:16 1998 Ben Pfaff <blp@gnu.org>
+
+ * TEST-RESULTS: Removed.
+
+ * show-check-msg: Removed.
+
+ * expect/: New.
+
+ * syntax: New. Thanks to James R. Van Zandt <jrv@vanzandt.mv.com>
+ for this implementation of automatic testing.
+
+ * Makefile: (TESTS) Set to the syntax script.
+ (bench) New target.
+ (EXTRA_DIST) Remove TEST-RESULTS. Add `syntax'.
+
+Sun Jul 5 14:16:18 1998 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (EXTRA_DIST) Add flip.stat.
+
+Sun Jul 5 00:50:41 1998 Ben Pfaff <blp@gnu.org>
+
+ * crosstabs.stat: Change to test /MISSING=REPORT.
+
+Tue Jun 2 23:42:23 1998 Ben Pfaff <blp@gnu.org>
+
+ * flip.stat: New file.
+
+ * weighting.stat: Update.
+
+Mon May 25 12:45:46 1998 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (EXTRA_DIST) Add crosstabs.stat, match-files.stat.
+
+ * crosstabs.stat: Turn off cells=all.
+
+Tue May 12 16:22:06 1998 Ben Pfaff <blp@gnu.org>
+
+ * crosstabs.stat: Minor changes.
+
+Thu May 7 23:16:03 1998 Ben Pfaff <blp@gnu.org>
+
+ * crosstabs.stat: Replace with a test that is hopefully better.
+
+Tue Apr 14 01:00:46 1998 Ben Pfaff <blp@gnu.org>
+
+ * crosstabs.stat: New.
+
+Mon Mar 9 15:40:25 1998 Ben Pfaff <blp@gnu.org>
+
+ * match-files.stat: More thorough.
+
+Mon Mar 9 01:14:14 1998 Ben Pfaff <blp@gnu.org>
+
+ * match-files.stat: More thorough.
+
+1998-03-05 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Use ./gengarbage instead of gengarbage.
+
+1998-02-23 Ben Pfaff <blp@gnu.org>
+
+ * Many tests: Remove final finish command.
+
+1998-02-16 Ben Pfaff <blp@gnu.org>
+
+ * (DISTCLEANFILES) Clean *.save, pspp.*, foo*
+
+ * file-label.stat, sysfile-info.stat: Replace .sav with .save.
+
+ * match-files.stat: New file.
+
+Fri Feb 13 15:58:11 1998 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (EXTRA_DIST) Add TEST-RESULTS.
+
+Tue Jan 13 01:11:36 1998 Ben Pfaff <blp@gnu.org>
+
+ * aggregate.stat: Some more testing.
+
+Sat Jan 10 23:57:14 1998 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (DISTCLEANFILES) Add aggregate.save.
+
+ * aggregate.stat: Slightly more thorough.
+
+Sat Jan 10 02:17:00 1998 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (EXTRA_DIST) Add means.stat, t-test.stat.
+
+ * means.stat: New file.
+
+Thu Jan 8 22:38:59 1998 Ben Pfaff <blp@gnu.org>
+
+ * Many tests: Removed extra newlines from REMARKs.
+
+Mon Jan 5 11:18:44 1998 Ben Pfaff <blp@gnu.org>
+
+ * sysfile-info.stat: Test most of the DISPLAY commands. Update
+ title.
+
+ * vector.stat: Display vectors.
+
+Sun Jan 4 18:31:36 1998 Ben Pfaff <blp@gnu.org>
+
+ * All tests: Added title.
+
+ * begin-data.stat: Updated REMARK format.
+
+ * descript.stat: Comment fix.
+
+Sun Dec 21 16:57:31 1997 Ben Pfaff <blp@gnu.org>
+
+ * TEST-RESULTS: New file.
+
+Fri Dec 5 22:02:20 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (DISTCLEANFILES) Add fiasco.html.
+
+Tue Dec 2 14:55:22 1997 Ben Pfaff <blp@gnu.org>
+
+ * t-test.stat: New file.
+
+Fri Nov 14 00:17:25 1997 Ben Pfaff <blp@gnu.org>
+
+ * aggregate.stat: Changed.
+
+Tue Oct 28 16:26:25 1997 Ben Pfaff <blp@gnu.org>
+
+ * aggregate.stat: New file.
+
+ * Makefile.am: (EXTRA_DIST) Add aggregate.stat.
+
+Sun Oct 5 16:02:02 1997 Ben Pfaff <blp@gnu.org>
+
+ * fall92.stat, fall92.data: Removed (unknown copyright).
+
+ * gengarbage.c: Define EXIT_SUCCESS if not defined by headers.
+ From Alexandre Oliva <oliva@dcc.unicamp.br>.
+
+Sat Oct 4 16:35:59 1997 Ben Pfaff <blp@gnu.org>
+
+ * repeating.stat: New file.
+
+ * Makefile.am: (EXTRA_DIST) Add repeating.stat.
+
+Thu Sep 18 21:40:50 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (EXTRA_DIST) Add lag.stat.
+
+Mon Aug 18 18:31:42 1997 Ben Pfaff <blp@gnu.org>
+
+ * do-repeat.stat: Even more useful.
+
+ * lag.stat: New file.
+
+Sun Aug 17 22:47:53 1997 Ben Pfaff <blp@gnu.org>
+
+ * do-repeat.stat: Made actually useful, not stupid.
+
+Sun Aug 3 11:46:00 1997 Ben Pfaff <blp@gnu.org>
+
+ * In several files, replace usage of deprecated term `script' by
+ `syntax file'.
+
+Thu Jul 17 02:12:17 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (EXTRA_DIST) Add tabs.stat.
+
+ * file-label.stat: Improved.
+
+ * sysfile-info.stat: Tests DISPLAY DICTIONARY now as well.
+
+Fri Jul 11 14:13:49 1997 Ben Pfaff <blp@gnu.org>
+
+ * gengarbage.c: Reformat. #include's <time.h>. Uses ANSI C
+ rand() in place of random(). Calls the randomizer srand().
+
+Thu Jul 10 22:16:34 1997 Ben Pfaff <blp@gnu.org>
+
+ * tabs.stat: New file.
+
+Wed Jun 25 22:54:40 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: (EXTRA_DIST) Removed bug.stat, file-type.stat.
+
+Sun Jun 8 01:24:55 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Added fiasco.ps, fiasco.list, foo, foo.sav, msgs to
+ DISTCLEANFILES.
+
+ * input-program.stat: Made some variables scratch.
+
+Fri Jun 6 22:53:03 1997 Ben Pfaff <blp@gnu.org>
+
+ * Many files: Comment fixes, removed `set output raw.' commands.
+
+ * Other miscellaneous changes.
+
+Tue Jun 3 23:44:46 1997 Ben Pfaff <blp@gnu.org>
+
+ * list.stat: Re-enabled some of it.
+
+Wed Apr 23 21:33:48 1997 Ben Pfaff <blp@gnu.org>
+
+ * sysfile-info.stat: A little more generalized now.
+
+Fri Apr 18 15:42:22 1997 Ben Pfaff <blp@gnu.org>
+
+ * Makefile.am: Maintainer-clean Makefile.in.
+
+Thu Mar 27 01:11:29 1997 Ben Pfaff <blp@gnu.org>
+
+ * gengarbage.pl: Removed.
+
+Sat Feb 15 21:26:53 1997 Ben Pfaff <blp@gnu.org>
+
+ * descript.stat: Syntax fixes.
+
+ * process-if.stat: New test for PROCESS IF.
+
+Sun Jan 19 14:22:11 1997 Ben Pfaff <blp@gnu.org>
+
+ * autorecode.stat, modify-vars.stat: More thorough.
+
+ * data-formats.stat, file-label.stat: New tests.
+
+Thu Jan 16 13:08:57 1997 Ben Pfaff <blp@gnu.org>
+
+ * bug.stat: Comment fix.
+
+Wed Jan 1 22:08:10 1997 Ben Pfaff <blp@gnu.org>
+
+ * filter.stat: New file; tests FILTER behavior.
+
+Wed Jan 1 17:00:59 1997 Ben Pfaff <blp@gnu.org>
+
+ * gengarbage.pl: New perl program equivalent to gengarbage.c.
+
+Sun Dec 29 21:36:48 1996 Ben Pfaff <blp@gnu.org>
+
+ * gengarbage.c: Changed.
+
+ * sort.stat: Changed.
+
+Sun Dec 22 23:10:39 1996 Ben Pfaff <blp@gnu.org>
+
+ * sort.stat: New file.
+
+Fri Dec 13 21:30:53 1996 Ben Pfaff <blp@gnu.org>
+
+ * autorecode.stat: New file.
+
+ * fall92.stat: Mods for practicality.
+
+ * test.bat, testall.bat: Removed.
+
+Thu Nov 28 23:14:07 1996 Ben Pfaff <blp@gnu.org>
+
+ * list.stat, weighting.stat: Changed SET COMPATIBILITY subcommand
+ to SET EMULATION in anticipation of change.
+
+Sat Oct 26 23:06:06 1996 Ben Pfaff <blp@gnu.org>
+
+ * recode.stat: Removed comment about bug, since I fixed that.
+
+Thu Oct 24 20:13:42 1996 Ben Pfaff <blp@gnu.org>
+
+ * print.stat: Slightly more thorough.
+
+Thu Oct 24 17:47:14 1996 Ben Pfaff <blp@gnu.org>
+
+ * time-date.stat: Slightly more thorough.
+
+Wed Oct 23 21:53:43 1996 Ben Pfaff <blp@gnu.org>
+
+ * time-date.stat: New file.
+
+Thu Sep 26 22:20:26 1996 Ben Pfaff <blp@gnu.org>
+
+ * list.data: More data.
+
+ * list.stat: Handles all that extra data.
+
+ * weighting.stat: Doesn't try to list $WEIGHT because PC+ isn't
+ quite supported yet.
+
+Wed Sep 4 21:45:35 1996 Ben Pfaff <blp@gnu.org>
+
+ * weighting.stat: Tests for proper ligatures. Won't work until
+ encodings are correct, of course...
+
+----------------------------------------------------------------------
+Local Variables:
+mode: change-log
+version-control: never
+End:
CLEANFILES += *.save pspp.* foo*
-dist-hook:
+DIST_HOOKS += check-for-export-var-val
+check-for-export-var-val:
@if grep -q 'export .*=' $(dist_TESTS) ; then \
echo 'One or more tests contain non-portable "export VAR=val" syntax' ; \
false ; \
fi
+
+EXTRA_DIST += tests/OChangeLog