Fixed: xdelta 1.x returns 2 when an error occurs (0 or 1 is a success)

This commit is contained in:
kervala 2016-06-14 22:58:23 +02:00
parent 99a9211b91
commit e634df16fd

View file

@ -55,8 +55,10 @@ void GeneratePatch(const std::string& srcFileName,const std::string& destFileNam
#ifdef NL_OS_WINDOWS
_spawnlp(_P_WAIT, "xdelta.exe","xdelta.exe","delta",srcFileName.c_str(),destFileName.c_str(),patchFileName.c_str(),NULL);
#else // NL_OS_WINDOWS
// xdelta-1.x behaves like "diff" and returns 0 for identical files, 1 for different files, 2 for errors
sint error = system (cmd.c_str());
if (error)
if (error == 2)
nlwarning("'%s' failed with error code %d", cmd.c_str(), error);
#endif // NL_OS_WINDOWS
}
@ -69,8 +71,10 @@ void ApplyPatch(const std::string& srcFileName,const std::string& destFileName,c
#ifdef NL_OS_WINDOWS
_spawnlp(_P_WAIT, "xdelta.exe","xdelta.exe","patch",patchFileName.c_str(),srcFileName.c_str(),destFileName.c_str(),NULL);
#else // NL_OS_WINDOWS
// xdelta-1.x behaves like "diff" and returns 0 for identical files, 1 for different files, 2 for errors
sint error = system (cmd.c_str());
if (error)
if (error == 2)
nlwarning("'%s' failed with error code %d", cmd.c_str(), error);
#endif // NL_OS_WINDOWS
}