remove extra space on generate redirect-only commands
This commit is contained in:
parent
76779cd32d
commit
052b2b92cb
1 changed files with 14 additions and 3 deletions
|
|
@ -103,17 +103,21 @@ std::string list::generate(int ind, bool first_indent)
|
||||||
if(cls.size() <= 0)
|
if(cls.size() <= 0)
|
||||||
return "";
|
return "";
|
||||||
|
|
||||||
|
std::string next;
|
||||||
for(uint32_t i=0; i<cls.size(); i++)
|
for(uint32_t i=0; i<cls.size(); i++)
|
||||||
{
|
{
|
||||||
if(first_indent)
|
if(first_indent)
|
||||||
{
|
{
|
||||||
ret += indented(cls[i]->generate(ind), ind);
|
next = indented(cls[i]->generate(ind), ind);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
first_indent=true;
|
first_indent=true;
|
||||||
ret += cls[i]->generate(ind);
|
next = cls[i]->generate(ind);
|
||||||
}
|
}
|
||||||
|
if(ret[ret.size()-1] == '&' && next.size()>0 && is_in(next[0], "<>"))
|
||||||
|
ret += '\n';
|
||||||
|
ret += next;
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
@ -345,9 +349,12 @@ std::string cmd::generate(int ind, generate_context* ctx)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool has_args=false;
|
||||||
|
|
||||||
// pre-cmd var assigns
|
// pre-cmd var assigns
|
||||||
for(auto it: var_assigns)
|
for(auto it: var_assigns)
|
||||||
{
|
{
|
||||||
|
has_args=true;
|
||||||
if(it.first != nullptr)
|
if(it.first != nullptr)
|
||||||
ret += it.first->generate(ind);
|
ret += it.first->generate(ind);
|
||||||
if(it.second != nullptr)
|
if(it.second != nullptr)
|
||||||
|
|
@ -358,6 +365,7 @@ std::string cmd::generate(int ind, generate_context* ctx)
|
||||||
// cmd itself
|
// cmd itself
|
||||||
if(args!=nullptr && args->size()>0)
|
if(args!=nullptr && args->size()>0)
|
||||||
{
|
{
|
||||||
|
has_args=true;
|
||||||
// command
|
// command
|
||||||
ret += args->generate(ind);
|
ret += args->generate(ind);
|
||||||
// delete potential trailing space
|
// delete potential trailing space
|
||||||
|
|
@ -370,7 +378,10 @@ std::string cmd::generate(int ind, generate_context* ctx)
|
||||||
ret.pop_back();
|
ret.pop_back();
|
||||||
}
|
}
|
||||||
|
|
||||||
ret += generate_redirs(ind, ret, ctx);
|
std::string redirs = generate_redirs(ind, ret, ctx);
|
||||||
|
if(!has_args)
|
||||||
|
redirs.erase(redirs.begin());
|
||||||
|
ret += redirs;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue