summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristopher Kersey <augustus@gentoo.org>2005-01-08 20:44:45 +0000
committerKristopher Kersey <augustus@gentoo.org>2005-01-08 20:44:45 +0000
commit78a057d9e31cf7c6dc285678e383f6ff0fc2dc05 (patch)
tree3a585748ebdd02b0837ae7f5d2a471c2407586d8 /x11-wm/windowmaker/files
parentAdded emul-linux-x86. (diff)
downloadhistorical-78a057d9e31cf7c6dc285678e383f6ff0fc2dc05.tar.gz
historical-78a057d9e31cf7c6dc285678e383f6ff0fc2dc05.tar.bz2
historical-78a057d9e31cf7c6dc285678e383f6ff0fc2dc05.zip
Added patch from Debian that should fix amd64 problems. This may affect other arches so all should test. Bug #69467.
Diffstat (limited to 'x11-wm/windowmaker/files')
-rw-r--r--x11-wm/windowmaker/files/20_endian+64bit.diff82
-rw-r--r--x11-wm/windowmaker/files/digest-windowmaker-0.91.0-r22
2 files changed, 84 insertions, 0 deletions
diff --git a/x11-wm/windowmaker/files/20_endian+64bit.diff b/x11-wm/windowmaker/files/20_endian+64bit.diff
new file mode 100644
index 000000000000..1acf3d991c5d
--- /dev/null
+++ b/x11-wm/windowmaker/files/20_endian+64bit.diff
@@ -0,0 +1,82 @@
+--- WindowMaker-0.91.0/src/wmspec.c.old 2004-10-24 21:36:15.000000000 +0200
++++ WindowMaker-0.91.0/src/wmspec.c 2004-12-09 18:29:00.000000000 +0100
+@@ -27,6 +27,7 @@
+
+ #include <X11/Xlib.h>
+ #include <X11/Xatom.h>
++#include <X11/Xarch.h>
+ #include <string.h>
+
+ #include "WindowMaker.h"
+@@ -382,40 +383,54 @@
+ &nitems_return, &bytes_after_return, &prop_return);
+
+ if (rc==Success && prop_return) {
+- unsigned int *data = (unsigned int *)prop_return;
++ unsigned long *data = (unsigned long *)prop_return;
+ unsigned int pos = 0, len = 0;
+ unsigned int best_pos = 0, best_tmp = ~0;
++ unsigned int tmp;
+ extern WPreferences wPreferences;
+ unsigned int pref_size = wPreferences.icon_size;
+ unsigned int pref_sq = pref_size*pref_size;
+- char *src, *dst;
++ unsigned char *src, *dst;
+ RImage *new_rimage;
+
+ do {
+ len = data[pos+0]*data[pos+1];
+- unsigned int tmp = pref_sq-len;
++ tmp = pref_sq-len;
+ if (tmp < best_tmp && tmp > 0) {
+ best_tmp = tmp;
+- best_pos = pos;
++ best_pos = pos+2;
+ }
+ pos += 2+len;
+ } while (pos < nitems_return && len != 0);
+
+- new_rimage = RCreateImage(data[best_pos+0], data[best_pos+1], True);
+- len = data[best_pos+0] * data[best_pos+1];
+- src = (char*)&data[best_pos+2];
+- dst = new_rimage->data;
+- for (pos=0; pos<len; ++pos, src+=4, dst+=4) {
+- dst[0] = src[2]; /* R */
+- dst[1] = src[1]; /* G */
+- dst[2] = src[0]; /* B */
+- dst[3] = src[3]; /* A */
+- }
++ if ( best_pos < 2 ) best_pos = 2;
++
++ new_rimage = RCreateImage(data[best_pos-2], data[best_pos-1], True);
+
+ if (new_rimage) {
+- if (wwin->net_icon_image)
+- RReleaseImage(wwin->net_icon_image);
+- wwin->net_icon_image = new_rimage;
++ len = data[best_pos-2] * data[best_pos-1];
++ dst = new_rimage->data;
++
++ for (pos = best_pos; pos < best_pos + len; pos++, dst += 4) {
++ src = (unsigned char *) &data[pos];
++
++#if BYTE_ORDER == BIG_ENDIAN
++ src += sizeof(unsigned long) - 4;
++ dst[0] = src[1]; /* R */
++ dst[1] = src[2]; /* G */
++ dst[2] = src[3]; /* B */
++ dst[3] = src[0]; /* A */
++#else /* Little endian */
++ dst[0] = src[2]; /* R */
++ dst[1] = src[1]; /* G */
++ dst[2] = src[0]; /* B */
++ dst[3] = src[3]; /* A */
++#endif /* endianness */
++ }
++
++ if (wwin->net_icon_image)
++ RReleaseImage(wwin->net_icon_image);
++ wwin->net_icon_image = new_rimage;
+ }
+
+ XFree(prop_return);
diff --git a/x11-wm/windowmaker/files/digest-windowmaker-0.91.0-r2 b/x11-wm/windowmaker/files/digest-windowmaker-0.91.0-r2
new file mode 100644
index 000000000000..8973161344f4
--- /dev/null
+++ b/x11-wm/windowmaker/files/digest-windowmaker-0.91.0-r2
@@ -0,0 +1,2 @@
+MD5 be07953e905d1e42fe7a65ac2193a5f9 WindowMaker-0.91.0.tar.gz 2742380
+MD5 07c7700daaaf232bc490f5abaabef085 WindowMaker-extra-0.1.tar.gz 238018