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