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