Changes in src/builder.cpp [0fb9f6:99fcaf]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/builder.cpp
r0fb9f6 r99fcaf 53 53 54 54 #include <cstring> 55 #include <cstdlib>56 55 57 56 #include "analysis_bonds.hpp" … … 1495 1494 */ 1496 1495 static int ParseCommandLineOptions(int argc, char **argv, MoleculeListClass *&molecules, periodentafel *&periode, 1497 config& configuration, char *&ConfigFileName, set<int> &ArgcList)1496 config& configuration, char *&ConfigFileName, list<int> &ArgcList) 1498 1497 { 1499 1498 Vector x,y,z,n; // coordinates for absolute point in cell volume … … 1526 1525 case 'H': 1527 1526 case '?': 1528 ArgcList. insert(argptr-1);1527 ArgcList.push_back(argptr-1); 1529 1528 return(1); 1530 1529 break; 1531 1530 case 'v': 1532 setVerbosity(atoi(argv[argptr])); 1533 ArgcList.insert(argptr-1); 1534 ArgcList.insert(argptr); 1535 argptr++; 1531 ArgcList.push_back(argptr-1); 1532 return(1); 1536 1533 break; 1537 1534 case 'V': 1538 ArgcList.insert(argptr-1); 1539 return(1); 1535 ArgcList.push_back(argptr-1); 1536 ArgcList.push_back(argptr); 1537 argptr++; 1540 1538 break; 1541 1539 case 'B': … … 2490 2488 ActionRegistry::purgeInstance(); 2491 2489 ActionHistory::purgeInstance(); 2492 Memory::getState();2493 2490 } 2494 2491 … … 2502 2499 char **Arguments = NULL; 2503 2500 int ArgcSize = 0; 2501 int ExitFlag = 0; 2504 2502 bool ArgumentsCopied = false; 2505 2503 2506 // print version check whether arguments are present at all2507 2504 cout << ESPACKVersion << endl; 2508 if (argc < 2) {2509 cout << "Obtain help with " << argv[0] << " -h." << endl;2510 cleanUp();2511 Memory::getState();2512 return(1);2513 }2514 2515 2505 2516 2506 setVerbosity(0); … … 2518 2508 ActionHistory::init(); 2519 2509 2520 // from this moment on, we need to be sure to deeinitialize in the correct order2521 // this is handled by the cleanup function2522 atexit(cleanUp);2523 2524 2510 // Parse command line options and if present create respective UI 2525 2511 { 2526 set<int> ArgcList;2527 ArgcList. insert(0); // push back program!2528 ArgcList. insert(1); // push back config file name2512 list<int> ArgcList; 2513 ArgcList.push_back(0); // push back program! 2514 ArgcList.push_back(1); // push back config file name 2529 2515 char ConfigFileName[MAXSTRINGSIZE]; 2530 2516 // handle arguments by ParseCommandLineOptions() 2531 ParseCommandLineOptions(argc,argv,World::getInstance().getMolecules(),World::getInstance().getPeriode(),*World::getInstance().getConfig(), (char *&)ConfigFileName, ArgcList);2517 ExitFlag = ParseCommandLineOptions(argc,argv,World::getInstance().getMolecules(),World::getInstance().getPeriode(),*World::getInstance().getConfig(), (char *&)ConfigFileName, ArgcList); 2532 2518 // copy all remaining arguments to a new argv 2533 2519 Arguments = Malloc<char *>(ArgcList.size(), "main - **Arguments"); 2534 2520 cout << "The following arguments are handled by CommandLineParser: "; 2535 for ( set<int>::iterator ArgcRunner = ArgcList.begin(); ArgcRunner != ArgcList.end(); ++ArgcRunner) {2521 for (list<int>::iterator ArgcRunner = ArgcList.begin(); ArgcRunner != ArgcList.end(); ++ArgcRunner) { 2536 2522 Arguments[ArgcSize] = Malloc<char>(strlen(argv[*ArgcRunner])+2, "main - *Arguments[]"); 2537 2523 strcpy(Arguments[ArgcSize], argv[*ArgcRunner]); … … 2572 2558 } 2573 2559 2574 return (0); 2560 cleanUp(); 2561 Memory::getState(); 2562 return (ExitFlag == 1 ? 0 : ExitFlag); 2575 2563 } 2576 2564
Note:
See TracChangeset
for help on using the changeset viewer.