Patch #6262. New developers guide and resulting fixes and cleanups.
authorBen Pfaff <blp@gnu.org>
Sun, 11 Nov 2007 05:51:38 +0000 (05:51 +0000)
committerBen Pfaff <blp@gnu.org>
Sun, 11 Nov 2007 05:51:38 +0000 (05:51 +0000)
commita9acce47d67e0ab35ce1690e4f1b1ac0121c2d78
tree70ea3c1d2d51b10b5c4ad8c78d562afd83edfb8a
parentb31bac73c9affb7843d332807ffe5cef9c5e7cea
Patch #6262.  New developers guide and resulting fixes and cleanups.

* 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.

* 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.
79 files changed:
doc/.cvsignore
doc/ChangeLog
doc/automake.mk
doc/data-file-format.texi [deleted file]
doc/dev/concepts.texi [new file with mode: 0644]
doc/dev/data.texi [new file with mode: 0644]
doc/dev/intro.texi [new file with mode: 0644]
doc/dev/output.texi [new file with mode: 0644]
doc/dev/portable-file-format.texi [new file with mode: 0644]
doc/dev/q2c.texi [new file with mode: 0644]
doc/dev/syntax.texi [new file with mode: 0644]
doc/dev/system-file-format.texi [new file with mode: 0644]
doc/not-implemented.texi
doc/portable-file-format.texi [deleted file]
doc/pspp-dev.texinfo [new file with mode: 0644]
doc/pspp.texinfo
doc/q2c.texi [deleted file]
doc/utilities.texi
doc/variables.texi
po/de.po
po/en_GB.po
src/data/ChangeLog
src/data/automake.mk
src/data/calendar.c
src/data/case.h
src/data/data-in.h
src/data/data-out.c
src/data/dict-class.c [new file with mode: 0644]
src/data/dict-class.h [new file with mode: 0644]
src/data/dictionary.c
src/data/dictionary.h
src/data/format.c
src/data/format.h
src/data/missing-values.c
src/data/missing-values.h
src/data/por-file-reader.c
src/data/procedure.c
src/data/short-names.h
src/data/sys-file-reader.c
src/data/sys-file-writer.c
src/data/val-type.h [new file with mode: 0644]
src/data/value-labels.c
src/data/value-labels.h
src/data/value.c
src/data/value.h
src/data/vardict.h
src/data/variable.c
src/data/variable.h
src/data/vector.c
src/data/vector.h
src/language/data-io/data-list.c
src/language/data-io/file-handle.q
src/language/data-io/get.c
src/language/data-io/list.q
src/language/dictionary/formats.c
src/language/dictionary/missing-values.c
src/language/dictionary/modify-variables.c
src/language/dictionary/vector.c
src/language/expressions/evaluate.c
src/language/expressions/parse.c
src/language/lexer/lexer.c
src/language/lexer/variable-parser.c
src/language/stats/aggregate.c
src/language/stats/descriptives.c
src/language/stats/flip.c
src/language/stats/frequencies.q
src/language/stats/rank.q
src/language/stats/regression.q
src/language/stats/t-test.q
src/language/xforms/compute.c
src/language/xforms/recode.c
src/libpspp/model-checker.c
src/math/factor-stats.c
src/math/moments.c
src/math/percentiles.c
src/ui/gui/missing-val-dialog.c
src/ui/gui/val-labs-dialog.c
src/ui/gui/var-display.c
src/ui/gui/var-type-dialog.c