Ben Pfaff [Sun, 29 Jul 2007 05:40:51 +0000 (05:40 +0000)]
Make PSPP able to read all the portable files I could find on the
web.
* 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.
Ben Pfaff [Fri, 27 Jul 2007 22:59:32 +0000 (22:59 +0000)]
Add tty and listing devices that use VT100 (and xterm) line-drawing
characters, and corresponding support for an initialization string in
the ASCII output device.
Ben Pfaff [Fri, 27 Jul 2007 22:58:02 +0000 (22:58 +0000)]
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.
Thanks to John Darrington for review.
Ben Pfaff [Fri, 27 Jul 2007 21:44:18 +0000 (21:44 +0000)]
(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.
Ben Pfaff [Fri, 27 Jul 2007 21:33:35 +0000 (21:33 +0000)]
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.
Ben Pfaff [Wed, 25 Jul 2007 04:31:34 +0000 (04:31 +0000)]
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.
Ben Pfaff [Wed, 25 Jul 2007 04:03:58 +0000 (04:03 +0000)]
Fix bugs #20493, #20494.
* 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.
* tests/command/flip.sh: Add tests to avoid regression on bugs
#20493, #20494.
Ben Pfaff [Mon, 23 Jul 2007 05:11:58 +0000 (05:11 +0000)]
Don't try to write very long strings to portable files. The format
does not support it.
(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.
Ben Pfaff [Mon, 23 Jul 2007 05:05:45 +0000 (05:05 +0000)]
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.
Ben Pfaff [Wed, 18 Jul 2007 04:28:11 +0000 (04:28 +0000)]
Ignore directories that have been removed from CVS. These used to not
show up in Emacs' pcl-cvs mode, but for some reason they now pollute
the display.
Ben Pfaff [Wed, 18 Jul 2007 02:44:29 +0000 (02:44 +0000)]
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.
Ben Pfaff [Thu, 7 Jun 2007 06:41:58 +0000 (06:41 +0000)]
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.
Ben Pfaff [Thu, 7 Jun 2007 05:59:27 +0000 (05:59 +0000)]
Add datasheet.
After this commit everything compiles, but linking fails because
casereader_clone and some other casereader symbols are duplicates.
The next commit will remove casefile.c from the build and fix the
problem.