Add ability for reverse iteration to tower code, and corresponding
[pspp] / src / libpspp / ChangeLog
1 2007-06-03  Ben Pfaff  <blp@gnu.org>
2
3         Add ability for reverse iteration to tower code.
4         
5         * tower.c (tower_last): New function.
6         (tower_prev): New function.
7         (abt_to_tower_node): New function.
8         (first_node): Use abt_to_tower_node.
9         (last_node): New function.
10         (next_ndoe): Use abt_to_tower_node.
11         (prev_node): New function.
12
13 2007-06-03  Ben Pfaff  <blp@gnu.org>
14
15         * tower.c: Cache repeated lookups of a single tower element.  This
16         turns such lookups into O(1) operations without harming the big-O
17         of other operations.
18
19         * tower.h (struct tower): Add members for caching.
20
21         * range-set.c (range_set_clone): New function.
22
23         * array.c (insert_range): New function.
24         (insert_element): New function.
25         (move_range): New function.
26
27 2007-04-25  Ben Pfaff  <blp@gnu.org>
28
29         * model-checker.c: Don't use type sighandler_t, which is a GNU
30         extension.  Reported by "Daniel E WILLIAMS"
31         <Daniel.E.Williams@state.or.us>.
32
33 2007-04-25 John Darrington <john@darrington.wattle.id.au>
34
35         * i18n.c: Fixed bug converting long strings
36
37 2007-04-22  Ben Pfaff  <blp@gnu.org>
38
39         Patch #5884.
40         
41         * ll.h (ll_for_each_reverse): New macro.
42         (ll_for_each_reverse_continue): New macro.
43         (ll_for_each_reverse_safe): New macro.
44         (ll_for_each_safe_reverse_continue): New macro.
45         (ll_for_each_reverse_preremove): New macro.
46         (ll_for_each_reverse_postremove): New macro.
47         (ll_remove__): Removed (dead code).
48         (ll_tail__): New macro.
49         (ll_prev__): New macro.
50
51 2007-04-22  Ben Pfaff  <blp@gnu.org>
52
53         Implement model checker for testing purposes.
54
55         Patch #5873.
56         
57         * automake.mk (src_libpspp_libpspp_a_SOURCES): Add
58         model-checker.[ch].  Alphabetize.
59
60         * model-checker.c: New file.
61
62         * model-checker.h: New file.
63
64 2007-04-03  Ben Pfaff  <blp@gnu.org>
65
66         Apply patches #5828, #5837, #5841, #5843.
67
68         * abt.c (insert_relative): New function.
69         (abt_insert_after): New function.
70         (abt_insert_before): New function.
71
72         * range-map.c: New file.
73
74         * range-map.h: New file.
75
76         * range-set.c: New file.
77
78         * range-set.h: New file.
79
80         * tower.c: New file.
81
82         * tower.h: New file.
83
84 2007-04-01  Ben Pfaff  <blp@gnu.org>
85
86         * bt.c: Need #include <limits.h>.  Thanks to "John McCabe-Dansted"
87         <gmatht@gmail.com> for pointing this out.
88
89 2007-03-31  Ben Pfaff  <blp@gnu.org>
90
91         Patch #5827.
92
93         * automake.mk (src_libpspp_libpspp_a_SOURCES): Add bt.c.
94
95         * bt.h: New file.
96
97         * bt.c: New file.
98
99 2007-03-30  Ben Pfaff  <blp@gnu.org>
100
101         Patch #5829.
102
103         * automake.mk (src_libpspp_libpspp_a_SOURCES): Add deque.c.
104
105         * deque.h: Completely rewrote.  Adapted client to new interface.
106
107         * deque.c: New file.
108
109 2007-03-25  Ben Pfaff  <blp@gnu.org>
110
111         * automake.mk (src_libpspp_libpspp_a_SOURCES): Add
112         sparse-array.[ch].
113
114         * pool.c (pool_zalloc): New function.
115         (pool_calloc): New function.
116
117         * sparse-array.c: New file.
118
119         * sparse-array.h: New file.
120
121 Mon Mar  5 20:55:49 CET 2007 John Darrington <john@darrington.wattle.id.au>
122
123         * i18n.c: Cast second argument of iconv using ICONV_CONST
124
125 2007-02-22  Ben Pfaff  <blp@gnu.org>
126
127         * string.h: Don't include vsnprintf.h any more, because gnulib has
128         now absorbed it into string.h.
129
130 Thu Feb 22 12:25:52 CET 2007 John Darrington <john@darrington.wattle.id.au>
131
132         * syntax-gen.h syntax-gen.c: New files.
133
134 Sun Feb 18 11:21:41 2007  Ben Pfaff  <blp@gnu.org>
135
136         * alloc.h: Remove useless parentheses in #if "defined" operator.
137
138         * misc.h: Ditto.
139
140 Tue Feb  6 20:00:13 2007  Ben Pfaff  <blp@gnu.org>
141
142         * misc.h [!HAVE_ISINF] (isinf): Define only if isinf is not
143         defined as a macro, because mingw seems to have the macro without
144         the function.
145         [!HAVE_ISNAN] (isnan): Ditto, for symmetry only.
146         [!AHVE_FINITE] (finite): Ditto, for symmetry only.
147
148 Tue Feb  6 19:58:46 2007  Ben Pfaff  <blp@gnu.org>
149
150         * compiler.h (PRINTF_FORMAT): Use __printf__ instead of printf to
151         avoid problem with "#define printf libintl_printf" that libintl is
152         fond of doing.
153         (SCANF_FORMAT): Ditto, for symmetry only.
154
155 Tue Feb  6 19:47:10 2007  Ben Pfaff  <blp@gnu.org>
156
157         * float-format.h: [FPREP_IEEE754] [WORDS_BIGENDIAN] Add missing
158         comma.
159
160 Wed Jan 24 21:13:32 2007  Ben Pfaff  <blp@gnu.org>
161
162         * abt.c: New file.
163
164         * abt.h: New file.
165
166         * automake.mk: Add abt.c, abt.h to sources.
167
168 Sun Jan 14 21:44:18 2007  Ben Pfaff  <blp@gnu.org>
169
170         * automake.mk: Add deque.h to sources.
171         
172         * deque.h: New file.
173
174 Wed Jan 10 06:49:38 2007  Ben Pfaff  <blp@gnu.org>
175
176         * automake.mk: Add heap.c, heap.h to sources.
177
178         * heap.c: New file.
179
180         * heap.h: New file.
181
182 Sun Dec 10 13:54:03 2006  Ben Pfaff  <blp@gnu.org>
183
184         * str.c (ss_tokenize): Skip the first delimiter character
185         following the token.  Otherwise, changing delimiters from token to
186         token can't have a sensible effect, because we'll get the previous
187         delimiter as part of the next token.
188         (ss_match_string): New function.
189
190 Sat Dec  9 18:48:55 2006  Ben Pfaff  <blp@gnu.org>
191
192         * misc.h (macro range): Removed, as it was unused.
193
194 Sat Dec  9 07:19:01 WST 2006 John Darrington <john@darrington.wattle.id.au>
195
196         * array.c: Removed gratuitous #include
197
198 Thu Dec  7 20:33:23 WST 2006 John Darrington <john@darrington.wattle.id.au>
199
200         * getl.c getl.h : Changed signature of create function to take a 
201         string indicating the initial include path.
202
203 Sun Dec  3 11:36:10 2006  Ben Pfaff  <blp@gnu.org>
204
205         * str.h (SS_LITERAL_INITIALIZER): Cast the string literal to "char
206         *".  This normally does nothing but when GCC's -Wwrite-strings is
207         used it fixes a warning that otherwise can't be avoided.
208
209 Sun Dec  3 11:35:35 2006  Ben Pfaff  <blp@gnu.org>
210
211         * str.c (ss_alloc_substring_pool): New function.
212         (ss_alloc_uninit_pool) New function.
213
214 Sun Dec  3 11:28:06 2006  Ben Pfaff  <blp@gnu.org>
215
216         * getl.h: (enum getl_syntax) New enumeration to distinguish
217         between "batch" and "interactive" in a clearer way than a bool.
218         (struct getl_interface) Add an arg to "read" to return the
219         intended syntax mode.  Add an arg to "filter" to specify the
220         syntax mode of the line to filter.
221
222         * getl.c (do_read_line): Instead of returning the syntax type of
223         the line read based on whether the source itself is interactive,
224         return it based on whether the line itself should be treated as
225         having batch or interactive syntax.  Also, adapt interface to the
226         new interfaces of lex_init() and getl_interface.
227
228 Wed Nov 29 19:35:44 WST 2006 John Darrington <john@darrington.wattle.id.au>
229
230         * getl.c getl.h: New files. Created interface from base of 
231         language/line-buffer.[ch]
232
233         * msg-locator.c msg-locator.h: New files. Moved from
234         language/line-buffer.[ch]
235
236 Fri Nov 24 17:27:00 2006  Ben Pfaff  <blp@gnu.org>
237
238         * misc.h: (min) Removed.  All references updated to use MIN, from
239         minmax.h provided by gnulib.
240         (max) Ditto (for MAX).
241
242 Sun Nov 19 09:22:26 2006  Ben Pfaff  <blp@gnu.org>
243
244         * str.c (ss_get_long): New function.
245         (ss_compare_case) Ditto.
246         (ss_equals) Ditto.
247         (ss_equals_case) Ditto.
248
249 Tue Oct 31 19:28:19 2006  Ben Pfaff  <blp@gnu.org>
250
251         * str.h: [!HAVE_STRCHR] Drop compatibility code, because now we
252         assume a C89 compliant library.  (Gnulib makes this assumption so
253         we might as well too.)
254         [!HAVE_STRRCHR] Ditto.
255
256 Thu Oct 26 20:19:50 2006  Ben Pfaff  <blp@gnu.org>
257
258         * automake.mk: Add the new files.
259
260         * legacy-encoding.c: New file.
261
262         * legacy-encoding.h: New file.
263
264         * float-format.c: New file.
265
266         * float-format.h: New file.
267
268         * integer-format.c: New file.
269
270         * integer-format.h: New file.
271
272 Sun Oct 15 09:49:50 WST 2006 John Darrington <john@darrington.wattle.id.au>
273
274         * hash.c hash.h: Added hsh_create_pool, a hash which uses a pool
275         for its memory allocation.
276
277 Mon Jul 31 15:49:46 2006  Ben Pfaff  <blp@gnu.org>
278
279         * compiler.h: (macro CONST_FUNCTION) New macro.
280         (macro PURE_FUNCTION) New macro.
281
282 Sun Jul 16 21:07:35 2006  Ben Pfaff  <blp@gnu.org>
283
284         * message.c: (static int messages_disabled) New variable.
285         (msg_emit) Don't emit the message if messages are disabled.
286         (msg_disable) New function.
287         (msg_enable) New function.
288
289         * str.c: (free_string) New function.
290         (ds_register_pool) New function.
291         (ds_unregister_pool) New function.
292         (ds_set_length) New function.
293
294 Mon Jul 10 17:26:58 WST 2006 John Darrington <john@darrington.wattle.id.au>
295
296         * llx.c: #included compiler.h and removed explicit preprocessor cruft.
297
298 Fri Jul  7 20:01:26 2006  Ben Pfaff  <blp@gnu.org>
299
300         * automake.mk: (src_libpspp_libpspp_a_SOURCES) Add assertion.h.
301         
302         * assertion.h: New file.  Replaced usage of assert(0) and abort()
303         with NOT_REACHED() from this file throughout the source tree.
304
305         * message.c: (request_bug_report_and_abort) Revise message printed
306         to include request to include lines above the message, which
307         should include an assertion failure message in many cases.
308         (msg_assert_fail) Removed.
309
310         * message.h: (assert) Removed.
311         (request_bug_report_and_abort) Mark NO_RETURN.
312
313 Mon Jul  3 09:36:42 WST 2006 John Darrington <john@darrington.wattle.id.au>
314
315         * i18n.c: Made character conversion tolerant of failure to create the 
316         necessary iconv structs.
317
318 Sat Jul  1 15:32:54 2006  Ben Pfaff  <blp@gnu.org>
319
320         * automake.mk: (src_libpspp_libpspp_a_SOURCES) Add new files.
321
322         * ll.c: New file.
323
324         * ll.h: New file.
325
326         * llx.c: New file.
327
328         * llx.h: New file.
329
330 Sun Jun 25 22:35:28 2006  Ben Pfaff  <blp@gnu.org>
331
332         Optimize rehashing: we know that none of the entries in the hash
333         table are equal, so we need not compare them to each other during
334         rehashing.
335         
336         * hash.c: (locate_empty_entry) New function.
337         (rehash) Use locate_empty_entry() instead of
338         locate_matching_entry().
339
340 Fri Jun  9 14:03:29 2006  Ben Pfaff  <blp@gnu.org>
341
342         Reform string library.
343         
344         * str.c (ss_empty): New function.  Replaces some uses of ls_init()
345         or ls_null().
346         (ss_cstr) New function.  Replaces some uses of ls_init().
347         (ss_buffer) New function.  Replaces some uses of ls_init().
348         (ss_substr) New function.
349         (ss_head) New function.
350         (ss_tail) New function.
351         (ss_alloc_substring) New function.  Replaces use of ls_create().
352         (ss_alloc_uninit) New function.
353         (ss_dealloc) New function.  Replaces use of ls_destroy().
354         (ss_truncate) New function.
355         (ss_rtrim) New function.
356         (ss_ltrim) New function.
357         (ss_trim) New function.
358         (ss_chomp) New function.
359         (ss_separate) New function.
360         (ss_tokenize) New function.
361         (ss_advance) New function.
362         (ds_create) Renamed ds_init_cstr().  Updated all callers.
363         (ss_match_char) New function.
364         (ss_get_char) New function.
365         (ss_get_until) New function.
366         (ss_get_chars) New function.
367         (ss_is_empty) New function.
368         (ss_length) New function.  Replaces ls_length().
369         (ss_data) New function.  Replaces many uses of ls_c_str().
370         (ss_end) New function.  Replaces ls_end().
371         (ss_at) New function.
372         (ss_first) New function.
373         (ss_last) New function.
374         (ss_span) New function.
375         (ss_cspan) New function.
376         (ss_compare) New function.
377         (ss_pointer_to_position) New function.
378         (ss_xstrdup) New function.
379         (ds_init) Renamed ds_init_empty().  All callers updated.
380         (ds_init_string) New function.
381         (ds_init_substring) Changed interface to take a struct substring.
382         Updated all callers.
383         (ds_init_cstr) New function.  Replaces ds_create().  All callers
384         updated.
385         (ds_assign_substring) Changed interface to take a struct
386         substring.  Updated all callers.
387         (ds_assign_buffer) Removed.  Changed all callers to use
388         ds_assign_substring().
389         (ds_assign_c_str) Renamed ds_assign_cstr().  All callers updated.
390         (ds_ss) New function.
391         (ds_substr) New function.
392         (ds_head) New function.
393         (ds_tail) New function.
394         (ds_rtrim) New function.  Replaces ds_rtrim_spaces().  All callers
395         updated.
396         (ds_ltrim) New function.  Replaces ds_ltrim_spaces().  All callers
397         updated.
398         (ds_trim) New function.  Replaces ds_trim_spaces().  All callers
399         updated.
400         (ds_rtrim_spaces) Removed.
401         (ds_ltrim_spaces) Removed.
402         (ds_trim_spaces) Removed.
403         (ds_separate) Changed interface to use substrings.  All callers
404         updated.
405         (ds_tokenize) Changed interface to use substrings.  All callers
406         updated.
407         (ds_c_str) Renamed ds_cstr().  All callers updated.
408         (ds_span) Changed interface to use substring for SKIP_SET and
409         dropped OFS.  All callers updated.
410         (ds_cspan) Changed interface to use substring for STOP_SET and
411         dropped OFS.  All callers updated.
412         (ds_find_char) New function.
413         (ds_compare) New function.
414         (ds_pointer_to_position) New function.
415         (ds_xstrdup) New function.  Replaced all users of
416         xstrdup(ds_c_str(s)) by a call to this function.
417         (ds_gets) Renamed ds_read_line().  All callers updated.
418         (ds_get_config_line) Renamed ds_read_config_line().  All callers
419         updated.
420         (ds_puts) Renamed ds_put_cstr().  All callers updated.
421         (ds_put_substring) New function.  Replaces ds_concat().  All
422         callers updated.
423         (ds_concat) Removed.
424         (ds_append_uninit) Renamed ds_put_uninit().  All callers updated.
425         (ds_printf) Renamed ds_put_format().  All callers updated.
426         (ds_vprintf) Renamed ds_put_vformat().  All callers updated.
427         (ds_putc) Renamed ds_put_char().  All callers updated.
428         (ds_putc_multiple) Renamed ds_put_char_multiple().  All callers
429         updated.
430         (ls_create) Removed.  Replaced by ss_alloc_substring().
431         (ls_create_buffer) Removed.  Replaced by ss_alloc_substring().
432         (ls_init) Removed.  Replaced by ss_buffer().
433         (ls_shallow_copy) Removed.  Just use assignment.
434         (ls_destroy) Removed.  Replaced by ss_dealloc().
435         (ls_null) Removed.
436         (ls_null_p) Removed.
437         (ls_empty_p) Removed.  Replaced by ss_is_empty().
438         (ls_c_str) Removed.
439         (ls_end) Removed.  Replaced by ss_end().
440
441         * str.h (struct fixed_string): Renamed struct substring, updated
442         all users.
443         (CC_SPACES) New macro.
444         (CC_DIGITS) Ditto.
445         (CC_XDIGITS) Ditto.
446         (CC_LETTERS) Ditto.
447         (CC_ALNUM) Ditto.
448         (SS_EMPTY_INITIALIZER) Ditto.
449         (SS_LITERAL_INITIALIZER) Ditto.
450         (struct string) Removed string, length members.  Add substring
451         member.
452         (DS_INITIALIZER) Rename DS_EMPTY_INITIALIZER.
453
454 Tue May 30 19:45:12 WST 2006 John Darrington <john@darrington.wattle.id.au>
455
456         * i18n.c i18n.h: New files.
457
458 Tue May 16 06:50:35 2006  Ben Pfaff  <blp@gnu.org>
459
460         * automake.mk (src/libpspp/version.c): Removed groff_font_path,
461         which is no longer used.
462
463         * message.c (request_bug_report_and_abort): Don't print
464         groff_font_path, which no longer exists.
465
466         * version.h (locale_dir): Removed groff_font_path.
467
468 Sun May 14 22:06:53 2006  Ben Pfaff  <blp@gnu.org>
469
470         * str.c (spprintf): Moved definition of spprintf() here, from
471         str.h.
472
473         * str.h: (nsprintf) Removed.  Changed all users to use sprintf()
474         instead.
475         (nvsprintf) Removed.  Changed all users to use vsprintf() instead.
476
477 Sun May 14 20:52:20 2006  Ben Pfaff  <blp@gnu.org>
478
479         * str.c (ds_init): Remove `capacity' argument and just initialize
480         the string to a capacity of zero.  Updated all callers.
481
482 Tue May  9 09:56:57 2006  Ben Pfaff  <blp@gnu.org>
483
484         * va_copy.h: Removed.  Now use va_copy() provided by gnulib
485         instead.
486
487         * automake.mk: (src_libpspp_libpspp_a_SOURCES) Removed va_copy.h.
488
489 Sun May  7 18:17:32 2006  Ben Pfaff  <blp@gnu.org>
490
491         * pool.c (pool_vasprintf): New function.
492         (pool_asprintf) New function.
493
494 Sun May  7 17:09:54 2006  Ben Pfaff  <blp@gnu.org>
495
496         * compiler.h: (macro WARN_UNUSED_RESULT) New macro.
497
498 Sun May  7 14:32:25 2006  Ben Pfaff  <blp@gnu.org>
499
500         * va_copy.h: New header.
501
502         * str.c: Use header instead of inlining va_copy() macro
503         implementation.
504
505 Sun May  7 10:06:29 WST 2006 John Darrington <john@darrington.wattle.id.au>
506
507         * array.c array.h: Constness of sort.
508
509 Thu May  4 18:01:37 WST 2006 John Darrington <john@darrington.wattle.id.au>
510
511         * message.c message.h: Added functions to create and copy a msg.
512
513 Tue May  2 15:41:50 2006  Ben Pfaff  <blp@gnu.org>
514
515         * str.c (ds_append_uninit): No need to add 1 to arg passed to
516         ds_extend(), because the argument does not include space for a
517         null terminator.  Also, fix warning.
518
519 Tue Apr 25 11:07:19 2006  Ben Pfaff  <blp@gnu.org>
520
521         Finish reforming error message support.  In this phase, move
522         message.c into libpspp.
523         
524         * message.c: Move here from src/.  Also remove a few unneeded
525         headers.
526
527         * automake.mk (src_libpspp_libpspp_a_SOURCES): Add message.c. 
528
529 Tue Apr 25 10:54:44 2006  Ben Pfaff  <blp@gnu.org>
530
531         Continue reforming error message support.  In this phase, drop
532         actual message printing from core code, substituting a callback,
533         and add the callback to each UI.  Also, move verbose_msg() into
534         its own module.
535
536         * automake.mk (src_libpspp_libpspp_a_SOURCES): Added
537         verbose-msg.c, verbose-msg.h.
538
539         * verbose-msg.c: New file.
540
541         * verbose-msg.h: New file.
542
543 Mon Apr 24 17:26:47 2006  Ben Pfaff  <blp@gnu.org>
544
545         Continue reforming error message support.  In this phase, rename
546         all the message functions and types to start with "msg", except
547         for the ones that will be moving to other modules anyway.
548
549         All references to the identifiers below were updated likewise.
550         
551         * message.h: (enum file_locator) Renamed `enum msg_locator'.
552         (struct error) Renamed `struct msg'.
553         (err_assert_fail) Renamed msg_assert_fail().
554
555 Sun Apr 23 22:07:06 2006  Ben Pfaff  <blp@gnu.org>
556
557         Continue reforming error message support.  In this phase, get rid
558         of message "titles" and put the message text in `struct error'.
559         Now `struct error' encapsulates a message more properly.
560         
561         * message.h: (struct error) Remove `title' member.  Add `text'
562         member.
563         
564 Sun Apr 16 20:43:35 2006  Ben Pfaff  <blp@gnu.org>
565
566         Continue reforming error message support.  In this phase, we
567         divide the classification of messages along "category" and
568         "severity" axes.
569
570         * message.h: (enum msg_class) Named this set of enumerations.
571         (enum msg_category) New enum: MSG_GENERAL, MSG_SYNTAX, MSG_DATA.
572         (enum msg_severity) New enum: MSG_ERROR, MSG_WARNING, MSG_NOTE.
573         (msg_class_to_category) New inline function.
574         (msg_class_to_severity) New inline function.
575         (msg_class_from_category_and_severity) New inline function.
576         (struct error) Removed `class' member, added `category',
577         `severity'.  Updated all users of this struct to use the new
578         members.
579
580 Sun Apr 16 20:33:19 2006  Ben Pfaff  <blp@gnu.org>
581
582         * str.c (ds_vprintf): Don't try to write into the string if it is
583         null.
584
585 Sun Apr 16 18:52:41 2006  Ben Pfaff  <blp@gnu.org>
586
587         GNU standards require "file name" instead of "filename" in
588         documentation.  It's nice for our code to follow the convention
589         too.
590         
591         * message.h: (struct file_locator) Rename filename member to
592         file_name.  Updated all references.
593
594 Sun Apr 16 16:05:43 2006  Ben Pfaff  <blp@gnu.org>
595
596         Continue reforming error message support.  In this phase, we get
597         rid of VM() and the other msg() support for "verbosity", replacing
598         it by a new function verbose_msg().
599
600         * message.h: (enum ERR_CLASS_COUNT) Renamed ERR_CLASS_CNT.
601         (enum ERR_CLASS_MASK) Removed.
602         (enum ERR_VERBOSITY_SHIFT) Removed.
603         (enum ERR_VERBOSITY_MASK) Removed.
604         (macro VM) Removed.
605
606 Sun Apr 16 11:48:07 2006  Ben Pfaff  <blp@gnu.org>
607
608         Start reforming error message support.  In this phase, we get rid
609         of "installation errors" and change all uses of msg() in the
610         output drivers to uses of error() or error_at_line().
611
612         * message.h: Remove IE, IS enums.
613
614 Mon Apr  3 11:10:21 2006  Ben Pfaff  <blp@gnu.org>
615
616         * str.c: (ds_separate) Change interface for cleanliness and
617         consistency with ds_tokenize(), and rewrite to shorten and
618         simplify.  Updated all callers.
619         (ds_tokenize) New function.
620
621 Fri Mar 31 10:38:46 2006  Ben Pfaff  <blp@gnu.org>
622
623         Add freaderror() analogous to fwriteerror() in gnulib.
624
625         * freaderror.c: New file.
626
627         * freaderror.h: New file.
628
629 Thu Mar 30 16:15:37 2006  Ben Pfaff  <blp@gnu.org>
630
631         * str.c: (ds_create) Adjust capacity selection.
632         (ds_init) Use MAX macro for clarity.
633         (ds_create_substr) Rewrote.
634         (ds_replace) Renamed ds_assign_c_str(), reimplemented.  Changed
635         all callers to use a ds_assign_*() function.
636         (ds_init_substring) New function.
637         (ds_assign_string) New function.
638         (ds_assign_substring) New function.
639         (ds_assign_buffer) New function.
640         (ds_assign_c_str) New function.
641         (ds_truncate) Rewrote for clarity.
642         (ds_rpad) Reimplement in terms of ds_putc_multiple().
643         (ds_ltrim_spaces) Reimplement.
644         (ds_trim_spaces) New function.
645         (ds_separate) New function.
646         (ds_c_str) Make tolerant of null pointer, allowing static
647         initialization of strings.
648         (ds_find) Rename ds_span(), change interface.
649         (ds_n_find) Rename ds_cspan(), change interface.
650         (ds_at) New function.
651         (ds_first) Reimplement in terms of ds_at().
652         (remove_comment) New function.
653         (ds_get_config_line) Reimplement in terms of other functions.
654         Change type of LINE_NUMBER parameter.  Updated all callers.
655         (ds_vprintf) Modify for clarity.
656         (ds_putc) Better to be safe than sorry.
657         (ds_putc_multiple) New function.
658
659         * str.h: (struct string) Reorder members.
660         (macro DS_INITIALIZER) New macro that can be used to initialize a
661         string (as empty).
662         (ds_c_str) Remove inline version.
663
664 Tue Mar 28 13:49:11 WST 2006 John Darrington <john@darrington.wattle.id.au>
665
666         * str.[ch]: New functions ds_create_substr, ds_find, ds_n_find, 
667         ds_ltrim_spaces
668
669 Sat Mar  4 12:59:01 2006  Ben Pfaff  <blp@gnu.org>
670
671         * compiler.h: New file.
672
673 Sat Mar  4 11:55:16 2006  Ben Pfaff  <blp@gnu.org>
674
675         * str.h: Now assume that sprintf() returns the correct value.
676         Always implement spprintf as a static inline function.  Change
677         nsprintf, nvsprintf to simple macros that call sprintf, vsprintf.
678
679         * str.c: Remove spprintf, nsprintf, nvsprintf conditional
680         definitions.
681
682 Thu Mar  2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
683         
684         * Moved files from src directory