Fix lack of ->name and ->location in DO REPEAT's getl_interface.
[pspp-builds.git] / src / language / control / ChangeLog
1 Sat Dec  2 17:01:59 2006  Ben Pfaff  <blp@gnu.org>
2
3         Significant cleanup to DO REPEAT.
4         
5         * repeat.c: (struct line_list) Rename struct repeat_line.  Use
6         struct ll instead of explicit "next" pointer.  Make "file_name"
7         const.  Change "const char *line" to "struct substring text".  Add
8         `syntax' member.  Update all references.
9         (enum repeat_entry_type) Rename repeat_macro_type, update all
10         references.
11         (struct repeat_entry) Rename struct repeat_macro.  Use struct ll
12         instead of explicit "next" pointer.  Change "char[] id" to "struct
13         substring name".  Change "char **replacement" to "struct substring
14         *replacements".  Update all references.
15         (struct repeat_block) Use struct ll_list for lists of lines,
16         macros.  Change "cur_line" to struct ll *.
17         (cmd_do_repeat) Don't bother adding an empty getl source at all.
18         This saves special-casing an empty source in repeat_read.
19         (parse_specification) Use new find_macro function.
20         (find_macro) New function.
21         (skip_indentor) Removed.
22         (recognize_keyword) Change interface, update callers.
23         (recognize_do_repeat) Ditto.
24         (recognize_end_repeat) Ditto.
25         (parse_lines) Use lex_preprocess_line to preprocess the input line
26         to check for DO REPEAT and END REPEAT, instead of coding it
27         inline.
28         (parse_ids) Need to make a copy of the array parsed by
29         parse_mixed_vars_pool, instead of using it verbatim, because we're
30         using struct substring now.
31         (add_replacement) Use struct substring in interface, instead of
32         const char *, and update all callers.
33         (find_substitution) Rewrite using substring, in terms of
34         find_macro.
35         (do_repeat_filter) Use struct substring to simplify code.
36         (current_line) New function.
37         
38 Sat Dec  2 16:40:12 2006  Ben Pfaff  <blp@gnu.org>
39
40         Fix lack of ->name and ->location in DO REPEAT's getl_interface.
41         See bug #15702.
42
43         * repeat.c: (cmd_do_repeat) Initialize name, location in
44         getl_interface.
45         (do_repeat_read) Adjust semantics of cur_line so that, after the
46         call, it points to the line just returned, instead of to the next
47         line to be returned.  Thus, do_repeat_name and do_repeat_location
48         can use cur_line to obtain the info they need.
49         (do_repeat_name) New function.
50         (do_repeat_location) New function.
51
52 Thu Nov 30 22:01:27 2006  Ben Pfaff  <blp@gnu.org>
53
54         * repeat.c (do_repeat_read): Properly handle empty DO REPEAT...END
55         REPEAT block.  Fixes bug #18407.  Thanks to John Darrington for
56         reporting this bug.
57
58 Sat Oct 28 16:18:48 WST 2006 John Darrington <john@darrington.wattle.id.au>
59
60         * repeat.c: Eliminated references to extern variable getl_buf.
61
62 Sun May  7 18:18:33 2006  Ben Pfaff  <blp@gnu.org>
63
64         Fix memory leaks.
65         
66         * repeat.c: (parse_ids) Take pool parameter and allocate all
67         memory from pool.  Reduce implementation from loop to single call
68         to parse_mixed_vars_pool().
69         (store_numeric) Removed.
70         (add_replacement) New function.
71         (parse_numbers) Take pool parameter and allocate all memory from
72         pool.  Require ranges to be in increasing order.
73         (parse_strings) Take pool parameter and allocate all memory from
74         pool.
75
76 Wed May  3 22:45:41 2006  Ben Pfaff  <blp@gnu.org>
77
78         Continue reforming procedure execution.  In this phase, get rid of
79         many global variables, consolidating procedure execution in
80         procedure.c.  Encapsulate transformations in new "struct
81         trns_chain".  Also, change implementation of N OF CASES, FILTER,
82         and PROCESS IF from special cases to transformations.
83          
84         * do-if.c: (cmd_do_if) Use finalizer to ensure control stack gets
85         cleared.
86         (do_if_finalize_func) New function.
87
88         * loop.c: (create_loop_trns) Use finalizer to ensure control stack gets
89         cleared.
90         (loop_trns_finalize) New function.
91
92         * temporary.c: (global var temporary) Removed.  Changed references
93         to use proc_make_temporary_transformations_permanent() or
94         proc_in_temporary_transformations().
95         (global var temp_dict) Removed.
96         (global var temp_trns) Removed.
97         (cmd_temporary) Reimplement in terms of
98         proc_in_temporary_transformations() and
99         proc_start_temporary_transformations().
100         (cancel_temporary) Moved to procedure.c, renamed
101         proc_cancel_temporary_transformations().
102                 
103 Thu Mar  2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
104         
105         * Moved files from src directory