Take care of const correctness.
[gedcom-parse.git] / gedcom / gedcom.y
index f305257db49f2f0f6e59a7c1db9c17c4347036ca..b10e0c24e7e1b4e87686ac9fb0adbd3acc01efb6 100644 (file)
 #include "encoding.h"
 #include "interface.h"
 #include "date.h"
+#include "age.h"
 #include "xref.h"
 #include "compat.h"
 
@@ -663,9 +664,9 @@ head_date_time_sect : OPEN DELIM TAG_TIME mand_line_item
 
 /* HEAD.TIME (Only for 'Lifelines' compatibility) */
 /* Just ignore the time... */
-head_time_sect : OPEN DELIM TAG_TIME opt_line_item
-                 { }
-                 CLOSE
+head_time_sect : OPEN DELIM TAG_TIME opt_line_item CLOSE
+                 { gedcom_warning(_("Header change time lost in the compatibility"));
+                 }
               ;
 
 /* HEAD.SUBM */
@@ -2014,7 +2015,7 @@ assoc_struc_sub : asso_sect /* 0:M */
 
 asso_sect : OPEN DELIM TAG_ASSO mand_pointer
             { struct xref_value *xr = gedcom_parse_xref($4, XREF_USED,
-                                                       XREF_INDI);
+                                                       XREF_ANY);
              if (xr == NULL) HANDLE_ERROR;
              $<ctxt>$ = start_element(ELT_SUB_ASSO,
                                       PARENT, $1, $3, $4, 
@@ -2241,10 +2242,11 @@ event_detail_date_sect : OPEN DELIM TAG_DATE mand_line_item
                         }
                        ;
 event_detail_age_sect  : OPEN DELIM TAG_AGE mand_line_item 
-                         { $<ctxt>$
+                         { struct age_value age = gedcom_parse_age($4);
+                          $<ctxt>$
                             = start_element(ELT_SUB_EVT_AGE,
                                             PARENT, $1, $3, $4, 
-                                            GEDCOM_MAKE_STRING(val1, $4));
+                                            GEDCOM_MAKE_AGE(val1, age));
                           START(AGE, $<ctxt>$)  
                          }  
                          no_std_subs  
@@ -2347,9 +2349,10 @@ fam_even_husb_sub : fam_even_age_sect  { OCCUR2(AGE, 1, 1) }
                   ;
 
 fam_even_age_sect : OPEN DELIM TAG_AGE mand_line_item  
-                    { $<ctxt>$ = start_element(ELT_SUB_FAM_EVT_AGE,
+                    { struct age_value age = gedcom_parse_age($4);
+                     $<ctxt>$ = start_element(ELT_SUB_FAM_EVT_AGE,
                                               PARENT, $1, $3, $4,
-                                              GEDCOM_MAKE_STRING(val1, $4));
+                                              GEDCOM_MAKE_AGE(val1, age));
                      START(AGE, $<ctxt>$)   
                     }   
                     no_std_subs   
@@ -3881,7 +3884,7 @@ void gedcom_set_debug_level(int level, FILE* f)
   }
 }
 
-int gedcom_debug_print(char* s, ...)
+int gedcom_debug_print(const char* s, ...)
 {
   int res = 0;
   if (gedcom_high_level_debug) {