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