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