CCL: slight reformat
[yaz-moved-to-github.git] / src / opac_to_xml.c
index eb3fcdd..f365082 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is part of the YAZ toolkit.
- * Copyright (C) 1995-2013 Index Data
+ * Copyright (C) Index Data
  * See the file LICENSE for details.
  */
 /**
@@ -31,10 +31,11 @@ static void opac_element_str(WRBUF wrbuf, yaz_iconv_t cd1, yaz_iconv_t cd2,
         wrbuf_puts(wrbuf, ">");
 
         pos = wrbuf->pos; /* save position */
-        if (wrbuf_iconv_write_x(wrbuf, cd1, data, strlen(data), 1) && cd2)
+        if (wrbuf_iconv_write2(wrbuf, cd1, data, strlen(data), wrbuf_xmlputs_n)
+            && cd2)
         {
             wrbuf->pos = pos; /* rewind to pos */
-            wrbuf_iconv_write_x(wrbuf, cd2, data, strlen(data), 1);
+            wrbuf_iconv_write2(wrbuf, cd2, data, strlen(data), wrbuf_xmlputs_n);
         }
         wrbuf_puts(wrbuf, "</");
         wrbuf_puts(wrbuf, elem);
@@ -156,7 +157,7 @@ void yaz_opac_decode_wrbuf2(yaz_marc_t mt, Z_OPACRecord *r, WRBUF wrbuf,
                     wrbuf_puts(wrbuf,"   <circulation>\n");
                     opac_element_bool(wrbuf, 4, "availableNow",
                                       d->circulationData[j]->availableNow);
-                    opac_element_str(wrbuf, cd1, cd2, 4, "availabiltyDate",
+                    opac_element_str(wrbuf, cd1, cd2, 4,  "availabilityDate",
                                      d->circulationData[j]->availablityDate);
                     opac_element_str(wrbuf, cd1, cd2, 4, "availableThru",
                                       d->circulationData[j]->availableThru);
@@ -190,6 +191,22 @@ void yaz_opac_decode_wrbuf(yaz_marc_t mt, Z_OPACRecord *r, WRBUF wrbuf)
     yaz_opac_decode_wrbuf2(mt, r, wrbuf, 0);
 }
 
+int yaz_opac_check_marc21_coding(const char *charset, Z_OPACRecord *r)
+{
+    if (r->bibliographicRecord)
+    {
+        Z_External *ext = r->bibliographicRecord;
+        if (ext->which == Z_External_octet)
+        {
+            return yaz_marc_check_marc21_coding(
+                charset,
+                (const char *) ext->u.octet_aligned->buf,
+                ext->u.octet_aligned->len);
+        }
+    }
+    return 0;
+}
+
 /*
  * Local variables:
  * c-basic-offset: 4