Add option for AddAllArgsTranslated to control whether output argument
should be joined or separate. llvm-svn: 70101
This commit is contained in:
parent
7ec71da215
commit
3ba94d8778
|
@ -110,11 +110,15 @@ namespace driver {
|
||||||
void AddAllArgValues(ArgStringList &Output, options::ID Id0,
|
void AddAllArgValues(ArgStringList &Output, options::ID Id0,
|
||||||
options::ID Id1) const;
|
options::ID Id1) const;
|
||||||
|
|
||||||
// AddAllArgsTranslated - Render all the arguments matching the
|
/// AddAllArgsTranslated - Render all the arguments matching the
|
||||||
// given ids, but forced to separate args and using the provided
|
/// given ids, but forced to separate args and using the provided
|
||||||
// name instead of the first option value.
|
/// name instead of the first option value.
|
||||||
|
///
|
||||||
|
/// \param Joined - If true, render the argument as joined with
|
||||||
|
/// the option specifier.
|
||||||
void AddAllArgsTranslated(ArgStringList &Output, options::ID Id0,
|
void AddAllArgsTranslated(ArgStringList &Output, options::ID Id0,
|
||||||
const char *Translation) const;
|
const char *Translation,
|
||||||
|
bool Joined = false) const;
|
||||||
|
|
||||||
/// ClaimAllArgs - Claim all arguments which match the given
|
/// ClaimAllArgs - Claim all arguments which match the given
|
||||||
/// option id.
|
/// option id.
|
||||||
|
|
|
@ -124,14 +124,22 @@ void ArgList::AddAllArgValues(ArgStringList &Output, options::ID Id0,
|
||||||
}
|
}
|
||||||
|
|
||||||
void ArgList::AddAllArgsTranslated(ArgStringList &Output, options::ID Id0,
|
void ArgList::AddAllArgsTranslated(ArgStringList &Output, options::ID Id0,
|
||||||
const char *Translation) const {
|
const char *Translation,
|
||||||
|
bool Joined) const {
|
||||||
// FIXME: Make fast.
|
// FIXME: Make fast.
|
||||||
for (const_iterator it = begin(), ie = end(); it != ie; ++it) {
|
for (const_iterator it = begin(), ie = end(); it != ie; ++it) {
|
||||||
const Arg *A = *it;
|
const Arg *A = *it;
|
||||||
if (A->getOption().matches(Id0)) {
|
if (A->getOption().matches(Id0)) {
|
||||||
A->claim();
|
A->claim();
|
||||||
Output.push_back(Translation);
|
|
||||||
Output.push_back(A->getValue(*this, 0));
|
if (Joined) {
|
||||||
|
std::string Value = Translation;
|
||||||
|
Value += A->getValue(*this, 0);
|
||||||
|
Output.push_back(MakeArgString(Value.c_str()));
|
||||||
|
} else {
|
||||||
|
Output.push_back(Translation);
|
||||||
|
Output.push_back(A->getValue(*this, 0));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue