summaryrefslogtreecommitdiffstats
path: root/opensuse/core/qt3/mng-reading-fix.patch
diff options
context:
space:
mode:
authorRobert Xu <rxu@linux-zdwj.site>2012-02-01 00:31:59 -0500
committerRobert Xu <rxu@linux-zdwj.site>2012-02-01 00:31:59 -0500
commitf599f39717d771b8b7a2aff006cda6c31e8b12da (patch)
treef601e3c0303a193cda6f8c6f956619dda9673c70 /opensuse/core/qt3/mng-reading-fix.patch
parentead369ac94473139a2320a1c90cda64dd887b94a (diff)
parent27c9e783c6283f8916ebee3a23c6d1ba909a5126 (diff)
downloadtde-packaging-f599f39717d771b8b7a2aff006cda6c31e8b12da.tar.gz
tde-packaging-f599f39717d771b8b7a2aff006cda6c31e8b12da.zip
Merge branch 'suse'
Diffstat (limited to 'opensuse/core/qt3/mng-reading-fix.patch')
-rw-r--r--opensuse/core/qt3/mng-reading-fix.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/opensuse/core/qt3/mng-reading-fix.patch b/opensuse/core/qt3/mng-reading-fix.patch
new file mode 100644
index 000000000..ccfd1c452
--- /dev/null
+++ b/opensuse/core/qt3/mng-reading-fix.patch
@@ -0,0 +1,30 @@
+--- src/kernel/qmngio.cpp.sav 2007-02-23 14:01:19.000000000 +0100
++++ src/kernel/qmngio.cpp 2007-08-28 15:27:28.000000000 +0200
+@@ -414,8 +414,11 @@ int QMNGFormat::decode( QImage& img, QIm
+ }
+
+ losttime += losingtimer.elapsed();
+- if ( ndata || !length )
+- mng_display_resume(handle);
++ bool needmore = false;
++ if ( ndata ) {
++ mng_retcode r = mng_display_resume(handle);
++ needmore = ( r == MNG_NEEDMOREDATA );
++ }
+ losingtimer.start();
+
+ image = 0;
+@@ -425,6 +428,13 @@ int QMNGFormat::decode( QImage& img, QIm
+ // Move back unused tail
+ memcpy(buffer,buffer+ubuffer,nbuffer);
+ }
++ // "The function should return without processing all the data if it reaches the end of a frame in the input."
++ if( ndata && !needmore ) {
++ length -= ndata;
++ ndata = 0;
++ if( length == 0 ) // 0 means done, process at least one byte
++ length = ndata = 1;
++ }
+ if ( ndata ) {
+ // Not all used.
+ enlargeBuffer(nbuffer+ndata);