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