Patch #5672
[pspp-builds.git] / src / data / ChangeLog
1 Tue Jan  9 07:20:05 WST 2007 John Darrington <john@darrington.wattle.id.au>
2
3         * dictionary.c procedure.c: More changes to ensure that callbacks occur
4         whenever appropriate, but only when the dataset/dictionary is in a 
5         consistent state.
6
7 Sun Jan  7 08:33:04 WST 2007 John Darrington <john@darrington.wattle.id.au>
8
9         * dictionary.c dictionary.h : Added callbacks for change of filter and 
10         split variables.  Refactored some code to ensure that callbacks get
11         invoked when appropriate.
12
13         * procedure.c (proc_cancel_temporary_transformations): Make sure that 
14         replace_dict callback occurs when permanent_dict replaces the current
15         dictionary.
16
17 Wed Jan  3 11:02:11 WST 2007 John Darrington <john@darrington.wattle.id.au>
18
19         * dictionary.c dictionary.h : Added callback for when the weight 
20         variable of a dictionary changes.
21
22 Mon Jan  1 10:36:26 WST 2007 John Darrington <john@darrington.wattle.id.au>
23
24         * dictionary.c dictionary.h : Added replace_source and replace_dict
25         callbacks, and functions to deal with them.
26
27 Fri Dec 22 13:56:08 2006  Ben Pfaff  <blp@gnu.org>
28
29         Simplify missing value handling.
30
31         * missing-values.h (enum mv_class): New type.
32         (enum mv_type): Moved definition into missing-values.c and renamed
33         each MV_* to MVT_*, to distinguish them from the exposed mv_class
34         enums.  Updated all uses.
35         (struct missing_values): Changed type of `type' from `enum
36         mv_type' to `int' because the definition is no longer exposed.
37         
38         * missing-values.c (mv_is_value_missing): Add new enum mv_class
39         parameter.  Update all callers.
40         (mv_is_num_missing): Ditto.
41         (mv_is_str_missing): Ditto.
42         (mv_is_value_user_missing): Removed.  Changed callers to use
43         mv_is_value_missing.
44         (mv_is_num_user_missing): Removed.  Changed callers to use
45         mv_is_num_missing.
46         (mv_is_str_user_missing): Removed.  Changed callers to use
47         mv_is_str_missing.
48         (mv_is_value_system_missing): Removed.  Changed callers to use
49         mv_is_value_missing.
50         (mv_set_type): Removed.  Changed callers to use mv_clear.
51         (mv_clear): New function.
52         
53         * variable.c (var_is_value_missing): Add new enum mv_class
54         parameter.  Update all callers.
55         (var_is_num_missing): Ditto.
56         (var_is_str_missing): Ditto.
57         (var_is_value_user_missing): Removed.  Changed callers to use
58         var_is_value_missing.
59         (var_is_num_user_missing): Removed.  Changed callers to use
60         var_is_num_missing.
61         (var_is_str_user_missing): Removed.  Changed callers to use
62         var_is_str_missing.
63         (var_is_value_system_missing): Removed.  Changed callers to use
64         var_is_value_missing.
65         
66         * casefilter.c (struct casefilter): Use enum mv_class in place of
67         bool.
68         (casefilter_variable_missing): Adapt to new member.
69         (casefilter_create): Change signature to take enum mv_class,
70         update callers.
71
72 Fri Dec 22 20:08:38 WST 2006 John Darrington <john@darrington.wattle.id.au>
73
74         * casefile-factory.h fastfile-factory.c fastfile-factory.h: New files.
75
76         * case-sink.c case-sink.h procedure.c procedure.h 
77           storage-stream.c: Now uses the factory.
78         
79 Sat Dec 16 22:05:18 2006  Ben Pfaff  <blp@gnu.org>
80
81         Make it possible to pull cases from the active file with a
82         function call, instead of requiring indirection through a callback
83         function.
84
85         * case-source.h (struct case_source_class): Change ->read function
86         to return a single case, instead of calling a callback function
87         for each case.  Change ->destroy function to return an error
88         status.
89
90         * case-source.c (free_case_source): Pass along the value returned
91         by the case_source ->destroy function.
92
93         * procedure.c (struct write_case_data): Removed.
94         (struct dataset): Added some members to track procedure state.
95         (procedure): Optimize the trivial case at this level.
96         (internal_procedure): Re-implement in terms of proc_open,
97         proc_read, proc_close.
98         (proc_open) New function.
99         (proc_read) New function.
100         (proc_close) New function.
101         (write_case) Moved into proc_read.
102         (close_active_file) Moved closing of data source into proc_close.
103
104         * storage-source.c: Rewrote to conform with modified
105         case_source_class interface.
106
107         * transformations.c (trns_chain_execute): Added argument to allow
108         starting execution from an arbitrary transformation.  Updated
109         callers.
110
111         * transformations.h (enum TRNS_NEXT_CASE) Renamed TRNS_END_CASE.
112
113 Sat Dec 16 14:09:25 2006  Ben Pfaff  <blp@gnu.org>
114
115         * sys-file-reader.c (read_display_parameters): Don't assume that
116         MEASURE_* and ALIGN_* have the same values found in system files.
117
118         * sys-file-writer.c (write_variable_display_parameters): Ditto.
119
120         * variable.h: Change MEASURE_NOMINAL, MEASURE_ORDINAL,
121         MEASURE_SCALE to be 0-based instead of 1-based.  This also fixes
122         the value of n_MEASURES, which was off by 1 (at least from my
123         point of view).
124
125 Sat Dec 16 12:17:34 WST 2006 John Darrington <john@darrington.wattle.id.au>
126
127         * dictionary.c dictionary.h vardict.h variable.c: Added optional
128                 callbacks which are invoked when the dictionary or its 
129                 variables are changed.  
130         
131         * missing-values.c missing-values.h value-labels.c: Tidied up
132                 consistency checks, and made some of them return false 
133                 instead of assert-failing. 
134
135 Wed Dec 13 19:30:11 2006  Ben Pfaff  <blp@gnu.org>
136
137         * calendar.c (calendar_days_in_month): New function.
138
139 Mon Dec 11 07:53:39 2006  Ben Pfaff  <blp@gnu.org>
140
141         * value-labels.c (hash_int_val_lab): Only hash as many bytes as
142         the value label's width.
143
144 Sun Dec 10 14:21:29 2006  Ben Pfaff  <blp@gnu.org>
145
146         * sfm-private.h: Move contents into sys-file-writer.c, which is
147         the only remaining user.  Removed Borland C++-specific directives.
148         
149         * sys-file-reader.c: Clean up and rewrite entire file.  The
150         rewritten version is simpler and better abstracted, and should be
151         easier to maintain and extend.  It avoids using structures to read
152         file data, which is prone to padding variations among compilers.
153         It should also handle non-IEEE 754 system files, although I
154         haven't been able to find any.  It has been tested against many
155         .sav files obtained from the Web and found to produce the same
156         results as the earlier version of the code, or in some cases
157         improved results.  It is more tolerant of format variations found
158         in the wild.
159
160         * sys-file-reader.h (struct sfm_read_info): Removed `big_endian'
161         member, putting an enum integer_format in its place.  New member
162         `float_format'.  Changed `compressed' member to type bool.
163
164 Sun Dec 10 13:48:53 2006  Ben Pfaff  <blp@gnu.org>
165
166         * dictionary.c (dict_delete_consecutive_vars): New function.
167
168 Sat Dec  9 20:08:25 2006  Ben Pfaff  <blp@gnu.org>
169
170         * file-name.c (fn_search_path): Remove prefix arg that was unused
171         by any caller.  Updated all callers.
172
173 Sat Dec  9 20:04:22 2006  Ben Pfaff  <blp@gnu.org>
174
175         * format.c (fmt_dollar_template): Use user's decimal point
176         character.  Add assertion.
177
178 Sat Dec  9 20:02:25 2006  Ben Pfaff  <blp@gnu.org>
179
180         * format.c (fmt_dollar_template): New function, based on
181         dollar_format_template from var-type-dialog.c.
182
183 Sat Dec  9 18:05:59 2006  Ben Pfaff  <blp@gnu.org>
184
185         * data-out.c (output_scientific): Fix bad assumption that "buf" is
186         null-terminated.
187         
188 Sat Dec  9 17:23:23 2006  Ben Pfaff  <blp@gnu.org>
189
190         Finish converting struct variable to an opaque type.  In this
191         phase, we add remaining setter and getter functions, convert the
192         remaining PSPP code to use them, and do a bunch of cleanup.  The
193         resulting changes are pervasive but mostly trivial, and only the
194         notable changes are logged.
195         
196         * automake.mk (src_data_libdata_a_SOURCES): Add the new source
197         files.
198         
199         * case.c (case_data): Renamed case_data_idx.
200         (case_num): Renamed case_num_idx.
201         (case_str): Renamed case_str_idx.
202         (case_data_rw): Renamed case_data_rw_idx.
203
204         * case.h (case_data): New function with old name and an interface
205         that takes a variable instead of an index, which is easier to
206         use.  Updated all callers to use the new interface, or to use the
207         new *_idx function (see above).
208         (case_num): Ditto.
209         (case_str): Ditto.
210         (case_data_rw): Ditto.
211         
212         * category.c (cat_stored_values_destroy): Changed interface to
213         take a struct cat_vals * instead of a struct variable *.
214
215         * dictionary.c (dict_clone): Use new vector_clone function.     
216         (dict_clear) Use new var_destroy function.
217         (add_var) New function.
218         (dict_create_var) Rewrite in terms of dict_create_var_assert.
219         (dict_create_var_assert) Rewrite in terms of add_var.
220         (dict_clone_var) Rewrite in terms of dict_clone_var_assert.
221         (dict_clone_var_assert) Rewrite in terms of var_clone, add_var.
222         (dict_lookup_var) Use new var_create, var_destroy functions.
223         (dict_contains_var) Rewrite in terms of new vardict functionality.
224         (set_var_dict_index) New function.
225         (set_var_case_index) New function.
226         (reindex_vars) New function.
227         (dict_delete_var) Rewrite in terms of new vardict functionality.
228         (dict_reorder_var) Ditto.
229         (dict_reorder_vars) Ditto.
230         (rename_var) New function.
231         (dict_rename_var) Use rename_var.
232         (dict_rename_vars) Use pool to simplify code.  Use rename_var.
233         (dict_get_compacted_idx_to_fv) Rename
234         dict_get_compacted_dict_index_to_case_index, update callers.
235         (dict_create_vector) Use new vector_create function.
236         (dict_clear_vectors) Use new vector_destroy function.
237         (set_var_short_name_suffix) Move here from variable.c, renamed
238         from var_set_short_name_suffix, make static, update caller.
239
240         * sys-file-private.c: New file.  
241         (sfm_width_to_bytes) Moved here from variable.c, renamed from
242         width_to_bytes, update callers.
243
244         * sys-file-private.h: New file.  Later it will supplant
245         sfm-private.h; for now it supplements it.
246         (macro MIN_VERY_LONG_STRING) New macro.
247         (macro EFFECTIVE_LONG_STRING_LENGTH) New macro, from value.h.
248
249         * sys-file-reader.c: Use MIN_VERY_LONG_STRING - 1 where
250         MAX_LONG_STRING was used before.
251
252         * sys-file-writer.c: Ditto.
253
254         * value-labels.c: Change the paradigm here to be that a null
255         pointer is OK for a struct val_labs * in most cases; it just
256         represents an empty set of value labels.
257         (val_labs_copy) A copy of a null set is a null set.
258         (val_labs_count) A null set has 0 labels.
259         (val_labs_replace) Change return type to void.  Rewrite for
260         simplicity.
261         (val_labs_find) A null set does not contain the value.
262         (value_to_string) Moved to variable.c, renamed var_get_value_name,
263         transposed argument order, updated all callers.
264
265         * value.c: New file.
266         (value_dup) Moved here from variable.c.
267         (compare_values) Ditto.
268         (hash_value) Ditto.
269
270         * value.h: (macro MAX_SHORT_STRING) Rewrote for simplicity.
271         (macro MAX_LONG_STRING) Removed, because it was only interesting
272         for system files, not for general code.
273         (macro MAX_VERY_LONG_STRING) Ditto.
274         (macro EFFECTIVE_LONG_STRING_LENGTH) Moved to sys-file-private.h.
275         (macro MAX_ELEMS_PER_VALUE) Removed, as it was unused.
276
277         * vardict.h: New file, for an interface between variables and
278         their dictionaries.
279
280         * variable.c: A lot of functions were moved around, for better
281         organization.
282         (struct variable) Move definition here, from variable.h.
283         (var_type_adj) Removed--makes i18n hard.
284         (var_type_noun) Ditto.
285         (var_create) New function.
286         (var_clone) New function.
287         (var_destroy) New function.
288         (var_set_name) Assert that variable is not in a dictionary.
289         (compare_var_names) Rename compare_vars_by_name and fix a couple
290         of callers who thought the args were strings.
291         (hash_var_name) Rename hash_var_by_name.
292         (compare_var_ptr_names) Rename compare_var_ptrs_by_name.
293         (hash_var_ptr_name) Rename hash_var_ptr_by_name.
294         (var_is_very_long_string) Removed, because it was only interesting
295         to system file code.
296         (var_set_missing_values) Allow the argument to be the wrong width,
297         as long as we can resize it.  Simplify callers who were doing the
298         resizing themselves.
299         (var_get_value_labels) New function.
300         (var_has_value_labels) New function.
301         (var_set_value_labels) New function.
302         (alloc_value_labels) New function.
303         (var_add_value_label) New function.
304         (var_replace_value_label) New function.
305         (var_clear_value_labels) New function.
306         (var_lookup_value_label) New function.
307         (var_get_value_name) Moved here from variable.c, renamed from
308         var_get_value_name, transposed argument order, updated all
309         callers.
310         (var_to_string) Moved here, from variable-label.c.
311         (var_set_leave) New function.
312         (var_get_leave) New function.
313         (var_must_leave) New function.
314         (var_set_short_name_suffix) Moved to dictionary.c, renamed
315         set_var_short_name_suffix.
316         (var_get_dict_index) New function.
317         (var_get_case_index) New function.
318         (var_get_obs_vals) New function.
319         (var_set_obs_vals) New function.
320         (var_has_obs_vals) New function.
321         (var_get_vardict) New function.
322         (var_set_vardict) New function.
323         (var_has_vardict) New function.
324         (var_clear_vardict) New function.
325         (value_dup) Moved to value.c.
326         (compare_values) Ditto.
327         (hash_value) Ditto.
328
329         * variable.h: (enum NUMERIC) Rename VAR_NUMERIC, update all users.
330         (enum ALPHA) Rename VAR_STRING, update all users.
331
332         * vector.c: New file.
333         (struct vector) Moved here, from variable.h.
334         (check_widths) New function.
335         (vector_create) New function.
336         (vector_clone) New function.
337         (vector_destroy) New function.
338         (vector_get_name) New function.
339         (vector_get_var) New function.
340         (vector_get_var_cnt) New function.
341         (compare_vector_ptrs_by_name) New function.
342
343         * vector.h: New file.
344
345 Sun Dec 10 11:32:56 WST 2006 John Darrington <john@darrington.wattle.id.au>
346
347         * casefilter.c (casefilter_variable_missing): Avoided comparision of
348         string variables to SYSMIS.  Thanks to Ben Pfaff for reporting this
349         problem.
350
351 Sat Dec  9 07:18:03 WST 2006 John Darrington <john@darrington.wattle.id.au>
352
353         * value-labels.c (destroy_atoms): New function.
354         * value-labels.c (atom_create): Call destroy_atoms in atexit handler.
355
356 Thu Dec  7 17:38:26 2006  Ben Pfaff  <blp@gnu.org>
357
358         Thanks to Jason Stover for pointing out this problem.
359         
360         * data-out.c (output_number): Use gsl_finite from GSL, which is
361         portable, instead of isfinite, which is not.
362         (power256) Ditto.
363
364 Thu Dec  7 15:22:38 WST 2006 John Darrington <john@darrington.wattle.id.au>
365
366         * variable.c variable.h (value_dup): New function.
367
368 Mon Dec  4 22:20:17 2006  Ben Pfaff  <blp@gnu.org>
369
370         Start converting struct variable to an opaque type.  In this
371         phase, we add a bunch of setter and getter functions and convert
372         most of the PSPP code to use them.  The resulting changes are
373         pervasive but mostly trivial, and only the notable changes are
374         logged.
375         
376         * format.c (fmt_equal): New function.
377         
378         * variable.c (var_type_is_valid): New function.
379         (measure_is_valid) Moved here, from format.c.
380         (alignment_is_valid) Moved here, from format.c.
381         (var_get_name) New function.
382         (var_set_name) New function.
383         (width_to_type) New function.
384         (var_get_type) New function.
385         (var_get_width) New function.
386         (var_set_width) New function.
387         (var_is_numeric) New function.
388         (var_is_alpha) New function.
389         (var_is_short_string) New function.
390         (var_is_long_string) New function.
391         (var_is_very_long_string) New function.
392         (var_get_missing_values) New function.
393         (var_set_missing_values) New function.
394         (var_clear_missing_values) New function.
395         (var_has_missing_values) New function.
396         (var_is_value_missing) New function.
397         (var_is_num_missing) New function.
398         (var_is_str_missing) New function.
399         (var_is_value_user_missing) New function.
400         (var_is_num_user_missing) New function.
401         (var_is_str_user_missing) New function.
402         (var_is_value_system_missing) New function.
403         (var_get_print_format) New function.
404         (var_set_print_format) New function.
405         (var_get_write_format) New function.
406         (var_set_write_format) New function.
407         (var_set_both_formats) New function.
408         (var_get_label) New function.
409         (var_set_label) New function.
410         (var_clear_label) New function.
411         (var_has_label) New function.
412         (var_get_measure) New function.
413         (var_set_measure) New function.
414         (var_get_display_width) New function.
415         (var_set_display_width) New function.
416         (var_get_alignment) New function.
417         (var_set_alignment) New function.
418         (var_get_value_cnt) New function.
419         (var_get_leave) New function.
420         (var_get_short_name) New function.
421
422         * variable.h: (struct variable) Removed "type" and "nv" members;
423         they are now computed from "width" where needed.
424
425 Mon Dec  4 21:38:40 2006  Ben Pfaff  <blp@gnu.org>
426
427         * missing-values.c (mv_resize): Don't write beyond end of the
428         allocated buffer when resizing a long string.
429
430 Sat Dec  2 16:28:32 2006  Ben Pfaff  <blp@gnu.org>
431
432         Clean up identifier code: don't require identifier enumerations to
433         be in a particular order; make better use of string library;
434         expose less of the internals.
435                 
436         * identifier.c: (lex_skip_identifier) Rename lex_id_get_length,
437         change interface.  Updated all callers.
438         (lex_id_match) Change interface to use struct substring, update
439         all callers.
440         (lex_id_match_len) Removed.  Update callers to use lex_id_match.
441         (global array keywords[]) Make static, change form.  Update all
442         users to use lex_id_name instead.
443         (lex_is_keyword) New function.
444         (lex_id_to_token) Change interface to use struct substring, update
445         all callers.
446         (lex_id_name) New function.
447
448         * identifier.h: (T_FIRST_KEYWORD) Removed.  Changed users to call
449         lex_is_keyword instead.
450         (T_LAST_KEYWORD) Removed.
451         (T_N_KEYWORDS) Removed.
452         
453 Sat Nov 18 20:46:35 2006  Ben Pfaff  <blp@gnu.org>
454
455         * format.c: (fmt_date_template) Distinguish characters for which a
456         space is output and any date delimiter is allowed on input, from
457         those for which a space is output and only a space is allowed on
458         input.  The former is represented by X, the latter by a space.
459         Also, drop distinction between h and H, changing the former to the
460         latter.
461
462         * data-in.c: Completely rewrite internals to conform to SPSS input
463         formats as closely as possible.
464         (data_in) Changed external interface by replacing the structure
465         that was used as a single argument by a set of arguments.  Updated
466         all callers.
467         (data_in_finite_line) Removed.  Converted all callers to use plain
468         data_in.
469         (data_in_get_integer_format) New function.
470         (data_in_set_integer_format) New function.
471         (data_in_get_float_format) New function.
472         (data_in_set_float_format) New function.
473
474         * data-in.h: (enums DI_IGNORE_ERROR, DI_IMPLIED_DECIMALS) Removed.
475         (struct data_in) Removed.
476
477         * data-out.c: (output_date) Drop each component from the input as
478         it is output, to allow us to drop the distinction between h (a
479         count of hours) and H (the hour of day) template characters.
480         Also, handle new X template character.
481         (output_scientific) Follow more rational rule on when to drop
482         fraction introduced between SPSS 13 and 15.  Updated test case to
483         match new behavior.
484
485 Sat Nov 11 11:41:26 2006  Ben Pfaff  <blp@gnu.org>
486
487         Fix buffer overflow reported by John Darrington.
488
489         * data-out.c (output_bcd_integer): In case of SYSMIS, etc.,
490         realize that DIGITS is a count of nibbles, not of bytes.
491
492 Sat Nov  4 15:59:56 2006  Ben Pfaff  <blp@gnu.org>
493
494         * calendar.c (calendar_offset_to_gregorian) Also return the
495         year-of-day.  Change callers to new interface.
496
497         * data-out.c: Completely rewrite internals to conform to SPSS
498         output formats as completely as possible.
499         (data_out) Change interface to put input parameters before output
500         parameters, for consistency with the style I now prefer.  Update
501         all callers.
502         (data_out_get_integer_format) New public function.
503         (data_out_set_integer_format) New public function.
504         (data_out_get_float_format) New public function.
505         (data_out_set_float_format) New public function.
506
507         * data-out.h: New file.  Move prototype for data_out here, from
508         format.h.
509
510         * format.c: (fmt_step_width) Use equality comparison instead of
511         bitwise and, for clarity.
512         (fmt_is_string) Ditto.
513         (fmt_input_to_output) Fix categories that are translated to F
514         format.
515
516 Sun Nov  5 08:29:34 WST 2006 John Darrington <john@darrington.wattle.id.au>
517
518         * casefilter.c casefilter.h (new files), casefile.c casefile.h 
519         casefile-private.h: Added casefilter to assist commands with missing 
520         values.
521
522 Sat Nov  4 11:47:09 2006  Ben Pfaff  <blp@gnu.org>
523
524         Implement SET ERRORS, SHOW ERRORS.  Fixes bug #17609.
525         
526         * settings.c: (route_errors_to_terminal) New variable.
527         (route_errors_to_listing) New variable. 
528         (get_error_routing_to_terminal) New function.
529         (set_error_routing_to_terminal) New function.
530         (get_error_routing_to_listing) New function.
531         (set_error_routing_to_listing) New function.
532
533         * settings.h: (SET_ROUTE_* enums) Removed, because unused.
534
535 Tue Oct 31 19:58:27 2006  Ben Pfaff  <blp@gnu.org>
536
537         * format.c: Completely rewrite, to achieve better abstraction.
538         Rewrite all references to formats in other files.
539         
540         * format.def: Rewrite and reorganize.
541
542         * settings.c: Move everything related to custom currency formats
543         into format.[ch], changing them in form, so as to group related
544         code and definitions better.  Changed all references to use the
545         new functions.
546         (static var decimal) Removed.
547         (static var grouping) Removed.
548         (static var cc) Removed.
549         (get_decimal) Removed.
550         (set_decimal) Removed.
551         (get_grouping) Removed.
552         (set_grouping) Removed.
553         (get_cc) Removed.
554         (set_cc) Removed.
555
556         * settings.h: (macro CC_CNT) Removed.
557         (macro CC_WIDTH) Removed.
558         (struct custom_currency) Removed.
559
560 Tue Oct 31 19:56:19 2006  Ben Pfaff  <blp@gnu.org>
561
562         * data-in.c (data_in): Use switch statement instead of table, to
563         avoid dependence on the order of the FMT_* enums.
564
565 Tue Oct 31 19:35:36 2006  Ben Pfaff  <blp@gnu.org>
566
567         * data-out.c: (num_to_string) Removed, because it was dead code.
568
569 Tue Oct 31 18:09:24 2006  Ben Pfaff  <blp@gnu.org>
570
571         * data-in.c (parse_trailer): Fix error message.
572
573 Sat Oct 28 11:56:50 2006  Ben Pfaff  <blp@gnu.org>
574
575         * format.c (fmt_is_binary): New function.
576
577 Thu Oct 19 22:59:56 WST 2006 John Darrington <john@darrington.wattle.id.au>
578
579         * procedure.c procedure.h: Encapsulated the static data into a single
580         struct.  
581
582 Sat Oct 14 16:56:44 2006  Ben Pfaff  <blp@gnu.org>
583
584         * casefile.c (casereader_read_xfer): Always initialize the case,
585         even on an error condition.
586
587 Wed Sep 27 09:37:49 WST 2006 John Darrington <john@darrington.wattle.id.au>
588
589         * procedure.c (case_limit_trns_proc): Fixed buglet which rendered the 
590         entire function useless.
591
592 Mon Sep 25 17:11:46 WST 2006 John Darrington <john@darrington.wattle.id.au>
593
594         * casefile-private.h casefile.c casefile.h fastfile.c: Created new
595         casereader method casereader_clone.   
596         
597         * procedure.c pransformations.h: Introduced new type casenum_t
598
599 Thu Sep 21 07:00:30 2006  Ben Pfaff  <blp@gnu.org>
600
601         * variable.c: (width_to_bytes) Rephrase code for clarify.
602
603 Sun Jul 16 19:52:03 2006  Ben Pfaff  <blp@gnu.org>
604
605         * format.c: (fmt_type_from_string) New function.
606         (fmt_to_string) Include decimals in output if the format has
607         decimals, even if the format type does not.  This way, we can
608         accurately reproduce incorrect formats in user output.
609         (check_common_specifier) Make the check for a bad format type an
610         assertion, so we get bug reports if they show up.  Fix message.
611         Check for decimal places with a format type that doesn't allow
612         them.
613         (check_input_specifier) Remove check for FMT_X, which has been
614         deleted.
615         (check_output_specifier) Ditto. 
616
617         * format.def: Remove FMT_T, FMT_X, FMT_DESCEND, FMT_NEWREC.
618
619         * format.h: (macro FMT_TYPE_LEN_MAX) New macro.
620         (struct fmt_desc) Use FMT_TYPE_LEN_MAX in definition.
621         (enum fmt_parse_flags) Removed.
622
623 Mon Jul 17 18:26:21 WST 2006 John Darrington <john@darrington.wattle.id.au>
624
625         * casefile.c casefile.h: Converted to  an abstract base class.
626         * casefile-private.h fastfile.c fastfile.h: New files.
627         * automake.mk procedure.c scratch-writer.c storage-stream.c
628
629 Wed Jul 12 21:02:26 2006  Ben Pfaff  <blp@gnu.org>
630
631         * procedure.c (internal_procedure): Create sink_case with only as
632         many values as the compacted dictionary.
633
634 Wed Jul 12 21:01:00 2006  Ben Pfaff  <blp@gnu.org>
635
636         Remove "debugging" code that caused plenty of false positives and
637         no true positives.
638         
639         * case.h (struct ccase): [DEBUGGING] Remove `this' member.
640
641         * case.c: Remove all references to `this' member.
642
643 Thu Jul  6 19:09:53 2006  Ben Pfaff  <blp@gnu.org>
644
645         Fix link error noted by Jason Stover.
646         
647         * storage-stream.c: Include <assert.h>.
648
649 Tue Jul  4 08:47:35 2006  Ben Pfaff  <blp@gnu.org>
650
651         Fix bug #15766 (/KEEP subcommand on SAVE doesn't fully support
652         ALL) and additional underlying system file issues.
653
654         Thanks to John Darrington for review.
655
656         First problem: var_hash points to variables not owned by the
657         sys-file-reader, which the caller may free or modify.  Use an
658         array of sfm_vars instead, as done earlier (e.g. CVS version
659         1.12).
660         
661         * sys-file-reader.c (struct sfm_reader): Remove var_hash, svars
662         members and remove all code that references it.  Add vars, var_cnt
663         members.  Remove fix_specials member, which was unused.
664         (struct sfm_var) Remove name member, which was unused.
665         (sfm_close_reader) Free vars member instead of var_hash.
666         (compare_var_shortnames) Removed.
667         (hash_var_shortname) Removed.
668         (sfm_open_reader) Fill out vars array.
669         (compare_var_index) Removed.
670         (sfm_read_case) Use vars instead of var_hash.
671         
672         Second problem: we're confused about when we actually have very
673         long strings, causing us to choose incorrectly between slow path
674         and fast path in sfm_read_case.
675
676         * sys-file-reader.c: (sfm_open_reader) Only mark has_vls if we
677         have very long strings, not when we have long variable names,
678         which is an unrelated feature.
679
680 Tue Jun 27 12:06:49 2006  Ben Pfaff  <blp@gnu.org>
681
682         * variable.h: Move var_set and variable parsing declarations to
683         new header, src/language/lexer/variable-parser.h.  Modified lots
684         of files to include the new header.
685
686 Sun Jun 25 22:39:32 2006  Ben Pfaff  <blp@gnu.org>
687
688         * value-labels.c (value_to_string): When there's no value label,
689         format the variable according to its print format, instead of
690         always effectively using A or F format.
691
692 Mon Jun 19 18:05:42 WST 2006 John Darrington <john@darrington.wattle.id.au>
693
694         * casefile.c (casefile_get_random_reader): Nasty hack to get around 
695         the mode assertion.
696
697         * format.c: Removed tortological assertion.
698
699 Fri Jun  9 12:20:09 2006  Ben Pfaff  <blp@gnu.org>
700
701         Reform string library.
702         
703         * file-name.c (fn_interp_vars): Change interface to take a
704         substring as input.  Updated all users.
705         
706 Fri Jun  9 12:11:24 2006  Ben Pfaff  <blp@gnu.org>
707
708         * format.c (measure_is_valid): Really return false when m >=
709         n_MEASURES.
710
711 Tue Jun  6 18:46:26 2006  Ben Pfaff  <blp@gnu.org>
712
713         Implement random access to casefiles, for use in GUI.
714         
715         * casefile.c: (struct casereader) Add `random', `file_ofs',
716         `buffer_ofs' members.
717         (casefile_get_random_reader) New function.
718         (read_open_file) Break part into new function
719         seek_and_fill_buffer().
720         (fill_buffer) Update buffer_ofs, file_ofs.
721         (casereader_seek) New function.
722
723 Tue May 30 19:52:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
724
725         * settings.c: Added call to i18n{done, init}.
726
727 Tue May  9 21:09:17 2006  Ben Pfaff  <blp@gnu.org>
728
729         * procedure.h: Add WARN_UNUSED_RESULT to procedure function
730         prototypes.
731
732 Tue May  9 21:08:05 2006  Ben Pfaff  <blp@gnu.org>
733
734         * casefile.c: Convert many uses of `int' to `bool'.
735
736 Sat May  6 22:49:43 2006  Ben Pfaff  <blp@gnu.org>
737
738         * transformations.c (trns_chain_destroy): Destroy chain's trns
739         member, to fix memory leak.
740
741 Sat May  6 22:48:30 2006  Ben Pfaff  <blp@gnu.org>
742
743         * storage-stream.c (storage_source_decapsulate): Destroy case
744         source to fix memory leak.
745
746 Sat May  6 22:46:47 2006  Ben Pfaff  <blp@gnu.org>
747
748         * scratch-reader.c (scratch_reader_read_case): Copy into existing
749         case passed as argument instead of initializing the argument as a
750         case.  Fixes memory leak that showed up in
751         tests/command/aggregate.sh with scratch files.
752
753 Sat May  6 22:45:55 2006  Ben Pfaff  <blp@gnu.org>
754
755         * procedure.c (proc_done): Destroy default_dict, to fix memory
756         leak.
757
758 Sat May  6 22:44:44 2006  Ben Pfaff  <blp@gnu.org>
759
760         Simplify procedure_with_splits().
761         
762         * procedure.c (struct split_aux_data): Removed case_count member.
763         (procedure_with_splits) Don't initialize case_count.
764         (split_procedure_case_func) Check whether prev_case is null
765         instead of case_count.
766         (split_procedure_end_func) Ditto.
767
768 Sat May  6 22:42:23 2006  Ben Pfaff  <blp@gnu.org>
769
770         * case.c (case_move): Do nothing if dst and src are the same
771         object.
772         (case_try_create) Merge two similar cases.
773         (case_copy) Unshare only if data must be actually copied.
774
775 Sun May  7 10:04:06 WST 2006 John Darrington <john@darrington.wattle.id.au>
776
777         * data-in.c data-out.c dictionary.c sys-file-reader.c
778         sys-file-writer.c variable.c variable.h:  Reworked very long string
779         support for better encapsulation.
780
781 Sat May  6 19:02:00 2006  Ben Pfaff  <blp@gnu.org>
782
783         * value-labels.c (val_labs_can_set_width): New function.
784         (val_labs_set_width) Clear labels if increasing width to long
785         string.
786         (val_labs_destroy) Remove unneeded test for null.
787         
788 Sat May  6 16:14:08 2006  Ben Pfaff  <blp@gnu.org>
789
790         * value-labels.h: Remove unneeded dependency on variable.h.
791
792 Sat May  6 15:58:36 2006  Ben Pfaff  <blp@gnu.org>
793
794         Get rid of `char *c' member in union value, for cleanliness.
795         
796         * value.h: (union value) Remove `c' member.
797
798 Sat May  6 15:36:59 2006  Ben Pfaff  <blp@gnu.org>
799
800         Make dictionary compacting functions a little more general.
801         
802         * sys-file-writer.c (sfm_open_writer): Use
803         dict_compacting_would_change().
804         (does_dict_need_translation) Removed.
805
806 Sat May  6 15:35:42 2006  Ben Pfaff  <blp@gnu.org>
807
808         Make dictionary compacting functions a little more general.
809         
810         * dictionary.c (dict_needs_compaction): Rename
811         dict_compacting_would_shrink().  Update all callers.
812         (dict_compacting_would_change) New function.
813         
814 Sat May  6 14:25:49 2006  Ben Pfaff  <blp@gnu.org>
815
816         * sys-file-writer.c: (does_dict_need_translation) Fix bug:
817         inverted return value (!).
818
819 Sat May  6 13:37:52 2006  Ben Pfaff  <blp@gnu.org>
820
821         Continue reforming procedure execution.  
822
823         * procedure.c: Search and replace "vfm" by "proc".  Notably:
824         (static var vfm_source) Rename proc_source.  Update all
825         references.
826         (static var vfm_sink) Rename proc_sink.  Update all references.
827         
828 Sat May  6 12:38:55 2006  Ben Pfaff  <blp@gnu.org>
829
830         Continue reforming procedure execution.  In this phase, remove
831         PROCESS IF, which was deprecated anyway and can be easily
832         simulated with TEMPORARY followed by SELECT IF.
833
834         * procedure.c: (open_active_file) Don't call
835         add_process_if_trns().
836         (discard_variables) Get rid of redundant call to
837         proc_cancel_all_transformations().
838         (add_process_if_trns) Removed.
839         (process_if_trns_proc) Removed.
840         (process_if_trns_free) Removed.
841
842 Sat May  6 10:58:05 2006  Ben Pfaff  <blp@gnu.org>
843
844         Continue reforming procedure execution.  In this phase, add
845         `const' to the case passed to procedure()'s callback.
846
847         Updated all users of procedure() as well.
848         
849         * procedure.c: (struct write_case_data) Add "const" to ccase
850         parameter for case_func member.
851         (procedure) Add "const" to ccase parameter for proc_func
852         parameter.
853         (multipass_case_func) Make ccase parameter const.
854         (internal_procedure) Add "const" to ccase parameter for case_func
855         parameter.
856         (split_procedure_case_func) Make ccase parameter const.
857         (multipass_split_case_func) Make ccase parameter const.
858         
859 Sat May  6 10:30:33 2006  Ben Pfaff  <blp@gnu.org>
860
861         Continue reforming procedure execution.  In this phase, get rid of
862         the output code for SPLIT FILE groups in procedure.c, which really
863         shouldn't be doing any output.  Move it into the individual
864         procedures instead.  This also adds some flexibility.
865
866         Updated many users of procedure_with_splits() and
867         multipass_procedure_with_splits() to call
868         output_split_file_values() and to deal with increased use of
869         const.
870
871         * procedure.c: (struct split_aux_data) Add "const struct ccase *"
872         parameter to begin_func member.
873         (procedure_with_splits) Add "const struct ccase *" parameter to
874         begin_func parameter.  Make ccase parameter const in proc_func
875         parameter.
876         (split_procedure_case_func) Don't dump split file group.  Pass
877         case to begin_func.
878         (dump_splits) Moved to language/dictionary/split-file.c as
879         output_split_file_values().
880         (struct multipass_split_aux_data) Add "const struct ccase *"
881         parameter to split_func member.
882         (multipass_procedure_with_splits) Add "const struct ccase *"
883         parameter to split_func parameter.
884         (multipass_split_case_func) Save new SPLIT FILE case before
885         outputting case.
886         (multipass_split_output) Pass saved SPLIT FILE case to split_func.
887         
888 Fri May  5 22:48:50 2006  Ben Pfaff  <blp@gnu.org>
889
890         Continue reforming procedure execution.  Change
891         internal_procedure() so that it calls open_active_file() and
892         close_active_file(), which isolates most of the actual procedure
893         functionality.
894
895         * procedure.c: (struct write_case_data) Rename `proc_func' member
896         to `case_func' and update all references.
897         (procedure) Rewrite as one-line wrapper around
898         internal_procedure().
899         (struct multipass_aux_data) New.
900         (multipass_callback) Renamed multipass_case_func().  Use struct
901         multipass_aux_data as auxiliary data.
902         (multipass_end_func) New function.
903         (multipass_procedure) Rewrite as wrapper for internal_procedure()
904         that uses multipass_case_func, multipass_end_func.
905         (internal_procedure) Add `end_func' argument.  Move optimization
906         of trivial case in here.  Move call to open_active_file() and
907         close_active_file() in here.  Now assert that vfm_source is
908         non-null.
909         (procedure_with_splits_callback) Rename
910         split_procedure_case_func().
911         (split_procedure_end_func) New function.
912         (multipass_split_callback) Rename multipass_split_case_func.
913         (multipass_split_end_func) New function.
914         (discard_variables) No need to test for nonnull vfm_source.
915
916 Fri May  5 21:34:02 2006  Ben Pfaff  <blp@gnu.org>
917
918         Continue reforming procedure execution.  Get rid of unused member.
919
920         * procedure.c: (struct write_case_data) Remove `cases_analyzed'
921         member.
922         (write_case) Don't increment cases_analyzed.
923
924 Thu May  4 21:50:11 2006  Ben Pfaff  <blp@gnu.org>
925
926         Continue reforming procedure execution.  In this phase, move
927         procedure.c and procedure.h from src to src/data.  Update
928         makefiles and #includes accordingly.
929
930         * procedure.c: Moved here from src/.
931
932         * procedure.h: Moved here from src/.
933
934 Wed May  3 22:42:12 2006  Ben Pfaff  <blp@gnu.org>
935
936         Continue reforming procedure execution.  In this phase, get rid of
937         many global variables, consolidating procedure execution in
938         procedure.c.  Encapsulate transformations in new "struct
939         trns_chain".  Also, change implementation of N OF CASES, FILTER,
940         and PROCESS IF from special cases to transformations.
941          
942         * automake.mk: (src_data_libdata_a_SOURCES) Add transformations.c,
943         transformations.h.
944
945         * dictionary.c: (global variable default_dict) Move to
946         src/procedure.c.
947
948         * variable.h: (TRNS_*) Move to transformations.h.
949         (struct transformation) Move to transformations.c.
950
951 Thu May  4 13:47:06 WST 2006 John Darrington <john@darrington.wattle.id.au>
952
953         * sys-file-reader.c: Fixed invalid read problems.
954
955 Tue May  2 15:57:10 2006  Ben Pfaff  <blp@gnu.org>
956
957         * storage-stream.c: Add missing function comments.
958
959 Tue May  2 15:50:21 2006  Ben Pfaff  <blp@gnu.org>
960
961         Continue reforming procedure execution.  In this phase, add some
962         new, needed functionality to storage-stream.
963
964         * storage-stream.c: (storage_source_decapsulate) New function.
965
966 Tue May  2 15:43:36 2006  Ben Pfaff  <blp@gnu.org>
967
968         * variable.c (width_to_bytes): Declarations must precede
969         statements for C90 compliance.
970
971 Tue May  2 10:42:05 WST 2006 John Darrington <john@darrington.wattle.id.au>
972
973         * data-out.c, data-in.c, variable.c, variable.h: New functions 
974         copy_mangle and copy_demangle for reading/writing cases; emulates the 
975         way SPSS deals with strings > 255 bytes.
976
977         * sys-file-reader.c sys-file-writer.c: Added support for Record 7, 
978         subtype 14 needed for strings longer than 255 bytes.
979
980         * dictionary.c, format.def, value.c : Updated to use MAX_STRING 
981         instead of literal values. Also fixed some constness issues.
982
983         * format.h: Constness
984
985         * sfm-private.h: Renamed the case_size identifier, since I discovered 
986         that SPSS's respect for this variable is very nominal.
987
988 Mon May  1 15:45:42 2006  Ben Pfaff  <blp@gnu.org>
989
990         Change case limit type from int to size_t.
991
992         * dictionary.c: (struct dictionary) Change type of case_limit
993         member.
994         (dict_get_case_limit) Change return type.
995         (dict_set_case_limit) Change parameter type.
996
997 Wed Apr 26 20:01:19 2006  Ben Pfaff  <blp@gnu.org>
998
999         * variable.h: (struct variable) Rename `reinit' member as `leave'
1000         and invert sense.  Fix up all references.
1001
1002 Wed Apr 26 19:39:28 2006  Ben Pfaff  <blp@gnu.org>
1003
1004         Continue reforming procedure execution.  In this phase, break
1005         procedure.c into multiple files.
1006         
1007         * automake.mk: (src_data_libdata_a_SOURCES) Add all the new files.
1008
1009         * case-sink.c: New file.
1010
1011         * case-sink.h: New file.
1012         
1013         * case-source.c: New file.
1014
1015         * case-source.h: New file.
1016         
1017         * storage-stream.c: New file.
1018
1019         * storage-stream.h: New file.
1020
1021 Wed Apr 26 14:55:19 2006  Ben Pfaff  <blp@gnu.org>
1022
1023         * variable.h: (struct variable) Remove `init' member and all
1024         references to it from other files.  It was initialized in several
1025         places, but nothing really ever used it for anything worthwhile.
1026         Thanks to Jason Stover for pointing out how confusing this
1027         member is.
1028
1029 Sun Apr 23 22:04:45 2006  Ben Pfaff  <blp@gnu.org>
1030
1031         Continue reforming error message support.  In this phase, get rid
1032         of message "titles" and put the message text in `struct error'.
1033         Now `struct error' encapsulates a message more properly.
1034         
1035         * casefile.c: (io_error) Use err_msg() instead of err_vmsg().
1036         Format message ourselves.
1037
1038         * data-in.c: (vdls_error) Ditto.
1039
1040         * por-file-reader.c: (error) Ditto.
1041
1042         * sys-file-reader.c: (corrupt_msg) Ditto.
1043
1044 Sun Apr 16 18:49:51 2006  Ben Pfaff  <blp@gnu.org>
1045
1046         GNU standards require "file name" instead of "filename" in
1047         documentation.  It's nice for our code to follow the convention
1048         too.
1049         
1050         * casefile.c: (struct casefile) Rename `filename' member to
1051         `file_name'.  Updated all references.
1052
1053         * file-name.c: [!unix] (struct file_identity) Rename
1054         normalized_filename member to normalized_file_name.  Updated all
1055         references.
1056
1057 Sun Apr 16 18:35:33 2006  Ben Pfaff  <blp@gnu.org>
1058
1059         We don't really support anything but Unix-like environments well,
1060         so we might as well de-obfuscate by writing directory and path
1061         separators explicitly.
1062
1063         * file-name.h: (macro DIR_SEPARATOR) Removed.  Changed all usages
1064         to just '/'.
1065         (macro PATH_SEPARATOR) Removed.  Changed all usages to just ':'.
1066         (macro DIR_SEPARATOR_STRING) Removed.  Changed all usages to just
1067         "/".
1068         (macro PATH_SEPARATOR_STRING) Removed.  Changed all usages to just
1069         ":"
1070
1071 Sun Apr 16 18:28:35 2006  Ben Pfaff  <blp@gnu.org>
1072
1073         GNU standards require "file name" instead of "filename" in
1074         documentation.  It's nice for our code to follow the convention
1075         too.
1076         
1077         * filename.c: Rename to file-name.c.
1078
1079         * filename.h: Rename to file-name.h.  Update all inclusions.
1080         Update header guards.
1081
1082         * automake.mk: Update file names.
1083
1084 Sun Apr 16 16:42:47 2006  Ben Pfaff  <blp@gnu.org>
1085
1086         * filename.c: (fn_dirname) Renamed fn_dir_name(), all references
1087         updated.
1088         (fn_basename) Removed (dead code).
1089         (fn_absolute_p) Renamed fn_is_absolute(), all references updated.
1090         (fn_special_p) Renamed fn_is_special(), all references updated.
1091         (fn_exists_p) Renamed fn_exists(), all references updated.
1092
1093 Sun Apr 16 16:33:58 2006  Ben Pfaff  <blp@gnu.org>
1094
1095         * filename.c: (fn_tilde_expand) Rewrite for cleaner code.  
1096         Also, now it only tilde-expands file names, not paths.
1097         (fn_search_path) Tilde-expand one directory at a time.
1098
1099 Sun Apr 16 16:28:06 2006  Ben Pfaff  <blp@gnu.org>
1100
1101         * filename.c: (fn_search_path) rewrite for cleaner code.  Also,
1102         get rid of non-Unixlike version of the code, which has probably
1103         never been tested.
1104         (fn_prepend_dir) Removed (dead code).
1105
1106         * filename.h: (macro DIR_SEPARATOR_STRING) New.
1107         (macro PATH_SEPARATOR_STRING) New.
1108 Sun Apr 16 16:05:28 2006  Ben Pfaff  <blp@gnu.org>
1109
1110         Continue reforming error message support.  In this phase, we get
1111         rid of VM() and the other msg() support for "verbosity", replacing
1112         it by a new function verbose_msg().
1113
1114         * filename.c: (fn_search_path) Use verbose_msg() instead of
1115         msg(VM(), ...).  
1116
1117 Sat Apr 15 19:53:19 2006  Ben Pfaff  <blp@gnu.org>
1118
1119         * sfm-private.h: Get rid of #defines after #error, which makes no
1120         sense.
1121
1122 Sat Apr 15 19:48:57 2006  Ben Pfaff  <blp@gnu.org>
1123
1124         Get rid of our own int32 type in favor of the standard int32_t
1125         type.
1126         
1127         * sfm-private.h: (int32 macro) Don't define this anymore.  Do
1128         include <stdint.h>.
1129
1130         * sys-file-reader.c: Use int32_t instead of int32 throughout.
1131         
1132         * sys-file-writer.c: Use int32_t instead of int32 throughout.
1133
1134 Sat Apr 15 19:36:47 2006  Ben Pfaff  <blp@gnu.org>
1135
1136         Remove ill-considered file routines that are no longer used.
1137         
1138         * filename.c: (fn_open_ext) Removed.
1139         (fn_close_ext) Removed.
1140
1141         * filename.h: (struct file_ext) Removed.
1142
1143 Mon Apr  3 13:22:39 2006  Ben Pfaff  <blp@gnu.org>
1144
1145         * variable.c (var_is_valid_name): Move declarations before code
1146         for C90 compliance.
1147
1148 Tue Apr  4 15:28:40 WST 2006 John Darrington <john@darrington.wattle.id.au>
1149
1150         * filename.ch (fn_interp_vars): Fixed small buglet.
1151
1152 Tue Mar 28 13:47:16 WST 2006 John Darrington <john@darrington.wattle.id.au>
1153         
1154         * filename.[ch] (fn_interp_vars): Changed the signature and semantics
1155         so as to modify the string inline.   Thus makeing it easier to
1156         destroy the results when no longer needed.
1157         
1158 2006-03-25  Jason Stover  <jhs@math.gcsu.edu>
1159
1160         * category.c (cat_stored_values_destroy): Fixed memory leak.
1161
1162 Fri Mar 24 18:15:41 2006  Ben Pfaff  <blp@gnu.org>
1163
1164         Add some missing frees.  Thanks to John Darrington for reporting
1165         these.
1166
1167         * any-writer.c (any_writer_close): Free writer.
1168
1169         * any-reader.c (any_reader_close): Free reader.
1170
1171 Mon Mar 20 16:33:53 2006  Ben Pfaff  <blp@gnu.org>
1172
1173         * por-file-reader.c: (error) Mark as NO_RETURN.
1174
1175 Sat Mar 11 15:06:07 WST 2006 John Darrington <john@darrington.wattle.id.au>
1176
1177         * settings.c: Changed default value of scompress to true.
1178
1179 Sat Mar  4 13:22:51 2006  Ben Pfaff  <blp@gnu.org>
1180
1181         * sfm-private.h: Include variable.h, to get SHORT_NAME_LEN.
1182
1183         * value.h: Remove check on MAX_SHORT_STRING, which I don't think
1184         really applies.
1185
1186         * variable.h: Move definition of SHORT_NAME_LEN, LONG_NAME_LEN
1187         here from pref.h.orig.
1188
1189 Sat Mar  4 12:50:48 WST 2006 John Darrington <john@darrington.wattle.id.au>
1190
1191         * sys-file-reader.c: Fixed bug reading compressed files.
1192
1193 Thu Mar  2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
1194
1195         * Numerous renames.  See src/ChangeLog for details.
1196         
1197         * Moved files from src directory