Update header about CQL grammar
[yaz-moved-to-github.git] / src / ber_any.c
index 4a73314..3322a02 100644 (file)
@@ -1,9 +1,9 @@
 /* This file is part of the YAZ toolkit.
- * Copyright (C) 1995-2009 Index Data
+ * Copyright (C) 1995-2013 Index Data
  * See the file LICENSE for details.
  */
 
-/** 
+/**
  * \file ber_any.c
  * \brief Implements BER ANY encoding and decoding.
  *
@@ -21,7 +21,7 @@
 int ber_any(ODR o, Odr_any **p)
 {
     int res;
-    
+
     switch (o->direction)
     {
     case ODR_DECODE:
@@ -49,7 +49,7 @@ int completeBER_n(const unsigned char *buf, int len, int level)
 {
     int res, ll, zclass, tag, cons;
     const unsigned char *b = buf;
-    
+
     if (level > 1000)
     {
 #if BER_ANY_DEBUG
@@ -74,7 +74,7 @@ int completeBER_n(const unsigned char *buf, int len, int level)
 #endif
         return -1;  /* error */
     }
-    if (res == -1)  
+    if (res == -1)
     {
 #if BER_ANY_DEBUG
         yaz_log(YLOG_LOG, "<<<<<<<<< return2 lev=%d res=%d", level, res);
@@ -109,10 +109,9 @@ int completeBER_n(const unsigned char *buf, int len, int level)
     {
         if (b[0] == 0 && b[1] == 0)
             break;
-        if (!(res = completeBER_n(b, len, level+1)))
-            return 0;
-        if (res == -1)
-            return -1;
+        res = completeBER_n(b, len, level+1);
+        if (res <= 0)
+            return res;
         b += res;
         len -= res;
     }