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