summaryrefslogtreecommitdiff
path: root/extra/kdiff3
diff options
context:
space:
mode:
Diffstat (limited to 'extra/kdiff3')
-rw-r--r--extra/kdiff3/PKGBUILD11
-rw-r--r--extra/kdiff3/kdiff3-relative-path.patch59
2 files changed, 66 insertions, 4 deletions
diff --git a/extra/kdiff3/PKGBUILD b/extra/kdiff3/PKGBUILD
index ba375e623..1c5bd164e 100644
--- a/extra/kdiff3/PKGBUILD
+++ b/extra/kdiff3/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 166597 2012-09-12 20:12:20Z eric $
+# $Id: PKGBUILD 168298 2012-10-08 05:04:03Z eric $
# Maintainer: Eric BĂ©langer <eric@archlinux.org>
pkgname=kdiff3
pkgver=0.9.97
-pkgrel=1
+pkgrel=2
pkgdesc="A KDE file comparator/merge tool"
arch=('i686' 'x86_64' 'mips64el')
url="http://kdiff3.sourceforge.net/"
@@ -12,11 +12,14 @@ depends=('kdebase-runtime')
makedepends=('cmake' 'automoc4' 'kdebase-lib' 'docbook-xml')
optdepends=('kdebase-lib: for the plugin')
install=kdiff3.install
-source=(http://downloads.sourceforge.net/sourceforge/kdiff3/${pkgname}-${pkgver}.tar.gz)
-sha1sums=('1f2828c4b287b905bac64992b46a3e9231319547')
+source=(http://downloads.sourceforge.net/sourceforge/kdiff3/${pkgname}-${pkgver}.tar.gz
+ kdiff3-relative-path.patch)
+sha1sums=('1f2828c4b287b905bac64992b46a3e9231319547'
+ 'b5359dcec2ebb8221a232ecc2ea9982b290172e5')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p2 -i "${srcdir}/kdiff3-relative-path.patch"
mkdir release
cd release
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
diff --git a/extra/kdiff3/kdiff3-relative-path.patch b/extra/kdiff3/kdiff3-relative-path.patch
new file mode 100644
index 000000000..7cfccd6f5
--- /dev/null
+++ b/extra/kdiff3/kdiff3-relative-path.patch
@@ -0,0 +1,59 @@
+--- a/kdiff3/src-QT4/fileaccess.cpp
++++ b/kdiff3/src-QT4/fileaccess.cpp
+@@ -183,7 +183,8 @@
+
+ void FileAccess::setFile( const QFileInfo& fi, FileAccess* pParent )
+ {
+- m_filePath = nicePath( fi.filePath() ); // remove "./" at start
++ m_filePath = pParent == 0 ? fi.absoluteFilePath() :
++ nicePath( fi.filePath() ); // remove "./" at start
+
+ m_bSymLink = fi.isSymLink();
+ if ( m_bSymLink || (!m_bExists && m_filePath.contains("@@") ) )
+@@ -566,7 +567,16 @@
+ if ( parent() != 0 )
+ return parent()->absoluteFilePath() + "/" + m_filePath;
+ else
+- return m_filePath;
++ {
++ if ( m_filePath.isEmpty() )
++ return QString();
++
++ QFileInfo fi( m_filePath );
++ if ( fi.isAbsolute() )
++ return m_filePath;
++ else
++ return fi.absoluteFilePath(); // Probably never reached
++ }
+ } // Full abs path
+
+ // Just the name-part of the path, without parent directories
+@@ -1184,7 +1194,7 @@
+ m_bSuccess = false;
+ KIO::FileCopyJob* pJob = KIO::file_move( m_pFileAccess->url(), kurl, permissions, KIO::HideProgressInfo );
+ connect( pJob, SIGNAL(result(KJob*)), this, SLOT(slotSimpleJobResult(KJob*)));
+- connect( pJob, SIGNAL(percent(KJob*,unsigned long)), this, SLOT(slotPercent(KJob*, unsigned long)));
++ connect( pJob, SIGNAL(percent(KJob*,unsigned long)), &pp, SLOT(slotPercent(KJob*, unsigned long)));
+
+ ProgressProxy::enterEventLoop( pJob,
+ i18n("Renaming file: %1 -> %2",m_pFileAccess->prettyAbsPath(),dest) );
+@@ -1673,7 +1683,7 @@
+ &pp, SLOT( slotListDirInfoMessage(KJob*, const QString&) ));
+
+ // This line makes the transfer via fish unreliable.:-(
+- //connect( pListJob, SIGNAL(percent(KJob*,unsigned long)), this, SLOT(slotPercent(KJob*, unsigned long)));
++ //connect( pListJob, SIGNAL(percent(KJob*,unsigned long)), &pp, SLOT(slotPercent(KJob*, unsigned long)));
+
+ ProgressProxy::enterEventLoop( pListJob,
+ i18n("Listing directory: %1",m_pFileAccess->prettyAbsPath()) );
+--- a/kdiff3/src-QT4/kdiff3.cpp
++++ b/kdiff3/src-QT4/kdiff3.cpp
+@@ -211,6 +211,8 @@
+ m_outputFilename = args->getOption("output");
+ if ( m_outputFilename.isEmpty() )
+ m_outputFilename = args->getOption("out");
++ if ( ! m_outputFilename.isEmpty() )
++ m_outputFilename = FileAccess( m_outputFilename, true ).absoluteFilePath();
+ }
+
+ m_bAutoFlag = args!=0 && args->isSet("auto");