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