Allow elements out of context in GOM.
[gedcom-parse.git] / gom / note_sub.c
index e523b32ba120dc0cece1800f11f24642d0922180..f8dedefa46ff1496b7a7d6ee1d48e2060dbe0f08 100644 (file)
@@ -54,10 +54,11 @@ Gedcom_ctxt sub_note_start(_ELT_PARAMS_)
   else {
     struct note_sub *note = SUB_MAKEFUNC(note_sub)();
     if (note) {
+      int type = ctxt_type(ctxt);
       if (GEDCOM_IS_XREF_PTR(parsed_value))
        note->reference = GEDCOM_XREF_PTR(parsed_value);
 
-      switch (ctxt->ctxt_type) {
+      switch (type) {
        case ELT_SUB_PLAC:
          ADDFUNC2(place,note_sub)(ctxt, note); break;
        case ELT_SUB_FAM_EVT:
@@ -101,7 +102,7 @@ Gedcom_ctxt sub_note_start(_ELT_PARAMS_)
        case REC_SOUR:
          ADDFUNC2(source,note_sub)(ctxt, note); break;
        default:
-         UNEXPECTED_CONTEXT(ctxt->ctxt_type);
+         UNEXPECTED_CONTEXT(type);
       }
       result = MAKE_GOM_CTXT(elt, note_sub, note);
     }
@@ -126,12 +127,16 @@ void sub_note_end(_ELT_END_PARAMS_)
        else
          obj->text = newvalue;
       }
-      destroy_gom_ctxt(ctxt);
+      def_elt_end(elt, parent, self, parsed_value);
     }
   }
 }
 
 DEFINE_SUB_MAKEFUNC(note_sub)
+DEFINE_SUB_ADDFUNC(note_sub)
+DEFINE_SUB_FINDFUNC(note_sub)
+DEFINE_SUB_REMOVEFUNC(note_sub)
+DEFINE_SUB_MOVEFUNC(note_sub)
      
 DEFINE_ADDFUNC2(note_sub, source_citation, citation)
 DEFINE_ADDFUNC2(note_sub, user_data, extra)