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