Handle numeric subfields correctly.
[yaz-moved-to-github.git] / src / marc_read_line.c
index 684a522..d669576 100644 (file)
 #include <yaz/wrbuf.h>
 #include <yaz/yaz-util.h>
 
-int yaz_gets(int (*getbyte)(void *client_data),
-             void (*ungetbyte)(int b, void *client_data),
-             void *client_data,
-             WRBUF w)
+static int yaz_gets(int (*getbyte)(void *client_data),
+                    void (*ungetbyte)(int b, void *client_data),
+                    void *client_data,
+                    WRBUF w)
 {
     size_t sz = 0;
     int ch = getbyte(client_data);
@@ -202,7 +202,8 @@ int yaz_marc_read_line(yaz_marc_t mt,
                     while ((next = strchr(next, marker_ch)))
                     {
                         if ((next[1] >= 'A' && next[1] <= 'Z')
-                            ||(next[1] >= 'a' && next[1] <= 'z'))
+                            ||(next[1] >= 'a' && next[1] <= 'z')
+                            ||(next[1] >= '0' && next[1] <= '9'))
                         {
                             if (!marker_skip)
                                 break;