/* Copyright (c) 2002-2012 Croteam Ltd. This program is free software; you can redistribute it and/or modify it under the terms of version 2 of the GNU General Public License as published by the Free Software Foundation This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "SeriousSam/StdH.h" #include #include "CmdLine.h" CTString cmd_strWorld = ""; // world to load INDEX cmd_iGoToMarker = -1; // marker to go to CTString cmd_strScript = ""; // script to execute CTString cmd_strServer = ""; // server to connect to INDEX cmd_iPort = -1; // port to connect to CTString cmd_strPassword = ""; // network password CTString cmd_strOutput = ""; // output from parsing command line BOOL cmd_bServer = FALSE; // set to run as server BOOL cmd_bQuickJoin = FALSE; // do not ask for players and network settings static CTString _strCmd; // get first next word or quoted string CTString GetNextParam(void) { // strip leading spaces/tabs _strCmd.TrimSpacesLeft(); // if nothing left if (_strCmd=="") { // no word to return return ""; } // if the first char is quote if (_strCmd[0]=='"') { // find first next quote char *pchClosingQuote = (char *) strchr(_strCmd+1, '"'); // if not found if (pchClosingQuote==NULL) { // error in command line cmd_strOutput+=CTString(0, TRANS("Command line error!\n")); // finish parsing _strCmd = ""; return ""; } INDEX iQuote = pchClosingQuote-_strCmd; // get the quoted string CTString strWord; CTString strRest; _strCmd.Split(iQuote, strWord, strRest); // remove the quotes strWord.DeleteChar(0); strRest.DeleteChar(0); // get the word _strCmd = strRest; return strWord; // if the first char is not quote } else { // find first next space INDEX iSpace; INDEX ctChars = strlen(_strCmd); for(iSpace=0; iSpace