Use isfinite, round modules from gnulib.
[pspp-builds.git] / src / data / ChangeLog
index 61cf23b98cfb09578da45bedd1791e5e81b08acd..6f116701363c5c048e2d6b125e27ca85dd142647 100644 (file)
@@ -1,3 +1,241 @@
+2007-11-02  Ben Pfaff  <blp@gnu.org>
+
+       * data-out.c (output_number): Use isfinite (from C99) instead of
+       gsl_isfinite, since we now have universal support for it in
+       gnulib.
+       (output_infinite): Ditto.
+       [!HAVE_ROUND] (round): Remove definition, since we now have a
+       replacement in gnulib.
+
+2007-10-27  John Darrington <john@darrington.wattle.id.au>
+
+       * dictionary.c: Fixed bug in dict_clone, where the vardict.dict member
+       wasn't initialised correctly. Closes bugs #21330 and 21397
+
+
+2007-10-08  Ben Pfaff  <blp@gnu.org>
+
+       Fix bug #21280.  Thanks to John Darrington for review.
+
+       * file-name.c (create_stream): New function.
+
+       * por-file-writer.c (pfm_open_writer): Use fh_open to open the
+       file handle before creating the file, to ensure that we don't
+       truncate a file that we're reading.  Make code easier to read by
+       using create_stream.
+
+       * sys-file-write.c (sfm_open_writer): Ditto.
+
+2007-10-01  Ben Pfaff  <blp@gnu.org>
+
+       Fix bug #21192.  Thanks to John Darrington for review.
+
+       * casereader.c (casereader_read): Decrement case_cnt before
+       calling the casereader's "read" member function, so that we
+       interact properly with lazy_casereader.
+
+       * datasheet.c: Add regression test for above bug fix.
+       (clone_datasheet): New function.
+       (lazy_callback): New function.
+       (check_datasheet_casereader): New function.
+       (check_datasheet): Check datasheet contents are reported correctly
+       through an ordinary casereader and a lazy casereader.
+       (clone_model): Use clone_datasheet.
+
+2007-09-24  Ben Pfaff  <blp@gnu.org>
+
+       Patch #6210.  Reviewed by John Darrington.
+       * settings.c: Drop "long view", which is not needed any longer.
+       (static var long_view): Removed.
+       (force_long_view): Removed.
+       (get_viewwidth): Removed.
+       (init_viewport): Removed long_view reference.
+
+2007-09-19  John Darrington <john@darrington.wattle.id.au>
+       
+       * settings.c settings.h: Changed viewport's length and width to be 
+       owned by the user interface which uses the data library.  This allows
+       better abstraction, and makes dynamically adjustable dimensions easier.
+       
+2007-09-18  Ben Pfaff  <blp@gnu.org>
+
+       * procedure.c (proc_extract_active_file_data): New function.
+
+       * lazy-casereader.h: New file.
+
+       * lazy-casereader.c: New file.
+
+       * casereader.c (casereader_dynamic_cast): New function.
+
+2007-09-14  Ben Pfaff  <blp@gnu.org>
+
+       * dictionary.c (dict_clone): Copy case indexes from cloned
+       dictionary.  Fixes bug #21061.  Reviewed by John Darrington.
+
+2007-09-13  John Darrington <john@darrington.wattle.id.au>
+
+       * value.c value.h (create_value): New function.
+
+2007-09-12  Ben Pfaff  <blp@gnu.org>
+
+       Make it clear that translator casereader and casewriter translate
+       functions are supposed to destroy their input case.
+       
+       * casereader-translator.c (struct casereader_translator): Change
+       input case parameter of translate member function from const
+       struct ccase * to struct ccase *.
+       (casereader_create_translator): Ditto, for translate parameter.
+
+       * casewriter-translator.c (struct casewriter_translator): Ditto.
+       (casewriter_create_translator): Ditto.
+
+2007-08-27  John Darrington <john@darrington.wattle.id.au>
+       
+       * sys-file-reader.c (read_display_parameters): Force display width 
+       to 8, if the sys file says 0 (like SPSS does).
+
+2007-08-12  Ben Pfaff  <blp@gnu.org>
+
+       * dictionary.c (dict_dump): New function.
+
+2007-08-12  Ben Pfaff  <blp@gnu.org>
+
+       Drop dict_compactor in favor of using the new struct case_map.
+
+       * dictionary.c (struct copy_map): Removed.
+       (struct dict_compactor): Removed.
+       (dict_make_compactor): Removed.
+       (dict_compactor_compact): Removed.
+       (dict_compactor_destroy): Removed.
+
+       * procedure.c (struct data_set): Change `compactor' member to be a
+       struct case_map *.
+       (proc_open): Use case_map_to_compact_dict instead of
+       dict_make_compactor.
+       (proc_casereader_read): Use case_map_execute instead of
+       dict_compactor_compact.
+       (proc_commit): Use case_map_destroy instead of
+       dict_compactor_destroy.
+
+       * scratch-writer.c (struct scratch_writer): Change `compactor'
+       member to be a struct case_map *.
+       (scratch_writer_open): Use case_map_to_compact_dict instead of
+       dict_make_compactor.
+       (scratch_writer_casewriter_write): Use case_map_execute instead of
+       dict_compactor_compact.
+
+2007-08-12  Ben Pfaff  <blp@gnu.org>
+
+       * automake.mk: Add case-map.c, case-map.h.
+
+       * case-map.c: New file.
+
+       * case-map.h: New file.
+
+2007-08-12  Ben Pfaff  <blp@gnu.org>
+
+       * dictionary.c (dict_compact_values): Don't delete scratch
+       variables as well as compacting case indexes.  Update all callers.
+       (dict_get_compacted_value_cnt): Rename dict_count_values and
+       change interface.  Update all callers.
+       (dict_get_compacted_value_cnt): Remove.
+       (dict_compacting_would_shrink): Remove.
+       (dict_compacting_would_change): Remove.
+       (dict_make_compactor): Add new parameter.  Update all callers.
+       
+       * procedure.c (proc_casereader_read): Use casewriter_get_value_cnt
+       instead of dict_count_values, changing an O(N) operation into
+       O(1).
+
+2007-08-12  Ben Pfaff  <blp@gnu.org>
+
+       * casereader.c (casereader_read): Don't require cases read by a
+       casereader to be exactly the expected size: as long as they're big
+       enough, it's OK.
+
+2007-08-12  Ben Pfaff  <blp@gnu.org>
+
+       Make casewriters keep track of the number of `union value's in
+       each case.  This is useful for two reasons: casewriter_write can
+       then check that the case being written is large enough, and later
+       recipients of the casewriter can determine the size of the case.
+       
+       * casewriter-translator.c (casewriter_create_translator): Add
+       value_cnt parameter.
+       
+       * casewriter.c (struct casewriter): Add value_cnt member.
+       (casewriter_write): Check that the case passed in is big enough.
+       (casewriter_get_value_cnt): New function.
+       (casewriter_create): Add value_cnt parameter.
+
+2007-08-09  Ben Pfaff  <blp@gnu.org>
+
+       Fix bug reported by Jason Stover.
+       * settings.c: Move get_termcap_viewport and in particular the
+       #include for <curses.h> to the end of the file.  curses.h
+       redefines bool on some systems (e.g. OpenBSD), which causes
+       disagreement between uses of bool before its inclusion and
+       afterward.
+       Tested by Jason Stover.
+
+2007-07-29  Ben Pfaff  <blp@gnu.org>
+
+       Provisional fix for bug #18692 and bug #20161.  Reviewed by John
+       Darrington.
+
+       * file-name.c (fn_open): Only pass "r" or "w" to popen as mode
+       argument (never "rb" or "wb") because SUSv3 says that only those
+       modes are defined, and glibc in fact rejects other modes.
+
+       Open portable files with fn_open so that they can be read from
+       pipes.  Fix missing fh_close call to go along with fh_open.
+       Report an error if the file close reports an error.
+       * por-file-reader.c (close_reader): New function.
+       (por_file_casereader_destroy): Use close_reader.
+       (pfm_open_reader): Open file with fn_open.
+
+2007-07-28  Ben Pfaff  <blp@gnu.org>
+
+       Make PSPP able to read all the portable files I could find on the
+       web.  Thanks to John Darrington for review.  Bug #17620.
+       * por-file-reader.c (struct pfm_reader): New member `line_length'.
+       (error): Print file offset in hexadecimal.
+       (warning): New function.
+       (advance): Treat lines less than 80 bytes long as padded to 80
+       bytes with spaces.
+       (pfm_open_reader): Call read_documents if we find an "E" record.
+       (convert_format): Convert invalid formats to the default format
+       instead of aborting reading the file.
+       (read_variables): Rename duplicate variable names instead of
+       aborting reading the file.
+       (read_value_label): Allow string variables of different widths to
+       be assigned value labels in the same record.  Replace duplicate
+       value labels instead of aborting.
+       (read_documents): New function.
+
+       * por-file-writer.c (pfm_open_writer): Call write_documents if the
+       dictionary has documents.
+       (write_documents): New function.
+
+2007-07-25  Ben Pfaff  <blp@gnu.org>
+
+       Fix bugs related to bug #17213.
+
+       * settings.c: Use HAVE_LIBNCURSES instead of HAVE_LIBTERMCAP,
+       since the former is what config.h has.  Include the needed ncurses
+       headers.
+       (static var echo) Rename to `do_echo' because the original name is
+       the same as an ncurses identifier.
+       (get_termcap_viewport) Use error instead of msg.
+
+       * file-name.c (fn_interp_vars): Fix interpolation of $VARS.
+       (fn_close): Don't close stdin, stdout, stderr.
+
+2007-07-26 John Darrington <john@darrington.wattle.id.au>
+
+       * procedure.c procedure.h: Added callbacks which get invoked whenever 
+       a dataset's transformation chain changes.
+
 2007-07-24  Ben Pfaff  <blp@gnu.org>
 
        Fix bug #6113.
@@ -7,6 +245,7 @@
        * variable.c (var_create): Use var_default_display_width to pick
        new variable's display width.
        (var_default_display_width): New function.
+       Reviewed by John Darrington.
 
 2007-07-24  Ben Pfaff  <blp@gnu.org>