version 1.25, 2003/04/30 18:26:55
|
version 1.26, 2003/07/28 16:52:54
|
|
|
// implementation of getoopt | // implementation of getoopt |
| |
#include <Pegasus/Common/PegasusVersion.h> | #include <Pegasus/Common/PegasusVersion.h> |
|
#include <Pegasus/Common/MessageLoader.h> //l10n |
| |
#include "getoopt.h" | #include "getoopt.h" |
#include <cctype> | #include <cctype> |
|
|
Boolean | Boolean |
getoopt::addFlagspec(char flag, Boolean hasarg) { | getoopt::addFlagspec(char flag, Boolean hasarg) { |
if (flag == '*') { | if (flag == '*') { |
addError("You can't have a flag named '*'"); |
//l10n |
|
MessageLoaderParms parms("getoopt.getoopt.CANT_NAME_FLAG", |
|
"You can't have a flag named '$0'", |
|
flag); |
|
addError(MessageLoader::getMessage(parms)); |
|
//addError("You can't have a flag named '*'"); |
|
//l10n end |
return false; | return false; |
} | } |
flagspec fs; | flagspec fs; |
|
|
String temp = argv[i]; | String temp = argv[i]; |
String name = temp.subString(argpos, 1); | String name = temp.subString(argpos, 1); |
if (!fs) { // See if we recognize it | if (!fs) { // See if we recognize it |
addError("Unknown flag -" + name); |
//l10n |
|
MessageLoaderParms parms("getoopt.getoopt.UNKNOWN_FLAG", |
|
"Unknown flag $0$1", |
|
"-", |
|
name); |
|
addError(MessageLoader::getMessage(parms)); |
|
//addError("Unknown flag -" + name); |
|
//l10n end |
argpos++; | argpos++; |
} else { | } else { |
if (fs->argtype == NOARG) { // Should this flag be bound | if (fs->argtype == NOARG) { // Should this flag be bound |
|
|
optargFromLongOpt(o, arg); | optargFromLongOpt(o, arg); |
fs = getFlagspec(o.getName()); | fs = getFlagspec(o.getName()); |
if (!fs) { // see if we recognize this flag | if (!fs) { // see if we recognize this flag |
String temp = "Unknown flag "; |
//l10n |
addError(temp + o.getName()); |
//String temp = "Unknown flag "; |
|
//addError(temp + o.getName()); |
|
MessageLoaderParms parms("getoopt.getoopt.UNKNOWN_FLAG", |
|
"Unknown flag $0$1", |
|
"", |
|
o.getName()); |
|
addError(MessageLoader::getMessage(parms)); |
|
//l10n end |
} else { | } else { |
// this is a long flag we know about | // this is a long flag we know about |
if (o.optarg() != "" || fs->argtype != MUSTHAVEARG) { | if (o.optarg() != "" || fs->argtype != MUSTHAVEARG) { |
|
|
| |
case ARGEXPECTED: | case ARGEXPECTED: |
if (argv[i][0] == '-') { | if (argv[i][0] == '-') { |
addError("Missing required value for flag " + o.getopt()); |
//l10n |
|
//addError("Missing required value for flag " + o.getopt()); |
|
MessageLoaderParms parms("getoopt.getoopt.MISSING_VALUE_FOR_FLAG", |
|
"Missing required value for flag $0", |
|
o.getopt()); |
|
addError(MessageLoader::getMessage(parms)); |
|
//l10n end |
i--; | i--; |
} else { | } else { |
o.setValue(argv[i]); | o.setValue(argv[i]); |
|
|
} // end switch | } // end switch |
} // end for | } // end for |
if (state != START) { | if (state != START) { |
addError("Missing required value for flag " + o.getName()); |
//l10n |
|
//addError("Missing required value for flag " + o.getName()); |
|
MessageLoaderParms parms("getoopt.getoopt.MISSING_VALUE_FOR_FLAG", |
|
"Missing required value for flag $0", |
|
o.getName()); |
|
addError(MessageLoader::getMessage(parms)); |
|
//l10n end |
} | } |
copyargs(_args, nonflagargs); | copyargs(_args, nonflagargs); |
return !_errorStrings.size(); | return !_errorStrings.size(); |