X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=tools%2Fctsimtext.cpp;h=51f76f3650382f222ad5e8ac194511b80967c311;hb=b031e60836d3c728886c8b3e3647a069279f4bbd;hp=83d75b0d39d49f33ebe0a366d31dd33d3c200636;hpb=c04ed309e5f8ad29d194b52c0f82f0be53ed56f3;p=ctsim.git diff --git a/tools/ctsimtext.cpp b/tools/ctsimtext.cpp index 83d75b0..51f76f3 100644 --- a/tools/ctsimtext.cpp +++ b/tools/ctsimtext.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: ctsimtext.cpp,v 1.7 2001/01/10 21:02:41 kevin Exp $ +** $Id: ctsimtext.cpp,v 1.14 2001/01/13 05:15:44 kevin Exp $ ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License (version 2) as @@ -45,8 +45,9 @@ extern "C" { // If linked to ctsimtext, but executed as another name, eg pjrec, then program will use that // linked name as name of function. -static const char* const g_szIdStr = "$Id: ctsimtext.cpp,v 1.7 2001/01/10 21:02:41 kevin Exp $"; +static const char* const g_szIdStr = "$Id: ctsimtext.cpp,v 1.14 2001/01/13 05:15:44 kevin Exp $"; static const char* const s_szProgramName = "ctsimtext"; +static const char* const s_szProgramName2 = "ctsimtext.exe"; extern int if1_main (int argc, char* const argv[]); extern int if2_main (int argc, char* const argv[]); @@ -98,17 +99,13 @@ interactive_usage () static bool s_bInteractive = false; - -#define DEBUG 1 - int ctsimtext_main (int argc, char * argv[]) { - int iReturn = 0; + int iReturn = 0; - - if (argc > 1 && strcmp(argv[0], fileBasename (s_szProgramName)) == 0) { - argv = &argv[1]; + if (argc > 1 && (strcmp(s_szProgramName, fileBasename (argv[0])) == 0 || strcmp(s_szProgramName2, fileBasename (argv[0])) == 0)) { + argv++; argc--; iReturn = processCommand (argc, argv); } else if (argc > 1){ @@ -132,7 +129,7 @@ ctsimtext_main (int argc, char * argv[]) char* pszInputLine = new char [s_MaxLineLength+1]; std::cout << szPrompt; std::cin.getline (pszInputLine, s_MaxLineLength); - + #ifdef DEBUG std::cout << "#" << pszInputLine << "#\n"; #endif @@ -216,14 +213,20 @@ convertStringToArgcv (char* pszLine, int* piArgc, char*** pppArgv) } *piArgc = nTokens; - *pppArgv = new char* [nTokens]; - for (unsigned int iToken = 0; iToken < vecpszToken.size(); iToken++) - (*pppArgv)[iToken] = vecpszToken[iToken]; + if (nTokens > 0) { + *pppArgv = new char* [nTokens]; + for (unsigned int iToken = 0; iToken < vecpszToken.size(); iToken++) + (*pppArgv)[iToken] = vecpszToken[iToken]; + } else + *pppArgv = NULL; } static int processCommand (int argc, char* const argv[]) { + if (argc < 1) + return 1; + const char* const pszFunction = fileBasename (argv[0]); if (strcasecmp (pszFunction, "if1") == 0)