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