diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2024-06-30 17:07:58 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2024-06-30 17:07:58 (GMT) |
commit | b1b5c61a7458041a11b7a5920b22689566345256 (patch) | |
tree | 24244422ce05e0adb9528fa7d76f3c95ff398341 /generic | |
parent | 81291da33b1e6f1cab8020cb72dd43a974a0a20e (diff) | |
parent | 247c0ea91f30dcb6e0897e0598ddbaff82525184 (diff) | |
download | tk-b1b5c61a7458041a11b7a5920b22689566345256.zip tk-b1b5c61a7458041a11b7a5920b22689566345256.tar.gz tk-b1b5c61a7458041a11b7a5920b22689566345256.tar.bz2 |
Merge 9.0. Streamline some indenting
Diffstat (limited to 'generic')
-rw-r--r-- | generic/tk.h | 12 | ||||
-rw-r--r-- | generic/tkCanvas.c | 2 | ||||
-rw-r--r-- | generic/tkConfig.c | 254 | ||||
-rw-r--r-- | generic/tkEntry.c | 2 | ||||
-rw-r--r-- | generic/tkFont.c | 3 | ||||
-rw-r--r-- | generic/tkFrame.c | 6 | ||||
-rw-r--r-- | generic/tkImgBmap.c | 4 | ||||
-rw-r--r-- | generic/tkImgGIF.c | 12 | ||||
-rw-r--r-- | generic/tkImgPNG.c | 9 | ||||
-rw-r--r-- | generic/tkImgPPM.c | 5 | ||||
-rw-r--r-- | generic/tkImgPhoto.c | 13 | ||||
-rw-r--r-- | generic/tkListbox.c | 116 | ||||
-rw-r--r-- | generic/tkMenu.c | 120 | ||||
-rw-r--r-- | generic/tkObj.c | 12 | ||||
-rw-r--r-- | generic/tkOldConfig.c | 26 | ||||
-rw-r--r-- | generic/tkOption.c | 10 | ||||
-rw-r--r-- | generic/tkPack.c | 8 | ||||
-rw-r--r-- | generic/tkPanedWindow.c | 130 | ||||
-rw-r--r-- | generic/tkPlace.c | 100 | ||||
-rw-r--r-- | generic/tkScrollbar.c | 10 | ||||
-rw-r--r-- | generic/tkSelect.c | 8 | ||||
-rw-r--r-- | generic/tkTextDisp.c | 2 | ||||
-rw-r--r-- | generic/tkTextWind.c | 8 | ||||
-rw-r--r-- | generic/tkWindow.c | 4 |
24 files changed, 440 insertions, 436 deletions
diff --git a/generic/tk.h b/generic/tk.h index 7d7f2fe..016ea26 100644 --- a/generic/tk.h +++ b/generic/tk.h @@ -227,8 +227,12 @@ typedef struct Tk_OptionSpec { * Tk_ConfigSpec structures, so be sure to coordinate any changes carefully. */ -#define TK_OPTION_NULL_OK (1 << 0) #define TK_OPTION_DONT_SET_DEFAULT (1 << 3) +#if TCL_MAJOR_VERSION > 8 +# define TK_OPTION_NULL_OK TCL_NULL_OK +#else +# define TK_OPTION_NULL_OK (1 << 0) +#endif #define TK_OPTION_VAR(type) ((sizeof(type) < 2 * sizeof(int)) ? ((int)(sizeof(type)&(sizeof(int)-1))<<6) : (3<<6)) #define TK_OPTION_ENUM_VAR TK_OPTION_VAR(Tk_OptionType) @@ -409,10 +413,14 @@ typedef enum { * (internal-use-only flags are defined there). */ -#define TK_CONFIG_NULL_OK (1 << 0) #define TK_CONFIG_COLOR_ONLY (1 << 1) #define TK_CONFIG_MONO_ONLY (1 << 2) #define TK_CONFIG_DONT_SET_DEFAULT (1 << 3) +#if TCL_MAJOR_VERSION > 8 +# define TK_CONFIG_NULL_OK TCL_NULL_OK +#else +# define TK_CONFIG_NULL_OK (1 << 0) +#endif #define TK_CONFIG_USER_BIT 0x100 #endif /* __NO_OLD_CONFIG */ diff --git a/generic/tkCanvas.c b/generic/tkCanvas.c index aa3fca3..879cf27 100644 --- a/generic/tkCanvas.c +++ b/generic/tkCanvas.c @@ -3196,7 +3196,7 @@ DisplayCanvas( Tk_Height(tkwin) - 2*canvasPtr->highlightWidth, canvasPtr->borderWidth, canvasPtr->relief); } - if (canvasPtr->highlightWidth != 0) { + if (canvasPtr->highlightWidth > 0) { GC fgGC, bgGC; bgGC = Tk_GCForColor(canvasPtr->highlightBgColorPtr, diff --git a/generic/tkConfig.c b/generic/tkConfig.c index 7362831..3336467 100644 --- a/generic/tkConfig.c +++ b/generic/tkConfig.c @@ -215,7 +215,7 @@ Tk_CreateOptionTable( * reuse the existing table. */ - hashEntryPtr = Tcl_CreateHashEntry(&tsdPtr->hashTable, (char *) templatePtr, + hashEntryPtr = Tcl_CreateHashEntry(&tsdPtr->hashTable, (char *)templatePtr, &newEntry); if (!newEntry) { tablePtr = (OptionTable *)Tcl_GetHashValue(hashEntryPtr); @@ -262,7 +262,7 @@ Tk_CreateOptionTable( Tcl_Panic("Tk_CreateOptionTable couldn't find synonym"); } if (strcmp(specPtr2->optionName, - (char *) specPtr->clientData) == 0) { + (char *)specPtr->clientData) == 0) { optionPtr->extra.synonymPtr = tablePtr->options + i; break; } @@ -621,11 +621,11 @@ DoObjConfig( if (savedOptionPtr != NULL) { savedOptionPtr->optionPtr = optionPtr; savedOptionPtr->valuePtr = oldPtr; - oldInternalPtr = (char *) &savedOptionPtr->internalForm; + oldInternalPtr = (char *)&savedOptionPtr->internalForm; } else { - oldInternalPtr = (char *) &internal.internalForm; + oldInternalPtr = (char *)&internal.internalForm; } - nullOK = (optionPtr->specPtr->flags & (TK_OPTION_NULL_OK|TCL_NULL_OK)); + nullOK = (optionPtr->specPtr->flags & (TK_OPTION_NULL_OK|TCL_NULL_OK|1)); switch (optionPtr->specPtr->type) { case TK_OPTION_BOOLEAN: { int newBool; @@ -643,17 +643,17 @@ DoObjConfig( if (internalPtr != NULL) { if (optionPtr->specPtr->flags & TYPE_MASK) { if ((optionPtr->specPtr->flags & TYPE_MASK) == TK_OPTION_VAR(char)) { - *((char *) oldInternalPtr) = *((char *) internalPtr); - *((char *) internalPtr) = (char)newBool; + *((char *)oldInternalPtr) = *((char *)internalPtr); + *((char *)internalPtr) = (char)newBool; } else if ((optionPtr->specPtr->flags & TYPE_MASK) == TK_OPTION_VAR(short)) { - *((short *) oldInternalPtr) = *((short *) internalPtr); - *((short *) internalPtr) = (short)newBool; + *((short *)oldInternalPtr) = *((short *)internalPtr); + *((short *)internalPtr) = (short)newBool; } else { Tcl_Panic("Invalid flags for %s", "TK_OPTION_BOOLEAN"); } } else { - *((int *) oldInternalPtr) = *((int *) internalPtr); - *((int *) internalPtr) = newBool; + *((int *)oldInternalPtr) = *((int *)internalPtr); + *((int *)internalPtr) = newBool; } } break; @@ -670,13 +670,13 @@ DoObjConfig( if (nullOK && interp) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( "expected integer or \"\" but got \"%.50s\"", Tcl_GetString(valuePtr))); - Tcl_SetErrorCode(interp, "TCL", "VALUE", "NUMBER", NULL); + Tcl_SetErrorCode(interp, "TCL", "VALUE", "NUMBER", (char *)NULL); } return TCL_ERROR; } if (internalPtr != NULL) { - *((int *) oldInternalPtr) = *((int *) internalPtr); - *((int *) internalPtr) = newInt; + *((int *)oldInternalPtr) = *((int *)internalPtr); + *((int *)internalPtr) = newInt; } } else if ((optionPtr->specPtr->flags & TYPE_MASK) == TYPE_MASK) { Tcl_WideInt newWideInt; @@ -688,11 +688,11 @@ DoObjConfig( } if (internalPtr != NULL) { if (sizeof(long) > sizeof(int)) { - *((long *) oldInternalPtr) = *((long *) internalPtr); - *((long *) internalPtr) = (long)newWideInt; + *((long *)oldInternalPtr) = *((long *)internalPtr); + *((long *)internalPtr) = (long)newWideInt; } else { - *((long long *) oldInternalPtr) = *((long long *) internalPtr); - *((long long *) internalPtr) = (long long)newWideInt; + *((long long *)oldInternalPtr) = *((long long *)internalPtr); + *((long long *)internalPtr) = (long long)newWideInt; } } } else { @@ -716,8 +716,8 @@ DoObjConfig( newIndex = INT_MAX; } if (internalPtr != NULL) { - *((int *) oldInternalPtr) = *((int *) internalPtr); - *((int *) internalPtr) = (int)newIndex; + *((int *)oldInternalPtr) = *((int *)internalPtr); + *((int *)internalPtr) = (int)newIndex; } break; } @@ -739,15 +739,15 @@ DoObjConfig( Tcl_AppendLimitedToObj(msg, Tcl_GetString(valuePtr), TCL_INDEX_NONE, 50, ""); Tcl_AppendToObj(msg, "\"", TCL_INDEX_NONE); Tcl_SetObjResult(interp, msg); - Tcl_SetErrorCode(interp, "TCL", "VALUE", "NUMBER", NULL); + Tcl_SetErrorCode(interp, "TCL", "VALUE", "NUMBER", (char *)NULL); } return TCL_ERROR; } } if (internalPtr != NULL) { - *((double *) oldInternalPtr) = *((double *) internalPtr); - *((double *) internalPtr) = newDbl; + *((double *)oldInternalPtr) = *((double *)internalPtr); + *((double *)internalPtr) = newDbl; } break; } @@ -767,8 +767,8 @@ DoObjConfig( } else { newStr = NULL; } - *((char **) oldInternalPtr) = *((char **) internalPtr); - *((char **) internalPtr) = newStr; + *((char **)oldInternalPtr) = *((char **)internalPtr); + *((char **)internalPtr) = newStr; } break; } @@ -792,17 +792,17 @@ DoObjConfig( if (internalPtr != NULL) { if (optionPtr->specPtr->flags & TYPE_MASK) { if ((optionPtr->specPtr->flags & TYPE_MASK) == TK_OPTION_VAR(char)) { - *((char *) oldInternalPtr) = *((char *) internalPtr); - *((char *) internalPtr) = (char)newValue; + *((char *)oldInternalPtr) = *((char *)internalPtr); + *((char *)internalPtr) = (char)newValue; } else if ((optionPtr->specPtr->flags & TYPE_MASK) == TK_OPTION_VAR(short)) { - *((short *) oldInternalPtr) = *((short *) internalPtr); - *((short *) internalPtr) = (short)newValue; + *((short *)oldInternalPtr) = *((short *)internalPtr); + *((short *)internalPtr) = (short)newValue; } else { Tcl_Panic("Invalid flags for %s", "TK_OPTION_STRING_TABLE"); } } else { - *((int *) oldInternalPtr) = *((int *) internalPtr); - *((int *) internalPtr) = newValue; + *((int *)oldInternalPtr) = *((int *)internalPtr); + *((int *)internalPtr) = newValue; } } break; @@ -820,8 +820,8 @@ DoObjConfig( } } if (internalPtr != NULL) { - *((XColor **) oldInternalPtr) = *((XColor **) internalPtr); - *((XColor **) internalPtr) = newPtr; + *((XColor **)oldInternalPtr) = *((XColor **)internalPtr); + *((XColor **)internalPtr) = newPtr; } break; } @@ -838,8 +838,8 @@ DoObjConfig( } } if (internalPtr != NULL) { - *((Tk_Font *) oldInternalPtr) = *((Tk_Font *) internalPtr); - *((Tk_Font *) internalPtr) = newFont; + *((Tk_Font *)oldInternalPtr) = *((Tk_Font *)internalPtr); + *((Tk_Font *)internalPtr) = newFont; } break; } @@ -856,8 +856,8 @@ DoObjConfig( } } if (internalPtr != NULL) { - *((Tk_Style *) oldInternalPtr) = *((Tk_Style *) internalPtr); - *((Tk_Style *) internalPtr) = newStyle; + *((Tk_Style *)oldInternalPtr) = *((Tk_Style *)internalPtr); + *((Tk_Style *)internalPtr) = newStyle; } break; } @@ -874,8 +874,8 @@ DoObjConfig( } } if (internalPtr != NULL) { - *((Pixmap *) oldInternalPtr) = *((Pixmap *) internalPtr); - *((Pixmap *) internalPtr) = newBitmap; + *((Pixmap *)oldInternalPtr) = *((Pixmap *)internalPtr); + *((Pixmap *)internalPtr) = newBitmap; } break; } @@ -892,8 +892,8 @@ DoObjConfig( } } if (internalPtr != NULL) { - *((Tk_3DBorder *) oldInternalPtr) = *((Tk_3DBorder *) internalPtr); - *((Tk_3DBorder *) internalPtr) = newBorder; + *((Tk_3DBorder *)oldInternalPtr) = *((Tk_3DBorder *)internalPtr); + *((Tk_3DBorder *)internalPtr) = newBorder; } break; } @@ -910,17 +910,17 @@ DoObjConfig( if (internalPtr != NULL) { if (optionPtr->specPtr->flags & TYPE_MASK) { if ((optionPtr->specPtr->flags & TYPE_MASK) == TK_OPTION_VAR(char)) { - *((char *) oldInternalPtr) = *((char *) internalPtr); - *((char *) internalPtr) = (char)newRelief; + *((char *)oldInternalPtr) = *((char *)internalPtr); + *((char *)internalPtr) = (char)newRelief; } else if ((optionPtr->specPtr->flags & TYPE_MASK) == TK_OPTION_VAR(short)) { - *((short *) oldInternalPtr) = *((short *) internalPtr); - *((short *) internalPtr) = (short)newRelief; + *((short *)oldInternalPtr) = *((short *)internalPtr); + *((short *)internalPtr) = (short)newRelief; } else { Tcl_Panic("Invalid flags for %s", "TK_OPTION_RELIEF"); } } else { - *((int *) oldInternalPtr) = *((int *) internalPtr); - *((int *) internalPtr) = newRelief; + *((int *)oldInternalPtr) = *((int *)internalPtr); + *((int *)internalPtr) = newRelief; } } if (slotPtrPtr != NULL && valuePtr != NULL) { @@ -961,17 +961,17 @@ DoObjConfig( if (internalPtr != NULL) { if (optionPtr->specPtr->flags & TYPE_MASK) { if ((optionPtr->specPtr->flags & TYPE_MASK) == TK_OPTION_VAR(char)) { - *((char *) oldInternalPtr) = *((char *) internalPtr); - *((char *) internalPtr) = (char)newJustify; + *((char *)oldInternalPtr) = *((char *)internalPtr); + *((char *)internalPtr) = (char)newJustify; } else if ((optionPtr->specPtr->flags & TYPE_MASK) == TK_OPTION_VAR(short)) { - *((short *) oldInternalPtr) = *((short *) internalPtr); - *((short *) internalPtr) = (short)newJustify; + *((short *)oldInternalPtr) = *((short *)internalPtr); + *((short *)internalPtr) = (short)newJustify; } else { Tcl_Panic("Invalid flags for %s", "TK_OPTION_JUSTIFY"); } } else { - *((int *) oldInternalPtr) = *((int *) internalPtr); - *((int *) internalPtr) = newJustify; + *((int *)oldInternalPtr) = *((int *)internalPtr); + *((int *)internalPtr) = newJustify; } } if (slotPtrPtr != NULL && valuePtr != NULL) { @@ -993,17 +993,17 @@ DoObjConfig( if (internalPtr != NULL) { if (optionPtr->specPtr->flags & TYPE_MASK) { if ((optionPtr->specPtr->flags & TYPE_MASK) == TK_OPTION_VAR(char)) { - *((char *) oldInternalPtr) = *((char *) internalPtr); - *((char *) internalPtr) = (char)newAnchor; + *((char *)oldInternalPtr) = *((char *)internalPtr); + *((char *)internalPtr) = (char)newAnchor; } else if ((optionPtr->specPtr->flags & TYPE_MASK) == TK_OPTION_VAR(short)) { - *((short *) oldInternalPtr) = *((short *) internalPtr); - *((short *) internalPtr) = (short)newAnchor; + *((short *)oldInternalPtr) = *((short *)internalPtr); + *((short *)internalPtr) = (short)newAnchor; } else { Tcl_Panic("Invalid flags for %s", "TK_OPTION_JUSTIFY"); } } else { - *((int *) oldInternalPtr) = *((int *) internalPtr); - *((int *) internalPtr) = newAnchor; + *((int *)oldInternalPtr) = *((int *)internalPtr); + *((int *)internalPtr) = newAnchor; } } if (slotPtrPtr != NULL && valuePtr != NULL) { @@ -1020,16 +1020,16 @@ DoObjConfig( newPixels = INT_MIN; } else if (Tk_GetPixelsFromObj(nullOK ? NULL : interp, tkwin, valuePtr, &newPixels) != TCL_OK) { - if (nullOK && interp) { + if (nullOK) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( "expected screen distance or \"\" but got \"%.50s\"", Tcl_GetString(valuePtr))); - Tcl_SetErrorCode(interp, "TK", "VALUE", "PIXELS", NULL); + Tcl_SetErrorCode(interp, "TK", "VALUE", "PIXELS", (char *)NULL); } return TCL_ERROR; } if (internalPtr != NULL) { - *((int *) oldInternalPtr) = *((int *) internalPtr); - *((int *) internalPtr) = newPixels; + *((int *)oldInternalPtr) = *((int *)internalPtr); + *((int *)internalPtr) = newPixels; } break; } @@ -1044,8 +1044,8 @@ DoObjConfig( return TCL_ERROR; } if (internalPtr != NULL) { - *((Tk_Window *) oldInternalPtr) = *((Tk_Window *) internalPtr); - *((Tk_Window *) internalPtr) = newWin; + *((Tk_Window *)oldInternalPtr) = *((Tk_Window *)internalPtr); + *((Tk_Window *)internalPtr) = newWin; } break; } @@ -1064,7 +1064,7 @@ DoObjConfig( Tcl_SetObjResult(interp, Tcl_ObjPrintf( "bad config table: unknown type %d", optionPtr->specPtr->type)); - Tcl_SetErrorCode(interp, "TK", "BAD_CONFIG", NULL); + Tcl_SetErrorCode(interp, "TK", "BAD_CONFIG", (char *)NULL); return TCL_ERROR; } @@ -1271,7 +1271,7 @@ GetOptionFromObj( if (interp != NULL) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( "unknown option \"%s\"", name)); - Tcl_SetErrorCode(interp, "TK", "LOOKUP", "OPTION", name, NULL); + Tcl_SetErrorCode(interp, "TK", "LOOKUP", "OPTION", name, (char *)NULL); } return NULL; } @@ -1447,7 +1447,7 @@ Tk_SetOptions( Tcl_SetObjResult(interp, Tcl_ObjPrintf( "value for \"%s\" missing", Tcl_GetString(*objv))); - Tcl_SetErrorCode(interp, "TK", "VALUE_MISSING", NULL); + Tcl_SetErrorCode(interp, "TK", "VALUE_MISSING", (char *)NULL); goto error; } } @@ -1570,86 +1570,86 @@ Tk_RestoreSavedOptions( = savePtr->items[i].valuePtr; } if (specPtr->internalOffset != TCL_INDEX_NONE) { - char *ptr = (char *) &savePtr->items[i].internalForm; + char *ptr = (char *)&savePtr->items[i].internalForm; CLANG_ASSERT(internalPtr); switch (specPtr->type) { case TK_OPTION_BOOLEAN: if (optionPtr->specPtr->flags & TYPE_MASK) { if ((optionPtr->specPtr->flags & TYPE_MASK) == TK_OPTION_VAR(char)) { - *((char *) internalPtr) = *((char *) ptr); + *((char *)internalPtr) = *((char *)ptr); } else if ((optionPtr->specPtr->flags & TYPE_MASK) == TK_OPTION_VAR(short)) { - *((short *) internalPtr) = *((short *) ptr); + *((short *)internalPtr) = *((short *)ptr); } else { Tcl_Panic("Invalid flags for %s", "TK_OPTION_BOOLEAN"); } } else { - *((int *) internalPtr) = *((int *) ptr); + *((int *)internalPtr) = *((int *)ptr); } break; case TK_OPTION_INT: if (optionPtr->specPtr->flags & TYPE_MASK) { if ((optionPtr->specPtr->flags & TYPE_MASK) == TYPE_MASK) { if (sizeof(long) > sizeof(int)) { - *((long *) internalPtr) = *((long *) ptr); + *((long *)internalPtr) = *((long *)ptr); } else { - *((long long *) internalPtr) = *((long long *) ptr); + *((long long *)internalPtr) = *((long long *)ptr); } } else { Tcl_Panic("Invalid flags for %s", "TK_OPTION_INT"); } } else { - *((int *) internalPtr) = *((int *) ptr); + *((int *)internalPtr) = *((int *)ptr); } break; case TK_OPTION_INDEX: - *((int *) internalPtr) = *((int *) ptr); + *((int *)internalPtr) = *((int *)ptr); break; case TK_OPTION_DOUBLE: - *((double *) internalPtr) = *((double *) ptr); + *((double *)internalPtr) = *((double *)ptr); break; case TK_OPTION_STRING: - *((char **) internalPtr) = *((char **) ptr); + *((char **)internalPtr) = *((char **)ptr); break; case TK_OPTION_STRING_TABLE: if (optionPtr->specPtr->flags & TYPE_MASK) { if ((optionPtr->specPtr->flags & TYPE_MASK) == TK_OPTION_VAR(char)) { - *((char *) internalPtr) = *((char *) ptr); + *((char *)internalPtr) = *((char *)ptr); } else if ((optionPtr->specPtr->flags & TYPE_MASK) == TK_OPTION_VAR(short)) { - *((short *) internalPtr) = *((short *) ptr); + *((short *)internalPtr) = *((short *)ptr); } else { Tcl_Panic("Invalid flags for %s", "TK_OPTION_STRING_TABLE"); } } else { - *((int *) internalPtr) = *((int *) ptr); + *((int *)internalPtr) = *((int *)ptr); } break; case TK_OPTION_COLOR: - *((XColor **) internalPtr) = *((XColor **) ptr); + *((XColor **)internalPtr) = *((XColor **)ptr); break; case TK_OPTION_FONT: - *((Tk_Font *) internalPtr) = *((Tk_Font *) ptr); + *((Tk_Font *)internalPtr) = *((Tk_Font *)ptr); break; case TK_OPTION_STYLE: - *((Tk_Style *) internalPtr) = *((Tk_Style *) ptr); + *((Tk_Style *)internalPtr) = *((Tk_Style *)ptr); break; case TK_OPTION_BITMAP: - *((Pixmap *) internalPtr) = *((Pixmap *) ptr); + *((Pixmap *)internalPtr) = *((Pixmap *)ptr); break; case TK_OPTION_BORDER: - *((Tk_3DBorder *) internalPtr) = *((Tk_3DBorder *) ptr); + *((Tk_3DBorder *)internalPtr) = *((Tk_3DBorder *)ptr); break; case TK_OPTION_RELIEF: if (optionPtr->specPtr->flags & TYPE_MASK) { if ((optionPtr->specPtr->flags & TYPE_MASK) == TK_OPTION_VAR(char)) { - *((char *) internalPtr) = *((char *) ptr); + *((char *)internalPtr) = *((char *)ptr); } else if ((optionPtr->specPtr->flags & TYPE_MASK) == TK_OPTION_VAR(short)) { - *((short *) internalPtr) = *((short *) ptr); + *((short *)internalPtr) = *((short *)ptr); } else { Tcl_Panic("Invalid flags for %s", "TK_OPTION_RELIEF"); } } else { - *((int *) internalPtr) = *((int *) ptr); + *((int *)internalPtr) = *((int *)ptr); } break; case TK_OPTION_CURSOR: @@ -1659,34 +1659,34 @@ Tk_RestoreSavedOptions( case TK_OPTION_JUSTIFY: if (optionPtr->specPtr->flags & TYPE_MASK) { if ((optionPtr->specPtr->flags & TYPE_MASK) == TK_OPTION_VAR(char)) { - *((char *) internalPtr) = *((char *) ptr); + *((char *)internalPtr) = *((char *)ptr); } else if ((optionPtr->specPtr->flags & TYPE_MASK) == TK_OPTION_VAR(short)) { - *((short *) internalPtr) = *((short *) ptr); + *((short *)internalPtr) = *((short *)ptr); } else { Tcl_Panic("Invalid flags for %s", "TK_OPTION_JUSTIFY"); } } else { - *((int *) internalPtr) = *((int *) ptr); + *((int *)internalPtr) = *((int *)ptr); } break; case TK_OPTION_ANCHOR: if (optionPtr->specPtr->flags & TYPE_MASK) { if ((optionPtr->specPtr->flags & TYPE_MASK) == TK_OPTION_VAR(char)) { - *((char *) internalPtr) = *((char *) ptr); + *((char *)internalPtr) = *((char *)ptr); } else if ((optionPtr->specPtr->flags & TYPE_MASK) == TK_OPTION_VAR(short)) { - *((short *) internalPtr) = *((short *) ptr); + *((short *)internalPtr) = *((short *)ptr); } else { Tcl_Panic("Invalid flags for %s", "TK_OPTION_ANCHOR"); } } else { - *((int *) internalPtr) = *((int *) ptr); + *((int *)internalPtr) = *((int *)ptr); } break; case TK_OPTION_PIXELS: - *((int *) internalPtr) = *((int *) ptr); + *((int *)internalPtr) = *((int *)ptr); break; case TK_OPTION_WINDOW: - *((Tk_Window *) internalPtr) = *((Tk_Window *) ptr); + *((Tk_Window *)internalPtr) = *((Tk_Window *)ptr); break; case TK_OPTION_CUSTOM: { const Tk_ObjCustomOption *custom = optionPtr->extra.custom; @@ -1738,7 +1738,7 @@ Tk_FreeSavedOptions( savedOptionPtr = &savePtr->items[count-1]; if (savedOptionPtr->optionPtr->flags & OPTION_NEEDS_FREEING) { FreeResources(savedOptionPtr->optionPtr, savedOptionPtr->valuePtr, - (char *) &savedOptionPtr->internalForm, savePtr->tkwin); + (char *)&savedOptionPtr->internalForm, savePtr->tkwin); } if (savedOptionPtr->valuePtr != NULL) { Tcl_DecrRefCount(savedOptionPtr->valuePtr); @@ -1849,17 +1849,17 @@ FreeResources( switch (optionPtr->specPtr->type) { case TK_OPTION_STRING: if (internalFormExists) { - if (*((char **) internalPtr) != NULL) { - ckfree(*((char **) internalPtr)); - *((char **) internalPtr) = NULL; + if (*((char **)internalPtr) != NULL) { + ckfree(*((char **)internalPtr)); + *((char **)internalPtr) = NULL; } } break; case TK_OPTION_COLOR: if (internalFormExists) { - if (*((XColor **) internalPtr) != NULL) { - Tk_FreeColor(*((XColor **) internalPtr)); - *((XColor **) internalPtr) = NULL; + if (*((XColor **)internalPtr) != NULL) { + Tk_FreeColor(*((XColor **)internalPtr)); + *((XColor **)internalPtr) = NULL; } } else if (objPtr != NULL) { Tk_FreeColorFromObj(tkwin, objPtr); @@ -1867,23 +1867,23 @@ FreeResources( break; case TK_OPTION_FONT: if (internalFormExists) { - Tk_FreeFont(*((Tk_Font *) internalPtr)); - *((Tk_Font *) internalPtr) = NULL; + Tk_FreeFont(*((Tk_Font *)internalPtr)); + *((Tk_Font *)internalPtr) = NULL; } else if (objPtr != NULL) { Tk_FreeFontFromObj(tkwin, objPtr); } break; case TK_OPTION_STYLE: if (internalFormExists) { - Tk_FreeStyle(*((Tk_Style *) internalPtr)); - *((Tk_Style *) internalPtr) = NULL; + Tk_FreeStyle(*((Tk_Style *)internalPtr)); + *((Tk_Style *)internalPtr) = NULL; } break; case TK_OPTION_BITMAP: if (internalFormExists) { - if (*((Pixmap *) internalPtr) != None) { - Tk_FreeBitmap(Tk_Display(tkwin), *((Pixmap *) internalPtr)); - *((Pixmap *) internalPtr) = None; + if (*((Pixmap *)internalPtr) != None) { + Tk_FreeBitmap(Tk_Display(tkwin), *((Pixmap *)internalPtr)); + *((Pixmap *)internalPtr) = None; } } else if (objPtr != NULL) { Tk_FreeBitmapFromObj(tkwin, objPtr); @@ -1891,9 +1891,9 @@ FreeResources( break; case TK_OPTION_BORDER: if (internalFormExists) { - if (*((Tk_3DBorder *) internalPtr) != NULL) { - Tk_Free3DBorder(*((Tk_3DBorder *) internalPtr)); - *((Tk_3DBorder *) internalPtr) = NULL; + if (*((Tk_3DBorder *)internalPtr) != NULL) { + Tk_Free3DBorder(*((Tk_3DBorder *)internalPtr)); + *((Tk_3DBorder *)internalPtr) = NULL; } } else if (objPtr != NULL) { Tk_Free3DBorderFromObj(tkwin, objPtr); @@ -2130,7 +2130,7 @@ GetObjectForOption( } case TK_OPTION_INT: { Tcl_WideInt value; - int nullOK = (optionPtr->specPtr->flags & (TK_OPTION_NULL_OK|TCL_NULL_OK)); + int nullOK = (optionPtr->specPtr->flags & (TK_OPTION_NULL_OK|TCL_NULL_OK|1)); if (optionPtr->specPtr->flags & TYPE_MASK) { if ((optionPtr->specPtr->flags & TYPE_MASK) == TYPE_MASK) { if (sizeof(long) > sizeof(int)) { @@ -2151,25 +2151,25 @@ GetObjectForOption( break; } case TK_OPTION_INDEX: - if (!(optionPtr->specPtr->flags & (TK_OPTION_NULL_OK|TCL_NULL_OK)) || *((int *) internalPtr) != INT_MIN) { - if (*((int *) internalPtr) == INT_MIN) { + if (!(optionPtr->specPtr->flags & (TK_OPTION_NULL_OK|TCL_NULL_OK|1)) || *((int *)internalPtr) != INT_MIN) { + if (*((int *)internalPtr) == INT_MIN) { objPtr = TkNewIndexObj(TCL_INDEX_NONE); - } else if (*((int *) internalPtr) == INT_MAX) { + } else if (*((int *)internalPtr) == INT_MAX) { objPtr = Tcl_NewStringObj("end+1", TCL_INDEX_NONE); - } else if (*((int *) internalPtr) == -1) { + } else if (*((int *)internalPtr) == -1) { objPtr = Tcl_NewStringObj("end", TCL_INDEX_NONE); - } else if (*((int *) internalPtr) < 0) { + } else if (*((int *)internalPtr) < 0) { char buf[32]; - snprintf(buf, 32, "end%d", 1 + *((int *) internalPtr)); + snprintf(buf, 32, "end%d", 1 + *((int *)internalPtr)); objPtr = Tcl_NewStringObj(buf, TCL_INDEX_NONE); } else { - objPtr = Tcl_NewWideIntObj(*((int *) internalPtr)); + objPtr = Tcl_NewWideIntObj(*((int *)internalPtr)); } } break; case TK_OPTION_DOUBLE: - if (!(optionPtr->specPtr->flags & (TK_OPTION_NULL_OK|TCL_NULL_OK)) || !isnan(*((double *) internalPtr))) { - objPtr = Tcl_NewDoubleObj(*((double *) internalPtr)); + if (!(optionPtr->specPtr->flags & (TK_OPTION_NULL_OK|TCL_NULL_OK|1)) || !isnan(*((double *)internalPtr))) { + objPtr = Tcl_NewDoubleObj(*((double *)internalPtr)); } break; case TK_OPTION_STRING: @@ -2189,7 +2189,7 @@ GetObjectForOption( value = *((int *)internalPtr); } if (value >= 0) { - objPtr = Tcl_NewStringObj(((char **) optionPtr->specPtr->clientData)[ + objPtr = Tcl_NewStringObj(((char **)optionPtr->specPtr->clientData)[ value], TCL_INDEX_NONE); } break; @@ -2299,12 +2299,12 @@ GetObjectForOption( break; } case TK_OPTION_PIXELS: - if (!(optionPtr->specPtr->flags & (TK_OPTION_NULL_OK|TCL_NULL_OK)) || *((int *) internalPtr) != INT_MIN) { + if (!(optionPtr->specPtr->flags & (TK_OPTION_NULL_OK|TCL_NULL_OK|1)) || *((int *)internalPtr) != INT_MIN) { objPtr = Tcl_NewWideIntObj(*((int *)internalPtr)); } break; case TK_OPTION_WINDOW: { - tkwin = *((Tk_Window *) internalPtr); + tkwin = *((Tk_Window *)internalPtr); if (tkwin != NULL) { objPtr = Tcl_NewStringObj(Tk_PathName(tkwin), TCL_INDEX_NONE); diff --git a/generic/tkEntry.c b/generic/tkEntry.c index d1514d1..3b9b00f 100644 --- a/generic/tkEntry.c +++ b/generic/tkEntry.c @@ -1316,7 +1316,7 @@ ConfigureEntry( Tk_SetInternalBorder(entryPtr->tkwin, entryPtr->borderWidth + entryPtr->highlightWidth); - if (entryPtr->highlightWidth <= 0) { + if (entryPtr->highlightWidth < 0) { entryPtr->highlightWidth = 0; } entryPtr->inset = entryPtr->highlightWidth diff --git a/generic/tkFont.c b/generic/tkFont.c index 6f566d2..6a90add 100644 --- a/generic/tkFont.c +++ b/generic/tkFont.c @@ -1318,7 +1318,6 @@ Tk_GetFontFromObj( FreeFontObj(objPtr); fontPtr = NULL; } else if (Tk_Screen(tkwin) == fontPtr->screen) { - fontPtr->resourceRefCount++; return (Tk_Font) fontPtr; } } @@ -4296,7 +4295,7 @@ Tcl_Obj * TkDebugFont( Tk_Window tkwin, /* The window in which the font will be used * (not currently used). */ - const char *name) /* Name of the desired color. */ + const char *name) /* Name of the desired font. */ { TkFont *fontPtr; Tcl_HashEntry *hashPtr; diff --git a/generic/tkFrame.c b/generic/tkFrame.c index c0d45e8..d49292b 100644 --- a/generic/tkFrame.c +++ b/generic/tkFrame.c @@ -1468,10 +1468,14 @@ DisplayFrame( * off-screen memory, then copies it back on-screen in a single operation. * This means there's no point in time where the on-screen image has been * cleared. + * Also, ensure that the pixmap size is at least 1x1 pixels to prevent + * crashes, see [610aa08858]. */ pixmap = Tk_GetPixmap(framePtr->display, Tk_WindowId(tkwin), - Tk_Width(tkwin), Tk_Height(tkwin), Tk_Depth(tkwin)); + (Tk_Width(tkwin) > 0 ? Tk_Width(tkwin) : 1), + (Tk_Height(tkwin) > 0 ? Tk_Height(tkwin) : 1), + Tk_Depth(tkwin)); #else pixmap = Tk_WindowId(tkwin); Tk_ClipDrawableToRect(Tk_Display(tkwin), pixmap, 0, 0, diff --git a/generic/tkImgBmap.c b/generic/tkImgBmap.c index 2fad264..116ef41 100644 --- a/generic/tkImgBmap.c +++ b/generic/tkImgBmap.c @@ -513,10 +513,6 @@ TkGetBitmapData( != TCL_OK) { return NULL; } - if (Tcl_SetChannelOption(interp, pi.chan, "-encoding", "binary") - != TCL_OK) { - return NULL; - } } else { pi.chan = NULL; } diff --git a/generic/tkImgGIF.c b/generic/tkImgGIF.c index 6368972..32b01e4 100644 --- a/generic/tkImgGIF.c +++ b/generic/tkImgGIF.c @@ -498,7 +498,13 @@ FileReadGIF( */ if (Fread(gifConfPtr, buf, 1, 3, chan) != 3) { - return TCL_OK; + /* + * Bug [865af0148c]: 3 bytes should be there, but data ended before + */ + Tcl_SetObjResult(interp, Tcl_NewStringObj( + "GIF file truncated", -1)); + Tcl_SetErrorCode(interp, "TK", "IMAGE", "GIF", "TRUNCATED", NULL); + return TCL_ERROR; } bitPixel = 2 << (buf[0] & 0x07); @@ -1922,8 +1928,8 @@ FileWriteGIF( if (!chan) { return TCL_ERROR; } - if (Tcl_SetChannelOption(interp, chan, "-translation", - "binary") != TCL_OK) { + if (Tcl_SetChannelOption(interp, chan, "-translation", "binary") + != TCL_OK) { Tcl_Close(NULL, chan); return TCL_ERROR; } diff --git a/generic/tkImgPNG.c b/generic/tkImgPNG.c index 2879ae2..a49ed15 100644 --- a/generic/tkImgPNG.c +++ b/generic/tkImgPNG.c @@ -3765,13 +3765,8 @@ FileWritePNG( goto cleanup; } - /* - * Set the translation mode to binary so that CR and LF are not to the - * platform's EOL sequence. - */ - - if (Tcl_SetChannelOption(interp, chan, "-translation", - "binary") != TCL_OK) { + if (Tcl_SetChannelOption(interp, chan, "-translation", "binary") + != TCL_OK) { goto cleanup; } diff --git a/generic/tkImgPPM.c b/generic/tkImgPPM.c index 50d37d7..a9d0391 100644 --- a/generic/tkImgPPM.c +++ b/generic/tkImgPPM.c @@ -305,11 +305,6 @@ FileWritePPM( Tcl_Close(NULL, chan); return TCL_ERROR; } - if (Tcl_SetChannelOption(interp, chan, "-encoding", "binary") - != TCL_OK) { - Tcl_Close(NULL, chan); - return TCL_ERROR; - } snprintf(header, sizeof(header), "P6\n%d %d\n255\n", blockPtr->width, blockPtr->height); Tcl_Write(chan, header, TCL_INDEX_NONE); diff --git a/generic/tkImgPhoto.c b/generic/tkImgPhoto.c index 0c38cc4..27ffbed 100644 --- a/generic/tkImgPhoto.c +++ b/generic/tkImgPhoto.c @@ -1053,11 +1053,6 @@ ImgPhotoCmd( Tcl_Close(NULL, chan); return TCL_ERROR; } - if (Tcl_SetChannelOption(interp, chan, "-encoding", "binary") - != TCL_OK) { - Tcl_Close(NULL, chan); - return TCL_ERROR; - } if (MatchFileFormat(interp, chan, Tcl_GetString(options.name), options.format, @@ -2092,12 +2087,8 @@ ImgPhotoConfigureModel( metadataOutObj = Tcl_NewDictObj(); Tcl_IncrRefCount(metadataOutObj); - /* - * -translation binary also sets -encoding binary - */ - - if ((Tcl_SetChannelOption(interp, chan, - "-translation", "binary") != TCL_OK) || + if ((Tcl_SetChannelOption(interp, chan, "-translation", "binary") + != TCL_OK) || (MatchFileFormat(interp, chan, modelPtr->fileString, modelPtr->format, modelPtr->metadata, metadataOutObj, &imageFormat, &imageFormatVersion3, diff --git a/generic/tkListbox.c b/generic/tkListbox.c index 4a2ea5f..4e4fa23 100644 --- a/generic/tkListbox.c +++ b/generic/tkListbox.c @@ -115,7 +115,7 @@ typedef struct { * is offset to the left by this many pixels * (0 means no offset, positive means there is * an offset). This is x scrolling information - * is not linked to justification. */ + * is not linked to justification. */ /* * Information about what's selected or active, if any. @@ -874,7 +874,7 @@ ListboxWidgetObjCmd( Tcl_SetObjResult(interp, Tcl_ObjPrintf( "item number \"%s\" out of range", Tcl_GetString(objv[2]))); - Tcl_SetErrorCode(interp, "TK", "LISTBOX", "ITEM_INDEX", NULL); + Tcl_SetErrorCode(interp, "TK", "LISTBOX", "ITEM_INDEX", (char *)NULL); result = TCL_ERROR; break; } @@ -911,7 +911,7 @@ ListboxWidgetObjCmd( Tcl_SetObjResult(interp, Tcl_ObjPrintf( "item number \"%s\" out of range", Tcl_GetString(objv[2]))); - Tcl_SetErrorCode(interp, "TK", "LISTBOX", "ITEM_INDEX", NULL); + Tcl_SetErrorCode(interp, "TK", "LISTBOX", "ITEM_INDEX", (char *)NULL); result = TCL_ERROR; break; } @@ -1111,15 +1111,15 @@ ListboxBboxSubCmd( Tk_GetFontMetrics(listPtr->tkfont, &fm); pixelWidth = Tk_TextWidth(listPtr->tkfont, stringRep, stringLen); - if (listPtr->justify == TK_JUSTIFY_LEFT) { - x = (listPtr->inset + listPtr->selBorderWidth) - listPtr->xOffset; - } else if (listPtr->justify == TK_JUSTIFY_RIGHT) { - x = Tk_Width(tkwin) - (listPtr->inset + listPtr->selBorderWidth) - - pixelWidth - listPtr->xOffset + GetMaxOffset(listPtr); - } else { - x = (Tk_Width(tkwin) - pixelWidth)/2 - - listPtr->xOffset + GetMaxOffset(listPtr)/2; - } + if (listPtr->justify == TK_JUSTIFY_LEFT) { + x = (listPtr->inset + listPtr->selBorderWidth) - listPtr->xOffset; + } else if (listPtr->justify == TK_JUSTIFY_RIGHT) { + x = Tk_Width(tkwin) - (listPtr->inset + listPtr->selBorderWidth) + - pixelWidth - listPtr->xOffset + GetMaxOffset(listPtr); + } else { + x = (Tk_Width(tkwin) - pixelWidth)/2 + - listPtr->xOffset + GetMaxOffset(listPtr)/2; + } y = ((index - listPtr->topIndex)*listPtr->lineHeight) + listPtr->inset + listPtr->selBorderWidth; results[0] = Tcl_NewWideIntObj(x); @@ -2072,24 +2072,24 @@ DisplayListbox( * Draw the actual text of this item. */ - Tcl_ListObjIndex(listPtr->interp, listPtr->listObj, i, &curElement); - stringRep = Tcl_GetStringFromObj(curElement, &stringLen); - textWidth = Tk_TextWidth(listPtr->tkfont, stringRep, stringLen); + Tcl_ListObjIndex(listPtr->interp, listPtr->listObj, i, &curElement); + stringRep = Tcl_GetStringFromObj(curElement, &stringLen); + textWidth = Tk_TextWidth(listPtr->tkfont, stringRep, stringLen); Tk_GetFontMetrics(listPtr->tkfont, &fm); y += fm.ascent + listPtr->selBorderWidth; - if (listPtr->justify == TK_JUSTIFY_LEFT) { - x = (listPtr->inset + listPtr->selBorderWidth) - listPtr->xOffset; - } else if (listPtr->justify == TK_JUSTIFY_RIGHT) { - x = Tk_Width(tkwin) - (listPtr->inset + listPtr->selBorderWidth) - - textWidth - listPtr->xOffset + GetMaxOffset(listPtr); - } else { - x = (Tk_Width(tkwin) - textWidth)/2 - - listPtr->xOffset + GetMaxOffset(listPtr)/2; - } - - Tk_DrawChars(listPtr->display, pixmap, gc, listPtr->tkfont, + if (listPtr->justify == TK_JUSTIFY_LEFT) { + x = (listPtr->inset + listPtr->selBorderWidth) - listPtr->xOffset; + } else if (listPtr->justify == TK_JUSTIFY_RIGHT) { + x = Tk_Width(tkwin) - (listPtr->inset + listPtr->selBorderWidth) + - textWidth - listPtr->xOffset + GetMaxOffset(listPtr); + } else { + x = (Tk_Width(tkwin) - textWidth)/2 + - listPtr->xOffset + GetMaxOffset(listPtr)/2; + } + + Tk_DrawChars(listPtr->display, pixmap, gc, listPtr->tkfont, stringRep, stringLen, x, y); /* @@ -2769,9 +2769,9 @@ GetListboxIndex( stringRep = Tcl_GetString(indexObj); if (stringRep[0] == '@') { - /* - * @x,y index - */ + /* + * @x,y index + */ int y; char *start; @@ -2804,7 +2804,7 @@ GetListboxIndex( Tcl_SetObjResult(interp, Tcl_ObjPrintf( "bad listbox index \"%s\": must be active, anchor, end, @x,y," " or an index", Tcl_GetString(indexObj))); - Tcl_SetErrorCode(interp, "TK", "VALUE", "LISTBOX_INDEX", NULL); + Tcl_SetErrorCode(interp, "TK", "VALUE", "LISTBOX_INDEX", (char *)NULL); return TCL_ERROR; } @@ -3203,7 +3203,7 @@ ListboxLostSelection( if ((listPtr->exportSelection) && (!Tcl_IsSafe(listPtr->interp)) && (listPtr->nElements > 0)) { ListboxSelect(listPtr, 0, listPtr->nElements-1, 0); - GenerateListboxSelectEvent(listPtr); + GenerateListboxSelectEvent(listPtr); } } @@ -3448,27 +3448,27 @@ ListboxListVarProc( if (flags & TCL_TRACE_UNSETS) { - if (!Tcl_InterpDeleted(interp) && listPtr->listVarName) { - void *probe = NULL; - - do { - probe = Tcl_VarTraceInfo(interp, - listPtr->listVarName, - TCL_GLOBAL_ONLY|TCL_TRACE_WRITES|TCL_TRACE_UNSETS, - ListboxListVarProc, probe); - if (probe == (void *)listPtr) { - break; - } - } while (probe); - if (probe) { - /* - * We were able to fetch the unset trace for our - * listVarName, which means it is not unset and not - * the cause of this unset trace. Instead some outdated - * former variable must be, and we should ignore it. - */ - return NULL; - } + if (!Tcl_InterpDeleted(interp) && listPtr->listVarName) { + void *probe = NULL; + + do { + probe = Tcl_VarTraceInfo(interp, + listPtr->listVarName, + TCL_GLOBAL_ONLY|TCL_TRACE_WRITES|TCL_TRACE_UNSETS, + ListboxListVarProc, probe); + if (probe == (void *)listPtr) { + break; + } + } while (probe); + if (probe) { + /* + * We were able to fetch the unset trace for our + * listVarName, which means it is not unset and not + * the cause of this unset trace. Instead some outdated + * former variable must be, and we should ignore it. + */ + return NULL; + } Tcl_SetVar2Ex(interp, listPtr->listVarName, NULL, listPtr->listObj, TCL_GLOBAL_ONLY); Tcl_TraceVar2(interp, listPtr->listVarName, @@ -3650,15 +3650,15 @@ static int GetMaxOffset( int maxOffset; maxOffset = listPtr->maxWidth - - (Tk_Width(listPtr->tkwin) - 2*listPtr->inset - - 2*listPtr->selBorderWidth) + listPtr->xScrollUnit - 1; + (Tk_Width(listPtr->tkwin) - 2*listPtr->inset - + 2*listPtr->selBorderWidth) + listPtr->xScrollUnit - 1; if (maxOffset < 0) { - /* - * Listbox is larger in width than its largest width item. - */ + /* + * Listbox is larger in width than its largest width item. + */ - maxOffset = 0; + maxOffset = 0; } maxOffset -= maxOffset % listPtr->xScrollUnit; diff --git a/generic/tkMenu.c b/generic/tkMenu.c index a0cee25..be60f2a 100644 --- a/generic/tkMenu.c +++ b/generic/tkMenu.c @@ -900,9 +900,9 @@ MenuWidgetObjCmd( goto error; } if (objc == 5) { - if (GetMenuIndex(interp, menuPtr, objv[4], 0, &index) != TCL_OK) { - goto error; - } + if (GetMenuIndex(interp, menuPtr, objv[4], 0, &index) != TCL_OK) { + goto error; + } } /* @@ -914,9 +914,9 @@ MenuWidgetObjCmd( */ if (menuPtr->menuType == MENUBAR) { - Tcl_AppendResult(interp, "a menubar menu cannot be posted", NULL); - return TCL_ERROR; - } else if (menuPtr->menuType != TEAROFF_MENU) { + Tcl_AppendResult(interp, "a menubar menu cannot be posted", NULL); + return TCL_ERROR; + } else if (menuPtr->menuType != TEAROFF_MENU) { result = TkpPostMenu(interp, menuPtr, x, y, index); } else { result = TkpPostTearoffMenu(interp, menuPtr, x, y, index); @@ -1197,16 +1197,16 @@ DestroyMenuInstance( */ for (i = menuPtr->numEntries; --i >= 0; ) { - /* - * Clean up the hash entry for the menu item ID. - * This cannot be postponed until the entry is eventually freed, - * because the hash table may already have been deleted by then. - */ + /* + * Clean up the hash entry for the menu item ID. + * This cannot be postponed until the entry is eventually freed, + * because the hash table may already have been deleted by then. + */ - if (menuPtr->entries[i]->entryPtr) { - Tcl_DeleteHashEntry(menuPtr->entries[i]->entryPtr); - menuPtr->entries[i]->entryPtr = NULL; - } + if (menuPtr->entries[i]->entryPtr) { + Tcl_DeleteHashEntry(menuPtr->entries[i]->entryPtr); + menuPtr->entries[i]->entryPtr = NULL; + } /* * As each menu entry is deleted from the end of the array of entries, @@ -1495,8 +1495,8 @@ DestroyMenuEntry( MenuVarProc, mePtr); } if (mePtr->entryPtr) { - Tcl_DeleteHashEntry(mePtr->entryPtr); - mePtr->entryPtr = NULL; + Tcl_DeleteHashEntry(mePtr->entryPtr); + mePtr->entryPtr = NULL; } TkpDestroyMenuEntry(mePtr); TkMenuEntryFreeDrawOptions(mePtr); @@ -2199,9 +2199,9 @@ GetMenuIndex( entryPtr = Tcl_FindHashEntry(&menuPtr->items, string); if (entryPtr) { - TkMenuEntry *mePtr = (TkMenuEntry *)Tcl_GetHashValue(entryPtr); - *indexPtr = mePtr->index; - return TCL_OK; + TkMenuEntry *mePtr = (TkMenuEntry *)Tcl_GetHashValue(entryPtr); + *indexPtr = mePtr->index; + return TCL_OK; } for (i = 0; i < menuPtr->numEntries; i++) { @@ -2216,7 +2216,7 @@ GetMenuIndex( Tcl_SetObjResult(interp, Tcl_ObjPrintf( "bad menu entry index \"%s\"", string)); - Tcl_SetErrorCode(interp, "TK", "MENU", "INDEX", NULL); + Tcl_SetErrorCode(interp, "TK", "MENU", "INDEX", (char *)NULL); return TCL_ERROR; } @@ -2407,7 +2407,7 @@ MenuAddOrInsert( if (index < 0) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( "bad menu entry index \"%s\"", Tcl_GetString(indexPtr))); - Tcl_SetErrorCode(interp, "TK", "MENU", "INDEX", NULL); + Tcl_SetErrorCode(interp, "TK", "MENU", "INDEX", (char *)NULL); return TCL_ERROR; } if (menuPtr->tearoff && (index == 0)) { @@ -2429,14 +2429,14 @@ MenuAddOrInsert( */ if (objc % 2 == 0) { - idPtr = objv[offs]; - if (Tcl_FindHashEntry(&menuPtr->items, Tcl_GetString(idPtr))) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( + idPtr = objv[offs]; + if (Tcl_FindHashEntry(&menuPtr->items, Tcl_GetString(idPtr))) { + Tcl_SetObjResult(interp, Tcl_ObjPrintf( "entry \"%s\" already exists", Tcl_GetString(idPtr))); - Tcl_SetErrorCode(interp, "TK", "MENU", "ENTRY_EXISTS", NULL); - return TCL_ERROR; - } - offs++; + Tcl_SetErrorCode(interp, "TK", "MENU", "ENTRY_EXISTS", (char *)NULL); + return TCL_ERROR; + } + offs++; } /* @@ -2473,22 +2473,22 @@ MenuAddOrInsert( return TCL_ERROR; } - if (idPtr == NULL) { - char idbuf[16]; - /* Generate an id for the new entry on the main menu */ - do { - snprintf(idbuf, sizeof(idbuf), "e%03X", ++menuPtr->serial); - entryPtr = Tcl_CreateHashEntry( + if (idPtr == NULL) { + char idbuf[16]; + /* Generate an id for the new entry on the main menu */ + do { + snprintf(idbuf, sizeof(idbuf), "e%03X", ++menuPtr->serial); + entryPtr = Tcl_CreateHashEntry( &menuListPtr->items, idbuf, &isNew); - } while (!isNew); - idPtr = Tcl_NewStringObj(idbuf, TCL_INDEX_NONE); - } else { - /* Reuse the specified or previously generated id on all clones */ - entryPtr = Tcl_CreateHashEntry( + } while (!isNew); + idPtr = Tcl_NewStringObj(idbuf, TCL_INDEX_NONE); + } else { + /* Reuse the specified or previously generated id on all clones */ + entryPtr = Tcl_CreateHashEntry( &menuListPtr->items, Tcl_GetString(idPtr), &isNew); - } - Tcl_SetHashValue(entryPtr, mePtr); - mePtr->entryPtr = entryPtr; + } + Tcl_SetHashValue(entryPtr, mePtr); + mePtr->entryPtr = entryPtr; /* * If a menu has cascades, then every instance of the menu has to have @@ -2593,26 +2593,26 @@ MenuVarProc( */ if (flags & TCL_TRACE_UNSETS) { - void *probe = NULL; + void *probe = NULL; mePtr->entryFlags &= ~ENTRY_SELECTED; - do { - probe = Tcl_VarTraceInfo(interp, name, - TCL_GLOBAL_ONLY|TCL_TRACE_WRITES|TCL_TRACE_UNSETS, - MenuVarProc, probe); - if (probe == (void *)mePtr) { - break; - } - } while (probe); - if (probe) { - /* - * We were able to fetch the unset trace for our - * namePtr, which means it is not unset and not - * the cause of this unset trace. Instead some outdated - * former variable must be, and we should ignore it. - */ + do { + probe = Tcl_VarTraceInfo(interp, name, + TCL_GLOBAL_ONLY|TCL_TRACE_WRITES|TCL_TRACE_UNSETS, + MenuVarProc, probe); + if (probe == (void *)mePtr) { + break; + } + } while (probe); + if (probe) { + /* + * We were able to fetch the unset trace for our + * namePtr, which means it is not unset and not + * the cause of this unset trace. Instead some outdated + * former variable must be, and we should ignore it. + */ return NULL; - } + } Tcl_TraceVar2(interp, name, NULL, TCL_GLOBAL_ONLY|TCL_TRACE_WRITES|TCL_TRACE_UNSETS, MenuVarProc, clientData); diff --git a/generic/tkObj.c b/generic/tkObj.c index afcf7c8..cdea2ed 100644 --- a/generic/tkObj.c +++ b/generic/tkObj.c @@ -518,7 +518,7 @@ SetPixelFromAny( if (interp != NULL) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( "expected screen distance but got \"%.50s\"", string)); - Tcl_SetErrorCode(interp, "TK", "VALUE", "PIXELS", NULL); + Tcl_SetErrorCode(interp, "TK", "VALUE", "PIXELS", (char *)NULL); } return TCL_ERROR; } @@ -802,7 +802,7 @@ SetMMFromAny( error: Tcl_SetObjResult(interp, Tcl_ObjPrintf( "expected screen distance but got \"%.50s\"", string)); - Tcl_SetErrorCode(interp, "TK", "VALUE", "PIXELS", NULL); + Tcl_SetErrorCode(interp, "TK", "VALUE", "PIXELS", (char *)NULL); return TCL_ERROR; } switch (*rest) { @@ -1103,7 +1103,7 @@ TkParsePadAmount( Tcl_SetObjResult(interp, Tcl_ObjPrintf( "bad pad value \"%s\": must be positive screen distance", Tcl_GetString(specObj))); - Tcl_SetErrorCode(interp, "TK", "VALUE", "PADDING", "DIST", NULL); + Tcl_SetErrorCode(interp, "TK", "VALUE", "PADDING", "DIST", (char *)NULL); return TCL_ERROR; } secondInt = firstInt; @@ -1121,7 +1121,7 @@ TkParsePadAmount( if (objc != 1 && objc != 2) { Tcl_SetObjResult(interp, Tcl_NewStringObj( "wrong number of parts to pad specification", TCL_INDEX_NONE)); - Tcl_SetErrorCode(interp, "TK", "VALUE", "PADDING", "PARTS", NULL); + Tcl_SetErrorCode(interp, "TK", "VALUE", "PADDING", "PARTS", (char *)NULL); return TCL_ERROR; } @@ -1134,7 +1134,7 @@ TkParsePadAmount( Tcl_SetObjResult(interp, Tcl_ObjPrintf( "bad pad value \"%s\": must be positive screen distance", Tcl_GetString(objv[0]))); - Tcl_SetErrorCode(interp, "TK", "VALUE", "PADDING", "DIST", NULL); + Tcl_SetErrorCode(interp, "TK", "VALUE", "PADDING", "DIST", (char *)NULL); return TCL_ERROR; } @@ -1150,7 +1150,7 @@ TkParsePadAmount( Tcl_SetObjResult(interp, Tcl_ObjPrintf( "bad 2nd pad value \"%s\": must be positive screen distance", Tcl_GetString(objv[1]))); - Tcl_SetErrorCode(interp, "TK", "VALUE", "PADDING", "DIST", NULL); + Tcl_SetErrorCode(interp, "TK", "VALUE", "PADDING", "DIST", (char *)NULL); return TCL_ERROR; } diff --git a/generic/tkOldConfig.c b/generic/tkOldConfig.c index 9ca5a7a..0f22e3b 100644 --- a/generic/tkOldConfig.c +++ b/generic/tkOldConfig.c @@ -343,7 +343,7 @@ DoConfig( int nullValue; nullValue = 0; - if ((*value == 0) && (specPtr->specFlags & (TK_CONFIG_NULL_OK|TCL_NULL_OK))) { + if ((*value == 0) && (specPtr->specFlags & (TK_CONFIG_NULL_OK|TCL_NULL_OK|1))) { nullValue = 1; } @@ -354,17 +354,17 @@ DoConfig( ptr = (char *)widgRec + specPtr->offset; switch (specPtr->type) { case TK_CONFIG_BOOLEAN: - if (Tcl_GetBoolean(interp, value, (int *) ptr) != TCL_OK) { + if (Tcl_GetBoolean(interp, value, (int *)ptr) != TCL_OK) { return TCL_ERROR; } break; case TK_CONFIG_INT: - if (Tcl_GetInt(interp, value, (int *) ptr) != TCL_OK) { + if (Tcl_GetInt(interp, value, (int *)ptr) != TCL_OK) { return TCL_ERROR; } break; case TK_CONFIG_DOUBLE: - if (Tcl_GetDouble(interp, value, (double *) ptr) != TCL_OK) { + if (Tcl_GetDouble(interp, value, (double *)ptr) != TCL_OK) { return TCL_ERROR; } break; @@ -466,7 +466,7 @@ DoConfig( } case TK_CONFIG_RELIEF: uid = valueIsUid ? (Tk_Uid) value : Tk_GetUid(value); - if (Tk_GetRelief(interp, uid, (int *) ptr) != TCL_OK) { + if (Tk_GetRelief(interp, uid, (int *)ptr) != TCL_OK) { return TCL_ERROR; } break; @@ -507,24 +507,26 @@ DoConfig( break; case TK_CONFIG_CAP_STYLE: uid = valueIsUid ? (Tk_Uid) value : Tk_GetUid(value); - if (Tk_GetCapStyle(interp, uid, (int *) ptr) != TCL_OK) { + if (Tk_GetCapStyle(interp, uid, (int *)ptr) != TCL_OK) { return TCL_ERROR; } break; case TK_CONFIG_JOIN_STYLE: uid = valueIsUid ? (Tk_Uid) value : Tk_GetUid(value); - if (Tk_GetJoinStyle(interp, uid, (int *) ptr) != TCL_OK) { + if (Tk_GetJoinStyle(interp, uid, (int *)ptr) != TCL_OK) { return TCL_ERROR; } break; case TK_CONFIG_PIXELS: - if (Tk_GetPixels(interp, tkwin, value, (int *) ptr) + if (nullValue) { + *(int *)ptr = INT_MIN; + } else if (Tk_GetPixels(interp, tkwin, value, (int *)ptr) != TCL_OK) { return TCL_ERROR; } break; case TK_CONFIG_MM: - if (Tk_GetScreenMM(interp, tkwin, value, (double*)ptr) != TCL_OK) { + if (Tk_GetScreenMM(interp, tkwin, value, (double *)ptr) != TCL_OK) { return TCL_ERROR; } break; @@ -857,8 +859,10 @@ FormatConfigValue( result = Tk_NameOfJoinStyle(*((int *)ptr)); break; case TK_CONFIG_PIXELS: - snprintf(buffer, 200, "%d", *((int *)ptr)); - result = buffer; + if ((*(int *)ptr != INT_MIN) || !(specPtr->specFlags & (TK_CONFIG_NULL_OK|TCL_NULL_OK|1))) { + snprintf(buffer, 200, "%d", *((int *)ptr)); + result = buffer; + } break; case TK_CONFIG_MM: Tcl_PrintDouble(interp, *((double *)ptr), buffer); diff --git a/generic/tkOption.c b/generic/tkOption.c index e626930..f6976bd 100644 --- a/generic/tkOption.c +++ b/generic/tkOption.c @@ -881,7 +881,7 @@ ParsePriority( "bad priority level \"%s\": must be " "widgetDefault, startupFile, userDefault, " "interactive, or a number between 0 and 100", string)); - Tcl_SetErrorCode(interp, "TK", "VALUE", "PRIORITY", NULL); + Tcl_SetErrorCode(interp, "TK", "VALUE", "PRIORITY", (char *)NULL); return -1; } } @@ -965,7 +965,7 @@ AddFromString( if ((*src == '\0') || (*src == '\n')) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( "missing colon on line %d", lineNum)); - Tcl_SetErrorCode(interp, "TK", "OPTIONDB", "COLON", NULL); + Tcl_SetErrorCode(interp, "TK", "OPTIONDB", "COLON", (char *)NULL); return TCL_ERROR; } if ((src[0] == '\\') && (src[1] == '\n')) { @@ -1002,7 +1002,7 @@ AddFromString( if (*src == '\0') { Tcl_SetObjResult(interp, Tcl_ObjPrintf( "missing value on line %d", lineNum)); - Tcl_SetErrorCode(interp, "TK", "OPTIONDB", "VALUE", NULL); + Tcl_SetErrorCode(interp, "TK", "OPTIONDB", "VALUE", (char *)NULL); return TCL_ERROR; } @@ -1016,7 +1016,7 @@ AddFromString( if (*src == '\0') { Tcl_SetObjResult(interp, Tcl_ObjPrintf( "missing newline on line %d", lineNum)); - Tcl_SetErrorCode(interp, "TK", "OPTIONDB", "NEWLINE", NULL); + Tcl_SetErrorCode(interp, "TK", "OPTIONDB", "NEWLINE", (char *)NULL); return TCL_ERROR; } if (*src == '\\'){ @@ -1096,7 +1096,7 @@ ReadOptionFile( if (Tcl_IsSafe(interp)) { Tcl_SetObjResult(interp, Tcl_NewStringObj( "can't read options from a file in a safe interpreter", TCL_INDEX_NONE)); - Tcl_SetErrorCode(interp, "TK", "SAFE", "OPTION_FILE", NULL); + Tcl_SetErrorCode(interp, "TK", "SAFE", "OPTION_FILE", (char *)NULL); return TCL_ERROR; } diff --git a/generic/tkPack.c b/generic/tkPack.c index baf2a70..3ad8cae 100644 --- a/generic/tkPack.c +++ b/generic/tkPack.c @@ -1108,7 +1108,7 @@ PackStructureProc( Tcl_DoWhenIdle(ArrangePacking, packPtr); } if ((packPtr->containerPtr != NULL) - && (packPtr->doubleBw != 2*Tk_Changes(packPtr->tkwin)->border_width)) { + && (packPtr->doubleBw != 2*Tk_Changes(packPtr->tkwin)->border_width)) { if (!(packPtr->containerPtr->flags & REQUESTED_REPACK)) { packPtr->doubleBw = 2*Tk_Changes(packPtr->tkwin)->border_width; packPtr->containerPtr->flags |= REQUESTED_REPACK; @@ -1133,7 +1133,7 @@ PackStructureProc( if (packPtr->tkwin != NULL) { TkDisplay *dispPtr = ((TkWindow *) packPtr->tkwin)->dispPtr; - Tcl_DeleteHashEntry(Tcl_FindHashEntry(&dispPtr->packerHashTable, + Tcl_DeleteHashEntry(Tcl_FindHashEntry(&dispPtr->packerHashTable, packPtr->tkwin)); } @@ -1485,8 +1485,8 @@ ConfigureContent( container = (TkWindow *)TkGetContainer(container)) { if (container == (TkWindow *)content) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "can't put \"%s\" inside \"%s\": would cause management loop", - Tcl_GetString(objv[j]), Tk_PathName(containerPtr->tkwin))); + "can't put \"%s\" inside \"%s\": would cause management loop", + Tcl_GetString(objv[j]), Tk_PathName(containerPtr->tkwin))); Tcl_SetErrorCode(interp, "TK", "GEOMETRY", "LOOP", NULL); return TCL_ERROR; } diff --git a/generic/tkPanedWindow.c b/generic/tkPanedWindow.c index d7f2d45..b244c9a 100644 --- a/generic/tkPanedWindow.c +++ b/generic/tkPanedWindow.c @@ -86,7 +86,7 @@ typedef struct Pane { * the x dimension. */ int pady; /* Additional padding requested for pane, in * the y dimension. */ - Tcl_Obj *widthPtr, *heightPtr; + Tcl_Obj *widthObj, *heightObj; /* Tcl_Obj rep's of pane width/height, to * allow for null values. */ int width; /* Pane width. */ @@ -125,8 +125,8 @@ typedef struct PanedWindow { Tk_3DBorder background; /* Background color. */ int borderWidth; /* Value of -borderwidth option. */ int relief; /* 3D border effect (TK_RELIEF_RAISED, etc) */ - Tcl_Obj *widthPtr; /* Tcl_Obj rep for width. */ - Tcl_Obj *heightPtr; /* Tcl_Obj rep for height. */ + Tcl_Obj *widthObj; /* Tcl_Obj rep for width. */ + Tcl_Obj *heightObj; /* Tcl_Obj rep for height. */ int width, height; /* Width and height of the widget. */ enum orient orient; /* Orientation of the widget. */ Tk_Cursor cursor; /* Current cursor for window, or None. */ @@ -291,7 +291,7 @@ static const Tk_OptionSpec optionSpecs[] = { DEF_PANEDWINDOW_HANDLESIZE, offsetof(PanedWindow, handleSizePtr), offsetof(PanedWindow, handleSize), 0, 0, GEOMETRY}, {TK_OPTION_PIXELS, "-height", "height", "Height", - DEF_PANEDWINDOW_HEIGHT, offsetof(PanedWindow, heightPtr), + DEF_PANEDWINDOW_HEIGHT, offsetof(PanedWindow, heightObj), offsetof(PanedWindow, height), TK_OPTION_NULL_OK, 0, GEOMETRY}, {TK_OPTION_BOOLEAN, "-opaqueresize", "opaqueResize", "OpaqueResize", DEF_PANEDWINDOW_OPAQUERESIZE, TCL_INDEX_NONE, @@ -326,7 +326,7 @@ static const Tk_OptionSpec optionSpecs[] = { DEF_PANEDWINDOW_SHOWHANDLE, TCL_INDEX_NONE, offsetof(PanedWindow, showHandle), 0, 0, GEOMETRY}, {TK_OPTION_PIXELS, "-width", "width", "Width", - DEF_PANEDWINDOW_WIDTH, offsetof(PanedWindow, widthPtr), + DEF_PANEDWINDOW_WIDTH, offsetof(PanedWindow, widthObj), offsetof(PanedWindow, width), TK_OPTION_NULL_OK, 0, GEOMETRY}, {TK_OPTION_END, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 0} }; @@ -339,7 +339,7 @@ static const Tk_OptionSpec paneOptionSpecs[] = { DEF_PANEDWINDOW_PANE_BEFORE, TCL_INDEX_NONE, offsetof(Pane, before), TK_OPTION_NULL_OK, 0, 0}, {TK_OPTION_PIXELS, "-height", NULL, NULL, - DEF_PANEDWINDOW_PANE_HEIGHT, offsetof(Pane, heightPtr), + DEF_PANEDWINDOW_PANE_HEIGHT, offsetof(Pane, heightObj), offsetof(Pane, height), TK_OPTION_NULL_OK, 0, 0}, {TK_OPTION_BOOLEAN, "-hide", "hide", "Hide", DEF_PANEDWINDOW_PANE_HIDE, TCL_INDEX_NONE, offsetof(Pane, hide), 0,0,GEOMETRY}, @@ -356,7 +356,7 @@ static const Tk_OptionSpec paneOptionSpecs[] = { DEF_PANEDWINDOW_PANE_STRETCH, TCL_INDEX_NONE, offsetof(Pane, stretch), TK_OPTION_ENUM_VAR, stretchStrings, 0}, {TK_OPTION_PIXELS, "-width", NULL, NULL, - DEF_PANEDWINDOW_PANE_WIDTH, offsetof(Pane, widthPtr), + DEF_PANEDWINDOW_PANE_WIDTH, offsetof(Pane, widthObj), offsetof(Pane, width), TK_OPTION_NULL_OK, 0, 0}, {TK_OPTION_END, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 0} }; @@ -674,7 +674,7 @@ PanedWindowWidgetObjCmd( Tcl_SetObjResult(interp, Tcl_NewStringObj( "not managed by this window", TCL_INDEX_NONE)); Tcl_SetErrorCode(interp, "TK", "PANEDWINDOW", "UNMANAGED", - NULL); + (char *)NULL); } result = TCL_ERROR; } else { @@ -693,15 +693,15 @@ PanedWindowWidgetObjCmd( if (objc <= 4) { tkwin = Tk_NameToWindow(interp, Tcl_GetString(objv[2]), pwPtr->tkwin); - if (tkwin == NULL) { - /* - * Just a plain old bad window; Tk_NameToWindow filled in an - * error message for us. - */ - - result = TCL_ERROR; - break; - } + if (tkwin == NULL) { + /* + * Just a plain old bad window; Tk_NameToWindow filled in an + * error message for us. + */ + + result = TCL_ERROR; + break; + } for (i = 0; i < pwPtr->numPanes; i++) { if (pwPtr->panes[i]->tkwin == tkwin) { resultObj = Tk_GetOptionInfo(interp, @@ -799,7 +799,7 @@ ConfigurePanes( Tcl_SetObjResult(interp, Tcl_ObjPrintf( "can't add %s to itself", arg)); - Tcl_SetErrorCode(interp, "TK", "GEOMETRY", "SELF", NULL); + Tcl_SetErrorCode(interp, "TK", "GEOMETRY", "SELF", (char *)NULL); return TCL_ERROR; } else if (Tk_IsTopLevel(tkwin)) { /* @@ -809,7 +809,7 @@ ConfigurePanes( Tcl_SetObjResult(interp, Tcl_ObjPrintf( "can't add toplevel %s to %s", arg, Tk_PathName(pwPtr->tkwin))); - Tcl_SetErrorCode(interp, "TK", "GEOMETRY", "TOPLEVEL", NULL); + Tcl_SetErrorCode(interp, "TK", "GEOMETRY", "TOPLEVEL", (char *)NULL); return TCL_ERROR; } else { /* @@ -827,7 +827,7 @@ ConfigurePanes( "can't add %s to %s", arg, Tk_PathName(pwPtr->tkwin))); Tcl_SetErrorCode(interp, "TK", "GEOMETRY", - "HIERARCHY", NULL); + "HIERARCHY", (char *)NULL); return TCL_ERROR; } } @@ -887,7 +887,7 @@ ConfigurePanes( Tcl_SetObjResult(interp, Tcl_ObjPrintf( "window \"%s\" is not managed by %s", Tk_PathName(tkwin), Tk_PathName(pwPtr->tkwin))); - Tcl_SetErrorCode(interp, "TK", "PANEDWINDOW", "UNMANAGED", NULL); + Tcl_SetErrorCode(interp, "TK", "PANEDWINDOW", "UNMANAGED", (char *)NULL); Tk_FreeConfigOptions(&options, pwPtr->paneOpts, pwPtr->tkwin); return TCL_ERROR; @@ -1127,7 +1127,7 @@ PanedWindowSashCommand( if (!ValidSashIndex(pwPtr, sash)) { Tcl_SetObjResult(interp, Tcl_NewStringObj( "invalid sash index", TCL_INDEX_NONE)); - Tcl_SetErrorCode(interp, "TK", "VALUE", "SASH_INDEX", NULL); + Tcl_SetErrorCode(interp, "TK", "VALUE", "SASH_INDEX", (char *)NULL); return TCL_ERROR; } panePtr = pwPtr->panes[sash]; @@ -1150,7 +1150,7 @@ PanedWindowSashCommand( if (!ValidSashIndex(pwPtr, sash)) { Tcl_SetObjResult(interp, Tcl_NewStringObj( "invalid sash index", TCL_INDEX_NONE)); - Tcl_SetErrorCode(interp, "TK", "VALUE", "SASH_INDEX", NULL); + Tcl_SetErrorCode(interp, "TK", "VALUE", "SASH_INDEX", (char *)NULL); return TCL_ERROR; } @@ -1186,7 +1186,7 @@ PanedWindowSashCommand( if (!ValidSashIndex(pwPtr, sash)) { Tcl_SetObjResult(interp, Tcl_NewStringObj( "invalid sash index", TCL_INDEX_NONE)); - Tcl_SetErrorCode(interp, "TK", "VALUE", "SASH_INDEX", NULL); + Tcl_SetErrorCode(interp, "TK", "VALUE", "SASH_INDEX", (char *)NULL); return TCL_ERROR; } @@ -1369,17 +1369,17 @@ PanedWindowEventProc( } else if (eventPtr->type == DestroyNotify) { DestroyPanedWindow(pwPtr); } else if (eventPtr->type == UnmapNotify) { - for (i = 0; i < pwPtr->numPanes; i++) { - if (!pwPtr->panes[i]->hide) { - Tk_UnmapWindow(pwPtr->panes[i]->tkwin); - } - } + for (i = 0; i < pwPtr->numPanes; i++) { + if (!pwPtr->panes[i]->hide) { + Tk_UnmapWindow(pwPtr->panes[i]->tkwin); + } + } } else if (eventPtr->type == MapNotify) { - for (i = 0; i < pwPtr->numPanes; i++) { - if (!pwPtr->panes[i]->hide) { - Tk_MapWindow(pwPtr->panes[i]->tkwin); - } - } + for (i = 0; i < pwPtr->numPanes; i++) { + if (!pwPtr->panes[i]->hide) { + Tk_MapWindow(pwPtr->panes[i]->tkwin); + } + } } } @@ -1789,18 +1789,18 @@ ArrangePanes( */ if (horizontal) { - if (panePtr->width > 0) { - paneSize = panePtr->width; - } else { - paneSize = panePtr->paneWidth; - } + if (panePtr->width > 0) { + paneSize = panePtr->width; + } else { + paneSize = panePtr->paneWidth; + } stretchReserve -= paneSize + (2 * panePtr->padx); } else { - if (panePtr->height > 0) { - paneSize = panePtr->height; - } else { - paneSize = panePtr->paneHeight; - } + if (panePtr->height > 0) { + paneSize = panePtr->height; + } else { + paneSize = panePtr->paneHeight; + } stretchReserve -= paneSize + (2 * panePtr->pady); } if (IsStretchable(panePtr->stretch,i,first,last) @@ -1850,18 +1850,18 @@ ArrangePanes( */ if (horizontal) { - if (panePtr->width > 0) { - paneSize = panePtr->width; - } else { - paneSize = panePtr->paneWidth; - } + if (panePtr->width > 0) { + paneSize = panePtr->width; + } else { + paneSize = panePtr->paneWidth; + } pwSize = pwWidth; } else { - if (panePtr->height > 0) { - paneSize = panePtr->height; - } else { - paneSize = panePtr->paneHeight; - } + if (panePtr->height > 0) { + paneSize = panePtr->height; + } else { + paneSize = panePtr->paneHeight; + } pwSize = pwHeight; } if (IsStretchable(panePtr->stretch, i, first, last)) { @@ -2491,7 +2491,7 @@ SetSticky( "bad stickyness value \"%s\": must be a string" " containing zero or more of n, e, s, and w", Tcl_GetString(*value))); - Tcl_SetErrorCode(interp, "TK", "VALUE", "STICKY", NULL); + Tcl_SetErrorCode(interp, "TK", "VALUE", "STICKY", (char *)NULL); return TCL_ERROR; } } @@ -2907,16 +2907,16 @@ PanedWindowProxyCommand( return TCL_ERROR; } - internalBW = Tk_InternalBorderLeft(pwPtr->tkwin); + internalBW = Tk_InternalBorderLeft(pwPtr->tkwin); if (pwPtr->orient == ORIENT_HORIZONTAL) { if (x < 0) { x = 0; } - pwWidth = Tk_Width(pwPtr->tkwin) - (2 * internalBW); - if (x > pwWidth) { - x = pwWidth; - } - y = Tk_InternalBorderLeft(pwPtr->tkwin); + pwWidth = Tk_Width(pwPtr->tkwin) - (2 * internalBW); + if (x > pwWidth) { + x = pwWidth; + } + y = Tk_InternalBorderLeft(pwPtr->tkwin); sashWidth = pwPtr->sashWidth; sashHeight = Tk_Height(pwPtr->tkwin) - (2 * Tk_InternalBorderLeft(pwPtr->tkwin)); @@ -2924,10 +2924,10 @@ PanedWindowProxyCommand( if (y < 0) { y = 0; } - pwHeight = Tk_Height(pwPtr->tkwin) - (2 * internalBW); - if (y > pwHeight) { - y = pwHeight; - } + pwHeight = Tk_Height(pwPtr->tkwin) - (2 * internalBW); + if (y > pwHeight) { + y = pwHeight; + } x = Tk_InternalBorderLeft(pwPtr->tkwin); sashHeight = pwPtr->sashWidth; sashWidth = Tk_Width(pwPtr->tkwin) - diff --git a/generic/tkPlace.c b/generic/tkPlace.c index 774ad79..013c531 100644 --- a/generic/tkPlace.c +++ b/generic/tkPlace.c @@ -54,19 +54,19 @@ typedef struct Content { */ int x, y; /* X and Y pixel coordinates for tkwin. */ - Tcl_Obj *xPtr, *yPtr; /* Tcl_Obj rep's of x, y coords, to keep pixel + Tcl_Obj *xObj, *yObj; /* Tcl_Obj rep's of x, y coords, to keep pixel * spec. information. */ double relX, relY; /* X and Y coordinates relative to size of * container. */ int width, height; /* Absolute dimensions for tkwin. */ - Tcl_Obj *widthPtr; /* Tcl_Obj rep of width, to keep pixel + Tcl_Obj *widthObj; /* Tcl_Obj rep of width, to keep pixel * spec. */ - Tcl_Obj *heightPtr; /* Tcl_Obj rep of height, to keep pixel + Tcl_Obj *heightObj; /* Tcl_Obj rep of height, to keep pixel * spec. */ double relWidth, relHeight; /* Dimensions for tkwin relative to size of * container. */ - Tcl_Obj *relWidthPtr; - Tcl_Obj *relHeightPtr; + Tcl_Obj *relWidthObj; + Tcl_Obj *relHeightObj; Tk_Anchor anchor; /* Which point on tkwin is placed at the given * position. */ BorderMode borderMode; /* How to treat borders of container window. */ @@ -80,29 +80,29 @@ typedef struct Content { static const Tk_OptionSpec optionSpecs[] = { {TK_OPTION_ANCHOR, "-anchor", NULL, NULL, "nw", TCL_INDEX_NONE, - offsetof(Content, anchor), TK_OPTION_ENUM_VAR, 0, 0}, + offsetof(Content, anchor), TK_OPTION_ENUM_VAR, 0, 0}, {TK_OPTION_STRING_TABLE, "-bordermode", NULL, NULL, "inside", TCL_INDEX_NONE, - offsetof(Content, borderMode), TK_OPTION_ENUM_VAR, borderModeStrings, 0}, - {TK_OPTION_PIXELS, "-height", NULL, NULL, "", offsetof(Content, heightPtr), - offsetof(Content, height), TK_OPTION_NULL_OK, 0, 0}, + offsetof(Content, borderMode), TK_OPTION_ENUM_VAR, borderModeStrings, 0}, + {TK_OPTION_PIXELS, "-height", NULL, NULL, NULL, offsetof(Content, heightObj), + offsetof(Content, height), TK_OPTION_NULL_OK, 0, 0}, {TK_OPTION_WINDOW, "-in", NULL, NULL, "", TCL_INDEX_NONE, offsetof(Content, inTkwin), - 0, 0, IN_MASK}, - {TK_OPTION_DOUBLE, "-relheight", NULL, NULL, "", - offsetof(Content, relHeightPtr), offsetof(Content, relHeight), - TK_OPTION_NULL_OK, 0, 0}, - {TK_OPTION_DOUBLE, "-relwidth", NULL, NULL, "", - offsetof(Content, relWidthPtr), offsetof(Content, relWidth), - TK_OPTION_NULL_OK, 0, 0}, + 0, 0, IN_MASK}, + {TK_OPTION_DOUBLE, "-relheight", NULL, NULL, NULL, + offsetof(Content, relHeightObj), offsetof(Content, relHeight), + TK_OPTION_NULL_OK, 0, 0}, + {TK_OPTION_DOUBLE, "-relwidth", NULL, NULL, NULL, + offsetof(Content, relWidthObj), offsetof(Content, relWidth), + TK_OPTION_NULL_OK, 0, 0}, {TK_OPTION_DOUBLE, "-relx", NULL, NULL, "0.0", TCL_INDEX_NONE, - offsetof(Content, relX), 0, 0, 0}, + offsetof(Content, relX), 0, 0, 0}, {TK_OPTION_DOUBLE, "-rely", NULL, NULL, "0.0", TCL_INDEX_NONE, - offsetof(Content, relY), 0, 0, 0}, - {TK_OPTION_PIXELS, "-width", NULL, NULL, "", offsetof(Content, widthPtr), - offsetof(Content, width), TK_OPTION_NULL_OK, 0, 0}, - {TK_OPTION_PIXELS, "-x", NULL, NULL, "0", offsetof(Content, xPtr), - offsetof(Content, x), TK_OPTION_NULL_OK, 0, 0}, - {TK_OPTION_PIXELS, "-y", NULL, NULL, "0", offsetof(Content, yPtr), - offsetof(Content, y), TK_OPTION_NULL_OK, 0, 0}, + offsetof(Content, relY), 0, 0, 0}, + {TK_OPTION_PIXELS, "-width", NULL, NULL, NULL, offsetof(Content, widthObj), + offsetof(Content, width), TK_OPTION_NULL_OK, 0, 0}, + {TK_OPTION_PIXELS, "-x", NULL, NULL, "0", offsetof(Content, xObj), + offsetof(Content, x), 0, 0, 0}, + {TK_OPTION_PIXELS, "-y", NULL, NULL, "0", offsetof(Content, yObj), + offsetof(Content, y), 0, 0, 0}, {TK_OPTION_END, NULL, NULL, NULL, NULL, 0, TCL_INDEX_NONE, 0, 0, 0} }; @@ -626,7 +626,7 @@ ConfigureContent( Tcl_SetObjResult(interp, Tcl_ObjPrintf( "can't use placer on top-level window \"%s\"; use " "wm command instead", Tk_PathName(tkwin))); - Tcl_SetErrorCode(interp, "TK", "GEOMETRY", "TOPLEVEL", NULL); + Tcl_SetErrorCode(interp, "TK", "GEOMETRY", "TOPLEVEL", (char *)NULL); return TCL_ERROR; } @@ -666,7 +666,7 @@ ConfigureContent( Tcl_SetObjResult(interp, Tcl_ObjPrintf( "can't place \"%s\" relative to \"%s\"", Tk_PathName(contentPtr->tkwin), Tk_PathName(win))); - Tcl_SetErrorCode(interp, "TK", "GEOMETRY", "HIERARCHY", NULL); + Tcl_SetErrorCode(interp, "TK", "GEOMETRY", "HIERARCHY", (char *)NULL); goto error; } } @@ -674,7 +674,7 @@ ConfigureContent( Tcl_SetObjResult(interp, Tcl_ObjPrintf( "can't place \"%s\" relative to itself", Tk_PathName(contentPtr->tkwin))); - Tcl_SetErrorCode(interp, "TK", "GEOMETRY", "LOOP", NULL); + Tcl_SetErrorCode(interp, "TK", "GEOMETRY", "LOOP", (char *)NULL); goto error; } @@ -686,9 +686,9 @@ ConfigureContent( container = (TkWindow *)TkGetContainer(container)) { if (container == (TkWindow *)contentPtr->tkwin) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "can't put \"%s\" inside \"%s\": would cause management loop", - Tk_PathName(contentPtr->tkwin), Tk_PathName(win))); - Tcl_SetErrorCode(interp, "TK", "GEOMETRY", "LOOP", NULL); + "can't put \"%s\" inside \"%s\": would cause management loop", + Tk_PathName(contentPtr->tkwin), Tk_PathName(win))); + Tcl_SetErrorCode(interp, "TK", "GEOMETRY", "LOOP", (char *)NULL); goto error; } } @@ -794,23 +794,23 @@ PlaceInfoCommand( Tcl_AppendPrintfToObj(infoObj, "-x %d -relx %.4g -y %d -rely %.4g", contentPtr->x, contentPtr->relX, contentPtr->y, contentPtr->relY); - if (contentPtr->widthPtr) { + if (contentPtr->widthObj) { Tcl_AppendPrintfToObj(infoObj, " -width %d", contentPtr->width); } else { Tcl_AppendToObj(infoObj, " -width {}", TCL_INDEX_NONE); } - if (contentPtr->relWidthPtr) { + if (contentPtr->relWidthObj) { Tcl_AppendPrintfToObj(infoObj, " -relwidth %.4g", contentPtr->relWidth); } else { Tcl_AppendToObj(infoObj, " -relwidth {}", TCL_INDEX_NONE); } - if (contentPtr->heightPtr) { + if (contentPtr->heightObj) { Tcl_AppendPrintfToObj(infoObj, " -height %d", contentPtr->height); } else { Tcl_AppendToObj(infoObj, " -height {}", TCL_INDEX_NONE); } - if (contentPtr->relHeightPtr) { + if (contentPtr->relHeightObj) { Tcl_AppendPrintfToObj(infoObj, " -relheight %.4g", contentPtr->relHeight); } else { @@ -906,12 +906,12 @@ RecomputePlacement( x = (int) (x1 + ((x1 > 0) ? 0.5 : -0.5)); y1 = contentPtr->y + containerY + (contentPtr->relY*containerHeight); y = (int) (y1 + ((y1 > 0) ? 0.5 : -0.5)); - if ((contentPtr->widthPtr) || contentPtr->relWidthPtr) { + if ((contentPtr->widthObj) || contentPtr->relWidthObj) { width = 0; - if (contentPtr->widthPtr) { + if (contentPtr->widthObj) { width += contentPtr->width; } - if (contentPtr->relWidthPtr) { + if (contentPtr->relWidthObj) { /* * The code below is a bit tricky. In order to round correctly * when both relX and relWidth are specified, compute the @@ -928,12 +928,12 @@ RecomputePlacement( width = Tk_ReqWidth(contentPtr->tkwin) + 2*Tk_Changes(contentPtr->tkwin)->border_width; } - if (contentPtr->heightPtr || contentPtr->relHeightPtr) { + if (contentPtr->heightObj || contentPtr->relHeightObj) { height = 0; - if (contentPtr->heightPtr) { + if (contentPtr->heightObj) { height += contentPtr->height; } - if (contentPtr->relHeightPtr) { + if (contentPtr->relHeightObj) { /* * See note above for rounding errors in width computation. */ @@ -1015,9 +1015,9 @@ RecomputePlacement( || (height != Tk_Height(contentPtr->tkwin))) { Tk_MoveResizeWindow(contentPtr->tkwin, x, y, width, height); } - if (abort) { - break; - } + if (abort) { + break; + } /* * Don't map the content unless the container is mapped: the content will @@ -1184,14 +1184,14 @@ PlaceRequestProc( Content *contentPtr = (Content *)clientData; Container *containerPtr; - if ((contentPtr->widthPtr || contentPtr->relWidthPtr) - && (contentPtr->heightPtr || contentPtr->relHeightPtr)) { - /* - * Send a ConfigureNotify to indicate that the size change - * request was rejected. - */ + if ((contentPtr->widthObj || contentPtr->relWidthObj) + && (contentPtr->heightObj || contentPtr->relHeightObj)) { + /* + * Send a ConfigureNotify to indicate that the size change + * request was rejected. + */ - TkDoConfigureNotify((TkWindow *)(contentPtr->tkwin)); + TkDoConfigureNotify((TkWindow *)(contentPtr->tkwin)); return; } containerPtr = contentPtr->containerPtr; diff --git a/generic/tkScrollbar.c b/generic/tkScrollbar.c index f0abe18..5f03fee 100644 --- a/generic/tkScrollbar.c +++ b/generic/tkScrollbar.c @@ -57,7 +57,7 @@ static const Tk_ConfigSpec configSpecs[] = { DEF_SCROLLBAR_CURSOR, offsetof(TkScrollbar, cursor), TK_CONFIG_NULL_OK, NULL}, {TK_CONFIG_PIXELS, "-elementborderwidth", "elementBorderWidth", "BorderWidth", DEF_SCROLLBAR_EL_BORDER_WIDTH, - offsetof(TkScrollbar, elementBorderWidth), 0, NULL}, + offsetof(TkScrollbar, elementBorderWidth), TK_CONFIG_NULL_OK, NULL}, {TK_CONFIG_COLOR, "-highlightbackground", "highlightBackground", "HighlightBackground", DEF_SCROLLBAR_HIGHLIGHT_BG, offsetof(TkScrollbar, highlightBgColorPtr), 0, NULL}, @@ -172,7 +172,7 @@ Tk_ScrollbarObjCmd( scrollPtr->highlightBgColorPtr = NULL; scrollPtr->highlightColorPtr = NULL; scrollPtr->inset = 0; - scrollPtr->elementBorderWidth = -1; + scrollPtr->elementBorderWidth = INT_MIN; scrollPtr->arrowLength = 0; scrollPtr->sliderFirst = 0; scrollPtr->sliderLast = 0; @@ -487,6 +487,12 @@ ConfigureScrollbar( } else { scrollPtr->commandSize = 0; } + if (scrollPtr->highlightWidth < 0) { + scrollPtr->highlightWidth = 0; + } + if (scrollPtr->elementBorderWidth < 0) { + scrollPtr->elementBorderWidth = INT_MIN; + } /* * Configure platform specific options. diff --git a/generic/tkSelect.c b/generic/tkSelect.c index ef15a7e..752b5ea 100644 --- a/generic/tkSelect.c +++ b/generic/tkSelect.c @@ -715,7 +715,7 @@ Tk_SelectionObjCmd( if (count < 2) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( "value for \"%s\" missing", string)); - Tcl_SetErrorCode(interp, "TK", "SELECTION", "VALUE", NULL); + Tcl_SetErrorCode(interp, "TK", "SELECTION", "VALUE", (char *)NULL); return TCL_ERROR; } @@ -775,7 +775,7 @@ Tk_SelectionObjCmd( if (count < 2) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( "value for \"%s\" missing", string)); - Tcl_SetErrorCode(interp, "TK", "SELECTION", "VALUE", NULL); + Tcl_SetErrorCode(interp, "TK", "SELECTION", "VALUE", (char *)NULL); return TCL_ERROR; } @@ -853,7 +853,7 @@ Tk_SelectionObjCmd( if (count < 2) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( "value for \"%s\" missing", string)); - Tcl_SetErrorCode(interp, "TK", "SELECTION", "VALUE", NULL); + Tcl_SetErrorCode(interp, "TK", "SELECTION", "VALUE", (char *)NULL); return TCL_ERROR; } @@ -940,7 +940,7 @@ Tk_SelectionObjCmd( if (count < 2) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( "value for \"%s\" missing", string)); - Tcl_SetErrorCode(interp, "TK", "SELECTION", "VALUE", NULL); + Tcl_SetErrorCode(interp, "TK", "SELECTION", "VALUE", (char *)NULL); return TCL_ERROR; } diff --git a/generic/tkTextDisp.c b/generic/tkTextDisp.c index 78dad1d..027efc8 100644 --- a/generic/tkTextDisp.c +++ b/generic/tkTextDisp.c @@ -4414,7 +4414,7 @@ DisplayText( Tk_Width(textPtr->tkwin) - 2*textPtr->highlightWidth, Tk_Height(textPtr->tkwin) - 2*textPtr->highlightWidth, textPtr->borderWidth, textPtr->relief); - if (textPtr->highlightWidth != 0) { + if (textPtr->highlightWidth > 0) { GC fgGC, bgGC; bgGC = Tk_GCForColor(textPtr->highlightBgColorPtr, diff --git a/generic/tkTextWind.c b/generic/tkTextWind.c index 954e16f..8c71e48 100644 --- a/generic/tkTextWind.c +++ b/generic/tkTextWind.c @@ -171,7 +171,7 @@ TkTextWindowCmd( Tcl_SetObjResult(interp, Tcl_ObjPrintf( "no embedded window at index \"%s\"", Tcl_GetString(objv[3]))); - Tcl_SetErrorCode(interp, "TK", "TEXT", "NO_WINDOW", NULL); + Tcl_SetErrorCode(interp, "TK", "TEXT", "NO_WINDOW", (char *)NULL); return TCL_ERROR; } @@ -209,7 +209,7 @@ TkTextWindowCmd( Tcl_SetObjResult(interp, Tcl_ObjPrintf( "no embedded window at index \"%s\"", Tcl_GetString(objv[3]))); - Tcl_SetErrorCode(interp, "TK", "TEXT", "NO_WINDOW", NULL); + Tcl_SetErrorCode(interp, "TK", "TEXT", "NO_WINDOW", (char *)NULL); return TCL_ERROR; } if (objc <= 5) { @@ -443,7 +443,7 @@ EmbWinConfigure( Tk_PathName(ewPtr->body.ew.tkwin), Tk_PathName(textPtr->tkwin))); Tcl_SetErrorCode(textPtr->interp, "TK", "GEOMETRY", - "HIERARCHY", NULL); + "HIERARCHY", (char *)NULL); ewPtr->body.ew.tkwin = NULL; if (client != NULL) { client->tkwin = NULL; @@ -940,7 +940,7 @@ EmbWinLayoutProc( Tk_PathName(ewPtr->body.ew.tkwin), Tk_PathName(textPtr->tkwin))); Tcl_SetErrorCode(textPtr->interp, "TK", "GEOMETRY", "HIERARCHY", - NULL); + (char *)NULL); Tcl_BackgroundException(textPtr->interp, TCL_ERROR); ewPtr->body.ew.tkwin = NULL; goto gotWindow; diff --git a/generic/tkWindow.c b/generic/tkWindow.c index 64f6ce0..9d36e9f 100644 --- a/generic/tkWindow.c +++ b/generic/tkWindow.c @@ -1367,7 +1367,7 @@ static void SendEnterLeaveForDestroy( Tk_UpdatePointer((Tk_Window) containerPtr, x, y, state); } } - + if (pointerWin && (tkwin == Tk_Parent(pointerWin))) { Tk_UpdatePointer(Tk_Parent(tkwin), x, y, state); } @@ -1401,7 +1401,7 @@ Tk_DestroyWindow( if ((winPtr->flags & TK_DONT_DESTROY_WINDOW) == 0) { SendEnterLeaveForDestroy(tkwin); } - + winPtr->flags |= TK_ALREADY_DEAD; /* |