record_render: simplify a bit
[yaz-moved-to-github.git] / src / record_render.c
index 69a208b..c48406c 100644 (file)
@@ -34,7 +34,7 @@ static yaz_iconv_t iconv_create_charset(const char *record_charset,
     yaz_iconv_t cd = 0;
     char *from_set1 = 0;
     char *from_set2 = 0;
-    char *to_set = 0;
+    char *to_set = "utf-8";
     if (record_charset && *record_charset)
     {
         char *cp = charset_buf;
@@ -62,11 +62,11 @@ static yaz_iconv_t iconv_create_charset(const char *record_charset,
     }
     
     if (from_set1)
-        cd = yaz_iconv_open(to_set ? to_set : "UTF-8", from_set1);
+        cd = yaz_iconv_open(to_set, from_set1);
     if (cd2)
     {
         if (from_set2)
-            *cd2 = yaz_iconv_open(to_set ? to_set : "UTF-8", from_set2);
+            *cd2 = yaz_iconv_open(to_set, from_set2);
         else
             *cd2 = 0;
     }
@@ -367,6 +367,8 @@ const char *yaz_record_render(Z_NamePlusRecord *npr, const char *schema,
         {
             size_t j = 0;
             i = i + 8; /* skip charset= */
+            while (cp[i] == ' ')
+                i++;
             for (j = 0; cp[i] && cp[i] != ';' && cp[i] != ' '; i++)
             {
                 if (j < sizeof(charset)-1)
@@ -378,6 +380,8 @@ const char *yaz_record_render(Z_NamePlusRecord *npr, const char *schema,
         {
             size_t j = 0; 
             i = i + 7;
+            while (cp[i] == ' ')
+                i++;
             for (j = 0; cp[i] && cp[i] != ';' && cp[i] != ' '; i++)
             {
                 if (j < sizeof(format)-1)
@@ -389,7 +393,8 @@ const char *yaz_record_render(Z_NamePlusRecord *npr, const char *schema,
         {
             size_t i0;
             i = i + 7;
-
+            while (cp[i] == ' ')
+                i++;
             i0 = i;
             while (cp[i] && cp[i] != ';')
                 i++;
@@ -460,7 +465,7 @@ const char *yaz_record_render(Z_NamePlusRecord *npr, const char *schema,
     if (base64_xpath)
     {
         char *type_spec = nmem_malloc(nmem,
-                                      strlen(format) + strlen(charset) + 11);
+                                      strlen(type) + strlen(charset) + 11);
         strcpy(type_spec, type);
         if (*charset)
         {