Avoided comparison of string variables to SYSMIS
[pspp-builds.git] / src / data / ChangeLog
1 Sun Dec 10 11:32:56 WST 2006 John Darrington <john@darrington.wattle.id.au>
2
3         * casefilter.c (casefilter_variable_missing): Avoided comparision of
4         string variables to SYSMIS.  Thanks to Ben Pfaff for reporting this
5         problem.
6
7 Sat Dec  9 07:18:03 WST 2006 John Darrington <john@darrington.wattle.id.au>
8
9         * value-labels.c (destroy_atoms): New function.
10         * value-labels.c (atom_create): Call destroy_atoms in atexit handler.
11
12 Thu Dec  7 17:38:26 2006  Ben Pfaff  <blp@gnu.org>
13
14         Thanks to Jason Stover for pointing out this problem.
15         
16         * data-out.c (output_number): Use gsl_finite from GSL, which is
17         portable, instead of isfinite, which is not.
18         (power256) Ditto.
19
20 Thu Dec  7 15:22:38 WST 2006 John Darrington <john@darrington.wattle.id.au>
21
22         * variable.c variable.h (value_dup): New function.
23
24 Mon Dec  4 22:20:17 2006  Ben Pfaff  <blp@gnu.org>
25
26         Start converting struct variable to an opaque.  In this phase, we
27         add a bunch of setter and getter functions and convert most of the
28         PSPP code to use them.  The resulting changes are pervasive but
29         mostly trivial, and only the notable changes are logged.
30         
31         * format.c (fmt_equal): New function.
32         
33         * variable.c (var_type_is_valid): New function.
34         (measure_is_valid) Moved here, from format.c.
35         (alignment_is_valid) Moved here, from format.c.
36         (var_get_name) New function.
37         (var_set_name) New function.
38         (width_to_type) New function.
39         (var_get_type) New function.
40         (var_get_width) New function.
41         (var_set_width) New function.
42         (var_is_numeric) New function.
43         (var_is_alpha) New function.
44         (var_is_short_string) New function.
45         (var_is_long_string) New function.
46         (var_is_very_long_string) New function.
47         (var_get_missing_values) New function.
48         (var_set_missing_values) New function.
49         (var_clear_missing_values) New function.
50         (var_has_missing_values) New function.
51         (var_is_value_missing) New function.
52         (var_is_num_missing) New function.
53         (var_is_str_missing) New function.
54         (var_is_value_user_missing) New function.
55         (var_is_num_user_missing) New function.
56         (var_is_str_user_missing) New function.
57         (var_is_value_system_missing) New function.
58         (var_get_print_format) New function.
59         (var_set_print_format) New function.
60         (var_get_write_format) New function.
61         (var_set_write_format) New function.
62         (var_set_both_formats) New function.
63         (var_get_label) New function.
64         (var_set_label) New function.
65         (var_clear_label) New function.
66         (var_has_label) New function.
67         (var_get_measure) New function.
68         (var_set_measure) New function.
69         (var_get_display_width) New function.
70         (var_set_display_width) New function.
71         (var_get_alignment) New function.
72         (var_set_alignment) New function.
73         (var_get_value_cnt) New function.
74         (var_get_leave) New function.
75         (var_get_short_name) New function.
76
77         * variable.h: (struct variable) Removed "type" and "nv" members;
78         they are now computed from "width" where needed.
79
80 Mon Dec  4 21:38:40 2006  Ben Pfaff  <blp@gnu.org>
81
82         * missing-values.c (mv_resize): Don't write beyond end of the
83         allocated buffer when resizing a long string.
84
85 Sat Dec  2 16:28:32 2006  Ben Pfaff  <blp@gnu.org>
86
87         Clean up identifier code: don't require identifier enumerations to
88         be in a particular order; make better use of string library;
89         expose less of the internals.
90                 
91         * identifier.c: (lex_skip_identifier) Rename lex_id_get_length,
92         change interface.  Updated all callers.
93         (lex_id_match) Change interface to use struct substring, update
94         all callers.
95         (lex_id_match_len) Removed.  Update callers to use lex_id_match.
96         (global array keywords[]) Make static, change form.  Update all
97         users to use lex_id_name instead.
98         (lex_is_keyword) New function.
99         (lex_id_to_token) Change interface to use struct substring, update
100         all callers.
101         (lex_id_name) New function.
102
103         * identifier.h: (T_FIRST_KEYWORD) Removed.  Changed users to call
104         lex_is_keyword instead.
105         (T_LAST_KEYWORD) Removed.
106         (T_N_KEYWORDS) Removed.
107         
108 Sat Nov 18 20:46:35 2006  Ben Pfaff  <blp@gnu.org>
109
110         * format.c: (fmt_date_template) Distinguish characters for which a
111         space is output and any date delimiter is allowed on input, from
112         those for which a space is output and only a space is allowed on
113         input.  The former is represented by X, the latter by a space.
114         Also, drop distinction between h and H, changing the former to the
115         latter.
116
117         * data-in.c: Completely rewrite internals to conform to SPSS input
118         formats as closely as possible.
119         (data_in) Changed external interface by replacing the structure
120         that was used as a single argument by a set of arguments.  Updated
121         all callers.
122         (data_in_finite_line) Removed.  Converted all callers to use plain
123         data_in.
124         (data_in_get_integer_format) New function.
125         (data_in_set_integer_format) New function.
126         (data_in_get_float_format) New function.
127         (data_in_set_float_format) New function.
128
129         * data-in.h: (enums DI_IGNORE_ERROR, DI_IMPLIED_DECIMALS) Removed.
130         (struct data_in) Removed.
131
132         * data-out.c: (output_date) Drop each component from the input as
133         it is output, to allow us to drop the distinction between h (a
134         count of hours) and H (the hour of day) template characters.
135         Also, handle new X template character.
136         (output_scientific) Follow more rational rule on when to drop
137         fraction introduced between SPSS 13 and 15.  Updated test case to
138         match new behavior.
139
140 Sat Nov 11 11:41:26 2006  Ben Pfaff  <blp@gnu.org>
141
142         Fix buffer overflow reported by John Darrington.
143
144         * data-out.c (output_bcd_integer): In case of SYSMIS, etc.,
145         realize that DIGITS is a count of nibbles, not of bytes.
146
147 Sat Nov  4 15:59:56 2006  Ben Pfaff  <blp@gnu.org>
148
149         * calendar.c (calendar_offset_to_gregorian) Also return the
150         year-of-day.  Change callers to new interface.
151
152         * data-out.c: Completely rewrite internals to conform to SPSS
153         output formats as completely as possible.
154         (data_out) Change interface to put input parameters before output
155         parameters, for consistency with the style I now prefer.  Update
156         all callers.
157         (data_out_get_integer_format) New public function.
158         (data_out_set_integer_format) New public function.
159         (data_out_get_float_format) New public function.
160         (data_out_set_float_format) New public function.
161
162         * data-out.h: New file.  Move prototype for data_out here, from
163         format.h.
164
165         * format.c: (fmt_step_width) Use equality comparison instead of
166         bitwise and, for clarity.
167         (fmt_is_string) Ditto.
168         (fmt_input_to_output) Fix categories that are translated to F
169         format.
170
171 Sun Nov  5 08:29:34 WST 2006 John Darrington <john@darrington.wattle.id.au>
172
173         * casefilter.c casefilter.h (new files), casefile.c casefile.h 
174         casefile-private.h: Added casefilter to assist commands with missing 
175         values.
176
177 Sat Nov  4 11:47:09 2006  Ben Pfaff  <blp@gnu.org>
178
179         Implement SET ERRORS, SHOW ERRORS.  Fixes bug #17609.
180         
181         * settings.c: (route_errors_to_terminal) New variable.
182         (route_errors_to_listing) New variable. 
183         (get_error_routing_to_terminal) New function.
184         (set_error_routing_to_terminal) New function.
185         (get_error_routing_to_listing) New function.
186         (set_error_routing_to_listing) New function.
187
188         * settings.h: (SET_ROUTE_* enums) Removed, because unused.
189
190 Tue Oct 31 19:58:27 2006  Ben Pfaff  <blp@gnu.org>
191
192         * format.c: Completely rewrite, to achieve better abstraction.
193         Rewrite all references to formats in other files.
194         
195         * format.def: Rewrite and reorganize.
196
197         * settings.c: Move everything related to custom currency formats
198         into format.[ch], changing them in form, so as to group related
199         code and definitions better.  Changed all references to use the
200         new functions.
201         (static var decimal) Removed.
202         (static var grouping) Removed.
203         (static var cc) Removed.
204         (get_decimal) Removed.
205         (set_decimal) Removed.
206         (get_grouping) Removed.
207         (set_grouping) Removed.
208         (get_cc) Removed.
209         (set_cc) Removed.
210
211         * settings.h: (macro CC_CNT) Removed.
212         (macro CC_WIDTH) Removed.
213         (struct custom_currency) Removed.
214
215 Tue Oct 31 19:56:19 2006  Ben Pfaff  <blp@gnu.org>
216
217         * data-in.c (data_in): Use switch statement instead of table, to
218         avoid dependence on the order of the FMT_* enums.
219
220 Tue Oct 31 19:35:36 2006  Ben Pfaff  <blp@gnu.org>
221
222         * data-out.c: (num_to_string) Removed, because it was dead code.
223
224 Tue Oct 31 18:09:24 2006  Ben Pfaff  <blp@gnu.org>
225
226         * data-in.c (parse_trailer): Fix error message.
227
228 Sat Oct 28 11:56:50 2006  Ben Pfaff  <blp@gnu.org>
229
230         * format.c (fmt_is_binary): New function.
231
232 Thu Oct 19 22:59:56 WST 2006 John Darrington <john@darrington.wattle.id.au>
233
234         * procedure.c procedure.h: Encapsulated the static data into a single
235         struct.  
236
237 Sat Oct 14 16:56:44 2006  Ben Pfaff  <blp@gnu.org>
238
239         * casefile.c (casereader_read_xfer): Always initialize the case,
240         even on an error condition.
241
242 Wed Sep 27 09:37:49 WST 2006 John Darrington <john@darrington.wattle.id.au>
243
244         * procedure.c (case_limit_trns_proc): Fixed buglet which rendered the 
245         entire function useless.
246
247 Mon Sep 25 17:11:46 WST 2006 John Darrington <john@darrington.wattle.id.au>
248
249         * casefile-private.h casefile.c casefile.h fastfile.c: Created new
250         casereader method casereader_clone.   
251         
252         * procedure.c pransformations.h: Introduced new type casenum_t
253
254 Thu Sep 21 07:00:30 2006  Ben Pfaff  <blp@gnu.org>
255
256         * variable.c: (width_to_bytes) Rephrase code for clarify.
257
258 Sun Jul 16 19:52:03 2006  Ben Pfaff  <blp@gnu.org>
259
260         * format.c: (fmt_type_from_string) New function.
261         (fmt_to_string) Include decimals in output if the format has
262         decimals, even if the format type does not.  This way, we can
263         accurately reproduce incorrect formats in user output.
264         (check_common_specifier) Make the check for a bad format type an
265         assertion, so we get bug reports if they show up.  Fix message.
266         Check for decimal places with a format type that doesn't allow
267         them.
268         (check_input_specifier) Remove check for FMT_X, which has been
269         deleted.
270         (check_output_specifier) Ditto. 
271
272         * format.def: Remove FMT_T, FMT_X, FMT_DESCEND, FMT_NEWREC.
273
274         * format.h: (macro FMT_TYPE_LEN_MAX) New macro.
275         (struct fmt_desc) Use FMT_TYPE_LEN_MAX in definition.
276         (enum fmt_parse_flags) Removed.
277
278 Mon Jul 17 18:26:21 WST 2006 John Darrington <john@darrington.wattle.id.au>
279
280         * casefile.c casefile.h: Converted to  an abstract base class.
281         * casefile-private.h fastfile.c fastfile.h: New files.
282         * automake.mk procedure.c scratch-writer.c storage-stream.c
283
284 Wed Jul 12 21:02:26 2006  Ben Pfaff  <blp@gnu.org>
285
286         * procedure.c (internal_procedure): Create sink_case with only as
287         many values as the compacted dictionary.
288
289 Wed Jul 12 21:01:00 2006  Ben Pfaff  <blp@gnu.org>
290
291         Remove "debugging" code that caused plenty of false positives and
292         no true positives.
293         
294         * case.h (struct ccase): [DEBUGGING] Remove `this' member.
295
296         * case.c: Remove all references to `this' member.
297
298 Thu Jul  6 19:09:53 2006  Ben Pfaff  <blp@gnu.org>
299
300         Fix link error noted by Jason Stover.
301         
302         * storage-stream.c: Include <assert.h>.
303
304 Tue Jul  4 08:47:35 2006  Ben Pfaff  <blp@gnu.org>
305
306         Fix bug #15766 (/KEEP subcommand on SAVE doesn't fully support
307         ALL) and additional underlying system file issues.
308
309         Thanks to John Darrington for review.
310
311         First problem: var_hash points to variables not owned by the
312         sys-file-reader, which the caller may free or modify.  Use an
313         array of sfm_vars instead, as done earlier (e.g. CVS version
314         1.12).
315         
316         * sys-file-reader.c (struct sfm_reader): Remove var_hash, svars
317         members and remove all code that references it.  Add vars, var_cnt
318         members.  Remove fix_specials member, which was unused.
319         (struct sfm_var) Remove name member, which was unused.
320         (sfm_close_reader) Free vars member instead of var_hash.
321         (compare_var_shortnames) Removed.
322         (hash_var_shortname) Removed.
323         (sfm_open_reader) Fill out vars array.
324         (compare_var_index) Removed.
325         (sfm_read_case) Use vars instead of var_hash.
326         
327         Second problem: we're confused about when we actually have very
328         long strings, causing us to choose incorrectly between slow path
329         and fast path in sfm_read_case.
330
331         * sys-file-reader.c: (sfm_open_reader) Only mark has_vls if we
332         have very long strings, not when we have long variable names,
333         which is an unrelated feature.
334
335 Tue Jun 27 12:06:49 2006  Ben Pfaff  <blp@gnu.org>
336
337         * variable.h: Move var_set and variable parsing declarations to
338         new header, src/language/lexer/variable-parser.h.  Modified lots
339         of files to include the new header.
340
341 Sun Jun 25 22:39:32 2006  Ben Pfaff  <blp@gnu.org>
342
343         * value-labels.c (value_to_string): When there's no value label,
344         format the variable according to its print format, instead of
345         always effectively using A or F format.
346
347 Mon Jun 19 18:05:42 WST 2006 John Darrington <john@darrington.wattle.id.au>
348
349         * casefile.c (casefile_get_random_reader): Nasty hack to get around 
350         the mode assertion.
351
352         * format.c: Removed tortological assertion.
353
354 Fri Jun  9 12:20:09 2006  Ben Pfaff  <blp@gnu.org>
355
356         Reform string library.
357         
358         * file-name.c (fn_interp_vars): Change interface to take a
359         substring as input.  Updated all users.
360         
361 Fri Jun  9 12:11:24 2006  Ben Pfaff  <blp@gnu.org>
362
363         * format.c (measure_is_valid): Really return false when m >=
364         n_MEASURES.
365
366 Tue Jun  6 18:46:26 2006  Ben Pfaff  <blp@gnu.org>
367
368         Implement random access to casefiles, for use in GUI.
369         
370         * casefile.c: (struct casereader) Add `random', `file_ofs',
371         `buffer_ofs' members.
372         (casefile_get_random_reader) New function.
373         (read_open_file) Break part into new function
374         seek_and_fill_buffer().
375         (fill_buffer) Update buffer_ofs, file_ofs.
376         (casereader_seek) New function.
377
378 Tue May 30 19:52:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
379
380         * settings.c: Added call to i18n{done, init}.
381
382 Tue May  9 21:09:17 2006  Ben Pfaff  <blp@gnu.org>
383
384         * procedure.h: Add WARN_UNUSED_RESULT to procedure function
385         prototypes.
386
387 Tue May  9 21:08:05 2006  Ben Pfaff  <blp@gnu.org>
388
389         * casefile.c: Convert many uses of `int' to `bool'.
390
391 Sat May  6 22:49:43 2006  Ben Pfaff  <blp@gnu.org>
392
393         * transformations.c (trns_chain_destroy): Destroy chain's trns
394         member, to fix memory leak.
395
396 Sat May  6 22:48:30 2006  Ben Pfaff  <blp@gnu.org>
397
398         * storage-stream.c (storage_source_decapsulate): Destroy case
399         source to fix memory leak.
400
401 Sat May  6 22:46:47 2006  Ben Pfaff  <blp@gnu.org>
402
403         * scratch-reader.c (scratch_reader_read_case): Copy into existing
404         case passed as argument instead of initializing the argument as a
405         case.  Fixes memory leak that showed up in
406         tests/command/aggregate.sh with scratch files.
407
408 Sat May  6 22:45:55 2006  Ben Pfaff  <blp@gnu.org>
409
410         * procedure.c (proc_done): Destroy default_dict, to fix memory
411         leak.
412
413 Sat May  6 22:44:44 2006  Ben Pfaff  <blp@gnu.org>
414
415         Simplify procedure_with_splits().
416         
417         * procedure.c (struct split_aux_data): Removed case_count member.
418         (procedure_with_splits) Don't initialize case_count.
419         (split_procedure_case_func) Check whether prev_case is null
420         instead of case_count.
421         (split_procedure_end_func) Ditto.
422
423 Sat May  6 22:42:23 2006  Ben Pfaff  <blp@gnu.org>
424
425         * case.c (case_move): Do nothing if dst and src are the same
426         object.
427         (case_try_create) Merge two similar cases.
428         (case_copy) Unshare only if data must be actually copied.
429
430 Sun May  7 10:04:06 WST 2006 John Darrington <john@darrington.wattle.id.au>
431
432         * data-in.c data-out.c dictionary.c sys-file-reader.c
433         sys-file-writer.c variable.c variable.h:  Reworked very long string
434         support for better encapsulation.
435
436 Sat May  6 19:02:00 2006  Ben Pfaff  <blp@gnu.org>
437
438         * value-labels.c (val_labs_can_set_width): New function.
439         (val_labs_set_width) Clear labels if increasing width to long
440         string.
441         (val_labs_destroy) Remove unneeded test for null.
442         
443 Sat May  6 16:14:08 2006  Ben Pfaff  <blp@gnu.org>
444
445         * value-labels.h: Remove unneeded dependency on variable.h.
446
447 Sat May  6 15:58:36 2006  Ben Pfaff  <blp@gnu.org>
448
449         Get rid of `char *c' member in union value, for cleanliness.
450         
451         * value.h: (union value) Remove `c' member.
452
453 Sat May  6 15:36:59 2006  Ben Pfaff  <blp@gnu.org>
454
455         Make dictionary compacting functions a little more general.
456         
457         * sys-file-writer.c (sfm_open_writer): Use
458         dict_compacting_would_change().
459         (does_dict_need_translation) Removed.
460
461 Sat May  6 15:35:42 2006  Ben Pfaff  <blp@gnu.org>
462
463         Make dictionary compacting functions a little more general.
464         
465         * dictionary.c (dict_needs_compaction): Rename
466         dict_compacting_would_shrink().  Update all callers.
467         (dict_compacting_would_change) New function.
468         
469 Sat May  6 14:25:49 2006  Ben Pfaff  <blp@gnu.org>
470
471         * sys-file-writer.c: (does_dict_need_translation) Fix bug:
472         inverted return value (!).
473
474 Sat May  6 13:37:52 2006  Ben Pfaff  <blp@gnu.org>
475
476         Continue reforming procedure execution.  
477
478         * procedure.c: Search and replace "vfm" by "proc".  Notably:
479         (static var vfm_source) Rename proc_source.  Update all
480         references.
481         (static var vfm_sink) Rename proc_sink.  Update all references.
482         
483 Sat May  6 12:38:55 2006  Ben Pfaff  <blp@gnu.org>
484
485         Continue reforming procedure execution.  In this phase, remove
486         PROCESS IF, which was deprecated anyway and can be easily
487         simulated with TEMPORARY followed by SELECT IF.
488
489         * procedure.c: (open_active_file) Don't call
490         add_process_if_trns().
491         (discard_variables) Get rid of redundant call to
492         proc_cancel_all_transformations().
493         (add_process_if_trns) Removed.
494         (process_if_trns_proc) Removed.
495         (process_if_trns_free) Removed.
496
497 Sat May  6 10:58:05 2006  Ben Pfaff  <blp@gnu.org>
498
499         Continue reforming procedure execution.  In this phase, add
500         `const' to the case passed to procedure()'s callback.
501
502         Updated all users of procedure() as well.
503         
504         * procedure.c: (struct write_case_data) Add "const" to ccase
505         parameter for case_func member.
506         (procedure) Add "const" to ccase parameter for proc_func
507         parameter.
508         (multipass_case_func) Make ccase parameter const.
509         (internal_procedure) Add "const" to ccase parameter for case_func
510         parameter.
511         (split_procedure_case_func) Make ccase parameter const.
512         (multipass_split_case_func) Make ccase parameter const.
513         
514 Sat May  6 10:30:33 2006  Ben Pfaff  <blp@gnu.org>
515
516         Continue reforming procedure execution.  In this phase, get rid of
517         the output code for SPLIT FILE groups in procedure.c, which really
518         shouldn't be doing any output.  Move it into the individual
519         procedures instead.  This also adds some flexibility.
520
521         Updated many users of procedure_with_splits() and
522         multipass_procedure_with_splits() to call
523         output_split_file_values() and to deal with increased use of
524         const.
525
526         * procedure.c: (struct split_aux_data) Add "const struct ccase *"
527         parameter to begin_func member.
528         (procedure_with_splits) Add "const struct ccase *" parameter to
529         begin_func parameter.  Make ccase parameter const in proc_func
530         parameter.
531         (split_procedure_case_func) Don't dump split file group.  Pass
532         case to begin_func.
533         (dump_splits) Moved to language/dictionary/split-file.c as
534         output_split_file_values().
535         (struct multipass_split_aux_data) Add "const struct ccase *"
536         parameter to split_func member.
537         (multipass_procedure_with_splits) Add "const struct ccase *"
538         parameter to split_func parameter.
539         (multipass_split_case_func) Save new SPLIT FILE case before
540         outputting case.
541         (multipass_split_output) Pass saved SPLIT FILE case to split_func.
542         
543 Fri May  5 22:48:50 2006  Ben Pfaff  <blp@gnu.org>
544
545         Continue reforming procedure execution.  Change
546         internal_procedure() so that it calls open_active_file() and
547         close_active_file(), which isolates most of the actual procedure
548         functionality.
549
550         * procedure.c: (struct write_case_data) Rename `proc_func' member
551         to `case_func' and update all references.
552         (procedure) Rewrite as one-line wrapper around
553         internal_procedure().
554         (struct multipass_aux_data) New.
555         (multipass_callback) Renamed multipass_case_func().  Use struct
556         multipass_aux_data as auxiliary data.
557         (multipass_end_func) New function.
558         (multipass_procedure) Rewrite as wrapper for internal_procedure()
559         that uses multipass_case_func, multipass_end_func.
560         (internal_procedure) Add `end_func' argument.  Move optimization
561         of trivial case in here.  Move call to open_active_file() and
562         close_active_file() in here.  Now assert that vfm_source is
563         non-null.
564         (procedure_with_splits_callback) Rename
565         split_procedure_case_func().
566         (split_procedure_end_func) New function.
567         (multipass_split_callback) Rename multipass_split_case_func.
568         (multipass_split_end_func) New function.
569         (discard_variables) No need to test for nonnull vfm_source.
570
571 Fri May  5 21:34:02 2006  Ben Pfaff  <blp@gnu.org>
572
573         Continue reforming procedure execution.  Get rid of unused member.
574
575         * procedure.c: (struct write_case_data) Remove `cases_analyzed'
576         member.
577         (write_case) Don't increment cases_analyzed.
578
579 Thu May  4 21:50:11 2006  Ben Pfaff  <blp@gnu.org>
580
581         Continue reforming procedure execution.  In this phase, move
582         procedure.c and procedure.h from src to src/data.  Update
583         makefiles and #includes accordingly.
584
585         * procedure.c: Moved here from src/.
586
587         * procedure.h: Moved here from src/.
588
589 Wed May  3 22:42:12 2006  Ben Pfaff  <blp@gnu.org>
590
591         Continue reforming procedure execution.  In this phase, get rid of
592         many global variables, consolidating procedure execution in
593         procedure.c.  Encapsulate transformations in new "struct
594         trns_chain".  Also, change implementation of N OF CASES, FILTER,
595         and PROCESS IF from special cases to transformations.
596          
597         * automake.mk: (src_data_libdata_a_SOURCES) Add transformations.c,
598         transformations.h.
599
600         * dictionary.c: (global variable default_dict) Move to
601         src/procedure.c.
602
603         * variable.h: (TRNS_*) Move to transformations.h.
604         (struct transformation) Move to transformations.c.
605
606 Thu May  4 13:47:06 WST 2006 John Darrington <john@darrington.wattle.id.au>
607
608         * sys-file-reader.c: Fixed invalid read problems.
609
610 Tue May  2 15:57:10 2006  Ben Pfaff  <blp@gnu.org>
611
612         * storage-stream.c: Add missing function comments.
613
614 Tue May  2 15:50:21 2006  Ben Pfaff  <blp@gnu.org>
615
616         Continue reforming procedure execution.  In this phase, add some
617         new, needed functionality to storage-stream.
618
619         * storage-stream.c: (storage_source_decapsulate) New function.
620
621 Tue May  2 15:43:36 2006  Ben Pfaff  <blp@gnu.org>
622
623         * variable.c (width_to_bytes): Declarations must precede
624         statements for C90 compliance.
625
626 Tue May  2 10:42:05 WST 2006 John Darrington <john@darrington.wattle.id.au>
627
628         * data-out.c, data-in.c, variable.c, variable.h: New functions 
629         copy_mangle and copy_demangle for reading/writing cases; emulates the 
630         way SPSS deals with strings > 255 bytes.
631
632         * sys-file-reader.c sys-file-writer.c: Added support for Record 7, 
633         subtype 14 needed for strings longer than 255 bytes.
634
635         * dictionary.c, format.def, value.c : Updated to use MAX_STRING 
636         instead of literal values. Also fixed some constness issues.
637
638         * format.h: Constness
639
640         * sfm-private.h: Renamed the case_size identifier, since I discovered 
641         that SPSS's respect for this variable is very nominal.
642
643 Mon May  1 15:45:42 2006  Ben Pfaff  <blp@gnu.org>
644
645         Change case limit type from int to size_t.
646
647         * dictionary.c: (struct dictionary) Change type of case_limit
648         member.
649         (dict_get_case_limit) Change return type.
650         (dict_set_case_limit) Change parameter type.
651
652 Wed Apr 26 20:01:19 2006  Ben Pfaff  <blp@gnu.org>
653
654         * variable.h: (struct variable) Rename `reinit' member as `leave'
655         and invert sense.  Fix up all references.
656
657 Wed Apr 26 19:39:28 2006  Ben Pfaff  <blp@gnu.org>
658
659         Continue reforming procedure execution.  In this phase, break
660         procedure.c into multiple files.
661         
662         * automake.mk: (src_data_libdata_a_SOURCES) Add all the new files.
663
664         * case-sink.c: New file.
665
666         * case-sink.h: New file.
667         
668         * case-source.c: New file.
669
670         * case-source.h: New file.
671         
672         * storage-stream.c: New file.
673
674         * storage-stream.h: New file.
675
676 Wed Apr 26 14:55:19 2006  Ben Pfaff  <blp@gnu.org>
677
678         * variable.h: (struct variable) Remove `init' member and all
679         references to it from other files.  It was initialized in several
680         places, but nothing really ever used it for anything worthwhile.
681         Thanks to Jason Stover for pointing out how confusing this
682         member is.
683
684 Sun Apr 23 22:04:45 2006  Ben Pfaff  <blp@gnu.org>
685
686         Continue reforming error message support.  In this phase, get rid
687         of message "titles" and put the message text in `struct error'.
688         Now `struct error' encapsulates a message more properly.
689         
690         * casefile.c: (io_error) Use err_msg() instead of err_vmsg().
691         Format message ourselves.
692
693         * data-in.c: (vdls_error) Ditto.
694
695         * por-file-reader.c: (error) Ditto.
696
697         * sys-file-reader.c: (corrupt_msg) Ditto.
698
699 Sun Apr 16 18:49:51 2006  Ben Pfaff  <blp@gnu.org>
700
701         GNU standards require "file name" instead of "filename" in
702         documentation.  It's nice for our code to follow the convention
703         too.
704         
705         * casefile.c: (struct casefile) Rename `filename' member to
706         `file_name'.  Updated all references.
707
708         * file-name.c: [!unix] (struct file_identity) Rename
709         normalized_filename member to normalized_file_name.  Updated all
710         references.
711
712 Sun Apr 16 18:35:33 2006  Ben Pfaff  <blp@gnu.org>
713
714         We don't really support anything but Unix-like environments well,
715         so we might as well de-obfuscate by writing directory and path
716         separators explicitly.
717
718         * file-name.h: (macro DIR_SEPARATOR) Removed.  Changed all usages
719         to just '/'.
720         (macro PATH_SEPARATOR) Removed.  Changed all usages to just ':'.
721         (macro DIR_SEPARATOR_STRING) Removed.  Changed all usages to just
722         "/".
723         (macro PATH_SEPARATOR_STRING) Removed.  Changed all usages to just
724         ":"
725
726 Sun Apr 16 18:28:35 2006  Ben Pfaff  <blp@gnu.org>
727
728         GNU standards require "file name" instead of "filename" in
729         documentation.  It's nice for our code to follow the convention
730         too.
731         
732         * filename.c: Rename to file-name.c.
733
734         * filename.h: Rename to file-name.h.  Update all inclusions.
735         Update header guards.
736
737         * automake.mk: Update file names.
738
739 Sun Apr 16 16:42:47 2006  Ben Pfaff  <blp@gnu.org>
740
741         * filename.c: (fn_dirname) Renamed fn_dir_name(), all references
742         updated.
743         (fn_basename) Removed (dead code).
744         (fn_absolute_p) Renamed fn_is_absolute(), all references updated.
745         (fn_special_p) Renamed fn_is_special(), all references updated.
746         (fn_exists_p) Renamed fn_exists(), all references updated.
747
748 Sun Apr 16 16:33:58 2006  Ben Pfaff  <blp@gnu.org>
749
750         * filename.c: (fn_tilde_expand) Rewrite for cleaner code.  
751         Also, now it only tilde-expands file names, not paths.
752         (fn_search_path) Tilde-expand one directory at a time.
753
754 Sun Apr 16 16:28:06 2006  Ben Pfaff  <blp@gnu.org>
755
756         * filename.c: (fn_search_path) rewrite for cleaner code.  Also,
757         get rid of non-Unixlike version of the code, which has probably
758         never been tested.
759         (fn_prepend_dir) Removed (dead code).
760
761         * filename.h: (macro DIR_SEPARATOR_STRING) New.
762         (macro PATH_SEPARATOR_STRING) New.
763 Sun Apr 16 16:05:28 2006  Ben Pfaff  <blp@gnu.org>
764
765         Continue reforming error message support.  In this phase, we get
766         rid of VM() and the other msg() support for "verbosity", replacing
767         it by a new function verbose_msg().
768
769         * filename.c: (fn_search_path) Use verbose_msg() instead of
770         msg(VM(), ...).  
771
772 Sat Apr 15 19:53:19 2006  Ben Pfaff  <blp@gnu.org>
773
774         * sfm-private.h: Get rid of #defines after #error, which makes no
775         sense.
776
777 Sat Apr 15 19:48:57 2006  Ben Pfaff  <blp@gnu.org>
778
779         Get rid of our own int32 type in favor of the standard int32_t
780         type.
781         
782         * sfm-private.h: (int32 macro) Don't define this anymore.  Do
783         include <stdint.h>.
784
785         * sys-file-reader.c: Use int32_t instead of int32 throughout.
786         
787         * sys-file-writer.c: Use int32_t instead of int32 throughout.
788
789 Sat Apr 15 19:36:47 2006  Ben Pfaff  <blp@gnu.org>
790
791         Remove ill-considered file routines that are no longer used.
792         
793         * filename.c: (fn_open_ext) Removed.
794         (fn_close_ext) Removed.
795
796         * filename.h: (struct file_ext) Removed.
797
798 Mon Apr  3 13:22:39 2006  Ben Pfaff  <blp@gnu.org>
799
800         * variable.c (var_is_valid_name): Move declarations before code
801         for C90 compliance.
802
803 Tue Apr  4 15:28:40 WST 2006 John Darrington <john@darrington.wattle.id.au>
804
805         * filename.ch (fn_interp_vars): Fixed small buglet.
806
807 Tue Mar 28 13:47:16 WST 2006 John Darrington <john@darrington.wattle.id.au>
808         
809         * filename.[ch] (fn_interp_vars): Changed the signature and semantics
810         so as to modify the string inline.   Thus makeing it easier to
811         destroy the results when no longer needed.
812         
813 2006-03-25  Jason Stover  <jhs@math.gcsu.edu>
814
815         * category.c (cat_stored_values_destroy): Fixed memory leak.
816
817 Fri Mar 24 18:15:41 2006  Ben Pfaff  <blp@gnu.org>
818
819         Add some missing frees.  Thanks to John Darrington for reporting
820         these.
821
822         * any-writer.c (any_writer_close): Free writer.
823
824         * any-reader.c (any_reader_close): Free reader.
825
826 Mon Mar 20 16:33:53 2006  Ben Pfaff  <blp@gnu.org>
827
828         * por-file-reader.c: (error) Mark as NO_RETURN.
829
830 Sat Mar 11 15:06:07 WST 2006 John Darrington <john@darrington.wattle.id.au>
831
832         * settings.c: Changed default value of scompress to true.
833
834 Sat Mar  4 13:22:51 2006  Ben Pfaff  <blp@gnu.org>
835
836         * sfm-private.h: Include variable.h, to get SHORT_NAME_LEN.
837
838         * value.h: Remove check on MAX_SHORT_STRING, which I don't think
839         really applies.
840
841         * variable.h: Move definition of SHORT_NAME_LEN, LONG_NAME_LEN
842         here from pref.h.orig.
843
844 Sat Mar  4 12:50:48 WST 2006 John Darrington <john@darrington.wattle.id.au>
845
846         * sys-file-reader.c: Fixed bug reading compressed files.
847
848 Thu Mar  2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
849
850         * Numerous renames.  See src/ChangeLog for details.
851         
852         * Moved files from src directory