~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/module/option_context.cc

Reverted changes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
36
36
option_context& option_context::operator()(const char* name,
37
37
                                           const char* description)
38
38
{
39
 
  const std::string new_name(prepend_name(name));
 
39
  const std::string new_name(prepend_name(module_name, name));
40
40
  po_options(new_name.c_str(), description);
41
41
  return *this;
42
42
}
45
45
option_context& option_context::operator()(const char* name,
46
46
                                           const po::value_semantic* s)
47
47
{
48
 
  const std::string new_name(prepend_name(name));
 
48
  const std::string new_name(prepend_name(module_name, name));
49
49
  po_options(new_name.c_str(), s);
50
50
  return *this;
51
51
}
55
55
                             const po::value_semantic* s,
56
56
                             const char* description)
57
57
{
58
 
  const std::string new_name(prepend_name(name));
 
58
  const std::string new_name(prepend_name(module_name, name));
59
59
  po_options(new_name.c_str(), s, description);
60
60
  return *this;
61
61
}
62
62
 
 
63
namespace
 
64
{
 
65
 
 
66
class SwapUnderscores
 
67
{
 
68
public:
 
69
  char operator()(char a) const
 
70
  {
 
71
    if (a == '_')
 
72
      return '-';
 
73
    return a;
 
74
  }
 
75
};
 
76
 
 
77
} /* namespace */
 
78
 
 
79
/*
 
80
 * Private methods.
 
81
 */
 
82
std::string option_context::prepend_name(std::string module_name,
 
83
                                         const char *name_in)
 
84
{
 
85
  module_name.push_back('.');
 
86
  std::transform(module_name.begin(), module_name.end(),
 
87
                 module_name.begin(), SwapUnderscores());
 
88
  module_name.append(name_in);
 
89
  return module_name;
 
90
}
 
91
 
63
92
 
64
93
} /* namespace module */
65
94
} /* namespace drizzled */