Blob Blame History Raw
diff -up dos2unix-3.1/dos2unix.c.c-missing-arg dos2unix-3.1/dos2unix.c
--- dos2unix-3.1/dos2unix.c.c-missing-arg	2008-01-18 09:24:21.000000000 +0000
+++ dos2unix-3.1/dos2unix.c	2008-01-18 09:25:43.000000000 +0000
@@ -533,19 +533,28 @@ int main (int argc, char *argv[])
       
       if ((strcmp(argv[ArgIdx],"-c") == 0) || (strcmp(argv[ArgIdx],"--convmode") == 0))
       {
-        ArgIdx++;
-        if (strcmpi(argv[ArgIdx],"ASCII") == 0)
-          pFlag->ConvMode = 0;
-        else if (strcmpi(argv[ArgIdx], "7Bit") == 0)
-          pFlag->ConvMode = 1;
-        else if (strcmpi(argv[ArgIdx], "ISO") == 0)
-          pFlag->ConvMode = 2;
-        else if (strcmpi(argv[ArgIdx], "Mac") == 0)
-          pFlag->ConvMode = 3;
+        if (++ArgIdx < argc)
+        {
+          if (strcmpi(argv[ArgIdx],"ASCII") == 0)
+            pFlag->ConvMode = 0;
+          else if (strcmpi(argv[ArgIdx], "7Bit") == 0)
+            pFlag->ConvMode = 1;
+          else if (strcmpi(argv[ArgIdx], "ISO") == 0)
+            pFlag->ConvMode = 2;
+          else if (strcmpi(argv[ArgIdx], "Mac") == 0)
+            pFlag->ConvMode = 3;
+          else
+          {
+            if (!pFlag->Quiet)
+              fprintf(stderr, "dos2unix: invalid %s conversion mode specified\n",argv[ArgIdx]);
+            ShouldExit = 1;
+          }
+        }
         else
         {
+          ArgIdx--;
           if (!pFlag->Quiet)
-            fprintf(stderr, "dos2unix: invalid %s conversion mode specified\n",argv[ArgIdx]);
+            fprintf(stderr,"dos2unix: option `%s' requires an argument\n",argv[ArgIdx]);
           ShouldExit = 1;
         }
       }