From: Ben Pfaff Date: Fri, 1 Aug 2008 03:47:49 +0000 (-0700) Subject: Start generating ChangeLog automatically from Git commit messages. X-Git-Tag: v0.7.0~1^2 X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7d3713dd11dc0f4c5ce9c62ea512cdea38b4e80d;p=pspp-builds.git Start generating ChangeLog automatically from Git commit messages. Thus, at the same time we rename the existing ChangeLog files to OChangeLog and add them to EXTRA_DIST to make sure that they get distributed. --- diff --git a/.gitignore b/.gitignore index d5b58843..c29aff49 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ ABOUT-NLS +ChangeLog Makefile Makefile.in aclocal.m4 @@ -30,3 +31,4 @@ pref.h reloc-ldflags stamp-h1 texinfo.tex +gitlog-to-changelog diff --git a/ChangeLog b/ChangeLog deleted file mode 100644 index bcf78ace..00000000 --- a/ChangeLog +++ /dev/null @@ -1,2406 +0,0 @@ -2008-06-13 Ben Pfaff - - * configure.ac: Fix typo in AC_PREREQ command name. Thanks to - Stepan Kasal for reporting the problem. - -2008-06-04 Ben Pfaff - - * configure.ac: Update version number to 0.6.0 in preparation for - release. - -2008-05-15 Ben Pfaff - - * 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 - - * 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 - - * configure.ac : Improve checking of ncurses availability. - -2008-04-15 Ben Pfaff - - * configure.ac: Properly report required version of libglade. - Thanks to unknown-1 for reporting this bug. - -2008-04-15 John Darrington - - * configure.ac : Replace AC_CHECK_LIB with AC_SEARCH_LIBS as - recommended by latest autoconf manual. - -2008-02-19 John Darrington - - * configure.ac INSTALL: We now depend on GTK+ 2.12 - -2007-12-11 John Darrington - - * t-test-independent-samples-dialog.c: Quoted the group values, when - the group variable is a string variable. - -2007-12-04 Ben Pfaff - - * Smake (GNULIB_MODULES): Add ftello module. - -2007-11-05 Ben Pfaff - - * 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 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 - - Allow output files to overwrite input files (bug #21280). - - * Smake (GNULIB_MODULES): Add fatal-signal, tempname modules. - -2007-11-02 Ben Pfaff - - * Smake (GNULIB_MODULES): Add isfinite, round modules. - -2007-10-12 Ben Pfaff - - 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 - - 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 - - * 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 - - * Smake: Drop alloca, alloca-opt modules as we don't use them - anymore. - -2007-10-10 Ben Pfaff - - * 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 - - * configure.ac INSTALL: Change libglade version requirement. - Thanks to Paul Brown for reporting this issue. - -2007-09-30 Ben Pfaff - - * configure.ac: Print a message indicating success at the end of - the run. - - * INSTALL: Improve instructions. - -2007-09-22 Ben Pfaff - - Bug #21128. Reviewed by John Darrington. - - * acinclude.m4 (PSPP_LC_PAPER): New macro. - - * configure.ac: Use PSPP_LC_PAPER. - -2007-08-05 Ben Pfaff - - 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 - - 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 - - * Smake: Use xmalloca instead of xallocsa due to module renaming. - Update all uses. - -2007-06-06 Ben Pfaff - - * Smake: Add xallocsa to modules. - -2007-04-22 Ben Pfaff - - Implement model checker for testing purposes. - - Patch #5873. - - * Smake (GNULIB_MODULES): Add crypto/md4, fwriteerror, - gettimeofday. - -2007-04-03 Ben Pfaff - - * 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 - - 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 - - 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 - - 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 - - * 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 - - * 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 - - 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 - - * README: Note that iconv is required. - - * configure.ac: Enforce iconv requirement. - -Thu Feb 8 14:56:18 2007 Ben Pfaff - - 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 - - * configure.ac: Check for the "round" function added in C99. - -Tue Oct 31 19:55:52 2006 Ben Pfaff - - * Smake (GNULIB_MODULES): Add `mempcpy' module. - -Tue Oct 31 19:29:05 2006 Ben Pfaff - - * 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 - - * 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 - - * 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 - - * Smake: Add xsize to GNULIB_MODULES. - -Wed Jul 12 13:41:18 2006 Ben Pfaff - - * Makefile.am: Add check_PROGRAMS and define to empty. - -Sat Jul 1 15:32:31 2006 Ben Pfaff - - * Makefile.am: Add noinst_PROGRAMS and define to empty. - -Tue May 9 20:46:06 2006 Ben Pfaff - - * Smake: Add stdarg to GNULIB_MODULES. - -Sun May 7 09:27:40 WST 2006 John Darrington - - * 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 - - * 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 - - * Smake: Add exit to GNULIB_MODULES. - -Sun Apr 23 20:34:50 2006 Ben Pfaff - - * Smake: Add linebreak to GNULIB_MODULES. - -Sat Apr 15 21:45:40 2006 Ben Pfaff - - 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 - - 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 - - * 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 - - * 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 - - * Smake: (GNULIB_MODULES) Add strsep. - -Thu Mar 30 15:50:05 2006 Ben Pfaff - - * 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 - - * Smake: Require "unistd" gnulib module. Removed tests for - HAVE_UNISTD_H from source code. - -Sat Mar 4 13:20:56 2006 Ben Pfaff - - * 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 - - * pref.h.orig: Move GCC attribute declarations to - new file src/libpspp/compiler.h. - -Sat Mar 4 12:27:06 2006 Ben Pfaff - - * 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 - - * 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 - - * 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 - - * Smake: (po/POTFILE.in) Exclude dotfiles. - -Sat Nov 27 20:29:19 2005 Jason Stover - - * Binary encoding for categorical variables. - * Routines for design matrices. - -Thu Oct 20 18:19:58 2005 Ben Pfaff - - * configure.ac: Improve error messages. Thanks to Jaap-Andre de - Hoop . - -Wed Oct 12 20:33:07 2005 Jason Stover - - * regression.q: Initial version of the REGRESSION procedure. - -Sun Sep 25 16:11:09 2005 Ben Pfaff - - * 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 for - reporting the problem. - -Mon Sep 19 10:24:10 2005 Ben Pfaff - - * 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 - - Added lib/linreg for procedures that use ordinary least squares. - -Sat Sep 17 11:01:44 2005 Ben Pfaff - - 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 - - * PSPP 0.4.0 released. - -Sun Jul 31 10:49:47 2005 Ben Pfaff - - 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 and define gettext, _, N_, because gnulib - wants to do the same thing. - -Sun Jul 24 20:31:13 2005 Ben Pfaff - - * configure.ac: Don't detect libgmp anymore, because we eliminated - the dependency. - - * NEWS: Update. - -Mon Jul 4 17:59:54 2005 Ben Pfaff - - * Makefile.am: Add pspp-mode.el to EXTRA_DIST. - -Wed May 4 08:49:13 WST 2005 John Darrington - - * README.CVS Smake: Added a CONFIGUREFLAGS variable. - * INSTALL: Mentioned build dependencies. - -Mon May 2 22:37:39 2005 Ben Pfaff - - * INSTALL: Mention dependencies. Thanks to Jaap-Andre de Hoop - for the suggestion. - - * NEWS, README: Update. - -Sun May 1 15:00:09 WST 2005 John Darrington - - * pspp-mode.el: Now supports syntax highlighting, indentation and - generally works a lot better. - -Thu Apr 28 10:24:47 WST 2005 John Darrington - - * 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 - - * configure.ac: Added AC_PROG_RANLIB --- needed by autoconf 1.9 - -Mon Feb 28 23:16:58 2005 Ben Pfaff - - * 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 - - * 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 - - * 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 - - * Smake: Change -a to -pR in cp invocations for SUSv3 compliance. - -Mon May 31 17:21:25 2004 Ben Pfaff - - * 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 - - * configure.ac: Check for valgrind/valgrind.h. - -Mon Mar 29 15:22:48 2004 Ben Pfaff - - * TODO: Updated. - - * configure.ac: Check for posix_fadvise. - -Tue Mar 23 14:21:12 WAST 2004 John Darrington - - * Removed dcdflib and replaced with a dependency upon the - GNU Scientific library instead. - -Sat Mar 20 13:55:36 2004 Ben Pfaff - - * TODO: Updated. - -Wed Feb 11 23:54:15 2004 Ben Pfaff - - * 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 - - * Makefile.am (SUBDIRS): Remove intl. - * configure.ac (AC_CONFIG_FILES): Remove intl/Makefile. - -Tue Dec 30 22:23:40 WST 2003 John Darrington - - * Fixed floating point rounding bug in percentiles calculation - -Sat Dec 27 16:16:49 2003 Ben Pfaff - - * configure.ac: Add -Wmissing-prototypes flag to gcc. - - * TODO: Updated. - -Wed Dec 17 12:19:40 WAST 2003 John Darrington - - * Added an --enable-debug flag to configure - -2003-12-13 gettextize - - * Makefile.am (EXTRA_DIST): Add mkinstalldirs. - * configure.ac (AC_CONFIG_FILES): Add intl/Makefile. - - -Thu Dec 11 19:35:32 WST 2003 John Darrington - - * 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 - - * Update build system to Autoconf 2.58, Automake 1.7, gettext - 0.12.1. - -2003-12-08 gettextize - - * 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 - - * 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 - - * Forked 0.3.0. - -Tue Mar 9 12:46:31 1999 Ben Pfaff - - * Released 0.2.3. - - * TODO: Updated. - -Tue Jan 5 15:18:07 1999 Ben Pfaff - - * Released 0.2.2. - - * TODO: Update from Zvi Grauer . - -Thu Nov 19 12:34:55 1998 Ben Pfaff - - * Released 0.2.1. - -Sun Aug 9 11:11:32 1998 Ben Pfaff - - * LANGUAGE: Updated. - -Sat Aug 8 00:19:08 1998 Ben Pfaff - - * LANGUAGE: Updated. - - * examples/: New directory. - - * Made patchlevel 95. - -Tue Aug 4 23:47:31 1998 Ben Pfaff - - * 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 - - * 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 - - * 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 - - * 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 - - * LANGUAGE: Updated. - - * configure.in: Bump version to 0.1.19. - - * Made patchlevel 92. - -Sun May 31 00:55:13 1998 Ben Pfaff - - * TODO: Updated. - - * configure.in: Generate Makefiles for lib/gmp/{,mpn,mpf}/. - - * Made patchlevel 91. - -Fri May 29 21:43:09 1998 Ben Pfaff - - * TODO: Updated. - - * LANGUAGE: Updated. - - * unconfigure: Remove TeX cruft from doc/. - - * Made patchlevel 90. - -Mon May 25 12:41:54 1998 Ben Pfaff - - * 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 - - * TODO: Updated. - - * Made patchlevel 88. - -Sat May 23 23:21:43 1998 Ben Pfaff - - * TODO: Updated. - - * configure.in: Remove gamma from replaceable functions. - - * Made patchlevel 87. - -Fri May 22 00:02:33 1998 Ben Pfaff - - * configure.in: Add gamma to list of functions with replacements. - - * Made patchlevel 86. - -Wed May 20 00:00:12 1998 Ben Pfaff - - * TODO: Updated. - - * Made patchlevel 85. - -Sat May 16 19:38:49 1998 Ben Pfaff - - * TODO: Updated. - - * Made patchlevel 84. - -Tue May 12 16:13:48 1998 Ben Pfaff - - * TODO: Updated. - - * unconfigure: Don't delete Makefile.in under intl/. - - * Made patchlevel 83. - -Thu May 7 23:16:26 1998 Ben Pfaff - - * unconfigure: Add some more files to reap. - - * Made patchlevel 82. - -Tue May 5 13:17:59 1998 Ben Pfaff - - * 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 - - * 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 - - * 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 - - * 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 - - * Made patchlevel 76. - - * configure.in: Bumped version up to 0.1.16. - -1998-03-05 Ben Pfaff - - * configure.in: Bumped version up to 0.1.15. - -1998-02-23 Ben Pfaff - - * 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 - - * 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 - - * 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 - - * 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 - - * Made patchlevel 71. - - * configure.in: Bump version up to 0.1.11. - -Tue Feb 3 16:12:34 1998 Ben Pfaff - - * TODO: Updated. - - * Made patchlevel 70. - - * configure.in: Bump version up to 0.1.10. - -Fri Jan 23 00:17:18 1998 Ben Pfaff - - * Made patchlevel 69. - -Thu Jan 22 00:35:52 1998 Ben Pfaff - - * Made patchlevel 68. - -Sun Jan 18 00:30:18 1998 Ben Pfaff - - * configure.in: Add ieeefp.h to list of headers to check for. - - * Made patchlevel 67. - -Tue Jan 13 23:44:16 1998 Ben Pfaff - - * 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 - - * configure.in: Bump version up to 0.1.9. - - * pref.h.orig (STORE_2): Fix parentheses. From Alexandre - Oliva . - - * Made patchlevel 65. - -Sat Jan 10 23:59:06 1998 Ben Pfaff - - * Made patchlevel 64. - -Sat Jan 10 02:10:15 1998 Ben Pfaff - - * TODO: Updated. - - * pref.h.orig: Comment fixes. - (macro second_lowest_flt64) New. - - * Made patchlevel 63. - -Thu Jan 8 22:27:03 1998 Ben Pfaff - - * TODO: Updated. - - * Made patchlevel 62. - -Mon Jan 5 11:18:37 1998 Ben Pfaff - - * Made patchlevel 61. - -Sun Jan 4 18:10:29 1998 Ben Pfaff - - * 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 - - * TODO: Updated. - - * Made patchlevel 59. - -Fri Jan 2 01:38:37 1998 Ben Pfaff - - * 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 - - * TODO: Updated. - - * Made patchlevel 57. - -Fri Dec 26 15:43:17 1997 Ben Pfaff - - * TODO: Updated. - - * Made patchlevel 56. - -Wed Dec 24 22:34:55 1997 Ben Pfaff - - * 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 - - * 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 - - * 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 - - * Replaced remaining instances of Fiasco with PSPP. - - * Made patchlevel 53. - -Fri Dec 5 22:51:18 1997 Ben Pfaff - - * 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 - - * 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 - - * TODO: Updated. - - * configure.in: Bumped version to 0.1.6. - - * Made patchlevel 50. - -Sat Nov 22 01:20:32 1997 Ben Pfaff - - * Made patchlevel 49. - -Fri Nov 21 00:11:41 1997 Ben Pfaff - - * Made patchlevel 48. - -Sun Nov 16 01:31:38 1997 Ben Pfaff - - * Made patchlevel 47. - -Fri Nov 14 00:17:48 1997 Ben Pfaff - - * Made patchlevel 46. - - * configure.in: Bumped version to 0.1.5. - -Tue Oct 28 16:07:17 1997 Ben Pfaff - - * configure.in: Bumped version to 0.1.4. - - * TODO: Updated. - - * Made patchlevel 45. - -Wed Oct 8 15:55:50 1997 Ben Pfaff - - * 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 - - * 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 - - * configure.in: Bumped version to 0.1.2. - (strerror) Replace instead of check. From Alexandre Oliva - . - - * pref.h.orig: Include `debug-print' instead of - `src/debug-print.h'. - - * Made patchlevel 42. - -Sat Oct 4 16:19:44 1997 Ben Pfaff - - * 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 - - * Made patchlevel 40. - -Sun Sep 21 00:07:09 1997 Ben Pfaff - - * Made patchlevel 39. - -Thu Sep 18 21:42:27 1997 Ben Pfaff - - * 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 - - * 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 - - * 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 - - * TODO: Updated. - - * pref.h.orig: (macro DEFAULT_COMPAT) Removed. - - * Made patchlevel 35. - -Sun Aug 17 22:48:36 1997 Ben Pfaff - - * Made patchlevel 34. - -Sat Aug 16 10:48:29 1997 Ben Pfaff - - * 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 - - * 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 - - * 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 - - * Makefile.am: (MAINTAINERCLEANFILES) Add HELP-WANTED. - (EXTRA_DIST) Add ONEWS. - - * Made patchlevel 30. - -Sun Aug 3 11:30:17 1997 Ben Pfaff - - * 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 - - * Made patchlevel 28. - -Thu Jul 17 01:43:25 1997 Ben Pfaff - - * 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 - - * TODO: Updates. - - * Made patchlevel 26. - -Fri Jul 11 14:08:21 1997 Ben Pfaff - - * 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 - - * 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 - - * 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 - - * TODO: Updates. - - * Made patchlevel 22. - -Fri Jul 4 13:20:47 1997 Ben Pfaff - - * 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 - - * 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 - - * Made patchlevel 19. - -Sun Jun 15 16:44:14 1997 Ben Pfaff - - * 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 - - * Made patchlevel 17. - -Fri Jun 6 22:41:08 1997 Ben Pfaff - - * 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 - - * Made patchlevel 15. - -Tue Jun 3 23:24:08 1997 Ben Pfaff - - * 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 - - * 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 - - * 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 - - * Made patchlevel 11. - -Sun Jun 1 11:58:43 1997 Ben Pfaff - - * 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 - - * pref.h.orig: [__MSDOS__] Reordered INCLUDE_PATH. - - * Made patchlevel 9. - -Sun May 25 22:32:57 1997 Ben Pfaff - - * acconfig.h: For support of glibc 2, define _GNU_SOURCE. - - * Made patchlevel 8. - -Mon May 5 21:58:22 1997 Ben Pfaff - - * Made patchlevel 7. - -Fri May 2 22:27:36 1997 Ben Pfaff - - * Made patchlevel 6. - -Thu May 1 15:34:01 1997 Ben Pfaff - - * All files: Changed copyright from `Ben Pfaff' to `Free Software - Foundation, Inc'. - - * Made patchlevel 5. - -Thu May 1 15:00:51 1997 Ben Pfaff - - * Made patchlevel 4. - -Sat Apr 26 11:34:05 1997 Ben Pfaff - - * ChangeLog: Split into one ChangeLog per directory. - - * Made patchlevel 3. - -Wed Apr 23 21:33:48 1997 Ben Pfaff - - * TODO: Update. - - * Made patchlevel 2. - -Fri Apr 18 16:48:41 1997 Ben Pfaff - - * 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 - - * 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 - - * 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 - - 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 - - * 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 - - 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 - - * TODO: Updated. - - * Made patchlevel 192. - -Sun Feb 16 20:57:20 1997 Ben Pfaff - - * Made patchlevel 191. - -Sat Feb 15 21:26:53 1997 Ben Pfaff - - * Makefile.am: Removed `descript.g' from sources. - - * Made patchlevel 190. - -Fri Feb 14 23:32:58 1997 Ben Pfaff - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * Made patchlevel 182. - -Wed Jan 1 22:08:10 1997 Ben Pfaff - - * TODO: Updated. - - * Made patchlevel 181. - -Wed Jan 1 17:00:59 1997 Ben Pfaff - - * Makefile.am: New target for test/sort.data. - - * Made patchlevel 180. - -Sun Dec 29 21:36:48 1996 Ben Pfaff - - * Made patchlevel 179. - -Tue Dec 24 20:42:32 1996 Ben Pfaff - - * Made patchlevel 178. - -Sun Dec 22 23:10:39 1996 Ben Pfaff - - * 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 - - * 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 - - * Made patchlevel 175. - -Sun Dec 15 15:32:16 1996 Ben Pfaff - - * 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 - - * Made patchlevel 173. - -Fri Dec 13 21:30:53 1996 Ben Pfaff - - * 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 - - * TODO: Updated. - - * Made patchlevel 171. - -Wed Dec 4 21:34:17 1996 Ben Pfaff - - * Made patchlevel 170. - -Sun Dec 1 17:19:00 1996 Ben Pfaff - - * Made patchlevel 169. - -Thu Nov 28 23:14:07 1996 Ben Pfaff - - * Makefile.am: Added `set.q' to list of source files. - - * Made patchlevel 168. - -Thu Nov 28 19:46:10 1996 Ben Pfaff - - * Made patchlevel 167. - -Wed Nov 27 23:18:35 1996 Ben Pfaff - - * 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 - - * 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 - - * Made patchlevel 164. - -Thu Nov 7 20:52:28 1996 Ben Pfaff - - * Made patchlevel 163. - -Thu Nov 7 17:29:16 1996 Ben Pfaff - - * Made patchlevel 162. - -Thu Nov 7 15:48:52 1996 Ben Pfaff - - * Made patchlevel 161. - -Tue Nov 5 18:34:59 1996 Ben Pfaff - - * TODO: Updated. - - * Made patchlevel 160. - -Mon Nov 4 22:03:28 1996 Ben Pfaff - - * Makefile.am: Added get.c. - - * TODO: Updated. - - * Made patchlevel 159. - -Sun Nov 3 12:24:36 1996 Ben Pfaff - - * Makefile.am: Added sfm.h, sfm-read.c to source files. - - * Made patchlevel 158. - -Wed Oct 30 17:13:08 1996 Ben Pfaff - - * 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 - - * 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 - - * Made patchlevel 155. - -Sat Oct 26 10:39:25 1996 Ben Pfaff - - * TODO: Updated. - - * Made patchlevel 154. - -Thu Oct 24 20:13:42 1996 Ben Pfaff - - * 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 - - * TODO: Updated. - - * Made patchlevel 152. - -Wed Oct 23 21:53:43 1996 Ben Pfaff - - * TODO: Organized. - - * Made patchlevel 151. - -Tue Oct 22 17:27:04 1996 Ben Pfaff - - * TODO: Culled old notes. - - * Made patchlevel 150. - -Mon Oct 21 20:39:59 1996 Ben Pfaff - - * Made patchlevel 149. - -Sun Oct 20 13:45:28 1996 Ben Pfaff - - * 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 - - * Made patchlevel 147. - -Fri Oct 18 19:46:49 1996 Ben Pfaff - - * Made patchlevel 146. - -Sun Sep 29 19:37:03 1996 Ben Pfaff - - * Made patchlevel 145. - -Sat Sep 28 21:28:07 1996 Ben Pfaff - - * Makefile.am: Added to DISTCLEANFILES. - - * Made patchlevel 144. - -Fri Sep 27 20:08:39 1996 Ben Pfaff - - * Made patchlevel 143. - -Thu Sep 26 22:20:26 1996 Ben Pfaff - - * Makefile.am: Added list.c back into the list of source files. - - * Made patchlevel 142. - -Wed Sep 25 19:36:11 1996 Ben Pfaff - - * Makefile.am: Updated for new files. - - * Made patchlevel 141. - -Tue Sep 24 18:39:09 1996 Ben Pfaff - - * Made patchlevel 140. - -Sat Sep 21 23:16:31 1996 Ben Pfaff - - * Made patchlevel 139. - -Fri Sep 20 22:52:28 1996 Ben Pfaff - - * Made patchlevel 138. - -Thu Sep 12 18:40:33 1996 Ben Pfaff - - * Made patchlevel 137. - -Wed Sep 11 22:01:41 1996 Ben Pfaff - - * 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 - - * Makefile.am: Added `display.c' back in. - - * TODO: Addition. - - * Made patchlevel 135. - -Mon Sep 9 21:43:13 1996 Ben Pfaff - - * Makefile.am: Added `split-file.c' back into the project. - - * Made patchlevel 134. - -Sat Sep 7 22:35:12 1996 Ben Pfaff - - * TODO: Updated. - - * prefh.orig: (local_strdup) Moved to misc.h. - - * Made patchlevel 133. - -Thu Sep 5 22:05:56 1996 Ben Pfaff - - * Makefile.am: Changed `prologue.ps' references to `ps-prologue'. - - * Made patchlevel 132. - -Wed Sep 4 21:45:35 1996 Ben Pfaff - - * prefh.orig: New i18n defines. - - * This patchlevel doesn't even compile. - - * Made patchlevel 131. - -Sat Aug 31 23:52:38 1996 Ben Pfaff - - * TODO: Addition. - - * Made patchlevel 130. - -Thu Aug 29 21:36:41 1996 Ben Pfaff - - * Made patchlevel 129. - -Sat Aug 24 23:26:00 1996 Ben Pfaff - - * 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 - - * Makefile.am: Changed DISTCLEANFILES. - - * Does not compile. - - * Made patchlevel 126. - -Sat Aug 10 23:28:17 1996 Ben Pfaff - - * 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 - - * reconfigure: `autoheader' now first operation performed. - - * Made patchlevel 124. - -Sat Aug 3 20:50:35 1996 Ben Pfaff - - * 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 - - * 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 - - * Made patchlevel 121. - -Wed Jul 17 21:23:36 1996 Ben Pfaff - - * Made patchlevel 120. - -Tue Jul 16 22:10:04 1996 Ben Pfaff - - * Made patchlevel 119. - -Sun Jul 14 15:45:31 1996 Ben Pfaff - - * Made patchlevel 118. - -Fri Jul 12 22:03:36 1996 Ben Pfaff - - * Makefile.am: Added list.c to sources. - - * Made patchlevel 117. - -Sat Jul 6 22:22:25 1996 Ben Pfaff - - * configure.in: Removed reference to `malloc.h'. - - * Made patchlevel 116. - -Fri Jul 5 20:16:19 1996 Ben Pfaff - - * Made patchlevel 115. - -Thu Jul 4 20:20:24 1996 Ben Pfaff - - * 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 - - * TODO: doc fix. - - * Made patchlevel 114. - -Tue Jul 2 22:13:23 1996 Ben Pfaff - - * 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 - - * Made patchlevel 112. - -Mon Jul 1 13:00:00 1996 Ben Pfaff - - * 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 - - * prefh.orig: changed default file search paths - - * Made patchlevel 110. - -Fri Jun 28 11:59:48 1996 Ben Pfaff - - * Added automake support; removed GNUmakefile and GNUmakefile.in. - ----------------------------------------------------------------------- -Local Variables: -mode: change-log -version-control: never -End: diff --git a/Makefile.am b/Makefile.am index 806fc2a9..ab32f996 100644 --- a/Makefile.am +++ b/Makefile.am @@ -27,7 +27,7 @@ all_q_sources = 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 @@ -35,6 +35,17 @@ noinst_LIBRARIES= 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 @@ -47,3 +58,7 @@ include $(top_srcdir)/tests/automake.mk if WITH_GUI_TOOLS include $(top_srcdir)/glade/automake.mk endif + +PHONY += $(DIST_HOOKS) +dist-hook: $(DIST_HOOKS) +.PHONY: $(PHONY) diff --git a/OChangeLog b/OChangeLog new file mode 100644 index 00000000..bcf78ace --- /dev/null +++ b/OChangeLog @@ -0,0 +1,2406 @@ +2008-06-13 Ben Pfaff + + * configure.ac: Fix typo in AC_PREREQ command name. Thanks to + Stepan Kasal for reporting the problem. + +2008-06-04 Ben Pfaff + + * configure.ac: Update version number to 0.6.0 in preparation for + release. + +2008-05-15 Ben Pfaff + + * 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 + + * 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 + + * configure.ac : Improve checking of ncurses availability. + +2008-04-15 Ben Pfaff + + * configure.ac: Properly report required version of libglade. + Thanks to unknown-1 for reporting this bug. + +2008-04-15 John Darrington + + * configure.ac : Replace AC_CHECK_LIB with AC_SEARCH_LIBS as + recommended by latest autoconf manual. + +2008-02-19 John Darrington + + * configure.ac INSTALL: We now depend on GTK+ 2.12 + +2007-12-11 John Darrington + + * t-test-independent-samples-dialog.c: Quoted the group values, when + the group variable is a string variable. + +2007-12-04 Ben Pfaff + + * Smake (GNULIB_MODULES): Add ftello module. + +2007-11-05 Ben Pfaff + + * 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 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 + + Allow output files to overwrite input files (bug #21280). + + * Smake (GNULIB_MODULES): Add fatal-signal, tempname modules. + +2007-11-02 Ben Pfaff + + * Smake (GNULIB_MODULES): Add isfinite, round modules. + +2007-10-12 Ben Pfaff + + 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 + + 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 + + * 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 + + * Smake: Drop alloca, alloca-opt modules as we don't use them + anymore. + +2007-10-10 Ben Pfaff + + * 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 + + * configure.ac INSTALL: Change libglade version requirement. + Thanks to Paul Brown for reporting this issue. + +2007-09-30 Ben Pfaff + + * configure.ac: Print a message indicating success at the end of + the run. + + * INSTALL: Improve instructions. + +2007-09-22 Ben Pfaff + + Bug #21128. Reviewed by John Darrington. + + * acinclude.m4 (PSPP_LC_PAPER): New macro. + + * configure.ac: Use PSPP_LC_PAPER. + +2007-08-05 Ben Pfaff + + 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 + + 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 + + * Smake: Use xmalloca instead of xallocsa due to module renaming. + Update all uses. + +2007-06-06 Ben Pfaff + + * Smake: Add xallocsa to modules. + +2007-04-22 Ben Pfaff + + Implement model checker for testing purposes. + + Patch #5873. + + * Smake (GNULIB_MODULES): Add crypto/md4, fwriteerror, + gettimeofday. + +2007-04-03 Ben Pfaff + + * 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 + + 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 + + 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 + + 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 + + * 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 + + * 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 + + 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 + + * README: Note that iconv is required. + + * configure.ac: Enforce iconv requirement. + +Thu Feb 8 14:56:18 2007 Ben Pfaff + + 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 + + * configure.ac: Check for the "round" function added in C99. + +Tue Oct 31 19:55:52 2006 Ben Pfaff + + * Smake (GNULIB_MODULES): Add `mempcpy' module. + +Tue Oct 31 19:29:05 2006 Ben Pfaff + + * 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 + + * 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 + + * 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 + + * Smake: Add xsize to GNULIB_MODULES. + +Wed Jul 12 13:41:18 2006 Ben Pfaff + + * Makefile.am: Add check_PROGRAMS and define to empty. + +Sat Jul 1 15:32:31 2006 Ben Pfaff + + * Makefile.am: Add noinst_PROGRAMS and define to empty. + +Tue May 9 20:46:06 2006 Ben Pfaff + + * Smake: Add stdarg to GNULIB_MODULES. + +Sun May 7 09:27:40 WST 2006 John Darrington + + * 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 + + * 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 + + * Smake: Add exit to GNULIB_MODULES. + +Sun Apr 23 20:34:50 2006 Ben Pfaff + + * Smake: Add linebreak to GNULIB_MODULES. + +Sat Apr 15 21:45:40 2006 Ben Pfaff + + 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 + + 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 + + * 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 + + * 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 + + * Smake: (GNULIB_MODULES) Add strsep. + +Thu Mar 30 15:50:05 2006 Ben Pfaff + + * 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 + + * Smake: Require "unistd" gnulib module. Removed tests for + HAVE_UNISTD_H from source code. + +Sat Mar 4 13:20:56 2006 Ben Pfaff + + * 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 + + * pref.h.orig: Move GCC attribute declarations to + new file src/libpspp/compiler.h. + +Sat Mar 4 12:27:06 2006 Ben Pfaff + + * 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 + + * 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 + + * 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 + + * Smake: (po/POTFILE.in) Exclude dotfiles. + +Sat Nov 27 20:29:19 2005 Jason Stover + + * Binary encoding for categorical variables. + * Routines for design matrices. + +Thu Oct 20 18:19:58 2005 Ben Pfaff + + * configure.ac: Improve error messages. Thanks to Jaap-Andre de + Hoop . + +Wed Oct 12 20:33:07 2005 Jason Stover + + * regression.q: Initial version of the REGRESSION procedure. + +Sun Sep 25 16:11:09 2005 Ben Pfaff + + * 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 for + reporting the problem. + +Mon Sep 19 10:24:10 2005 Ben Pfaff + + * 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 + + Added lib/linreg for procedures that use ordinary least squares. + +Sat Sep 17 11:01:44 2005 Ben Pfaff + + 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 + + * PSPP 0.4.0 released. + +Sun Jul 31 10:49:47 2005 Ben Pfaff + + 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 and define gettext, _, N_, because gnulib + wants to do the same thing. + +Sun Jul 24 20:31:13 2005 Ben Pfaff + + * configure.ac: Don't detect libgmp anymore, because we eliminated + the dependency. + + * NEWS: Update. + +Mon Jul 4 17:59:54 2005 Ben Pfaff + + * Makefile.am: Add pspp-mode.el to EXTRA_DIST. + +Wed May 4 08:49:13 WST 2005 John Darrington + + * README.CVS Smake: Added a CONFIGUREFLAGS variable. + * INSTALL: Mentioned build dependencies. + +Mon May 2 22:37:39 2005 Ben Pfaff + + * INSTALL: Mention dependencies. Thanks to Jaap-Andre de Hoop + for the suggestion. + + * NEWS, README: Update. + +Sun May 1 15:00:09 WST 2005 John Darrington + + * pspp-mode.el: Now supports syntax highlighting, indentation and + generally works a lot better. + +Thu Apr 28 10:24:47 WST 2005 John Darrington + + * 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 + + * configure.ac: Added AC_PROG_RANLIB --- needed by autoconf 1.9 + +Mon Feb 28 23:16:58 2005 Ben Pfaff + + * 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 + + * 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 + + * 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 + + * Smake: Change -a to -pR in cp invocations for SUSv3 compliance. + +Mon May 31 17:21:25 2004 Ben Pfaff + + * 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 + + * configure.ac: Check for valgrind/valgrind.h. + +Mon Mar 29 15:22:48 2004 Ben Pfaff + + * TODO: Updated. + + * configure.ac: Check for posix_fadvise. + +Tue Mar 23 14:21:12 WAST 2004 John Darrington + + * Removed dcdflib and replaced with a dependency upon the + GNU Scientific library instead. + +Sat Mar 20 13:55:36 2004 Ben Pfaff + + * TODO: Updated. + +Wed Feb 11 23:54:15 2004 Ben Pfaff + + * 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 + + * Makefile.am (SUBDIRS): Remove intl. + * configure.ac (AC_CONFIG_FILES): Remove intl/Makefile. + +Tue Dec 30 22:23:40 WST 2003 John Darrington + + * Fixed floating point rounding bug in percentiles calculation + +Sat Dec 27 16:16:49 2003 Ben Pfaff + + * configure.ac: Add -Wmissing-prototypes flag to gcc. + + * TODO: Updated. + +Wed Dec 17 12:19:40 WAST 2003 John Darrington + + * Added an --enable-debug flag to configure + +2003-12-13 gettextize + + * Makefile.am (EXTRA_DIST): Add mkinstalldirs. + * configure.ac (AC_CONFIG_FILES): Add intl/Makefile. + + +Thu Dec 11 19:35:32 WST 2003 John Darrington + + * 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 + + * Update build system to Autoconf 2.58, Automake 1.7, gettext + 0.12.1. + +2003-12-08 gettextize + + * 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 + + * 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 + + * Forked 0.3.0. + +Tue Mar 9 12:46:31 1999 Ben Pfaff + + * Released 0.2.3. + + * TODO: Updated. + +Tue Jan 5 15:18:07 1999 Ben Pfaff + + * Released 0.2.2. + + * TODO: Update from Zvi Grauer . + +Thu Nov 19 12:34:55 1998 Ben Pfaff + + * Released 0.2.1. + +Sun Aug 9 11:11:32 1998 Ben Pfaff + + * LANGUAGE: Updated. + +Sat Aug 8 00:19:08 1998 Ben Pfaff + + * LANGUAGE: Updated. + + * examples/: New directory. + + * Made patchlevel 95. + +Tue Aug 4 23:47:31 1998 Ben Pfaff + + * 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 + + * 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 + + * 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 + + * 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 + + * LANGUAGE: Updated. + + * configure.in: Bump version to 0.1.19. + + * Made patchlevel 92. + +Sun May 31 00:55:13 1998 Ben Pfaff + + * TODO: Updated. + + * configure.in: Generate Makefiles for lib/gmp/{,mpn,mpf}/. + + * Made patchlevel 91. + +Fri May 29 21:43:09 1998 Ben Pfaff + + * TODO: Updated. + + * LANGUAGE: Updated. + + * unconfigure: Remove TeX cruft from doc/. + + * Made patchlevel 90. + +Mon May 25 12:41:54 1998 Ben Pfaff + + * 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 + + * TODO: Updated. + + * Made patchlevel 88. + +Sat May 23 23:21:43 1998 Ben Pfaff + + * TODO: Updated. + + * configure.in: Remove gamma from replaceable functions. + + * Made patchlevel 87. + +Fri May 22 00:02:33 1998 Ben Pfaff + + * configure.in: Add gamma to list of functions with replacements. + + * Made patchlevel 86. + +Wed May 20 00:00:12 1998 Ben Pfaff + + * TODO: Updated. + + * Made patchlevel 85. + +Sat May 16 19:38:49 1998 Ben Pfaff + + * TODO: Updated. + + * Made patchlevel 84. + +Tue May 12 16:13:48 1998 Ben Pfaff + + * TODO: Updated. + + * unconfigure: Don't delete Makefile.in under intl/. + + * Made patchlevel 83. + +Thu May 7 23:16:26 1998 Ben Pfaff + + * unconfigure: Add some more files to reap. + + * Made patchlevel 82. + +Tue May 5 13:17:59 1998 Ben Pfaff + + * 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 + + * 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 + + * 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 + + * 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 + + * Made patchlevel 76. + + * configure.in: Bumped version up to 0.1.16. + +1998-03-05 Ben Pfaff + + * configure.in: Bumped version up to 0.1.15. + +1998-02-23 Ben Pfaff + + * 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 + + * 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 + + * 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 + + * 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 + + * Made patchlevel 71. + + * configure.in: Bump version up to 0.1.11. + +Tue Feb 3 16:12:34 1998 Ben Pfaff + + * TODO: Updated. + + * Made patchlevel 70. + + * configure.in: Bump version up to 0.1.10. + +Fri Jan 23 00:17:18 1998 Ben Pfaff + + * Made patchlevel 69. + +Thu Jan 22 00:35:52 1998 Ben Pfaff + + * Made patchlevel 68. + +Sun Jan 18 00:30:18 1998 Ben Pfaff + + * configure.in: Add ieeefp.h to list of headers to check for. + + * Made patchlevel 67. + +Tue Jan 13 23:44:16 1998 Ben Pfaff + + * 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 + + * configure.in: Bump version up to 0.1.9. + + * pref.h.orig (STORE_2): Fix parentheses. From Alexandre + Oliva . + + * Made patchlevel 65. + +Sat Jan 10 23:59:06 1998 Ben Pfaff + + * Made patchlevel 64. + +Sat Jan 10 02:10:15 1998 Ben Pfaff + + * TODO: Updated. + + * pref.h.orig: Comment fixes. + (macro second_lowest_flt64) New. + + * Made patchlevel 63. + +Thu Jan 8 22:27:03 1998 Ben Pfaff + + * TODO: Updated. + + * Made patchlevel 62. + +Mon Jan 5 11:18:37 1998 Ben Pfaff + + * Made patchlevel 61. + +Sun Jan 4 18:10:29 1998 Ben Pfaff + + * 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 + + * TODO: Updated. + + * Made patchlevel 59. + +Fri Jan 2 01:38:37 1998 Ben Pfaff + + * 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 + + * TODO: Updated. + + * Made patchlevel 57. + +Fri Dec 26 15:43:17 1997 Ben Pfaff + + * TODO: Updated. + + * Made patchlevel 56. + +Wed Dec 24 22:34:55 1997 Ben Pfaff + + * 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 + + * 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 + + * 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 + + * Replaced remaining instances of Fiasco with PSPP. + + * Made patchlevel 53. + +Fri Dec 5 22:51:18 1997 Ben Pfaff + + * 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 + + * 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 + + * TODO: Updated. + + * configure.in: Bumped version to 0.1.6. + + * Made patchlevel 50. + +Sat Nov 22 01:20:32 1997 Ben Pfaff + + * Made patchlevel 49. + +Fri Nov 21 00:11:41 1997 Ben Pfaff + + * Made patchlevel 48. + +Sun Nov 16 01:31:38 1997 Ben Pfaff + + * Made patchlevel 47. + +Fri Nov 14 00:17:48 1997 Ben Pfaff + + * Made patchlevel 46. + + * configure.in: Bumped version to 0.1.5. + +Tue Oct 28 16:07:17 1997 Ben Pfaff + + * configure.in: Bumped version to 0.1.4. + + * TODO: Updated. + + * Made patchlevel 45. + +Wed Oct 8 15:55:50 1997 Ben Pfaff + + * 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 + + * 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 + + * configure.in: Bumped version to 0.1.2. + (strerror) Replace instead of check. From Alexandre Oliva + . + + * pref.h.orig: Include `debug-print' instead of + `src/debug-print.h'. + + * Made patchlevel 42. + +Sat Oct 4 16:19:44 1997 Ben Pfaff + + * 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 + + * Made patchlevel 40. + +Sun Sep 21 00:07:09 1997 Ben Pfaff + + * Made patchlevel 39. + +Thu Sep 18 21:42:27 1997 Ben Pfaff + + * 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 + + * 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 + + * 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 + + * TODO: Updated. + + * pref.h.orig: (macro DEFAULT_COMPAT) Removed. + + * Made patchlevel 35. + +Sun Aug 17 22:48:36 1997 Ben Pfaff + + * Made patchlevel 34. + +Sat Aug 16 10:48:29 1997 Ben Pfaff + + * 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 + + * 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 + + * 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 + + * Makefile.am: (MAINTAINERCLEANFILES) Add HELP-WANTED. + (EXTRA_DIST) Add ONEWS. + + * Made patchlevel 30. + +Sun Aug 3 11:30:17 1997 Ben Pfaff + + * 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 + + * Made patchlevel 28. + +Thu Jul 17 01:43:25 1997 Ben Pfaff + + * 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 + + * TODO: Updates. + + * Made patchlevel 26. + +Fri Jul 11 14:08:21 1997 Ben Pfaff + + * 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 + + * 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 + + * 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 + + * TODO: Updates. + + * Made patchlevel 22. + +Fri Jul 4 13:20:47 1997 Ben Pfaff + + * 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 + + * 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 + + * Made patchlevel 19. + +Sun Jun 15 16:44:14 1997 Ben Pfaff + + * 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 + + * Made patchlevel 17. + +Fri Jun 6 22:41:08 1997 Ben Pfaff + + * 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 + + * Made patchlevel 15. + +Tue Jun 3 23:24:08 1997 Ben Pfaff + + * 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 + + * 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 + + * 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 + + * Made patchlevel 11. + +Sun Jun 1 11:58:43 1997 Ben Pfaff + + * 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 + + * pref.h.orig: [__MSDOS__] Reordered INCLUDE_PATH. + + * Made patchlevel 9. + +Sun May 25 22:32:57 1997 Ben Pfaff + + * acconfig.h: For support of glibc 2, define _GNU_SOURCE. + + * Made patchlevel 8. + +Mon May 5 21:58:22 1997 Ben Pfaff + + * Made patchlevel 7. + +Fri May 2 22:27:36 1997 Ben Pfaff + + * Made patchlevel 6. + +Thu May 1 15:34:01 1997 Ben Pfaff + + * All files: Changed copyright from `Ben Pfaff' to `Free Software + Foundation, Inc'. + + * Made patchlevel 5. + +Thu May 1 15:00:51 1997 Ben Pfaff + + * Made patchlevel 4. + +Sat Apr 26 11:34:05 1997 Ben Pfaff + + * ChangeLog: Split into one ChangeLog per directory. + + * Made patchlevel 3. + +Wed Apr 23 21:33:48 1997 Ben Pfaff + + * TODO: Update. + + * Made patchlevel 2. + +Fri Apr 18 16:48:41 1997 Ben Pfaff + + * 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 + + * 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 + + * 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 + + 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 + + * 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 + + 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 + + * TODO: Updated. + + * Made patchlevel 192. + +Sun Feb 16 20:57:20 1997 Ben Pfaff + + * Made patchlevel 191. + +Sat Feb 15 21:26:53 1997 Ben Pfaff + + * Makefile.am: Removed `descript.g' from sources. + + * Made patchlevel 190. + +Fri Feb 14 23:32:58 1997 Ben Pfaff + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * Made patchlevel 182. + +Wed Jan 1 22:08:10 1997 Ben Pfaff + + * TODO: Updated. + + * Made patchlevel 181. + +Wed Jan 1 17:00:59 1997 Ben Pfaff + + * Makefile.am: New target for test/sort.data. + + * Made patchlevel 180. + +Sun Dec 29 21:36:48 1996 Ben Pfaff + + * Made patchlevel 179. + +Tue Dec 24 20:42:32 1996 Ben Pfaff + + * Made patchlevel 178. + +Sun Dec 22 23:10:39 1996 Ben Pfaff + + * 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 + + * 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 + + * Made patchlevel 175. + +Sun Dec 15 15:32:16 1996 Ben Pfaff + + * 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 + + * Made patchlevel 173. + +Fri Dec 13 21:30:53 1996 Ben Pfaff + + * 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 + + * TODO: Updated. + + * Made patchlevel 171. + +Wed Dec 4 21:34:17 1996 Ben Pfaff + + * Made patchlevel 170. + +Sun Dec 1 17:19:00 1996 Ben Pfaff + + * Made patchlevel 169. + +Thu Nov 28 23:14:07 1996 Ben Pfaff + + * Makefile.am: Added `set.q' to list of source files. + + * Made patchlevel 168. + +Thu Nov 28 19:46:10 1996 Ben Pfaff + + * Made patchlevel 167. + +Wed Nov 27 23:18:35 1996 Ben Pfaff + + * 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 + + * 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 + + * Made patchlevel 164. + +Thu Nov 7 20:52:28 1996 Ben Pfaff + + * Made patchlevel 163. + +Thu Nov 7 17:29:16 1996 Ben Pfaff + + * Made patchlevel 162. + +Thu Nov 7 15:48:52 1996 Ben Pfaff + + * Made patchlevel 161. + +Tue Nov 5 18:34:59 1996 Ben Pfaff + + * TODO: Updated. + + * Made patchlevel 160. + +Mon Nov 4 22:03:28 1996 Ben Pfaff + + * Makefile.am: Added get.c. + + * TODO: Updated. + + * Made patchlevel 159. + +Sun Nov 3 12:24:36 1996 Ben Pfaff + + * Makefile.am: Added sfm.h, sfm-read.c to source files. + + * Made patchlevel 158. + +Wed Oct 30 17:13:08 1996 Ben Pfaff + + * 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 + + * 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 + + * Made patchlevel 155. + +Sat Oct 26 10:39:25 1996 Ben Pfaff + + * TODO: Updated. + + * Made patchlevel 154. + +Thu Oct 24 20:13:42 1996 Ben Pfaff + + * 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 + + * TODO: Updated. + + * Made patchlevel 152. + +Wed Oct 23 21:53:43 1996 Ben Pfaff + + * TODO: Organized. + + * Made patchlevel 151. + +Tue Oct 22 17:27:04 1996 Ben Pfaff + + * TODO: Culled old notes. + + * Made patchlevel 150. + +Mon Oct 21 20:39:59 1996 Ben Pfaff + + * Made patchlevel 149. + +Sun Oct 20 13:45:28 1996 Ben Pfaff + + * 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 + + * Made patchlevel 147. + +Fri Oct 18 19:46:49 1996 Ben Pfaff + + * Made patchlevel 146. + +Sun Sep 29 19:37:03 1996 Ben Pfaff + + * Made patchlevel 145. + +Sat Sep 28 21:28:07 1996 Ben Pfaff + + * Makefile.am: Added to DISTCLEANFILES. + + * Made patchlevel 144. + +Fri Sep 27 20:08:39 1996 Ben Pfaff + + * Made patchlevel 143. + +Thu Sep 26 22:20:26 1996 Ben Pfaff + + * Makefile.am: Added list.c back into the list of source files. + + * Made patchlevel 142. + +Wed Sep 25 19:36:11 1996 Ben Pfaff + + * Makefile.am: Updated for new files. + + * Made patchlevel 141. + +Tue Sep 24 18:39:09 1996 Ben Pfaff + + * Made patchlevel 140. + +Sat Sep 21 23:16:31 1996 Ben Pfaff + + * Made patchlevel 139. + +Fri Sep 20 22:52:28 1996 Ben Pfaff + + * Made patchlevel 138. + +Thu Sep 12 18:40:33 1996 Ben Pfaff + + * Made patchlevel 137. + +Wed Sep 11 22:01:41 1996 Ben Pfaff + + * 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 + + * Makefile.am: Added `display.c' back in. + + * TODO: Addition. + + * Made patchlevel 135. + +Mon Sep 9 21:43:13 1996 Ben Pfaff + + * Makefile.am: Added `split-file.c' back into the project. + + * Made patchlevel 134. + +Sat Sep 7 22:35:12 1996 Ben Pfaff + + * TODO: Updated. + + * prefh.orig: (local_strdup) Moved to misc.h. + + * Made patchlevel 133. + +Thu Sep 5 22:05:56 1996 Ben Pfaff + + * Makefile.am: Changed `prologue.ps' references to `ps-prologue'. + + * Made patchlevel 132. + +Wed Sep 4 21:45:35 1996 Ben Pfaff + + * prefh.orig: New i18n defines. + + * This patchlevel doesn't even compile. + + * Made patchlevel 131. + +Sat Aug 31 23:52:38 1996 Ben Pfaff + + * TODO: Addition. + + * Made patchlevel 130. + +Thu Aug 29 21:36:41 1996 Ben Pfaff + + * Made patchlevel 129. + +Sat Aug 24 23:26:00 1996 Ben Pfaff + + * 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 + + * Makefile.am: Changed DISTCLEANFILES. + + * Does not compile. + + * Made patchlevel 126. + +Sat Aug 10 23:28:17 1996 Ben Pfaff + + * 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 + + * reconfigure: `autoheader' now first operation performed. + + * Made patchlevel 124. + +Sat Aug 3 20:50:35 1996 Ben Pfaff + + * 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 + + * 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 + + * Made patchlevel 121. + +Wed Jul 17 21:23:36 1996 Ben Pfaff + + * Made patchlevel 120. + +Tue Jul 16 22:10:04 1996 Ben Pfaff + + * Made patchlevel 119. + +Sun Jul 14 15:45:31 1996 Ben Pfaff + + * Made patchlevel 118. + +Fri Jul 12 22:03:36 1996 Ben Pfaff + + * Makefile.am: Added list.c to sources. + + * Made patchlevel 117. + +Sat Jul 6 22:22:25 1996 Ben Pfaff + + * configure.in: Removed reference to `malloc.h'. + + * Made patchlevel 116. + +Fri Jul 5 20:16:19 1996 Ben Pfaff + + * Made patchlevel 115. + +Thu Jul 4 20:20:24 1996 Ben Pfaff + + * 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 + + * TODO: doc fix. + + * Made patchlevel 114. + +Tue Jul 2 22:13:23 1996 Ben Pfaff + + * 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 + + * Made patchlevel 112. + +Mon Jul 1 13:00:00 1996 Ben Pfaff + + * 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 + + * prefh.orig: changed default file search paths + + * Made patchlevel 110. + +Fri Jun 28 11:59:48 1996 Ben Pfaff + + * Added automake support; removed GNUmakefile and GNUmakefile.in. + +---------------------------------------------------------------------- +Local Variables: +mode: change-log +version-control: never +End: diff --git a/Smake b/Smake index 61c53b88..11ab6daf 100644 --- a/Smake +++ b/Smake @@ -27,6 +27,7 @@ GNULIB_MODULES = \ getopt \ gettext-h \ gettimeofday \ + gitlog-to-changelog \ isfinite \ isinf \ isnan \ @@ -84,12 +85,13 @@ GNULIB_MODULES = \ 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 diff --git a/config/ChangeLog b/config/ChangeLog deleted file mode 100644 index dbf6c3ad..00000000 --- a/config/ChangeLog +++ /dev/null @@ -1,217 +0,0 @@ -2007-09-25 Ben Pfaff - - * 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 - - Bug #21128. Reviewed by John Darrington. - - * papersize: Removed. - - * automake.mk (dist_pkgsysconf_DATA): Remove papersize. - -2007-08-26 Ben Pfaff - - * devices: Change raw-ascii from screen to listing device (because - that's how it's used). - -2007-07-25 Ben Pfaff - - * devices: Add tty and listing devices that use VT100 (and xterm) - line-drawing characters. - -2007-07-25 Ben Pfaff - - * 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 - - * automake.mk: Fix bugs in installation targets. - -Mon Apr 3 11:01:16 2006 Ben Pfaff - - * 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 - - * html-prologue: Don't use ${source-file}, which is no longer - supported. - -Tue Dec 30 22:37:04 2003 Ben Pfaff - - * 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 - - * ps-prologue: Add %%DocumentMedia: comment. - -Wed May 20 00:02:51 1998 Ben Pfaff - - * ps-prologue: Comment out misleading Bounding-Box comment for - now. SF arguments rearranged. BP removed. - -Wed Apr 15 13:00:46 1998 Ben Pfaff - - * 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 - - * ps-prologue: Minor reorganization. New GB macro to draw a gray - box. - -Wed Dec 24 22:35:13 1997 Ben Pfaff - - * devices: Added devicetype options and documentation for them. - -Fri Dec 5 21:51:08 1997 Ben Pfaff - - * 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 - - * Makefile.am: (pkgsysconfdir) Changed from $(pkgdatadir) to - $(sysconfdir)/$(PACKAGE). - -Thu Aug 14 22:05:54 1997 Ben Pfaff - - * devices: (tty) Define as null instead of not defining. - -Sun Aug 3 11:33:28 1997 Ben Pfaff - - * devices: tty-ascii has no bold or italic by default. - -Wed Jun 25 22:50:19 1997 Ben Pfaff - - * Makefile.am: (EXTRA_DIST) New target. - -Mon May 5 21:56:54 1997 Ben Pfaff - - * devices, papersize, ps-prologue: Comment fixes. - -Fri May 2 22:05:44 1997 Ben Pfaff - - * 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 - - * ps-prologue: (BP) New argument, SF or scale factor. - -Fri Apr 18 16:48:41 1997 Ben Pfaff - - * Makefile.am: New file. - - * environment: Comment fix. - -Sat Feb 15 21:26:53 1997 Ben Pfaff - - * devices: Added ml520 and ml520-ul printer devices. - -Sat Jan 11 15:44:15 1997 Ben Pfaff - - * devices: Default listing device is list-ascii, not list-ibmpc. - -Sun Dec 29 21:36:48 1996 Ben Pfaff - - * devices: Changed default devices. - -Sat Sep 7 22:35:12 1996 Ben Pfaff - - * 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 - - * 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 - - * 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 - - * prologue.ps: One minor comment change. - -Thu Aug 29 21:36:41 1996 Ben Pfaff - - * prologue.ps: Portions other than DSC comments are essentially - completely new. - -Sat Aug 24 23:26:00 1996 Ben Pfaff - - * devices: Added PostScript driver. - -Sun Aug 11 21:31:22 1996 Ben Pfaff - - * prologue.ps: Calls `setlinecap' in setup code. - -Sat Aug 10 23:28:17 1996 Ben Pfaff - - * prologue.ps: DSC comment changes. New call to `setlinewidth' in - setup code. - -Thu Aug 8 22:31:11 1996 Ben Pfaff - - * prologue.ps: Changes to scaling & translating code. - -Sat Aug 3 20:50:35 1996 Ben Pfaff - - * 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 - - * ps-fontmap: New configuration file. Added to Makefile.am. - ----------------------------------------------------------------------- -Local Variables: -mode: change-log -version-control: never -End: diff --git a/config/OChangeLog b/config/OChangeLog new file mode 100644 index 00000000..dbf6c3ad --- /dev/null +++ b/config/OChangeLog @@ -0,0 +1,217 @@ +2007-09-25 Ben Pfaff + + * 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 + + Bug #21128. Reviewed by John Darrington. + + * papersize: Removed. + + * automake.mk (dist_pkgsysconf_DATA): Remove papersize. + +2007-08-26 Ben Pfaff + + * devices: Change raw-ascii from screen to listing device (because + that's how it's used). + +2007-07-25 Ben Pfaff + + * devices: Add tty and listing devices that use VT100 (and xterm) + line-drawing characters. + +2007-07-25 Ben Pfaff + + * 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 + + * automake.mk: Fix bugs in installation targets. + +Mon Apr 3 11:01:16 2006 Ben Pfaff + + * 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 + + * html-prologue: Don't use ${source-file}, which is no longer + supported. + +Tue Dec 30 22:37:04 2003 Ben Pfaff + + * 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 + + * ps-prologue: Add %%DocumentMedia: comment. + +Wed May 20 00:02:51 1998 Ben Pfaff + + * ps-prologue: Comment out misleading Bounding-Box comment for + now. SF arguments rearranged. BP removed. + +Wed Apr 15 13:00:46 1998 Ben Pfaff + + * 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 + + * ps-prologue: Minor reorganization. New GB macro to draw a gray + box. + +Wed Dec 24 22:35:13 1997 Ben Pfaff + + * devices: Added devicetype options and documentation for them. + +Fri Dec 5 21:51:08 1997 Ben Pfaff + + * 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 + + * Makefile.am: (pkgsysconfdir) Changed from $(pkgdatadir) to + $(sysconfdir)/$(PACKAGE). + +Thu Aug 14 22:05:54 1997 Ben Pfaff + + * devices: (tty) Define as null instead of not defining. + +Sun Aug 3 11:33:28 1997 Ben Pfaff + + * devices: tty-ascii has no bold or italic by default. + +Wed Jun 25 22:50:19 1997 Ben Pfaff + + * Makefile.am: (EXTRA_DIST) New target. + +Mon May 5 21:56:54 1997 Ben Pfaff + + * devices, papersize, ps-prologue: Comment fixes. + +Fri May 2 22:05:44 1997 Ben Pfaff + + * 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 + + * ps-prologue: (BP) New argument, SF or scale factor. + +Fri Apr 18 16:48:41 1997 Ben Pfaff + + * Makefile.am: New file. + + * environment: Comment fix. + +Sat Feb 15 21:26:53 1997 Ben Pfaff + + * devices: Added ml520 and ml520-ul printer devices. + +Sat Jan 11 15:44:15 1997 Ben Pfaff + + * devices: Default listing device is list-ascii, not list-ibmpc. + +Sun Dec 29 21:36:48 1996 Ben Pfaff + + * devices: Changed default devices. + +Sat Sep 7 22:35:12 1996 Ben Pfaff + + * 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 + + * 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 + + * 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 + + * prologue.ps: One minor comment change. + +Thu Aug 29 21:36:41 1996 Ben Pfaff + + * prologue.ps: Portions other than DSC comments are essentially + completely new. + +Sat Aug 24 23:26:00 1996 Ben Pfaff + + * devices: Added PostScript driver. + +Sun Aug 11 21:31:22 1996 Ben Pfaff + + * prologue.ps: Calls `setlinecap' in setup code. + +Sat Aug 10 23:28:17 1996 Ben Pfaff + + * prologue.ps: DSC comment changes. New call to `setlinewidth' in + setup code. + +Thu Aug 8 22:31:11 1996 Ben Pfaff + + * prologue.ps: Changes to scaling & translating code. + +Sat Aug 3 20:50:35 1996 Ben Pfaff + + * 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 + + * ps-fontmap: New configuration file. Added to Makefile.am. + +---------------------------------------------------------------------- +Local Variables: +mode: change-log +version-control: never +End: diff --git a/config/automake.mk b/config/automake.mk index ba01a397..88b63ac1 100644 --- a/config/automake.mk +++ b/config/automake.mk @@ -18,3 +18,5 @@ dist_psfonts_DATA = \ config/psfonts/Helvetica.afm \ config/psfonts/Times-Roman.afm \ config/psfonts/Courier.afm + +EXTRA_DIST += config/OChangeLog diff --git a/doc/ChangeLog b/doc/ChangeLog deleted file mode 100644 index f1270cf5..00000000 --- a/doc/ChangeLog +++ /dev/null @@ -1,259 +0,0 @@ -2008-05-15 Ben Pfaff - - * automake.mk: Make install-data-hook depend on yelp-check if the - GUI is configured. - -2008-05-08 John Darrington - - * automake.mk: Compress the info files, because later - versions of yelp seem to crash otherwise. - -2008-03-11 Jason Stover - - * regression.texi (REGRESSION): Fixed use of @dots in @math - command. Reported by John Darrington. - -2008-03-11 Jason Stover - - * 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 - - * regression.texi (REGRESSION): Removed references to subcommand EXPORT. - -2008-02-06 John Darrington - - * files.texi: Document the /BSIZE subcommand to the PSQL - reader. - -2008-02-04 John Darrington - - * 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 - - * 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 - - 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 - - * statistics.texi: Changed /CONTRASTS to /CONTRAST in ONEWAY which - is what the command accepts. - - -2007-07-28 John Darrington - - * statistics.texi: Made the documentation for T-TEST match - the behaviour. - -2007-07-17 Ben Pfaff - - * 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 - - * 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 - - * transformation.texi: SORT CASES: elaborated on the (D) (A) flags. - -2007-03-01 Ben Pfaff - - * 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 - - * statistics.texi: Added documentation for the NPAR TESTS command. - -Thu Nov 30 22:20:10 2006 Ben Pfaff - - * 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 - - * 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 - - * Added documentation for RANK. - -Tue May 2 10:43:06 WST 2006 - - * data-file-format.texi: Updated information about the case_size - value. Added description of Record Type 7, subtype 14. - -2006-04-28 Jason Stover - - * regression.texi: Added description of the RESID and PRED - keywords to the SAVE subcommand. - - * statistics.texi: Added REGRESSION node. - -2006-04-21 Jason Stover - - * regression.texi: Initial description of the SAVE subcommand. - -Sun Apr 16 19:12:26 2006 Ben Pfaff - - Consistently write "file name" as two words, in accordance with - the GNU standards. - -Wed Feb 15 21:53:12 2006 Ben Pfaff - - * data-file-format.texi: Fix values for "measure" in Auxiliary - Variable Parameter Record. Thanks to Oliver Bock - for reporting this bug. Fixes bug #15763. - -Tue Feb 14 21:34:06 2006 Ben Pfaff - - * data-file-format.texi: Fix description of "count" in Auxiliary - Variable Parameter Record. Thanks to Oliver Bock - for reporting this bug. Fixes bug #15756. - -Sun Sep 25 16:10:36 2005 Ben Pfaff - - * Makefile.am: Make ni.texi a prereq for HTML output. Thanks to - James R. Van Zandt for reporting the problem. - -Sun Jul 24 18:47:02 2005 Ben Pfaff - - * portable-file-format.texi: Describe author field. - -Sat May 7 17:26:39 WST 2005 John Darrington - - * Makefile.am: Made ni.texi a nodist file - -Wed May 4 08:30:24 2005 Ben Pfaff - - * language.texi: Proofreading from Jason Stover - . - -Tue May 3 16:22:29 WST 2005 John Darrington - - * 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 - - * 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 - - * configuration.texi: Removed manpage(x) style references, because - RMS doesn't like them. - -Wed Apr 27 07:44:57 WST 2005 John Darrington - - * utilities.texi: Added the ECHO command. - -Fri Apr 15 18:35:42 2005 Ben Pfaff - - * 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 - - * expressions.texi: corrected some mismatched parentheses. - -Mon Feb 28 23:19:34 2005 Ben Pfaff - - * expressions.texi: Revise. Describe new functions. - -Sat Jan 8 16:46:28 2005 Ben Pfaff - - * 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 - - * statistics.texi Added documentation about the EXAMINE cmd - -Tue Nov 16 13:18:53 WST 2004 John Darrington - - * 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 - - * Made Makefile.am aware of pspp.texi dependencies - -Fri Nov 5 17:46:46 WST 2004 John Darrington - - * Added a note to the about SPLIT requiring adjacent cases. - -Sat Oct 30 17:32:53 WST 2004 John Darrington - - * 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. diff --git a/doc/OChangeLog b/doc/OChangeLog new file mode 100644 index 00000000..f1270cf5 --- /dev/null +++ b/doc/OChangeLog @@ -0,0 +1,259 @@ +2008-05-15 Ben Pfaff + + * automake.mk: Make install-data-hook depend on yelp-check if the + GUI is configured. + +2008-05-08 John Darrington + + * automake.mk: Compress the info files, because later + versions of yelp seem to crash otherwise. + +2008-03-11 Jason Stover + + * regression.texi (REGRESSION): Fixed use of @dots in @math + command. Reported by John Darrington. + +2008-03-11 Jason Stover + + * 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 + + * regression.texi (REGRESSION): Removed references to subcommand EXPORT. + +2008-02-06 John Darrington + + * files.texi: Document the /BSIZE subcommand to the PSQL + reader. + +2008-02-04 John Darrington + + * 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 + + * 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 + + 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 + + * statistics.texi: Changed /CONTRASTS to /CONTRAST in ONEWAY which + is what the command accepts. + + +2007-07-28 John Darrington + + * statistics.texi: Made the documentation for T-TEST match + the behaviour. + +2007-07-17 Ben Pfaff + + * 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 + + * 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 + + * transformation.texi: SORT CASES: elaborated on the (D) (A) flags. + +2007-03-01 Ben Pfaff + + * 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 + + * statistics.texi: Added documentation for the NPAR TESTS command. + +Thu Nov 30 22:20:10 2006 Ben Pfaff + + * 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 + + * 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 + + * Added documentation for RANK. + +Tue May 2 10:43:06 WST 2006 + + * data-file-format.texi: Updated information about the case_size + value. Added description of Record Type 7, subtype 14. + +2006-04-28 Jason Stover + + * regression.texi: Added description of the RESID and PRED + keywords to the SAVE subcommand. + + * statistics.texi: Added REGRESSION node. + +2006-04-21 Jason Stover + + * regression.texi: Initial description of the SAVE subcommand. + +Sun Apr 16 19:12:26 2006 Ben Pfaff + + Consistently write "file name" as two words, in accordance with + the GNU standards. + +Wed Feb 15 21:53:12 2006 Ben Pfaff + + * data-file-format.texi: Fix values for "measure" in Auxiliary + Variable Parameter Record. Thanks to Oliver Bock + for reporting this bug. Fixes bug #15763. + +Tue Feb 14 21:34:06 2006 Ben Pfaff + + * data-file-format.texi: Fix description of "count" in Auxiliary + Variable Parameter Record. Thanks to Oliver Bock + for reporting this bug. Fixes bug #15756. + +Sun Sep 25 16:10:36 2005 Ben Pfaff + + * Makefile.am: Make ni.texi a prereq for HTML output. Thanks to + James R. Van Zandt for reporting the problem. + +Sun Jul 24 18:47:02 2005 Ben Pfaff + + * portable-file-format.texi: Describe author field. + +Sat May 7 17:26:39 WST 2005 John Darrington + + * Makefile.am: Made ni.texi a nodist file + +Wed May 4 08:30:24 2005 Ben Pfaff + + * language.texi: Proofreading from Jason Stover + . + +Tue May 3 16:22:29 WST 2005 John Darrington + + * 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 + + * 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 + + * configuration.texi: Removed manpage(x) style references, because + RMS doesn't like them. + +Wed Apr 27 07:44:57 WST 2005 John Darrington + + * utilities.texi: Added the ECHO command. + +Fri Apr 15 18:35:42 2005 Ben Pfaff + + * 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 + + * expressions.texi: corrected some mismatched parentheses. + +Mon Feb 28 23:19:34 2005 Ben Pfaff + + * expressions.texi: Revise. Describe new functions. + +Sat Jan 8 16:46:28 2005 Ben Pfaff + + * 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 + + * statistics.texi Added documentation about the EXAMINE cmd + +Tue Nov 16 13:18:53 WST 2004 John Darrington + + * 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 + + * Made Makefile.am aware of pspp.texi dependencies + +Fri Nov 5 17:46:46 WST 2004 John Darrington + + * Added a note to the about SPLIT requiring adjacent cases. + +Sat Oct 30 17:32:53 WST 2004 John Darrington + + * 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. diff --git a/doc/automake.mk b/doc/automake.mk index 0ebd8fc5..fa6e8b03 100644 --- a/doc/automake.mk +++ b/doc/automake.mk @@ -60,3 +60,5 @@ install-data-hook:: $(YELP_CHECK) uninstall-hook:: rm -f $(DESTDIR)$(infodir)/pspp.info-[0-9].gz rm -f $(DESTDIR)$(infodir)/pspp.info.gz + +EXTRA_DIST += doc/OChangeLog diff --git a/examples/ChangeLog b/examples/ChangeLog deleted file mode 100644 index 4fd9e0d5..00000000 --- a/examples/ChangeLog +++ /dev/null @@ -1,19 +0,0 @@ -Tue Apr 4 20:19:48 2006 Ben Pfaff - - * automake.mk: Add missing \ to definition. - -Sun Aug 9 11:16:13 1998 Ben Pfaff - - * descriptives.stat: Renamed descript.stat. - -Sat Aug 8 00:28:24 1998 Ben Pfaff - - * New directory. - - * descriptives.stat: New file. - ----------------------------------------------------------------------- -Local Variables: -mode: change-log -version-control: never -End: diff --git a/examples/OChangeLog b/examples/OChangeLog new file mode 100644 index 00000000..4fd9e0d5 --- /dev/null +++ b/examples/OChangeLog @@ -0,0 +1,19 @@ +Tue Apr 4 20:19:48 2006 Ben Pfaff + + * automake.mk: Add missing \ to definition. + +Sun Aug 9 11:16:13 1998 Ben Pfaff + + * descriptives.stat: Renamed descript.stat. + +Sat Aug 8 00:28:24 1998 Ben Pfaff + + * New directory. + + * descriptives.stat: New file. + +---------------------------------------------------------------------- +Local Variables: +mode: change-log +version-control: never +End: diff --git a/examples/automake.mk b/examples/automake.mk index 641e4288..cdbec4bb 100644 --- a/examples/automake.mk +++ b/examples/automake.mk @@ -4,3 +4,5 @@ EXTRA_DIST += \ examples/descript.stat \ examples/regress.stat \ examples/regress_categorical.stat + +EXTRA_DIST += examples/OChangeLog diff --git a/glade/ChangeLog b/glade/ChangeLog deleted file mode 100644 index b6ac4bb2..00000000 --- a/glade/ChangeLog +++ /dev/null @@ -1,25 +0,0 @@ -2007-11-21 John Darrington - - * icons/22x22/psppire-acr.png icons/16x16/psppire-acr.png: New files. - * automake.mk: Install the new icons. - -2007-10-19 John Darrington - - * acr.c (new file) - * psppire.xml: Added entry for PsppireAcr widget - -2007-09-26 Ben Pfaff - - * automake.mk (libglade_psppire_la_CFLAGS): Enable VPATH build by - using $(top_srcdir) in -I directive. - -4/4/2007 John Darrington - - * Seperated psppire-buttonbox into psppire-vbuttonbox and psppire-buttonbox - -Sat Mar 31 07:09:33 WST 2007 John Darrington - - * Added icons directory and its contents. - - * Re-wrote psppire.xml to work with glade 3.2.0, and to know about the - keypad widget. diff --git a/glade/OChangeLog b/glade/OChangeLog new file mode 100644 index 00000000..b6ac4bb2 --- /dev/null +++ b/glade/OChangeLog @@ -0,0 +1,25 @@ +2007-11-21 John Darrington + + * icons/22x22/psppire-acr.png icons/16x16/psppire-acr.png: New files. + * automake.mk: Install the new icons. + +2007-10-19 John Darrington + + * acr.c (new file) + * psppire.xml: Added entry for PsppireAcr widget + +2007-09-26 Ben Pfaff + + * automake.mk (libglade_psppire_la_CFLAGS): Enable VPATH build by + using $(top_srcdir) in -I directive. + +4/4/2007 John Darrington + + * Seperated psppire-buttonbox into psppire-vbuttonbox and psppire-buttonbox + +Sat Mar 31 07:09:33 WST 2007 John Darrington + + * Added icons directory and its contents. + + * Re-wrote psppire.xml to work with glade 3.2.0, and to know about the + keypad widget. diff --git a/glade/automake.mk b/glade/automake.mk index 6021eecd..7827516e 100644 --- a/glade/automake.mk +++ b/glade/automake.mk @@ -46,3 +46,5 @@ libglade_psppire_la_CFLAGS = $(GLADE_UI_CFLAGS) $(GLADE_CFLAGS) \ -I $(top_srcdir)/src/ui/gui -DDEBUGGING libglade_psppire_la_LIBADD = gl/libgl.la + +EXTRA_DIST += glade/OChangeLog diff --git a/lib/ChangeLog b/lib/ChangeLog deleted file mode 100644 index 28c767bd..00000000 --- a/lib/ChangeLog +++ /dev/null @@ -1,54 +0,0 @@ -2008/07/20 John Darrington - - * Removed gsl-extras. Functionality now - available in gsl. - -Sun Jul 31 11:29:04 2005 Ben Pfaff - - * misc/: Removed in favor of gnulib. - - * Makefile.am: (SUBDIRS) Removed misc. - -Wed Mar 9 09:53:50 2005 Ben Pfaff - - * gsl-extras/: New directory. - - * Makefile.am: (SUBDIRS) Add gsl-extras. - -Mon Feb 28 23:20:05 2005 Ben Pfaff - - * julcal/: Removed directory. - - * Makefile.am: (SUBDIRS) Removed julcal. - (DIST_SUBDIRS) Removed. - -Sun Jan 2 21:31:48 2000 Ben Pfaff - - * Makefile.am: (SUBDIRS) Only include gmp if libgmp not installed - on this system already. - -Sun May 31 00:55:51 1998 Ben Pfaff - - * 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 - - * Makefile.am: (SUBDIRS) Remove avllib. - - * avllib/: Removed. - -Wed Dec 24 22:36:50 1997 Ben Pfaff - - * Makefile.am: (SUBDIRS) Add dcdflib. - - * dcdflib: New subdirectory. - ----------------------------------------------------------------------- -Local Variables: -mode: change-log -version-control: never -End: diff --git a/lib/OChangeLog b/lib/OChangeLog new file mode 100644 index 00000000..28c767bd --- /dev/null +++ b/lib/OChangeLog @@ -0,0 +1,54 @@ +2008/07/20 John Darrington + + * Removed gsl-extras. Functionality now + available in gsl. + +Sun Jul 31 11:29:04 2005 Ben Pfaff + + * misc/: Removed in favor of gnulib. + + * Makefile.am: (SUBDIRS) Removed misc. + +Wed Mar 9 09:53:50 2005 Ben Pfaff + + * gsl-extras/: New directory. + + * Makefile.am: (SUBDIRS) Add gsl-extras. + +Mon Feb 28 23:20:05 2005 Ben Pfaff + + * julcal/: Removed directory. + + * Makefile.am: (SUBDIRS) Removed julcal. + (DIST_SUBDIRS) Removed. + +Sun Jan 2 21:31:48 2000 Ben Pfaff + + * Makefile.am: (SUBDIRS) Only include gmp if libgmp not installed + on this system already. + +Sun May 31 00:55:51 1998 Ben Pfaff + + * 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 + + * Makefile.am: (SUBDIRS) Remove avllib. + + * avllib/: Removed. + +Wed Dec 24 22:36:50 1997 Ben Pfaff + + * Makefile.am: (SUBDIRS) Add dcdflib. + + * dcdflib: New subdirectory. + +---------------------------------------------------------------------- +Local Variables: +mode: change-log +version-control: never +End: diff --git a/lib/automake.mk b/lib/automake.mk index 440a8595..6410988b 100644 --- a/lib/automake.mk +++ b/lib/automake.mk @@ -5,3 +5,5 @@ include $(top_srcdir)/lib/linreg/automake.mk if WITHGUI include $(top_srcdir)/lib/gtksheet/automake.mk endif + +EXTRA_DIST += lib/OChangeLog diff --git a/lib/gtksheet/ChangeLog b/lib/gtksheet/ChangeLog deleted file mode 100644 index b5ba1c82..00000000 --- a/lib/gtksheet/ChangeLog +++ /dev/null @@ -1,149 +0,0 @@ -2008-05-08 Ben Pfaff - - 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 - - * 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 - - * 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 - * gtksheet.c gtksheet.h: Corrected some leaks and other problems - related to de-allocating the sheet. - -2008-02-27 John Darrington - * gtksheet.c: (gtk_sheet_expose) Don't queue a redraw on the entry - widget. Fixes bug #21073 - -2008-02-20 John Darrington - - * gtksheet.c gtksheet.h: Removed some unused signals. - Made the models properties of the widget. - -2008-02-08 John Darrington - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * gtksheet.c gtksheet.h (gtk_sheet_get_active_cell): Allowed row, - column to be NULL. - -07 July 2007 John Darrington - - * 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 - - * gtksheet.c gtksheet.h: Removed the autoscroll-on-select feature - that was causing us grief. - -28 June 2007 John Darrington - - * gtksheet.c: Removed some features that we dont use, to get better - speed. - -Sat Feb 17 17:36:56 2007 Ben Pfaff - - * 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 ". - -Mon Jun 19 18:03:21 WST 2006 John Darrington - - * 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 - - * gtksheet.c gtksheet.h: constness. Removed dependence on glib2.10 - -Sat May 27 16:29:36 WST 2006 John Darrington - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * gtksheet.c, gtksheet.h: Fixed broken deallocation of sheet->pixmap. - -Thu May 4 17:55:48 WST 2006 John Darrington - - * gtksheet.c: Added callback on inserted rows. - -Sat Jan 28 08:48:08 2006 UTC John Darrington - - * 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. diff --git a/lib/gtksheet/OChangeLog b/lib/gtksheet/OChangeLog new file mode 100644 index 00000000..b5ba1c82 --- /dev/null +++ b/lib/gtksheet/OChangeLog @@ -0,0 +1,149 @@ +2008-05-08 Ben Pfaff + + 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 + + * 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 + + * 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 + * gtksheet.c gtksheet.h: Corrected some leaks and other problems + related to de-allocating the sheet. + +2008-02-27 John Darrington + * gtksheet.c: (gtk_sheet_expose) Don't queue a redraw on the entry + widget. Fixes bug #21073 + +2008-02-20 John Darrington + + * gtksheet.c gtksheet.h: Removed some unused signals. + Made the models properties of the widget. + +2008-02-08 John Darrington + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * gtksheet.c gtksheet.h (gtk_sheet_get_active_cell): Allowed row, + column to be NULL. + +07 July 2007 John Darrington + + * 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 + + * gtksheet.c gtksheet.h: Removed the autoscroll-on-select feature + that was causing us grief. + +28 June 2007 John Darrington + + * gtksheet.c: Removed some features that we dont use, to get better + speed. + +Sat Feb 17 17:36:56 2007 Ben Pfaff + + * 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 ". + +Mon Jun 19 18:03:21 WST 2006 John Darrington + + * 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 + + * gtksheet.c gtksheet.h: constness. Removed dependence on glib2.10 + +Sat May 27 16:29:36 WST 2006 John Darrington + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * gtksheet.c, gtksheet.h: Fixed broken deallocation of sheet->pixmap. + +Thu May 4 17:55:48 WST 2006 John Darrington + + * gtksheet.c: Added callback on inserted rows. + +Sat Jan 28 08:48:08 2006 UTC John Darrington + + * 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. diff --git a/lib/gtksheet/automake.mk b/lib/gtksheet/automake.mk index c98037ab..babcb2aa 100644 --- a/lib/gtksheet/automake.mk +++ b/lib/gtksheet/automake.mk @@ -27,3 +27,5 @@ lib_gtksheet_libgtksheet_a_SOURCES = \ lib/gtksheet/gtkitementry.c \ lib/gtksheet/gtksheet.c \ lib/gtksheet/gtksheet.h + +EXTRA_DIST += lib/gtksheet/OChangeLog diff --git a/lib/linreg/ChangeLog b/lib/linreg/ChangeLog deleted file mode 100644 index 48fcf319..00000000 --- a/lib/linreg/ChangeLog +++ /dev/null @@ -1,20 +0,0 @@ -Sun Jan 9 00:57 2006 Jason Stover - - * 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 - - * linreg.c: (pspp_linreg) Removed unused variable `mse'. - ----------------------------------------------------------------------- -Local Variables: -mode: change-log -version-control: never -End: diff --git a/lib/linreg/OChangeLog b/lib/linreg/OChangeLog new file mode 100644 index 00000000..48fcf319 --- /dev/null +++ b/lib/linreg/OChangeLog @@ -0,0 +1,20 @@ +Sun Jan 9 00:57 2006 Jason Stover + + * 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 + + * linreg.c: (pspp_linreg) Removed unused variable `mse'. + +---------------------------------------------------------------------- +Local Variables: +mode: change-log +version-control: never +End: diff --git a/lib/linreg/automake.mk b/lib/linreg/automake.mk index d65df864..650646c6 100644 --- a/lib/linreg/automake.mk +++ b/lib/linreg/automake.mk @@ -4,3 +4,5 @@ noinst_LIBRARIES += lib/linreg/liblinreg.a lib_linreg_liblinreg_a_SOURCES = \ lib/linreg/sweep.c lib/linreg/sweep.h + +EXTRA_DIST += lib/linreg/OChangeLog diff --git a/src/ChangeLog b/src/ChangeLog deleted file mode 100644 index bba2afaa..00000000 --- a/src/ChangeLog +++ /dev/null @@ -1,14204 +0,0 @@ -2007-11-03 John Darrington - - * gnumeric-reader.c gnumeric-reader.h: New files. - -Thu May 4 21:47:48 2006 Ben Pfaff - - 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 - - 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 - - * 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 - - 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 - - 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 - - * automake.mk: Removed explicit dependencies for message.o, since - that module no longer exists. - -Wed Apr 26 15:29:45 2006 Ben Pfaff - - 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 - - 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 - - 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 - - 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 - - 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 - - * 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 - - 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 - - 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 - - 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 - - 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 - - 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 - - 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 - - * 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 - - * In many source files, #include "compiler.h" to get GCC attribute - definitions. - -Sat Mar 4 12:28:09 2006 Ben Pfaff - - * 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 - - 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 - - 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 - - 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 - - * 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 - - 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 - - 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 - - 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 - - * font.h: (struct font_set) Removed, because unused. - -Sat Jan 28 17:45:36 2006 Ben Pfaff - - Cleaner (faster?) way to compact cases. - - * dictionary.c: (dict_compact_case) Removed. - (dict_needs_compaction) New function. - (struct copy_map) New structure. - (struct dict_compactor) New structure. - (dict_make_compactor) New function. - (dict_compactor_compact) New function. - (dict_compactor_destroy) New function. - -Sat Jan 28 17:24:22 2006 Ben Pfaff - - Cleanups. - - * data-list.c: Make data_list_source_class static. - (dump_fixed_table) Use fh_get_name() to describe source of data. - (dump_free_table) Ditto. - (cmd_repeating_data) Eliminate special cases for inline file. - - * dictionary.c: (dict_contains_var) Change return value from int to - bool. - (dict_rename_vars) Ditto. - (dict_create_vector) Ditto. - -Sat Jan 28 17:20:50 2006 Ben Pfaff - - Add scratch file handles. - - Now a file handle can refer to a disk file, to an in-memory - structure, or to the "inline" file, instead of just to a disk - file. The introduction of new categories means that special cases - for the inline file in a few places could be eliminated, but it - also means that code that assumed that a handle refers to a file - has to check for that. - - Also, now file handles can be freed, so code now must be sure not - to access a handle after closing it (with fh_close()). - - * Makefile.am: Add any-reader.c, any-reader.h, any-writer.c, - any-writer.h, scratch-handle.c, scratch-handle.h, - scratch-reader.c, scratch-reader.h, scratch-writer.c, - scratch-writer.h to pspp_SOURCES. - - * any-reader.c: New file. - - * any-reader.h: New file. - - * any-writer.c: New file. - - * any-writer.h: New file. - - * scratch-handle.c: New file. - - * scratch-handle.h: New file. - - * scratch-reader.c: New file. - - * scratch-reader.h: New file. - - * scratch-writer.c: New file. - - * scratch-writer.h: New file. - - * aggregate.c: Use an any_writer instead of an sfm_writer, to add - flexibility. - - * apply-dict.c: Use an any_reader instead of an sfm_reader, to add - flexibility. - - * command.def: Add CLOSE FILE HANDLE command. - - * dfm-reader.c: Now fewer special cases for inline file. - (static var inline_open_cnt) Removed. - (static var inline_file) Removed. - (dfm_close_reader) Eliminate a special case for inline file. - Reorganize to avoid access-after-free. - (dfm_open_reader) Eliminate a special case for inline file. - (read_inline_record) Use bool instead of int. No need to - increment line number. - (read_file_record) Use bool instead of int. - (read_record) Check whether file handle is inline file, instead of - for null pointer. - (dfm_eof) Ditto. - (dfm_expand_tabs) Ditto. - (dfm_push) Ditto. - (dfm_pop) Ditto. - (cmd_begin_data) Fix inaccurate check for whether the inline file - is in use--now we can tell by checking whether the inline file's - open count is positive. - - * file-handle-def.c: (struct file_handle) Reorder members. Add - `deleted' member. Add `referent' member. Add `sh' member. - (static var default_handle) New variable. - (static var inline_file) New variable. - (fh_init) Initialize inline file. - (free_handle) New function. - (fh_done) Rewrite. - (fh_from_name) Don't return deleted handles. - (fh_from_filename) Ditto. - (fh_create) Removed. - (create_handle) New function. - (fh_create_file) New function. - (fh_create_scratch) New function. - (fh_inline_file) New function. - (fh_free) Rewrite. - (fh_open) Now requires a referent type mask and verifies it. All - references updated. - (fh_close) If open_cnt goes to 0 on a deleted handle, free it. - (fh_is_open) New function. - (fh_get_referent) New function. - (fh_get_filename) Limit to handles that refer to files. - (fh_get_mode) Ditto. - (fh_get_record_width) Limit to handles that refer to files or the - inline file. - (fh_get_tab_width) Ditto. - (fh_get_scratch_handle) New function. - (fh_set_scratch_handle) New function. - (fh_get_default_handle) New function. - (fh_set_default_handle) New function. - - * file-handle.h: (enum fh_referent) New type. - (enum fh_mode) Rename MODE_TEXT to FH_MODE_TEXT, MODE_BINARY to - FH_MODE_BINARY, and update all usages. - - * file-handle.q: Add "scratch" as a possible mode. - (cmd_file_handle) Mention CLOSE FILE HANDLE in error message. - Use lex_end_of_command(), lex_sbc_missing(). Support creating - scratch handles. - (cmd_close_file_handle) New function. - (referent_name) New function. - (fh_parse) Now takes a referent type mask to specify handles that - can be accepted. Updated all references. - - * filename.c: (fn_extension) New function. - - * get.c: Use any_reader and any_writer and thereby merge code that - has been duplicated for each kind of file. Also, we had something - here called `any_writer' before, so its name had to be changed to - `case_writer'. - (enum operation) Removed, because unused. - (struct get_pgm) Removed. - (get_pgm_free) Removed. - (get_source_destroy) Removed. - (get_source_read) Removed. - (global var get_source_class) Removed. - (static var case_reader_source_class) Removed. - (enum reader_command) New enum. - (struct case_reader_pgm) New struct. - (parse_read_command) New function. - (case_reader_pgm_free) New function. - (case_reader_source_destroy) New function. - (case_Reader_source_Read) New function. - (cmd_get) Rewrote as a call to parse_read_command(). - (cmd_import) Ditto. - (struct any_writer) Rename to case_writer. Drop `writer_type', - `writer' members in favor of an `any_writer' member named - `writer'. - (any_writer_destroy) Rename case_writer_destroy. Use - any_writer_close(). - (parse_write_command) Allow scratch files. Use any_writer. - (any_writer_write_case) Rename case_writer_write_case(). Use - any_writer_write(). -` (struct mtf_file) Use any_reader. - (cmd_match_files) Allow scratch files. Use any_reader. - (mtf_free_file) Use any_reader_close(). - (mtf_read_nonactive_records) Use any_reader_read(). - (mtf_processing) Use any_reader_read(). - (struct import_pgm) Removed. - (import_pgm_free) Removed. - (import_source_destroy) Removed. - (import_source_read) Removed. - (global var import_source_class) Removed. - - * glob.c: (global var default_handle) Removed. Replaced all - references by fh_get_default_handle() or fh_set_default_handle(). - - * pfm-read.c: (static var portable_to_local) Moved from inside - read_header() to top level. - (pfm_detect) New function. - - * pfm-write.c: (pfm_write_case) Make case argument const. - Reorganize to avoid access-after-free. - - * print.c: (dump_table) Use fh_get_name() to describe source of - data. - - * sfm-read.c: (sfm_close_reader) Reorganize to avoid - access-after-free. - (sfm_detect) New function. - - * str.c: (str_lowercase) New function. - - * vfm.c: Use new compaction interface. - (static var compaction_necessary) Removed. - (static var compactor) New variable. - (open_active_file) Initialize compactor. - (write_case) Use compactor. - (close_active_file) Free compactor. - -Wed Jan 11 19:28:39 2006 Ben Pfaff - - Clean up file handle code in preparation to add scratch file - handles. - - * file-handle-def.c: Lots of formatting cleanup. Added function - comments. - (struct file_handle) Renamed `length' member - to `record_width'. All references updated. - (fh_init) New function. Moved here from file-handle.q. - (fh_done) New function. Moved here from file-handle.q and - rewrote. - (get_handle_with_name) Renamed fh_from_name(). - (get_handle_for_filename) Renamed fh_from_filename(). - (create_file_handle) Renamed fh_create(). Changed to take a - `struct fh_properties' instead of discrete values. Updated all - references. - (create_file_handle_with_defaults) Removed. Updated all - references to use fh_create() with fh_default_properties(). - (fh_default_properties) New function. - (destroy_file_handle) Removed. The code is now in fh_done(). - (handle_get_name) Renamed fh_get_name(). - (handle_get_filename) Renamed fh_get_filename(). - (handle_get_record_width) Renamed fh_get_record_width(). - (handle_get_tab_width) Renamed fh_get_tab_width(). - - * file-handle-def.h: Formatting, comment fixes. - (enum file_handle_mode) Renamed struct fh_mode. - (struct fh_properties) New structure. - (fh_init) Move prototype here from file-handle.h. - (fh_done) Ditto. - (fh_close) Ditto. - - * file-handle.q: (static var handle_list) Removed. - (fh_parse) Don't add handle to handle_list, because - file-handle-def.c has its own list. - (fh_init) Moved to file-handle-def.c. - (fh_done) Ditto. - -Sun Jan 9 01:09 Jason Stover - - * regression.q: (run_regression) Moved coefficient initialization - to the linreg library. Altered other functions accordingly. - -Sat Jan 7 13:30:54 WST 2006 John Darrington - - * command.c data-in.c main.c: Fixed bug which crept in when - separating getl from readline. - - * vars-atr.c value-labels.h: Fixed constness of val_labs_count. - -Fri Dec 23 20:59:01 WST 2005 John Darrington - - * getl.c error.c: Separated file_loc functionality from error.c - -Mon Dec 19 14:01:56 WST 2005 John Darrington - - * format.c: Additional error checking. - * getl.[ch]: Separated into getl.c and readln.c - * settings.[ch]: Made CC_CNT public - -Fri Dec 16 09:11:48 WST 2005 John Darrington - - * examine.q: Fixed buglet when cleaning up at end of procedure. - -Tue Dec 13 22:34:42 2005 Ben Pfaff - - Move global initialization and cleanup code into main.c. - Remove vestigial log infrastructure. - Minor related cleanups. - - * command.c: (shell) When execl() fails, use _exit(), not - err_hcf(). - - * error.c: (err_hcf) Move into main.c, rename terminate(). All - callers updated. - (err_done) New function with just the error.c-specific code for - err_hcf(). Called by terminate(). - - * glob.c: Removed all Borland C, DJGPP cruft. - (init_glob) Merged into main(). - (done_glob) Merged into terminate(). - (get_date) Removed. - (get_start_date) New function. All users of curdate updated to call - this function instead. - - * lexer.c: (lex_init) Moved initialization of tokstr here, from - init_glob(). - (lex_done) Moved destruction of tokstr here, from done_glob(). - - * main.c: (global var pgmname) Removed. Changed all references to - program_name, which is defined by gnulib. - (global var curdate) Removed. - (main) Moved init_glob() code here. Merged parse_script() in - here. - (parse_script) Removed. - (terminate) Moved err_hcf() here from error.c and renamed - terminate(). Merged done_glob() code in here. Call err_done(). - All callers updated. - (i18n_init) New function. - (fpu_init) New function. - - * output.c: (outp_init) Make void. - (init_default_drivers) New function. - (outp_read_devices) If no drivers are initialized successfully, - call init_default_drivers() to initialize a default driver. - (outp_done) Make void. - (static var prog) Make const. - (parse_options) Make parameter const. - (colon_tokenize) Make return value const. - (configure_driver) Change prototype to take a broken-down driver - configuration instead of a line of text. - (configure_driver_line) New function that does what - configure_driver() did before. - - * q2c.c: (global var pgmname) Rename program_name. - - * settings.c: (settings_init) Renamed from init_settings(). - (settings_done) Renamed from done_settings(). - - * vfm.c: (global var last_vfm_invocation) Make static. - (vfm_last_invocation) New function. All references to - last_vfm_invocation update to call this. - (procedure) Call update_last_vfm_invocation(). - (internal_procedure) Ditto. - (update_last_vfm_invocation) New function. - -Sat Dec 10 23:30:19 2005 Ben Pfaff - - Separate random numbers from other settings because of GSL - dependency. - - * Makefile.am: Add random.c, random.h to sources. - - * glob.c: (init_glob) Call random_init(). - (done_glob) Call random_done(). - - * settings.c: (static var rng) Move to random.c. - (done_settings) Move freeing of RNG to random_done(). - (get_rng) Move to random.c - (set_rng) Ditto. - - * random.c: New file. - - * random.h: New file. - -Sat Dec 10 18:13:36 2005 Ben Pfaff - - Separate settings and the SET command, for modularity. - - * Makefile.am: Add settings.c to sources. - - * glob.c: (global variable test_mode) Removed. - - * set.q: Remove all the set_* variables. Remove a lot of obsolete - SPSS/PC+ settings. Remove the aux_*() routines. Moved the - get_*() functions into settings.c. Rewrite the settings code and - functions to call the new set_*() functions. Rewrite custom - currency parsing. Write new by-hand cmd_show(). - - * esttings.c: New file. Moved the get_*() functions here from - set.q. Created new set_*() functions to correspond with them. - Regularized the names and types of some functions and updated - their callers. Added static, file-scope variables to support the - settings. - - * q2c.c: Remove "aux" support, which was only needed by set.q. - -Sun Nov 27 06:43:46 WST 2005 John Darrington - - * data-out.c format.h: Added return value to data_out function. - - * value-labels.c: Fixed bug in val_labs_remove. - -Sat Nov 5 18:37:26 2005 Ben Pfaff - - * Makefile.am: Remove devind.c, devind.h from list of source - files. - - * devind.c: Removed. - - * devind.h: Removed. - - * list.q: Removed "support" for devind. - - * output.c: Don't add devind class. - -Sat Nov 5 18:21:00 2005 Ben Pfaff - - * var.h: (struct variable) Make `init', `reinit' bool values. - Rearrange fields. - -Fri Nov 4 19:43:01 2005 Ben Pfaff - - * recode.c: Rewrote whole file, as clean-up. - -Fri Nov 4 19:37:50 2005 Ben Pfaff - - * pool.c: Don't make alignment exception for x86. - (pool_alloc) Return null for 0-size blocks. - (pool_alloc_unaligned) New function. - (pool_strndup) Removed. Changed callers to use pool_clone_unaligned(). - (pool_clone_unaligned) New function. - (pool_strdup) Use pool_clone_unaligned(). - - * var.h: (enum var_type) Give the NUMERIC, ALPHA enum this name. - (struct variable) Use `enum var_type' for `type'. - - * vars-atr.c: (var_type_adj) New function. - (var_type_noun) New function. - - * vars-prs: (parse_mixed_vars) Fix freeing code. - (parse_mixed_vars_pool) New function. - -Wed Nov 2 21:24:48 2005 Ben Pfaff - - * file-handle-def.c: Needed another #include, to avoid missing - prototype warning. - - * file-handle.q: (cmd_file_handle) Declarations must precede - statements. Free parse data on success as well as on failure, to - avoid memory leak. - - * get.c: (parse_write_command) Destroy dict on success, to avoid - memory leak. - - * data-list.c: (cmd_repeating_data) Fix usage of saw_occurs, - saw_length, saw_continued, saw_id, which were boolean but - incorrectly treated as bitmaps as result of a previous - half-finished cleanup. - - * weight.c: (struct weight_trns) Unused, so removed. - - * Makefile.am: Add range-prs.h to sources. - -Wed Nov 2 21:24:15 2005 Ben Pfaff - - DO IF, LOOP cleanup. - - * Makefile.am: Add ctl-stack.c, ctl-stack.h to source files. - Reformat source file list to list one file per file, so that - patches for future changes will be easier to read. - - * ctl-stack.c, ctl-stack.h: New files. - - * do-if.c: Rewrote whole file. - - * do-ifP.h: Removed. - - * loop.c: Rewrote whole file. - - * glob.c: (global var ctl_stack) Move into ctl-stack.c. - - * temporary.c: (cmd_temporary) Use ctl_stack_is_empty(). - - * vfm.c: (open_active_file) Use ctl_stack_clear(). - -Wed Nov 2 21:18:13 2005 Ben Pfaff - - New pool functions. - - * pool.c: (pool_create_at_offset) New function. - (pool_add_subpool) New function. - - * pool.h: (pool_create_container) New macro. - - * expressions/parse.c: (expr_parse_pool) New function. - - * autorecode.c: (recode) Use pool_create_container(). - - * count.c: (cmd_count) Ditto. - -Wed Nov 2 19:59:32 2005 Ben Pfaff - - Clean up transformations, by getting rid of `struct trns_header', - replacing it by `struct transformation' that has a void * - `private' member. Updated all uses of transformations to match, - which was a lot of code. Only major related changes listed below. - - * compute.c: (cmd_if) Use get_proc_func(). - (cmd_compute) Use get_proc_func(). - (get_proc_func) New function. - - * glob.c: (global var m_trns) Change type to size_t. - (global var n_trns) Ditto. - (global var f_trns) Ditto. - (global var t_trns) Change type to struct transformation *. - - * var.h: (struct trns_header) Removed. - (struct transformation) New. - (typedef trns_proc_func) Takes a void * instead of a struct - trns_header *. - (typedef trns_free_func) Ditto. - - * vfm.c: (execute_transformations) Takes an array of - transformations instead of trns_headers. - (add_transformation) Change prototype from (trns_header *) to - (trns_proc_func *, trns_free_func *, void *). - (next_transformation) New function. - -Sat Oct 29 16:25:36 2005 Ben Pfaff - - * count.c: Major cleanups. Rename practically everything. - Rewrite much of the code. Use pools for memory management. Use - the new parse_num_range(). - - * mis-val.c: (cmd_missing_values) Use the new parse_num_range(). - (parse_number) Removed. - - * missing-values.c: (mv_add_num_range) Don't add out-of-order - ranges, e.g. where low > high. - - * pool.c: (pool_2nrealloc) New function. - - * range-prs.c: New file. - (parse_num_range) New function. - (parse_number) New function. - -Fri Oct 28 22:47:48 2005 Ben Pfaff - - Fix up potential overflows in size calculations by replacing - instances of pool_alloc(p, x * sizeof *y) by pool_malloc(p, x, - sizeof *y) everywhere I could find them. Similarly by - pool_malloc(), pool_realloc(). - (Order is important: pool_alloc(p, sizeof *y, x) will divide by 0 - if x is 0.) - - * pool.c: (pool_nalloc) New function. - (pool_nmalloc) New function. - (pool_nrealloc) New function. - -Thu Oct 27 11:16:53 WST 2005 John Darrington - - Separated the definition of a file handle object from the stuff - pertaining to the FILE HANDLE command. - - * file-handle-def.[ch]: New files. - - * dfm-read.c file-handle.h file-handle.q - -Tue Oct 25 21:56:23 2005 Ben Pfaff - - Fix up potential overflows in size calculations by replacing - instances of xmalloc(x * sizeof *y) by xnmalloc(x, sizeof *y) - everywhere I could find them. Similarly by xrealloc(), malloc(). - (Order is important: xnmalloc(sizeof *y, x) will divide by 0 if x - is 0.) - - * alloc.c: (nmalloc) New function. - (out_of_memory) Removed. Replaced references by xalloc_die(). - - * sort.c: (allocate_cases) Fix segfault if memory allocation - fails. - - * subclist.c: (subc_list_double_create) Use xnmalloc() instead of - malloc(). - (subc_list_double_push) Use xnrealloc() instead of realloc(). - -Wed Oct 26 08:43:51 WST 2005 John Darrington - - Dictionary abstraction part #2 - - * algorithm.c format.c str.c sysfile-info.c val.h var.h vars-atr.c: - Removed unnecessary #include directives - -Mon Oct 24 21:35:08 2005 Ben Pfaff - - * groff-font.c (font_msg): Use err_vmsg() instead of incorrectly - trying to pass a va_list to tmsg(). Thanks to Jason Stover for - reporting this bug. - -Mon Oct 24 21:24:15 2005 Ben Pfaff - - Work to get rid of GCC 4.0 warnings, part 2. - - In many files, change `unsigned char' to `char'. This often - requires adding casts to functions. - - * data-in.c: (parse_A) Use buf_copy_rpad(). - - * str.c: (str_copy_buf_trunc) New function. - - * value-labels.c: (value_to_string) Fix mistaken use of strncpy(), - by rewriting. - -Mon Oct 24 13:42:32 WST 2005 John Darrington - - Moved some definitions to make it easier to abstract a dictionary - from the rest of PSPP. - - * format-prs.c lex-def.[ch]: New files. - - * Makefile.am lexer.[ch] dictionary.c vars-atr.c vfm.c algorithm.c - format.c: Moved some functions between modules. - -Sun Oct 23 19:28:08 2005 Ben Pfaff - - Work to get rid of GCC 4.0 warnings, part 1. - - In many files, change count parameters to parse_variables(), - etc. from `int' to `size_t'. Also change related variables and - struct members. Also change messages as needed (e.g. %d to %u - with cast to unsigned). Also change arithmetic as necessary - (e.g. n >= m - 1 to n + 1 >= m). - - * crosstabs.q: (crs_custom_tables) Check for size_t overflow in - multiplication. - - * q2c.c: (dump_declarations) Generate code for size_t instead of - int. - -Thu Oct 20 18:18:40 2005 Ben Pfaff - - * output.c: (outp_read_devices) Fix message. - -Sat Sep 17 11:13:13 2005 Ben Pfaff - - * matrix-data.c: (cmd_matrix_data) Change type of variable whose - address is passed to dict_get_vars() from size_t to int to match - John's change below. - - * modify-vars.c: (validate_var_modification) Ditto. - -Mon Sep 12 19:26:06 WST 2005 John Darrington - - * dictionary.[ch] Changed cnt from size_t* to int* since that's - what it's called as, and on x86_64 machines they're different sizes. - - * str.c: (ds_vprintf) Copied va_list args so they can be re-used - -Sun Aug 21 00:12:24 2005 Ben Pfaff - - * lexer.c: (lex_sbc_only_once) New function. - (lex_sbc_missing) New function. - -Sun Aug 21 00:00:47 2005 Ben Pfaff - - * case.h: (case_str) Make it return `unsigned char'. - -Sat Aug 20 23:56:14 2005 Ben Pfaff - - Revamp SAVE, XSAVE, EXPORT. Add (or at least parse) all the - subcommands that we didn't support. Fix bug 13911. Fix bug - reported by Adam Pierson (COMPRESSED and other subcommands didn't - work on SAVE). Refactor all related code. - - * command.def: Add XEXPORT command. - - * dictionary.c: (dict_delete_scratch_vars) New function. - - * get.c: (cmd_get) Fix parsing. - (struct save_trns) Removed. - (cmd_save_internal) Removed. - (cmd_save) Removed. - (do_write_case) Removed. - (save_write_case_func) Removed. - (save_trns_proc) Removed. - (save_trns_free) Removed. - (trim_dictionary) Removed. - (struct export_proc) Removed. - (cmd_export) Rewrote. - (export_write_case_func) Removed. - (export_proc_free) Removed. - (enum writer_type) New enum. - (enum command_type) New enum. - (struct any_writer) New struct. - (any_writer_destroy) New function. - (parse_write_command) New function. - (any_writer_write_case) New function. - (parse_output_proc) New function. - (output_proc) New function. - (cmd_save) Rewrote. - (cmd_xsave) Rewrote. - (struct output_trns) New struct. - (parse_output_trns) New function. - (output_trns_proc) New function. - (output_trns_free) New function. - (cmd_xsave) Rewrote. - (cmd_xexport) New function. - (parse_dict_trim) New function. - (struct mtf_proc) Change `by_cnt' member type to `int'. - (cmd_import) Rewrote. - - * pfm-write.c: (struct pfm_writer) Add `digits' member. - (pfm_writer_default_options) New function. - (pfm_open_writer) Add `opts' argument and handle options. - (write_float) Write only as many digits as `digits' member says. - (format_trig_double) Limit base-10 precision to LDBL_DIG. - - * pfm-write.h: (enum pfm_type) Moved here from pfm-read.h. - (struct pfm_write_options) New struct. - - * sfm-write.c: (sfm_writer_default_options) New function. - (sfm_open_writer) Remove `compress', `omit_long_names' args. Add - `opts' argument. Implement options. - - * sfm-write.h: (struct sfm_write_options) New struct. - - * expressions/helpers.c: (copy_string) Make `old' arg `unsigned - char *' instead of `char *'. - -Sat Aug 6 21:29:15 2005 Ben Pfaff - - * factor_stats.c: Needed included earlier. - - * percentiles.c: Needed to include . - - * val.h: Don't include "config.h". - -Sat Aug 6 21:26:27 2005 Ben Pfaff - - Clean up treatment of missing values by moving all the code into - one place. All references to the missing value function were - updated, but only major changes are detailed below. - - * Makefile.am: Add missing-values.c, missing-values.h to sources. - - * apply-dict.c: (cmd_apply_dictionary) Use mv_resize(). - - * dictionary.c: (dict_create_var) Initialize `miss' member with - mv_init(). - (dict_clone_var) Copy `miss' member with mv_copy(). - - * get.c: (mtf_merge_dictionary) Use mv_copy(). - - * missing-values.c: New file. - - * missing-values.h: New file. - - * mis-val.c: Rewrite. New version implements updated semantics. - - * pfm-read.c: (read_variables) Rewrite missing value handling. - - * pfm-write.c: (write_variables) Rewrite missing value handling. - - * sfm-read.c: (read_variables) Rewrite missing value handling. - - * sfm-write.c: (write_variable) Rewrite missing value handling. - - * sfmP.h: Include "magic.h" to get definition of - second_lowest_value. - - * sysfile-info.c: (describe_variable) Rewrite missing value - handling. - - * val.h: Include "magic.h" to get definition of - second_lowest_value. - - * var.h: Include "missing-values.h". Drop MISSING_* enums. - (struct variable) Remove `miss_type', `missing'. Add `miss'. - - * vars-atr.c: (is_num_user_missing) Removed--use - mv_is_num_user_missing(). - (is_str_user_missing) Removed--use mv_is_str_user_missing(). - (is_system_missing) Removed--use mv_is_value_system_missing(). - (is_missing) Removed--use mv_is_value_missing(). - (is_user_missing) Removed--use mv_is_value_user_missing(). - -Sun Jul 31 14:09:57 2005 Ben Pfaff - - Adopt use of gnulib for portability. - - * Make.build: Add $(top_srcdir)/gl and $(top_builddir)/gl to - include path. - - * Makefile.am: Remove bool.h, stat.h and change getline.[ch] to - getl.[ch] in pspp_SOURCES. Remove libmisc, add libgl in - pspp_LDADD. - - * In many source files, added an explicit inclusion of gettext.h - and definition of _ macro. These are no longer in pref.h because - it interfered with definitions in a few gnulib source files. - - * In many source files, changed #include "bool.h" to #include - , which is provided by gnulib. - - * alloc.c: Removed functions defined in gnulib: - (xmalloc) Removed. - (xcalloc) Removed. - (xrealloc) Removed. - (xstrdup) Removed. - (out_of_memory) Redefined as wrapper for xalloc_die(). - - * alloc.h: Replace prototypes by #include "xalloc.h". - - * casefile.c: Use full_read() and full_write() from gnulib instead - of our home-grown versions. - (full_read) Removed. - (full_write) Removed. - - * getline.c: Renamed getl.c. - - * getline.h: Renamed getl.h, updated all references. - - * filename.c: (fn_readlink) Change to wrapper around xreadlink() - from gnulib. - - * glob.c: Just #include instead of the crazy rigmarole - here before. - (init_glob) Call set_program_name() to initial gnulib progname - module. - - * html.c: (postopen) Use getlogin_r(), gethostname() from gnulib. - - * permissions.c: Use "stat-macros.h" from gnulib. - - * postscript.c: Just #include instead of the crazy - rigmarole here before. - - * q2c.c: (main) Make generated code #include "gettext.h". - - * str.h: Get rid of most explicit declarations of standard - functions, in favor of including gnulib header files. - - * expressions/evaluate.c: Ditto. - - * expressions/operations.h.pl: Make generated code #include - , not "bool.h". - -Sat Jul 30 23:13:17 2005 Ben Pfaff - - * expressions/parse.c: (validate_function_args) Fix two msg() bugs - found by -Wformat. - -Sat Jul 30 23:10:01 2005 Ben Pfaff - - * expressions/evaluate.c: (expr_debug_print_postfix) Don't pass - null pointer to printf for %.*s. - -Sat Jul 30 23:05:33 2005 Ben Pfaff - - * vars-atr.c: (var_is_valid_name) Fix three msg() bugs found by - -Wformat. - -Sat Jul 30 22:58:33 2005 Ben Pfaff - - * rank.q: (parse_rank_function) Fix msg() bug found by -Wformat. - -Sat Jul 30 22:56:12 2005 Ben Pfaff - - * postscript.c: (postopen) Cast `char' to `unsigned char' before - passing to isspace(). - -Sat Jul 30 22:52:09 2005 Ben Pfaff - - * pfm-read.c: (read_variables) Fix msg() bug found by -Wformat. - -Sat Jul 30 22:50:57 2005 Ben Pfaff - - * histogram.c: Include . - -Sat Jul 30 22:48:50 2005 Ben Pfaff - - * get.c: (cmd_match_files) Fix msg() bug found by -Wformat. - -Sat Jul 30 22:46:10 2005 Ben Pfaff - - * format.c: (check_common_specifier) Fix msg() bug found by - -Wformat. - (check_output_specifier) Ditto. - -Sat Jul 30 22:43:57 2005 Ben Pfaff - - * file-handle.q: (cmd_file_handle) Fix msg() bug found by - -Wformat. - -Sat Jul 30 22:41:44 2005 Ben Pfaff - - * data-in.c: (parse_Z) [WORDS_BIGENDIAN] Don't declare buf[], to - avoid "unused variable" warning. - -Sat Jul 30 22:38:46 2005 Ben Pfaff - - * command.c: (find_word) Cast `char' to `unsigned char' before - passing to isspace(). - -Sat Jul 30 22:36:29 2005 Ben Pfaff - - * case.c: (case_compare) Implement as delegating to - case_compare_2dict(). - -Sat Jul 30 22:34:18 2005 Ben Pfaff - - * algorithm.c: Inclusion of is unneeded. - -Sat Jul 30 22:01:32 2005 Ben Pfaff - - * Make.build: Don't append -ansi to AM_CFLAGS for GCC. Using - -ansi changes the behavior of header files significantly. It - causes __STRICT_ANSI__ to be defined, and some headers interpret - that as cause to e.g. not use `long long' or __attribute__. The - former example is bad when off_t is supposed to be `long long', - and the latter prevents -Wformat from working. - -Sun Jul 24 20:26:59 2005 Ben Pfaff - - Get rid of dependency on libgmp by writing our own routine for - floating-point base conversion. - - * pfm-write.c: (write_float) Rewrote. - (write_int) Rewrote. - (pow30_nonnegative) New function. - (pow30) New function. - (trig_to_char) New function. - (format_trig_digits) New function. - (recurse_format_trig_int) New function. - (format_trig_int) New function. - (should_round_up) New function. - (try_round_up) New function. - (format_trig_double) New function. - -Sun Jul 24 18:49:20 2005 Ben Pfaff - - * data-in.c: (parse_numeric) Allow "1+23" even for F format, for - compatibility. - -Sun Jul 24 18:47:37 2005 Ben Pfaff - - * pfm-read.c: (read_version_data) Read and ignore author field. - -Wed Jul 6 20:44:27 2005 Ben Pfaff - - * get.c: (mtf_processing) Don't assume that - mtf_compare_BY_values() always returns -1, 0, or 1. Actually, it - returns a negative, zero, or positive result. Fixes MATCH FILES - bug on Mac OS X reported by "Marshall DeBerry" . - -Mon Jul 4 18:01:15 2005 Ben Pfaff - - * flip.c: [HAVE_SYS_TYPES_H] Really include . The - preprocessor test for sys/types.h was accidentally inverted. This - was bug 12789. - -Sun Jul 3 22:47:39 2005 Ben Pfaff - - * get.c: (cmd_match_files) Fix memory leak on `by' and on - `vfm_source'. - - * getline.c: [HAVE_LIBREADLINE] (read_console) Fix memory leak on - `line'. - - * vfm.c: (close_active_file) Remove unnecessary test. - -Sun Jul 3 21:45:32 2005 Ben Pfaff - - Fix NDEBUG compile errors. - - * hash.h: Needed explicit #include . - - * linked-list.c: (ll_next) First arg is UNUSED when NDEBUG is - defined. - -Sun Jun 12 23:44:38 2005 Ben Pfaff - - Implement embedding for PostScript driver. Fixes bug 12970. - - * ascii.c: Fix compiler warnings. - - * html.c: Ditto. - - * chart.h: Add `file' member. - - * output.h: (struct outp_class) initialise_chart, finalise_chart - should take outp_driver *, not outp_class *. Update all - references. - - * plot-chart.c: (chart_create) Fix segfault when there are no - output drivers at all. - (chart_submit) Call d->class->finalise_chart. - - * postscript.c: (ps_open_page) Set cp_y to 0. - (ps_submit) New function. - (ps_chart_initialise) Implement. - (ps_chart_finalise) Implement. - (static var postscript_class) Add ps_submit. - (static var epsf_class) Add ps_submit. - - -Sun Jun 12 14:54:40 2005 Ben Pfaff - - Did some more work on bug 12859 and then realized that a *good* - solution would require some fundamental restructuring. For now, - I'm marking REPEATING DATA unimplemented, and then we can revisit - it post-0.4.0. - - * command.def: Make REPEATING DATA unimplemented. - - * data-list.c: (cmd_repeating_data) Assume inline file is 80 - characters wide. - (realize_value) Revert previous changes; no longer needed. - Updated all callers. - - * error.c: (err_hcf) Set nfile_loc, mfile_loc to 0 after freeing - file_loc, to avoid bad references later. - - * str.c: Fix typo. - -Tue Jun 7 00:14:09 2005 Ben Pfaff - - Make some code tolerant of reentry. Should not be needed if other - code is correct but it is good to be generally tolerant. - - * error.c: (err_hcf) Set file_loc to null after free(). - - * output.c: (outp_done) Similar changes. - - * str.c: (ds_destroy) Ditto. - -Tue Jun 7 00:10:20 2005 Ben Pfaff - - Continue work on bug 12859, plus some code cleanup. - - * data-list.c: (cmd_repeating_data) Replace `seen' bitmap by - boolean variables. Don't try to compute starts_end, cont_end for - inline file. Calculate length only after parsing variable - specifications. Add proper transformation to list. - (realize_value) If the rpd_num_or_var has no value, return new - DEFAULT_MEMBER argument (for use with inline file). - (repeating_data_trns_proc) Pass default values. - - * dfm-read.c: (dfm_close_reader) Only skip data if *not* still - open, and only if we actually started reading data. - -Sun Jun 5 18:39:36 2005 Ben Pfaff - - Fix bug 11894. - - * output.c: (outp_read_devices) Fix message. - -Fri May 27 12:34:43 WST 2005 John Darrington - - * sort-prs.[ch] (newfiles), aggregate.c, sort.[ch]: Separated the guts - of the sort algorithm from the parser for the SORT command. - - * rank.q: Added the parser for the RANK command. - -Thu May 26 12:29:21 2005 Ben Pfaff - - Fix bug 13192. - - * sort.c: (sort_parse_criteria) Only set *saw_direction if - saw_direction is non-null. Thanks to John Darrington for - reporting this bug. - -Tue May 24 21:52:55 2005 Ben Pfaff - - * get.c: (mtf_processing) Handle case of a lookup table as the - active file. Thanks to John Darrington for reporting this bug. - -Wed May 25 10:27:02 WST 2005 John Darrington - - * alloc.c alloc.h: (xcalloc) changed signature to imitate the - POSIX calloc function. - - * crosstabs.q get.c vars-prs.c: Updated calls to xcalloc to - reflect new signature. - - * sfm-read.c: Now much more robust in the face of badly formed - system files. - -Mon May 23 11:57:31 WST 2005 John Darrington - - *sfm-read.c: Fixed some bugs regarding long string continuation - records, which the previous fix uncovered. - -Sat May 21 12:48:34 WST 2005 John Darrington - - * sfm-read.c, sfmP.h: Allow reading of system files when the - case_size value in the header is -1. Also changed some Errors to - Warnings when reading system files. - -Tue May 17 21:00:57 2005 Ben Pfaff - - * data-list.c: (data_list_trns_free) Don't free the argument - because cancel_transformations() will do that itself. - (data_list_source_destroy) Destroy the argument to - data_list_trns_free(), because it no longer does so itself. - -Tue May 17 18:29:35 2005 Ben Pfaff - - * data-out.c: (format_and_round) Don't output leading `-' if value - rounds to zero. - -Tue May 17 00:06:43 2005 Ben Pfaff - - Fix bug 11119. - - * som.c: (output_encodings) If some cell in the table won't fit - with the horizontal or vertical headers, cancel those headers. - - * som.h: (struct som_table_class) Add fits_width, fits_length, - set_headers members. - - * tab.c: (tabi_fits_width) New function. - (tabi_fits_length) New function. - (tabi_set_headers) New function. - (global var tab_table_class) Add the new functions as appropriate - members. - -Mon May 16 22:34:06 2005 Ben Pfaff - - Fix rest of bug 13054. - - * format.def: Fix EDATE, SDATE, ADATE, JDATE, QYR, MOYR, WKYR, - DATETIME, TIME system/portable file values. - -Mon May 16 22:31:15 2005 Ben Pfaff - - * data-list.c: (parse_free) Use make_input_format(). - - * data-out.c: (num_to_string) Use make_output_format(). - - * dictionary.c: (dict_create_var) Ditto. - - * format.c: (global var f8_2) New var. - (make_input_format) New function. - (make_output_format) New function. - - * get.c: (cmd_match_files) Use make_output_format(). - - * list.q: (cmd_list) Ditto. - - * matrix-data.c: Ditto. - - * sfm-read.c: (parse_format_spec) Check output specifier - thoroughly. - - * tab.c: (tab_float) Use make_output_format(). - -Sun May 15 23:38:10 2005 Ben Pfaff - - Fix more of bug 13054. - - * format.def: FMT_A should allow 255-character output. FMT_AHEX - should allow 510-character input and output. - - * data-out.c: (num_to_string) Get rid of NEW_STYLE option. - (convert_E) Handle non-finite values. - (try_F) Rewrite. - (format_and_round) New function. - (convert_infinite) New function used by try_F() and convert_E(). - -Sun May 15 23:36:55 2005 Ben Pfaff - - Regularize string and buffer function names so that they make some - kind of sense. - - * str.c: (mm_reverse) Rename buf_reverse(). Update all - references. - (mm_find_reverse) Rename buf_find_reverse(). Update all - references. - (mm_case_compare) Rename buf_compare_case(). Update all - references. - (st_compare_pad) Rename buf_compare_rpad(). Update all - references. - (str_compare_rpad) New function. - (st_bare_pad_copy) Rename buf_copy_str_rpad(). Update all - references. - (buf_copy_str_lpad) New function. - (st_bare_pad_len_copy) Rename buf_copy_rpad(). Update all - references. - (st_pad_copy) Rename str_copy_rpad(). Update all references. - (st_trim_copy) Rename str_copy_trunc(). Update all references. - (st_uppercase) Renamed str_uppercase(). Update all references. - -Sat May 14 08:22:26 WST 2005 John Darrington - - * dfm-read.c: Fixed polarity of test in dfm-close-reader. Closes - Bug #13082 - -Tue May 10 20:08:18 2005 Ben Pfaff - - * data-in.c: (data_in) Add assertion to check input specifier. - - * data-out.c: (data_out) Add assertion to check output specifier. - -Tue May 10 19:56:35 2005 Ben Pfaff - - Start to fix bug 13054. - - * format.c: (check_input_specifier) Improve error message. - (check_input_specifier) Check F, COMMA, and DOLLAR formats for - valid decimal places. - (check_output_specifier) Ditto (but different criteria). - (convert_fmt_ItoO) Assert valid input and output specifiers. - Also, if input specifier has *any* decimal places, make the output - specifier 1 place wider. - -Mon May 9 07:14:29 WST 2005 John Darrington - - * sysfile-info.c: Fixed bug [# 13024 ] - -Sun May 8 13:52:12 2005 Ben Pfaff - - "Fix" bug 13021 by disabling FILE TYPE. Eventually, we should - actually implement it. - - * command.c: (FILE_TYPE_okay) Always return 1. - - * command.def: Change FILE TYPE, END FILE TYPE into UNIMPL. - - * file-type.c: Add prototypes to get rid of warnings. - -Sun May 8 08:08:07 WST 2005 John Darrington - - * barchart.c box-whisker.c cartesian.c piechart.c plot-hist.c: Fixed - more ISO/IEC 9899:1990 conformance issues. - -Wed May 4 23:54:02 2005 Ben Pfaff - - Fix bug 12948. See also new test in - tests/bugs/match-file-scratch.sh. - - * get.c: (mtf_merge_dictionary) Don't compact dictionary because - that deletes scratch variables that someone else might be using, - and because we can't reassign our sources' value indexes. - Instead, simply don't copy scratch variables into the master - dictionary. - - * dictionary.c: (dict_compact_values) Delete variables from the - dictionary passed in, not from default_dict (!). - -Tue May 3 22:25:17 2005 Ben Pfaff - - Improve hash.c comments, error-checking. - - * hash.c: (struct hsh_table) [NDEBUG] Add hash_ordered member. - (hsh_create) size == 0 should *not* return NULL! Set - hash_ordered. - (hsh_clear) Set hash_ordered. - (locate_matching_entry) Check hash_ordered. - (hsh_rehash) Rename rehash(). Add assertion. Set hash_ordered. - (hsh_data) Set hash_ordered. Add const-ness to return value and - update all callers. - (hsh_sort) Ditto. - -Wed May 4 08:50:11 WST 2005 John Darrington - - * casefile.c: Removed unnecessary #include - -Tue May 3 19:14:48 WST 2005 John Darrington - - * copyleft.c: Updated copyright date. - - * Makefile.am: Removed erroneous explicit "-lplot" - - * examine.q oneway.q: Made these files conform to ISO/IEC 9899:1990 - -Tue May 3 16:20:31 WST 2005 John Darrington - - * command.c command.def: Added description string for unimplemented commands. - - * oneway.q: Sorted the hash tables before shipping out the results. Closes - bug [#12931]. - -Mon May 2 23:45:01 2005 Ben Pfaff - - Code improvements. - - * data-list.c: (parse_fixed) Use lex_end_of_command(). - (parse_free) Ditto. - (cmd_repeating_data) Set cont_end.num in right situations. - (parse_repeating_data) Remove redundant test. - -Mon May 2 23:37:19 2005 Ben Pfaff - - Partial fix for bug 12859. - - * data-list.c: (cmd_data_list) Add transformation properly in - vfm_source == NULL case. - -Mon May 2 23:27:28 2005 Ben Pfaff - - * lexer.c: (lex_error) Improve error messages. - -Mon May 2 22:28:17 2005 Ben Pfaff - - * get.c: (cmd_match_files) Check token type before trying to match - tokid. Fixes bug 12923. - -Mon May 2 22:16:51 2005 Ben Pfaff - - * flip.c: [HAVE_SYS_TYPES_H] Include . Fixes bug - 12789. - -Mon May 2 22:02:52 2005 Ben Pfaff - - * expressions/generate.pl: (get_token) Make use of /g - backward-compatible with Perl 5.6.1. - -Sun May 1 23:00:19 2005 Ben Pfaff - - * var-display.c: (cmd_variable_alignment) Fix memory leak. - (cmd_variable_level) Ditto. - -Sun May 1 22:49:04 2005 Ben Pfaff - - Hash table had buggy deletion function. The fix required changing - other functions to do probing in the required order. - - * hash.c: (locate_matching_entry) Rewrite and change interface. - (hsh_rehash) Rewrite to use locate_matching_entry(). - (hsh_probe) Ditto. - (hsh_find) Ditto. - (hsh_delete) Ditto. Also, fix stupid bugs. - -Sun May 1 22:24:58 2005 Ben Pfaff - - * dictionary.c: (dict_clone) Properly copy vectors. - -Sun May 1 22:07:58 2005 Ben Pfaff - - New implementation of long variable names. Each variable has a - "normal" name, which may be up to 64 bytes long and which is used - for all normal operations. Variables may have a "short" name, - which is limited to 8 bytes and used only for system and portable - file input and output. - - Make tokid case-preserving. Update most uses of tokid to treat it - case-insensitively. - - Update many commands to deal with long variable names. - - * autorecode.c: (cmd_autorecode) Use strcasecmp() instead of strcmp(). - - * command.c: (cmd_parse) Ditto. - (match_strings) Use toupper() before comparing characters. - (conflicting_3char_prefixes) Use mm_case_compare() instead of - memcmp(). - (cmd_match_words) Ditto. - - * compute.c: (lvalue_parse) Use st_trim_copy() instead of - strncpy(). - - * count.c: (struct cnt_var_info) Change n[] to fit long var name. - Use st_trim_copy() instead of strcpy(). - - * data-in.c: (parse_enum) Use mm_case_compare() instead of - memcmp(). - - * data-list.c: (struct dls_var_spec) Change name[] to fit long var - name. - (parse_free) Use st_trim_copy() instead of strcpy(). - - * descript.c: (struct dsc_var) Change z_name[] to fit long var - name. - (try_name) Use strcasecmp() instead of strcmp(). - (generate_z_varname) Use st_trim_copy() instead of strcpy(). - (descriptives_compare_dsc_vars) Use strcasecmp() instead of - strcmp(). - - * dictionary.c: (struct dictionary) Removed `long_name_tab' - member. - (compare_long_names) Removed. - (hash_long_name) Removed. - (dict_create) Don't initialize `long_name_tab' member. - (dict_clone) Copy short names into new dictionary. - (dict_clear) Don't clear `long_name_tab' member. - (dict_get_varname_block) Removed. - (dict_add_longvar_entry) Removed. - (free_nte) Removed. - (dict_destroy) Don't destroy `long_name_tab' member. - (dict_create_var_from_short) Removed. - (dict_create_var_x) Removed. - (dict_create_var) Get rid of longname handling. - Clear short name. - (dict_clone_var) Get rid of longname parameter and longname - handling. - (dict_lookup_var) Get rid of longname handling. - (dict_reorder_var) New function. - (dict_rename_var) Clear short name. - (dict_rename_vars) Get rid of longname handling. Clear short - names. - (dict_create_vector) Support long vector names. - (dict_lookup_vector) Use strcasecmp() instead of strcmp(). - (quasi_base27) Removed. - (make_short_name) Removed. - (compare_strings) New function. - (hash_string) New function. - (dict_assign_short_names) New function. - - * file-handle.q: (get_handle_with_name) Use strcasecmp() instead - of strcmp(). - (get_handle_for_filename) Support long handle names. - - * file-type.c: (struct col_spec) Make `name' fit long var names. - (cmd_file_type) Use strcasecmp() instead of strcmp(). - - * flip.c: (make_new_var) Rewrite. - (flip_sink_write) Use st_trim_copy() instead of strncpy(). - - * format.c: (parse_format_specifier_name) Use mm_case_compare() - instead of memcmp(). - - * get.c: (cmd_save_internal) Rephrase. - (rename_variables) Drop test for identical variable name. - (struct mtf_proc) Change `first', `last' to fit long var name. - - * hash.c: (hsh_hash_case_string) New function for case-insensitive - string hashing. - - * lexer.c: (restore_token) Use st_trim_copy() instead of - strncpy(). - (lex_get) Don't uppercase string when copying into tokid. - (lex_put_back_id) Use st_trim_copy() instead of - strncpy(). - - * list.q: (determine_layout) Consider length of variable names in - choosing vertical layout. - - * matrix-data.c: (cmd_matrix_data) Use strcasecmp() instead of - strcmp(). - (string_to_content_type) Ditto. - - * modify-vars.c: (compare_variables_given_ordering) Ditto. - (struct var_renaming) Change `new_name' to fit long var name. - (compare_var_renaming_by_new_name) Use strcasecmp() instead of - strcmp(). - - * pfm-read.c: (read_variables) Disallow system variables in system - files. - (write_variables) Call dict_assign_short_names() and use - short_name[] members. - - * repeat.c: (internal_cmd_do_repeat) Use strcasecmp() instead of - strcmp(). - - * sfm-read.c: (sfm_open_reader) Rewrite code for long variable - map. Reorder variables into same order as long variable map. - (read_variables) Set short name. - - * sfm-write.c: (sfm_open_writer) Call dict_assign_short_names(). - (write_variable) Use st_bare_pad_copy(). - (write_longvar_table) Rewrite. - - * str.c: (mm_case_compare) New function. - - * sysfile-info.c: (compare_vectors_by_name) Use strcasecmp() - instead of strcmp(). - - * t-test.q: (tts_custom_groups) Remove redundant test. - (tts_custom_pairs) Ditto. - - * var.h: (struct variable) Change `name' to fit long var names. - Remove `longname'. Add `short_name' member. Reorder some - variables. - (struct name_table_entry) Removed. - (struct vector) Change `name' to fit long vector names. - - * vars-atr.c: (var_is_valid_name) Allow long var names. - (compare_var_names) Use strcasecmp() instead of strcmp(). - (compare_var_ptr_names) Ditto. - (hash_var_name) Use hsh_hash_case_string(). - (hash_var_ptr_name) Ditto. - (var_set_short_name) New function. - (var_clear_short_name) New function. - (var_set_short_name_suffix) New function. - - * vars-prs.c: (parse_DATA_LIST_vars) Support long names. - Use strcasecmp() instead of strcmp(). - (struct array_var_set) Removed `longname_tab'. - (array_var_set_lookup_var_idx) Drop longname_tab support. - (array_var_set_destroy) Don't destroy `longname_tab'. - (var_set_create_from_array) Don't create `longname_tab'. - - * vector.c: (cmd_vector) Use strcasecmp() instead of strcmp(). - Support long names. - - * expressions/parse.c: (word_matches) Use mm_case_compare() - instead of memcmp(). - (compare_strings) New function. - (lookup_function) Use compare_strings() instead of strcmp(). - -Sun May 1 22:07:43 2005 Ben Pfaff - - * algorithm.c: (move_element) New function. - -Sun May 1 22:05:35 2005 Ben Pfaff - - * aggregate.c: (parse_aggregate_functions) Always initialize - destvar. - -Sun May 1 22:03:47 2005 Ben Pfaff - - * aggregate.c: (cmd_aggregate) Use dict_clone_var_assert(). - - * dictionary.c: (dict_clone) Ditto. - (dict_clone_var_assert) New function. - - * get.c: (mtf_merge_dictionary) Use dict_clone_var_assert(). - -Sun May 1 15:05:54 WST 2005 John Darrington - - * error.c: Added a string for the compiler version to the - request_bug_report_and_abort function. - - * groff_font.c, font.c: Removed manpage(1) style references from - comments, because RMS frowns upon them. - -Thu Apr 28 18:52:06 2005 Ben Pfaff - - * expressions/parse.c: Improve previous fix for bug 12858 (LAG). - -Fri Apr 29 09:28:00 WST 2005 John Darrington - - * expressions/parse.c: Added handler for OP_LAG_Vn and OP_LAG_Vs. - Fixed bug [#12858] . - -Wed Apr 27 12:42:34 WST 2005 John Darrington - - * loop.c recode.c repeat.c: Fixed a couple of instances of SHORT_NAME_LEN - which should be LONG_NAME_LEN - -Wed Apr 27 07:43:50 WST 2005 John Darrington - - * command.def echo.c: Added the ECHO command. - -Mon Apr 25 22:55:59 2005 Ben Pfaff - - Finish fixing MATCH FILES (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 - - 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 - - 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 - - * dictionary.c vars-prs.c sfm-write.c: Fixed some memory leaks - -Sun Apr 17 23:08:15 2005 Ben Pfaff - - 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * misc.h: Remove GCC specializations. - -Mon Mar 14 21:07:23 2005 Ben Pfaff - - 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 - - * cmdline.c: (static var testing_mode) Move into - parse_command_line(). - -Mon Mar 14 21:05:13 2005 Ben Pfaff - - * 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 - - * file-handle.q: (struct file_handle) `open_mode' should not be - const. - -Sun Mar 13 22:40:54 2005 Ben Pfaff - - 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 - - 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 - - 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 - - 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 - - * t-test.q: Fixed erroneous logic in compare_group_binary. - -Sat Mar 12 13:29:21 2005 Ben Pfaff - - * split-file.c: (cmd_split_file) Ignore LAYERED and SEPARATE - keywords (bug 11628). - -Sat Mar 12 13:17:12 2005 Ben Pfaff - - * 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 - - * 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 - - Thanks to Ben Kujala 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 - - * 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 - - * expressions/evaluate.c: (cmd_debug_evaluate) Fix memory leaks. - - * expressions/parse.c: (no_match) Ditto. - -Wed Mar 9 09:54:27 2005 Ben Pfaff - - * 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 - - * 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 - - * data-in.c: Use `bool' throughout, where relevant. - -Sun Mar 6 19:52:22 2005 Ben Pfaff - - 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 - - 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 - - * expressions/operations.def: (NUMBER) Use DI_IMPLIED_DECIMALS. - -Sun Mar 6 19:33:24 2005 Ben Pfaff - - * 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 - - * 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 - - * 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 - - * 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 - - * expressions/parse.c: (expr_parse) Fix parameter type. Thanks to - John Darrington for reporting this - bug. - -Thu Mar 3 22:10:25 WST 2005 John Darrington - - * 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 - - * Makefile.am : Fixed up CLEANFILES target. - -Mon Feb 28 23:49:56 2005 Ben Pfaff - - * 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 - - 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - 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 - - 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 - - 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 - - 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 - - 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * aggregate.c: Initialised the complete agr_proc structure. - Closes bug #11675 - - -Sun Jan 23 23:02:21 2005 Ben Pfaff - - * 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 - - * 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 - - * 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 - - * t-test.q examine.q : More memory leaks fixed. - -Tue Jan 18 19:26:59 WST 2005 John Darrington - - * examine.q factor_stats.[ch] get.c pfm-read.c: Plugged numerous - memory leaks. - -Mon Jan 10 14:43:45 WST 2005 John Darrington - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 for - reporting the bug. - -Wed Jan 5 22:42:26 WST 2005 John Darrington - - * case.h Fixed bug # 11307 - -Wed Jan 5 08:30:48 WST 2005 John Darrington - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * factor_stats.c Fixed calculation of trimmed mean under various - special conditions. - -Sat Dec 4 17:14:45 WST 2004 John Darrington - - * 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 - - * 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 - - * 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 - - * flip.c: (flip_file) If fseeko() is not available, use long int - for off_t. Thanks to "Marshall DeBerry" for - reporting the problem. - -Mon Nov 29 12:20:59 WST 2004 John Darrington - - * 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 - - * 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 - - * 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 - - 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 - - * expr-evl.c: (expr_evaluate) Fix XDATE.JDAY formula. Thanks to - John Darrington for reporting this - bug. - -Tue Nov 16 13:19:18 WST 2004 John Darrington - - * permissions.c command.def Added the PERMISSIONS command - -Mon Nov 15 01:33:32 2004 Ben Pfaff - - * q2c.c: (dump_header) Don't try to emit #includes at very top of - output file because that will precede #include , which - is bad. - (main) Add needed headers to /* (header) */ code. - -Mon Nov 15 01:21:36 2004 Ben Pfaff - - 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 - - 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 - - * 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 - - 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 - - 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 - - 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 - - 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 - - * 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 - - * 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 - - * examine.q Added some of the parametric calculations - - * factor_stats.[ch] Created - -Sat Nov 6 21:24:31 WST 2004 John Darrington - - * 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 - - * examine.q Fixed problem where examine wasn't dealing properly with - splits - -Sat Nov 6 14:49:47 WST 2004 John Darrington - - * oneway.q Fixed problem where oneway wasn't dealing properly with - splits - -Thu Nov 4 11:09:01 WST 2004 John Darrington - - * 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 - - * 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 - - * 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 - - * 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 - - * descript.c: (cmd_descriptives) Remove harmless but bogus test in - STATISTICS parsing. - -Mon May 31 20:45:24 2004 Ben Pfaff - - 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 - - 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 - - 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 - - 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 - - * 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 - - * 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 - - 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 - - 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 - - * matrix.c: Dead code. Removed. - - * matrix.h: Dead code. Removed. - -Fri Apr 16 23:59:51 2004 Ben Pfaff - - 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 - - * 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 - - 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 - - * Makefile.am (pspp_SOURCES): Remove debug.c. - - * debug.c: Removed. It was empty anyway. - -Fri Apr 9 20:04:49 2004 Ben Pfaff - - * descript.c (calc_descriptives): Fix assert failure when only - MOMENT_MEAN is needed. - -2004-04-09 Michael Kiefte - - * 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 - - * 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 - - * main.c: Fixed configuration problems with gsl - - * t-test.q: Fixed some problems encountered when compiling under Cygwin - -2004-04-03 blp - - * lexer.c, ChangeLog: - Fix infinite loop on comment at end of file, add test. - -2004-04-03 jmd - - * 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 - - * lexer.c: (lex_skip_comment) Handle end-of-file correctly (I - hope). - -Sat Apr 3 15:00:18 WST 2004 John Darrington - - * 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 - - * 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 - - * 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 - - * 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 - - * descript.c: (cmd_descriptives) Free `vars' to avoid memory leak. - -Mon Mar 29 16:26:40 2004 Ben Pfaff - - * 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 - - * 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 - - 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 - - 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 - - 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 - - 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 - - * dictionary.c: (dict_compact_values) Compacted values need to - start off from 0. - -Fri Mar 26 00:54:57 2004 Ben Pfaff - - * 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 - - 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 - - * error.c: (err_assert_fail) msg variable needs to be non-const. - -Fri Mar 26 00:17:24 2004 Ben Pfaff - - * debug.c: (cmd_debug_evaluate) Rewrite. - -Fri Mar 26 00:15:13 2004 Ben Pfaff - - 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 - - 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 - - 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 - - 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * expr-evl.c: (expr_evaluate) Assert that `c' is nonzero before - using it. - -Sat Mar 20 15:18:16 2004 Ben Pfaff - - 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 - - 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 - - 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 - - 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 - - * 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 - - * pfm-write.c: (bufwrite) Write out the correct element for string - variables. From Andreas Streichardt . - -Mon Mar 15 20:48:03 2004 Ben Pfaff - - 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 - - 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 - - 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 - - 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 - - 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 - - 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 - - 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 - - * 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 - - 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 - - * 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 - - * 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 - - 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 - - * 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 - - * format.c: (parse_format_specifier_name) Fix brown-bag bug - introduced in last check-in. - -Tue Mar 9 23:10:41 2004 Ben Pfaff - - * 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 - - 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 - - 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 - - * main.c: (main) sigaction()'s sa_flags member was uninitialized. - Just use signal() instead. - -Wed Mar 3 09:26:30 2004 Ben Pfaff - - 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 - - * 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 - - * 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 needed to call free(). - - * aggregate.c: (parse_aggregate_functions) Make `function' - variable const. - -Tue Mar 2 11:30:56 2004 Ben Pfaff - - 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 - - * 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 - - 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 - - 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 - - Increase warning level. - - * Makefile.am: (AM_CFLAGS) Remove -Wnouninitialized. - -Sat Feb 21 17:38:58 WST 2004 John Darrington - - * main.c: Added a signal handler for SIGSEGV requesting a bug report. - -Fri Feb 20 23:22:14 2004 Ben Pfaff - - * 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 - - * 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 - - 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 - - * vfm.c: (procedure) Add check to prevent recursive call. - -Wed Feb 18 21:48:54 WST 2004 John Darrington - - * 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 - - * 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 - - * 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 - - * 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 - - 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 - - * 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 - - 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 - - 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 - - * var.h: (struct variable) Update comments. - -Sun Feb 15 23:14:59 2004 Ben Pfaff - - 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 - - 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 - - * pfm-write.c: (bufwrite) Get rid of nasty cast that also invoked - undefined behavior. - -Thu Feb 12 23:35:15 2004 Ben Pfaff - - 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 - - * 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 - - 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 - - * 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 - - * 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 - - * t-test.q: Added calculations for the one sample variant of the T-TEST - -Tue Feb 3 20:09:54 2004 Ben Pfaff - - * 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 - - * 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 - - * 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 - - * 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 - - 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 - - * 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 - - * Fixed bug where FREQ would crash on alpha values - -Tue Dec 30 22:42:57 2003 Ben Pfaff - - * 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 - - * ascii.c: (ascii_option) Fix implementation of headers option. - -Tue Dec 30 22:32:53 2003 Ben Pfaff - - * 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 - - * Removed redundant code from output.h - -Sat Dec 27 22:17:52 2003 Ben Pfaff - - 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 - - * var.h: (struct freq_tab_set) Removed (not used). - -Sat Dec 27 22:15:21 2003 Ben Pfaff - - * value-labels.c: (val_labs_destroy) vls needs to be freed too. - -Sat Dec 27 22:10:49 2003 Ben Pfaff - - * stats.c: (hypercube) Rename pow4(). All references updated. - -Sat Dec 27 22:05:49 2003 Ben Pfaff - - * rename-vars.c: (cmd_rename_variables) Rewritten. - (compare_name) Removed. - -Sat Dec 27 22:03:51 2003 Ben Pfaff - - 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 - - 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 - - * 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 - - * get.c: (export_write_case_func) Remove debug printing code. - -Sat Dec 27 21:11:09 2003 Ben Pfaff - - * 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 - - 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 - - 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 - - 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 - - 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 - - * 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 - - 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 - - * 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 - - 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 - - * 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 - - * 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 - - * 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 - - 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 - - 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 - - * 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 - - 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 - - * algorithm.c (binary_search): Fix comparison. - -Fri Dec 19 23:27:45 2003 Ben Pfaff - - * algorithm.c: (binary_search) Fix assertion. - -Fri Dec 19 21:31:48 2003 Ben Pfaff - - * sysfile-info.c: (compare_vectors_by_name) Rewrite. - -Fri Dec 19 21:30:24 2003 Ben Pfaff - - * sort.c: (compare_case_lists) Rewrite. - -Fri Dec 19 16:44:22 2003 Ben Pfaff - - * 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 - - * postscript.c: (int_2_compare) Rewrite. - (compare_line) Rewrite. - -Fri Dec 19 16:38:35 2003 Ben Pfaff - - * 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 - - * matrix-data.c (compare_variables_by_mxd_vartype): Rewrite. - -Fri Dec 19 15:54:45 2003 Ben Pfaff - - * 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 - - * 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 - - 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 - - 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 - - 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 - - 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 - - * 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 - - 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 - - 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 - - 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 - - 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 - * added a calculation of the mode to FREQUENCIES - -Wed Dec 17 12:53:01 WAST 2003 John Darrington - - * moved (un)defs of DEBUGGING to config.h - -Mon Dec 15 21:35:59 2003 Ben Pfaff - - * 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 - - * 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 . - - * 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 - - 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 - - * 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 - - * 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 - - * 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 - - * 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 - - Using alphanumeric variables in functions under AGGREGATE - segfaulted. Fixed. Thanks to Dr. Dirk Melcher - 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 - - Under certain circumstances, the final case would be omitted from - the results of an AGGREGATE operation. Fixed. Thanks to Dr. Dirk - Melcher 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 - - 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 - - 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 - - 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 - - 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 - - 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 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 - - * Makefile.cygwin: New file supplied by Hankin - for compilation with Cygnus Windows B20. Not used by other - systems. - -Sat May 29 20:36:04 1999 Ben Pfaff - - SORT always sorted in ascending order. Fixed. Thanks to Dr. Dirk - Melcher 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 - - 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 - - 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 - - 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 - - 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 - - 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 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 - - The TABLE subcommand on MATCH FILES worked only erratically at - best. This fixes it. Thanks to Dr. Dirk Melcher - 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 - - VARIABLE LABELS rejected a slash before the first variable - specification, contradicting the documentation. Thanks to Walter - M. Gray 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 - - Because of an incorrect optimization in memory allocation, - CROSSTABS sometimes segfaulted when asked to output multiple - tables. Thanks to Walter M. Gray 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 - - CROSSTABS didn't display value labels for column and row - variables. Thanks to Walter M. Gray 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 - - WRITE didn't write line ends. Fixed. Thanks to Dr. Dirk Melcher - 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 - - 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 - - MATCH FILES should set numeric values not available to the - system-missing value, not to 0. Thanks to Dr. Dirk Melcher - 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 - - KEEP didn't work properly on the SAVE procedure. Fixed. Thanks - to Ralf Geschke 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 - - 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 - - Some systems didn't like the way open_file was coded. Thanks to - Hankin 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 - - The SAVE procedure didn't save long string variables properly. - Fixed by this patch. Thanks to Hankin - 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 - - 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 - - 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 - - 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 for this - bug report. - - * list.q: (determine_layout) Allocate 1022 bytes instead of 256. - -Tue Jan 5 13:34:34 1999 Ben Pfaff - - Typo meant string format specifiers weren't checked properly. I - think that Hankin 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 - - Using $CASENUM in an expression didn't work. Here's a fix. - Thanks to Dirk Melcher 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 - - 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 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 - - 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 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 - - 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 - - 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 - - * 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 - . 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 . - - * 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 . - (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 - . - - * print.c: Needed to include alloca.h. Reported by Micah Altman - . - - * 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 . - -Thu Feb 5 00:18:21 1998 Ben Pfaff - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - . - - * get.c: (cmd_get, cmd_save_internal) Allow extraneous slash - before file specification on GET, SAVE, XSAVE. Bug reported by Dr - Eberhard W Lisse . - - * q2c.c: [!HAVE_STRERROR] Include misc/strerror.c, not - strerror.c. Bug reported by Alexandre Oliva - . - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - . 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 - - * 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 - . 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * sfm-write.c, vfm.c: [HAVE_UNISTD] #include , needed by - SunOS4. From Alexandre Oliva . - -Wed Oct 8 18:55:24 1997 Ben Pfaff - - * vfm.c: (page_to_disk) Added missing local variables. - -Tue Oct 7 20:23:17 1997 Ben Pfaff - - * 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 - - * Makefile.am: (INCLUDES) Include .. instead of $(top_srcdir). - - * common.h: (macro strerror) Remove. From Alexandre Oliva - . - - * 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 - . - - * set.q: #undef ON and OFF. From Alexandre Oliva - . - - * 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 . - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 before . - - * frequencies.q: (custom_grouped, add_percentile) Don't use a - non-constant expression as an argument to sizeof. - - * glob.c: [__WIN32__ && __BORLANDC__] When including , - 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 - - 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 - - * 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 #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 with . - -Thu Jul 10 22:13:53 1997 Ben Pfaff - - * 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 - - * 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 - - * 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 - - * get.c: Comment fix. - (cmd_save_internal) Always passes GTSV_OPT_SAVE option. - -Wed Jun 25 22:52:28 1997 Ben Pfaff - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 . - Comment fixes. - -Sun Jun 1 12:02:06 1997 Ben Pfaff - - * 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 - - * 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 - - * ascii.c, postscript.c, sfm-read.c, sfm-write.c, sort.c: Include - . 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 - - * 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 - - * 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 - - * 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 - - * postscript.c: Comment fix. - (ps_open_page) Puts scale factor in PostScript output. - -Sat Apr 26 11:49:32 1997 Ben Pfaff - - * Makefile.am: Distcleans q2c. - -Wed Apr 23 21:33:48 1997 Ben Pfaff - - * 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 - - * 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 - - * 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 - - 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 . - (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 . - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 and - 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * output.c: (outp_read_devices) Changed criteria for - distinguishing different types of lines. - -Fri Sep 20 22:52:28 1996 Ben Pfaff - - * 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 - - * 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 - - * 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 - - * 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 `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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 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 - - * 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 - - * approx.h: #includes . - - * 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 - - * 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 - - 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 - - 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 - - * 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 - - * 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 - - * 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 - - * data-out.c: Changed `#include ' 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 - - * 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 - - * 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 - - * 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 - - [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 - - * 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 - - * 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 - - * 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: diff --git a/src/OChangeLog b/src/OChangeLog new file mode 100644 index 00000000..bba2afaa --- /dev/null +++ b/src/OChangeLog @@ -0,0 +1,14204 @@ +2007-11-03 John Darrington + + * gnumeric-reader.c gnumeric-reader.h: New files. + +Thu May 4 21:47:48 2006 Ben Pfaff + + 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 + + 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 + + * 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 + + 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 + + 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 + + * automake.mk: Removed explicit dependencies for message.o, since + that module no longer exists. + +Wed Apr 26 15:29:45 2006 Ben Pfaff + + 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 + + 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 + + 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 + + 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 + + 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 + + * 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + * 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 + + * In many source files, #include "compiler.h" to get GCC attribute + definitions. + +Sat Mar 4 12:28:09 2006 Ben Pfaff + + * 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 + + 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 + + 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 + + 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 + + * 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 + + 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 + + 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 + + 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 + + * font.h: (struct font_set) Removed, because unused. + +Sat Jan 28 17:45:36 2006 Ben Pfaff + + Cleaner (faster?) way to compact cases. + + * dictionary.c: (dict_compact_case) Removed. + (dict_needs_compaction) New function. + (struct copy_map) New structure. + (struct dict_compactor) New structure. + (dict_make_compactor) New function. + (dict_compactor_compact) New function. + (dict_compactor_destroy) New function. + +Sat Jan 28 17:24:22 2006 Ben Pfaff + + Cleanups. + + * data-list.c: Make data_list_source_class static. + (dump_fixed_table) Use fh_get_name() to describe source of data. + (dump_free_table) Ditto. + (cmd_repeating_data) Eliminate special cases for inline file. + + * dictionary.c: (dict_contains_var) Change return value from int to + bool. + (dict_rename_vars) Ditto. + (dict_create_vector) Ditto. + +Sat Jan 28 17:20:50 2006 Ben Pfaff + + Add scratch file handles. + + Now a file handle can refer to a disk file, to an in-memory + structure, or to the "inline" file, instead of just to a disk + file. The introduction of new categories means that special cases + for the inline file in a few places could be eliminated, but it + also means that code that assumed that a handle refers to a file + has to check for that. + + Also, now file handles can be freed, so code now must be sure not + to access a handle after closing it (with fh_close()). + + * Makefile.am: Add any-reader.c, any-reader.h, any-writer.c, + any-writer.h, scratch-handle.c, scratch-handle.h, + scratch-reader.c, scratch-reader.h, scratch-writer.c, + scratch-writer.h to pspp_SOURCES. + + * any-reader.c: New file. + + * any-reader.h: New file. + + * any-writer.c: New file. + + * any-writer.h: New file. + + * scratch-handle.c: New file. + + * scratch-handle.h: New file. + + * scratch-reader.c: New file. + + * scratch-reader.h: New file. + + * scratch-writer.c: New file. + + * scratch-writer.h: New file. + + * aggregate.c: Use an any_writer instead of an sfm_writer, to add + flexibility. + + * apply-dict.c: Use an any_reader instead of an sfm_reader, to add + flexibility. + + * command.def: Add CLOSE FILE HANDLE command. + + * dfm-reader.c: Now fewer special cases for inline file. + (static var inline_open_cnt) Removed. + (static var inline_file) Removed. + (dfm_close_reader) Eliminate a special case for inline file. + Reorganize to avoid access-after-free. + (dfm_open_reader) Eliminate a special case for inline file. + (read_inline_record) Use bool instead of int. No need to + increment line number. + (read_file_record) Use bool instead of int. + (read_record) Check whether file handle is inline file, instead of + for null pointer. + (dfm_eof) Ditto. + (dfm_expand_tabs) Ditto. + (dfm_push) Ditto. + (dfm_pop) Ditto. + (cmd_begin_data) Fix inaccurate check for whether the inline file + is in use--now we can tell by checking whether the inline file's + open count is positive. + + * file-handle-def.c: (struct file_handle) Reorder members. Add + `deleted' member. Add `referent' member. Add `sh' member. + (static var default_handle) New variable. + (static var inline_file) New variable. + (fh_init) Initialize inline file. + (free_handle) New function. + (fh_done) Rewrite. + (fh_from_name) Don't return deleted handles. + (fh_from_filename) Ditto. + (fh_create) Removed. + (create_handle) New function. + (fh_create_file) New function. + (fh_create_scratch) New function. + (fh_inline_file) New function. + (fh_free) Rewrite. + (fh_open) Now requires a referent type mask and verifies it. All + references updated. + (fh_close) If open_cnt goes to 0 on a deleted handle, free it. + (fh_is_open) New function. + (fh_get_referent) New function. + (fh_get_filename) Limit to handles that refer to files. + (fh_get_mode) Ditto. + (fh_get_record_width) Limit to handles that refer to files or the + inline file. + (fh_get_tab_width) Ditto. + (fh_get_scratch_handle) New function. + (fh_set_scratch_handle) New function. + (fh_get_default_handle) New function. + (fh_set_default_handle) New function. + + * file-handle.h: (enum fh_referent) New type. + (enum fh_mode) Rename MODE_TEXT to FH_MODE_TEXT, MODE_BINARY to + FH_MODE_BINARY, and update all usages. + + * file-handle.q: Add "scratch" as a possible mode. + (cmd_file_handle) Mention CLOSE FILE HANDLE in error message. + Use lex_end_of_command(), lex_sbc_missing(). Support creating + scratch handles. + (cmd_close_file_handle) New function. + (referent_name) New function. + (fh_parse) Now takes a referent type mask to specify handles that + can be accepted. Updated all references. + + * filename.c: (fn_extension) New function. + + * get.c: Use any_reader and any_writer and thereby merge code that + has been duplicated for each kind of file. Also, we had something + here called `any_writer' before, so its name had to be changed to + `case_writer'. + (enum operation) Removed, because unused. + (struct get_pgm) Removed. + (get_pgm_free) Removed. + (get_source_destroy) Removed. + (get_source_read) Removed. + (global var get_source_class) Removed. + (static var case_reader_source_class) Removed. + (enum reader_command) New enum. + (struct case_reader_pgm) New struct. + (parse_read_command) New function. + (case_reader_pgm_free) New function. + (case_reader_source_destroy) New function. + (case_Reader_source_Read) New function. + (cmd_get) Rewrote as a call to parse_read_command(). + (cmd_import) Ditto. + (struct any_writer) Rename to case_writer. Drop `writer_type', + `writer' members in favor of an `any_writer' member named + `writer'. + (any_writer_destroy) Rename case_writer_destroy. Use + any_writer_close(). + (parse_write_command) Allow scratch files. Use any_writer. + (any_writer_write_case) Rename case_writer_write_case(). Use + any_writer_write(). +` (struct mtf_file) Use any_reader. + (cmd_match_files) Allow scratch files. Use any_reader. + (mtf_free_file) Use any_reader_close(). + (mtf_read_nonactive_records) Use any_reader_read(). + (mtf_processing) Use any_reader_read(). + (struct import_pgm) Removed. + (import_pgm_free) Removed. + (import_source_destroy) Removed. + (import_source_read) Removed. + (global var import_source_class) Removed. + + * glob.c: (global var default_handle) Removed. Replaced all + references by fh_get_default_handle() or fh_set_default_handle(). + + * pfm-read.c: (static var portable_to_local) Moved from inside + read_header() to top level. + (pfm_detect) New function. + + * pfm-write.c: (pfm_write_case) Make case argument const. + Reorganize to avoid access-after-free. + + * print.c: (dump_table) Use fh_get_name() to describe source of + data. + + * sfm-read.c: (sfm_close_reader) Reorganize to avoid + access-after-free. + (sfm_detect) New function. + + * str.c: (str_lowercase) New function. + + * vfm.c: Use new compaction interface. + (static var compaction_necessary) Removed. + (static var compactor) New variable. + (open_active_file) Initialize compactor. + (write_case) Use compactor. + (close_active_file) Free compactor. + +Wed Jan 11 19:28:39 2006 Ben Pfaff + + Clean up file handle code in preparation to add scratch file + handles. + + * file-handle-def.c: Lots of formatting cleanup. Added function + comments. + (struct file_handle) Renamed `length' member + to `record_width'. All references updated. + (fh_init) New function. Moved here from file-handle.q. + (fh_done) New function. Moved here from file-handle.q and + rewrote. + (get_handle_with_name) Renamed fh_from_name(). + (get_handle_for_filename) Renamed fh_from_filename(). + (create_file_handle) Renamed fh_create(). Changed to take a + `struct fh_properties' instead of discrete values. Updated all + references. + (create_file_handle_with_defaults) Removed. Updated all + references to use fh_create() with fh_default_properties(). + (fh_default_properties) New function. + (destroy_file_handle) Removed. The code is now in fh_done(). + (handle_get_name) Renamed fh_get_name(). + (handle_get_filename) Renamed fh_get_filename(). + (handle_get_record_width) Renamed fh_get_record_width(). + (handle_get_tab_width) Renamed fh_get_tab_width(). + + * file-handle-def.h: Formatting, comment fixes. + (enum file_handle_mode) Renamed struct fh_mode. + (struct fh_properties) New structure. + (fh_init) Move prototype here from file-handle.h. + (fh_done) Ditto. + (fh_close) Ditto. + + * file-handle.q: (static var handle_list) Removed. + (fh_parse) Don't add handle to handle_list, because + file-handle-def.c has its own list. + (fh_init) Moved to file-handle-def.c. + (fh_done) Ditto. + +Sun Jan 9 01:09 Jason Stover + + * regression.q: (run_regression) Moved coefficient initialization + to the linreg library. Altered other functions accordingly. + +Sat Jan 7 13:30:54 WST 2006 John Darrington + + * command.c data-in.c main.c: Fixed bug which crept in when + separating getl from readline. + + * vars-atr.c value-labels.h: Fixed constness of val_labs_count. + +Fri Dec 23 20:59:01 WST 2005 John Darrington + + * getl.c error.c: Separated file_loc functionality from error.c + +Mon Dec 19 14:01:56 WST 2005 John Darrington + + * format.c: Additional error checking. + * getl.[ch]: Separated into getl.c and readln.c + * settings.[ch]: Made CC_CNT public + +Fri Dec 16 09:11:48 WST 2005 John Darrington + + * examine.q: Fixed buglet when cleaning up at end of procedure. + +Tue Dec 13 22:34:42 2005 Ben Pfaff + + Move global initialization and cleanup code into main.c. + Remove vestigial log infrastructure. + Minor related cleanups. + + * command.c: (shell) When execl() fails, use _exit(), not + err_hcf(). + + * error.c: (err_hcf) Move into main.c, rename terminate(). All + callers updated. + (err_done) New function with just the error.c-specific code for + err_hcf(). Called by terminate(). + + * glob.c: Removed all Borland C, DJGPP cruft. + (init_glob) Merged into main(). + (done_glob) Merged into terminate(). + (get_date) Removed. + (get_start_date) New function. All users of curdate updated to call + this function instead. + + * lexer.c: (lex_init) Moved initialization of tokstr here, from + init_glob(). + (lex_done) Moved destruction of tokstr here, from done_glob(). + + * main.c: (global var pgmname) Removed. Changed all references to + program_name, which is defined by gnulib. + (global var curdate) Removed. + (main) Moved init_glob() code here. Merged parse_script() in + here. + (parse_script) Removed. + (terminate) Moved err_hcf() here from error.c and renamed + terminate(). Merged done_glob() code in here. Call err_done(). + All callers updated. + (i18n_init) New function. + (fpu_init) New function. + + * output.c: (outp_init) Make void. + (init_default_drivers) New function. + (outp_read_devices) If no drivers are initialized successfully, + call init_default_drivers() to initialize a default driver. + (outp_done) Make void. + (static var prog) Make const. + (parse_options) Make parameter const. + (colon_tokenize) Make return value const. + (configure_driver) Change prototype to take a broken-down driver + configuration instead of a line of text. + (configure_driver_line) New function that does what + configure_driver() did before. + + * q2c.c: (global var pgmname) Rename program_name. + + * settings.c: (settings_init) Renamed from init_settings(). + (settings_done) Renamed from done_settings(). + + * vfm.c: (global var last_vfm_invocation) Make static. + (vfm_last_invocation) New function. All references to + last_vfm_invocation update to call this. + (procedure) Call update_last_vfm_invocation(). + (internal_procedure) Ditto. + (update_last_vfm_invocation) New function. + +Sat Dec 10 23:30:19 2005 Ben Pfaff + + Separate random numbers from other settings because of GSL + dependency. + + * Makefile.am: Add random.c, random.h to sources. + + * glob.c: (init_glob) Call random_init(). + (done_glob) Call random_done(). + + * settings.c: (static var rng) Move to random.c. + (done_settings) Move freeing of RNG to random_done(). + (get_rng) Move to random.c + (set_rng) Ditto. + + * random.c: New file. + + * random.h: New file. + +Sat Dec 10 18:13:36 2005 Ben Pfaff + + Separate settings and the SET command, for modularity. + + * Makefile.am: Add settings.c to sources. + + * glob.c: (global variable test_mode) Removed. + + * set.q: Remove all the set_* variables. Remove a lot of obsolete + SPSS/PC+ settings. Remove the aux_*() routines. Moved the + get_*() functions into settings.c. Rewrite the settings code and + functions to call the new set_*() functions. Rewrite custom + currency parsing. Write new by-hand cmd_show(). + + * esttings.c: New file. Moved the get_*() functions here from + set.q. Created new set_*() functions to correspond with them. + Regularized the names and types of some functions and updated + their callers. Added static, file-scope variables to support the + settings. + + * q2c.c: Remove "aux" support, which was only needed by set.q. + +Sun Nov 27 06:43:46 WST 2005 John Darrington + + * data-out.c format.h: Added return value to data_out function. + + * value-labels.c: Fixed bug in val_labs_remove. + +Sat Nov 5 18:37:26 2005 Ben Pfaff + + * Makefile.am: Remove devind.c, devind.h from list of source + files. + + * devind.c: Removed. + + * devind.h: Removed. + + * list.q: Removed "support" for devind. + + * output.c: Don't add devind class. + +Sat Nov 5 18:21:00 2005 Ben Pfaff + + * var.h: (struct variable) Make `init', `reinit' bool values. + Rearrange fields. + +Fri Nov 4 19:43:01 2005 Ben Pfaff + + * recode.c: Rewrote whole file, as clean-up. + +Fri Nov 4 19:37:50 2005 Ben Pfaff + + * pool.c: Don't make alignment exception for x86. + (pool_alloc) Return null for 0-size blocks. + (pool_alloc_unaligned) New function. + (pool_strndup) Removed. Changed callers to use pool_clone_unaligned(). + (pool_clone_unaligned) New function. + (pool_strdup) Use pool_clone_unaligned(). + + * var.h: (enum var_type) Give the NUMERIC, ALPHA enum this name. + (struct variable) Use `enum var_type' for `type'. + + * vars-atr.c: (var_type_adj) New function. + (var_type_noun) New function. + + * vars-prs: (parse_mixed_vars) Fix freeing code. + (parse_mixed_vars_pool) New function. + +Wed Nov 2 21:24:48 2005 Ben Pfaff + + * file-handle-def.c: Needed another #include, to avoid missing + prototype warning. + + * file-handle.q: (cmd_file_handle) Declarations must precede + statements. Free parse data on success as well as on failure, to + avoid memory leak. + + * get.c: (parse_write_command) Destroy dict on success, to avoid + memory leak. + + * data-list.c: (cmd_repeating_data) Fix usage of saw_occurs, + saw_length, saw_continued, saw_id, which were boolean but + incorrectly treated as bitmaps as result of a previous + half-finished cleanup. + + * weight.c: (struct weight_trns) Unused, so removed. + + * Makefile.am: Add range-prs.h to sources. + +Wed Nov 2 21:24:15 2005 Ben Pfaff + + DO IF, LOOP cleanup. + + * Makefile.am: Add ctl-stack.c, ctl-stack.h to source files. + Reformat source file list to list one file per file, so that + patches for future changes will be easier to read. + + * ctl-stack.c, ctl-stack.h: New files. + + * do-if.c: Rewrote whole file. + + * do-ifP.h: Removed. + + * loop.c: Rewrote whole file. + + * glob.c: (global var ctl_stack) Move into ctl-stack.c. + + * temporary.c: (cmd_temporary) Use ctl_stack_is_empty(). + + * vfm.c: (open_active_file) Use ctl_stack_clear(). + +Wed Nov 2 21:18:13 2005 Ben Pfaff + + New pool functions. + + * pool.c: (pool_create_at_offset) New function. + (pool_add_subpool) New function. + + * pool.h: (pool_create_container) New macro. + + * expressions/parse.c: (expr_parse_pool) New function. + + * autorecode.c: (recode) Use pool_create_container(). + + * count.c: (cmd_count) Ditto. + +Wed Nov 2 19:59:32 2005 Ben Pfaff + + Clean up transformations, by getting rid of `struct trns_header', + replacing it by `struct transformation' that has a void * + `private' member. Updated all uses of transformations to match, + which was a lot of code. Only major related changes listed below. + + * compute.c: (cmd_if) Use get_proc_func(). + (cmd_compute) Use get_proc_func(). + (get_proc_func) New function. + + * glob.c: (global var m_trns) Change type to size_t. + (global var n_trns) Ditto. + (global var f_trns) Ditto. + (global var t_trns) Change type to struct transformation *. + + * var.h: (struct trns_header) Removed. + (struct transformation) New. + (typedef trns_proc_func) Takes a void * instead of a struct + trns_header *. + (typedef trns_free_func) Ditto. + + * vfm.c: (execute_transformations) Takes an array of + transformations instead of trns_headers. + (add_transformation) Change prototype from (trns_header *) to + (trns_proc_func *, trns_free_func *, void *). + (next_transformation) New function. + +Sat Oct 29 16:25:36 2005 Ben Pfaff + + * count.c: Major cleanups. Rename practically everything. + Rewrite much of the code. Use pools for memory management. Use + the new parse_num_range(). + + * mis-val.c: (cmd_missing_values) Use the new parse_num_range(). + (parse_number) Removed. + + * missing-values.c: (mv_add_num_range) Don't add out-of-order + ranges, e.g. where low > high. + + * pool.c: (pool_2nrealloc) New function. + + * range-prs.c: New file. + (parse_num_range) New function. + (parse_number) New function. + +Fri Oct 28 22:47:48 2005 Ben Pfaff + + Fix up potential overflows in size calculations by replacing + instances of pool_alloc(p, x * sizeof *y) by pool_malloc(p, x, + sizeof *y) everywhere I could find them. Similarly by + pool_malloc(), pool_realloc(). + (Order is important: pool_alloc(p, sizeof *y, x) will divide by 0 + if x is 0.) + + * pool.c: (pool_nalloc) New function. + (pool_nmalloc) New function. + (pool_nrealloc) New function. + +Thu Oct 27 11:16:53 WST 2005 John Darrington + + Separated the definition of a file handle object from the stuff + pertaining to the FILE HANDLE command. + + * file-handle-def.[ch]: New files. + + * dfm-read.c file-handle.h file-handle.q + +Tue Oct 25 21:56:23 2005 Ben Pfaff + + Fix up potential overflows in size calculations by replacing + instances of xmalloc(x * sizeof *y) by xnmalloc(x, sizeof *y) + everywhere I could find them. Similarly by xrealloc(), malloc(). + (Order is important: xnmalloc(sizeof *y, x) will divide by 0 if x + is 0.) + + * alloc.c: (nmalloc) New function. + (out_of_memory) Removed. Replaced references by xalloc_die(). + + * sort.c: (allocate_cases) Fix segfault if memory allocation + fails. + + * subclist.c: (subc_list_double_create) Use xnmalloc() instead of + malloc(). + (subc_list_double_push) Use xnrealloc() instead of realloc(). + +Wed Oct 26 08:43:51 WST 2005 John Darrington + + Dictionary abstraction part #2 + + * algorithm.c format.c str.c sysfile-info.c val.h var.h vars-atr.c: + Removed unnecessary #include directives + +Mon Oct 24 21:35:08 2005 Ben Pfaff + + * groff-font.c (font_msg): Use err_vmsg() instead of incorrectly + trying to pass a va_list to tmsg(). Thanks to Jason Stover for + reporting this bug. + +Mon Oct 24 21:24:15 2005 Ben Pfaff + + Work to get rid of GCC 4.0 warnings, part 2. + + In many files, change `unsigned char' to `char'. This often + requires adding casts to functions. + + * data-in.c: (parse_A) Use buf_copy_rpad(). + + * str.c: (str_copy_buf_trunc) New function. + + * value-labels.c: (value_to_string) Fix mistaken use of strncpy(), + by rewriting. + +Mon Oct 24 13:42:32 WST 2005 John Darrington + + Moved some definitions to make it easier to abstract a dictionary + from the rest of PSPP. + + * format-prs.c lex-def.[ch]: New files. + + * Makefile.am lexer.[ch] dictionary.c vars-atr.c vfm.c algorithm.c + format.c: Moved some functions between modules. + +Sun Oct 23 19:28:08 2005 Ben Pfaff + + Work to get rid of GCC 4.0 warnings, part 1. + + In many files, change count parameters to parse_variables(), + etc. from `int' to `size_t'. Also change related variables and + struct members. Also change messages as needed (e.g. %d to %u + with cast to unsigned). Also change arithmetic as necessary + (e.g. n >= m - 1 to n + 1 >= m). + + * crosstabs.q: (crs_custom_tables) Check for size_t overflow in + multiplication. + + * q2c.c: (dump_declarations) Generate code for size_t instead of + int. + +Thu Oct 20 18:18:40 2005 Ben Pfaff + + * output.c: (outp_read_devices) Fix message. + +Sat Sep 17 11:13:13 2005 Ben Pfaff + + * matrix-data.c: (cmd_matrix_data) Change type of variable whose + address is passed to dict_get_vars() from size_t to int to match + John's change below. + + * modify-vars.c: (validate_var_modification) Ditto. + +Mon Sep 12 19:26:06 WST 2005 John Darrington + + * dictionary.[ch] Changed cnt from size_t* to int* since that's + what it's called as, and on x86_64 machines they're different sizes. + + * str.c: (ds_vprintf) Copied va_list args so they can be re-used + +Sun Aug 21 00:12:24 2005 Ben Pfaff + + * lexer.c: (lex_sbc_only_once) New function. + (lex_sbc_missing) New function. + +Sun Aug 21 00:00:47 2005 Ben Pfaff + + * case.h: (case_str) Make it return `unsigned char'. + +Sat Aug 20 23:56:14 2005 Ben Pfaff + + Revamp SAVE, XSAVE, EXPORT. Add (or at least parse) all the + subcommands that we didn't support. Fix bug 13911. Fix bug + reported by Adam Pierson (COMPRESSED and other subcommands didn't + work on SAVE). Refactor all related code. + + * command.def: Add XEXPORT command. + + * dictionary.c: (dict_delete_scratch_vars) New function. + + * get.c: (cmd_get) Fix parsing. + (struct save_trns) Removed. + (cmd_save_internal) Removed. + (cmd_save) Removed. + (do_write_case) Removed. + (save_write_case_func) Removed. + (save_trns_proc) Removed. + (save_trns_free) Removed. + (trim_dictionary) Removed. + (struct export_proc) Removed. + (cmd_export) Rewrote. + (export_write_case_func) Removed. + (export_proc_free) Removed. + (enum writer_type) New enum. + (enum command_type) New enum. + (struct any_writer) New struct. + (any_writer_destroy) New function. + (parse_write_command) New function. + (any_writer_write_case) New function. + (parse_output_proc) New function. + (output_proc) New function. + (cmd_save) Rewrote. + (cmd_xsave) Rewrote. + (struct output_trns) New struct. + (parse_output_trns) New function. + (output_trns_proc) New function. + (output_trns_free) New function. + (cmd_xsave) Rewrote. + (cmd_xexport) New function. + (parse_dict_trim) New function. + (struct mtf_proc) Change `by_cnt' member type to `int'. + (cmd_import) Rewrote. + + * pfm-write.c: (struct pfm_writer) Add `digits' member. + (pfm_writer_default_options) New function. + (pfm_open_writer) Add `opts' argument and handle options. + (write_float) Write only as many digits as `digits' member says. + (format_trig_double) Limit base-10 precision to LDBL_DIG. + + * pfm-write.h: (enum pfm_type) Moved here from pfm-read.h. + (struct pfm_write_options) New struct. + + * sfm-write.c: (sfm_writer_default_options) New function. + (sfm_open_writer) Remove `compress', `omit_long_names' args. Add + `opts' argument. Implement options. + + * sfm-write.h: (struct sfm_write_options) New struct. + + * expressions/helpers.c: (copy_string) Make `old' arg `unsigned + char *' instead of `char *'. + +Sat Aug 6 21:29:15 2005 Ben Pfaff + + * factor_stats.c: Needed included earlier. + + * percentiles.c: Needed to include . + + * val.h: Don't include "config.h". + +Sat Aug 6 21:26:27 2005 Ben Pfaff + + Clean up treatment of missing values by moving all the code into + one place. All references to the missing value function were + updated, but only major changes are detailed below. + + * Makefile.am: Add missing-values.c, missing-values.h to sources. + + * apply-dict.c: (cmd_apply_dictionary) Use mv_resize(). + + * dictionary.c: (dict_create_var) Initialize `miss' member with + mv_init(). + (dict_clone_var) Copy `miss' member with mv_copy(). + + * get.c: (mtf_merge_dictionary) Use mv_copy(). + + * missing-values.c: New file. + + * missing-values.h: New file. + + * mis-val.c: Rewrite. New version implements updated semantics. + + * pfm-read.c: (read_variables) Rewrite missing value handling. + + * pfm-write.c: (write_variables) Rewrite missing value handling. + + * sfm-read.c: (read_variables) Rewrite missing value handling. + + * sfm-write.c: (write_variable) Rewrite missing value handling. + + * sfmP.h: Include "magic.h" to get definition of + second_lowest_value. + + * sysfile-info.c: (describe_variable) Rewrite missing value + handling. + + * val.h: Include "magic.h" to get definition of + second_lowest_value. + + * var.h: Include "missing-values.h". Drop MISSING_* enums. + (struct variable) Remove `miss_type', `missing'. Add `miss'. + + * vars-atr.c: (is_num_user_missing) Removed--use + mv_is_num_user_missing(). + (is_str_user_missing) Removed--use mv_is_str_user_missing(). + (is_system_missing) Removed--use mv_is_value_system_missing(). + (is_missing) Removed--use mv_is_value_missing(). + (is_user_missing) Removed--use mv_is_value_user_missing(). + +Sun Jul 31 14:09:57 2005 Ben Pfaff + + Adopt use of gnulib for portability. + + * Make.build: Add $(top_srcdir)/gl and $(top_builddir)/gl to + include path. + + * Makefile.am: Remove bool.h, stat.h and change getline.[ch] to + getl.[ch] in pspp_SOURCES. Remove libmisc, add libgl in + pspp_LDADD. + + * In many source files, added an explicit inclusion of gettext.h + and definition of _ macro. These are no longer in pref.h because + it interfered with definitions in a few gnulib source files. + + * In many source files, changed #include "bool.h" to #include + , which is provided by gnulib. + + * alloc.c: Removed functions defined in gnulib: + (xmalloc) Removed. + (xcalloc) Removed. + (xrealloc) Removed. + (xstrdup) Removed. + (out_of_memory) Redefined as wrapper for xalloc_die(). + + * alloc.h: Replace prototypes by #include "xalloc.h". + + * casefile.c: Use full_read() and full_write() from gnulib instead + of our home-grown versions. + (full_read) Removed. + (full_write) Removed. + + * getline.c: Renamed getl.c. + + * getline.h: Renamed getl.h, updated all references. + + * filename.c: (fn_readlink) Change to wrapper around xreadlink() + from gnulib. + + * glob.c: Just #include instead of the crazy rigmarole + here before. + (init_glob) Call set_program_name() to initial gnulib progname + module. + + * html.c: (postopen) Use getlogin_r(), gethostname() from gnulib. + + * permissions.c: Use "stat-macros.h" from gnulib. + + * postscript.c: Just #include instead of the crazy + rigmarole here before. + + * q2c.c: (main) Make generated code #include "gettext.h". + + * str.h: Get rid of most explicit declarations of standard + functions, in favor of including gnulib header files. + + * expressions/evaluate.c: Ditto. + + * expressions/operations.h.pl: Make generated code #include + , not "bool.h". + +Sat Jul 30 23:13:17 2005 Ben Pfaff + + * expressions/parse.c: (validate_function_args) Fix two msg() bugs + found by -Wformat. + +Sat Jul 30 23:10:01 2005 Ben Pfaff + + * expressions/evaluate.c: (expr_debug_print_postfix) Don't pass + null pointer to printf for %.*s. + +Sat Jul 30 23:05:33 2005 Ben Pfaff + + * vars-atr.c: (var_is_valid_name) Fix three msg() bugs found by + -Wformat. + +Sat Jul 30 22:58:33 2005 Ben Pfaff + + * rank.q: (parse_rank_function) Fix msg() bug found by -Wformat. + +Sat Jul 30 22:56:12 2005 Ben Pfaff + + * postscript.c: (postopen) Cast `char' to `unsigned char' before + passing to isspace(). + +Sat Jul 30 22:52:09 2005 Ben Pfaff + + * pfm-read.c: (read_variables) Fix msg() bug found by -Wformat. + +Sat Jul 30 22:50:57 2005 Ben Pfaff + + * histogram.c: Include . + +Sat Jul 30 22:48:50 2005 Ben Pfaff + + * get.c: (cmd_match_files) Fix msg() bug found by -Wformat. + +Sat Jul 30 22:46:10 2005 Ben Pfaff + + * format.c: (check_common_specifier) Fix msg() bug found by + -Wformat. + (check_output_specifier) Ditto. + +Sat Jul 30 22:43:57 2005 Ben Pfaff + + * file-handle.q: (cmd_file_handle) Fix msg() bug found by + -Wformat. + +Sat Jul 30 22:41:44 2005 Ben Pfaff + + * data-in.c: (parse_Z) [WORDS_BIGENDIAN] Don't declare buf[], to + avoid "unused variable" warning. + +Sat Jul 30 22:38:46 2005 Ben Pfaff + + * command.c: (find_word) Cast `char' to `unsigned char' before + passing to isspace(). + +Sat Jul 30 22:36:29 2005 Ben Pfaff + + * case.c: (case_compare) Implement as delegating to + case_compare_2dict(). + +Sat Jul 30 22:34:18 2005 Ben Pfaff + + * algorithm.c: Inclusion of is unneeded. + +Sat Jul 30 22:01:32 2005 Ben Pfaff + + * Make.build: Don't append -ansi to AM_CFLAGS for GCC. Using + -ansi changes the behavior of header files significantly. It + causes __STRICT_ANSI__ to be defined, and some headers interpret + that as cause to e.g. not use `long long' or __attribute__. The + former example is bad when off_t is supposed to be `long long', + and the latter prevents -Wformat from working. + +Sun Jul 24 20:26:59 2005 Ben Pfaff + + Get rid of dependency on libgmp by writing our own routine for + floating-point base conversion. + + * pfm-write.c: (write_float) Rewrote. + (write_int) Rewrote. + (pow30_nonnegative) New function. + (pow30) New function. + (trig_to_char) New function. + (format_trig_digits) New function. + (recurse_format_trig_int) New function. + (format_trig_int) New function. + (should_round_up) New function. + (try_round_up) New function. + (format_trig_double) New function. + +Sun Jul 24 18:49:20 2005 Ben Pfaff + + * data-in.c: (parse_numeric) Allow "1+23" even for F format, for + compatibility. + +Sun Jul 24 18:47:37 2005 Ben Pfaff + + * pfm-read.c: (read_version_data) Read and ignore author field. + +Wed Jul 6 20:44:27 2005 Ben Pfaff + + * get.c: (mtf_processing) Don't assume that + mtf_compare_BY_values() always returns -1, 0, or 1. Actually, it + returns a negative, zero, or positive result. Fixes MATCH FILES + bug on Mac OS X reported by "Marshall DeBerry" . + +Mon Jul 4 18:01:15 2005 Ben Pfaff + + * flip.c: [HAVE_SYS_TYPES_H] Really include . The + preprocessor test for sys/types.h was accidentally inverted. This + was bug 12789. + +Sun Jul 3 22:47:39 2005 Ben Pfaff + + * get.c: (cmd_match_files) Fix memory leak on `by' and on + `vfm_source'. + + * getline.c: [HAVE_LIBREADLINE] (read_console) Fix memory leak on + `line'. + + * vfm.c: (close_active_file) Remove unnecessary test. + +Sun Jul 3 21:45:32 2005 Ben Pfaff + + Fix NDEBUG compile errors. + + * hash.h: Needed explicit #include . + + * linked-list.c: (ll_next) First arg is UNUSED when NDEBUG is + defined. + +Sun Jun 12 23:44:38 2005 Ben Pfaff + + Implement embedding for PostScript driver. Fixes bug 12970. + + * ascii.c: Fix compiler warnings. + + * html.c: Ditto. + + * chart.h: Add `file' member. + + * output.h: (struct outp_class) initialise_chart, finalise_chart + should take outp_driver *, not outp_class *. Update all + references. + + * plot-chart.c: (chart_create) Fix segfault when there are no + output drivers at all. + (chart_submit) Call d->class->finalise_chart. + + * postscript.c: (ps_open_page) Set cp_y to 0. + (ps_submit) New function. + (ps_chart_initialise) Implement. + (ps_chart_finalise) Implement. + (static var postscript_class) Add ps_submit. + (static var epsf_class) Add ps_submit. + + +Sun Jun 12 14:54:40 2005 Ben Pfaff + + Did some more work on bug 12859 and then realized that a *good* + solution would require some fundamental restructuring. For now, + I'm marking REPEATING DATA unimplemented, and then we can revisit + it post-0.4.0. + + * command.def: Make REPEATING DATA unimplemented. + + * data-list.c: (cmd_repeating_data) Assume inline file is 80 + characters wide. + (realize_value) Revert previous changes; no longer needed. + Updated all callers. + + * error.c: (err_hcf) Set nfile_loc, mfile_loc to 0 after freeing + file_loc, to avoid bad references later. + + * str.c: Fix typo. + +Tue Jun 7 00:14:09 2005 Ben Pfaff + + Make some code tolerant of reentry. Should not be needed if other + code is correct but it is good to be generally tolerant. + + * error.c: (err_hcf) Set file_loc to null after free(). + + * output.c: (outp_done) Similar changes. + + * str.c: (ds_destroy) Ditto. + +Tue Jun 7 00:10:20 2005 Ben Pfaff + + Continue work on bug 12859, plus some code cleanup. + + * data-list.c: (cmd_repeating_data) Replace `seen' bitmap by + boolean variables. Don't try to compute starts_end, cont_end for + inline file. Calculate length only after parsing variable + specifications. Add proper transformation to list. + (realize_value) If the rpd_num_or_var has no value, return new + DEFAULT_MEMBER argument (for use with inline file). + (repeating_data_trns_proc) Pass default values. + + * dfm-read.c: (dfm_close_reader) Only skip data if *not* still + open, and only if we actually started reading data. + +Sun Jun 5 18:39:36 2005 Ben Pfaff + + Fix bug 11894. + + * output.c: (outp_read_devices) Fix message. + +Fri May 27 12:34:43 WST 2005 John Darrington + + * sort-prs.[ch] (newfiles), aggregate.c, sort.[ch]: Separated the guts + of the sort algorithm from the parser for the SORT command. + + * rank.q: Added the parser for the RANK command. + +Thu May 26 12:29:21 2005 Ben Pfaff + + Fix bug 13192. + + * sort.c: (sort_parse_criteria) Only set *saw_direction if + saw_direction is non-null. Thanks to John Darrington for + reporting this bug. + +Tue May 24 21:52:55 2005 Ben Pfaff + + * get.c: (mtf_processing) Handle case of a lookup table as the + active file. Thanks to John Darrington for reporting this bug. + +Wed May 25 10:27:02 WST 2005 John Darrington + + * alloc.c alloc.h: (xcalloc) changed signature to imitate the + POSIX calloc function. + + * crosstabs.q get.c vars-prs.c: Updated calls to xcalloc to + reflect new signature. + + * sfm-read.c: Now much more robust in the face of badly formed + system files. + +Mon May 23 11:57:31 WST 2005 John Darrington + + *sfm-read.c: Fixed some bugs regarding long string continuation + records, which the previous fix uncovered. + +Sat May 21 12:48:34 WST 2005 John Darrington + + * sfm-read.c, sfmP.h: Allow reading of system files when the + case_size value in the header is -1. Also changed some Errors to + Warnings when reading system files. + +Tue May 17 21:00:57 2005 Ben Pfaff + + * data-list.c: (data_list_trns_free) Don't free the argument + because cancel_transformations() will do that itself. + (data_list_source_destroy) Destroy the argument to + data_list_trns_free(), because it no longer does so itself. + +Tue May 17 18:29:35 2005 Ben Pfaff + + * data-out.c: (format_and_round) Don't output leading `-' if value + rounds to zero. + +Tue May 17 00:06:43 2005 Ben Pfaff + + Fix bug 11119. + + * som.c: (output_encodings) If some cell in the table won't fit + with the horizontal or vertical headers, cancel those headers. + + * som.h: (struct som_table_class) Add fits_width, fits_length, + set_headers members. + + * tab.c: (tabi_fits_width) New function. + (tabi_fits_length) New function. + (tabi_set_headers) New function. + (global var tab_table_class) Add the new functions as appropriate + members. + +Mon May 16 22:34:06 2005 Ben Pfaff + + Fix rest of bug 13054. + + * format.def: Fix EDATE, SDATE, ADATE, JDATE, QYR, MOYR, WKYR, + DATETIME, TIME system/portable file values. + +Mon May 16 22:31:15 2005 Ben Pfaff + + * data-list.c: (parse_free) Use make_input_format(). + + * data-out.c: (num_to_string) Use make_output_format(). + + * dictionary.c: (dict_create_var) Ditto. + + * format.c: (global var f8_2) New var. + (make_input_format) New function. + (make_output_format) New function. + + * get.c: (cmd_match_files) Use make_output_format(). + + * list.q: (cmd_list) Ditto. + + * matrix-data.c: Ditto. + + * sfm-read.c: (parse_format_spec) Check output specifier + thoroughly. + + * tab.c: (tab_float) Use make_output_format(). + +Sun May 15 23:38:10 2005 Ben Pfaff + + Fix more of bug 13054. + + * format.def: FMT_A should allow 255-character output. FMT_AHEX + should allow 510-character input and output. + + * data-out.c: (num_to_string) Get rid of NEW_STYLE option. + (convert_E) Handle non-finite values. + (try_F) Rewrite. + (format_and_round) New function. + (convert_infinite) New function used by try_F() and convert_E(). + +Sun May 15 23:36:55 2005 Ben Pfaff + + Regularize string and buffer function names so that they make some + kind of sense. + + * str.c: (mm_reverse) Rename buf_reverse(). Update all + references. + (mm_find_reverse) Rename buf_find_reverse(). Update all + references. + (mm_case_compare) Rename buf_compare_case(). Update all + references. + (st_compare_pad) Rename buf_compare_rpad(). Update all + references. + (str_compare_rpad) New function. + (st_bare_pad_copy) Rename buf_copy_str_rpad(). Update all + references. + (buf_copy_str_lpad) New function. + (st_bare_pad_len_copy) Rename buf_copy_rpad(). Update all + references. + (st_pad_copy) Rename str_copy_rpad(). Update all references. + (st_trim_copy) Rename str_copy_trunc(). Update all references. + (st_uppercase) Renamed str_uppercase(). Update all references. + +Sat May 14 08:22:26 WST 2005 John Darrington + + * dfm-read.c: Fixed polarity of test in dfm-close-reader. Closes + Bug #13082 + +Tue May 10 20:08:18 2005 Ben Pfaff + + * data-in.c: (data_in) Add assertion to check input specifier. + + * data-out.c: (data_out) Add assertion to check output specifier. + +Tue May 10 19:56:35 2005 Ben Pfaff + + Start to fix bug 13054. + + * format.c: (check_input_specifier) Improve error message. + (check_input_specifier) Check F, COMMA, and DOLLAR formats for + valid decimal places. + (check_output_specifier) Ditto (but different criteria). + (convert_fmt_ItoO) Assert valid input and output specifiers. + Also, if input specifier has *any* decimal places, make the output + specifier 1 place wider. + +Mon May 9 07:14:29 WST 2005 John Darrington + + * sysfile-info.c: Fixed bug [# 13024 ] + +Sun May 8 13:52:12 2005 Ben Pfaff + + "Fix" bug 13021 by disabling FILE TYPE. Eventually, we should + actually implement it. + + * command.c: (FILE_TYPE_okay) Always return 1. + + * command.def: Change FILE TYPE, END FILE TYPE into UNIMPL. + + * file-type.c: Add prototypes to get rid of warnings. + +Sun May 8 08:08:07 WST 2005 John Darrington + + * barchart.c box-whisker.c cartesian.c piechart.c plot-hist.c: Fixed + more ISO/IEC 9899:1990 conformance issues. + +Wed May 4 23:54:02 2005 Ben Pfaff + + Fix bug 12948. See also new test in + tests/bugs/match-file-scratch.sh. + + * get.c: (mtf_merge_dictionary) Don't compact dictionary because + that deletes scratch variables that someone else might be using, + and because we can't reassign our sources' value indexes. + Instead, simply don't copy scratch variables into the master + dictionary. + + * dictionary.c: (dict_compact_values) Delete variables from the + dictionary passed in, not from default_dict (!). + +Tue May 3 22:25:17 2005 Ben Pfaff + + Improve hash.c comments, error-checking. + + * hash.c: (struct hsh_table) [NDEBUG] Add hash_ordered member. + (hsh_create) size == 0 should *not* return NULL! Set + hash_ordered. + (hsh_clear) Set hash_ordered. + (locate_matching_entry) Check hash_ordered. + (hsh_rehash) Rename rehash(). Add assertion. Set hash_ordered. + (hsh_data) Set hash_ordered. Add const-ness to return value and + update all callers. + (hsh_sort) Ditto. + +Wed May 4 08:50:11 WST 2005 John Darrington + + * casefile.c: Removed unnecessary #include + +Tue May 3 19:14:48 WST 2005 John Darrington + + * copyleft.c: Updated copyright date. + + * Makefile.am: Removed erroneous explicit "-lplot" + + * examine.q oneway.q: Made these files conform to ISO/IEC 9899:1990 + +Tue May 3 16:20:31 WST 2005 John Darrington + + * command.c command.def: Added description string for unimplemented commands. + + * oneway.q: Sorted the hash tables before shipping out the results. Closes + bug [#12931]. + +Mon May 2 23:45:01 2005 Ben Pfaff + + Code improvements. + + * data-list.c: (parse_fixed) Use lex_end_of_command(). + (parse_free) Ditto. + (cmd_repeating_data) Set cont_end.num in right situations. + (parse_repeating_data) Remove redundant test. + +Mon May 2 23:37:19 2005 Ben Pfaff + + Partial fix for bug 12859. + + * data-list.c: (cmd_data_list) Add transformation properly in + vfm_source == NULL case. + +Mon May 2 23:27:28 2005 Ben Pfaff + + * lexer.c: (lex_error) Improve error messages. + +Mon May 2 22:28:17 2005 Ben Pfaff + + * get.c: (cmd_match_files) Check token type before trying to match + tokid. Fixes bug 12923. + +Mon May 2 22:16:51 2005 Ben Pfaff + + * flip.c: [HAVE_SYS_TYPES_H] Include . Fixes bug + 12789. + +Mon May 2 22:02:52 2005 Ben Pfaff + + * expressions/generate.pl: (get_token) Make use of /g + backward-compatible with Perl 5.6.1. + +Sun May 1 23:00:19 2005 Ben Pfaff + + * var-display.c: (cmd_variable_alignment) Fix memory leak. + (cmd_variable_level) Ditto. + +Sun May 1 22:49:04 2005 Ben Pfaff + + Hash table had buggy deletion function. The fix required changing + other functions to do probing in the required order. + + * hash.c: (locate_matching_entry) Rewrite and change interface. + (hsh_rehash) Rewrite to use locate_matching_entry(). + (hsh_probe) Ditto. + (hsh_find) Ditto. + (hsh_delete) Ditto. Also, fix stupid bugs. + +Sun May 1 22:24:58 2005 Ben Pfaff + + * dictionary.c: (dict_clone) Properly copy vectors. + +Sun May 1 22:07:58 2005 Ben Pfaff + + New implementation of long variable names. Each variable has a + "normal" name, which may be up to 64 bytes long and which is used + for all normal operations. Variables may have a "short" name, + which is limited to 8 bytes and used only for system and portable + file input and output. + + Make tokid case-preserving. Update most uses of tokid to treat it + case-insensitively. + + Update many commands to deal with long variable names. + + * autorecode.c: (cmd_autorecode) Use strcasecmp() instead of strcmp(). + + * command.c: (cmd_parse) Ditto. + (match_strings) Use toupper() before comparing characters. + (conflicting_3char_prefixes) Use mm_case_compare() instead of + memcmp(). + (cmd_match_words) Ditto. + + * compute.c: (lvalue_parse) Use st_trim_copy() instead of + strncpy(). + + * count.c: (struct cnt_var_info) Change n[] to fit long var name. + Use st_trim_copy() instead of strcpy(). + + * data-in.c: (parse_enum) Use mm_case_compare() instead of + memcmp(). + + * data-list.c: (struct dls_var_spec) Change name[] to fit long var + name. + (parse_free) Use st_trim_copy() instead of strcpy(). + + * descript.c: (struct dsc_var) Change z_name[] to fit long var + name. + (try_name) Use strcasecmp() instead of strcmp(). + (generate_z_varname) Use st_trim_copy() instead of strcpy(). + (descriptives_compare_dsc_vars) Use strcasecmp() instead of + strcmp(). + + * dictionary.c: (struct dictionary) Removed `long_name_tab' + member. + (compare_long_names) Removed. + (hash_long_name) Removed. + (dict_create) Don't initialize `long_name_tab' member. + (dict_clone) Copy short names into new dictionary. + (dict_clear) Don't clear `long_name_tab' member. + (dict_get_varname_block) Removed. + (dict_add_longvar_entry) Removed. + (free_nte) Removed. + (dict_destroy) Don't destroy `long_name_tab' member. + (dict_create_var_from_short) Removed. + (dict_create_var_x) Removed. + (dict_create_var) Get rid of longname handling. + Clear short name. + (dict_clone_var) Get rid of longname parameter and longname + handling. + (dict_lookup_var) Get rid of longname handling. + (dict_reorder_var) New function. + (dict_rename_var) Clear short name. + (dict_rename_vars) Get rid of longname handling. Clear short + names. + (dict_create_vector) Support long vector names. + (dict_lookup_vector) Use strcasecmp() instead of strcmp(). + (quasi_base27) Removed. + (make_short_name) Removed. + (compare_strings) New function. + (hash_string) New function. + (dict_assign_short_names) New function. + + * file-handle.q: (get_handle_with_name) Use strcasecmp() instead + of strcmp(). + (get_handle_for_filename) Support long handle names. + + * file-type.c: (struct col_spec) Make `name' fit long var names. + (cmd_file_type) Use strcasecmp() instead of strcmp(). + + * flip.c: (make_new_var) Rewrite. + (flip_sink_write) Use st_trim_copy() instead of strncpy(). + + * format.c: (parse_format_specifier_name) Use mm_case_compare() + instead of memcmp(). + + * get.c: (cmd_save_internal) Rephrase. + (rename_variables) Drop test for identical variable name. + (struct mtf_proc) Change `first', `last' to fit long var name. + + * hash.c: (hsh_hash_case_string) New function for case-insensitive + string hashing. + + * lexer.c: (restore_token) Use st_trim_copy() instead of + strncpy(). + (lex_get) Don't uppercase string when copying into tokid. + (lex_put_back_id) Use st_trim_copy() instead of + strncpy(). + + * list.q: (determine_layout) Consider length of variable names in + choosing vertical layout. + + * matrix-data.c: (cmd_matrix_data) Use strcasecmp() instead of + strcmp(). + (string_to_content_type) Ditto. + + * modify-vars.c: (compare_variables_given_ordering) Ditto. + (struct var_renaming) Change `new_name' to fit long var name. + (compare_var_renaming_by_new_name) Use strcasecmp() instead of + strcmp(). + + * pfm-read.c: (read_variables) Disallow system variables in system + files. + (write_variables) Call dict_assign_short_names() and use + short_name[] members. + + * repeat.c: (internal_cmd_do_repeat) Use strcasecmp() instead of + strcmp(). + + * sfm-read.c: (sfm_open_reader) Rewrite code for long variable + map. Reorder variables into same order as long variable map. + (read_variables) Set short name. + + * sfm-write.c: (sfm_open_writer) Call dict_assign_short_names(). + (write_variable) Use st_bare_pad_copy(). + (write_longvar_table) Rewrite. + + * str.c: (mm_case_compare) New function. + + * sysfile-info.c: (compare_vectors_by_name) Use strcasecmp() + instead of strcmp(). + + * t-test.q: (tts_custom_groups) Remove redundant test. + (tts_custom_pairs) Ditto. + + * var.h: (struct variable) Change `name' to fit long var names. + Remove `longname'. Add `short_name' member. Reorder some + variables. + (struct name_table_entry) Removed. + (struct vector) Change `name' to fit long vector names. + + * vars-atr.c: (var_is_valid_name) Allow long var names. + (compare_var_names) Use strcasecmp() instead of strcmp(). + (compare_var_ptr_names) Ditto. + (hash_var_name) Use hsh_hash_case_string(). + (hash_var_ptr_name) Ditto. + (var_set_short_name) New function. + (var_clear_short_name) New function. + (var_set_short_name_suffix) New function. + + * vars-prs.c: (parse_DATA_LIST_vars) Support long names. + Use strcasecmp() instead of strcmp(). + (struct array_var_set) Removed `longname_tab'. + (array_var_set_lookup_var_idx) Drop longname_tab support. + (array_var_set_destroy) Don't destroy `longname_tab'. + (var_set_create_from_array) Don't create `longname_tab'. + + * vector.c: (cmd_vector) Use strcasecmp() instead of strcmp(). + Support long names. + + * expressions/parse.c: (word_matches) Use mm_case_compare() + instead of memcmp(). + (compare_strings) New function. + (lookup_function) Use compare_strings() instead of strcmp(). + +Sun May 1 22:07:43 2005 Ben Pfaff + + * algorithm.c: (move_element) New function. + +Sun May 1 22:05:35 2005 Ben Pfaff + + * aggregate.c: (parse_aggregate_functions) Always initialize + destvar. + +Sun May 1 22:03:47 2005 Ben Pfaff + + * aggregate.c: (cmd_aggregate) Use dict_clone_var_assert(). + + * dictionary.c: (dict_clone) Ditto. + (dict_clone_var_assert) New function. + + * get.c: (mtf_merge_dictionary) Use dict_clone_var_assert(). + +Sun May 1 15:05:54 WST 2005 John Darrington + + * error.c: Added a string for the compiler version to the + request_bug_report_and_abort function. + + * groff_font.c, font.c: Removed manpage(1) style references from + comments, because RMS frowns upon them. + +Thu Apr 28 18:52:06 2005 Ben Pfaff + + * expressions/parse.c: Improve previous fix for bug 12858 (LAG). + +Fri Apr 29 09:28:00 WST 2005 John Darrington + + * expressions/parse.c: Added handler for OP_LAG_Vn and OP_LAG_Vs. + Fixed bug [#12858] . + +Wed Apr 27 12:42:34 WST 2005 John Darrington + + * loop.c recode.c repeat.c: Fixed a couple of instances of SHORT_NAME_LEN + which should be LONG_NAME_LEN + +Wed Apr 27 07:43:50 WST 2005 John Darrington + + * command.def echo.c: Added the ECHO command. + +Mon Apr 25 22:55:59 2005 Ben Pfaff + + Finish fixing MATCH FILES (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 + + 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 + + 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 + + * dictionary.c vars-prs.c sfm-write.c: Fixed some memory leaks + +Sun Apr 17 23:08:15 2005 Ben Pfaff + + 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * misc.h: Remove GCC specializations. + +Mon Mar 14 21:07:23 2005 Ben Pfaff + + 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 + + * cmdline.c: (static var testing_mode) Move into + parse_command_line(). + +Mon Mar 14 21:05:13 2005 Ben Pfaff + + * 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 + + * file-handle.q: (struct file_handle) `open_mode' should not be + const. + +Sun Mar 13 22:40:54 2005 Ben Pfaff + + 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 + + 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 + + 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 + + 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 + + * t-test.q: Fixed erroneous logic in compare_group_binary. + +Sat Mar 12 13:29:21 2005 Ben Pfaff + + * split-file.c: (cmd_split_file) Ignore LAYERED and SEPARATE + keywords (bug 11628). + +Sat Mar 12 13:17:12 2005 Ben Pfaff + + * 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 + + * 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 + + Thanks to Ben Kujala 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 + + * 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 + + * expressions/evaluate.c: (cmd_debug_evaluate) Fix memory leaks. + + * expressions/parse.c: (no_match) Ditto. + +Wed Mar 9 09:54:27 2005 Ben Pfaff + + * 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 + + * 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 + + * data-in.c: Use `bool' throughout, where relevant. + +Sun Mar 6 19:52:22 2005 Ben Pfaff + + 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 + + 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 + + * expressions/operations.def: (NUMBER) Use DI_IMPLIED_DECIMALS. + +Sun Mar 6 19:33:24 2005 Ben Pfaff + + * 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 + + * 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 + + * 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 + + * 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 + + * expressions/parse.c: (expr_parse) Fix parameter type. Thanks to + John Darrington for reporting this + bug. + +Thu Mar 3 22:10:25 WST 2005 John Darrington + + * 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 + + * Makefile.am : Fixed up CLEANFILES target. + +Mon Feb 28 23:49:56 2005 Ben Pfaff + + * 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 + + 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * aggregate.c: Initialised the complete agr_proc structure. + Closes bug #11675 + + +Sun Jan 23 23:02:21 2005 Ben Pfaff + + * 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 + + * 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 + + * 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 + + * t-test.q examine.q : More memory leaks fixed. + +Tue Jan 18 19:26:59 WST 2005 John Darrington + + * examine.q factor_stats.[ch] get.c pfm-read.c: Plugged numerous + memory leaks. + +Mon Jan 10 14:43:45 WST 2005 John Darrington + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 for + reporting the bug. + +Wed Jan 5 22:42:26 WST 2005 John Darrington + + * case.h Fixed bug # 11307 + +Wed Jan 5 08:30:48 WST 2005 John Darrington + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * factor_stats.c Fixed calculation of trimmed mean under various + special conditions. + +Sat Dec 4 17:14:45 WST 2004 John Darrington + + * 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 + + * 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 + + * 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 + + * flip.c: (flip_file) If fseeko() is not available, use long int + for off_t. Thanks to "Marshall DeBerry" for + reporting the problem. + +Mon Nov 29 12:20:59 WST 2004 John Darrington + + * 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 + + * 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 + + * 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 + + 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 + + * expr-evl.c: (expr_evaluate) Fix XDATE.JDAY formula. Thanks to + John Darrington for reporting this + bug. + +Tue Nov 16 13:19:18 WST 2004 John Darrington + + * permissions.c command.def Added the PERMISSIONS command + +Mon Nov 15 01:33:32 2004 Ben Pfaff + + * q2c.c: (dump_header) Don't try to emit #includes at very top of + output file because that will precede #include , which + is bad. + (main) Add needed headers to /* (header) */ code. + +Mon Nov 15 01:21:36 2004 Ben Pfaff + + 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 + + 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 + + * 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 + + 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 + + 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 + + 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 + + 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 + + * 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 + + * 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 + + * examine.q Added some of the parametric calculations + + * factor_stats.[ch] Created + +Sat Nov 6 21:24:31 WST 2004 John Darrington + + * 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 + + * examine.q Fixed problem where examine wasn't dealing properly with + splits + +Sat Nov 6 14:49:47 WST 2004 John Darrington + + * oneway.q Fixed problem where oneway wasn't dealing properly with + splits + +Thu Nov 4 11:09:01 WST 2004 John Darrington + + * 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 + + * 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 + + * 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 + + * 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 + + * descript.c: (cmd_descriptives) Remove harmless but bogus test in + STATISTICS parsing. + +Mon May 31 20:45:24 2004 Ben Pfaff + + 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 + + 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 + + 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 + + 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 + + * 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 + + * 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 + + 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 + + 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 + + * matrix.c: Dead code. Removed. + + * matrix.h: Dead code. Removed. + +Fri Apr 16 23:59:51 2004 Ben Pfaff + + 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 + + * 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 + + 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 + + * Makefile.am (pspp_SOURCES): Remove debug.c. + + * debug.c: Removed. It was empty anyway. + +Fri Apr 9 20:04:49 2004 Ben Pfaff + + * descript.c (calc_descriptives): Fix assert failure when only + MOMENT_MEAN is needed. + +2004-04-09 Michael Kiefte + + * 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 + + * 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 + + * main.c: Fixed configuration problems with gsl + + * t-test.q: Fixed some problems encountered when compiling under Cygwin + +2004-04-03 blp + + * lexer.c, ChangeLog: + Fix infinite loop on comment at end of file, add test. + +2004-04-03 jmd + + * 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 + + * lexer.c: (lex_skip_comment) Handle end-of-file correctly (I + hope). + +Sat Apr 3 15:00:18 WST 2004 John Darrington + + * 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 + + * 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 + + * 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 + + * 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 + + * descript.c: (cmd_descriptives) Free `vars' to avoid memory leak. + +Mon Mar 29 16:26:40 2004 Ben Pfaff + + * 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 + + * 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 + + 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 + + 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 + + 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 + + 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 + + * dictionary.c: (dict_compact_values) Compacted values need to + start off from 0. + +Fri Mar 26 00:54:57 2004 Ben Pfaff + + * 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 + + 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 + + * error.c: (err_assert_fail) msg variable needs to be non-const. + +Fri Mar 26 00:17:24 2004 Ben Pfaff + + * debug.c: (cmd_debug_evaluate) Rewrite. + +Fri Mar 26 00:15:13 2004 Ben Pfaff + + 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 + + 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 + + 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 + + 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * expr-evl.c: (expr_evaluate) Assert that `c' is nonzero before + using it. + +Sat Mar 20 15:18:16 2004 Ben Pfaff + + 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 + + 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 + + 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 + + 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 + + * 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 + + * pfm-write.c: (bufwrite) Write out the correct element for string + variables. From Andreas Streichardt . + +Mon Mar 15 20:48:03 2004 Ben Pfaff + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + * 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 + + 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 + + * 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 + + * 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 + + 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 + + * 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 + + * format.c: (parse_format_specifier_name) Fix brown-bag bug + introduced in last check-in. + +Tue Mar 9 23:10:41 2004 Ben Pfaff + + * 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 + + 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 + + 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 + + * main.c: (main) sigaction()'s sa_flags member was uninitialized. + Just use signal() instead. + +Wed Mar 3 09:26:30 2004 Ben Pfaff + + 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 + + * 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 + + * 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 needed to call free(). + + * aggregate.c: (parse_aggregate_functions) Make `function' + variable const. + +Tue Mar 2 11:30:56 2004 Ben Pfaff + + 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 + + * 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 + + 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 + + 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 + + Increase warning level. + + * Makefile.am: (AM_CFLAGS) Remove -Wnouninitialized. + +Sat Feb 21 17:38:58 WST 2004 John Darrington + + * main.c: Added a signal handler for SIGSEGV requesting a bug report. + +Fri Feb 20 23:22:14 2004 Ben Pfaff + + * 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 + + * 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 + + 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 + + * vfm.c: (procedure) Add check to prevent recursive call. + +Wed Feb 18 21:48:54 WST 2004 John Darrington + + * 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 + + * 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 + + * 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 + + * 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 + + 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 + + * 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 + + 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 + + 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 + + * var.h: (struct variable) Update comments. + +Sun Feb 15 23:14:59 2004 Ben Pfaff + + 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 + + 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 + + * pfm-write.c: (bufwrite) Get rid of nasty cast that also invoked + undefined behavior. + +Thu Feb 12 23:35:15 2004 Ben Pfaff + + 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 + + * 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 + + 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 + + * 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 + + * 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 + + * t-test.q: Added calculations for the one sample variant of the T-TEST + +Tue Feb 3 20:09:54 2004 Ben Pfaff + + * 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 + + * 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 + + * 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 + + * 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 + + 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 + + * 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 + + * Fixed bug where FREQ would crash on alpha values + +Tue Dec 30 22:42:57 2003 Ben Pfaff + + * 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 + + * ascii.c: (ascii_option) Fix implementation of headers option. + +Tue Dec 30 22:32:53 2003 Ben Pfaff + + * 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 + + * Removed redundant code from output.h + +Sat Dec 27 22:17:52 2003 Ben Pfaff + + 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 + + * var.h: (struct freq_tab_set) Removed (not used). + +Sat Dec 27 22:15:21 2003 Ben Pfaff + + * value-labels.c: (val_labs_destroy) vls needs to be freed too. + +Sat Dec 27 22:10:49 2003 Ben Pfaff + + * stats.c: (hypercube) Rename pow4(). All references updated. + +Sat Dec 27 22:05:49 2003 Ben Pfaff + + * rename-vars.c: (cmd_rename_variables) Rewritten. + (compare_name) Removed. + +Sat Dec 27 22:03:51 2003 Ben Pfaff + + 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 + + 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 + + * 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 + + * get.c: (export_write_case_func) Remove debug printing code. + +Sat Dec 27 21:11:09 2003 Ben Pfaff + + * 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 + + 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 + + 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 + + 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 + + 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 + + * 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 + + 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 + + * 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 + + 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 + + * 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 + + * 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 + + * 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 + + 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 + + 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 + + * 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 + + 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 + + * algorithm.c (binary_search): Fix comparison. + +Fri Dec 19 23:27:45 2003 Ben Pfaff + + * algorithm.c: (binary_search) Fix assertion. + +Fri Dec 19 21:31:48 2003 Ben Pfaff + + * sysfile-info.c: (compare_vectors_by_name) Rewrite. + +Fri Dec 19 21:30:24 2003 Ben Pfaff + + * sort.c: (compare_case_lists) Rewrite. + +Fri Dec 19 16:44:22 2003 Ben Pfaff + + * 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 + + * postscript.c: (int_2_compare) Rewrite. + (compare_line) Rewrite. + +Fri Dec 19 16:38:35 2003 Ben Pfaff + + * 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 + + * matrix-data.c (compare_variables_by_mxd_vartype): Rewrite. + +Fri Dec 19 15:54:45 2003 Ben Pfaff + + * 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 + + * 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 + + 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 + + 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 + + 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 + + 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 + + * 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 + + 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 + + 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 + + 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 + + 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 + * added a calculation of the mode to FREQUENCIES + +Wed Dec 17 12:53:01 WAST 2003 John Darrington + + * moved (un)defs of DEBUGGING to config.h + +Mon Dec 15 21:35:59 2003 Ben Pfaff + + * 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 + + * 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 . + + * 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 + + 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 + + * 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 + + * 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 + + * 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 + + * 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 + + Using alphanumeric variables in functions under AGGREGATE + segfaulted. Fixed. Thanks to Dr. Dirk Melcher + 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 + + Under certain circumstances, the final case would be omitted from + the results of an AGGREGATE operation. Fixed. Thanks to Dr. Dirk + Melcher 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 + + 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 + + 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 + + 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 + + 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 + + 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 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 + + * Makefile.cygwin: New file supplied by Hankin + for compilation with Cygnus Windows B20. Not used by other + systems. + +Sat May 29 20:36:04 1999 Ben Pfaff + + SORT always sorted in ascending order. Fixed. Thanks to Dr. Dirk + Melcher 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 + + 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 + + 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 + + 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 + + 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 + + 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 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 + + The TABLE subcommand on MATCH FILES worked only erratically at + best. This fixes it. Thanks to Dr. Dirk Melcher + 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 + + VARIABLE LABELS rejected a slash before the first variable + specification, contradicting the documentation. Thanks to Walter + M. Gray 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 + + Because of an incorrect optimization in memory allocation, + CROSSTABS sometimes segfaulted when asked to output multiple + tables. Thanks to Walter M. Gray 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 + + CROSSTABS didn't display value labels for column and row + variables. Thanks to Walter M. Gray 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 + + WRITE didn't write line ends. Fixed. Thanks to Dr. Dirk Melcher + 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 + + 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 + + MATCH FILES should set numeric values not available to the + system-missing value, not to 0. Thanks to Dr. Dirk Melcher + 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 + + KEEP didn't work properly on the SAVE procedure. Fixed. Thanks + to Ralf Geschke 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 + + 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 + + Some systems didn't like the way open_file was coded. Thanks to + Hankin 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 + + The SAVE procedure didn't save long string variables properly. + Fixed by this patch. Thanks to Hankin + 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 + + 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 + + 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 + + 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 for this + bug report. + + * list.q: (determine_layout) Allocate 1022 bytes instead of 256. + +Tue Jan 5 13:34:34 1999 Ben Pfaff + + Typo meant string format specifiers weren't checked properly. I + think that Hankin 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 + + Using $CASENUM in an expression didn't work. Here's a fix. + Thanks to Dirk Melcher 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 + + 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 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 + + 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 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 + + 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 + + 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 + + * 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 + . 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 . + + * 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 . + (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 + . + + * print.c: Needed to include alloca.h. Reported by Micah Altman + . + + * 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 . + +Thu Feb 5 00:18:21 1998 Ben Pfaff + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + . + + * get.c: (cmd_get, cmd_save_internal) Allow extraneous slash + before file specification on GET, SAVE, XSAVE. Bug reported by Dr + Eberhard W Lisse . + + * q2c.c: [!HAVE_STRERROR] Include misc/strerror.c, not + strerror.c. Bug reported by Alexandre Oliva + . + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + . 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 + + * 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 + . 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * sfm-write.c, vfm.c: [HAVE_UNISTD] #include , needed by + SunOS4. From Alexandre Oliva . + +Wed Oct 8 18:55:24 1997 Ben Pfaff + + * vfm.c: (page_to_disk) Added missing local variables. + +Tue Oct 7 20:23:17 1997 Ben Pfaff + + * 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 + + * Makefile.am: (INCLUDES) Include .. instead of $(top_srcdir). + + * common.h: (macro strerror) Remove. From Alexandre Oliva + . + + * 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 + . + + * set.q: #undef ON and OFF. From Alexandre Oliva + . + + * 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 . + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 before . + + * frequencies.q: (custom_grouped, add_percentile) Don't use a + non-constant expression as an argument to sizeof. + + * glob.c: [__WIN32__ && __BORLANDC__] When including , + 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 + + 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 + + * 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 #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 with . + +Thu Jul 10 22:13:53 1997 Ben Pfaff + + * 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 + + * 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 + + * 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 + + * get.c: Comment fix. + (cmd_save_internal) Always passes GTSV_OPT_SAVE option. + +Wed Jun 25 22:52:28 1997 Ben Pfaff + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 . + Comment fixes. + +Sun Jun 1 12:02:06 1997 Ben Pfaff + + * 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 + + * 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 + + * ascii.c, postscript.c, sfm-read.c, sfm-write.c, sort.c: Include + . 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 + + * 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 + + * 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 + + * 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 + + * postscript.c: Comment fix. + (ps_open_page) Puts scale factor in PostScript output. + +Sat Apr 26 11:49:32 1997 Ben Pfaff + + * Makefile.am: Distcleans q2c. + +Wed Apr 23 21:33:48 1997 Ben Pfaff + + * 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 + + * 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 + + * 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 + + 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 . + (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 . + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 and + 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * output.c: (outp_read_devices) Changed criteria for + distinguishing different types of lines. + +Fri Sep 20 22:52:28 1996 Ben Pfaff + + * 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 + + * 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 + + * 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 + + * 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 `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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 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 + + * 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 + + * approx.h: #includes . + + * 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 + + * 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 + + 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 + + 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 + + * 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 + + * 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 + + * 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 + + * data-out.c: Changed `#include ' 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 + + * 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 + + * 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 + + * 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 + + [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 + + * 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 + + * 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 + + * 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: diff --git a/src/automake.mk b/src/automake.mk index 7c52887b..1ffbdf3e 100644 --- a/src/automake.mk +++ b/src/automake.mk @@ -11,3 +11,5 @@ include $(top_srcdir)/src/language/automake.mk include $(top_srcdir)/src/ui/automake.mk AM_CPPFLAGS += -I$(top_srcdir)/src -I$(top_srcdir)/lib -DPKGDATADIR=\"$(pkgdatadir)\" + +EXTRA_DIST += src/OChangeLog diff --git a/src/data/ChangeLog b/src/data/ChangeLog deleted file mode 100644 index ef91902b..00000000 --- a/src/data/ChangeLog +++ /dev/null @@ -1,2541 +0,0 @@ -2008-07-25 Ben Pfaff - - * 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 - - * case-ordering.c case-ordering.h: Removed the value_cnt - associated with the ordering structure. - -2008-07-16 Jason Stover - - * category.c (cat_get_category_count): New function. - -2008-05-15 Ben Pfaff - - 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 - - * data-in.c: If category is custom currency, then use - numeric format for input. - -2008-03-06 Ben Pfaff - - * 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 - - * 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 - - 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 - - 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 - - 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 - - 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 - - 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 - - psql-reader.c psql-reader.h: New files. Thanks to Ben Pfaff - for reviewing this code. - -2008-02-02 Ben Pfaff - - 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 - - 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 - - * settings.c settings.h: Moved static variables into a - single struct. Renamed functions to have a settings_ prefix. - -2008-01-14 John Darrington - - * data-out.c (output_AHEX): Corrected number of bytes in - call to output_hex. Closes bug #22011 - -2008-01-02 John Darrington - - * 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 - - 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 - - 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 . - -2007-12-04 Ben Pfaff - - * identifier.c (lex_id_match_n): New function. - (lex_id_match): Reimplement in terms of lex_id_match_n. - -2007-11-24 Ben Pfaff - - * automake.mk (src_data_libdata_a_SOURCES): Add val-type.h, to fix - make distcheck. - -2007-11-24 Ben Pfaff - - Fix warning reported when reading back system files that include - very long string variables. Thanks to Guido Gay 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 - - Properly write variables that include a range of missing values to - system files. Thanks to Guido Gay 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 - - 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 - - * 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 - - 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 - - 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 . - -2007-11-03 Ben Pfaff - - 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 - - * 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 - - * 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 - - 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 - - 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 - - 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 - - * 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 - - * 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 - - * dictionary.c (dict_clone): Copy case indexes from cloned - dictionary. Fixes bug #21061. Reviewed by John Darrington. - -2007-09-13 John Darrington - - * value.c value.h (create_value): New function. - -2007-09-12 Ben Pfaff - - 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 - - * 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 - - * dictionary.c (dict_dump): New function. - -2007-08-12 Ben Pfaff - - 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 - - * automake.mk: Add case-map.c, case-map.h. - - * case-map.c: New file. - - * case-map.h: New file. - -2007-08-12 Ben Pfaff - - * 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 - - * 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 - - 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 - - Fix bug reported by Jason Stover. - * settings.c: Move get_termcap_viewport and in particular the - #include for 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 - - 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 - - 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 - - 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 - - * procedure.c procedure.h: Added callbacks which get invoked whenever - a dataset's transformation chain changes. - -2007-07-24 Ben Pfaff - - 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 - - Fix bug #20427. - * por-file-writer.c (write_variables): Write weight variable. - Reviewed by John Darrington. - -2007-07-23 Ben Pfaff - - 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 - - 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 - - * 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 - - 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 - - * 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 - - * 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 - - * sfm-reader.c: Respect case_cnt field in file header. - -2007-07-01 John Darrington - - * transformation.c transformation.h (trns_chain_execute): Changed the - signature (Patch #6057) - -2007-06-10 Ben Pfaff - - * 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 - - 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 - - Add datasheet code. - - * automake.mk: Add new files. - - * datasheet.c: New file. - - * datasheet.h: New file. - -2007-06-06 Ben Pfaff - - 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 - - * value.h (value_cnt_from_width): New function. - - * variable.c (var_get_value_cnt): Use new function. - -2007-06-06 Ben Pfaff - - 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 - - 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 - - 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 - - "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 - - 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 - - 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 - - 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 - - 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 - - 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 - - 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 - - * category.c: Removed redundant #include - -2007-05-06 Ben Pfaff - - 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 - - * 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 - - * 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 - - * Deleted existing category.h and moved cat-routines.h into - category.h Encapsulated struct cat_vals better. - -2007-04-19 John Darrington - - * 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 - - * 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 - - * procedure.c: Adapt to new deque data structure. - -Mon Feb 19 10:53:21 2007 John McCabe-Dansted - Ben Pfaff - - * 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 - - * make-file.c: Don't include mkstemp.h, because gnulib now causes - to have the same effect. - -Sun Feb 18 11:20:24 2007 Ben Pfaff - - * por-file-reader.c: Add missing _() around messages. - -Sun Feb 11 20:44:13 2007 Ben Pfaff - - * make-file.c: Include "mkstemp.h", without which linking on - mingw32 fails. - -Thu Feb 8 14:59:05 2007 Ben Pfaff - - 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 - - * dictionary.c (dict_create_vector_assert): New function. - -Wed Feb 7 21:25:15 2007 Ben Pfaff - - * file-name.c (fn_normalize): Correct name of function - fn_is_special. Thanks to John McCabe-Dansted - for pointing this out. - -Thu Feb 1 16:53:37 2007 Ben Pfaff - - 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 - - * case.c (case_is_null): Change return type to bool. - -Mon Jan 15 10:57:28 2007 Ben Pfaff - - 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 - - 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 - - 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 - - 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - 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 - - * 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 - - 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 - - * 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 - - * 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 - - * calendar.c (calendar_days_in_month): New function. - -Mon Dec 11 07:53:39 2006 Ben Pfaff - - * 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 - - * 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 - - * dictionary.c (dict_delete_consecutive_vars): New function. - -Sat Dec 9 20:08:25 2006 Ben Pfaff - - * 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 - - * format.c (fmt_dollar_template): Use user's decimal point - character. Add assertion. - -Sat Dec 9 20:02:25 2006 Ben Pfaff - - * 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 - - * data-out.c (output_scientific): Fix bad assumption that "buf" is - null-terminated. - -Sat Dec 9 17:23:23 2006 Ben Pfaff - - 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 - - * 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 - - * 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 - - 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 - - * variable.c variable.h (value_dup): New function. - -Mon Dec 4 22:20:17 2006 Ben Pfaff - - 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 - - * 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 - - 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 - - * 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 - - 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 - - * 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 - - * 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 - - 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 - - * 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 - - * 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 - - * data-out.c: (num_to_string) Removed, because it was dead code. - -Tue Oct 31 18:09:24 2006 Ben Pfaff - - * data-in.c (parse_trailer): Fix error message. - -Sat Oct 28 11:56:50 2006 Ben Pfaff - - * format.c (fmt_is_binary): New function. - -Thu Oct 19 22:59:56 WST 2006 John Darrington - - * procedure.c procedure.h: Encapsulated the static data into a single - struct. - -Sat Oct 14 16:56:44 2006 Ben Pfaff - - * casefile.c (casereader_read_xfer): Always initialize the case, - even on an error condition. - -Wed Sep 27 09:37:49 WST 2006 John Darrington - - * procedure.c (case_limit_trns_proc): Fixed buglet which rendered the - entire function useless. - -Mon Sep 25 17:11:46 WST 2006 John Darrington - - * 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 - - * variable.c: (width_to_bytes) Rephrase code for clarify. - -Sun Jul 16 19:52:03 2006 Ben Pfaff - - * 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 - - * 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 - - * 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 - - 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 - - Fix link error noted by Jason Stover. - - * storage-stream.c: Include . - -Tue Jul 4 08:47:35 2006 Ben Pfaff - - 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 - - * 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 - - * 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 - - * 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 - - 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 - - * format.c (measure_is_valid): Really return false when m >= - n_MEASURES. - -Tue Jun 6 18:46:26 2006 Ben Pfaff - - 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 - - * settings.c: Added call to i18n{done, init}. - -Tue May 9 21:09:17 2006 Ben Pfaff - - * procedure.h: Add WARN_UNUSED_RESULT to procedure function - prototypes. - -Tue May 9 21:08:05 2006 Ben Pfaff - - * casefile.c: Convert many uses of `int' to `bool'. - -Sat May 6 22:49:43 2006 Ben Pfaff - - * transformations.c (trns_chain_destroy): Destroy chain's trns - member, to fix memory leak. - -Sat May 6 22:48:30 2006 Ben Pfaff - - * storage-stream.c (storage_source_decapsulate): Destroy case - source to fix memory leak. - -Sat May 6 22:46:47 2006 Ben Pfaff - - * 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 - - * procedure.c (proc_done): Destroy default_dict, to fix memory - leak. - -Sat May 6 22:44:44 2006 Ben Pfaff - - 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 - - * 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 - - * 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 - - * 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 - - * value-labels.h: Remove unneeded dependency on variable.h. - -Sat May 6 15:58:36 2006 Ben Pfaff - - 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 - - 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 - - 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 - - * sys-file-writer.c: (does_dict_need_translation) Fix bug: - inverted return value (!). - -Sat May 6 13:37:52 2006 Ben Pfaff - - 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 - - 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 - - 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 - - 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 - - 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 - - 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 - - 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 - - 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 - - * sys-file-reader.c: Fixed invalid read problems. - -Tue May 2 15:57:10 2006 Ben Pfaff - - * storage-stream.c: Add missing function comments. - -Tue May 2 15:50:21 2006 Ben Pfaff - - 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 - - * variable.c (width_to_bytes): Declarations must precede - statements for C90 compliance. - -Tue May 2 10:42:05 WST 2006 John Darrington - - * 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 - - 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 - - * 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 - - 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 - - * 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 - - 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 - - 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 - - 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 - - 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 - - * 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 - - * 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 - - * 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 - - 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 - - * sfm-private.h: Get rid of #defines after #error, which makes no - sense. - -Sat Apr 15 19:48:57 2006 Ben Pfaff - - 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 . - - * 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 - - 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 - - * variable.c (var_is_valid_name): Move declarations before code - for C90 compliance. - -Tue Apr 4 15:28:40 WST 2006 John Darrington - - * filename.ch (fn_interp_vars): Fixed small buglet. - -Tue Mar 28 13:47:16 WST 2006 John Darrington - - * 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 - - * category.c (cat_stored_values_destroy): Fixed memory leak. - -Fri Mar 24 18:15:41 2006 Ben Pfaff - - 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 - - * por-file-reader.c: (error) Mark as NO_RETURN. - -Sat Mar 11 15:06:07 WST 2006 John Darrington - - * settings.c: Changed default value of scompress to true. - -Sat Mar 4 13:22:51 2006 Ben Pfaff - - * 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 - - * sys-file-reader.c: Fixed bug reading compressed files. - -Thu Mar 2 08:40:33 WST 2006 John Darrington - - * Numerous renames. See src/ChangeLog for details. - - * Moved files from src directory diff --git a/src/data/OChangeLog b/src/data/OChangeLog new file mode 100644 index 00000000..ef91902b --- /dev/null +++ b/src/data/OChangeLog @@ -0,0 +1,2541 @@ +2008-07-25 Ben Pfaff + + * 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 + + * case-ordering.c case-ordering.h: Removed the value_cnt + associated with the ordering structure. + +2008-07-16 Jason Stover + + * category.c (cat_get_category_count): New function. + +2008-05-15 Ben Pfaff + + 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 + + * data-in.c: If category is custom currency, then use + numeric format for input. + +2008-03-06 Ben Pfaff + + * 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 + + * 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + psql-reader.c psql-reader.h: New files. Thanks to Ben Pfaff + for reviewing this code. + +2008-02-02 Ben Pfaff + + 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 + + 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 + + * settings.c settings.h: Moved static variables into a + single struct. Renamed functions to have a settings_ prefix. + +2008-01-14 John Darrington + + * data-out.c (output_AHEX): Corrected number of bytes in + call to output_hex. Closes bug #22011 + +2008-01-02 John Darrington + + * 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 + + 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 + + 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 . + +2007-12-04 Ben Pfaff + + * identifier.c (lex_id_match_n): New function. + (lex_id_match): Reimplement in terms of lex_id_match_n. + +2007-11-24 Ben Pfaff + + * automake.mk (src_data_libdata_a_SOURCES): Add val-type.h, to fix + make distcheck. + +2007-11-24 Ben Pfaff + + Fix warning reported when reading back system files that include + very long string variables. Thanks to Guido Gay 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 + + Properly write variables that include a range of missing values to + system files. Thanks to Guido Gay 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 + + 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 + + * 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 + + 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 + + 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 . + +2007-11-03 Ben Pfaff + + 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 + + * 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 + + * 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 + + 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 + + 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 + + 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 + + * 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 + + * 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 + + * dictionary.c (dict_clone): Copy case indexes from cloned + dictionary. Fixes bug #21061. Reviewed by John Darrington. + +2007-09-13 John Darrington + + * value.c value.h (create_value): New function. + +2007-09-12 Ben Pfaff + + 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 + + * 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 + + * dictionary.c (dict_dump): New function. + +2007-08-12 Ben Pfaff + + 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 + + * automake.mk: Add case-map.c, case-map.h. + + * case-map.c: New file. + + * case-map.h: New file. + +2007-08-12 Ben Pfaff + + * 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 + + * 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 + + 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 + + Fix bug reported by Jason Stover. + * settings.c: Move get_termcap_viewport and in particular the + #include for 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 + + 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 + + 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 + + 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 + + * procedure.c procedure.h: Added callbacks which get invoked whenever + a dataset's transformation chain changes. + +2007-07-24 Ben Pfaff + + 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 + + Fix bug #20427. + * por-file-writer.c (write_variables): Write weight variable. + Reviewed by John Darrington. + +2007-07-23 Ben Pfaff + + 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 + + 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 + + * 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 + + 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 + + * 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 + + * 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 + + * sfm-reader.c: Respect case_cnt field in file header. + +2007-07-01 John Darrington + + * transformation.c transformation.h (trns_chain_execute): Changed the + signature (Patch #6057) + +2007-06-10 Ben Pfaff + + * 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 + + 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 + + Add datasheet code. + + * automake.mk: Add new files. + + * datasheet.c: New file. + + * datasheet.h: New file. + +2007-06-06 Ben Pfaff + + 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 + + * value.h (value_cnt_from_width): New function. + + * variable.c (var_get_value_cnt): Use new function. + +2007-06-06 Ben Pfaff + + 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 + + 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 + + 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 + + "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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + * category.c: Removed redundant #include + +2007-05-06 Ben Pfaff + + 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 + + * 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 + + * 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 + + * Deleted existing category.h and moved cat-routines.h into + category.h Encapsulated struct cat_vals better. + +2007-04-19 John Darrington + + * 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 + + * 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 + + * procedure.c: Adapt to new deque data structure. + +Mon Feb 19 10:53:21 2007 John McCabe-Dansted + Ben Pfaff + + * 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 + + * make-file.c: Don't include mkstemp.h, because gnulib now causes + to have the same effect. + +Sun Feb 18 11:20:24 2007 Ben Pfaff + + * por-file-reader.c: Add missing _() around messages. + +Sun Feb 11 20:44:13 2007 Ben Pfaff + + * make-file.c: Include "mkstemp.h", without which linking on + mingw32 fails. + +Thu Feb 8 14:59:05 2007 Ben Pfaff + + 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 + + * dictionary.c (dict_create_vector_assert): New function. + +Wed Feb 7 21:25:15 2007 Ben Pfaff + + * file-name.c (fn_normalize): Correct name of function + fn_is_special. Thanks to John McCabe-Dansted + for pointing this out. + +Thu Feb 1 16:53:37 2007 Ben Pfaff + + 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 + + * case.c (case_is_null): Change return type to bool. + +Mon Jan 15 10:57:28 2007 Ben Pfaff + + 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 + + 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 + + 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 + + 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + 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 + + * 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 + + 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 + + * 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 + + * 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 + + * calendar.c (calendar_days_in_month): New function. + +Mon Dec 11 07:53:39 2006 Ben Pfaff + + * 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 + + * 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 + + * dictionary.c (dict_delete_consecutive_vars): New function. + +Sat Dec 9 20:08:25 2006 Ben Pfaff + + * 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 + + * format.c (fmt_dollar_template): Use user's decimal point + character. Add assertion. + +Sat Dec 9 20:02:25 2006 Ben Pfaff + + * 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 + + * data-out.c (output_scientific): Fix bad assumption that "buf" is + null-terminated. + +Sat Dec 9 17:23:23 2006 Ben Pfaff + + 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 + + * 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 + + * 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 + + 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 + + * variable.c variable.h (value_dup): New function. + +Mon Dec 4 22:20:17 2006 Ben Pfaff + + 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 + + * 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 + + 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 + + * 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 + + 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 + + * 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 + + * 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 + + 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 + + * 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 + + * 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 + + * data-out.c: (num_to_string) Removed, because it was dead code. + +Tue Oct 31 18:09:24 2006 Ben Pfaff + + * data-in.c (parse_trailer): Fix error message. + +Sat Oct 28 11:56:50 2006 Ben Pfaff + + * format.c (fmt_is_binary): New function. + +Thu Oct 19 22:59:56 WST 2006 John Darrington + + * procedure.c procedure.h: Encapsulated the static data into a single + struct. + +Sat Oct 14 16:56:44 2006 Ben Pfaff + + * casefile.c (casereader_read_xfer): Always initialize the case, + even on an error condition. + +Wed Sep 27 09:37:49 WST 2006 John Darrington + + * procedure.c (case_limit_trns_proc): Fixed buglet which rendered the + entire function useless. + +Mon Sep 25 17:11:46 WST 2006 John Darrington + + * 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 + + * variable.c: (width_to_bytes) Rephrase code for clarify. + +Sun Jul 16 19:52:03 2006 Ben Pfaff + + * 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 + + * 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 + + * 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 + + 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 + + Fix link error noted by Jason Stover. + + * storage-stream.c: Include . + +Tue Jul 4 08:47:35 2006 Ben Pfaff + + 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 + + * 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 + + * 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 + + * 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 + + 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 + + * format.c (measure_is_valid): Really return false when m >= + n_MEASURES. + +Tue Jun 6 18:46:26 2006 Ben Pfaff + + 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 + + * settings.c: Added call to i18n{done, init}. + +Tue May 9 21:09:17 2006 Ben Pfaff + + * procedure.h: Add WARN_UNUSED_RESULT to procedure function + prototypes. + +Tue May 9 21:08:05 2006 Ben Pfaff + + * casefile.c: Convert many uses of `int' to `bool'. + +Sat May 6 22:49:43 2006 Ben Pfaff + + * transformations.c (trns_chain_destroy): Destroy chain's trns + member, to fix memory leak. + +Sat May 6 22:48:30 2006 Ben Pfaff + + * storage-stream.c (storage_source_decapsulate): Destroy case + source to fix memory leak. + +Sat May 6 22:46:47 2006 Ben Pfaff + + * 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 + + * procedure.c (proc_done): Destroy default_dict, to fix memory + leak. + +Sat May 6 22:44:44 2006 Ben Pfaff + + 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 + + * 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 + + * 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 + + * 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 + + * value-labels.h: Remove unneeded dependency on variable.h. + +Sat May 6 15:58:36 2006 Ben Pfaff + + 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 + + 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 + + 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 + + * sys-file-writer.c: (does_dict_need_translation) Fix bug: + inverted return value (!). + +Sat May 6 13:37:52 2006 Ben Pfaff + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + * sys-file-reader.c: Fixed invalid read problems. + +Tue May 2 15:57:10 2006 Ben Pfaff + + * storage-stream.c: Add missing function comments. + +Tue May 2 15:50:21 2006 Ben Pfaff + + 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 + + * variable.c (width_to_bytes): Declarations must precede + statements for C90 compliance. + +Tue May 2 10:42:05 WST 2006 John Darrington + + * 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 + + 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 + + * 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 + + 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 + + * 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 + + 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 + + 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 + + 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 + + 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 + + * 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 + + * 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 + + * 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 + + 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 + + * sfm-private.h: Get rid of #defines after #error, which makes no + sense. + +Sat Apr 15 19:48:57 2006 Ben Pfaff + + 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 . + + * 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 + + 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 + + * variable.c (var_is_valid_name): Move declarations before code + for C90 compliance. + +Tue Apr 4 15:28:40 WST 2006 John Darrington + + * filename.ch (fn_interp_vars): Fixed small buglet. + +Tue Mar 28 13:47:16 WST 2006 John Darrington + + * 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 + + * category.c (cat_stored_values_destroy): Fixed memory leak. + +Fri Mar 24 18:15:41 2006 Ben Pfaff + + 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 + + * por-file-reader.c: (error) Mark as NO_RETURN. + +Sat Mar 11 15:06:07 WST 2006 John Darrington + + * settings.c: Changed default value of scompress to true. + +Sat Mar 4 13:22:51 2006 Ben Pfaff + + * 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 + + * sys-file-reader.c: Fixed bug reading compressed files. + +Thu Mar 2 08:40:33 WST 2006 John Darrington + + * Numerous renames. See src/ChangeLog for details. + + * Moved files from src directory diff --git a/src/data/automake.mk b/src/data/automake.mk index 064d668b..a6d18581 100644 --- a/src/data/automake.mk +++ b/src/data/automake.mk @@ -103,3 +103,5 @@ src_data_libdata_a_SOURCES = \ src/data/variable.c \ src/data/vector.c \ src/data/vector.h + +EXTRA_DIST += src/data/OChangeLog diff --git a/src/language/ChangeLog b/src/language/ChangeLog deleted file mode 100644 index a32af121..00000000 --- a/src/language/ChangeLog +++ /dev/null @@ -1,250 +0,0 @@ -2008-03-04 Ben Pfaff - - Patch #6441. Reviewed by John Darrington. - - * command.def: Add DEBUG FORMAT GUESSER command. - -2007-12-04 Ben Pfaff - - * command.def: Add GET DATA command. - -2007-11-05 Ben Pfaff - - 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 . - -2007-09-22 Ben Pfaff - - Bug #21128. Reviewed by John Darrington. - - * command.def: Add DEBUG PAPER SIZE command. - -2007-09-05 John Darrington - - * 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 - - * command.def: Add DEBUG DATASHEET command. Remove DEBUG CASEFILE - command. - -2007-03-18 Ben Pfaff - - * 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 - - 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 - - * 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 - - * command.def: Add DELETE VARS. - -Sat Dec 16 22:15:55 2006 Ben Pfaff - - 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 - - * syntax-file.c (read_syntax_file): Always read GETL_BATCH lines. - -Wed Nov 29 19:35:44 WST 2006 John Darrington - - * 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 - - * command.def: HOST command needs F_KEEP_FINAL_TOKEN. - -Sat Oct 28 16:15:56 WST 2006 John Darrington - - * linebuffer.c linebuffer.h: Moved getl_buf from here, into - lexer/lexer.c - -Thu Oct 26 20:19:00 2006 Ben Pfaff - - * command.def: Add DEBUG FLOAT FORMAT. - -Fri Oct 20 10:59:06 WST 2006 John Darrington - - * command.def: Added additional unimpl commands. - -Sun Oct 15 19:38:55 2006 Ben Pfaff - - * 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 - - 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 - - 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 - - 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 - - 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 - - Remove vestiges of FILE TYPE support. - - * command.def: Mark FILE TYPE, RECORD TYPE unimplemented. - -Wed Apr 26 21:13:46 2006 Ben Pfaff - - 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 - - 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 - - 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 - - * 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 - - * Moved files from src directory diff --git a/src/language/OChangeLog b/src/language/OChangeLog new file mode 100644 index 00000000..a32af121 --- /dev/null +++ b/src/language/OChangeLog @@ -0,0 +1,250 @@ +2008-03-04 Ben Pfaff + + Patch #6441. Reviewed by John Darrington. + + * command.def: Add DEBUG FORMAT GUESSER command. + +2007-12-04 Ben Pfaff + + * command.def: Add GET DATA command. + +2007-11-05 Ben Pfaff + + 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 . + +2007-09-22 Ben Pfaff + + Bug #21128. Reviewed by John Darrington. + + * command.def: Add DEBUG PAPER SIZE command. + +2007-09-05 John Darrington + + * 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 + + * command.def: Add DEBUG DATASHEET command. Remove DEBUG CASEFILE + command. + +2007-03-18 Ben Pfaff + + * 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 + + 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 + + * 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 + + * command.def: Add DELETE VARS. + +Sat Dec 16 22:15:55 2006 Ben Pfaff + + 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 + + * syntax-file.c (read_syntax_file): Always read GETL_BATCH lines. + +Wed Nov 29 19:35:44 WST 2006 John Darrington + + * 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 + + * command.def: HOST command needs F_KEEP_FINAL_TOKEN. + +Sat Oct 28 16:15:56 WST 2006 John Darrington + + * linebuffer.c linebuffer.h: Moved getl_buf from here, into + lexer/lexer.c + +Thu Oct 26 20:19:00 2006 Ben Pfaff + + * command.def: Add DEBUG FLOAT FORMAT. + +Fri Oct 20 10:59:06 WST 2006 John Darrington + + * command.def: Added additional unimpl commands. + +Sun Oct 15 19:38:55 2006 Ben Pfaff + + * 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 + + 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 + + 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 + + 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 + + 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 + + Remove vestiges of FILE TYPE support. + + * command.def: Mark FILE TYPE, RECORD TYPE unimplemented. + +Wed Apr 26 21:13:46 2006 Ben Pfaff + + 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 + + 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 + + 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 + + * 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 + + * Moved files from src directory diff --git a/src/language/automake.mk b/src/language/automake.mk index 4b467ded..d5ebb10e 100644 --- a/src/language/automake.mk +++ b/src/language/automake.mk @@ -40,3 +40,5 @@ nodist_src_language_liblanguage_a_SOURCES = \ $(src_language_stats_built_sources) \ $(language_tests_built_sources) \ $(expressions_built_sources) + +EXTRA_DIST += src/language/OChangeLog diff --git a/src/language/control/ChangeLog b/src/language/control/ChangeLog deleted file mode 100644 index 3421bdf4..00000000 --- a/src/language/control/ChangeLog +++ /dev/null @@ -1,149 +0,0 @@ -2008-05-15 Ben Pfaff - - 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 - - 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 - - * 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 - - Fix LOOP. Thanks to Daniel Williams - 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 - - * 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 - - 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 - - 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 - - * 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 - - * repeat.c: Eliminated references to extern variable getl_buf. - -Sun May 7 18:18:33 2006 Ben Pfaff - - 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 - - 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 - - * Moved files from src directory diff --git a/src/language/control/OChangeLog b/src/language/control/OChangeLog new file mode 100644 index 00000000..3421bdf4 --- /dev/null +++ b/src/language/control/OChangeLog @@ -0,0 +1,149 @@ +2008-05-15 Ben Pfaff + + 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 + + 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 + + * 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 + + Fix LOOP. Thanks to Daniel Williams + 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 + + * 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 + + 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 + + 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 + + * 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 + + * repeat.c: Eliminated references to extern variable getl_buf. + +Sun May 7 18:18:33 2006 Ben Pfaff + + 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 + + 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 + + * Moved files from src directory diff --git a/src/language/control/automake.mk b/src/language/control/automake.mk index 89ff7fee..e12813ab 100644 --- a/src/language/control/automake.mk +++ b/src/language/control/automake.mk @@ -10,3 +10,4 @@ language_control_sources = \ src/language/control/repeat.c \ src/language/control/repeat.h +EXTRA_DIST += src/language/control/OChangeLog diff --git a/src/language/data-io/ChangeLog b/src/language/data-io/ChangeLog deleted file mode 100644 index 1eda1c05..00000000 --- a/src/language/data-io/ChangeLog +++ /dev/null @@ -1,637 +0,0 @@ -2008-05-15 Ben Pfaff - - 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 - - * get-data.c: Add a /BSIZE subcommand to PSQL reader. - -2008-02-02 John Darrington - - * get-data.c (cmd_get_data): Support PSQL type. - -2007-12-07 Ben Pfaff - - 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 - - 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 - - * placement-parser.c (parse_column): New function. - (parse_column_range): Add `base' argument. Update all callers. - -2007-12-04 Ben Pfaff - - 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 - - * 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 - - 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 - - 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 - - * 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 - - 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 - - * 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 - - * get.c (parse_read_command): Compact the values in the target - dictionary, to save space. - -2007-08-12 Ben Pfaff - - * 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 - - * get.c (case_map_get_value_cnt): New function. - -2007-07-25 Ben Pfaff - - Fix bug #17100. - * data-list.c (read_from_data_list_fixed): Handle multi-record - DATA LIST correctly. - -2007-07-11 Ben Pfaff - - * get.c (map_case): Create destination case instead of leaving it - undefined. Fixes bug #20285. - Reviewed by John Darrington. - -2007-06-06 Ben Pfaff - - * get.c: Essentially rewrite MATCH FILES to support FIRST and - LAST. - -2007-06-06 Ben Pfaff - - 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 - - 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 - - * file-handle.q (fh_parse): Update to new fh_create_file - prototype. - -Sat Dec 16 22:16:18 2006 Ben Pfaff - - 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 - - * list.q (cmd_list): Use new var_create, var_destroy functions. - -Thu Nov 30 21:51:58 2006 Ben Pfaff - - * 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 - - * 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 - - 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 - - * 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 - - * 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 - - * 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 - - * data-reader.c: Eliminated references to extern variable getl_buf - -Sat Aug 5 08:25:07 2006 Ben Pfaff - - 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 - - * print.c (parse_specs): Allow a comma between specifications. - -Sun Jul 16 19:57:10 2006 Ben Pfaff - - * 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 - - 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 - - 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 - - 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 - - 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 - - * 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 - - * get.c (cmd_match_files): Fix memory leak replacing default_dict. - -Sat May 6 22:25:09 2006 Ben Pfaff - - 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 - - * get.c: (mtf_merge_dictionary) Fix value label memory leak. - -Sat May 6 13:51:16 2006 Ben Pfaff - - 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 - - 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 - - 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 - - * 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 - - 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 - - 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 - - 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 - - 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 - - * 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 - - 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 - - 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 - - * data-list.c: Add prototype to suppress warning for - cmd_repeating_data(). - -Thu Mar 2 08:40:33 WST 2006 John Darrington - - * Moved files from src directory diff --git a/src/language/data-io/OChangeLog b/src/language/data-io/OChangeLog new file mode 100644 index 00000000..1eda1c05 --- /dev/null +++ b/src/language/data-io/OChangeLog @@ -0,0 +1,637 @@ +2008-05-15 Ben Pfaff + + 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 + + * get-data.c: Add a /BSIZE subcommand to PSQL reader. + +2008-02-02 John Darrington + + * get-data.c (cmd_get_data): Support PSQL type. + +2007-12-07 Ben Pfaff + + 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 + + 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 + + * placement-parser.c (parse_column): New function. + (parse_column_range): Add `base' argument. Update all callers. + +2007-12-04 Ben Pfaff + + 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 + + * 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 + + 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 + + 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 + + * 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 + + 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 + + * 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 + + * get.c (parse_read_command): Compact the values in the target + dictionary, to save space. + +2007-08-12 Ben Pfaff + + * 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 + + * get.c (case_map_get_value_cnt): New function. + +2007-07-25 Ben Pfaff + + Fix bug #17100. + * data-list.c (read_from_data_list_fixed): Handle multi-record + DATA LIST correctly. + +2007-07-11 Ben Pfaff + + * get.c (map_case): Create destination case instead of leaving it + undefined. Fixes bug #20285. + Reviewed by John Darrington. + +2007-06-06 Ben Pfaff + + * get.c: Essentially rewrite MATCH FILES to support FIRST and + LAST. + +2007-06-06 Ben Pfaff + + 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 + + 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 + + * file-handle.q (fh_parse): Update to new fh_create_file + prototype. + +Sat Dec 16 22:16:18 2006 Ben Pfaff + + 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 + + * list.q (cmd_list): Use new var_create, var_destroy functions. + +Thu Nov 30 21:51:58 2006 Ben Pfaff + + * 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 + + * 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 + + 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 + + * 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 + + * 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 + + * 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 + + * data-reader.c: Eliminated references to extern variable getl_buf + +Sat Aug 5 08:25:07 2006 Ben Pfaff + + 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 + + * print.c (parse_specs): Allow a comma between specifications. + +Sun Jul 16 19:57:10 2006 Ben Pfaff + + * 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 + + 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 + + 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 + + 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 + + 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 + + * 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 + + * get.c (cmd_match_files): Fix memory leak replacing default_dict. + +Sat May 6 22:25:09 2006 Ben Pfaff + + 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 + + * get.c: (mtf_merge_dictionary) Fix value label memory leak. + +Sat May 6 13:51:16 2006 Ben Pfaff + + 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 + + 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 + + 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 + + * 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 + + 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 + + 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 + + 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 + + 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 + + * 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 + + 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 + + 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 + + * data-list.c: Add prototype to suppress warning for + cmd_repeating_data(). + +Thu Mar 2 08:40:33 WST 2006 John Darrington + + * Moved files from src directory diff --git a/src/language/data-io/automake.mk b/src/language/data-io/automake.mk index 9cb6b837..db209be8 100644 --- a/src/language/data-io/automake.mk +++ b/src/language/data-io/automake.mk @@ -26,3 +26,4 @@ all_q_sources += $(src_language_data_io_built_sources:.c=.q) EXTRA_DIST += $(src_language_data_io_built_sources:.c=.q) CLEANFILES += $(src_language_data_io_built_sources) +EXTRA_DIST += src/language/data-io/OChangeLog diff --git a/src/language/dictionary/ChangeLog b/src/language/dictionary/ChangeLog deleted file mode 100644 index 20778a24..00000000 --- a/src/language/dictionary/ChangeLog +++ /dev/null @@ -1,118 +0,0 @@ -2008-03-16 Ben Pfaff - - 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 - - * sys-file-info.c (display_variables): Fix DISPLAY LABELS. Thanks - to Guido Gay for reporting this bug. - -2007-11-03 Ben Pfaff - - 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 - - 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 - - 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 - - * 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 - - * 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 - - * sys-file-info.c (cmd_sysfile_info): Report floating-point format - used in system file. - -Sat Dec 9 18:44:26 2006 Ben Pfaff - - * 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 - - * 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 - - * numeric.c: (cmd_string) Check that output format is valid. - Simplify parsing. - -Wed Nov 1 20:50:54 2006 Ben Pfaff - - * 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 - - * apply-dictionary.c: (cmd_apply_dictionary) Use new function - val_labs_can_set_width(). - -Sat May 6 10:43:22 2006 Ben Pfaff - - 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 - - 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 - - * Moved files from src directory diff --git a/src/language/dictionary/OChangeLog b/src/language/dictionary/OChangeLog new file mode 100644 index 00000000..20778a24 --- /dev/null +++ b/src/language/dictionary/OChangeLog @@ -0,0 +1,118 @@ +2008-03-16 Ben Pfaff + + 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 + + * sys-file-info.c (display_variables): Fix DISPLAY LABELS. Thanks + to Guido Gay for reporting this bug. + +2007-11-03 Ben Pfaff + + 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 + + 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 + + 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 + + * 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 + + * 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 + + * sys-file-info.c (cmd_sysfile_info): Report floating-point format + used in system file. + +Sat Dec 9 18:44:26 2006 Ben Pfaff + + * 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 + + * 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 + + * numeric.c: (cmd_string) Check that output format is valid. + Simplify parsing. + +Wed Nov 1 20:50:54 2006 Ben Pfaff + + * 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 + + * apply-dictionary.c: (cmd_apply_dictionary) Use new function + val_labs_can_set_width(). + +Sat May 6 10:43:22 2006 Ben Pfaff + + 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 + + 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 + + * Moved files from src directory diff --git a/src/language/dictionary/automake.mk b/src/language/dictionary/automake.mk index a33a84f9..825832a2 100644 --- a/src/language/dictionary/automake.mk +++ b/src/language/dictionary/automake.mk @@ -17,3 +17,4 @@ language_dictionary_sources = \ src/language/dictionary/variable-display.c \ src/language/dictionary/weight.c +EXTRA_DIST += src/language/dictionary/OChangeLog diff --git a/src/language/expressions/ChangeLog b/src/language/expressions/ChangeLog deleted file mode 100644 index 18c9441f..00000000 --- a/src/language/expressions/ChangeLog +++ /dev/null @@ -1,147 +0,0 @@ -2008-05-15 Ben Pfaff - - Patch #6512. - - * evaluate.c (expr_evaluate): Use gsl_finite instead of finite, as - a stopgap measure for portability until appropriate gnulib modules - are available. - - * helpers.h (copy_string): Ditto. - -2007-10-12 Ben Pfaff - - Patch #6224. - - * helpers.c: Don't need our own trunc function implementation - anymore, since we now use the one from gnulib. - -2007-07-17 Ben Pfaff - - Patch #19335. Reviewed by John Darrington. - - * evaluate.h.pl: Use strict and all warnings. Fix warnings that - this triggers. - - * evaluate.inc.pl: Ditto. - - * generate.pl: Ditto. - - * operations.h.pl: Ditto. - - * optimize.inc.pl: Ditto. - - * parse.inc.pl: Ditto. - -2007-04-15 Ben Pfaff - - * parse.c (expr_get_function): New function. - (expr_get_function_cnt): New function. - (expr_operation_get_name): New function. - (expr_operation_get_prototype): New function. - (expr_operation_get_arg_cnt): New function. - -Thu Feb 1 06:59:27 2007 Ben Pfaff - - * parse.c (parse_function): Accept TO in any case for use with - n-ary functions. Fixes bug #18923. Thanks to John Darrington for - reporting this bug. - -Sat Dec 16 12:20:14 2006 Ben Pfaff - - * operations.def: Reverse order of arguments to DATEDIFF, for - compatibility. Thanks to Daniel Williams - for reporting this bug. - -Wed Dec 13 19:30:26 2006 Ben Pfaff - - Implement support for DATESUM, DATEDIFF expression functions. See - patch #5637. - - * helpers.c (enum date_unit): New enum. - [!HAVE_TRUNC] (trunc): New function. - (recognize_unit): New function. - (year_diff): New function. - (month_diff): New function. - (quarter_diff): New function. - (date_unit_duration): New function. - (expr_date_difference): New function. - (enum date_sum_method): New function. - (recognize_method): New function. - (add_months): New function. - (expr_date_sum): New function. - - * operations.def: Implement DATESUM, DATEDIFF functions. Mark - VALUELABEL no_abbrev. - -Sun Dec 10 16:49:33 2006 Ben Pfaff - - * operations.def: Implement VALUELABEL function. Add DATEDIFF, - DATESUM unimplemented stubs. - - * parse.c (type_coercion_core): Add support for OP_var type, which - is a name for a numeric or string variable. - (is_compatible) New function. - (check_operator) Only require values to be compatible with their - expected types, not identical. - (is_valid_node) Ditto. - (compare_names) Always return mismatch if the command name can't - be abbreviated. - (lookup_function_helper) Pass the new OPF_NO_ABBREV flag to the - comparison function. - - * generate.pl (init_all_types): Add support for a type just called - "var" that may be a numeric or string variable name. Also, add a - no_abbrev option that prevents a function name from being - abbreviated (in case of naming conflict otherwise). - - * parse.inc.pl: Output OPF_NO_ABBREV flag. - - * private.h: Add OPF_NO_ABBREV flag. - -Wed Jul 12 21:03:17 2006 Ben Pfaff - - * evaluate.c (cmd_debug_evaluate): Don't try to resize a null - case. - -Fri Jun 9 13:59:15 2006 Ben Pfaff - - Reform string library. - - * generate.pl (init_all_types): `struct fixed_string' is now - `struct substring'. - -Sun May 7 10:05:42 WST 2006 John Darrington - - * evaluate.c: Removed call to copy_mangle, and replaced with the - original buf_copy_rpad. - -Mon May 1 15:11:48 2006 Ben Pfaff - - Prohibit LAG following TEMPORARY. This both matches SPSS behavior - and fixes a bug: we saved the cases for LAG before TEMPORARY but - allowed access to variables created afterward anyhow (which could - cause a segfault). - - * generate.pl: Parse "perm_only" flag on operations. - - * operations.def: Add "perm_only" flag to LAG operations. - - * parse.c: Disallow OPF_PERM_ONLY operations after TEMPORARY. - - * parse.inc.pl: Output OPF_PERM_ONLY flag for "perm_only" - operations. - - * private.h: Add OPF_PERM_ONLY flag. - -Sun Apr 23 22:06:45 2006 Ben Pfaff - - Continue reforming error message support. In this phase, get rid - of message "titles" and put the message text in `struct error'. - Now `struct error' encapsulates a message more properly. - - * helpers.c: (expr_error) Use err_msg() instead of err_vmsg(). - Format message ourselves. - -Thu Mar 2 08:40:33 WST 2006 John Darrington - - * Moved files from src directory diff --git a/src/language/expressions/OChangeLog b/src/language/expressions/OChangeLog new file mode 100644 index 00000000..18c9441f --- /dev/null +++ b/src/language/expressions/OChangeLog @@ -0,0 +1,147 @@ +2008-05-15 Ben Pfaff + + Patch #6512. + + * evaluate.c (expr_evaluate): Use gsl_finite instead of finite, as + a stopgap measure for portability until appropriate gnulib modules + are available. + + * helpers.h (copy_string): Ditto. + +2007-10-12 Ben Pfaff + + Patch #6224. + + * helpers.c: Don't need our own trunc function implementation + anymore, since we now use the one from gnulib. + +2007-07-17 Ben Pfaff + + Patch #19335. Reviewed by John Darrington. + + * evaluate.h.pl: Use strict and all warnings. Fix warnings that + this triggers. + + * evaluate.inc.pl: Ditto. + + * generate.pl: Ditto. + + * operations.h.pl: Ditto. + + * optimize.inc.pl: Ditto. + + * parse.inc.pl: Ditto. + +2007-04-15 Ben Pfaff + + * parse.c (expr_get_function): New function. + (expr_get_function_cnt): New function. + (expr_operation_get_name): New function. + (expr_operation_get_prototype): New function. + (expr_operation_get_arg_cnt): New function. + +Thu Feb 1 06:59:27 2007 Ben Pfaff + + * parse.c (parse_function): Accept TO in any case for use with + n-ary functions. Fixes bug #18923. Thanks to John Darrington for + reporting this bug. + +Sat Dec 16 12:20:14 2006 Ben Pfaff + + * operations.def: Reverse order of arguments to DATEDIFF, for + compatibility. Thanks to Daniel Williams + for reporting this bug. + +Wed Dec 13 19:30:26 2006 Ben Pfaff + + Implement support for DATESUM, DATEDIFF expression functions. See + patch #5637. + + * helpers.c (enum date_unit): New enum. + [!HAVE_TRUNC] (trunc): New function. + (recognize_unit): New function. + (year_diff): New function. + (month_diff): New function. + (quarter_diff): New function. + (date_unit_duration): New function. + (expr_date_difference): New function. + (enum date_sum_method): New function. + (recognize_method): New function. + (add_months): New function. + (expr_date_sum): New function. + + * operations.def: Implement DATESUM, DATEDIFF functions. Mark + VALUELABEL no_abbrev. + +Sun Dec 10 16:49:33 2006 Ben Pfaff + + * operations.def: Implement VALUELABEL function. Add DATEDIFF, + DATESUM unimplemented stubs. + + * parse.c (type_coercion_core): Add support for OP_var type, which + is a name for a numeric or string variable. + (is_compatible) New function. + (check_operator) Only require values to be compatible with their + expected types, not identical. + (is_valid_node) Ditto. + (compare_names) Always return mismatch if the command name can't + be abbreviated. + (lookup_function_helper) Pass the new OPF_NO_ABBREV flag to the + comparison function. + + * generate.pl (init_all_types): Add support for a type just called + "var" that may be a numeric or string variable name. Also, add a + no_abbrev option that prevents a function name from being + abbreviated (in case of naming conflict otherwise). + + * parse.inc.pl: Output OPF_NO_ABBREV flag. + + * private.h: Add OPF_NO_ABBREV flag. + +Wed Jul 12 21:03:17 2006 Ben Pfaff + + * evaluate.c (cmd_debug_evaluate): Don't try to resize a null + case. + +Fri Jun 9 13:59:15 2006 Ben Pfaff + + Reform string library. + + * generate.pl (init_all_types): `struct fixed_string' is now + `struct substring'. + +Sun May 7 10:05:42 WST 2006 John Darrington + + * evaluate.c: Removed call to copy_mangle, and replaced with the + original buf_copy_rpad. + +Mon May 1 15:11:48 2006 Ben Pfaff + + Prohibit LAG following TEMPORARY. This both matches SPSS behavior + and fixes a bug: we saved the cases for LAG before TEMPORARY but + allowed access to variables created afterward anyhow (which could + cause a segfault). + + * generate.pl: Parse "perm_only" flag on operations. + + * operations.def: Add "perm_only" flag to LAG operations. + + * parse.c: Disallow OPF_PERM_ONLY operations after TEMPORARY. + + * parse.inc.pl: Output OPF_PERM_ONLY flag for "perm_only" + operations. + + * private.h: Add OPF_PERM_ONLY flag. + +Sun Apr 23 22:06:45 2006 Ben Pfaff + + Continue reforming error message support. In this phase, get rid + of message "titles" and put the message text in `struct error'. + Now `struct error' encapsulates a message more properly. + + * helpers.c: (expr_error) Use err_msg() instead of err_vmsg(). + Format message ourselves. + +Thu Mar 2 08:40:33 WST 2006 John Darrington + + * Moved files from src directory diff --git a/src/language/expressions/automake.mk b/src/language/expressions/automake.mk index 630445df..bc4e830d 100644 --- a/src/language/expressions/automake.mk +++ b/src/language/expressions/automake.mk @@ -37,3 +37,5 @@ generate_from_pl = $(MKDIR_P) `dirname $@` && \ .inc.pl.inc: $(generate_from_pl) + +EXTRA_DIST += src/language/expressions/OChangeLog diff --git a/src/language/lexer/ChangeLog b/src/language/lexer/ChangeLog deleted file mode 100644 index aea10c5f..00000000 --- a/src/language/lexer/ChangeLog +++ /dev/null @@ -1,235 +0,0 @@ -2007-12-04 Ben Pfaff - - * lexer.c (lex_match_id_n): New function. - (lex_match_id): Reimplement in terms of lex_match_id_n. - -2007-08-16 Ben Pfaff - - Implement journaling. Bug #17240. - - * lexer.c (lex_get_line_raw): Pass the line read to journal_write. - -2007-06-03 Ben Pfaff - - 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 - - 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 - - * lexer.c lexer.h: Added lex_is_string function. - -2007-04-15 Ben Pfaff - - * 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 - - 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 - - * 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 - - * 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 - - * 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 - - 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 - - * 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 - - * 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 - - * 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 - - * range-parser.c (parse_number): Fix error message. - -Sat Oct 28 16:17:18 WST 2006 John Darrington - - * lexer.c lexer.h: Added a line_buffer (previously an external - reference called getl_buf). - -Thu Oct 26 20:18:03 2006 Ben Pfaff - - * 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 - - * 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 - - 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 - - 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 - - * automake.mk (src_language_lexer_liblexer_a_SOURCES): Add - variable-parser.h. - -Tue Jun 27 19:15:33 2006 Ben Pfaff - - Add auxiliary data pointer to q2c parse_ 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_ function - definition. Include aux arg in calls to custom functions. - -Tue Jun 27 12:07:34 2006 Ben Pfaff - - * 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 - - * 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 - - 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 - - * lexer.c: (lex_discard_rest_of_command) New function. - -Mon Apr 24 14:12:08 2006 Ben Pfaff - - * 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 - - * 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 - - * 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 - - * Moved files from src directory diff --git a/src/language/lexer/OChangeLog b/src/language/lexer/OChangeLog new file mode 100644 index 00000000..aea10c5f --- /dev/null +++ b/src/language/lexer/OChangeLog @@ -0,0 +1,235 @@ +2007-12-04 Ben Pfaff + + * lexer.c (lex_match_id_n): New function. + (lex_match_id): Reimplement in terms of lex_match_id_n. + +2007-08-16 Ben Pfaff + + Implement journaling. Bug #17240. + + * lexer.c (lex_get_line_raw): Pass the line read to journal_write. + +2007-06-03 Ben Pfaff + + 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 + + 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 + + * lexer.c lexer.h: Added lex_is_string function. + +2007-04-15 Ben Pfaff + + * 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 + + 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 + + * 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 + + * 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 + + * 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 + + 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 + + * 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 + + * 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 + + * 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 + + * range-parser.c (parse_number): Fix error message. + +Sat Oct 28 16:17:18 WST 2006 John Darrington + + * lexer.c lexer.h: Added a line_buffer (previously an external + reference called getl_buf). + +Thu Oct 26 20:18:03 2006 Ben Pfaff + + * 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 + + * 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 + + 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 + + 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 + + * automake.mk (src_language_lexer_liblexer_a_SOURCES): Add + variable-parser.h. + +Tue Jun 27 19:15:33 2006 Ben Pfaff + + Add auxiliary data pointer to q2c parse_ 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_ function + definition. Include aux arg in calls to custom functions. + +Tue Jun 27 12:07:34 2006 Ben Pfaff + + * 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 + + * 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 + + 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 + + * lexer.c: (lex_discard_rest_of_command) New function. + +Mon Apr 24 14:12:08 2006 Ben Pfaff + + * 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 + + * 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 + + * 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 + + * Moved files from src directory diff --git a/src/language/lexer/automake.mk b/src/language/lexer/automake.mk index f8d69963..e0efbb66 100644 --- a/src/language/lexer/automake.mk +++ b/src/language/lexer/automake.mk @@ -21,3 +21,5 @@ src/language/lexer/q2c$(EXEEXT_FOR_BUILD): $(top_srcdir)/src/language/lexer/q2c. CLEANFILES += src/language/lexer/q2c$(EXEEXT_FOR_BUILD) + +EXTRA_DIST += src/language/lexer/OChangeLog diff --git a/src/language/stats/ChangeLog b/src/language/stats/ChangeLog deleted file mode 100644 index 9dfdb062..00000000 --- a/src/language/stats/ChangeLog +++ /dev/null @@ -1,644 +0,0 @@ -2008-07-24 Jason H Stover - - * glm.q (run_glm): Dropped weight argument. - -2008-07-22 Jason H Stover - - * 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 - - * 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 - - * examine.q: Fixed bug where incorrect levels of dereferencing - were applied to pointers. - -2008-04-09 John Darrington - - * regression.q: Fix display of degrees of freedom. - -2008-04-08 Jason Stover - - * regression.q (identify_indep_vars): Don't panic unless - n_indep_vars is 0. - -2008-03-16 Ben Pfaff - - 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 - - * regression.q (run_regression): Removed code for EXPORT - subcommand. Remove use of coefficient 0 as the intercept. - -2008-02-14 John Darrington - - * examine.q: Fixed counts of missing variables. Thanks to - Jason Stover for reporting this problem. - -2008-01-02 John Darrington - - * 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 - - 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 - - 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 - - * 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 - - * regression.q (run_regression): Partial fix of memory leak, bug - 21056. - -2007-09-19 Ben Pfaff - - 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 - - * 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 - - * 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 - - * 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 - - * regression.q (identify_indep_vars): Print an error if dependent - and independent variables are the same. Fixes bug 19819. - -2007-08-12 Ben Pfaff - - * 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 - - * 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 - - 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 - - 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 - - * 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 - - * 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 - - * 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 - - * glm.q: Initial version of the GLM procedure. - -2007-06-06 Ben Pfaff - - 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 - - * regression.q (run_regression): Tell the user when the data - contain no valid cases. - -2007-05-08 Jason Stover - - * regression.q: Partial fix of bug which caused a crash if - dependent variable and independent variable were the same. - -2007-04-16 John Darrington - - * 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 - - * regression.q (run_regression): Added if (n_data >0) to fix bug - 19581. - -2007-03-29 Jason Stover - - * regression.q (prepare_data): New function. - - * regression.q (compute_moments): New function. - -2007-03-18 Ben Pfaff - - * crosstabs.q (static var write): Rename write_style to avoid - conflict with POSIX function of same name. - -2007-03-16 Jason Stover - - * regression.q (run_regression): Added support for moments. - -Sat Feb 17 08:16:00 2007 Ben Pfaff - - * flip.c (flip_sink_create): Improve error message when temporary - file cannot be created. - -Tue Feb 6 19:58:03 2007 Ben Pfaff - - * flip.c (flip_file): Give better error message on end-of-file. - -2007-02-04 Jason Stover - - * regression.q: Fixed p-value computation in the test for - individual regression coefficients. - -Mon Jan 15 11:03:20 2007 Ben Pfaff - - 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 - - Fix bug #18739. - - * aggregate.c (parse_aggregate_functions) Initialize - function_name. - -Fri Dec 22 14:04:09 2006 Ben Pfaff - - 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 - - * 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 - - * 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 - - 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 - - * 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 - - * regression.q (is_depvar): Compare variable pointers instead of - variable names. - -Thu Dec 7 15:26:25 WST 2006 John Darrington - - * 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 - - * regression.q (reg_inserted): Compare variable pointers instead - of variable indexes. - -Mon Dec 4 22:33:46 2006 Ben Pfaff - - * 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 - - * t-test.q, oneway.q: Changed to use the new casefilter structure. - -Sat Oct 14 16:52:28 2006 Ben Pfaff - - * 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 - - * rank.q: Plugged a small memory leak which occurred under error - conditions. - -Sat Oct 7 11:06:01 WST 2006 John Darrington - - * rank.q: Implemented most of the RANK command. - -2006-07-14 Jason Stover - - * 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 - - 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 - - Support long string variables on FREQUENCIES, as - an extension when in enhanced algorithms mode. For Greg Hunt - . - - * 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 - - * 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 - - Fixes a bug reported by Greg Hunt . - - * 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 - - * regression.q: Adjusted code to account for cache->coeff being a - pspp_linreg_coeff **. - -Sun May 7 18:31:25 2006 Ben Pfaff - - Fix memory leak. - - * aggregate.c (cmd_aggregate): Free default_dict before replacing - it. - -Sun May 7 17:09:19 2006 Ben Pfaff - - * flip.c (flip_file): Check return value of pool_fclose(). - -Sat May 6 16:00:13 2006 Ben Pfaff - - 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 - - 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 - - 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 - - * 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 - - * 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 - - * rank.q (parse_rank_function): Use SE instead of ME for parse - errors. - -Tue Apr 25 13:16:28 2006 Ben Pfaff - - * flip.c (flip_sink_write): Use snprintf() to simplify a bit of - code. - -2006-04-21 Jason Stover - - * 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 - - * 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 - - * regression.q (regression_trns_proc): Fixed the look-up of the - number of variables. - -2006-04-18 Jason Stover - - * 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 - - * regression.q (regression_trns_proc): Accept case_idx as an int - to match the definition of trns_proc_func. - -2006-04-17 Jason Stover - - * 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 - - * examine.q (output_examine): Add casts to fix warnings. - -2006-04-07 Jason Stover - - * regression.q (subcommand_save): New function. - -2006-04-04 Jason Stover - - * 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 - - * crosstabs.q: (output_pivot_table) Drop spurious space from - message. - -2006-03-15 Jason Stover - - * 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 - - * Moved files from src directory diff --git a/src/language/stats/OChangeLog b/src/language/stats/OChangeLog new file mode 100644 index 00000000..9dfdb062 --- /dev/null +++ b/src/language/stats/OChangeLog @@ -0,0 +1,644 @@ +2008-07-24 Jason H Stover + + * glm.q (run_glm): Dropped weight argument. + +2008-07-22 Jason H Stover + + * 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 + + * 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 + + * examine.q: Fixed bug where incorrect levels of dereferencing + were applied to pointers. + +2008-04-09 John Darrington + + * regression.q: Fix display of degrees of freedom. + +2008-04-08 Jason Stover + + * regression.q (identify_indep_vars): Don't panic unless + n_indep_vars is 0. + +2008-03-16 Ben Pfaff + + 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 + + * regression.q (run_regression): Removed code for EXPORT + subcommand. Remove use of coefficient 0 as the intercept. + +2008-02-14 John Darrington + + * examine.q: Fixed counts of missing variables. Thanks to + Jason Stover for reporting this problem. + +2008-01-02 John Darrington + + * 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 + + 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 + + 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 + + * 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 + + * regression.q (run_regression): Partial fix of memory leak, bug + 21056. + +2007-09-19 Ben Pfaff + + 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 + + * 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 + + * 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 + + * 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 + + * regression.q (identify_indep_vars): Print an error if dependent + and independent variables are the same. Fixes bug 19819. + +2007-08-12 Ben Pfaff + + * 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 + + * 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 + + 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 + + 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 + + * 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 + + * 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 + + * 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 + + * glm.q: Initial version of the GLM procedure. + +2007-06-06 Ben Pfaff + + 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 + + * regression.q (run_regression): Tell the user when the data + contain no valid cases. + +2007-05-08 Jason Stover + + * regression.q: Partial fix of bug which caused a crash if + dependent variable and independent variable were the same. + +2007-04-16 John Darrington + + * 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 + + * regression.q (run_regression): Added if (n_data >0) to fix bug + 19581. + +2007-03-29 Jason Stover + + * regression.q (prepare_data): New function. + + * regression.q (compute_moments): New function. + +2007-03-18 Ben Pfaff + + * crosstabs.q (static var write): Rename write_style to avoid + conflict with POSIX function of same name. + +2007-03-16 Jason Stover + + * regression.q (run_regression): Added support for moments. + +Sat Feb 17 08:16:00 2007 Ben Pfaff + + * flip.c (flip_sink_create): Improve error message when temporary + file cannot be created. + +Tue Feb 6 19:58:03 2007 Ben Pfaff + + * flip.c (flip_file): Give better error message on end-of-file. + +2007-02-04 Jason Stover + + * regression.q: Fixed p-value computation in the test for + individual regression coefficients. + +Mon Jan 15 11:03:20 2007 Ben Pfaff + + 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 + + Fix bug #18739. + + * aggregate.c (parse_aggregate_functions) Initialize + function_name. + +Fri Dec 22 14:04:09 2006 Ben Pfaff + + 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 + + * 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 + + * 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 + + 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 + + * 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 + + * regression.q (is_depvar): Compare variable pointers instead of + variable names. + +Thu Dec 7 15:26:25 WST 2006 John Darrington + + * 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 + + * regression.q (reg_inserted): Compare variable pointers instead + of variable indexes. + +Mon Dec 4 22:33:46 2006 Ben Pfaff + + * 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 + + * t-test.q, oneway.q: Changed to use the new casefilter structure. + +Sat Oct 14 16:52:28 2006 Ben Pfaff + + * 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 + + * rank.q: Plugged a small memory leak which occurred under error + conditions. + +Sat Oct 7 11:06:01 WST 2006 John Darrington + + * rank.q: Implemented most of the RANK command. + +2006-07-14 Jason Stover + + * 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 + + 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 + + Support long string variables on FREQUENCIES, as + an extension when in enhanced algorithms mode. For Greg Hunt + . + + * 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 + + * 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 + + Fixes a bug reported by Greg Hunt . + + * 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 + + * regression.q: Adjusted code to account for cache->coeff being a + pspp_linreg_coeff **. + +Sun May 7 18:31:25 2006 Ben Pfaff + + Fix memory leak. + + * aggregate.c (cmd_aggregate): Free default_dict before replacing + it. + +Sun May 7 17:09:19 2006 Ben Pfaff + + * flip.c (flip_file): Check return value of pool_fclose(). + +Sat May 6 16:00:13 2006 Ben Pfaff + + 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 + + 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 + + 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 + + * 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 + + * 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 + + * rank.q (parse_rank_function): Use SE instead of ME for parse + errors. + +Tue Apr 25 13:16:28 2006 Ben Pfaff + + * flip.c (flip_sink_write): Use snprintf() to simplify a bit of + code. + +2006-04-21 Jason Stover + + * 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 + + * 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 + + * regression.q (regression_trns_proc): Fixed the look-up of the + number of variables. + +2006-04-18 Jason Stover + + * 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 + + * regression.q (regression_trns_proc): Accept case_idx as an int + to match the definition of trns_proc_func. + +2006-04-17 Jason Stover + + * 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 + + * examine.q (output_examine): Add casts to fix warnings. + +2006-04-07 Jason Stover + + * regression.q (subcommand_save): New function. + +2006-04-04 Jason Stover + + * 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 + + * crosstabs.q: (output_pivot_table) Drop spurious space from + message. + +2006-03-15 Jason Stover + + * 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 + + * Moved files from src directory diff --git a/src/language/stats/automake.mk b/src/language/stats/automake.mk index 10738fdc..d60cb0db 100644 --- a/src/language/stats/automake.mk +++ b/src/language/stats/automake.mk @@ -37,3 +37,4 @@ all_q_sources += $(src_language_stats_built_sources:.c=.q) EXTRA_DIST += $(src_language_stats_built_sources:.c=.q) CLEANFILES += $(src_language_stats_built_sources) +EXTRA_DIST += src/language/stats/OChangeLog diff --git a/src/language/tests/ChangeLog b/src/language/tests/ChangeLog deleted file mode 100644 index d76583f9..00000000 --- a/src/language/tests/ChangeLog +++ /dev/null @@ -1,53 +0,0 @@ -2008-03-04 Ben Pfaff - - Patch #6441. Reviewed by John Darrington. - - * automake.mk: Add new file. - - * format-guesser-test.c: New file. - -2007-09-22 Ben Pfaff - - Bug #21128. Reviewed by John Darrington. - - * automake.mk: Add new file. - - * paper-size.c: New file. - -2007-06-06 Ben Pfaff - - * automake.mk: Add new file. - - * datasheet-test.c: New file. - -2007-04-22 Ben Pfaff - - 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 - - * automake.mk: Add float-format.c. - - * float-format.c: New file. - -Sat Oct 14 16:21:45 2006 Ben Pfaff - - * casefile-test.c: (test_casereader_clone) Free cases that we - read, to avoid memory leak. - -Tue Jun 6 18:48:00 2006 Ben Pfaff - - * casefile-test.c: (test_casefile) Test the new casereader_seek() - function. - -Thu Mar 2 08:40:33 WST 2006 John Darrington - - * Moved files from src directory diff --git a/src/language/tests/OChangeLog b/src/language/tests/OChangeLog new file mode 100644 index 00000000..d76583f9 --- /dev/null +++ b/src/language/tests/OChangeLog @@ -0,0 +1,53 @@ +2008-03-04 Ben Pfaff + + Patch #6441. Reviewed by John Darrington. + + * automake.mk: Add new file. + + * format-guesser-test.c: New file. + +2007-09-22 Ben Pfaff + + Bug #21128. Reviewed by John Darrington. + + * automake.mk: Add new file. + + * paper-size.c: New file. + +2007-06-06 Ben Pfaff + + * automake.mk: Add new file. + + * datasheet-test.c: New file. + +2007-04-22 Ben Pfaff + + 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 + + * automake.mk: Add float-format.c. + + * float-format.c: New file. + +Sat Oct 14 16:21:45 2006 Ben Pfaff + + * casefile-test.c: (test_casereader_clone) Free cases that we + read, to avoid memory leak. + +Tue Jun 6 18:48:00 2006 Ben Pfaff + + * casefile-test.c: (test_casefile) Test the new casereader_seek() + function. + +Thu Mar 2 08:40:33 WST 2006 John Darrington + + * Moved files from src directory diff --git a/src/language/tests/automake.mk b/src/language/tests/automake.mk index 5a542393..00fcab37 100644 --- a/src/language/tests/automake.mk +++ b/src/language/tests/automake.mk @@ -15,3 +15,5 @@ language_tests_sources = \ 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 diff --git a/src/language/utilities/ChangeLog b/src/language/utilities/ChangeLog deleted file mode 100644 index 5701c38f..00000000 --- a/src/language/utilities/ChangeLog +++ /dev/null @@ -1,85 +0,0 @@ -2007-09-16 Ben Pfaff - - * 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 - - 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 - - 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 - - * title.c: Implemented ADD DOCUMENT command. - -Sun Nov 19 09:21:39 2006 Ben Pfaff - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * Moved files from src directory diff --git a/src/language/utilities/OChangeLog b/src/language/utilities/OChangeLog new file mode 100644 index 00000000..5701c38f --- /dev/null +++ b/src/language/utilities/OChangeLog @@ -0,0 +1,85 @@ +2007-09-16 Ben Pfaff + + * 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 + + 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 + + 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 + + * title.c: Implemented ADD DOCUMENT command. + +Sun Nov 19 09:21:39 2006 Ben Pfaff + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * Moved files from src directory diff --git a/src/language/utilities/automake.mk b/src/language/utilities/automake.mk index 5f66102c..c4ca92b0 100644 --- a/src/language/utilities/automake.mk +++ b/src/language/utilities/automake.mk @@ -16,3 +16,5 @@ all_q_sources += $(src_language_utilities_built_sources:.c=.q) EXTRA_DIST += $(src_language_utilities_built_sources:.c=.q) CLEANFILES += $(src_language_utilities_built_sources) + +EXTRA_DIST += src/language/utilities/OChangeLog diff --git a/src/language/xforms/ChangeLog b/src/language/xforms/ChangeLog deleted file mode 100644 index 4e15b1ed..00000000 --- a/src/language/xforms/ChangeLog +++ /dev/null @@ -1,84 +0,0 @@ -2007-04-16 Ben Pfaff - - * 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 - - * recode.c (parse_mappings): Initialize "out" member of mapping - for CONVERT, fixing an uninitialized data bug. - -2007-04-15 Ben Pfaff - - * 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 - - * 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 - - * compute.c (struct compute_trns): Remove `fv' member, which was - redundant with `variable'. - -Thu Nov 30 22:46:50 2006 Ben Pfaff - - * 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 - - * automake.mk fail.c: Added a debug transformation which always fails. - -Sat May 6 16:02:55 2006 Ben Pfaff - - 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 - - * 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 - - 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 - - * 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 - - * Moved files from src directory diff --git a/src/language/xforms/OChangeLog b/src/language/xforms/OChangeLog new file mode 100644 index 00000000..4e15b1ed --- /dev/null +++ b/src/language/xforms/OChangeLog @@ -0,0 +1,84 @@ +2007-04-16 Ben Pfaff + + * 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 + + * recode.c (parse_mappings): Initialize "out" member of mapping + for CONVERT, fixing an uninitialized data bug. + +2007-04-15 Ben Pfaff + + * 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 + + * 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 + + * compute.c (struct compute_trns): Remove `fv' member, which was + redundant with `variable'. + +Thu Nov 30 22:46:50 2006 Ben Pfaff + + * 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 + + * automake.mk fail.c: Added a debug transformation which always fails. + +Sat May 6 16:02:55 2006 Ben Pfaff + + 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 + + * 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 + + 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 + + * 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 + + * Moved files from src directory diff --git a/src/language/xforms/automake.mk b/src/language/xforms/automake.mk index d0fe1cb6..ddb1021f 100644 --- a/src/language/xforms/automake.mk +++ b/src/language/xforms/automake.mk @@ -8,3 +8,5 @@ language_xforms_sources = \ src/language/xforms/sample.c \ src/language/xforms/recode.c \ src/language/xforms/select-if.c + +EXTRA_DIST += src/language/xforms/OChangeLog diff --git a/src/libpspp/ChangeLog b/src/libpspp/ChangeLog deleted file mode 100644 index 229b4f93..00000000 --- a/src/libpspp/ChangeLog +++ /dev/null @@ -1,819 +0,0 @@ -2008-05-15 Ben Pfaff - - 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 - - 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 - - Patch #6441. Reviewed by John Darrington. - - * str.c (ss_match_char_in): New function. - -2008-02-18 Ben Pfaff - - 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 - - Patch #6386. Thanks to John Darrington for review. - - * str.c (str_format_26adic): New function. - -2007-12-24 John Darrington - - * taint.c (taint_destroy): Return true if pointer is null. - -2007-11-25 Ben Pfaff - - * float-format.c (assemble_number): Only store 32 bits for Z short - format. Partial fix for bug #21590. - -2007-11-08 Ben Pfaff - - * str.c (ds_read_stream): Change return value semantics to be more - useful. Update all users. - -2007-11-03 John Darrington - - * 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 - - * xalloc.h: Removed. Changed all users to include "xalloc.h" from - gnulib instead. - - * xalloc.c: Removed. - -2007-10-11 Ben Pfaff - - * 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 - - * 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 - - 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 - - * copyleft.c: Add trailing new-lines to lack-of-warranty - statement. - -2007-09-05 John Darrington - - * getl.c: Add extra members to struct getl_source, to maintain the - error mode and the syntax_mode. - -2007-07-25 Ben Pfaff - - * 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 - - * str.h: Include xstrndup.h also. - - * float-format.c (float_get_double): New function. - -2007-07-06 Ben Pfaff - - * copyleft.c (legal): Update startup notice to use format - recommended by latest GNU coding standards. - -2007-06-06 Ben Pfaff - - * array.c (binary_search): Fix assertion. - -2007-06-06 Ben Pfaff - - 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 - - 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 - - * 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 - - * model-checker.c: Don't use type sighandler_t, which is a GNU - extension. Reported by "Daniel E WILLIAMS" - . - -2007-04-25 John Darrington - - * i18n.c: Fixed bug converting long strings - -2007-04-22 Ben Pfaff - - 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 - - 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 - - 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 - - * bt.c: Need #include . Thanks to "John McCabe-Dansted" - for pointing this out. - -2007-03-31 Ben Pfaff - - 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 - - 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 - - * 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 - - * i18n.c: Cast second argument of iconv using ICONV_CONST - -2007-02-22 Ben Pfaff - - * 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 - - * syntax-gen.h syntax-gen.c: New files. - -Sun Feb 18 11:21:41 2007 Ben Pfaff - - * alloc.h: Remove useless parentheses in #if "defined" operator. - - * misc.h: Ditto. - -Tue Feb 6 20:00:13 2007 Ben Pfaff - - * 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 - - * 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 - - * float-format.h: [FPREP_IEEE754] [WORDS_BIGENDIAN] Add missing - comma. - -Wed Jan 24 21:13:32 2007 Ben Pfaff - - * 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 - - * automake.mk: Add deque.h to sources. - - * deque.h: New file. - -Wed Jan 10 06:49:38 2007 Ben Pfaff - - * 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 - - * 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 - - * misc.h (macro range): Removed, as it was unused. - -Sat Dec 9 07:19:01 WST 2006 John Darrington - - * array.c: Removed gratuitous #include - -Thu Dec 7 20:33:23 WST 2006 John Darrington - - * 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 - - * 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 - - * str.c (ss_alloc_substring_pool): New function. - (ss_alloc_uninit_pool) New function. - -Sun Dec 3 11:28:06 2006 Ben Pfaff - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * compiler.h: (macro CONST_FUNCTION) New macro. - (macro PURE_FUNCTION) New macro. - -Sun Jul 16 21:07:35 2006 Ben Pfaff - - * 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 - - * llx.c: #included compiler.h and removed explicit preprocessor cruft. - -Fri Jul 7 20:01:26 2006 Ben Pfaff - - * 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 - - * i18n.c: Made character conversion tolerant of failure to create the - necessary iconv structs. - -Sat Jul 1 15:32:54 2006 Ben Pfaff - - * 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 - - 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 - - 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 - - * i18n.c i18n.h: New files. - -Tue May 16 06:50:35 2006 Ben Pfaff - - * 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 - - * 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 - - * 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 - - * 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 - - * pool.c (pool_vasprintf): New function. - (pool_asprintf) New function. - -Sun May 7 17:09:54 2006 Ben Pfaff - - * compiler.h: (macro WARN_UNUSED_RESULT) New macro. - -Sun May 7 14:32:25 2006 Ben Pfaff - - * 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 - - * array.c array.h: Constness of sort. - -Thu May 4 18:01:37 WST 2006 John Darrington - - * message.c message.h: Added functions to create and copy a msg. - -Tue May 2 15:41:50 2006 Ben Pfaff - - * 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 - - 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 - - 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 - - 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 - - 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 - - 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 - - * 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 - - 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 - - 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 - - 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 - - * 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 - - Add freaderror() analogous to fwriteerror() in gnulib. - - * freaderror.c: New file. - - * freaderror.h: New file. - -Thu Mar 30 16:15:37 2006 Ben Pfaff - - * 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 - - * str.[ch]: New functions ds_create_substr, ds_find, ds_n_find, - ds_ltrim_spaces - -Sat Mar 4 12:59:01 2006 Ben Pfaff - - * compiler.h: New file. - -Sat Mar 4 11:55:16 2006 Ben Pfaff - - * 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 - - * Moved files from src directory diff --git a/src/libpspp/OChangeLog b/src/libpspp/OChangeLog new file mode 100644 index 00000000..229b4f93 --- /dev/null +++ b/src/libpspp/OChangeLog @@ -0,0 +1,819 @@ +2008-05-15 Ben Pfaff + + 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 + + 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 + + Patch #6441. Reviewed by John Darrington. + + * str.c (ss_match_char_in): New function. + +2008-02-18 Ben Pfaff + + 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 + + Patch #6386. Thanks to John Darrington for review. + + * str.c (str_format_26adic): New function. + +2007-12-24 John Darrington + + * taint.c (taint_destroy): Return true if pointer is null. + +2007-11-25 Ben Pfaff + + * float-format.c (assemble_number): Only store 32 bits for Z short + format. Partial fix for bug #21590. + +2007-11-08 Ben Pfaff + + * str.c (ds_read_stream): Change return value semantics to be more + useful. Update all users. + +2007-11-03 John Darrington + + * 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 + + * xalloc.h: Removed. Changed all users to include "xalloc.h" from + gnulib instead. + + * xalloc.c: Removed. + +2007-10-11 Ben Pfaff + + * 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 + + * 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 + + 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 + + * copyleft.c: Add trailing new-lines to lack-of-warranty + statement. + +2007-09-05 John Darrington + + * getl.c: Add extra members to struct getl_source, to maintain the + error mode and the syntax_mode. + +2007-07-25 Ben Pfaff + + * 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 + + * str.h: Include xstrndup.h also. + + * float-format.c (float_get_double): New function. + +2007-07-06 Ben Pfaff + + * copyleft.c (legal): Update startup notice to use format + recommended by latest GNU coding standards. + +2007-06-06 Ben Pfaff + + * array.c (binary_search): Fix assertion. + +2007-06-06 Ben Pfaff + + 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 + + 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 + + * 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 + + * model-checker.c: Don't use type sighandler_t, which is a GNU + extension. Reported by "Daniel E WILLIAMS" + . + +2007-04-25 John Darrington + + * i18n.c: Fixed bug converting long strings + +2007-04-22 Ben Pfaff + + 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 + + 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 + + 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 + + * bt.c: Need #include . Thanks to "John McCabe-Dansted" + for pointing this out. + +2007-03-31 Ben Pfaff + + 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 + + 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 + + * 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 + + * i18n.c: Cast second argument of iconv using ICONV_CONST + +2007-02-22 Ben Pfaff + + * 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 + + * syntax-gen.h syntax-gen.c: New files. + +Sun Feb 18 11:21:41 2007 Ben Pfaff + + * alloc.h: Remove useless parentheses in #if "defined" operator. + + * misc.h: Ditto. + +Tue Feb 6 20:00:13 2007 Ben Pfaff + + * 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 + + * 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 + + * float-format.h: [FPREP_IEEE754] [WORDS_BIGENDIAN] Add missing + comma. + +Wed Jan 24 21:13:32 2007 Ben Pfaff + + * 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 + + * automake.mk: Add deque.h to sources. + + * deque.h: New file. + +Wed Jan 10 06:49:38 2007 Ben Pfaff + + * 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 + + * 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 + + * misc.h (macro range): Removed, as it was unused. + +Sat Dec 9 07:19:01 WST 2006 John Darrington + + * array.c: Removed gratuitous #include + +Thu Dec 7 20:33:23 WST 2006 John Darrington + + * 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 + + * 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 + + * str.c (ss_alloc_substring_pool): New function. + (ss_alloc_uninit_pool) New function. + +Sun Dec 3 11:28:06 2006 Ben Pfaff + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * compiler.h: (macro CONST_FUNCTION) New macro. + (macro PURE_FUNCTION) New macro. + +Sun Jul 16 21:07:35 2006 Ben Pfaff + + * 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 + + * llx.c: #included compiler.h and removed explicit preprocessor cruft. + +Fri Jul 7 20:01:26 2006 Ben Pfaff + + * 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 + + * i18n.c: Made character conversion tolerant of failure to create the + necessary iconv structs. + +Sat Jul 1 15:32:54 2006 Ben Pfaff + + * 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 + + 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 + + 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 + + * i18n.c i18n.h: New files. + +Tue May 16 06:50:35 2006 Ben Pfaff + + * 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 + + * 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 + + * 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 + + * 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 + + * pool.c (pool_vasprintf): New function. + (pool_asprintf) New function. + +Sun May 7 17:09:54 2006 Ben Pfaff + + * compiler.h: (macro WARN_UNUSED_RESULT) New macro. + +Sun May 7 14:32:25 2006 Ben Pfaff + + * 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 + + * array.c array.h: Constness of sort. + +Thu May 4 18:01:37 WST 2006 John Darrington + + * message.c message.h: Added functions to create and copy a msg. + +Tue May 2 15:41:50 2006 Ben Pfaff + + * 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + * 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 + + 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 + + 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 + + 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 + + * 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 + + Add freaderror() analogous to fwriteerror() in gnulib. + + * freaderror.c: New file. + + * freaderror.h: New file. + +Thu Mar 30 16:15:37 2006 Ben Pfaff + + * 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 + + * str.[ch]: New functions ds_create_substr, ds_find, ds_n_find, + ds_ltrim_spaces + +Sat Mar 4 12:59:01 2006 Ben Pfaff + + * compiler.h: New file. + +Sat Mar 4 11:55:16 2006 Ben Pfaff + + * 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 + + * Moved files from src directory diff --git a/src/libpspp/automake.mk b/src/libpspp/automake.mk index a697e402..a0d7879f 100644 --- a/src/libpspp/automake.mk +++ b/src/libpspp/automake.mk @@ -91,3 +91,5 @@ src/libpspp/version.c: $(top_srcdir)/AUTHORS sed -e 's/^/ \"/' -e 's/$$/\",/' $(top_srcdir)/AUTHORS >> $@ echo "0 };" >> $@ + +EXTRA_DIST += src/libpspp/OChangeLog diff --git a/src/math/ChangeLog b/src/math/ChangeLog deleted file mode 100644 index 00255341..00000000 --- a/src/math/ChangeLog +++ /dev/null @@ -1,197 +0,0 @@ -2008-08-17 Jason H Stover - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * covariance-matrix.c (covariance_pass_one): New file, new function. - -2008-06-21 Jason Stover - - * 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 - - * linreg/: moved linreg.[ch] to src/math. - -2008-05-15 Ben Pfaff - - 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 - - * coefficient.c (pspp_linreg_get_coeff): Removed use of - coefficient 0 as intercept. - -2008-03-01 Jason Stover - - * 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 - - 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 - - * interaction.c: New file. - * interaction.h : New file. - -Mon Feb 5 15:42:14 2007 Ben Pfaff - - * moments.c (moments_pass_two): Reduce number of multiplications. - -Thu Dec 7 15:27:49 WST 2006 John Darrington - - * factor-stats.c factor-stats.h: Changed independent values to - be pointers rather than copies. - -Wed Dec 6 21:14:59 2006 Ben Pfaff - - * 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 - - * levene.c levene.h Changed to use the new casefilter structure. - -2006-07-15 Jason Stover - - * coefficient.c (pspp_coeff_init): Make design_matrix arg const. - -2006-07-14 Jason Stover - - * coefficient.c (pspp_coeff_init): Removed use of - pspp_linreg_cache to make the routines more generally useful. - -2006-05-19 Jason Stover - - * 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 - - * sort.c (sort_active_file_to_casefile): Check return value of - multipass_procedure(). - -Wed May 3 23:06:43 2006 Ben Pfaff - - 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 - - * removed unused variable. - -Sat Apr 15 18:01:22 2006 Ben Pfaff - - * factor-stats.c (metrics_postcalc): Add casts to fix warnings. - -Thu Mar 2 08:40:33 WST 2006 John Darrington - - * Moved files from src directory diff --git a/src/math/OChangeLog b/src/math/OChangeLog new file mode 100644 index 00000000..00255341 --- /dev/null +++ b/src/math/OChangeLog @@ -0,0 +1,197 @@ +2008-08-17 Jason H Stover + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * covariance-matrix.c (covariance_pass_one): New file, new function. + +2008-06-21 Jason Stover + + * 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 + + * linreg/: moved linreg.[ch] to src/math. + +2008-05-15 Ben Pfaff + + 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 + + * coefficient.c (pspp_linreg_get_coeff): Removed use of + coefficient 0 as intercept. + +2008-03-01 Jason Stover + + * 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 + + 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 + + * interaction.c: New file. + * interaction.h : New file. + +Mon Feb 5 15:42:14 2007 Ben Pfaff + + * moments.c (moments_pass_two): Reduce number of multiplications. + +Thu Dec 7 15:27:49 WST 2006 John Darrington + + * factor-stats.c factor-stats.h: Changed independent values to + be pointers rather than copies. + +Wed Dec 6 21:14:59 2006 Ben Pfaff + + * 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 + + * levene.c levene.h Changed to use the new casefilter structure. + +2006-07-15 Jason Stover + + * coefficient.c (pspp_coeff_init): Make design_matrix arg const. + +2006-07-14 Jason Stover + + * coefficient.c (pspp_coeff_init): Removed use of + pspp_linreg_cache to make the routines more generally useful. + +2006-05-19 Jason Stover + + * 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 + + * sort.c (sort_active_file_to_casefile): Check return value of + multipass_procedure(). + +Wed May 3 23:06:43 2006 Ben Pfaff + + 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 + + * removed unused variable. + +Sat Apr 15 18:01:22 2006 Ben Pfaff + + * factor-stats.c (metrics_postcalc): Add casts to fix warnings. + +Thu Mar 2 08:40:33 WST 2006 John Darrington + + * Moved files from src directory diff --git a/src/math/automake.mk b/src/math/automake.mk index 2c25686b..107a985d 100644 --- a/src/math/automake.mk +++ b/src/math/automake.mk @@ -29,3 +29,5 @@ src_math_libpspp_math_a_SOURCES = \ 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 diff --git a/src/math/time-series/ChangeLog b/src/math/time-series/ChangeLog deleted file mode 100644 index 07cb6f45..00000000 --- a/src/math/time-series/ChangeLog +++ /dev/null @@ -1,8 +0,0 @@ -2006-06-04 Jason Stover - - * innovations.c (get_covariance): Initial version - -2006-05-25 Jason Stover - - * innovations.c: New file - diff --git a/src/math/ts/ChangeLog b/src/math/ts/ChangeLog deleted file mode 100644 index a353ffce..00000000 --- a/src/math/ts/ChangeLog +++ /dev/null @@ -1,78 +0,0 @@ -2006-07-16 Jason Stover - - * 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 - - * 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 - - * innovations.c (innovations_struct_init): Fix initialization of - coefficient. - -2006-07-13 Jason Stover - - * innovations.c (pspp_innovations): Altered function to use struct - design_matrix. - -2006-07-06 Jason Stover - - * innovations.c (get_covariance): Fixed subscripts. - (innovations_update_scale): Added check for subscript. - -2006-07-05 Jason Stover - - * innovations.c (innovations_struct_init): New function. - -2006-07-03 Jason Stover - - * 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 - - * 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 - - * innovations.c: Use gsl_matrices to avoid use of casefiles by - backend math routine. - -2006-06-21 Jason Stover - - * 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 - - * innovations.c (innovations_convolve): New function. - * innovations.c (get_coef): New function. - -2006-06-04 Jason Stover - - * innovations.c (get_covariance): Initial version - -2006-05-25 Jason Stover - - * innovations.c: New file - diff --git a/src/math/ts/OChangeLog b/src/math/ts/OChangeLog new file mode 100644 index 00000000..a353ffce --- /dev/null +++ b/src/math/ts/OChangeLog @@ -0,0 +1,78 @@ +2006-07-16 Jason Stover + + * 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 + + * 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 + + * innovations.c (innovations_struct_init): Fix initialization of + coefficient. + +2006-07-13 Jason Stover + + * innovations.c (pspp_innovations): Altered function to use struct + design_matrix. + +2006-07-06 Jason Stover + + * innovations.c (get_covariance): Fixed subscripts. + (innovations_update_scale): Added check for subscript. + +2006-07-05 Jason Stover + + * innovations.c (innovations_struct_init): New function. + +2006-07-03 Jason Stover + + * 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 + + * 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 + + * innovations.c: Use gsl_matrices to avoid use of casefiles by + backend math routine. + +2006-06-21 Jason Stover + + * 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 + + * innovations.c (innovations_convolve): New function. + * innovations.c (get_coef): New function. + +2006-06-04 Jason Stover + + * innovations.c (get_covariance): Initial version + +2006-05-25 Jason Stover + + * innovations.c: New file + diff --git a/src/math/ts/automake.mk b/src/math/ts/automake.mk index ffc79679..2ca1f959 100644 --- a/src/math/ts/automake.mk +++ b/src/math/ts/automake.mk @@ -5,3 +5,5 @@ noinst_LIBRARIES += src/math/ts/libpspp_ts.a src_math_ts_libpspp_ts_a_SOURCES = \ src/math/ts/innovations.c \ src/math/ts/innovations.h + +EXTRA_DIST += src/math/ts/OChangeLog diff --git a/src/output/ChangeLog b/src/output/ChangeLog deleted file mode 100644 index b1928b97..00000000 --- a/src/output/ChangeLog +++ /dev/null @@ -1,406 +0,0 @@ -2008-02-08 John Darrington - - * journal.c: (journal_write) flush the stream on writes. - Useful for discovering syntax which causes a crash. - -2007-09-25 Ben Pfaff - - 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 - - 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 - - * 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 - - * postscript.c html.c: Remove #include "getline.h" to concurr with - new gnulib arrangements. - -2007-08-23 Ben Pfaff - - 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 - - * output.c output.h: export function outp_configure_driver_line. - * ascii.c: Added an "append" property. - -2007-08-12 Ben Pfaff - - 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 - - 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 - - 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 - - * html.c: Don't need to include "getlogin_r.h" anymore, because - gnulib merged it into . - -Sun Feb 18 11:20:35 2007 Ben Pfaff - - * postscript.c: Add missing _() around message. - -Sun Feb 11 17:59:30 2007 Ben Pfaff - - * html.c (html_initialise_chart): Mark `this' parameter UNUSED to - account for NO_CHARTS case. - -Sat Feb 3 21:56:46 2007 Ben Pfaff - - * 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 - - * afm.c: Add #include . Thanks to John McCabe-Dansted - for pointing out the need. - -Sun Oct 8 07:09:34 WST 2006 John Darrington - - * 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 - - * 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 - - * output.c (outp_drivers): [DEBUGGING] Delete unused declaration. - -Sat Jul 1 17:20:03 2006 Ben Pfaff - - 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 - - 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 - - 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 - - * table.c: Removed redundant extern declaration. - -Sun May 14 14:03:56 2006 Ben Pfaff - - * output.c (outp_eject_page): Always make sure that a page is open - upon return. - -Sun May 14 13:54:58 2006 Ben Pfaff - - * 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 - - 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 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 - - 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 - - * 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 - - * 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 - - * postscript.c: (postopen) Fix segfault when the active file has - no title. - -Sat Mar 4 13:48:16 2006 Ben Pfaff - - 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 - - * Moved files from src directory diff --git a/src/output/OChangeLog b/src/output/OChangeLog new file mode 100644 index 00000000..b1928b97 --- /dev/null +++ b/src/output/OChangeLog @@ -0,0 +1,406 @@ +2008-02-08 John Darrington + + * journal.c: (journal_write) flush the stream on writes. + Useful for discovering syntax which causes a crash. + +2007-09-25 Ben Pfaff + + 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 + + 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 + + * 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 + + * postscript.c html.c: Remove #include "getline.h" to concurr with + new gnulib arrangements. + +2007-08-23 Ben Pfaff + + 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 + + * output.c output.h: export function outp_configure_driver_line. + * ascii.c: Added an "append" property. + +2007-08-12 Ben Pfaff + + 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 + + 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 + + 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 + + * html.c: Don't need to include "getlogin_r.h" anymore, because + gnulib merged it into . + +Sun Feb 18 11:20:35 2007 Ben Pfaff + + * postscript.c: Add missing _() around message. + +Sun Feb 11 17:59:30 2007 Ben Pfaff + + * html.c (html_initialise_chart): Mark `this' parameter UNUSED to + account for NO_CHARTS case. + +Sat Feb 3 21:56:46 2007 Ben Pfaff + + * 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 + + * afm.c: Add #include . Thanks to John McCabe-Dansted + for pointing out the need. + +Sun Oct 8 07:09:34 WST 2006 John Darrington + + * 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 + + * 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 + + * output.c (outp_drivers): [DEBUGGING] Delete unused declaration. + +Sat Jul 1 17:20:03 2006 Ben Pfaff + + 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 + + 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 + + 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 + + * table.c: Removed redundant extern declaration. + +Sun May 14 14:03:56 2006 Ben Pfaff + + * output.c (outp_eject_page): Always make sure that a page is open + upon return. + +Sun May 14 13:54:58 2006 Ben Pfaff + + * 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 + + 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 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 + + 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 + + * 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 + + * 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 + + * postscript.c: (postopen) Fix segfault when the active file has + no title. + +Sat Mar 4 13:48:16 2006 Ben Pfaff + + 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 + + * Moved files from src directory diff --git a/src/output/automake.mk b/src/output/automake.mk index 78898f46..d30acf63 100644 --- a/src/output/automake.mk +++ b/src/output/automake.mk @@ -32,4 +32,4 @@ src_output_liboutput_a_SOURCES = $(output_sources) src/output/dummy-chart.c EXTRA_DIST += src/output/chart.c endif - +EXTRA_DIST += src/output/OChangeLog diff --git a/src/output/charts/ChangeLog b/src/output/charts/ChangeLog deleted file mode 100644 index f735a6cf..00000000 --- a/src/output/charts/ChangeLog +++ /dev/null @@ -1,17 +0,0 @@ -2007-09-18 Ben Pfaff - - * plot-hist.c (histogram_plot): Remove incorrect assertion. Fixes - bug #21101. Reviewed by John Darrington. - -Sun Feb 11 19:43:39 2007 Ben Pfaff - - * 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 - - * automake.mk: Move definition of NO_CHARTS here from pref.h.orig. - -Thu Mar 2 08:40:33 WST 2006 John Darrington - - * Moved files from src directory diff --git a/src/output/charts/OChangeLog b/src/output/charts/OChangeLog new file mode 100644 index 00000000..f735a6cf --- /dev/null +++ b/src/output/charts/OChangeLog @@ -0,0 +1,17 @@ +2007-09-18 Ben Pfaff + + * plot-hist.c (histogram_plot): Remove incorrect assertion. Fixes + bug #21101. Reviewed by John Darrington. + +Sun Feb 11 19:43:39 2007 Ben Pfaff + + * 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 + + * automake.mk: Move definition of NO_CHARTS here from pref.h.orig. + +Thu Mar 2 08:40:33 WST 2006 John Darrington + + * Moved files from src directory diff --git a/src/output/charts/automake.mk b/src/output/charts/automake.mk index f1d71264..a480de6d 100644 --- a/src/output/charts/automake.mk +++ b/src/output/charts/automake.mk @@ -30,3 +30,5 @@ EXTRA_DIST += $(chart_sources) AM_CPPFLAGS += -DNO_CHARTS endif + +EXTRA_DIST += src/output/charts/OChangeLog diff --git a/src/ui/ChangeLog b/src/ui/ChangeLog deleted file mode 100644 index bc9c192f..00000000 --- a/src/ui/ChangeLog +++ /dev/null @@ -1,53 +0,0 @@ -2008-03-04 Ben Pfaff - - 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 - - * 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 - - 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 - - * [!(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 - - * flexifile.c [DEBUGGING] (dump_case_data): Use case accessor - functions. - -Wed Dec 20 21:14:29 WST 2006 John Darrington - - * flexifile.c (flexifilereader_cnum) : new function - -Thu Nov 16 20:44:58 WST 2006 John Darrington - - * debugger.c debugger.h New files. - -Mon Jul 17 18:22:18 WST 2006 John Darrington - - * flexifile.c flexifile.h: New files. Implementations of casefiles. - -Thu Mar 2 08:40:33 WST 2006 John Darrington - - * Moved files from src directory diff --git a/src/ui/OChangeLog b/src/ui/OChangeLog new file mode 100644 index 00000000..bc9c192f --- /dev/null +++ b/src/ui/OChangeLog @@ -0,0 +1,53 @@ +2008-03-04 Ben Pfaff + + 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 + + * 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 + + 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 + + * [!(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 + + * flexifile.c [DEBUGGING] (dump_case_data): Use case accessor + functions. + +Wed Dec 20 21:14:29 WST 2006 John Darrington + + * flexifile.c (flexifilereader_cnum) : new function + +Thu Nov 16 20:44:58 WST 2006 John Darrington + + * debugger.c debugger.h New files. + +Mon Jul 17 18:22:18 WST 2006 John Darrington + + * flexifile.c flexifile.h: New files. Implementations of casefiles. + +Thu Mar 2 08:40:33 WST 2006 John Darrington + + * Moved files from src directory diff --git a/src/ui/automake.mk b/src/ui/automake.mk index 18b69148..044c293c 100644 --- a/src/ui/automake.mk +++ b/src/ui/automake.mk @@ -13,3 +13,5 @@ src_ui_libuicommon_a_SOURCES = \ src/ui/debugger.h \ src/ui/syntax-gen.c \ src/ui/syntax-gen.h + +EXTRA_DIST += src/ui/OChangeLog diff --git a/src/ui/gui/ChangeLog b/src/ui/gui/ChangeLog deleted file mode 100644 index 88a42f1f..00000000 --- a/src/ui/gui/ChangeLog +++ /dev/null @@ -1,1117 +0,0 @@ -2008-05-20 John Darrington - - * 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 - - * 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 - - * automake.mk: On make install, warn about the non-existance of yelp. - -2008-05-08 Ben Pfaff - - 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 - - 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 - - * 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 - - 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 - - * 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 - - * data-editor.glade: Removed unused menuitems. - - * data-editor.c data-editor.glade: Added Mnemonics to all menuitems. - -2008-03-16 Ben Pfaff - - 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 - - * psppire-var-sheet.c: Initialize "may-create-vars" to TRUE by - default. - -2008-03-06 Ben Pfaff - - * 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 - - 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 - - * 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 - - * regression-dialog.c: New file. - - * regression-dialog.h: New file. - - * regression.glade: New file. - -2008-02-19 Ben Pfaff - - Patch #6426. Reviewed by John Darrington. - - * psppire-var-store.c: Add "trailing-rows", "format-type" - properties to PsppireVarStore. - -2008-02-19 Ben Pfaff - - * 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 - - * dict-display.c: Display names of variables in dialog box - dictionary treeviews, when the mouse hovers over the variable. - -2008-02-13 John Darrington - - * 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 - - 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 - - * crosstabs-dialog.c: New file. - - * crosstabs-dialog.h: New file. - - * crosstabs.glade: New file. - -2008-02-08 John Darrington - - * 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 - - * sort-cases-dialog.c transpose-dialog.c: Added dialog_valid - predicates. - -2008-02-04 John Darrington - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * frequencies-dialog.c: Made the options subdialog transient - on the parent. - -2007-12-01 John Darrington - - * 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 - - * 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 - - * compute-dialog.c (generate_syntax): Append "EXECUTE." to the - generated syntax. - -2007-10-19 John Darrington - - * 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 - - * 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 - - 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 - - * compute-dialog.c goto-case-dialog.c main.c psppire-keypad.c: Added - #include - - * 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 - - * 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 - - * 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 - - * 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 - - 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * psppire.c : Enable journal. - -2007-08-18 John Darrington - - * clipboard.c clipboard.h data-editor.c: Added the ability to paste from - the clipboard into the data sheet. - -2007-08-16 John Darrington - - * 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 - - * 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 - Ben Pfaff - - 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 - - * 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 - - * psppire-case-file.c (psppire_case_file_append_case): - Deleted unused function. - -2007-08-07 John Darrington - - * 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 - - * syntax-editor.glade: Changed some properties to be less annoying. - -2007-07-29 John Darrington - - * helper.c psppire.c: Enabled the output system so that the results - of analysis can be seen. - -2007-07-26 John Darrington - - * 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 - - * 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 - - * 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 - - * data-editor.c: File Open dialog remembers directory. Thanks to - Ben Pfaff for this suggestion. - -2007-07-15 John Darrington - - * compute-dialog.c: Only generate NUMERIC/STRING command if the - type-and-label dialog was used. - -2007-07-12 John Darrington - - * 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 - - * 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 - - * data-editor.c data-editor.glade data-editor.h: Implemented - the "Insert Case" button/dialog. - -2007-07-08 John Darrington - - * 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 - - * 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 - - * data-editor.c data-sheet.c: Turned off autoscrolling, and - manually move to cell on column click instead. - -2007-06-29 John Darrington - - * 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 - - * 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 - - 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 - - * psppire-var-store.c (psppire_var_store_item_editable): Use - var_is_alpha. - -2007-05-07 John Darrington - - * 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 - - * 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 - - * 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 - - * 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 - - * compute-dialog.c (function_list_populate): Use new accessor - functions exported by language/expressions/public.h. - -2007-04-15 Ben Pfaff - - * compute-dialog.c: Make #include for parse.inc work with VPATH - builds. - -2007-04-13 John Darrington - - * var-type-dialog.c: Added a FMT_DATETIME20 template. - -2007-04-04 John Darrington - - * 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 - John McCabe-Dansted - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - * 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 - - * var-sheet.c: Replaced call to nl_langinfo with locale_charset - from gnulib. - -Thu Feb 22 12:27:41 CET 2007 John Darrington - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * data-editor.c data-editor.glade: Enabled deleting of variables from - the variable sheet. - -Mon Dec 25 11:28:29 WST 2006 John Darrington - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * syntax-editor.c : New file. - -Tue Oct 31 19:25:31 2006 Ben Pfaff - - * var-type-dialog.c: Add missing "#include ". - - * psppire.c: Ditto. - -Mon Jul 17 18:21:29 WST 2006 John Darrington - - * 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 - - * 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 - - * psppire.c: Fixed --help and --version options. - -Sat Jun 24 16:56:22 WST 2006 John Darrington - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * psppire-var-store.c: Converted strings to utf8 and returned them on the - heap. - -Sat May 20 21:08:18 WST 2006 John Darrington - - * 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 - - * 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 - - * 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 - - * 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 - - * psppire-data-store.c: Fixed buglet initialising string members. - -Thu May 4 18:04:04 WST 2006 John Darrington - - * 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 - - 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 - - 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 - - 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 - - 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 - - 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 - - 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 - - * 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 - - * Separated the data out of the GtkSheet. - -Tue Nov 2 19:00:28 WST 2004 John Darrington - - * Very first incarnation. diff --git a/src/ui/gui/OChangeLog b/src/ui/gui/OChangeLog new file mode 100644 index 00000000..88a42f1f --- /dev/null +++ b/src/ui/gui/OChangeLog @@ -0,0 +1,1117 @@ +2008-05-20 John Darrington + + * 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 + + * 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 + + * automake.mk: On make install, warn about the non-existance of yelp. + +2008-05-08 Ben Pfaff + + 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 + + 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 + + * 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 + + 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 + + * 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 + + * data-editor.glade: Removed unused menuitems. + + * data-editor.c data-editor.glade: Added Mnemonics to all menuitems. + +2008-03-16 Ben Pfaff + + 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 + + * psppire-var-sheet.c: Initialize "may-create-vars" to TRUE by + default. + +2008-03-06 Ben Pfaff + + * 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 + + 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 + + * 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 + + * regression-dialog.c: New file. + + * regression-dialog.h: New file. + + * regression.glade: New file. + +2008-02-19 Ben Pfaff + + Patch #6426. Reviewed by John Darrington. + + * psppire-var-store.c: Add "trailing-rows", "format-type" + properties to PsppireVarStore. + +2008-02-19 Ben Pfaff + + * 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 + + * dict-display.c: Display names of variables in dialog box + dictionary treeviews, when the mouse hovers over the variable. + +2008-02-13 John Darrington + + * 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 + + 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 + + * crosstabs-dialog.c: New file. + + * crosstabs-dialog.h: New file. + + * crosstabs.glade: New file. + +2008-02-08 John Darrington + + * 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 + + * sort-cases-dialog.c transpose-dialog.c: Added dialog_valid + predicates. + +2008-02-04 John Darrington + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * frequencies-dialog.c: Made the options subdialog transient + on the parent. + +2007-12-01 John Darrington + + * 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 + + * 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 + + * compute-dialog.c (generate_syntax): Append "EXECUTE." to the + generated syntax. + +2007-10-19 John Darrington + + * 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 + + * 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 + + 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 + + * compute-dialog.c goto-case-dialog.c main.c psppire-keypad.c: Added + #include + + * 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 + + * 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 + + * 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 + + * 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 + + 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * psppire.c : Enable journal. + +2007-08-18 John Darrington + + * clipboard.c clipboard.h data-editor.c: Added the ability to paste from + the clipboard into the data sheet. + +2007-08-16 John Darrington + + * 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 + + * 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 + Ben Pfaff + + 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 + + * 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 + + * psppire-case-file.c (psppire_case_file_append_case): + Deleted unused function. + +2007-08-07 John Darrington + + * 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 + + * syntax-editor.glade: Changed some properties to be less annoying. + +2007-07-29 John Darrington + + * helper.c psppire.c: Enabled the output system so that the results + of analysis can be seen. + +2007-07-26 John Darrington + + * 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 + + * 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 + + * 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 + + * data-editor.c: File Open dialog remembers directory. Thanks to + Ben Pfaff for this suggestion. + +2007-07-15 John Darrington + + * compute-dialog.c: Only generate NUMERIC/STRING command if the + type-and-label dialog was used. + +2007-07-12 John Darrington + + * 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 + + * 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 + + * data-editor.c data-editor.glade data-editor.h: Implemented + the "Insert Case" button/dialog. + +2007-07-08 John Darrington + + * 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 + + * 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 + + * data-editor.c data-sheet.c: Turned off autoscrolling, and + manually move to cell on column click instead. + +2007-06-29 John Darrington + + * 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 + + * 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 + + 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 + + * psppire-var-store.c (psppire_var_store_item_editable): Use + var_is_alpha. + +2007-05-07 John Darrington + + * 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 + + * 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 + + * 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 + + * 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 + + * compute-dialog.c (function_list_populate): Use new accessor + functions exported by language/expressions/public.h. + +2007-04-15 Ben Pfaff + + * compute-dialog.c: Make #include for parse.inc work with VPATH + builds. + +2007-04-13 John Darrington + + * var-type-dialog.c: Added a FMT_DATETIME20 template. + +2007-04-04 John Darrington + + * 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 + John McCabe-Dansted + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + * 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 + + * var-sheet.c: Replaced call to nl_langinfo with locale_charset + from gnulib. + +Thu Feb 22 12:27:41 CET 2007 John Darrington + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * data-editor.c data-editor.glade: Enabled deleting of variables from + the variable sheet. + +Mon Dec 25 11:28:29 WST 2006 John Darrington + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * syntax-editor.c : New file. + +Tue Oct 31 19:25:31 2006 Ben Pfaff + + * var-type-dialog.c: Add missing "#include ". + + * psppire.c: Ditto. + +Mon Jul 17 18:21:29 WST 2006 John Darrington + + * 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 + + * 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 + + * psppire.c: Fixed --help and --version options. + +Sat Jun 24 16:56:22 WST 2006 John Darrington + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * psppire-var-store.c: Converted strings to utf8 and returned them on the + heap. + +Sat May 20 21:08:18 WST 2006 John Darrington + + * 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 + + * 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 + + * 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 + + * 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 + + * psppire-data-store.c: Fixed buglet initialising string members. + +Thu May 4 18:04:04 WST 2006 John Darrington + + * 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + * 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 + + * Separated the data out of the GtkSheet. + +Tue Nov 2 19:00:28 WST 2004 John Darrington + + * Very first incarnation. diff --git a/src/ui/gui/automake.mk b/src/ui/gui/automake.mk index 2d149fce..64fe75e7 100644 --- a/src/ui/gui/automake.mk +++ b/src/ui/gui/automake.mk @@ -218,4 +218,6 @@ yelp-check: 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 diff --git a/src/ui/terminal/ChangeLog b/src/ui/terminal/ChangeLog deleted file mode 100644 index a5ad36d4..00000000 --- a/src/ui/terminal/ChangeLog +++ /dev/null @@ -1,284 +0,0 @@ -2008-05-15 Ben Pfaff - - * 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 - - 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 - - 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 - - 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 - - * 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 - - 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 - - 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 - - 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 - - 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 - - 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 - - Thanks to Jason Stover for verifying that this patch helps under - NetBSD. - - * main.c [HAVE_IEEE_FP]: Include . - (fpu_init) [HAVE_IEEE_FP]: Use setfpmask to mask floating-point - exceptions. - -Sun Feb 18 13:28:26 2007 Ben Pfaff - - * 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 - - * 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 - - * command-line.c (pre_syntax_message): Use term "syntax" instead - of "script". - -Sat Dec 9 07:21:02 WST 2006 John Darrington - - * msg-ui.c (msg_ui_done): call msg_locator_done. - -Sun Dec 3 11:57:00 2006 Ben Pfaff - - * read-line.c (read_interactive): Always read GETL_INTERACTIVE - lines. - -Thu Nov 16 20:46:35 WST 2006 John Darrington - - * main.c: Connect debugger on errors. - -Tue Nov 7 20:54:32 WST 2006 John Darrington - - * 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 - - * 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 - - * main.c: (main) Register SIGABRT with bug_handler also. - (bug_handler) Handle SIGABRT also. - -Tue Jun 27 22:44:56 2006 Ben Pfaff - - 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 - - * 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 - - 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 - - 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 - - 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 - - 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 - - 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 - - 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 - - * 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 - - * command-line.c: (var pre_syntax_message) -d and -u are no longer - supported. - -Sat Mar 11 14:18:39 WST 2006 John Darrington - - * automake.mk: Moved the pspp binary here. - -Thu Mar 2 08:40:33 WST 2006 John Darrington - - * Moved files from src directory diff --git a/src/ui/terminal/OChangeLog b/src/ui/terminal/OChangeLog new file mode 100644 index 00000000..a5ad36d4 --- /dev/null +++ b/src/ui/terminal/OChangeLog @@ -0,0 +1,284 @@ +2008-05-15 Ben Pfaff + + * 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 + + 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 + + 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 + + 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 + + * 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + Thanks to Jason Stover for verifying that this patch helps under + NetBSD. + + * main.c [HAVE_IEEE_FP]: Include . + (fpu_init) [HAVE_IEEE_FP]: Use setfpmask to mask floating-point + exceptions. + +Sun Feb 18 13:28:26 2007 Ben Pfaff + + * 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 + + * 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 + + * command-line.c (pre_syntax_message): Use term "syntax" instead + of "script". + +Sat Dec 9 07:21:02 WST 2006 John Darrington + + * msg-ui.c (msg_ui_done): call msg_locator_done. + +Sun Dec 3 11:57:00 2006 Ben Pfaff + + * read-line.c (read_interactive): Always read GETL_INTERACTIVE + lines. + +Thu Nov 16 20:46:35 WST 2006 John Darrington + + * main.c: Connect debugger on errors. + +Tue Nov 7 20:54:32 WST 2006 John Darrington + + * 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 + + * 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 + + * main.c: (main) Register SIGABRT with bug_handler also. + (bug_handler) Handle SIGABRT also. + +Tue Jun 27 22:44:56 2006 Ben Pfaff + + 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 + + * 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + * 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 + + * command-line.c: (var pre_syntax_message) -d and -u are no longer + supported. + +Sat Mar 11 14:18:39 WST 2006 John Darrington + + * automake.mk: Moved the pspp binary here. + +Thu Mar 2 08:40:33 WST 2006 John Darrington + + * Moved files from src directory diff --git a/src/ui/terminal/automake.mk b/src/ui/terminal/automake.mk index 34bed5ae..928716c8 100644 --- a/src/ui/terminal/automake.mk +++ b/src/ui/terminal/automake.mk @@ -45,3 +45,5 @@ src_ui_terminal_pspp_LDFLAGS = $(PG_LDFLAGS) if RELOCATABLE_VIA_LD src_ui_terminal_pspp_LDFLAGS += `$(RELOCATABLE_LDFLAGS) $(bindir)` endif + +EXTRA_DIST += src/ui/terminal/OChangeLog diff --git a/tests/ChangeLog b/tests/ChangeLog deleted file mode 100644 index 4742a1c7..00000000 --- a/tests/ChangeLog +++ /dev/null @@ -1,1242 +0,0 @@ -2008-06-21 Jason Stover - - * regression.sh, regression-qr.sh: Fixed column showing - standardized coefficients. - -2008-05-16 John Darrington - - * 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 - - * 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 - - Bug #22037. - - * automake.mk: Add new test. - - * bugs/crosstabs-crash2.sh: New test. - -2008-03-16 Ben Pfaff - - Patch #6452. Reviewed by John Darrington. - - * automake.mk: Add new test. - - * command/variable-display.sh: New test. - -2008-03-04 Ben Pfaff - - Patch #6441. Reviewed by John Darrington. - - * automake.mk: Add new test. - - * formats/format-guesser.sh: New test. - -2008-02-10 Ben Pfaff - - * 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 - - * automake.mk: Add target for dissect-sysfile. - - * dissect-sysfile.c: New program. - -2008-02-01 Ben Pfaff - - * 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 - - * 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 - - * 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 - - * 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 - - * bugs/compression.sh: Pass -b option to diff to avoid spurious - failure on od. - -2007-11-08 Ben Pfaff - - 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 - - * 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 - - 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 - - * Book1.gnm.unzipped command/get-data-gnm.sh: New test and data - for reading gnumeric files. - -2007-10-08 Ben Pfaff - - 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 - - Bug #21111. Reviewed by John Darrington. - - * command/input-program.sh: New test. - - * command/do-if.sh: New tests. - -2007-09-22 Ben Pfaff - - Bug #21128. Reviewed by John Darrington. - - * output/paper-size.sh: New test. - -2007-09-21 Ben Pfaff - - * bugs/unwritable-dir.sh: New test for bug #21117. - -2007-09-19 Ben Pfaff - - * bugs/input-crash.sh: Add regression test for bug #21108. - -2007-09-04 Ben Pfaff - - 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 - - * 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 - - * 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 - - * 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 - - 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 - - * 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 - - * 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 - - * 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 - - 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 - - * command/flip.sh: Add tests to avoid regression on bugs #20493, - #20494. - -2007-07-22 Ben Pfaff - - * command/very-long-strings.sh: Test both compressed and - uncompressed system files with very long strings. - -2007-07-17 Ben Pfaff - - 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 - - * 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 - - * xforms/expressions.sh: Remove unused file. Fixes bug - #18140. - -2007-06-06 Ben Pfaff - - * commands/match-files.sh: Test the new support for FIRST and LAST - subcommands. - -2007-06-06 Ben Pfaff - - * automake.mk: Remove test. - - * xforms/casefile.sh: Removed test. - -2007-06-06 Ben Pfaff - - * automake.mk: Add new test. - - * command/datasheet.sh: New test. - -2007-06-03 Ben Pfaff - - * 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 - - 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 - - * 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 - - * automake.mk: Add recode.sh to tests. - - * xforms/recode.sh: New test. - -2007-04-03 Ben Pfaff - John McCabe-Dansted - - * 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 - - 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 - - * automake.mk (tests_libpspp_bt_test_LDADD): Add tests/libpspp/bt. - - * libpspp/bt-test.c: New test. - -2007-03-25 Ben Pfaff - - * automake.mk: Add tests/libpspp/sparse-array-test. - - * libpspp/sparse-array-test.c: New test. - -2007-03-18 Ben Pfaff - - * 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 - - * libpspp/ll-test.c, libpspp/llx-test.c: Include . - -Sat Feb 3 21:57:34 2007 Ben Pfaff - - * automake.mk: Add tests/command/vector.sh. - - * command/vector.sh: New test. - -Wed Jan 24 21:13:53 2007 Ben Pfaff - - * 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 - - * automake.mk: Add tests/libpspp/heap-test. - - * libpspp/heap-test.c: New test. - -Wed Dec 13 21:00:46 2006 Ben Pfaff - - * command/rank.sh (activity): Use DELETE VAR (which is new) - instead of MODIFY VARS. - -Tue Dec 19 08:17:28 2006 Ben Pfaff - - * command/loop.sh: Test all the possible combinations of clauses. - -Sat Dec 16 14:00:48 2006 Ben Pfaff - - * command/rank.sh: Fix test to allow string grouping variables. - See bug #18533. - -Sat Dec 16 12:20:58 2006 Ben Pfaff - - * expressions/expressions.sh: Fix DATEDIFF function tests to - correspond with change to DATEDIFF. - -Wed Dec 13 19:34:29 2006 Ben Pfaff - - * expressions/expressions.sh: Test DATEDIFF, DATESUM functions. - -Sun Dec 10 16:52:04 2006 Ben Pfaff - - * automake.mk: Add new test. - - * expressions/valuelabel.sh: New test, for VALUELABEL function. - -Thu Nov 30 22:46:17 2006 Ben Pfaff - - * automake.mk: Add new test. - - * bugs/compute-sum.sh: New test, for bug #17422. - -Thu Nov 30 22:01:57 2006 Ben Pfaff - - * automake.mk: Add new test. - - * bugs/empty-do-repeat: New test, for bug #18407. - -Wed Nov 22 06:28:04 2006 Ben Pfaff - - * bugs/signals.sh: Fix race condition. - -Sun Nov 19 09:23:34 2006 Ben Pfaff - - * 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 - - * command/data-list.sh: Test newly implement SKIP keyword on DATA - LIST. - -Sat Nov 4 16:08:58 2006 Ben Pfaff - - * 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 - - * ll-test.c, llx-test.c: Reduce verbosity of output. - -Thu Oct 26 20:20:39 2006 Ben Pfaff - - * automake.mk: Add tests/formats/float-format.sh. - - * formats/float-format.sh: New test. - -Sat Oct 7 11:06:59 WST 2006 John Darrington - - * command/rank.sh: New file - -Sun Jul 16 21:08:51 2006 Ben Pfaff - - * command/print.sh: Update output to match PRINT revisions. - -Wed Jul 12 10:07:52 2006 Ben Pfaff - - * automake.mk: Put ll-test, llx-test in check_PROGRAMS instead of - noinst_PROGRAMS. - -Wed Jul 5 22:15:24 2006 Ben Pfaff - - * automake.mk: Add expressions/randist/compare.pl to EXTRA_DIST. - -Tue Jul 4 09:59:52 2006 Ben Pfaff - - 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 - - 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 - - * 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 - - * 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 - - * command/missing-values.sh: Update output to match behavior - changes. - -Mon Apr 3 12:32:36 2006 Ben Pfaff - - * Updated tests to match changes in output formatting. - -2006-03-23 Jason Stover - - * command/regression.sh: New test. - -Sat Mar 11 14:16:01 WST 2006 John Darrington - - * 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 - - * command/do-repeat.sh: New test. - - * bugs/terminate.sh: Removed (no longer applicable). - -Fri Nov 4 19:30:34 2005 Ben Pfaff - - * command/recode-bug.sh: Improve failure reports. - -Wed Nov 2 21:54:11 2005 Ben Pfaff - - * command/loop.sh: Update expected error messages. - -Sun Aug 21 00:20:02 2005 Ben Pfaff - - * command/import-export.sh: Simplify. - - * command/sysfiles-old.sh: Use version 2, not 3x. - -Sat Aug 6 17:32:39 2005 Ben Pfaff - - * command/missing-values.sh: New test. - - * Makefile.am: Add new test. - -Mon Aug 1 21:51:46 2005 Ben Pfaff - - * 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 - - * 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 - - * 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 - - 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 - - * Makefile.am: Add coverage.sh, temp_template to EXTRA_DIST. - -Sun Jul 24 20:35:04 2005 Ben Pfaff - - * command/sysfile-info.sh: Add "-b -B -w" to diff command line. - Fixes apparent failure under Cygwin. Thanks to John Darrington - for reporting this problem. - -Mon Jul 4 18:02:44 2005 Ben Pfaff - - * command/sysfile-info.sh: Don't verify endianness. Fixes bug - reported by "Marshall DeBerry" . - -Mon Jun 6 22:40:10 2005 Ben Pfaff - - * 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 - - * bugs/agg-crash-2.sh: Fix output given bug 13054. - -Wed May 4 23:50:02 2005 Ben Pfaff - - * 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 - - 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 - - * commands/match-files.sh: New test. - - * Makefile.am: (TESTS) Add commands/match-files.sh. - -Sun Apr 17 16:38:00 2005 Ben Pfaff - - * 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 - - * command/aggregate.sh: Rewrite. - -Mon Mar 14 21:58:23 2005 Ben Pfaff - - * 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 - - * 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 - - * bugs/temp-freq.sh: Add another test. - -Fri Mar 11 10:40:41 2005 Ben Pfaff - - * expressions/expressions.sh: Add another test. - -Sun Mar 6 19:30:14 2005 Ben Pfaff - - * expressions/vectors.sh: New test. - - * Makefile.am: Add expressions/vectors.sh. - -Sun Mar 6 17:56:27 2005 Ben Pfaff - - * expressions/expressions.sh: Add tests for generic optimizations. - -Sun Mar 6 11:03:58 2005 Ben Pfaff - - * Makefile.am: Add expressions/variables.sh. Remove expr.stat. - - * expr.stat: Removed. - -'Mon Feb 28 23:31:16 2005 Ben Pfaff - - * 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 - - * bugs/agg-crash-2.sh: Add new test for Bug #11955. - -Fri Feb 11 23:27:08 2005 Ben Pfaff - - * bugs/crosstabs-crash.sh: Add new test for Bug #11916. - -Tue Jan 18 19:25:24 WST 2005 John Darrington - - * 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 - - * bugs/big-input-2.sh Made the test a bit faster - -John Darrington - - * command/examine.sh Added - -Mon Nov 15 23:52:55 2004 Ben Pfaff - - * bugs/random.sh: Update expected random values to reflect the GSL - random number generator. - -Sat Nov 6 14:49:27 WST 2004 John Darrington - - * command/oneway-with-splits.sh Added. - -Sun Oct 31 16:08:47 WST 2004 John Darrington - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * Makefile.am: (TESTS) Add bugs/multipass.sh. - -Mon Mar 29 15:25:09 2004 Ben Pfaff - - * 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 - - * 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 - - * command/list.sh: Update output. - - * command/print.sh: Ditto. - - * command/weight.sh: Ditto. - -Sun Mar 14 23:04:14 2004 Ben Pfaff - - * command/sort.sh: Use numeric, not string, data to avoid spurious - valgrind complaints. - -Wed Mar 10 21:22:03 2004 Ben Pfaff - - * bugs/temporary.sh: Test that basic use of TEMPORARY works. - -Mon Feb 16 21:36:57 2004 Ben Pfaff - - * */*.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 - - * syntax: Run a diff when there's no expected output, too. - -Fri Jan 7 20:30:23 2000 Ben Pfaff - - * 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 - - * 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 - - * 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 - - * 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 - - * Makefile.am: (EXTRA_DIST) Add `syntax'. - (dist-hook) New target. - -Wed Aug 5 00:04:16 1998 Ben Pfaff - - * TEST-RESULTS: Removed. - - * show-check-msg: Removed. - - * expect/: New. - - * syntax: New. Thanks to James R. Van Zandt - 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 - - * Makefile.am: (EXTRA_DIST) Add flip.stat. - -Sun Jul 5 00:50:41 1998 Ben Pfaff - - * crosstabs.stat: Change to test /MISSING=REPORT. - -Tue Jun 2 23:42:23 1998 Ben Pfaff - - * flip.stat: New file. - - * weighting.stat: Update. - -Mon May 25 12:45:46 1998 Ben Pfaff - - * 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 - - * crosstabs.stat: Minor changes. - -Thu May 7 23:16:03 1998 Ben Pfaff - - * crosstabs.stat: Replace with a test that is hopefully better. - -Tue Apr 14 01:00:46 1998 Ben Pfaff - - * crosstabs.stat: New. - -Mon Mar 9 15:40:25 1998 Ben Pfaff - - * match-files.stat: More thorough. - -Mon Mar 9 01:14:14 1998 Ben Pfaff - - * match-files.stat: More thorough. - -1998-03-05 Ben Pfaff - - * Makefile.am: Use ./gengarbage instead of gengarbage. - -1998-02-23 Ben Pfaff - - * Many tests: Remove final finish command. - -1998-02-16 Ben Pfaff - - * (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 - - * Makefile.am: (EXTRA_DIST) Add TEST-RESULTS. - -Tue Jan 13 01:11:36 1998 Ben Pfaff - - * aggregate.stat: Some more testing. - -Sat Jan 10 23:57:14 1998 Ben Pfaff - - * Makefile.am: (DISTCLEANFILES) Add aggregate.save. - - * aggregate.stat: Slightly more thorough. - -Sat Jan 10 02:17:00 1998 Ben Pfaff - - * Makefile.am: (EXTRA_DIST) Add means.stat, t-test.stat. - - * means.stat: New file. - -Thu Jan 8 22:38:59 1998 Ben Pfaff - - * Many tests: Removed extra newlines from REMARKs. - -Mon Jan 5 11:18:44 1998 Ben Pfaff - - * sysfile-info.stat: Test most of the DISPLAY commands. Update - title. - - * vector.stat: Display vectors. - -Sun Jan 4 18:31:36 1998 Ben Pfaff - - * All tests: Added title. - - * begin-data.stat: Updated REMARK format. - - * descript.stat: Comment fix. - -Sun Dec 21 16:57:31 1997 Ben Pfaff - - * TEST-RESULTS: New file. - -Fri Dec 5 22:02:20 1997 Ben Pfaff - - * Makefile.am: (DISTCLEANFILES) Add fiasco.html. - -Tue Dec 2 14:55:22 1997 Ben Pfaff - - * t-test.stat: New file. - -Fri Nov 14 00:17:25 1997 Ben Pfaff - - * aggregate.stat: Changed. - -Tue Oct 28 16:26:25 1997 Ben Pfaff - - * aggregate.stat: New file. - - * Makefile.am: (EXTRA_DIST) Add aggregate.stat. - -Sun Oct 5 16:02:02 1997 Ben Pfaff - - * fall92.stat, fall92.data: Removed (unknown copyright). - - * gengarbage.c: Define EXIT_SUCCESS if not defined by headers. - From Alexandre Oliva . - -Sat Oct 4 16:35:59 1997 Ben Pfaff - - * repeating.stat: New file. - - * Makefile.am: (EXTRA_DIST) Add repeating.stat. - -Thu Sep 18 21:40:50 1997 Ben Pfaff - - * Makefile.am: (EXTRA_DIST) Add lag.stat. - -Mon Aug 18 18:31:42 1997 Ben Pfaff - - * do-repeat.stat: Even more useful. - - * lag.stat: New file. - -Sun Aug 17 22:47:53 1997 Ben Pfaff - - * do-repeat.stat: Made actually useful, not stupid. - -Sun Aug 3 11:46:00 1997 Ben Pfaff - - * In several files, replace usage of deprecated term `script' by - `syntax file'. - -Thu Jul 17 02:12:17 1997 Ben Pfaff - - * 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 - - * gengarbage.c: Reformat. #include's . Uses ANSI C - rand() in place of random(). Calls the randomizer srand(). - -Thu Jul 10 22:16:34 1997 Ben Pfaff - - * tabs.stat: New file. - -Wed Jun 25 22:54:40 1997 Ben Pfaff - - * Makefile.am: (EXTRA_DIST) Removed bug.stat, file-type.stat. - -Sun Jun 8 01:24:55 1997 Ben Pfaff - - * 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 - - * Many files: Comment fixes, removed `set output raw.' commands. - - * Other miscellaneous changes. - -Tue Jun 3 23:44:46 1997 Ben Pfaff - - * list.stat: Re-enabled some of it. - -Wed Apr 23 21:33:48 1997 Ben Pfaff - - * sysfile-info.stat: A little more generalized now. - -Fri Apr 18 15:42:22 1997 Ben Pfaff - - * Makefile.am: Maintainer-clean Makefile.in. - -Thu Mar 27 01:11:29 1997 Ben Pfaff - - * gengarbage.pl: Removed. - -Sat Feb 15 21:26:53 1997 Ben Pfaff - - * descript.stat: Syntax fixes. - - * process-if.stat: New test for PROCESS IF. - -Sun Jan 19 14:22:11 1997 Ben Pfaff - - * autorecode.stat, modify-vars.stat: More thorough. - - * data-formats.stat, file-label.stat: New tests. - -Thu Jan 16 13:08:57 1997 Ben Pfaff - - * bug.stat: Comment fix. - -Wed Jan 1 22:08:10 1997 Ben Pfaff - - * filter.stat: New file; tests FILTER behavior. - -Wed Jan 1 17:00:59 1997 Ben Pfaff - - * gengarbage.pl: New perl program equivalent to gengarbage.c. - -Sun Dec 29 21:36:48 1996 Ben Pfaff - - * gengarbage.c: Changed. - - * sort.stat: Changed. - -Sun Dec 22 23:10:39 1996 Ben Pfaff - - * sort.stat: New file. - -Fri Dec 13 21:30:53 1996 Ben Pfaff - - * autorecode.stat: New file. - - * fall92.stat: Mods for practicality. - - * test.bat, testall.bat: Removed. - -Thu Nov 28 23:14:07 1996 Ben Pfaff - - * list.stat, weighting.stat: Changed SET COMPATIBILITY subcommand - to SET EMULATION in anticipation of change. - -Sat Oct 26 23:06:06 1996 Ben Pfaff - - * recode.stat: Removed comment about bug, since I fixed that. - -Thu Oct 24 20:13:42 1996 Ben Pfaff - - * print.stat: Slightly more thorough. - -Thu Oct 24 17:47:14 1996 Ben Pfaff - - * time-date.stat: Slightly more thorough. - -Wed Oct 23 21:53:43 1996 Ben Pfaff - - * time-date.stat: New file. - -Thu Sep 26 22:20:26 1996 Ben Pfaff - - * 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 - - * weighting.stat: Tests for proper ligatures. Won't work until - encodings are correct, of course... - ----------------------------------------------------------------------- -Local Variables: -mode: change-log -version-control: never -End: diff --git a/tests/OChangeLog b/tests/OChangeLog new file mode 100644 index 00000000..4742a1c7 --- /dev/null +++ b/tests/OChangeLog @@ -0,0 +1,1242 @@ +2008-06-21 Jason Stover + + * regression.sh, regression-qr.sh: Fixed column showing + standardized coefficients. + +2008-05-16 John Darrington + + * 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 + + * 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 + + Bug #22037. + + * automake.mk: Add new test. + + * bugs/crosstabs-crash2.sh: New test. + +2008-03-16 Ben Pfaff + + Patch #6452. Reviewed by John Darrington. + + * automake.mk: Add new test. + + * command/variable-display.sh: New test. + +2008-03-04 Ben Pfaff + + Patch #6441. Reviewed by John Darrington. + + * automake.mk: Add new test. + + * formats/format-guesser.sh: New test. + +2008-02-10 Ben Pfaff + + * 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 + + * automake.mk: Add target for dissect-sysfile. + + * dissect-sysfile.c: New program. + +2008-02-01 Ben Pfaff + + * 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 + + * 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 + + * 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 + + * 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 + + * bugs/compression.sh: Pass -b option to diff to avoid spurious + failure on od. + +2007-11-08 Ben Pfaff + + 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 + + * 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 + + 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 + + * Book1.gnm.unzipped command/get-data-gnm.sh: New test and data + for reading gnumeric files. + +2007-10-08 Ben Pfaff + + 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 + + Bug #21111. Reviewed by John Darrington. + + * command/input-program.sh: New test. + + * command/do-if.sh: New tests. + +2007-09-22 Ben Pfaff + + Bug #21128. Reviewed by John Darrington. + + * output/paper-size.sh: New test. + +2007-09-21 Ben Pfaff + + * bugs/unwritable-dir.sh: New test for bug #21117. + +2007-09-19 Ben Pfaff + + * bugs/input-crash.sh: Add regression test for bug #21108. + +2007-09-04 Ben Pfaff + + 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 + + * 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 + + * 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 + + * 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 + + 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 + + * 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 + + * 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 + + * 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 + + 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 + + * command/flip.sh: Add tests to avoid regression on bugs #20493, + #20494. + +2007-07-22 Ben Pfaff + + * command/very-long-strings.sh: Test both compressed and + uncompressed system files with very long strings. + +2007-07-17 Ben Pfaff + + 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 + + * 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 + + * xforms/expressions.sh: Remove unused file. Fixes bug + #18140. + +2007-06-06 Ben Pfaff + + * commands/match-files.sh: Test the new support for FIRST and LAST + subcommands. + +2007-06-06 Ben Pfaff + + * automake.mk: Remove test. + + * xforms/casefile.sh: Removed test. + +2007-06-06 Ben Pfaff + + * automake.mk: Add new test. + + * command/datasheet.sh: New test. + +2007-06-03 Ben Pfaff + + * 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 + + 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 + + * 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 + + * automake.mk: Add recode.sh to tests. + + * xforms/recode.sh: New test. + +2007-04-03 Ben Pfaff + John McCabe-Dansted + + * 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 + + 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 + + * automake.mk (tests_libpspp_bt_test_LDADD): Add tests/libpspp/bt. + + * libpspp/bt-test.c: New test. + +2007-03-25 Ben Pfaff + + * automake.mk: Add tests/libpspp/sparse-array-test. + + * libpspp/sparse-array-test.c: New test. + +2007-03-18 Ben Pfaff + + * 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 + + * libpspp/ll-test.c, libpspp/llx-test.c: Include . + +Sat Feb 3 21:57:34 2007 Ben Pfaff + + * automake.mk: Add tests/command/vector.sh. + + * command/vector.sh: New test. + +Wed Jan 24 21:13:53 2007 Ben Pfaff + + * 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 + + * automake.mk: Add tests/libpspp/heap-test. + + * libpspp/heap-test.c: New test. + +Wed Dec 13 21:00:46 2006 Ben Pfaff + + * command/rank.sh (activity): Use DELETE VAR (which is new) + instead of MODIFY VARS. + +Tue Dec 19 08:17:28 2006 Ben Pfaff + + * command/loop.sh: Test all the possible combinations of clauses. + +Sat Dec 16 14:00:48 2006 Ben Pfaff + + * command/rank.sh: Fix test to allow string grouping variables. + See bug #18533. + +Sat Dec 16 12:20:58 2006 Ben Pfaff + + * expressions/expressions.sh: Fix DATEDIFF function tests to + correspond with change to DATEDIFF. + +Wed Dec 13 19:34:29 2006 Ben Pfaff + + * expressions/expressions.sh: Test DATEDIFF, DATESUM functions. + +Sun Dec 10 16:52:04 2006 Ben Pfaff + + * automake.mk: Add new test. + + * expressions/valuelabel.sh: New test, for VALUELABEL function. + +Thu Nov 30 22:46:17 2006 Ben Pfaff + + * automake.mk: Add new test. + + * bugs/compute-sum.sh: New test, for bug #17422. + +Thu Nov 30 22:01:57 2006 Ben Pfaff + + * automake.mk: Add new test. + + * bugs/empty-do-repeat: New test, for bug #18407. + +Wed Nov 22 06:28:04 2006 Ben Pfaff + + * bugs/signals.sh: Fix race condition. + +Sun Nov 19 09:23:34 2006 Ben Pfaff + + * 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 + + * command/data-list.sh: Test newly implement SKIP keyword on DATA + LIST. + +Sat Nov 4 16:08:58 2006 Ben Pfaff + + * 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 + + * ll-test.c, llx-test.c: Reduce verbosity of output. + +Thu Oct 26 20:20:39 2006 Ben Pfaff + + * automake.mk: Add tests/formats/float-format.sh. + + * formats/float-format.sh: New test. + +Sat Oct 7 11:06:59 WST 2006 John Darrington + + * command/rank.sh: New file + +Sun Jul 16 21:08:51 2006 Ben Pfaff + + * command/print.sh: Update output to match PRINT revisions. + +Wed Jul 12 10:07:52 2006 Ben Pfaff + + * automake.mk: Put ll-test, llx-test in check_PROGRAMS instead of + noinst_PROGRAMS. + +Wed Jul 5 22:15:24 2006 Ben Pfaff + + * automake.mk: Add expressions/randist/compare.pl to EXTRA_DIST. + +Tue Jul 4 09:59:52 2006 Ben Pfaff + + 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 + + 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 + + * 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 + + * 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 + + * command/missing-values.sh: Update output to match behavior + changes. + +Mon Apr 3 12:32:36 2006 Ben Pfaff + + * Updated tests to match changes in output formatting. + +2006-03-23 Jason Stover + + * command/regression.sh: New test. + +Sat Mar 11 14:16:01 WST 2006 John Darrington + + * 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 + + * command/do-repeat.sh: New test. + + * bugs/terminate.sh: Removed (no longer applicable). + +Fri Nov 4 19:30:34 2005 Ben Pfaff + + * command/recode-bug.sh: Improve failure reports. + +Wed Nov 2 21:54:11 2005 Ben Pfaff + + * command/loop.sh: Update expected error messages. + +Sun Aug 21 00:20:02 2005 Ben Pfaff + + * command/import-export.sh: Simplify. + + * command/sysfiles-old.sh: Use version 2, not 3x. + +Sat Aug 6 17:32:39 2005 Ben Pfaff + + * command/missing-values.sh: New test. + + * Makefile.am: Add new test. + +Mon Aug 1 21:51:46 2005 Ben Pfaff + + * 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 + + * 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 + + * 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 + + 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 + + * Makefile.am: Add coverage.sh, temp_template to EXTRA_DIST. + +Sun Jul 24 20:35:04 2005 Ben Pfaff + + * command/sysfile-info.sh: Add "-b -B -w" to diff command line. + Fixes apparent failure under Cygwin. Thanks to John Darrington + for reporting this problem. + +Mon Jul 4 18:02:44 2005 Ben Pfaff + + * command/sysfile-info.sh: Don't verify endianness. Fixes bug + reported by "Marshall DeBerry" . + +Mon Jun 6 22:40:10 2005 Ben Pfaff + + * 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 + + * bugs/agg-crash-2.sh: Fix output given bug 13054. + +Wed May 4 23:50:02 2005 Ben Pfaff + + * 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 + + 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 + + * commands/match-files.sh: New test. + + * Makefile.am: (TESTS) Add commands/match-files.sh. + +Sun Apr 17 16:38:00 2005 Ben Pfaff + + * 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 + + * command/aggregate.sh: Rewrite. + +Mon Mar 14 21:58:23 2005 Ben Pfaff + + * 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 + + * 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 + + * bugs/temp-freq.sh: Add another test. + +Fri Mar 11 10:40:41 2005 Ben Pfaff + + * expressions/expressions.sh: Add another test. + +Sun Mar 6 19:30:14 2005 Ben Pfaff + + * expressions/vectors.sh: New test. + + * Makefile.am: Add expressions/vectors.sh. + +Sun Mar 6 17:56:27 2005 Ben Pfaff + + * expressions/expressions.sh: Add tests for generic optimizations. + +Sun Mar 6 11:03:58 2005 Ben Pfaff + + * Makefile.am: Add expressions/variables.sh. Remove expr.stat. + + * expr.stat: Removed. + +'Mon Feb 28 23:31:16 2005 Ben Pfaff + + * 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 + + * bugs/agg-crash-2.sh: Add new test for Bug #11955. + +Fri Feb 11 23:27:08 2005 Ben Pfaff + + * bugs/crosstabs-crash.sh: Add new test for Bug #11916. + +Tue Jan 18 19:25:24 WST 2005 John Darrington + + * 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 + + * bugs/big-input-2.sh Made the test a bit faster + +John Darrington + + * command/examine.sh Added + +Mon Nov 15 23:52:55 2004 Ben Pfaff + + * bugs/random.sh: Update expected random values to reflect the GSL + random number generator. + +Sat Nov 6 14:49:27 WST 2004 John Darrington + + * command/oneway-with-splits.sh Added. + +Sun Oct 31 16:08:47 WST 2004 John Darrington + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * Makefile.am: (TESTS) Add bugs/multipass.sh. + +Mon Mar 29 15:25:09 2004 Ben Pfaff + + * 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 + + * 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 + + * command/list.sh: Update output. + + * command/print.sh: Ditto. + + * command/weight.sh: Ditto. + +Sun Mar 14 23:04:14 2004 Ben Pfaff + + * command/sort.sh: Use numeric, not string, data to avoid spurious + valgrind complaints. + +Wed Mar 10 21:22:03 2004 Ben Pfaff + + * bugs/temporary.sh: Test that basic use of TEMPORARY works. + +Mon Feb 16 21:36:57 2004 Ben Pfaff + + * */*.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 + + * syntax: Run a diff when there's no expected output, too. + +Fri Jan 7 20:30:23 2000 Ben Pfaff + + * 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 + + * 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 + + * 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 + + * 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 + + * Makefile.am: (EXTRA_DIST) Add `syntax'. + (dist-hook) New target. + +Wed Aug 5 00:04:16 1998 Ben Pfaff + + * TEST-RESULTS: Removed. + + * show-check-msg: Removed. + + * expect/: New. + + * syntax: New. Thanks to James R. Van Zandt + 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 + + * Makefile.am: (EXTRA_DIST) Add flip.stat. + +Sun Jul 5 00:50:41 1998 Ben Pfaff + + * crosstabs.stat: Change to test /MISSING=REPORT. + +Tue Jun 2 23:42:23 1998 Ben Pfaff + + * flip.stat: New file. + + * weighting.stat: Update. + +Mon May 25 12:45:46 1998 Ben Pfaff + + * 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 + + * crosstabs.stat: Minor changes. + +Thu May 7 23:16:03 1998 Ben Pfaff + + * crosstabs.stat: Replace with a test that is hopefully better. + +Tue Apr 14 01:00:46 1998 Ben Pfaff + + * crosstabs.stat: New. + +Mon Mar 9 15:40:25 1998 Ben Pfaff + + * match-files.stat: More thorough. + +Mon Mar 9 01:14:14 1998 Ben Pfaff + + * match-files.stat: More thorough. + +1998-03-05 Ben Pfaff + + * Makefile.am: Use ./gengarbage instead of gengarbage. + +1998-02-23 Ben Pfaff + + * Many tests: Remove final finish command. + +1998-02-16 Ben Pfaff + + * (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 + + * Makefile.am: (EXTRA_DIST) Add TEST-RESULTS. + +Tue Jan 13 01:11:36 1998 Ben Pfaff + + * aggregate.stat: Some more testing. + +Sat Jan 10 23:57:14 1998 Ben Pfaff + + * Makefile.am: (DISTCLEANFILES) Add aggregate.save. + + * aggregate.stat: Slightly more thorough. + +Sat Jan 10 02:17:00 1998 Ben Pfaff + + * Makefile.am: (EXTRA_DIST) Add means.stat, t-test.stat. + + * means.stat: New file. + +Thu Jan 8 22:38:59 1998 Ben Pfaff + + * Many tests: Removed extra newlines from REMARKs. + +Mon Jan 5 11:18:44 1998 Ben Pfaff + + * sysfile-info.stat: Test most of the DISPLAY commands. Update + title. + + * vector.stat: Display vectors. + +Sun Jan 4 18:31:36 1998 Ben Pfaff + + * All tests: Added title. + + * begin-data.stat: Updated REMARK format. + + * descript.stat: Comment fix. + +Sun Dec 21 16:57:31 1997 Ben Pfaff + + * TEST-RESULTS: New file. + +Fri Dec 5 22:02:20 1997 Ben Pfaff + + * Makefile.am: (DISTCLEANFILES) Add fiasco.html. + +Tue Dec 2 14:55:22 1997 Ben Pfaff + + * t-test.stat: New file. + +Fri Nov 14 00:17:25 1997 Ben Pfaff + + * aggregate.stat: Changed. + +Tue Oct 28 16:26:25 1997 Ben Pfaff + + * aggregate.stat: New file. + + * Makefile.am: (EXTRA_DIST) Add aggregate.stat. + +Sun Oct 5 16:02:02 1997 Ben Pfaff + + * fall92.stat, fall92.data: Removed (unknown copyright). + + * gengarbage.c: Define EXIT_SUCCESS if not defined by headers. + From Alexandre Oliva . + +Sat Oct 4 16:35:59 1997 Ben Pfaff + + * repeating.stat: New file. + + * Makefile.am: (EXTRA_DIST) Add repeating.stat. + +Thu Sep 18 21:40:50 1997 Ben Pfaff + + * Makefile.am: (EXTRA_DIST) Add lag.stat. + +Mon Aug 18 18:31:42 1997 Ben Pfaff + + * do-repeat.stat: Even more useful. + + * lag.stat: New file. + +Sun Aug 17 22:47:53 1997 Ben Pfaff + + * do-repeat.stat: Made actually useful, not stupid. + +Sun Aug 3 11:46:00 1997 Ben Pfaff + + * In several files, replace usage of deprecated term `script' by + `syntax file'. + +Thu Jul 17 02:12:17 1997 Ben Pfaff + + * 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 + + * gengarbage.c: Reformat. #include's . Uses ANSI C + rand() in place of random(). Calls the randomizer srand(). + +Thu Jul 10 22:16:34 1997 Ben Pfaff + + * tabs.stat: New file. + +Wed Jun 25 22:54:40 1997 Ben Pfaff + + * Makefile.am: (EXTRA_DIST) Removed bug.stat, file-type.stat. + +Sun Jun 8 01:24:55 1997 Ben Pfaff + + * 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 + + * Many files: Comment fixes, removed `set output raw.' commands. + + * Other miscellaneous changes. + +Tue Jun 3 23:44:46 1997 Ben Pfaff + + * list.stat: Re-enabled some of it. + +Wed Apr 23 21:33:48 1997 Ben Pfaff + + * sysfile-info.stat: A little more generalized now. + +Fri Apr 18 15:42:22 1997 Ben Pfaff + + * Makefile.am: Maintainer-clean Makefile.in. + +Thu Mar 27 01:11:29 1997 Ben Pfaff + + * gengarbage.pl: Removed. + +Sat Feb 15 21:26:53 1997 Ben Pfaff + + * descript.stat: Syntax fixes. + + * process-if.stat: New test for PROCESS IF. + +Sun Jan 19 14:22:11 1997 Ben Pfaff + + * autorecode.stat, modify-vars.stat: More thorough. + + * data-formats.stat, file-label.stat: New tests. + +Thu Jan 16 13:08:57 1997 Ben Pfaff + + * bug.stat: Comment fix. + +Wed Jan 1 22:08:10 1997 Ben Pfaff + + * filter.stat: New file; tests FILTER behavior. + +Wed Jan 1 17:00:59 1997 Ben Pfaff + + * gengarbage.pl: New perl program equivalent to gengarbage.c. + +Sun Dec 29 21:36:48 1996 Ben Pfaff + + * gengarbage.c: Changed. + + * sort.stat: Changed. + +Sun Dec 22 23:10:39 1996 Ben Pfaff + + * sort.stat: New file. + +Fri Dec 13 21:30:53 1996 Ben Pfaff + + * autorecode.stat: New file. + + * fall92.stat: Mods for practicality. + + * test.bat, testall.bat: Removed. + +Thu Nov 28 23:14:07 1996 Ben Pfaff + + * list.stat, weighting.stat: Changed SET COMPATIBILITY subcommand + to SET EMULATION in anticipation of change. + +Sat Oct 26 23:06:06 1996 Ben Pfaff + + * recode.stat: Removed comment about bug, since I fixed that. + +Thu Oct 24 20:13:42 1996 Ben Pfaff + + * print.stat: Slightly more thorough. + +Thu Oct 24 17:47:14 1996 Ben Pfaff + + * time-date.stat: Slightly more thorough. + +Wed Oct 23 21:53:43 1996 Ben Pfaff + + * time-date.stat: New file. + +Thu Sep 26 22:20:26 1996 Ben Pfaff + + * 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 + + * weighting.stat: Tests for proper ligatures. Won't work until + encodings are correct, of course... + +---------------------------------------------------------------------- +Local Variables: +mode: change-log +version-control: never +End: diff --git a/tests/automake.mk b/tests/automake.mk index 1dd78323..6fb11d02 100644 --- a/tests/automake.mk +++ b/tests/automake.mk @@ -311,8 +311,11 @@ EXTRA_DIST += \ 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