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