summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2015-10-06 11:46:46 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2015-10-06 11:46:46 (GMT)
commit47a8d3de4e7b782b904446dcfe4897a631764254 (patch)
treec1541ee97ac9c28d4827cea430ca39735ffde4b9
parent4f8905d6ca19cb6b104135bd1870de307a294aff (diff)
downloadtk-47a8d3de4e7b782b904446dcfe4897a631764254.zip
tk-47a8d3de4e7b782b904446dcfe4897a631764254.tar.gz
tk-47a8d3de4e7b782b904446dcfe4897a631764254.tar.bz2
Fix [600b72bfbc789]: Unnecessary inclusion of tclInt.h in tkMain.c in Windows build
The only thing needed from tclInt.h is the definition of TclIntPlatStubs. Including just a tiny part of this struct is enough to make it compile, without the need for tclInt.h
-rw-r--r--generic/tkMain.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/generic/tkMain.c b/generic/tkMain.c
index f6f4013..1b21223 100644
--- a/generic/tkMain.c
+++ b/generic/tkMain.c
@@ -55,7 +55,16 @@ extern int TkCygwinMainEx(int, char **, Tcl_AppInitProc *, Tcl_Interp *);
* to strcmp here.
*/
#ifdef _WIN32
-# include "tclInt.h"
+/* Little hack to eliminate the need for "tclInt.h" here:
+ Just copy a small portion of TclIntPlatStubs, just
+ enough to make it work. See [600b72bfbc] */
+typedef struct {
+ int magic;
+ void *hooks;
+ void (*dummy[16]) (void); /* dummy entries 0-15, not used */
+ int (*tclpIsAtty) (int fd); /* 16 */
+} TclIntPlatStubs;
+extern const TclIntPlatStubs *tclIntPlatStubsPtr;
# include "tkWinInt.h"
#else
# define TCHAR char
@@ -108,9 +117,9 @@ static int WinIsTty(int fd) {
*/
#if !defined(STATIC_BUILD)
- if (tclStubsPtr->reserved9 && TclpIsAtty) {
+ if (tclStubsPtr->reserved9 && tclIntPlatStubsPtr->tclpIsAtty) {
/* We are running on Cygwin */
- return TclpIsAtty(fd);
+ return tclIntPlatStubsPtr->tclpIsAtty(fd);
}
#endif
handle = GetStdHandle(STD_INPUT_HANDLE + fd);