Allow setting strings to NULL (to remove tag).
[gedcom-parse.git] / ChangeLog
1 2003-01-04  Peter Verthez  <Peter.Verthez@advalvas.be>
2
3         * gedcom/compat.c, gedcom/gedcom.y: Some compatibility with PAF added.
4
5         * gedcom/multilex.c (determine_encoding): Recognize the UTF-8 byte
6         order mark.
7
8         * gom/change_date.c: Added functions to update timestamps in any
9         record.
10
11         * gedcom/compat.*, gedcom.y, gedcom_lex_common.c: Better separation
12         of compatibility handling.
13
14         * t/compat-*: Tests for compatibility handling.
15
16 2003-01-03  Peter Verthez  <Peter.Verthez@advalvas.be>
17
18         * bin/gedcom-check.c: Added program to check validity of a GEDCOM file.
19
20 2003-01-02  Peter Verthez  <Peter.Verthez@advalvas.be>
21
22         * gom/*: Added functions to add and remove records.
23
24 2002-12-30  Peter Verthez  <Peter.Verthez@advalvas.be>
25
26         * release 0.20.0
27
28         * gedcom/write.c: Give warning if character set in HEAD.CHAR is not
29         the same as current character set (and force value).
30
31         * gom/header.c, gom/gom_modify.c: Added function
32         gom_header_update_timestamp and supporting functions.
33
34 2002-12-29  Peter Verthez  <Peter.Verthez@advalvas.be>
35
36         * configure.in, include/gedcom.h.in: Move to three-part version
37         numbers.
38
39         * m4/gedcom.m4: Major changes.
40
41 2002-12-22  Peter Verthez  <Peter.Verthez@advalvas.be>
42
43         * gedcom-config.in: New file.
44
45 2002-12-21  Peter Verthez  <Peter.Verthez@advalvas.be>
46
47         * libutf8 is changed to a shared library, and has now its own
48         package (see further ChangeLog in that directory).
49
50         * gedcom/date.c, gedcom/gedcom_date.*: New functions for handling
51         date values.
52
53 2002-12-15  Peter Verthez  <Peter.Verthez@advalvas.be>
54
55         * gom/*.c, gedcom/write.c, gedcom/date.c, gedcom/age.c: Support for
56         writing age values and data values (rudimentary).
57
58         * gom/*.c, gedcom/write.c: Completed writing of strings and xrefs.
59
60 2002-12-08  Peter Verthez  <Peter.Verthez@advalvas.be>
61
62         * gedcom/write.c: Writing long strings (with continuation), and
63         doubling of at characters.
64
65         * gedcom/gedcom.y, gedcom/buffer.*: Use safe buffer mechanism for
66         storing gedcom value (to avoid fixed buffer size).
67
68 2002-12-07  Peter Verthez  <Peter.Verthez@advalvas.be>
69
70         * gom/*: Use complete concatenated text instead of concatenating the
71         texts itself.
72
73         * gedcom/gedcom.y: Pass complete concatenated text in end callback
74         (this causes a backward incompatibility in the end record callback!)
75
76 2002-12-04  Peter Verthez  <Peter.Verthez@advalvas.be>
77
78         * gedcom/write.c, gom/gom.c: Beginnings of write support.
79
80 2002-12-01  Peter Verthez  <Peter.Verthez@advalvas.be>
81
82         * gedcom/encoding.c (to_internal): Use the conv_buffer interface
83         from utf8/utf8-convert.c.
84
85 2002-11-30  Peter Verthez  <Peter.Verthez@advalvas.be>
86
87         * utf8/utf8-convert.c: More general conversion interface (extracted
88         from utf8-locale.c and gedcom/encoding.c).
89
90 2002-11-24  Peter Verthez  <Peter.Verthez@advalvas.be>
91
92         * gedcom/message.c: Extracted safe buffer mechanism to buffer.c
93         for reuse.
94
95 2002-11-22  Peter Verthez  <Peter.Verthez@advalvas.be>
96
97         * gom/gom_modify.c: Check whether given strings are valid.
98
99         * utf8/utf8.c: Functions for checking UTF-8 strings and computing
100         length.
101
102 2002-11-04  Peter Verthez  <Peter.Verthez@advalvas.be>
103
104         * gedcom/multilex.c, all: Use dgettext instead of gettext => no more
105         need of textdomain().
106
107 2002-11-03  Peter Verthez  <Peter.Verthez@advalvas.be>
108
109         * gedcom/multilex.c (gedcom_parse_file): Move setlocale call to
110         gedcom_init, make strdup of saved textdomain (to avoid corruption).
111
112         * all: Removed support for dmalloc (valgrind is much better and doesn't
113         require changing the sources).
114
115         * m4/gedcom.m4: Added m4 macro for configure.in support.
116
117 2002-11-01  Peter Verthez  <Peter.Verthez@advalvas.be>
118
119         * gedcom/gedcom_*.lex: A pointer with only one character between the
120         at signs is also valid.
121
122         * gedcom/xref.c (is_valid_pointer): New function (also checks for
123         maximum size).
124
125         * include/gom.h: Added links to the definitions in the Gedcom standard.
126
127         * all: update of documentation
128
129 2002-10-30  Peter Verthez  <Peter.Verthez@advalvas.be>
130
131         * gedcom/gedcom_lex_common.c, gedcom/multilex.c: Fix for line numbering
132         bug (bug 613480).
133
134 2002-10-28  Peter Verthez  <Peter.Verthez@advalvas.be>
135
136         * release 0.17.2
137           This is another test release
138
139 2002-10-27  Peter Verthez  <Peter.Verthez@advalvas.be>
140
141         * gedcom/Makefile.am: Put generated lex and yacc files also in dist.
142
143         * doc/Makefile.am: Put generated file gomxref.html also in dist (so
144         perl isn't needed at make-time).
145
146         * utf8/utf8-locale.c (convert_utf8_to_locale): Set conv_fails on total
147         conversion failure too.
148
149         * all: Further small portability fixes.
150
151 2002-10-26  Peter Verthez  <Peter.Verthez@advalvas.be>
152
153         * t/output/*: Reference output for the tests; compare the actual test
154         output to these files.
155
156 2002-10-23  Peter Verthez  <Peter.Verthez@advalvas.be>
157
158         * Makefile.inc: Portability fix: 'if ! diff ...' isn't always supported
159         by sh.
160
161         * include/Makefile.am: Portability fix: grep isn't always understanding
162         full regex syntax.
163
164         * utf8/Makefile.am, configure.in: Only link in libcharset if libiconv
165         is not used.
166
167 2002-10-21  Peter Verthez  <Peter.Verthez@advalvas.be>
168
169         * all: Further portability fixes to Makefile.am and such.
170
171 2002-10-20  Peter Verthez  <Peter.Verthez@advalvas.be>
172
173         * */Makefile.am: Fixes for using included gettext.
174
175         * intl/Makefile.in: Hack for generating libtool convenience library
176         instead of shared library.
177
178         * README: Modify at dist instead of via configure.in (GNU make is used
179         anyway).
180
181         * intl/*: Upgraded to gettext 0.10.38 (to have extra functions, such
182         as bind_textdomain_codeset).
183
184 2002-10-14  Peter Verthez  <Peter.Verthez@advalvas.be>
185
186         * gedcom/encoding.c (to_internal): Add ICONV_CONST for portability.
187
188         * utf8/utf8-locale.c: Add forgotten header string.h
189
190 2002-10-13  Peter Verthez  <Peter.Verthez@advalvas.be>
191
192         * Makefile: Require GNU make to be used -> normal makefile is then
193         GNUmakefile in top directory.
194
195         * README, doc/index.html: Generate from *.in via configure (for
196         portability).
197
198         * utf8/utf8-locale.c, utf8/libcharset/: Use locale_charset instead of
199         nl_langinfo directly, for portability.
200
201 2002-10-05  Peter Verthez  <Peter.Verthez@advalvas.be>
202
203         * release 0.17.1
204           This is a test release
205
206 2002-10-04  Peter Verthez  <Peter.Verthez@advalvas.be>
207
208         * iconv/libiconv/*: libiconv changes for ANSEL encoding.
209
210 2002-10-01  Peter Verthez  <Peter.Verthez@advalvas.be>
211
212         * ansel/ANSI_Z39.47.c: Fixes to ansel decoding and (mostly) encoding.
213
214 2002-09-28  Peter Verthez  <Peter.Verthez@advalvas.be>
215
216         * all: Portability fixes and support for libiconv.
217
218 2002-09-22  Peter Verthez  <Peter.Verthez@advalvas.be>
219
220         * gedcom/xref.c, include/gedcom.h.in: Added functions to retrieve, add,
221         link/unlink and delete cross-references.
222
223         * gedcom/gedcom_1byte.lex, gedcom/gedcom_lex_common.c: Added a function
224         to check whether a (UTF-8) string is a valid token; bypass iconv
225         conversion for this.
226
227         * gedcom/*: Fixed memory leaks reported by valgrind.
228
229 2002-09-21  Peter Verthez  <Peter.Verthez@advalvas.be>
230
231         * t/standalone.c: Close outfile *after* the last output is done...
232
233         * gedcom/gedcom_*.lex, gedcom/gedcom_lex_common.c: Workaround for
234         memory leak in flex.
235
236         * gedcom/encoding.c: Clean up environment at exit.
237
238 2002-09-15  Peter Verthez  <Peter.Verthez@advalvas.be>
239
240         * gedcom.h.in, gedcom/*, gom/*: Take care of const correctness.
241
242 2002-09-13  Peter Verthez  <Peter.Verthez@advalvas.be>
243
244         * include/gom.h: Add include file to be able to recognize __BEGIN_DECLS
245
246         * doc/make_gom_xref: Corrected 'Generated from' string.
247
248 2002-09-12  Peter Verthez  <Peter.Verthez@advalvas.be>
249
250         * release 0.17
251
252         * gedcom/gedcom_lex_common.c, gedcom/interface.c, gedcom/message.c:
253         Fixes for internationalization.
254
255         * doc/make_gom_xref, doc/usage.html: Documentation for the gedcom
256         object model.
257
258 2002-09-09  Peter Verthez  <Peter.Verthez@advalvas.be>
259
260         * gom/*: First check-in of gedcom object model.
261
262 2002-09-08  Peter Verthez  <Peter.Verthez@advalvas.be>
263
264         * all: More thorough error checking on library calls.
265
266 2002-09-01  Peter Verthez  <Peter.Verthez@advalvas.be>
267
268         * gedcom/gedcom.y: Use XREF_ANY for an association instead of XREF_INDI
269
270         * include/gedcom.h.in, gedcom/xref.c: Added XREF_ANY for when type of
271         xref_value is not known yet.  Added function gedcom_get_by_xref.
272
273 2002-08-28  Peter Verthez  <Peter.Verthez@advalvas.be>
274
275         * gedcom/interface.c: A little more checking (for duplicate
276         registration).
277
278         * gedcom/age.c, gedcom/age.h, gedcom/gedcom.y, include/gedcom.h,
279         t/standalone.c:
280         Parsing age values.
281
282 2002-08-25  Peter Verthez  <Peter.Verthez@advalvas.be>
283
284         * gedcom/xref.c: Clean up xref table at exit (not after check), or when
285         new file is parsed.
286
287         * include/gedcom.h.in, gedcom/interface.c, t/standalone.c: Added
288         extra argument to callback functions: the record/element identifier.
289
290 2002-08-16  Peter Verthez  <Peter.Verthez@advalvas.be>
291
292         * gedcom/compat.*, gedcom/gedcom.y: Moved all compatibility handling
293         functions to compat.c; let default charset depend on the program.
294
295         * t/test_script: Check for a core file.
296
297         * release 0.16
298
299         * t/dates.test, t/encoding_error.test: New tests.
300
301         * t/utf8-locale.c: Remove conversion warning at compilation.
302
303         * t/test_script: Enhancements to use script outside 'make check'.
304
305         * t/standalone.c, t/bogus.test: Parse bogus file only if enabled
306         via option.
307
308         * t/Makefile.am: Added rule to be able to perform single tests.
309
310         * gedcom/encoding.c, gedcom/gedcom_lex_common.c: Handle illegal
311         characters in to_internal (to avoid crashes).
312
313         * Lots of files: Add compability for Lifelines.
314
315         * Makefile.inc, gedcom/Makefile.am, gedcom/gedcom_lex_common.c,
316         gedcom/gedcom_date.lex:
317         Added rule that can help to avoid unnecessary recompilation of lex
318         files.  It generates a new include file only when necessary: use this
319         one in lex files.
320
321 2002-04-08  Peter Verthez  <Peter.Verthez@advalvas.be>
322
323         * t/minimal.test: Added test on a minimal GEDCOM file.
324
325 2002-03-27  Peter Verthez  <Peter.Verthez@advalvas.be>
326
327         * release 0.15
328
329         * gedcom/multilex.c: Make the use of gedcom_init() mandatory.
330
331 2002-03-17  Peter Verthez  <Peter.Verthez@advalvas.be>
332
333         * gedcom/gedcom.y: Graceful error handling on bogus input.
334
335         * t/path1.test, t/path2.test, t/pathtest.c: New tests (for the
336         GCONV_PATH environment variable).
337
338         * Moved the test program to the t subdirectory.
339
340         * standalone.c, doc/usage.html: Use of the gedcom_init() function.
341
342         * gedcom/multilex.c, gedcom/encoding.*: Added gedcom_init() function
343         to avoid problem with GCONV_PATH environment variable (see note in
344         gedcom/encoding.c).
345
346 2002-01-22  Peter Verthez  <Peter.Verthez@advalvas.be>
347
348         * gedcom/gedcom.y, gedcom/compat.c, gedcom/compat.h: Added
349         compatibility handling for ftree.
350
351 2002-01-20  Peter Verthez  <Peter.Verthez@advalvas.be>
352
353         * release 0.14
354
355         * restructured the test setup
356
357 2002-01-19  Peter Verthez  <Peter.Verthez@advalvas.be>
358
359         * gedcom.h: Renamed to gedcom.h.in: at configure, the VERSION
360         variables are substituted and the file gedcom.h is written
361
362         * utf8-locale.c: Added parameter to conversion from UTF-8 to locale,
363         to return number of conversion failures.
364
365 2002-01-16  Peter Verthez  <Peter.Verthez@advalvas.be>
366
367         * gedcom/xref.c: Make sure that the 'string' member of an xref always
368         contains a valid string.
369
370         * gedcom/gedcom.y: in use of INVALID_TAG: tag is struct instead of
371         simple string.
372
373         * gedcom/multilex.c (gedcom_parse_file): setlocale returns a string
374         in static storage, so must use strdup and free afterwards.
375
376 2002-01-15  Peter Verthez  <Peter.Verthez@advalvas.be>
377
378         * gedcom/encoding.c: Separate the modification of GCONV_PATH from the
379         rest of the initialization, and let it be called before main (necessary
380         because iconv_open will only look at GCONV_PATH once, and e.g. GTK
381         calls iconv_open very early).
382
383         * gedcom/gedcom.y: Don't allow the parser to continue if the conversion
384         context couldn't be opened, even if IGNORE_ERRORS.
385
386         * gedcom/multilex.c (gedcom_parse_file): Save the old locale (in case
387         the application had set it).
388
389 2002-01-13  Peter Verthez  <Peter.Verthez@advalvas.be>
390
391         * utf8-locale.c: Example implementation for conversion UTF-8 to
392         locale.
393
394 2002-01-12  Peter Verthez  <Peter.Verthez@advalvas.be>
395
396         * more documentation...
397
398 2002-01-10  Peter Verthez  <Peter.Verthez@advalvas.be>
399
400         * doc/parser.html: Start of character set explanation.
401
402         * enhancements to Makefiles for documentation.
403
404         * gedcom/Makefile.am, gedcom/gedcom_lex_common.c: Some bugfixes for the
405         standalone lexers.
406
407 2002-01-05  Peter Verthez  <Peter.Verthez@advalvas.be>
408
409         * release 0.13
410
411         * xref.*, gedcom.y, gedcom.h: Parse and process cross-references.
412
413         * encoding.c: Bugfixes in using the hash implementation of kazlib.
414
415         * interface.h: Add a variable to the GEDCOM_MAKE_* macros, to be able
416         to have two of these macros in one statement.  Move GEDCOM_MAKE_DATE
417         to date.h.
418
419 2002-01-03  Peter Verthez  <Peter.Verthez@advalvas.be>
420
421         * gedcom.y: Bugfix for context handling of tags that are grouped in
422         the yacc file.
423
424         * gedcom.y, gedcom.h, standalone.c, interface.*: Record can also
425         have a value (e.g. the NOTE record), so extra value necessary on
426         start record callback.
427
428         * gedcom.y: Correct value of NOTE element (opt_line_item was missing
429         an action).
430
431 2002-01-02  Peter Verthez  <Peter.Verthez@advalvas.be>
432
433         * lots of files: Pass the parsed tag value (integer) together with
434         the string value in the callbacks.  For this, a separate header is
435         auto-generated, containing the #defines from bison.
436
437         * t/test_script: Return exit code from testgedcom.
438
439         * gedcom/hash.*, gedcom/encoding.*: Use hash implementation from
440         kazlib (see AUTHORS for pointer).
441
442 2001-12-31  Peter Verthez  <Peter.Verthez@advalvas.be>
443
444         * release 0.12
445
446 2001-12-30  Peter Verthez  <Peter.Verthez@advalvas.be>
447
448         * all: Added some initial documentation.
449
450         * gedcom/gedcom.y: Completed the calling of callbacks.
451
452 2001-12-29  Peter Verthez  <Peter.Verthez@advalvas.be>
453
454         * gedcom/gedcom_date.y: Added graceful fallback for date parse errors:
455         put everything as a 'date phrase'.
456
457 2001-12-28  Peter Verthez  <Peter.Verthez@advalvas.be>
458
459         * gedcom_date.*, date.*: Parsing dates via a separate yacc parser.
460
461         * gedcom/calendar/*: Calendar routines by Scott E. Lee
462
463         * gedcom.y: Added some more callbacks (not complete yet)
464
465 2001-12-23  Peter Verthez  <Peter.Verthez@advalvas.be>
466
467         * include/gedcom.h: Add some declarations so that the external header
468         can be used in C++ programs.
469
470 2001-12-22  Peter Verthez  <Peter.Verthez@advalvas.be>
471
472         * Makefile.am, gedcom/Makefile.am: Don't link libgedcom with libintl:
473         leave that to the applications.
474
475 2001-12-15  Peter Verthez  <Peter.Verthez@advalvas.be>
476
477         * release 0.11
478         Moved CVS repository to sourceforge.net (project gedcom-parse)
479
480 2001-12-10  Peter Verthez  <Peter.Verthez@advalvas.be>
481
482         * all: Use of gettext.
483
484         * gedcom/Makefile.am: Support for the lexer test programs.
485
486         * all: Moved to LGPL license.
487
488 2001-12-09  Peter Verthez  <Peter.Verthez@advalvas.be>
489
490         * gedcom/encoding.c (init_encodings): Put data directory of libgedcom
491         in the GCONV_PATH environment variable (for the ANSEL encoding).
492
493         * release 0.10
494
495         * all: Full move to autoconf/automake.
496
497 2001-12-08  Peter Verthez  <Peter.Verthez@advalvas.be>
498
499         * all: Further specification of interface: message handler.
500         Start of specification of callbacks.
501
502 2001-12-03  Peter Verthez  <Peter.Verthez@advalvas.be>
503
504         * Uploaded release 0.9 to genes at SourceForge.
505
506 2001-12-02  Peter Verthez  <Peter.Verthez@advalvas.be>
507
508         * release 0.9
509
510         * gedcom.h, Makefile: Add dmalloc testability.
511
512         * all: Reset the state properly for parsing new files.
513
514         * release 0.8
515
516         * encoding.c: Specify explicitly the output buffer for to_internal:
517         used to put pointers and tags in different output buffer.
518
519         * gedcom_lex_common.c: New file containing all lex actions (is common
520           for all lexers).  Better checks for maximum lengths.
521
522 2001-12-01  Peter Verthez  <Peter.Verthez@advalvas.be>
523
524         * gedcom_*.lex: Return level number together with OPEN token.
525
526 2001-11-27  Peter Verthez  <Peter.Verthez@advalvas.be>
527
528         * gedcom.enc: Adapt default iconv encoding names (to also support
529         glibc-2.1.x).
530
531 2001-11-25  Peter Verthez  <Peter.Verthez@advalvas.be>
532
533         * all: added proper copyright notice (copyright to the Genes
534         Development Team)
535
536         * release 0.7
537           Uploaded to genes at SourceForge.
538
539         * all: general cleanup, making sure everything is in CVS
540
541 2001-11-24  Peter Verthez  <Peter.Verthez@advalvas.be>
542
543         * release 0.6
544
545         * ANSEL decoding added.
546
547 2001-11-23  Peter Verthez  <Peter.Verthez@advalvas.be>
548
549         * release 0.5
550
551         * Now with encoding mapping via configuration file.
552
553 2001-11-16  Peter Verthez  <Peter.Verthez@advalvas.be>
554
555         * release 0.4
556
557         * Now with full unicode support.
558
559 2001-11-04  Peter Verthez  <Peter.Verthez@advalvas.be>
560
561         * release 0.3
562
563         * Compatibility mode implemented.
564
565 2001-11-01  Peter Verthez  <Peter.Verthez@advalvas.be>
566
567         * release 0.2
568
569         * Now with full error handling of tags and subtags.
570
571         * release 0.1
572
573         * Now covering the entire GEDCOM spec, without error handling.
574