diff --git a/Makefile b/Makefile index 44adc9a..49a1c9d 100644 --- a/Makefile +++ b/Makefile @@ -92,12 +92,20 @@ little unknown: # This can be used to run a program with something like wine or qemu TESTWRAPPER= test: + $(TESTWRAPPER) ./fvcbm -- + $(TESTWRAPPER) ./fvcbm -d -- + $(TESTWRAPPER) ./fvcbm || test "$$?" = 1 + $(TESTWRAPPER) ./fvcbm > generate.txt || test "$$?" = 1 + $(TESTWRAPPER) ./fvcbm -h > generate.txt || test "$$?" = 1 + $(TESTWRAPPER) ./fvcbm -d > generate.txt || test "$$?" = 1 $(TESTWRAPPER) ./fvcbm testdata/* > generate.txt 2>&1 diff expect.txt generate.txt $(TESTWRAPPER) ./fvcbm -d testdata/* > generate.txt 2>&1 diff expect-d.txt generate.txt $(TESTWRAPPER) ./fvcbm testdata/test1 > generate.txt 2>&1 diff expect-x.txt generate.txt + $(TESTWRAPPER) ./fvcbm -- testdata/test1 > generate.txt 2>&1 + diff expect-x.txt generate.txt # # fvcbm targets below this line diff --git a/fvcbm.c b/fvcbm.c index 7316ba0..b7aa6df 100644 --- a/fvcbm.c +++ b/fvcbm.c @@ -227,7 +227,20 @@ int main(int argc, char *argv[]) setvbuf(stdout, NULL, _IOLBF, 82); /* speed up screen output */ #endif - if ((argc < 2) || + if ((argc > 1) && + ((argv[FirstFileName][0] == '-') || (argv[FirstFileName][0] == '/')) && + ((argv[FirstFileName][1] == 'd') +#ifdef CPM + || (argv[FirstFileName][1] == 'D') +#endif + ) && (argv[FirstFileName][2] == '\x0')) { + WideFormat = 0; /* 1541-style output */ + ++FirstFileName; + } else { + WideFormat = 1; /* wide FV-style output */ + } + + if ((argc <= FirstFileName) || (((argv[FirstFileName][0] == '-') || (argv[FirstFileName][0] == '/')) && ((argv[FirstFileName][1] == '?') || (argv[FirstFileName][1] == 'h') #ifdef CPM @@ -246,18 +259,6 @@ int main(int argc, char *argv[]) return 1; } - if (((argv[FirstFileName][0] == '-') || (argv[FirstFileName][0] == '/')) && - ((argv[FirstFileName][1] == 'd') -#ifdef CPM - || (argv[FirstFileName][1] == 'D') -#endif - ) && (argv[FirstFileName][2] == '\x0')) { - WideFormat = 0; /* 1541-style output */ - ++FirstFileName; - } else { - WideFormat = 1; /* wide FV-style output */ - } - /* -- ends options */ if ((argv[FirstFileName][0] == '-') && (argv[FirstFileName][1] == '-')) { ++FirstFileName;