diff options
author | marha <marha@users.sourceforge.net> | 2010-02-15 12:30:05 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2010-02-15 12:30:05 +0000 |
commit | 5a30da03ddafd49caf68942f7ddf021bd898ef6d (patch) | |
tree | 11925152a0ca608d0c07ee5514b1c1f15e6a8ac7 | |
parent | 266b3ab4e449ba783abadd6d5ffc5397d42a6069 (diff) | |
download | vcxsrv-5a30da03ddafd49caf68942f7ddf021bd898ef6d.tar.gz vcxsrv-5a30da03ddafd49caf68942f7ddf021bd898ef6d.tar.bz2 vcxsrv-5a30da03ddafd49caf68942f7ddf021bd898ef6d.zip |
linux: solved problem running svn info when the mhmakeconf points to a symbolic link
autodep scanning: # include may contain spaces
-rw-r--r-- | tools/mhmake/src/mhmakefileparser.cpp | 3 | ||||
-rw-r--r-- | tools/mhmake/src/util.cpp | 14 | ||||
-rw-r--r-- | tools/mhmake/src/util.h | 2 |
3 files changed, 18 insertions, 1 deletions
diff --git a/tools/mhmake/src/mhmakefileparser.cpp b/tools/mhmake/src/mhmakefileparser.cpp index de7b22da3..d5d2980f8 100644 --- a/tools/mhmake/src/mhmakefileparser.cpp +++ b/tools/mhmake/src/mhmakefileparser.cpp @@ -520,7 +520,10 @@ void mhmakefileparser::GetAutoDeps(const refptr<fileinfo> &FirstDep,set< refptr< else if (Ret=='#' || Ret=='.')
{
if (Ret=='#')
+ {
+ fscanf(pIn,"%*[ \t]");
Ret=fscanf(pIn,"include %1[\"<]%254[^>\"]%*[\">]",&Type,IncludeList);
+ }
else
Ret=fscanf(pIn,"import %1[\"<]%254[^>\"]%*[\">]",&Type,IncludeList);
if (Ret==2)
diff --git a/tools/mhmake/src/util.cpp b/tools/mhmake/src/util.cpp index 9fc03ddad..a6ce9e8bf 100644 --- a/tools/mhmake/src/util.cpp +++ b/tools/mhmake/src/util.cpp @@ -276,7 +276,21 @@ loadedmakefile::loadedmakefile_statics::loadedmakefile_statics() try
{
string SvnCommand=SearchCommand("svn",EXEEXT);
+ #ifdef WIN32
Ret=OsExeCommand(SvnCommand,string(" info ")+m_MhMakeConf->GetQuotedFullFileName(),false,&Output);
+ #else
+ struct stat Stat;
+ lstat(m_MhMakeConf->GetFullFileName().c_str(),&Stat);
+ if (S_ISLNK(Stat.st_mode))
+ {
+ char FileName[1024];
+ int len=readlink(m_MhMakeConf->GetFullFileName().c_str(),FileName,sizeof(FileName));
+ FileName[len]=0;
+ Ret=OsExeCommand(SvnCommand,string(" info ")+GetFileInfo(FileName,m_MhMakeConf->GetDir())->GetQuotedFullFileName(),false,&Output);
+ }
+ else
+ Ret=OsExeCommand(SvnCommand,string(" info ")+m_MhMakeConf->GetQuotedFullFileName(),false,&Output);
+ #endif
}
catch (string Message)
{
diff --git a/tools/mhmake/src/util.h b/tools/mhmake/src/util.h index 23f26e0ad..4c5528452 100644 --- a/tools/mhmake/src/util.h +++ b/tools/mhmake/src/util.h @@ -50,7 +50,7 @@ #define PLATFORM "linux"
#endif
-#define MHMAKEVER "1.4.11"
+#define MHMAKEVER "1.4.13"
string SearchCommand(const string &Command, const string &Extension="");
|