Ilya Shpigor <shpigor@etersoft.ru> writes:
+ /* Parse options */
+ for(i = 0; i < argc; i++)
+ {
+ if (argv[i][0] == '/')
+ {
+ for(j = 0; j < sizeof(sFlags) / sizeof(sFlags[0]); j++)
+ if (!strcmpiW(argv[i], sFlags[j].wFlag))
+ {
+ comp |= sFlags[j].nFlag;
+ goto next;
+ }
+ }
+ next:
+ continue;
+ }
+
+ if ((comp & CMD_FLAGS) == EFLAGC) /* copy file */
+ {
+ WINE_FIXME("/C not implemented\n");
+ } else if ((comp & CMD_FLAGS) == EFLAGD) /* display CAB archive */
+ {
+ WINE_FIXME("/D not implemented\n");
+ } else if ((comp & CMD_FLAGS) == EFLAGE) /* extract CAB archive */
+ {
+ WINE_FIXME("/E not implemented\n");
+ } else if ((comp & CMD_FLAGS) == 0) /* expand mode */
+ {
+ WINE_FIXME("Expand mode not implemented\n");
+ }
That parsing approach is not really appropriate here, the options are
not just a bunch of flags, there are options with arguments, mutually
exclusive modes, etc. Some sort of switch() statement would be more
natural.