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.