-
- if (ctxt) {
- char *str = GEDCOM_STRING(parsed_value);
- NL_TYPE type = (elt == ELT_SUB_CONT ? WITH_NL : WITHOUT_NL);
- switch (ctxt->ctxt_type) {
- case ELT_HEAD_NOTE:
- header_add_to_note(type, ctxt, str); break;
- case ELT_SUB_SOUR:
- citation_add_to_desc(type, ctxt, str); break;
- case ELT_SUB_SOUR_TEXT:
- citation_add_to_text(type, ctxt, str); break;
- case ELT_SUB_NOTE:
- note_sub_add_to_note(type, ctxt, str); break;
- case REC_NOTE:
- note_add_to_note(type, ctxt, str); break;
- case ELT_SOUR_AUTH:
- case ELT_SOUR_TITL:
- case ELT_SOUR_PUBL:
- case ELT_SOUR_TEXT:
- source_add_to_value(type, ctxt, str); break;
- default:
- UNEXPECTED_CONTEXT(ctxt->ctxt_type);
- }
- return (Gedcom_ctxt) make_gom_ctxt(elt, ctxt->obj_type, ctxt->ctxt_ptr);
- }
- else {
- return (Gedcom_ctxt) MAKE_GOM_CTXT(elt, NULL, NULL);
- }
+ Gom_ctxt result = NULL;
+
+ if (! ctxt)
+ NO_CONTEXT;
+ else
+ result = make_gom_ctxt(elt, ctxt->obj_type, ctxt->ctxt_ptr);
+
+ return (Gedcom_ctxt)result;