[MOAB-dev] r4254 - MOAB/trunk/tools/mbzoltan
kraftche at cae.wisc.edu
kraftche at cae.wisc.edu
Fri Nov 5 11:13:04 CDT 2010
Author: kraftche
Date: 2010-11-05 11:13:04 -0500 (Fri, 05 Nov 2010)
New Revision: 4254
Modified:
MOAB/trunk/tools/mbzoltan/mbpart.cpp
Log:
fix some CL argument parsing bugs
Modified: MOAB/trunk/tools/mbzoltan/mbpart.cpp
===================================================================
--- MOAB/trunk/tools/mbzoltan/mbpart.cpp 2010-11-05 16:01:03 UTC (rev 4253)
+++ MOAB/trunk/tools/mbzoltan/mbpart.cpp 2010-11-05 16:13:04 UTC (rev 4254)
@@ -49,17 +49,19 @@
Interface& mb = moab;
MBZoltan tool(&mb, false, argc, argv);
- int num_args = 0;
+ int num_args = 0; // number of non-flag arguments (e.g. input file, etc.)
const char* args[3] = {0}; // non-flag options (num parts, input_file, output_file)
const char* zoltan_method = DEFAULT_ZOLTAN_METHOD;
const char* other_method = 0;
- std::list<const char**> expected;
+ const char* imbal_tol_str = 0;
+ std::list<const char**> expected; // pointers to strings that should be set to arguments
int i, j, part_dim = -1;
long num_parts;
bool write_sets = true, write_tags = false;
bool no_more_flags = false;
double imbal_tol = 1.10;
+ // Loop over each input argument
for (i = 1; i < argc; ++i) {
if (!expected.empty()) {
if (!argv[i][0] || (!no_more_flags && argv[i][0] == '-')) {
@@ -70,6 +72,9 @@
expected.pop_front();
}
else if (!no_more_flags && argv[i][0] == '-') {
+ // Loop over each flag, allowing multiple flags to
+ // be combined in a single argument (e.g. "-i 1.0 -b"
+ // can be specified as "-ib 1.0").
for (j = 1; argv[i][j]; ++j) switch (argv[i][j]) {
case 'h':
help(argv[0]);
@@ -81,14 +86,20 @@
part_dim = argv[i][1] - '0';
break;
case 'z':
+ // note that we expect the zotlan_method to point to
+ // the next non-flag argument we encounter.
expected.push_back(&zoltan_method);
break;
case 'p':
zoltan_method = ZOLTAN_PARMETIS_METHOD;
+ // note that we expect the other_method to point to
+ // the next non-flag argument we encounter.
expected.push_back(&other_method);
break;
case 'o':
More information about the moab-dev
mailing list