From c0f53a7f743624e546beaef56b773df4d2012173 Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Fri, 10 Feb 1995 16:52:08 +0000 Subject: [PATCH] Indicator field moved in MARC structure. The FML list representation of a MARC record has changed. --- fml/fmlmarc.c | 37 +++++++++++++++++++------------------ fml/marc.fml | 25 +++++++------------------ 2 files changed, 26 insertions(+), 36 deletions(-) diff --git a/fml/fmlmarc.c b/fml/fmlmarc.c index 0db5ee3..8ed4382 100644 --- a/fml/fmlmarc.c +++ b/fml/fmlmarc.c @@ -2,7 +2,11 @@ * FML interpreter. Europagate, 1995 * * $Log: fmlmarc.c,v $ - * Revision 1.1 1995/02/10 15:50:56 adam + * Revision 1.2 1995/02/10 16:52:08 adam + * Indicator field moved in MARC structure. The FML list representation + * of a MARC record has changed. + * + * Revision 1.1 1995/02/10 15:50:56 adam * MARC interface implemented. Minor bugs fixed. fmltest can * be used to format single MARC records. New function '\list' * implemented. @@ -18,6 +22,7 @@ #include "fmlp.h" +#if 0 struct fml_node *marc_to_fml (Fml fml, Iso2709Rec rec) { struct fml_node *ptr_0 = NULL, *ptr_1; @@ -53,7 +58,7 @@ struct fml_node *marc_to_fml (Fml fml, Iso2709Rec rec) } return ptr_0; } - +#endif static void add_string (const char *str, char **buf, int *max, int *size) { @@ -88,23 +93,21 @@ char *marc_to_str (Fml fml, Iso2709Rec rec) { struct iso2709_field *fields; - add_string ("{", &buf, &max, &size); + add_string ("{\'", &buf, &max, &size); add_string (dir->tag, &buf, &max, &size); + add_string ("\'",&buf, &max, &size); + if (dir->indicator) + { + add_string ("\'", &buf, &max, &size); + add_string (dir->indicator, &buf, &max, &size); + add_string ("\'", &buf, &max, &size); + } + else + add_string ("{}", &buf, &max, &size); add_string ("{", &buf, &max, &size); - for (fields = dir->fields; fields; fields=fields->next) { add_string ("{", &buf, &max, &size); - - if (fields->indicator) - { - add_string ("\'", &buf, &max, &size); - add_string (fields->indicator, &buf, &max, &size); - add_string ("\'", &buf, &max, &size); - } - else - add_string ("{}", &buf, &max, &size); - add_string (" ", &buf, &max, &size); if (fields->identifier) { add_string ("\'", &buf, &max, &size); @@ -113,11 +116,9 @@ char *marc_to_str (Fml fml, Iso2709Rec rec) } else add_string ("{}", &buf, &max, &size); - add_string (" ", &buf, &max, &size); - add_string ("\'", &buf, &max, &size); + add_string (" \'", &buf, &max, &size); add_string (fields->data, &buf, &max, &size); - add_string ("\'", &buf, &max, &size); - add_string ("}", &buf, &max, &size); + add_string ("\'}", &buf, &max, &size); } add_string ("}}\n", &buf, &max, &size); } diff --git a/fml/marc.fml b/fml/marc.fml index bb86797..524efe6 100644 --- a/fml/marc.fml +++ b/fml/marc.fml @@ -1,25 +1,14 @@ # Fml scripts to display MARC records -# $Id: marc.fml,v 1.1 1995/02/10 15:50:57 adam Exp $ -\func display rec { - Record\n - \foreach line {\rec} { - \line \index 1 \ - \foreach field {\line \index 2} { - \field \index 1 - \ $\field \index 2 - \field \index 3 - } - \n - } -} - +# $Id: marc.fml,v 1.2 1995/02/10 16:52:08 adam Exp $ \func f0 rec { \foreach line {\rec} { \line \index 1 \ - \line \index 2 \index 1 \index 1 - \foreach field {\line \index 2} { - \ $\field \index 2\ - \field \index 3 + \line \index 2 + \foreach field {\line \index 3} { + \if {\field \index 1} { + \ $\field \index 1\ + } + \field \index 2 } \n } -- 1.7.10.4