111 lines
3.8 KiB
Diff
111 lines
3.8 KiB
Diff
tk3.6p1.patch -
|
|
|
|
This patch file updates from Tk 3.6 to Tk 3.6p1. It should be applied
|
|
by running the "patch" program in the top-level directory of a clean
|
|
Tk 3.6 release, using the command "patch -p < tk3.6p1.patch".
|
|
|
|
The patches in this file fix two bugs:
|
|
1. Tk versions 3.4-3.6 have a bug that causes a core dump at line
|
|
1467 of file tkTextDisp.c under some esoteric conditions where
|
|
a text widget gets redisplayed when it has a -yscrollcommand
|
|
but hasn't been mapped onto the screen. The "exmh" program seems
|
|
to be particularly adept at causing the problem.
|
|
2. The filled area of an oval tends to stick out past the outline in
|
|
some cases.
|
|
|
|
Prereq: 206
|
|
*** ../tk3.6/patchlevel.h Sun Nov 21 15:25:43 1993
|
|
--- patchlevel.h Thu Dec 23 09:32:33 1993
|
|
***************
|
|
*** 2,11 ****
|
|
* patchlevel.h --
|
|
*
|
|
* This file does nothing except define a "patch level" for Tk.
|
|
! * The patch level is an integer that increments with each new
|
|
! * release or patch release. It's used to make sure that Tk
|
|
! * patches are applied in the correct order and only to appropriate
|
|
! * sources.
|
|
*/
|
|
|
|
! #define TK_PATCH_LEVEL 206
|
|
--- 2,13 ----
|
|
* patchlevel.h --
|
|
*
|
|
* This file does nothing except define a "patch level" for Tk.
|
|
! * The patch level has the form "X.YpZ" where X.Y is the base
|
|
! * release, and Z is a serial number that is used to sequence
|
|
! * patches for a given release. Thus 3.6p1 is the first patch
|
|
! * to release 3.6, 3.6p2 is the patch that follows 3.6p1, and
|
|
! * so on. The patch level ensures that patches are applied in
|
|
! * the correct order and only to appropriate sources.
|
|
*/
|
|
|
|
! #define TK_PATCH_LEVEL "3.6p1"
|
|
*** ../tk3.6/./tkWindow.c Fri Oct 8 11:37:05 1993
|
|
--- ./tkWindow.c Thu Dec 23 09:30:37 1993
|
|
***************
|
|
*** 619,625 ****
|
|
register TkWindow *winPtr;
|
|
register TkCmd *cmdPtr;
|
|
char *libDir;
|
|
- char buffer[30];
|
|
static char *argv[] = {"-width", "200", "-height", "200", (char *) NULL};
|
|
|
|
/*
|
|
--- 619,624 ----
|
|
***************
|
|
*** 701,708 ****
|
|
libDir = TK_LIBRARY;
|
|
}
|
|
Tcl_SetVar(interp, "tk_library", libDir, TCL_GLOBAL_ONLY);
|
|
! sprintf(buffer, "%d", TK_PATCH_LEVEL);
|
|
! Tcl_SetVar(interp, "tk_patchLevel", buffer, TCL_GLOBAL_ONLY);
|
|
Tcl_SetVar(interp, "tk_version", TK_VERSION, TCL_GLOBAL_ONLY);
|
|
Tcl_SetVar(interp, "tkVersion", TK_VERSION, TCL_GLOBAL_ONLY);
|
|
|
|
--- 700,706 ----
|
|
libDir = TK_LIBRARY;
|
|
}
|
|
Tcl_SetVar(interp, "tk_library", libDir, TCL_GLOBAL_ONLY);
|
|
! Tcl_SetVar(interp, "tk_patchLevel", TK_PATCH_LEVEL, TCL_GLOBAL_ONLY);
|
|
Tcl_SetVar(interp, "tk_version", TK_VERSION, TCL_GLOBAL_ONLY);
|
|
Tcl_SetVar(interp, "tkVersion", TK_VERSION, TCL_GLOBAL_ONLY);
|
|
|
|
*** ../tk3.6/./tkRectOval.c Sat Oct 23 14:59:45 1993
|
|
--- ./tkRectOval.c Thu Dec 23 08:56:28 1993
|
|
***************
|
|
*** 534,543 ****
|
|
if (rectOvalPtr->outlineGC != None) {
|
|
if (rectOvalPtr->header.typePtr == &TkRectangleType) {
|
|
XDrawRectangle(display, drawable, rectOvalPtr->outlineGC,
|
|
! x1, y1, (x2-x1-1), (y2-y1-1));
|
|
} else {
|
|
XDrawArc(display, drawable, rectOvalPtr->outlineGC,
|
|
! x1, y1, (x2-x1-1), (y2-y1-1), 0, 360*64);
|
|
}
|
|
}
|
|
}
|
|
--- 534,543 ----
|
|
if (rectOvalPtr->outlineGC != None) {
|
|
if (rectOvalPtr->header.typePtr == &TkRectangleType) {
|
|
XDrawRectangle(display, drawable, rectOvalPtr->outlineGC,
|
|
! x1, y1, (x2-x1), (y2-y1));
|
|
} else {
|
|
XDrawArc(display, drawable, rectOvalPtr->outlineGC,
|
|
! x1, y1, (x2-x1), (y2-y1), 0, 360*64);
|
|
}
|
|
}
|
|
}
|
|
*** ../tk3.6/./tkTextDisp.c Mon Nov 1 15:06:04 1993
|
|
--- ./tkTextDisp.c Thu Dec 23 08:56:04 1993
|
|
***************
|
|
*** 1217,1222 ****
|
|
--- 1217,1223 ----
|
|
if ((textPtr->tkwin == NULL) || !Tk_IsMapped(textPtr->tkwin)
|
|
|| (dInfoPtr->maxX <= dInfoPtr->x)
|
|
|| (dInfoPtr->maxY <= dInfoPtr->y)) {
|
|
+ UpdateDisplayInfo(textPtr);
|
|
goto doScrollbars;
|
|
}
|
|
numRedisplays++;
|