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