odr_prepend: zero length prefix ignored
[yaz-moved-to-github.git] / src / odr_util.c
index 644c3c3..58b60cb 100644 (file)
@@ -20,7 +20,7 @@ void odr_prname(ODR o, const char *name)
     if (o->op->indent < 16)
         odr_printf(o, "%*s", o->op->indent * 2, "");
     else
-        odr_printf(o, "level=%-7d%*s", o->op->indent, 
+        odr_printf(o, "level=%-7d%*s", o->op->indent,
                    2 * (o->op->indent % 8) , "");
     if (name)
         odr_printf(o, "%s ", name);
@@ -107,9 +107,9 @@ char *odr_prepend(ODR o, const char *prefix, const char *old)
     char *res = (char*) odr_malloc (o, olen + plen + 2);
 
     *res = '\0';
-    if (prefix != 0)
+    if (plen > 0)
         strcpy (res, prefix);
-    if (prefix != 0 && old != 0)
+    if (plen > 0 && old != 0)
         strcat (res, "/");
     if (old !=0)
         strcat (res, old);