summaryrefslogtreecommitdiffstats
path: root/src/kdiff3_part.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/kdiff3_part.cpp')
-rw-r--r--src/kdiff3_part.cpp19
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 )
{