* as/z80/asmain.c (main): fixed bug #801766
[fw/sdcc] / as / z80 / asmain.c
index f916e9efd622af92b0d18a99260f9e3a47702e00..72c5b98958e12a1925025331a0ef67f60820afd1 100644 (file)
@@ -160,6 +160,21 @@ main(int argc, char **argv)
        register int c, i;
        struct area *ap;
 
+       /* Check to make sure there are the right number of filenames */
+       /* before openning any of them */
+#ifdef SDK
+       inpfil = -2;
+#else /* SDK */
+       inpfil = -1;
+#endif /* SDK */
+       for (i=1; i<argc; ++i) {
+               p = argv[i];
+               if (*p != '-')
+                       inpfil++;
+       }
+       if (inpfil < 0)
+               usage();
+
 #ifdef SDK
        inpfil = -2;
 #else /* SDK */
@@ -854,7 +869,7 @@ loop:
                p = optsdcc;
                if ((c = getnb()) != 0) {
                        do {
-                               if (p < &tb[NINPUT-1])
+                               if (p < &optsdcc[NINPUT-1])
                                        *p++ = c;
                        } while ((c = get()) != 0);
                }