From 1b8d85e90507f3ce6e653b976c8dc3915ea74d84 Mon Sep 17 00:00:00 2001 From: justin1014 Date: Fri, 13 Sep 2002 18:12:30 +0000 Subject: [PATCH] cleanups to command lien parm shit, smaller now git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@1000 212acab6-be3b-0410-9dea-997c60f758d6 --- Source/exehead/Main.c | 36 +++++++++++++----------------------- 1 file changed, 13 insertions(+), 23 deletions(-) diff --git a/Source/exehead/Main.c b/Source/exehead/Main.c index 10bf4dde..d08f7b88 100644 --- a/Source/exehead/Main.c +++ b/Source/exehead/Main.c @@ -119,42 +119,32 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInst,LPSTR lpszCmdParam, if (*cmdline) cmdline=CharNext(cmdline); realcmds=cmdline; - do + for (;;) { -#ifdef NSIS_CONFIG_CRC_SUPPORT -#endif//NSIS_CONFIG_CRC_SUPPORT + // skip over any spaces while (*cmdline == ' ') cmdline=CharNext(cmdline); if (cmdline[0] != '/') break; cmdline++; + + #if defined(NSIS_CONFIG_VISIBLE_SUPPORT) && defined(NSIS_CONFIG_SILENT_SUPPORT) - if (cmdline[0] == 'S' && (cmdline[1] == ' ' || !cmdline[1])) - { - silent++; - cmdline+=2; - } - else + if (cmdline[0] == 'S' && (cmdline[1] == ' ' || !cmdline[1])) silent++; #endif//NSIS_CONFIG_SILENT_SUPPORT && NSIS_CONFIG_VISIBLE_SUPPORT #ifdef NSIS_CONFIG_CRC_SUPPORT - if (cmdline[0] == 'N' && - cmdline[1] == 'C' && - cmdline[2] == 'R' && - cmdline[3] == 'C' && - (cmdline[4] == ' ' || !cmdline[4])) - { - no_crc++; - cmdline+=4; - } - else + if (*(int*)cmdline == *(int*)"NCRC" && (cmdline[4] == ' ' || !cmdline[4])) no_crc++; #endif//NSIS_CONFIG_CRC_SUPPORT - if (cmdline[0] == 'D' && cmdline[1] == '=') + + if (*(short*)cmdline == *(short*)"D=") { cmdline[-2]=0; // keep this from being passed to uninstaller if necessary mystrcpy(state_install_directory,cmdline+2); - while (*cmdline) cmdline++; + cmdline=""; // prevent further processing of cmdline + break; // not necessary, but for some reason makes smaller exe :) } - else while (*cmdline && *cmdline != ' ') cmdline=CharNext(cmdline); + + // skip over our parm + while (*cmdline && *cmdline != ' ') cmdline=CharNext(cmdline); } - while (*cmdline); mystrcpy(g_caption,_LANG_GENERIC_ERROR);