Allow combined single char options (again)
[yaz-moved-to-github.git] / src / options.c
index 3125735..88c1c92 100644 (file)
@@ -1,8 +1,6 @@
-/*
- * Copyright (C) 1995-2007, Index Data ApS
+/* This file is part of the YAZ toolkit.
+ * Copyright (C) 1995-2009 Index Data
  * See the file LICENSE for details.
- *
- * $Id: options.c,v 1.6 2008-02-19 19:58:40 adam Exp $
  */
 /**
  * \file options.c
@@ -22,7 +20,7 @@ static int arg_off = 0;
 int options (const char *desc, char **argv, int argc, char **arg)
 {
     const char *opt_buf = 0;
-    int i = 0;
+    size_t i = 0;
     int ch = 0;
     
     if (arg_no >= argc)
@@ -57,7 +55,7 @@ int options (const char *desc, char **argv, int argc, char **arg)
         int type = 0;
         while (desc[i] == '{')
         {
-            int i0 = ++i;
+            size_t i0 = ++i;
             while (desc[i] && desc[i] != '}')
                 i++;
             if (opt_buf && (i - i0) == strlen(opt_buf) &&
@@ -67,7 +65,7 @@ int options (const char *desc, char **argv, int argc, char **arg)
                 i++;
         }
         if (desc[i] == ':')
-        {       /* string argument */
+        {       /* option with string argument */
                 type = desc[i++];
         }
         if (desc_char == ch)
@@ -92,9 +90,7 @@ int options (const char *desc, char **argv, int argc, char **arg)
             }
             else /* option with no argument */
             {
-                if (argv[arg_no][arg_off])
-                    arg_off++;
-                else
+                if (!argv[arg_no][arg_off])
                 {
                     arg_off = 0;
                     arg_no++;