aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tools/mhmake/src/mhmakefileparser.cpp10
-rw-r--r--tools/mhmake/src/util.h2
2 files changed, 10 insertions, 2 deletions
diff --git a/tools/mhmake/src/mhmakefileparser.cpp b/tools/mhmake/src/mhmakefileparser.cpp
index e9d50a704..30916878e 100644
--- a/tools/mhmake/src/mhmakefileparser.cpp
+++ b/tools/mhmake/src/mhmakefileparser.cpp
@@ -252,7 +252,15 @@ string mhmakefileparser::ExpandMacro(const string &Expr) const
string ToStr(pTo);
#ifdef WIN32
if (IsFileName)
- return QuoteFileName(Substitute(UnquoteFileName(ToSubst),SrcStr,ToStr));
+ {
+ matchres Res;
+ string FileName(UnquoteFileName(ToSubst));
+ if (PercentMatch(FileName,UnquoteFileName(SrcStr),&Res))
+ {
+ FileName=ReplaceWithStem(UnquoteFileName(ToStr),Res.m_Stem);
+ }
+ return QuoteFileName(FileName);
+ }
#endif
return Substitute(ToSubst,SrcStr,ToStr);
}
diff --git a/tools/mhmake/src/util.h b/tools/mhmake/src/util.h
index fc39f9e84..1d3cfbb66 100644
--- a/tools/mhmake/src/util.h
+++ b/tools/mhmake/src/util.h
@@ -50,7 +50,7 @@
#define PLATFORM "linux"
#endif
-#define MHMAKEVER "2.0.3"
+#define MHMAKEVER "2.0.4"
class makecommand
{