diff options
author | Michele Calgaro <michele.calgaro@yahoo.it> | 2020-06-28 16:15:05 +0900 |
---|---|---|
committer | Michele Calgaro <michele.calgaro@yahoo.it> | 2020-06-28 16:44:04 +0900 |
commit | f756c5c1ec5dc501780f76a8c6c1e221df74df57 (patch) | |
tree | 6cb3d109bf66d813fa194ed486d625968ae2397a /src/kdiff3_part.cpp | |
parent | 7817ecad88e53abd2ad9fbcb2bb14ff59691d874 (diff) | |
download | kdiff3-f756c5c1ec5dc501780f76a8c6c1e221df74df57.tar.gz kdiff3-f756c5c1ec5dc501780f76a8c6c1e221df74df57.zip |
Fixed detection of files in kdiff3_part.
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
(cherry picked from commit caa6e331414e7ad44ce087abe4a8c491a61980c8)
Diffstat (limited to 'src/kdiff3_part.cpp')
-rw-r--r-- | src/kdiff3_part.cpp | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/kdiff3_part.cpp b/src/kdiff3_part.cpp index 82da11a..8c4e9c3 100644 --- a/src/kdiff3_part.cpp +++ b/src/kdiff3_part.cpp @@ -98,7 +98,7 @@ void KDiff3Part::setModified(bool /*modified*/) */ } -static void getNameAndVersion( const TQString& str, const TQString& lineStart, TQString& fileName, TQString& version ) +static void getNameAndVersion( const TQString& workingDir, const TQString& str, const TQString& lineStart, TQString& fileName, TQString& version ) { if ( str.left( lineStart.length() )==lineStart && fileName.isEmpty() ) { @@ -110,7 +110,12 @@ static void getNameAndVersion( const TQString& str, const TQString& lineStart, T while (pos2>pos && str[pos2]!=' ' && str[pos2]!='\t') --pos2; fileName = str.mid( pos, pos2-pos ); std::cerr << "KDiff3: " << fileName.latin1() << std::endl; - if ( FileAccess(fileName).exists() ) break; + FileAccess fa(workingDir, fileName); + if (fa.exists()) + { + fileName = fa.absFilePath(); + break; + } --pos2; } @@ -135,6 +140,8 @@ bool KDiff3Part::openFile() // our example widget is text-based, so we use TQTextStream instead // of a raw TQDataStream + TQFileInfo fileinfo(m_file); + TQString workingDir = fileinfo.dirPath(true); TQTextStream stream(&file); TQString str; TQString fileName1; @@ -144,8 +151,8 @@ bool KDiff3Part::openFile() while (!stream.eof() && (fileName1.isEmpty() || fileName2.isEmpty()) ) { str = stream.readLine() + "\n"; - getNameAndVersion( str, "---", fileName1, version1 ); - getNameAndVersion( str, "+++", fileName2, version2 ); + getNameAndVersion( workingDir, str, "---", fileName1, version1 ); + getNameAndVersion( workingDir, str, "+++", fileName2, version2 ); } file.close(); @@ -156,8 +163,8 @@ bool KDiff3Part::openFile() return false; } - FileAccess f1(fileName1); - FileAccess f2(fileName2); + FileAccess f1(workingDir, fileName1); + FileAccess f2(workingDir, fileName2); if ( f1.exists() && f2.exists() && fileName1!=fileName2 ) { |