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