MARC-8: allow all characters 0x01-0x20 YAZ-650
[yaz-moved-to-github.git] / src / iconv_decode_marc8.c
index 96a72bd..86f1246 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is part of the YAZ toolkit.
- * Copyright (C) 1995-2008 Index Data
+ * Copyright (C) 1995-2013 Index Data
  * See the file LICENSE for details.
  */
 /**
@@ -17,7 +17,6 @@
 #include <assert.h>
 #include <errno.h>
 #include <string.h>
-#include <ctype.h>
 
 #include <yaz/xmalloc.h>
 #include "iconv-p.h"
@@ -63,7 +62,7 @@ static unsigned long read_marc8(yaz_iconv_t cd, yaz_iconv_decoder_t d,
         *no_read = data->comb_no_read[data->comb_offset];
         x = data->comb_x[data->comb_offset];
 
-        /* special case for double-diacritic combining characters, 
+        /* special case for double-diacritic combining characters,
            INVERTED BREVE and DOUBLE TILDE.
            We'll increment the no_read counter by 1, since we want to skip over
            the processing of the closing ligature character
@@ -173,10 +172,10 @@ static unsigned long yaz_read_marc8_comb(yaz_iconv_t cd,
     }
     if (inbytesleft == 0)
         return 0;
-    else if (*inp == ' ')
+    else if (*inp <= ' ')
     {
         *no_read += 1;
-        return ' ';
+        return *inp;
     }
     else
     {
@@ -279,7 +278,9 @@ yaz_iconv_decoder_t yaz_marc8_decoder(const char *fromcode,
 /*
  * Local variables:
  * c-basic-offset: 4
+ * c-file-style: "Stroustrup"
  * indent-tabs-mode: nil
  * End:
  * vim: shiftwidth=4 tabstop=8 expandtab
  */
+