bool checkOptions(OPTIONS *options) { SAP_UC ch = cU('\0'); const SAP_UC * const EDI_DATA_INCOMING = cU("EDI_DATA_INCOMING"); const SAP_UC * const EDI_STATUS_INCOMING = cU("EDI_STATUS_INCOMING"); const unsigned MAX_PATH_LEN = 100; const unsigned MAX_PORT_LEN = 10; if(!options->dest) { if(!options->ashost ) ch = cU('h'); else if(!options->sysnr) ch = cU('s'); else if(!options->user) ch = cU('u'); else if(!options->passwd) ch = cU('p'); else if(!options->client) ch = cU('c'); if(ch) { printfU(cU("Missing or invalid -%c option.\n"), ch); return false; } } if(!options->showSysInfo) { if((!options->function) || (strcmpU(options->function,EDI_DATA_INCOMING) && strcmpU(options->function,EDI_STATUS_INCOMING))) { printfU(cU("Missing or invalid -F option.\n")); return false; } if(!options->path || !options->path[0]) { printfU(cU("Missing or invalid -E PATHNAME= option.\n")); return false; } else if(strlenU(options->path) > MAX_PATH_LEN) { printfU(cU("Path specified by -E PATHNAME= excceeds the maximum length of 100. \n")); return false; } if(!options->port ||!options->port[0] ) { printfU(cU("Missing or invalid -E PORT= option.\n")); return false; } else if(strlenU(options->port) > MAX_PORT_LEN) { printfU(cU("Port name specified by -E PORT= excceeds the maximum length of 10. \n")); return false; } } return true; }
// Append the error if the log is created and visible void CMessageLog::AppendTextError(const SErrorLogEntry * pError) { Assert(pError != NULL); QString sDateTimeError = QDateTime::fromMSecsSinceEpoch(pError->tsError).toLocalTime().toString("yyyy-MM-dd hh:mm:ss"); AppendTextFormat(d_coBlack, "[$Q] ", &sDateTimeError); PSZUC pszmError = pError->szmError; AppendTextU(COX_MakeBold(d_coRedDark), pszmError, ":\n"); AppendTextU(strcmpU(pszmError, c_szInternalErrorDetected) ? d_coRedDark : COX_MakeBold(d_coAssert), pszmError + CbAllocUtoU(pszmError), c_szNewLine); } // AppendTextError()
bool parseCommand(int argc, SAP_UC ** argv, OPTIONS* options) { if( argc < 2 || !strcmpU(argv[1], cU("-help")) || !strcmpU(argv[1], cU("-?"))) { showHelp(); return false; } else if(!strcmpU(argv[1], cU("-v"))) { showVersion(); return false; } int i = 1; const SAP_UC * const PATHNAME = cU("PATHNAME="); const SAP_UC * const PORT = cU("PORT="); const size_t PATHNAME_LEN = 9; const size_t PORT_LEN =5; while(i < argc) { const SAP_UC ch1 = argv[i][0]; const SAP_UC ch2 = argv[i++][1]; if(ch1 == cU('-') && ch2) // we found an option { if(ch2 == cU('t')) { options->trace = 1; continue; } else if(ch2 == cU('i')) { options->showSysInfo = true; continue; } if(i > argc - 1 || argv[i][0] == cU('-')) { continue; } switch (ch2) { case cU('h'): options->ashost = argv[i++]; break; case cU('s'): options->sysnr = argv[i++]; break; case cU('u'): options->user = argv[i++]; break; case cU('p'): options->passwd = argv[i++]; break; case cU('c'): options->client = argv[i++]; break; case cU('l'): options->language = argv[i++]; break; case cU('D'): options->dest = argv[i++]; break; case cU('F'): options->function = argv[i++]; break; case cU('E'): { const SAP_UC *param = argv[i++]; if(!strncmpU(param, PATHNAME, PATHNAME_LEN)) { options->path = param + PATHNAME_LEN; } else if(!strncmpU(param, PORT, PORT_LEN)) { options->port = param + PORT_LEN; } } break; default: i++; break; } } } return true; }