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