From 90dadab2e3d425f50d6ce276dbb5bccee208be83 Mon Sep 17 00:00:00 2001 From: "nijtmans@users.sourceforge.net" Date: Fri, 15 Feb 2013 15:42:16 +0000 Subject: Extend the public and private stub tables with dummy NULL entries, up to the size of the Tk 8.6 stub tables. This makes it easier to debug Tk extensions which use Tk 8.5/8.6 features but (erroneously) are attempted to be loaded in wish8.4 --- generic/tk.decls | 4 +- generic/tkDecls.h | 39 ++++++++++++++++++ generic/tkInt.decls | 13 ++++++ generic/tkIntDecls.h | 101 +++++++++++++++++++++++++++++++++++++++++++++++ generic/tkIntPlatDecls.h | 22 +++++++++++ generic/tkStubInit.c | 48 ++++++++++++++++++++++ 6 files changed, 226 insertions(+), 1 deletion(-) diff --git a/generic/tk.decls b/generic/tk.decls index b64cc43..032320d 100644 --- a/generic/tk.decls +++ b/generic/tk.decls @@ -1017,7 +1017,9 @@ declare 264 { char *recordPtr, Tk_Window tkwin, Drawable d, int x, int y, int width, int height, int state) } - +declare 275 { + void TkUnusedStubEntry(void) +} # Define the platform specific public Tk interface. These functions are # only available on the designated platform. diff --git a/generic/tkDecls.h b/generic/tkDecls.h index 81871a2..3c92ffb 100644 --- a/generic/tkDecls.h +++ b/generic/tkDecls.h @@ -905,6 +905,18 @@ EXTERN void Tk_DrawElement _ANSI_ARGS_((Tk_Style style, Tk_StyledElement element, char *recordPtr, Tk_Window tkwin, Drawable d, int x, int y, int width, int height, int state)); +/* Slot 265 is reserved */ +/* Slot 266 is reserved */ +/* Slot 267 is reserved */ +/* Slot 268 is reserved */ +/* Slot 269 is reserved */ +/* Slot 270 is reserved */ +/* Slot 271 is reserved */ +/* Slot 272 is reserved */ +/* Slot 273 is reserved */ +/* Slot 274 is reserved */ +/* 275 */ +EXTERN void TkUnusedStubEntry _ANSI_ARGS_((void)); typedef struct TkStubHooks { struct TkPlatStubs *tkPlatStubs; @@ -1182,6 +1194,17 @@ typedef struct TkStubs { void (*tk_GetElementBox) _ANSI_ARGS_((Tk_Style style, Tk_StyledElement element, char *recordPtr, Tk_Window tkwin, int x, int y, int width, int height, int inner, int *xPtr, int *yPtr, int *widthPtr, int *heightPtr)); /* 262 */ int (*tk_GetElementBorderWidth) _ANSI_ARGS_((Tk_Style style, Tk_StyledElement element, char *recordPtr, Tk_Window tkwin)); /* 263 */ void (*tk_DrawElement) _ANSI_ARGS_((Tk_Style style, Tk_StyledElement element, char *recordPtr, Tk_Window tkwin, Drawable d, int x, int y, int width, int height, int state)); /* 264 */ + VOID *reserved265; + VOID *reserved266; + VOID *reserved267; + VOID *reserved268; + VOID *reserved269; + VOID *reserved270; + VOID *reserved271; + VOID *reserved272; + VOID *reserved273; + VOID *reserved274; + void (*tkUnusedStubEntry) _ANSI_ARGS_((void)); /* 275 */ } TkStubs; #ifdef __cplusplus @@ -2252,6 +2275,20 @@ extern TkStubs *tkStubsPtr; #define Tk_DrawElement \ (tkStubsPtr->tk_DrawElement) /* 264 */ #endif +/* Slot 265 is reserved */ +/* Slot 266 is reserved */ +/* Slot 267 is reserved */ +/* Slot 268 is reserved */ +/* Slot 269 is reserved */ +/* Slot 270 is reserved */ +/* Slot 271 is reserved */ +/* Slot 272 is reserved */ +/* Slot 273 is reserved */ +/* Slot 274 is reserved */ +#ifndef TkUnusedStubEntry +#define TkUnusedStubEntry \ + (tkStubsPtr->tkUnusedStubEntry) /* 275 */ +#endif #endif /* defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) */ @@ -2260,5 +2297,7 @@ extern TkStubs *tkStubsPtr; #undef TCL_STORAGE_CLASS #define TCL_STORAGE_CLASS DLLIMPORT +#undef TkUnusedStubEntry + #endif /* _TKDECLS */ diff --git a/generic/tkInt.decls b/generic/tkInt.decls index a37f986..107223b 100644 --- a/generic/tkInt.decls +++ b/generic/tkInt.decls @@ -489,6 +489,9 @@ declare 152 { void TkpDrawFrame(Tk_Window tkwin, Tk_3DBorder border, int highlightWidth, int borderWidth, int relief) } +declare 184 { + void TkUnusedStubEntry(void) +} ############################################################################## @@ -539,6 +542,9 @@ declare 11 x11 { declare 12 x11 { int TkpWmSetState(TkWindow *winPtr, int state) } +declare 13 x11 { + void TkUnusedStubEntry(void) +} ################################ # Windows specific functions @@ -691,6 +697,10 @@ declare 43 win { declare 44 win { void TkSendCleanup(TkDisplay *dispPtr) } +declare 45 win { + void TkUnusedStubEntry(void) +} + ################################ # Aqua specific functions @@ -873,6 +883,9 @@ declare 51 aqua { declare 53 aqua { unsigned long TkpGetMS(void) } +declare 54 aqua { + void TkUnusedStubEntry(void) +} ############################################################################## diff --git a/generic/tkIntDecls.h b/generic/tkIntDecls.h index a590cf2..66ae129 100644 --- a/generic/tkIntDecls.h +++ b/generic/tkIntDecls.h @@ -454,6 +454,39 @@ EXTERN CONST Tk_OptionSpec * TkGetOptionSpec _ANSI_ARGS_((CONST char *name, EXTERN void TkpDrawFrame _ANSI_ARGS_((Tk_Window tkwin, Tk_3DBorder border, int highlightWidth, int borderWidth, int relief)); +/* Slot 153 is reserved */ +/* Slot 154 is reserved */ +/* Slot 155 is reserved */ +/* Slot 156 is reserved */ +/* Slot 157 is reserved */ +/* Slot 158 is reserved */ +/* Slot 159 is reserved */ +/* Slot 160 is reserved */ +/* Slot 161 is reserved */ +/* Slot 162 is reserved */ +/* Slot 163 is reserved */ +/* Slot 164 is reserved */ +/* Slot 165 is reserved */ +/* Slot 166 is reserved */ +/* Slot 167 is reserved */ +/* Slot 168 is reserved */ +/* Slot 169 is reserved */ +/* Slot 170 is reserved */ +/* Slot 171 is reserved */ +/* Slot 172 is reserved */ +/* Slot 173 is reserved */ +/* Slot 174 is reserved */ +/* Slot 175 is reserved */ +/* Slot 176 is reserved */ +/* Slot 177 is reserved */ +/* Slot 178 is reserved */ +/* Slot 179 is reserved */ +/* Slot 180 is reserved */ +/* Slot 181 is reserved */ +/* Slot 182 is reserved */ +/* Slot 183 is reserved */ +/* 184 */ +EXTERN void TkUnusedStubEntry _ANSI_ARGS_((void)); typedef struct TkIntStubs { int magic; @@ -639,6 +672,38 @@ typedef struct TkIntStubs { VOID *reserved150; VOID *reserved151; void (*tkpDrawFrame) _ANSI_ARGS_((Tk_Window tkwin, Tk_3DBorder border, int highlightWidth, int borderWidth, int relief)); /* 152 */ + VOID *reserved153; + VOID *reserved154; + VOID *reserved155; + VOID *reserved156; + VOID *reserved157; + VOID *reserved158; + VOID *reserved159; + VOID *reserved160; + VOID *reserved161; + VOID *reserved162; + VOID *reserved163; + VOID *reserved164; + VOID *reserved165; + VOID *reserved166; + VOID *reserved167; + VOID *reserved168; + VOID *reserved169; + VOID *reserved170; + VOID *reserved171; + VOID *reserved172; + VOID *reserved173; + VOID *reserved174; + VOID *reserved175; + VOID *reserved176; + VOID *reserved177; + VOID *reserved178; + VOID *reserved179; + VOID *reserved180; + VOID *reserved181; + VOID *reserved182; + VOID *reserved183; + void (*tkUnusedStubEntry) _ANSI_ARGS_((void)); /* 184 */ } TkIntStubs; #ifdef __cplusplus @@ -1228,6 +1293,41 @@ extern TkIntStubs *tkIntStubsPtr; #define TkpDrawFrame \ (tkIntStubsPtr->tkpDrawFrame) /* 152 */ #endif +/* Slot 153 is reserved */ +/* Slot 154 is reserved */ +/* Slot 155 is reserved */ +/* Slot 156 is reserved */ +/* Slot 157 is reserved */ +/* Slot 158 is reserved */ +/* Slot 159 is reserved */ +/* Slot 160 is reserved */ +/* Slot 161 is reserved */ +/* Slot 162 is reserved */ +/* Slot 163 is reserved */ +/* Slot 164 is reserved */ +/* Slot 165 is reserved */ +/* Slot 166 is reserved */ +/* Slot 167 is reserved */ +/* Slot 168 is reserved */ +/* Slot 169 is reserved */ +/* Slot 170 is reserved */ +/* Slot 171 is reserved */ +/* Slot 172 is reserved */ +/* Slot 173 is reserved */ +/* Slot 174 is reserved */ +/* Slot 175 is reserved */ +/* Slot 176 is reserved */ +/* Slot 177 is reserved */ +/* Slot 178 is reserved */ +/* Slot 179 is reserved */ +/* Slot 180 is reserved */ +/* Slot 181 is reserved */ +/* Slot 182 is reserved */ +/* Slot 183 is reserved */ +#ifndef TkUnusedStubEntry +#define TkUnusedStubEntry \ + (tkIntStubsPtr->tkUnusedStubEntry) /* 184 */ +#endif #endif /* defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) */ @@ -1236,6 +1336,7 @@ extern TkIntStubs *tkIntStubsPtr; #undef TCL_STORAGE_CLASS #define TCL_STORAGE_CLASS DLLIMPORT +#undef TkUnusedStubEntry #if defined(__CYGWIN__) && defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) # undef TkBindDeadWindow # define TkBindDeadWindow(winPtr) /* Removed from Cygwins stub table, just do nothing */ diff --git a/generic/tkIntPlatDecls.h b/generic/tkIntPlatDecls.h index eb05c02..c8917e2 100644 --- a/generic/tkIntPlatDecls.h +++ b/generic/tkIntPlatDecls.h @@ -144,6 +144,8 @@ EXTERN void TkUnixSetMenubar _ANSI_ARGS_((Tk_Window tkwin, EXTERN void TkWmCleanup _ANSI_ARGS_((TkDisplay *dispPtr)); /* 44 */ EXTERN void TkSendCleanup _ANSI_ARGS_((TkDisplay *dispPtr)); +/* 45 */ +EXTERN void TkUnusedStubEntry _ANSI_ARGS_((void)); #endif /* WIN */ #ifdef MAC_OSX_TK /* AQUA */ /* 0 */ @@ -269,6 +271,8 @@ EXTERN void TkGenWMDestroyEvent _ANSI_ARGS_((Tk_Window tkwin)); /* Slot 52 is reserved */ /* 53 */ EXTERN unsigned long TkpGetMS _ANSI_ARGS_((void)); +/* 54 */ +EXTERN void TkUnusedStubEntry _ANSI_ARGS_((void)); #endif /* AQUA */ #if !(defined(__WIN32__) || defined(__CYGWIN__) || defined(MAC_OSX_TK)) /* X11 */ /* 0 */ @@ -302,6 +306,8 @@ EXTERN void TkFreeXId _ANSI_ARGS_((TkDisplay *dispPtr)); /* 12 */ EXTERN int TkpWmSetState _ANSI_ARGS_((TkWindow *winPtr, int state)); +/* 13 */ +EXTERN void TkUnusedStubEntry _ANSI_ARGS_((void)); #endif /* X11 */ typedef struct TkIntPlatStubs { @@ -354,6 +360,7 @@ typedef struct TkIntPlatStubs { void (*tkUnixSetMenubar) _ANSI_ARGS_((Tk_Window tkwin, Tk_Window menubar)); /* 42 */ void (*tkWmCleanup) _ANSI_ARGS_((TkDisplay *dispPtr)); /* 43 */ void (*tkSendCleanup) _ANSI_ARGS_((TkDisplay *dispPtr)); /* 44 */ + void (*tkUnusedStubEntry) _ANSI_ARGS_((void)); /* 45 */ #endif /* WIN */ #ifdef MAC_OSX_TK /* AQUA */ void (*tkGenerateActivateEvents) _ANSI_ARGS_((TkWindow *winPtr, int active)); /* 0 */ @@ -410,6 +417,7 @@ typedef struct TkIntPlatStubs { void (*tkGenWMDestroyEvent) _ANSI_ARGS_((Tk_Window tkwin)); /* 51 */ VOID *reserved52; unsigned long (*tkpGetMS) _ANSI_ARGS_((void)); /* 53 */ + void (*tkUnusedStubEntry) _ANSI_ARGS_((void)); /* 54 */ #endif /* AQUA */ #if !(defined(__WIN32__) || defined(__CYGWIN__) || defined(MAC_OSX_TK)) /* X11 */ void (*tkCreateXEventSource) _ANSI_ARGS_((void)); /* 0 */ @@ -425,6 +433,7 @@ typedef struct TkIntPlatStubs { void (*tkSendCleanup) _ANSI_ARGS_((TkDisplay *dispPtr)); /* 10 */ void (*tkFreeXId) _ANSI_ARGS_((TkDisplay *dispPtr)); /* 11 */ int (*tkpWmSetState) _ANSI_ARGS_((TkWindow *winPtr, int state)); /* 12 */ + void (*tkUnusedStubEntry) _ANSI_ARGS_((void)); /* 13 */ #endif /* X11 */ } TkIntPlatStubs; @@ -620,6 +629,10 @@ extern TkIntPlatStubs *tkIntPlatStubsPtr; #define TkSendCleanup \ (tkIntPlatStubsPtr->tkSendCleanup) /* 44 */ #endif +#ifndef TkUnusedStubEntry +#define TkUnusedStubEntry \ + (tkIntPlatStubsPtr->tkUnusedStubEntry) /* 45 */ +#endif #endif /* WIN */ #ifdef MAC_OSX_TK /* AQUA */ #ifndef TkGenerateActivateEvents @@ -814,6 +827,10 @@ extern TkIntPlatStubs *tkIntPlatStubsPtr; #define TkpGetMS \ (tkIntPlatStubsPtr->tkpGetMS) /* 53 */ #endif +#ifndef TkUnusedStubEntry +#define TkUnusedStubEntry \ + (tkIntPlatStubsPtr->tkUnusedStubEntry) /* 54 */ +#endif #endif /* AQUA */ #if !(defined(__WIN32__) || defined(__CYGWIN__) || defined(MAC_OSX_TK)) /* X11 */ #ifndef TkCreateXEventSource @@ -868,6 +885,10 @@ extern TkIntPlatStubs *tkIntPlatStubsPtr; #define TkpWmSetState \ (tkIntPlatStubsPtr->tkpWmSetState) /* 12 */ #endif +#ifndef TkUnusedStubEntry +#define TkUnusedStubEntry \ + (tkIntPlatStubsPtr->tkUnusedStubEntry) /* 13 */ +#endif #endif /* X11 */ #endif /* defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) */ @@ -877,6 +898,7 @@ extern TkIntPlatStubs *tkIntPlatStubsPtr; #undef TCL_STORAGE_CLASS #define TCL_STORAGE_CLASS DLLIMPORT +#undef TkUnusedStubEntry #ifdef __CYGWIN__ void TkFreeXId(TkDisplay *dispPtr); void TkFreeWindowId(TkDisplay *dispPtr, Window w); diff --git a/generic/tkStubInit.c b/generic/tkStubInit.c index dc22008..1a30908 100644 --- a/generic/tkStubInit.c +++ b/generic/tkStubInit.c @@ -32,6 +32,8 @@ #include "tkIntPlatDecls.h" #include "tkIntXlibDecls.h" +#define TkUnusedStubEntry NULL + #ifdef __WIN32__ static int @@ -449,6 +451,38 @@ TkIntStubs tkIntStubs = { NULL, /* 150 */ NULL, /* 151 */ TkpDrawFrame, /* 152 */ + NULL, /* 153 */ + NULL, /* 154 */ + NULL, /* 155 */ + NULL, /* 156 */ + NULL, /* 157 */ + NULL, /* 158 */ + NULL, /* 159 */ + NULL, /* 160 */ + NULL, /* 161 */ + NULL, /* 162 */ + NULL, /* 163 */ + NULL, /* 164 */ + NULL, /* 165 */ + NULL, /* 166 */ + NULL, /* 167 */ + NULL, /* 168 */ + NULL, /* 169 */ + NULL, /* 170 */ + NULL, /* 171 */ + NULL, /* 172 */ + NULL, /* 173 */ + NULL, /* 174 */ + NULL, /* 175 */ + NULL, /* 176 */ + NULL, /* 177 */ + NULL, /* 178 */ + NULL, /* 179 */ + NULL, /* 180 */ + NULL, /* 181 */ + NULL, /* 182 */ + NULL, /* 183 */ + TkUnusedStubEntry, /* 184 */ }; TkIntPlatStubs tkIntPlatStubs = { @@ -500,6 +534,7 @@ TkIntPlatStubs tkIntPlatStubs = { TkUnixSetMenubar, /* 42 */ TkWmCleanup, /* 43 */ TkSendCleanup, /* 44 */ + TkUnusedStubEntry, /* 45 */ #endif /* WIN */ #ifdef MAC_OSX_TK /* AQUA */ TkGenerateActivateEvents, /* 0 */ @@ -556,6 +591,7 @@ TkIntPlatStubs tkIntPlatStubs = { TkGenWMDestroyEvent, /* 51 */ NULL, /* 52 */ TkpGetMS, /* 53 */ + TkUnusedStubEntry, /* 54 */ #endif /* AQUA */ #if !(defined(__WIN32__) || defined(__CYGWIN__) || defined(MAC_OSX_TK)) /* X11 */ TkCreateXEventSource, /* 0 */ @@ -571,6 +607,7 @@ TkIntPlatStubs tkIntPlatStubs = { TkSendCleanup, /* 10 */ TkFreeXId, /* 11 */ TkpWmSetState, /* 12 */ + TkUnusedStubEntry, /* 13 */ #endif /* X11 */ }; @@ -1091,6 +1128,17 @@ TkStubs tkStubs = { Tk_GetElementBox, /* 262 */ Tk_GetElementBorderWidth, /* 263 */ Tk_DrawElement, /* 264 */ + NULL, /* 265 */ + NULL, /* 266 */ + NULL, /* 267 */ + NULL, /* 268 */ + NULL, /* 269 */ + NULL, /* 270 */ + NULL, /* 271 */ + NULL, /* 272 */ + NULL, /* 273 */ + NULL, /* 274 */ + TkUnusedStubEntry, /* 275 */ }; /* !END!: Do not edit above this line. */ -- cgit v0.12