remove MAX_PATH as it doesn't build on hurd
authorEike Sauer <eike@debian.org>
Sat, 7 May 2016 15:42:00 +0000 (16:42 +0100)
committerEike Sauer <eike@debian.org>
Sat, 7 May 2016 15:42:00 +0000 (16:42 +0100)
Author: eike@debian.org
Gbp-Pq: Name no-MAX_PATH.diff

src-QT4/fileaccess.cpp

index 2f0b49820374b877b295d97f953eea0d74c41de0..9b97a27e5795514eb7f6ea3f04bca2ef23bb6dc8 100644 (file)
@@ -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
       }