You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ac...@apache.org on 2007/07/20 21:20:02 UTC
svn commit: r558099 - in /incubator/qpid/branches/M2/cpp: NOTICE
lib/common/CommonOptions.cpp lib/common/CommonOptions.h src/qpidd.cpp
Author: aconway
Date: Fri Jul 20 12:20:01 2007
New Revision: 558099
URL: http://svn.apache.org/viewvc?view=rev&rev=558099
Log:
Ignore QPID_ env variables that don't correspond to known options.
Modified:
incubator/qpid/branches/M2/cpp/NOTICE
incubator/qpid/branches/M2/cpp/lib/common/CommonOptions.cpp
incubator/qpid/branches/M2/cpp/lib/common/CommonOptions.h
incubator/qpid/branches/M2/cpp/src/qpidd.cpp
Modified: incubator/qpid/branches/M2/cpp/NOTICE
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/M2/cpp/NOTICE?view=diff&rev=558099&r1=558098&r2=558099
==============================================================================
--- incubator/qpid/branches/M2/cpp/NOTICE (original)
+++ incubator/qpid/branches/M2/cpp/NOTICE Fri Jul 20 12:20:01 2007
@@ -19,6 +19,7 @@
* apr version 1.2.7 under the Apache Software License, Version 2.0, and
can be downloded from http://apr.apache.org
- * boost vesrion 1.33.1 or later under the Boost Software License, and
+ * boost version 1.33.1 or later under the Boost Software License, and
can be downloaded from http://www.boost.org
- Included in most OS platfroms by defualt.
+
Modified: incubator/qpid/branches/M2/cpp/lib/common/CommonOptions.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/M2/cpp/lib/common/CommonOptions.cpp?view=diff&rev=558099&r1=558098&r2=558099
==============================================================================
--- incubator/qpid/branches/M2/cpp/lib/common/CommonOptions.cpp (original)
+++ incubator/qpid/branches/M2/cpp/lib/common/CommonOptions.cpp Fri Jul 20 12:20:01 2007
@@ -26,20 +26,20 @@
namespace program_options {
-char env2optchar(char env) {
- return (env=='_') ? '-' : tolower(env);
-}
-
-const std::string envPrefix("QPID_");
+static const std::string prefix("QPID_");
+
+static char env2optchar(char env) { return (env=='_') ? '-' : tolower(env); }
-std::string env2option(const std::string& env) {
- if (env.find(envPrefix) ==0) {
- std::string opt = env.substr(envPrefix.size());
- std::transform(opt.begin(), opt.end(), opt.begin(), env2optchar);
- return opt;
+std::string EnvMapper::operator()(const std::string& env) {
+ if (env.substr(0, prefix.size()) == prefix) {
+ std::string opt = env.substr(prefix.size());
+ transform(opt.begin(), opt.end(), opt.begin(), env2optchar);
+ // Ignore env vars that don't match to known options.
+ if (opts.find_nothrow(opt, false))
+ return opt;
}
return std::string();
-}
+}
} // namespace program_options
Modified: incubator/qpid/branches/M2/cpp/lib/common/CommonOptions.h
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/M2/cpp/lib/common/CommonOptions.h?view=diff&rev=558099&r1=558098&r2=558099
==============================================================================
--- incubator/qpid/branches/M2/cpp/lib/common/CommonOptions.h (original)
+++ incubator/qpid/branches/M2/cpp/lib/common/CommonOptions.h Fri Jul 20 12:20:01 2007
@@ -64,8 +64,13 @@
/** Environment-to-option name mapping.
* Maps env variable "QPID_SOME_VAR" to option "some-var"
+ * Ignores env vars that dont match known options._
*/
-std::string env2option(const std::string& env);
+struct EnvMapper {
+ EnvMapper(const options_description& o) : opts(o) {}
+ std::string operator()(const std::string& env);
+ const options_description& opts;
+};
/**
* Like boost::program_options::bool_switch but takes reference, not pointer.
Modified: incubator/qpid/branches/M2/cpp/src/qpidd.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/M2/cpp/src/qpidd.cpp?view=diff&rev=558099&r1=558098&r2=558099
==============================================================================
--- incubator/qpid/branches/M2/cpp/src/qpidd.cpp (original)
+++ incubator/qpid/branches/M2/cpp/src/qpidd.cpp Fri Jul 20 12:20:01 2007
@@ -72,7 +72,7 @@
// Earlier sources get precedence.
po::store(po::parse_command_line(argc, argv, desc), vm);
try {
- po::store(po::parse_environment(desc, po::env2option), vm);
+ po::store(po::parse_environment(desc, po::EnvMapper(desc)), vm);
}
catch (const logic_error& e) {
throw logic_error(string("parsing environment variables: ")