1 Thu Jul 6 19:09:53 2006 Ben Pfaff <blp@gnu.org>
3 Fix link error noted by Jason Stover.
5 * storage-stream.c: Include <assert.h>.
7 Tue Jul 4 08:47:35 2006 Ben Pfaff <blp@gnu.org>
9 Fix bug #15766 (/KEEP subcommand on SAVE doesn't fully support
10 ALL) and additional underlying system file issues.
12 Thanks to John Darrington for review.
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
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.
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.
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.
38 Tue Jun 27 12:06:49 2006 Ben Pfaff <blp@gnu.org>
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.
44 Sun Jun 25 22:39:32 2006 Ben Pfaff <blp@gnu.org>
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.
50 Mon Jun 19 18:05:42 WST 2006 John Darrington <john@darrington.wattle.id.au>
52 * casefile.c (casefile_get_random_reader): Nasty hack to get around
55 * format.c: Removed tortological assertion.
57 Fri Jun 9 12:20:09 2006 Ben Pfaff <blp@gnu.org>
59 Reform string library.
61 * file-name.c (fn_interp_vars): Change interface to take a
62 substring as input. Updated all users.
64 Fri Jun 9 12:11:24 2006 Ben Pfaff <blp@gnu.org>
66 * format.c (measure_is_valid): Really return false when m >=
69 Tue Jun 6 18:46:26 2006 Ben Pfaff <blp@gnu.org>
71 Implement random access to casefiles, for use in GUI.
73 * casefile.c: (struct casereader) Add `random', `file_ofs',
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.
81 Tue May 30 19:52:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
83 * settings.c: Added call to i18n{done, init}.
85 Tue May 9 21:09:17 2006 Ben Pfaff <blp@gnu.org>
87 * procedure.h: Add WARN_UNUSED_RESULT to procedure function
90 Tue May 9 21:08:05 2006 Ben Pfaff <blp@gnu.org>
92 * casefile.c: Convert many uses of `int' to `bool'.
94 Sat May 6 22:49:43 2006 Ben Pfaff <blp@gnu.org>
96 * transformations.c (trns_chain_destroy): Destroy chain's trns
97 member, to fix memory leak.
99 Sat May 6 22:48:30 2006 Ben Pfaff <blp@gnu.org>
101 * storage-stream.c (storage_source_decapsulate): Destroy case
102 source to fix memory leak.
104 Sat May 6 22:46:47 2006 Ben Pfaff <blp@gnu.org>
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.
111 Sat May 6 22:45:55 2006 Ben Pfaff <blp@gnu.org>
113 * procedure.c (proc_done): Destroy default_dict, to fix memory
116 Sat May 6 22:44:44 2006 Ben Pfaff <blp@gnu.org>
118 Simplify procedure_with_splits().
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.
126 Sat May 6 22:42:23 2006 Ben Pfaff <blp@gnu.org>
128 * case.c (case_move): Do nothing if dst and src are the same
130 (case_try_create) Merge two similar cases.
131 (case_copy) Unshare only if data must be actually copied.
133 Sun May 7 10:04:06 WST 2006 John Darrington <john@darrington.wattle.id.au>
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.
139 Sat May 6 19:02:00 2006 Ben Pfaff <blp@gnu.org>
141 * value-labels.c (val_labs_can_set_width): New function.
142 (val_labs_set_width) Clear labels if increasing width to long
144 (val_labs_destroy) Remove unneeded test for null.
146 Sat May 6 16:14:08 2006 Ben Pfaff <blp@gnu.org>
148 * value-labels.h: Remove unneeded dependency on variable.h.
150 Sat May 6 15:58:36 2006 Ben Pfaff <blp@gnu.org>
152 Get rid of `char *c' member in union value, for cleanliness.
154 * value.h: (union value) Remove `c' member.
156 Sat May 6 15:36:59 2006 Ben Pfaff <blp@gnu.org>
158 Make dictionary compacting functions a little more general.
160 * sys-file-writer.c (sfm_open_writer): Use
161 dict_compacting_would_change().
162 (does_dict_need_translation) Removed.
164 Sat May 6 15:35:42 2006 Ben Pfaff <blp@gnu.org>
166 Make dictionary compacting functions a little more general.
168 * dictionary.c (dict_needs_compaction): Rename
169 dict_compacting_would_shrink(). Update all callers.
170 (dict_compacting_would_change) New function.
172 Sat May 6 14:25:49 2006 Ben Pfaff <blp@gnu.org>
174 * sys-file-writer.c: (does_dict_need_translation) Fix bug:
175 inverted return value (!).
177 Sat May 6 13:37:52 2006 Ben Pfaff <blp@gnu.org>
179 Continue reforming procedure execution.
181 * procedure.c: Search and replace "vfm" by "proc". Notably:
182 (static var vfm_source) Rename proc_source. Update all
184 (static var vfm_sink) Rename proc_sink. Update all references.
186 Sat May 6 12:38:55 2006 Ben Pfaff <blp@gnu.org>
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.
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.
200 Sat May 6 10:58:05 2006 Ben Pfaff <blp@gnu.org>
202 Continue reforming procedure execution. In this phase, add
203 `const' to the case passed to procedure()'s callback.
205 Updated all users of procedure() as well.
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
211 (multipass_case_func) Make ccase parameter const.
212 (internal_procedure) Add "const" to ccase parameter for case_func
214 (split_procedure_case_func) Make ccase parameter const.
215 (multipass_split_case_func) Make ccase parameter const.
217 Sat May 6 10:30:33 2006 Ben Pfaff <blp@gnu.org>
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.
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
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
234 (split_procedure_case_func) Don't dump split file group. Pass
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
244 (multipass_split_output) Pass saved SPLIT FILE case to split_func.
246 Fri May 5 22:48:50 2006 Ben Pfaff <blp@gnu.org>
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
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
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.
274 Fri May 5 21:34:02 2006 Ben Pfaff <blp@gnu.org>
276 Continue reforming procedure execution. Get rid of unused member.
278 * procedure.c: (struct write_case_data) Remove `cases_analyzed'
280 (write_case) Don't increment cases_analyzed.
282 Thu May 4 21:50:11 2006 Ben Pfaff <blp@gnu.org>
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.
288 * procedure.c: Moved here from src/.
290 * procedure.h: Moved here from src/.
292 Wed May 3 22:42:12 2006 Ben Pfaff <blp@gnu.org>
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.
300 * automake.mk: (src_data_libdata_a_SOURCES) Add transformations.c,
303 * dictionary.c: (global variable default_dict) Move to
306 * variable.h: (TRNS_*) Move to transformations.h.
307 (struct transformation) Move to transformations.c.
309 Thu May 4 13:47:06 WST 2006 John Darrington <john@darrington.wattle.id.au>
311 * sys-file-reader.c: Fixed invalid read problems.
313 Tue May 2 15:57:10 2006 Ben Pfaff <blp@gnu.org>
315 * storage-stream.c: Add missing function comments.
317 Tue May 2 15:50:21 2006 Ben Pfaff <blp@gnu.org>
319 Continue reforming procedure execution. In this phase, add some
320 new, needed functionality to storage-stream.
322 * storage-stream.c: (storage_source_decapsulate) New function.
324 Tue May 2 15:43:36 2006 Ben Pfaff <blp@gnu.org>
326 * variable.c (width_to_bytes): Declarations must precede
327 statements for C90 compliance.
329 Tue May 2 10:42:05 WST 2006 John Darrington <john@darrington.wattle.id.au>
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.
335 * sys-file-reader.c sys-file-writer.c: Added support for Record 7,
336 subtype 14 needed for strings longer than 255 bytes.
338 * dictionary.c, format.def, value.c : Updated to use MAX_STRING
339 instead of literal values. Also fixed some constness issues.
341 * format.h: Constness
343 * sfm-private.h: Renamed the case_size identifier, since I discovered
344 that SPSS's respect for this variable is very nominal.
346 Mon May 1 15:45:42 2006 Ben Pfaff <blp@gnu.org>
348 Change case limit type from int to size_t.
350 * dictionary.c: (struct dictionary) Change type of case_limit
352 (dict_get_case_limit) Change return type.
353 (dict_set_case_limit) Change parameter type.
355 Wed Apr 26 20:01:19 2006 Ben Pfaff <blp@gnu.org>
357 * variable.h: (struct variable) Rename `reinit' member as `leave'
358 and invert sense. Fix up all references.
360 Wed Apr 26 19:39:28 2006 Ben Pfaff <blp@gnu.org>
362 Continue reforming procedure execution. In this phase, break
363 procedure.c into multiple files.
365 * automake.mk: (src_data_libdata_a_SOURCES) Add all the new files.
367 * case-sink.c: New file.
369 * case-sink.h: New file.
371 * case-source.c: New file.
373 * case-source.h: New file.
375 * storage-stream.c: New file.
377 * storage-stream.h: New file.
379 Wed Apr 26 14:55:19 2006 Ben Pfaff <blp@gnu.org>
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
387 Sun Apr 23 22:04:45 2006 Ben Pfaff <blp@gnu.org>
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.
393 * casefile.c: (io_error) Use err_msg() instead of err_vmsg().
394 Format message ourselves.
396 * data-in.c: (vdls_error) Ditto.
398 * por-file-reader.c: (error) Ditto.
400 * sys-file-reader.c: (corrupt_msg) Ditto.
402 Sun Apr 16 18:49:51 2006 Ben Pfaff <blp@gnu.org>
404 GNU standards require "file name" instead of "filename" in
405 documentation. It's nice for our code to follow the convention
408 * casefile.c: (struct casefile) Rename `filename' member to
409 `file_name'. Updated all references.
411 * file-name.c: [!unix] (struct file_identity) Rename
412 normalized_filename member to normalized_file_name. Updated all
415 Sun Apr 16 18:35:33 2006 Ben Pfaff <blp@gnu.org>
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.
421 * file-name.h: (macro DIR_SEPARATOR) Removed. Changed all usages
423 (macro PATH_SEPARATOR) Removed. Changed all usages to just ':'.
424 (macro DIR_SEPARATOR_STRING) Removed. Changed all usages to just
426 (macro PATH_SEPARATOR_STRING) Removed. Changed all usages to just
429 Sun Apr 16 18:28:35 2006 Ben Pfaff <blp@gnu.org>
431 GNU standards require "file name" instead of "filename" in
432 documentation. It's nice for our code to follow the convention
435 * filename.c: Rename to file-name.c.
437 * filename.h: Rename to file-name.h. Update all inclusions.
438 Update header guards.
440 * automake.mk: Update file names.
442 Sun Apr 16 16:42:47 2006 Ben Pfaff <blp@gnu.org>
444 * filename.c: (fn_dirname) Renamed fn_dir_name(), all references
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.
451 Sun Apr 16 16:33:58 2006 Ben Pfaff <blp@gnu.org>
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.
457 Sun Apr 16 16:28:06 2006 Ben Pfaff <blp@gnu.org>
459 * filename.c: (fn_search_path) rewrite for cleaner code. Also,
460 get rid of non-Unixlike version of the code, which has probably
462 (fn_prepend_dir) Removed (dead code).
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>
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().
472 * filename.c: (fn_search_path) Use verbose_msg() instead of
475 Sat Apr 15 19:53:19 2006 Ben Pfaff <blp@gnu.org>
477 * sfm-private.h: Get rid of #defines after #error, which makes no
480 Sat Apr 15 19:48:57 2006 Ben Pfaff <blp@gnu.org>
482 Get rid of our own int32 type in favor of the standard int32_t
485 * sfm-private.h: (int32 macro) Don't define this anymore. Do
488 * sys-file-reader.c: Use int32_t instead of int32 throughout.
490 * sys-file-writer.c: Use int32_t instead of int32 throughout.
492 Sat Apr 15 19:36:47 2006 Ben Pfaff <blp@gnu.org>
494 Remove ill-considered file routines that are no longer used.
496 * filename.c: (fn_open_ext) Removed.
497 (fn_close_ext) Removed.
499 * filename.h: (struct file_ext) Removed.
501 Mon Apr 3 13:22:39 2006 Ben Pfaff <blp@gnu.org>
503 * variable.c (var_is_valid_name): Move declarations before code
506 Tue Apr 4 15:28:40 WST 2006 John Darrington <john@darrington.wattle.id.au>
508 * filename.ch (fn_interp_vars): Fixed small buglet.
510 Tue Mar 28 13:47:16 WST 2006 John Darrington <john@darrington.wattle.id.au>
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.
516 2006-03-25 Jason Stover <jhs@math.gcsu.edu>
518 * category.c (cat_stored_values_destroy): Fixed memory leak.
520 Fri Mar 24 18:15:41 2006 Ben Pfaff <blp@gnu.org>
522 Add some missing frees. Thanks to John Darrington for reporting
525 * any-writer.c (any_writer_close): Free writer.
527 * any-reader.c (any_reader_close): Free reader.
529 Mon Mar 20 16:33:53 2006 Ben Pfaff <blp@gnu.org>
531 * por-file-reader.c: (error) Mark as NO_RETURN.
533 Sat Mar 11 15:06:07 WST 2006 John Darrington <john@darrington.wattle.id.au>
535 * settings.c: Changed default value of scompress to true.
537 Sat Mar 4 13:22:51 2006 Ben Pfaff <blp@gnu.org>
539 * sfm-private.h: Include variable.h, to get SHORT_NAME_LEN.
541 * value.h: Remove check on MAX_SHORT_STRING, which I don't think
544 * variable.h: Move definition of SHORT_NAME_LEN, LONG_NAME_LEN
545 here from pref.h.orig.
547 Sat Mar 4 12:50:48 WST 2006 John Darrington <john@darrington.wattle.id.au>
549 * sys-file-reader.c: Fixed bug reading compressed files.
551 Thu Mar 2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
553 * Numerous renames. See src/ChangeLog for details.
555 * Moved files from src directory