X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=src%2Fsiconv.c;h=9467237aa52aedfa674c7146ff001847ec089182;hb=9ee70f4c22c4990e7fe62a5238caa6b4e71f6a0f;hp=e351b13df011ac4e754177412702ccf32ebc4bda;hpb=00106dc85fcaa3b02f9a0d471ea90a594bf3a175;p=yaz-moved-to-github.git diff --git a/src/siconv.c b/src/siconv.c index e351b13..9467237 100644 --- a/src/siconv.c +++ b/src/siconv.c @@ -2,7 +2,7 @@ * Copyright (c) 1997-2004, Index Data * See the file LICENSE for details. * - * $Id: siconv.c,v 1.3 2004-03-15 21:39:06 adam Exp $ + * $Id: siconv.c,v 1.4 2004-03-15 22:51:10 adam Exp $ */ /* mini iconv and wrapper for system iconv library (if present) */ @@ -226,27 +226,11 @@ static unsigned long yaz_read_marc8 (yaz_iconv_t cd, unsigned char *inp, size_t inbytesleft0 = inbytesleft; inp++; inbytesleft--; - if (inbytesleft <= 1) - { - *no_read = 0; - cd->my_errno = YAZ_ICONV_EINVAL; - return 0; - } - if (*inp == '(' || *inp == ',') /* GO, one bytes */ + while(inbytesleft > 0 && strchr("(,$", *inp)) { inbytesleft--; inp++; } - else if (*inp == '$') /* G0, multi byte */ - { - inbytesleft--; - inp++; - if (inp[0] == ',') - { - inbytesleft--; - inp++; - } - } if (inbytesleft <= 0) { *no_read = 0;