summaryrefslogtreecommitdiffstats
path: root/opensuse/core/tdelibs/kdelibs-3.5.10-kio.patch
diff options
context:
space:
mode:
Diffstat (limited to 'opensuse/core/tdelibs/kdelibs-3.5.10-kio.patch')
-rw-r--r--opensuse/core/tdelibs/kdelibs-3.5.10-kio.patch47
1 files changed, 47 insertions, 0 deletions
diff --git a/opensuse/core/tdelibs/kdelibs-3.5.10-kio.patch b/opensuse/core/tdelibs/kdelibs-3.5.10-kio.patch
new file mode 100644
index 000000000..9fb299d4a
--- /dev/null
+++ b/opensuse/core/tdelibs/kdelibs-3.5.10-kio.patch
@@ -0,0 +1,47 @@
+--- kdelibs-3.5.10/kio/kio/kzip.cpp.orig 2009-12-09 18:42:47.000000000 +0100
++++ kdelibs-3.5.10/kio/kio/kzip.cpp 2009-12-09 18:45:43.000000000 +0100
+@@ -1051,6 +1051,20 @@
+ return true;
+ }
+
++bool KZip::writeDir(const QString& name, const QString& user, const QString& group)
++{
++ // Zip files have no explicit directories, they are implicitly created during extraction time
++ // when file entries have paths in them.
++ // However, to support empty directories, we must create a dummy file entry which ends with '/'.
++ QString dirName = name;
++ if (!name.endsWith("/"))
++ dirName = dirName.append('/');
++
++ mode_t perm = 040755;
++ time_t the_time = time(0);
++ return writeFile(dirName, user, group, 0, perm, the_time, the_time, the_time, 0);
++}
++
+ // Doesn't need to be reimplemented anymore. Remove for KDE-4.0
+ bool KZip::writeFile( const QString& name, const QString& user, const QString& group, uint size, const char* data )
+ {
+@@ -1114,7 +1128,7 @@
+ }
+
+ // delete entries in the filelist with the same filename as the one we want
+- // to save, so that we don´t have duplicate file entries when viewing the zip
++ // to save, so that we don�t have duplicate file entries when viewing the zip
+ // with konqi...
+ // CAUTION: the old file itself is still in the zip and won't be removed !!!
+ QPtrListIterator<KZipFileEntry> it( d->m_fileList );
+diff -up kdelibs-3.5.10/kio/kio/kzip.h.orig kdelibs-3.5.10/kio/kio/kzip.h
+--- kdelibs-3.5.10/kio/kio/kzip.h.orig 2009-12-09 19:35:42.000000000 +0100
++++ kdelibs-3.5.10/kio/kio/kzip.h 2009-12-09 19:35:48.000000000 +0100
+@@ -191,10 +191,7 @@ protected:
+ /// Closes the archive
+ virtual bool closeArchive();
+
+- /**
+- * @internal Not needed for zip
+- */
+- virtual bool writeDir( const QString& name, const QString& user, const QString& group) { Q_UNUSED(name); Q_UNUSED(user); Q_UNUSED(group); return true; }
++ virtual bool writeDir(const QString& name, const QString& user, const QString& group);
+ // TODO(BIC) uncomment and make virtual for KDE 4.
+ // bool writeDir( const QString& name, const QString& user, const QString& group,
+ // mode_t perm, time_t atime, time_t mtime, time_t ctime );