[arch-commits] Commit in tk/trunk (PKGBUILD tkUnixWm.diff)

Allan McRae allan at archlinux.org
Wed Dec 16 05:18:33 UTC 2009


    Date: Wednesday, December 16, 2009 @ 00:18:32
  Author: allan
Revision: 61430

upgpkg: tk 8.5.8-2
    FS#17501

Added:
  tk/trunk/tkUnixWm.diff
Modified:
  tk/trunk/PKGBUILD

---------------+
 PKGBUILD      |   13 +-
 tkUnixWm.diff |  317 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 327 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2009-12-16 00:11:58 UTC (rev 61429)
+++ PKGBUILD	2009-12-16 05:18:32 UTC (rev 61430)
@@ -4,17 +4,24 @@
 
 pkgname=tk
 pkgver=8.5.8
-pkgrel=1
+pkgrel=2
+
 pkgdesc="A windowing toolkit for use with tcl"
 arch=('i686' 'x86_64')
 url="http://tcl.sourceforge.net/"
 license=('custom')
 depends=("tcl=${pkgver}" 'libxss' 'libxft')
-source=(http://downloads.sourceforge.net/sourceforge/tcl/tk${pkgver}-src.tar.gz)
-md5sums=('13bf90602e16fc530e05196431021dc6')
+source=(http://downloads.sourceforge.net/sourceforge/tcl/tk${pkgver}-src.tar.gz
+        tkUnixWm.diff)
+md5sums=('13bf90602e16fc530e05196431021dc6'
+         'cd72a2c181052163fa76352476fcca86')
 
+
 build() {
   cd ${srcdir}/tk${pkgver}/unix  
+  # FS#17501, upstream bug 2902814
+  patch -Np0 -i $srcdir/tkUnixWm.diff
+  
   if [ "$CARCH" = "x86_64" ]; then
     ./configure --prefix=/usr --mandir=/usr/share/man --enable-threads --enable-64bit
   else

Added: tkUnixWm.diff
===================================================================
--- tkUnixWm.diff	                        (rev 0)
+++ tkUnixWm.diff	2009-12-16 05:18:32 UTC (rev 61430)
@@ -0,0 +1,317 @@
+--- tkUnixWm.c	2009/08/01 08:08:18	1.58.2.3
++++ tkUnixWm.c	2009/11/24 15:18:17	1.58.2.4
+@@ -12,7 +12,7 @@
+  * See the file "license.terms" for information on usage and redistribution of
+  * this file, and for a DISCLAIMER OF ALL WARRANTIES.
+  *
+- * RCS: @(#) $Id: tkUnixWm.c,v 1.58.2.3 2009/08/01 08:08:18 dkf Exp $
++ * RCS: @(#) $Id: tkUnixWm.c,v 1.58.2.4 2009/11/24 15:18:17 dkf Exp $
+  */
+ 
+ #include "tkUnixInt.h"
+@@ -495,7 +495,7 @@
+ 	    ckfree(wmPtr->iconName);
+ 	}
+ 	if (wmPtr->iconDataPtr != NULL) {
+-	    ckfree((char *)wmPtr->iconDataPtr);
++	    ckfree((char *) wmPtr->iconDataPtr);
+ 	}
+ 	if (wmPtr->leaderName != NULL) {
+ 	    ckfree(wmPtr->leaderName);
+@@ -522,7 +522,7 @@
+ 	ckfree((char *) wmPtr);
+     }
+     if (dispPtr->iconDataPtr != NULL) {
+-	ckfree((char *)dispPtr->iconDataPtr);
++	ckfree((char *) dispPtr->iconDataPtr);
+ 	dispPtr->iconDataPtr = NULL;
+     }
+ }
+@@ -706,7 +706,7 @@
+ 		 * _NET_WM_PID requires that to be set too.
+ 		 */
+ 
+-		atom = Tk_InternAtom((Tk_Window)winPtr, "_NET_WM_PID");
++		atom = Tk_InternAtom((Tk_Window) winPtr, "_NET_WM_PID");
+ 		XChangeProperty(winPtr->display, wmPtr->wrapperPtr->window,
+ 			atom, XA_CARDINAL, 32, PropModeReplace,
+ 			(unsigned char *) &pid, 1);
+@@ -836,7 +836,7 @@
+ 	ckfree(wmPtr->iconName);
+     }
+     if (wmPtr->iconDataPtr != NULL) {
+-	ckfree((char *)wmPtr->iconDataPtr);
++	ckfree((char *) wmPtr->iconDataPtr);
+     }
+     if (wmPtr->hints.flags & IconPixmapHint) {
+ 	Tk_FreeBitmap(winPtr->display, wmPtr->hints.icon_pixmap);
+@@ -1262,7 +1262,7 @@
+ 
+ 	opacity = 0xFFFFFFFFul * wmPtr->reqState.alpha;
+ 	XChangeProperty(winPtr->display, wmPtr->wrapperPtr->window,
+-		Tk_InternAtom((Tk_Window)winPtr, "_NET_WM_WINDOW_OPACITY"),
++		Tk_InternAtom((Tk_Window) winPtr, "_NET_WM_WINDOW_OPACITY"),
+ 		XA_CARDINAL, 32, PropModeReplace,
+ 		(unsigned char *)&opacity, 1L);
+ 	wmPtr->attributes.alpha = wmPtr->reqState.alpha;
+@@ -1454,7 +1454,8 @@
+ 	    wmPtr->clientMachine = NULL;
+ 	    if (!(wmPtr->flags & WM_NEVER_MAPPED)) {
+ 		XDeleteProperty(winPtr->display, wmPtr->wrapperPtr->window,
+-			Tk_InternAtom((Tk_Window)winPtr, "WM_CLIENT_MACHINE"));
++			Tk_InternAtom((Tk_Window) winPtr,
++				"WM_CLIENT_MACHINE"));
+ 	    }
+ 	}
+ 	return TCL_OK;
+@@ -1462,8 +1463,7 @@
+     if (wmPtr->clientMachine != NULL) {
+ 	ckfree((char *) wmPtr->clientMachine);
+     }
+-    wmPtr->clientMachine = (char *)
+-	    ckalloc((unsigned) (length + 1));
++    wmPtr->clientMachine = ckalloc((unsigned) length + 1);
+     strcpy(wmPtr->clientMachine, argv3);
+     if (!(wmPtr->flags & WM_NEVER_MAPPED)) {
+ 	XTextProperty textProp;
+@@ -1487,7 +1487,8 @@
+ 
+ 	    XChangeProperty(winPtr->display, wmPtr->wrapperPtr->window,
+ 		    Tk_InternAtom((Tk_Window) winPtr, "_NET_WM_PID"),
+-		    XA_CARDINAL,32, PropModeReplace, (unsigned char*)&pid, 1);
++		    XA_CARDINAL,32, PropModeReplace, (unsigned char *) &pid,
++		    1);
+ 	}
+ 	Tcl_DStringFree(&ds);
+     }
+@@ -1561,7 +1562,7 @@
+ 	return TCL_ERROR;
+     }
+     cmapList = (Window *) ckalloc((unsigned)
+-	    ((windowObjc+1)*sizeof(Window)));
++	    (windowObjc+1) * sizeof(Window));
+     gotToplevel = 0;
+     for (i = 0; i < windowObjc; i++) {
+ 	Tk_Window mapWin;
+@@ -1788,7 +1789,7 @@
+     int objc;			/* Number of arguments. */
+     Tcl_Obj *CONST objv[];	/* Argument objects. */
+ {
+-    register Tk_Window frameWin = (Tk_Window)winPtr;
++    register Tk_Window frameWin = (Tk_Window) winPtr;
+ 
+     if (Tk_IsTopLevel(frameWin)) {
+ 	TkFocusJoin(winPtr);
+@@ -2069,7 +2070,7 @@
+ 	}
+ 	wmPtr->hints.window_group = Tk_WindowId(wmPtr2->wrapperPtr);
+ 	wmPtr->hints.flags |= WindowGroupHint;
+-	wmPtr->leaderName = ckalloc((unsigned) (length + 1));
++	wmPtr->leaderName = ckalloc((unsigned) length + 1);
+ 	strcpy(wmPtr->leaderName, argv3);
+     }
+     UpdateHints(winPtr);
+@@ -2297,7 +2298,7 @@
+ 	    ckfree((char *) wmPtr->iconName);
+ 	}
+ 	argv3 = Tcl_GetStringFromObj(objv[3], &length);
+-	wmPtr->iconName = ckalloc((unsigned) (length + 1));
++	wmPtr->iconName = ckalloc((unsigned) length + 1);
+ 	strcpy(wmPtr->iconName, argv3);
+ 	if (!(wmPtr->flags & WM_NEVER_MAPPED)) {
+ 	    UpdateTitle(winPtr);
+@@ -2335,7 +2336,7 @@
+     Tk_PhotoHandle photo;
+     Tk_PhotoImageBlock block;
+     int i, size = 0, width, height, index = 0, x, y, isDefault = 0;
+-    unsigned int *iconPropertyData;
++    unsigned long *iconPropertyData;
+ 
+     if (objc < 4) {
+ 	Tcl_WrongNumArgs(interp, 2, objv,
+@@ -2375,15 +2376,17 @@
+ 
+     /*
+      * We have calculated the size of the data. Try to allocate the needed
+-     * memory space.
++     * memory space. This is an unsigned long array (despite this being twice
++     * as much as is really needed on LP64 platforms) because that's what X
++     * defines CARD32 arrays to use. [Bug 2902814]
+      */
+ 
+-    iconPropertyData = (unsigned int *)
+-	    Tcl_AttemptAlloc(sizeof(unsigned int) * size);
++    iconPropertyData = (unsigned long *)
++	    attemptckalloc(sizeof(unsigned long) * size);
+     if (iconPropertyData == NULL) {
+ 	return TCL_ERROR;
+     }
+-    memset(iconPropertyData, 0, sizeof(unsigned int) * size);
++    memset(iconPropertyData, 0, sizeof(unsigned long) * size);
+ 
+     for (i = 3 + isDefault; i < objc; i++) {
+ 	photo = Tk_FindPhoto(interp, Tcl_GetString(objv[i]));
+@@ -2421,7 +2424,7 @@
+ 	    for (x = 0; x < width; x++) {
+ 		register unsigned char *pixelPtr =
+ 			block.pixelPtr + x*block.pixelSize + y*block.pitch;
+-		register unsigned int R, G, B, A;
++		register unsigned long R, G, B, A;
+ 
+ 		R = pixelPtr[block.offset[0]];
+ 		G = pixelPtr[block.offset[1]];
+@@ -2432,7 +2435,7 @@
+ 	}
+     }
+     if (wmPtr->iconDataPtr != NULL) {
+-	ckfree((char *)wmPtr->iconDataPtr);
++	ckfree((char *) wmPtr->iconDataPtr);
+ 	wmPtr->iconDataPtr = NULL;
+     }
+     if (isDefault) {
+@@ -2648,7 +2651,7 @@
+     int objc;			/* Number of arguments. */
+     Tcl_Obj *CONST objv[];	/* Argument objects. */
+ {
+-    register Tk_Window frameWin = (Tk_Window)winPtr;
++    register Tk_Window frameWin = (Tk_Window) winPtr;
+     register WmInfo *wmPtr = winPtr->wmInfoPtr;
+ 
+     if (!Tk_IsTopLevel(frameWin)) {
+@@ -3388,7 +3391,7 @@
+ 	    ckfree((char *) wmPtr->title);
+ 	}
+ 	argv3 = Tcl_GetStringFromObj(objv[3], &length);
+-	wmPtr->title = ckalloc((unsigned) (length + 1));
++	wmPtr->title = ckalloc((unsigned) length + 1);
+ 	strcpy(wmPtr->title, argv3);
+ 
+ 	if (!(wmPtr->flags & WM_NEVER_MAPPED)) {
+@@ -3531,7 +3534,7 @@
+ 			wmPtr->masterPtr->wmInfoPtr->wrapperPtr->window);
+ 	    } else {
+ 		XDeleteProperty(winPtr->display, wmPtr->wrapperPtr->window,
+-			Tk_InternAtom((Tk_Window)winPtr, "WM_TRANSIENT_FOR"));
++			Tk_InternAtom((Tk_Window) winPtr, "WM_TRANSIENT_FOR"));
+ 	    }
+ 	}
+     }
+@@ -4257,7 +4260,7 @@
+ {
+     TkWindow *wrapperPtr = wmPtr->wrapperPtr;
+     Atom _NET_WM_STATE =
+-	    Tk_InternAtom((Tk_Window)wmPtr->winPtr, "_NET_WM_STATE");
++	    Tk_InternAtom((Tk_Window) wmPtr->winPtr, "_NET_WM_STATE");
+ 
+     if (eventPtr->atom == _NET_WM_STATE) {
+ 	Atom actualType;
+@@ -4271,7 +4274,7 @@
+ 		0l, maxLength, False, XA_ATOM,
+ 		&actualType, &actualFormat, &numItems, &bytesAfter,
+ 		&propertyValue) == Success) {
+-	    CheckNetWmState(wmPtr, (Atom*)propertyValue, (int)numItems);
++	    CheckNetWmState(wmPtr, (Atom *) propertyValue, (int) numItems);
+ 	    XFree(propertyValue);
+ 	}
+     }
+@@ -4660,7 +4663,7 @@
+ 	wmPtr->configHeight = height;
+ 	if (winPtr->dispPtr->flags & TK_DISPLAY_WM_TRACING) {
+ 	    printf("UpdateGeometryInfo resizing %p to %d x %d\n",
+-		    (void *)wmPtr->wrapperPtr->window, width, height);
++		    (void *) wmPtr->wrapperPtr->window, width, height);
+ 	}
+ 	XResizeWindow(winPtr->display, wmPtr->wrapperPtr->window,
+ 		(unsigned) width, (unsigned) height);
+@@ -4831,7 +4834,7 @@
+     XChangeProperty(winPtr->display, wmPtr->wrapperPtr->window,
+ 	    Tk_InternAtom((Tk_Window) winPtr, "_NET_WM_NAME"),
+ 	    XA_UTF8_STRING, 8, PropModeReplace,
+-	    (const unsigned char*)string, (signed int)strlen(string));
++	    (const unsigned char *) string, (signed int) strlen(string));
+ 
+     /*
+      * Set icon name:
+@@ -4846,8 +4849,8 @@
+ 	XChangeProperty(winPtr->display, wmPtr->wrapperPtr->window,
+ 		Tk_InternAtom((Tk_Window) winPtr, "_NET_WM_ICON_NAME"),
+ 		XA_UTF8_STRING, 8, PropModeReplace,
+-		(const unsigned char*)wmPtr->iconName,
+-		(signed int)strlen(wmPtr->iconName));
++		(const unsigned char *) wmPtr->iconName,
++		(signed int) strlen(wmPtr->iconName));
+     }
+ }
+ 

+@@ -4916,7 +4919,7 @@
+     const char *atomName,
+     int on)
+ {
+-    Tk_Window tkwin = (Tk_Window)winPtr;
++    Tk_Window tkwin = (Tk_Window) winPtr;
+     Atom messageType = Tk_InternAtom(tkwin, "_NET_WM_STATE");
+     Atom action = on ? _NET_WM_STATE_ADD : _NET_WM_STATE_REMOVE;
+     Atom property = Tk_InternAtom(tkwin, atomName);
+@@ -4963,7 +4966,7 @@
+     Atom *atoms,
+     int numAtoms)
+ {
+-    Tk_Window tkwin = (Tk_Window)wmPtr->wrapperPtr;
++    Tk_Window tkwin = (Tk_Window) wmPtr->wrapperPtr;
+     int i;
+     Atom _NET_WM_STATE_ABOVE
+ 	    = Tk_InternAtom(tkwin, "_NET_WM_STATE_ABOVE"),
+@@ -5011,7 +5014,7 @@
+ UpdateNetWmState(
+     WmInfo *wmPtr)
+ {
+-    Tk_Window tkwin = (Tk_Window)wmPtr->wrapperPtr;
++    Tk_Window tkwin = (Tk_Window) wmPtr->wrapperPtr;
+     Atom atoms[NET_WM_STATE_MAX_ATOMS];
+     long numAtoms = 0;
+ 
+@@ -5028,7 +5031,7 @@
+ 
+     XChangeProperty(Tk_Display(tkwin), wmPtr->wrapperPtr->window,
+ 	    Tk_InternAtom(tkwin, "_NET_WM_STATE"), XA_ATOM, 32,
+-	    PropModeReplace, (unsigned char *)atoms, numAtoms);
++	    PropModeReplace, (unsigned char *) atoms, numAtoms);
+ }
+ 
+ /*
+@@ -5526,7 +5529,7 @@
+ 
+ 		root = winPtr->wmInfoPtr->vRoot;
+ 		if (root == None) {
+-		    root = RootWindowOfScreen(Tk_Screen((Tk_Window)winPtr));
++		    root = RootWindowOfScreen(Tk_Screen((Tk_Window) winPtr));
+ 		}
+ 		XTranslateCoordinates(winPtr->display, winPtr->window,
+ 			root, 0, 0, &rootX, &rootY, &dummyChild);
+@@ -5982,7 +5985,7 @@
+ 	    protPtr = protPtr->nextPtr, count++) {
+ 	/* Empty loop body; we're just counting the handlers. */
+     }
+-    arrayPtr = (Atom *) ckalloc((unsigned) (count * sizeof(Atom)));
++    arrayPtr = (Atom *) ckalloc((unsigned) count * sizeof(Atom));
+     deleteWindowAtom = Tk_InternAtom((Tk_Window) wmPtr->winPtr,
+ 	    "WM_DELETE_WINDOW");
+     pingAtom = Tk_InternAtom((Tk_Window) wmPtr->winPtr, "_NET_WM_PING");
+@@ -6378,7 +6381,7 @@
+      * add the toplevel itself as the last element of the list.
+      */
+ 
+-    newPtr = (Window *) ckalloc((unsigned) ((count+2)*sizeof(Window)));
++    newPtr = (Window *) ckalloc((unsigned) (count+2) * sizeof(Window));
+     for (i = 0; i < count; i++) {
+ 	newPtr[i] = oldPtr[i];
+     }
+@@ -7030,7 +7033,7 @@
+      */
+ 
+     cmdArgv = (char **) ckalloc(sizeof(char *) * wmPtr->cmdArgc);
+-    offsets = (int *) ckalloc( sizeof(int) * wmPtr->cmdArgc);
++    offsets = (int *) ckalloc(sizeof(int) * wmPtr->cmdArgc);
+     Tcl_DStringInit(&cmds);
+     for (i = 0; i < wmPtr->cmdArgc; i++) {
+ 	Tcl_UtfToExternalDString(NULL, wmPtr->cmdArgv[i], -1, &ds);




More information about the arch-commits mailing list