diff options
author | marha <marha@users.sourceforge.net> | 2011-03-08 09:36:48 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2011-03-08 09:36:48 +0000 |
commit | c5bfd1aa030085abb89a8f13ecc4d36bb0227d1d (patch) | |
tree | 262aaf6f94fb5618720d9f3d3c877f63e16a16a6 /tools/mhmake/src/mhmakefileparser.cpp | |
parent | 6272d6626e095565120b55d77ab6c1c84d269a81 (diff) | |
download | vcxsrv-c5bfd1aa030085abb89a8f13ecc4d36bb0227d1d.tar.gz vcxsrv-c5bfd1aa030085abb89a8f13ecc4d36bb0227d1d.tar.bz2 vcxsrv-c5bfd1aa030085abb89a8f13ecc4d36bb0227d1d.zip |
Added safety agains mhmakeconf value ending in backspace
Diffstat (limited to 'tools/mhmake/src/mhmakefileparser.cpp')
-rw-r--r-- | tools/mhmake/src/mhmakefileparser.cpp | 54 |
1 files changed, 27 insertions, 27 deletions
diff --git a/tools/mhmake/src/mhmakefileparser.cpp b/tools/mhmake/src/mhmakefileparser.cpp index 1b1119641..a359de117 100644 --- a/tools/mhmake/src/mhmakefileparser.cpp +++ b/tools/mhmake/src/mhmakefileparser.cpp @@ -177,38 +177,38 @@ inline string mhmakefileparser::ExpandExpression(const string &ExprIn) const string Expr(Ret);
Ret.clear();
- size_t i=0;
- size_t Length=Expr.size();
- string ToAdd;
- while (i<Length)
- {
- char Char=Expr[i++];
- if (Char=='$')
+ size_t i=0;
+ size_t Length=Expr.size();
+ string ToAdd;
+ while (i<Length)
{
- size_t inew=SkipMakeExpr(Expr,i);
- i++;
- if (inew>i)
- {
- ToAdd=ExpandMacro(Expr.substr(i,inew-i-1));
- i=inew;
- }
- else
- {
- // This is a single character expression
- ToAdd=ExpandMacro(string(1,Expr[i-1]));
+ char Char=Expr[i++];
+ if (Char=='$')
+ {
+ size_t inew=SkipMakeExpr(Expr,i);
+ i++;
+ if (inew>i)
+ {
+ ToAdd=ExpandMacro(Expr.substr(i,inew-i-1));
+ i=inew;
+ }
+ else
+ {
+ // This is a single character expression
+ ToAdd=ExpandMacro(string(1,Expr[i-1]));
+ }
+ if (ToAdd.find('$')!=string::npos && ToAdd.length()!=1)
+ {
+ Recurse=true;
}
- if (ToAdd.find('$')!=string::npos && ToAdd.length()!=1)
- {
- Recurse=true;
+ Ret+=ToAdd;
+ }
+ else
+ {
+ Ret+=Char;
}
- Ret+=ToAdd;
- }
- else
- {
- Ret+=Char;
}
}
- }
return Ret;
}
|