summaryrefslogtreecommitdiff
path: root/src/option_processing.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2011-10-21 21:56:42 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2011-10-21 21:56:42 +0900
commit3832ed97c616eff0057d7a0e5a161c4282537160 (patch)
treeac69085552ddce55eed873ab1b4e359805fc5961 /src/option_processing.cc
parent20e781c2df1fa961a09edafe1ff02202278e3636 (diff)
Rewritten Option. Introduced Pref.
Now preference key is Pref instead of just string. It has Option ID. Now option lookup and setting takes O(1) using Pref object.
Diffstat (limited to 'src/option_processing.cc')
-rw-r--r--src/option_processing.cc14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/option_processing.cc b/src/option_processing.cc
index d8374bcd..d1063e26 100644
--- a/src/option_processing.cc
+++ b/src/option_processing.cc
@@ -68,13 +68,13 @@ extern void showUsage(const std::string& keyword, const OptionParser& oparser);
namespace {
void overrideWithEnv(Option& op, const OptionParser& optionParser,
- const std::string& pref,
+ const Pref* pref,
const std::string& envName)
{
char* value = getenv(envName.c_str());
if(value) {
try {
- optionParser.findByName(pref)->parse(op, value);
+ optionParser.findByName(pref->k)->parse(op, value);
} catch(Exception& e) {
global::cerr()->printf
("Caught Error while parsing environment variable '%s'\n%s\n",
@@ -102,16 +102,16 @@ void option_processing(Option& op, std::vector<std::string>& uris,
noConf = op.getAsBool(PREF_NO_CONF);
ucfname = op.get(PREF_CONF_PATH);
- if(op.defined("version")) {
+ if(op.defined(PREF_VERSION)) {
showVersion();
exit(error_code::FINISHED);
}
- if(op.defined("help")) {
+ if(op.defined(PREF_HELP)) {
std::string keyword;
- if(op.get("help").empty()) {
+ if(op.get(PREF_HELP).empty()) {
keyword = TAG_BASIC;
} else {
- keyword = op.get("help");
+ keyword = op.get(PREF_HELP);
if(util::startsWith(keyword, "--")) {
keyword = keyword.substr(2);
}
@@ -130,7 +130,7 @@ void option_processing(Option& op, std::vector<std::string>& uris,
if(!noConf) {
std::string cfname =
ucfname.empty() ?
- oparser.findByName(PREF_CONF_PATH)->getDefaultValue():
+ oparser.findByName(PREF_CONF_PATH->k)->getDefaultValue():
ucfname;
if(File(cfname).isFile()) {