-void source_add_to_value(NL_TYPE type, Gom_ctxt ctxt, const char* str)
-{
- struct source *sour = SAFE_CTXT_CAST(source, ctxt);
- if (sour) {
- switch (ctxt->ctxt_type) {
- char *newvalue;
- case ELT_SOUR_AUTH:
- newvalue = concat_strings (type, sour->author, str);
- if (newvalue)
- sour->author = newvalue;
- else
- MEMORY_ERROR;
- break;
- case ELT_SOUR_TITL:
- newvalue = concat_strings (type, sour->title, str);
- if (newvalue)
- sour->title = newvalue;
- else
- MEMORY_ERROR;
- break;
- case ELT_SOUR_PUBL:
- newvalue = concat_strings (type, sour->publication, str);
- if (newvalue)
- sour->publication = newvalue;
- else
- MEMORY_ERROR;
- break;
- case ELT_SOUR_TEXT:
- newvalue = concat_strings (type, sour->text, str);
- if (newvalue)
- sour->text = newvalue;
- else
- MEMORY_ERROR;
- break;
- default:
- UNEXPECTED_CONTEXT(ctxt->ctxt_type);
- }
- }
-}
-