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.
Ben Pfaff [Thu, 7 Jun 2007 05:53:54 +0000 (05:53 +0000)]
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.
Ben Pfaff [Thu, 7 Jun 2007 05:42:00 +0000 (05:42 +0000)]
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.