5297f3b90313728a5d77f1463382e770ae50ab09
[pspp-builds.git] / src / data / ChangeLog
1 Thu Jul  6 19:09:53 2006  Ben Pfaff  <blp@gnu.org>
2
3         Fix link error noted by Jason Stover.
4         
5         * storage-stream.c: Include <assert.h>.
6
7 Tue Jul  4 08:47:35 2006  Ben Pfaff  <blp@gnu.org>
8
9         Fix bug #15766 (/KEEP subcommand on SAVE doesn't fully support
10         ALL) and additional underlying system file issues.
11
12         Thanks to John Darrington for review.
13
14         First problem: var_hash points to variables not owned by the
15         sys-file-reader, which the caller may free or modify.  Use an
16         array of sfm_vars instead, as done earlier (e.g. CVS version
17         1.12).
18         
19         * sys-file-reader.c (struct sfm_reader): Remove var_hash, svars
20         members and remove all code that references it.  Add vars, var_cnt
21         members.  Remove fix_specials member, which was unused.
22         (struct sfm_var) Remove name member, which was unused.
23         (sfm_close_reader) Free vars member instead of var_hash.
24         (compare_var_shortnames) Removed.
25         (hash_var_shortname) Removed.
26         (sfm_open_reader) Fill out vars array.
27         (compare_var_index) Removed.
28         (sfm_read_case) Use vars instead of var_hash.
29         
30         Second problem: we're confused about when we actually have very
31         long strings, causing us to choose incorrectly between slow path
32         and fast path in sfm_read_case.
33
34         * sys-file-reader.c: (sfm_open_reader) Only mark has_vls if we
35         have very long strings, not when we have long variable names,
36         which is an unrelated feature.
37
38 Tue Jun 27 12:06:49 2006  Ben Pfaff  <blp@gnu.org>
39
40         * variable.h: Move var_set and variable parsing declarations to
41         new header, src/language/lexer/variable-parser.h.  Modified lots
42         of files to include the new header.
43
44 Sun Jun 25 22:39:32 2006  Ben Pfaff  <blp@gnu.org>
45
46         * value-labels.c (value_to_string): When there's no value label,
47         format the variable according to its print format, instead of
48         always effectively using A or F format.
49
50 Mon Jun 19 18:05:42 WST 2006 John Darrington <john@darrington.wattle.id.au>
51
52         * casefile.c (casefile_get_random_reader): Nasty hack to get around 
53         the mode assertion.
54
55         * format.c: Removed tortological assertion.
56
57 Fri Jun  9 12:20:09 2006  Ben Pfaff  <blp@gnu.org>
58
59         Reform string library.
60         
61         * file-name.c (fn_interp_vars): Change interface to take a
62         substring as input.  Updated all users.
63         
64 Fri Jun  9 12:11:24 2006  Ben Pfaff  <blp@gnu.org>
65
66         * format.c (measure_is_valid): Really return false when m >=
67         n_MEASURES.
68
69 Tue Jun  6 18:46:26 2006  Ben Pfaff  <blp@gnu.org>
70
71         Implement random access to casefiles, for use in GUI.
72         
73         * casefile.c: (struct casereader) Add `random', `file_ofs',
74         `buffer_ofs' members.
75         (casefile_get_random_reader) New function.
76         (read_open_file) Break part into new function
77         seek_and_fill_buffer().
78         (fill_buffer) Update buffer_ofs, file_ofs.
79         (casereader_seek) New function.
80
81 Tue May 30 19:52:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
82
83         * settings.c: Added call to i18n{done, init}.
84
85 Tue May  9 21:09:17 2006  Ben Pfaff  <blp@gnu.org>
86
87         * procedure.h: Add WARN_UNUSED_RESULT to procedure function
88         prototypes.
89
90 Tue May  9 21:08:05 2006  Ben Pfaff  <blp@gnu.org>
91
92         * casefile.c: Convert many uses of `int' to `bool'.
93
94 Sat May  6 22:49:43 2006  Ben Pfaff  <blp@gnu.org>
95
96         * transformations.c (trns_chain_destroy): Destroy chain's trns
97         member, to fix memory leak.
98
99 Sat May  6 22:48:30 2006  Ben Pfaff  <blp@gnu.org>
100
101         * storage-stream.c (storage_source_decapsulate): Destroy case
102         source to fix memory leak.
103
104 Sat May  6 22:46:47 2006  Ben Pfaff  <blp@gnu.org>
105
106         * scratch-reader.c (scratch_reader_read_case): Copy into existing
107         case passed as argument instead of initializing the argument as a
108         case.  Fixes memory leak that showed up in
109         tests/command/aggregate.sh with scratch files.
110
111 Sat May  6 22:45:55 2006  Ben Pfaff  <blp@gnu.org>
112
113         * procedure.c (proc_done): Destroy default_dict, to fix memory
114         leak.
115
116 Sat May  6 22:44:44 2006  Ben Pfaff  <blp@gnu.org>
117
118         Simplify procedure_with_splits().
119         
120         * procedure.c (struct split_aux_data): Removed case_count member.
121         (procedure_with_splits) Don't initialize case_count.
122         (split_procedure_case_func) Check whether prev_case is null
123         instead of case_count.
124         (split_procedure_end_func) Ditto.
125
126 Sat May  6 22:42:23 2006  Ben Pfaff  <blp@gnu.org>
127
128         * case.c (case_move): Do nothing if dst and src are the same
129         object.
130         (case_try_create) Merge two similar cases.
131         (case_copy) Unshare only if data must be actually copied.
132
133 Sun May  7 10:04:06 WST 2006 John Darrington <john@darrington.wattle.id.au>
134
135         * data-in.c data-out.c dictionary.c sys-file-reader.c
136         sys-file-writer.c variable.c variable.h:  Reworked very long string
137         support for better encapsulation.
138
139 Sat May  6 19:02:00 2006  Ben Pfaff  <blp@gnu.org>
140
141         * value-labels.c (val_labs_can_set_width): New function.
142         (val_labs_set_width) Clear labels if increasing width to long
143         string.
144         (val_labs_destroy) Remove unneeded test for null.
145         
146 Sat May  6 16:14:08 2006  Ben Pfaff  <blp@gnu.org>
147
148         * value-labels.h: Remove unneeded dependency on variable.h.
149
150 Sat May  6 15:58:36 2006  Ben Pfaff  <blp@gnu.org>
151
152         Get rid of `char *c' member in union value, for cleanliness.
153         
154         * value.h: (union value) Remove `c' member.
155
156 Sat May  6 15:36:59 2006  Ben Pfaff  <blp@gnu.org>
157
158         Make dictionary compacting functions a little more general.
159         
160         * sys-file-writer.c (sfm_open_writer): Use
161         dict_compacting_would_change().
162         (does_dict_need_translation) Removed.
163
164 Sat May  6 15:35:42 2006  Ben Pfaff  <blp@gnu.org>
165
166         Make dictionary compacting functions a little more general.
167         
168         * dictionary.c (dict_needs_compaction): Rename
169         dict_compacting_would_shrink().  Update all callers.
170         (dict_compacting_would_change) New function.
171         
172 Sat May  6 14:25:49 2006  Ben Pfaff  <blp@gnu.org>
173
174         * sys-file-writer.c: (does_dict_need_translation) Fix bug:
175         inverted return value (!).
176
177 Sat May  6 13:37:52 2006  Ben Pfaff  <blp@gnu.org>
178
179         Continue reforming procedure execution.  
180
181         * procedure.c: Search and replace "vfm" by "proc".  Notably:
182         (static var vfm_source) Rename proc_source.  Update all
183         references.
184         (static var vfm_sink) Rename proc_sink.  Update all references.
185         
186 Sat May  6 12:38:55 2006  Ben Pfaff  <blp@gnu.org>
187
188         Continue reforming procedure execution.  In this phase, remove
189         PROCESS IF, which was deprecated anyway and can be easily
190         simulated with TEMPORARY followed by SELECT IF.
191
192         * procedure.c: (open_active_file) Don't call
193         add_process_if_trns().
194         (discard_variables) Get rid of redundant call to
195         proc_cancel_all_transformations().
196         (add_process_if_trns) Removed.
197         (process_if_trns_proc) Removed.
198         (process_if_trns_free) Removed.
199
200 Sat May  6 10:58:05 2006  Ben Pfaff  <blp@gnu.org>
201
202         Continue reforming procedure execution.  In this phase, add
203         `const' to the case passed to procedure()'s callback.
204
205         Updated all users of procedure() as well.
206         
207         * procedure.c: (struct write_case_data) Add "const" to ccase
208         parameter for case_func member.
209         (procedure) Add "const" to ccase parameter for proc_func
210         parameter.
211         (multipass_case_func) Make ccase parameter const.
212         (internal_procedure) Add "const" to ccase parameter for case_func
213         parameter.
214         (split_procedure_case_func) Make ccase parameter const.
215         (multipass_split_case_func) Make ccase parameter const.
216         
217 Sat May  6 10:30:33 2006  Ben Pfaff  <blp@gnu.org>
218
219         Continue reforming procedure execution.  In this phase, get rid of
220         the output code for SPLIT FILE groups in procedure.c, which really
221         shouldn't be doing any output.  Move it into the individual
222         procedures instead.  This also adds some flexibility.
223
224         Updated many users of procedure_with_splits() and
225         multipass_procedure_with_splits() to call
226         output_split_file_values() and to deal with increased use of
227         const.
228
229         * procedure.c: (struct split_aux_data) Add "const struct ccase *"
230         parameter to begin_func member.
231         (procedure_with_splits) Add "const struct ccase *" parameter to
232         begin_func parameter.  Make ccase parameter const in proc_func
233         parameter.
234         (split_procedure_case_func) Don't dump split file group.  Pass
235         case to begin_func.
236         (dump_splits) Moved to language/dictionary/split-file.c as
237         output_split_file_values().
238         (struct multipass_split_aux_data) Add "const struct ccase *"
239         parameter to split_func member.
240         (multipass_procedure_with_splits) Add "const struct ccase *"
241         parameter to split_func parameter.
242         (multipass_split_case_func) Save new SPLIT FILE case before
243         outputting case.
244         (multipass_split_output) Pass saved SPLIT FILE case to split_func.
245         
246 Fri May  5 22:48:50 2006  Ben Pfaff  <blp@gnu.org>
247
248         Continue reforming procedure execution.  Change
249         internal_procedure() so that it calls open_active_file() and
250         close_active_file(), which isolates most of the actual procedure
251         functionality.
252
253         * procedure.c: (struct write_case_data) Rename `proc_func' member
254         to `case_func' and update all references.
255         (procedure) Rewrite as one-line wrapper around
256         internal_procedure().
257         (struct multipass_aux_data) New.
258         (multipass_callback) Renamed multipass_case_func().  Use struct
259         multipass_aux_data as auxiliary data.
260         (multipass_end_func) New function.
261         (multipass_procedure) Rewrite as wrapper for internal_procedure()
262         that uses multipass_case_func, multipass_end_func.
263         (internal_procedure) Add `end_func' argument.  Move optimization
264         of trivial case in here.  Move call to open_active_file() and
265         close_active_file() in here.  Now assert that vfm_source is
266         non-null.
267         (procedure_with_splits_callback) Rename
268         split_procedure_case_func().
269         (split_procedure_end_func) New function.
270         (multipass_split_callback) Rename multipass_split_case_func.
271         (multipass_split_end_func) New function.
272         (discard_variables) No need to test for nonnull vfm_source.
273
274 Fri May  5 21:34:02 2006  Ben Pfaff  <blp@gnu.org>
275
276         Continue reforming procedure execution.  Get rid of unused member.
277
278         * procedure.c: (struct write_case_data) Remove `cases_analyzed'
279         member.
280         (write_case) Don't increment cases_analyzed.
281
282 Thu May  4 21:50:11 2006  Ben Pfaff  <blp@gnu.org>
283
284         Continue reforming procedure execution.  In this phase, move
285         procedure.c and procedure.h from src to src/data.  Update
286         makefiles and #includes accordingly.
287
288         * procedure.c: Moved here from src/.
289
290         * procedure.h: Moved here from src/.
291
292 Wed May  3 22:42:12 2006  Ben Pfaff  <blp@gnu.org>
293
294         Continue reforming procedure execution.  In this phase, get rid of
295         many global variables, consolidating procedure execution in
296         procedure.c.  Encapsulate transformations in new "struct
297         trns_chain".  Also, change implementation of N OF CASES, FILTER,
298         and PROCESS IF from special cases to transformations.
299          
300         * automake.mk: (src_data_libdata_a_SOURCES) Add transformations.c,
301         transformations.h.
302
303         * dictionary.c: (global variable default_dict) Move to
304         src/procedure.c.
305
306         * variable.h: (TRNS_*) Move to transformations.h.
307         (struct transformation) Move to transformations.c.
308
309 Thu May  4 13:47:06 WST 2006 John Darrington <john@darrington.wattle.id.au>
310
311         * sys-file-reader.c: Fixed invalid read problems.
312
313 Tue May  2 15:57:10 2006  Ben Pfaff  <blp@gnu.org>
314
315         * storage-stream.c: Add missing function comments.
316
317 Tue May  2 15:50:21 2006  Ben Pfaff  <blp@gnu.org>
318
319         Continue reforming procedure execution.  In this phase, add some
320         new, needed functionality to storage-stream.
321
322         * storage-stream.c: (storage_source_decapsulate) New function.
323
324 Tue May  2 15:43:36 2006  Ben Pfaff  <blp@gnu.org>
325
326         * variable.c (width_to_bytes): Declarations must precede
327         statements for C90 compliance.
328
329 Tue May  2 10:42:05 WST 2006 John Darrington <john@darrington.wattle.id.au>
330
331         * data-out.c, data-in.c, variable.c, variable.h: New functions 
332         copy_mangle and copy_demangle for reading/writing cases; emulates the 
333         way SPSS deals with strings > 255 bytes.
334
335         * sys-file-reader.c sys-file-writer.c: Added support for Record 7, 
336         subtype 14 needed for strings longer than 255 bytes.
337
338         * dictionary.c, format.def, value.c : Updated to use MAX_STRING 
339         instead of literal values. Also fixed some constness issues.
340
341         * format.h: Constness
342
343         * sfm-private.h: Renamed the case_size identifier, since I discovered 
344         that SPSS's respect for this variable is very nominal.
345
346 Mon May  1 15:45:42 2006  Ben Pfaff  <blp@gnu.org>
347
348         Change case limit type from int to size_t.
349
350         * dictionary.c: (struct dictionary) Change type of case_limit
351         member.
352         (dict_get_case_limit) Change return type.
353         (dict_set_case_limit) Change parameter type.
354
355 Wed Apr 26 20:01:19 2006  Ben Pfaff  <blp@gnu.org>
356
357         * variable.h: (struct variable) Rename `reinit' member as `leave'
358         and invert sense.  Fix up all references.
359
360 Wed Apr 26 19:39:28 2006  Ben Pfaff  <blp@gnu.org>
361
362         Continue reforming procedure execution.  In this phase, break
363         procedure.c into multiple files.
364         
365         * automake.mk: (src_data_libdata_a_SOURCES) Add all the new files.
366
367         * case-sink.c: New file.
368
369         * case-sink.h: New file.
370         
371         * case-source.c: New file.
372
373         * case-source.h: New file.
374         
375         * storage-stream.c: New file.
376
377         * storage-stream.h: New file.
378
379 Wed Apr 26 14:55:19 2006  Ben Pfaff  <blp@gnu.org>
380
381         * variable.h: (struct variable) Remove `init' member and all
382         references to it from other files.  It was initialized in several
383         places, but nothing really ever used it for anything worthwhile.
384         Thanks to Jason Stover for pointing out how confusing this
385         member is.
386
387 Sun Apr 23 22:04:45 2006  Ben Pfaff  <blp@gnu.org>
388
389         Continue reforming error message support.  In this phase, get rid
390         of message "titles" and put the message text in `struct error'.
391         Now `struct error' encapsulates a message more properly.
392         
393         * casefile.c: (io_error) Use err_msg() instead of err_vmsg().
394         Format message ourselves.
395
396         * data-in.c: (vdls_error) Ditto.
397
398         * por-file-reader.c: (error) Ditto.
399
400         * sys-file-reader.c: (corrupt_msg) Ditto.
401
402 Sun Apr 16 18:49:51 2006  Ben Pfaff  <blp@gnu.org>
403
404         GNU standards require "file name" instead of "filename" in
405         documentation.  It's nice for our code to follow the convention
406         too.
407         
408         * casefile.c: (struct casefile) Rename `filename' member to
409         `file_name'.  Updated all references.
410
411         * file-name.c: [!unix] (struct file_identity) Rename
412         normalized_filename member to normalized_file_name.  Updated all
413         references.
414
415 Sun Apr 16 18:35:33 2006  Ben Pfaff  <blp@gnu.org>
416
417         We don't really support anything but Unix-like environments well,
418         so we might as well de-obfuscate by writing directory and path
419         separators explicitly.
420
421         * file-name.h: (macro DIR_SEPARATOR) Removed.  Changed all usages
422         to just '/'.
423         (macro PATH_SEPARATOR) Removed.  Changed all usages to just ':'.
424         (macro DIR_SEPARATOR_STRING) Removed.  Changed all usages to just
425         "/".
426         (macro PATH_SEPARATOR_STRING) Removed.  Changed all usages to just
427         ":"
428
429 Sun Apr 16 18:28:35 2006  Ben Pfaff  <blp@gnu.org>
430
431         GNU standards require "file name" instead of "filename" in
432         documentation.  It's nice for our code to follow the convention
433         too.
434         
435         * filename.c: Rename to file-name.c.
436
437         * filename.h: Rename to file-name.h.  Update all inclusions.
438         Update header guards.
439
440         * automake.mk: Update file names.
441
442 Sun Apr 16 16:42:47 2006  Ben Pfaff  <blp@gnu.org>
443
444         * filename.c: (fn_dirname) Renamed fn_dir_name(), all references
445         updated.
446         (fn_basename) Removed (dead code).
447         (fn_absolute_p) Renamed fn_is_absolute(), all references updated.
448         (fn_special_p) Renamed fn_is_special(), all references updated.
449         (fn_exists_p) Renamed fn_exists(), all references updated.
450
451 Sun Apr 16 16:33:58 2006  Ben Pfaff  <blp@gnu.org>
452
453         * filename.c: (fn_tilde_expand) Rewrite for cleaner code.  
454         Also, now it only tilde-expands file names, not paths.
455         (fn_search_path) Tilde-expand one directory at a time.
456
457 Sun Apr 16 16:28:06 2006  Ben Pfaff  <blp@gnu.org>
458
459         * filename.c: (fn_search_path) rewrite for cleaner code.  Also,
460         get rid of non-Unixlike version of the code, which has probably
461         never been tested.
462         (fn_prepend_dir) Removed (dead code).
463
464         * filename.h: (macro DIR_SEPARATOR_STRING) New.
465         (macro PATH_SEPARATOR_STRING) New.
466 Sun Apr 16 16:05:28 2006  Ben Pfaff  <blp@gnu.org>
467
468         Continue reforming error message support.  In this phase, we get
469         rid of VM() and the other msg() support for "verbosity", replacing
470         it by a new function verbose_msg().
471
472         * filename.c: (fn_search_path) Use verbose_msg() instead of
473         msg(VM(), ...).  
474
475 Sat Apr 15 19:53:19 2006  Ben Pfaff  <blp@gnu.org>
476
477         * sfm-private.h: Get rid of #defines after #error, which makes no
478         sense.
479
480 Sat Apr 15 19:48:57 2006  Ben Pfaff  <blp@gnu.org>
481
482         Get rid of our own int32 type in favor of the standard int32_t
483         type.
484         
485         * sfm-private.h: (int32 macro) Don't define this anymore.  Do
486         include <stdint.h>.
487
488         * sys-file-reader.c: Use int32_t instead of int32 throughout.
489         
490         * sys-file-writer.c: Use int32_t instead of int32 throughout.
491
492 Sat Apr 15 19:36:47 2006  Ben Pfaff  <blp@gnu.org>
493
494         Remove ill-considered file routines that are no longer used.
495         
496         * filename.c: (fn_open_ext) Removed.
497         (fn_close_ext) Removed.
498
499         * filename.h: (struct file_ext) Removed.
500
501 Mon Apr  3 13:22:39 2006  Ben Pfaff  <blp@gnu.org>
502
503         * variable.c (var_is_valid_name): Move declarations before code
504         for C90 compliance.
505
506 Tue Apr  4 15:28:40 WST 2006 John Darrington <john@darrington.wattle.id.au>
507
508         * filename.ch (fn_interp_vars): Fixed small buglet.
509
510 Tue Mar 28 13:47:16 WST 2006 John Darrington <john@darrington.wattle.id.au>
511         
512         * filename.[ch] (fn_interp_vars): Changed the signature and semantics
513         so as to modify the string inline.   Thus makeing it easier to
514         destroy the results when no longer needed.
515         
516 2006-03-25  Jason Stover  <jhs@math.gcsu.edu>
517
518         * category.c (cat_stored_values_destroy): Fixed memory leak.
519
520 Fri Mar 24 18:15:41 2006  Ben Pfaff  <blp@gnu.org>
521
522         Add some missing frees.  Thanks to John Darrington for reporting
523         these.
524
525         * any-writer.c (any_writer_close): Free writer.
526
527         * any-reader.c (any_reader_close): Free reader.
528
529 Mon Mar 20 16:33:53 2006  Ben Pfaff  <blp@gnu.org>
530
531         * por-file-reader.c: (error) Mark as NO_RETURN.
532
533 Sat Mar 11 15:06:07 WST 2006 John Darrington <john@darrington.wattle.id.au>
534
535         * settings.c: Changed default value of scompress to true.
536
537 Sat Mar  4 13:22:51 2006  Ben Pfaff  <blp@gnu.org>
538
539         * sfm-private.h: Include variable.h, to get SHORT_NAME_LEN.
540
541         * value.h: Remove check on MAX_SHORT_STRING, which I don't think
542         really applies.
543
544         * variable.h: Move definition of SHORT_NAME_LEN, LONG_NAME_LEN
545         here from pref.h.orig.
546
547 Sat Mar  4 12:50:48 WST 2006 John Darrington <john@darrington.wattle.id.au>
548
549         * sys-file-reader.c: Fixed bug reading compressed files.
550
551 Thu Mar  2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
552
553         * Numerous renames.  See src/ChangeLog for details.
554         
555         * Moved files from src directory