3421bdf4282a9c218d098deb9f1ed282af17b858
[pspp-builds.git] / src / language / control / ChangeLog
1 2008-05-15  Ben Pfaff  <blp@gnu.org>
2
3         Patch #6512.
4         
5         * loop.c (loop_trns_proc): Use gsl_finite instead of finite, , as
6         a stopgap measure for portability until appropriate gnulib modules
7         are available.
8
9 2007-09-23  Ben Pfaff  <blp@gnu.org>
10
11         Bug #21111.  Reviewed by John Darrington.
12
13         * do-if.c: Fix ELSE and ELSE IF clauses.
14         (add_clause): Drop TARGET_INDEX argument and figure out the target
15         of the jump on our own.  The caller couldn't compensate for the
16         inserted BREAK transformation.  Updated all callers.
17
18 Fri Feb  2 22:41:43 WST 2007 John Darrington <john@darrington.wattle.id.au>
19
20         * repeat.c (parse_numbers): Fixed bug parseing ranges vs. lists.
21         Ensured that floats are accepted in lists, but not in ranges.
22
23 Tue Dec 19 08:12:46 2006  Ben Pfaff  <blp@gnu.org>
24
25         Fix LOOP.  Thanks to Daniel Williams
26         <Daniel.E.Williams@state.or.us> for reporting one of the bugs
27         fixed here.
28         
29         * loop.c (cmd_loop): Keep track of whether we created the index
30         variable and delete it if parsing fails, instead of creating it
31         after parsing the IF clause.  This allows the index variable to be
32         used in the IF clause.  This incidentally fixes a segfault when no
33         index variable was used.  Also, return CMD_CASCADING_FAILURE if we
34         fail.
35         (parse_if_clause): Don't allow more than one IF clause.
36         (parse_index_clause): Don't allow more than one index clause.
37         Create the index variable if it doesn't exist.
38         (end_loop_trns_proc): Invert the sense of END LOOP's IF clause.
39
40 Sat Dec  9 20:12:34 2006  Ben Pfaff  <blp@gnu.org>
41
42         * repeat.c (parse_lines): Issue an error when attempting to nest
43         DO REPEAT in compatibility mode.
44
45 Sat Dec  2 17:01:59 2006  Ben Pfaff  <blp@gnu.org>
46
47         Significant cleanup to DO REPEAT.
48         
49         * repeat.c: (struct line_list) Rename struct repeat_line.  Use
50         struct ll instead of explicit "next" pointer.  Make "file_name"
51         const.  Change "const char *line" to "struct substring text".  Add
52         `syntax' member.  Update all references.
53         (enum repeat_entry_type) Rename repeat_macro_type, update all
54         references.
55         (struct repeat_entry) Rename struct repeat_macro.  Use struct ll
56         instead of explicit "next" pointer.  Change "char[] id" to "struct
57         substring name".  Change "char **replacement" to "struct substring
58         *replacements".  Update all references.
59         (struct repeat_block) Use struct ll_list for lists of lines,
60         macros.  Change "cur_line" to struct ll *.
61         (cmd_do_repeat) Don't bother adding an empty getl source at all.
62         This saves special-casing an empty source in repeat_read.
63         (parse_specification) Use new find_macro function.
64         (find_macro) New function.
65         (skip_indentor) Removed.
66         (recognize_keyword) Change interface, update callers.
67         (recognize_do_repeat) Ditto.
68         (recognize_end_repeat) Ditto.
69         (parse_lines) Use lex_preprocess_line to preprocess the input line
70         to check for DO REPEAT and END REPEAT, instead of coding it
71         inline.
72         (parse_ids) Need to make a copy of the array parsed by
73         parse_mixed_vars_pool, instead of using it verbatim, because we're
74         using struct substring now.
75         (add_replacement) Use struct substring in interface, instead of
76         const char *, and update all callers.
77         (find_substitution) Rewrite using substring, in terms of
78         find_macro.
79         (do_repeat_filter) Use struct substring to simplify code.
80         (current_line) New function.
81         
82 Sat Dec  2 16:40:12 2006  Ben Pfaff  <blp@gnu.org>
83
84         Fix lack of ->name and ->location in DO REPEAT's getl_interface.
85         See bug #15702.
86
87         * repeat.c: (cmd_do_repeat) Initialize name, location in
88         getl_interface.
89         (do_repeat_read) Adjust semantics of cur_line so that, after the
90         call, it points to the line just returned, instead of to the next
91         line to be returned.  Thus, do_repeat_name and do_repeat_location
92         can use cur_line to obtain the info they need.
93         (do_repeat_name) New function.
94         (do_repeat_location) New function.
95
96 Thu Nov 30 22:01:27 2006  Ben Pfaff  <blp@gnu.org>
97
98         * repeat.c (do_repeat_read): Properly handle empty DO REPEAT...END
99         REPEAT block.  Fixes bug #18407.  Thanks to John Darrington for
100         reporting this bug.
101
102 Sat Oct 28 16:18:48 WST 2006 John Darrington <john@darrington.wattle.id.au>
103
104         * repeat.c: Eliminated references to extern variable getl_buf.
105
106 Sun May  7 18:18:33 2006  Ben Pfaff  <blp@gnu.org>
107
108         Fix memory leaks.
109         
110         * repeat.c: (parse_ids) Take pool parameter and allocate all
111         memory from pool.  Reduce implementation from loop to single call
112         to parse_mixed_vars_pool().
113         (store_numeric) Removed.
114         (add_replacement) New function.
115         (parse_numbers) Take pool parameter and allocate all memory from
116         pool.  Require ranges to be in increasing order.
117         (parse_strings) Take pool parameter and allocate all memory from
118         pool.
119
120 Wed May  3 22:45:41 2006  Ben Pfaff  <blp@gnu.org>
121
122         Continue reforming procedure execution.  In this phase, get rid of
123         many global variables, consolidating procedure execution in
124         procedure.c.  Encapsulate transformations in new "struct
125         trns_chain".  Also, change implementation of N OF CASES, FILTER,
126         and PROCESS IF from special cases to transformations.
127          
128         * do-if.c: (cmd_do_if) Use finalizer to ensure control stack gets
129         cleared.
130         (do_if_finalize_func) New function.
131
132         * loop.c: (create_loop_trns) Use finalizer to ensure control stack gets
133         cleared.
134         (loop_trns_finalize) New function.
135
136         * temporary.c: (global var temporary) Removed.  Changed references
137         to use proc_make_temporary_transformations_permanent() or
138         proc_in_temporary_transformations().
139         (global var temp_dict) Removed.
140         (global var temp_trns) Removed.
141         (cmd_temporary) Reimplement in terms of
142         proc_in_temporary_transformations() and
143         proc_start_temporary_transformations().
144         (cancel_temporary) Moved to procedure.c, renamed
145         proc_cancel_temporary_transformations().
146                 
147 Thu Mar  2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
148         
149         * Moved files from src directory