From 6f7ef88fb1c191b7322f85c81332da9dc2149b0c Mon Sep 17 00:00:00 2001 From: Eike Sauer Date: Sat, 7 May 2016 16:42:00 +0100 Subject: [PATCH] remove MAX_PATH as it doesn't build on hurd Author: eike@debian.org Gbp-Pq: Name no-MAX_PATH.diff --- src-QT4/fileaccess.cpp | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) 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 } -- 2.30.2