From: Eike Sauer Date: Sat, 7 May 2016 15:42:00 +0000 (+0100) Subject: remove MAX_PATH as it doesn't build on hurd X-Git-Tag: archive/raspbian/1.10.0-1+rpi1~1^2^2^2^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=6f7ef88fb1c191b7322f85c81332da9dc2149b0c;p=kdiff3.git remove MAX_PATH as it doesn't build on hurd Author: eike@debian.org Gbp-Pq: Name no-MAX_PATH.diff --- diff --git a/src-QT4/fileaccess.cpp b/src-QT4/fileaccess.cpp index 2f0b498..9b97a27 100644 --- a/src-QT4/fileaccess.cpp +++ b/src-QT4/fileaccess.cpp @@ -235,16 +235,24 @@ void FileAccess::setFile( const QFileInfo& fi, FileAccess* pParent ) d()->m_linkTarget = fi.readLink(); #else // Unfortunately Qt4 readLink always returns an absolute path, even if the link is relative - char s[PATH_MAX+1]; - int len = readlink(QFile::encodeName(fi.absoluteFilePath()).constData(), s, PATH_MAX); - if ( len>0 ) + struct stat sb; + if (lstat(QFile::encodeName(fi.absoluteFilePath()).constData(), &sb) == -1) { - s[len] = '\0'; - d()->m_linkTarget = QFile::decodeName(s); + d()->m_linkTarget = fi.readLink(); } else { - d()->m_linkTarget = fi.readLink(); + char* s = (char*)malloc(sb.st_size + 1); + int len = readlink(QFile::encodeName(fi.absoluteFilePath()).constData(), s, PATH_MAX); + if ( len>0 ) + { + s[len] = '\0'; + d()->m_linkTarget = QFile::decodeName(s); + } + else + { + d()->m_linkTarget = fi.readLink(); + } } #endif }