diff options
author | dgp <dgp@users.sourceforge.net> | 2007-09-17 14:58:03 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2007-09-17 14:58:03 (GMT) |
commit | d98de46cbf3d68ad1e6176baa680db013ca5a890 (patch) | |
tree | 92740e87730997e6b8a2ab7f1db5d6bb6b55a361 /generic/tkStubLib.c | |
parent | 9779d2ce0b98c4742ff649b1e6bc5c5037f52870 (diff) | |
download | tk-d98de46cbf3d68ad1e6176baa680db013ca5a890.zip tk-d98de46cbf3d68ad1e6176baa680db013ca5a890.tar.gz tk-d98de46cbf3d68ad1e6176baa680db013ca5a890.tar.bz2 |
* generic/tkConsole.c: Revised callers of Tcl_InitStubs() to account
* generic/tkMain.c: for restored compatible support for the call
* generic/tkWindow.c: Tcl_InitStubs(interp, TCL_VERSION, 1). Also
revised Tcl_PkgRequire() call for Tcl so that, for example, a Tk
library built against Tcl 8.5.1 headers will not refuse to [load]
into a Tcl 8.5.0 interpreter. [Tcl Bug 1578344].
* generic/tk.h: Revised Tk_InitStubs() to restore Tk 8.4
* generic/tkStubLib.c: source compatibility with callers of
* generic/tkWindow.c: Tk_InitStubs(interp, TK_VERSION, 1).
Diffstat (limited to 'generic/tkStubLib.c')
-rw-r--r-- | generic/tkStubLib.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/generic/tkStubLib.c b/generic/tkStubLib.c index 93033ae..6c884c5 100644 --- a/generic/tkStubLib.c +++ b/generic/tkStubLib.c @@ -10,7 +10,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkStubLib.c,v 1.15 2007/09/07 00:34:53 dgp Exp $ + * RCS: @(#) $Id: tkStubLib.c,v 1.16 2007/09/17 14:58:04 dgp Exp $ */ /* @@ -85,11 +85,29 @@ Tk_InitStubs( CONST char *actualVersion; TkStubs **stubsPtrPtr = &tkStubsPtr; /* squelch warning */ - actualVersion = Tcl_PkgRequireEx(interp, "Tk", version, exact, + actualVersion = Tcl_PkgRequireEx(interp, "Tk", version, 0, (ClientData *) stubsPtrPtr); if (!actualVersion) { return NULL; } + if (exact) { + CONST char *p = version; + int count = 0; + + while (*p) { + count += !isdigit(*p++); + } + if (count == 1) { + if (0 != strncmp(version, actualVersion, strlen(version))) { + return NULL; + } + } else { + actualVersion = Tcl_PkgRequireEx(interp, "Tk", version, 1, NULL); + if (actualVersion == NULL) { + return NULL; + } + } + } if (!tkStubsPtr) { Tcl_SetResult(interp, |