First step in making struct variable opaque: the boring mechanical
[pspp-builds.git] / src / data / ChangeLog
1 Mon Dec  4 22:20:17 2006  Ben Pfaff  <blp@gnu.org>
2
3         Start converting struct variable to an opaque.  In this phase, we
4         add a bunch of setter and getter functions and convert most of the
5         PSPP code to use them.  The resulting changes are pervasive but
6         mostly trivial, and only the notable changes are logged.
7         
8         * format.c (fmt_equal): New function.
9         
10         * variable.c (var_type_is_valid): New function.
11         (measure_is_valid) Moved here, from format.c.
12         (alignment_is_valid) Moved here, from format.c.
13         (var_get_name) New function.
14         (var_set_name) New function.
15         (width_to_type) New function.
16         (var_get_type) New function.
17         (var_get_width) New function.
18         (var_set_width) New function.
19         (var_is_numeric) New function.
20         (var_is_alpha) New function.
21         (var_is_short_string) New function.
22         (var_is_long_string) New function.
23         (var_is_very_long_string) New function.
24         (var_get_missing_values) New function.
25         (var_set_missing_values) New function.
26         (var_clear_missing_values) New function.
27         (var_has_missing_values) New function.
28         (var_is_value_missing) New function.
29         (var_is_num_missing) New function.
30         (var_is_str_missing) New function.
31         (var_is_value_user_missing) New function.
32         (var_is_num_user_missing) New function.
33         (var_is_str_user_missing) New function.
34         (var_is_value_system_missing) New function.
35         (var_get_print_format) New function.
36         (var_set_print_format) New function.
37         (var_get_write_format) New function.
38         (var_set_write_format) New function.
39         (var_set_both_formats) New function.
40         (var_get_label) New function.
41         (var_set_label) New function.
42         (var_clear_label) New function.
43         (var_has_label) New function.
44         (var_get_measure) New function.
45         (var_set_measure) New function.
46         (var_get_display_width) New function.
47         (var_set_display_width) New function.
48         (var_get_alignment) New function.
49         (var_set_alignment) New function.
50         (var_get_value_cnt) New function.
51         (var_get_leave) New function.
52         (var_get_short_name) New function.
53
54         * variable.h: (struct variable) Removed "type" and "nv" members;
55         they are now computed from "width" where needed.
56
57 Mon Dec  4 21:38:40 2006  Ben Pfaff  <blp@gnu.org>
58
59         * missing-values.c (mv_resize): Don't write beyond end of the
60         allocated buffer when resizing a long string.
61
62 Sat Dec  2 16:28:32 2006  Ben Pfaff  <blp@gnu.org>
63
64         Clean up identifier code: don't require identifier enumerations to
65         be in a particular order; make better use of string library;
66         expose less of the internals.
67                 
68         * identifier.c: (lex_skip_identifier) Rename lex_id_get_length,
69         change interface.  Updated all callers.
70         (lex_id_match) Change interface to use struct substring, update
71         all callers.
72         (lex_id_match_len) Removed.  Update callers to use lex_id_match.
73         (global array keywords[]) Make static, change form.  Update all
74         users to use lex_id_name instead.
75         (lex_is_keyword) New function.
76         (lex_id_to_token) Change interface to use struct substring, update
77         all callers.
78         (lex_id_name) New function.
79
80         * identifier.h: (T_FIRST_KEYWORD) Removed.  Changed users to call
81         lex_is_keyword instead.
82         (T_LAST_KEYWORD) Removed.
83         (T_N_KEYWORDS) Removed.
84         
85 Sat Nov 18 20:46:35 2006  Ben Pfaff  <blp@gnu.org>
86
87         * format.c: (fmt_date_template) Distinguish characters for which a
88         space is output and any date delimiter is allowed on input, from
89         those for which a space is output and only a space is allowed on
90         input.  The former is represented by X, the latter by a space.
91         Also, drop distinction between h and H, changing the former to the
92         latter.
93
94         * data-in.c: Completely rewrite internals to conform to SPSS input
95         formats as closely as possible.
96         (data_in) Changed external interface by replacing the structure
97         that was used as a single argument by a set of arguments.  Updated
98         all callers.
99         (data_in_finite_line) Removed.  Converted all callers to use plain
100         data_in.
101         (data_in_get_integer_format) New function.
102         (data_in_set_integer_format) New function.
103         (data_in_get_float_format) New function.
104         (data_in_set_float_format) New function.
105
106         * data-in.h: (enums DI_IGNORE_ERROR, DI_IMPLIED_DECIMALS) Removed.
107         (struct data_in) Removed.
108
109         * data-out.c: (output_date) Drop each component from the input as
110         it is output, to allow us to drop the distinction between h (a
111         count of hours) and H (the hour of day) template characters.
112         Also, handle new X template character.
113         (output_scientific) Follow more rational rule on when to drop
114         fraction introduced between SPSS 13 and 15.  Updated test case to
115         match new behavior.
116
117 Sat Nov 11 11:41:26 2006  Ben Pfaff  <blp@gnu.org>
118
119         Fix buffer overflow reported by John Darrington.
120
121         * data-out.c (output_bcd_integer): In case of SYSMIS, etc.,
122         realize that DIGITS is a count of nibbles, not of bytes.
123
124 Sat Nov  4 15:59:56 2006  Ben Pfaff  <blp@gnu.org>
125
126         * calendar.c (calendar_offset_to_gregorian) Also return the
127         year-of-day.  Change callers to new interface.
128
129         * data-out.c: Completely rewrite internals to conform to SPSS
130         output formats as completely as possible.
131         (data_out) Change interface to put input parameters before output
132         parameters, for consistency with the style I now prefer.  Update
133         all callers.
134         (data_out_get_integer_format) New public function.
135         (data_out_set_integer_format) New public function.
136         (data_out_get_float_format) New public function.
137         (data_out_set_float_format) New public function.
138
139         * data-out.h: New file.  Move prototype for data_out here, from
140         format.h.
141
142         * format.c: (fmt_step_width) Use equality comparison instead of
143         bitwise and, for clarity.
144         (fmt_is_string) Ditto.
145         (fmt_input_to_output) Fix categories that are translated to F
146         format.
147
148 Sun Nov  5 08:29:34 WST 2006 John Darrington <john@darrington.wattle.id.au>
149
150         * casefilter.c casefilter.h (new files), casefile.c casefile.h 
151         casefile-private.h: Added casefilter to assist commands with missing 
152         values.
153
154 Sat Nov  4 11:47:09 2006  Ben Pfaff  <blp@gnu.org>
155
156         Implement SET ERRORS, SHOW ERRORS.  Fixes bug #17609.
157         
158         * settings.c: (route_errors_to_terminal) New variable.
159         (route_errors_to_listing) New variable. 
160         (get_error_routing_to_terminal) New function.
161         (set_error_routing_to_terminal) New function.
162         (get_error_routing_to_listing) New function.
163         (set_error_routing_to_listing) New function.
164
165         * settings.h: (SET_ROUTE_* enums) Removed, because unused.
166
167 Tue Oct 31 19:58:27 2006  Ben Pfaff  <blp@gnu.org>
168
169         * format.c: Completely rewrite, to achieve better abstraction.
170         Rewrite all references to formats in other files.
171         
172         * format.def: Rewrite and reorganize.
173
174         * settings.c: Move everything related to custom currency formats
175         into format.[ch], changing them in form, so as to group related
176         code and definitions better.  Changed all references to use the
177         new functions.
178         (static var decimal) Removed.
179         (static var grouping) Removed.
180         (static var cc) Removed.
181         (get_decimal) Removed.
182         (set_decimal) Removed.
183         (get_grouping) Removed.
184         (set_grouping) Removed.
185         (get_cc) Removed.
186         (set_cc) Removed.
187
188         * settings.h: (macro CC_CNT) Removed.
189         (macro CC_WIDTH) Removed.
190         (struct custom_currency) Removed.
191
192 Tue Oct 31 19:56:19 2006  Ben Pfaff  <blp@gnu.org>
193
194         * data-in.c (data_in): Use switch statement instead of table, to
195         avoid dependence on the order of the FMT_* enums.
196
197 Tue Oct 31 19:35:36 2006  Ben Pfaff  <blp@gnu.org>
198
199         * data-out.c: (num_to_string) Removed, because it was dead code.
200
201 Tue Oct 31 18:09:24 2006  Ben Pfaff  <blp@gnu.org>
202
203         * data-in.c (parse_trailer): Fix error message.
204
205 Sat Oct 28 11:56:50 2006  Ben Pfaff  <blp@gnu.org>
206
207         * format.c (fmt_is_binary): New function.
208
209 Thu Oct 19 22:59:56 WST 2006 John Darrington <john@darrington.wattle.id.au>
210
211         * procedure.c procedure.h: Encapsulated the static data into a single
212         struct.  
213
214 Sat Oct 14 16:56:44 2006  Ben Pfaff  <blp@gnu.org>
215
216         * casefile.c (casereader_read_xfer): Always initialize the case,
217         even on an error condition.
218
219 Wed Sep 27 09:37:49 WST 2006 John Darrington <john@darrington.wattle.id.au>
220
221         * procedure.c (case_limit_trns_proc): Fixed buglet which rendered the 
222         entire function useless.
223
224 Mon Sep 25 17:11:46 WST 2006 John Darrington <john@darrington.wattle.id.au>
225
226         * casefile-private.h casefile.c casefile.h fastfile.c: Created new
227         casereader method casereader_clone.   
228         
229         * procedure.c pransformations.h: Introduced new type casenum_t
230
231 Thu Sep 21 07:00:30 2006  Ben Pfaff  <blp@gnu.org>
232
233         * variable.c: (width_to_bytes) Rephrase code for clarify.
234
235 Sun Jul 16 19:52:03 2006  Ben Pfaff  <blp@gnu.org>
236
237         * format.c: (fmt_type_from_string) New function.
238         (fmt_to_string) Include decimals in output if the format has
239         decimals, even if the format type does not.  This way, we can
240         accurately reproduce incorrect formats in user output.
241         (check_common_specifier) Make the check for a bad format type an
242         assertion, so we get bug reports if they show up.  Fix message.
243         Check for decimal places with a format type that doesn't allow
244         them.
245         (check_input_specifier) Remove check for FMT_X, which has been
246         deleted.
247         (check_output_specifier) Ditto. 
248
249         * format.def: Remove FMT_T, FMT_X, FMT_DESCEND, FMT_NEWREC.
250
251         * format.h: (macro FMT_TYPE_LEN_MAX) New macro.
252         (struct fmt_desc) Use FMT_TYPE_LEN_MAX in definition.
253         (enum fmt_parse_flags) Removed.
254
255 Mon Jul 17 18:26:21 WST 2006 John Darrington <john@darrington.wattle.id.au>
256
257         * casefile.c casefile.h: Converted to  an abstract base class.
258         * casefile-private.h fastfile.c fastfile.h: New files.
259         * automake.mk procedure.c scratch-writer.c storage-stream.c
260
261 Wed Jul 12 21:02:26 2006  Ben Pfaff  <blp@gnu.org>
262
263         * procedure.c (internal_procedure): Create sink_case with only as
264         many values as the compacted dictionary.
265
266 Wed Jul 12 21:01:00 2006  Ben Pfaff  <blp@gnu.org>
267
268         Remove "debugging" code that caused plenty of false positives and
269         no true positives.
270         
271         * case.h (struct ccase): [DEBUGGING] Remove `this' member.
272
273         * case.c: Remove all references to `this' member.
274
275 Thu Jul  6 19:09:53 2006  Ben Pfaff  <blp@gnu.org>
276
277         Fix link error noted by Jason Stover.
278         
279         * storage-stream.c: Include <assert.h>.
280
281 Tue Jul  4 08:47:35 2006  Ben Pfaff  <blp@gnu.org>
282
283         Fix bug #15766 (/KEEP subcommand on SAVE doesn't fully support
284         ALL) and additional underlying system file issues.
285
286         Thanks to John Darrington for review.
287
288         First problem: var_hash points to variables not owned by the
289         sys-file-reader, which the caller may free or modify.  Use an
290         array of sfm_vars instead, as done earlier (e.g. CVS version
291         1.12).
292         
293         * sys-file-reader.c (struct sfm_reader): Remove var_hash, svars
294         members and remove all code that references it.  Add vars, var_cnt
295         members.  Remove fix_specials member, which was unused.
296         (struct sfm_var) Remove name member, which was unused.
297         (sfm_close_reader) Free vars member instead of var_hash.
298         (compare_var_shortnames) Removed.
299         (hash_var_shortname) Removed.
300         (sfm_open_reader) Fill out vars array.
301         (compare_var_index) Removed.
302         (sfm_read_case) Use vars instead of var_hash.
303         
304         Second problem: we're confused about when we actually have very
305         long strings, causing us to choose incorrectly between slow path
306         and fast path in sfm_read_case.
307
308         * sys-file-reader.c: (sfm_open_reader) Only mark has_vls if we
309         have very long strings, not when we have long variable names,
310         which is an unrelated feature.
311
312 Tue Jun 27 12:06:49 2006  Ben Pfaff  <blp@gnu.org>
313
314         * variable.h: Move var_set and variable parsing declarations to
315         new header, src/language/lexer/variable-parser.h.  Modified lots
316         of files to include the new header.
317
318 Sun Jun 25 22:39:32 2006  Ben Pfaff  <blp@gnu.org>
319
320         * value-labels.c (value_to_string): When there's no value label,
321         format the variable according to its print format, instead of
322         always effectively using A or F format.
323
324 Mon Jun 19 18:05:42 WST 2006 John Darrington <john@darrington.wattle.id.au>
325
326         * casefile.c (casefile_get_random_reader): Nasty hack to get around 
327         the mode assertion.
328
329         * format.c: Removed tortological assertion.
330
331 Fri Jun  9 12:20:09 2006  Ben Pfaff  <blp@gnu.org>
332
333         Reform string library.
334         
335         * file-name.c (fn_interp_vars): Change interface to take a
336         substring as input.  Updated all users.
337         
338 Fri Jun  9 12:11:24 2006  Ben Pfaff  <blp@gnu.org>
339
340         * format.c (measure_is_valid): Really return false when m >=
341         n_MEASURES.
342
343 Tue Jun  6 18:46:26 2006  Ben Pfaff  <blp@gnu.org>
344
345         Implement random access to casefiles, for use in GUI.
346         
347         * casefile.c: (struct casereader) Add `random', `file_ofs',
348         `buffer_ofs' members.
349         (casefile_get_random_reader) New function.
350         (read_open_file) Break part into new function
351         seek_and_fill_buffer().
352         (fill_buffer) Update buffer_ofs, file_ofs.
353         (casereader_seek) New function.
354
355 Tue May 30 19:52:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
356
357         * settings.c: Added call to i18n{done, init}.
358
359 Tue May  9 21:09:17 2006  Ben Pfaff  <blp@gnu.org>
360
361         * procedure.h: Add WARN_UNUSED_RESULT to procedure function
362         prototypes.
363
364 Tue May  9 21:08:05 2006  Ben Pfaff  <blp@gnu.org>
365
366         * casefile.c: Convert many uses of `int' to `bool'.
367
368 Sat May  6 22:49:43 2006  Ben Pfaff  <blp@gnu.org>
369
370         * transformations.c (trns_chain_destroy): Destroy chain's trns
371         member, to fix memory leak.
372
373 Sat May  6 22:48:30 2006  Ben Pfaff  <blp@gnu.org>
374
375         * storage-stream.c (storage_source_decapsulate): Destroy case
376         source to fix memory leak.
377
378 Sat May  6 22:46:47 2006  Ben Pfaff  <blp@gnu.org>
379
380         * scratch-reader.c (scratch_reader_read_case): Copy into existing
381         case passed as argument instead of initializing the argument as a
382         case.  Fixes memory leak that showed up in
383         tests/command/aggregate.sh with scratch files.
384
385 Sat May  6 22:45:55 2006  Ben Pfaff  <blp@gnu.org>
386
387         * procedure.c (proc_done): Destroy default_dict, to fix memory
388         leak.
389
390 Sat May  6 22:44:44 2006  Ben Pfaff  <blp@gnu.org>
391
392         Simplify procedure_with_splits().
393         
394         * procedure.c (struct split_aux_data): Removed case_count member.
395         (procedure_with_splits) Don't initialize case_count.
396         (split_procedure_case_func) Check whether prev_case is null
397         instead of case_count.
398         (split_procedure_end_func) Ditto.
399
400 Sat May  6 22:42:23 2006  Ben Pfaff  <blp@gnu.org>
401
402         * case.c (case_move): Do nothing if dst and src are the same
403         object.
404         (case_try_create) Merge two similar cases.
405         (case_copy) Unshare only if data must be actually copied.
406
407 Sun May  7 10:04:06 WST 2006 John Darrington <john@darrington.wattle.id.au>
408
409         * data-in.c data-out.c dictionary.c sys-file-reader.c
410         sys-file-writer.c variable.c variable.h:  Reworked very long string
411         support for better encapsulation.
412
413 Sat May  6 19:02:00 2006  Ben Pfaff  <blp@gnu.org>
414
415         * value-labels.c (val_labs_can_set_width): New function.
416         (val_labs_set_width) Clear labels if increasing width to long
417         string.
418         (val_labs_destroy) Remove unneeded test for null.
419         
420 Sat May  6 16:14:08 2006  Ben Pfaff  <blp@gnu.org>
421
422         * value-labels.h: Remove unneeded dependency on variable.h.
423
424 Sat May  6 15:58:36 2006  Ben Pfaff  <blp@gnu.org>
425
426         Get rid of `char *c' member in union value, for cleanliness.
427         
428         * value.h: (union value) Remove `c' member.
429
430 Sat May  6 15:36:59 2006  Ben Pfaff  <blp@gnu.org>
431
432         Make dictionary compacting functions a little more general.
433         
434         * sys-file-writer.c (sfm_open_writer): Use
435         dict_compacting_would_change().
436         (does_dict_need_translation) Removed.
437
438 Sat May  6 15:35:42 2006  Ben Pfaff  <blp@gnu.org>
439
440         Make dictionary compacting functions a little more general.
441         
442         * dictionary.c (dict_needs_compaction): Rename
443         dict_compacting_would_shrink().  Update all callers.
444         (dict_compacting_would_change) New function.
445         
446 Sat May  6 14:25:49 2006  Ben Pfaff  <blp@gnu.org>
447
448         * sys-file-writer.c: (does_dict_need_translation) Fix bug:
449         inverted return value (!).
450
451 Sat May  6 13:37:52 2006  Ben Pfaff  <blp@gnu.org>
452
453         Continue reforming procedure execution.  
454
455         * procedure.c: Search and replace "vfm" by "proc".  Notably:
456         (static var vfm_source) Rename proc_source.  Update all
457         references.
458         (static var vfm_sink) Rename proc_sink.  Update all references.
459         
460 Sat May  6 12:38:55 2006  Ben Pfaff  <blp@gnu.org>
461
462         Continue reforming procedure execution.  In this phase, remove
463         PROCESS IF, which was deprecated anyway and can be easily
464         simulated with TEMPORARY followed by SELECT IF.
465
466         * procedure.c: (open_active_file) Don't call
467         add_process_if_trns().
468         (discard_variables) Get rid of redundant call to
469         proc_cancel_all_transformations().
470         (add_process_if_trns) Removed.
471         (process_if_trns_proc) Removed.
472         (process_if_trns_free) Removed.
473
474 Sat May  6 10:58:05 2006  Ben Pfaff  <blp@gnu.org>
475
476         Continue reforming procedure execution.  In this phase, add
477         `const' to the case passed to procedure()'s callback.
478
479         Updated all users of procedure() as well.
480         
481         * procedure.c: (struct write_case_data) Add "const" to ccase
482         parameter for case_func member.
483         (procedure) Add "const" to ccase parameter for proc_func
484         parameter.
485         (multipass_case_func) Make ccase parameter const.
486         (internal_procedure) Add "const" to ccase parameter for case_func
487         parameter.
488         (split_procedure_case_func) Make ccase parameter const.
489         (multipass_split_case_func) Make ccase parameter const.
490         
491 Sat May  6 10:30:33 2006  Ben Pfaff  <blp@gnu.org>
492
493         Continue reforming procedure execution.  In this phase, get rid of
494         the output code for SPLIT FILE groups in procedure.c, which really
495         shouldn't be doing any output.  Move it into the individual
496         procedures instead.  This also adds some flexibility.
497
498         Updated many users of procedure_with_splits() and
499         multipass_procedure_with_splits() to call
500         output_split_file_values() and to deal with increased use of
501         const.
502
503         * procedure.c: (struct split_aux_data) Add "const struct ccase *"
504         parameter to begin_func member.
505         (procedure_with_splits) Add "const struct ccase *" parameter to
506         begin_func parameter.  Make ccase parameter const in proc_func
507         parameter.
508         (split_procedure_case_func) Don't dump split file group.  Pass
509         case to begin_func.
510         (dump_splits) Moved to language/dictionary/split-file.c as
511         output_split_file_values().
512         (struct multipass_split_aux_data) Add "const struct ccase *"
513         parameter to split_func member.
514         (multipass_procedure_with_splits) Add "const struct ccase *"
515         parameter to split_func parameter.
516         (multipass_split_case_func) Save new SPLIT FILE case before
517         outputting case.
518         (multipass_split_output) Pass saved SPLIT FILE case to split_func.
519         
520 Fri May  5 22:48:50 2006  Ben Pfaff  <blp@gnu.org>
521
522         Continue reforming procedure execution.  Change
523         internal_procedure() so that it calls open_active_file() and
524         close_active_file(), which isolates most of the actual procedure
525         functionality.
526
527         * procedure.c: (struct write_case_data) Rename `proc_func' member
528         to `case_func' and update all references.
529         (procedure) Rewrite as one-line wrapper around
530         internal_procedure().
531         (struct multipass_aux_data) New.
532         (multipass_callback) Renamed multipass_case_func().  Use struct
533         multipass_aux_data as auxiliary data.
534         (multipass_end_func) New function.
535         (multipass_procedure) Rewrite as wrapper for internal_procedure()
536         that uses multipass_case_func, multipass_end_func.
537         (internal_procedure) Add `end_func' argument.  Move optimization
538         of trivial case in here.  Move call to open_active_file() and
539         close_active_file() in here.  Now assert that vfm_source is
540         non-null.
541         (procedure_with_splits_callback) Rename
542         split_procedure_case_func().
543         (split_procedure_end_func) New function.
544         (multipass_split_callback) Rename multipass_split_case_func.
545         (multipass_split_end_func) New function.
546         (discard_variables) No need to test for nonnull vfm_source.
547
548 Fri May  5 21:34:02 2006  Ben Pfaff  <blp@gnu.org>
549
550         Continue reforming procedure execution.  Get rid of unused member.
551
552         * procedure.c: (struct write_case_data) Remove `cases_analyzed'
553         member.
554         (write_case) Don't increment cases_analyzed.
555
556 Thu May  4 21:50:11 2006  Ben Pfaff  <blp@gnu.org>
557
558         Continue reforming procedure execution.  In this phase, move
559         procedure.c and procedure.h from src to src/data.  Update
560         makefiles and #includes accordingly.
561
562         * procedure.c: Moved here from src/.
563
564         * procedure.h: Moved here from src/.
565
566 Wed May  3 22:42:12 2006  Ben Pfaff  <blp@gnu.org>
567
568         Continue reforming procedure execution.  In this phase, get rid of
569         many global variables, consolidating procedure execution in
570         procedure.c.  Encapsulate transformations in new "struct
571         trns_chain".  Also, change implementation of N OF CASES, FILTER,
572         and PROCESS IF from special cases to transformations.
573          
574         * automake.mk: (src_data_libdata_a_SOURCES) Add transformations.c,
575         transformations.h.
576
577         * dictionary.c: (global variable default_dict) Move to
578         src/procedure.c.
579
580         * variable.h: (TRNS_*) Move to transformations.h.
581         (struct transformation) Move to transformations.c.
582
583 Thu May  4 13:47:06 WST 2006 John Darrington <john@darrington.wattle.id.au>
584
585         * sys-file-reader.c: Fixed invalid read problems.
586
587 Tue May  2 15:57:10 2006  Ben Pfaff  <blp@gnu.org>
588
589         * storage-stream.c: Add missing function comments.
590
591 Tue May  2 15:50:21 2006  Ben Pfaff  <blp@gnu.org>
592
593         Continue reforming procedure execution.  In this phase, add some
594         new, needed functionality to storage-stream.
595
596         * storage-stream.c: (storage_source_decapsulate) New function.
597
598 Tue May  2 15:43:36 2006  Ben Pfaff  <blp@gnu.org>
599
600         * variable.c (width_to_bytes): Declarations must precede
601         statements for C90 compliance.
602
603 Tue May  2 10:42:05 WST 2006 John Darrington <john@darrington.wattle.id.au>
604
605         * data-out.c, data-in.c, variable.c, variable.h: New functions 
606         copy_mangle and copy_demangle for reading/writing cases; emulates the 
607         way SPSS deals with strings > 255 bytes.
608
609         * sys-file-reader.c sys-file-writer.c: Added support for Record 7, 
610         subtype 14 needed for strings longer than 255 bytes.
611
612         * dictionary.c, format.def, value.c : Updated to use MAX_STRING 
613         instead of literal values. Also fixed some constness issues.
614
615         * format.h: Constness
616
617         * sfm-private.h: Renamed the case_size identifier, since I discovered 
618         that SPSS's respect for this variable is very nominal.
619
620 Mon May  1 15:45:42 2006  Ben Pfaff  <blp@gnu.org>
621
622         Change case limit type from int to size_t.
623
624         * dictionary.c: (struct dictionary) Change type of case_limit
625         member.
626         (dict_get_case_limit) Change return type.
627         (dict_set_case_limit) Change parameter type.
628
629 Wed Apr 26 20:01:19 2006  Ben Pfaff  <blp@gnu.org>
630
631         * variable.h: (struct variable) Rename `reinit' member as `leave'
632         and invert sense.  Fix up all references.
633
634 Wed Apr 26 19:39:28 2006  Ben Pfaff  <blp@gnu.org>
635
636         Continue reforming procedure execution.  In this phase, break
637         procedure.c into multiple files.
638         
639         * automake.mk: (src_data_libdata_a_SOURCES) Add all the new files.
640
641         * case-sink.c: New file.
642
643         * case-sink.h: New file.
644         
645         * case-source.c: New file.
646
647         * case-source.h: New file.
648         
649         * storage-stream.c: New file.
650
651         * storage-stream.h: New file.
652
653 Wed Apr 26 14:55:19 2006  Ben Pfaff  <blp@gnu.org>
654
655         * variable.h: (struct variable) Remove `init' member and all
656         references to it from other files.  It was initialized in several
657         places, but nothing really ever used it for anything worthwhile.
658         Thanks to Jason Stover for pointing out how confusing this
659         member is.
660
661 Sun Apr 23 22:04:45 2006  Ben Pfaff  <blp@gnu.org>
662
663         Continue reforming error message support.  In this phase, get rid
664         of message "titles" and put the message text in `struct error'.
665         Now `struct error' encapsulates a message more properly.
666         
667         * casefile.c: (io_error) Use err_msg() instead of err_vmsg().
668         Format message ourselves.
669
670         * data-in.c: (vdls_error) Ditto.
671
672         * por-file-reader.c: (error) Ditto.
673
674         * sys-file-reader.c: (corrupt_msg) Ditto.
675
676 Sun Apr 16 18:49:51 2006  Ben Pfaff  <blp@gnu.org>
677
678         GNU standards require "file name" instead of "filename" in
679         documentation.  It's nice for our code to follow the convention
680         too.
681         
682         * casefile.c: (struct casefile) Rename `filename' member to
683         `file_name'.  Updated all references.
684
685         * file-name.c: [!unix] (struct file_identity) Rename
686         normalized_filename member to normalized_file_name.  Updated all
687         references.
688
689 Sun Apr 16 18:35:33 2006  Ben Pfaff  <blp@gnu.org>
690
691         We don't really support anything but Unix-like environments well,
692         so we might as well de-obfuscate by writing directory and path
693         separators explicitly.
694
695         * file-name.h: (macro DIR_SEPARATOR) Removed.  Changed all usages
696         to just '/'.
697         (macro PATH_SEPARATOR) Removed.  Changed all usages to just ':'.
698         (macro DIR_SEPARATOR_STRING) Removed.  Changed all usages to just
699         "/".
700         (macro PATH_SEPARATOR_STRING) Removed.  Changed all usages to just
701         ":"
702
703 Sun Apr 16 18:28:35 2006  Ben Pfaff  <blp@gnu.org>
704
705         GNU standards require "file name" instead of "filename" in
706         documentation.  It's nice for our code to follow the convention
707         too.
708         
709         * filename.c: Rename to file-name.c.
710
711         * filename.h: Rename to file-name.h.  Update all inclusions.
712         Update header guards.
713
714         * automake.mk: Update file names.
715
716 Sun Apr 16 16:42:47 2006  Ben Pfaff  <blp@gnu.org>
717
718         * filename.c: (fn_dirname) Renamed fn_dir_name(), all references
719         updated.
720         (fn_basename) Removed (dead code).
721         (fn_absolute_p) Renamed fn_is_absolute(), all references updated.
722         (fn_special_p) Renamed fn_is_special(), all references updated.
723         (fn_exists_p) Renamed fn_exists(), all references updated.
724
725 Sun Apr 16 16:33:58 2006  Ben Pfaff  <blp@gnu.org>
726
727         * filename.c: (fn_tilde_expand) Rewrite for cleaner code.  
728         Also, now it only tilde-expands file names, not paths.
729         (fn_search_path) Tilde-expand one directory at a time.
730
731 Sun Apr 16 16:28:06 2006  Ben Pfaff  <blp@gnu.org>
732
733         * filename.c: (fn_search_path) rewrite for cleaner code.  Also,
734         get rid of non-Unixlike version of the code, which has probably
735         never been tested.
736         (fn_prepend_dir) Removed (dead code).
737
738         * filename.h: (macro DIR_SEPARATOR_STRING) New.
739         (macro PATH_SEPARATOR_STRING) New.
740 Sun Apr 16 16:05:28 2006  Ben Pfaff  <blp@gnu.org>
741
742         Continue reforming error message support.  In this phase, we get
743         rid of VM() and the other msg() support for "verbosity", replacing
744         it by a new function verbose_msg().
745
746         * filename.c: (fn_search_path) Use verbose_msg() instead of
747         msg(VM(), ...).  
748
749 Sat Apr 15 19:53:19 2006  Ben Pfaff  <blp@gnu.org>
750
751         * sfm-private.h: Get rid of #defines after #error, which makes no
752         sense.
753
754 Sat Apr 15 19:48:57 2006  Ben Pfaff  <blp@gnu.org>
755
756         Get rid of our own int32 type in favor of the standard int32_t
757         type.
758         
759         * sfm-private.h: (int32 macro) Don't define this anymore.  Do
760         include <stdint.h>.
761
762         * sys-file-reader.c: Use int32_t instead of int32 throughout.
763         
764         * sys-file-writer.c: Use int32_t instead of int32 throughout.
765
766 Sat Apr 15 19:36:47 2006  Ben Pfaff  <blp@gnu.org>
767
768         Remove ill-considered file routines that are no longer used.
769         
770         * filename.c: (fn_open_ext) Removed.
771         (fn_close_ext) Removed.
772
773         * filename.h: (struct file_ext) Removed.
774
775 Mon Apr  3 13:22:39 2006  Ben Pfaff  <blp@gnu.org>
776
777         * variable.c (var_is_valid_name): Move declarations before code
778         for C90 compliance.
779
780 Tue Apr  4 15:28:40 WST 2006 John Darrington <john@darrington.wattle.id.au>
781
782         * filename.ch (fn_interp_vars): Fixed small buglet.
783
784 Tue Mar 28 13:47:16 WST 2006 John Darrington <john@darrington.wattle.id.au>
785         
786         * filename.[ch] (fn_interp_vars): Changed the signature and semantics
787         so as to modify the string inline.   Thus makeing it easier to
788         destroy the results when no longer needed.
789         
790 2006-03-25  Jason Stover  <jhs@math.gcsu.edu>
791
792         * category.c (cat_stored_values_destroy): Fixed memory leak.
793
794 Fri Mar 24 18:15:41 2006  Ben Pfaff  <blp@gnu.org>
795
796         Add some missing frees.  Thanks to John Darrington for reporting
797         these.
798
799         * any-writer.c (any_writer_close): Free writer.
800
801         * any-reader.c (any_reader_close): Free reader.
802
803 Mon Mar 20 16:33:53 2006  Ben Pfaff  <blp@gnu.org>
804
805         * por-file-reader.c: (error) Mark as NO_RETURN.
806
807 Sat Mar 11 15:06:07 WST 2006 John Darrington <john@darrington.wattle.id.au>
808
809         * settings.c: Changed default value of scompress to true.
810
811 Sat Mar  4 13:22:51 2006  Ben Pfaff  <blp@gnu.org>
812
813         * sfm-private.h: Include variable.h, to get SHORT_NAME_LEN.
814
815         * value.h: Remove check on MAX_SHORT_STRING, which I don't think
816         really applies.
817
818         * variable.h: Move definition of SHORT_NAME_LEN, LONG_NAME_LEN
819         here from pref.h.orig.
820
821 Sat Mar  4 12:50:48 WST 2006 John Darrington <john@darrington.wattle.id.au>
822
823         * sys-file-reader.c: Fixed bug reading compressed files.
824
825 Thu Mar  2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
826
827         * Numerous renames.  See src/ChangeLog for details.
828         
829         * Moved files from src directory