added enhanced argument parsing
authorkramm <kramm>
Tue, 23 Oct 2001 17:15:20 +0000 (17:15 +0000)
committerkramm <kramm>
Tue, 23 Oct 2001 17:15:20 +0000 (17:15 +0000)
src/swfstrings.c

index 2bf1d9a..de967bd 100644 (file)
 #include <stdio.h>\r
 #include <fcntl.h>\r
 #include "../lib/rfxswf.h"\r
+#include "../lib/args.h"\r
+\r
+char * filename = 0;\r
+\r
+struct options_t options[] =\r
+{\r
+ {"v","verbose"},\r
+ {"V","version"},\r
+ {0,0}\r
+};\r
+\r
+int args_callback_option(char*name,char*val)\r
+{\r
+    if(!strcmp(name, "V")) {\r
+       printf("swfstrings - part of %s %s\n", PACKAGE, VERSION);\r
+       exit(0);\r
+    }\r
+}\r
+int args_callback_longoption(char*name,char*val)\r
+{\r
+    return args_long2shortoption(options, name, val);\r
+}\r
+void args_callback_usage(char*name)\r
+{    \r
+    printf("\nreflex SWF Text Scan Utility\n(w) 2000 by Rainer Boehme <rb@reflex-studio.de>\n\nUsage: %s filename.swf\n", name);\r
+    exit(0);\r
+}\r
+int args_callback_command(char*name,char*val)\r
+{\r
+    if(filename) {\r
+       fprintf(stderr, "Only one file allowed. You supplied at least two. (%s and %s)\n",\r
+                filename, name);\r
+    }\r
+    filename = name;\r
+    return 0;\r
+}\r
 \r
 SWF swf;\r
   \r
@@ -33,21 +69,24 @@ void fontcallback(U16 id,U8 * name)
 int main (int argc,char ** argv)\r
 { int f;\r
 \r
-  if (argc>1)\r
-  { f = open(argv[1],O_RDONLY);\r
-    if (f>=0)\r
-    { if FAILED(ReadSWF(f,&swf))\r
-      { fprintf(stderr,"%s is not a valid SWF file or contains errors.\n",argv[1]);\r
-        close(f);\r
-      }\r
-      else\r
-      { close(f);\r
-        FontEnumerate(&swf,&fontcallback);\r
-        FreeTags(&swf);\r
-      }\r
-    } else fprintf(stderr,"File not found: %s\n",argv[1]);\r
+  processargs(argc, argv);\r
+  if(!filename)\r
+      exit(0);\r
+\r
+  f = open(filename,O_RDONLY);\r
+  if (f>=0)\r
+  { if FAILED(ReadSWF(f,&swf))\r
+    { fprintf(stderr,"%s is not a valid SWF file or contains errors.\n",filename);\r
+      close(f);\r
+    }\r
+    else\r
+    { close(f);\r
+      FontEnumerate(&swf,&fontcallback);\r
+      FreeTags(&swf);\r
+    }\r
+  } else {\r
+      fprintf(stderr,"File not found: %s\n",argv[1]);\r
   }\r
-  else fprintf(stderr,"\nreflex SWF Text Scan Utility\n(w) 2000 by Rainer Boehme <rb@reflex-studio.de>\n\nUsage: %s filename.swf\n", argv[0]);\r
   \r
   return 0;\r
 }\r