Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Put extern "C" guards around all stub table struct definitions, so it is usable to be used for C++ compilers as well without the danger of modifying the calling convention. For tkDecls.h, ttkDecls.h tkIntXlibDecls.h is was no problem, because tk.h, tkTheme.h and Xlib.h already contain those guards. But not for the other *Decls.h files. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | core-8-5-branch |
Files: | files | file ages | folders |
SHA1: |
39acb6d025ef1accd394c790c8b88f12 |
User & Date: | jan.nijtmans 2013-10-31 08:51:10 |
Context
2013-10-31
| ||
21:25 | Fix refcount bug in FreeFontObjProc. Could result in freeing a TkFont which was already freed. check-in: d13e6a58 user: jan.nijtmans tags: core-8-5-branch | |
09:27 | Put extern "C" guards around all stub table struct definitions, so it is usable to be used for C++ compilers as well without the danger of modifying the calling convention. For tkDecls.h, ttkDecls.h tkIntXlibDecls.h is was no problem, because tk.h, tkTheme.h and Xlib.h already contain those guards. But not for the other *Decls.h files. check-in: 83a9d727 user: jan.nijtmans tags: trunk | |
08:51 | Put extern "C" guards around all stub table struct definitions, so it is usable to be used for C++ compilers as well without the danger of modifying the calling convention. For tkDecls.h, ttkDecls.h tkIntXlibDecls.h is was no problem, because tk.h, tkTheme.h and Xlib.h already contain those guards. But not for the other *Decls.h files. check-in: 39acb6d0 user: jan.nijtmans tags: core-8-5-branch | |
2013-10-28
| ||
09:52 | Fix [3603436fff]: png save has wrong component indexes check-in: e4ef1ff7 user: jan.nijtmans tags: core-8-5-branch | |
Changes
Changes to generic/tkDecls.h.
︙ | ︙ | |||
21 22 23 24 25 26 27 28 29 30 31 32 33 34 | * WARNING: This file is automatically generated by the tools/genStubs.tcl * script. Any modifications to the function declarations below should be made * in the generic/tk.decls script. */ /* !BEGIN!: Do not edit below this line. */ /* * Exported function declarations: */ #ifndef Tk_MainLoop_TCL_DECLARED #define Tk_MainLoop_TCL_DECLARED /* 0 */ | > > > > | 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | * WARNING: This file is automatically generated by the tools/genStubs.tcl * script. Any modifications to the function declarations below should be made * in the generic/tk.decls script. */ /* !BEGIN!: Do not edit below this line. */ #ifdef __cplusplus extern "C" { #endif /* * Exported function declarations: */ #ifndef Tk_MainLoop_TCL_DECLARED #define Tk_MainLoop_TCL_DECLARED /* 0 */ |
︙ | ︙ | |||
1966 1967 1968 1969 1970 1971 1972 | Tcl_Interp * (*tk_Interp) (Tk_Window tkwin); /* 271 */ void (*tk_CreateOldImageType) (Tk_ImageType *typePtr); /* 272 */ void (*tk_CreateOldPhotoImageFormat) (Tk_PhotoImageFormat *formatPtr); /* 273 */ VOID *reserved274; void (*tkUnusedStubEntry) (void); /* 275 */ } TkStubs; | < < < > | 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 | Tcl_Interp * (*tk_Interp) (Tk_Window tkwin); /* 271 */ void (*tk_CreateOldImageType) (Tk_ImageType *typePtr); /* 272 */ void (*tk_CreateOldPhotoImageFormat) (Tk_PhotoImageFormat *formatPtr); /* 273 */ VOID *reserved274; void (*tkUnusedStubEntry) (void); /* 275 */ } TkStubs; extern TkStubs *tkStubsPtr; #ifdef __cplusplus } #endif #if defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) /* |
︙ | ︙ |
Changes to generic/tkInt.h.
︙ | ︙ | |||
972 973 974 975 976 977 978 | MODULE_SCOPE Tk_ImageType tkPhotoImageType; MODULE_SCOPE Tcl_HashTable tkPredefBitmapTable; MODULE_SCOPE CONST char *const tkWebColors[20]; #include "tkIntDecls.h" | < < < < < | 972 973 974 975 976 977 978 979 980 981 982 983 984 985 | MODULE_SCOPE Tk_ImageType tkPhotoImageType; MODULE_SCOPE Tcl_HashTable tkPredefBitmapTable; MODULE_SCOPE CONST char *const tkWebColors[20]; #include "tkIntDecls.h" /* * Themed widget set init function: */ MODULE_SCOPE int Ttk_Init(Tcl_Interp *interp); /* |
︙ | ︙ | |||
1197 1198 1199 1200 1201 1202 1203 | * Unsupported commands. */ MODULE_SCOPE int TkUnsupported1ObjCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); | < < < | 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 | * Unsupported commands. */ MODULE_SCOPE int TkUnsupported1ObjCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); #endif /* _TKINT */ /* * Local Variables: * mode: c * c-basic-offset: 4 * fill-column: 78 * End: */ |
Changes to generic/tkIntDecls.h.
︙ | ︙ | |||
24 25 26 27 28 29 30 31 32 33 34 35 36 37 | * WARNING: This file is automatically generated by the tools/genStubs.tcl * script. Any modifications to the function declarations below should be made * in the generic/tkInt.decls script. */ /* !BEGIN!: Do not edit below this line. */ /* * Exported function declarations: */ #ifndef TkAllocWindow_TCL_DECLARED #define TkAllocWindow_TCL_DECLARED /* 0 */ | > > > > | 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | * WARNING: This file is automatically generated by the tools/genStubs.tcl * script. Any modifications to the function declarations below should be made * in the generic/tkInt.decls script. */ /* !BEGIN!: Do not edit below this line. */ #ifdef __cplusplus extern "C" { #endif /* * Exported function declarations: */ #ifndef TkAllocWindow_TCL_DECLARED #define TkAllocWindow_TCL_DECLARED /* 0 */ |
︙ | ︙ | |||
1185 1186 1187 1188 1189 1190 1191 | char * (*tkSmoothPrintProc) (ClientData clientData, Tk_Window tkwin, char *widgRec, int offset, Tcl_FreeProc **freeProcPtr); /* 180 */ VOID *reserved181; VOID *reserved182; VOID *reserved183; void (*tkUnusedStubEntry) (void); /* 184 */ } TkIntStubs; | < < < > | 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 | char * (*tkSmoothPrintProc) (ClientData clientData, Tk_Window tkwin, char *widgRec, int offset, Tcl_FreeProc **freeProcPtr); /* 180 */ VOID *reserved181; VOID *reserved182; VOID *reserved183; void (*tkUnusedStubEntry) (void); /* 184 */ } TkIntStubs; extern TkIntStubs *tkIntStubsPtr; #ifdef __cplusplus } #endif #if defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) /* |
︙ | ︙ |
Changes to generic/tkIntPlatDecls.h.
︙ | ︙ | |||
22 23 24 25 26 27 28 29 30 31 32 33 34 35 | * WARNING: This file is automatically generated by the tools/genStubs.tcl * script. Any modifications to the function declarations below should be made * in the generic/tkInt.decls script. */ /* !BEGIN!: Do not edit below this line. */ /* * Exported function declarations: */ #if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */ #ifndef TkAlignImageData_TCL_DECLARED #define TkAlignImageData_TCL_DECLARED | > > > > | 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | * WARNING: This file is automatically generated by the tools/genStubs.tcl * script. Any modifications to the function declarations below should be made * in the generic/tkInt.decls script. */ /* !BEGIN!: Do not edit below this line. */ #ifdef __cplusplus extern "C" { #endif /* * Exported function declarations: */ #if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */ #ifndef TkAlignImageData_TCL_DECLARED #define TkAlignImageData_TCL_DECLARED |
︙ | ︙ | |||
727 728 729 730 731 732 733 | void (*tkSendCleanup) (TkDisplay *dispPtr); /* 10 */ void (*tkFreeXId) (TkDisplay *dispPtr); /* 11 */ int (*tkpWmSetState) (TkWindow *winPtr, int state); /* 12 */ int (*tkpTestsendCmd) (ClientData clientData, Tcl_Interp *interp, int argc, CONST char **argv); /* 13 */ #endif /* X11 */ } TkIntPlatStubs; | < < < > | 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 | void (*tkSendCleanup) (TkDisplay *dispPtr); /* 10 */ void (*tkFreeXId) (TkDisplay *dispPtr); /* 11 */ int (*tkpWmSetState) (TkWindow *winPtr, int state); /* 12 */ int (*tkpTestsendCmd) (ClientData clientData, Tcl_Interp *interp, int argc, CONST char **argv); /* 13 */ #endif /* X11 */ } TkIntPlatStubs; extern TkIntPlatStubs *tkIntPlatStubsPtr; #ifdef __cplusplus } #endif #if defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) /* |
︙ | ︙ |
Changes to generic/tkIntXlibDecls.h.
︙ | ︙ | |||
32 33 34 35 36 37 38 39 40 41 42 43 44 45 | typedef int (*XAfterFunction) ( /* WARNING, this type not in Xlib spec */ Display* /* display */ ); /* !BEGIN!: Do not edit below this line. */ /* * Exported function declarations: */ #if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */ #ifndef XSetDashes_TCL_DECLARED #define XSetDashes_TCL_DECLARED | > > > > | 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | typedef int (*XAfterFunction) ( /* WARNING, this type not in Xlib spec */ Display* /* display */ ); /* !BEGIN!: Do not edit below this line. */ #ifdef __cplusplus extern "C" { #endif /* * Exported function declarations: */ #if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */ #ifndef XSetDashes_TCL_DECLARED #define XSetDashes_TCL_DECLARED |
︙ | ︙ | |||
1449 1450 1451 1452 1453 1454 1455 | void (*xQueryColor) (Display *display, Colormap colormap, XColor *def_in_out); /* 88 */ void (*xQueryColors) (Display *display, Colormap colormap, XColor *defs_in_out, int ncolors); /* 89 */ Status (*xQueryTree) (Display *d, Window w1, Window *w2, Window *w3, Window **w4, unsigned int *ui); /* 90 */ int (*xSync) (Display *display, Bool flag); /* 91 */ #endif /* AQUA */ } TkIntXlibStubs; | < < < > | 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 | void (*xQueryColor) (Display *display, Colormap colormap, XColor *def_in_out); /* 88 */ void (*xQueryColors) (Display *display, Colormap colormap, XColor *defs_in_out, int ncolors); /* 89 */ Status (*xQueryTree) (Display *d, Window w1, Window *w2, Window *w3, Window **w4, unsigned int *ui); /* 90 */ int (*xSync) (Display *display, Bool flag); /* 91 */ #endif /* AQUA */ } TkIntXlibStubs; extern TkIntXlibStubs *tkIntXlibStubsPtr; #ifdef __cplusplus } #endif #if defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) /* |
︙ | ︙ |
Changes to generic/tkPlatDecls.h.
︙ | ︙ | |||
21 22 23 24 25 26 27 28 29 30 31 32 33 34 | * WARNING: This file is automatically generated by the tools/genStubs.tcl * script. Any modifications to the function declarations below should be made * in the generic/tk.decls script. */ /* !BEGIN!: Do not edit below this line. */ /* * Exported function declarations: */ #if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */ #ifndef Tk_AttachHWND_TCL_DECLARED #define Tk_AttachHWND_TCL_DECLARED | > > > > | 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | * WARNING: This file is automatically generated by the tools/genStubs.tcl * script. Any modifications to the function declarations below should be made * in the generic/tk.decls script. */ /* !BEGIN!: Do not edit below this line. */ #ifdef __cplusplus extern "C" { #endif /* * Exported function declarations: */ #if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */ #ifndef Tk_AttachHWND_TCL_DECLARED #define Tk_AttachHWND_TCL_DECLARED |
︙ | ︙ | |||
150 151 152 153 154 155 156 | VOID * (*tkMacOSXGetDrawablePort) (Drawable drawable); /* 7 */ VOID * (*tkMacOSXGetRootControl) (Drawable drawable); /* 8 */ void (*tk_MacOSXSetupTkNotifier) (void); /* 9 */ int (*tk_MacOSXIsAppInFront) (void); /* 10 */ #endif /* AQUA */ } TkPlatStubs; | < < < > | 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 | VOID * (*tkMacOSXGetDrawablePort) (Drawable drawable); /* 7 */ VOID * (*tkMacOSXGetRootControl) (Drawable drawable); /* 8 */ void (*tk_MacOSXSetupTkNotifier) (void); /* 9 */ int (*tk_MacOSXIsAppInFront) (void); /* 10 */ #endif /* AQUA */ } TkPlatStubs; extern TkPlatStubs *tkPlatStubsPtr; #ifdef __cplusplus } #endif #if defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) /* |
︙ | ︙ |
Changes to generic/ttk/ttkDecls.h.
︙ | ︙ | |||
19 20 21 22 23 24 25 26 27 28 29 30 31 32 | /* !BEGIN!: Do not edit below this line. */ #define TTK_STUBS_EPOCH 0 #define TTK_STUBS_REVISION 31 /* * Exported function declarations: */ /* 0 */ TTKAPI Ttk_Theme Ttk_GetTheme(Tcl_Interp *interp, CONST char *name); /* 1 */ | > > > > | 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | /* !BEGIN!: Do not edit below this line. */ #define TTK_STUBS_EPOCH 0 #define TTK_STUBS_REVISION 31 #ifdef __cplusplus extern "C" { #endif /* * Exported function declarations: */ /* 0 */ TTKAPI Ttk_Theme Ttk_GetTheme(Tcl_Interp *interp, CONST char *name); /* 1 */ |
︙ | ︙ | |||
174 175 176 177 178 179 180 | void (*reserved36)(void); void (*reserved37)(void); void (*reserved38)(void); void (*reserved39)(void); int (*ttk_GetOrientFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int *orient); /* 40 */ } TtkStubs; | < < < > | 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 | void (*reserved36)(void); void (*reserved37)(void); void (*reserved38)(void); void (*reserved39)(void); int (*ttk_GetOrientFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int *orient); /* 40 */ } TtkStubs; extern const TtkStubs *ttkStubsPtr; #ifdef __cplusplus } #endif #if defined(USE_TTK_STUBS) /* |
︙ | ︙ |
Changes to generic/ttk/ttkGenStubs.tcl.
︙ | ︙ | |||
183 184 185 186 187 188 189 | # proc genStubs::declare {args} { variable stubs variable curName variable revision incr revision | < | 183 184 185 186 187 188 189 190 191 192 193 194 195 196 | # proc genStubs::declare {args} { variable stubs variable curName variable revision incr revision if {[llength $args] == 2} { lassign $args index decl set status current } elseif {[llength $args] == 3} { lassign $args index status decl } else { puts stderr "wrong # args: declare $args" |
︙ | ︙ | |||
210 211 212 213 214 215 216 | set stubs($curName,status,$index) $status set stubs($curName,decl,$index) $decl if {$index > $stubs($curName,lastNum)} { set stubs($curName,lastNum) $index } | > | > > > > > > > > > > > > > > > > > | 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 | set stubs($curName,status,$index) $status set stubs($curName,decl,$index) $decl if {$index > $stubs($curName,lastNum)} { set stubs($curName,lastNum) $index } return } # genStubs::export -- # # This function is used in the declarations file to declare a symbol # that is exported from the library but is not in the stubs table. # # Arguments: # decl The C function declaration, or {} for an undefined # entry. # # Results: # None. proc genStubs::export {args} { if {[llength $args] != 1} { puts stderr "wrong # args: export $args" } return } # genStubs::rewriteFile -- # # This function replaces the machine generated portion of the # specified file with new contents. It looks for the !BEGIN! and |
︙ | ︙ | |||
406 407 408 409 410 411 412 | # index The slot index for this function. # # Results: # Returns the formatted declaration string. proc genStubs::makeDecl {name decl index} { variable scspec | < | 423 424 425 426 427 428 429 430 431 432 433 434 435 436 | # index The slot index for this function. # # Results: # Returns the formatted declaration string. proc genStubs::makeDecl {name decl index} { variable scspec lassign $decl rtype fname args append text "/* $index */\n" if {$rtype != "void"} { regsub -all void $rtype VOID rtype } set line "$scspec $rtype" |
︙ | ︙ | |||
727 728 729 730 731 732 733 734 735 736 737 738 739 740 | append capName [string range $name 1 end] set CAPName [string toupper $name] append text "\n" append text "#define ${CAPName}_STUBS_EPOCH $epoch\n" append text "#define ${CAPName}_STUBS_REVISION $revision\n" emitDeclarations $name text if {[info exists hooks($name)]} { append text "\ntypedef struct ${capName}StubHooks {\n" foreach hook $hooks($name) { set capHook [string toupper [string index $hook 0]] append capHook [string range $hook 1 end] | > > | 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 | append capName [string range $name 1 end] set CAPName [string toupper $name] append text "\n" append text "#define ${CAPName}_STUBS_EPOCH $epoch\n" append text "#define ${CAPName}_STUBS_REVISION $revision\n" append text "\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n" emitDeclarations $name text if {[info exists hooks($name)]} { append text "\ntypedef struct ${capName}StubHooks {\n" foreach hook $hooks($name) { set capHook [string toupper [string index $hook 0]] append capHook [string range $hook 1 end] |
︙ | ︙ | |||
748 749 750 751 752 753 754 | append text " int revision;\n" append text " const struct ${capName}StubHooks *hooks;\n\n" emitSlots $name text append text "} ${capName}Stubs;\n\n" | < | | 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 | append text " int revision;\n" append text " const struct ${capName}StubHooks *hooks;\n\n" emitSlots $name text append text "} ${capName}Stubs;\n\n" append text "extern const ${capName}Stubs *${name}StubsPtr;\n\n" append text "#ifdef __cplusplus\n}\n#endif\n" emitMacros $name text rewriteFile [file join $outDir ${name}Decls.h] $text return } |
︙ | ︙ | |||
774 775 776 777 778 779 780 | # Returns the formatted output. proc genStubs::emitInit {name textVar} { variable hooks variable interfaces variable epoch variable revision | < < > | 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 | # Returns the formatted output. proc genStubs::emitInit {name textVar} { variable hooks variable interfaces variable epoch variable revision upvar $textVar text set root 1 set capName [string toupper [string index $name 0]] append capName [string range $name 1 end] set CAPName [string toupper $name] if {[info exists hooks($name)]} { append text "\nstatic const ${capName}StubHooks ${name}StubHooks = \{\n" set sep " " |
︙ | ︙ |