Fossil SCM

Add support for compiling a Tcl-enabled Fossil using the private stubs mechanism.

mistachkin 2013-09-16 22:51 trunk merge
Commit 955886f18c48c2e642c6fa4b3262368707797cd9
--- Makefile.in
+++ Makefile.in
@@ -42,10 +42,11 @@
4242
TCC += @EXTRA_CFLAGS@ @CPPFLAGS@ @CFLAGS@ -DHAVE_AUTOCONFIG_H
4343
INSTALLDIR = $(DESTDIR)@prefix@/bin
4444
USE_SYSTEM_SQLITE = @USE_SYSTEM_SQLITE@
4545
FOSSIL_ENABLE_TCL = @FOSSIL_ENABLE_TCL@
4646
FOSSIL_ENABLE_TCL_STUBS = @FOSSIL_ENABLE_TCL_STUBS@
47
+FOSSIL_ENABLE_TCL_PRIVATE_STUBS = @FOSSIL_ENABLE_TCL_PRIVATE_STUBS@
4748
4849
include $(SRCDIR)/main.mk
4950
5051
distclean: clean
5152
rm -f autoconfig.h config.log Makefile
5253
--- Makefile.in
+++ Makefile.in
@@ -42,10 +42,11 @@
42 TCC += @EXTRA_CFLAGS@ @CPPFLAGS@ @CFLAGS@ -DHAVE_AUTOCONFIG_H
43 INSTALLDIR = $(DESTDIR)@prefix@/bin
44 USE_SYSTEM_SQLITE = @USE_SYSTEM_SQLITE@
45 FOSSIL_ENABLE_TCL = @FOSSIL_ENABLE_TCL@
46 FOSSIL_ENABLE_TCL_STUBS = @FOSSIL_ENABLE_TCL_STUBS@
 
47
48 include $(SRCDIR)/main.mk
49
50 distclean: clean
51 rm -f autoconfig.h config.log Makefile
52
--- Makefile.in
+++ Makefile.in
@@ -42,10 +42,11 @@
42 TCC += @EXTRA_CFLAGS@ @CPPFLAGS@ @CFLAGS@ -DHAVE_AUTOCONFIG_H
43 INSTALLDIR = $(DESTDIR)@prefix@/bin
44 USE_SYSTEM_SQLITE = @USE_SYSTEM_SQLITE@
45 FOSSIL_ENABLE_TCL = @FOSSIL_ENABLE_TCL@
46 FOSSIL_ENABLE_TCL_STUBS = @FOSSIL_ENABLE_TCL_STUBS@
47 FOSSIL_ENABLE_TCL_PRIVATE_STUBS = @FOSSIL_ENABLE_TCL_PRIVATE_STUBS@
48
49 include $(SRCDIR)/main.mk
50
51 distclean: clean
52 rm -f autoconfig.h config.log Makefile
53
+21 -11
--- auto.def
+++ auto.def
@@ -5,11 +5,13 @@
55
options {
66
with-openssl:path|auto|none
77
=> {Look for openssl in the given path, or auto or none}
88
with-zlib:path => {Look for zlib in the given path}
99
with-tcl:path => {Enable Tcl integration, with Tcl in the specified path}
10
- with-tcl-stubs=0 => {Enable Tcl integration via stubs mechanism}
10
+ with-tcl-stubs=0 => {Enable Tcl integration via stubs library mechanism}
11
+ with-tcl-private-stubs=0
12
+ => {Enable Tcl integration via private stubs mechanism}
1113
internal-sqlite=1 => {Don't use the internal SQLite, use the system one}
1214
static=0 => {Link a static executable}
1315
lineedit=1 => {Disable line editing}
1416
fossil-debug=0 => {Build with fossil debugging enabled}
1517
json=0 => {Build with fossil JSON API enabled}
@@ -115,32 +117,40 @@
115117
}
116118
if {![info exists tclconfig(TCL_INCLUDE_SPEC)]} {
117119
user-error "Cannot find Tcl $msg"
118120
}
119121
set tclstubs [opt-bool with-tcl-stubs]
120
- if {$tclstubs && $tclconfig(TCL_SUPPORTS_STUBS)} {
122
+ set tclprivatestubs [opt-bool with-tcl-private-stubs]
123
+ if {$tclprivatestubs} {
124
+ define FOSSIL_ENABLE_TCL_PRIVATE_STUBS
125
+ define USE_TCL_STUBS
126
+ } elseif {$tclstubs && $tclconfig(TCL_SUPPORTS_STUBS)} {
121127
set libs "$tclconfig(TCL_STUB_LIB_SPEC)"
122128
define FOSSIL_ENABLE_TCL_STUBS
123129
define USE_TCL_STUBS
124130
} else {
125131
set libs "$tclconfig(TCL_LIB_SPEC) $tclconfig(TCL_LIBS)"
126132
}
127133
set cflags $tclconfig(TCL_INCLUDE_SPEC)
128
- cc-with [list -cflags $cflags -libs $libs] {
129
- if {$tclstubs} {
130
- if {![cc-check-functions Tcl_InitStubs]} {
131
- user-error "Cannot find a usable Tcl stubs library $msg"
132
- }
133
- } else {
134
- if {![cc-check-functions Tcl_CreateInterp]} {
135
- user-error "Cannot find a usable Tcl library $msg"
134
+ if {!$tclprivatestubs} {
135
+ cc-with [list -cflags $cflags -libs $libs] {
136
+ if {$tclstubs} {
137
+ if {![cc-check-functions Tcl_InitStubs]} {
138
+ user-error "Cannot find a usable Tcl stubs library $msg"
139
+ }
140
+ } else {
141
+ if {![cc-check-functions Tcl_CreateInterp]} {
142
+ user-error "Cannot find a usable Tcl library $msg"
143
+ }
136144
}
137145
}
138146
}
139147
set version $tclconfig(TCL_VERSION)$tclconfig(TCL_PATCH_LEVEL)
140148
msg-result "Found Tcl $version at $tclconfig(TCL_PREFIX)"
141
- define-append LIBS $libs
149
+ if {!$tclprivatestubs} {
150
+ define-append LIBS $libs
151
+ }
142152
define-append EXTRA_CFLAGS $cflags
143153
define-append EXTRA_LDFLAGS $tclconfig(TCL_LD_FLAGS)
144154
define FOSSIL_ENABLE_TCL
145155
}
146156
147157
148158
ADDED compat/tcl-8.6/generic/tcl.h
149159
ADDED compat/tcl-8.6/generic/tclDecls.h
150160
ADDED compat/tcl-8.6/generic/tclPlatDecls.h
--- auto.def
+++ auto.def
@@ -5,11 +5,13 @@
5 options {
6 with-openssl:path|auto|none
7 => {Look for openssl in the given path, or auto or none}
8 with-zlib:path => {Look for zlib in the given path}
9 with-tcl:path => {Enable Tcl integration, with Tcl in the specified path}
10 with-tcl-stubs=0 => {Enable Tcl integration via stubs mechanism}
 
 
11 internal-sqlite=1 => {Don't use the internal SQLite, use the system one}
12 static=0 => {Link a static executable}
13 lineedit=1 => {Disable line editing}
14 fossil-debug=0 => {Build with fossil debugging enabled}
15 json=0 => {Build with fossil JSON API enabled}
@@ -115,32 +117,40 @@
115 }
116 if {![info exists tclconfig(TCL_INCLUDE_SPEC)]} {
117 user-error "Cannot find Tcl $msg"
118 }
119 set tclstubs [opt-bool with-tcl-stubs]
120 if {$tclstubs && $tclconfig(TCL_SUPPORTS_STUBS)} {
 
 
 
 
121 set libs "$tclconfig(TCL_STUB_LIB_SPEC)"
122 define FOSSIL_ENABLE_TCL_STUBS
123 define USE_TCL_STUBS
124 } else {
125 set libs "$tclconfig(TCL_LIB_SPEC) $tclconfig(TCL_LIBS)"
126 }
127 set cflags $tclconfig(TCL_INCLUDE_SPEC)
128 cc-with [list -cflags $cflags -libs $libs] {
129 if {$tclstubs} {
130 if {![cc-check-functions Tcl_InitStubs]} {
131 user-error "Cannot find a usable Tcl stubs library $msg"
132 }
133 } else {
134 if {![cc-check-functions Tcl_CreateInterp]} {
135 user-error "Cannot find a usable Tcl library $msg"
 
 
136 }
137 }
138 }
139 set version $tclconfig(TCL_VERSION)$tclconfig(TCL_PATCH_LEVEL)
140 msg-result "Found Tcl $version at $tclconfig(TCL_PREFIX)"
141 define-append LIBS $libs
 
 
142 define-append EXTRA_CFLAGS $cflags
143 define-append EXTRA_LDFLAGS $tclconfig(TCL_LD_FLAGS)
144 define FOSSIL_ENABLE_TCL
145 }
146
147
148 DDED compat/tcl-8.6/generic/tcl.h
149 DDED compat/tcl-8.6/generic/tclDecls.h
150 DDED compat/tcl-8.6/generic/tclPlatDecls.h
--- auto.def
+++ auto.def
@@ -5,11 +5,13 @@
5 options {
6 with-openssl:path|auto|none
7 => {Look for openssl in the given path, or auto or none}
8 with-zlib:path => {Look for zlib in the given path}
9 with-tcl:path => {Enable Tcl integration, with Tcl in the specified path}
10 with-tcl-stubs=0 => {Enable Tcl integration via stubs library mechanism}
11 with-tcl-private-stubs=0
12 => {Enable Tcl integration via private stubs mechanism}
13 internal-sqlite=1 => {Don't use the internal SQLite, use the system one}
14 static=0 => {Link a static executable}
15 lineedit=1 => {Disable line editing}
16 fossil-debug=0 => {Build with fossil debugging enabled}
17 json=0 => {Build with fossil JSON API enabled}
@@ -115,32 +117,40 @@
117 }
118 if {![info exists tclconfig(TCL_INCLUDE_SPEC)]} {
119 user-error "Cannot find Tcl $msg"
120 }
121 set tclstubs [opt-bool with-tcl-stubs]
122 set tclprivatestubs [opt-bool with-tcl-private-stubs]
123 if {$tclprivatestubs} {
124 define FOSSIL_ENABLE_TCL_PRIVATE_STUBS
125 define USE_TCL_STUBS
126 } elseif {$tclstubs && $tclconfig(TCL_SUPPORTS_STUBS)} {
127 set libs "$tclconfig(TCL_STUB_LIB_SPEC)"
128 define FOSSIL_ENABLE_TCL_STUBS
129 define USE_TCL_STUBS
130 } else {
131 set libs "$tclconfig(TCL_LIB_SPEC) $tclconfig(TCL_LIBS)"
132 }
133 set cflags $tclconfig(TCL_INCLUDE_SPEC)
134 if {!$tclprivatestubs} {
135 cc-with [list -cflags $cflags -libs $libs] {
136 if {$tclstubs} {
137 if {![cc-check-functions Tcl_InitStubs]} {
138 user-error "Cannot find a usable Tcl stubs library $msg"
139 }
140 } else {
141 if {![cc-check-functions Tcl_CreateInterp]} {
142 user-error "Cannot find a usable Tcl library $msg"
143 }
144 }
145 }
146 }
147 set version $tclconfig(TCL_VERSION)$tclconfig(TCL_PATCH_LEVEL)
148 msg-result "Found Tcl $version at $tclconfig(TCL_PREFIX)"
149 if {!$tclprivatestubs} {
150 define-append LIBS $libs
151 }
152 define-append EXTRA_CFLAGS $cflags
153 define-append EXTRA_LDFLAGS $tclconfig(TCL_LD_FLAGS)
154 define FOSSIL_ENABLE_TCL
155 }
156
157
158 DDED compat/tcl-8.6/generic/tcl.h
159 DDED compat/tcl-8.6/generic/tclDecls.h
160 DDED compat/tcl-8.6/generic/tclPlatDecls.h
+21 -11
--- auto.def
+++ auto.def
@@ -5,11 +5,13 @@
55
options {
66
with-openssl:path|auto|none
77
=> {Look for openssl in the given path, or auto or none}
88
with-zlib:path => {Look for zlib in the given path}
99
with-tcl:path => {Enable Tcl integration, with Tcl in the specified path}
10
- with-tcl-stubs=0 => {Enable Tcl integration via stubs mechanism}
10
+ with-tcl-stubs=0 => {Enable Tcl integration via stubs library mechanism}
11
+ with-tcl-private-stubs=0
12
+ => {Enable Tcl integration via private stubs mechanism}
1113
internal-sqlite=1 => {Don't use the internal SQLite, use the system one}
1214
static=0 => {Link a static executable}
1315
lineedit=1 => {Disable line editing}
1416
fossil-debug=0 => {Build with fossil debugging enabled}
1517
json=0 => {Build with fossil JSON API enabled}
@@ -115,32 +117,40 @@
115117
}
116118
if {![info exists tclconfig(TCL_INCLUDE_SPEC)]} {
117119
user-error "Cannot find Tcl $msg"
118120
}
119121
set tclstubs [opt-bool with-tcl-stubs]
120
- if {$tclstubs && $tclconfig(TCL_SUPPORTS_STUBS)} {
122
+ set tclprivatestubs [opt-bool with-tcl-private-stubs]
123
+ if {$tclprivatestubs} {
124
+ define FOSSIL_ENABLE_TCL_PRIVATE_STUBS
125
+ define USE_TCL_STUBS
126
+ } elseif {$tclstubs && $tclconfig(TCL_SUPPORTS_STUBS)} {
121127
set libs "$tclconfig(TCL_STUB_LIB_SPEC)"
122128
define FOSSIL_ENABLE_TCL_STUBS
123129
define USE_TCL_STUBS
124130
} else {
125131
set libs "$tclconfig(TCL_LIB_SPEC) $tclconfig(TCL_LIBS)"
126132
}
127133
set cflags $tclconfig(TCL_INCLUDE_SPEC)
128
- cc-with [list -cflags $cflags -libs $libs] {
129
- if {$tclstubs} {
130
- if {![cc-check-functions Tcl_InitStubs]} {
131
- user-error "Cannot find a usable Tcl stubs library $msg"
132
- }
133
- } else {
134
- if {![cc-check-functions Tcl_CreateInterp]} {
135
- user-error "Cannot find a usable Tcl library $msg"
134
+ if {!$tclprivatestubs} {
135
+ cc-with [list -cflags $cflags -libs $libs] {
136
+ if {$tclstubs} {
137
+ if {![cc-check-functions Tcl_InitStubs]} {
138
+ user-error "Cannot find a usable Tcl stubs library $msg"
139
+ }
140
+ } else {
141
+ if {![cc-check-functions Tcl_CreateInterp]} {
142
+ user-error "Cannot find a usable Tcl library $msg"
143
+ }
136144
}
137145
}
138146
}
139147
set version $tclconfig(TCL_VERSION)$tclconfig(TCL_PATCH_LEVEL)
140148
msg-result "Found Tcl $version at $tclconfig(TCL_PREFIX)"
141
- define-append LIBS $libs
149
+ if {!$tclprivatestubs} {
150
+ define-append LIBS $libs
151
+ }
142152
define-append EXTRA_CFLAGS $cflags
143153
define-append EXTRA_LDFLAGS $tclconfig(TCL_LD_FLAGS)
144154
define FOSSIL_ENABLE_TCL
145155
}
146156
147157
148158
ADDED compat/tcl-8.6/generic/tcl.h
149159
ADDED compat/tcl-8.6/generic/tclDecls.h
150160
ADDED compat/tcl-8.6/generic/tclPlatDecls.h
--- auto.def
+++ auto.def
@@ -5,11 +5,13 @@
5 options {
6 with-openssl:path|auto|none
7 => {Look for openssl in the given path, or auto or none}
8 with-zlib:path => {Look for zlib in the given path}
9 with-tcl:path => {Enable Tcl integration, with Tcl in the specified path}
10 with-tcl-stubs=0 => {Enable Tcl integration via stubs mechanism}
 
 
11 internal-sqlite=1 => {Don't use the internal SQLite, use the system one}
12 static=0 => {Link a static executable}
13 lineedit=1 => {Disable line editing}
14 fossil-debug=0 => {Build with fossil debugging enabled}
15 json=0 => {Build with fossil JSON API enabled}
@@ -115,32 +117,40 @@
115 }
116 if {![info exists tclconfig(TCL_INCLUDE_SPEC)]} {
117 user-error "Cannot find Tcl $msg"
118 }
119 set tclstubs [opt-bool with-tcl-stubs]
120 if {$tclstubs && $tclconfig(TCL_SUPPORTS_STUBS)} {
 
 
 
 
121 set libs "$tclconfig(TCL_STUB_LIB_SPEC)"
122 define FOSSIL_ENABLE_TCL_STUBS
123 define USE_TCL_STUBS
124 } else {
125 set libs "$tclconfig(TCL_LIB_SPEC) $tclconfig(TCL_LIBS)"
126 }
127 set cflags $tclconfig(TCL_INCLUDE_SPEC)
128 cc-with [list -cflags $cflags -libs $libs] {
129 if {$tclstubs} {
130 if {![cc-check-functions Tcl_InitStubs]} {
131 user-error "Cannot find a usable Tcl stubs library $msg"
132 }
133 } else {
134 if {![cc-check-functions Tcl_CreateInterp]} {
135 user-error "Cannot find a usable Tcl library $msg"
 
 
136 }
137 }
138 }
139 set version $tclconfig(TCL_VERSION)$tclconfig(TCL_PATCH_LEVEL)
140 msg-result "Found Tcl $version at $tclconfig(TCL_PREFIX)"
141 define-append LIBS $libs
 
 
142 define-append EXTRA_CFLAGS $cflags
143 define-append EXTRA_LDFLAGS $tclconfig(TCL_LD_FLAGS)
144 define FOSSIL_ENABLE_TCL
145 }
146
147
148 DDED compat/tcl-8.6/generic/tcl.h
149 DDED compat/tcl-8.6/generic/tclDecls.h
150 DDED compat/tcl-8.6/generic/tclPlatDecls.h
--- auto.def
+++ auto.def
@@ -5,11 +5,13 @@
5 options {
6 with-openssl:path|auto|none
7 => {Look for openssl in the given path, or auto or none}
8 with-zlib:path => {Look for zlib in the given path}
9 with-tcl:path => {Enable Tcl integration, with Tcl in the specified path}
10 with-tcl-stubs=0 => {Enable Tcl integration via stubs library mechanism}
11 with-tcl-private-stubs=0
12 => {Enable Tcl integration via private stubs mechanism}
13 internal-sqlite=1 => {Don't use the internal SQLite, use the system one}
14 static=0 => {Link a static executable}
15 lineedit=1 => {Disable line editing}
16 fossil-debug=0 => {Build with fossil debugging enabled}
17 json=0 => {Build with fossil JSON API enabled}
@@ -115,32 +117,40 @@
117 }
118 if {![info exists tclconfig(TCL_INCLUDE_SPEC)]} {
119 user-error "Cannot find Tcl $msg"
120 }
121 set tclstubs [opt-bool with-tcl-stubs]
122 set tclprivatestubs [opt-bool with-tcl-private-stubs]
123 if {$tclprivatestubs} {
124 define FOSSIL_ENABLE_TCL_PRIVATE_STUBS
125 define USE_TCL_STUBS
126 } elseif {$tclstubs && $tclconfig(TCL_SUPPORTS_STUBS)} {
127 set libs "$tclconfig(TCL_STUB_LIB_SPEC)"
128 define FOSSIL_ENABLE_TCL_STUBS
129 define USE_TCL_STUBS
130 } else {
131 set libs "$tclconfig(TCL_LIB_SPEC) $tclconfig(TCL_LIBS)"
132 }
133 set cflags $tclconfig(TCL_INCLUDE_SPEC)
134 if {!$tclprivatestubs} {
135 cc-with [list -cflags $cflags -libs $libs] {
136 if {$tclstubs} {
137 if {![cc-check-functions Tcl_InitStubs]} {
138 user-error "Cannot find a usable Tcl stubs library $msg"
139 }
140 } else {
141 if {![cc-check-functions Tcl_CreateInterp]} {
142 user-error "Cannot find a usable Tcl library $msg"
143 }
144 }
145 }
146 }
147 set version $tclconfig(TCL_VERSION)$tclconfig(TCL_PATCH_LEVEL)
148 msg-result "Found Tcl $version at $tclconfig(TCL_PREFIX)"
149 if {!$tclprivatestubs} {
150 define-append LIBS $libs
151 }
152 define-append EXTRA_CFLAGS $cflags
153 define-append EXTRA_LDFLAGS $tclconfig(TCL_LD_FLAGS)
154 define FOSSIL_ENABLE_TCL
155 }
156
157
158 DDED compat/tcl-8.6/generic/tcl.h
159 DDED compat/tcl-8.6/generic/tclDecls.h
160 DDED compat/tcl-8.6/generic/tclPlatDecls.h
--- a/compat/tcl-8.6/generic/tcl.h
+++ b/compat/tcl-8.6/generic/tcl.h
@@ -0,0 +1,2664 @@
1
+/*
2
+ * tcl.h --
3
+ *
4
+ * This header file describes the externally-visible facilities of the
5
+ * Tcl interpreter.
6
+ *
7
+ * Copyright (c) 1987-1994 The Regents of the University of California.
8
+ * Copyright (c) 1993-1996 Lucent Technologies.
9
+ * Copyright (c) 1994-1998 Sun Microsystems, Inc.
10
+ * Copyright (c) 1998-2000 by Scriptics Corporation.
11
+ * Copyright (c) 2002 by Kevin B. Kenny. All rights reserved.
12
+ *
13
+ * See the file "license.terms" for information on usage and redistribution of
14
+ * this file, and for a DISCLAIMER OF ALL WARRANTIES.
15
+ */
16
+
17
+#ifndef _TCL
18
+#define _TCL
19
+
20
+/*
21
+ * For C++ compilers, use extern "C"
22
+ */
23
+
24
+#ifdef __cplusplus
25
+extern "C" {
26
+#endif
27
+
28
+/*
29
+ * The following defines are used to indicate the various release levels.
30
+ */
31
+
32
+#define TCL_ALPHA_RELEASE 0
33
+#define TCL_BETA_RELEASE 1
34
+#define TCL_FINAL_RELEASE 2
35
+
36
+/*
37
+ * When version numbers change here, must also go into the following files and
38
+ * update the version numbers:
39
+ *
40
+ * library/init.tcl (1 LOC patch)
41
+ * unix/configure.in (2 LOC Major, 2 LOC minor, 1 LOC patch)
42
+ * win/configure.in (as above)
43
+ * win/tcl.m4 (not patchlevel)
44
+ * win/makefile.bc (not patchlevel) 2 LOC
45
+ * README (sections 0 and 2, with and without separator)
46
+ * macosx/Tcl.pbproj/project.pbxproj (not patchlevel) 1 LOC
47
+ * macosx/Tcl.pbproj/default.pbxuser (not patchlevel) 1 LOC
48
+ * macosx/Tcl.xcode/project.pbxproj (not patchlevel) 2 LOC
49
+ * macosx/Tcl.xcode/default.pbxuser (not patchlevel) 1 LOC
50
+ * macosx/Tcl-Common.xcconfig (not patchlevel) 1 LOC
51
+ * win/README (not patchlevel) (sections 0 and 2)
52
+ * unix/tcl.spec (1 LOC patch)
53
+ * tools/tcl.hpj.in (not patchlevel, for windows installer)
54
+ */
55
+
56
+#define TCL_MAJOR_VERSION 8
57
+#define TCL_MINOR_VERSION 6
58
+#define TCL_RELEASE_LEVEL TCL_FINAL_RELEASE
59
+#define TCL_RELEASE_SERIAL 0
60
+
61
+#define TCL_VERSION "8.6"
62
+#define TCL_PATCH_LEVEL "8.6.0"
63
+
64
+
65
+/*
66
+ *----------------------------------------------------------------------------
67
+ * The following definitions set up the proper options for Windows compilers.
68
+ * We use this method because there is no autoconf equivalent.
69
+ */
70
+
71
+#ifndef __WIN32__
72
+# if defined(_WIN32) || defined(WIN32) || defined(__MINGW32__) || defined(__BORLANDC__) || (defined(__WATCOMC__) && defined(__WINDOWS_386__))
73
+# define __WIN32__
74
+# ifndef WIN32
75
+# define WIN32
76
+# endif
77
+# ifndef _WIN32
78
+# define _WIN32
79
+# endif
80
+# endif
81
+#endif
82
+
83
+/*
84
+ * STRICT: See MSDN Article Q83456
85
+ */
86
+
87
+#ifdef __WIN32__
88
+# ifndef STRICT
89
+# define STRICT
90
+# endif
91
+#endif /* __WIN32__ */
92
+
93
+/*
94
+ * Utility macros: STRINGIFY takes an argument and wraps it in "" (double
95
+ * quotation marks), JOIN joins two arguments.
96
+ */
97
+
98
+#ifndef STRINGIFY
99
+# define STRINGIFY(x) STRINGIFY1(x)
100
+# define STRINGIFY1(x) #x
101
+#endif
102
+#ifndef JOIN
103
+# define JOIN(a,b) JOIN1(a,b)
104
+# define JOIN1(a,b) a##b
105
+#endif
106
+
107
+/*
108
+ * A special definition used to allow this header file to be included from
109
+ * windows resource files so that they can obtain version information.
110
+ * RC_INVOKED is defined by default by the windows RC tool.
111
+ *
112
+ * Resource compilers don't like all the C stuff, like typedefs and function
113
+ * declarations, that occur below, so block them out.
114
+ */
115
+
116
+#ifndef RC_INVOKED
117
+
118
+/*
119
+ * Special macro to define mutexes, that doesn't do anything if we are not
120
+ * using threads.
121
+ */
122
+
123
+#ifdef TCL_THREADS
124
+#define TCL_DECLARE_MUTEX(name) static Tcl_Mutex name;
125
+#else
126
+#define TCL_DECLARE_MUTEX(name)
127
+#endif
128
+
129
+/*
130
+ * Tcl's public routine Tcl_FSSeek() uses the values SEEK_SET, SEEK_CUR, and
131
+ * SEEK_END, all #define'd by stdio.h .
132
+ *
133
+ * Also, many extensions need stdio.h, and they've grown accustomed to tcl.h
134
+ * providing it for them rather than #include-ing it themselves as they
135
+ * should, so also for their sake, we keep the #include to be consistent with
136
+ * prior Tcl releases.
137
+ */
138
+
139
+#include <stdio.h>
140
+
141
+/*
142
+ *----------------------------------------------------------------------------
143
+ * Support for functions with a variable number of arguments.
144
+ *
145
+ * The following TCL_VARARGS* macros are to support old extensions
146
+ * written for older versions of Tcl where the macros permitted
147
+ * support for the varargs.h system as well as stdarg.h .
148
+ *
149
+ * New code should just directly be written to use stdarg.h conventions.
150
+ */
151
+
152
+#include <stdarg.h>
153
+#ifndef TCL_NO_DEPRECATED
154
+# define TCL_VARARGS(type, name) (type name, ...)
155
+# define TCL_VARARGS_DEF(type, name) (type name, ...)
156
+# define TCL_VARARGS_START(type, name, list) (va_start(list, name), name)
157
+#endif
158
+#if defined(__GNUC__) && (__GNUC__ > 2)
159
+# define TCL_FORMAT_PRINTF(a,b) __attribute__ ((__format__ (__printf__, a, b)))
160
+#else
161
+# define TCL_FORMAT_PRINTF(a,b)
162
+#endif
163
+
164
+/*
165
+ * Allow a part of Tcl's API to be explicitly marked as deprecated.
166
+ *
167
+ * Used to make TIP 330/336 generate moans even if people use the
168
+ * compatibility macros. Change your code, guys! We won't support you forever.
169
+ */
170
+
171
+#if defined(__GNUC__) && ((__GNUC__ >= 4) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1)))
172
+# if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC__MINOR__ >= 5))
173
+# define TCL_DEPRECATED_API(msg) __attribute__ ((__deprecated__ (msg)))
174
+# else
175
+# define TCL_DEPRECATED_API(msg) __attribute__ ((__deprecated__))
176
+# endif
177
+#else
178
+# define TCL_DEPRECATED_API(msg) /* nothing portable */
179
+#endif
180
+
181
+/*
182
+ *----------------------------------------------------------------------------
183
+ * Macros used to declare a function to be exported by a DLL. Used by Windows,
184
+ * maps to no-op declarations on non-Windows systems. The default build on
185
+ * windows is for a DLL, which causes the DLLIMPORT and DLLEXPORT macros to be
186
+ * nonempty. To build a static library, the macro STATIC_BUILD should be
187
+ * defined.
188
+ *
189
+ * Note: when building static but linking dynamically to MSVCRT we must still
190
+ * correctly decorate the C library imported function. Use CRTIMPORT
191
+ * for this purpose. _DLL is defined by the compiler when linking to
192
+ * MSVCRT.
193
+ */
194
+
195
+#if (defined(__WIN32__) && (defined(_MSC_VER) || (__BORLANDC__ >= 0x0550) || defined(__LCC__) || defined(__WATCOMC__) || (defined(__GNUC__) && defined(__declspec))))
196
+# define HAVE_DECLSPEC 1
197
+# ifdef STATIC_BUILD
198
+# define DLLIMPORT
199
+# define DLLEXPORT
200
+# ifdef _DLL
201
+# define CRTIMPORT __declspec(dllimport)
202
+# else
203
+# define CRTIMPORT
204
+# endif
205
+# else
206
+# define DLLIMPORT __declspec(dllimport)
207
+# define DLLEXPORT __declspec(dllexport)
208
+# define CRTIMPORT __declspec(dllimport)
209
+# endif
210
+#else
211
+# define DLLIMPORT
212
+# if defined(__GNUC__) && __GNUC__ > 3
213
+# define DLLEXPORT __attribute__ ((visibility("default")))
214
+# else
215
+# define DLLEXPORT
216
+# endif
217
+# define CRTIMPORT
218
+#endif
219
+
220
+/*
221
+ * These macros are used to control whether functions are being declared for
222
+ * import or export. If a function is being declared while it is being built
223
+ * to be included in a shared library, then it should have the DLLEXPORT
224
+ * storage class. If is being declared for use by a module that is going to
225
+ * link against the shared library, then it should have the DLLIMPORT storage
226
+ * class. If the symbol is beind declared for a static build or for use from a
227
+ * stub library, then the storage class should be empty.
228
+ *
229
+ * The convention is that a macro called BUILD_xxxx, where xxxx is the name of
230
+ * a library we are building, is set on the compile line for sources that are
231
+ * to be placed in the library. When this macro is set, the storage class will
232
+ * be set to DLLEXPORT. At the end of the header file, the storage class will
233
+ * be reset to DLLIMPORT.
234
+ */
235
+
236
+#undef TCL_STORAGE_CLASS
237
+#ifdef BUILD_tcl
238
+# define TCL_STORAGE_CLASS DLLEXPORT
239
+#else
240
+# ifdef USE_TCL_STUBS
241
+# define TCL_STORAGE_CLASS
242
+# else
243
+# define TCL_STORAGE_CLASS DLLIMPORT
244
+# endif
245
+#endif
246
+
247
+/*
248
+ * The following _ANSI_ARGS_ macro is to support old extensions
249
+ * written for older versions of Tcl where it permitted support
250
+ * for compilers written in the pre-prototype era of C.
251
+ *
252
+ * New code should use prototypes.
253
+ */
254
+
255
+#ifndef TCL_NO_DEPRECATED
256
+# undef _ANSI_ARGS_
257
+# define _ANSI_ARGS_(x) x
258
+#endif
259
+
260
+/*
261
+ * Definitions that allow this header file to be used either with or without
262
+ * ANSI C features.
263
+ */
264
+
265
+#ifndef INLINE
266
+# define INLINE
267
+#endif
268
+
269
+#ifdef NO_CONST
270
+# ifndef const
271
+# define const
272
+# endif
273
+#endif
274
+#ifndef CONST
275
+# define CONST const
276
+#endif
277
+
278
+#ifdef USE_NON_CONST
279
+# ifdef USE_COMPAT_CONST
280
+# error define at most one of USE_NON_CONST and USE_COMPAT_CONST
281
+# endif
282
+# define CONST84
283
+# define CONST84_RETURN
284
+#else
285
+# ifdef USE_COMPAT_CONST
286
+# define CONST84
287
+# define CONST84_RETURN const
288
+# else
289
+# define CONST84 const
290
+# define CONST84_RETURN const
291
+# endif
292
+#endif
293
+
294
+#ifndef CONST86
295
+# define CONST86 CONST84
296
+#endif
297
+
298
+/*
299
+ * Make sure EXTERN isn't defined elsewhere.
300
+ */
301
+
302
+#ifdef EXTERN
303
+# undef EXTERN
304
+#endif /* EXTERN */
305
+
306
+#ifdef __cplusplus
307
+# define EXTERN extern "C" TCL_STORAGE_CLASS
308
+#else
309
+# define EXTERN extern TCL_STORAGE_CLASS
310
+#endif
311
+
312
+/*
313
+ *----------------------------------------------------------------------------
314
+ * The following code is copied from winnt.h. If we don't replicate it here,
315
+ * then <windows.h> can't be included after tcl.h, since tcl.h also defines
316
+ * VOID. This block is skipped under Cygwin and Mingw.
317
+ */
318
+
319
+#if defined(__WIN32__) && !defined(HAVE_WINNT_IGNORE_VOID)
320
+#ifndef VOID
321
+#define VOID void
322
+typedef char CHAR;
323
+typedef short SHORT;
324
+typedef long LONG;
325
+#endif
326
+#endif /* __WIN32__ && !HAVE_WINNT_IGNORE_VOID */
327
+
328
+/*
329
+ * Macro to use instead of "void" for arguments that must have type "void *"
330
+ * in ANSI C; maps them to type "char *" in non-ANSI systems.
331
+ */
332
+
333
+#ifndef NO_VOID
334
+# define VOID void
335
+#else
336
+# define VOID char
337
+#endif
338
+
339
+/*
340
+ * Miscellaneous declarations.
341
+ */
342
+
343
+#ifndef _CLIENTDATA
344
+# ifndef NO_VOID
345
+ typedef void *ClientData;
346
+# else
347
+ typedef int *ClientData;
348
+# endif
349
+# define _CLIENTDATA
350
+#endif
351
+
352
+/*
353
+ * Darwin specific configure overrides (to support fat compiles, where
354
+ * configure runs only once for multiple architectures):
355
+ */
356
+
357
+#ifdef __APPLE__
358
+# ifdef __LP64__
359
+# undef TCL_WIDE_INT_TYPE
360
+# define TCL_WIDE_INT_IS_LONG 1
361
+# define TCL_CFG_DO64BIT 1
362
+# else /* !__LP64__ */
363
+# define TCL_WIDE_INT_TYPE long long
364
+# undef TCL_WIDE_INT_IS_LONG
365
+# undef TCL_CFG_DO64BIT
366
+# endif /* __LP64__ */
367
+# undef HAVE_STRUCT_STAT64
368
+#endif /* __APPLE__ */
369
+
370
+/*
371
+ * Define Tcl_WideInt to be a type that is (at least) 64-bits wide, and define
372
+ * Tcl_WideUInt to be the unsigned variant of that type (assuming that where
373
+ * we have one, we can have the other.)
374
+ *
375
+ * Also defines the following macros:
376
+ * TCL_WIDE_INT_IS_LONG - if wide ints are really longs (i.e. we're on a real
377
+ * 64-bit system.)
378
+ * Tcl_WideAsLong - forgetful converter from wideInt to long.
379
+ * Tcl_LongAsWide - sign-extending converter from long to wideInt.
380
+ * Tcl_WideAsDouble - converter from wideInt to double.
381
+ * Tcl_DoubleAsWide - converter from double to wideInt.
382
+ *
383
+ * The following invariant should hold for any long value 'longVal':
384
+ * longVal == Tcl_WideAsLong(Tcl_LongAsWide(longVal))
385
+ *
386
+ * Note on converting between Tcl_WideInt and strings. This implementation (in
387
+ * tclObj.c) depends on the function
388
+ * sprintf(...,"%" TCL_LL_MODIFIER "d",...).
389
+ */
390
+
391
+#if !defined(TCL_WIDE_INT_TYPE)&&!defined(TCL_WIDE_INT_IS_LONG)
392
+# if defined(__WIN32__)
393
+# define TCL_WIDE_INT_TYPE __int64
394
+# ifdef __BORLANDC__
395
+# define TCL_LL_MODIFIER "L"
396
+# else /* __BORLANDC__ */
397
+# define TCL_LL_MODIFIER "I64"
398
+# endif /* __BORLANDC__ */
399
+# elif defined(__GNUC__)
400
+# define TCL_WIDE_INT_TYPE long long
401
+# define TCL_LL_MODIFIER "ll"
402
+# else /* ! __WIN32__ && ! __GNUC__ */
403
+/*
404
+ * Don't know what platform it is and configure hasn't discovered what is
405
+ * going on for us. Try to guess...
406
+ */
407
+# ifdef NO_LIMITS_H
408
+# error please define either TCL_WIDE_INT_TYPE or TCL_WIDE_INT_IS_LONG
409
+# else /* !NO_LIMITS_H */
410
+# include <limits.h>
411
+# if (INT_MAX < LONG_MAX)
412
+# define TCL_WIDE_INT_IS_LONG 1
413
+# else
414
+# define TCL_WIDE_INT_TYPE long long
415
+# endif
416
+# endif /* NO_LIMITS_H */
417
+# endif /* __WIN32__ */
418
+#endif /* !TCL_WIDE_INT_TYPE & !TCL_WIDE_INT_IS_LONG */
419
+#ifdef TCL_WIDE_INT_IS_LONG
420
+# undef TCL_WIDE_INT_TYPE
421
+# define TCL_WIDE_INT_TYPE long
422
+#endif /* TCL_WIDE_INT_IS_LONG */
423
+
424
+typedef TCL_WIDE_INT_TYPE Tcl_WideInt;
425
+typedef unsigned TCL_WIDE_INT_TYPE Tcl_WideUInt;
426
+
427
+#ifdef TCL_WIDE_INT_IS_LONG
428
+# define Tcl_WideAsLong(val) ((long)(val))
429
+# define Tcl_LongAsWide(val) ((long)(val))
430
+# define Tcl_WideAsDouble(val) ((double)((long)(val)))
431
+# define Tcl_DoubleAsWide(val) ((long)((double)(val)))
432
+# ifndef TCL_LL_MODIFIER
433
+# define TCL_LL_MODIFIER "l"
434
+# endif /* !TCL_LL_MODIFIER */
435
+#else /* TCL_WIDE_INT_IS_LONG */
436
+/*
437
+ * The next short section of defines are only done when not running on Windows
438
+ * or some other strange platform.
439
+ */
440
+# ifndef TCL_LL_MODIFIER
441
+# define TCL_LL_MODIFIER "ll"
442
+# endif /* !TCL_LL_MODIFIER */
443
+# define Tcl_WideAsLong(val) ((long)((Tcl_WideInt)(val)))
444
+# define Tcl_LongAsWide(val) ((Tcl_WideInt)((long)(val)))
445
+# define Tcl_WideAsDouble(val) ((double)((Tcl_WideInt)(val)))
446
+# define Tcl_DoubleAsWide(val) ((Tcl_WideInt)((double)(val)))
447
+#endif /* TCL_WIDE_INT_IS_LONG */
448
+
449
+#if defined(__WIN32__)
450
+# ifdef __BORLANDC__
451
+ typedef struct stati64 Tcl_StatBuf;
452
+# elif defined(_WIN64)
453
+ typedef struct __stat64 Tcl_StatBuf;
454
+# elif (defined(_MSC_VER) && (_MSC_VER < 1400)) || defined(_USE_32BIT_TIME_T)
455
+ typedef struct _stati64 Tcl_StatBuf;
456
+# else
457
+ typedef struct _stat32i64 Tcl_StatBuf;
458
+# endif /* _MSC_VER < 1400 */
459
+#elif defined(__CYGWIN__)
460
+ typedef struct _stat32i64 {
461
+ dev_t st_dev;
462
+ unsigned short st_ino;
463
+ unsigned short st_mode;
464
+ short st_nlink;
465
+ short st_uid;
466
+ short st_gid;
467
+ /* Here is a 2-byte gap */
468
+ dev_t st_rdev;
469
+ /* Here is a 4-byte gap */
470
+ long long st_size;
471
+ struct {long tv_sec;} st_atim;
472
+ struct {long tv_sec;} st_mtim;
473
+ struct {long tv_sec;} st_ctim;
474
+ /* Here is a 4-byte gap */
475
+ } Tcl_StatBuf;
476
+#elif defined(HAVE_STRUCT_STAT64)
477
+ typedef struct stat64 Tcl_StatBuf;
478
+#else
479
+ typedef struct stat Tcl_StatBuf;
480
+#endif
481
+
482
+
483
+/*
484
+ *----------------------------------------------------------------------------
485
+ * Data structures defined opaquely in this module. The definitions below just
486
+ * provide dummy types. A few fields are made visible in Tcl_Interp
487
+ * structures, namely those used for returning a string result from commands.
488
+ * Direct access to the result field is discouraged in Tcl 8.0. The
489
+ * interpreter result is either an object or a string, and the two values are
490
+ * kept consistent unless some C code sets interp->result directly.
491
+ * Programmers should use either the function Tcl_GetObjResult() or
492
+ * Tcl_GetStringResult() to read the interpreter's result. See the SetResult
493
+ * man page for details.
494
+ *
495
+ * Note: any change to the Tcl_Interp definition below must be mirrored in the
496
+ * "real" definition in tclInt.h.
497
+ *
498
+ * Note: Tcl_ObjCmdProc functions do not directly set result and freeProc.
499
+ * Instead, they set a Tcl_Obj member in the "real" structure that can be
500
+ * accessed with Tcl_GetObjResult() and Tcl_SetObjResult().
501
+ */
502
+
503
+typedef struct Tcl_Interp
504
+#ifndef TCL_NO_DEPRECATED
505
+{
506
+ /* TIP #330: Strongly discourage extensions from using the string
507
+ * result. */
508
+#ifdef USE_INTERP_RESULT
509
+ char *result TCL_DEPRECATED_API("use Tcl_GetResult/Tcl_SetResult");
510
+ /* If the last command returned a string
511
+ * result, this points to it. */
512
+ void (*freeProc) (char *blockPtr)
513
+ TCL_DEPRECATED_API("use Tcl_GetResult/Tcl_SetResult");
514
+ /* Zero means the string result is statically
515
+ * allocated. TCL_DYNAMIC means it was
516
+ * allocated with ckalloc and should be freed
517
+ * with ckfree. Other values give the address
518
+ * of function to invoke to free the result.
519
+ * Tcl_Eval must free it before executing next
520
+ * command. */
521
+#else
522
+ char *resultDontUse; /* Don't use in extensions! */
523
+ void (*freeProcDontUse) (char *); /* Don't use in extensions! */
524
+#endif
525
+#ifdef USE_INTERP_ERRORLINE
526
+ int errorLine TCL_DEPRECATED_API("use Tcl_GetErrorLine/Tcl_SetErrorLine");
527
+ /* When TCL_ERROR is returned, this gives the
528
+ * line number within the command where the
529
+ * error occurred (1 if first line). */
530
+#else
531
+ int errorLineDontUse; /* Don't use in extensions! */
532
+#endif
533
+}
534
+#endif /* TCL_NO_DEPRECATED */
535
+Tcl_Interp;
536
+
537
+typedef struct Tcl_AsyncHandler_ *Tcl_AsyncHandler;
538
+typedef struct Tcl_Channel_ *Tcl_Channel;
539
+typedef struct Tcl_ChannelTypeVersion_ *Tcl_ChannelTypeVersion;
540
+typedef struct Tcl_Command_ *Tcl_Command;
541
+typedef struct Tcl_Condition_ *Tcl_Condition;
542
+typedef struct Tcl_Dict_ *Tcl_Dict;
543
+typedef struct Tcl_EncodingState_ *Tcl_EncodingState;
544
+typedef struct Tcl_Encoding_ *Tcl_Encoding;
545
+typedef struct Tcl_Event Tcl_Event;
546
+typedef struct Tcl_InterpState_ *Tcl_InterpState;
547
+typedef struct Tcl_LoadHandle_ *Tcl_LoadHandle;
548
+typedef struct Tcl_Mutex_ *Tcl_Mutex;
549
+typedef struct Tcl_Pid_ *Tcl_Pid;
550
+typedef struct Tcl_RegExp_ *Tcl_RegExp;
551
+typedef struct Tcl_ThreadDataKey_ *Tcl_ThreadDataKey;
552
+typedef struct Tcl_ThreadId_ *Tcl_ThreadId;
553
+typedef struct Tcl_TimerToken_ *Tcl_TimerToken;
554
+typedef struct Tcl_Trace_ *Tcl_Trace;
555
+typedef struct Tcl_Var_ *Tcl_Var;
556
+typedef struct Tcl_ZLibStream_ *Tcl_ZlibStream;
557
+
558
+/*
559
+ *----------------------------------------------------------------------------
560
+ * Definition of the interface to functions implementing threads. A function
561
+ * following this definition is given to each call of 'Tcl_CreateThread' and
562
+ * will be called as the main fuction of the new thread created by that call.
563
+ */
564
+
565
+#if defined __WIN32__
566
+typedef unsigned (__stdcall Tcl_ThreadCreateProc) (ClientData clientData);
567
+#else
568
+typedef void (Tcl_ThreadCreateProc) (ClientData clientData);
569
+#endif
570
+
571
+/*
572
+ * Threading function return types used for abstracting away platform
573
+ * differences when writing a Tcl_ThreadCreateProc. See the NewThread function
574
+ * in generic/tclThreadTest.c for it's usage.
575
+ */
576
+
577
+#if defined __WIN32__
578
+# define Tcl_ThreadCreateType unsigned __stdcall
579
+# define TCL_THREAD_CREATE_RETURN return 0
580
+#else
581
+# define Tcl_ThreadCreateType void
582
+# define TCL_THREAD_CREATE_RETURN
583
+#endif
584
+
585
+/*
586
+ * Definition of values for default stacksize and the possible flags to be
587
+ * given to Tcl_CreateThread.
588
+ */
589
+
590
+#define TCL_THREAD_STACK_DEFAULT (0) /* Use default size for stack. */
591
+#define TCL_THREAD_NOFLAGS (0000) /* Standard flags, default
592
+ * behaviour. */
593
+#define TCL_THREAD_JOINABLE (0001) /* Mark the thread as joinable. */
594
+
595
+/*
596
+ * Flag values passed to Tcl_StringCaseMatch.
597
+ */
598
+
599
+#define TCL_MATCH_NOCASE (1<<0)
600
+
601
+/*
602
+ * Flag values passed to Tcl_GetRegExpFromObj.
603
+ */
604
+
605
+#define TCL_REG_BASIC 000000 /* BREs (convenience). */
606
+#define TCL_REG_EXTENDED 000001 /* EREs. */
607
+#define TCL_REG_ADVF 000002 /* Advanced features in EREs. */
608
+#define TCL_REG_ADVANCED 000003 /* AREs (which are also EREs). */
609
+#define TCL_REG_QUOTE 000004 /* No special characters, none. */
610
+#define TCL_REG_NOCASE 000010 /* Ignore case. */
611
+#define TCL_REG_NOSUB 000020 /* Don't care about subexpressions. */
612
+#define TCL_REG_EXPANDED 000040 /* Expanded format, white space &
613
+ * comments. */
614
+#define TCL_REG_NLSTOP 000100 /* \n doesn't match . or [^ ] */
615
+#define TCL_REG_NLANCH 000200 /* ^ matches after \n, $ before. */
616
+#define TCL_REG_NEWLINE 000300 /* Newlines are line terminators. */
617
+#define TCL_REG_CANMATCH 001000 /* Report details on partial/limited
618
+ * matches. */
619
+
620
+/*
621
+ * Flags values passed to Tcl_RegExpExecObj.
622
+ */
623
+
624
+#define TCL_REG_NOTBOL 0001 /* Beginning of string does not match ^. */
625
+#define TCL_REG_NOTEOL 0002 /* End of string does not match $. */
626
+
627
+/*
628
+ * Structures filled in by Tcl_RegExpInfo. Note that all offset values are
629
+ * relative to the start of the match string, not the beginning of the entire
630
+ * string.
631
+ */
632
+
633
+typedef struct Tcl_RegExpIndices {
634
+ long start; /* Character offset of first character in
635
+ * match. */
636
+ long end; /* Character offset of first character after
637
+ * the match. */
638
+} Tcl_RegExpIndices;
639
+
640
+typedef struct Tcl_RegExpInfo {
641
+ int nsubs; /* Number of subexpressions in the compiled
642
+ * expression. */
643
+ Tcl_RegExpIndices *matches; /* Array of nsubs match offset pairs. */
644
+ long extendStart; /* The offset at which a subsequent match
645
+ * might begin. */
646
+ long reserved; /* Reserved for later use. */
647
+} Tcl_RegExpInfo;
648
+
649
+/*
650
+ * Picky compilers complain if this typdef doesn't appear before the struct's
651
+ * reference in tclDecls.h.
652
+ */
653
+
654
+typedef Tcl_StatBuf *Tcl_Stat_;
655
+typedef struct stat *Tcl_OldStat_;
656
+
657
+/*
658
+ *----------------------------------------------------------------------------
659
+ * When a TCL command returns, the interpreter contains a result from the
660
+ * command. Programmers are strongly encouraged to use one of the functions
661
+ * Tcl_GetObjResult() or Tcl_GetStringResult() to read the interpreter's
662
+ * result. See the SetResult man page for details. Besides this result, the
663
+ * command function returns an integer code, which is one of the following:
664
+ *
665
+ * TCL_OK Command completed normally; the interpreter's result
666
+ * contains the command's result.
667
+ * TCL_ERROR The command couldn't be completed successfully; the
668
+ * interpreter's result describes what went wrong.
669
+ * TCL_RETURN The command requests that the current function return;
670
+ * the interpreter's result contains the function's
671
+ * return value.
672
+ * TCL_BREAK The command requests that the innermost loop be
673
+ * exited; the interpreter's result is meaningless.
674
+ * TCL_CONTINUE Go on to the next iteration of the current loop; the
675
+ * interpreter's result is meaningless.
676
+ */
677
+
678
+#define TCL_OK 0
679
+#define TCL_ERROR 1
680
+#define TCL_RETURN 2
681
+#define TCL_BREAK 3
682
+#define TCL_CONTINUE 4
683
+
684
+#define TCL_RESULT_SIZE 200
685
+
686
+/*
687
+ *----------------------------------------------------------------------------
688
+ * Flags to control what substitutions are performed by Tcl_SubstObj():
689
+ */
690
+
691
+#define TCL_SUBST_COMMANDS 001
692
+#define TCL_SUBST_VARIABLES 002
693
+#define TCL_SUBST_BACKSLASHES 004
694
+#define TCL_SUBST_ALL 007
695
+
696
+/*
697
+ * Argument descriptors for math function callbacks in expressions:
698
+ */
699
+
700
+typedef enum {
701
+ TCL_INT, TCL_DOUBLE, TCL_EITHER, TCL_WIDE_INT
702
+} Tcl_ValueType;
703
+
704
+typedef struct Tcl_Value {
705
+ Tcl_ValueType type; /* Indicates intValue or doubleValue is valid,
706
+ * or both. */
707
+ long intValue; /* Integer value. */
708
+ double doubleValue; /* Double-precision floating value. */
709
+ Tcl_WideInt wideValue; /* Wide (min. 64-bit) integer value. */
710
+} Tcl_Value;
711
+
712
+/*
713
+ * Forward declaration of Tcl_Obj to prevent an error when the forward
714
+ * reference to Tcl_Obj is encountered in the function types declared below.
715
+ */
716
+
717
+struct Tcl_Obj;
718
+
719
+/*
720
+ *----------------------------------------------------------------------------
721
+ * Function types defined by Tcl:
722
+ */
723
+
724
+typedef int (Tcl_AppInitProc) (Tcl_Interp *interp);
725
+typedef int (Tcl_AsyncProc) (ClientData clientData, Tcl_Interp *interp,
726
+ int code);
727
+typedef void (Tcl_ChannelProc) (ClientData clientData, int mask);
728
+typedef void (Tcl_CloseProc) (ClientData data);
729
+typedef void (Tcl_CmdDeleteProc) (ClientData clientData);
730
+typedef int (Tcl_CmdProc) (ClientData clientData, Tcl_Interp *interp,
731
+ int argc, CONST84 char *argv[]);
732
+typedef void (Tcl_CmdTraceProc) (ClientData clientData, Tcl_Interp *interp,
733
+ int level, char *command, Tcl_CmdProc *proc,
734
+ ClientData cmdClientData, int argc, CONST84 char *argv[]);
735
+typedef int (Tcl_CmdObjTraceProc) (ClientData clientData, Tcl_Interp *interp,
736
+ int level, const char *command, Tcl_Command commandInfo, int objc,
737
+ struct Tcl_Obj *const *objv);
738
+typedef void (Tcl_CmdObjTraceDeleteProc) (ClientData clientData);
739
+typedef void (Tcl_DupInternalRepProc) (struct Tcl_Obj *srcPtr,
740
+ struct Tcl_Obj *dupPtr);
741
+typedef int (Tcl_EncodingConvertProc) (ClientData clientData, const char *src,
742
+ int srcLen, int flags, Tcl_EncodingState *statePtr, char *dst,
743
+ int dstLen, int *srcReadPtr, int *dstWrotePtr, int *dstCharsPtr);
744
+typedef void (Tcl_EncodingFreeProc) (ClientData clientData);
745
+typedef int (Tcl_EventProc) (Tcl_Event *evPtr, int flags);
746
+typedef void (Tcl_EventCheckProc) (ClientData clientData, int flags);
747
+typedef int (Tcl_EventDeleteProc) (Tcl_Event *evPtr, ClientData clientData);
748
+typedef void (Tcl_EventSetupProc) (ClientData clientData, int flags);
749
+typedef void (Tcl_ExitProc) (ClientData clientData);
750
+typedef void (Tcl_FileProc) (ClientData clientData, int mask);
751
+typedef void (Tcl_FileFreeProc) (ClientData clientData);
752
+typedef void (Tcl_FreeInternalRepProc) (struct Tcl_Obj *objPtr);
753
+typedef void (Tcl_FreeProc) (char *blockPtr);
754
+typedef void (Tcl_IdleProc) (ClientData clientData);
755
+typedef void (Tcl_InterpDeleteProc) (ClientData clientData,
756
+ Tcl_Interp *interp);
757
+typedef int (Tcl_MathProc) (ClientData clientData, Tcl_Interp *interp,
758
+ Tcl_Value *args, Tcl_Value *resultPtr);
759
+typedef void (Tcl_NamespaceDeleteProc) (ClientData clientData);
760
+typedef int (Tcl_ObjCmdProc) (ClientData clientData, Tcl_Interp *interp,
761
+ int objc, struct Tcl_Obj *const *objv);
762
+typedef int (Tcl_PackageInitProc) (Tcl_Interp *interp);
763
+typedef int (Tcl_PackageUnloadProc) (Tcl_Interp *interp, int flags);
764
+typedef void (Tcl_PanicProc) (const char *format, ...);
765
+typedef void (Tcl_TcpAcceptProc) (ClientData callbackData, Tcl_Channel chan,
766
+ char *address, int port);
767
+typedef void (Tcl_TimerProc) (ClientData clientData);
768
+typedef int (Tcl_SetFromAnyProc) (Tcl_Interp *interp, struct Tcl_Obj *objPtr);
769
+typedef void (Tcl_UpdateStringProc) (struct Tcl_Obj *objPtr);
770
+typedef char * (Tcl_VarTraceProc) (ClientData clientData, Tcl_Interp *interp,
771
+ CONST84 char *part1, CONST84 char *part2, int flags);
772
+typedef void (Tcl_CommandTraceProc) (ClientData clientData, Tcl_Interp *interp,
773
+ const char *oldName, const char *newName, int flags);
774
+typedef void (Tcl_CreateFileHandlerProc) (int fd, int mask, Tcl_FileProc *proc,
775
+ ClientData clientData);
776
+typedef void (Tcl_DeleteFileHandlerProc) (int fd);
777
+typedef void (Tcl_AlertNotifierProc) (ClientData clientData);
778
+typedef void (Tcl_ServiceModeHookProc) (int mode);
779
+typedef ClientData (Tcl_InitNotifierProc) (void);
780
+typedef void (Tcl_FinalizeNotifierProc) (ClientData clientData);
781
+typedef void (Tcl_MainLoopProc) (void);
782
+
783
+
784
+/*
785
+ *----------------------------------------------------------------------------
786
+ * The following structure represents a type of object, which is a particular
787
+ * internal representation for an object plus a set of functions that provide
788
+ * standard operations on objects of that type.
789
+ */
790
+
791
+typedef struct Tcl_ObjType {
792
+ const char *name; /* Name of the type, e.g. "int". */
793
+ Tcl_FreeInternalRepProc *freeIntRepProc;
794
+ /* Called to free any storage for the type's
795
+ * internal rep. NULL if the internal rep does
796
+ * not need freeing. */
797
+ Tcl_DupInternalRepProc *dupIntRepProc;
798
+ /* Called to create a new object as a copy of
799
+ * an existing object. */
800
+ Tcl_UpdateStringProc *updateStringProc;
801
+ /* Called to update the string rep from the
802
+ * type's internal representation. */
803
+ Tcl_SetFromAnyProc *setFromAnyProc;
804
+ /* Called to convert the object's internal rep
805
+ * to this type. Frees the internal rep of the
806
+ * old type. Returns TCL_ERROR on failure. */
807
+} Tcl_ObjType;
808
+
809
+/*
810
+ * One of the following structures exists for each object in the Tcl system.
811
+ * An object stores a value as either a string, some internal representation,
812
+ * or both.
813
+ */
814
+
815
+typedef struct Tcl_Obj {
816
+ int refCount; /* When 0 the object will be freed. */
817
+ char *bytes; /* This points to the first byte of the
818
+ * object's string representation. The array
819
+ * must be followed by a null byte (i.e., at
820
+ * offset length) but may also contain
821
+ * embedded null characters. The array's
822
+ * storage is allocated by ckalloc. NULL means
823
+ * the string rep is invalid and must be
824
+ * regenerated from the internal rep. Clients
825
+ * should use Tcl_GetStringFromObj or
826
+ * Tcl_GetString to get a pointer to the byte
827
+ * array as a readonly value. */
828
+ int length; /* The number of bytes at *bytes, not
829
+ * including the terminating null. */
830
+ const Tcl_ObjType *typePtr; /* Denotes the object's type. Always
831
+ * corresponds to the type of the object's
832
+ * internal rep. NULL indicates the object has
833
+ * no internal rep (has no type). */
834
+ union { /* The internal representation: */
835
+ long longValue; /* - an long integer value. */
836
+ double doubleValue; /* - a double-precision floating value. */
837
+ void *otherValuePtr; /* - another, type-specific value. */
838
+ Tcl_WideInt wideValue; /* - a long long value. */
839
+ struct { /* - internal rep as two pointers. */
840
+ void *ptr1;
841
+ void *ptr2;
842
+ } twoPtrValue;
843
+ struct { /* - internal rep as a pointer and a long,
844
+ * the main use of which is a bignum's
845
+ * tightly packed fields, where the alloc,
846
+ * used and signum flags are packed into a
847
+ * single word with everything else hung
848
+ * off the pointer. */
849
+ void *ptr;
850
+ unsigned long value;
851
+ } ptrAndLongRep;
852
+ } internalRep;
853
+} Tcl_Obj;
854
+
855
+/*
856
+ * Macros to increment and decrement a Tcl_Obj's reference count, and to test
857
+ * whether an object is shared (i.e. has reference count > 1). Note: clients
858
+ * should use Tcl_DecrRefCount() when they are finished using an object, and
859
+ * should never call TclFreeObj() directly. TclFreeObj() is only defined and
860
+ * made public in tcl.h to support Tcl_DecrRefCount's macro definition.
861
+ */
862
+
863
+void Tcl_IncrRefCount(Tcl_Obj *objPtr);
864
+void Tcl_DecrRefCount(Tcl_Obj *objPtr);
865
+int Tcl_IsShared(Tcl_Obj *objPtr);
866
+
867
+
868
+/*
869
+ *----------------------------------------------------------------------------
870
+ * The following structure contains the state needed by Tcl_SaveResult. No-one
871
+ * outside of Tcl should access any of these fields. This structure is
872
+ * typically allocated on the stack.
873
+ */
874
+
875
+typedef struct Tcl_SavedResult {
876
+ char *result;
877
+ Tcl_FreeProc *freeProc;
878
+ Tcl_Obj *objResultPtr;
879
+ char *appendResult;
880
+ int appendAvl;
881
+ int appendUsed;
882
+ char resultSpace[TCL_RESULT_SIZE+1];
883
+} Tcl_SavedResult;
884
+
885
+/*
886
+ *----------------------------------------------------------------------------
887
+ * The following definitions support Tcl's namespace facility. Note: the first
888
+ * five fields must match exactly the fields in a Namespace structure (see
889
+ * tclInt.h).
890
+ */
891
+
892
+typedef struct Tcl_Namespace {
893
+ char *name; /* The namespace's name within its parent
894
+ * namespace. This contains no ::'s. The name
895
+ * of the global namespace is "" although "::"
896
+ * is an synonym. */
897
+ char *fullName; /* The namespace's fully qualified name. This
898
+ * starts with ::. */
899
+ ClientData clientData; /* Arbitrary value associated with this
900
+ * namespace. */
901
+ Tcl_NamespaceDeleteProc *deleteProc;
902
+ /* Function invoked when deleting the
903
+ * namespace to, e.g., free clientData. */
904
+ struct Tcl_Namespace *parentPtr;
905
+ /* Points to the namespace that contains this
906
+ * one. NULL if this is the global
907
+ * namespace. */
908
+} Tcl_Namespace;
909
+
910
+/*
911
+ *----------------------------------------------------------------------------
912
+ * The following structure represents a call frame, or activation record. A
913
+ * call frame defines a naming context for a procedure call: its local scope
914
+ * (for local variables) and its namespace scope (used for non-local
915
+ * variables; often the global :: namespace). A call frame can also define the
916
+ * naming context for a namespace eval or namespace inscope command: the
917
+ * namespace in which the command's code should execute. The Tcl_CallFrame
918
+ * structures exist only while procedures or namespace eval/inscope's are
919
+ * being executed, and provide a Tcl call stack.
920
+ *
921
+ * A call frame is initialized and pushed using Tcl_PushCallFrame and popped
922
+ * using Tcl_PopCallFrame. Storage for a Tcl_CallFrame must be provided by the
923
+ * Tcl_PushCallFrame caller, and callers typically allocate them on the C call
924
+ * stack for efficiency. For this reason, Tcl_CallFrame is defined as a
925
+ * structure and not as an opaque token. However, most Tcl_CallFrame fields
926
+ * are hidden since applications should not access them directly; others are
927
+ * declared as "dummyX".
928
+ *
929
+ * WARNING!! The structure definition must be kept consistent with the
930
+ * CallFrame structure in tclInt.h. If you change one, change the other.
931
+ */
932
+
933
+typedef struct Tcl_CallFrame {
934
+ Tcl_Namespace *nsPtr;
935
+ int dummy1;
936
+ int dummy2;
937
+ void *dummy3;
938
+ void *dummy4;
939
+ void *dummy5;
940
+ int dummy6;
941
+ void *dummy7;
942
+ void *dummy8;
943
+ int dummy9;
944
+ void *dummy10;
945
+ void *dummy11;
946
+ void *dummy12;
947
+ void *dummy13;
948
+} Tcl_CallFrame;
949
+
950
+/*
951
+ *----------------------------------------------------------------------------
952
+ * Information about commands that is returned by Tcl_GetCommandInfo and
953
+ * passed to Tcl_SetCommandInfo. objProc is an objc/objv object-based command
954
+ * function while proc is a traditional Tcl argc/argv string-based function.
955
+ * Tcl_CreateObjCommand and Tcl_CreateCommand ensure that both objProc and
956
+ * proc are non-NULL and can be called to execute the command. However, it may
957
+ * be faster to call one instead of the other. The member isNativeObjectProc
958
+ * is set to 1 if an object-based function was registered by
959
+ * Tcl_CreateObjCommand, and to 0 if a string-based function was registered by
960
+ * Tcl_CreateCommand. The other function is typically set to a compatibility
961
+ * wrapper that does string-to-object or object-to-string argument conversions
962
+ * then calls the other function.
963
+ */
964
+
965
+typedef struct Tcl_CmdInfo {
966
+ int isNativeObjectProc; /* 1 if objProc was registered by a call to
967
+ * Tcl_CreateObjCommand; 0 otherwise.
968
+ * Tcl_SetCmdInfo does not modify this
969
+ * field. */
970
+ Tcl_ObjCmdProc *objProc; /* Command's object-based function. */
971
+ ClientData objClientData; /* ClientData for object proc. */
972
+ Tcl_CmdProc *proc; /* Command's string-based function. */
973
+ ClientData clientData; /* ClientData for string proc. */
974
+ Tcl_CmdDeleteProc *deleteProc;
975
+ /* Function to call when command is
976
+ * deleted. */
977
+ ClientData deleteData; /* Value to pass to deleteProc (usually the
978
+ * same as clientData). */
979
+ Tcl_Namespace *namespacePtr;/* Points to the namespace that contains this
980
+ * command. Note that Tcl_SetCmdInfo will not
981
+ * change a command's namespace; use
982
+ * TclRenameCommand or Tcl_Eval (of 'rename')
983
+ * to do that. */
984
+} Tcl_CmdInfo;
985
+
986
+/*
987
+ *----------------------------------------------------------------------------
988
+ * The structure defined below is used to hold dynamic strings. The only
989
+ * fields that clients should use are string and length, accessible via the
990
+ * macros Tcl_DStringValue and Tcl_DStringLength.
991
+ */
992
+
993
+#define TCL_DSTRING_STATIC_SIZE 200
994
+typedef struct Tcl_DString {
995
+ char *string; /* Points to beginning of string: either
996
+ * staticSpace below or a malloced array. */
997
+ int length; /* Number of non-NULL characters in the
998
+ * string. */
999
+ int spaceAvl; /* Total number of bytes available for the
1000
+ * string and its terminating NULL char. */
1001
+ char staticSpace[TCL_DSTRING_STATIC_SIZE];
1002
+ /* Space to use in common case where string is
1003
+ * small. */
1004
+} Tcl_DString;
1005
+
1006
+#define Tcl_DStringLength(dsPtr) ((dsPtr)->length)
1007
+#define Tcl_DStringValue(dsPtr) ((dsPtr)->string)
1008
+#define Tcl_DStringTrunc Tcl_DStringSetLength
1009
+
1010
+/*
1011
+ * Definitions for the maximum number of digits of precision that may be
1012
+ * specified in the "tcl_precision" variable, and the number of bytes of
1013
+ * buffer space required by Tcl_PrintDouble.
1014
+ */
1015
+
1016
+#define TCL_MAX_PREC 17
1017
+#define TCL_DOUBLE_SPACE (TCL_MAX_PREC+10)
1018
+
1019
+/*
1020
+ * Definition for a number of bytes of buffer space sufficient to hold the
1021
+ * string representation of an integer in base 10 (assuming the existence of
1022
+ * 64-bit integers).
1023
+ */
1024
+
1025
+#define TCL_INTEGER_SPACE 24
1026
+
1027
+/*
1028
+ * Flag values passed to Tcl_ConvertElement.
1029
+ * TCL_DONT_USE_BRACES forces it not to enclose the element in braces, but to
1030
+ * use backslash quoting instead.
1031
+ * TCL_DONT_QUOTE_HASH disables the default quoting of the '#' character. It
1032
+ * is safe to leave the hash unquoted when the element is not the first
1033
+ * element of a list, and this flag can be used by the caller to indicate
1034
+ * that condition.
1035
+ */
1036
+
1037
+#define TCL_DONT_USE_BRACES 1
1038
+#define TCL_DONT_QUOTE_HASH 8
1039
+
1040
+/*
1041
+ * Flag that may be passed to Tcl_GetIndexFromObj to force it to disallow
1042
+ * abbreviated strings.
1043
+ */
1044
+
1045
+#define TCL_EXACT 1
1046
+
1047
+/*
1048
+ *----------------------------------------------------------------------------
1049
+ * Flag values passed to Tcl_RecordAndEval, Tcl_EvalObj, Tcl_EvalObjv.
1050
+ * WARNING: these bit choices must not conflict with the bit choices for
1051
+ * evalFlag bits in tclInt.h!
1052
+ *
1053
+ * Meanings:
1054
+ * TCL_NO_EVAL: Just record this command
1055
+ * TCL_EVAL_GLOBAL: Execute script in global namespace
1056
+ * TCL_EVAL_DIRECT: Do not compile this script
1057
+ * TCL_EVAL_INVOKE: Magical Tcl_EvalObjv mode for aliases/ensembles
1058
+ * o Run in iPtr->lookupNsPtr or global namespace
1059
+ * o Cut out of error traces
1060
+ * o Don't reset the flags controlling ensemble
1061
+ * error message rewriting.
1062
+ * TCL_CANCEL_UNWIND: Magical Tcl_CancelEval mode that causes the
1063
+ * stack for the script in progress to be
1064
+ * completely unwound.
1065
+ * TCL_EVAL_NOERR: Do no exception reporting at all, just return
1066
+ * as the caller will report.
1067
+ */
1068
+
1069
+#define TCL_NO_EVAL 0x010000
1070
+#define TCL_EVAL_GLOBAL 0x020000
1071
+#define TCL_EVAL_DIRECT 0x040000
1072
+#define TCL_EVAL_INVOKE 0x080000
1073
+#define TCL_CANCEL_UNWIND 0x100000
1074
+#define TCL_EVAL_NOERR 0x200000
1075
+
1076
+/*
1077
+ * Special freeProc values that may be passed to Tcl_SetResult (see the man
1078
+ * page for details):
1079
+ */
1080
+
1081
+#define TCL_VOLATILE ((Tcl_FreeProc *) 1)
1082
+#define TCL_STATIC ((Tcl_FreeProc *) 0)
1083
+#define TCL_DYNAMIC ((Tcl_FreeProc *) 3)
1084
+
1085
+/*
1086
+ * Flag values passed to variable-related functions.
1087
+ * WARNING: these bit choices must not conflict with the bit choice for
1088
+ * TCL_CANCEL_UNWIND, above.
1089
+ */
1090
+
1091
+#define TCL_GLOBAL_ONLY 1
1092
+#define TCL_NAMESPACE_ONLY 2
1093
+#define TCL_APPEND_VALUE 4
1094
+#define TCL_LIST_ELEMENT 8
1095
+#define TCL_TRACE_READS 0x10
1096
+#define TCL_TRACE_WRITES 0x20
1097
+#define TCL_TRACE_UNSETS 0x40
1098
+#define TCL_TRACE_DESTROYED 0x80
1099
+#define TCL_INTERP_DESTROYED 0x100
1100
+#define TCL_LEAVE_ERR_MSG 0x200
1101
+#define TCL_TRACE_ARRAY 0x800
1102
+#ifndef TCL_REMOVE_OBSOLETE_TRACES
1103
+/* Required to support old variable/vdelete/vinfo traces. */
1104
+#define TCL_TRACE_OLD_STYLE 0x1000
1105
+#endif
1106
+/* Indicate the semantics of the result of a trace. */
1107
+#define TCL_TRACE_RESULT_DYNAMIC 0x8000
1108
+#define TCL_TRACE_RESULT_OBJECT 0x10000
1109
+
1110
+/*
1111
+ * Flag values for ensemble commands.
1112
+ */
1113
+
1114
+#define TCL_ENSEMBLE_PREFIX 0x02/* Flag value to say whether to allow
1115
+ * unambiguous prefixes of commands or to
1116
+ * require exact matches for command names. */
1117
+
1118
+/*
1119
+ * Flag values passed to command-related functions.
1120
+ */
1121
+
1122
+#define TCL_TRACE_RENAME 0x2000
1123
+#define TCL_TRACE_DELETE 0x4000
1124
+
1125
+#define TCL_ALLOW_INLINE_COMPILATION 0x20000
1126
+
1127
+/*
1128
+ * The TCL_PARSE_PART1 flag is deprecated and has no effect. The part1 is now
1129
+ * always parsed whenever the part2 is NULL. (This is to avoid a common error
1130
+ * when converting code to use the new object based APIs and forgetting to
1131
+ * give the flag)
1132
+ */
1133
+
1134
+#ifndef TCL_NO_DEPRECATED
1135
+# define TCL_PARSE_PART1 0x400
1136
+#endif
1137
+
1138
+/*
1139
+ * Types for linked variables:
1140
+ */
1141
+
1142
+#define TCL_LINK_INT 1
1143
+#define TCL_LINK_DOUBLE 2
1144
+#define TCL_LINK_BOOLEAN 3
1145
+#define TCL_LINK_STRING 4
1146
+#define TCL_LINK_WIDE_INT 5
1147
+#define TCL_LINK_CHAR 6
1148
+#define TCL_LINK_UCHAR 7
1149
+#define TCL_LINK_SHORT 8
1150
+#define TCL_LINK_USHORT 9
1151
+#define TCL_LINK_UINT 10
1152
+#define TCL_LINK_LONG 11
1153
+#define TCL_LINK_ULONG 12
1154
+#define TCL_LINK_FLOAT 13
1155
+#define TCL_LINK_WIDE_UINT 14
1156
+#define TCL_LINK_READ_ONLY 0x80
1157
+
1158
+
1159
+/*
1160
+ *----------------------------------------------------------------------------
1161
+ * Forward declarations of Tcl_HashTable and related types.
1162
+ */
1163
+
1164
+typedef struct Tcl_HashKeyType Tcl_HashKeyType;
1165
+typedef struct Tcl_HashTable Tcl_HashTable;
1166
+typedef struct Tcl_HashEntry Tcl_HashEntry;
1167
+
1168
+typedef unsigned (Tcl_HashKeyProc) (Tcl_HashTable *tablePtr, void *keyPtr);
1169
+typedef int (Tcl_CompareHashKeysProc) (void *keyPtr, Tcl_HashEntry *hPtr);
1170
+typedef Tcl_HashEntry * (Tcl_AllocHashEntryProc) (Tcl_HashTable *tablePtr,
1171
+ void *keyPtr);
1172
+typedef void (Tcl_FreeHashEntryProc) (Tcl_HashEntry *hPtr);
1173
+
1174
+/*
1175
+ * This flag controls whether the hash table stores the hash of a key, or
1176
+ * recalculates it. There should be no reason for turning this flag off as it
1177
+ * is completely binary and source compatible unless you directly access the
1178
+ * bucketPtr member of the Tcl_HashTableEntry structure. This member has been
1179
+ * removed and the space used to store the hash value.
1180
+ */
1181
+
1182
+#ifndef TCL_HASH_KEY_STORE_HASH
1183
+# define TCL_HASH_KEY_STORE_HASH 1
1184
+#endif
1185
+
1186
+/*
1187
+ * Structure definition for an entry in a hash table. No-one outside Tcl
1188
+ * should access any of these fields directly; use the macros defined below.
1189
+ */
1190
+
1191
+struct Tcl_HashEntry {
1192
+ Tcl_HashEntry *nextPtr; /* Pointer to next entry in this hash bucket,
1193
+ * or NULL for end of chain. */
1194
+ Tcl_HashTable *tablePtr; /* Pointer to table containing entry. */
1195
+#if TCL_HASH_KEY_STORE_HASH
1196
+ void *hash; /* Hash value, stored as pointer to ensure
1197
+ * that the offsets of the fields in this
1198
+ * structure are not changed. */
1199
+#else
1200
+ Tcl_HashEntry **bucketPtr; /* Pointer to bucket that points to first
1201
+ * entry in this entry's chain: used for
1202
+ * deleting the entry. */
1203
+#endif
1204
+ ClientData clientData; /* Application stores something here with
1205
+ * Tcl_SetHashValue. */
1206
+ union { /* Key has one of these forms: */
1207
+ char *oneWordValue; /* One-word value for key. */
1208
+ Tcl_Obj *objPtr; /* Tcl_Obj * key value. */
1209
+ int words[1]; /* Multiple integer words for key. The actual
1210
+ * size will be as large as necessary for this
1211
+ * table's keys. */
1212
+ char string[1]; /* String for key. The actual size will be as
1213
+ * large as needed to hold the key. */
1214
+ } key; /* MUST BE LAST FIELD IN RECORD!! */
1215
+};
1216
+
1217
+/*
1218
+ * Flags used in Tcl_HashKeyType.
1219
+ *
1220
+ * TCL_HASH_KEY_RANDOMIZE_HASH -
1221
+ * There are some things, pointers for example
1222
+ * which don't hash well because they do not use
1223
+ * the lower bits. If this flag is set then the
1224
+ * hash table will attempt to rectify this by
1225
+ * randomising the bits and then using the upper
1226
+ * N bits as the index into the table.
1227
+ * TCL_HASH_KEY_SYSTEM_HASH - If this flag is set then all memory internally
1228
+ * allocated for the hash table that is not for an
1229
+ * entry will use the system heap.
1230
+ */
1231
+
1232
+#define TCL_HASH_KEY_RANDOMIZE_HASH 0x1
1233
+#define TCL_HASH_KEY_SYSTEM_HASH 0x2
1234
+
1235
+/*
1236
+ * Structure definition for the methods associated with a hash table key type.
1237
+ */
1238
+
1239
+#define TCL_HASH_KEY_TYPE_VERSION 1
1240
+struct Tcl_HashKeyType {
1241
+ int version; /* Version of the table. If this structure is
1242
+ * extended in future then the version can be
1243
+ * used to distinguish between different
1244
+ * structures. */
1245
+ int flags; /* Flags, see above for details. */
1246
+ Tcl_HashKeyProc *hashKeyProc;
1247
+ /* Calculates a hash value for the key. If
1248
+ * this is NULL then the pointer itself is
1249
+ * used as a hash value. */
1250
+ Tcl_CompareHashKeysProc *compareKeysProc;
1251
+ /* Compares two keys and returns zero if they
1252
+ * do not match, and non-zero if they do. If
1253
+ * this is NULL then the pointers are
1254
+ * compared. */
1255
+ Tcl_AllocHashEntryProc *allocEntryProc;
1256
+ /* Called to allocate memory for a new entry,
1257
+ * i.e. if the key is a string then this could
1258
+ * allocate a single block which contains
1259
+ * enough space for both the entry and the
1260
+ * string. Only the key field of the allocated
1261
+ * Tcl_HashEntry structure needs to be filled
1262
+ * in. If something else needs to be done to
1263
+ * the key, i.e. incrementing a reference
1264
+ * count then that should be done by this
1265
+ * function. If this is NULL then Tcl_Alloc is
1266
+ * used to allocate enough space for a
1267
+ * Tcl_HashEntry and the key pointer is
1268
+ * assigned to key.oneWordValue. */
1269
+ Tcl_FreeHashEntryProc *freeEntryProc;
1270
+ /* Called to free memory associated with an
1271
+ * entry. If something else needs to be done
1272
+ * to the key, i.e. decrementing a reference
1273
+ * count then that should be done by this
1274
+ * function. If this is NULL then Tcl_Free is
1275
+ * used to free the Tcl_HashEntry. */
1276
+};
1277
+
1278
+/*
1279
+ * Structure definition for a hash table. Must be in tcl.h so clients can
1280
+ * allocate space for these structures, but clients should never access any
1281
+ * fields in this structure.
1282
+ */
1283
+
1284
+#define TCL_SMALL_HASH_TABLE 4
1285
+struct Tcl_HashTable {
1286
+ Tcl_HashEntry **buckets; /* Pointer to bucket array. Each element
1287
+ * points to first entry in bucket's hash
1288
+ * chain, or NULL. */
1289
+ Tcl_HashEntry *staticBuckets[TCL_SMALL_HASH_TABLE];
1290
+ /* Bucket array used for small tables (to
1291
+ * avoid mallocs and frees). */
1292
+ int numBuckets; /* Total number of buckets allocated at
1293
+ * **bucketPtr. */
1294
+ int numEntries; /* Total number of entries present in
1295
+ * table. */
1296
+ int rebuildSize; /* Enlarge table when numEntries gets to be
1297
+ * this large. */
1298
+ int downShift; /* Shift count used in hashing function.
1299
+ * Designed to use high-order bits of
1300
+ * randomized keys. */
1301
+ int mask; /* Mask value used in hashing function. */
1302
+ int keyType; /* Type of keys used in this table. It's
1303
+ * either TCL_CUSTOM_KEYS, TCL_STRING_KEYS,
1304
+ * TCL_ONE_WORD_KEYS, or an integer giving the
1305
+ * number of ints that is the size of the
1306
+ * key. */
1307
+ Tcl_HashEntry *(*findProc) (Tcl_HashTable *tablePtr, const char *key);
1308
+ Tcl_HashEntry *(*createProc) (Tcl_HashTable *tablePtr, const char *key,
1309
+ int *newPtr);
1310
+ const Tcl_HashKeyType *typePtr;
1311
+ /* Type of the keys used in the
1312
+ * Tcl_HashTable. */
1313
+};
1314
+
1315
+/*
1316
+ * Structure definition for information used to keep track of searches through
1317
+ * hash tables:
1318
+ */
1319
+
1320
+typedef struct Tcl_HashSearch {
1321
+ Tcl_HashTable *tablePtr; /* Table being searched. */
1322
+ int nextIndex; /* Index of next bucket to be enumerated after
1323
+ * present one. */
1324
+ Tcl_HashEntry *nextEntryPtr;/* Next entry to be enumerated in the current
1325
+ * bucket. */
1326
+} Tcl_HashSearch;
1327
+
1328
+/*
1329
+ * Acceptable key types for hash tables:
1330
+ *
1331
+ * TCL_STRING_KEYS: The keys are strings, they are copied into the
1332
+ * entry.
1333
+ * TCL_ONE_WORD_KEYS: The keys are pointers, the pointer is stored
1334
+ * in the entry.
1335
+ * TCL_CUSTOM_TYPE_KEYS: The keys are arbitrary types which are copied
1336
+ * into the entry.
1337
+ * TCL_CUSTOM_PTR_KEYS: The keys are pointers to arbitrary types, the
1338
+ * pointer is stored in the entry.
1339
+ *
1340
+ * While maintaining binary compatability the above have to be distinct values
1341
+ * as they are used to differentiate between old versions of the hash table
1342
+ * which don't have a typePtr and new ones which do. Once binary compatability
1343
+ * is discarded in favour of making more wide spread changes TCL_STRING_KEYS
1344
+ * can be the same as TCL_CUSTOM_TYPE_KEYS, and TCL_ONE_WORD_KEYS can be the
1345
+ * same as TCL_CUSTOM_PTR_KEYS because they simply determine how the key is
1346
+ * accessed from the entry and not the behaviour.
1347
+ */
1348
+
1349
+#define TCL_STRING_KEYS (0)
1350
+#define TCL_ONE_WORD_KEYS (1)
1351
+#define TCL_CUSTOM_TYPE_KEYS (-2)
1352
+#define TCL_CUSTOM_PTR_KEYS (-1)
1353
+
1354
+/*
1355
+ * Structure definition for information used to keep track of searches through
1356
+ * dictionaries. These fields should not be accessed by code outside
1357
+ * tclDictObj.c
1358
+ */
1359
+
1360
+typedef struct {
1361
+ void *next; /* Search position for underlying hash
1362
+ * table. */
1363
+ int epoch; /* Epoch marker for dictionary being searched,
1364
+ * or -1 if search has terminated. */
1365
+ Tcl_Dict dictionaryPtr; /* Reference to dictionary being searched. */
1366
+} Tcl_DictSearch;
1367
+
1368
+
1369
+/*
1370
+ *----------------------------------------------------------------------------
1371
+ * Flag values to pass to Tcl_DoOneEvent to disable searches for some kinds of
1372
+ * events:
1373
+ */
1374
+
1375
+#define TCL_DONT_WAIT (1<<1)
1376
+#define TCL_WINDOW_EVENTS (1<<2)
1377
+#define TCL_FILE_EVENTS (1<<3)
1378
+#define TCL_TIMER_EVENTS (1<<4)
1379
+#define TCL_IDLE_EVENTS (1<<5) /* WAS 0x10 ???? */
1380
+#define TCL_ALL_EVENTS (~TCL_DONT_WAIT)
1381
+
1382
+/*
1383
+ * The following structure defines a generic event for the Tcl event system.
1384
+ * These are the things that are queued in calls to Tcl_QueueEvent and
1385
+ * serviced later by Tcl_DoOneEvent. There can be many different kinds of
1386
+ * events with different fields, corresponding to window events, timer events,
1387
+ * etc. The structure for a particular event consists of a Tcl_Event header
1388
+ * followed by additional information specific to that event.
1389
+ */
1390
+
1391
+struct Tcl_Event {
1392
+ Tcl_EventProc *proc; /* Function to call to service this event. */
1393
+ struct Tcl_Event *nextPtr; /* Next in list of pending events, or NULL. */
1394
+};
1395
+
1396
+/*
1397
+ * Positions to pass to Tcl_QueueEvent:
1398
+ */
1399
+
1400
+typedef enum {
1401
+ TCL_QUEUE_TAIL, TCL_QUEUE_HEAD, TCL_QUEUE_MARK
1402
+} Tcl_QueuePosition;
1403
+
1404
+/*
1405
+ * Values to pass to Tcl_SetServiceMode to specify the behavior of notifier
1406
+ * event routines.
1407
+ */
1408
+
1409
+#define TCL_SERVICE_NONE 0
1410
+#define TCL_SERVICE_ALL 1
1411
+
1412
+/*
1413
+ * The following structure keeps is used to hold a time value, either as an
1414
+ * absolute time (the number of seconds from the epoch) or as an elapsed time.
1415
+ * On Unix systems the epoch is Midnight Jan 1, 1970 GMT.
1416
+ */
1417
+
1418
+typedef struct Tcl_Time {
1419
+ long sec; /* Seconds. */
1420
+ long usec; /* Microseconds. */
1421
+} Tcl_Time;
1422
+
1423
+typedef void (Tcl_SetTimerProc) (CONST86 Tcl_Time *timePtr);
1424
+typedef int (Tcl_WaitForEventProc) (CONST86 Tcl_Time *timePtr);
1425
+
1426
+/*
1427
+ * TIP #233 (Virtualized Time)
1428
+ */
1429
+
1430
+typedef void (Tcl_GetTimeProc) (Tcl_Time *timebuf, ClientData clientData);
1431
+typedef void (Tcl_ScaleTimeProc) (Tcl_Time *timebuf, ClientData clientData);
1432
+
1433
+/*
1434
+ *----------------------------------------------------------------------------
1435
+ * Bits to pass to Tcl_CreateFileHandler and Tcl_CreateChannelHandler to
1436
+ * indicate what sorts of events are of interest:
1437
+ */
1438
+
1439
+#define TCL_READABLE (1<<1)
1440
+#define TCL_WRITABLE (1<<2)
1441
+#define TCL_EXCEPTION (1<<3)
1442
+
1443
+/*
1444
+ * Flag values to pass to Tcl_OpenCommandChannel to indicate the disposition
1445
+ * of the stdio handles. TCL_STDIN, TCL_STDOUT, TCL_STDERR, are also used in
1446
+ * Tcl_GetStdChannel.
1447
+ */
1448
+
1449
+#define TCL_STDIN (1<<1)
1450
+#define TCL_STDOUT (1<<2)
1451
+#define TCL_STDERR (1<<3)
1452
+#define TCL_ENFORCE_MODE (1<<4)
1453
+
1454
+/*
1455
+ * Bits passed to Tcl_DriverClose2Proc to indicate which side of a channel
1456
+ * should be closed.
1457
+ */
1458
+
1459
+#define TCL_CLOSE_READ (1<<1)
1460
+#define TCL_CLOSE_WRITE (1<<2)
1461
+
1462
+/*
1463
+ * Value to use as the closeProc for a channel that supports the close2Proc
1464
+ * interface.
1465
+ */
1466
+
1467
+#define TCL_CLOSE2PROC ((Tcl_DriverCloseProc *) 1)
1468
+
1469
+/*
1470
+ * Channel version tag. This was introduced in 8.3.2/8.4.
1471
+ */
1472
+
1473
+#define TCL_CHANNEL_VERSION_1 ((Tcl_ChannelTypeVersion) 0x1)
1474
+#define TCL_CHANNEL_VERSION_2 ((Tcl_ChannelTypeVersion) 0x2)
1475
+#define TCL_CHANNEL_VERSION_3 ((Tcl_ChannelTypeVersion) 0x3)
1476
+#define TCL_CHANNEL_VERSION_4 ((Tcl_ChannelTypeVersion) 0x4)
1477
+#define TCL_CHANNEL_VERSION_5 ((Tcl_ChannelTypeVersion) 0x5)
1478
+
1479
+/*
1480
+ * TIP #218: Channel Actions, Ids for Tcl_DriverThreadActionProc.
1481
+ */
1482
+
1483
+#define TCL_CHANNEL_THREAD_INSERT (0)
1484
+#define TCL_CHANNEL_THREAD_REMOVE (1)
1485
+
1486
+/*
1487
+ * Typedefs for the various operations in a channel type:
1488
+ */
1489
+
1490
+typedef int (Tcl_DriverBlockModeProc) (ClientData instanceData, int mode);
1491
+typedef int (Tcl_DriverCloseProc) (ClientData instanceData,
1492
+ Tcl_Interp *interp);
1493
+typedef int (Tcl_DriverClose2Proc) (ClientData instanceData,
1494
+ Tcl_Interp *interp, int flags);
1495
+typedef int (Tcl_DriverInputProc) (ClientData instanceData, char *buf,
1496
+ int toRead, int *errorCodePtr);
1497
+typedef int (Tcl_DriverOutputProc) (ClientData instanceData,
1498
+ CONST84 char *buf, int toWrite, int *errorCodePtr);
1499
+typedef int (Tcl_DriverSeekProc) (ClientData instanceData, long offset,
1500
+ int mode, int *errorCodePtr);
1501
+typedef int (Tcl_DriverSetOptionProc) (ClientData instanceData,
1502
+ Tcl_Interp *interp, const char *optionName,
1503
+ const char *value);
1504
+typedef int (Tcl_DriverGetOptionProc) (ClientData instanceData,
1505
+ Tcl_Interp *interp, CONST84 char *optionName,
1506
+ Tcl_DString *dsPtr);
1507
+typedef void (Tcl_DriverWatchProc) (ClientData instanceData, int mask);
1508
+typedef int (Tcl_DriverGetHandleProc) (ClientData instanceData,
1509
+ int direction, ClientData *handlePtr);
1510
+typedef int (Tcl_DriverFlushProc) (ClientData instanceData);
1511
+typedef int (Tcl_DriverHandlerProc) (ClientData instanceData,
1512
+ int interestMask);
1513
+typedef Tcl_WideInt (Tcl_DriverWideSeekProc) (ClientData instanceData,
1514
+ Tcl_WideInt offset, int mode, int *errorCodePtr);
1515
+/*
1516
+ * TIP #218, Channel Thread Actions
1517
+ */
1518
+typedef void (Tcl_DriverThreadActionProc) (ClientData instanceData,
1519
+ int action);
1520
+/*
1521
+ * TIP #208, File Truncation (etc.)
1522
+ */
1523
+typedef int (Tcl_DriverTruncateProc) (ClientData instanceData,
1524
+ Tcl_WideInt length);
1525
+
1526
+/*
1527
+ * struct Tcl_ChannelType:
1528
+ *
1529
+ * One such structure exists for each type (kind) of channel. It collects
1530
+ * together in one place all the functions that are part of the specific
1531
+ * channel type.
1532
+ *
1533
+ * It is recommend that the Tcl_Channel* functions are used to access elements
1534
+ * of this structure, instead of direct accessing.
1535
+ */
1536
+
1537
+typedef struct Tcl_ChannelType {
1538
+ const char *typeName; /* The name of the channel type in Tcl
1539
+ * commands. This storage is owned by channel
1540
+ * type. */
1541
+ Tcl_ChannelTypeVersion version;
1542
+ /* Version of the channel type. */
1543
+ Tcl_DriverCloseProc *closeProc;
1544
+ /* Function to call to close the channel, or
1545
+ * TCL_CLOSE2PROC if the close2Proc should be
1546
+ * used instead. */
1547
+ Tcl_DriverInputProc *inputProc;
1548
+ /* Function to call for input on channel. */
1549
+ Tcl_DriverOutputProc *outputProc;
1550
+ /* Function to call for output on channel. */
1551
+ Tcl_DriverSeekProc *seekProc;
1552
+ /* Function to call to seek on the channel.
1553
+ * May be NULL. */
1554
+ Tcl_DriverSetOptionProc *setOptionProc;
1555
+ /* Set an option on a channel. */
1556
+ Tcl_DriverGetOptionProc *getOptionProc;
1557
+ /* Get an option from a channel. */
1558
+ Tcl_DriverWatchProc *watchProc;
1559
+ /* Set up the notifier to watch for events on
1560
+ * this channel. */
1561
+ Tcl_DriverGetHandleProc *getHandleProc;
1562
+ /* Get an OS handle from the channel or NULL
1563
+ * if not supported. */
1564
+ Tcl_DriverClose2Proc *close2Proc;
1565
+ /* Function to call to close the channel if
1566
+ * the device supports closing the read &
1567
+ * write sides independently. */
1568
+ Tcl_DriverBlockModeProc *blockModeProc;
1569
+ /* Set blocking mode for the raw channel. May
1570
+ * be NULL. */
1571
+ /*
1572
+ * Only valid in TCL_CHANNEL_VERSION_2 channels or later.
1573
+ */
1574
+ Tcl_DriverFlushProc *flushProc;
1575
+ /* Function to call to flush a channel. May be
1576
+ * NULL. */
1577
+ Tcl_DriverHandlerProc *handlerProc;
1578
+ /* Function to call to handle a channel event.
1579
+ * This will be passed up the stacked channel
1580
+ * chain. */
1581
+ /*
1582
+ * Only valid in TCL_CHANNEL_VERSION_3 channels or later.
1583
+ */
1584
+ Tcl_DriverWideSeekProc *wideSeekProc;
1585
+ /* Function to call to seek on the channel
1586
+ * which can handle 64-bit offsets. May be
1587
+ * NULL, and must be NULL if seekProc is
1588
+ * NULL. */
1589
+ /*
1590
+ * Only valid in TCL_CHANNEL_VERSION_4 channels or later.
1591
+ * TIP #218, Channel Thread Actions.
1592
+ */
1593
+ Tcl_DriverThreadActionProc *threadActionProc;
1594
+ /* Function to call to notify the driver of
1595
+ * thread specific activity for a channel. May
1596
+ * be NULL. */
1597
+ /*
1598
+ * Only valid in TCL_CHANNEL_VERSION_5 channels or later.
1599
+ * TIP #208, File Truncation.
1600
+ */
1601
+ Tcl_DriverTruncateProc *truncateProc;
1602
+ /* Function to call to truncate the underlying
1603
+ * file to a particular length. May be NULL if
1604
+ * the channel does not support truncation. */
1605
+} Tcl_ChannelType;
1606
+
1607
+/*
1608
+ * The following flags determine whether the blockModeProc above should set
1609
+ * the channel into blocking or nonblocking mode. They are passed as arguments
1610
+ * to the blockModeProc function in the above structure.
1611
+ */
1612
+
1613
+#define TCL_MODE_BLOCKING 0 /* Put channel into blocking mode. */
1614
+#define TCL_MODE_NONBLOCKING 1 /* Put channel into nonblocking
1615
+ * mode. */
1616
+
1617
+/*
1618
+ *----------------------------------------------------------------------------
1619
+ * Enum for different types of file paths.
1620
+ */
1621
+
1622
+typedef enum Tcl_PathType {
1623
+ TCL_PATH_ABSOLUTE,
1624
+ TCL_PATH_RELATIVE,
1625
+ TCL_PATH_VOLUME_RELATIVE
1626
+} Tcl_PathType;
1627
+
1628
+/*
1629
+ * The following structure is used to pass glob type data amongst the various
1630
+ * glob routines and Tcl_FSMatchInDirectory.
1631
+ */
1632
+
1633
+typedef struct Tcl_GlobTypeData {
1634
+ int type; /* Corresponds to bcdpfls as in 'find -t'. */
1635
+ int perm; /* Corresponds to file permissions. */
1636
+ Tcl_Obj *macType; /* Acceptable Mac type. */
1637
+ Tcl_Obj *macCreator; /* Acceptable Mac creator. */
1638
+} Tcl_GlobTypeData;
1639
+
1640
+/*
1641
+ * Type and permission definitions for glob command.
1642
+ */
1643
+
1644
+#define TCL_GLOB_TYPE_BLOCK (1<<0)
1645
+#define TCL_GLOB_TYPE_CHAR (1<<1)
1646
+#define TCL_GLOB_TYPE_DIR (1<<2)
1647
+#define TCL_GLOB_TYPE_PIPE (1<<3)
1648
+#define TCL_GLOB_TYPE_FILE (1<<4)
1649
+#define TCL_GLOB_TYPE_LINK (1<<5)
1650
+#define TCL_GLOB_TYPE_SOCK (1<<6)
1651
+#define TCL_GLOB_TYPE_MOUNT (1<<7)
1652
+
1653
+#define TCL_GLOB_PERM_RONLY (1<<0)
1654
+#define TCL_GLOB_PERM_HIDDEN (1<<1)
1655
+#define TCL_GLOB_PERM_R (1<<2)
1656
+#define TCL_GLOB_PERM_W (1<<3)
1657
+#define TCL_GLOB_PERM_X (1<<4)
1658
+
1659
+/*
1660
+ * Flags for the unload callback function.
1661
+ */
1662
+
1663
+#define TCL_UNLOAD_DETACH_FROM_INTERPRETER (1<<0)
1664
+#define TCL_UNLOAD_DETACH_FROM_PROCESS (1<<1)
1665
+
1666
+/*
1667
+ * Typedefs for the various filesystem operations:
1668
+ */
1669
+
1670
+typedef int (Tcl_FSStatProc) (Tcl_Obj *pathPtr, Tcl_StatBuf *buf);
1671
+typedef int (Tcl_FSAccessProc) (Tcl_Obj *pathPtr, int mode);
1672
+typedef Tcl_Channel (Tcl_FSOpenFileChannelProc) (Tcl_Interp *interp,
1673
+ Tcl_Obj *pathPtr, int mode, int permissions);
1674
+typedef int (Tcl_FSMatchInDirectoryProc) (Tcl_Interp *interp, Tcl_Obj *result,
1675
+ Tcl_Obj *pathPtr, const char *pattern, Tcl_GlobTypeData *types);
1676
+typedef Tcl_Obj * (Tcl_FSGetCwdProc) (Tcl_Interp *interp);
1677
+typedef int (Tcl_FSChdirProc) (Tcl_Obj *pathPtr);
1678
+typedef int (Tcl_FSLstatProc) (Tcl_Obj *pathPtr, Tcl_StatBuf *buf);
1679
+typedef int (Tcl_FSCreateDirectoryProc) (Tcl_Obj *pathPtr);
1680
+typedef int (Tcl_FSDeleteFileProc) (Tcl_Obj *pathPtr);
1681
+typedef int (Tcl_FSCopyDirectoryProc) (Tcl_Obj *srcPathPtr,
1682
+ Tcl_Obj *destPathPtr, Tcl_Obj **errorPtr);
1683
+typedef int (Tcl_FSCopyFileProc) (Tcl_Obj *srcPathPtr, Tcl_Obj *destPathPtr);
1684
+typedef int (Tcl_FSRemoveDirectoryProc) (Tcl_Obj *pathPtr, int recursive,
1685
+ Tcl_Obj **errorPtr);
1686
+typedef int (Tcl_FSRenameFileProc) (Tcl_Obj *srcPathPtr, Tcl_Obj *destPathPtr);
1687
+typedef void (Tcl_FSUnloadFileProc) (Tcl_LoadHandle loadHandle);
1688
+typedef Tcl_Obj * (Tcl_FSListVolumesProc) (void);
1689
+/* We have to declare the utime structure here. */
1690
+struct utimbuf;
1691
+typedef int (Tcl_FSUtimeProc) (Tcl_Obj *pathPtr, struct utimbuf *tval);
1692
+typedef int (Tcl_FSNormalizePathProc) (Tcl_Interp *interp, Tcl_Obj *pathPtr,
1693
+ int nextCheckpoint);
1694
+typedef int (Tcl_FSFileAttrsGetProc) (Tcl_Interp *interp, int index,
1695
+ Tcl_Obj *pathPtr, Tcl_Obj **objPtrRef);
1696
+typedef const char *CONST86 * (Tcl_FSFileAttrStringsProc) (Tcl_Obj *pathPtr,
1697
+ Tcl_Obj **objPtrRef);
1698
+typedef int (Tcl_FSFileAttrsSetProc) (Tcl_Interp *interp, int index,
1699
+ Tcl_Obj *pathPtr, Tcl_Obj *objPtr);
1700
+typedef Tcl_Obj * (Tcl_FSLinkProc) (Tcl_Obj *pathPtr, Tcl_Obj *toPtr,
1701
+ int linkType);
1702
+typedef int (Tcl_FSLoadFileProc) (Tcl_Interp *interp, Tcl_Obj *pathPtr,
1703
+ Tcl_LoadHandle *handlePtr, Tcl_FSUnloadFileProc **unloadProcPtr);
1704
+typedef int (Tcl_FSPathInFilesystemProc) (Tcl_Obj *pathPtr,
1705
+ ClientData *clientDataPtr);
1706
+typedef Tcl_Obj * (Tcl_FSFilesystemPathTypeProc) (Tcl_Obj *pathPtr);
1707
+typedef Tcl_Obj * (Tcl_FSFilesystemSeparatorProc) (Tcl_Obj *pathPtr);
1708
+typedef void (Tcl_FSFreeInternalRepProc) (ClientData clientData);
1709
+typedef ClientData (Tcl_FSDupInternalRepProc) (ClientData clientData);
1710
+typedef Tcl_Obj * (Tcl_FSInternalToNormalizedProc) (ClientData clientData);
1711
+typedef ClientData (Tcl_FSCreateInternalRepProc) (Tcl_Obj *pathPtr);
1712
+
1713
+typedef struct Tcl_FSVersion_ *Tcl_FSVersion;
1714
+
1715
+/*
1716
+ *----------------------------------------------------------------------------
1717
+ * Data structures related to hooking into the filesystem
1718
+ */
1719
+
1720
+/*
1721
+ * Filesystem version tag. This was introduced in 8.4.
1722
+ */
1723
+
1724
+#define TCL_FILESYSTEM_VERSION_1 ((Tcl_FSVersion) 0x1)
1725
+
1726
+/*
1727
+ * struct Tcl_Filesystem:
1728
+ *
1729
+ * One such structure exists for each type (kind) of filesystem. It collects
1730
+ * together in one place all the functions that are part of the specific
1731
+ * filesystem. Tcl always accesses the filesystem through one of these
1732
+ * structures.
1733
+ *
1734
+ * Not all entries need be non-NULL; any which are NULL are simply ignored.
1735
+ * However, a complete filesystem should provide all of these functions. The
1736
+ * explanations in the structure show the importance of each function.
1737
+ */
1738
+
1739
+typedef struct Tcl_Filesystem {
1740
+ const char *typeName; /* The name of the filesystem. */
1741
+ int structureLength; /* Length of this structure, so future binary
1742
+ * compatibility can be assured. */
1743
+ Tcl_FSVersion version; /* Version of the filesystem type. */
1744
+ Tcl_FSPathInFilesystemProc *pathInFilesystemProc;
1745
+ /* Function to check whether a path is in this
1746
+ * filesystem. This is the most important
1747
+ * filesystem function. */
1748
+ Tcl_FSDupInternalRepProc *dupInternalRepProc;
1749
+ /* Function to duplicate internal fs rep. May
1750
+ * be NULL (but then fs is less efficient). */
1751
+ Tcl_FSFreeInternalRepProc *freeInternalRepProc;
1752
+ /* Function to free internal fs rep. Must be
1753
+ * implemented if internal representations
1754
+ * need freeing, otherwise it can be NULL. */
1755
+ Tcl_FSInternalToNormalizedProc *internalToNormalizedProc;
1756
+ /* Function to convert internal representation
1757
+ * to a normalized path. Only required if the
1758
+ * fs creates pure path objects with no
1759
+ * string/path representation. */
1760
+ Tcl_FSCreateInternalRepProc *createInternalRepProc;
1761
+ /* Function to create a filesystem-specific
1762
+ * internal representation. May be NULL if
1763
+ * paths have no internal representation, or
1764
+ * if the Tcl_FSPathInFilesystemProc for this
1765
+ * filesystem always immediately creates an
1766
+ * internal representation for paths it
1767
+ * accepts. */
1768
+ Tcl_FSNormalizePathProc *normalizePathProc;
1769
+ /* Function to normalize a path. Should be
1770
+ * implemented for all filesystems which can
1771
+ * have multiple string representations for
1772
+ * the same path object. */
1773
+ Tcl_FSFilesystemPathTypeProc *filesystemPathTypeProc;
1774
+ /* Function to determine the type of a path in
1775
+ * this filesystem. May be NULL. */
1776
+ Tcl_FSFilesystemSeparatorProc *filesystemSeparatorProc;
1777
+ /* Function to return the separator
1778
+ * character(s) for this filesystem. Must be
1779
+ * implemented. */
1780
+ Tcl_FSStatProc *statProc; /* Function to process a 'Tcl_FSStat()' call.
1781
+ * Must be implemented for any reasonable
1782
+ * filesystem. */
1783
+ Tcl_FSAccessProc *accessProc;
1784
+ /* Function to process a 'Tcl_FSAccess()'
1785
+ * call. Must be implemented for any
1786
+ * reasonable filesystem. */
1787
+ Tcl_FSOpenFileChannelProc *openFileChannelProc;
1788
+ /* Function to process a
1789
+ * 'Tcl_FSOpenFileChannel()' call. Must be
1790
+ * implemented for any reasonable
1791
+ * filesystem. */
1792
+ Tcl_FSMatchInDirectoryProc *matchInDirectoryProc;
1793
+ /* Function to process a
1794
+ * 'Tcl_FSMatchInDirectory()'. If not
1795
+ * implemented, then glob and recursive copy
1796
+ * functionality will be lacking in the
1797
+ * filesystem. */
1798
+ Tcl_FSUtimeProc *utimeProc; /* Function to process a 'Tcl_FSUtime()' call.
1799
+ * Required to allow setting (not reading) of
1800
+ * times with 'file mtime', 'file atime' and
1801
+ * the open-r/open-w/fcopy implementation of
1802
+ * 'file copy'. */
1803
+ Tcl_FSLinkProc *linkProc; /* Function to process a 'Tcl_FSLink()' call.
1804
+ * Should be implemented only if the
1805
+ * filesystem supports links (reading or
1806
+ * creating). */
1807
+ Tcl_FSListVolumesProc *listVolumesProc;
1808
+ /* Function to list any filesystem volumes
1809
+ * added by this filesystem. Should be
1810
+ * implemented only if the filesystem adds
1811
+ * volumes at the head of the filesystem. */
1812
+ Tcl_FSFileAttrStringsProc *fileAttrStringsProc;
1813
+ /* Function to list all attributes strings
1814
+ * which are valid for this filesystem. If not
1815
+ * implemented the filesystem will not support
1816
+ * the 'file attributes' command. This allows
1817
+ * arbitrary additional information to be
1818
+ * attached to files in the filesystem. */
1819
+ Tcl_FSFileAttrsGetProc *fileAttrsGetProc;
1820
+ /* Function to process a
1821
+ * 'Tcl_FSFileAttrsGet()' call, used by 'file
1822
+ * attributes'. */
1823
+ Tcl_FSFileAttrsSetProc *fileAttrsSetProc;
1824
+ /* Function to process a
1825
+ * 'Tcl_FSFileAttrsSet()' call, used by 'file
1826
+ * attributes'. */
1827
+ Tcl_FSCreateDirectoryProc *createDirectoryProc;
1828
+ /* Function to process a
1829
+ * 'Tcl_FSCreateDirectory()' call. Should be
1830
+ * implemented unless the FS is read-only. */
1831
+ Tcl_FSRemoveDirectoryProc *removeDirectoryProc;
1832
+ /* Function to process a
1833
+ * 'Tcl_FSRemoveDirectory()' call. Should be
1834
+ * implemented unless the FS is read-only. */
1835
+ Tcl_FSDeleteFileProc *deleteFileProc;
1836
+ /* Function to process a 'Tcl_FSDeleteFile()'
1837
+ * call. Should be implemented unless the FS
1838
+ * is read-only. */
1839
+ Tcl_FSCopyFileProc *copyFileProc;
1840
+ /* Function to process a 'Tcl_FSCopyFile()'
1841
+ * call. If not implemented Tcl will fall back
1842
+ * on open-r, open-w and fcopy as a copying
1843
+ * mechanism, for copying actions initiated in
1844
+ * Tcl (not C). */
1845
+ Tcl_FSRenameFileProc *renameFileProc;
1846
+ /* Function to process a 'Tcl_FSRenameFile()'
1847
+ * call. If not implemented, Tcl will fall
1848
+ * back on a copy and delete mechanism, for
1849
+ * rename actions initiated in Tcl (not C). */
1850
+ Tcl_FSCopyDirectoryProc *copyDirectoryProc;
1851
+ /* Function to process a
1852
+ * 'Tcl_FSCopyDirectory()' call. If not
1853
+ * implemented, Tcl will fall back on a
1854
+ * recursive create-dir, file copy mechanism,
1855
+ * for copying actions initiated in Tcl (not
1856
+ * C). */
1857
+ Tcl_FSLstatProc *lstatProc; /* Function to process a 'Tcl_FSLstat()' call.
1858
+ * If not implemented, Tcl will attempt to use
1859
+ * the 'statProc' defined above instead. */
1860
+ Tcl_FSLoadFileProc *loadFileProc;
1861
+ /* Function to process a 'Tcl_FSLoadFile()'
1862
+ * call. If not implemented, Tcl will fall
1863
+ * back on a copy to native-temp followed by a
1864
+ * Tcl_FSLoadFile on that temporary copy. */
1865
+ Tcl_FSGetCwdProc *getCwdProc;
1866
+ /* Function to process a 'Tcl_FSGetCwd()'
1867
+ * call. Most filesystems need not implement
1868
+ * this. It will usually only be called once,
1869
+ * if 'getcwd' is called before 'chdir'. May
1870
+ * be NULL. */
1871
+ Tcl_FSChdirProc *chdirProc; /* Function to process a 'Tcl_FSChdir()' call.
1872
+ * If filesystems do not implement this, it
1873
+ * will be emulated by a series of directory
1874
+ * access checks. Otherwise, virtual
1875
+ * filesystems which do implement it need only
1876
+ * respond with a positive return result if
1877
+ * the dirName is a valid directory in their
1878
+ * filesystem. They need not remember the
1879
+ * result, since that will be automatically
1880
+ * remembered for use by GetCwd. Real
1881
+ * filesystems should carry out the correct
1882
+ * action (i.e. call the correct system
1883
+ * 'chdir' api). If not implemented, then 'cd'
1884
+ * and 'pwd' will fail inside the
1885
+ * filesystem. */
1886
+} Tcl_Filesystem;
1887
+
1888
+/*
1889
+ * The following definitions are used as values for the 'linkAction' flag to
1890
+ * Tcl_FSLink, or the linkProc of any filesystem. Any combination of flags can
1891
+ * be given. For link creation, the linkProc should create a link which
1892
+ * matches any of the types given.
1893
+ *
1894
+ * TCL_CREATE_SYMBOLIC_LINK - Create a symbolic or soft link.
1895
+ * TCL_CREATE_HARD_LINK - Create a hard link.
1896
+ */
1897
+
1898
+#define TCL_CREATE_SYMBOLIC_LINK 0x01
1899
+#define TCL_CREATE_HARD_LINK 0x02
1900
+
1901
+/*
1902
+ *----------------------------------------------------------------------------
1903
+ * The following structure represents the Notifier functions that you can
1904
+ * override with the Tcl_SetNotifier call.
1905
+ */
1906
+
1907
+typedef struct Tcl_NotifierProcs {
1908
+ Tcl_SetTimerProc *setTimerProc;
1909
+ Tcl_WaitForEventProc *waitForEventProc;
1910
+ Tcl_CreateFileHandlerProc *createFileHandlerProc;
1911
+ Tcl_DeleteFileHandlerProc *deleteFileHandlerProc;
1912
+ Tcl_InitNotifierProc *initNotifierProc;
1913
+ Tcl_FinalizeNotifierProc *finalizeNotifierProc;
1914
+ Tcl_AlertNotifierProc *alertNotifierProc;
1915
+ Tcl_ServiceModeHookProc *serviceModeHookProc;
1916
+} Tcl_NotifierProcs;
1917
+
1918
+
1919
+/*
1920
+ *----------------------------------------------------------------------------
1921
+ * The following data structures and declarations are for the new Tcl parser.
1922
+ *
1923
+ * For each word of a command, and for each piece of a word such as a variable
1924
+ * reference, one of the following structures is created to describe the
1925
+ * token.
1926
+ */
1927
+
1928
+typedef struct Tcl_Token {
1929
+ int type; /* Type of token, such as TCL_TOKEN_WORD; see
1930
+ * below for valid types. */
1931
+ const char *start; /* First character in token. */
1932
+ int size; /* Number of bytes in token. */
1933
+ int numComponents; /* If this token is composed of other tokens,
1934
+ * this field tells how many of them there are
1935
+ * (including components of components, etc.).
1936
+ * The component tokens immediately follow
1937
+ * this one. */
1938
+} Tcl_Token;
1939
+
1940
+/*
1941
+ * Type values defined for Tcl_Token structures. These values are defined as
1942
+ * mask bits so that it's easy to check for collections of types.
1943
+ *
1944
+ * TCL_TOKEN_WORD - The token describes one word of a command,
1945
+ * from the first non-blank character of the word
1946
+ * (which may be " or {) up to but not including
1947
+ * the space, semicolon, or bracket that
1948
+ * terminates the word. NumComponents counts the
1949
+ * total number of sub-tokens that make up the
1950
+ * word. This includes, for example, sub-tokens
1951
+ * of TCL_TOKEN_VARIABLE tokens.
1952
+ * TCL_TOKEN_SIMPLE_WORD - This token is just like TCL_TOKEN_WORD except
1953
+ * that the word is guaranteed to consist of a
1954
+ * single TCL_TOKEN_TEXT sub-token.
1955
+ * TCL_TOKEN_TEXT - The token describes a range of literal text
1956
+ * that is part of a word. NumComponents is
1957
+ * always 0.
1958
+ * TCL_TOKEN_BS - The token describes a backslash sequence that
1959
+ * must be collapsed. NumComponents is always 0.
1960
+ * TCL_TOKEN_COMMAND - The token describes a command whose result
1961
+ * must be substituted into the word. The token
1962
+ * includes the enclosing brackets. NumComponents
1963
+ * is always 0.
1964
+ * TCL_TOKEN_VARIABLE - The token describes a variable substitution,
1965
+ * including the dollar sign, variable name, and
1966
+ * array index (if there is one) up through the
1967
+ * right parentheses. NumComponents tells how
1968
+ * many additional tokens follow to represent the
1969
+ * variable name. The first token will be a
1970
+ * TCL_TOKEN_TEXT token that describes the
1971
+ * variable name. If the variable is an array
1972
+ * reference then there will be one or more
1973
+ * additional tokens, of type TCL_TOKEN_TEXT,
1974
+ * TCL_TOKEN_BS, TCL_TOKEN_COMMAND, and
1975
+ * TCL_TOKEN_VARIABLE, that describe the array
1976
+ * index; numComponents counts the total number
1977
+ * of nested tokens that make up the variable
1978
+ * reference, including sub-tokens of
1979
+ * TCL_TOKEN_VARIABLE tokens.
1980
+ * TCL_TOKEN_SUB_EXPR - The token describes one subexpression of an
1981
+ * expression, from the first non-blank character
1982
+ * of the subexpression up to but not including
1983
+ * the space, brace, or bracket that terminates
1984
+ * the subexpression. NumComponents counts the
1985
+ * total number of following subtokens that make
1986
+ * up the subexpression; this includes all
1987
+ * subtokens for any nested TCL_TOKEN_SUB_EXPR
1988
+ * tokens. For example, a numeric value used as a
1989
+ * primitive operand is described by a
1990
+ * TCL_TOKEN_SUB_EXPR token followed by a
1991
+ * TCL_TOKEN_TEXT token. A binary subexpression
1992
+ * is described by a TCL_TOKEN_SUB_EXPR token
1993
+ * followed by the TCL_TOKEN_OPERATOR token for
1994
+ * the operator, then TCL_TOKEN_SUB_EXPR tokens
1995
+ * for the left then the right operands.
1996
+ * TCL_TOKEN_OPERATOR - The token describes one expression operator.
1997
+ * An operator might be the name of a math
1998
+ * function such as "abs". A TCL_TOKEN_OPERATOR
1999
+ * token is always preceeded by one
2000
+ * TCL_TOKEN_SUB_EXPR token for the operator's
2001
+ * subexpression, and is followed by zero or more
2002
+ * TCL_TOKEN_SUB_EXPR tokens for the operator's
2003
+ * operands. NumComponents is always 0.
2004
+ * TCL_TOKEN_EXPAND_WORD - This token is just like TCL_TOKEN_WORD except
2005
+ * that it marks a word that began with the
2006
+ * literal character prefix "{*}". This word is
2007
+ * marked to be expanded - that is, broken into
2008
+ * words after substitution is complete.
2009
+ */
2010
+
2011
+#define TCL_TOKEN_WORD 1
2012
+#define TCL_TOKEN_SIMPLE_WORD 2
2013
+#define TCL_TOKEN_TEXT 4
2014
+#define TCL_TOKEN_BS 8
2015
+#define TCL_TOKEN_COMMAND 16
2016
+#define TCL_TOKEN_VARIABLE 32
2017
+#define TCL_TOKEN_SUB_EXPR 64
2018
+#define TCL_TOKEN_OPERATOR 128
2019
+#define TCL_TOKEN_EXPAND_WORD 256
2020
+
2021
+/*
2022
+ * Parsing error types. On any parsing error, one of these values will be
2023
+ * stored in the error field of the Tcl_Parse structure defined below.
2024
+ */
2025
+
2026
+#define TCL_PARSE_SUCCESS 0
2027
+#define TCL_PARSE_QUOTE_EXTRA 1
2028
+#define TCL_PARSE_BRACE_EXTRA 2
2029
+#define TCL_PARSE_MISSING_BRACE 3
2030
+#define TCL_PARSE_MISSING_BRACKET 4
2031
+#define TCL_PARSE_MISSING_PAREN 5
2032
+#define TCL_PARSE_MISSING_QUOTE 6
2033
+#define TCL_PARSE_MISSING_VAR_BRACE 7
2034
+#define TCL_PARSE_SYNTAX 8
2035
+#define TCL_PARSE_BAD_NUMBER 9
2036
+
2037
+/*
2038
+ * A structure of the following type is filled in by Tcl_ParseCommand. It
2039
+ * describes a single command parsed from an input string.
2040
+ */
2041
+
2042
+#define NUM_STATIC_TOKENS 20
2043
+
2044
+typedef struct Tcl_Parse {
2045
+ const char *commentStart; /* Pointer to # that begins the first of one
2046
+ * or more comments preceding the command. */
2047
+ int commentSize; /* Number of bytes in comments (up through
2048
+ * newline character that terminates the last
2049
+ * comment). If there were no comments, this
2050
+ * field is 0. */
2051
+ const char *commandStart; /* First character in first word of
2052
+ * command. */
2053
+ int commandSize; /* Number of bytes in command, including first
2054
+ * character of first word, up through the
2055
+ * terminating newline, close bracket, or
2056
+ * semicolon. */
2057
+ int numWords; /* Total number of words in command. May be
2058
+ * 0. */
2059
+ Tcl_Token *tokenPtr; /* Pointer to first token representing the
2060
+ * words of the command. Initially points to
2061
+ * staticTokens, but may change to point to
2062
+ * malloc-ed space if command exceeds space in
2063
+ * staticTokens. */
2064
+ int numTokens; /* Total number of tokens in command. */
2065
+ int tokensAvailable; /* Total number of tokens available at
2066
+ * *tokenPtr. */
2067
+ int errorType; /* One of the parsing error types defined
2068
+ * above. */
2069
+
2070
+ /*
2071
+ * The fields below are intended only for the private use of the parser.
2072
+ * They should not be used by functions that invoke Tcl_ParseCommand.
2073
+ */
2074
+
2075
+ const char *string; /* The original command string passed to
2076
+ * Tcl_ParseCommand. */
2077
+ const char *end; /* Points to the character just after the last
2078
+ * one in the command string. */
2079
+ Tcl_Interp *interp; /* Interpreter to use for error reporting, or
2080
+ * NULL. */
2081
+ const char *term; /* Points to character in string that
2082
+ * terminated most recent token. Filled in by
2083
+ * ParseTokens. If an error occurs, points to
2084
+ * beginning of region where the error
2085
+ * occurred (e.g. the open brace if the close
2086
+ * brace is missing). */
2087
+ int incomplete; /* This field is set to 1 by Tcl_ParseCommand
2088
+ * if the command appears to be incomplete.
2089
+ * This information is used by
2090
+ * Tcl_CommandComplete. */
2091
+ Tcl_Token staticTokens[NUM_STATIC_TOKENS];
2092
+ /* Initial space for tokens for command. This
2093
+ * space should be large enough to accommodate
2094
+ * most commands; dynamic space is allocated
2095
+ * for very large commands that don't fit
2096
+ * here. */
2097
+} Tcl_Parse;
2098
+
2099
+
2100
+/*
2101
+ *----------------------------------------------------------------------------
2102
+ * The following structure represents a user-defined encoding. It collects
2103
+ * together all the functions that are used by the specific encoding.
2104
+ */
2105
+
2106
+typedef struct Tcl_EncodingType {
2107
+ const char *encodingName; /* The name of the encoding, e.g. "euc-jp".
2108
+ * This name is the unique key for this
2109
+ * encoding type. */
2110
+ Tcl_EncodingConvertProc *toUtfProc;
2111
+ /* Function to convert from external encoding
2112
+ * into UTF-8. */
2113
+ Tcl_EncodingConvertProc *fromUtfProc;
2114
+ /* Function to convert from UTF-8 into
2115
+ * external encoding. */
2116
+ Tcl_EncodingFreeProc *freeProc;
2117
+ /* If non-NULL, function to call when this
2118
+ * encoding is deleted. */
2119
+ ClientData clientData; /* Arbitrary value associated with encoding
2120
+ * type. Passed to conversion functions. */
2121
+ int nullSize; /* Number of zero bytes that signify
2122
+ * end-of-string in this encoding. This number
2123
+ * is used to determine the source string
2124
+ * length when the srcLen argument is
2125
+ * negative. Must be 1 or 2. */
2126
+} Tcl_EncodingType;
2127
+
2128
+/*
2129
+ * The following definitions are used as values for the conversion control
2130
+ * flags argument when converting text from one character set to another:
2131
+ *
2132
+ * TCL_ENCODING_START - Signifies that the source buffer is the first
2133
+ * block in a (potentially multi-block) input
2134
+ * stream. Tells the conversion function to reset
2135
+ * to an initial state and perform any
2136
+ * initialization that needs to occur before the
2137
+ * first byte is converted. If the source buffer
2138
+ * contains the entire input stream to be
2139
+ * converted, this flag should be set.
2140
+ * TCL_ENCODING_END - Signifies that the source buffer is the last
2141
+ * block in a (potentially multi-block) input
2142
+ * stream. Tells the conversion routine to
2143
+ * perform any finalization that needs to occur
2144
+ * after the last byte is converted and then to
2145
+ * reset to an initial state. If the source
2146
+ * buffer contains the entire input stream to be
2147
+ * converted, this flag should be set.
2148
+ * TCL_ENCODING_STOPONERROR - If set, then the converter will return
2149
+ * immediately upon encountering an invalid byte
2150
+ * sequence or a source character that has no
2151
+ * mapping in the target encoding. If clear, then
2152
+ * the converter will skip the problem,
2153
+ * substituting one or more "close" characters in
2154
+ * the destination buffer and then continue to
2155
+ * convert the source.
2156
+ */
2157
+
2158
+#define TCL_ENCODING_START 0x01
2159
+#define TCL_ENCODING_END 0x02
2160
+#define TCL_ENCODING_STOPONERROR 0x04
2161
+
2162
+/*
2163
+ * The following definitions are the error codes returned by the conversion
2164
+ * routines:
2165
+ *
2166
+ * TCL_OK - All characters were converted.
2167
+ * TCL_CONVERT_NOSPACE - The output buffer would not have been large
2168
+ * enough for all of the converted data; as many
2169
+ * characters as could fit were converted though.
2170
+ * TCL_CONVERT_MULTIBYTE - The last few bytes in the source string were
2171
+ * the beginning of a multibyte sequence, but
2172
+ * more bytes were needed to complete this
2173
+ * sequence. A subsequent call to the conversion
2174
+ * routine should pass the beginning of this
2175
+ * unconverted sequence plus additional bytes
2176
+ * from the source stream to properly convert the
2177
+ * formerly split-up multibyte sequence.
2178
+ * TCL_CONVERT_SYNTAX - The source stream contained an invalid
2179
+ * character sequence. This may occur if the
2180
+ * input stream has been damaged or if the input
2181
+ * encoding method was misidentified. This error
2182
+ * is reported only if TCL_ENCODING_STOPONERROR
2183
+ * was specified.
2184
+ * TCL_CONVERT_UNKNOWN - The source string contained a character that
2185
+ * could not be represented in the target
2186
+ * encoding. This error is reported only if
2187
+ * TCL_ENCODING_STOPONERROR was specified.
2188
+ */
2189
+
2190
+#define TCL_CONVERT_MULTIBYTE (-1)
2191
+#define TCL_CONVERT_SYNTAX (-2)
2192
+#define TCL_CONVERT_UNKNOWN (-3)
2193
+#define TCL_CONVERT_NOSPACE (-4)
2194
+
2195
+/*
2196
+ * The maximum number of bytes that are necessary to represent a single
2197
+ * Unicode character in UTF-8. The valid values should be 3, 4 or 6
2198
+ * (or perhaps 1 if we want to support a non-unicode enabled core). If 3 or
2199
+ * 4, then Tcl_UniChar must be 2-bytes in size (UCS-2) (the default). If 6,
2200
+ * then Tcl_UniChar must be 4-bytes in size (UCS-4). At this time UCS-2 mode
2201
+ * is the default and recommended mode. UCS-4 is experimental and not
2202
+ * recommended. It works for the core, but most extensions expect UCS-2.
2203
+ */
2204
+
2205
+#ifndef TCL_UTF_MAX
2206
+#define TCL_UTF_MAX 3
2207
+#endif
2208
+
2209
+/*
2210
+ * This represents a Unicode character. Any changes to this should also be
2211
+ * reflected in regcustom.h.
2212
+ */
2213
+
2214
+#if TCL_UTF_MAX > 4
2215
+ /*
2216
+ * unsigned int isn't 100% accurate as it should be a strict 4-byte value
2217
+ * (perhaps wchar_t). 64-bit systems may have troubles. The size of this
2218
+ * value must be reflected correctly in regcustom.h and
2219
+ * in tclEncoding.c.
2220
+ * XXX: Tcl is currently UCS-2 and planning UTF-16 for the Unicode
2221
+ * XXX: string rep that Tcl_UniChar represents. Changing the size
2222
+ * XXX: of Tcl_UniChar is /not/ supported.
2223
+ */
2224
+typedef unsigned int Tcl_UniChar;
2225
+#else
2226
+typedef unsigned short Tcl_UniChar;
2227
+#endif
2228
+
2229
+
2230
+/*
2231
+ *----------------------------------------------------------------------------
2232
+ * TIP #59: The following structure is used in calls 'Tcl_RegisterConfig' to
2233
+ * provide the system with the embedded configuration data.
2234
+ */
2235
+
2236
+typedef struct Tcl_Config {
2237
+ const char *key; /* Configuration key to register. ASCII
2238
+ * encoded, thus UTF-8. */
2239
+ const char *value; /* The value associated with the key. System
2240
+ * encoding. */
2241
+} Tcl_Config;
2242
+
2243
+/*
2244
+ *----------------------------------------------------------------------------
2245
+ * Flags for TIP#143 limits, detailing which limits are active in an
2246
+ * interpreter. Used for Tcl_{Add,Remove}LimitHandler type argument.
2247
+ */
2248
+
2249
+#define TCL_LIMIT_COMMANDS 0x01
2250
+#define TCL_LIMIT_TIME 0x02
2251
+
2252
+/*
2253
+ * Structure containing information about a limit handler to be called when a
2254
+ * command- or time-limit is exceeded by an interpreter.
2255
+ */
2256
+
2257
+typedef void (Tcl_LimitHandlerProc) (ClientData clientData, Tcl_Interp *interp);
2258
+typedef void (Tcl_LimitHandlerDeleteProc) (ClientData clientData);
2259
+
2260
+/*
2261
+ *----------------------------------------------------------------------------
2262
+ * Override definitions for libtommath.
2263
+ */
2264
+
2265
+typedef struct mp_int mp_int;
2266
+#define MP_INT_DECLARED
2267
+typedef unsigned int mp_digit;
2268
+#define MP_DIGIT_DECLARED
2269
+
2270
+/*
2271
+ *----------------------------------------------------------------------------
2272
+ * Definitions needed for Tcl_ParseArgvObj routines.
2273
+ * Based on tkArgv.c.
2274
+ * Modifications from the original are copyright (c) Sam Bromley 2006
2275
+ */
2276
+
2277
+typedef struct {
2278
+ int type; /* Indicates the option type; see below. */
2279
+ const char *keyStr; /* The key string that flags the option in the
2280
+ * argv array. */
2281
+ void *srcPtr; /* Value to be used in setting dst; usage
2282
+ * depends on type.*/
2283
+ void *dstPtr; /* Address of value to be modified; usage
2284
+ * depends on type.*/
2285
+ const char *helpStr; /* Documentation message describing this
2286
+ * option. */
2287
+ ClientData clientData; /* Word to pass to function callbacks. */
2288
+} Tcl_ArgvInfo;
2289
+
2290
+/*
2291
+ * Legal values for the type field of a Tcl_ArgInfo: see the user
2292
+ * documentation for details.
2293
+ */
2294
+
2295
+#define TCL_ARGV_CONSTANT 15
2296
+#define TCL_ARGV_INT 16
2297
+#define TCL_ARGV_STRING 17
2298
+#define TCL_ARGV_REST 18
2299
+#define TCL_ARGV_FLOAT 19
2300
+#define TCL_ARGV_FUNC 20
2301
+#define TCL_ARGV_GENFUNC 21
2302
+#define TCL_ARGV_HELP 22
2303
+#define TCL_ARGV_END 23
2304
+
2305
+/*
2306
+ * Types of callback functions for the TCL_ARGV_FUNC and TCL_ARGV_GENFUNC
2307
+ * argument types:
2308
+ */
2309
+
2310
+typedef int (Tcl_ArgvFuncProc)(ClientData clientData, Tcl_Obj *objPtr,
2311
+ void *dstPtr);
2312
+typedef int (Tcl_ArgvGenFuncProc)(ClientData clientData, Tcl_Interp *interp,
2313
+ int objc, Tcl_Obj *const *objv, void *dstPtr);
2314
+
2315
+/*
2316
+ * Shorthand for commonly used argTable entries.
2317
+ */
2318
+
2319
+#define TCL_ARGV_AUTO_HELP \
2320
+ {TCL_ARGV_HELP, "-help", NULL, NULL, \
2321
+ "Print summary of command-line options and abort", NULL}
2322
+#define TCL_ARGV_AUTO_REST \
2323
+ {TCL_ARGV_REST, "--", NULL, NULL, \
2324
+ "Marks the end of the options", NULL}
2325
+#define TCL_ARGV_TABLE_END \
2326
+ {TCL_ARGV_END, NULL, NULL, NULL, NULL, NULL}
2327
+
2328
+/*
2329
+ *----------------------------------------------------------------------------
2330
+ * Definitions needed for Tcl_Zlib routines. [TIP #234]
2331
+ *
2332
+ * Constants for the format flags describing what sort of data format is
2333
+ * desired/expected for the Tcl_ZlibDeflate, Tcl_ZlibInflate and
2334
+ * Tcl_ZlibStreamInit functions.
2335
+ */
2336
+
2337
+#define TCL_ZLIB_FORMAT_RAW 1
2338
+#define TCL_ZLIB_FORMAT_ZLIB 2
2339
+#define TCL_ZLIB_FORMAT_GZIP 4
2340
+#define TCL_ZLIB_FORMAT_AUTO 8
2341
+
2342
+/*
2343
+ * Constants that describe whether the stream is to operate in compressing or
2344
+ * decompressing mode.
2345
+ */
2346
+
2347
+#define TCL_ZLIB_STREAM_DEFLATE 16
2348
+#define TCL_ZLIB_STREAM_INFLATE 32
2349
+
2350
+/*
2351
+ * Constants giving compression levels. Use of TCL_ZLIB_COMPRESS_DEFAULT is
2352
+ * recommended.
2353
+ */
2354
+
2355
+#define TCL_ZLIB_COMPRESS_NONE 0
2356
+#define TCL_ZLIB_COMPRESS_FAST 1
2357
+#define TCL_ZLIB_COMPRESS_BEST 9
2358
+#define TCL_ZLIB_COMPRESS_DEFAULT (-1)
2359
+
2360
+/*
2361
+ * Constants for types of flushing, used with Tcl_ZlibFlush.
2362
+ */
2363
+
2364
+#define TCL_ZLIB_NO_FLUSH 0
2365
+#define TCL_ZLIB_FLUSH 2
2366
+#define TCL_ZLIB_FULLFLUSH 3
2367
+#define TCL_ZLIB_FINALIZE 4
2368
+
2369
+/*
2370
+ *----------------------------------------------------------------------------
2371
+ * Definitions needed for the Tcl_LoadFile function. [TIP #416]
2372
+ */
2373
+
2374
+#define TCL_LOAD_GLOBAL 1
2375
+#define TCL_LOAD_LAZY 2
2376
+
2377
+/*
2378
+ *----------------------------------------------------------------------------
2379
+ * Single public declaration for NRE.
2380
+ */
2381
+
2382
+typedef int (Tcl_NRPostProc) (ClientData data[], Tcl_Interp *interp,
2383
+ int result);
2384
+
2385
+/*
2386
+ *----------------------------------------------------------------------------
2387
+ * The following constant is used to test for older versions of Tcl in the
2388
+ * stubs tables.
2389
+ *
2390
+ * Jan Nijtman's plus patch uses 0xFCA1BACF, so we need to pick a different
2391
+ * value since the stubs tables don't match.
2392
+ */
2393
+
2394
+#define TCL_STUB_MAGIC ((int) 0xFCA3BACF)
2395
+
2396
+/*
2397
+ * The following function is required to be defined in all stubs aware
2398
+ * extensions. The function is actually implemented in the stub library, not
2399
+ * the main Tcl library, although there is a trivial implementation in the
2400
+ * main library in case an extension is statically linked into an application.
2401
+ */
2402
+
2403
+const char * Tcl_InitStubs(Tcl_Interp *interp, const char *version,
2404
+ int exact);
2405
+const char * TclTomMathInitializeStubs(Tcl_Interp *interp,
2406
+ const char *version, int epoch, int revision);
2407
+
2408
+/*
2409
+ * When not using stubs, make it a macro.
2410
+ */
2411
+
2412
+#ifndef USE_TCL_STUBS
2413
+#define Tcl_InitStubs(interp, version, exact) \
2414
+ Tcl_PkgInitStubsCheck(interp, version, exact)
2415
+#endif
2416
+
2417
+/*
2418
+ * TODO - tommath stubs export goes here!
2419
+ */
2420
+
2421
+/*
2422
+ * Public functions that are not accessible via the stubs table.
2423
+ * Tcl_GetMemoryInfo is needed for AOLserver. [Bug 1868171]
2424
+ */
2425
+
2426
+#define Tcl_Main(argc, argv, proc) Tcl_MainEx(argc, argv, proc, \
2427
+ (Tcl_FindExecutable(argv[0]), (Tcl_CreateInterp)()))
2428
+EXTERN void Tcl_MainEx(int argc, char **argv,
2429
+ Tcl_AppInitProc *appInitProc, Tcl_Interp *interp);
2430
+EXTERN const char * Tcl_PkgInitStubsCheck(Tcl_Interp *interp,
2431
+ const char *version, int exact);
2432
+#if defined(TCL_THREADS) && defined(USE_THREAD_ALLOC)
2433
+EXTERN void Tcl_GetMemoryInfo(Tcl_DString *dsPtr);
2434
+#endif
2435
+
2436
+
2437
+/*
2438
+ *----------------------------------------------------------------------------
2439
+ * Include the public function declarations that are accessible via the stubs
2440
+ * table.
2441
+ */
2442
+
2443
+#include "tclDecls.h"
2444
+
2445
+/*
2446
+ * Include platform specific public function declarations that are accessible
2447
+ * via the stubs table.
2448
+ */
2449
+
2450
+#include "tclPlatDecls.h"
2451
+
2452
+/*
2453
+ *----------------------------------------------------------------------------
2454
+ * The following declarations either map ckalloc and ckfree to malloc and
2455
+ * free, or they map them to functions with all sorts of debugging hooks
2456
+ * defined in tclCkalloc.c.
2457
+ */
2458
+
2459
+#ifdef TCL_MEM_DEBUG
2460
+
2461
+# define ckalloc(x) \
2462
+ ((VOID *) Tcl_DbCkalloc((unsigned)(x), __FILE__, __LINE__))
2463
+# define ckfree(x) \
2464
+ Tcl_DbCkfree((char *)(x), __FILE__, __LINE__)
2465
+# define ckrealloc(x,y) \
2466
+ ((VOID *) Tcl_DbCkrealloc((char *)(x), (unsigned)(y), __FILE__, __LINE__))
2467
+# define attemptckalloc(x) \
2468
+ ((VOID *) Tcl_AttemptDbCkalloc((unsigned)(x), __FILE__, __LINE__))
2469
+# define attemptckrealloc(x,y) \
2470
+ ((VOID *) Tcl_AttemptDbCkrealloc((char *)(x), (unsigned)(y), __FILE__, __LINE__))
2471
+
2472
+#else /* !TCL_MEM_DEBUG */
2473
+
2474
+/*
2475
+ * If we are not using the debugging allocator, we should call the Tcl_Alloc,
2476
+ * et al. routines in order to guarantee that every module is using the same
2477
+ * memory allocator both inside and outside of the Tcl library.
2478
+ */
2479
+
2480
+# define ckalloc(x) \
2481
+ ((VOID *) Tcl_Alloc((unsigned)(x)))
2482
+# define ckfree(x) \
2483
+ Tcl_Free((char *)(x))
2484
+# define ckrealloc(x,y) \
2485
+ ((VOID *) Tcl_Realloc((char *)(x), (unsigned)(y)))
2486
+# define attemptckalloc(x) \
2487
+ ((VOID *) Tcl_AttemptAlloc((unsigned)(x)))
2488
+# define attemptckrealloc(x,y) \
2489
+ ((VOID *) Tcl_AttemptRealloc((char *)(x), (unsigned)(y)))
2490
+# undef Tcl_InitMemory
2491
+# define Tcl_InitMemory(x)
2492
+# undef Tcl_DumpActiveMemory
2493
+# define Tcl_DumpActiveMemory(x)
2494
+# undef Tcl_ValidateAllMemory
2495
+# define Tcl_ValidateAllMemory(x,y)
2496
+
2497
+#endif /* !TCL_MEM_DEBUG */
2498
+
2499
+#ifdef TCL_MEM_DEBUG
2500
+# define Tcl_IncrRefCount(objPtr) \
2501
+ Tcl_DbIncrRefCount(objPtr, __FILE__, __LINE__)
2502
+# define Tcl_DecrRefCount(objPtr) \
2503
+ Tcl_DbDecrRefCount(objPtr, __FILE__, __LINE__)
2504
+# define Tcl_IsShared(objPtr) \
2505
+ Tcl_DbIsShared(objPtr, __FILE__, __LINE__)
2506
+#else
2507
+# define Tcl_IncrRefCount(objPtr) \
2508
+ ++(objPtr)->refCount
2509
+ /*
2510
+ * Use do/while0 idiom for optimum correctness without compiler warnings.
2511
+ * http://c2.com/cgi/wiki?TrivialDoWhileLoop
2512
+ */
2513
+# define Tcl_DecrRefCount(objPtr) \
2514
+ do { \
2515
+ Tcl_Obj *_objPtr = (objPtr); \
2516
+ if (--(_objPtr)->refCount <= 0) { \
2517
+ TclFreeObj(_objPtr); \
2518
+ } \
2519
+ } while(0)
2520
+# define Tcl_IsShared(objPtr) \
2521
+ ((objPtr)->refCount > 1)
2522
+#endif
2523
+
2524
+/*
2525
+ * Macros and definitions that help to debug the use of Tcl objects. When
2526
+ * TCL_MEM_DEBUG is defined, the Tcl_New declarations are overridden to call
2527
+ * debugging versions of the object creation functions.
2528
+ */
2529
+
2530
+#ifdef TCL_MEM_DEBUG
2531
+# undef Tcl_NewBignumObj
2532
+# define Tcl_NewBignumObj(val) \
2533
+ Tcl_DbNewBignumObj(val, __FILE__, __LINE__)
2534
+# undef Tcl_NewBooleanObj
2535
+# define Tcl_NewBooleanObj(val) \
2536
+ Tcl_DbNewBooleanObj(val, __FILE__, __LINE__)
2537
+# undef Tcl_NewByteArrayObj
2538
+# define Tcl_NewByteArrayObj(bytes, len) \
2539
+ Tcl_DbNewByteArrayObj(bytes, len, __FILE__, __LINE__)
2540
+# undef Tcl_NewDoubleObj
2541
+# define Tcl_NewDoubleObj(val) \
2542
+ Tcl_DbNewDoubleObj(val, __FILE__, __LINE__)
2543
+# undef Tcl_NewIntObj
2544
+# define Tcl_NewIntObj(val) \
2545
+ Tcl_DbNewLongObj(val, __FILE__, __LINE__)
2546
+# undef Tcl_NewListObj
2547
+# define Tcl_NewListObj(objc, objv) \
2548
+ Tcl_DbNewListObj(objc, objv, __FILE__, __LINE__)
2549
+# undef Tcl_NewLongObj
2550
+# define Tcl_NewLongObj(val) \
2551
+ Tcl_DbNewLongObj(val, __FILE__, __LINE__)
2552
+# undef Tcl_NewObj
2553
+# define Tcl_NewObj() \
2554
+ Tcl_DbNewObj(__FILE__, __LINE__)
2555
+# undef Tcl_NewStringObj
2556
+# define Tcl_NewStringObj(bytes, len) \
2557
+ Tcl_DbNewStringObj(bytes, len, __FILE__, __LINE__)
2558
+# undef Tcl_NewWideIntObj
2559
+# define Tcl_NewWideIntObj(val) \
2560
+ Tcl_DbNewWideIntObj(val, __FILE__, __LINE__)
2561
+#endif /* TCL_MEM_DEBUG */
2562
+
2563
+/*
2564
+ *----------------------------------------------------------------------------
2565
+ * Macros for clients to use to access fields of hash entries:
2566
+ */
2567
+
2568
+#define Tcl_GetHashValue(h) ((h)->clientData)
2569
+#define Tcl_SetHashValue(h, value) ((h)->clientData = (ClientData) (value))
2570
+#define Tcl_GetHashKey(tablePtr, h) \
2571
+ ((void *) (((tablePtr)->keyType == TCL_ONE_WORD_KEYS || \
2572
+ (tablePtr)->keyType == TCL_CUSTOM_PTR_KEYS) \
2573
+ ? (h)->key.oneWordValue \
2574
+ : (h)->key.string))
2575
+
2576
+/*
2577
+ * Macros to use for clients to use to invoke find and create functions for
2578
+ * hash tables:
2579
+ */
2580
+
2581
+#undef Tcl_FindHashEntry
2582
+#define Tcl_FindHashEntry(tablePtr, key) \
2583
+ (*((tablePtr)->findProc))(tablePtr, (const char *)(key))
2584
+#undef Tcl_CreateHashEntry
2585
+#define Tcl_CreateHashEntry(tablePtr, key, newPtr) \
2586
+ (*((tablePtr)->createProc))(tablePtr, (const char *)(key), newPtr)
2587
+
2588
+/*
2589
+ *----------------------------------------------------------------------------
2590
+ * Macros that eliminate the overhead of the thread synchronization functions
2591
+ * when compiling without thread support.
2592
+ */
2593
+
2594
+#ifndef TCL_THREADS
2595
+#undef Tcl_MutexLock
2596
+#define Tcl_MutexLock(mutexPtr)
2597
+#undef Tcl_MutexUnlock
2598
+#define Tcl_MutexUnlock(mutexPtr)
2599
+#undef Tcl_MutexFinalize
2600
+#define Tcl_MutexFinalize(mutexPtr)
2601
+#undef Tcl_ConditionNotify
2602
+#define Tcl_ConditionNotify(condPtr)
2603
+#undef Tcl_ConditionWait
2604
+#define Tcl_ConditionWait(condPtr, mutexPtr, timePtr)
2605
+#undef Tcl_ConditionFinalize
2606
+#define Tcl_ConditionFinalize(condPtr)
2607
+#endif /* TCL_THREADS */
2608
+
2609
+/*
2610
+ *----------------------------------------------------------------------------
2611
+ * Deprecated Tcl functions:
2612
+ */
2613
+
2614
+#ifndef TCL_NO_DEPRECATED
2615
+# undef Tcl_EvalObj
2616
+# define Tcl_EvalObj(interp,objPtr) \
2617
+ Tcl_EvalObjEx((interp),(objPtr),0)
2618
+# undef Tcl_GlobalEvalObj
2619
+# define Tcl_GlobalEvalObj(interp,objPtr) \
2620
+ Tcl_EvalObjEx((interp),(objPtr),TCL_EVAL_GLOBAL)
2621
+
2622
+/*
2623
+ * These function have been renamed. The old names are deprecated, but we
2624
+ * define these macros for backwards compatibilty.
2625
+ */
2626
+
2627
+# define Tcl_Ckalloc Tcl_Alloc
2628
+# define Tcl_Ckfree Tcl_Free
2629
+# define Tcl_Ckrealloc Tcl_Realloc
2630
+# define Tcl_Return Tcl_SetResult
2631
+# define Tcl_TildeSubst Tcl_TranslateFileName
2632
+# define panic Tcl_Panic
2633
+# define panicVA Tcl_PanicVA
2634
+#endif /* !TCL_NO_DEPRECATED */
2635
+
2636
+/*
2637
+ *----------------------------------------------------------------------------
2638
+ * Convenience declaration of Tcl_AppInit for backwards compatibility. This
2639
+ * function is not *implemented* by the tcl library, so the storage class is
2640
+ * neither DLLEXPORT nor DLLIMPORT.
2641
+ */
2642
+
2643
+extern Tcl_AppInitProc Tcl_AppInit;
2644
+
2645
+#endif /* RC_INVOKED */
2646
+
2647
+/*
2648
+ * end block for C++
2649
+ */
2650
+
2651
+#ifdef __cplusplus
2652
+}
2653
+#endif
2654
+
2655
+#endif /* _TCL */
2656
+
2657
+
2658
+/*
2659
+ * Local Variables:
2660
+ * mode: c
2661
+ * c-basic-offset: 4
2662
+ * fill-column: 78
2663
+ * End:
2664
+ */
--- a/compat/tcl-8.6/generic/tcl.h
+++ b/compat/tcl-8.6/generic/tcl.h
@@ -0,0 +1,2664 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
--- a/compat/tcl-8.6/generic/tcl.h
+++ b/compat/tcl-8.6/generic/tcl.h
@@ -0,0 +1,2664 @@
1 /*
2 * tcl.h --
3 *
4 * This header file describes the externally-visible facilities of the
5 * Tcl interpreter.
6 *
7 * Copyright (c) 1987-1994 The Regents of the University of California.
8 * Copyright (c) 1993-1996 Lucent Technologies.
9 * Copyright (c) 1994-1998 Sun Microsystems, Inc.
10 * Copyright (c) 1998-2000 by Scriptics Corporation.
11 * Copyright (c) 2002 by Kevin B. Kenny. All rights reserved.
12 *
13 * See the file "license.terms" for information on usage and redistribution of
14 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
15 */
16
17 #ifndef _TCL
18 #define _TCL
19
20 /*
21 * For C++ compilers, use extern "C"
22 */
23
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27
28 /*
29 * The following defines are used to indicate the various release levels.
30 */
31
32 #define TCL_ALPHA_RELEASE 0
33 #define TCL_BETA_RELEASE 1
34 #define TCL_FINAL_RELEASE 2
35
36 /*
37 * When version numbers change here, must also go into the following files and
38 * update the version numbers:
39 *
40 * library/init.tcl (1 LOC patch)
41 * unix/configure.in (2 LOC Major, 2 LOC minor, 1 LOC patch)
42 * win/configure.in (as above)
43 * win/tcl.m4 (not patchlevel)
44 * win/makefile.bc (not patchlevel) 2 LOC
45 * README (sections 0 and 2, with and without separator)
46 * macosx/Tcl.pbproj/project.pbxproj (not patchlevel) 1 LOC
47 * macosx/Tcl.pbproj/default.pbxuser (not patchlevel) 1 LOC
48 * macosx/Tcl.xcode/project.pbxproj (not patchlevel) 2 LOC
49 * macosx/Tcl.xcode/default.pbxuser (not patchlevel) 1 LOC
50 * macosx/Tcl-Common.xcconfig (not patchlevel) 1 LOC
51 * win/README (not patchlevel) (sections 0 and 2)
52 * unix/tcl.spec (1 LOC patch)
53 * tools/tcl.hpj.in (not patchlevel, for windows installer)
54 */
55
56 #define TCL_MAJOR_VERSION 8
57 #define TCL_MINOR_VERSION 6
58 #define TCL_RELEASE_LEVEL TCL_FINAL_RELEASE
59 #define TCL_RELEASE_SERIAL 0
60
61 #define TCL_VERSION "8.6"
62 #define TCL_PATCH_LEVEL "8.6.0"
63
64
65 /*
66 *----------------------------------------------------------------------------
67 * The following definitions set up the proper options for Windows compilers.
68 * We use this method because there is no autoconf equivalent.
69 */
70
71 #ifndef __WIN32__
72 # if defined(_WIN32) || defined(WIN32) || defined(__MINGW32__) || defined(__BORLANDC__) || (defined(__WATCOMC__) && defined(__WINDOWS_386__))
73 # define __WIN32__
74 # ifndef WIN32
75 # define WIN32
76 # endif
77 # ifndef _WIN32
78 # define _WIN32
79 # endif
80 # endif
81 #endif
82
83 /*
84 * STRICT: See MSDN Article Q83456
85 */
86
87 #ifdef __WIN32__
88 # ifndef STRICT
89 # define STRICT
90 # endif
91 #endif /* __WIN32__ */
92
93 /*
94 * Utility macros: STRINGIFY takes an argument and wraps it in "" (double
95 * quotation marks), JOIN joins two arguments.
96 */
97
98 #ifndef STRINGIFY
99 # define STRINGIFY(x) STRINGIFY1(x)
100 # define STRINGIFY1(x) #x
101 #endif
102 #ifndef JOIN
103 # define JOIN(a,b) JOIN1(a,b)
104 # define JOIN1(a,b) a##b
105 #endif
106
107 /*
108 * A special definition used to allow this header file to be included from
109 * windows resource files so that they can obtain version information.
110 * RC_INVOKED is defined by default by the windows RC tool.
111 *
112 * Resource compilers don't like all the C stuff, like typedefs and function
113 * declarations, that occur below, so block them out.
114 */
115
116 #ifndef RC_INVOKED
117
118 /*
119 * Special macro to define mutexes, that doesn't do anything if we are not
120 * using threads.
121 */
122
123 #ifdef TCL_THREADS
124 #define TCL_DECLARE_MUTEX(name) static Tcl_Mutex name;
125 #else
126 #define TCL_DECLARE_MUTEX(name)
127 #endif
128
129 /*
130 * Tcl's public routine Tcl_FSSeek() uses the values SEEK_SET, SEEK_CUR, and
131 * SEEK_END, all #define'd by stdio.h .
132 *
133 * Also, many extensions need stdio.h, and they've grown accustomed to tcl.h
134 * providing it for them rather than #include-ing it themselves as they
135 * should, so also for their sake, we keep the #include to be consistent with
136 * prior Tcl releases.
137 */
138
139 #include <stdio.h>
140
141 /*
142 *----------------------------------------------------------------------------
143 * Support for functions with a variable number of arguments.
144 *
145 * The following TCL_VARARGS* macros are to support old extensions
146 * written for older versions of Tcl where the macros permitted
147 * support for the varargs.h system as well as stdarg.h .
148 *
149 * New code should just directly be written to use stdarg.h conventions.
150 */
151
152 #include <stdarg.h>
153 #ifndef TCL_NO_DEPRECATED
154 # define TCL_VARARGS(type, name) (type name, ...)
155 # define TCL_VARARGS_DEF(type, name) (type name, ...)
156 # define TCL_VARARGS_START(type, name, list) (va_start(list, name), name)
157 #endif
158 #if defined(__GNUC__) && (__GNUC__ > 2)
159 # define TCL_FORMAT_PRINTF(a,b) __attribute__ ((__format__ (__printf__, a, b)))
160 #else
161 # define TCL_FORMAT_PRINTF(a,b)
162 #endif
163
164 /*
165 * Allow a part of Tcl's API to be explicitly marked as deprecated.
166 *
167 * Used to make TIP 330/336 generate moans even if people use the
168 * compatibility macros. Change your code, guys! We won't support you forever.
169 */
170
171 #if defined(__GNUC__) && ((__GNUC__ >= 4) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1)))
172 # if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC__MINOR__ >= 5))
173 # define TCL_DEPRECATED_API(msg) __attribute__ ((__deprecated__ (msg)))
174 # else
175 # define TCL_DEPRECATED_API(msg) __attribute__ ((__deprecated__))
176 # endif
177 #else
178 # define TCL_DEPRECATED_API(msg) /* nothing portable */
179 #endif
180
181 /*
182 *----------------------------------------------------------------------------
183 * Macros used to declare a function to be exported by a DLL. Used by Windows,
184 * maps to no-op declarations on non-Windows systems. The default build on
185 * windows is for a DLL, which causes the DLLIMPORT and DLLEXPORT macros to be
186 * nonempty. To build a static library, the macro STATIC_BUILD should be
187 * defined.
188 *
189 * Note: when building static but linking dynamically to MSVCRT we must still
190 * correctly decorate the C library imported function. Use CRTIMPORT
191 * for this purpose. _DLL is defined by the compiler when linking to
192 * MSVCRT.
193 */
194
195 #if (defined(__WIN32__) && (defined(_MSC_VER) || (__BORLANDC__ >= 0x0550) || defined(__LCC__) || defined(__WATCOMC__) || (defined(__GNUC__) && defined(__declspec))))
196 # define HAVE_DECLSPEC 1
197 # ifdef STATIC_BUILD
198 # define DLLIMPORT
199 # define DLLEXPORT
200 # ifdef _DLL
201 # define CRTIMPORT __declspec(dllimport)
202 # else
203 # define CRTIMPORT
204 # endif
205 # else
206 # define DLLIMPORT __declspec(dllimport)
207 # define DLLEXPORT __declspec(dllexport)
208 # define CRTIMPORT __declspec(dllimport)
209 # endif
210 #else
211 # define DLLIMPORT
212 # if defined(__GNUC__) && __GNUC__ > 3
213 # define DLLEXPORT __attribute__ ((visibility("default")))
214 # else
215 # define DLLEXPORT
216 # endif
217 # define CRTIMPORT
218 #endif
219
220 /*
221 * These macros are used to control whether functions are being declared for
222 * import or export. If a function is being declared while it is being built
223 * to be included in a shared library, then it should have the DLLEXPORT
224 * storage class. If is being declared for use by a module that is going to
225 * link against the shared library, then it should have the DLLIMPORT storage
226 * class. If the symbol is beind declared for a static build or for use from a
227 * stub library, then the storage class should be empty.
228 *
229 * The convention is that a macro called BUILD_xxxx, where xxxx is the name of
230 * a library we are building, is set on the compile line for sources that are
231 * to be placed in the library. When this macro is set, the storage class will
232 * be set to DLLEXPORT. At the end of the header file, the storage class will
233 * be reset to DLLIMPORT.
234 */
235
236 #undef TCL_STORAGE_CLASS
237 #ifdef BUILD_tcl
238 # define TCL_STORAGE_CLASS DLLEXPORT
239 #else
240 # ifdef USE_TCL_STUBS
241 # define TCL_STORAGE_CLASS
242 # else
243 # define TCL_STORAGE_CLASS DLLIMPORT
244 # endif
245 #endif
246
247 /*
248 * The following _ANSI_ARGS_ macro is to support old extensions
249 * written for older versions of Tcl where it permitted support
250 * for compilers written in the pre-prototype era of C.
251 *
252 * New code should use prototypes.
253 */
254
255 #ifndef TCL_NO_DEPRECATED
256 # undef _ANSI_ARGS_
257 # define _ANSI_ARGS_(x) x
258 #endif
259
260 /*
261 * Definitions that allow this header file to be used either with or without
262 * ANSI C features.
263 */
264
265 #ifndef INLINE
266 # define INLINE
267 #endif
268
269 #ifdef NO_CONST
270 # ifndef const
271 # define const
272 # endif
273 #endif
274 #ifndef CONST
275 # define CONST const
276 #endif
277
278 #ifdef USE_NON_CONST
279 # ifdef USE_COMPAT_CONST
280 # error define at most one of USE_NON_CONST and USE_COMPAT_CONST
281 # endif
282 # define CONST84
283 # define CONST84_RETURN
284 #else
285 # ifdef USE_COMPAT_CONST
286 # define CONST84
287 # define CONST84_RETURN const
288 # else
289 # define CONST84 const
290 # define CONST84_RETURN const
291 # endif
292 #endif
293
294 #ifndef CONST86
295 # define CONST86 CONST84
296 #endif
297
298 /*
299 * Make sure EXTERN isn't defined elsewhere.
300 */
301
302 #ifdef EXTERN
303 # undef EXTERN
304 #endif /* EXTERN */
305
306 #ifdef __cplusplus
307 # define EXTERN extern "C" TCL_STORAGE_CLASS
308 #else
309 # define EXTERN extern TCL_STORAGE_CLASS
310 #endif
311
312 /*
313 *----------------------------------------------------------------------------
314 * The following code is copied from winnt.h. If we don't replicate it here,
315 * then <windows.h> can't be included after tcl.h, since tcl.h also defines
316 * VOID. This block is skipped under Cygwin and Mingw.
317 */
318
319 #if defined(__WIN32__) && !defined(HAVE_WINNT_IGNORE_VOID)
320 #ifndef VOID
321 #define VOID void
322 typedef char CHAR;
323 typedef short SHORT;
324 typedef long LONG;
325 #endif
326 #endif /* __WIN32__ && !HAVE_WINNT_IGNORE_VOID */
327
328 /*
329 * Macro to use instead of "void" for arguments that must have type "void *"
330 * in ANSI C; maps them to type "char *" in non-ANSI systems.
331 */
332
333 #ifndef NO_VOID
334 # define VOID void
335 #else
336 # define VOID char
337 #endif
338
339 /*
340 * Miscellaneous declarations.
341 */
342
343 #ifndef _CLIENTDATA
344 # ifndef NO_VOID
345 typedef void *ClientData;
346 # else
347 typedef int *ClientData;
348 # endif
349 # define _CLIENTDATA
350 #endif
351
352 /*
353 * Darwin specific configure overrides (to support fat compiles, where
354 * configure runs only once for multiple architectures):
355 */
356
357 #ifdef __APPLE__
358 # ifdef __LP64__
359 # undef TCL_WIDE_INT_TYPE
360 # define TCL_WIDE_INT_IS_LONG 1
361 # define TCL_CFG_DO64BIT 1
362 # else /* !__LP64__ */
363 # define TCL_WIDE_INT_TYPE long long
364 # undef TCL_WIDE_INT_IS_LONG
365 # undef TCL_CFG_DO64BIT
366 # endif /* __LP64__ */
367 # undef HAVE_STRUCT_STAT64
368 #endif /* __APPLE__ */
369
370 /*
371 * Define Tcl_WideInt to be a type that is (at least) 64-bits wide, and define
372 * Tcl_WideUInt to be the unsigned variant of that type (assuming that where
373 * we have one, we can have the other.)
374 *
375 * Also defines the following macros:
376 * TCL_WIDE_INT_IS_LONG - if wide ints are really longs (i.e. we're on a real
377 * 64-bit system.)
378 * Tcl_WideAsLong - forgetful converter from wideInt to long.
379 * Tcl_LongAsWide - sign-extending converter from long to wideInt.
380 * Tcl_WideAsDouble - converter from wideInt to double.
381 * Tcl_DoubleAsWide - converter from double to wideInt.
382 *
383 * The following invariant should hold for any long value 'longVal':
384 * longVal == Tcl_WideAsLong(Tcl_LongAsWide(longVal))
385 *
386 * Note on converting between Tcl_WideInt and strings. This implementation (in
387 * tclObj.c) depends on the function
388 * sprintf(...,"%" TCL_LL_MODIFIER "d",...).
389 */
390
391 #if !defined(TCL_WIDE_INT_TYPE)&&!defined(TCL_WIDE_INT_IS_LONG)
392 # if defined(__WIN32__)
393 # define TCL_WIDE_INT_TYPE __int64
394 # ifdef __BORLANDC__
395 # define TCL_LL_MODIFIER "L"
396 # else /* __BORLANDC__ */
397 # define TCL_LL_MODIFIER "I64"
398 # endif /* __BORLANDC__ */
399 # elif defined(__GNUC__)
400 # define TCL_WIDE_INT_TYPE long long
401 # define TCL_LL_MODIFIER "ll"
402 # else /* ! __WIN32__ && ! __GNUC__ */
403 /*
404 * Don't know what platform it is and configure hasn't discovered what is
405 * going on for us. Try to guess...
406 */
407 # ifdef NO_LIMITS_H
408 # error please define either TCL_WIDE_INT_TYPE or TCL_WIDE_INT_IS_LONG
409 # else /* !NO_LIMITS_H */
410 # include <limits.h>
411 # if (INT_MAX < LONG_MAX)
412 # define TCL_WIDE_INT_IS_LONG 1
413 # else
414 # define TCL_WIDE_INT_TYPE long long
415 # endif
416 # endif /* NO_LIMITS_H */
417 # endif /* __WIN32__ */
418 #endif /* !TCL_WIDE_INT_TYPE & !TCL_WIDE_INT_IS_LONG */
419 #ifdef TCL_WIDE_INT_IS_LONG
420 # undef TCL_WIDE_INT_TYPE
421 # define TCL_WIDE_INT_TYPE long
422 #endif /* TCL_WIDE_INT_IS_LONG */
423
424 typedef TCL_WIDE_INT_TYPE Tcl_WideInt;
425 typedef unsigned TCL_WIDE_INT_TYPE Tcl_WideUInt;
426
427 #ifdef TCL_WIDE_INT_IS_LONG
428 # define Tcl_WideAsLong(val) ((long)(val))
429 # define Tcl_LongAsWide(val) ((long)(val))
430 # define Tcl_WideAsDouble(val) ((double)((long)(val)))
431 # define Tcl_DoubleAsWide(val) ((long)((double)(val)))
432 # ifndef TCL_LL_MODIFIER
433 # define TCL_LL_MODIFIER "l"
434 # endif /* !TCL_LL_MODIFIER */
435 #else /* TCL_WIDE_INT_IS_LONG */
436 /*
437 * The next short section of defines are only done when not running on Windows
438 * or some other strange platform.
439 */
440 # ifndef TCL_LL_MODIFIER
441 # define TCL_LL_MODIFIER "ll"
442 # endif /* !TCL_LL_MODIFIER */
443 # define Tcl_WideAsLong(val) ((long)((Tcl_WideInt)(val)))
444 # define Tcl_LongAsWide(val) ((Tcl_WideInt)((long)(val)))
445 # define Tcl_WideAsDouble(val) ((double)((Tcl_WideInt)(val)))
446 # define Tcl_DoubleAsWide(val) ((Tcl_WideInt)((double)(val)))
447 #endif /* TCL_WIDE_INT_IS_LONG */
448
449 #if defined(__WIN32__)
450 # ifdef __BORLANDC__
451 typedef struct stati64 Tcl_StatBuf;
452 # elif defined(_WIN64)
453 typedef struct __stat64 Tcl_StatBuf;
454 # elif (defined(_MSC_VER) && (_MSC_VER < 1400)) || defined(_USE_32BIT_TIME_T)
455 typedef struct _stati64 Tcl_StatBuf;
456 # else
457 typedef struct _stat32i64 Tcl_StatBuf;
458 # endif /* _MSC_VER < 1400 */
459 #elif defined(__CYGWIN__)
460 typedef struct _stat32i64 {
461 dev_t st_dev;
462 unsigned short st_ino;
463 unsigned short st_mode;
464 short st_nlink;
465 short st_uid;
466 short st_gid;
467 /* Here is a 2-byte gap */
468 dev_t st_rdev;
469 /* Here is a 4-byte gap */
470 long long st_size;
471 struct {long tv_sec;} st_atim;
472 struct {long tv_sec;} st_mtim;
473 struct {long tv_sec;} st_ctim;
474 /* Here is a 4-byte gap */
475 } Tcl_StatBuf;
476 #elif defined(HAVE_STRUCT_STAT64)
477 typedef struct stat64 Tcl_StatBuf;
478 #else
479 typedef struct stat Tcl_StatBuf;
480 #endif
481
482
483 /*
484 *----------------------------------------------------------------------------
485 * Data structures defined opaquely in this module. The definitions below just
486 * provide dummy types. A few fields are made visible in Tcl_Interp
487 * structures, namely those used for returning a string result from commands.
488 * Direct access to the result field is discouraged in Tcl 8.0. The
489 * interpreter result is either an object or a string, and the two values are
490 * kept consistent unless some C code sets interp->result directly.
491 * Programmers should use either the function Tcl_GetObjResult() or
492 * Tcl_GetStringResult() to read the interpreter's result. See the SetResult
493 * man page for details.
494 *
495 * Note: any change to the Tcl_Interp definition below must be mirrored in the
496 * "real" definition in tclInt.h.
497 *
498 * Note: Tcl_ObjCmdProc functions do not directly set result and freeProc.
499 * Instead, they set a Tcl_Obj member in the "real" structure that can be
500 * accessed with Tcl_GetObjResult() and Tcl_SetObjResult().
501 */
502
503 typedef struct Tcl_Interp
504 #ifndef TCL_NO_DEPRECATED
505 {
506 /* TIP #330: Strongly discourage extensions from using the string
507 * result. */
508 #ifdef USE_INTERP_RESULT
509 char *result TCL_DEPRECATED_API("use Tcl_GetResult/Tcl_SetResult");
510 /* If the last command returned a string
511 * result, this points to it. */
512 void (*freeProc) (char *blockPtr)
513 TCL_DEPRECATED_API("use Tcl_GetResult/Tcl_SetResult");
514 /* Zero means the string result is statically
515 * allocated. TCL_DYNAMIC means it was
516 * allocated with ckalloc and should be freed
517 * with ckfree. Other values give the address
518 * of function to invoke to free the result.
519 * Tcl_Eval must free it before executing next
520 * command. */
521 #else
522 char *resultDontUse; /* Don't use in extensions! */
523 void (*freeProcDontUse) (char *); /* Don't use in extensions! */
524 #endif
525 #ifdef USE_INTERP_ERRORLINE
526 int errorLine TCL_DEPRECATED_API("use Tcl_GetErrorLine/Tcl_SetErrorLine");
527 /* When TCL_ERROR is returned, this gives the
528 * line number within the command where the
529 * error occurred (1 if first line). */
530 #else
531 int errorLineDontUse; /* Don't use in extensions! */
532 #endif
533 }
534 #endif /* TCL_NO_DEPRECATED */
535 Tcl_Interp;
536
537 typedef struct Tcl_AsyncHandler_ *Tcl_AsyncHandler;
538 typedef struct Tcl_Channel_ *Tcl_Channel;
539 typedef struct Tcl_ChannelTypeVersion_ *Tcl_ChannelTypeVersion;
540 typedef struct Tcl_Command_ *Tcl_Command;
541 typedef struct Tcl_Condition_ *Tcl_Condition;
542 typedef struct Tcl_Dict_ *Tcl_Dict;
543 typedef struct Tcl_EncodingState_ *Tcl_EncodingState;
544 typedef struct Tcl_Encoding_ *Tcl_Encoding;
545 typedef struct Tcl_Event Tcl_Event;
546 typedef struct Tcl_InterpState_ *Tcl_InterpState;
547 typedef struct Tcl_LoadHandle_ *Tcl_LoadHandle;
548 typedef struct Tcl_Mutex_ *Tcl_Mutex;
549 typedef struct Tcl_Pid_ *Tcl_Pid;
550 typedef struct Tcl_RegExp_ *Tcl_RegExp;
551 typedef struct Tcl_ThreadDataKey_ *Tcl_ThreadDataKey;
552 typedef struct Tcl_ThreadId_ *Tcl_ThreadId;
553 typedef struct Tcl_TimerToken_ *Tcl_TimerToken;
554 typedef struct Tcl_Trace_ *Tcl_Trace;
555 typedef struct Tcl_Var_ *Tcl_Var;
556 typedef struct Tcl_ZLibStream_ *Tcl_ZlibStream;
557
558 /*
559 *----------------------------------------------------------------------------
560 * Definition of the interface to functions implementing threads. A function
561 * following this definition is given to each call of 'Tcl_CreateThread' and
562 * will be called as the main fuction of the new thread created by that call.
563 */
564
565 #if defined __WIN32__
566 typedef unsigned (__stdcall Tcl_ThreadCreateProc) (ClientData clientData);
567 #else
568 typedef void (Tcl_ThreadCreateProc) (ClientData clientData);
569 #endif
570
571 /*
572 * Threading function return types used for abstracting away platform
573 * differences when writing a Tcl_ThreadCreateProc. See the NewThread function
574 * in generic/tclThreadTest.c for it's usage.
575 */
576
577 #if defined __WIN32__
578 # define Tcl_ThreadCreateType unsigned __stdcall
579 # define TCL_THREAD_CREATE_RETURN return 0
580 #else
581 # define Tcl_ThreadCreateType void
582 # define TCL_THREAD_CREATE_RETURN
583 #endif
584
585 /*
586 * Definition of values for default stacksize and the possible flags to be
587 * given to Tcl_CreateThread.
588 */
589
590 #define TCL_THREAD_STACK_DEFAULT (0) /* Use default size for stack. */
591 #define TCL_THREAD_NOFLAGS (0000) /* Standard flags, default
592 * behaviour. */
593 #define TCL_THREAD_JOINABLE (0001) /* Mark the thread as joinable. */
594
595 /*
596 * Flag values passed to Tcl_StringCaseMatch.
597 */
598
599 #define TCL_MATCH_NOCASE (1<<0)
600
601 /*
602 * Flag values passed to Tcl_GetRegExpFromObj.
603 */
604
605 #define TCL_REG_BASIC 000000 /* BREs (convenience). */
606 #define TCL_REG_EXTENDED 000001 /* EREs. */
607 #define TCL_REG_ADVF 000002 /* Advanced features in EREs. */
608 #define TCL_REG_ADVANCED 000003 /* AREs (which are also EREs). */
609 #define TCL_REG_QUOTE 000004 /* No special characters, none. */
610 #define TCL_REG_NOCASE 000010 /* Ignore case. */
611 #define TCL_REG_NOSUB 000020 /* Don't care about subexpressions. */
612 #define TCL_REG_EXPANDED 000040 /* Expanded format, white space &
613 * comments. */
614 #define TCL_REG_NLSTOP 000100 /* \n doesn't match . or [^ ] */
615 #define TCL_REG_NLANCH 000200 /* ^ matches after \n, $ before. */
616 #define TCL_REG_NEWLINE 000300 /* Newlines are line terminators. */
617 #define TCL_REG_CANMATCH 001000 /* Report details on partial/limited
618 * matches. */
619
620 /*
621 * Flags values passed to Tcl_RegExpExecObj.
622 */
623
624 #define TCL_REG_NOTBOL 0001 /* Beginning of string does not match ^. */
625 #define TCL_REG_NOTEOL 0002 /* End of string does not match $. */
626
627 /*
628 * Structures filled in by Tcl_RegExpInfo. Note that all offset values are
629 * relative to the start of the match string, not the beginning of the entire
630 * string.
631 */
632
633 typedef struct Tcl_RegExpIndices {
634 long start; /* Character offset of first character in
635 * match. */
636 long end; /* Character offset of first character after
637 * the match. */
638 } Tcl_RegExpIndices;
639
640 typedef struct Tcl_RegExpInfo {
641 int nsubs; /* Number of subexpressions in the compiled
642 * expression. */
643 Tcl_RegExpIndices *matches; /* Array of nsubs match offset pairs. */
644 long extendStart; /* The offset at which a subsequent match
645 * might begin. */
646 long reserved; /* Reserved for later use. */
647 } Tcl_RegExpInfo;
648
649 /*
650 * Picky compilers complain if this typdef doesn't appear before the struct's
651 * reference in tclDecls.h.
652 */
653
654 typedef Tcl_StatBuf *Tcl_Stat_;
655 typedef struct stat *Tcl_OldStat_;
656
657 /*
658 *----------------------------------------------------------------------------
659 * When a TCL command returns, the interpreter contains a result from the
660 * command. Programmers are strongly encouraged to use one of the functions
661 * Tcl_GetObjResult() or Tcl_GetStringResult() to read the interpreter's
662 * result. See the SetResult man page for details. Besides this result, the
663 * command function returns an integer code, which is one of the following:
664 *
665 * TCL_OK Command completed normally; the interpreter's result
666 * contains the command's result.
667 * TCL_ERROR The command couldn't be completed successfully; the
668 * interpreter's result describes what went wrong.
669 * TCL_RETURN The command requests that the current function return;
670 * the interpreter's result contains the function's
671 * return value.
672 * TCL_BREAK The command requests that the innermost loop be
673 * exited; the interpreter's result is meaningless.
674 * TCL_CONTINUE Go on to the next iteration of the current loop; the
675 * interpreter's result is meaningless.
676 */
677
678 #define TCL_OK 0
679 #define TCL_ERROR 1
680 #define TCL_RETURN 2
681 #define TCL_BREAK 3
682 #define TCL_CONTINUE 4
683
684 #define TCL_RESULT_SIZE 200
685
686 /*
687 *----------------------------------------------------------------------------
688 * Flags to control what substitutions are performed by Tcl_SubstObj():
689 */
690
691 #define TCL_SUBST_COMMANDS 001
692 #define TCL_SUBST_VARIABLES 002
693 #define TCL_SUBST_BACKSLASHES 004
694 #define TCL_SUBST_ALL 007
695
696 /*
697 * Argument descriptors for math function callbacks in expressions:
698 */
699
700 typedef enum {
701 TCL_INT, TCL_DOUBLE, TCL_EITHER, TCL_WIDE_INT
702 } Tcl_ValueType;
703
704 typedef struct Tcl_Value {
705 Tcl_ValueType type; /* Indicates intValue or doubleValue is valid,
706 * or both. */
707 long intValue; /* Integer value. */
708 double doubleValue; /* Double-precision floating value. */
709 Tcl_WideInt wideValue; /* Wide (min. 64-bit) integer value. */
710 } Tcl_Value;
711
712 /*
713 * Forward declaration of Tcl_Obj to prevent an error when the forward
714 * reference to Tcl_Obj is encountered in the function types declared below.
715 */
716
717 struct Tcl_Obj;
718
719 /*
720 *----------------------------------------------------------------------------
721 * Function types defined by Tcl:
722 */
723
724 typedef int (Tcl_AppInitProc) (Tcl_Interp *interp);
725 typedef int (Tcl_AsyncProc) (ClientData clientData, Tcl_Interp *interp,
726 int code);
727 typedef void (Tcl_ChannelProc) (ClientData clientData, int mask);
728 typedef void (Tcl_CloseProc) (ClientData data);
729 typedef void (Tcl_CmdDeleteProc) (ClientData clientData);
730 typedef int (Tcl_CmdProc) (ClientData clientData, Tcl_Interp *interp,
731 int argc, CONST84 char *argv[]);
732 typedef void (Tcl_CmdTraceProc) (ClientData clientData, Tcl_Interp *interp,
733 int level, char *command, Tcl_CmdProc *proc,
734 ClientData cmdClientData, int argc, CONST84 char *argv[]);
735 typedef int (Tcl_CmdObjTraceProc) (ClientData clientData, Tcl_Interp *interp,
736 int level, const char *command, Tcl_Command commandInfo, int objc,
737 struct Tcl_Obj *const *objv);
738 typedef void (Tcl_CmdObjTraceDeleteProc) (ClientData clientData);
739 typedef void (Tcl_DupInternalRepProc) (struct Tcl_Obj *srcPtr,
740 struct Tcl_Obj *dupPtr);
741 typedef int (Tcl_EncodingConvertProc) (ClientData clientData, const char *src,
742 int srcLen, int flags, Tcl_EncodingState *statePtr, char *dst,
743 int dstLen, int *srcReadPtr, int *dstWrotePtr, int *dstCharsPtr);
744 typedef void (Tcl_EncodingFreeProc) (ClientData clientData);
745 typedef int (Tcl_EventProc) (Tcl_Event *evPtr, int flags);
746 typedef void (Tcl_EventCheckProc) (ClientData clientData, int flags);
747 typedef int (Tcl_EventDeleteProc) (Tcl_Event *evPtr, ClientData clientData);
748 typedef void (Tcl_EventSetupProc) (ClientData clientData, int flags);
749 typedef void (Tcl_ExitProc) (ClientData clientData);
750 typedef void (Tcl_FileProc) (ClientData clientData, int mask);
751 typedef void (Tcl_FileFreeProc) (ClientData clientData);
752 typedef void (Tcl_FreeInternalRepProc) (struct Tcl_Obj *objPtr);
753 typedef void (Tcl_FreeProc) (char *blockPtr);
754 typedef void (Tcl_IdleProc) (ClientData clientData);
755 typedef void (Tcl_InterpDeleteProc) (ClientData clientData,
756 Tcl_Interp *interp);
757 typedef int (Tcl_MathProc) (ClientData clientData, Tcl_Interp *interp,
758 Tcl_Value *args, Tcl_Value *resultPtr);
759 typedef void (Tcl_NamespaceDeleteProc) (ClientData clientData);
760 typedef int (Tcl_ObjCmdProc) (ClientData clientData, Tcl_Interp *interp,
761 int objc, struct Tcl_Obj *const *objv);
762 typedef int (Tcl_PackageInitProc) (Tcl_Interp *interp);
763 typedef int (Tcl_PackageUnloadProc) (Tcl_Interp *interp, int flags);
764 typedef void (Tcl_PanicProc) (const char *format, ...);
765 typedef void (Tcl_TcpAcceptProc) (ClientData callbackData, Tcl_Channel chan,
766 char *address, int port);
767 typedef void (Tcl_TimerProc) (ClientData clientData);
768 typedef int (Tcl_SetFromAnyProc) (Tcl_Interp *interp, struct Tcl_Obj *objPtr);
769 typedef void (Tcl_UpdateStringProc) (struct Tcl_Obj *objPtr);
770 typedef char * (Tcl_VarTraceProc) (ClientData clientData, Tcl_Interp *interp,
771 CONST84 char *part1, CONST84 char *part2, int flags);
772 typedef void (Tcl_CommandTraceProc) (ClientData clientData, Tcl_Interp *interp,
773 const char *oldName, const char *newName, int flags);
774 typedef void (Tcl_CreateFileHandlerProc) (int fd, int mask, Tcl_FileProc *proc,
775 ClientData clientData);
776 typedef void (Tcl_DeleteFileHandlerProc) (int fd);
777 typedef void (Tcl_AlertNotifierProc) (ClientData clientData);
778 typedef void (Tcl_ServiceModeHookProc) (int mode);
779 typedef ClientData (Tcl_InitNotifierProc) (void);
780 typedef void (Tcl_FinalizeNotifierProc) (ClientData clientData);
781 typedef void (Tcl_MainLoopProc) (void);
782
783
784 /*
785 *----------------------------------------------------------------------------
786 * The following structure represents a type of object, which is a particular
787 * internal representation for an object plus a set of functions that provide
788 * standard operations on objects of that type.
789 */
790
791 typedef struct Tcl_ObjType {
792 const char *name; /* Name of the type, e.g. "int". */
793 Tcl_FreeInternalRepProc *freeIntRepProc;
794 /* Called to free any storage for the type's
795 * internal rep. NULL if the internal rep does
796 * not need freeing. */
797 Tcl_DupInternalRepProc *dupIntRepProc;
798 /* Called to create a new object as a copy of
799 * an existing object. */
800 Tcl_UpdateStringProc *updateStringProc;
801 /* Called to update the string rep from the
802 * type's internal representation. */
803 Tcl_SetFromAnyProc *setFromAnyProc;
804 /* Called to convert the object's internal rep
805 * to this type. Frees the internal rep of the
806 * old type. Returns TCL_ERROR on failure. */
807 } Tcl_ObjType;
808
809 /*
810 * One of the following structures exists for each object in the Tcl system.
811 * An object stores a value as either a string, some internal representation,
812 * or both.
813 */
814
815 typedef struct Tcl_Obj {
816 int refCount; /* When 0 the object will be freed. */
817 char *bytes; /* This points to the first byte of the
818 * object's string representation. The array
819 * must be followed by a null byte (i.e., at
820 * offset length) but may also contain
821 * embedded null characters. The array's
822 * storage is allocated by ckalloc. NULL means
823 * the string rep is invalid and must be
824 * regenerated from the internal rep. Clients
825 * should use Tcl_GetStringFromObj or
826 * Tcl_GetString to get a pointer to the byte
827 * array as a readonly value. */
828 int length; /* The number of bytes at *bytes, not
829 * including the terminating null. */
830 const Tcl_ObjType *typePtr; /* Denotes the object's type. Always
831 * corresponds to the type of the object's
832 * internal rep. NULL indicates the object has
833 * no internal rep (has no type). */
834 union { /* The internal representation: */
835 long longValue; /* - an long integer value. */
836 double doubleValue; /* - a double-precision floating value. */
837 void *otherValuePtr; /* - another, type-specific value. */
838 Tcl_WideInt wideValue; /* - a long long value. */
839 struct { /* - internal rep as two pointers. */
840 void *ptr1;
841 void *ptr2;
842 } twoPtrValue;
843 struct { /* - internal rep as a pointer and a long,
844 * the main use of which is a bignum's
845 * tightly packed fields, where the alloc,
846 * used and signum flags are packed into a
847 * single word with everything else hung
848 * off the pointer. */
849 void *ptr;
850 unsigned long value;
851 } ptrAndLongRep;
852 } internalRep;
853 } Tcl_Obj;
854
855 /*
856 * Macros to increment and decrement a Tcl_Obj's reference count, and to test
857 * whether an object is shared (i.e. has reference count > 1). Note: clients
858 * should use Tcl_DecrRefCount() when they are finished using an object, and
859 * should never call TclFreeObj() directly. TclFreeObj() is only defined and
860 * made public in tcl.h to support Tcl_DecrRefCount's macro definition.
861 */
862
863 void Tcl_IncrRefCount(Tcl_Obj *objPtr);
864 void Tcl_DecrRefCount(Tcl_Obj *objPtr);
865 int Tcl_IsShared(Tcl_Obj *objPtr);
866
867
868 /*
869 *----------------------------------------------------------------------------
870 * The following structure contains the state needed by Tcl_SaveResult. No-one
871 * outside of Tcl should access any of these fields. This structure is
872 * typically allocated on the stack.
873 */
874
875 typedef struct Tcl_SavedResult {
876 char *result;
877 Tcl_FreeProc *freeProc;
878 Tcl_Obj *objResultPtr;
879 char *appendResult;
880 int appendAvl;
881 int appendUsed;
882 char resultSpace[TCL_RESULT_SIZE+1];
883 } Tcl_SavedResult;
884
885 /*
886 *----------------------------------------------------------------------------
887 * The following definitions support Tcl's namespace facility. Note: the first
888 * five fields must match exactly the fields in a Namespace structure (see
889 * tclInt.h).
890 */
891
892 typedef struct Tcl_Namespace {
893 char *name; /* The namespace's name within its parent
894 * namespace. This contains no ::'s. The name
895 * of the global namespace is "" although "::"
896 * is an synonym. */
897 char *fullName; /* The namespace's fully qualified name. This
898 * starts with ::. */
899 ClientData clientData; /* Arbitrary value associated with this
900 * namespace. */
901 Tcl_NamespaceDeleteProc *deleteProc;
902 /* Function invoked when deleting the
903 * namespace to, e.g., free clientData. */
904 struct Tcl_Namespace *parentPtr;
905 /* Points to the namespace that contains this
906 * one. NULL if this is the global
907 * namespace. */
908 } Tcl_Namespace;
909
910 /*
911 *----------------------------------------------------------------------------
912 * The following structure represents a call frame, or activation record. A
913 * call frame defines a naming context for a procedure call: its local scope
914 * (for local variables) and its namespace scope (used for non-local
915 * variables; often the global :: namespace). A call frame can also define the
916 * naming context for a namespace eval or namespace inscope command: the
917 * namespace in which the command's code should execute. The Tcl_CallFrame
918 * structures exist only while procedures or namespace eval/inscope's are
919 * being executed, and provide a Tcl call stack.
920 *
921 * A call frame is initialized and pushed using Tcl_PushCallFrame and popped
922 * using Tcl_PopCallFrame. Storage for a Tcl_CallFrame must be provided by the
923 * Tcl_PushCallFrame caller, and callers typically allocate them on the C call
924 * stack for efficiency. For this reason, Tcl_CallFrame is defined as a
925 * structure and not as an opaque token. However, most Tcl_CallFrame fields
926 * are hidden since applications should not access them directly; others are
927 * declared as "dummyX".
928 *
929 * WARNING!! The structure definition must be kept consistent with the
930 * CallFrame structure in tclInt.h. If you change one, change the other.
931 */
932
933 typedef struct Tcl_CallFrame {
934 Tcl_Namespace *nsPtr;
935 int dummy1;
936 int dummy2;
937 void *dummy3;
938 void *dummy4;
939 void *dummy5;
940 int dummy6;
941 void *dummy7;
942 void *dummy8;
943 int dummy9;
944 void *dummy10;
945 void *dummy11;
946 void *dummy12;
947 void *dummy13;
948 } Tcl_CallFrame;
949
950 /*
951 *----------------------------------------------------------------------------
952 * Information about commands that is returned by Tcl_GetCommandInfo and
953 * passed to Tcl_SetCommandInfo. objProc is an objc/objv object-based command
954 * function while proc is a traditional Tcl argc/argv string-based function.
955 * Tcl_CreateObjCommand and Tcl_CreateCommand ensure that both objProc and
956 * proc are non-NULL and can be called to execute the command. However, it may
957 * be faster to call one instead of the other. The member isNativeObjectProc
958 * is set to 1 if an object-based function was registered by
959 * Tcl_CreateObjCommand, and to 0 if a string-based function was registered by
960 * Tcl_CreateCommand. The other function is typically set to a compatibility
961 * wrapper that does string-to-object or object-to-string argument conversions
962 * then calls the other function.
963 */
964
965 typedef struct Tcl_CmdInfo {
966 int isNativeObjectProc; /* 1 if objProc was registered by a call to
967 * Tcl_CreateObjCommand; 0 otherwise.
968 * Tcl_SetCmdInfo does not modify this
969 * field. */
970 Tcl_ObjCmdProc *objProc; /* Command's object-based function. */
971 ClientData objClientData; /* ClientData for object proc. */
972 Tcl_CmdProc *proc; /* Command's string-based function. */
973 ClientData clientData; /* ClientData for string proc. */
974 Tcl_CmdDeleteProc *deleteProc;
975 /* Function to call when command is
976 * deleted. */
977 ClientData deleteData; /* Value to pass to deleteProc (usually the
978 * same as clientData). */
979 Tcl_Namespace *namespacePtr;/* Points to the namespace that contains this
980 * command. Note that Tcl_SetCmdInfo will not
981 * change a command's namespace; use
982 * TclRenameCommand or Tcl_Eval (of 'rename')
983 * to do that. */
984 } Tcl_CmdInfo;
985
986 /*
987 *----------------------------------------------------------------------------
988 * The structure defined below is used to hold dynamic strings. The only
989 * fields that clients should use are string and length, accessible via the
990 * macros Tcl_DStringValue and Tcl_DStringLength.
991 */
992
993 #define TCL_DSTRING_STATIC_SIZE 200
994 typedef struct Tcl_DString {
995 char *string; /* Points to beginning of string: either
996 * staticSpace below or a malloced array. */
997 int length; /* Number of non-NULL characters in the
998 * string. */
999 int spaceAvl; /* Total number of bytes available for the
1000 * string and its terminating NULL char. */
1001 char staticSpace[TCL_DSTRING_STATIC_SIZE];
1002 /* Space to use in common case where string is
1003 * small. */
1004 } Tcl_DString;
1005
1006 #define Tcl_DStringLength(dsPtr) ((dsPtr)->length)
1007 #define Tcl_DStringValue(dsPtr) ((dsPtr)->string)
1008 #define Tcl_DStringTrunc Tcl_DStringSetLength
1009
1010 /*
1011 * Definitions for the maximum number of digits of precision that may be
1012 * specified in the "tcl_precision" variable, and the number of bytes of
1013 * buffer space required by Tcl_PrintDouble.
1014 */
1015
1016 #define TCL_MAX_PREC 17
1017 #define TCL_DOUBLE_SPACE (TCL_MAX_PREC+10)
1018
1019 /*
1020 * Definition for a number of bytes of buffer space sufficient to hold the
1021 * string representation of an integer in base 10 (assuming the existence of
1022 * 64-bit integers).
1023 */
1024
1025 #define TCL_INTEGER_SPACE 24
1026
1027 /*
1028 * Flag values passed to Tcl_ConvertElement.
1029 * TCL_DONT_USE_BRACES forces it not to enclose the element in braces, but to
1030 * use backslash quoting instead.
1031 * TCL_DONT_QUOTE_HASH disables the default quoting of the '#' character. It
1032 * is safe to leave the hash unquoted when the element is not the first
1033 * element of a list, and this flag can be used by the caller to indicate
1034 * that condition.
1035 */
1036
1037 #define TCL_DONT_USE_BRACES 1
1038 #define TCL_DONT_QUOTE_HASH 8
1039
1040 /*
1041 * Flag that may be passed to Tcl_GetIndexFromObj to force it to disallow
1042 * abbreviated strings.
1043 */
1044
1045 #define TCL_EXACT 1
1046
1047 /*
1048 *----------------------------------------------------------------------------
1049 * Flag values passed to Tcl_RecordAndEval, Tcl_EvalObj, Tcl_EvalObjv.
1050 * WARNING: these bit choices must not conflict with the bit choices for
1051 * evalFlag bits in tclInt.h!
1052 *
1053 * Meanings:
1054 * TCL_NO_EVAL: Just record this command
1055 * TCL_EVAL_GLOBAL: Execute script in global namespace
1056 * TCL_EVAL_DIRECT: Do not compile this script
1057 * TCL_EVAL_INVOKE: Magical Tcl_EvalObjv mode for aliases/ensembles
1058 * o Run in iPtr->lookupNsPtr or global namespace
1059 * o Cut out of error traces
1060 * o Don't reset the flags controlling ensemble
1061 * error message rewriting.
1062 * TCL_CANCEL_UNWIND: Magical Tcl_CancelEval mode that causes the
1063 * stack for the script in progress to be
1064 * completely unwound.
1065 * TCL_EVAL_NOERR: Do no exception reporting at all, just return
1066 * as the caller will report.
1067 */
1068
1069 #define TCL_NO_EVAL 0x010000
1070 #define TCL_EVAL_GLOBAL 0x020000
1071 #define TCL_EVAL_DIRECT 0x040000
1072 #define TCL_EVAL_INVOKE 0x080000
1073 #define TCL_CANCEL_UNWIND 0x100000
1074 #define TCL_EVAL_NOERR 0x200000
1075
1076 /*
1077 * Special freeProc values that may be passed to Tcl_SetResult (see the man
1078 * page for details):
1079 */
1080
1081 #define TCL_VOLATILE ((Tcl_FreeProc *) 1)
1082 #define TCL_STATIC ((Tcl_FreeProc *) 0)
1083 #define TCL_DYNAMIC ((Tcl_FreeProc *) 3)
1084
1085 /*
1086 * Flag values passed to variable-related functions.
1087 * WARNING: these bit choices must not conflict with the bit choice for
1088 * TCL_CANCEL_UNWIND, above.
1089 */
1090
1091 #define TCL_GLOBAL_ONLY 1
1092 #define TCL_NAMESPACE_ONLY 2
1093 #define TCL_APPEND_VALUE 4
1094 #define TCL_LIST_ELEMENT 8
1095 #define TCL_TRACE_READS 0x10
1096 #define TCL_TRACE_WRITES 0x20
1097 #define TCL_TRACE_UNSETS 0x40
1098 #define TCL_TRACE_DESTROYED 0x80
1099 #define TCL_INTERP_DESTROYED 0x100
1100 #define TCL_LEAVE_ERR_MSG 0x200
1101 #define TCL_TRACE_ARRAY 0x800
1102 #ifndef TCL_REMOVE_OBSOLETE_TRACES
1103 /* Required to support old variable/vdelete/vinfo traces. */
1104 #define TCL_TRACE_OLD_STYLE 0x1000
1105 #endif
1106 /* Indicate the semantics of the result of a trace. */
1107 #define TCL_TRACE_RESULT_DYNAMIC 0x8000
1108 #define TCL_TRACE_RESULT_OBJECT 0x10000
1109
1110 /*
1111 * Flag values for ensemble commands.
1112 */
1113
1114 #define TCL_ENSEMBLE_PREFIX 0x02/* Flag value to say whether to allow
1115 * unambiguous prefixes of commands or to
1116 * require exact matches for command names. */
1117
1118 /*
1119 * Flag values passed to command-related functions.
1120 */
1121
1122 #define TCL_TRACE_RENAME 0x2000
1123 #define TCL_TRACE_DELETE 0x4000
1124
1125 #define TCL_ALLOW_INLINE_COMPILATION 0x20000
1126
1127 /*
1128 * The TCL_PARSE_PART1 flag is deprecated and has no effect. The part1 is now
1129 * always parsed whenever the part2 is NULL. (This is to avoid a common error
1130 * when converting code to use the new object based APIs and forgetting to
1131 * give the flag)
1132 */
1133
1134 #ifndef TCL_NO_DEPRECATED
1135 # define TCL_PARSE_PART1 0x400
1136 #endif
1137
1138 /*
1139 * Types for linked variables:
1140 */
1141
1142 #define TCL_LINK_INT 1
1143 #define TCL_LINK_DOUBLE 2
1144 #define TCL_LINK_BOOLEAN 3
1145 #define TCL_LINK_STRING 4
1146 #define TCL_LINK_WIDE_INT 5
1147 #define TCL_LINK_CHAR 6
1148 #define TCL_LINK_UCHAR 7
1149 #define TCL_LINK_SHORT 8
1150 #define TCL_LINK_USHORT 9
1151 #define TCL_LINK_UINT 10
1152 #define TCL_LINK_LONG 11
1153 #define TCL_LINK_ULONG 12
1154 #define TCL_LINK_FLOAT 13
1155 #define TCL_LINK_WIDE_UINT 14
1156 #define TCL_LINK_READ_ONLY 0x80
1157
1158
1159 /*
1160 *----------------------------------------------------------------------------
1161 * Forward declarations of Tcl_HashTable and related types.
1162 */
1163
1164 typedef struct Tcl_HashKeyType Tcl_HashKeyType;
1165 typedef struct Tcl_HashTable Tcl_HashTable;
1166 typedef struct Tcl_HashEntry Tcl_HashEntry;
1167
1168 typedef unsigned (Tcl_HashKeyProc) (Tcl_HashTable *tablePtr, void *keyPtr);
1169 typedef int (Tcl_CompareHashKeysProc) (void *keyPtr, Tcl_HashEntry *hPtr);
1170 typedef Tcl_HashEntry * (Tcl_AllocHashEntryProc) (Tcl_HashTable *tablePtr,
1171 void *keyPtr);
1172 typedef void (Tcl_FreeHashEntryProc) (Tcl_HashEntry *hPtr);
1173
1174 /*
1175 * This flag controls whether the hash table stores the hash of a key, or
1176 * recalculates it. There should be no reason for turning this flag off as it
1177 * is completely binary and source compatible unless you directly access the
1178 * bucketPtr member of the Tcl_HashTableEntry structure. This member has been
1179 * removed and the space used to store the hash value.
1180 */
1181
1182 #ifndef TCL_HASH_KEY_STORE_HASH
1183 # define TCL_HASH_KEY_STORE_HASH 1
1184 #endif
1185
1186 /*
1187 * Structure definition for an entry in a hash table. No-one outside Tcl
1188 * should access any of these fields directly; use the macros defined below.
1189 */
1190
1191 struct Tcl_HashEntry {
1192 Tcl_HashEntry *nextPtr; /* Pointer to next entry in this hash bucket,
1193 * or NULL for end of chain. */
1194 Tcl_HashTable *tablePtr; /* Pointer to table containing entry. */
1195 #if TCL_HASH_KEY_STORE_HASH
1196 void *hash; /* Hash value, stored as pointer to ensure
1197 * that the offsets of the fields in this
1198 * structure are not changed. */
1199 #else
1200 Tcl_HashEntry **bucketPtr; /* Pointer to bucket that points to first
1201 * entry in this entry's chain: used for
1202 * deleting the entry. */
1203 #endif
1204 ClientData clientData; /* Application stores something here with
1205 * Tcl_SetHashValue. */
1206 union { /* Key has one of these forms: */
1207 char *oneWordValue; /* One-word value for key. */
1208 Tcl_Obj *objPtr; /* Tcl_Obj * key value. */
1209 int words[1]; /* Multiple integer words for key. The actual
1210 * size will be as large as necessary for this
1211 * table's keys. */
1212 char string[1]; /* String for key. The actual size will be as
1213 * large as needed to hold the key. */
1214 } key; /* MUST BE LAST FIELD IN RECORD!! */
1215 };
1216
1217 /*
1218 * Flags used in Tcl_HashKeyType.
1219 *
1220 * TCL_HASH_KEY_RANDOMIZE_HASH -
1221 * There are some things, pointers for example
1222 * which don't hash well because they do not use
1223 * the lower bits. If this flag is set then the
1224 * hash table will attempt to rectify this by
1225 * randomising the bits and then using the upper
1226 * N bits as the index into the table.
1227 * TCL_HASH_KEY_SYSTEM_HASH - If this flag is set then all memory internally
1228 * allocated for the hash table that is not for an
1229 * entry will use the system heap.
1230 */
1231
1232 #define TCL_HASH_KEY_RANDOMIZE_HASH 0x1
1233 #define TCL_HASH_KEY_SYSTEM_HASH 0x2
1234
1235 /*
1236 * Structure definition for the methods associated with a hash table key type.
1237 */
1238
1239 #define TCL_HASH_KEY_TYPE_VERSION 1
1240 struct Tcl_HashKeyType {
1241 int version; /* Version of the table. If this structure is
1242 * extended in future then the version can be
1243 * used to distinguish between different
1244 * structures. */
1245 int flags; /* Flags, see above for details. */
1246 Tcl_HashKeyProc *hashKeyProc;
1247 /* Calculates a hash value for the key. If
1248 * this is NULL then the pointer itself is
1249 * used as a hash value. */
1250 Tcl_CompareHashKeysProc *compareKeysProc;
1251 /* Compares two keys and returns zero if they
1252 * do not match, and non-zero if they do. If
1253 * this is NULL then the pointers are
1254 * compared. */
1255 Tcl_AllocHashEntryProc *allocEntryProc;
1256 /* Called to allocate memory for a new entry,
1257 * i.e. if the key is a string then this could
1258 * allocate a single block which contains
1259 * enough space for both the entry and the
1260 * string. Only the key field of the allocated
1261 * Tcl_HashEntry structure needs to be filled
1262 * in. If something else needs to be done to
1263 * the key, i.e. incrementing a reference
1264 * count then that should be done by this
1265 * function. If this is NULL then Tcl_Alloc is
1266 * used to allocate enough space for a
1267 * Tcl_HashEntry and the key pointer is
1268 * assigned to key.oneWordValue. */
1269 Tcl_FreeHashEntryProc *freeEntryProc;
1270 /* Called to free memory associated with an
1271 * entry. If something else needs to be done
1272 * to the key, i.e. decrementing a reference
1273 * count then that should be done by this
1274 * function. If this is NULL then Tcl_Free is
1275 * used to free the Tcl_HashEntry. */
1276 };
1277
1278 /*
1279 * Structure definition for a hash table. Must be in tcl.h so clients can
1280 * allocate space for these structures, but clients should never access any
1281 * fields in this structure.
1282 */
1283
1284 #define TCL_SMALL_HASH_TABLE 4
1285 struct Tcl_HashTable {
1286 Tcl_HashEntry **buckets; /* Pointer to bucket array. Each element
1287 * points to first entry in bucket's hash
1288 * chain, or NULL. */
1289 Tcl_HashEntry *staticBuckets[TCL_SMALL_HASH_TABLE];
1290 /* Bucket array used for small tables (to
1291 * avoid mallocs and frees). */
1292 int numBuckets; /* Total number of buckets allocated at
1293 * **bucketPtr. */
1294 int numEntries; /* Total number of entries present in
1295 * table. */
1296 int rebuildSize; /* Enlarge table when numEntries gets to be
1297 * this large. */
1298 int downShift; /* Shift count used in hashing function.
1299 * Designed to use high-order bits of
1300 * randomized keys. */
1301 int mask; /* Mask value used in hashing function. */
1302 int keyType; /* Type of keys used in this table. It's
1303 * either TCL_CUSTOM_KEYS, TCL_STRING_KEYS,
1304 * TCL_ONE_WORD_KEYS, or an integer giving the
1305 * number of ints that is the size of the
1306 * key. */
1307 Tcl_HashEntry *(*findProc) (Tcl_HashTable *tablePtr, const char *key);
1308 Tcl_HashEntry *(*createProc) (Tcl_HashTable *tablePtr, const char *key,
1309 int *newPtr);
1310 const Tcl_HashKeyType *typePtr;
1311 /* Type of the keys used in the
1312 * Tcl_HashTable. */
1313 };
1314
1315 /*
1316 * Structure definition for information used to keep track of searches through
1317 * hash tables:
1318 */
1319
1320 typedef struct Tcl_HashSearch {
1321 Tcl_HashTable *tablePtr; /* Table being searched. */
1322 int nextIndex; /* Index of next bucket to be enumerated after
1323 * present one. */
1324 Tcl_HashEntry *nextEntryPtr;/* Next entry to be enumerated in the current
1325 * bucket. */
1326 } Tcl_HashSearch;
1327
1328 /*
1329 * Acceptable key types for hash tables:
1330 *
1331 * TCL_STRING_KEYS: The keys are strings, they are copied into the
1332 * entry.
1333 * TCL_ONE_WORD_KEYS: The keys are pointers, the pointer is stored
1334 * in the entry.
1335 * TCL_CUSTOM_TYPE_KEYS: The keys are arbitrary types which are copied
1336 * into the entry.
1337 * TCL_CUSTOM_PTR_KEYS: The keys are pointers to arbitrary types, the
1338 * pointer is stored in the entry.
1339 *
1340 * While maintaining binary compatability the above have to be distinct values
1341 * as they are used to differentiate between old versions of the hash table
1342 * which don't have a typePtr and new ones which do. Once binary compatability
1343 * is discarded in favour of making more wide spread changes TCL_STRING_KEYS
1344 * can be the same as TCL_CUSTOM_TYPE_KEYS, and TCL_ONE_WORD_KEYS can be the
1345 * same as TCL_CUSTOM_PTR_KEYS because they simply determine how the key is
1346 * accessed from the entry and not the behaviour.
1347 */
1348
1349 #define TCL_STRING_KEYS (0)
1350 #define TCL_ONE_WORD_KEYS (1)
1351 #define TCL_CUSTOM_TYPE_KEYS (-2)
1352 #define TCL_CUSTOM_PTR_KEYS (-1)
1353
1354 /*
1355 * Structure definition for information used to keep track of searches through
1356 * dictionaries. These fields should not be accessed by code outside
1357 * tclDictObj.c
1358 */
1359
1360 typedef struct {
1361 void *next; /* Search position for underlying hash
1362 * table. */
1363 int epoch; /* Epoch marker for dictionary being searched,
1364 * or -1 if search has terminated. */
1365 Tcl_Dict dictionaryPtr; /* Reference to dictionary being searched. */
1366 } Tcl_DictSearch;
1367
1368
1369 /*
1370 *----------------------------------------------------------------------------
1371 * Flag values to pass to Tcl_DoOneEvent to disable searches for some kinds of
1372 * events:
1373 */
1374
1375 #define TCL_DONT_WAIT (1<<1)
1376 #define TCL_WINDOW_EVENTS (1<<2)
1377 #define TCL_FILE_EVENTS (1<<3)
1378 #define TCL_TIMER_EVENTS (1<<4)
1379 #define TCL_IDLE_EVENTS (1<<5) /* WAS 0x10 ???? */
1380 #define TCL_ALL_EVENTS (~TCL_DONT_WAIT)
1381
1382 /*
1383 * The following structure defines a generic event for the Tcl event system.
1384 * These are the things that are queued in calls to Tcl_QueueEvent and
1385 * serviced later by Tcl_DoOneEvent. There can be many different kinds of
1386 * events with different fields, corresponding to window events, timer events,
1387 * etc. The structure for a particular event consists of a Tcl_Event header
1388 * followed by additional information specific to that event.
1389 */
1390
1391 struct Tcl_Event {
1392 Tcl_EventProc *proc; /* Function to call to service this event. */
1393 struct Tcl_Event *nextPtr; /* Next in list of pending events, or NULL. */
1394 };
1395
1396 /*
1397 * Positions to pass to Tcl_QueueEvent:
1398 */
1399
1400 typedef enum {
1401 TCL_QUEUE_TAIL, TCL_QUEUE_HEAD, TCL_QUEUE_MARK
1402 } Tcl_QueuePosition;
1403
1404 /*
1405 * Values to pass to Tcl_SetServiceMode to specify the behavior of notifier
1406 * event routines.
1407 */
1408
1409 #define TCL_SERVICE_NONE 0
1410 #define TCL_SERVICE_ALL 1
1411
1412 /*
1413 * The following structure keeps is used to hold a time value, either as an
1414 * absolute time (the number of seconds from the epoch) or as an elapsed time.
1415 * On Unix systems the epoch is Midnight Jan 1, 1970 GMT.
1416 */
1417
1418 typedef struct Tcl_Time {
1419 long sec; /* Seconds. */
1420 long usec; /* Microseconds. */
1421 } Tcl_Time;
1422
1423 typedef void (Tcl_SetTimerProc) (CONST86 Tcl_Time *timePtr);
1424 typedef int (Tcl_WaitForEventProc) (CONST86 Tcl_Time *timePtr);
1425
1426 /*
1427 * TIP #233 (Virtualized Time)
1428 */
1429
1430 typedef void (Tcl_GetTimeProc) (Tcl_Time *timebuf, ClientData clientData);
1431 typedef void (Tcl_ScaleTimeProc) (Tcl_Time *timebuf, ClientData clientData);
1432
1433 /*
1434 *----------------------------------------------------------------------------
1435 * Bits to pass to Tcl_CreateFileHandler and Tcl_CreateChannelHandler to
1436 * indicate what sorts of events are of interest:
1437 */
1438
1439 #define TCL_READABLE (1<<1)
1440 #define TCL_WRITABLE (1<<2)
1441 #define TCL_EXCEPTION (1<<3)
1442
1443 /*
1444 * Flag values to pass to Tcl_OpenCommandChannel to indicate the disposition
1445 * of the stdio handles. TCL_STDIN, TCL_STDOUT, TCL_STDERR, are also used in
1446 * Tcl_GetStdChannel.
1447 */
1448
1449 #define TCL_STDIN (1<<1)
1450 #define TCL_STDOUT (1<<2)
1451 #define TCL_STDERR (1<<3)
1452 #define TCL_ENFORCE_MODE (1<<4)
1453
1454 /*
1455 * Bits passed to Tcl_DriverClose2Proc to indicate which side of a channel
1456 * should be closed.
1457 */
1458
1459 #define TCL_CLOSE_READ (1<<1)
1460 #define TCL_CLOSE_WRITE (1<<2)
1461
1462 /*
1463 * Value to use as the closeProc for a channel that supports the close2Proc
1464 * interface.
1465 */
1466
1467 #define TCL_CLOSE2PROC ((Tcl_DriverCloseProc *) 1)
1468
1469 /*
1470 * Channel version tag. This was introduced in 8.3.2/8.4.
1471 */
1472
1473 #define TCL_CHANNEL_VERSION_1 ((Tcl_ChannelTypeVersion) 0x1)
1474 #define TCL_CHANNEL_VERSION_2 ((Tcl_ChannelTypeVersion) 0x2)
1475 #define TCL_CHANNEL_VERSION_3 ((Tcl_ChannelTypeVersion) 0x3)
1476 #define TCL_CHANNEL_VERSION_4 ((Tcl_ChannelTypeVersion) 0x4)
1477 #define TCL_CHANNEL_VERSION_5 ((Tcl_ChannelTypeVersion) 0x5)
1478
1479 /*
1480 * TIP #218: Channel Actions, Ids for Tcl_DriverThreadActionProc.
1481 */
1482
1483 #define TCL_CHANNEL_THREAD_INSERT (0)
1484 #define TCL_CHANNEL_THREAD_REMOVE (1)
1485
1486 /*
1487 * Typedefs for the various operations in a channel type:
1488 */
1489
1490 typedef int (Tcl_DriverBlockModeProc) (ClientData instanceData, int mode);
1491 typedef int (Tcl_DriverCloseProc) (ClientData instanceData,
1492 Tcl_Interp *interp);
1493 typedef int (Tcl_DriverClose2Proc) (ClientData instanceData,
1494 Tcl_Interp *interp, int flags);
1495 typedef int (Tcl_DriverInputProc) (ClientData instanceData, char *buf,
1496 int toRead, int *errorCodePtr);
1497 typedef int (Tcl_DriverOutputProc) (ClientData instanceData,
1498 CONST84 char *buf, int toWrite, int *errorCodePtr);
1499 typedef int (Tcl_DriverSeekProc) (ClientData instanceData, long offset,
1500 int mode, int *errorCodePtr);
1501 typedef int (Tcl_DriverSetOptionProc) (ClientData instanceData,
1502 Tcl_Interp *interp, const char *optionName,
1503 const char *value);
1504 typedef int (Tcl_DriverGetOptionProc) (ClientData instanceData,
1505 Tcl_Interp *interp, CONST84 char *optionName,
1506 Tcl_DString *dsPtr);
1507 typedef void (Tcl_DriverWatchProc) (ClientData instanceData, int mask);
1508 typedef int (Tcl_DriverGetHandleProc) (ClientData instanceData,
1509 int direction, ClientData *handlePtr);
1510 typedef int (Tcl_DriverFlushProc) (ClientData instanceData);
1511 typedef int (Tcl_DriverHandlerProc) (ClientData instanceData,
1512 int interestMask);
1513 typedef Tcl_WideInt (Tcl_DriverWideSeekProc) (ClientData instanceData,
1514 Tcl_WideInt offset, int mode, int *errorCodePtr);
1515 /*
1516 * TIP #218, Channel Thread Actions
1517 */
1518 typedef void (Tcl_DriverThreadActionProc) (ClientData instanceData,
1519 int action);
1520 /*
1521 * TIP #208, File Truncation (etc.)
1522 */
1523 typedef int (Tcl_DriverTruncateProc) (ClientData instanceData,
1524 Tcl_WideInt length);
1525
1526 /*
1527 * struct Tcl_ChannelType:
1528 *
1529 * One such structure exists for each type (kind) of channel. It collects
1530 * together in one place all the functions that are part of the specific
1531 * channel type.
1532 *
1533 * It is recommend that the Tcl_Channel* functions are used to access elements
1534 * of this structure, instead of direct accessing.
1535 */
1536
1537 typedef struct Tcl_ChannelType {
1538 const char *typeName; /* The name of the channel type in Tcl
1539 * commands. This storage is owned by channel
1540 * type. */
1541 Tcl_ChannelTypeVersion version;
1542 /* Version of the channel type. */
1543 Tcl_DriverCloseProc *closeProc;
1544 /* Function to call to close the channel, or
1545 * TCL_CLOSE2PROC if the close2Proc should be
1546 * used instead. */
1547 Tcl_DriverInputProc *inputProc;
1548 /* Function to call for input on channel. */
1549 Tcl_DriverOutputProc *outputProc;
1550 /* Function to call for output on channel. */
1551 Tcl_DriverSeekProc *seekProc;
1552 /* Function to call to seek on the channel.
1553 * May be NULL. */
1554 Tcl_DriverSetOptionProc *setOptionProc;
1555 /* Set an option on a channel. */
1556 Tcl_DriverGetOptionProc *getOptionProc;
1557 /* Get an option from a channel. */
1558 Tcl_DriverWatchProc *watchProc;
1559 /* Set up the notifier to watch for events on
1560 * this channel. */
1561 Tcl_DriverGetHandleProc *getHandleProc;
1562 /* Get an OS handle from the channel or NULL
1563 * if not supported. */
1564 Tcl_DriverClose2Proc *close2Proc;
1565 /* Function to call to close the channel if
1566 * the device supports closing the read &
1567 * write sides independently. */
1568 Tcl_DriverBlockModeProc *blockModeProc;
1569 /* Set blocking mode for the raw channel. May
1570 * be NULL. */
1571 /*
1572 * Only valid in TCL_CHANNEL_VERSION_2 channels or later.
1573 */
1574 Tcl_DriverFlushProc *flushProc;
1575 /* Function to call to flush a channel. May be
1576 * NULL. */
1577 Tcl_DriverHandlerProc *handlerProc;
1578 /* Function to call to handle a channel event.
1579 * This will be passed up the stacked channel
1580 * chain. */
1581 /*
1582 * Only valid in TCL_CHANNEL_VERSION_3 channels or later.
1583 */
1584 Tcl_DriverWideSeekProc *wideSeekProc;
1585 /* Function to call to seek on the channel
1586 * which can handle 64-bit offsets. May be
1587 * NULL, and must be NULL if seekProc is
1588 * NULL. */
1589 /*
1590 * Only valid in TCL_CHANNEL_VERSION_4 channels or later.
1591 * TIP #218, Channel Thread Actions.
1592 */
1593 Tcl_DriverThreadActionProc *threadActionProc;
1594 /* Function to call to notify the driver of
1595 * thread specific activity for a channel. May
1596 * be NULL. */
1597 /*
1598 * Only valid in TCL_CHANNEL_VERSION_5 channels or later.
1599 * TIP #208, File Truncation.
1600 */
1601 Tcl_DriverTruncateProc *truncateProc;
1602 /* Function to call to truncate the underlying
1603 * file to a particular length. May be NULL if
1604 * the channel does not support truncation. */
1605 } Tcl_ChannelType;
1606
1607 /*
1608 * The following flags determine whether the blockModeProc above should set
1609 * the channel into blocking or nonblocking mode. They are passed as arguments
1610 * to the blockModeProc function in the above structure.
1611 */
1612
1613 #define TCL_MODE_BLOCKING 0 /* Put channel into blocking mode. */
1614 #define TCL_MODE_NONBLOCKING 1 /* Put channel into nonblocking
1615 * mode. */
1616
1617 /*
1618 *----------------------------------------------------------------------------
1619 * Enum for different types of file paths.
1620 */
1621
1622 typedef enum Tcl_PathType {
1623 TCL_PATH_ABSOLUTE,
1624 TCL_PATH_RELATIVE,
1625 TCL_PATH_VOLUME_RELATIVE
1626 } Tcl_PathType;
1627
1628 /*
1629 * The following structure is used to pass glob type data amongst the various
1630 * glob routines and Tcl_FSMatchInDirectory.
1631 */
1632
1633 typedef struct Tcl_GlobTypeData {
1634 int type; /* Corresponds to bcdpfls as in 'find -t'. */
1635 int perm; /* Corresponds to file permissions. */
1636 Tcl_Obj *macType; /* Acceptable Mac type. */
1637 Tcl_Obj *macCreator; /* Acceptable Mac creator. */
1638 } Tcl_GlobTypeData;
1639
1640 /*
1641 * Type and permission definitions for glob command.
1642 */
1643
1644 #define TCL_GLOB_TYPE_BLOCK (1<<0)
1645 #define TCL_GLOB_TYPE_CHAR (1<<1)
1646 #define TCL_GLOB_TYPE_DIR (1<<2)
1647 #define TCL_GLOB_TYPE_PIPE (1<<3)
1648 #define TCL_GLOB_TYPE_FILE (1<<4)
1649 #define TCL_GLOB_TYPE_LINK (1<<5)
1650 #define TCL_GLOB_TYPE_SOCK (1<<6)
1651 #define TCL_GLOB_TYPE_MOUNT (1<<7)
1652
1653 #define TCL_GLOB_PERM_RONLY (1<<0)
1654 #define TCL_GLOB_PERM_HIDDEN (1<<1)
1655 #define TCL_GLOB_PERM_R (1<<2)
1656 #define TCL_GLOB_PERM_W (1<<3)
1657 #define TCL_GLOB_PERM_X (1<<4)
1658
1659 /*
1660 * Flags for the unload callback function.
1661 */
1662
1663 #define TCL_UNLOAD_DETACH_FROM_INTERPRETER (1<<0)
1664 #define TCL_UNLOAD_DETACH_FROM_PROCESS (1<<1)
1665
1666 /*
1667 * Typedefs for the various filesystem operations:
1668 */
1669
1670 typedef int (Tcl_FSStatProc) (Tcl_Obj *pathPtr, Tcl_StatBuf *buf);
1671 typedef int (Tcl_FSAccessProc) (Tcl_Obj *pathPtr, int mode);
1672 typedef Tcl_Channel (Tcl_FSOpenFileChannelProc) (Tcl_Interp *interp,
1673 Tcl_Obj *pathPtr, int mode, int permissions);
1674 typedef int (Tcl_FSMatchInDirectoryProc) (Tcl_Interp *interp, Tcl_Obj *result,
1675 Tcl_Obj *pathPtr, const char *pattern, Tcl_GlobTypeData *types);
1676 typedef Tcl_Obj * (Tcl_FSGetCwdProc) (Tcl_Interp *interp);
1677 typedef int (Tcl_FSChdirProc) (Tcl_Obj *pathPtr);
1678 typedef int (Tcl_FSLstatProc) (Tcl_Obj *pathPtr, Tcl_StatBuf *buf);
1679 typedef int (Tcl_FSCreateDirectoryProc) (Tcl_Obj *pathPtr);
1680 typedef int (Tcl_FSDeleteFileProc) (Tcl_Obj *pathPtr);
1681 typedef int (Tcl_FSCopyDirectoryProc) (Tcl_Obj *srcPathPtr,
1682 Tcl_Obj *destPathPtr, Tcl_Obj **errorPtr);
1683 typedef int (Tcl_FSCopyFileProc) (Tcl_Obj *srcPathPtr, Tcl_Obj *destPathPtr);
1684 typedef int (Tcl_FSRemoveDirectoryProc) (Tcl_Obj *pathPtr, int recursive,
1685 Tcl_Obj **errorPtr);
1686 typedef int (Tcl_FSRenameFileProc) (Tcl_Obj *srcPathPtr, Tcl_Obj *destPathPtr);
1687 typedef void (Tcl_FSUnloadFileProc) (Tcl_LoadHandle loadHandle);
1688 typedef Tcl_Obj * (Tcl_FSListVolumesProc) (void);
1689 /* We have to declare the utime structure here. */
1690 struct utimbuf;
1691 typedef int (Tcl_FSUtimeProc) (Tcl_Obj *pathPtr, struct utimbuf *tval);
1692 typedef int (Tcl_FSNormalizePathProc) (Tcl_Interp *interp, Tcl_Obj *pathPtr,
1693 int nextCheckpoint);
1694 typedef int (Tcl_FSFileAttrsGetProc) (Tcl_Interp *interp, int index,
1695 Tcl_Obj *pathPtr, Tcl_Obj **objPtrRef);
1696 typedef const char *CONST86 * (Tcl_FSFileAttrStringsProc) (Tcl_Obj *pathPtr,
1697 Tcl_Obj **objPtrRef);
1698 typedef int (Tcl_FSFileAttrsSetProc) (Tcl_Interp *interp, int index,
1699 Tcl_Obj *pathPtr, Tcl_Obj *objPtr);
1700 typedef Tcl_Obj * (Tcl_FSLinkProc) (Tcl_Obj *pathPtr, Tcl_Obj *toPtr,
1701 int linkType);
1702 typedef int (Tcl_FSLoadFileProc) (Tcl_Interp *interp, Tcl_Obj *pathPtr,
1703 Tcl_LoadHandle *handlePtr, Tcl_FSUnloadFileProc **unloadProcPtr);
1704 typedef int (Tcl_FSPathInFilesystemProc) (Tcl_Obj *pathPtr,
1705 ClientData *clientDataPtr);
1706 typedef Tcl_Obj * (Tcl_FSFilesystemPathTypeProc) (Tcl_Obj *pathPtr);
1707 typedef Tcl_Obj * (Tcl_FSFilesystemSeparatorProc) (Tcl_Obj *pathPtr);
1708 typedef void (Tcl_FSFreeInternalRepProc) (ClientData clientData);
1709 typedef ClientData (Tcl_FSDupInternalRepProc) (ClientData clientData);
1710 typedef Tcl_Obj * (Tcl_FSInternalToNormalizedProc) (ClientData clientData);
1711 typedef ClientData (Tcl_FSCreateInternalRepProc) (Tcl_Obj *pathPtr);
1712
1713 typedef struct Tcl_FSVersion_ *Tcl_FSVersion;
1714
1715 /*
1716 *----------------------------------------------------------------------------
1717 * Data structures related to hooking into the filesystem
1718 */
1719
1720 /*
1721 * Filesystem version tag. This was introduced in 8.4.
1722 */
1723
1724 #define TCL_FILESYSTEM_VERSION_1 ((Tcl_FSVersion) 0x1)
1725
1726 /*
1727 * struct Tcl_Filesystem:
1728 *
1729 * One such structure exists for each type (kind) of filesystem. It collects
1730 * together in one place all the functions that are part of the specific
1731 * filesystem. Tcl always accesses the filesystem through one of these
1732 * structures.
1733 *
1734 * Not all entries need be non-NULL; any which are NULL are simply ignored.
1735 * However, a complete filesystem should provide all of these functions. The
1736 * explanations in the structure show the importance of each function.
1737 */
1738
1739 typedef struct Tcl_Filesystem {
1740 const char *typeName; /* The name of the filesystem. */
1741 int structureLength; /* Length of this structure, so future binary
1742 * compatibility can be assured. */
1743 Tcl_FSVersion version; /* Version of the filesystem type. */
1744 Tcl_FSPathInFilesystemProc *pathInFilesystemProc;
1745 /* Function to check whether a path is in this
1746 * filesystem. This is the most important
1747 * filesystem function. */
1748 Tcl_FSDupInternalRepProc *dupInternalRepProc;
1749 /* Function to duplicate internal fs rep. May
1750 * be NULL (but then fs is less efficient). */
1751 Tcl_FSFreeInternalRepProc *freeInternalRepProc;
1752 /* Function to free internal fs rep. Must be
1753 * implemented if internal representations
1754 * need freeing, otherwise it can be NULL. */
1755 Tcl_FSInternalToNormalizedProc *internalToNormalizedProc;
1756 /* Function to convert internal representation
1757 * to a normalized path. Only required if the
1758 * fs creates pure path objects with no
1759 * string/path representation. */
1760 Tcl_FSCreateInternalRepProc *createInternalRepProc;
1761 /* Function to create a filesystem-specific
1762 * internal representation. May be NULL if
1763 * paths have no internal representation, or
1764 * if the Tcl_FSPathInFilesystemProc for this
1765 * filesystem always immediately creates an
1766 * internal representation for paths it
1767 * accepts. */
1768 Tcl_FSNormalizePathProc *normalizePathProc;
1769 /* Function to normalize a path. Should be
1770 * implemented for all filesystems which can
1771 * have multiple string representations for
1772 * the same path object. */
1773 Tcl_FSFilesystemPathTypeProc *filesystemPathTypeProc;
1774 /* Function to determine the type of a path in
1775 * this filesystem. May be NULL. */
1776 Tcl_FSFilesystemSeparatorProc *filesystemSeparatorProc;
1777 /* Function to return the separator
1778 * character(s) for this filesystem. Must be
1779 * implemented. */
1780 Tcl_FSStatProc *statProc; /* Function to process a 'Tcl_FSStat()' call.
1781 * Must be implemented for any reasonable
1782 * filesystem. */
1783 Tcl_FSAccessProc *accessProc;
1784 /* Function to process a 'Tcl_FSAccess()'
1785 * call. Must be implemented for any
1786 * reasonable filesystem. */
1787 Tcl_FSOpenFileChannelProc *openFileChannelProc;
1788 /* Function to process a
1789 * 'Tcl_FSOpenFileChannel()' call. Must be
1790 * implemented for any reasonable
1791 * filesystem. */
1792 Tcl_FSMatchInDirectoryProc *matchInDirectoryProc;
1793 /* Function to process a
1794 * 'Tcl_FSMatchInDirectory()'. If not
1795 * implemented, then glob and recursive copy
1796 * functionality will be lacking in the
1797 * filesystem. */
1798 Tcl_FSUtimeProc *utimeProc; /* Function to process a 'Tcl_FSUtime()' call.
1799 * Required to allow setting (not reading) of
1800 * times with 'file mtime', 'file atime' and
1801 * the open-r/open-w/fcopy implementation of
1802 * 'file copy'. */
1803 Tcl_FSLinkProc *linkProc; /* Function to process a 'Tcl_FSLink()' call.
1804 * Should be implemented only if the
1805 * filesystem supports links (reading or
1806 * creating). */
1807 Tcl_FSListVolumesProc *listVolumesProc;
1808 /* Function to list any filesystem volumes
1809 * added by this filesystem. Should be
1810 * implemented only if the filesystem adds
1811 * volumes at the head of the filesystem. */
1812 Tcl_FSFileAttrStringsProc *fileAttrStringsProc;
1813 /* Function to list all attributes strings
1814 * which are valid for this filesystem. If not
1815 * implemented the filesystem will not support
1816 * the 'file attributes' command. This allows
1817 * arbitrary additional information to be
1818 * attached to files in the filesystem. */
1819 Tcl_FSFileAttrsGetProc *fileAttrsGetProc;
1820 /* Function to process a
1821 * 'Tcl_FSFileAttrsGet()' call, used by 'file
1822 * attributes'. */
1823 Tcl_FSFileAttrsSetProc *fileAttrsSetProc;
1824 /* Function to process a
1825 * 'Tcl_FSFileAttrsSet()' call, used by 'file
1826 * attributes'. */
1827 Tcl_FSCreateDirectoryProc *createDirectoryProc;
1828 /* Function to process a
1829 * 'Tcl_FSCreateDirectory()' call. Should be
1830 * implemented unless the FS is read-only. */
1831 Tcl_FSRemoveDirectoryProc *removeDirectoryProc;
1832 /* Function to process a
1833 * 'Tcl_FSRemoveDirectory()' call. Should be
1834 * implemented unless the FS is read-only. */
1835 Tcl_FSDeleteFileProc *deleteFileProc;
1836 /* Function to process a 'Tcl_FSDeleteFile()'
1837 * call. Should be implemented unless the FS
1838 * is read-only. */
1839 Tcl_FSCopyFileProc *copyFileProc;
1840 /* Function to process a 'Tcl_FSCopyFile()'
1841 * call. If not implemented Tcl will fall back
1842 * on open-r, open-w and fcopy as a copying
1843 * mechanism, for copying actions initiated in
1844 * Tcl (not C). */
1845 Tcl_FSRenameFileProc *renameFileProc;
1846 /* Function to process a 'Tcl_FSRenameFile()'
1847 * call. If not implemented, Tcl will fall
1848 * back on a copy and delete mechanism, for
1849 * rename actions initiated in Tcl (not C). */
1850 Tcl_FSCopyDirectoryProc *copyDirectoryProc;
1851 /* Function to process a
1852 * 'Tcl_FSCopyDirectory()' call. If not
1853 * implemented, Tcl will fall back on a
1854 * recursive create-dir, file copy mechanism,
1855 * for copying actions initiated in Tcl (not
1856 * C). */
1857 Tcl_FSLstatProc *lstatProc; /* Function to process a 'Tcl_FSLstat()' call.
1858 * If not implemented, Tcl will attempt to use
1859 * the 'statProc' defined above instead. */
1860 Tcl_FSLoadFileProc *loadFileProc;
1861 /* Function to process a 'Tcl_FSLoadFile()'
1862 * call. If not implemented, Tcl will fall
1863 * back on a copy to native-temp followed by a
1864 * Tcl_FSLoadFile on that temporary copy. */
1865 Tcl_FSGetCwdProc *getCwdProc;
1866 /* Function to process a 'Tcl_FSGetCwd()'
1867 * call. Most filesystems need not implement
1868 * this. It will usually only be called once,
1869 * if 'getcwd' is called before 'chdir'. May
1870 * be NULL. */
1871 Tcl_FSChdirProc *chdirProc; /* Function to process a 'Tcl_FSChdir()' call.
1872 * If filesystems do not implement this, it
1873 * will be emulated by a series of directory
1874 * access checks. Otherwise, virtual
1875 * filesystems which do implement it need only
1876 * respond with a positive return result if
1877 * the dirName is a valid directory in their
1878 * filesystem. They need not remember the
1879 * result, since that will be automatically
1880 * remembered for use by GetCwd. Real
1881 * filesystems should carry out the correct
1882 * action (i.e. call the correct system
1883 * 'chdir' api). If not implemented, then 'cd'
1884 * and 'pwd' will fail inside the
1885 * filesystem. */
1886 } Tcl_Filesystem;
1887
1888 /*
1889 * The following definitions are used as values for the 'linkAction' flag to
1890 * Tcl_FSLink, or the linkProc of any filesystem. Any combination of flags can
1891 * be given. For link creation, the linkProc should create a link which
1892 * matches any of the types given.
1893 *
1894 * TCL_CREATE_SYMBOLIC_LINK - Create a symbolic or soft link.
1895 * TCL_CREATE_HARD_LINK - Create a hard link.
1896 */
1897
1898 #define TCL_CREATE_SYMBOLIC_LINK 0x01
1899 #define TCL_CREATE_HARD_LINK 0x02
1900
1901 /*
1902 *----------------------------------------------------------------------------
1903 * The following structure represents the Notifier functions that you can
1904 * override with the Tcl_SetNotifier call.
1905 */
1906
1907 typedef struct Tcl_NotifierProcs {
1908 Tcl_SetTimerProc *setTimerProc;
1909 Tcl_WaitForEventProc *waitForEventProc;
1910 Tcl_CreateFileHandlerProc *createFileHandlerProc;
1911 Tcl_DeleteFileHandlerProc *deleteFileHandlerProc;
1912 Tcl_InitNotifierProc *initNotifierProc;
1913 Tcl_FinalizeNotifierProc *finalizeNotifierProc;
1914 Tcl_AlertNotifierProc *alertNotifierProc;
1915 Tcl_ServiceModeHookProc *serviceModeHookProc;
1916 } Tcl_NotifierProcs;
1917
1918
1919 /*
1920 *----------------------------------------------------------------------------
1921 * The following data structures and declarations are for the new Tcl parser.
1922 *
1923 * For each word of a command, and for each piece of a word such as a variable
1924 * reference, one of the following structures is created to describe the
1925 * token.
1926 */
1927
1928 typedef struct Tcl_Token {
1929 int type; /* Type of token, such as TCL_TOKEN_WORD; see
1930 * below for valid types. */
1931 const char *start; /* First character in token. */
1932 int size; /* Number of bytes in token. */
1933 int numComponents; /* If this token is composed of other tokens,
1934 * this field tells how many of them there are
1935 * (including components of components, etc.).
1936 * The component tokens immediately follow
1937 * this one. */
1938 } Tcl_Token;
1939
1940 /*
1941 * Type values defined for Tcl_Token structures. These values are defined as
1942 * mask bits so that it's easy to check for collections of types.
1943 *
1944 * TCL_TOKEN_WORD - The token describes one word of a command,
1945 * from the first non-blank character of the word
1946 * (which may be " or {) up to but not including
1947 * the space, semicolon, or bracket that
1948 * terminates the word. NumComponents counts the
1949 * total number of sub-tokens that make up the
1950 * word. This includes, for example, sub-tokens
1951 * of TCL_TOKEN_VARIABLE tokens.
1952 * TCL_TOKEN_SIMPLE_WORD - This token is just like TCL_TOKEN_WORD except
1953 * that the word is guaranteed to consist of a
1954 * single TCL_TOKEN_TEXT sub-token.
1955 * TCL_TOKEN_TEXT - The token describes a range of literal text
1956 * that is part of a word. NumComponents is
1957 * always 0.
1958 * TCL_TOKEN_BS - The token describes a backslash sequence that
1959 * must be collapsed. NumComponents is always 0.
1960 * TCL_TOKEN_COMMAND - The token describes a command whose result
1961 * must be substituted into the word. The token
1962 * includes the enclosing brackets. NumComponents
1963 * is always 0.
1964 * TCL_TOKEN_VARIABLE - The token describes a variable substitution,
1965 * including the dollar sign, variable name, and
1966 * array index (if there is one) up through the
1967 * right parentheses. NumComponents tells how
1968 * many additional tokens follow to represent the
1969 * variable name. The first token will be a
1970 * TCL_TOKEN_TEXT token that describes the
1971 * variable name. If the variable is an array
1972 * reference then there will be one or more
1973 * additional tokens, of type TCL_TOKEN_TEXT,
1974 * TCL_TOKEN_BS, TCL_TOKEN_COMMAND, and
1975 * TCL_TOKEN_VARIABLE, that describe the array
1976 * index; numComponents counts the total number
1977 * of nested tokens that make up the variable
1978 * reference, including sub-tokens of
1979 * TCL_TOKEN_VARIABLE tokens.
1980 * TCL_TOKEN_SUB_EXPR - The token describes one subexpression of an
1981 * expression, from the first non-blank character
1982 * of the subexpression up to but not including
1983 * the space, brace, or bracket that terminates
1984 * the subexpression. NumComponents counts the
1985 * total number of following subtokens that make
1986 * up the subexpression; this includes all
1987 * subtokens for any nested TCL_TOKEN_SUB_EXPR
1988 * tokens. For example, a numeric value used as a
1989 * primitive operand is described by a
1990 * TCL_TOKEN_SUB_EXPR token followed by a
1991 * TCL_TOKEN_TEXT token. A binary subexpression
1992 * is described by a TCL_TOKEN_SUB_EXPR token
1993 * followed by the TCL_TOKEN_OPERATOR token for
1994 * the operator, then TCL_TOKEN_SUB_EXPR tokens
1995 * for the left then the right operands.
1996 * TCL_TOKEN_OPERATOR - The token describes one expression operator.
1997 * An operator might be the name of a math
1998 * function such as "abs". A TCL_TOKEN_OPERATOR
1999 * token is always preceeded by one
2000 * TCL_TOKEN_SUB_EXPR token for the operator's
2001 * subexpression, and is followed by zero or more
2002 * TCL_TOKEN_SUB_EXPR tokens for the operator's
2003 * operands. NumComponents is always 0.
2004 * TCL_TOKEN_EXPAND_WORD - This token is just like TCL_TOKEN_WORD except
2005 * that it marks a word that began with the
2006 * literal character prefix "{*}". This word is
2007 * marked to be expanded - that is, broken into
2008 * words after substitution is complete.
2009 */
2010
2011 #define TCL_TOKEN_WORD 1
2012 #define TCL_TOKEN_SIMPLE_WORD 2
2013 #define TCL_TOKEN_TEXT 4
2014 #define TCL_TOKEN_BS 8
2015 #define TCL_TOKEN_COMMAND 16
2016 #define TCL_TOKEN_VARIABLE 32
2017 #define TCL_TOKEN_SUB_EXPR 64
2018 #define TCL_TOKEN_OPERATOR 128
2019 #define TCL_TOKEN_EXPAND_WORD 256
2020
2021 /*
2022 * Parsing error types. On any parsing error, one of these values will be
2023 * stored in the error field of the Tcl_Parse structure defined below.
2024 */
2025
2026 #define TCL_PARSE_SUCCESS 0
2027 #define TCL_PARSE_QUOTE_EXTRA 1
2028 #define TCL_PARSE_BRACE_EXTRA 2
2029 #define TCL_PARSE_MISSING_BRACE 3
2030 #define TCL_PARSE_MISSING_BRACKET 4
2031 #define TCL_PARSE_MISSING_PAREN 5
2032 #define TCL_PARSE_MISSING_QUOTE 6
2033 #define TCL_PARSE_MISSING_VAR_BRACE 7
2034 #define TCL_PARSE_SYNTAX 8
2035 #define TCL_PARSE_BAD_NUMBER 9
2036
2037 /*
2038 * A structure of the following type is filled in by Tcl_ParseCommand. It
2039 * describes a single command parsed from an input string.
2040 */
2041
2042 #define NUM_STATIC_TOKENS 20
2043
2044 typedef struct Tcl_Parse {
2045 const char *commentStart; /* Pointer to # that begins the first of one
2046 * or more comments preceding the command. */
2047 int commentSize; /* Number of bytes in comments (up through
2048 * newline character that terminates the last
2049 * comment). If there were no comments, this
2050 * field is 0. */
2051 const char *commandStart; /* First character in first word of
2052 * command. */
2053 int commandSize; /* Number of bytes in command, including first
2054 * character of first word, up through the
2055 * terminating newline, close bracket, or
2056 * semicolon. */
2057 int numWords; /* Total number of words in command. May be
2058 * 0. */
2059 Tcl_Token *tokenPtr; /* Pointer to first token representing the
2060 * words of the command. Initially points to
2061 * staticTokens, but may change to point to
2062 * malloc-ed space if command exceeds space in
2063 * staticTokens. */
2064 int numTokens; /* Total number of tokens in command. */
2065 int tokensAvailable; /* Total number of tokens available at
2066 * *tokenPtr. */
2067 int errorType; /* One of the parsing error types defined
2068 * above. */
2069
2070 /*
2071 * The fields below are intended only for the private use of the parser.
2072 * They should not be used by functions that invoke Tcl_ParseCommand.
2073 */
2074
2075 const char *string; /* The original command string passed to
2076 * Tcl_ParseCommand. */
2077 const char *end; /* Points to the character just after the last
2078 * one in the command string. */
2079 Tcl_Interp *interp; /* Interpreter to use for error reporting, or
2080 * NULL. */
2081 const char *term; /* Points to character in string that
2082 * terminated most recent token. Filled in by
2083 * ParseTokens. If an error occurs, points to
2084 * beginning of region where the error
2085 * occurred (e.g. the open brace if the close
2086 * brace is missing). */
2087 int incomplete; /* This field is set to 1 by Tcl_ParseCommand
2088 * if the command appears to be incomplete.
2089 * This information is used by
2090 * Tcl_CommandComplete. */
2091 Tcl_Token staticTokens[NUM_STATIC_TOKENS];
2092 /* Initial space for tokens for command. This
2093 * space should be large enough to accommodate
2094 * most commands; dynamic space is allocated
2095 * for very large commands that don't fit
2096 * here. */
2097 } Tcl_Parse;
2098
2099
2100 /*
2101 *----------------------------------------------------------------------------
2102 * The following structure represents a user-defined encoding. It collects
2103 * together all the functions that are used by the specific encoding.
2104 */
2105
2106 typedef struct Tcl_EncodingType {
2107 const char *encodingName; /* The name of the encoding, e.g. "euc-jp".
2108 * This name is the unique key for this
2109 * encoding type. */
2110 Tcl_EncodingConvertProc *toUtfProc;
2111 /* Function to convert from external encoding
2112 * into UTF-8. */
2113 Tcl_EncodingConvertProc *fromUtfProc;
2114 /* Function to convert from UTF-8 into
2115 * external encoding. */
2116 Tcl_EncodingFreeProc *freeProc;
2117 /* If non-NULL, function to call when this
2118 * encoding is deleted. */
2119 ClientData clientData; /* Arbitrary value associated with encoding
2120 * type. Passed to conversion functions. */
2121 int nullSize; /* Number of zero bytes that signify
2122 * end-of-string in this encoding. This number
2123 * is used to determine the source string
2124 * length when the srcLen argument is
2125 * negative. Must be 1 or 2. */
2126 } Tcl_EncodingType;
2127
2128 /*
2129 * The following definitions are used as values for the conversion control
2130 * flags argument when converting text from one character set to another:
2131 *
2132 * TCL_ENCODING_START - Signifies that the source buffer is the first
2133 * block in a (potentially multi-block) input
2134 * stream. Tells the conversion function to reset
2135 * to an initial state and perform any
2136 * initialization that needs to occur before the
2137 * first byte is converted. If the source buffer
2138 * contains the entire input stream to be
2139 * converted, this flag should be set.
2140 * TCL_ENCODING_END - Signifies that the source buffer is the last
2141 * block in a (potentially multi-block) input
2142 * stream. Tells the conversion routine to
2143 * perform any finalization that needs to occur
2144 * after the last byte is converted and then to
2145 * reset to an initial state. If the source
2146 * buffer contains the entire input stream to be
2147 * converted, this flag should be set.
2148 * TCL_ENCODING_STOPONERROR - If set, then the converter will return
2149 * immediately upon encountering an invalid byte
2150 * sequence or a source character that has no
2151 * mapping in the target encoding. If clear, then
2152 * the converter will skip the problem,
2153 * substituting one or more "close" characters in
2154 * the destination buffer and then continue to
2155 * convert the source.
2156 */
2157
2158 #define TCL_ENCODING_START 0x01
2159 #define TCL_ENCODING_END 0x02
2160 #define TCL_ENCODING_STOPONERROR 0x04
2161
2162 /*
2163 * The following definitions are the error codes returned by the conversion
2164 * routines:
2165 *
2166 * TCL_OK - All characters were converted.
2167 * TCL_CONVERT_NOSPACE - The output buffer would not have been large
2168 * enough for all of the converted data; as many
2169 * characters as could fit were converted though.
2170 * TCL_CONVERT_MULTIBYTE - The last few bytes in the source string were
2171 * the beginning of a multibyte sequence, but
2172 * more bytes were needed to complete this
2173 * sequence. A subsequent call to the conversion
2174 * routine should pass the beginning of this
2175 * unconverted sequence plus additional bytes
2176 * from the source stream to properly convert the
2177 * formerly split-up multibyte sequence.
2178 * TCL_CONVERT_SYNTAX - The source stream contained an invalid
2179 * character sequence. This may occur if the
2180 * input stream has been damaged or if the input
2181 * encoding method was misidentified. This error
2182 * is reported only if TCL_ENCODING_STOPONERROR
2183 * was specified.
2184 * TCL_CONVERT_UNKNOWN - The source string contained a character that
2185 * could not be represented in the target
2186 * encoding. This error is reported only if
2187 * TCL_ENCODING_STOPONERROR was specified.
2188 */
2189
2190 #define TCL_CONVERT_MULTIBYTE (-1)
2191 #define TCL_CONVERT_SYNTAX (-2)
2192 #define TCL_CONVERT_UNKNOWN (-3)
2193 #define TCL_CONVERT_NOSPACE (-4)
2194
2195 /*
2196 * The maximum number of bytes that are necessary to represent a single
2197 * Unicode character in UTF-8. The valid values should be 3, 4 or 6
2198 * (or perhaps 1 if we want to support a non-unicode enabled core). If 3 or
2199 * 4, then Tcl_UniChar must be 2-bytes in size (UCS-2) (the default). If 6,
2200 * then Tcl_UniChar must be 4-bytes in size (UCS-4). At this time UCS-2 mode
2201 * is the default and recommended mode. UCS-4 is experimental and not
2202 * recommended. It works for the core, but most extensions expect UCS-2.
2203 */
2204
2205 #ifndef TCL_UTF_MAX
2206 #define TCL_UTF_MAX 3
2207 #endif
2208
2209 /*
2210 * This represents a Unicode character. Any changes to this should also be
2211 * reflected in regcustom.h.
2212 */
2213
2214 #if TCL_UTF_MAX > 4
2215 /*
2216 * unsigned int isn't 100% accurate as it should be a strict 4-byte value
2217 * (perhaps wchar_t). 64-bit systems may have troubles. The size of this
2218 * value must be reflected correctly in regcustom.h and
2219 * in tclEncoding.c.
2220 * XXX: Tcl is currently UCS-2 and planning UTF-16 for the Unicode
2221 * XXX: string rep that Tcl_UniChar represents. Changing the size
2222 * XXX: of Tcl_UniChar is /not/ supported.
2223 */
2224 typedef unsigned int Tcl_UniChar;
2225 #else
2226 typedef unsigned short Tcl_UniChar;
2227 #endif
2228
2229
2230 /*
2231 *----------------------------------------------------------------------------
2232 * TIP #59: The following structure is used in calls 'Tcl_RegisterConfig' to
2233 * provide the system with the embedded configuration data.
2234 */
2235
2236 typedef struct Tcl_Config {
2237 const char *key; /* Configuration key to register. ASCII
2238 * encoded, thus UTF-8. */
2239 const char *value; /* The value associated with the key. System
2240 * encoding. */
2241 } Tcl_Config;
2242
2243 /*
2244 *----------------------------------------------------------------------------
2245 * Flags for TIP#143 limits, detailing which limits are active in an
2246 * interpreter. Used for Tcl_{Add,Remove}LimitHandler type argument.
2247 */
2248
2249 #define TCL_LIMIT_COMMANDS 0x01
2250 #define TCL_LIMIT_TIME 0x02
2251
2252 /*
2253 * Structure containing information about a limit handler to be called when a
2254 * command- or time-limit is exceeded by an interpreter.
2255 */
2256
2257 typedef void (Tcl_LimitHandlerProc) (ClientData clientData, Tcl_Interp *interp);
2258 typedef void (Tcl_LimitHandlerDeleteProc) (ClientData clientData);
2259
2260 /*
2261 *----------------------------------------------------------------------------
2262 * Override definitions for libtommath.
2263 */
2264
2265 typedef struct mp_int mp_int;
2266 #define MP_INT_DECLARED
2267 typedef unsigned int mp_digit;
2268 #define MP_DIGIT_DECLARED
2269
2270 /*
2271 *----------------------------------------------------------------------------
2272 * Definitions needed for Tcl_ParseArgvObj routines.
2273 * Based on tkArgv.c.
2274 * Modifications from the original are copyright (c) Sam Bromley 2006
2275 */
2276
2277 typedef struct {
2278 int type; /* Indicates the option type; see below. */
2279 const char *keyStr; /* The key string that flags the option in the
2280 * argv array. */
2281 void *srcPtr; /* Value to be used in setting dst; usage
2282 * depends on type.*/
2283 void *dstPtr; /* Address of value to be modified; usage
2284 * depends on type.*/
2285 const char *helpStr; /* Documentation message describing this
2286 * option. */
2287 ClientData clientData; /* Word to pass to function callbacks. */
2288 } Tcl_ArgvInfo;
2289
2290 /*
2291 * Legal values for the type field of a Tcl_ArgInfo: see the user
2292 * documentation for details.
2293 */
2294
2295 #define TCL_ARGV_CONSTANT 15
2296 #define TCL_ARGV_INT 16
2297 #define TCL_ARGV_STRING 17
2298 #define TCL_ARGV_REST 18
2299 #define TCL_ARGV_FLOAT 19
2300 #define TCL_ARGV_FUNC 20
2301 #define TCL_ARGV_GENFUNC 21
2302 #define TCL_ARGV_HELP 22
2303 #define TCL_ARGV_END 23
2304
2305 /*
2306 * Types of callback functions for the TCL_ARGV_FUNC and TCL_ARGV_GENFUNC
2307 * argument types:
2308 */
2309
2310 typedef int (Tcl_ArgvFuncProc)(ClientData clientData, Tcl_Obj *objPtr,
2311 void *dstPtr);
2312 typedef int (Tcl_ArgvGenFuncProc)(ClientData clientData, Tcl_Interp *interp,
2313 int objc, Tcl_Obj *const *objv, void *dstPtr);
2314
2315 /*
2316 * Shorthand for commonly used argTable entries.
2317 */
2318
2319 #define TCL_ARGV_AUTO_HELP \
2320 {TCL_ARGV_HELP, "-help", NULL, NULL, \
2321 "Print summary of command-line options and abort", NULL}
2322 #define TCL_ARGV_AUTO_REST \
2323 {TCL_ARGV_REST, "--", NULL, NULL, \
2324 "Marks the end of the options", NULL}
2325 #define TCL_ARGV_TABLE_END \
2326 {TCL_ARGV_END, NULL, NULL, NULL, NULL, NULL}
2327
2328 /*
2329 *----------------------------------------------------------------------------
2330 * Definitions needed for Tcl_Zlib routines. [TIP #234]
2331 *
2332 * Constants for the format flags describing what sort of data format is
2333 * desired/expected for the Tcl_ZlibDeflate, Tcl_ZlibInflate and
2334 * Tcl_ZlibStreamInit functions.
2335 */
2336
2337 #define TCL_ZLIB_FORMAT_RAW 1
2338 #define TCL_ZLIB_FORMAT_ZLIB 2
2339 #define TCL_ZLIB_FORMAT_GZIP 4
2340 #define TCL_ZLIB_FORMAT_AUTO 8
2341
2342 /*
2343 * Constants that describe whether the stream is to operate in compressing or
2344 * decompressing mode.
2345 */
2346
2347 #define TCL_ZLIB_STREAM_DEFLATE 16
2348 #define TCL_ZLIB_STREAM_INFLATE 32
2349
2350 /*
2351 * Constants giving compression levels. Use of TCL_ZLIB_COMPRESS_DEFAULT is
2352 * recommended.
2353 */
2354
2355 #define TCL_ZLIB_COMPRESS_NONE 0
2356 #define TCL_ZLIB_COMPRESS_FAST 1
2357 #define TCL_ZLIB_COMPRESS_BEST 9
2358 #define TCL_ZLIB_COMPRESS_DEFAULT (-1)
2359
2360 /*
2361 * Constants for types of flushing, used with Tcl_ZlibFlush.
2362 */
2363
2364 #define TCL_ZLIB_NO_FLUSH 0
2365 #define TCL_ZLIB_FLUSH 2
2366 #define TCL_ZLIB_FULLFLUSH 3
2367 #define TCL_ZLIB_FINALIZE 4
2368
2369 /*
2370 *----------------------------------------------------------------------------
2371 * Definitions needed for the Tcl_LoadFile function. [TIP #416]
2372 */
2373
2374 #define TCL_LOAD_GLOBAL 1
2375 #define TCL_LOAD_LAZY 2
2376
2377 /*
2378 *----------------------------------------------------------------------------
2379 * Single public declaration for NRE.
2380 */
2381
2382 typedef int (Tcl_NRPostProc) (ClientData data[], Tcl_Interp *interp,
2383 int result);
2384
2385 /*
2386 *----------------------------------------------------------------------------
2387 * The following constant is used to test for older versions of Tcl in the
2388 * stubs tables.
2389 *
2390 * Jan Nijtman's plus patch uses 0xFCA1BACF, so we need to pick a different
2391 * value since the stubs tables don't match.
2392 */
2393
2394 #define TCL_STUB_MAGIC ((int) 0xFCA3BACF)
2395
2396 /*
2397 * The following function is required to be defined in all stubs aware
2398 * extensions. The function is actually implemented in the stub library, not
2399 * the main Tcl library, although there is a trivial implementation in the
2400 * main library in case an extension is statically linked into an application.
2401 */
2402
2403 const char * Tcl_InitStubs(Tcl_Interp *interp, const char *version,
2404 int exact);
2405 const char * TclTomMathInitializeStubs(Tcl_Interp *interp,
2406 const char *version, int epoch, int revision);
2407
2408 /*
2409 * When not using stubs, make it a macro.
2410 */
2411
2412 #ifndef USE_TCL_STUBS
2413 #define Tcl_InitStubs(interp, version, exact) \
2414 Tcl_PkgInitStubsCheck(interp, version, exact)
2415 #endif
2416
2417 /*
2418 * TODO - tommath stubs export goes here!
2419 */
2420
2421 /*
2422 * Public functions that are not accessible via the stubs table.
2423 * Tcl_GetMemoryInfo is needed for AOLserver. [Bug 1868171]
2424 */
2425
2426 #define Tcl_Main(argc, argv, proc) Tcl_MainEx(argc, argv, proc, \
2427 (Tcl_FindExecutable(argv[0]), (Tcl_CreateInterp)()))
2428 EXTERN void Tcl_MainEx(int argc, char **argv,
2429 Tcl_AppInitProc *appInitProc, Tcl_Interp *interp);
2430 EXTERN const char * Tcl_PkgInitStubsCheck(Tcl_Interp *interp,
2431 const char *version, int exact);
2432 #if defined(TCL_THREADS) && defined(USE_THREAD_ALLOC)
2433 EXTERN void Tcl_GetMemoryInfo(Tcl_DString *dsPtr);
2434 #endif
2435
2436
2437 /*
2438 *----------------------------------------------------------------------------
2439 * Include the public function declarations that are accessible via the stubs
2440 * table.
2441 */
2442
2443 #include "tclDecls.h"
2444
2445 /*
2446 * Include platform specific public function declarations that are accessible
2447 * via the stubs table.
2448 */
2449
2450 #include "tclPlatDecls.h"
2451
2452 /*
2453 *----------------------------------------------------------------------------
2454 * The following declarations either map ckalloc and ckfree to malloc and
2455 * free, or they map them to functions with all sorts of debugging hooks
2456 * defined in tclCkalloc.c.
2457 */
2458
2459 #ifdef TCL_MEM_DEBUG
2460
2461 # define ckalloc(x) \
2462 ((VOID *) Tcl_DbCkalloc((unsigned)(x), __FILE__, __LINE__))
2463 # define ckfree(x) \
2464 Tcl_DbCkfree((char *)(x), __FILE__, __LINE__)
2465 # define ckrealloc(x,y) \
2466 ((VOID *) Tcl_DbCkrealloc((char *)(x), (unsigned)(y), __FILE__, __LINE__))
2467 # define attemptckalloc(x) \
2468 ((VOID *) Tcl_AttemptDbCkalloc((unsigned)(x), __FILE__, __LINE__))
2469 # define attemptckrealloc(x,y) \
2470 ((VOID *) Tcl_AttemptDbCkrealloc((char *)(x), (unsigned)(y), __FILE__, __LINE__))
2471
2472 #else /* !TCL_MEM_DEBUG */
2473
2474 /*
2475 * If we are not using the debugging allocator, we should call the Tcl_Alloc,
2476 * et al. routines in order to guarantee that every module is using the same
2477 * memory allocator both inside and outside of the Tcl library.
2478 */
2479
2480 # define ckalloc(x) \
2481 ((VOID *) Tcl_Alloc((unsigned)(x)))
2482 # define ckfree(x) \
2483 Tcl_Free((char *)(x))
2484 # define ckrealloc(x,y) \
2485 ((VOID *) Tcl_Realloc((char *)(x), (unsigned)(y)))
2486 # define attemptckalloc(x) \
2487 ((VOID *) Tcl_AttemptAlloc((unsigned)(x)))
2488 # define attemptckrealloc(x,y) \
2489 ((VOID *) Tcl_AttemptRealloc((char *)(x), (unsigned)(y)))
2490 # undef Tcl_InitMemory
2491 # define Tcl_InitMemory(x)
2492 # undef Tcl_DumpActiveMemory
2493 # define Tcl_DumpActiveMemory(x)
2494 # undef Tcl_ValidateAllMemory
2495 # define Tcl_ValidateAllMemory(x,y)
2496
2497 #endif /* !TCL_MEM_DEBUG */
2498
2499 #ifdef TCL_MEM_DEBUG
2500 # define Tcl_IncrRefCount(objPtr) \
2501 Tcl_DbIncrRefCount(objPtr, __FILE__, __LINE__)
2502 # define Tcl_DecrRefCount(objPtr) \
2503 Tcl_DbDecrRefCount(objPtr, __FILE__, __LINE__)
2504 # define Tcl_IsShared(objPtr) \
2505 Tcl_DbIsShared(objPtr, __FILE__, __LINE__)
2506 #else
2507 # define Tcl_IncrRefCount(objPtr) \
2508 ++(objPtr)->refCount
2509 /*
2510 * Use do/while0 idiom for optimum correctness without compiler warnings.
2511 * http://c2.com/cgi/wiki?TrivialDoWhileLoop
2512 */
2513 # define Tcl_DecrRefCount(objPtr) \
2514 do { \
2515 Tcl_Obj *_objPtr = (objPtr); \
2516 if (--(_objPtr)->refCount <= 0) { \
2517 TclFreeObj(_objPtr); \
2518 } \
2519 } while(0)
2520 # define Tcl_IsShared(objPtr) \
2521 ((objPtr)->refCount > 1)
2522 #endif
2523
2524 /*
2525 * Macros and definitions that help to debug the use of Tcl objects. When
2526 * TCL_MEM_DEBUG is defined, the Tcl_New declarations are overridden to call
2527 * debugging versions of the object creation functions.
2528 */
2529
2530 #ifdef TCL_MEM_DEBUG
2531 # undef Tcl_NewBignumObj
2532 # define Tcl_NewBignumObj(val) \
2533 Tcl_DbNewBignumObj(val, __FILE__, __LINE__)
2534 # undef Tcl_NewBooleanObj
2535 # define Tcl_NewBooleanObj(val) \
2536 Tcl_DbNewBooleanObj(val, __FILE__, __LINE__)
2537 # undef Tcl_NewByteArrayObj
2538 # define Tcl_NewByteArrayObj(bytes, len) \
2539 Tcl_DbNewByteArrayObj(bytes, len, __FILE__, __LINE__)
2540 # undef Tcl_NewDoubleObj
2541 # define Tcl_NewDoubleObj(val) \
2542 Tcl_DbNewDoubleObj(val, __FILE__, __LINE__)
2543 # undef Tcl_NewIntObj
2544 # define Tcl_NewIntObj(val) \
2545 Tcl_DbNewLongObj(val, __FILE__, __LINE__)
2546 # undef Tcl_NewListObj
2547 # define Tcl_NewListObj(objc, objv) \
2548 Tcl_DbNewListObj(objc, objv, __FILE__, __LINE__)
2549 # undef Tcl_NewLongObj
2550 # define Tcl_NewLongObj(val) \
2551 Tcl_DbNewLongObj(val, __FILE__, __LINE__)
2552 # undef Tcl_NewObj
2553 # define Tcl_NewObj() \
2554 Tcl_DbNewObj(__FILE__, __LINE__)
2555 # undef Tcl_NewStringObj
2556 # define Tcl_NewStringObj(bytes, len) \
2557 Tcl_DbNewStringObj(bytes, len, __FILE__, __LINE__)
2558 # undef Tcl_NewWideIntObj
2559 # define Tcl_NewWideIntObj(val) \
2560 Tcl_DbNewWideIntObj(val, __FILE__, __LINE__)
2561 #endif /* TCL_MEM_DEBUG */
2562
2563 /*
2564 *----------------------------------------------------------------------------
2565 * Macros for clients to use to access fields of hash entries:
2566 */
2567
2568 #define Tcl_GetHashValue(h) ((h)->clientData)
2569 #define Tcl_SetHashValue(h, value) ((h)->clientData = (ClientData) (value))
2570 #define Tcl_GetHashKey(tablePtr, h) \
2571 ((void *) (((tablePtr)->keyType == TCL_ONE_WORD_KEYS || \
2572 (tablePtr)->keyType == TCL_CUSTOM_PTR_KEYS) \
2573 ? (h)->key.oneWordValue \
2574 : (h)->key.string))
2575
2576 /*
2577 * Macros to use for clients to use to invoke find and create functions for
2578 * hash tables:
2579 */
2580
2581 #undef Tcl_FindHashEntry
2582 #define Tcl_FindHashEntry(tablePtr, key) \
2583 (*((tablePtr)->findProc))(tablePtr, (const char *)(key))
2584 #undef Tcl_CreateHashEntry
2585 #define Tcl_CreateHashEntry(tablePtr, key, newPtr) \
2586 (*((tablePtr)->createProc))(tablePtr, (const char *)(key), newPtr)
2587
2588 /*
2589 *----------------------------------------------------------------------------
2590 * Macros that eliminate the overhead of the thread synchronization functions
2591 * when compiling without thread support.
2592 */
2593
2594 #ifndef TCL_THREADS
2595 #undef Tcl_MutexLock
2596 #define Tcl_MutexLock(mutexPtr)
2597 #undef Tcl_MutexUnlock
2598 #define Tcl_MutexUnlock(mutexPtr)
2599 #undef Tcl_MutexFinalize
2600 #define Tcl_MutexFinalize(mutexPtr)
2601 #undef Tcl_ConditionNotify
2602 #define Tcl_ConditionNotify(condPtr)
2603 #undef Tcl_ConditionWait
2604 #define Tcl_ConditionWait(condPtr, mutexPtr, timePtr)
2605 #undef Tcl_ConditionFinalize
2606 #define Tcl_ConditionFinalize(condPtr)
2607 #endif /* TCL_THREADS */
2608
2609 /*
2610 *----------------------------------------------------------------------------
2611 * Deprecated Tcl functions:
2612 */
2613
2614 #ifndef TCL_NO_DEPRECATED
2615 # undef Tcl_EvalObj
2616 # define Tcl_EvalObj(interp,objPtr) \
2617 Tcl_EvalObjEx((interp),(objPtr),0)
2618 # undef Tcl_GlobalEvalObj
2619 # define Tcl_GlobalEvalObj(interp,objPtr) \
2620 Tcl_EvalObjEx((interp),(objPtr),TCL_EVAL_GLOBAL)
2621
2622 /*
2623 * These function have been renamed. The old names are deprecated, but we
2624 * define these macros for backwards compatibilty.
2625 */
2626
2627 # define Tcl_Ckalloc Tcl_Alloc
2628 # define Tcl_Ckfree Tcl_Free
2629 # define Tcl_Ckrealloc Tcl_Realloc
2630 # define Tcl_Return Tcl_SetResult
2631 # define Tcl_TildeSubst Tcl_TranslateFileName
2632 # define panic Tcl_Panic
2633 # define panicVA Tcl_PanicVA
2634 #endif /* !TCL_NO_DEPRECATED */
2635
2636 /*
2637 *----------------------------------------------------------------------------
2638 * Convenience declaration of Tcl_AppInit for backwards compatibility. This
2639 * function is not *implemented* by the tcl library, so the storage class is
2640 * neither DLLEXPORT nor DLLIMPORT.
2641 */
2642
2643 extern Tcl_AppInitProc Tcl_AppInit;
2644
2645 #endif /* RC_INVOKED */
2646
2647 /*
2648 * end block for C++
2649 */
2650
2651 #ifdef __cplusplus
2652 }
2653 #endif
2654
2655 #endif /* _TCL */
2656
2657
2658 /*
2659 * Local Variables:
2660 * mode: c
2661 * c-basic-offset: 4
2662 * fill-column: 78
2663 * End:
2664 */
--- a/compat/tcl-8.6/generic/tcl.h
+++ b/compat/tcl-8.6/generic/tcl.h
@@ -56,65 +56,6 @@
5656
#define TCL_MAJOR_VERSION 8
5757
#define TCL_MINOR_VERSION 6
5858
#define TCL_RELEASE_LEVEL TCL_FINAL_RELEASE
59
-#define TCL_RELEASE_SERIAL 1eader file describes the external/*
60
- * tcl.h --
61
- *
62
- * ThisBA"8.6.1"------------------------------
63
- * The following structure represents a type facilities of the
64
- * Tcl interpreter.
65
- *
66
- * Copyright (c) 1987-1994 The Regents of the University of California.
67
- * Copyright (c) 1993-1996 Lucent Technologies.
68
- * Copyright (c) 1994-1998 Sun Microsystems, Inc.
69
- * Copyright (c) 1998-2000 by Scriptics Corporation.
70
- * Copyright (c) 2002 by Kevin B. Kenny. All rights reserved.
71
- *
72
- * See the file "license.terms" for information on usage and redistribution of
73
- * this file, and for a DISCLAIMER OF ALL WARRANTIES.
74
- */
75
-
76
-#ifndef _TCL
77
-#define _TCL
78
-
79
-/*
80
- * For C++ compilers, use extern "C"
81
- */
82
-
83
-#ifdef __cplusplus
84
-extern "C" {
85
-#endif
86
-
87
-/*
88
- * The following defines are used to indicate the various release levels.
89
- */
90
-
91
-#define TCL_ALPHA_RELEASE 0
92
-#define TCL_BETA_RELEASE 1
93
-#define TCL_FINAL_RELEASE 2
94
-
95
-/*
96
- * When version numbers change here, must also go into the following files and
97
- * update the version numbers:
98
- *
99
- * library/init.tcl (1 LOC patch)
100
- * unix/configure.in (2 LOC Major, 2 LOC minor, 1 LOC patch)
101
- * win/configure.in (as above)
102
- * win/tcl.m4 (not patchlevel)
103
- * win/makefile.bc (not patchlevel) 2 LOC
104
- * README (sections 0 and 2, with and without separator)
105
- * macosx/Tcl.pbproj/project.pbxproj (not patchlevel) 1 LOC
106
- * macosx/Tcl.pbproj/default.pbxuser (not patchlevel) 1 LOC
107
- * macosx/Tcl.xcode/project.pbxproj (not patchlevel) 2 LOC
108
- * macosx/Tcl.xcode/default.pbxuser (not patchlevel) 1 LOC
109
- * macosx/Tcl-Common.xcconfig (not patchlevel) 1 LOC
110
- * win/README (not patchlevel) (sections 0 and 2)
111
- * unix/tcl.spec (1 LOC patch)
112
- * tools/tcl.hpj.in (not patchlevel, for windows installer)
113
- */
114
-
115
-#define TCL_MAJOR_VERSION 8
116
-#define TCL_MINOR_VERSION 6
117
-#define TCL_RELEASE_LEVEL TCL_FINAL_RELEASE
11859
#define TCL_RELEASE_SERIAL 0
11960
12061
#define TCL_VERSION "8.6"
@@ -251,199 +192,273 @@
251192
* MSVCRT.
252193
*/
253194
254
-#if (defined(__WIN32__) && (defined(_MSC_VER) || (__BORLANDC__ >= 0x0550) || defined(__/*
255
- * tcl.h
195
+#if (defined(__WIN32__) && (defined(_MSC_VER) || (__BORLANDC__ >= 0x0550) || defined(__LCC__) || defined(__WATCOMC__) || (defined(__GNUC__) && defined(__declspec))))
196
+# define HAVE_DECLSPEC 1
197
+# ifdef STATIC_BUILD
198
+# define DLLIMPORT
199
+# define DLLEXPORT
200
+# ifdef _DLL
201
+# define CRTIMPORT __declspec(dllimport)
202
+# else
203
+# define CRTIMPORT
204
+# endif
205
+# else
206
+# define DLLIMPORT __declspec(dllimport)
207
+# define DLLEXPORT __declspec(dllexport)
208
+# define CRTIMPORT __declspec(dllimport)
209
+# endif
210
+#else
211
+# define DLLIMPORT
212
+# if defined(__GNUC__) && __GNUC__ > 3
213
+# define DLLEXPORT __attribute__ ((visibility("default")))
214
+# else
215
+# define DLLEXPORT
216
+# endif
217
+# define CRTIMPORT
218
+#endif
219
+
220
+/*
221
+ * These macros are used to control whether functions are being declared for
222
+ * import or export. If a function is being declared while it is being built
223
+ * to be included in a shared library, then it should have the DLLEXPORT
224
+ * storage class. If is being declared for use by a module that is going to
225
+ * link against the shared library, then it should have the DLLIMPORT storage
226
+ * class. If the symbol is beind declared for a static build or for use from a
227
+ * stub library, then the storage class should be empty.
228
+ *
229
+ * The convention is that a macro called BUILD_xxxx, where xxxx is the name of
230
+ * a library we are building, is set on the compile line for sources that are
231
+ * to be placed in the library. When this macro is set, the storage class will
232
+ * be set to DLLEXPORT. At the end of the header file, the storage class will
233
+ * be reset to DLLIMPORT.
234
+ */
235
+
236
+#undef TCL_STORAGE_CLASS
237
+#ifdef BUILD_tcl
238
+# define TCL_STORAGE_CLASS DLLEXPORT
239
+#else
240
+# ifdef USE_TCL_STUBS
241
+# define TCL_STORAGE_CLASS
242
+# else
243
+# define TCL_STORAGE_CLASS DLLIMPORT
244
+# endif
245
+#endif
246
+
247
+/*
248
+ * The following _ANSI_ARGS_ macro is to support old extensions
249
+ * written for older versions of Tcl where it permitted support
250
+ * for compilers written in the pre-prototype era of C.
251
+ *
252
+ * New code should use prototypes.
253
+ */
254
+
255
+#ifndef TCL_NO_DEPRECATED
256
+# undef _ANSI_ARGS_
257
+# define _ANSI_ARGS_(x) x
258
+#endif
259
+
260
+/*
261
+ * Definitions that allow this header file to be used either with or without
262
+ * ANSI C features.
263
+ */
264
+
265
+#ifndef INLINE
266
+# define INLINE
267
+#endif
268
+
269
+#ifdef NO_CONST
270
+# ifndef const
271
+# define const
272
+# endif
273
+#endif
274
+#ifndef CONST
275
+# define CONST const
276
+#endif
277
+
278
+#ifdef USE_NON_CONST
279
+# ifdef USE_COMPAT_CONST
280
+# error define at most one of USE_NON_CONST and USE_COMPAT_CONST
281
+# endif
282
+# define CONST84
283
+# define CONST84_RETURN
284
+#else
285
+# ifdef USE_COMPAT_CONST
286
+# define CONST84
287
+# define CONST84_RETURN const
288
+# else
289
+# define CONST84 const
290
+# define CONST84_RETURN const
291
+# endif
292
+#endif
293
+
294
+#ifndef CONST86
295
+# define CONST86 CONST84
296
+#endif
297
+
298
+/*
299
+ * Make sure EXTERN isn't defined elsewhere.
300
+ */
301
+
302
+#ifdef EXTERN
303
+# undef EXTERN
304
+#endif /* EXTERN */
305
+
306
+#ifdef __cplusplus
307
+# define EXTERN extern "C" TCL_STORAGE_CLASS
308
+#else
309
+# define EXTERN extern TCL_STORAGE_CLASS
310
+#endif
311
+
312
+/*
313
+ *----------------------------------------------------------------------------
314
+ * The following code is copied from winnt.h. If we don't replicate it here,
315
+ * then <windows.h> can't be included after tcl.h, since tcl.h also defines
316
+ * VOID. This block is skipped under Cygwin and Mingw.
317
+ */
318
+
319
+#if defined(__WIN32__) && !defined(HAVE_WINNT_IGNORE_VOID)
320
+#ifndef VOID
321
+#define VOID void
322
+typedef char CHAR;
323
+typedef short SHORT;
324
+typedef long LONG;
325
+#endif
326
+#endif /* __WIN32__ && !HAVE_WINNT_IGNORE_VOID */
327
+
328
+/*
329
+ * Macro to use instead of "void" for arguments that must have type "void *"
330
+ * in ANSI C; maps them to type "char *" in non-ANSI systems.
331
+ */
332
+
333
+#ifndef NO_VOID
334
+# define VOID void
335
+#else
336
+# define VOID char
337
+#endif
338
+
339
+/*
340
+ * Miscellaneous declarations.
341
+ */
342
+
343
+#ifndef _CLIENTDATA
256344
# ifndef NO_VOID
257
-# define VOID void
258
-# ((__deprecated__VOID char/*
259
- * tcl.h --
260
- *
261
- * Thiss header file describes the externally-visible facilities of the
262
- * Tcl interpreter.
263
- *
264
- * Copyright (c) 1987-1994 The Regents of the University of California.
265
- * Copyright (c) 1993-1996 Lucent Technologies.
266
- * Copyright (c) 1994-1998 Sun Microsystems, Inc.
267
- * Copyright (c) 1998-2000 by Scriptics Corporation.
268
- * Copyright (c) 2002 by Kevin B. Kenny. All rights reserved.
269
- *
270
- * See the file "license.terms" for information on usage and redistribution of
271
- * this file, and for a DISCLAIMER OF ALL WARRANTIES.
272
- */
273
-
274
-#ifndef _TCL
275
-#define _TCL
276
-
277
-/*
278
- * For C++ compilers, use extern "C"
279
- */
280
-
281
-#ifdef __cplusplus
282
-extern "C" {
283
-#endif
284
-
285
-/*
286
- * The following defines are used to indicate the various release levels.
287
- */
288
-
289
-#define TCL_ALPHA_RELEASE 0
290
-#define TCL_BETA_RELEASE 1
291
-#define TCL_FINAL_RELEASE 2
292
-
293
-/*
294
- * When version numbers change here, must also go into the following files and
295
- * update the version numbers:
296
- *
297
- * library/init.tcl (1 LOC patch)
298
- * unix/configure.in (2 LOC Major, 2 LOC minor, 1 LOC patch)
299
- * win/configure.in (as above)
300
- * win/tcl.m4 (not patchlevel)
301
- * win/makefile.bc (not patchlevel) 2 LOC
302
- * README (sections 0 and 2, with and without separator)
303
- * macosx/Tcl.pbproj/project.pbxproj (not patchlevel) 1 LOC
304
- * macosx/Tcl.pbproj/default.pbxuser (not patchlevel) 1 LOC
305
- * macosx/Tcl.xcode/project.pbxproj (not patchlevel) 2 LOC
306
- * macosx/Tcl.xcode/default.pbxuser (not patchlevel) 1 LOC
307
- * macosx/Tcl-Common.xcconfig (not patchlevel) 1 LOC
308
- * win/README (not patchlevel) (sections 0 and 2)
309
- * unix/tcl.spec (1 LOC patch)
310
- * tools/tcl.hpj.in (not patchlevel, for windows installer)
311
- */
312
-
313
-#define TCL_MAJOR_VERSION 8
314
-#define TCL_MINOR_VERSION 6
315
-#define TCL_RELEASE_LEVEL TCL_FINAL_RELEASE
316
-#define TCL_RELEASE_SERIAL 0
317
-
318
-#define TCL_VERSION "8.6"
319
-#define TCL_PATCH_LEVEL "8.6.0"
320
-
321
-
322
-/*
323
- *----------------------------------------------------------------------------
324
- * The following definitions set up the proper options for Windows compilers.
325
- * We use this method because there is no autoconf equivalent.
326
- */
327
-
328
-#ifndef __WIN32__
329
-# if defined(_WIN32) || defined(WIN32) || defined(__MINGW32__) || defined(__BORLANDC__) || (defined(__WATCOMC__) && defined(__WINDOWS_386__))
330
-# define __WIN32__
331
-# ifndef WIN32
332
-# define WIN32
333
-# endif
334
-# ifndef _WIN32
335
-# define _WIN32
336
-# endif
345
+ typedef void *ClientData;
346
+# else
347
+ typedef int *ClientData;
337348
# endif
338
-#endif
339
-
340
-/*
341
- * STRICT: See MSDN Article Q83456
342
- */
343
-
344
-#ifdef __WIN32__
345
-# ifndef STRICT
346
-# define STRICT
347
-# endif
348
-#endif /* __WIN32__ */
349
-
350
-/*
351
- * Utility macros: STRINGIFY takes an argument and wraps it in "" (double
352
- * quotation marks), JOIN joins two arguments.
353
- */
354
-
355
-#ifndef STRINGIFY
356
-# define STRINGIFY(x) STRINGIFY1(x)
357
-# define STRINGIFY1(x) #x
358
-#endif
359
-#ifndef JOIN
360
-# define JOIN(a,b) JOIN1(a,b)
361
-# define JOIN1(a,b) a##b
362
-#endif
363
-
364
-/*
365
- * A special definition used to allow this header file to be included from
366
- * windows resource files so that they can obtain version information.
367
- * RC_INVOKED is defined by default by the windows RC tool.
368
- *
369
- * Resource compilers don't like all the C stuff, like typedefs and function
370
- * declarations, that occur below, so block them out.
371
- */
372
-
373
-#ifndef RC_INVOKED
374
-
375
-/*
376
- * Special macro to define mutexes, that doesn't do anything if we are not
377
- * using threads.
378
- */
379
-
380
-#ifdef TCL_THREADS
381
-#define TCL_DECLARE_MUTEX(name) static Tcl_Mutex name;
382
-#else
383
-#define TCL_DECLARE_MUTEX(name)
384
-#endif
385
-
386
-/*
387
- * Tcl's public routine Tcl_FSSeek() uses the values SEEK_SET, SEEK_CUR, and
388
- * SEEK_END, all #define'd by stdio.h .
389
- *
390
- * Also, many extensions need stdio.h, and they've grown accustomed to tcl.h
391
- * providing it for them rather than #include-ing it themselves as they
392
- * should, so also for their sake, we keep the #include to be consistent with
393
- * prior Tcl releases.
394
- */
395
-
396
-#include <stdio.h>
397
-
398
-/*
399
- *----------------------------------------------------------------------------
400
- * Support for functions with a variable number of arguments.
401
- *
402
- * The following TCL_VARARGS* macros are to support old extensions
403
- * written for older versions of Tcl where the macros permitted
404
- * support for the varargs.h system as well as stdarg.h .
405
- *
406
- * New code should just directly be written to use stdarg.h conventions.
407
- */
408
-
409
-#include <stdarg.h>
410
-#ifndef TCL_NO_DEPRECATED
411
-# define TCL_VARARGS(type, name) (type name, ...)
412
-# define TCL_VARARGS_DEF(type, name) (type name, ...)
413
-# defi && !defined(__APPLE__ defined(HAVE_STRUCT_STAT64)
414
- typedef struct stat64 Tcl_StatBuf;
415
-#else
416
- typedef struct stat Tcl_StatBuf;
417
-#endif
418
-
419
-
420
-/*
421
- *----------------------------------------------------------------------------
422
- * Data structures defined opaquely in this module. The definitions below just
423
- * provide dummy types. A few fields are made visible in Tcl_Interp
424
- * structures, namely those used for returning a string result from commands.
425
- * Direct access to the result field is discouraged in Tcl 8.0. The
426
- * interpreter result is either an object or a string, and the two values are
427
- * kept consistent unless some C code sets interp->result directly.
428
- * Programmers should use either the function Tcl_GetObjResult() or
429
- * Tcl_GetStringResult() to read the interpreter's result. See the SetResult
430
- * man page for details.
431
- *
432
- * Note: any change to the Tcl_Interp definition below must be mirrored in the
433
- * "real" definition in tclInt.h.
434
- *
435
- * Note: Tcl_ObjCmdProc functions do not directly set result and freeProc.
436
- * Instead, they set a Tcl_Obj member in the "real" structure that can be
437
- * accessed with Tcl_GetObjResult() and Tcl_SetObjResult().
438
- */
439
-
440
-typedef struct Tcl_Interp
441
-#ifndef TCL_NO_DEPRECATED
442
-{
443
- /* TIP #330: Strongly discourage extensions from using the string
444
- * result. */
445
-#ifdef USE_INTERP_RStringe is a 4-byte gap */
446
- long long;
349
+# define _CLIENTDATA
350
+#endif
351
+
352
+/*
353
+ * Darwin specific configure overrides (to support fat compiles, where
354
+ * configure runs only once for multiple architectures):
355
+ */
356
+
357
+#ifdef __APPLE__
358
+# ifdef __LP64__
359
+# undef TCL_WIDE_INT_TYPE
360
+# define TCL_WIDE_INT_IS_LONG 1
361
+# define TCL_CFG_DO64BIT 1
362
+# else /* !__LP64__ */
363
+# define TCL_WIDE_INT_TYPE long long
364
+# undef TCL_WIDE_INT_IS_LONG
365
+# undef TCL_CFG_DO64BIT
366
+# endif /* __LP64__ */
367
+# undef HAVE_STRUCT_STAT64
368
+#endif /* __APPLE__ */
369
+
370
+/*
371
+ * Define Tcl_WideInt to be a type that is (at least) 64-bits wide, and define
372
+ * Tcl_WideUInt to be the unsigned variant of that type (assuming that where
373
+ * we have one, we can have the other.)
374
+ *
375
+ * Also defines the following macros:
376
+ * TCL_WIDE_INT_IS_LONG - if wide ints are really longs (i.e. we're on a real
377
+ * 64-bit system.)
378
+ * Tcl_WideAsLong - forgetful converter from wideInt to long.
379
+ * Tcl_LongAsWide - sign-extending converter from long to wideInt.
380
+ * Tcl_WideAsDouble - converter from wideInt to double.
381
+ * Tcl_DoubleAsWide - converter from double to wideInt.
382
+ *
383
+ * The following invariant should hold for any long value 'longVal':
384
+ * longVal == Tcl_WideAsLong(Tcl_LongAsWide(longVal))
385
+ *
386
+ * Note on converting between Tcl_WideInt and strings. This implementation (in
387
+ * tclObj.c) depends on the function
388
+ * sprintf(...,"%" TCL_LL_MODIFIER "d",...).
389
+ */
390
+
391
+#if !defined(TCL_WIDE_INT_TYPE)&&!defined(TCL_WIDE_INT_IS_LONG)
392
+# if defined(__WIN32__)
393
+# define TCL_WIDE_INT_TYPE __int64
394
+# ifdef __BORLANDC__
395
+# define TCL_LL_MODIFIER "L"
396
+# else /* __BORLANDC__ */
397
+# define TCL_LL_MODIFIER "I64"
398
+# endif /* __BORLANDC__ */
399
+# elif defined(__GNUC__)
400
+# define TCL_WIDE_INT_TYPE long long
401
+# define TCL_LL_MODIFIER "ll"
402
+# else /* ! __WIN32__ && ! __GNUC__ */
403
+/*
404
+ * Don't know what platform it is and configure hasn't discovered what is
405
+ * going on for us. Try to guess...
406
+ */
407
+# ifdef NO_LIMITS_H
408
+# error please define either TCL_WIDE_INT_TYPE or TCL_WIDE_INT_IS_LONG
409
+# else /* !NO_LIMITS_H */
410
+# include <limits.h>
411
+# if (INT_MAX < LONG_MAX)
412
+# define TCL_WIDE_INT_IS_LONG 1
413
+# else
414
+# define TCL_WIDE_INT_TYPE long long
415
+# endif
416
+# endif /* NO_LIMITS_H */
417
+# endif /* __WIN32__ */
418
+#endif /* !TCL_WIDE_INT_TYPE & !TCL_WIDE_INT_IS_LONG */
419
+#ifdef TCL_WIDE_INT_IS_LONG
420
+# undef TCL_WIDE_INT_TYPE
421
+# define TCL_WIDE_INT_TYPE long
422
+#endif /* TCL_WIDE_INT_IS_LONG */
423
+
424
+typedef TCL_WIDE_INT_TYPE Tcl_WideInt;
425
+typedef unsigned TCL_WIDE_INT_TYPE Tcl_WideUInt;
426
+
427
+#ifdef TCL_WIDE_INT_IS_LONG
428
+# define Tcl_WideAsLong(val) ((long)(val))
429
+# define Tcl_LongAsWide(val) ((long)(val))
430
+# define Tcl_WideAsDouble(val) ((double)((long)(val)))
431
+# define Tcl_DoubleAsWide(val) ((long)((double)(val)))
432
+# ifndef TCL_LL_MODIFIER
433
+# define TCL_LL_MODIFIER "l"
434
+# endif /* !TCL_LL_MODIFIER */
435
+#else /* TCL_WIDE_INT_IS_LONG */
436
+/*
437
+ * The next short section of defines are only done when not running on Windows
438
+ * or some other strange platform.
439
+ */
440
+# ifndef TCL_LL_MODIFIER
441
+# define TCL_LL_MODIFIER "ll"
442
+# endif /* !TCL_LL_MODIFIER */
443
+# define Tcl_WideAsLong(val) ((long)((Tcl_WideInt)(val)))
444
+# define Tcl_LongAsWide(val) ((Tcl_WideInt)((long)(val)))
445
+# define Tcl_WideAsDouble(val) ((double)((Tcl_WideInt)(val)))
446
+# define Tcl_DoubleAsWide(val) ((Tcl_WideInt)((double)(val)))
447
+#endif /* TCL_WIDE_INT_IS_LONG */
448
+
449
+#if defined(__WIN32__)
450
+# ifdef __BORLANDC__
451
+ typedef struct stati64 Tcl_StatBuf;
452
+# elif defined(_WIN64)
453
+ typedef struct __stat64 Tcl_StatBuf;
454
+# elif (defined(_MSC_VER) && (_MSC_VER < 1400)) || defined(_USE_32BIT_TIME_T)
455
+ typedef struct _stati64 Tcl_StatBuf;
456
+# else
457
+ typedef struct _stat32i64 Tcl_StatBuf;
458
+# endif /* _MSC_VER < 1400 */
459
+#elif defined(__CYGWIN__)
460
+ typedef struct _stat32i64 {
461
+ dev_t st_dev;
447462
unsigned short st_ino;
448463
unsigned short st_mode;
449464
short st_nlink;
@@ -451,7 +466,7 @@
451466
short st_gid;
452467
/* Here is a 2-byte gap */
453468
dev_t st_rdev;
454
- /* HerStringe is a 4-byte gap */
469
+ /* Here is a 4-byte gap */
455470
long long st_size;
456471
struct {long tv_sec;} st_atim;
457472
struct {long tv_sec;} st_mtim;
@@ -2349,7 +2364,93 @@
23492364
#define TCL_ZLIB_NO_FLUSH 0
23502365
#define TCL_ZLIB_FLUSH 2
23512366
#define TCL_ZLIB_FULLFLUSH 3
2352
-#define ----------------------------------------------------------------------------
2367
+#define TCL_ZLIB_FINALIZE 4
2368
+
2369
+/*
2370
+ *----------------------------------------------------------------------------
2371
+ * Definitions needed for the Tcl_LoadFile function. [TIP #416]
2372
+ */
2373
+
2374
+#define TCL_LOAD_GLOBAL 1
2375
+#define TCL_LOAD_LAZY 2
2376
+
2377
+/*
2378
+ *----------------------------------------------------------------------------
2379
+ * Single public declaration for NRE.
2380
+ */
2381
+
2382
+typedef int (Tcl_NRPostProc) (ClientData data[], Tcl_Interp *interp,
2383
+ int result);
2384
+
2385
+/*
2386
+ *----------------------------------------------------------------------------
2387
+ * The following constant is used to test for older versions of Tcl in the
2388
+ * stubs tables.
2389
+ *
2390
+ * Jan Nijtman's plus patch uses 0xFCA1BACF, so we need to pick a different
2391
+ * value since the stubs tables don't match.
2392
+ */
2393
+
2394
+#define TCL_STUB_MAGIC ((int) 0xFCA3BACF)
2395
+
2396
+/*
2397
+ * The following function is required to be defined in all stubs aware
2398
+ * extensions. The function is actually implemented in the stub library, not
2399
+ * the main Tcl library, although there is a trivial implementation in the
2400
+ * main library in case an extension is statically linked into an application.
2401
+ */
2402
+
2403
+const char * Tcl_InitStubs(Tcl_Interp *interp, const char *version,
2404
+ int exact);
2405
+const char * TclTomMathInitializeStubs(Tcl_Interp *interp,
2406
+ const char *version, int epoch, int revision);
2407
+
2408
+/*
2409
+ * When not using stubs, make it a macro.
2410
+ */
2411
+
2412
+#ifndef USE_TCL_STUBS
2413
+#define Tcl_InitStubs(interp, version, exact) \
2414
+ Tcl_PkgInitStubsCheck(interp, version, exact)
2415
+#endif
2416
+
2417
+/*
2418
+ * TODO - tommath stubs export goes here!
2419
+ */
2420
+
2421
+/*
2422
+ * Public functions that are not accessible via the stubs table.
2423
+ * Tcl_GetMemoryInfo is needed for AOLserver. [Bug 1868171]
2424
+ */
2425
+
2426
+#define Tcl_Main(argc, argv, proc) Tcl_MainEx(argc, argv, proc, \
2427
+ (Tcl_FindExecutable(argv[0]), (Tcl_CreateInterp)()))
2428
+EXTERN void Tcl_MainEx(int argc, char **argv,
2429
+ Tcl_AppInitProc *appInitProc, Tcl_Interp *interp);
2430
+EXTERN const char * Tcl_PkgInitStubsCheck(Tcl_Interp *interp,
2431
+ const char *version, int exact);
2432
+#if defined(TCL_THREADS) && defined(USE_THREAD_ALLOC)
2433
+EXTERN void Tcl_GetMemoryInfo(Tcl_DString *dsPtr);
2434
+#endif
2435
+
2436
+
2437
+/*
2438
+ *----------------------------------------------------------------------------
2439
+ * Include the public function declarations that are accessible via the stubs
2440
+ * table.
2441
+ */
2442
+
2443
+#include "tclDecls.h"
2444
+
2445
+/*
2446
+ * Include platform specific public function declarations that are accessible
2447
+ * via the stubs table.
2448
+ */
2449
+
2450
+#include "tclPlatDecls.h"
2451
+
2452
+/*
2453
+ *----------------------------------------------------------------------------
23532454
* The following declarations either map ckalloc and ckfree to malloc and
23542455
* free, or they map them to functions with all sorts of debugging hooks
23552456
* defined in tclCkalloc.c.
@@ -2357,12 +2458,207 @@
23572458
23582459
#ifdef TCL_MEM_DEBUG
23592460
2360
-# voidine ckalloc(x) \
2461
+# define ckalloc(x) \
23612462
((VOID *) Tcl_DbCkalloc((unsigned)(x), __FILE__, __LINE__))
23622463
# define ckfree(x) \
23632464
Tcl_DbCkfree((char *)(x), __FILE__, __LINE__)
2364
-# defvoid *) Tcl_DbCkrealloc((char *)(x), (unsigned)(y), __FILE__, __LINE__))
2365
-# definevoid *) Tcl_AttemptDbCkalloc((unsigned)(x), __FILE__, __LINE__))
2366
-# def Include platform specific
2367
- * via the stubsPlatDecls.h"--------------------------------------------------------
2368
- * The structure defined below is
2465
+# define ckrealloc(x,y) \
2466
+ ((VOID *) Tcl_DbCkrealloc((char *)(x), (unsigned)(y), __FILE__, __LINE__))
2467
+# define attemptckalloc(x) \
2468
+ ((VOID *) Tcl_AttemptDbCkalloc((unsigned)(x), __FILE__, __LINE__))
2469
+# define attemptckrealloc(x,y) \
2470
+ ((VOID *) Tcl_AttemptDbCkrealloc((char *)(x), (unsigned)(y), __FILE__, __LINE__))
2471
+
2472
+#else /* !TCL_MEM_DEBUG */
2473
+
2474
+/*
2475
+ * If we are not using the debugging allocator, we should call the Tcl_Alloc,
2476
+ * et al. routines in order to guarantee that every module is using the same
2477
+ * memory allocator both inside and outside of the Tcl library.
2478
+ */
2479
+
2480
+# define ckalloc(x) \
2481
+ ((VOID *) Tcl_Alloc((unsigned)(x)))
2482
+# define ckfree(x) \
2483
+ Tcl_Free((char *)(x))
2484
+# define ckrealloc(x,y) \
2485
+ ((VOID *) Tcl_Realloc((char *)(x), (unsigned)(y)))
2486
+# define attemptckalloc(x) \
2487
+ ((VOID *) Tcl_AttemptAlloc((unsigned)(x)))
2488
+# define attemptckrealloc(x,y) \
2489
+ ((VOID *) Tcl_AttemptRealloc((char *)(x), (unsigned)(y)))
2490
+# undef Tcl_InitMemory
2491
+# define Tcl_InitMemory(x)
2492
+# undef Tcl_DumpActiveMemory
2493
+# define Tcl_DumpActiveMemory(x)
2494
+# undef Tcl_ValidateAllMemory
2495
+# define Tcl_ValidateAllMemory(x,y)
2496
+
2497
+#endif /* !TCL_MEM_DEBUG */
2498
+
2499
+#ifdef TCL_MEM_DEBUG
2500
+# define Tcl_IncrRefCount(objPtr) \
2501
+ Tcl_DbIncrRefCount(objPtr, __FILE__, __LINE__)
2502
+# define Tcl_DecrRefCount(objPtr) \
2503
+ Tcl_DbDecrRefCount(objPtr, __FILE__, __LINE__)
2504
+# define Tcl_IsShared(objPtr) \
2505
+ Tcl_DbIsShared(objPtr, __FILE__, __LINE__)
2506
+#else
2507
+# define Tcl_IncrRefCount(objPtr) \
2508
+ ++(objPtr)->refCount
2509
+ /*
2510
+ * Use do/while0 idiom for optimum correctness without compiler warnings.
2511
+ * http://c2.com/cgi/wiki?TrivialDoWhileLoop
2512
+ */
2513
+# define Tcl_DecrRefCount(objPtr) \
2514
+ do { \
2515
+ Tcl_Obj *_objPtr = (objPtr); \
2516
+ if (--(_objPtr)->refCount <= 0) { \
2517
+ TclFreeObj(_objPtr); \
2518
+ } \
2519
+ } while(0)
2520
+# define Tcl_IsShared(objPtr) \
2521
+ ((objPtr)->refCount > 1)
2522
+#endif
2523
+
2524
+/*
2525
+ * Macros and definitions that help to debug the use of Tcl objects. When
2526
+ * TCL_MEM_DEBUG is defined, the Tcl_New declarations are overridden to call
2527
+ * debugging versions of the object creation functions.
2528
+ */
2529
+
2530
+#ifdef TCL_MEM_DEBUG
2531
+# undef Tcl_NewBignumObj
2532
+# define Tcl_NewBignumObj(val) \
2533
+ Tcl_DbNewBignumObj(val, __FILE__, __LINE__)
2534
+# undef Tcl_NewBooleanObj
2535
+# define Tcl_NewBooleanObj(val) \
2536
+ Tcl_DbNewBooleanObj(val, __FILE__, __LINE__)
2537
+# undef Tcl_NewByteArrayObj
2538
+# define Tcl_NewByteArrayObj(bytes, len) \
2539
+ Tcl_DbNewByteArrayObj(bytes, len, __FILE__, __LINE__)
2540
+# undef Tcl_NewDoubleObj
2541
+# define Tcl_NewDoubleObj(val) \
2542
+ Tcl_DbNewDoubleObj(val, __FILE__, __LINE__)
2543
+# undef Tcl_NewIntObj
2544
+# define Tcl_NewIntObj(val) \
2545
+ Tcl_DbNewLongObj(val, __FILE__, __LINE__)
2546
+# undef Tcl_NewListObj
2547
+# define Tcl_NewListObj(objc, objv) \
2548
+ Tcl_DbNewListObj(objc, objv, __FILE__, __LINE__)
2549
+# undef Tcl_NewLongObj
2550
+# define Tcl_NewLongObj(val) \
2551
+ Tcl_DbNewLongObj(val, __FILE__, __LINE__)
2552
+# undef Tcl_NewObj
2553
+# define Tcl_NewObj() \
2554
+ Tcl_DbNewObj(__FILE__, __LINE__)
2555
+# undef Tcl_NewStringObj
2556
+# define Tcl_NewStringObj(bytes, len) \
2557
+ Tcl_DbNewStringObj(bytes, len, __FILE__, __LINE__)
2558
+# undef Tcl_NewWideIntObj
2559
+# define Tcl_NewWideIntObj(val) \
2560
+ Tcl_DbNewWideIntObj(val, __FILE__, __LINE__)
2561
+#endif /* TCL_MEM_DEBUG */
2562
+
2563
+/*
2564
+ *----------------------------------------------------------------------------
2565
+ * Macros for clients to use to access fields of hash entries:
2566
+ */
2567
+
2568
+#define Tcl_GetHashValue(h) ((h)->clientData)
2569
+#define Tcl_SetHashValue(h, value) ((h)->clientData = (ClientData) (value))
2570
+#define Tcl_GetHashKey(tablePtr, h) \
2571
+ ((void *) (((tablePtr)->keyType == TCL_ONE_WORD_KEYS || \
2572
+ (tablePtr)->keyType == TCL_CUSTOM_PTR_KEYS) \
2573
+ ? (h)->key.oneWordValue \
2574
+ : (h)->key.string))
2575
+
2576
+/*
2577
+ * Macros to use for clients to use to invoke find and create functions for
2578
+ * hash tables:
2579
+ */
2580
+
2581
+#undef Tcl_FindHashEntry
2582
+#define Tcl_FindHashEntry(tablePtr, key) \
2583
+ (*((tablePtr)->findProc))(tablePtr, (const char *)(key))
2584
+#undef Tcl_CreateHashEntry
2585
+#define Tcl_CreateHashEntry(tablePtr, key, newPtr) \
2586
+ (*((tablePtr)->createProc))(tablePtr, (const char *)(key), newPtr)
2587
+
2588
+/*
2589
+ *----------------------------------------------------------------------------
2590
+ * Macros that eliminate the overhead of the thread synchronization functions
2591
+ * when compiling without thread support.
2592
+ */
2593
+
2594
+#ifndef TCL_THREADS
2595
+#undef Tcl_MutexLock
2596
+#define Tcl_MutexLock(mutexPtr)
2597
+#undef Tcl_MutexUnlock
2598
+#define Tcl_MutexUnlock(mutexPtr)
2599
+#undef Tcl_MutexFinalize
2600
+#define Tcl_MutexFinalize(mutexPtr)
2601
+#undef Tcl_ConditionNotify
2602
+#define Tcl_ConditionNotify(condPtr)
2603
+#undef Tcl_ConditionWait
2604
+#define Tcl_ConditionWait(condPtr, mutexPtr, timePtr)
2605
+#undef Tcl_ConditionFinalize
2606
+#define Tcl_ConditionFinalize(condPtr)
2607
+#endif /* TCL_THREADS */
2608
+
2609
+/*
2610
+ *----------------------------------------------------------------------------
2611
+ * Deprecated Tcl functions:
2612
+ */
2613
+
2614
+#ifndef TCL_NO_DEPRECATED
2615
+# undef Tcl_EvalObj
2616
+# define Tcl_EvalObj(interp,objPtr) \
2617
+ Tcl_EvalObjEx((interp),(objPtr),0)
2618
+# undef Tcl_GlobalEvalObj
2619
+# define Tcl_GlobalEvalObj(interp,objPtr) \
2620
+ Tcl_EvalObjEx((interp),(objPtr),TCL_EVAL_GLOBAL)
2621
+
2622
+/*
2623
+ * These function have been renamed. The old names are deprecated, but we
2624
+ * define these macros for backwards compatibilty.
2625
+ */
2626
+
2627
+# define Tcl_Ckalloc Tcl_Alloc
2628
+# define Tcl_Ckfree Tcl_Free
2629
+# define Tcl_Ckrealloc Tcl_Realloc
2630
+# define Tcl_Return Tcl_SetResult
2631
+# define Tcl_TildeSubst Tcl_TranslateFileName
2632
+# define panic Tcl_Panic
2633
+# define panicVA Tcl_PanicVA
2634
+#endif /* !TCL_NO_DEPRECATED */
2635
+
2636
+/*
2637
+ *----------------------------------------------------------------------------
2638
+ * Convenience declaration of Tcl_AppInit for backwards compatibility. This
2639
+ * function is not *implemented* by the tcl library, so the storage class is
2640
+ * neither DLLEXPORT nor DLLIMPORT.
2641
+ */
2642
+
2643
+extern Tcl_AppInitProc Tcl_AppInit;
2644
+
2645
+#endif /* RC_INVOKED */
2646
+
2647
+/*
2648
+ * end block for C++
2649
+ */
2650
+
2651
+#ifdef __cplusplus
2652
+}
2653
+#endif
2654
+
2655
+#endif /* _TCL */
2656
+
2657
+
2658
+/*
2659
+ * Local Variables:
2660
+ * mode: c
2661
+ * c-basic-offset: 4
2662
+ * fill-column: 78
2663
+ * End:
2664
+ */
--- a/compat/tcl-8.6/generic/tcl.h
+++ b/compat/tcl-8.6/generic/tcl.h
@@ -56,65 +56,6 @@
56 #define TCL_MAJOR_VERSION 8
57 #define TCL_MINOR_VERSION 6
58 #define TCL_RELEASE_LEVEL TCL_FINAL_RELEASE
59 #define TCL_RELEASE_SERIAL 1eader file describes the external/*
60 * tcl.h --
61 *
62 * ThisBA"8.6.1"------------------------------
63 * The following structure represents a type facilities of the
64 * Tcl interpreter.
65 *
66 * Copyright (c) 1987-1994 The Regents of the University of California.
67 * Copyright (c) 1993-1996 Lucent Technologies.
68 * Copyright (c) 1994-1998 Sun Microsystems, Inc.
69 * Copyright (c) 1998-2000 by Scriptics Corporation.
70 * Copyright (c) 2002 by Kevin B. Kenny. All rights reserved.
71 *
72 * See the file "license.terms" for information on usage and redistribution of
73 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
74 */
75
76 #ifndef _TCL
77 #define _TCL
78
79 /*
80 * For C++ compilers, use extern "C"
81 */
82
83 #ifdef __cplusplus
84 extern "C" {
85 #endif
86
87 /*
88 * The following defines are used to indicate the various release levels.
89 */
90
91 #define TCL_ALPHA_RELEASE 0
92 #define TCL_BETA_RELEASE 1
93 #define TCL_FINAL_RELEASE 2
94
95 /*
96 * When version numbers change here, must also go into the following files and
97 * update the version numbers:
98 *
99 * library/init.tcl (1 LOC patch)
100 * unix/configure.in (2 LOC Major, 2 LOC minor, 1 LOC patch)
101 * win/configure.in (as above)
102 * win/tcl.m4 (not patchlevel)
103 * win/makefile.bc (not patchlevel) 2 LOC
104 * README (sections 0 and 2, with and without separator)
105 * macosx/Tcl.pbproj/project.pbxproj (not patchlevel) 1 LOC
106 * macosx/Tcl.pbproj/default.pbxuser (not patchlevel) 1 LOC
107 * macosx/Tcl.xcode/project.pbxproj (not patchlevel) 2 LOC
108 * macosx/Tcl.xcode/default.pbxuser (not patchlevel) 1 LOC
109 * macosx/Tcl-Common.xcconfig (not patchlevel) 1 LOC
110 * win/README (not patchlevel) (sections 0 and 2)
111 * unix/tcl.spec (1 LOC patch)
112 * tools/tcl.hpj.in (not patchlevel, for windows installer)
113 */
114
115 #define TCL_MAJOR_VERSION 8
116 #define TCL_MINOR_VERSION 6
117 #define TCL_RELEASE_LEVEL TCL_FINAL_RELEASE
118 #define TCL_RELEASE_SERIAL 0
119
120 #define TCL_VERSION "8.6"
@@ -251,199 +192,273 @@
251 * MSVCRT.
252 */
253
254 #if (defined(__WIN32__) && (defined(_MSC_VER) || (__BORLANDC__ >= 0x0550) || defined(__/*
255 * tcl.h
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
256 # ifndef NO_VOID
257 # define VOID void
258 # ((__deprecated__VOID char/*
259 * tcl.h --
260 *
261 * Thiss header file describes the externally-visible facilities of the
262 * Tcl interpreter.
263 *
264 * Copyright (c) 1987-1994 The Regents of the University of California.
265 * Copyright (c) 1993-1996 Lucent Technologies.
266 * Copyright (c) 1994-1998 Sun Microsystems, Inc.
267 * Copyright (c) 1998-2000 by Scriptics Corporation.
268 * Copyright (c) 2002 by Kevin B. Kenny. All rights reserved.
269 *
270 * See the file "license.terms" for information on usage and redistribution of
271 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
272 */
273
274 #ifndef _TCL
275 #define _TCL
276
277 /*
278 * For C++ compilers, use extern "C"
279 */
280
281 #ifdef __cplusplus
282 extern "C" {
283 #endif
284
285 /*
286 * The following defines are used to indicate the various release levels.
287 */
288
289 #define TCL_ALPHA_RELEASE 0
290 #define TCL_BETA_RELEASE 1
291 #define TCL_FINAL_RELEASE 2
292
293 /*
294 * When version numbers change here, must also go into the following files and
295 * update the version numbers:
296 *
297 * library/init.tcl (1 LOC patch)
298 * unix/configure.in (2 LOC Major, 2 LOC minor, 1 LOC patch)
299 * win/configure.in (as above)
300 * win/tcl.m4 (not patchlevel)
301 * win/makefile.bc (not patchlevel) 2 LOC
302 * README (sections 0 and 2, with and without separator)
303 * macosx/Tcl.pbproj/project.pbxproj (not patchlevel) 1 LOC
304 * macosx/Tcl.pbproj/default.pbxuser (not patchlevel) 1 LOC
305 * macosx/Tcl.xcode/project.pbxproj (not patchlevel) 2 LOC
306 * macosx/Tcl.xcode/default.pbxuser (not patchlevel) 1 LOC
307 * macosx/Tcl-Common.xcconfig (not patchlevel) 1 LOC
308 * win/README (not patchlevel) (sections 0 and 2)
309 * unix/tcl.spec (1 LOC patch)
310 * tools/tcl.hpj.in (not patchlevel, for windows installer)
311 */
312
313 #define TCL_MAJOR_VERSION 8
314 #define TCL_MINOR_VERSION 6
315 #define TCL_RELEASE_LEVEL TCL_FINAL_RELEASE
316 #define TCL_RELEASE_SERIAL 0
317
318 #define TCL_VERSION "8.6"
319 #define TCL_PATCH_LEVEL "8.6.0"
320
321
322 /*
323 *----------------------------------------------------------------------------
324 * The following definitions set up the proper options for Windows compilers.
325 * We use this method because there is no autoconf equivalent.
326 */
327
328 #ifndef __WIN32__
329 # if defined(_WIN32) || defined(WIN32) || defined(__MINGW32__) || defined(__BORLANDC__) || (defined(__WATCOMC__) && defined(__WINDOWS_386__))
330 # define __WIN32__
331 # ifndef WIN32
332 # define WIN32
333 # endif
334 # ifndef _WIN32
335 # define _WIN32
336 # endif
337 # endif
338 #endif
339
340 /*
341 * STRICT: See MSDN Article Q83456
342 */
343
344 #ifdef __WIN32__
345 # ifndef STRICT
346 # define STRICT
347 # endif
348 #endif /* __WIN32__ */
349
350 /*
351 * Utility macros: STRINGIFY takes an argument and wraps it in "" (double
352 * quotation marks), JOIN joins two arguments.
353 */
354
355 #ifndef STRINGIFY
356 # define STRINGIFY(x) STRINGIFY1(x)
357 # define STRINGIFY1(x) #x
358 #endif
359 #ifndef JOIN
360 # define JOIN(a,b) JOIN1(a,b)
361 # define JOIN1(a,b) a##b
362 #endif
363
364 /*
365 * A special definition used to allow this header file to be included from
366 * windows resource files so that they can obtain version information.
367 * RC_INVOKED is defined by default by the windows RC tool.
368 *
369 * Resource compilers don't like all the C stuff, like typedefs and function
370 * declarations, that occur below, so block them out.
371 */
372
373 #ifndef RC_INVOKED
374
375 /*
376 * Special macro to define mutexes, that doesn't do anything if we are not
377 * using threads.
378 */
379
380 #ifdef TCL_THREADS
381 #define TCL_DECLARE_MUTEX(name) static Tcl_Mutex name;
382 #else
383 #define TCL_DECLARE_MUTEX(name)
384 #endif
385
386 /*
387 * Tcl's public routine Tcl_FSSeek() uses the values SEEK_SET, SEEK_CUR, and
388 * SEEK_END, all #define'd by stdio.h .
389 *
390 * Also, many extensions need stdio.h, and they've grown accustomed to tcl.h
391 * providing it for them rather than #include-ing it themselves as they
392 * should, so also for their sake, we keep the #include to be consistent with
393 * prior Tcl releases.
394 */
395
396 #include <stdio.h>
397
398 /*
399 *----------------------------------------------------------------------------
400 * Support for functions with a variable number of arguments.
401 *
402 * The following TCL_VARARGS* macros are to support old extensions
403 * written for older versions of Tcl where the macros permitted
404 * support for the varargs.h system as well as stdarg.h .
405 *
406 * New code should just directly be written to use stdarg.h conventions.
407 */
408
409 #include <stdarg.h>
410 #ifndef TCL_NO_DEPRECATED
411 # define TCL_VARARGS(type, name) (type name, ...)
412 # define TCL_VARARGS_DEF(type, name) (type name, ...)
413 # defi && !defined(__APPLE__ defined(HAVE_STRUCT_STAT64)
414 typedef struct stat64 Tcl_StatBuf;
415 #else
416 typedef struct stat Tcl_StatBuf;
417 #endif
418
419
420 /*
421 *----------------------------------------------------------------------------
422 * Data structures defined opaquely in this module. The definitions below just
423 * provide dummy types. A few fields are made visible in Tcl_Interp
424 * structures, namely those used for returning a string result from commands.
425 * Direct access to the result field is discouraged in Tcl 8.0. The
426 * interpreter result is either an object or a string, and the two values are
427 * kept consistent unless some C code sets interp->result directly.
428 * Programmers should use either the function Tcl_GetObjResult() or
429 * Tcl_GetStringResult() to read the interpreter's result. See the SetResult
430 * man page for details.
431 *
432 * Note: any change to the Tcl_Interp definition below must be mirrored in the
433 * "real" definition in tclInt.h.
434 *
435 * Note: Tcl_ObjCmdProc functions do not directly set result and freeProc.
436 * Instead, they set a Tcl_Obj member in the "real" structure that can be
437 * accessed with Tcl_GetObjResult() and Tcl_SetObjResult().
438 */
439
440 typedef struct Tcl_Interp
441 #ifndef TCL_NO_DEPRECATED
442 {
443 /* TIP #330: Strongly discourage extensions from using the string
444 * result. */
445 #ifdef USE_INTERP_RStringe is a 4-byte gap */
446 long long;
 
 
 
 
447 unsigned short st_ino;
448 unsigned short st_mode;
449 short st_nlink;
@@ -451,7 +466,7 @@
451 short st_gid;
452 /* Here is a 2-byte gap */
453 dev_t st_rdev;
454 /* HerStringe is a 4-byte gap */
455 long long st_size;
456 struct {long tv_sec;} st_atim;
457 struct {long tv_sec;} st_mtim;
@@ -2349,7 +2364,93 @@
2349 #define TCL_ZLIB_NO_FLUSH 0
2350 #define TCL_ZLIB_FLUSH 2
2351 #define TCL_ZLIB_FULLFLUSH 3
2352 #define ----------------------------------------------------------------------------
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2353 * The following declarations either map ckalloc and ckfree to malloc and
2354 * free, or they map them to functions with all sorts of debugging hooks
2355 * defined in tclCkalloc.c.
@@ -2357,12 +2458,207 @@
2357
2358 #ifdef TCL_MEM_DEBUG
2359
2360 # voidine ckalloc(x) \
2361 ((VOID *) Tcl_DbCkalloc((unsigned)(x), __FILE__, __LINE__))
2362 # define ckfree(x) \
2363 Tcl_DbCkfree((char *)(x), __FILE__, __LINE__)
2364 # defvoid *) Tcl_DbCkrealloc((char *)(x), (unsigned)(y), __FILE__, __LINE__))
2365 # definevoid *) Tcl_AttemptDbCkalloc((unsigned)(x), __FILE__, __LINE__))
2366 # def Include platform specific
2367 * via the stubsPlatDecls.h"--------------------------------------------------------
2368 * The structure defined below is
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
--- a/compat/tcl-8.6/generic/tcl.h
+++ b/compat/tcl-8.6/generic/tcl.h
@@ -56,65 +56,6 @@
56 #define TCL_MAJOR_VERSION 8
57 #define TCL_MINOR_VERSION 6
58 #define TCL_RELEASE_LEVEL TCL_FINAL_RELEASE
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59 #define TCL_RELEASE_SERIAL 0
60
61 #define TCL_VERSION "8.6"
@@ -251,199 +192,273 @@
192 * MSVCRT.
193 */
194
195 #if (defined(__WIN32__) && (defined(_MSC_VER) || (__BORLANDC__ >= 0x0550) || defined(__LCC__) || defined(__WATCOMC__) || (defined(__GNUC__) && defined(__declspec))))
196 # define HAVE_DECLSPEC 1
197 # ifdef STATIC_BUILD
198 # define DLLIMPORT
199 # define DLLEXPORT
200 # ifdef _DLL
201 # define CRTIMPORT __declspec(dllimport)
202 # else
203 # define CRTIMPORT
204 # endif
205 # else
206 # define DLLIMPORT __declspec(dllimport)
207 # define DLLEXPORT __declspec(dllexport)
208 # define CRTIMPORT __declspec(dllimport)
209 # endif
210 #else
211 # define DLLIMPORT
212 # if defined(__GNUC__) && __GNUC__ > 3
213 # define DLLEXPORT __attribute__ ((visibility("default")))
214 # else
215 # define DLLEXPORT
216 # endif
217 # define CRTIMPORT
218 #endif
219
220 /*
221 * These macros are used to control whether functions are being declared for
222 * import or export. If a function is being declared while it is being built
223 * to be included in a shared library, then it should have the DLLEXPORT
224 * storage class. If is being declared for use by a module that is going to
225 * link against the shared library, then it should have the DLLIMPORT storage
226 * class. If the symbol is beind declared for a static build or for use from a
227 * stub library, then the storage class should be empty.
228 *
229 * The convention is that a macro called BUILD_xxxx, where xxxx is the name of
230 * a library we are building, is set on the compile line for sources that are
231 * to be placed in the library. When this macro is set, the storage class will
232 * be set to DLLEXPORT. At the end of the header file, the storage class will
233 * be reset to DLLIMPORT.
234 */
235
236 #undef TCL_STORAGE_CLASS
237 #ifdef BUILD_tcl
238 # define TCL_STORAGE_CLASS DLLEXPORT
239 #else
240 # ifdef USE_TCL_STUBS
241 # define TCL_STORAGE_CLASS
242 # else
243 # define TCL_STORAGE_CLASS DLLIMPORT
244 # endif
245 #endif
246
247 /*
248 * The following _ANSI_ARGS_ macro is to support old extensions
249 * written for older versions of Tcl where it permitted support
250 * for compilers written in the pre-prototype era of C.
251 *
252 * New code should use prototypes.
253 */
254
255 #ifndef TCL_NO_DEPRECATED
256 # undef _ANSI_ARGS_
257 # define _ANSI_ARGS_(x) x
258 #endif
259
260 /*
261 * Definitions that allow this header file to be used either with or without
262 * ANSI C features.
263 */
264
265 #ifndef INLINE
266 # define INLINE
267 #endif
268
269 #ifdef NO_CONST
270 # ifndef const
271 # define const
272 # endif
273 #endif
274 #ifndef CONST
275 # define CONST const
276 #endif
277
278 #ifdef USE_NON_CONST
279 # ifdef USE_COMPAT_CONST
280 # error define at most one of USE_NON_CONST and USE_COMPAT_CONST
281 # endif
282 # define CONST84
283 # define CONST84_RETURN
284 #else
285 # ifdef USE_COMPAT_CONST
286 # define CONST84
287 # define CONST84_RETURN const
288 # else
289 # define CONST84 const
290 # define CONST84_RETURN const
291 # endif
292 #endif
293
294 #ifndef CONST86
295 # define CONST86 CONST84
296 #endif
297
298 /*
299 * Make sure EXTERN isn't defined elsewhere.
300 */
301
302 #ifdef EXTERN
303 # undef EXTERN
304 #endif /* EXTERN */
305
306 #ifdef __cplusplus
307 # define EXTERN extern "C" TCL_STORAGE_CLASS
308 #else
309 # define EXTERN extern TCL_STORAGE_CLASS
310 #endif
311
312 /*
313 *----------------------------------------------------------------------------
314 * The following code is copied from winnt.h. If we don't replicate it here,
315 * then <windows.h> can't be included after tcl.h, since tcl.h also defines
316 * VOID. This block is skipped under Cygwin and Mingw.
317 */
318
319 #if defined(__WIN32__) && !defined(HAVE_WINNT_IGNORE_VOID)
320 #ifndef VOID
321 #define VOID void
322 typedef char CHAR;
323 typedef short SHORT;
324 typedef long LONG;
325 #endif
326 #endif /* __WIN32__ && !HAVE_WINNT_IGNORE_VOID */
327
328 /*
329 * Macro to use instead of "void" for arguments that must have type "void *"
330 * in ANSI C; maps them to type "char *" in non-ANSI systems.
331 */
332
333 #ifndef NO_VOID
334 # define VOID void
335 #else
336 # define VOID char
337 #endif
338
339 /*
340 * Miscellaneous declarations.
341 */
342
343 #ifndef _CLIENTDATA
344 # ifndef NO_VOID
345 typedef void *ClientData;
346 # else
347 typedef int *ClientData;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
348 # endif
349 # define _CLIENTDATA
350 #endif
351
352 /*
353 * Darwin specific configure overrides (to support fat compiles, where
354 * configure runs only once for multiple architectures):
355 */
356
357 #ifdef __APPLE__
358 # ifdef __LP64__
359 # undef TCL_WIDE_INT_TYPE
360 # define TCL_WIDE_INT_IS_LONG 1
361 # define TCL_CFG_DO64BIT 1
362 # else /* !__LP64__ */
363 # define TCL_WIDE_INT_TYPE long long
364 # undef TCL_WIDE_INT_IS_LONG
365 # undef TCL_CFG_DO64BIT
366 # endif /* __LP64__ */
367 # undef HAVE_STRUCT_STAT64
368 #endif /* __APPLE__ */
369
370 /*
371 * Define Tcl_WideInt to be a type that is (at least) 64-bits wide, and define
372 * Tcl_WideUInt to be the unsigned variant of that type (assuming that where
373 * we have one, we can have the other.)
374 *
375 * Also defines the following macros:
376 * TCL_WIDE_INT_IS_LONG - if wide ints are really longs (i.e. we're on a real
377 * 64-bit system.)
378 * Tcl_WideAsLong - forgetful converter from wideInt to long.
379 * Tcl_LongAsWide - sign-extending converter from long to wideInt.
380 * Tcl_WideAsDouble - converter from wideInt to double.
381 * Tcl_DoubleAsWide - converter from double to wideInt.
382 *
383 * The following invariant should hold for any long value 'longVal':
384 * longVal == Tcl_WideAsLong(Tcl_LongAsWide(longVal))
385 *
386 * Note on converting between Tcl_WideInt and strings. This implementation (in
387 * tclObj.c) depends on the function
388 * sprintf(...,"%" TCL_LL_MODIFIER "d",...).
389 */
390
391 #if !defined(TCL_WIDE_INT_TYPE)&&!defined(TCL_WIDE_INT_IS_LONG)
392 # if defined(__WIN32__)
393 # define TCL_WIDE_INT_TYPE __int64
394 # ifdef __BORLANDC__
395 # define TCL_LL_MODIFIER "L"
396 # else /* __BORLANDC__ */
397 # define TCL_LL_MODIFIER "I64"
398 # endif /* __BORLANDC__ */
399 # elif defined(__GNUC__)
400 # define TCL_WIDE_INT_TYPE long long
401 # define TCL_LL_MODIFIER "ll"
402 # else /* ! __WIN32__ && ! __GNUC__ */
403 /*
404 * Don't know what platform it is and configure hasn't discovered what is
405 * going on for us. Try to guess...
406 */
407 # ifdef NO_LIMITS_H
408 # error please define either TCL_WIDE_INT_TYPE or TCL_WIDE_INT_IS_LONG
409 # else /* !NO_LIMITS_H */
410 # include <limits.h>
411 # if (INT_MAX < LONG_MAX)
412 # define TCL_WIDE_INT_IS_LONG 1
413 # else
414 # define TCL_WIDE_INT_TYPE long long
415 # endif
416 # endif /* NO_LIMITS_H */
417 # endif /* __WIN32__ */
418 #endif /* !TCL_WIDE_INT_TYPE & !TCL_WIDE_INT_IS_LONG */
419 #ifdef TCL_WIDE_INT_IS_LONG
420 # undef TCL_WIDE_INT_TYPE
421 # define TCL_WIDE_INT_TYPE long
422 #endif /* TCL_WIDE_INT_IS_LONG */
423
424 typedef TCL_WIDE_INT_TYPE Tcl_WideInt;
425 typedef unsigned TCL_WIDE_INT_TYPE Tcl_WideUInt;
426
427 #ifdef TCL_WIDE_INT_IS_LONG
428 # define Tcl_WideAsLong(val) ((long)(val))
429 # define Tcl_LongAsWide(val) ((long)(val))
430 # define Tcl_WideAsDouble(val) ((double)((long)(val)))
431 # define Tcl_DoubleAsWide(val) ((long)((double)(val)))
432 # ifndef TCL_LL_MODIFIER
433 # define TCL_LL_MODIFIER "l"
434 # endif /* !TCL_LL_MODIFIER */
435 #else /* TCL_WIDE_INT_IS_LONG */
436 /*
437 * The next short section of defines are only done when not running on Windows
438 * or some other strange platform.
439 */
440 # ifndef TCL_LL_MODIFIER
441 # define TCL_LL_MODIFIER "ll"
442 # endif /* !TCL_LL_MODIFIER */
443 # define Tcl_WideAsLong(val) ((long)((Tcl_WideInt)(val)))
444 # define Tcl_LongAsWide(val) ((Tcl_WideInt)((long)(val)))
445 # define Tcl_WideAsDouble(val) ((double)((Tcl_WideInt)(val)))
446 # define Tcl_DoubleAsWide(val) ((Tcl_WideInt)((double)(val)))
447 #endif /* TCL_WIDE_INT_IS_LONG */
448
449 #if defined(__WIN32__)
450 # ifdef __BORLANDC__
451 typedef struct stati64 Tcl_StatBuf;
452 # elif defined(_WIN64)
453 typedef struct __stat64 Tcl_StatBuf;
454 # elif (defined(_MSC_VER) && (_MSC_VER < 1400)) || defined(_USE_32BIT_TIME_T)
455 typedef struct _stati64 Tcl_StatBuf;
456 # else
457 typedef struct _stat32i64 Tcl_StatBuf;
458 # endif /* _MSC_VER < 1400 */
459 #elif defined(__CYGWIN__)
460 typedef struct _stat32i64 {
461 dev_t st_dev;
462 unsigned short st_ino;
463 unsigned short st_mode;
464 short st_nlink;
@@ -451,7 +466,7 @@
466 short st_gid;
467 /* Here is a 2-byte gap */
468 dev_t st_rdev;
469 /* Here is a 4-byte gap */
470 long long st_size;
471 struct {long tv_sec;} st_atim;
472 struct {long tv_sec;} st_mtim;
@@ -2349,7 +2364,93 @@
2364 #define TCL_ZLIB_NO_FLUSH 0
2365 #define TCL_ZLIB_FLUSH 2
2366 #define TCL_ZLIB_FULLFLUSH 3
2367 #define TCL_ZLIB_FINALIZE 4
2368
2369 /*
2370 *----------------------------------------------------------------------------
2371 * Definitions needed for the Tcl_LoadFile function. [TIP #416]
2372 */
2373
2374 #define TCL_LOAD_GLOBAL 1
2375 #define TCL_LOAD_LAZY 2
2376
2377 /*
2378 *----------------------------------------------------------------------------
2379 * Single public declaration for NRE.
2380 */
2381
2382 typedef int (Tcl_NRPostProc) (ClientData data[], Tcl_Interp *interp,
2383 int result);
2384
2385 /*
2386 *----------------------------------------------------------------------------
2387 * The following constant is used to test for older versions of Tcl in the
2388 * stubs tables.
2389 *
2390 * Jan Nijtman's plus patch uses 0xFCA1BACF, so we need to pick a different
2391 * value since the stubs tables don't match.
2392 */
2393
2394 #define TCL_STUB_MAGIC ((int) 0xFCA3BACF)
2395
2396 /*
2397 * The following function is required to be defined in all stubs aware
2398 * extensions. The function is actually implemented in the stub library, not
2399 * the main Tcl library, although there is a trivial implementation in the
2400 * main library in case an extension is statically linked into an application.
2401 */
2402
2403 const char * Tcl_InitStubs(Tcl_Interp *interp, const char *version,
2404 int exact);
2405 const char * TclTomMathInitializeStubs(Tcl_Interp *interp,
2406 const char *version, int epoch, int revision);
2407
2408 /*
2409 * When not using stubs, make it a macro.
2410 */
2411
2412 #ifndef USE_TCL_STUBS
2413 #define Tcl_InitStubs(interp, version, exact) \
2414 Tcl_PkgInitStubsCheck(interp, version, exact)
2415 #endif
2416
2417 /*
2418 * TODO - tommath stubs export goes here!
2419 */
2420
2421 /*
2422 * Public functions that are not accessible via the stubs table.
2423 * Tcl_GetMemoryInfo is needed for AOLserver. [Bug 1868171]
2424 */
2425
2426 #define Tcl_Main(argc, argv, proc) Tcl_MainEx(argc, argv, proc, \
2427 (Tcl_FindExecutable(argv[0]), (Tcl_CreateInterp)()))
2428 EXTERN void Tcl_MainEx(int argc, char **argv,
2429 Tcl_AppInitProc *appInitProc, Tcl_Interp *interp);
2430 EXTERN const char * Tcl_PkgInitStubsCheck(Tcl_Interp *interp,
2431 const char *version, int exact);
2432 #if defined(TCL_THREADS) && defined(USE_THREAD_ALLOC)
2433 EXTERN void Tcl_GetMemoryInfo(Tcl_DString *dsPtr);
2434 #endif
2435
2436
2437 /*
2438 *----------------------------------------------------------------------------
2439 * Include the public function declarations that are accessible via the stubs
2440 * table.
2441 */
2442
2443 #include "tclDecls.h"
2444
2445 /*
2446 * Include platform specific public function declarations that are accessible
2447 * via the stubs table.
2448 */
2449
2450 #include "tclPlatDecls.h"
2451
2452 /*
2453 *----------------------------------------------------------------------------
2454 * The following declarations either map ckalloc and ckfree to malloc and
2455 * free, or they map them to functions with all sorts of debugging hooks
2456 * defined in tclCkalloc.c.
@@ -2357,12 +2458,207 @@
2458
2459 #ifdef TCL_MEM_DEBUG
2460
2461 # define ckalloc(x) \
2462 ((VOID *) Tcl_DbCkalloc((unsigned)(x), __FILE__, __LINE__))
2463 # define ckfree(x) \
2464 Tcl_DbCkfree((char *)(x), __FILE__, __LINE__)
2465 # define ckrealloc(x,y) \
2466 ((VOID *) Tcl_DbCkrealloc((char *)(x), (unsigned)(y), __FILE__, __LINE__))
2467 # define attemptckalloc(x) \
2468 ((VOID *) Tcl_AttemptDbCkalloc((unsigned)(x), __FILE__, __LINE__))
2469 # define attemptckrealloc(x,y) \
2470 ((VOID *) Tcl_AttemptDbCkrealloc((char *)(x), (unsigned)(y), __FILE__, __LINE__))
2471
2472 #else /* !TCL_MEM_DEBUG */
2473
2474 /*
2475 * If we are not using the debugging allocator, we should call the Tcl_Alloc,
2476 * et al. routines in order to guarantee that every module is using the same
2477 * memory allocator both inside and outside of the Tcl library.
2478 */
2479
2480 # define ckalloc(x) \
2481 ((VOID *) Tcl_Alloc((unsigned)(x)))
2482 # define ckfree(x) \
2483 Tcl_Free((char *)(x))
2484 # define ckrealloc(x,y) \
2485 ((VOID *) Tcl_Realloc((char *)(x), (unsigned)(y)))
2486 # define attemptckalloc(x) \
2487 ((VOID *) Tcl_AttemptAlloc((unsigned)(x)))
2488 # define attemptckrealloc(x,y) \
2489 ((VOID *) Tcl_AttemptRealloc((char *)(x), (unsigned)(y)))
2490 # undef Tcl_InitMemory
2491 # define Tcl_InitMemory(x)
2492 # undef Tcl_DumpActiveMemory
2493 # define Tcl_DumpActiveMemory(x)
2494 # undef Tcl_ValidateAllMemory
2495 # define Tcl_ValidateAllMemory(x,y)
2496
2497 #endif /* !TCL_MEM_DEBUG */
2498
2499 #ifdef TCL_MEM_DEBUG
2500 # define Tcl_IncrRefCount(objPtr) \
2501 Tcl_DbIncrRefCount(objPtr, __FILE__, __LINE__)
2502 # define Tcl_DecrRefCount(objPtr) \
2503 Tcl_DbDecrRefCount(objPtr, __FILE__, __LINE__)
2504 # define Tcl_IsShared(objPtr) \
2505 Tcl_DbIsShared(objPtr, __FILE__, __LINE__)
2506 #else
2507 # define Tcl_IncrRefCount(objPtr) \
2508 ++(objPtr)->refCount
2509 /*
2510 * Use do/while0 idiom for optimum correctness without compiler warnings.
2511 * http://c2.com/cgi/wiki?TrivialDoWhileLoop
2512 */
2513 # define Tcl_DecrRefCount(objPtr) \
2514 do { \
2515 Tcl_Obj *_objPtr = (objPtr); \
2516 if (--(_objPtr)->refCount <= 0) { \
2517 TclFreeObj(_objPtr); \
2518 } \
2519 } while(0)
2520 # define Tcl_IsShared(objPtr) \
2521 ((objPtr)->refCount > 1)
2522 #endif
2523
2524 /*
2525 * Macros and definitions that help to debug the use of Tcl objects. When
2526 * TCL_MEM_DEBUG is defined, the Tcl_New declarations are overridden to call
2527 * debugging versions of the object creation functions.
2528 */
2529
2530 #ifdef TCL_MEM_DEBUG
2531 # undef Tcl_NewBignumObj
2532 # define Tcl_NewBignumObj(val) \
2533 Tcl_DbNewBignumObj(val, __FILE__, __LINE__)
2534 # undef Tcl_NewBooleanObj
2535 # define Tcl_NewBooleanObj(val) \
2536 Tcl_DbNewBooleanObj(val, __FILE__, __LINE__)
2537 # undef Tcl_NewByteArrayObj
2538 # define Tcl_NewByteArrayObj(bytes, len) \
2539 Tcl_DbNewByteArrayObj(bytes, len, __FILE__, __LINE__)
2540 # undef Tcl_NewDoubleObj
2541 # define Tcl_NewDoubleObj(val) \
2542 Tcl_DbNewDoubleObj(val, __FILE__, __LINE__)
2543 # undef Tcl_NewIntObj
2544 # define Tcl_NewIntObj(val) \
2545 Tcl_DbNewLongObj(val, __FILE__, __LINE__)
2546 # undef Tcl_NewListObj
2547 # define Tcl_NewListObj(objc, objv) \
2548 Tcl_DbNewListObj(objc, objv, __FILE__, __LINE__)
2549 # undef Tcl_NewLongObj
2550 # define Tcl_NewLongObj(val) \
2551 Tcl_DbNewLongObj(val, __FILE__, __LINE__)
2552 # undef Tcl_NewObj
2553 # define Tcl_NewObj() \
2554 Tcl_DbNewObj(__FILE__, __LINE__)
2555 # undef Tcl_NewStringObj
2556 # define Tcl_NewStringObj(bytes, len) \
2557 Tcl_DbNewStringObj(bytes, len, __FILE__, __LINE__)
2558 # undef Tcl_NewWideIntObj
2559 # define Tcl_NewWideIntObj(val) \
2560 Tcl_DbNewWideIntObj(val, __FILE__, __LINE__)
2561 #endif /* TCL_MEM_DEBUG */
2562
2563 /*
2564 *----------------------------------------------------------------------------
2565 * Macros for clients to use to access fields of hash entries:
2566 */
2567
2568 #define Tcl_GetHashValue(h) ((h)->clientData)
2569 #define Tcl_SetHashValue(h, value) ((h)->clientData = (ClientData) (value))
2570 #define Tcl_GetHashKey(tablePtr, h) \
2571 ((void *) (((tablePtr)->keyType == TCL_ONE_WORD_KEYS || \
2572 (tablePtr)->keyType == TCL_CUSTOM_PTR_KEYS) \
2573 ? (h)->key.oneWordValue \
2574 : (h)->key.string))
2575
2576 /*
2577 * Macros to use for clients to use to invoke find and create functions for
2578 * hash tables:
2579 */
2580
2581 #undef Tcl_FindHashEntry
2582 #define Tcl_FindHashEntry(tablePtr, key) \
2583 (*((tablePtr)->findProc))(tablePtr, (const char *)(key))
2584 #undef Tcl_CreateHashEntry
2585 #define Tcl_CreateHashEntry(tablePtr, key, newPtr) \
2586 (*((tablePtr)->createProc))(tablePtr, (const char *)(key), newPtr)
2587
2588 /*
2589 *----------------------------------------------------------------------------
2590 * Macros that eliminate the overhead of the thread synchronization functions
2591 * when compiling without thread support.
2592 */
2593
2594 #ifndef TCL_THREADS
2595 #undef Tcl_MutexLock
2596 #define Tcl_MutexLock(mutexPtr)
2597 #undef Tcl_MutexUnlock
2598 #define Tcl_MutexUnlock(mutexPtr)
2599 #undef Tcl_MutexFinalize
2600 #define Tcl_MutexFinalize(mutexPtr)
2601 #undef Tcl_ConditionNotify
2602 #define Tcl_ConditionNotify(condPtr)
2603 #undef Tcl_ConditionWait
2604 #define Tcl_ConditionWait(condPtr, mutexPtr, timePtr)
2605 #undef Tcl_ConditionFinalize
2606 #define Tcl_ConditionFinalize(condPtr)
2607 #endif /* TCL_THREADS */
2608
2609 /*
2610 *----------------------------------------------------------------------------
2611 * Deprecated Tcl functions:
2612 */
2613
2614 #ifndef TCL_NO_DEPRECATED
2615 # undef Tcl_EvalObj
2616 # define Tcl_EvalObj(interp,objPtr) \
2617 Tcl_EvalObjEx((interp),(objPtr),0)
2618 # undef Tcl_GlobalEvalObj
2619 # define Tcl_GlobalEvalObj(interp,objPtr) \
2620 Tcl_EvalObjEx((interp),(objPtr),TCL_EVAL_GLOBAL)
2621
2622 /*
2623 * These function have been renamed. The old names are deprecated, but we
2624 * define these macros for backwards compatibilty.
2625 */
2626
2627 # define Tcl_Ckalloc Tcl_Alloc
2628 # define Tcl_Ckfree Tcl_Free
2629 # define Tcl_Ckrealloc Tcl_Realloc
2630 # define Tcl_Return Tcl_SetResult
2631 # define Tcl_TildeSubst Tcl_TranslateFileName
2632 # define panic Tcl_Panic
2633 # define panicVA Tcl_PanicVA
2634 #endif /* !TCL_NO_DEPRECATED */
2635
2636 /*
2637 *----------------------------------------------------------------------------
2638 * Convenience declaration of Tcl_AppInit for backwards compatibility. This
2639 * function is not *implemented* by the tcl library, so the storage class is
2640 * neither DLLEXPORT nor DLLIMPORT.
2641 */
2642
2643 extern Tcl_AppInitProc Tcl_AppInit;
2644
2645 #endif /* RC_INVOKED */
2646
2647 /*
2648 * end block for C++
2649 */
2650
2651 #ifdef __cplusplus
2652 }
2653 #endif
2654
2655 #endif /* _TCL */
2656
2657
2658 /*
2659 * Local Variables:
2660 * mode: c
2661 * c-basic-offset: 4
2662 * fill-column: 78
2663 * End:
2664 */
--- a/compat/tcl-8.6/generic/tclDecls.h
+++ b/compat/tcl-8.6/generic/tclDecls.h
@@ -0,0 +1,3806 @@
1
+/*
2
+ * tclDecls.h --
3
+ *
4
+ * Declarations of functions in the platform independent public Tcl API.
5
+ *
6
+ * Copyright (c) 1998-1999 by Scriptics Corporation.
7
+ *
8
+ * See the file "license.terms" for information on usage and redistribution
9
+ * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
10
+ */
11
+
12
+#ifndef _TCLDECLS
13
+#define _TCLDECLS
14
+
15
+#undef TCL_STORAGE_CLASS
16
+#ifdef BUILD_tcl
17
+# define TCL_STORAGE_CLASS DLLEXPORT
18
+#else
19
+# ifdef USE_TCL_STUBS
20
+# define TCL_STORAGE_CLASS
21
+# else
22
+# define TCL_STORAGE_CLASS DLLIMPORT
23
+# endif
24
+#endif
25
+
26
+/*
27
+ * WARNING: This file is automatically generated by the tools/genStubs.tcl
28
+ * script. Any modifications to the function declarations below should be made
29
+ * in the generic/tcl.decls script.
30
+ */
31
+
32
+/* !BEGIN!: Do not edit below this line. */
33
+
34
+/*
35
+ * Exported function declarations:
36
+ */
37
+
38
+/* 0 */
39
+EXTERN int Tcl_PkgProvideEx(Tcl_Interp *interp,
40
+ const char *name, const char *version,
41
+ const void *clientData);
42
+/* 1 */
43
+EXTERN CONST84_RETURN char * Tcl_PkgRequireEx(Tcl_Interp *interp,
44
+ const char *name, const char *version,
45
+ int exact, void *clientDataPtr);
46
+/* 2 */
47
+EXTERN void Tcl_Panic(const char *format, ...) TCL_FORMAT_PRINTF(1, 2);
48
+/* 3 */
49
+EXTERN char * Tcl_Alloc(unsigned int size);
50
+/* 4 */
51
+EXTERN void Tcl_Free(char *ptr);
52
+/* 5 */
53
+EXTERN char * Tcl_Realloc(char *ptr, unsigned int size);
54
+/* 6 */
55
+EXTERN char * Tcl_DbCkalloc(unsigned int size, const char *file,
56
+ int line);
57
+/* 7 */
58
+EXTERN void Tcl_DbCkfree(char *ptr, const char *file, int line);
59
+/* 8 */
60
+EXTERN char * Tcl_DbCkrealloc(char *ptr, unsigned int size,
61
+ const char *file, int line);
62
+#if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
63
+/* 9 */
64
+EXTERN void Tcl_CreateFileHandler(int fd, int mask,
65
+ Tcl_FileProc *proc, ClientData clientData);
66
+#endif /* UNIX */
67
+#ifdef MAC_OSX_TCL /* MACOSX */
68
+/* 9 */
69
+EXTERN void Tcl_CreateFileHandler(int fd, int mask,
70
+ Tcl_FileProc *proc, ClientData clientData);
71
+#endif /* MACOSX */
72
+#if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
73
+/* 10 */
74
+EXTERN void Tcl_DeleteFileHandler(int fd);
75
+#endif /* UNIX */
76
+#ifdef MAC_OSX_TCL /* MACOSX */
77
+/* 10 */
78
+EXTERN void Tcl_DeleteFileHandler(int fd);
79
+#endif /* MACOSX */
80
+/* 11 */
81
+EXTERN void Tcl_SetTimer(const Tcl_Time *timePtr);
82
+/* 12 */
83
+EXTERN void Tcl_Sleep(int ms);
84
+/* 13 */
85
+EXTERN int Tcl_WaitForEvent(const Tcl_Time *timePtr);
86
+/* 14 */
87
+EXTERN int Tcl_AppendAllObjTypes(Tcl_Interp *interp,
88
+ Tcl_Obj *objPtr);
89
+/* 15 */
90
+EXTERN void Tcl_AppendStringsToObj(Tcl_Obj *objPtr, ...);
91
+/* 16 */
92
+EXTERN void Tcl_AppendToObj(Tcl_Obj *objPtr, const char *bytes,
93
+ int length);
94
+/* 17 */
95
+EXTERN Tcl_Obj * Tcl_ConcatObj(int objc, Tcl_Obj *const objv[]);
96
+/* 18 */
97
+EXTERN int Tcl_ConvertToType(Tcl_Interp *interp,
98
+ Tcl_Obj *objPtr, const Tcl_ObjType *typePtr);
99
+/* 19 */
100
+EXTERN void Tcl_DbDecrRefCount(Tcl_Obj *objPtr, const char *file,
101
+ int line);
102
+/* 20 */
103
+EXTERN void Tcl_DbIncrRefCount(Tcl_Obj *objPtr, const char *file,
104
+ int line);
105
+/* 21 */
106
+EXTERN int Tcl_DbIsShared(Tcl_Obj *objPtr, const char *file,
107
+ int line);
108
+/* 22 */
109
+EXTERN Tcl_Obj * Tcl_DbNewBooleanObj(int boolValue, const char *file,
110
+ int line);
111
+/* 23 */
112
+EXTERN Tcl_Obj * Tcl_DbNewByteArrayObj(const unsigned char *bytes,
113
+ int length, const char *file, int line);
114
+/* 24 */
115
+EXTERN Tcl_Obj * Tcl_DbNewDoubleObj(double doubleValue,
116
+ const char *file, int line);
117
+/* 25 */
118
+EXTERN Tcl_Obj * Tcl_DbNewListObj(int objc, Tcl_Obj *const *objv,
119
+ const char *file, int line);
120
+/* 26 */
121
+EXTERN Tcl_Obj * Tcl_DbNewLongObj(long longValue, const char *file,
122
+ int line);
123
+/* 27 */
124
+EXTERN Tcl_Obj * Tcl_DbNewObj(const char *file, int line);
125
+/* 28 */
126
+EXTERN Tcl_Obj * Tcl_DbNewStringObj(const char *bytes, int length,
127
+ const char *file, int line);
128
+/* 29 */
129
+EXTERN Tcl_Obj * Tcl_DuplicateObj(Tcl_Obj *objPtr);
130
+/* 30 */
131
+EXTERN void TclFreeObj(Tcl_Obj *objPtr);
132
+/* 31 */
133
+EXTERN int Tcl_GetBoolean(Tcl_Interp *interp, const char *src,
134
+ int *boolPtr);
135
+/* 32 */
136
+EXTERN int Tcl_GetBooleanFromObj(Tcl_Interp *interp,
137
+ Tcl_Obj *objPtr, int *boolPtr);
138
+/* 33 */
139
+EXTERN unsigned char * Tcl_GetByteArrayFromObj(Tcl_Obj *objPtr,
140
+ int *lengthPtr);
141
+/* 34 */
142
+EXTERN int Tcl_GetDouble(Tcl_Interp *interp, const char *src,
143
+ double *doublePtr);
144
+/* 35 */
145
+EXTERN int Tcl_GetDoubleFromObj(Tcl_Interp *interp,
146
+ Tcl_Obj *objPtr, double *doublePtr);
147
+/* 36 */
148
+EXTERN int Tcl_GetIndexFromObj(Tcl_Interp *interp,
149
+ Tcl_Obj *objPtr,
150
+ CONST84 char *const *tablePtr,
151
+ const char *msg, int flags, int *indexPtr);
152
+/* 37 */
153
+EXTERN int Tcl_GetInt(Tcl_Interp *interp, const char *src,
154
+ int *intPtr);
155
+/* 38 */
156
+EXTERN int Tcl_GetIntFromObj(Tcl_Interp *interp,
157
+ Tcl_Obj *objPtr, int *intPtr);
158
+/* 39 */
159
+EXTERN int Tcl_GetLongFromObj(Tcl_Interp *interp,
160
+ Tcl_Obj *objPtr, long *longPtr);
161
+/* 40 */
162
+EXTERN CONST86 Tcl_ObjType * Tcl_GetObjType(const char *typeName);
163
+/* 41 */
164
+EXTERN char * Tcl_GetStringFromObj(Tcl_Obj *objPtr, int *lengthPtr);
165
+/* 42 */
166
+EXTERN void Tcl_InvalidateStringRep(Tcl_Obj *objPtr);
167
+/* 43 */
168
+EXTERN int Tcl_ListObjAppendList(Tcl_Interp *interp,
169
+ Tcl_Obj *listPtr, Tcl_Obj *elemListPtr);
170
+/* 44 */
171
+EXTERN int Tcl_ListObjAppendElement(Tcl_Interp *interp,
172
+ Tcl_Obj *listPtr, Tcl_Obj *objPtr);
173
+/* 45 */
174
+EXTERN int Tcl_ListObjGetElements(Tcl_Interp *interp,
175
+ Tcl_Obj *listPtr, int *objcPtr,
176
+ Tcl_Obj ***objvPtr);
177
+/* 46 */
178
+EXTERN int Tcl_ListObjIndex(Tcl_Interp *interp,
179
+ Tcl_Obj *listPtr, int index,
180
+ Tcl_Obj **objPtrPtr);
181
+/* 47 */
182
+EXTERN int Tcl_ListObjLength(Tcl_Interp *interp,
183
+ Tcl_Obj *listPtr, int *lengthPtr);
184
+/* 48 */
185
+EXTERN int Tcl_ListObjReplace(Tcl_Interp *interp,
186
+ Tcl_Obj *listPtr, int first, int count,
187
+ int objc, Tcl_Obj *const objv[]);
188
+/* 49 */
189
+EXTERN Tcl_Obj * Tcl_NewBooleanObj(int boolValue);
190
+/* 50 */
191
+EXTERN Tcl_Obj * Tcl_NewByteArrayObj(const unsigned char *bytes,
192
+ int length);
193
+/* 51 */
194
+EXTERN Tcl_Obj * Tcl_NewDoubleObj(double doubleValue);
195
+/* 52 */
196
+EXTERN Tcl_Obj * Tcl_NewIntObj(int intValue);
197
+/* 53 */
198
+EXTERN Tcl_Obj * Tcl_NewListObj(int objc, Tcl_Obj *const objv[]);
199
+/* 54 */
200
+EXTERN Tcl_Obj * Tcl_NewLongObj(long longValue);
201
+/* 55 */
202
+EXTERN Tcl_Obj * Tcl_NewObj(void);
203
+/* 56 */
204
+EXTERN Tcl_Obj * Tcl_NewStringObj(const char *bytes, int length);
205
+/* 57 */
206
+EXTERN void Tcl_SetBooleanObj(Tcl_Obj *objPtr, int boolValue);
207
+/* 58 */
208
+EXTERN unsigned char * Tcl_SetByteArrayLength(Tcl_Obj *objPtr, int length);
209
+/* 59 */
210
+EXTERN void Tcl_SetByteArrayObj(Tcl_Obj *objPtr,
211
+ const unsigned char *bytes, int length);
212
+/* 60 */
213
+EXTERN void Tcl_SetDoubleObj(Tcl_Obj *objPtr, double doubleValue);
214
+/* 61 */
215
+EXTERN void Tcl_SetIntObj(Tcl_Obj *objPtr, int intValue);
216
+/* 62 */
217
+EXTERN void Tcl_SetListObj(Tcl_Obj *objPtr, int objc,
218
+ Tcl_Obj *const objv[]);
219
+/* 63 */
220
+EXTERN void Tcl_SetLongObj(Tcl_Obj *objPtr, long longValue);
221
+/* 64 */
222
+EXTERN void Tcl_SetObjLength(Tcl_Obj *objPtr, int length);
223
+/* 65 */
224
+EXTERN void Tcl_SetStringObj(Tcl_Obj *objPtr, const char *bytes,
225
+ int length);
226
+/* 66 */
227
+EXTERN void Tcl_AddErrorInfo(Tcl_Interp *interp,
228
+ const char *message);
229
+/* 67 */
230
+EXTERN void Tcl_AddObjErrorInfo(Tcl_Interp *interp,
231
+ const char *message, int length);
232
+/* 68 */
233
+EXTERN void Tcl_AllowExceptions(Tcl_Interp *interp);
234
+/* 69 */
235
+EXTERN void Tcl_AppendElement(Tcl_Interp *interp,
236
+ const char *element);
237
+/* 70 */
238
+EXTERN void Tcl_AppendResult(Tcl_Interp *interp, ...);
239
+/* 71 */
240
+EXTERN Tcl_AsyncHandler Tcl_AsyncCreate(Tcl_AsyncProc *proc,
241
+ ClientData clientData);
242
+/* 72 */
243
+EXTERN void Tcl_AsyncDelete(Tcl_AsyncHandler async);
244
+/* 73 */
245
+EXTERN int Tcl_AsyncInvoke(Tcl_Interp *interp, int code);
246
+/* 74 */
247
+EXTERN void Tcl_AsyncMark(Tcl_AsyncHandler async);
248
+/* 75 */
249
+EXTERN int Tcl_AsyncReady(void);
250
+/* 76 */
251
+EXTERN void Tcl_BackgroundError(Tcl_Interp *interp);
252
+/* 77 */
253
+EXTERN char Tcl_Backslash(const char *src, int *readPtr);
254
+/* 78 */
255
+EXTERN int Tcl_BadChannelOption(Tcl_Interp *interp,
256
+ const char *optionName,
257
+ const char *optionList);
258
+/* 79 */
259
+EXTERN void Tcl_CallWhenDeleted(Tcl_Interp *interp,
260
+ Tcl_InterpDeleteProc *proc,
261
+ ClientData clientData);
262
+/* 80 */
263
+EXTERN void Tcl_CancelIdleCall(Tcl_IdleProc *idleProc,
264
+ ClientData clientData);
265
+/* 81 */
266
+EXTERN int Tcl_Close(Tcl_Interp *interp, Tcl_Channel chan);
267
+/* 82 */
268
+EXTERN int Tcl_CommandComplete(const char *cmd);
269
+/* 83 */
270
+EXTERN char * Tcl_Concat(int argc, CONST84 char *const *argv);
271
+/* 84 */
272
+EXTERN int Tcl_ConvertElement(const char *src, char *dst,
273
+ int flags);
274
+/* 85 */
275
+EXTERN int Tcl_ConvertCountedElement(const char *src,
276
+ int length, char *dst, int flags);
277
+/* 86 */
278
+EXTERN int Tcl_CreateAlias(Tcl_Interp *slave,
279
+ const char *slaveCmd, Tcl_Interp *target,
280
+ const char *targetCmd, int argc,
281
+ CONST84 char *const *argv);
282
+/* 87 */
283
+EXTERN int Tcl_CreateAliasObj(Tcl_Interp *slave,
284
+ const char *slaveCmd, Tcl_Interp *target,
285
+ const char *targetCmd, int objc,
286
+ Tcl_Obj *const objv[]);
287
+/* 88 */
288
+EXTERN Tcl_Channel Tcl_CreateChannel(const Tcl_ChannelType *typePtr,
289
+ const char *chanName,
290
+ ClientData instanceData, int mask);
291
+/* 89 */
292
+EXTERN void Tcl_CreateChannelHandler(Tcl_Channel chan, int mask,
293
+ Tcl_ChannelProc *proc, ClientData clientData);
294
+/* 90 */
295
+EXTERN void Tcl_CreateCloseHandler(Tcl_Channel chan,
296
+ Tcl_CloseProc *proc, ClientData clientData);
297
+/* 91 */
298
+EXTERN Tcl_Command Tcl_CreateCommand(Tcl_Interp *interp,
299
+ const char *cmdName, Tcl_CmdProc *proc,
300
+ ClientData clientData,
301
+ Tcl_CmdDeleteProc *deleteProc);
302
+/* 92 */
303
+EXTERN void Tcl_CreateEventSource(Tcl_EventSetupProc *setupProc,
304
+ Tcl_EventCheckProc *checkProc,
305
+ ClientData clientData);
306
+/* 93 */
307
+EXTERN void Tcl_CreateExitHandler(Tcl_ExitProc *proc,
308
+ ClientData clientData);
309
+/* 94 */
310
+EXTERN Tcl_Interp * Tcl_CreateInterp(void);
311
+/* 95 */
312
+EXTERN void Tcl_CreateMathFunc(Tcl_Interp *interp,
313
+ const char *name, int numArgs,
314
+ Tcl_ValueType *argTypes, Tcl_MathProc *proc,
315
+ ClientData clientData);
316
+/* 96 */
317
+EXTERN Tcl_Command Tcl_CreateObjCommand(Tcl_Interp *interp,
318
+ const char *cmdName, Tcl_ObjCmdProc *proc,
319
+ ClientData clientData,
320
+ Tcl_CmdDeleteProc *deleteProc);
321
+/* 97 */
322
+EXTERN Tcl_Interp * Tcl_CreateSlave(Tcl_Interp *interp,
323
+ const char *slaveName, int isSafe);
324
+/* 98 */
325
+EXTERN Tcl_TimerToken Tcl_CreateTimerHandler(int milliseconds,
326
+ Tcl_TimerProc *proc, ClientData clientData);
327
+/* 99 */
328
+EXTERN Tcl_Trace Tcl_CreateTrace(Tcl_Interp *interp, int level,
329
+ Tcl_CmdTraceProc *proc,
330
+ ClientData clientData);
331
+/* 100 */
332
+EXTERN void Tcl_DeleteAssocData(Tcl_Interp *interp,
333
+ const char *name);
334
+/* 101 */
335
+EXTERN void Tcl_DeleteChannelHandler(Tcl_Channel chan,
336
+ Tcl_ChannelProc *proc, ClientData clientData);
337
+/* 102 */
338
+EXTERN void Tcl_DeleteCloseHandler(Tcl_Channel chan,
339
+ Tcl_CloseProc *proc, ClientData clientData);
340
+/* 103 */
341
+EXTERN int Tcl_DeleteCommand(Tcl_Interp *interp,
342
+ const char *cmdName);
343
+/* 104 */
344
+EXTERN int Tcl_DeleteCommandFromToken(Tcl_Interp *interp,
345
+ Tcl_Command command);
346
+/* 105 */
347
+EXTERN void Tcl_DeleteEvents(Tcl_EventDeleteProc *proc,
348
+ ClientData clientData);
349
+/* 106 */
350
+EXTERN void Tcl_DeleteEventSource(Tcl_EventSetupProc *setupProc,
351
+ Tcl_EventCheckProc *checkProc,
352
+ ClientData clientData);
353
+/* 107 */
354
+EXTERN void Tcl_DeleteExitHandler(Tcl_ExitProc *proc,
355
+ ClientData clientData);
356
+/* 108 */
357
+EXTERN void Tcl_DeleteHashEntry(Tcl_HashEntry *entryPtr);
358
+/* 109 */
359
+EXTERN void Tcl_DeleteHashTable(Tcl_HashTable *tablePtr);
360
+/* 110 */
361
+EXTERN void Tcl_DeleteInterp(Tcl_Interp *interp);
362
+/* 111 */
363
+EXTERN void Tcl_DetachPids(int numPids, Tcl_Pid *pidPtr);
364
+/* 112 */
365
+EXTERN void Tcl_DeleteTimerHandler(Tcl_TimerToken token);
366
+/* 113 */
367
+EXTERN void Tcl_DeleteTrace(Tcl_Interp *interp, Tcl_Trace trace);
368
+/* 114 */
369
+EXTERN void Tcl_DontCallWhenDeleted(Tcl_Interp *interp,
370
+ Tcl_InterpDeleteProc *proc,
371
+ ClientData clientData);
372
+/* 115 */
373
+EXTERN int Tcl_DoOneEvent(int flags);
374
+/* 116 */
375
+EXTERN void Tcl_DoWhenIdle(Tcl_IdleProc *proc,
376
+ ClientData clientData);
377
+/* 117 */
378
+EXTERN char * Tcl_DStringAppend(Tcl_DString *dsPtr,
379
+ const char *bytes, int length);
380
+/* 118 */
381
+EXTERN char * Tcl_DStringAppendElement(Tcl_DString *dsPtr,
382
+ const char *element);
383
+/* 119 */
384
+EXTERN void Tcl_DStringEndSublist(Tcl_DString *dsPtr);
385
+/* 120 */
386
+EXTERN void Tcl_DStringFree(Tcl_DString *dsPtr);
387
+/* 121 */
388
+EXTERN void Tcl_DStringGetResult(Tcl_Interp *interp,
389
+ Tcl_DString *dsPtr);
390
+/* 122 */
391
+EXTERN void Tcl_DStringInit(Tcl_DString *dsPtr);
392
+/* 123 */
393
+EXTERN void Tcl_DStringResult(Tcl_Interp *interp,
394
+ Tcl_DString *dsPtr);
395
+/* 124 */
396
+EXTERN void Tcl_DStringSetLength(Tcl_DString *dsPtr, int length);
397
+/* 125 */
398
+EXTERN void Tcl_DStringStartSublist(Tcl_DString *dsPtr);
399
+/* 126 */
400
+EXTERN int Tcl_Eof(Tcl_Channel chan);
401
+/* 127 */
402
+EXTERN CONST84_RETURN char * Tcl_ErrnoId(void);
403
+/* 128 */
404
+EXTERN CONST84_RETURN char * Tcl_ErrnoMsg(int err);
405
+/* 129 */
406
+EXTERN int Tcl_Eval(Tcl_Interp *interp, const char *script);
407
+/* 130 */
408
+EXTERN int Tcl_EvalFile(Tcl_Interp *interp,
409
+ const char *fileName);
410
+/* 131 */
411
+EXTERN int Tcl_EvalObj(Tcl_Interp *interp, Tcl_Obj *objPtr);
412
+/* 132 */
413
+EXTERN void Tcl_EventuallyFree(ClientData clientData,
414
+ Tcl_FreeProc *freeProc);
415
+/* 133 */
416
+EXTERN void Tcl_Exit(int status);
417
+/* 134 */
418
+EXTERN int Tcl_ExposeCommand(Tcl_Interp *interp,
419
+ const char *hiddenCmdToken,
420
+ const char *cmdName);
421
+/* 135 */
422
+EXTERN int Tcl_ExprBoolean(Tcl_Interp *interp, const char *expr,
423
+ int *ptr);
424
+/* 136 */
425
+EXTERN int Tcl_ExprBooleanObj(Tcl_Interp *interp,
426
+ Tcl_Obj *objPtr, int *ptr);
427
+/* 137 */
428
+EXTERN int Tcl_ExprDouble(Tcl_Interp *interp, const char *expr,
429
+ double *ptr);
430
+/* 138 */
431
+EXTERN int Tcl_ExprDoubleObj(Tcl_Interp *interp,
432
+ Tcl_Obj *objPtr, double *ptr);
433
+/* 139 */
434
+EXTERN int Tcl_ExprLong(Tcl_Interp *interp, const char *expr,
435
+ long *ptr);
436
+/* 140 */
437
+EXTERN int Tcl_ExprLongObj(Tcl_Interp *interp, Tcl_Obj *objPtr,
438
+ long *ptr);
439
+/* 141 */
440
+EXTERN int Tcl_ExprObj(Tcl_Interp *interp, Tcl_Obj *objPtr,
441
+ Tcl_Obj **resultPtrPtr);
442
+/* 142 */
443
+EXTERN int Tcl_ExprString(Tcl_Interp *interp, const char *expr);
444
+/* 143 */
445
+EXTERN void Tcl_Finalize(void);
446
+/* 144 */
447
+EXTERN void Tcl_FindExecutable(const char *argv0);
448
+/* 145 */
449
+EXTERN Tcl_HashEntry * Tcl_FirstHashEntry(Tcl_HashTable *tablePtr,
450
+ Tcl_HashSearch *searchPtr);
451
+/* 146 */
452
+EXTERN int Tcl_Flush(Tcl_Channel chan);
453
+/* 147 */
454
+EXTERN void Tcl_FreeResult(Tcl_Interp *interp);
455
+/* 148 */
456
+EXTERN int Tcl_GetAlias(Tcl_Interp *interp,
457
+ const char *slaveCmd,
458
+ Tcl_Interp **targetInterpPtr,
459
+ CONST84 char **targetCmdPtr, int *argcPtr,
460
+ CONST84 char ***argvPtr);
461
+/* 149 */
462
+EXTERN int Tcl_GetAliasObj(Tcl_Interp *interp,
463
+ const char *slaveCmd,
464
+ Tcl_Interp **targetInterpPtr,
465
+ CONST84 char **targetCmdPtr, int *objcPtr,
466
+ Tcl_Obj ***objv);
467
+/* 150 */
468
+EXTERN ClientData Tcl_GetAssocData(Tcl_Interp *interp,
469
+ const char *name,
470
+ Tcl_InterpDeleteProc **procPtr);
471
+/* 151 */
472
+EXTERN Tcl_Channel Tcl_GetChannel(Tcl_Interp *interp,
473
+ const char *chanName, int *modePtr);
474
+/* 152 */
475
+EXTERN int Tcl_GetChannelBufferSize(Tcl_Channel chan);
476
+/* 153 */
477
+EXTERN int Tcl_GetChannelHandle(Tcl_Channel chan, int direction,
478
+ ClientData *handlePtr);
479
+/* 154 */
480
+EXTERN ClientData Tcl_GetChannelInstanceData(Tcl_Channel chan);
481
+/* 155 */
482
+EXTERN int Tcl_GetChannelMode(Tcl_Channel chan);
483
+/* 156 */
484
+EXTERN CONST84_RETURN char * Tcl_GetChannelName(Tcl_Channel chan);
485
+/* 157 */
486
+EXTERN int Tcl_GetChannelOption(Tcl_Interp *interp,
487
+ Tcl_Channel chan, const char *optionName,
488
+ Tcl_DString *dsPtr);
489
+/* 158 */
490
+EXTERN CONST86 Tcl_ChannelType * Tcl_GetChannelType(Tcl_Channel chan);
491
+/* 159 */
492
+EXTERN int Tcl_GetCommandInfo(Tcl_Interp *interp,
493
+ const char *cmdName, Tcl_CmdInfo *infoPtr);
494
+/* 160 */
495
+EXTERN CONST84_RETURN char * Tcl_GetCommandName(Tcl_Interp *interp,
496
+ Tcl_Command command);
497
+/* 161 */
498
+EXTERN int Tcl_GetErrno(void);
499
+/* 162 */
500
+EXTERN CONST84_RETURN char * Tcl_GetHostName(void);
501
+/* 163 */
502
+EXTERN int Tcl_GetInterpPath(Tcl_Interp *askInterp,
503
+ Tcl_Interp *slaveInterp);
504
+/* 164 */
505
+EXTERN Tcl_Interp * Tcl_GetMaster(Tcl_Interp *interp);
506
+/* 165 */
507
+EXTERN const char * Tcl_GetNameOfExecutable(void);
508
+/* 166 */
509
+EXTERN Tcl_Obj * Tcl_GetObjResult(Tcl_Interp *interp);
510
+#if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
511
+/* 167 */
512
+EXTERN int Tcl_GetOpenFile(Tcl_Interp *interp,
513
+ const char *chanID, int forWriting,
514
+ int checkUsage, ClientData *filePtr);
515
+#endif /* UNIX */
516
+#ifdef MAC_OSX_TCL /* MACOSX */
517
+/* 167 */
518
+EXTERN int Tcl_GetOpenFile(Tcl_Interp *interp,
519
+ const char *chanID, int forWriting,
520
+ int checkUsage, ClientData *filePtr);
521
+#endif /* MACOSX */
522
+/* 168 */
523
+EXTERN Tcl_PathType Tcl_GetPathType(const char *path);
524
+/* 169 */
525
+EXTERN int Tcl_Gets(Tcl_Channel chan, Tcl_DString *dsPtr);
526
+/* 170 */
527
+EXTERN int Tcl_GetsObj(Tcl_Channel chan, Tcl_Obj *objPtr);
528
+/* 171 */
529
+EXTERN int Tcl_GetServiceMode(void);
530
+/* 172 */
531
+EXTERN Tcl_Interp * Tcl_GetSlave(Tcl_Interp *interp,
532
+ const char *slaveName);
533
+/* 173 */
534
+EXTERN Tcl_Channel Tcl_GetStdChannel(int type);
535
+/* 174 */
536
+EXTERN CONST84_RETURN char * Tcl_GetStringResult(Tcl_Interp *interp);
537
+/* 175 */
538
+EXTERN CONST84_RETURN char * Tcl_GetVar(Tcl_Interp *interp,
539
+ const char *varName, int flags);
540
+/* 176 */
541
+EXTERN CONST84_RETURN char * Tcl_GetVar2(Tcl_Interp *interp,
542
+ const char *part1, const char *part2,
543
+ int flags);
544
+/* 177 */
545
+EXTERN int Tcl_GlobalEval(Tcl_Interp *interp,
546
+ const char *command);
547
+/* 178 */
548
+EXTERN int Tcl_GlobalEvalObj(Tcl_Interp *interp,
549
+ Tcl_Obj *objPtr);
550
+/* 179 */
551
+EXTERN int Tcl_HideCommand(Tcl_Interp *interp,
552
+ const char *cmdName,
553
+ const char *hiddenCmdToken);
554
+/* 180 */
555
+EXTERN int Tcl_Init(Tcl_Interp *interp);
556
+/* 181 */
557
+EXTERN void Tcl_InitHashTable(Tcl_HashTable *tablePtr,
558
+ int keyType);
559
+/* 182 */
560
+EXTERN int Tcl_InputBlocked(Tcl_Channel chan);
561
+/* 183 */
562
+EXTERN int Tcl_InputBuffered(Tcl_Channel chan);
563
+/* 184 */
564
+EXTERN int Tcl_InterpDeleted(Tcl_Interp *interp);
565
+/* 185 */
566
+EXTERN int Tcl_IsSafe(Tcl_Interp *interp);
567
+/* 186 */
568
+EXTERN char * Tcl_JoinPath(int argc, CONST84 char *const *argv,
569
+ Tcl_DString *resultPtr);
570
+/* 187 */
571
+EXTERN int Tcl_LinkVar(Tcl_Interp *interp, const char *varName,
572
+ char *addr, int type);
573
+/* Slot 188 is reserved */
574
+/* 189 */
575
+EXTERN Tcl_Channel Tcl_MakeFileChannel(ClientData handle, int mode);
576
+/* 190 */
577
+EXTERN int Tcl_MakeSafe(Tcl_Interp *interp);
578
+/* 191 */
579
+EXTERN Tcl_Channel Tcl_MakeTcpClientChannel(ClientData tcpSocket);
580
+/* 192 */
581
+EXTERN char * Tcl_Merge(int argc, CONST84 char *const *argv);
582
+/* 193 */
583
+EXTERN Tcl_HashEntry * Tcl_NextHashEntry(Tcl_HashSearch *searchPtr);
584
+/* 194 */
585
+EXTERN void Tcl_NotifyChannel(Tcl_Channel channel, int mask);
586
+/* 195 */
587
+EXTERN Tcl_Obj * Tcl_ObjGetVar2(Tcl_Interp *interp, Tcl_Obj *part1Ptr,
588
+ Tcl_Obj *part2Ptr, int flags);
589
+/* 196 */
590
+EXTERN Tcl_Obj * Tcl_ObjSetVar2(Tcl_Interp *interp, Tcl_Obj *part1Ptr,
591
+ Tcl_Obj *part2Ptr, Tcl_Obj *newValuePtr,
592
+ int flags);
593
+/* 197 */
594
+EXTERN Tcl_Channel Tcl_OpenCommandChannel(Tcl_Interp *interp, int argc,
595
+ CONST84 char **argv, int flags);
596
+/* 198 */
597
+EXTERN Tcl_Channel Tcl_OpenFileChannel(Tcl_Interp *interp,
598
+ const char *fileName, const char *modeString,
599
+ int permissions);
600
+/* 199 */
601
+EXTERN Tcl_Channel Tcl_OpenTcpClient(Tcl_Interp *interp, int port,
602
+ const char *address, const char *myaddr,
603
+ int myport, int async);
604
+/* 200 */
605
+EXTERN Tcl_Channel Tcl_OpenTcpServer(Tcl_Interp *interp, int port,
606
+ const char *host,
607
+ Tcl_TcpAcceptProc *acceptProc,
608
+ ClientData callbackData);
609
+/* 201 */
610
+EXTERN void Tcl_Preserve(ClientData data);
611
+/* 202 */
612
+EXTERN void Tcl_PrintDouble(Tcl_Interp *interp, double value,
613
+ char *dst);
614
+/* 203 */
615
+EXTERN int Tcl_PutEnv(const char *assignment);
616
+/* 204 */
617
+EXTERN CONST84_RETURN char * Tcl_PosixError(Tcl_Interp *interp);
618
+/* 205 */
619
+EXTERN void Tcl_QueueEvent(Tcl_Event *evPtr,
620
+ Tcl_QueuePosition position);
621
+/* 206 */
622
+EXTERN int Tcl_Read(Tcl_Channel chan, char *bufPtr, int toRead);
623
+/* 207 */
624
+EXTERN void Tcl_ReapDetachedProcs(void);
625
+/* 208 */
626
+EXTERN int Tcl_RecordAndEval(Tcl_Interp *interp,
627
+ const char *cmd, int flags);
628
+/* 209 */
629
+EXTERN int Tcl_RecordAndEvalObj(Tcl_Interp *interp,
630
+ Tcl_Obj *cmdPtr, int flags);
631
+/* 210 */
632
+EXTERN void Tcl_RegisterChannel(Tcl_Interp *interp,
633
+ Tcl_Channel chan);
634
+/* 211 */
635
+EXTERN void Tcl_RegisterObjType(const Tcl_ObjType *typePtr);
636
+/* 212 */
637
+EXTERN Tcl_RegExp Tcl_RegExpCompile(Tcl_Interp *interp,
638
+ const char *pattern);
639
+/* 213 */
640
+EXTERN int Tcl_RegExpExec(Tcl_Interp *interp, Tcl_RegExp regexp,
641
+ const char *text, const char *start);
642
+/* 214 */
643
+EXTERN int Tcl_RegExpMatch(Tcl_Interp *interp, const char *text,
644
+ const char *pattern);
645
+/* 215 */
646
+EXTERN void Tcl_RegExpRange(Tcl_RegExp regexp, int index,
647
+ CONST84 char **startPtr,
648
+ CONST84 char **endPtr);
649
+/* 216 */
650
+EXTERN void Tcl_Release(ClientData clientData);
651
+/* 217 */
652
+EXTERN void Tcl_ResetResult(Tcl_Interp *interp);
653
+/* 218 */
654
+EXTERN int Tcl_ScanElement(const char *src, int *flagPtr);
655
+/* 219 */
656
+EXTERN int Tcl_ScanCountedElement(const char *src, int length,
657
+ int *flagPtr);
658
+/* 220 */
659
+EXTERN int Tcl_SeekOld(Tcl_Channel chan, int offset, int mode);
660
+/* 221 */
661
+EXTERN int Tcl_ServiceAll(void);
662
+/* 222 */
663
+EXTERN int Tcl_ServiceEvent(int flags);
664
+/* 223 */
665
+EXTERN void Tcl_SetAssocData(Tcl_Interp *interp,
666
+ const char *name, Tcl_InterpDeleteProc *proc,
667
+ ClientData clientData);
668
+/* 224 */
669
+EXTERN void Tcl_SetChannelBufferSize(Tcl_Channel chan, int sz);
670
+/* 225 */
671
+EXTERN int Tcl_SetChannelOption(Tcl_Interp *interp,
672
+ Tcl_Channel chan, const char *optionName,
673
+ const char *newValue);
674
+/* 226 */
675
+EXTERN int Tcl_SetCommandInfo(Tcl_Interp *interp,
676
+ const char *cmdName,
677
+ const Tcl_CmdInfo *infoPtr);
678
+/* 227 */
679
+EXTERN void Tcl_SetErrno(int err);
680
+/* 228 */
681
+EXTERN void Tcl_SetErrorCode(Tcl_Interp *interp, ...);
682
+/* 229 */
683
+EXTERN void Tcl_SetMaxBlockTime(const Tcl_Time *timePtr);
684
+/* 230 */
685
+EXTERN void Tcl_SetPanicProc(Tcl_PanicProc *panicProc);
686
+/* 231 */
687
+EXTERN int Tcl_SetRecursionLimit(Tcl_Interp *interp, int depth);
688
+/* 232 */
689
+EXTERN void Tcl_SetResult(Tcl_Interp *interp, char *result,
690
+ Tcl_FreeProc *freeProc);
691
+/* 233 */
692
+EXTERN int Tcl_SetServiceMode(int mode);
693
+/* 234 */
694
+EXTERN void Tcl_SetObjErrorCode(Tcl_Interp *interp,
695
+ Tcl_Obj *errorObjPtr);
696
+/* 235 */
697
+EXTERN void Tcl_SetObjResult(Tcl_Interp *interp,
698
+ Tcl_Obj *resultObjPtr);
699
+/* 236 */
700
+EXTERN void Tcl_SetStdChannel(Tcl_Channel channel, int type);
701
+/* 237 */
702
+EXTERN CONST84_RETURN char * Tcl_SetVar(Tcl_Interp *interp,
703
+ const char *varName, const char *newValue,
704
+ int flags);
705
+/* 238 */
706
+EXTERN CONST84_RETURN char * Tcl_SetVar2(Tcl_Interp *interp,
707
+ const char *part1, const char *part2,
708
+ const char *newValue, int flags);
709
+/* 239 */
710
+EXTERN CONST84_RETURN char * Tcl_SignalId(int sig);
711
+/* 240 */
712
+EXTERN CONST84_RETURN char * Tcl_SignalMsg(int sig);
713
+/* 241 */
714
+EXTERN void Tcl_SourceRCFile(Tcl_Interp *interp);
715
+/* 242 */
716
+EXTERN int Tcl_SplitList(Tcl_Interp *interp,
717
+ const char *listStr, int *argcPtr,
718
+ CONST84 char ***argvPtr);
719
+/* 243 */
720
+EXTERN void Tcl_SplitPath(const char *path, int *argcPtr,
721
+ CONST84 char ***argvPtr);
722
+/* 244 */
723
+EXTERN void Tcl_StaticPackage(Tcl_Interp *interp,
724
+ const char *pkgName,
725
+ Tcl_PackageInitProc *initProc,
726
+ Tcl_PackageInitProc *safeInitProc);
727
+/* 245 */
728
+EXTERN int Tcl_StringMatch(const char *str, const char *pattern);
729
+/* 246 */
730
+EXTERN int Tcl_TellOld(Tcl_Channel chan);
731
+/* 247 */
732
+EXTERN int Tcl_TraceVar(Tcl_Interp *interp, const char *varName,
733
+ int flags, Tcl_VarTraceProc *proc,
734
+ ClientData clientData);
735
+/* 248 */
736
+EXTERN int Tcl_TraceVar2(Tcl_Interp *interp, const char *part1,
737
+ const char *part2, int flags,
738
+ Tcl_VarTraceProc *proc,
739
+ ClientData clientData);
740
+/* 249 */
741
+EXTERN char * Tcl_TranslateFileName(Tcl_Interp *interp,
742
+ const char *name, Tcl_DString *bufferPtr);
743
+/* 250 */
744
+EXTERN int Tcl_Ungets(Tcl_Channel chan, const char *str,
745
+ int len, int atHead);
746
+/* 251 */
747
+EXTERN void Tcl_UnlinkVar(Tcl_Interp *interp,
748
+ const char *varName);
749
+/* 252 */
750
+EXTERN int Tcl_UnregisterChannel(Tcl_Interp *interp,
751
+ Tcl_Channel chan);
752
+/* 253 */
753
+EXTERN int Tcl_UnsetVar(Tcl_Interp *interp, const char *varName,
754
+ int flags);
755
+/* 254 */
756
+EXTERN int Tcl_UnsetVar2(Tcl_Interp *interp, const char *part1,
757
+ const char *part2, int flags);
758
+/* 255 */
759
+EXTERN void Tcl_UntraceVar(Tcl_Interp *interp,
760
+ const char *varName, int flags,
761
+ Tcl_VarTraceProc *proc,
762
+ ClientData clientData);
763
+/* 256 */
764
+EXTERN void Tcl_UntraceVar2(Tcl_Interp *interp,
765
+ const char *part1, const char *part2,
766
+ int flags, Tcl_VarTraceProc *proc,
767
+ ClientData clientData);
768
+/* 257 */
769
+EXTERN void Tcl_UpdateLinkedVar(Tcl_Interp *interp,
770
+ const char *varName);
771
+/* 258 */
772
+EXTERN int Tcl_UpVar(Tcl_Interp *interp, const char *frameName,
773
+ const char *varName, const char *localName,
774
+ int flags);
775
+/* 259 */
776
+EXTERN int Tcl_UpVar2(Tcl_Interp *interp, const char *frameName,
777
+ const char *part1, const char *part2,
778
+ const char *localName, int flags);
779
+/* 260 */
780
+EXTERN int Tcl_VarEval(Tcl_Interp *interp, ...);
781
+/* 261 */
782
+EXTERN ClientData Tcl_VarTraceInfo(Tcl_Interp *interp,
783
+ const char *varName, int flags,
784
+ Tcl_VarTraceProc *procPtr,
785
+ ClientData prevClientData);
786
+/* 262 */
787
+EXTERN ClientData Tcl_VarTraceInfo2(Tcl_Interp *interp,
788
+ const char *part1, const char *part2,
789
+ int flags, Tcl_VarTraceProc *procPtr,
790
+ ClientData prevClientData);
791
+/* 263 */
792
+EXTERN int Tcl_Write(Tcl_Channel chan, const char *s, int slen);
793
+/* 264 */
794
+EXTERN void Tcl_WrongNumArgs(Tcl_Interp *interp, int objc,
795
+ Tcl_Obj *const objv[], const char *message);
796
+/* 265 */
797
+EXTERN int Tcl_DumpActiveMemory(const char *fileName);
798
+/* 266 */
799
+EXTERN void Tcl_ValidateAllMemory(const char *file, int line);
800
+/* 267 */
801
+EXTERN void Tcl_AppendResultVA(Tcl_Interp *interp,
802
+ va_list argList);
803
+/* 268 */
804
+EXTERN void Tcl_AppendStringsToObjVA(Tcl_Obj *objPtr,
805
+ va_list argList);
806
+/* 269 */
807
+EXTERN char * Tcl_HashStats(Tcl_HashTable *tablePtr);
808
+/* 270 */
809
+EXTERN CONST84_RETURN char * Tcl_ParseVar(Tcl_Interp *interp,
810
+ const char *start, CONST84 char **termPtr);
811
+/* 271 */
812
+EXTERN CONST84_RETURN char * Tcl_PkgPresent(Tcl_Interp *interp,
813
+ const char *name, const char *version,
814
+ int exact);
815
+/* 272 */
816
+EXTERN CONST84_RETURN char * Tcl_PkgPresentEx(Tcl_Interp *interp,
817
+ const char *name, const char *version,
818
+ int exact, void *clientDataPtr);
819
+/* 273 */
820
+EXTERN int Tcl_PkgProvide(Tcl_Interp *interp, const char *name,
821
+ const char *version);
822
+/* 274 */
823
+EXTERN CONST84_RETURN char * Tcl_PkgRequire(Tcl_Interp *interp,
824
+ const char *name, const char *version,
825
+ int exact);
826
+/* 275 */
827
+EXTERN void Tcl_SetErrorCodeVA(Tcl_Interp *interp,
828
+ va_list argList);
829
+/* 276 */
830
+EXTERN int Tcl_VarEvalVA(Tcl_Interp *interp, va_list argList);
831
+/* 277 */
832
+EXTERN Tcl_Pid Tcl_WaitPid(Tcl_Pid pid, int *statPtr, int options);
833
+/* 278 */
834
+EXTERN void Tcl_PanicVA(const char *format, va_list argList);
835
+/* 279 */
836
+EXTERN void Tcl_GetVersion(int *major, int *minor,
837
+ int *patchLevel, int *type);
838
+/* 280 */
839
+EXTERN void Tcl_InitMemory(Tcl_Interp *interp);
840
+/* 281 */
841
+EXTERN Tcl_Channel Tcl_StackChannel(Tcl_Interp *interp,
842
+ const Tcl_ChannelType *typePtr,
843
+ ClientData instanceData, int mask,
844
+ Tcl_Channel prevChan);
845
+/* 282 */
846
+EXTERN int Tcl_UnstackChannel(Tcl_Interp *interp,
847
+ Tcl_Channel chan);
848
+/* 283 */
849
+EXTERN Tcl_Channel Tcl_GetStackedChannel(Tcl_Channel chan);
850
+/* 284 */
851
+EXTERN void Tcl_SetMainLoop(Tcl_MainLoopProc *proc);
852
+/* Slot 285 is reserved */
853
+/* 286 */
854
+EXTERN void Tcl_AppendObjToObj(Tcl_Obj *objPtr,
855
+ Tcl_Obj *appendObjPtr);
856
+/* 287 */
857
+EXTERN Tcl_Encoding Tcl_CreateEncoding(const Tcl_EncodingType *typePtr);
858
+/* 288 */
859
+EXTERN void Tcl_CreateThreadExitHandler(Tcl_ExitProc *proc,
860
+ ClientData clientData);
861
+/* 289 */
862
+EXTERN void Tcl_DeleteThreadExitHandler(Tcl_ExitProc *proc,
863
+ ClientData clientData);
864
+/* 290 */
865
+EXTERN void Tcl_DiscardResult(Tcl_SavedResult *statePtr);
866
+/* 291 */
867
+EXTERN int Tcl_EvalEx(Tcl_Interp *interp, const char *script,
868
+ int numBytes, int flags);
869
+/* 292 */
870
+EXTERN int Tcl_EvalObjv(Tcl_Interp *interp, int objc,
871
+ Tcl_Obj *const objv[], int flags);
872
+/* 293 */
873
+EXTERN int Tcl_EvalObjEx(Tcl_Interp *interp, Tcl_Obj *objPtr,
874
+ int flags);
875
+/* 294 */
876
+EXTERN void Tcl_ExitThread(int status);
877
+/* 295 */
878
+EXTERN int Tcl_ExternalToUtf(Tcl_Interp *interp,
879
+ Tcl_Encoding encoding, const char *src,
880
+ int srcLen, int flags,
881
+ Tcl_EncodingState *statePtr, char *dst,
882
+ int dstLen, int *srcReadPtr,
883
+ int *dstWrotePtr, int *dstCharsPtr);
884
+/* 296 */
885
+EXTERN char * Tcl_ExternalToUtfDString(Tcl_Encoding encoding,
886
+ const char *src, int srcLen,
887
+ Tcl_DString *dsPtr);
888
+/* 297 */
889
+EXTERN void Tcl_FinalizeThread(void);
890
+/* 298 */
891
+EXTERN void Tcl_FinalizeNotifier(ClientData clientData);
892
+/* 299 */
893
+EXTERN void Tcl_FreeEncoding(Tcl_Encoding encoding);
894
+/* 300 */
895
+EXTERN Tcl_ThreadId Tcl_GetCurrentThread(void);
896
+/* 301 */
897
+EXTERN Tcl_Encoding Tcl_GetEncoding(Tcl_Interp *interp, const char *name);
898
+/* 302 */
899
+EXTERN CONST84_RETURN char * Tcl_GetEncodingName(Tcl_Encoding encoding);
900
+/* 303 */
901
+EXTERN void Tcl_GetEncodingNames(Tcl_Interp *interp);
902
+/* 304 */
903
+EXTERN int Tcl_GetIndexFromObjStruct(Tcl_Interp *interp,
904
+ Tcl_Obj *objPtr, const void *tablePtr,
905
+ int offset, const char *msg, int flags,
906
+ int *indexPtr);
907
+/* 305 */
908
+EXTERN void * Tcl_GetThreadData(Tcl_ThreadDataKey *keyPtr,
909
+ int size);
910
+/* 306 */
911
+EXTERN Tcl_Obj * Tcl_GetVar2Ex(Tcl_Interp *interp, const char *part1,
912
+ const char *part2, int flags);
913
+/* 307 */
914
+EXTERN ClientData Tcl_InitNotifier(void);
915
+/* 308 */
916
+EXTERN void Tcl_MutexLock(Tcl_Mutex *mutexPtr);
917
+/* 309 */
918
+EXTERN void Tcl_MutexUnlock(Tcl_Mutex *mutexPtr);
919
+/* 310 */
920
+EXTERN void Tcl_ConditionNotify(Tcl_Condition *condPtr);
921
+/* 311 */
922
+EXTERN void Tcl_ConditionWait(Tcl_Condition *condPtr,
923
+ Tcl_Mutex *mutexPtr, const Tcl_Time *timePtr);
924
+/* 312 */
925
+EXTERN int Tcl_NumUtfChars(const char *src, int length);
926
+/* 313 */
927
+EXTERN int Tcl_ReadChars(Tcl_Channel channel, Tcl_Obj *objPtr,
928
+ int charsToRead, int appendFlag);
929
+/* 314 */
930
+EXTERN void Tcl_RestoreResult(Tcl_Interp *interp,
931
+ Tcl_SavedResult *statePtr);
932
+/* 315 */
933
+EXTERN void Tcl_SaveResult(Tcl_Interp *interp,
934
+ Tcl_SavedResult *statePtr);
935
+/* 316 */
936
+EXTERN int Tcl_SetSystemEncoding(Tcl_Interp *interp,
937
+ const char *name);
938
+/* 317 */
939
+EXTERN Tcl_Obj * Tcl_SetVar2Ex(Tcl_Interp *interp, const char *part1,
940
+ const char *part2, Tcl_Obj *newValuePtr,
941
+ int flags);
942
+/* 318 */
943
+EXTERN void Tcl_ThreadAlert(Tcl_ThreadId threadId);
944
+/* 319 */
945
+EXTERN void Tcl_ThreadQueueEvent(Tcl_ThreadId threadId,
946
+ Tcl_Event *evPtr, Tcl_QueuePosition position);
947
+/* 320 */
948
+EXTERN Tcl_UniChar Tcl_UniCharAtIndex(const char *src, int index);
949
+/* 321 */
950
+EXTERN Tcl_UniChar Tcl_UniCharToLower(int ch);
951
+/* 322 */
952
+EXTERN Tcl_UniChar Tcl_UniCharToTitle(int ch);
953
+/* 323 */
954
+EXTERN Tcl_UniChar Tcl_UniCharToUpper(int ch);
955
+/* 324 */
956
+EXTERN int Tcl_UniCharToUtf(int ch, char *buf);
957
+/* 325 */
958
+EXTERN CONST84_RETURN char * Tcl_UtfAtIndex(const char *src, int index);
959
+/* 326 */
960
+EXTERN int Tcl_UtfCharComplete(const char *src, int length);
961
+/* 327 */
962
+EXTERN int Tcl_UtfBackslash(const char *src, int *readPtr,
963
+ char *dst);
964
+/* 328 */
965
+EXTERN CONST84_RETURN char * Tcl_UtfFindFirst(const char *src, int ch);
966
+/* 329 */
967
+EXTERN CONST84_RETURN char * Tcl_UtfFindLast(const char *src, int ch);
968
+/* 330 */
969
+EXTERN CONST84_RETURN char * Tcl_UtfNext(const char *src);
970
+/* 331 */
971
+EXTERN CONST84_RETURN char * Tcl_UtfPrev(const char *src, const char *start);
972
+/* 332 */
973
+EXTERN int Tcl_UtfToExternal(Tcl_Interp *interp,
974
+ Tcl_Encoding encoding, const char *src,
975
+ int srcLen, int flags,
976
+ Tcl_EncodingState *statePtr, char *dst,
977
+ int dstLen, int *srcReadPtr,
978
+ int *dstWrotePtr, int *dstCharsPtr);
979
+/* 333 */
980
+EXTERN char * Tcl_UtfToExternalDString(Tcl_Encoding encoding,
981
+ const char *src, int srcLen,
982
+ Tcl_DString *dsPtr);
983
+/* 334 */
984
+EXTERN int Tcl_UtfToLower(char *src);
985
+/* 335 */
986
+EXTERN int Tcl_UtfToTitle(char *src);
987
+/* 336 */
988
+EXTERN int Tcl_UtfToUniChar(const char *src, Tcl_UniChar *chPtr);
989
+/* 337 */
990
+EXTERN int Tcl_UtfToUpper(char *src);
991
+/* 338 */
992
+EXTERN int Tcl_WriteChars(Tcl_Channel chan, const char *src,
993
+ int srcLen);
994
+/* 339 */
995
+EXTERN int Tcl_WriteObj(Tcl_Channel chan, Tcl_Obj *objPtr);
996
+/* 340 */
997
+EXTERN char * Tcl_GetString(Tcl_Obj *objPtr);
998
+/* 341 */
999
+EXTERN CONST84_RETURN char * Tcl_GetDefaultEncodingDir(void);
1000
+/* 342 */
1001
+EXTERN void Tcl_SetDefaultEncodingDir(const char *path);
1002
+/* 343 */
1003
+EXTERN void Tcl_AlertNotifier(ClientData clientData);
1004
+/* 344 */
1005
+EXTERN void Tcl_ServiceModeHook(int mode);
1006
+/* 345 */
1007
+EXTERN int Tcl_UniCharIsAlnum(int ch);
1008
+/* 346 */
1009
+EXTERN int Tcl_UniCharIsAlpha(int ch);
1010
+/* 347 */
1011
+EXTERN int Tcl_UniCharIsDigit(int ch);
1012
+/* 348 */
1013
+EXTERN int Tcl_UniCharIsLower(int ch);
1014
+/* 349 */
1015
+EXTERN int Tcl_UniCharIsSpace(int ch);
1016
+/* 350 */
1017
+EXTERN int Tcl_UniCharIsUpper(int ch);
1018
+/* 351 */
1019
+EXTERN int Tcl_UniCharIsWordChar(int ch);
1020
+/* 352 */
1021
+EXTERN int Tcl_UniCharLen(const Tcl_UniChar *uniStr);
1022
+/* 353 */
1023
+EXTERN int Tcl_UniCharNcmp(const Tcl_UniChar *ucs,
1024
+ const Tcl_UniChar *uct,
1025
+ unsigned long numChars);
1026
+/* 354 */
1027
+EXTERN char * Tcl_UniCharToUtfDString(const Tcl_UniChar *uniStr,
1028
+ int uniLength, Tcl_DString *dsPtr);
1029
+/* 355 */
1030
+EXTERN Tcl_UniChar * Tcl_UtfToUniCharDString(const char *src, int length,
1031
+ Tcl_DString *dsPtr);
1032
+/* 356 */
1033
+EXTERN Tcl_RegExp Tcl_GetRegExpFromObj(Tcl_Interp *interp,
1034
+ Tcl_Obj *patObj, int flags);
1035
+/* 357 */
1036
+EXTERN Tcl_Obj * Tcl_EvalTokens(Tcl_Interp *interp,
1037
+ Tcl_Token *tokenPtr, int count);
1038
+/* 358 */
1039
+EXTERN void Tcl_FreeParse(Tcl_Parse *parsePtr);
1040
+/* 359 */
1041
+EXTERN void Tcl_LogCommandInfo(Tcl_Interp *interp,
1042
+ const char *script, const char *command,
1043
+ int length);
1044
+/* 360 */
1045
+EXTERN int Tcl_ParseBraces(Tcl_Interp *interp,
1046
+ const char *start, int numBytes,
1047
+ Tcl_Parse *parsePtr, int append,
1048
+ CONST84 char **termPtr);
1049
+/* 361 */
1050
+EXTERN int Tcl_ParseCommand(Tcl_Interp *interp,
1051
+ const char *start, int numBytes, int nested,
1052
+ Tcl_Parse *parsePtr);
1053
+/* 362 */
1054
+EXTERN int Tcl_ParseExpr(Tcl_Interp *interp, const char *start,
1055
+ int numBytes, Tcl_Parse *parsePtr);
1056
+/* 363 */
1057
+EXTERN int Tcl_ParseQuotedString(Tcl_Interp *interp,
1058
+ const char *start, int numBytes,
1059
+ Tcl_Parse *parsePtr, int append,
1060
+ CONST84 char **termPtr);
1061
+/* 364 */
1062
+EXTERN int Tcl_ParseVarName(Tcl_Interp *interp,
1063
+ const char *start, int numBytes,
1064
+ Tcl_Parse *parsePtr, int append);
1065
+/* 365 */
1066
+EXTERN char * Tcl_GetCwd(Tcl_Interp *interp, Tcl_DString *cwdPtr);
1067
+/* 366 */
1068
+EXTERN int Tcl_Chdir(const char *dirName);
1069
+/* 367 */
1070
+EXTERN int Tcl_Access(const char *path, int mode);
1071
+/* 368 */
1072
+EXTERN int Tcl_Stat(const char *path, struct stat *bufPtr);
1073
+/* 369 */
1074
+EXTERN int Tcl_UtfNcmp(const char *s1, const char *s2,
1075
+ unsigned long n);
1076
+/* 370 */
1077
+EXTERN int Tcl_UtfNcasecmp(const char *s1, const char *s2,
1078
+ unsigned long n);
1079
+/* 371 */
1080
+EXTERN int Tcl_StringCaseMatch(const char *str,
1081
+ const char *pattern, int nocase);
1082
+/* 372 */
1083
+EXTERN int Tcl_UniCharIsControl(int ch);
1084
+/* 373 */
1085
+EXTERN int Tcl_UniCharIsGraph(int ch);
1086
+/* 374 */
1087
+EXTERN int Tcl_UniCharIsPrint(int ch);
1088
+/* 375 */
1089
+EXTERN int Tcl_UniCharIsPunct(int ch);
1090
+/* 376 */
1091
+EXTERN int Tcl_RegExpExecObj(Tcl_Interp *interp,
1092
+ Tcl_RegExp regexp, Tcl_Obj *textObj,
1093
+ int offset, int nmatches, int flags);
1094
+/* 377 */
1095
+EXTERN void Tcl_RegExpGetInfo(Tcl_RegExp regexp,
1096
+ Tcl_RegExpInfo *infoPtr);
1097
+/* 378 */
1098
+EXTERN Tcl_Obj * Tcl_NewUnicodeObj(const Tcl_UniChar *unicode,
1099
+ int numChars);
1100
+/* 379 */
1101
+EXTERN void Tcl_SetUnicodeObj(Tcl_Obj *objPtr,
1102
+ const Tcl_UniChar *unicode, int numChars);
1103
+/* 380 */
1104
+EXTERN int Tcl_GetCharLength(Tcl_Obj *objPtr);
1105
+/* 381 */
1106
+EXTERN Tcl_UniChar Tcl_GetUniChar(Tcl_Obj *objPtr, int index);
1107
+/* 382 */
1108
+EXTERN Tcl_UniChar * Tcl_GetUnicode(Tcl_Obj *objPtr);
1109
+/* 383 */
1110
+EXTERN Tcl_Obj * Tcl_GetRange(Tcl_Obj *objPtr, int first, int last);
1111
+/* 384 */
1112
+EXTERN void Tcl_AppendUnicodeToObj(Tcl_Obj *objPtr,
1113
+ const Tcl_UniChar *unicode, int length);
1114
+/* 385 */
1115
+EXTERN int Tcl_RegExpMatchObj(Tcl_Interp *interp,
1116
+ Tcl_Obj *textObj, Tcl_Obj *patternObj);
1117
+/* 386 */
1118
+EXTERN void Tcl_SetNotifier(Tcl_NotifierProcs *notifierProcPtr);
1119
+/* 387 */
1120
+EXTERN Tcl_Mutex * Tcl_GetAllocMutex(void);
1121
+/* 388 */
1122
+EXTERN int Tcl_GetChannelNames(Tcl_Interp *interp);
1123
+/* 389 */
1124
+EXTERN int Tcl_GetChannelNamesEx(Tcl_Interp *interp,
1125
+ const char *pattern);
1126
+/* 390 */
1127
+EXTERN int Tcl_ProcObjCmd(ClientData clientData,
1128
+ Tcl_Interp *interp, int objc,
1129
+ Tcl_Obj *const objv[]);
1130
+/* 391 */
1131
+EXTERN void Tcl_ConditionFinalize(Tcl_Condition *condPtr);
1132
+/* 392 */
1133
+EXTERN void Tcl_MutexFinalize(Tcl_Mutex *mutex);
1134
+/* 393 */
1135
+EXTERN int Tcl_CreateThread(Tcl_ThreadId *idPtr,
1136
+ Tcl_ThreadCreateProc *proc,
1137
+ ClientData clientData, int stackSize,
1138
+ int flags);
1139
+/* 394 */
1140
+EXTERN int Tcl_ReadRaw(Tcl_Channel chan, char *dst,
1141
+ int bytesToRead);
1142
+/* 395 */
1143
+EXTERN int Tcl_WriteRaw(Tcl_Channel chan, const char *src,
1144
+ int srcLen);
1145
+/* 396 */
1146
+EXTERN Tcl_Channel Tcl_GetTopChannel(Tcl_Channel chan);
1147
+/* 397 */
1148
+EXTERN int Tcl_ChannelBuffered(Tcl_Channel chan);
1149
+/* 398 */
1150
+EXTERN CONST84_RETURN char * Tcl_ChannelName(
1151
+ const Tcl_ChannelType *chanTypePtr);
1152
+/* 399 */
1153
+EXTERN Tcl_ChannelTypeVersion Tcl_ChannelVersion(
1154
+ const Tcl_ChannelType *chanTypePtr);
1155
+/* 400 */
1156
+EXTERN Tcl_DriverBlockModeProc * Tcl_ChannelBlockModeProc(
1157
+ const Tcl_ChannelType *chanTypePtr);
1158
+/* 401 */
1159
+EXTERN Tcl_DriverCloseProc * Tcl_ChannelCloseProc(
1160
+ const Tcl_ChannelType *chanTypePtr);
1161
+/* 402 */
1162
+EXTERN Tcl_DriverClose2Proc * Tcl_ChannelClose2Proc(
1163
+ const Tcl_ChannelType *chanTypePtr);
1164
+/* 403 */
1165
+EXTERN Tcl_DriverInputProc * Tcl_ChannelInputProc(
1166
+ const Tcl_ChannelType *chanTypePtr);
1167
+/* 404 */
1168
+EXTERN Tcl_DriverOutputProc * Tcl_ChannelOutputProc(
1169
+ const Tcl_ChannelType *chanTypePtr);
1170
+/* 405 */
1171
+EXTERN Tcl_DriverSeekProc * Tcl_ChannelSeekProc(
1172
+ const Tcl_ChannelType *chanTypePtr);
1173
+/* 406 */
1174
+EXTERN Tcl_DriverSetOptionProc * Tcl_ChannelSetOptionProc(
1175
+ const Tcl_ChannelType *chanTypePtr);
1176
+/* 407 */
1177
+EXTERN Tcl_DriverGetOptionProc * Tcl_ChannelGetOptionProc(
1178
+ const Tcl_ChannelType *chanTypePtr);
1179
+/* 408 */
1180
+EXTERN Tcl_DriverWatchProc * Tcl_ChannelWatchProc(
1181
+ const Tcl_ChannelType *chanTypePtr);
1182
+/* 409 */
1183
+EXTERN Tcl_DriverGetHandleProc * Tcl_ChannelGetHandleProc(
1184
+ const Tcl_ChannelType *chanTypePtr);
1185
+/* 410 */
1186
+EXTERN Tcl_DriverFlushProc * Tcl_ChannelFlushProc(
1187
+ const Tcl_ChannelType *chanTypePtr);
1188
+/* 411 */
1189
+EXTERN Tcl_DriverHandlerProc * Tcl_ChannelHandlerProc(
1190
+ const Tcl_ChannelType *chanTypePtr);
1191
+/* 412 */
1192
+EXTERN int Tcl_JoinThread(Tcl_ThreadId threadId, int *result);
1193
+/* 413 */
1194
+EXTERN int Tcl_IsChannelShared(Tcl_Channel channel);
1195
+/* 414 */
1196
+EXTERN int Tcl_IsChannelRegistered(Tcl_Interp *interp,
1197
+ Tcl_Channel channel);
1198
+/* 415 */
1199
+EXTERN void Tcl_CutChannel(Tcl_Channel channel);
1200
+/* 416 */
1201
+EXTERN void Tcl_SpliceChannel(Tcl_Channel channel);
1202
+/* 417 */
1203
+EXTERN void Tcl_ClearChannelHandlers(Tcl_Channel channel);
1204
+/* 418 */
1205
+EXTERN int Tcl_IsChannelExisting(const char *channelName);
1206
+/* 419 */
1207
+EXTERN int Tcl_UniCharNcasecmp(const Tcl_UniChar *ucs,
1208
+ const Tcl_UniChar *uct,
1209
+ unsigned long numChars);
1210
+/* 420 */
1211
+EXTERN int Tcl_UniCharCaseMatch(const Tcl_UniChar *uniStr,
1212
+ const Tcl_UniChar *uniPattern, int nocase);
1213
+/* 421 */
1214
+EXTERN Tcl_HashEntry * Tcl_FindHashEntry(Tcl_HashTable *tablePtr,
1215
+ const void *key);
1216
+/* 422 */
1217
+EXTERN Tcl_HashEntry * Tcl_CreateHashEntry(Tcl_HashTable *tablePtr,
1218
+ const void *key, int *newPtr);
1219
+/* 423 */
1220
+EXTERN void Tcl_InitCustomHashTable(Tcl_HashTable *tablePtr,
1221
+ int keyType, const Tcl_HashKeyType *typePtr);
1222
+/* 424 */
1223
+EXTERN void Tcl_InitObjHashTable(Tcl_HashTable *tablePtr);
1224
+/* 425 */
1225
+EXTERN ClientData Tcl_CommandTraceInfo(Tcl_Interp *interp,
1226
+ const char *varName, int flags,
1227
+ Tcl_CommandTraceProc *procPtr,
1228
+ ClientData prevClientData);
1229
+/* 426 */
1230
+EXTERN int Tcl_TraceCommand(Tcl_Interp *interp,
1231
+ const char *varName, int flags,
1232
+ Tcl_CommandTraceProc *proc,
1233
+ ClientData clientData);
1234
+/* 427 */
1235
+EXTERN void Tcl_UntraceCommand(Tcl_Interp *interp,
1236
+ const char *varName, int flags,
1237
+ Tcl_CommandTraceProc *proc,
1238
+ ClientData clientData);
1239
+/* 428 */
1240
+EXTERN char * Tcl_AttemptAlloc(unsigned int size);
1241
+/* 429 */
1242
+EXTERN char * Tcl_AttemptDbCkalloc(unsigned int size,
1243
+ const char *file, int line);
1244
+/* 430 */
1245
+EXTERN char * Tcl_AttemptRealloc(char *ptr, unsigned int size);
1246
+/* 431 */
1247
+EXTERN char * Tcl_AttemptDbCkrealloc(char *ptr, unsigned int size,
1248
+ const char *file, int line);
1249
+/* 432 */
1250
+EXTERN int Tcl_AttemptSetObjLength(Tcl_Obj *objPtr, int length);
1251
+/* 433 */
1252
+EXTERN Tcl_ThreadId Tcl_GetChannelThread(Tcl_Channel channel);
1253
+/* 434 */
1254
+EXTERN Tcl_UniChar * Tcl_GetUnicodeFromObj(Tcl_Obj *objPtr,
1255
+ int *lengthPtr);
1256
+/* 435 */
1257
+EXTERN int Tcl_GetMathFuncInfo(Tcl_Interp *interp,
1258
+ const char *name, int *numArgsPtr,
1259
+ Tcl_ValueType **argTypesPtr,
1260
+ Tcl_MathProc **procPtr,
1261
+ ClientData *clientDataPtr);
1262
+/* 436 */
1263
+EXTERN Tcl_Obj * Tcl_ListMathFuncs(Tcl_Interp *interp,
1264
+ const char *pattern);
1265
+/* 437 */
1266
+EXTERN Tcl_Obj * Tcl_SubstObj(Tcl_Interp *interp, Tcl_Obj *objPtr,
1267
+ int flags);
1268
+/* 438 */
1269
+EXTERN int Tcl_DetachChannel(Tcl_Interp *interp,
1270
+ Tcl_Channel channel);
1271
+/* 439 */
1272
+EXTERN int Tcl_IsStandardChannel(Tcl_Channel channel);
1273
+/* 440 */
1274
+EXTERN int Tcl_FSCopyFile(Tcl_Obj *srcPathPtr,
1275
+ Tcl_Obj *destPathPtr);
1276
+/* 441 */
1277
+EXTERN int Tcl_FSCopyDirectory(Tcl_Obj *srcPathPtr,
1278
+ Tcl_Obj *destPathPtr, Tcl_Obj **errorPtr);
1279
+/* 442 */
1280
+EXTERN int Tcl_FSCreateDirectory(Tcl_Obj *pathPtr);
1281
+/* 443 */
1282
+EXTERN int Tcl_FSDeleteFile(Tcl_Obj *pathPtr);
1283
+/* 444 */
1284
+EXTERN int Tcl_FSLoadFile(Tcl_Interp *interp, Tcl_Obj *pathPtr,
1285
+ const char *sym1, const char *sym2,
1286
+ Tcl_PackageInitProc **proc1Ptr,
1287
+ Tcl_PackageInitProc **proc2Ptr,
1288
+ Tcl_LoadHandle *handlePtr,
1289
+ Tcl_FSUnloadFileProc **unloadProcPtr);
1290
+/* 445 */
1291
+EXTERN int Tcl_FSMatchInDirectory(Tcl_Interp *interp,
1292
+ Tcl_Obj *result, Tcl_Obj *pathPtr,
1293
+ const char *pattern, Tcl_GlobTypeData *types);
1294
+/* 446 */
1295
+EXTERN Tcl_Obj * Tcl_FSLink(Tcl_Obj *pathPtr, Tcl_Obj *toPtr,
1296
+ int linkAction);
1297
+/* 447 */
1298
+EXTERN int Tcl_FSRemoveDirectory(Tcl_Obj *pathPtr,
1299
+ int recursive, Tcl_Obj **errorPtr);
1300
+/* 448 */
1301
+EXTERN int Tcl_FSRenameFile(Tcl_Obj *srcPathPtr,
1302
+ Tcl_Obj *destPathPtr);
1303
+/* 449 */
1304
+EXTERN int Tcl_FSLstat(Tcl_Obj *pathPtr, Tcl_StatBuf *buf);
1305
+/* 450 */
1306
+EXTERN int Tcl_FSUtime(Tcl_Obj *pathPtr, struct utimbuf *tval);
1307
+/* 451 */
1308
+EXTERN int Tcl_FSFileAttrsGet(Tcl_Interp *interp, int index,
1309
+ Tcl_Obj *pathPtr, Tcl_Obj **objPtrRef);
1310
+/* 452 */
1311
+EXTERN int Tcl_FSFileAttrsSet(Tcl_Interp *interp, int index,
1312
+ Tcl_Obj *pathPtr, Tcl_Obj *objPtr);
1313
+/* 453 */
1314
+EXTERN const char *CONST86 * Tcl_FSFileAttrStrings(Tcl_Obj *pathPtr,
1315
+ Tcl_Obj **objPtrRef);
1316
+/* 454 */
1317
+EXTERN int Tcl_FSStat(Tcl_Obj *pathPtr, Tcl_StatBuf *buf);
1318
+/* 455 */
1319
+EXTERN int Tcl_FSAccess(Tcl_Obj *pathPtr, int mode);
1320
+/* 456 */
1321
+EXTERN Tcl_Channel Tcl_FSOpenFileChannel(Tcl_Interp *interp,
1322
+ Tcl_Obj *pathPtr, const char *modeString,
1323
+ int permissions);
1324
+/* 457 */
1325
+EXTERN Tcl_Obj * Tcl_FSGetCwd(Tcl_Interp *interp);
1326
+/* 458 */
1327
+EXTERN int Tcl_FSChdir(Tcl_Obj *pathPtr);
1328
+/* 459 */
1329
+EXTERN int Tcl_FSConvertToPathType(Tcl_Interp *interp,
1330
+ Tcl_Obj *pathPtr);
1331
+/* 460 */
1332
+EXTERN Tcl_Obj * Tcl_FSJoinPath(Tcl_Obj *listObj, int elements);
1333
+/* 461 */
1334
+EXTERN Tcl_Obj * Tcl_FSSplitPath(Tcl_Obj *pathPtr, int *lenPtr);
1335
+/* 462 */
1336
+EXTERN int Tcl_FSEqualPaths(Tcl_Obj *firstPtr,
1337
+ Tcl_Obj *secondPtr);
1338
+/* 463 */
1339
+EXTERN Tcl_Obj * Tcl_FSGetNormalizedPath(Tcl_Interp *interp,
1340
+ Tcl_Obj *pathPtr);
1341
+/* 464 */
1342
+EXTERN Tcl_Obj * Tcl_FSJoinToPath(Tcl_Obj *pathPtr, int objc,
1343
+ Tcl_Obj *const objv[]);
1344
+/* 465 */
1345
+EXTERN ClientData Tcl_FSGetInternalRep(Tcl_Obj *pathPtr,
1346
+ const Tcl_Filesystem *fsPtr);
1347
+/* 466 */
1348
+EXTERN Tcl_Obj * Tcl_FSGetTranslatedPath(Tcl_Interp *interp,
1349
+ Tcl_Obj *pathPtr);
1350
+/* 467 */
1351
+EXTERN int Tcl_FSEvalFile(Tcl_Interp *interp, Tcl_Obj *fileName);
1352
+/* 468 */
1353
+EXTERN Tcl_Obj * Tcl_FSNewNativePath(
1354
+ const Tcl_Filesystem *fromFilesystem,
1355
+ ClientData clientData);
1356
+/* 469 */
1357
+EXTERN const void * Tcl_FSGetNativePath(Tcl_Obj *pathPtr);
1358
+/* 470 */
1359
+EXTERN Tcl_Obj * Tcl_FSFileSystemInfo(Tcl_Obj *pathPtr);
1360
+/* 471 */
1361
+EXTERN Tcl_Obj * Tcl_FSPathSeparator(Tcl_Obj *pathPtr);
1362
+/* 472 */
1363
+EXTERN Tcl_Obj * Tcl_FSListVolumes(void);
1364
+/* 473 */
1365
+EXTERN int Tcl_FSRegister(ClientData clientData,
1366
+ const Tcl_Filesystem *fsPtr);
1367
+/* 474 */
1368
+EXTERN int Tcl_FSUnregister(const Tcl_Filesystem *fsPtr);
1369
+/* 475 */
1370
+EXTERN ClientData Tcl_FSData(const Tcl_Filesystem *fsPtr);
1371
+/* 476 */
1372
+EXTERN const char * Tcl_FSGetTranslatedStringPath(Tcl_Interp *interp,
1373
+ Tcl_Obj *pathPtr);
1374
+/* 477 */
1375
+EXTERN CONST86 Tcl_Filesystem * Tcl_FSGetFileSystemForPath(Tcl_Obj *pathPtr);
1376
+/* 478 */
1377
+EXTERN Tcl_PathType Tcl_FSGetPathType(Tcl_Obj *pathPtr);
1378
+/* 479 */
1379
+EXTERN int Tcl_OutputBuffered(Tcl_Channel chan);
1380
+/* 480 */
1381
+EXTERN void Tcl_FSMountsChanged(const Tcl_Filesystem *fsPtr);
1382
+/* 481 */
1383
+EXTERN int Tcl_EvalTokensStandard(Tcl_Interp *interp,
1384
+ Tcl_Token *tokenPtr, int count);
1385
+/* 482 */
1386
+EXTERN void Tcl_GetTime(Tcl_Time *timeBuf);
1387
+/* 483 */
1388
+EXTERN Tcl_Trace Tcl_CreateObjTrace(Tcl_Interp *interp, int level,
1389
+ int flags, Tcl_CmdObjTraceProc *objProc,
1390
+ ClientData clientData,
1391
+ Tcl_CmdObjTraceDeleteProc *delProc);
1392
+/* 484 */
1393
+EXTERN int Tcl_GetCommandInfoFromToken(Tcl_Command token,
1394
+ Tcl_CmdInfo *infoPtr);
1395
+/* 485 */
1396
+EXTERN int Tcl_SetCommandInfoFromToken(Tcl_Command token,
1397
+ const Tcl_CmdInfo *infoPtr);
1398
+/* 486 */
1399
+EXTERN Tcl_Obj * Tcl_DbNewWideIntObj(Tcl_WideInt wideValue,
1400
+ const char *file, int line);
1401
+/* 487 */
1402
+EXTERN int Tcl_GetWideIntFromObj(Tcl_Interp *interp,
1403
+ Tcl_Obj *objPtr, Tcl_WideInt *widePtr);
1404
+/* 488 */
1405
+EXTERN Tcl_Obj * Tcl_NewWideIntObj(Tcl_WideInt wideValue);
1406
+/* 489 */
1407
+EXTERN void Tcl_SetWideIntObj(Tcl_Obj *objPtr,
1408
+ Tcl_WideInt wideValue);
1409
+/* 490 */
1410
+EXTERN Tcl_StatBuf * Tcl_AllocStatBuf(void);
1411
+/* 491 */
1412
+EXTERN Tcl_WideInt Tcl_Seek(Tcl_Channel chan, Tcl_WideInt offset,
1413
+ int mode);
1414
+/* 492 */
1415
+EXTERN Tcl_WideInt Tcl_Tell(Tcl_Channel chan);
1416
+/* 493 */
1417
+EXTERN Tcl_DriverWideSeekProc * Tcl_ChannelWideSeekProc(
1418
+ const Tcl_ChannelType *chanTypePtr);
1419
+/* 494 */
1420
+EXTERN int Tcl_DictObjPut(Tcl_Interp *interp, Tcl_Obj *dictPtr,
1421
+ Tcl_Obj *keyPtr, Tcl_Obj *valuePtr);
1422
+/* 495 */
1423
+EXTERN int Tcl_DictObjGet(Tcl_Interp *interp, Tcl_Obj *dictPtr,
1424
+ Tcl_Obj *keyPtr, Tcl_Obj **valuePtrPtr);
1425
+/* 496 */
1426
+EXTERN int Tcl_DictObjRemove(Tcl_Interp *interp,
1427
+ Tcl_Obj *dictPtr, Tcl_Obj *keyPtr);
1428
+/* 497 */
1429
+EXTERN int Tcl_DictObjSize(Tcl_Interp *interp, Tcl_Obj *dictPtr,
1430
+ int *sizePtr);
1431
+/* 498 */
1432
+EXTERN int Tcl_DictObjFirst(Tcl_Interp *interp,
1433
+ Tcl_Obj *dictPtr, Tcl_DictSearch *searchPtr,
1434
+ Tcl_Obj **keyPtrPtr, Tcl_Obj **valuePtrPtr,
1435
+ int *donePtr);
1436
+/* 499 */
1437
+EXTERN void Tcl_DictObjNext(Tcl_DictSearch *searchPtr,
1438
+ Tcl_Obj **keyPtrPtr, Tcl_Obj **valuePtrPtr,
1439
+ int *donePtr);
1440
+/* 500 */
1441
+EXTERN void Tcl_DictObjDone(Tcl_DictSearch *searchPtr);
1442
+/* 501 */
1443
+EXTERN int Tcl_DictObjPutKeyList(Tcl_Interp *interp,
1444
+ Tcl_Obj *dictPtr, int keyc,
1445
+ Tcl_Obj *const *keyv, Tcl_Obj *valuePtr);
1446
+/* 502 */
1447
+EXTERN int Tcl_DictObjRemoveKeyList(Tcl_Interp *interp,
1448
+ Tcl_Obj *dictPtr, int keyc,
1449
+ Tcl_Obj *const *keyv);
1450
+/* 503 */
1451
+EXTERN Tcl_Obj * Tcl_NewDictObj(void);
1452
+/* 504 */
1453
+EXTERN Tcl_Obj * Tcl_DbNewDictObj(const char *file, int line);
1454
+/* 505 */
1455
+EXTERN void Tcl_RegisterConfig(Tcl_Interp *interp,
1456
+ const char *pkgName,
1457
+ const Tcl_Config *configuration,
1458
+ const char *valEncoding);
1459
+/* 506 */
1460
+EXTERN Tcl_Namespace * Tcl_CreateNamespace(Tcl_Interp *interp,
1461
+ const char *name, ClientData clientData,
1462
+ Tcl_NamespaceDeleteProc *deleteProc);
1463
+/* 507 */
1464
+EXTERN void Tcl_DeleteNamespace(Tcl_Namespace *nsPtr);
1465
+/* 508 */
1466
+EXTERN int Tcl_AppendExportList(Tcl_Interp *interp,
1467
+ Tcl_Namespace *nsPtr, Tcl_Obj *objPtr);
1468
+/* 509 */
1469
+EXTERN int Tcl_Export(Tcl_Interp *interp, Tcl_Namespace *nsPtr,
1470
+ const char *pattern, int resetListFirst);
1471
+/* 510 */
1472
+EXTERN int Tcl_Import(Tcl_Interp *interp, Tcl_Namespace *nsPtr,
1473
+ const char *pattern, int allowOverwrite);
1474
+/* 511 */
1475
+EXTERN int Tcl_ForgetImport(Tcl_Interp *interp,
1476
+ Tcl_Namespace *nsPtr, const char *pattern);
1477
+/* 512 */
1478
+EXTERN Tcl_Namespace * Tcl_GetCurrentNamespace(Tcl_Interp *interp);
1479
+/* 513 */
1480
+EXTERN Tcl_Namespace * Tcl_GetGlobalNamespace(Tcl_Interp *interp);
1481
+/* 514 */
1482
+EXTERN Tcl_Namespace * Tcl_FindNamespace(Tcl_Interp *interp,
1483
+ const char *name,
1484
+ Tcl_Namespace *contextNsPtr, int flags);
1485
+/* 515 */
1486
+EXTERN Tcl_Command Tcl_FindCommand(Tcl_Interp *interp, const char *name,
1487
+ Tcl_Namespace *contextNsPtr, int flags);
1488
+/* 516 */
1489
+EXTERN Tcl_Command Tcl_GetCommandFromObj(Tcl_Interp *interp,
1490
+ Tcl_Obj *objPtr);
1491
+/* 517 */
1492
+EXTERN void Tcl_GetCommandFullName(Tcl_Interp *interp,
1493
+ Tcl_Command command, Tcl_Obj *objPtr);
1494
+/* 518 */
1495
+EXTERN int Tcl_FSEvalFileEx(Tcl_Interp *interp,
1496
+ Tcl_Obj *fileName, const char *encodingName);
1497
+/* 519 */
1498
+EXTERN Tcl_ExitProc * Tcl_SetExitProc(Tcl_ExitProc *proc);
1499
+/* 520 */
1500
+EXTERN void Tcl_LimitAddHandler(Tcl_Interp *interp, int type,
1501
+ Tcl_LimitHandlerProc *handlerProc,
1502
+ ClientData clientData,
1503
+ Tcl_LimitHandlerDeleteProc *deleteProc);
1504
+/* 521 */
1505
+EXTERN void Tcl_LimitRemoveHandler(Tcl_Interp *interp, int type,
1506
+ Tcl_LimitHandlerProc *handlerProc,
1507
+ ClientData clientData);
1508
+/* 522 */
1509
+EXTERN int Tcl_LimitReady(Tcl_Interp *interp);
1510
+/* 523 */
1511
+EXTERN int Tcl_LimitCheck(Tcl_Interp *interp);
1512
+/* 524 */
1513
+EXTERN int Tcl_LimitExceeded(Tcl_Interp *interp);
1514
+/* 525 */
1515
+EXTERN void Tcl_LimitSetCommands(Tcl_Interp *interp,
1516
+ int commandLimit);
1517
+/* 526 */
1518
+EXTERN void Tcl_LimitSetTime(Tcl_Interp *interp,
1519
+ Tcl_Time *timeLimitPtr);
1520
+/* 527 */
1521
+EXTERN void Tcl_LimitSetGranularity(Tcl_Interp *interp, int type,
1522
+ int granularity);
1523
+/* 528 */
1524
+EXTERN int Tcl_LimitTypeEnabled(Tcl_Interp *interp, int type);
1525
+/* 529 */
1526
+EXTERN int Tcl_LimitTypeExceeded(Tcl_Interp *interp, int type);
1527
+/* 530 */
1528
+EXTERN void Tcl_LimitTypeSet(Tcl_Interp *interp, int type);
1529
+/* 531 */
1530
+EXTERN void Tcl_LimitTypeReset(Tcl_Interp *interp, int type);
1531
+/* 532 */
1532
+EXTERN int Tcl_LimitGetCommands(Tcl_Interp *interp);
1533
+/* 533 */
1534
+EXTERN void Tcl_LimitGetTime(Tcl_Interp *interp,
1535
+ Tcl_Time *timeLimitPtr);
1536
+/* 534 */
1537
+EXTERN int Tcl_LimitGetGranularity(Tcl_Interp *interp, int type);
1538
+/* 535 */
1539
+EXTERN Tcl_InterpState Tcl_SaveInterpState(Tcl_Interp *interp, int status);
1540
+/* 536 */
1541
+EXTERN int Tcl_RestoreInterpState(Tcl_Interp *interp,
1542
+ Tcl_InterpState state);
1543
+/* 537 */
1544
+EXTERN void Tcl_DiscardInterpState(Tcl_InterpState state);
1545
+/* 538 */
1546
+EXTERN int Tcl_SetReturnOptions(Tcl_Interp *interp,
1547
+ Tcl_Obj *options);
1548
+/* 539 */
1549
+EXTERN Tcl_Obj * Tcl_GetReturnOptions(Tcl_Interp *interp, int result);
1550
+/* 540 */
1551
+EXTERN int Tcl_IsEnsemble(Tcl_Command token);
1552
+/* 541 */
1553
+EXTERN Tcl_Command Tcl_CreateEnsemble(Tcl_Interp *interp,
1554
+ const char *name,
1555
+ Tcl_Namespace *namespacePtr, int flags);
1556
+/* 542 */
1557
+EXTERN Tcl_Command Tcl_FindEnsemble(Tcl_Interp *interp,
1558
+ Tcl_Obj *cmdNameObj, int flags);
1559
+/* 543 */
1560
+EXTERN int Tcl_SetEnsembleSubcommandList(Tcl_Interp *interp,
1561
+ Tcl_Command token, Tcl_Obj *subcmdList);
1562
+/* 544 */
1563
+EXTERN int Tcl_SetEnsembleMappingDict(Tcl_Interp *interp,
1564
+ Tcl_Command token, Tcl_Obj *mapDict);
1565
+/* 545 */
1566
+EXTERN int Tcl_SetEnsembleUnknownHandler(Tcl_Interp *interp,
1567
+ Tcl_Command token, Tcl_Obj *unknownList);
1568
+/* 546 */
1569
+EXTERN int Tcl_SetEnsembleFlags(Tcl_Interp *interp,
1570
+ Tcl_Command token, int flags);
1571
+/* 547 */
1572
+EXTERN int Tcl_GetEnsembleSubcommandList(Tcl_Interp *interp,
1573
+ Tcl_Command token, Tcl_Obj **subcmdListPtr);
1574
+/* 548 */
1575
+EXTERN int Tcl_GetEnsembleMappingDict(Tcl_Interp *interp,
1576
+ Tcl_Command token, Tcl_Obj **mapDictPtr);
1577
+/* 549 */
1578
+EXTERN int Tcl_GetEnsembleUnknownHandler(Tcl_Interp *interp,
1579
+ Tcl_Command token, Tcl_Obj **unknownListPtr);
1580
+/* 550 */
1581
+EXTERN int Tcl_GetEnsembleFlags(Tcl_Interp *interp,
1582
+ Tcl_Command token, int *flagsPtr);
1583
+/* 551 */
1584
+EXTERN int Tcl_GetEnsembleNamespace(Tcl_Interp *interp,
1585
+ Tcl_Command token,
1586
+ Tcl_Namespace **namespacePtrPtr);
1587
+/* 552 */
1588
+EXTERN void Tcl_SetTimeProc(Tcl_GetTimeProc *getProc,
1589
+ Tcl_ScaleTimeProc *scaleProc,
1590
+ ClientData clientData);
1591
+/* 553 */
1592
+EXTERN void Tcl_QueryTimeProc(Tcl_GetTimeProc **getProc,
1593
+ Tcl_ScaleTimeProc **scaleProc,
1594
+ ClientData *clientData);
1595
+/* 554 */
1596
+EXTERN Tcl_DriverThreadActionProc * Tcl_ChannelThreadActionProc(
1597
+ const Tcl_ChannelType *chanTypePtr);
1598
+/* 555 */
1599
+EXTERN Tcl_Obj * Tcl_NewBignumObj(mp_int *value);
1600
+/* 556 */
1601
+EXTERN Tcl_Obj * Tcl_DbNewBignumObj(mp_int *value, const char *file,
1602
+ int line);
1603
+/* 557 */
1604
+EXTERN void Tcl_SetBignumObj(Tcl_Obj *obj, mp_int *value);
1605
+/* 558 */
1606
+EXTERN int Tcl_GetBignumFromObj(Tcl_Interp *interp,
1607
+ Tcl_Obj *obj, mp_int *value);
1608
+/* 559 */
1609
+EXTERN int Tcl_TakeBignumFromObj(Tcl_Interp *interp,
1610
+ Tcl_Obj *obj, mp_int *value);
1611
+/* 560 */
1612
+EXTERN int Tcl_TruncateChannel(Tcl_Channel chan,
1613
+ Tcl_WideInt length);
1614
+/* 561 */
1615
+EXTERN Tcl_DriverTruncateProc * Tcl_ChannelTruncateProc(
1616
+ const Tcl_ChannelType *chanTypePtr);
1617
+/* 562 */
1618
+EXTERN void Tcl_SetChannelErrorInterp(Tcl_Interp *interp,
1619
+ Tcl_Obj *msg);
1620
+/* 563 */
1621
+EXTERN void Tcl_GetChannelErrorInterp(Tcl_Interp *interp,
1622
+ Tcl_Obj **msg);
1623
+/* 564 */
1624
+EXTERN void Tcl_SetChannelError(Tcl_Channel chan, Tcl_Obj *msg);
1625
+/* 565 */
1626
+EXTERN void Tcl_GetChannelError(Tcl_Channel chan, Tcl_Obj **msg);
1627
+/* 566 */
1628
+EXTERN int Tcl_InitBignumFromDouble(Tcl_Interp *interp,
1629
+ double initval, mp_int *toInit);
1630
+/* 567 */
1631
+EXTERN Tcl_Obj * Tcl_GetNamespaceUnknownHandler(Tcl_Interp *interp,
1632
+ Tcl_Namespace *nsPtr);
1633
+/* 568 */
1634
+EXTERN int Tcl_SetNamespaceUnknownHandler(Tcl_Interp *interp,
1635
+ Tcl_Namespace *nsPtr, Tcl_Obj *handlerPtr);
1636
+/* 569 */
1637
+EXTERN int Tcl_GetEncodingFromObj(Tcl_Interp *interp,
1638
+ Tcl_Obj *objPtr, Tcl_Encoding *encodingPtr);
1639
+/* 570 */
1640
+EXTERN Tcl_Obj * Tcl_GetEncodingSearchPath(void);
1641
+/* 571 */
1642
+EXTERN int Tcl_SetEncodingSearchPath(Tcl_Obj *searchPath);
1643
+/* 572 */
1644
+EXTERN const char * Tcl_GetEncodingNameFromEnvironment(
1645
+ Tcl_DString *bufPtr);
1646
+/* 573 */
1647
+EXTERN int Tcl_PkgRequireProc(Tcl_Interp *interp,
1648
+ const char *name, int objc,
1649
+ Tcl_Obj *const objv[], void *clientDataPtr);
1650
+/* 574 */
1651
+EXTERN void Tcl_AppendObjToErrorInfo(Tcl_Interp *interp,
1652
+ Tcl_Obj *objPtr);
1653
+/* 575 */
1654
+EXTERN void Tcl_AppendLimitedToObj(Tcl_Obj *objPtr,
1655
+ const char *bytes, int length, int limit,
1656
+ const char *ellipsis);
1657
+/* 576 */
1658
+EXTERN Tcl_Obj * Tcl_Format(Tcl_Interp *interp, const char *format,
1659
+ int objc, Tcl_Obj *const objv[]);
1660
+/* 577 */
1661
+EXTERN int Tcl_AppendFormatToObj(Tcl_Interp *interp,
1662
+ Tcl_Obj *objPtr, const char *format,
1663
+ int objc, Tcl_Obj *const objv[]);
1664
+/* 578 */
1665
+EXTERN Tcl_Obj * Tcl_ObjPrintf(const char *format, ...) TCL_FORMAT_PRINTF(1, 2);
1666
+/* 579 */
1667
+EXTERN void Tcl_AppendPrintfToObj(Tcl_Obj *objPtr,
1668
+ const char *format, ...) TCL_FORMAT_PRINTF(2, 3);
1669
+/* 580 */
1670
+EXTERN int Tcl_CancelEval(Tcl_Interp *interp,
1671
+ Tcl_Obj *resultObjPtr, ClientData clientData,
1672
+ int flags);
1673
+/* 581 */
1674
+EXTERN int Tcl_Canceled(Tcl_Interp *interp, int flags);
1675
+/* 582 */
1676
+EXTERN int Tcl_CreatePipe(Tcl_Interp *interp,
1677
+ Tcl_Channel *rchan, Tcl_Channel *wchan,
1678
+ int flags);
1679
+/* 583 */
1680
+EXTERN Tcl_Command Tcl_NRCreateCommand(Tcl_Interp *interp,
1681
+ const char *cmdName, Tcl_ObjCmdProc *proc,
1682
+ Tcl_ObjCmdProc *nreProc,
1683
+ ClientData clientData,
1684
+ Tcl_CmdDeleteProc *deleteProc);
1685
+/* 584 */
1686
+EXTERN int Tcl_NREvalObj(Tcl_Interp *interp, Tcl_Obj *objPtr,
1687
+ int flags);
1688
+/* 585 */
1689
+EXTERN int Tcl_NREvalObjv(Tcl_Interp *interp, int objc,
1690
+ Tcl_Obj *const objv[], int flags);
1691
+/* 586 */
1692
+EXTERN int Tcl_NRCmdSwap(Tcl_Interp *interp, Tcl_Command cmd,
1693
+ int objc, Tcl_Obj *const objv[], int flags);
1694
+/* 587 */
1695
+EXTERN void Tcl_NRAddCallback(Tcl_Interp *interp,
1696
+ Tcl_NRPostProc *postProcPtr,
1697
+ ClientData data0, ClientData data1,
1698
+ ClientData data2, ClientData data3);
1699
+/* 588 */
1700
+EXTERN int Tcl_NRCallObjProc(Tcl_Interp *interp,
1701
+ Tcl_ObjCmdProc *objProc,
1702
+ ClientData clientData, int objc,
1703
+ Tcl_Obj *const objv[]);
1704
+/* 589 */
1705
+EXTERN unsigned Tcl_GetFSDeviceFromStat(const Tcl_StatBuf *statPtr);
1706
+/* 590 */
1707
+EXTERN unsigned Tcl_GetFSInodeFromStat(const Tcl_StatBuf *statPtr);
1708
+/* 591 */
1709
+EXTERN unsigned Tcl_GetModeFromStat(const Tcl_StatBuf *statPtr);
1710
+/* 592 */
1711
+EXTERN int Tcl_GetLinkCountFromStat(const Tcl_StatBuf *statPtr);
1712
+/* 593 */
1713
+EXTERN int Tcl_GetUserIdFromStat(const Tcl_StatBuf *statPtr);
1714
+/* 594 */
1715
+EXTERN int Tcl_GetGroupIdFromStat(const Tcl_StatBuf *statPtr);
1716
+/* 595 */
1717
+EXTERN int Tcl_GetDeviceTypeFromStat(const Tcl_StatBuf *statPtr);
1718
+/* 596 */
1719
+EXTERN Tcl_WideInt Tcl_GetAccessTimeFromStat(const Tcl_StatBuf *statPtr);
1720
+/* 597 */
1721
+EXTERN Tcl_WideInt Tcl_GetModificationTimeFromStat(
1722
+ const Tcl_StatBuf *statPtr);
1723
+/* 598 */
1724
+EXTERN Tcl_WideInt Tcl_GetChangeTimeFromStat(const Tcl_StatBuf *statPtr);
1725
+/* 599 */
1726
+EXTERN Tcl_WideUInt Tcl_GetSizeFromStat(const Tcl_StatBuf *statPtr);
1727
+/* 600 */
1728
+EXTERN Tcl_WideUInt Tcl_GetBlocksFromStat(const Tcl_StatBuf *statPtr);
1729
+/* 601 */
1730
+EXTERN unsigned Tcl_GetBlockSizeFromStat(const Tcl_StatBuf *statPtr);
1731
+/* 602 */
1732
+EXTERN int Tcl_SetEnsembleParameterList(Tcl_Interp *interp,
1733
+ Tcl_Command token, Tcl_Obj *paramList);
1734
+/* 603 */
1735
+EXTERN int Tcl_GetEnsembleParameterList(Tcl_Interp *interp,
1736
+ Tcl_Command token, Tcl_Obj **paramListPtr);
1737
+/* 604 */
1738
+EXTERN int Tcl_ParseArgsObjv(Tcl_Interp *interp,
1739
+ const Tcl_ArgvInfo *argTable, int *objcPtr,
1740
+ Tcl_Obj *const *objv, Tcl_Obj ***remObjv);
1741
+/* 605 */
1742
+EXTERN int Tcl_GetErrorLine(Tcl_Interp *interp);
1743
+/* 606 */
1744
+EXTERN void Tcl_SetErrorLine(Tcl_Interp *interp, int lineNum);
1745
+/* 607 */
1746
+EXTERN void Tcl_TransferResult(Tcl_Interp *sourceInterp,
1747
+ int result, Tcl_Interp *targetInterp);
1748
+/* 608 */
1749
+EXTERN int Tcl_InterpActive(Tcl_Interp *interp);
1750
+/* 609 */
1751
+EXTERN void Tcl_BackgroundException(Tcl_Interp *interp, int code);
1752
+/* 610 */
1753
+EXTERN int Tcl_ZlibDeflate(Tcl_Interp *interp, int format,
1754
+ Tcl_Obj *data, int level,
1755
+ Tcl_Obj *gzipHeaderDictObj);
1756
+/* 611 */
1757
+EXTERN int Tcl_ZlibInflate(Tcl_Interp *interp, int format,
1758
+ Tcl_Obj *data, int buffersize,
1759
+ Tcl_Obj *gzipHeaderDictObj);
1760
+/* 612 */
1761
+EXTERN unsigned int Tcl_ZlibCRC32(unsigned int crc,
1762
+ const unsigned char *buf, int len);
1763
+/* 613 */
1764
+EXTERN unsigned int Tcl_ZlibAdler32(unsigned int adler,
1765
+ const unsigned char *buf, int len);
1766
+/* 614 */
1767
+EXTERN int Tcl_ZlibStreamInit(Tcl_Interp *interp, int mode,
1768
+ int format, int level, Tcl_Obj *dictObj,
1769
+ Tcl_ZlibStream *zshandle);
1770
+/* 615 */
1771
+EXTERN Tcl_Obj * Tcl_ZlibStreamGetCommandName(Tcl_ZlibStream zshandle);
1772
+/* 616 */
1773
+EXTERN int Tcl_ZlibStreamEof(Tcl_ZlibStream zshandle);
1774
+/* 617 */
1775
+EXTERN int Tcl_ZlibStreamChecksum(Tcl_ZlibStream zshandle);
1776
+/* 618 */
1777
+EXTERN int Tcl_ZlibStreamPut(Tcl_ZlibStream zshandle,
1778
+ Tcl_Obj *data, int flush);
1779
+/* 619 */
1780
+EXTERN int Tcl_ZlibStreamGet(Tcl_ZlibStream zshandle,
1781
+ Tcl_Obj *data, int count);
1782
+/* 620 */
1783
+EXTERN int Tcl_ZlibStreamClose(Tcl_ZlibStream zshandle);
1784
+/* 621 */
1785
+EXTERN int Tcl_ZlibStreamReset(Tcl_ZlibStream zshandle);
1786
+/* 622 */
1787
+EXTERN void Tcl_SetStartupScript(Tcl_Obj *path,
1788
+ const char *encoding);
1789
+/* 623 */
1790
+EXTERN Tcl_Obj * Tcl_GetStartupScript(const char **encodingPtr);
1791
+/* 624 */
1792
+EXTERN int Tcl_CloseEx(Tcl_Interp *interp, Tcl_Channel chan,
1793
+ int flags);
1794
+/* 625 */
1795
+EXTERN int Tcl_NRExprObj(Tcl_Interp *interp, Tcl_Obj *objPtr,
1796
+ Tcl_Obj *resultPtr);
1797
+/* 626 */
1798
+EXTERN int Tcl_NRSubstObj(Tcl_Interp *interp, Tcl_Obj *objPtr,
1799
+ int flags);
1800
+/* 627 */
1801
+EXTERN int Tcl_LoadFile(Tcl_Interp *interp, Tcl_Obj *pathPtr,
1802
+ const char *const symv[], int flags,
1803
+ void *procPtrs, Tcl_LoadHandle *handlePtr);
1804
+/* 628 */
1805
+EXTERN void * Tcl_FindSymbol(Tcl_Interp *interp,
1806
+ Tcl_LoadHandle handle, const char *symbol);
1807
+/* 629 */
1808
+EXTERN int Tcl_FSUnloadFile(Tcl_Interp *interp,
1809
+ Tcl_LoadHandle handlePtr);
1810
+/* 630 */
1811
+EXTERN void Tcl_ZlibStreamSetCompressionDictionary(
1812
+ Tcl_ZlibStream zhandle,
1813
+ Tcl_Obj *compressionDictionaryObj);
1814
+
1815
+typedef struct {
1816
+ const struct TclPlatStubs *tclPlatStubs;
1817
+ const struct TclIntStubs *tclIntStubs;
1818
+ const struct TclIntPlatStubs *tclIntPlatStubs;
1819
+} TclStubHooks;
1820
+
1821
+typedef struct TclStubs {
1822
+ int magic;
1823
+ const TclStubHooks *hooks;
1824
+
1825
+ int (*tcl_PkgProvideEx) (Tcl_Interp *interp, const char *name, const char *version, const void *clientData); /* 0 */
1826
+ CONST84_RETURN char * (*tcl_PkgRequireEx) (Tcl_Interp *interp, const char *name, const char *version, int exact, void *clientDataPtr); /* 1 */
1827
+ void (*tcl_Panic) (const char *format, ...) TCL_FORMAT_PRINTF(1, 2); /* 2 */
1828
+ char * (*tcl_Alloc) (unsigned int size); /* 3 */
1829
+ void (*tcl_Free) (char *ptr); /* 4 */
1830
+ char * (*tcl_Realloc) (char *ptr, unsigned int size); /* 5 */
1831
+ char * (*tcl_DbCkalloc) (unsigned int size, const char *file, int line); /* 6 */
1832
+ void (*tcl_DbCkfree) (char *ptr, const char *file, int line); /* 7 */
1833
+ char * (*tcl_DbCkrealloc) (char *ptr, unsigned int size, const char *file, int line); /* 8 */
1834
+#if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
1835
+ void (*tcl_CreateFileHandler) (int fd, int mask, Tcl_FileProc *proc, ClientData clientData); /* 9 */
1836
+#endif /* UNIX */
1837
+#if defined(__WIN32__) /* WIN */
1838
+ void (*reserved9)(void);
1839
+#endif /* WIN */
1840
+#ifdef MAC_OSX_TCL /* MACOSX */
1841
+ void (*tcl_CreateFileHandler) (int fd, int mask, Tcl_FileProc *proc, ClientData clientData); /* 9 */
1842
+#endif /* MACOSX */
1843
+#if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
1844
+ void (*tcl_DeleteFileHandler) (int fd); /* 10 */
1845
+#endif /* UNIX */
1846
+#if defined(__WIN32__) /* WIN */
1847
+ void (*reserved10)(void);
1848
+#endif /* WIN */
1849
+#ifdef MAC_OSX_TCL /* MACOSX */
1850
+ void (*tcl_DeleteFileHandler) (int fd); /* 10 */
1851
+#endif /* MACOSX */
1852
+ void (*tcl_SetTimer) (const Tcl_Time *timePtr); /* 11 */
1853
+ void (*tcl_Sleep) (int ms); /* 12 */
1854
+ int (*tcl_WaitForEvent) (const Tcl_Time *timePtr); /* 13 */
1855
+ int (*tcl_AppendAllObjTypes) (Tcl_Interp *interp, Tcl_Obj *objPtr); /* 14 */
1856
+ void (*tcl_AppendStringsToObj) (Tcl_Obj *objPtr, ...); /* 15 */
1857
+ void (*tcl_AppendToObj) (Tcl_Obj *objPtr, const char *bytes, int length); /* 16 */
1858
+ Tcl_Obj * (*tcl_ConcatObj) (int objc, Tcl_Obj *const objv[]); /* 17 */
1859
+ int (*tcl_ConvertToType) (Tcl_Interp *interp, Tcl_Obj *objPtr, const Tcl_ObjType *typePtr); /* 18 */
1860
+ void (*tcl_DbDecrRefCount) (Tcl_Obj *objPtr, const char *file, int line); /* 19 */
1861
+ void (*tcl_DbIncrRefCount) (Tcl_Obj *objPtr, const char *file, int line); /* 20 */
1862
+ int (*tcl_DbIsShared) (Tcl_Obj *objPtr, const char *file, int line); /* 21 */
1863
+ Tcl_Obj * (*tcl_DbNewBooleanObj) (int boolValue, const char *file, int line); /* 22 */
1864
+ Tcl_Obj * (*tcl_DbNewByteArrayObj) (const unsigned char *bytes, int length, const char *file, int line); /* 23 */
1865
+ Tcl_Obj * (*tcl_DbNewDoubleObj) (double doubleValue, const char *file, int line); /* 24 */
1866
+ Tcl_Obj * (*tcl_DbNewListObj) (int objc, Tcl_Obj *const *objv, const char *file, int line); /* 25 */
1867
+ Tcl_Obj * (*tcl_DbNewLongObj) (long longValue, const char *file, int line); /* 26 */
1868
+ Tcl_Obj * (*tcl_DbNewObj) (const char *file, int line); /* 27 */
1869
+ Tcl_Obj * (*tcl_DbNewStringObj) (const char *bytes, int length, const char *file, int line); /* 28 */
1870
+ Tcl_Obj * (*tcl_DuplicateObj) (Tcl_Obj *objPtr); /* 29 */
1871
+ void (*tclFreeObj) (Tcl_Obj *objPtr); /* 30 */
1872
+ int (*tcl_GetBoolean) (Tcl_Interp *interp, const char *src, int *boolPtr); /* 31 */
1873
+ int (*tcl_GetBooleanFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int *boolPtr); /* 32 */
1874
+ unsigned char * (*tcl_GetByteArrayFromObj) (Tcl_Obj *objPtr, int *lengthPtr); /* 33 */
1875
+ int (*tcl_GetDouble) (Tcl_Interp *interp, const char *src, double *doublePtr); /* 34 */
1876
+ int (*tcl_GetDoubleFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, double *doublePtr); /* 35 */
1877
+ int (*tcl_GetIndexFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, CONST84 char *const *tablePtr, const char *msg, int flags, int *indexPtr); /* 36 */
1878
+ int (*tcl_GetInt) (Tcl_Interp *interp, const char *src, int *intPtr); /* 37 */
1879
+ int (*tcl_GetIntFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int *intPtr); /* 38 */
1880
+ int (*tcl_GetLongFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, long *longPtr); /* 39 */
1881
+ CONST86 Tcl_ObjType * (*tcl_GetObjType) (const char *typeName); /* 40 */
1882
+ char * (*tcl_GetStringFromObj) (Tcl_Obj *objPtr, int *lengthPtr); /* 41 */
1883
+ void (*tcl_InvalidateStringRep) (Tcl_Obj *objPtr); /* 42 */
1884
+ int (*tcl_ListObjAppendList) (Tcl_Interp *interp, Tcl_Obj *listPtr, Tcl_Obj *elemListPtr); /* 43 */
1885
+ int (*tcl_ListObjAppendElement) (Tcl_Interp *interp, Tcl_Obj *listPtr, Tcl_Obj *objPtr); /* 44 */
1886
+ int (*tcl_ListObjGetElements) (Tcl_Interp *interp, Tcl_Obj *listPtr, int *objcPtr, Tcl_Obj ***objvPtr); /* 45 */
1887
+ int (*tcl_ListObjIndex) (Tcl_Interp *interp, Tcl_Obj *listPtr, int index, Tcl_Obj **objPtrPtr); /* 46 */
1888
+ int (*tcl_ListObjLength) (Tcl_Interp *interp, Tcl_Obj *listPtr, int *lengthPtr); /* 47 */
1889
+ int (*tcl_ListObjReplace) (Tcl_Interp *interp, Tcl_Obj *listPtr, int first, int count, int objc, Tcl_Obj *const objv[]); /* 48 */
1890
+ Tcl_Obj * (*tcl_NewBooleanObj) (int boolValue); /* 49 */
1891
+ Tcl_Obj * (*tcl_NewByteArrayObj) (const unsigned char *bytes, int length); /* 50 */
1892
+ Tcl_Obj * (*tcl_NewDoubleObj) (double doubleValue); /* 51 */
1893
+ Tcl_Obj * (*tcl_NewIntObj) (int intValue); /* 52 */
1894
+ Tcl_Obj * (*tcl_NewListObj) (int objc, Tcl_Obj *const objv[]); /* 53 */
1895
+ Tcl_Obj * (*tcl_NewLongObj) (long longValue); /* 54 */
1896
+ Tcl_Obj * (*tcl_NewObj) (void); /* 55 */
1897
+ Tcl_Obj * (*tcl_NewStringObj) (const char *bytes, int length); /* 56 */
1898
+ void (*tcl_SetBooleanObj) (Tcl_Obj *objPtr, int boolValue); /* 57 */
1899
+ unsigned char * (*tcl_SetByteArrayLength) (Tcl_Obj *objPtr, int length); /* 58 */
1900
+ void (*tcl_SetByteArrayObj) (Tcl_Obj *objPtr, const unsigned char *bytes, int length); /* 59 */
1901
+ void (*tcl_SetDoubleObj) (Tcl_Obj *objPtr, double doubleValue); /* 60 */
1902
+ void (*tcl_SetIntObj) (Tcl_Obj *objPtr, int intValue); /* 61 */
1903
+ void (*tcl_SetListObj) (Tcl_Obj *objPtr, int objc, Tcl_Obj *const objv[]); /* 62 */
1904
+ void (*tcl_SetLongObj) (Tcl_Obj *objPtr, long longValue); /* 63 */
1905
+ void (*tcl_SetObjLength) (Tcl_Obj *objPtr, int length); /* 64 */
1906
+ void (*tcl_SetStringObj) (Tcl_Obj *objPtr, const char *bytes, int length); /* 65 */
1907
+ void (*tcl_AddErrorInfo) (Tcl_Interp *interp, const char *message); /* 66 */
1908
+ void (*tcl_AddObjErrorInfo) (Tcl_Interp *interp, const char *message, int length); /* 67 */
1909
+ void (*tcl_AllowExceptions) (Tcl_Interp *interp); /* 68 */
1910
+ void (*tcl_AppendElement) (Tcl_Interp *interp, const char *element); /* 69 */
1911
+ void (*tcl_AppendResult) (Tcl_Interp *interp, ...); /* 70 */
1912
+ Tcl_AsyncHandler (*tcl_AsyncCreate) (Tcl_AsyncProc *proc, ClientData clientData); /* 71 */
1913
+ void (*tcl_AsyncDelete) (Tcl_AsyncHandler async); /* 72 */
1914
+ int (*tcl_AsyncInvoke) (Tcl_Interp *interp, int code); /* 73 */
1915
+ void (*tcl_AsyncMark) (Tcl_AsyncHandler async); /* 74 */
1916
+ int (*tcl_AsyncReady) (void); /* 75 */
1917
+ void (*tcl_BackgroundError) (Tcl_Interp *interp); /* 76 */
1918
+ char (*tcl_Backslash) (const char *src, int *readPtr); /* 77 */
1919
+ int (*tcl_BadChannelOption) (Tcl_Interp *interp, const char *optionName, const char *optionList); /* 78 */
1920
+ void (*tcl_CallWhenDeleted) (Tcl_Interp *interp, Tcl_InterpDeleteProc *proc, ClientData clientData); /* 79 */
1921
+ void (*tcl_CancelIdleCall) (Tcl_IdleProc *idleProc, ClientData clientData); /* 80 */
1922
+ int (*tcl_Close) (Tcl_Interp *interp, Tcl_Channel chan); /* 81 */
1923
+ int (*tcl_CommandComplete) (const char *cmd); /* 82 */
1924
+ char * (*tcl_Concat) (int argc, CONST84 char *const *argv); /* 83 */
1925
+ int (*tcl_ConvertElement) (const char *src, char *dst, int flags); /* 84 */
1926
+ int (*tcl_ConvertCountedElement) (const char *src, int length, char *dst, int flags); /* 85 */
1927
+ int (*tcl_CreateAlias) (Tcl_Interp *slave, const char *slaveCmd, Tcl_Interp *target, const char *targetCmd, int argc, CONST84 char *const *argv); /* 86 */
1928
+ int (*tcl_CreateAliasObj) (Tcl_Interp *slave, const char *slaveCmd, Tcl_Interp *target, const char *targetCmd, int objc, Tcl_Obj *const objv[]); /* 87 */
1929
+ Tcl_Channel (*tcl_CreateChannel) (const Tcl_ChannelType *typePtr, const char *chanName, ClientData instanceData, int mask); /* 88 */
1930
+ void (*tcl_CreateChannelHandler) (Tcl_Channel chan, int mask, Tcl_ChannelProc *proc, ClientData clientData); /* 89 */
1931
+ void (*tcl_CreateCloseHandler) (Tcl_Channel chan, Tcl_CloseProc *proc, ClientData clientData); /* 90 */
1932
+ Tcl_Command (*tcl_CreateCommand) (Tcl_Interp *interp, const char *cmdName, Tcl_CmdProc *proc, ClientData clientData, Tcl_CmdDeleteProc *deleteProc); /* 91 */
1933
+ void (*tcl_CreateEventSource) (Tcl_EventSetupProc *setupProc, Tcl_EventCheckProc *checkProc, ClientData clientData); /* 92 */
1934
+ void (*tcl_CreateExitHandler) (Tcl_ExitProc *proc, ClientData clientData); /* 93 */
1935
+ Tcl_Interp * (*tcl_CreateInterp) (void); /* 94 */
1936
+ void (*tcl_CreateMathFunc) (Tcl_Interp *interp, const char *name, int numArgs, Tcl_ValueType *argTypes, Tcl_MathProc *proc, ClientData clientData); /* 95 */
1937
+ Tcl_Command (*tcl_CreateObjCommand) (Tcl_Interp *interp, const char *cmdName, Tcl_ObjCmdProc *proc, ClientData clientData, Tcl_CmdDeleteProc *deleteProc); /* 96 */
1938
+ Tcl_Interp * (*tcl_CreateSlave) (Tcl_Interp *interp, const char *slaveName, int isSafe); /* 97 */
1939
+ Tcl_TimerToken (*tcl_CreateTimerHandler) (int milliseconds, Tcl_TimerProc *proc, ClientData clientData); /* 98 */
1940
+ Tcl_Trace (*tcl_CreateTrace) (Tcl_Interp *interp, int level, Tcl_CmdTraceProc *proc, ClientData clientData); /* 99 */
1941
+ void (*tcl_DeleteAssocData) (Tcl_Interp *interp, const char *name); /* 100 */
1942
+ void (*tcl_DeleteChannelHandler) (Tcl_Channel chan, Tcl_ChannelProc *proc, ClientData clientData); /* 101 */
1943
+ void (*tcl_DeleteCloseHandler) (Tcl_Channel chan, Tcl_CloseProc *proc, ClientData clientData); /* 102 */
1944
+ int (*tcl_DeleteCommand) (Tcl_Interp *interp, const char *cmdName); /* 103 */
1945
+ int (*tcl_DeleteCommandFromToken) (Tcl_Interp *interp, Tcl_Command command); /* 104 */
1946
+ void (*tcl_DeleteEvents) (Tcl_EventDeleteProc *proc, ClientData clientData); /* 105 */
1947
+ void (*tcl_DeleteEventSource) (Tcl_EventSetupProc *setupProc, Tcl_EventCheckProc *checkProc, ClientData clientData); /* 106 */
1948
+ void (*tcl_DeleteExitHandler) (Tcl_ExitProc *proc, ClientData clientData); /* 107 */
1949
+ void (*tcl_DeleteHashEntry) (Tcl_HashEntry *entryPtr); /* 108 */
1950
+ void (*tcl_DeleteHashTable) (Tcl_HashTable *tablePtr); /* 109 */
1951
+ void (*tcl_DeleteInterp) (Tcl_Interp *interp); /* 110 */
1952
+ void (*tcl_DetachPids) (int numPids, Tcl_Pid *pidPtr); /* 111 */
1953
+ void (*tcl_DeleteTimerHandler) (Tcl_TimerToken token); /* 112 */
1954
+ void (*tcl_DeleteTrace) (Tcl_Interp *interp, Tcl_Trace trace); /* 113 */
1955
+ void (*tcl_DontCallWhenDeleted) (Tcl_Interp *interp, Tcl_InterpDeleteProc *proc, ClientData clientData); /* 114 */
1956
+ int (*tcl_DoOneEvent) (int flags); /* 115 */
1957
+ void (*tcl_DoWhenIdle) (Tcl_IdleProc *proc, ClientData clientData); /* 116 */
1958
+ char * (*tcl_DStringAppend) (Tcl_DString *dsPtr, const char *bytes, int length); /* 117 */
1959
+ char * (*tcl_DStringAppendElement) (Tcl_DString *dsPtr, const char *element); /* 118 */
1960
+ void (*tcl_DStringEndSublist) (Tcl_DString *dsPtr); /* 119 */
1961
+ void (*tcl_DStringFree) (Tcl_DString *dsPtr); /* 120 */
1962
+ void (*tcl_DStringGetResult) (Tcl_Interp *interp, Tcl_DString *dsPtr); /* 121 */
1963
+ void (*tcl_DStringInit) (Tcl_DString *dsPtr); /* 122 */
1964
+ void (*tcl_DStringResult) (Tcl_Interp *interp, Tcl_DString *dsPtr); /* 123 */
1965
+ void (*tcl_DStringSetLength) (Tcl_DString *dsPtr, int length); /* 124 */
1966
+ void (*tcl_DStringStartSublist) (Tcl_DString *dsPtr); /* 125 */
1967
+ int (*tcl_Eof) (Tcl_Channel chan); /* 126 */
1968
+ CONST84_RETURN char * (*tcl_ErrnoId) (void); /* 127 */
1969
+ CONST84_RETURN char * (*tcl_ErrnoMsg) (int err); /* 128 */
1970
+ int (*tcl_Eval) (Tcl_Interp *interp, const char *script); /* 129 */
1971
+ int (*tcl_EvalFile) (Tcl_Interp *interp, const char *fileName); /* 130 */
1972
+ int (*tcl_EvalObj) (Tcl_Interp *interp, Tcl_Obj *objPtr); /* 131 */
1973
+ void (*tcl_EventuallyFree) (ClientData clientData, Tcl_FreeProc *freeProc); /* 132 */
1974
+ void (*tcl_Exit) (int status); /* 133 */
1975
+ int (*tcl_ExposeCommand) (Tcl_Interp *interp, const char *hiddenCmdToken, const char *cmdName); /* 134 */
1976
+ int (*tcl_ExprBoolean) (Tcl_Interp *interp, const char *expr, int *ptr); /* 135 */
1977
+ int (*tcl_ExprBooleanObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int *ptr); /* 136 */
1978
+ int (*tcl_ExprDouble) (Tcl_Interp *interp, const char *expr, double *ptr); /* 137 */
1979
+ int (*tcl_ExprDoubleObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, double *ptr); /* 138 */
1980
+ int (*tcl_ExprLong) (Tcl_Interp *interp, const char *expr, long *ptr); /* 139 */
1981
+ int (*tcl_ExprLongObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, long *ptr); /* 140 */
1982
+ int (*tcl_ExprObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_Obj **resultPtrPtr); /* 141 */
1983
+ int (*tcl_ExprString) (Tcl_Interp *interp, const char *expr); /* 142 */
1984
+ void (*tcl_Finalize) (void); /* 143 */
1985
+ void (*tcl_FindExecutable) (const char *argv0); /* 144 */
1986
+ Tcl_HashEntry * (*tcl_FirstHashEntry) (Tcl_HashTable *tablePtr, Tcl_HashSearch *searchPtr); /* 145 */
1987
+ int (*tcl_Flush) (Tcl_Channel chan); /* 146 */
1988
+ void (*tcl_FreeResult) (Tcl_Interp *interp); /* 147 */
1989
+ int (*tcl_GetAlias) (Tcl_Interp *interp, const char *slaveCmd, Tcl_Interp **targetInterpPtr, CONST84 char **targetCmdPtr, int *argcPtr, CONST84 char ***argvPtr); /* 148 */
1990
+ int (*tcl_GetAliasObj) (Tcl_Interp *interp, const char *slaveCmd, Tcl_Interp **targetInterpPtr, CONST84 char **targetCmdPtr, int *objcPtr, Tcl_Obj ***objv); /* 149 */
1991
+ ClientData (*tcl_GetAssocData) (Tcl_Interp *interp, const char *name, Tcl_InterpDeleteProc **procPtr); /* 150 */
1992
+ Tcl_Channel (*tcl_GetChannel) (Tcl_Interp *interp, const char *chanName, int *modePtr); /* 151 */
1993
+ int (*tcl_GetChannelBufferSize) (Tcl_Channel chan); /* 152 */
1994
+ int (*tcl_GetChannelHandle) (Tcl_Channel chan, int direction, ClientData *handlePtr); /* 153 */
1995
+ ClientData (*tcl_GetChannelInstanceData) (Tcl_Channel chan); /* 154 */
1996
+ int (*tcl_GetChannelMode) (Tcl_Channel chan); /* 155 */
1997
+ CONST84_RETURN char * (*tcl_GetChannelName) (Tcl_Channel chan); /* 156 */
1998
+ int (*tcl_GetChannelOption) (Tcl_Interp *interp, Tcl_Channel chan, const char *optionName, Tcl_DString *dsPtr); /* 157 */
1999
+ CONST86 Tcl_ChannelType * (*tcl_GetChannelType) (Tcl_Channel chan); /* 158 */
2000
+ int (*tcl_GetCommandInfo) (Tcl_Interp *interp, const char *cmdName, Tcl_CmdInfo *infoPtr); /* 159 */
2001
+ CONST84_RETURN char * (*tcl_GetCommandName) (Tcl_Interp *interp, Tcl_Command command); /* 160 */
2002
+ int (*tcl_GetErrno) (void); /* 161 */
2003
+ CONST84_RETURN char * (*tcl_GetHostName) (void); /* 162 */
2004
+ int (*tcl_GetInterpPath) (Tcl_Interp *askInterp, Tcl_Interp *slaveInterp); /* 163 */
2005
+ Tcl_Interp * (*tcl_GetMaster) (Tcl_Interp *interp); /* 164 */
2006
+ const char * (*tcl_GetNameOfExecutable) (void); /* 165 */
2007
+ Tcl_Obj * (*tcl_GetObjResult) (Tcl_Interp *interp); /* 166 */
2008
+#if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
2009
+ int (*tcl_GetOpenFile) (Tcl_Interp *interp, const char *chanID, int forWriting, int checkUsage, ClientData *filePtr); /* 167 */
2010
+#endif /* UNIX */
2011
+#if defined(__WIN32__) /* WIN */
2012
+ void (*reserved167)(void);
2013
+#endif /* WIN */
2014
+#ifdef MAC_OSX_TCL /* MACOSX */
2015
+ int (*tcl_GetOpenFile) (Tcl_Interp *interp, const char *chanID, int forWriting, int checkUsage, ClientData *filePtr); /* 167 */
2016
+#endif /* MACOSX */
2017
+ Tcl_PathType (*tcl_GetPathType) (const char *path); /* 168 */
2018
+ int (*tcl_Gets) (Tcl_Channel chan, Tcl_DString *dsPtr); /* 169 */
2019
+ int (*tcl_GetsObj) (Tcl_Channel chan, Tcl_Obj *objPtr); /* 170 */
2020
+ int (*tcl_GetServiceMode) (void); /* 171 */
2021
+ Tcl_Interp * (*tcl_GetSlave) (Tcl_Interp *interp, const char *slaveName); /* 172 */
2022
+ Tcl_Channel (*tcl_GetStdChannel) (int type); /* 173 */
2023
+ CONST84_RETURN char * (*tcl_GetStringResult) (Tcl_Interp *interp); /* 174 */
2024
+ CONST84_RETURN char * (*tcl_GetVar) (Tcl_Interp *interp, const char *varName, int flags); /* 175 */
2025
+ CONST84_RETURN char * (*tcl_GetVar2) (Tcl_Interp *interp, const char *part1, const char *part2, int flags); /* 176 */
2026
+ int (*tcl_GlobalEval) (Tcl_Interp *interp, const char *command); /* 177 */
2027
+ int (*tcl_GlobalEvalObj) (Tcl_Interp *interp, Tcl_Obj *objPtr); /* 178 */
2028
+ int (*tcl_HideCommand) (Tcl_Interp *interp, const char *cmdName, const char *hiddenCmdToken); /* 179 */
2029
+ int (*tcl_Init) (Tcl_Interp *interp); /* 180 */
2030
+ void (*tcl_InitHashTable) (Tcl_HashTable *tablePtr, int keyType); /* 181 */
2031
+ int (*tcl_InputBlocked) (Tcl_Channel chan); /* 182 */
2032
+ int (*tcl_InputBuffered) (Tcl_Channel chan); /* 183 */
2033
+ int (*tcl_InterpDeleted) (Tcl_Interp *interp); /* 184 */
2034
+ int (*tcl_IsSafe) (Tcl_Interp *interp); /* 185 */
2035
+ char * (*tcl_JoinPath) (int argc, CONST84 char *const *argv, Tcl_DString *resultPtr); /* 186 */
2036
+ int (*tcl_LinkVar) (Tcl_Interp *interp, const char *varName, char *addr, int type); /* 187 */
2037
+ void (*reserved188)(void);
2038
+ Tcl_Channel (*tcl_MakeFileChannel) (ClientData handle, int mode); /* 189 */
2039
+ int (*tcl_MakeSafe) (Tcl_Interp *interp); /* 190 */
2040
+ Tcl_Channel (*tcl_MakeTcpClientChannel) (ClientData tcpSocket); /* 191 */
2041
+ char * (*tcl_Merge) (int argc, CONST84 char *const *argv); /* 192 */
2042
+ Tcl_HashEntry * (*tcl_NextHashEntry) (Tcl_HashSearch *searchPtr); /* 193 */
2043
+ void (*tcl_NotifyChannel) (Tcl_Channel channel, int mask); /* 194 */
2044
+ Tcl_Obj * (*tcl_ObjGetVar2) (Tcl_Interp *interp, Tcl_Obj *part1Ptr, Tcl_Obj *part2Ptr, int flags); /* 195 */
2045
+ Tcl_Obj * (*tcl_ObjSetVar2) (Tcl_Interp *interp, Tcl_Obj *part1Ptr, Tcl_Obj *part2Ptr, Tcl_Obj *newValuePtr, int flags); /* 196 */
2046
+ Tcl_Channel (*tcl_OpenCommandChannel) (Tcl_Interp *interp, int argc, CONST84 char **argv, int flags); /* 197 */
2047
+ Tcl_Channel (*tcl_OpenFileChannel) (Tcl_Interp *interp, const char *fileName, const char *modeString, int permissions); /* 198 */
2048
+ Tcl_Channel (*tcl_OpenTcpClient) (Tcl_Interp *interp, int port, const char *address, const char *myaddr, int myport, int async); /* 199 */
2049
+ Tcl_Channel (*tcl_OpenTcpServer) (Tcl_Interp *interp, int port, const char *host, Tcl_TcpAcceptProc *acceptProc, ClientData callbackData); /* 200 */
2050
+ void (*tcl_Preserve) (ClientData data); /* 201 */
2051
+ void (*tcl_PrintDouble) (Tcl_Interp *interp, double value, char *dst); /* 202 */
2052
+ int (*tcl_PutEnv) (const char *assignment); /* 203 */
2053
+ CONST84_RETURN char * (*tcl_PosixError) (Tcl_Interp *interp); /* 204 */
2054
+ void (*tcl_QueueEvent) (Tcl_Event *evPtr, Tcl_QueuePosition position); /* 205 */
2055
+ int (*tcl_Read) (Tcl_Channel chan, char *bufPtr, int toRead); /* 206 */
2056
+ void (*tcl_ReapDetachedProcs) (void); /* 207 */
2057
+ int (*tcl_RecordAndEval) (Tcl_Interp *interp, const char *cmd, int flags); /* 208 */
2058
+ int (*tcl_RecordAndEvalObj) (Tcl_Interp *interp, Tcl_Obj *cmdPtr, int flags); /* 209 */
2059
+ void (*tcl_RegisterChannel) (Tcl_Interp *interp, Tcl_Channel chan); /* 210 */
2060
+ void (*tcl_RegisterObjType) (const Tcl_ObjType *typePtr); /* 211 */
2061
+ Tcl_RegExp (*tcl_RegExpCompile) (Tcl_Interp *interp, const char *pattern); /* 212 */
2062
+ int (*tcl_RegExpExec) (Tcl_Interp *interp, Tcl_RegExp regexp, const char *text, const char *start); /* 213 */
2063
+ int (*tcl_RegExpMatch) (Tcl_Interp *interp, const char *text, const char *pattern); /* 214 */
2064
+ void (*tcl_RegExpRange) (Tcl_RegExp regexp, int index, CONST84 char **startPtr, CONST84 char **endPtr); /* 215 */
2065
+ void (*tcl_Release) (ClientData clientData); /* 216 */
2066
+ void (*tcl_ResetResult) (Tcl_Interp *interp); /* 217 */
2067
+ int (*tcl_ScanElement) (const char *src, int *flagPtr); /* 218 */
2068
+ int (*tcl_ScanCountedElement) (const char *src, int length, int *flagPtr); /* 219 */
2069
+ int (*tcl_SeekOld) (Tcl_Channel chan, int offset, int mode); /* 220 */
2070
+ int (*tcl_ServiceAll) (void); /* 221 */
2071
+ int (*tcl_ServiceEvent) (int flags); /* 222 */
2072
+ void (*tcl_SetAssocData) (Tcl_Interp *interp, const char *name, Tcl_InterpDeleteProc *proc, ClientData clientData); /* 223 */
2073
+ void (*tcl_SetChannelBufferSize) (Tcl_Channel chan, int sz); /* 224 */
2074
+ int (*tcl_SetChannelOption) (Tcl_Interp *interp, Tcl_Channel chan, const char *optionName, const char *newValue); /* 225 */
2075
+ int (*tcl_SetCommandInfo) (Tcl_Interp *interp, const char *cmdName, const Tcl_CmdInfo *infoPtr); /* 226 */
2076
+ void (*tcl_SetErrno) (int err); /* 227 */
2077
+ void (*tcl_SetErrorCode) (Tcl_Interp *interp, ...); /* 228 */
2078
+ void (*tcl_SetMaxBlockTime) (const Tcl_Time *timePtr); /* 229 */
2079
+ void (*tcl_SetPanicProc) (Tcl_PanicProc *panicProc); /* 230 */
2080
+ int (*tcl_SetRecursionLimit) (Tcl_Interp *interp, int depth); /* 231 */
2081
+ void (*tcl_SetResult) (Tcl_Interp *interp, char *result, Tcl_FreeProc *freeProc); /* 232 */
2082
+ int (*tcl_SetServiceMode) (int mode); /* 233 */
2083
+ void (*tcl_SetObjErrorCode) (Tcl_Interp *interp, Tcl_Obj *errorObjPtr); /* 234 */
2084
+ void (*tcl_SetObjResult) (Tcl_Interp *interp, Tcl_Obj *resultObjPtr); /* 235 */
2085
+ void (*tcl_SetStdChannel) (Tcl_Channel channel, int type); /* 236 */
2086
+ CONST84_RETURN char * (*tcl_SetVar) (Tcl_Interp *interp, const char *varName, const char *newValue, int flags); /* 237 */
2087
+ CONST84_RETURN char * (*tcl_SetVar2) (Tcl_Interp *interp, const char *part1, const char *part2, const char *newValue, int flags); /* 238 */
2088
+ CONST84_RETURN char * (*tcl_SignalId) (int sig); /* 239 */
2089
+ CONST84_RETURN char * (*tcl_SignalMsg) (int sig); /* 240 */
2090
+ void (*tcl_SourceRCFile) (Tcl_Interp *interp); /* 241 */
2091
+ int (*tcl_SplitList) (Tcl_Interp *interp, const char *listStr, int *argcPtr, CONST84 char ***argvPtr); /* 242 */
2092
+ void (*tcl_SplitPath) (const char *path, int *argcPtr, CONST84 char ***argvPtr); /* 243 */
2093
+ void (*tcl_StaticPackage) (Tcl_Interp *interp, const char *pkgName, Tcl_PackageInitProc *initProc, Tcl_PackageInitProc *safeInitProc); /* 244 */
2094
+ int (*tcl_StringMatch) (const char *str, const char *pattern); /* 245 */
2095
+ int (*tcl_TellOld) (Tcl_Channel chan); /* 246 */
2096
+ int (*tcl_TraceVar) (Tcl_Interp *interp, const char *varName, int flags, Tcl_VarTraceProc *proc, ClientData clientData); /* 247 */
2097
+ int (*tcl_TraceVar2) (Tcl_Interp *interp, const char *part1, const char *part2, int flags, Tcl_VarTraceProc *proc, ClientData clientData); /* 248 */
2098
+ char * (*tcl_TranslateFileName) (Tcl_Interp *interp, const char *name, Tcl_DString *bufferPtr); /* 249 */
2099
+ int (*tcl_Ungets) (Tcl_Channel chan, const char *str, int len, int atHead); /* 250 */
2100
+ void (*tcl_UnlinkVar) (Tcl_Interp *interp, const char *varName); /* 251 */
2101
+ int (*tcl_UnregisterChannel) (Tcl_Interp *interp, Tcl_Channel chan); /* 252 */
2102
+ int (*tcl_UnsetVar) (Tcl_Interp *interp, const char *varName, int flags); /* 253 */
2103
+ int (*tcl_UnsetVar2) (Tcl_Interp *interp, const char *part1, const char *part2, int flags); /* 254 */
2104
+ void (*tcl_UntraceVar) (Tcl_Interp *interp, const char *varName, int flags, Tcl_VarTraceProc *proc, ClientData clientData); /* 255 */
2105
+ void (*tcl_UntraceVar2) (Tcl_Interp *interp, const char *part1, const char *part2, int flags, Tcl_VarTraceProc *proc, ClientData clientData); /* 256 */
2106
+ void (*tcl_UpdateLinkedVar) (Tcl_Interp *interp, const char *varName); /* 257 */
2107
+ int (*tcl_UpVar) (Tcl_Interp *interp, const char *frameName, const char *varName, const char *localName, int flags); /* 258 */
2108
+ int (*tcl_UpVar2) (Tcl_Interp *interp, const char *frameName, const char *part1, const char *part2, const char *localName, int flags); /* 259 */
2109
+ int (*tcl_VarEval) (Tcl_Interp *interp, ...); /* 260 */
2110
+ ClientData (*tcl_VarTraceInfo) (Tcl_Interp *interp, const char *varName, int flags, Tcl_VarTraceProc *procPtr, ClientData prevClientData); /* 261 */
2111
+ ClientData (*tcl_VarTraceInfo2) (Tcl_Interp *interp, const char *part1, const char *part2, int flags, Tcl_VarTraceProc *procPtr, ClientData prevClientData); /* 262 */
2112
+ int (*tcl_Write) (Tcl_Channel chan, const char *s, int slen); /* 263 */
2113
+ void (*tcl_WrongNumArgs) (Tcl_Interp *interp, int objc, Tcl_Obj *const objv[], const char *message); /* 264 */
2114
+ int (*tcl_DumpActiveMemory) (const char *fileName); /* 265 */
2115
+ void (*tcl_ValidateAllMemory) (const char *file, int line); /* 266 */
2116
+ void (*tcl_AppendResultVA) (Tcl_Interp *interp, va_list argList); /* 267 */
2117
+ void (*tcl_AppendStringsToObjVA) (Tcl_Obj *objPtr, va_list argList); /* 268 */
2118
+ char * (*tcl_HashStats) (Tcl_HashTable *tablePtr); /* 269 */
2119
+ CONST84_RETURN char * (*tcl_ParseVar) (Tcl_Interp *interp, const char *start, CONST84 char **termPtr); /* 270 */
2120
+ CONST84_RETURN char * (*tcl_PkgPresent) (Tcl_Interp *interp, const char *name, const char *version, int exact); /* 271 */
2121
+ CONST84_RETURN char * (*tcl_PkgPresentEx) (Tcl_Interp *interp, const char *name, const char *version, int exact, void *clientDataPtr); /* 272 */
2122
+ int (*tcl_PkgProvide) (Tcl_Interp *interp, const char *name, const char *version); /* 273 */
2123
+ CONST84_RETURN char * (*tcl_PkgRequire) (Tcl_Interp *interp, const char *name, const char *version, int exact); /* 274 */
2124
+ void (*tcl_SetErrorCodeVA) (Tcl_Interp *interp, va_list argList); /* 275 */
2125
+ int (*tcl_VarEvalVA) (Tcl_Interp *interp, va_list argList); /* 276 */
2126
+ Tcl_Pid (*tcl_WaitPid) (Tcl_Pid pid, int *statPtr, int options); /* 277 */
2127
+ void (*tcl_PanicVA) (const char *format, va_list argList); /* 278 */
2128
+ void (*tcl_GetVersion) (int *major, int *minor, int *patchLevel, int *type); /* 279 */
2129
+ void (*tcl_InitMemory) (Tcl_Interp *interp); /* 280 */
2130
+ Tcl_Channel (*tcl_StackChannel) (Tcl_Interp *interp, const Tcl_ChannelType *typePtr, ClientData instanceData, int mask, Tcl_Channel prevChan); /* 281 */
2131
+ int (*tcl_UnstackChannel) (Tcl_Interp *interp, Tcl_Channel chan); /* 282 */
2132
+ Tcl_Channel (*tcl_GetStackedChannel) (Tcl_Channel chan); /* 283 */
2133
+ void (*tcl_SetMainLoop) (Tcl_MainLoopProc *proc); /* 284 */
2134
+ void (*reserved285)(void);
2135
+ void (*tcl_AppendObjToObj) (Tcl_Obj *objPtr, Tcl_Obj *appendObjPtr); /* 286 */
2136
+ Tcl_Encoding (*tcl_CreateEncoding) (const Tcl_EncodingType *typePtr); /* 287 */
2137
+ void (*tcl_CreateThreadExitHandler) (Tcl_ExitProc *proc, ClientData clientData); /* 288 */
2138
+ void (*tcl_DeleteThreadExitHandler) (Tcl_ExitProc *proc, ClientData clientData); /* 289 */
2139
+ void (*tcl_DiscardResult) (Tcl_SavedResult *statePtr); /* 290 */
2140
+ int (*tcl_EvalEx) (Tcl_Interp *interp, const char *script, int numBytes, int flags); /* 291 */
2141
+ int (*tcl_EvalObjv) (Tcl_Interp *interp, int objc, Tcl_Obj *const objv[], int flags); /* 292 */
2142
+ int (*tcl_EvalObjEx) (Tcl_Interp *interp, Tcl_Obj *objPtr, int flags); /* 293 */
2143
+ void (*tcl_ExitThread) (int status); /* 294 */
2144
+ int (*tcl_ExternalToUtf) (Tcl_Interp *interp, Tcl_Encoding encoding, const char *src, int srcLen, int flags, Tcl_EncodingState *statePtr, char *dst, int dstLen, int *srcReadPtr, int *dstWrotePtr, int *dstCharsPtr); /* 295 */
2145
+ char * (*tcl_ExternalToUtfDString) (Tcl_Encoding encoding, const char *src, int srcLen, Tcl_DString *dsPtr); /* 296 */
2146
+ void (*tcl_FinalizeThread) (void); /* 297 */
2147
+ void (*tcl_FinalizeNotifier) (ClientData clientData); /* 298 */
2148
+ void (*tcl_FreeEncoding) (Tcl_Encoding encoding); /* 299 */
2149
+ Tcl_ThreadId (*tcl_GetCurrentThread) (void); /* 300 */
2150
+ Tcl_Encoding (*tcl_GetEncoding) (Tcl_Interp *interp, const char *name); /* 301 */
2151
+ CONST84_RETURN char * (*tcl_GetEncodingName) (Tcl_Encoding encoding); /* 302 */
2152
+ void (*tcl_GetEncodingNames) (Tcl_Interp *interp); /* 303 */
2153
+ int (*tcl_GetIndexFromObjStruct) (Tcl_Interp *interp, Tcl_Obj *objPtr, const void *tablePtr, int offset, const char *msg, int flags, int *indexPtr); /* 304 */
2154
+ void * (*tcl_GetThreadData) (Tcl_ThreadDataKey *keyPtr, int size); /* 305 */
2155
+ Tcl_Obj * (*tcl_GetVar2Ex) (Tcl_Interp *interp, const char *part1, const char *part2, int flags); /* 306 */
2156
+ ClientData (*tcl_InitNotifier) (void); /* 307 */
2157
+ void (*tcl_MutexLock) (Tcl_Mutex *mutexPtr); /* 308 */
2158
+ void (*tcl_MutexUnlock) (Tcl_Mutex *mutexPtr); /* 309 */
2159
+ void (*tcl_ConditionNotify) (Tcl_Condition *condPtr); /* 310 */
2160
+ void (*tcl_ConditionWait) (Tcl_Condition *condPtr, Tcl_Mutex *mutexPtr, const Tcl_Time *timePtr); /* 311 */
2161
+ int (*tcl_NumUtfChars) (const char *src, int length); /* 312 */
2162
+ int (*tcl_ReadChars) (Tcl_Channel channel, Tcl_Obj *objPtr, int charsToRead, int appendFlag); /* 313 */
2163
+ void (*tcl_RestoreResult) (Tcl_Interp *interp, Tcl_SavedResult *statePtr); /* 314 */
2164
+ void (*tcl_SaveResult) (Tcl_Interp *interp, Tcl_SavedResult *statePtr); /* 315 */
2165
+ int (*tcl_SetSystemEncoding) (Tcl_Interp *interp, const char *name); /* 316 */
2166
+ Tcl_Obj * (*tcl_SetVar2Ex) (Tcl_Interp *interp, const char *part1, const char *part2, Tcl_Obj *newValuePtr, int flags); /* 317 */
2167
+ void (*tcl_ThreadAlert) (Tcl_ThreadId threadId); /* 318 */
2168
+ void (*tcl_ThreadQueueEvent) (Tcl_ThreadId threadId, Tcl_Event *evPtr, Tcl_QueuePosition position); /* 319 */
2169
+ Tcl_UniChar (*tcl_UniCharAtIndex) (const char *src, int index); /* 320 */
2170
+ Tcl_UniChar (*tcl_UniCharToLower) (int ch); /* 321 */
2171
+ Tcl_UniChar (*tcl_UniCharToTitle) (int ch); /* 322 */
2172
+ Tcl_UniChar (*tcl_UniCharToUpper) (int ch); /* 323 */
2173
+ int (*tcl_UniCharToUtf) (int ch, char *buf); /* 324 */
2174
+ CONST84_RETURN char * (*tcl_UtfAtIndex) (const char *src, int index); /* 325 */
2175
+ int (*tcl_UtfCharComplete) (const char *src, int length); /* 326 */
2176
+ int (*tcl_UtfBackslash) (const char *src, int *readPtr, char *dst); /* 327 */
2177
+ CONST84_RETURN char * (*tcl_UtfFindFirst) (const char *src, int ch); /* 328 */
2178
+ CONST84_RETURN char * (*tcl_UtfFindLast) (const char *src, int ch); /* 329 */
2179
+ CONST84_RETURN char * (*tcl_UtfNext) (const char *src); /* 330 */
2180
+ CONST84_RETURN char * (*tcl_UtfPrev) (const char *src, const char *start); /* 331 */
2181
+ int (*tcl_UtfToExternal) (Tcl_Interp *interp, Tcl_Encoding encoding, const char *src, int srcLen, int flags, Tcl_EncodingState *statePtr, char *dst, int dstLen, int *srcReadPtr, int *dstWrotePtr, int *dstCharsPtr); /* 332 */
2182
+ char * (*tcl_UtfToExternalDString) (Tcl_Encoding encoding, const char *src, int srcLen, Tcl_DString *dsPtr); /* 333 */
2183
+ int (*tcl_UtfToLower) (char *src); /* 334 */
2184
+ int (*tcl_UtfToTitle) (char *src); /* 335 */
2185
+ int (*tcl_UtfToUniChar) (const char *src, Tcl_UniChar *chPtr); /* 336 */
2186
+ int (*tcl_UtfToUpper) (char *src); /* 337 */
2187
+ int (*tcl_WriteChars) (Tcl_Channel chan, const char *src, int srcLen); /* 338 */
2188
+ int (*tcl_WriteObj) (Tcl_Channel chan, Tcl_Obj *objPtr); /* 339 */
2189
+ char * (*tcl_GetString) (Tcl_Obj *objPtr); /* 340 */
2190
+ CONST84_RETURN char * (*tcl_GetDefaultEncodingDir) (void); /* 341 */
2191
+ void (*tcl_SetDefaultEncodingDir) (const char *path); /* 342 */
2192
+ void (*tcl_AlertNotifier) (ClientData clientData); /* 343 */
2193
+ void (*tcl_ServiceModeHook) (int mode); /* 344 */
2194
+ int (*tcl_UniCharIsAlnum) (int ch); /* 345 */
2195
+ int (*tcl_UniCharIsAlpha) (int ch); /* 346 */
2196
+ int (*tcl_UniCharIsDigit) (int ch); /* 347 */
2197
+ int (*tcl_UniCharIsLower) (int ch); /* 348 */
2198
+ int (*tcl_UniCharIsSpace) (int ch); /* 349 */
2199
+ int (*tcl_UniCharIsUpper) (int ch); /* 350 */
2200
+ int (*tcl_UniCharIsWordChar) (int ch); /* 351 */
2201
+ int (*tcl_UniCharLen) (const Tcl_UniChar *uniStr); /* 352 */
2202
+ int (*tcl_UniCharNcmp) (const Tcl_UniChar *ucs, const Tcl_UniChar *uct, unsigned long numChars); /* 353 */
2203
+ char * (*tcl_UniCharToUtfDString) (const Tcl_UniChar *uniStr, int uniLength, Tcl_DString *dsPtr); /* 354 */
2204
+ Tcl_UniChar * (*tcl_UtfToUniCharDString) (const char *src, int length, Tcl_DString *dsPtr); /* 355 */
2205
+ Tcl_RegExp (*tcl_GetRegExpFromObj) (Tcl_Interp *interp, Tcl_Obj *patObj, int flags); /* 356 */
2206
+ Tcl_Obj * (*tcl_EvalTokens) (Tcl_Interp *interp, Tcl_Token *tokenPtr, int count); /* 357 */
2207
+ void (*tcl_FreeParse) (Tcl_Parse *parsePtr); /* 358 */
2208
+ void (*tcl_LogCommandInfo) (Tcl_Interp *interp, const char *script, const char *command, int length); /* 359 */
2209
+ int (*tcl_ParseBraces) (Tcl_Interp *interp, const char *start, int numBytes, Tcl_Parse *parsePtr, int append, CONST84 char **termPtr); /* 360 */
2210
+ int (*tcl_ParseCommand) (Tcl_Interp *interp, const char *start, int numBytes, int nested, Tcl_Parse *parsePtr); /* 361 */
2211
+ int (*tcl_ParseExpr) (Tcl_Interp *interp, const char *start, int numBytes, Tcl_Parse *parsePtr); /* 362 */
2212
+ int (*tcl_ParseQuotedString) (Tcl_Interp *interp, const char *start, int numBytes, Tcl_Parse *parsePtr, int append, CONST84 char **termPtr); /* 363 */
2213
+ int (*tcl_ParseVarName) (Tcl_Interp *interp, const char *start, int numBytes, Tcl_Parse *parsePtr, int append); /* 364 */
2214
+ char * (*tcl_GetCwd) (Tcl_Interp *interp, Tcl_DString *cwdPtr); /* 365 */
2215
+ int (*tcl_Chdir) (const char *dirName); /* 366 */
2216
+ int (*tcl_Access) (const char *path, int mode); /* 367 */
2217
+ int (*tcl_Stat) (const char *path, struct stat *bufPtr); /* 368 */
2218
+ int (*tcl_UtfNcmp) (const char *s1, const char *s2, unsigned long n); /* 369 */
2219
+ int (*tcl_UtfNcasecmp) (const char *s1, const char *s2, unsigned long n); /* 370 */
2220
+ int (*tcl_StringCaseMatch) (const char *str, const char *pattern, int nocase); /* 371 */
2221
+ int (*tcl_UniCharIsControl) (int ch); /* 372 */
2222
+ int (*tcl_UniCharIsGraph) (int ch); /* 373 */
2223
+ int (*tcl_UniCharIsPrint) (int ch); /* 374 */
2224
+ int (*tcl_UniCharIsPunct) (int ch); /* 375 */
2225
+ int (*tcl_RegExpExecObj) (Tcl_Interp *interp, Tcl_RegExp regexp, Tcl_Obj *textObj, int offset, int nmatches, int flags); /* 376 */
2226
+ void (*tcl_RegExpGetInfo) (Tcl_RegExp regexp, Tcl_RegExpInfo *infoPtr); /* 377 */
2227
+ Tcl_Obj * (*tcl_NewUnicodeObj) (const Tcl_UniChar *unicode, int numChars); /* 378 */
2228
+ void (*tcl_SetUnicodeObj) (Tcl_Obj *objPtr, const Tcl_UniChar *unicode, int numChars); /* 379 */
2229
+ int (*tcl_GetCharLength) (Tcl_Obj *objPtr); /* 380 */
2230
+ Tcl_UniChar (*tcl_GetUniChar) (Tcl_Obj *objPtr, int index); /* 381 */
2231
+ Tcl_UniChar * (*tcl_GetUnicode) (Tcl_Obj *objPtr); /* 382 */
2232
+ Tcl_Obj * (*tcl_GetRange) (Tcl_Obj *objPtr, int first, int last); /* 383 */
2233
+ void (*tcl_AppendUnicodeToObj) (Tcl_Obj *objPtr, const Tcl_UniChar *unicode, int length); /* 384 */
2234
+ int (*tcl_RegExpMatchObj) (Tcl_Interp *interp, Tcl_Obj *textObj, Tcl_Obj *patternObj); /* 385 */
2235
+ void (*tcl_SetNotifier) (Tcl_NotifierProcs *notifierProcPtr); /* 386 */
2236
+ Tcl_Mutex * (*tcl_GetAllocMutex) (void); /* 387 */
2237
+ int (*tcl_GetChannelNames) (Tcl_Interp *interp); /* 388 */
2238
+ int (*tcl_GetChannelNamesEx) (Tcl_Interp *interp, const char *pattern); /* 389 */
2239
+ int (*tcl_ProcObjCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 390 */
2240
+ void (*tcl_ConditionFinalize) (Tcl_Condition *condPtr); /* 391 */
2241
+ void (*tcl_MutexFinalize) (Tcl_Mutex *mutex); /* 392 */
2242
+ int (*tcl_CreateThread) (Tcl_ThreadId *idPtr, Tcl_ThreadCreateProc *proc, ClientData clientData, int stackSize, int flags); /* 393 */
2243
+ int (*tcl_ReadRaw) (Tcl_Channel chan, char *dst, int bytesToRead); /* 394 */
2244
+ int (*tcl_WriteRaw) (Tcl_Channel chan, const char *src, int srcLen); /* 395 */
2245
+ Tcl_Channel (*tcl_GetTopChannel) (Tcl_Channel chan); /* 396 */
2246
+ int (*tcl_ChannelBuffered) (Tcl_Channel chan); /* 397 */
2247
+ CONST84_RETURN char * (*tcl_ChannelName) (const Tcl_ChannelType *chanTypePtr); /* 398 */
2248
+ Tcl_ChannelTypeVersion (*tcl_ChannelVersion) (const Tcl_ChannelType *chanTypePtr); /* 399 */
2249
+ Tcl_DriverBlockModeProc * (*tcl_ChannelBlockModeProc) (const Tcl_ChannelType *chanTypePtr); /* 400 */
2250
+ Tcl_DriverCloseProc * (*tcl_ChannelCloseProc) (const Tcl_ChannelType *chanTypePtr); /* 401 */
2251
+ Tcl_DriverClose2Proc * (*tcl_ChannelClose2Proc) (const Tcl_ChannelType *chanTypePtr); /* 402 */
2252
+ Tcl_DriverInputProc * (*tcl_ChannelInputProc) (const Tcl_ChannelType *chanTypePtr); /* 403 */
2253
+ Tcl_DriverOutputProc * (*tcl_ChannelOutputProc) (const Tcl_ChannelType *chanTypePtr); /* 404 */
2254
+ Tcl_DriverSeekProc * (*tcl_ChannelSeekProc) (const Tcl_ChannelType *chanTypePtr); /* 405 */
2255
+ Tcl_DriverSetOptionProc * (*tcl_ChannelSetOptionProc) (const Tcl_ChannelType *chanTypePtr); /* 406 */
2256
+ Tcl_DriverGetOptionProc * (*tcl_ChannelGetOptionProc) (const Tcl_ChannelType *chanTypePtr); /* 407 */
2257
+ Tcl_DriverWatchProc * (*tcl_ChannelWatchProc) (const Tcl_ChannelType *chanTypePtr); /* 408 */
2258
+ Tcl_DriverGetHandleProc * (*tcl_ChannelGetHandleProc) (const Tcl_ChannelType *chanTypePtr); /* 409 */
2259
+ Tcl_DriverFlushProc * (*tcl_ChannelFlushProc) (const Tcl_ChannelType *chanTypePtr); /* 410 */
2260
+ Tcl_DriverHandlerProc * (*tcl_ChannelHandlerProc) (const Tcl_ChannelType *chanTypePtr); /* 411 */
2261
+ int (*tcl_JoinThread) (Tcl_ThreadId threadId, int *result); /* 412 */
2262
+ int (*tcl_IsChannelShared) (Tcl_Channel channel); /* 413 */
2263
+ int (*tcl_IsChannelRegistered) (Tcl_Interp *interp, Tcl_Channel channel); /* 414 */
2264
+ void (*tcl_CutChannel) (Tcl_Channel channel); /* 415 */
2265
+ void (*tcl_SpliceChannel) (Tcl_Channel channel); /* 416 */
2266
+ void (*tcl_ClearChannelHandlers) (Tcl_Channel channel); /* 417 */
2267
+ int (*tcl_IsChannelExisting) (const char *channelName); /* 418 */
2268
+ int (*tcl_UniCharNcasecmp) (const Tcl_UniChar *ucs, const Tcl_UniChar *uct, unsigned long numChars); /* 419 */
2269
+ int (*tcl_UniCharCaseMatch) (const Tcl_UniChar *uniStr, const Tcl_UniChar *uniPattern, int nocase); /* 420 */
2270
+ Tcl_HashEntry * (*tcl_FindHashEntry) (Tcl_HashTable *tablePtr, const void *key); /* 421 */
2271
+ Tcl_HashEntry * (*tcl_CreateHashEntry) (Tcl_HashTable *tablePtr, const void *key, int *newPtr); /* 422 */
2272
+ void (*tcl_InitCustomHashTable) (Tcl_HashTable *tablePtr, int keyType, const Tcl_HashKeyType *typePtr); /* 423 */
2273
+ void (*tcl_InitObjHashTable) (Tcl_HashTable *tablePtr); /* 424 */
2274
+ ClientData (*tcl_CommandTraceInfo) (Tcl_Interp *interp, const char *varName, int flags, Tcl_CommandTraceProc *procPtr, ClientData prevClientData); /* 425 */
2275
+ int (*tcl_TraceCommand) (Tcl_Interp *interp, const char *varName, int flags, Tcl_CommandTraceProc *proc, ClientData clientData); /* 426 */
2276
+ void (*tcl_UntraceCommand) (Tcl_Interp *interp, const char *varName, int flags, Tcl_CommandTraceProc *proc, ClientData clientData); /* 427 */
2277
+ char * (*tcl_AttemptAlloc) (unsigned int size); /* 428 */
2278
+ char * (*tcl_AttemptDbCkalloc) (unsigned int size, const char *file, int line); /* 429 */
2279
+ char * (*tcl_AttemptRealloc) (char *ptr, unsigned int size); /* 430 */
2280
+ char * (*tcl_AttemptDbCkrealloc) (char *ptr, unsigned int size, const char *file, int line); /* 431 */
2281
+ int (*tcl_AttemptSetObjLength) (Tcl_Obj *objPtr, int length); /* 432 */
2282
+ Tcl_ThreadId (*tcl_GetChannelThread) (Tcl_Channel channel); /* 433 */
2283
+ Tcl_UniChar * (*tcl_GetUnicodeFromObj) (Tcl_Obj *objPtr, int *lengthPtr); /* 434 */
2284
+ int (*tcl_GetMathFuncInfo) (Tcl_Interp *interp, const char *name, int *numArgsPtr, Tcl_ValueType **argTypesPtr, Tcl_MathProc **procPtr, ClientData *clientDataPtr); /* 435 */
2285
+ Tcl_Obj * (*tcl_ListMathFuncs) (Tcl_Interp *interp, const char *pattern); /* 436 */
2286
+ Tcl_Obj * (*tcl_SubstObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int flags); /* 437 */
2287
+ int (*tcl_DetachChannel) (Tcl_Interp *interp, Tcl_Channel channel); /* 438 */
2288
+ int (*tcl_IsStandardChannel) (Tcl_Channel channel); /* 439 */
2289
+ int (*tcl_FSCopyFile) (Tcl_Obj *srcPathPtr, Tcl_Obj *destPathPtr); /* 440 */
2290
+ int (*tcl_FSCopyDirectory) (Tcl_Obj *srcPathPtr, Tcl_Obj *destPathPtr, Tcl_Obj **errorPtr); /* 441 */
2291
+ int (*tcl_FSCreateDirectory) (Tcl_Obj *pathPtr); /* 442 */
2292
+ int (*tcl_FSDeleteFile) (Tcl_Obj *pathPtr); /* 443 */
2293
+ int (*tcl_FSLoadFile) (Tcl_Interp *interp, Tcl_Obj *pathPtr, const char *sym1, const char *sym2, Tcl_PackageInitProc **proc1Ptr, Tcl_PackageInitProc **proc2Ptr, Tcl_LoadHandle *handlePtr, Tcl_FSUnloadFileProc **unloadProcPtr); /* 444 */
2294
+ int (*tcl_FSMatchInDirectory) (Tcl_Interp *interp, Tcl_Obj *result, Tcl_Obj *pathPtr, const char *pattern, Tcl_GlobTypeData *types); /* 445 */
2295
+ Tcl_Obj * (*tcl_FSLink) (Tcl_Obj *pathPtr, Tcl_Obj *toPtr, int linkAction); /* 446 */
2296
+ int (*tcl_FSRemoveDirectory) (Tcl_Obj *pathPtr, int recursive, Tcl_Obj **errorPtr); /* 447 */
2297
+ int (*tcl_FSRenameFile) (Tcl_Obj *srcPathPtr, Tcl_Obj *destPathPtr); /* 448 */
2298
+ int (*tcl_FSLstat) (Tcl_Obj *pathPtr, Tcl_StatBuf *buf); /* 449 */
2299
+ int (*tcl_FSUtime) (Tcl_Obj *pathPtr, struct utimbuf *tval); /* 450 */
2300
+ int (*tcl_FSFileAttrsGet) (Tcl_Interp *interp, int index, Tcl_Obj *pathPtr, Tcl_Obj **objPtrRef); /* 451 */
2301
+ int (*tcl_FSFileAttrsSet) (Tcl_Interp *interp, int index, Tcl_Obj *pathPtr, Tcl_Obj *objPtr); /* 452 */
2302
+ const char *CONST86 * (*tcl_FSFileAttrStrings) (Tcl_Obj *pathPtr, Tcl_Obj **objPtrRef); /* 453 */
2303
+ int (*tcl_FSStat) (Tcl_Obj *pathPtr, Tcl_StatBuf *buf); /* 454 */
2304
+ int (*tcl_FSAccess) (Tcl_Obj *pathPtr, int mode); /* 455 */
2305
+ Tcl_Channel (*tcl_FSOpenFileChannel) (Tcl_Interp *interp, Tcl_Obj *pathPtr, const char *modeString, int permissions); /* 456 */
2306
+ Tcl_Obj * (*tcl_FSGetCwd) (Tcl_Interp *interp); /* 457 */
2307
+ int (*tcl_FSChdir) (Tcl_Obj *pathPtr); /* 458 */
2308
+ int (*tcl_FSConvertToPathType) (Tcl_Interp *interp, Tcl_Obj *pathPtr); /* 459 */
2309
+ Tcl_Obj * (*tcl_FSJoinPath) (Tcl_Obj *listObj, int elements); /* 460 */
2310
+ Tcl_Obj * (*tcl_FSSplitPath) (Tcl_Obj *pathPtr, int *lenPtr); /* 461 */
2311
+ int (*tcl_FSEqualPaths) (Tcl_Obj *firstPtr, Tcl_Obj *secondPtr); /* 462 */
2312
+ Tcl_Obj * (*tcl_FSGetNormalizedPath) (Tcl_Interp *interp, Tcl_Obj *pathPtr); /* 463 */
2313
+ Tcl_Obj * (*tcl_FSJoinToPath) (Tcl_Obj *pathPtr, int objc, Tcl_Obj *const objv[]); /* 464 */
2314
+ ClientData (*tcl_FSGetInternalRep) (Tcl_Obj *pathPtr, const Tcl_Filesystem *fsPtr); /* 465 */
2315
+ Tcl_Obj * (*tcl_FSGetTranslatedPath) (Tcl_Interp *interp, Tcl_Obj *pathPtr); /* 466 */
2316
+ int (*tcl_FSEvalFile) (Tcl_Interp *interp, Tcl_Obj *fileName); /* 467 */
2317
+ Tcl_Obj * (*tcl_FSNewNativePath) (const Tcl_Filesystem *fromFilesystem, ClientData clientData); /* 468 */
2318
+ const void * (*tcl_FSGetNativePath) (Tcl_Obj *pathPtr); /* 469 */
2319
+ Tcl_Obj * (*tcl_FSFileSystemInfo) (Tcl_Obj *pathPtr); /* 470 */
2320
+ Tcl_Obj * (*tcl_FSPathSeparator) (Tcl_Obj *pathPtr); /* 471 */
2321
+ Tcl_Obj * (*tcl_FSListVolumes) (void); /* 472 */
2322
+ int (*tcl_FSRegister) (ClientData clientData, const Tcl_Filesystem *fsPtr); /* 473 */
2323
+ int (*tcl_FSUnregister) (const Tcl_Filesystem *fsPtr); /* 474 */
2324
+ ClientData (*tcl_FSData) (const Tcl_Filesystem *fsPtr); /* 475 */
2325
+ const char * (*tcl_FSGetTranslatedStringPath) (Tcl_Interp *interp, Tcl_Obj *pathPtr); /* 476 */
2326
+ CONST86 Tcl_Filesystem * (*tcl_FSGetFileSystemForPath) (Tcl_Obj *pathPtr); /* 477 */
2327
+ Tcl_PathType (*tcl_FSGetPathType) (Tcl_Obj *pathPtr); /* 478 */
2328
+ int (*tcl_OutputBuffered) (Tcl_Channel chan); /* 479 */
2329
+ void (*tcl_FSMountsChanged) (const Tcl_Filesystem *fsPtr); /* 480 */
2330
+ int (*tcl_EvalTokensStandard) (Tcl_Interp *interp, Tcl_Token *tokenPtr, int count); /* 481 */
2331
+ void (*tcl_GetTime) (Tcl_Time *timeBuf); /* 482 */
2332
+ Tcl_Trace (*tcl_CreateObjTrace) (Tcl_Interp *interp, int level, int flags, Tcl_CmdObjTraceProc *objProc, ClientData clientData, Tcl_CmdObjTraceDeleteProc *delProc); /* 483 */
2333
+ int (*tcl_GetCommandInfoFromToken) (Tcl_Command token, Tcl_CmdInfo *infoPtr); /* 484 */
2334
+ int (*tcl_SetCommandInfoFromToken) (Tcl_Command token, const Tcl_CmdInfo *infoPtr); /* 485 */
2335
+ Tcl_Obj * (*tcl_DbNewWideIntObj) (Tcl_WideInt wideValue, const char *file, int line); /* 486 */
2336
+ int (*tcl_GetWideIntFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_WideInt *widePtr); /* 487 */
2337
+ Tcl_Obj * (*tcl_NewWideIntObj) (Tcl_WideInt wideValue); /* 488 */
2338
+ void (*tcl_SetWideIntObj) (Tcl_Obj *objPtr, Tcl_WideInt wideValue); /* 489 */
2339
+ Tcl_StatBuf * (*tcl_AllocStatBuf) (void); /* 490 */
2340
+ Tcl_WideInt (*tcl_Seek) (Tcl_Channel chan, Tcl_WideInt offset, int mode); /* 491 */
2341
+ Tcl_WideInt (*tcl_Tell) (Tcl_Channel chan); /* 492 */
2342
+ Tcl_DriverWideSeekProc * (*tcl_ChannelWideSeekProc) (const Tcl_ChannelType *chanTypePtr); /* 493 */
2343
+ int (*tcl_DictObjPut) (Tcl_Interp *interp, Tcl_Obj *dictPtr, Tcl_Obj *keyPtr, Tcl_Obj *valuePtr); /* 494 */
2344
+ int (*tcl_DictObjGet) (Tcl_Interp *interp, Tcl_Obj *dictPtr, Tcl_Obj *keyPtr, Tcl_Obj **valuePtrPtr); /* 495 */
2345
+ int (*tcl_DictObjRemove) (Tcl_Interp *interp, Tcl_Obj *dictPtr, Tcl_Obj *keyPtr); /* 496 */
2346
+ int (*tcl_DictObjSize) (Tcl_Interp *interp, Tcl_Obj *dictPtr, int *sizePtr); /* 497 */
2347
+ int (*tcl_DictObjFirst) (Tcl_Interp *interp, Tcl_Obj *dictPtr, Tcl_DictSearch *searchPtr, Tcl_Obj **keyPtrPtr, Tcl_Obj **valuePtrPtr, int *donePtr); /* 498 */
2348
+ void (*tcl_DictObjNext) (Tcl_DictSearch *searchPtr, Tcl_Obj **keyPtrPtr, Tcl_Obj **valuePtrPtr, int *donePtr); /* 499 */
2349
+ void (*tcl_DictObjDone) (Tcl_DictSearch *searchPtr); /* 500 */
2350
+ int (*tcl_DictObjPutKeyList) (Tcl_Interp *interp, Tcl_Obj *dictPtr, int keyc, Tcl_Obj *const *keyv, Tcl_Obj *valuePtr); /* 501 */
2351
+ int (*tcl_DictObjRemoveKeyList) (Tcl_Interp *interp, Tcl_Obj *dictPtr, int keyc, Tcl_Obj *const *keyv); /* 502 */
2352
+ Tcl_Obj * (*tcl_NewDictObj) (void); /* 503 */
2353
+ Tcl_Obj * (*tcl_DbNewDictObj) (const char *file, int line); /* 504 */
2354
+ void (*tcl_RegisterConfig) (Tcl_Interp *interp, const char *pkgName, const Tcl_Config *configuration, const char *valEncoding); /* 505 */
2355
+ Tcl_Namespace * (*tcl_CreateNamespace) (Tcl_Interp *interp, const char *name, ClientData clientData, Tcl_NamespaceDeleteProc *deleteProc); /* 506 */
2356
+ void (*tcl_DeleteNamespace) (Tcl_Namespace *nsPtr); /* 507 */
2357
+ int (*tcl_AppendExportList) (Tcl_Interp *interp, Tcl_Namespace *nsPtr, Tcl_Obj *objPtr); /* 508 */
2358
+ int (*tcl_Export) (Tcl_Interp *interp, Tcl_Namespace *nsPtr, const char *pattern, int resetListFirst); /* 509 */
2359
+ int (*tcl_Import) (Tcl_Interp *interp, Tcl_Namespace *nsPtr, const char *pattern, int allowOverwrite); /* 510 */
2360
+ int (*tcl_ForgetImport) (Tcl_Interp *interp, Tcl_Namespace *nsPtr, const char *pattern); /* 511 */
2361
+ Tcl_Namespace * (*tcl_GetCurrentNamespace) (Tcl_Interp *interp); /* 512 */
2362
+ Tcl_Namespace * (*tcl_GetGlobalNamespace) (Tcl_Interp *interp); /* 513 */
2363
+ Tcl_Namespace * (*tcl_FindNamespace) (Tcl_Interp *interp, const char *name, Tcl_Namespace *contextNsPtr, int flags); /* 514 */
2364
+ Tcl_Command (*tcl_FindCommand) (Tcl_Interp *interp, const char *name, Tcl_Namespace *contextNsPtr, int flags); /* 515 */
2365
+ Tcl_Command (*tcl_GetCommandFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr); /* 516 */
2366
+ void (*tcl_GetCommandFullName) (Tcl_Interp *interp, Tcl_Command command, Tcl_Obj *objPtr); /* 517 */
2367
+ int (*tcl_FSEvalFileEx) (Tcl_Interp *interp, Tcl_Obj *fileName, const char *encodingName); /* 518 */
2368
+ Tcl_ExitProc * (*tcl_SetExitProc) (Tcl_ExitProc *proc); /* 519 */
2369
+ void (*tcl_LimitAddHandler) (Tcl_Interp *interp, int type, Tcl_LimitHandlerProc *handlerProc, ClientData clientData, Tcl_LimitHandlerDeleteProc *deleteProc); /* 520 */
2370
+ void (*tcl_LimitRemoveHandler) (Tcl_Interp *interp, int type, Tcl_LimitHandlerProc *handlerProc, ClientData clientData); /* 521 */
2371
+ int (*tcl_LimitReady) (Tcl_Interp *interp); /* 522 */
2372
+ int (*tcl_LimitCheck) (Tcl_Interp *interp); /* 523 */
2373
+ int (*tcl_LimitExceeded) (Tcl_Interp *interp); /* 524 */
2374
+ void (*tcl_LimitSetCommands) (Tcl_Interp *interp, int commandLimit); /* 525 */
2375
+ void (*tcl_LimitSetTime) (Tcl_Interp *interp, Tcl_Time *timeLimitPtr); /* 526 */
2376
+ void (*tcl_LimitSetGranularity) (Tcl_Interp *interp, int type, int granularity); /* 527 */
2377
+ int (*tcl_LimitTypeEnabled) (Tcl_Interp *interp, int type); /* 528 */
2378
+ int (*tcl_LimitTypeExceeded) (Tcl_Interp *interp, int type); /* 529 */
2379
+ void (*tcl_LimitTypeSet) (Tcl_Interp *interp, int type); /* 530 */
2380
+ void (*tcl_LimitTypeReset) (Tcl_Interp *interp, int type); /* 531 */
2381
+ int (*tcl_LimitGetCommands) (Tcl_Interp *interp); /* 532 */
2382
+ void (*tcl_LimitGetTime) (Tcl_Interp *interp, Tcl_Time *timeLimitPtr); /* 533 */
2383
+ int (*tcl_LimitGetGranularity) (Tcl_Interp *interp, int type); /* 534 */
2384
+ Tcl_InterpState (*tcl_SaveInterpState) (Tcl_Interp *interp, int status); /* 535 */
2385
+ int (*tcl_RestoreInterpState) (Tcl_Interp *interp, Tcl_InterpState state); /* 536 */
2386
+ void (*tcl_DiscardInterpState) (Tcl_InterpState state); /* 537 */
2387
+ int (*tcl_SetReturnOptions) (Tcl_Interp *interp, Tcl_Obj *options); /* 538 */
2388
+ Tcl_Obj * (*tcl_GetReturnOptions) (Tcl_Interp *interp, int result); /* 539 */
2389
+ int (*tcl_IsEnsemble) (Tcl_Command token); /* 540 */
2390
+ Tcl_Command (*tcl_CreateEnsemble) (Tcl_Interp *interp, const char *name, Tcl_Namespace *namespacePtr, int flags); /* 541 */
2391
+ Tcl_Command (*tcl_FindEnsemble) (Tcl_Interp *interp, Tcl_Obj *cmdNameObj, int flags); /* 542 */
2392
+ int (*tcl_SetEnsembleSubcommandList) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj *subcmdList); /* 543 */
2393
+ int (*tcl_SetEnsembleMappingDict) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj *mapDict); /* 544 */
2394
+ int (*tcl_SetEnsembleUnknownHandler) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj *unknownList); /* 545 */
2395
+ int (*tcl_SetEnsembleFlags) (Tcl_Interp *interp, Tcl_Command token, int flags); /* 546 */
2396
+ int (*tcl_GetEnsembleSubcommandList) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj **subcmdListPtr); /* 547 */
2397
+ int (*tcl_GetEnsembleMappingDict) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj **mapDictPtr); /* 548 */
2398
+ int (*tcl_GetEnsembleUnknownHandler) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj **unknownListPtr); /* 549 */
2399
+ int (*tcl_GetEnsembleFlags) (Tcl_Interp *interp, Tcl_Command token, int *flagsPtr); /* 550 */
2400
+ int (*tcl_GetEnsembleNamespace) (Tcl_Interp *interp, Tcl_Command token, Tcl_Namespace **namespacePtrPtr); /* 551 */
2401
+ void (*tcl_SetTimeProc) (Tcl_GetTimeProc *getProc, Tcl_ScaleTimeProc *scaleProc, ClientData clientData); /* 552 */
2402
+ void (*tcl_QueryTimeProc) (Tcl_GetTimeProc **getProc, Tcl_ScaleTimeProc **scaleProc, ClientData *clientData); /* 553 */
2403
+ Tcl_DriverThreadActionProc * (*tcl_ChannelThreadActionProc) (const Tcl_ChannelType *chanTypePtr); /* 554 */
2404
+ Tcl_Obj * (*tcl_NewBignumObj) (mp_int *value); /* 555 */
2405
+ Tcl_Obj * (*tcl_DbNewBignumObj) (mp_int *value, const char *file, int line); /* 556 */
2406
+ void (*tcl_SetBignumObj) (Tcl_Obj *obj, mp_int *value); /* 557 */
2407
+ int (*tcl_GetBignumFromObj) (Tcl_Interp *interp, Tcl_Obj *obj, mp_int *value); /* 558 */
2408
+ int (*tcl_TakeBignumFromObj) (Tcl_Interp *interp, Tcl_Obj *obj, mp_int *value); /* 559 */
2409
+ int (*tcl_TruncateChannel) (Tcl_Channel chan, Tcl_WideInt length); /* 560 */
2410
+ Tcl_DriverTruncateProc * (*tcl_ChannelTruncateProc) (const Tcl_ChannelType *chanTypePtr); /* 561 */
2411
+ void (*tcl_SetChannelErrorInterp) (Tcl_Interp *interp, Tcl_Obj *msg); /* 562 */
2412
+ void (*tcl_GetChannelErrorInterp) (Tcl_Interp *interp, Tcl_Obj **msg); /* 563 */
2413
+ void (*tcl_SetChannelError) (Tcl_Channel chan, Tcl_Obj *msg); /* 564 */
2414
+ void (*tcl_GetChannelError) (Tcl_Channel chan, Tcl_Obj **msg); /* 565 */
2415
+ int (*tcl_InitBignumFromDouble) (Tcl_Interp *interp, double initval, mp_int *toInit); /* 566 */
2416
+ Tcl_Obj * (*tcl_GetNamespaceUnknownHandler) (Tcl_Interp *interp, Tcl_Namespace *nsPtr); /* 567 */
2417
+ int (*tcl_SetNamespaceUnknownHandler) (Tcl_Interp *interp, Tcl_Namespace *nsPtr, Tcl_Obj *handlerPtr); /* 568 */
2418
+ int (*tcl_GetEncodingFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_Encoding *encodingPtr); /* 569 */
2419
+ Tcl_Obj * (*tcl_GetEncodingSearchPath) (void); /* 570 */
2420
+ int (*tcl_SetEncodingSearchPath) (Tcl_Obj *searchPath); /* 571 */
2421
+ const char * (*tcl_GetEncodingNameFromEnvironment) (Tcl_DString *bufPtr); /* 572 */
2422
+ int (*tcl_PkgRequireProc) (Tcl_Interp *interp, const char *name, int objc, Tcl_Obj *const objv[], void *clientDataPtr); /* 573 */
2423
+ void (*tcl_AppendObjToErrorInfo) (Tcl_Interp *interp, Tcl_Obj *objPtr); /* 574 */
2424
+ void (*tcl_AppendLimitedToObj) (Tcl_Obj *objPtr, const char *bytes, int length, int limit, const char *ellipsis); /* 575 */
2425
+ Tcl_Obj * (*tcl_Format) (Tcl_Interp *interp, const char *format, int objc, Tcl_Obj *const objv[]); /* 576 */
2426
+ int (*tcl_AppendFormatToObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, const char *format, int objc, Tcl_Obj *const objv[]); /* 577 */
2427
+ Tcl_Obj * (*tcl_ObjPrintf) (const char *format, ...) TCL_FORMAT_PRINTF(1, 2); /* 578 */
2428
+ void (*tcl_AppendPrintfToObj) (Tcl_Obj *objPtr, const char *format, ...) TCL_FORMAT_PRINTF(2, 3); /* 579 */
2429
+ int (*tcl_CancelEval) (Tcl_Interp *interp, Tcl_Obj *resultObjPtr, ClientData clientData, int flags); /* 580 */
2430
+ int (*tcl_Canceled) (Tcl_Interp *interp, int flags); /* 581 */
2431
+ int (*tcl_CreatePipe) (Tcl_Interp *interp, Tcl_Channel *rchan, Tcl_Channel *wchan, int flags); /* 582 */
2432
+ Tcl_Command (*tcl_NRCreateCommand) (Tcl_Interp *interp, const char *cmdName, Tcl_ObjCmdProc *proc, Tcl_ObjCmdProc *nreProc, ClientData clientData, Tcl_CmdDeleteProc *deleteProc); /* 583 */
2433
+ int (*tcl_NREvalObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int flags); /* 584 */
2434
+ int (*tcl_NREvalObjv) (Tcl_Interp *interp, int objc, Tcl_Obj *const objv[], int flags); /* 585 */
2435
+ int (*tcl_NRCmdSwap) (Tcl_Interp *interp, Tcl_Command cmd, int objc, Tcl_Obj *const objv[], int flags); /* 586 */
2436
+ void (*tcl_NRAddCallback) (Tcl_Interp *interp, Tcl_NRPostProc *postProcPtr, ClientData data0, ClientData data1, ClientData data2, ClientData data3); /* 587 */
2437
+ int (*tcl_NRCallObjProc) (Tcl_Interp *interp, Tcl_ObjCmdProc *objProc, ClientData clientData, int objc, Tcl_Obj *const objv[]); /* 588 */
2438
+ unsigned (*tcl_GetFSDeviceFromStat) (const Tcl_StatBuf *statPtr); /* 589 */
2439
+ unsigned (*tcl_GetFSInodeFromStat) (const Tcl_StatBuf *statPtr); /* 590 */
2440
+ unsigned (*tcl_GetModeFromStat) (const Tcl_StatBuf *statPtr); /* 591 */
2441
+ int (*tcl_GetLinkCountFromStat) (const Tcl_StatBuf *statPtr); /* 592 */
2442
+ int (*tcl_GetUserIdFromStat) (const Tcl_StatBuf *statPtr); /* 593 */
2443
+ int (*tcl_GetGroupIdFromStat) (const Tcl_StatBuf *statPtr); /* 594 */
2444
+ int (*tcl_GetDeviceTypeFromStat) (const Tcl_StatBuf *statPtr); /* 595 */
2445
+ Tcl_WideInt (*tcl_GetAccessTimeFromStat) (const Tcl_StatBuf *statPtr); /* 596 */
2446
+ Tcl_WideInt (*tcl_GetModificationTimeFromStat) (const Tcl_StatBuf *statPtr); /* 597 */
2447
+ Tcl_WideInt (*tcl_GetChangeTimeFromStat) (const Tcl_StatBuf *statPtr); /* 598 */
2448
+ Tcl_WideUInt (*tcl_GetSizeFromStat) (const Tcl_StatBuf *statPtr); /* 599 */
2449
+ Tcl_WideUInt (*tcl_GetBlocksFromStat) (const Tcl_StatBuf *statPtr); /* 600 */
2450
+ unsigned (*tcl_GetBlockSizeFromStat) (const Tcl_StatBuf *statPtr); /* 601 */
2451
+ int (*tcl_SetEnsembleParameterList) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj *paramList); /* 602 */
2452
+ int (*tcl_GetEnsembleParameterList) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj **paramListPtr); /* 603 */
2453
+ int (*tcl_ParseArgsObjv) (Tcl_Interp *interp, const Tcl_ArgvInfo *argTable, int *objcPtr, Tcl_Obj *const *objv, Tcl_Obj ***remObjv); /* 604 */
2454
+ int (*tcl_GetErrorLine) (Tcl_Interp *interp); /* 605 */
2455
+ void (*tcl_SetErrorLine) (Tcl_Interp *interp, int lineNum); /* 606 */
2456
+ void (*tcl_TransferResult) (Tcl_Interp *sourceInterp, int result, Tcl_Interp *targetInterp); /* 607 */
2457
+ int (*tcl_InterpActive) (Tcl_Interp *interp); /* 608 */
2458
+ void (*tcl_BackgroundException) (Tcl_Interp *interp, int code); /* 609 */
2459
+ int (*tcl_ZlibDeflate) (Tcl_Interp *interp, int format, Tcl_Obj *data, int level, Tcl_Obj *gzipHeaderDictObj); /* 610 */
2460
+ int (*tcl_ZlibInflate) (Tcl_Interp *interp, int format, Tcl_Obj *data, int buffersize, Tcl_Obj *gzipHeaderDictObj); /* 611 */
2461
+ unsigned int (*tcl_ZlibCRC32) (unsigned int crc, const unsigned char *buf, int len); /* 612 */
2462
+ unsigned int (*tcl_ZlibAdler32) (unsigned int adler, const unsigned char *buf, int len); /* 613 */
2463
+ int (*tcl_ZlibStreamInit) (Tcl_Interp *interp, int mode, int format, int level, Tcl_Obj *dictObj, Tcl_ZlibStream *zshandle); /* 614 */
2464
+ Tcl_Obj * (*tcl_ZlibStreamGetCommandName) (Tcl_ZlibStream zshandle); /* 615 */
2465
+ int (*tcl_ZlibStreamEof) (Tcl_ZlibStream zshandle); /* 616 */
2466
+ int (*tcl_ZlibStreamChecksum) (Tcl_ZlibStream zshandle); /* 617 */
2467
+ int (*tcl_ZlibStreamPut) (Tcl_ZlibStream zshandle, Tcl_Obj *data, int flush); /* 618 */
2468
+ int (*tcl_ZlibStreamGet) (Tcl_ZlibStream zshandle, Tcl_Obj *data, int count); /* 619 */
2469
+ int (*tcl_ZlibStreamClose) (Tcl_ZlibStream zshandle); /* 620 */
2470
+ int (*tcl_ZlibStreamReset) (Tcl_ZlibStream zshandle); /* 621 */
2471
+ void (*tcl_SetStartupScript) (Tcl_Obj *path, const char *encoding); /* 622 */
2472
+ Tcl_Obj * (*tcl_GetStartupScript) (const char **encodingPtr); /* 623 */
2473
+ int (*tcl_CloseEx) (Tcl_Interp *interp, Tcl_Channel chan, int flags); /* 624 */
2474
+ int (*tcl_NRExprObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_Obj *resultPtr); /* 625 */
2475
+ int (*tcl_NRSubstObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int flags); /* 626 */
2476
+ int (*tcl_LoadFile) (Tcl_Interp *interp, Tcl_Obj *pathPtr, const char *const symv[], int flags, void *procPtrs, Tcl_LoadHandle *handlePtr); /* 627 */
2477
+ void * (*tcl_FindSymbol) (Tcl_Interp *interp, Tcl_LoadHandle handle, const char *symbol); /* 628 */
2478
+ int (*tcl_FSUnloadFile) (Tcl_Interp *interp, Tcl_LoadHandle handlePtr); /* 629 */
2479
+ void (*tcl_ZlibStreamSetCompressionDictionary) (Tcl_ZlibStream zhandle, Tcl_Obj *compressionDictionaryObj); /* 630 */
2480
+} TclStubs;
2481
+
2482
+#ifdef __cplusplus
2483
+extern "C" {
2484
+#endif
2485
+extern const TclStubs *tclStubsPtr;
2486
+#ifdef __cplusplus
2487
+}
2488
+#endif
2489
+
2490
+#if defined(USE_TCL_STUBS)
2491
+
2492
+/*
2493
+ * Inline function declarations:
2494
+ */
2495
+
2496
+#define Tcl_PkgProvideEx \
2497
+ (tclStubsPtr->tcl_PkgProvideEx) /* 0 */
2498
+#define Tcl_PkgRequireEx \
2499
+ (tclStubsPtr->tcl_PkgRequireEx) /* 1 */
2500
+#define Tcl_Panic \
2501
+ (tclStubsPtr->tcl_Panic) /* 2 */
2502
+#define Tcl_Alloc \
2503
+ (tclStubsPtr->tcl_Alloc) /* 3 */
2504
+#define Tcl_Free \
2505
+ (tclStubsPtr->tcl_Free) /* 4 */
2506
+#define Tcl_Realloc \
2507
+ (tclStubsPtr->tcl_Realloc) /* 5 */
2508
+#define Tcl_DbCkalloc \
2509
+ (tclStubsPtr->tcl_DbCkalloc) /* 6 */
2510
+#define Tcl_DbCkfree \
2511
+ (tclStubsPtr->tcl_DbCkfree) /* 7 */
2512
+#define Tcl_DbCkrealloc \
2513
+ (tclStubsPtr->tcl_DbCkrealloc) /* 8 */
2514
+#if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
2515
+#define Tcl_CreateFileHandler \
2516
+ (tclStubsPtr->tcl_CreateFileHandler) /* 9 */
2517
+#endif /* UNIX */
2518
+#ifdef MAC_OSX_TCL /* MACOSX */
2519
+#define Tcl_CreateFileHandler \
2520
+ (tclStubsPtr->tcl_CreateFileHandler) /* 9 */
2521
+#endif /* MACOSX */
2522
+#if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
2523
+#define Tcl_DeleteFileHandler \
2524
+ (tclStubsPtr->tcl_DeleteFileHandler) /* 10 */
2525
+#endif /* UNIX */
2526
+#ifdef MAC_OSX_TCL /* MACOSX */
2527
+#define Tcl_DeleteFileHandler \
2528
+ (tclStubsPtr->tcl_DeleteFileHandler) /* 10 */
2529
+#endif /* MACOSX */
2530
+#define Tcl_SetTimer \
2531
+ (tclStubsPtr->tcl_SetTimer) /* 11 */
2532
+#define Tcl_Sleep \
2533
+ (tclStubsPtr->tcl_Sleep) /* 12 */
2534
+#define Tcl_WaitForEvent \
2535
+ (tclStubsPtr->tcl_WaitForEvent) /* 13 */
2536
+#define Tcl_AppendAllObjTypes \
2537
+ (tclStubsPtr->tcl_AppendAllObjTypes) /* 14 */
2538
+#define Tcl_AppendStringsToObj \
2539
+ (tclStubsPtr->tcl_AppendStringsToObj) /* 15 */
2540
+#define Tcl_AppendToObj \
2541
+ (tclStubsPtr->tcl_AppendToObj) /* 16 */
2542
+#define Tcl_ConcatObj \
2543
+ (tclStubsPtr->tcl_ConcatObj) /* 17 */
2544
+#define Tcl_ConvertToType \
2545
+ (tclStubsPtr->tcl_ConvertToType) /* 18 */
2546
+#define Tcl_DbDecrRefCount \
2547
+ (tclStubsPtr->tcl_DbDecrRefCount) /* 19 */
2548
+#define Tcl_DbIncrRefCount \
2549
+ (tclStubsPtr->tcl_DbIncrRefCount) /* 20 */
2550
+#define Tcl_DbIsShared \
2551
+ (tclStubsPtr->tcl_DbIsShared) /* 21 */
2552
+#define Tcl_DbNewBooleanObj \
2553
+ (tclStubsPtr->tcl_DbNewBooleanObj) /* 22 */
2554
+#define Tcl_DbNewByteArrayObj \
2555
+ (tclStubsPtr->tcl_DbNewByteArrayObj) /* 23 */
2556
+#define Tcl_DbNewDoubleObj \
2557
+ (tclStubsPtr->tcl_DbNewDoubleObj) /* 24 */
2558
+#define Tcl_DbNewListObj \
2559
+ (tclStubsPtr->tcl_DbNewListObj) /* 25 */
2560
+#define Tcl_DbNewLongObj \
2561
+ (tclStubsPtr->tcl_DbNewLongObj) /* 26 */
2562
+#define Tcl_DbNewObj \
2563
+ (tclStubsPtr->tcl_DbNewObj) /* 27 */
2564
+#define Tcl_DbNewStringObj \
2565
+ (tclStubsPtr->tcl_DbNewStringObj) /* 28 */
2566
+#define Tcl_DuplicateObj \
2567
+ (tclStubsPtr->tcl_DuplicateObj) /* 29 */
2568
+#define TclFreeObj \
2569
+ (tclStubsPtr->tclFreeObj) /* 30 */
2570
+#define Tcl_GetBoolean \
2571
+ (tclStubsPtr->tcl_GetBoolean) /* 31 */
2572
+#define Tcl_GetBooleanFromObj \
2573
+ (tclStubsPtr->tcl_GetBooleanFromObj) /* 32 */
2574
+#define Tcl_GetByteArrayFromObj \
2575
+ (tclStubsPtr->tcl_GetByteArrayFromObj) /* 33 */
2576
+#define Tcl_GetDouble \
2577
+ (tclStubsPtr->tcl_GetDouble) /* 34 */
2578
+#define Tcl_GetDoubleFromObj \
2579
+ (tclStubsPtr->tcl_GetDoubleFromObj) /* 35 */
2580
+#define Tcl_GetIndexFromObj \
2581
+ (tclStubsPtr->tcl_GetIndexFromObj) /* 36 */
2582
+#define Tcl_GetInt \
2583
+ (tclStubsPtr->tcl_GetInt) /* 37 */
2584
+#define Tcl_GetIntFromObj \
2585
+ (tclStubsPtr->tcl_GetIntFromObj) /* 38 */
2586
+#define Tcl_GetLongFromObj \
2587
+ (tclStubsPtr->tcl_GetLongFromObj) /* 39 */
2588
+#define Tcl_GetObjType \
2589
+ (tclStubsPtr->tcl_GetObjType) /* 40 */
2590
+#define Tcl_GetStringFromObj \
2591
+ (tclStubsPtr->tcl_GetStringFromObj) /* 41 */
2592
+#define Tcl_InvalidateStringRep \
2593
+ (tclStubsPtr->tcl_InvalidateStringRep) /* 42 */
2594
+#define Tcl_ListObjAppendList \
2595
+ (tclStubsPtr->tcl_ListObjAppendList) /* 43 */
2596
+#define Tcl_ListObjAppendElement \
2597
+ (tclStubsPtr->tcl_ListObjAppendElement) /* 44 */
2598
+#define Tcl_ListObjGetElements \
2599
+ (tclStubsPtr->tcl_ListObjGetElements) /* 45 */
2600
+#define Tcl_ListObjIndex \
2601
+ (tclStubsPtr->tcl_ListObjIndex) /* 46 */
2602
+#define Tcl_ListObjLength \
2603
+ (tclStubsPtr->tcl_ListObjLength) /* 47 */
2604
+#define Tcl_ListObjReplace \
2605
+ (tclStubsPtr->tcl_ListObjReplace) /* 48 */
2606
+#define Tcl_NewBooleanObj \
2607
+ (tclStubsPtr->tcl_NewBooleanObj) /* 49 */
2608
+#define Tcl_NewByteArrayObj \
2609
+ (tclStubsPtr->tcl_NewByteArrayObj) /* 50 */
2610
+#define Tcl_NewDoubleObj \
2611
+ (tclStubsPtr->tcl_NewDoubleObj) /* 51 */
2612
+#define Tcl_NewIntObj \
2613
+ (tclStubsPtr->tcl_NewIntObj) /* 52 */
2614
+#define Tcl_NewListObj \
2615
+ (tclStubsPtr->tcl_NewListObj) /* 53 */
2616
+#define Tcl_NewLongObj \
2617
+ (tclStubsPtr->tcl_NewLongObj) /* 54 */
2618
+#define Tcl_NewObj \
2619
+ (tclStubsPtr->tcl_NewObj) /* 55 */
2620
+#define Tcl_NewStringObj \
2621
+ (tclStubsPtr->tcl_NewStringObj) /* 56 */
2622
+#define Tcl_SetBooleanObj \
2623
+ (tclStubsPtr->tcl_SetBooleanObj) /* 57 */
2624
+#define Tcl_SetByteArrayLength \
2625
+ (tclStubsPtr->tcl_SetByteArrayLength) /* 58 */
2626
+#define Tcl_SetByteArrayObj \
2627
+ (tclStubsPtr->tcl_SetByteArrayObj) /* 59 */
2628
+#define Tcl_SetDoubleObj \
2629
+ (tclStubsPtr->tcl_SetDoubleObj) /* 60 */
2630
+#define Tcl_SetIntObj \
2631
+ (tclStubsPtr->tcl_SetIntObj) /* 61 */
2632
+#define Tcl_SetListObj \
2633
+ (tclStubsPtr->tcl_SetListObj) /* 62 */
2634
+#define Tcl_SetLongObj \
2635
+ (tclStubsPtr->tcl_SetLongObj) /* 63 */
2636
+#define Tcl_SetObjLength \
2637
+ (tclStubsPtr->tcl_SetObjLength) /* 64 */
2638
+#define Tcl_SetStringObj \
2639
+ (tclStubsPtr->tcl_SetStringObj) /* 65 */
2640
+#define Tcl_AddErrorInfo \
2641
+ (tclStubsPtr->tcl_AddErrorInfo) /* 66 */
2642
+#define Tcl_AddObjErrorInfo \
2643
+ (tclStubsPtr->tcl_AddObjErrorInfo) /* 67 */
2644
+#define Tcl_AllowExceptions \
2645
+ (tclStubsPtr->tcl_AllowExceptions) /* 68 */
2646
+#define Tcl_AppendElement \
2647
+ (tclStubsPtr->tcl_AppendElement) /* 69 */
2648
+#define Tcl_AppendResult \
2649
+ (tclStubsPtr->tcl_AppendResult) /* 70 */
2650
+#define Tcl_AsyncCreate \
2651
+ (tclStubsPtr->tcl_AsyncCreate) /* 71 */
2652
+#define Tcl_AsyncDelete \
2653
+ (tclStubsPtr->tcl_AsyncDelete) /* 72 */
2654
+#define Tcl_AsyncInvoke \
2655
+ (tclStubsPtr->tcl_AsyncInvoke) /* 73 */
2656
+#define Tcl_AsyncMark \
2657
+ (tclStubsPtr->tcl_AsyncMark) /* 74 */
2658
+#define Tcl_AsyncReady \
2659
+ (tclStubsPtr->tcl_AsyncReady) /* 75 */
2660
+#define Tcl_BackgroundError \
2661
+ (tclStubsPtr->tcl_BackgroundError) /* 76 */
2662
+#define Tcl_Backslash \
2663
+ (tclStubsPtr->tcl_Backslash) /* 77 */
2664
+#define Tcl_BadChannelOption \
2665
+ (tclStubsPtr->tcl_BadChannelOption) /* 78 */
2666
+#define Tcl_CallWhenDeleted \
2667
+ (tclStubsPtr->tcl_CallWhenDeleted) /* 79 */
2668
+#define Tcl_CancelIdleCall \
2669
+ (tclStubsPtr->tcl_CancelIdleCall) /* 80 */
2670
+#define Tcl_Close \
2671
+ (tclStubsPtr->tcl_Close) /* 81 */
2672
+#define Tcl_CommandComplete \
2673
+ (tclStubsPtr->tcl_CommandComplete) /* 82 */
2674
+#define Tcl_Concat \
2675
+ (tclStubsPtr->tcl_Concat) /* 83 */
2676
+#define Tcl_ConvertElement \
2677
+ (tclStubsPtr->tcl_ConvertElement) /* 84 */
2678
+#define Tcl_ConvertCountedElement \
2679
+ (tclStubsPtr->tcl_ConvertCountedElement) /* 85 */
2680
+#define Tcl_CreateAlias \
2681
+ (tclStubsPtr->tcl_CreateAlias) /* 86 */
2682
+#define Tcl_CreateAliasObj \
2683
+ (tclStubsPtr->tcl_CreateAliasObj) /* 87 */
2684
+#define Tcl_CreateChannel \
2685
+ (tclStubsPtr->tcl_CreateChannel) /* 88 */
2686
+#define Tcl_CreateChannelHandler \
2687
+ (tclStubsPtr->tcl_CreateChannelHandler) /* 89 */
2688
+#define Tcl_CreateCloseHandler \
2689
+ (tclStubsPtr->tcl_CreateCloseHandler) /* 90 */
2690
+#define Tcl_CreateCommand \
2691
+ (tclStubsPtr->tcl_CreateCommand) /* 91 */
2692
+#define Tcl_CreateEventSource \
2693
+ (tclStubsPtr->tcl_CreateEventSource) /* 92 */
2694
+#define Tcl_CreateExitHandler \
2695
+ (tclStubsPtr->tcl_CreateExitHandler) /* 93 */
2696
+#define Tcl_CreateInterp \
2697
+ (tclStubsPtr->tcl_CreateInterp) /* 94 */
2698
+#define Tcl_CreateMathFunc \
2699
+ (tclStubsPtr->tcl_CreateMathFunc) /* 95 */
2700
+#define Tcl_CreateObjCommand \
2701
+ (tclStubsPtr->tcl_CreateObjCommand) /* 96 */
2702
+#define Tcl_CreateSlave \
2703
+ (tclStubsPtr->tcl_CreateSlave) /* 97 */
2704
+#define Tcl_CreateTimerHandler \
2705
+ (tclStubsPtr->tcl_CreateTimerHandler) /* 98 */
2706
+#define Tcl_CreateTrace \
2707
+ (tclStubsPtr->tcl_CreateTrace) /* 99 */
2708
+#define Tcl_DeleteAssocData \
2709
+ (tclStubsPtr->tcl_DeleteAssocData) /* 100 */
2710
+#define Tcl_DeleteChannelHandler \
2711
+ (tclStubsPtr->tcl_DeleteChannelHandler) /* 101 */
2712
+#define Tcl_DeleteCloseHandler \
2713
+ (tclStubsPtr->tcl_DeleteCloseHandler) /* 102 */
2714
+#define Tcl_DeleteCommand \
2715
+ (tclStubsPtr->tcl_DeleteCommand) /* 103 */
2716
+#define Tcl_DeleteCommandFromToken \
2717
+ (tclStubsPtr->tcl_DeleteCommandFromToken) /* 104 */
2718
+#define Tcl_DeleteEvents \
2719
+ (tclStubsPtr->tcl_DeleteEvents) /* 105 */
2720
+#define Tcl_DeleteEventSource \
2721
+ (tclStubsPtr->tcl_DeleteEventSource) /* 106 */
2722
+#define Tcl_DeleteExitHandler \
2723
+ (tclStubsPtr->tcl_DeleteExitHandler) /* 107 */
2724
+#define Tcl_DeleteHashEntry \
2725
+ (tclStubsPtr->tcl_DeleteHashEntry) /* 108 */
2726
+#define Tcl_DeleteHashTable \
2727
+ (tclStubsPtr->tcl_DeleteHashTable) /* 109 */
2728
+#define Tcl_DeleteInterp \
2729
+ (tclStubsPtr->tcl_DeleteInterp) /* 110 */
2730
+#define Tcl_DetachPids \
2731
+ (tclStubsPtr->tcl_DetachPids) /* 111 */
2732
+#define Tcl_DeleteTimerHandler \
2733
+ (tclStubsPtr->tcl_DeleteTimerHandler) /* 112 */
2734
+#define Tcl_DeleteTrace \
2735
+ (tclStubsPtr->tcl_DeleteTrace) /* 113 */
2736
+#define Tcl_DontCallWhenDeleted \
2737
+ (tclStubsPtr->tcl_DontCallWhenDeleted) /* 114 */
2738
+#define Tcl_DoOneEvent \
2739
+ (tclStubsPtr->tcl_DoOneEvent) /* 115 */
2740
+#define Tcl_DoWhenIdle \
2741
+ (tclStubsPtr->tcl_DoWhenIdle) /* 116 */
2742
+#define Tcl_DStringAppend \
2743
+ (tclStubsPtr->tcl_DStringAppend) /* 117 */
2744
+#define Tcl_DStringAppendElement \
2745
+ (tclStubsPtr->tcl_DStringAppendElement) /* 118 */
2746
+#define Tcl_DStringEndSublist \
2747
+ (tclStubsPtr->tcl_DStringEndSublist) /* 119 */
2748
+#define Tcl_DStringFree \
2749
+ (tclStubsPtr->tcl_DStringFree) /* 120 */
2750
+#define Tcl_DStringGetResult \
2751
+ (tclStubsPtr->tcl_DStringGetResult) /* 121 */
2752
+#define Tcl_DStringInit \
2753
+ (tclStubsPtr->tcl_DStringInit) /* 122 */
2754
+#define Tcl_DStringResult \
2755
+ (tclStubsPtr->tcl_DStringResult) /* 123 */
2756
+#define Tcl_DStringSetLength \
2757
+ (tclStubsPtr->tcl_DStringSetLength) /* 124 */
2758
+#define Tcl_DStringStartSublist \
2759
+ (tclStubsPtr->tcl_DStringStartSublist) /* 125 */
2760
+#define Tcl_Eof \
2761
+ (tclStubsPtr->tcl_Eof) /* 126 */
2762
+#define Tcl_ErrnoId \
2763
+ (tclStubsPtr->tcl_ErrnoId) /* 127 */
2764
+#define Tcl_ErrnoMsg \
2765
+ (tclStubsPtr->tcl_ErrnoMsg) /* 128 */
2766
+#define Tcl_Eval \
2767
+ (tclStubsPtr->tcl_Eval) /* 129 */
2768
+#define Tcl_EvalFile \
2769
+ (tclStubsPtr->tcl_EvalFile) /* 130 */
2770
+#define Tcl_EvalObj \
2771
+ (tclStubsPtr->tcl_EvalObj) /* 131 */
2772
+#define Tcl_EventuallyFree \
2773
+ (tclStubsPtr->tcl_EventuallyFree) /* 132 */
2774
+#define Tcl_Exit \
2775
+ (tclStubsPtr->tcl_Exit) /* 133 */
2776
+#define Tcl_ExposeCommand \
2777
+ (tclStubsPtr->tcl_ExposeCommand) /* 134 */
2778
+#define Tcl_ExprBoolean \
2779
+ (tclStubsPtr->tcl_ExprBoolean) /* 135 */
2780
+#define Tcl_ExprBooleanObj \
2781
+ (tclStubsPtr->tcl_ExprBooleanObj) /* 136 */
2782
+#define Tcl_ExprDouble \
2783
+ (tclStubsPtr->tcl_ExprDouble) /* 137 */
2784
+#define Tcl_ExprDoubleObj \
2785
+ (tclStubsPtr->tcl_ExprDoubleObj) /* 138 */
2786
+#define Tcl_ExprLong \
2787
+ (tclStubsPtr->tcl_ExprLong) /* 139 */
2788
+#define Tcl_ExprLongObj \
2789
+ (tclStubsPtr->tcl_ExprLongObj) /* 140 */
2790
+#define Tcl_ExprObj \
2791
+ (tclStubsPtr->tcl_ExprObj) /* 141 */
2792
+#define Tcl_ExprString \
2793
+ (tclStubsPtr->tcl_ExprString) /* 142 */
2794
+#define Tcl_Finalize \
2795
+ (tclStubsPtr->tcl_Finalize) /* 143 */
2796
+#define Tcl_FindExecutable \
2797
+ (tclStubsPtr->tcl_FindExecutable) /* 144 */
2798
+#define Tcl_FirstHashEntry \
2799
+ (tclStubsPtr->tcl_FirstHashEntry) /* 145 */
2800
+#define Tcl_Flush \
2801
+ (tclStubsPtr->tcl_Flush) /* 146 */
2802
+#define Tcl_FreeResult \
2803
+ (tclStubsPtr->tcl_FreeResult) /* 147 */
2804
+#define Tcl_GetAlias \
2805
+ (tclStubsPtr->tcl_GetAlias) /* 148 */
2806
+#define Tcl_GetAliasObj \
2807
+ (tclStubsPtr->tcl_GetAliasObj) /* 149 */
2808
+#define Tcl_GetAssocData \
2809
+ (tclStubsPtr->tcl_GetAssocData) /* 150 */
2810
+#define Tcl_GetChannel \
2811
+ (tclStubsPtr->tcl_GetChannel) /* 151 */
2812
+#define Tcl_GetChannelBufferSize \
2813
+ (tclStubsPtr->tcl_GetChannelBufferSize) /* 152 */
2814
+#define Tcl_GetChannelHandle \
2815
+ (tclStubsPtr->tcl_GetChannelHandle) /* 153 */
2816
+#define Tcl_GetChannelInstanceData \
2817
+ (tclStubsPtr->tcl_GetChannelInstanceData) /* 154 */
2818
+#define Tcl_GetChannelMode \
2819
+ (tclStubsPtr->tcl_GetChannelMode) /* 155 */
2820
+#define Tcl_GetChannelName \
2821
+ (tclStubsPtr->tcl_GetChannelName) /* 156 */
2822
+#define Tcl_GetChannelOption \
2823
+ (tclStubsPtr->tcl_GetChannelOption) /* 157 */
2824
+#define Tcl_GetChannelType \
2825
+ (tclStubsPtr->tcl_GetChannelType) /* 158 */
2826
+#define Tcl_GetCommandInfo \
2827
+ (tclStubsPtr->tcl_GetCommandInfo) /* 159 */
2828
+#define Tcl_GetCommandName \
2829
+ (tclStubsPtr->tcl_GetCommandName) /* 160 */
2830
+#define Tcl_GetErrno \
2831
+ (tclStubsPtr->tcl_GetErrno) /* 161 */
2832
+#define Tcl_GetHostName \
2833
+ (tclStubsPtr->tcl_GetHostName) /* 162 */
2834
+#define Tcl_GetInterpPath \
2835
+ (tclStubsPtr->tcl_GetInterpPath) /* 163 */
2836
+#define Tcl_GetMaster \
2837
+ (tclStubsPtr->tcl_GetMaster) /* 164 */
2838
+#define Tcl_GetNameOfExecutable \
2839
+ (tclStubsPtr->tcl_GetNameOfExecutable) /* 165 */
2840
+#define Tcl_GetObjResult \
2841
+ (tclStubsPtr->tcl_GetObjResult) /* 166 */
2842
+#if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
2843
+#define Tcl_GetOpenFile \
2844
+ (tclStubsPtr->tcl_GetOpenFile) /* 167 */
2845
+#endif /* UNIX */
2846
+#ifdef MAC_OSX_TCL /* MACOSX */
2847
+#define Tcl_GetOpenFile \
2848
+ (tclStubsPtr->tcl_GetOpenFile) /* 167 */
2849
+#endif /* MACOSX */
2850
+#define Tcl_GetPathType \
2851
+ (tclStubsPtr->tcl_GetPathType) /* 168 */
2852
+#define Tcl_Gets \
2853
+ (tclStubsPtr->tcl_Gets) /* 169 */
2854
+#define Tcl_GetsObj \
2855
+ (tclStubsPtr->tcl_GetsObj) /* 170 */
2856
+#define Tcl_GetServiceMode \
2857
+ (tclStubsPtr->tcl_GetServiceMode) /* 171 */
2858
+#define Tcl_GetSlave \
2859
+ (tclStubsPtr->tcl_GetSlave) /* 172 */
2860
+#define Tcl_GetStdChannel \
2861
+ (tclStubsPtr->tcl_GetStdChannel) /* 173 */
2862
+#define Tcl_GetStringResult \
2863
+ (tclStubsPtr->tcl_GetStringResult) /* 174 */
2864
+#define Tcl_GetVar \
2865
+ (tclStubsPtr->tcl_GetVar) /* 175 */
2866
+#define Tcl_GetVar2 \
2867
+ (tclStubsPtr->tcl_GetVar2) /* 176 */
2868
+#define Tcl_GlobalEval \
2869
+ (tclStubsPtr->tcl_GlobalEval) /* 177 */
2870
+#define Tcl_GlobalEvalObj \
2871
+ (tclStubsPtr->tcl_GlobalEvalObj) /* 178 */
2872
+#define Tcl_HideCommand \
2873
+ (tclStubsPtr->tcl_HideCommand) /* 179 */
2874
+#define Tcl_Init \
2875
+ (tclStubsPtr->tcl_Init) /* 180 */
2876
+#define Tcl_InitHashTable \
2877
+ (tclStubsPtr->tcl_InitHashTable) /* 181 */
2878
+#define Tcl_InputBlocked \
2879
+ (tclStubsPtr->tcl_InputBlocked) /* 182 */
2880
+#define Tcl_InputBuffered \
2881
+ (tclStubsPtr->tcl_InputBuffered) /* 183 */
2882
+#define Tcl_InterpDeleted \
2883
+ (tclStubsPtr->tcl_InterpDeleted) /* 184 */
2884
+#define Tcl_IsSafe \
2885
+ (tclStubsPtr->tcl_IsSafe) /* 185 */
2886
+#define Tcl_JoinPath \
2887
+ (tclStubsPtr->tcl_JoinPath) /* 186 */
2888
+#define Tcl_LinkVar \
2889
+ (tclStubsPtr->tcl_LinkVar) /* 187 */
2890
+/* Slot 188 is reserved */
2891
+#define Tcl_MakeFileChannel \
2892
+ (tclStubsPtr->tcl_MakeFileChannel) /* 189 */
2893
+#define Tcl_MakeSafe \
2894
+ (tclStubsPtr->tcl_MakeSafe) /* 190 */
2895
+#define Tcl_MakeTcpClientChannel \
2896
+ (tclStubsPtr->tcl_MakeTcpClientChannel) /* 191 */
2897
+#define Tcl_Merge \
2898
+ (tclStubsPtr->tcl_Merge) /* 192 */
2899
+#define Tcl_NextHashEntry \
2900
+ (tclStubsPtr->tcl_NextHashEntry) /* 193 */
2901
+#define Tcl_NotifyChannel \
2902
+ (tclStubsPtr->tcl_NotifyChannel) /* 194 */
2903
+#define Tcl_ObjGetVar2 \
2904
+ (tclStubsPtr->tcl_ObjGetVar2) /* 195 */
2905
+#define Tcl_ObjSetVar2 \
2906
+ (tclStubsPtr->tcl_ObjSetVar2) /* 196 */
2907
+#define Tcl_OpenCommandChannel \
2908
+ (tclStubsPtr->tcl_OpenCommandChannel) /* 197 */
2909
+#define Tcl_OpenFileChannel \
2910
+ (tclStubsPtr->tcl_OpenFileChannel) /* 198 */
2911
+#define Tcl_OpenTcpClient \
2912
+ (tclStubsPtr->tcl_OpenTcpClient) /* 199 */
2913
+#define Tcl_OpenTcpServer \
2914
+ (tclStubsPtr->tcl_OpenTcpServer) /* 200 */
2915
+#define Tcl_Preserve \
2916
+ (tclStubsPtr->tcl_Preserve) /* 201 */
2917
+#define Tcl_PrintDouble \
2918
+ (tclStubsPtr->tcl_PrintDouble) /* 202 */
2919
+#define Tcl_PutEnv \
2920
+ (tclStubsPtr->tcl_PutEnv) /* 203 */
2921
+#define Tcl_PosixError \
2922
+ (tclStubsPtr->tcl_PosixError) /* 204 */
2923
+#define Tcl_QueueEvent \
2924
+ (tclStubsPtr->tcl_QueueEvent) /* 205 */
2925
+#define Tcl_Read \
2926
+ (tclStubsPtr->tcl_Read) /* 206 */
2927
+#define Tcl_ReapDetachedProcs \
2928
+ (tclStubsPtr->tcl_ReapDetachedProcs) /* 207 */
2929
+#define Tcl_RecordAndEval \
2930
+ (tclStubsPtr->tcl_RecordAndEval) /* 208 */
2931
+#define Tcl_RecordAndEvalObj \
2932
+ (tclStubsPtr->tcl_RecordAndEvalObj) /* 209 */
2933
+#define Tcl_RegisterChannel \
2934
+ (tclStubsPtr->tcl_RegisterChannel) /* 210 */
2935
+#define Tcl_RegisterObjType \
2936
+ (tclStubsPtr->tcl_RegisterObjType) /* 211 */
2937
+#define Tcl_RegExpCompile \
2938
+ (tclStubsPtr->tcl_RegExpCompile) /* 212 */
2939
+#define Tcl_RegExpExec \
2940
+ (tclStubsPtr->tcl_RegExpExec) /* 213 */
2941
+#define Tcl_RegExpMatch \
2942
+ (tclStubsPtr->tcl_RegExpMatch) /* 214 */
2943
+#define Tcl_RegExpRange \
2944
+ (tclStubsPtr->tcl_RegExpRange) /* 215 */
2945
+#define Tcl_Release \
2946
+ (tclStubsPtr->tcl_Release) /* 216 */
2947
+#define Tcl_ResetResult \
2948
+ (tclStubsPtr->tcl_ResetResult) /* 217 */
2949
+#define Tcl_ScanElement \
2950
+ (tclStubsPtr->tcl_ScanElement) /* 218 */
2951
+#define Tcl_ScanCountedElement \
2952
+ (tclStubsPtr->tcl_ScanCountedElement) /* 219 */
2953
+#define Tcl_SeekOld \
2954
+ (tclStubsPtr->tcl_SeekOld) /* 220 */
2955
+#define Tcl_ServiceAll \
2956
+ (tclStubsPtr->tcl_ServiceAll) /* 221 */
2957
+#define Tcl_ServiceEvent \
2958
+ (tclStubsPtr->tcl_ServiceEvent) /* 222 */
2959
+#define Tcl_SetAssocData \
2960
+ (tclStubsPtr->tcl_SetAssocData) /* 223 */
2961
+#define Tcl_SetChannelBufferSize \
2962
+ (tclStubsPtr->tcl_SetChannelBufferSize) /* 224 */
2963
+#define Tcl_SetChannelOption \
2964
+ (tclStubsPtr->tcl_SetChannelOption) /* 225 */
2965
+#define Tcl_SetCommandInfo \
2966
+ (tclStubsPtr->tcl_SetCommandInfo) /* 226 */
2967
+#define Tcl_SetErrno \
2968
+ (tclStubsPtr->tcl_SetErrno) /* 227 */
2969
+#define Tcl_SetErrorCode \
2970
+ (tclStubsPtr->tcl_SetErrorCode) /* 228 */
2971
+#define Tcl_SetMaxBlockTime \
2972
+ (tclStubsPtr->tcl_SetMaxBlockTime) /* 229 */
2973
+#define Tcl_SetPanicProc \
2974
+ (tclStubsPtr->tcl_SetPanicProc) /* 230 */
2975
+#define Tcl_SetRecursionLimit \
2976
+ (tclStubsPtr->tcl_SetRecursionLimit) /* 231 */
2977
+#define Tcl_SetResult \
2978
+ (tclStubsPtr->tcl_SetResult) /* 232 */
2979
+#define Tcl_SetServiceMode \
2980
+ (tclStubsPtr->tcl_SetServiceMode) /* 233 */
2981
+#define Tcl_SetObjErrorCode \
2982
+ (tclStubsPtr->tcl_SetObjErrorCode) /* 234 */
2983
+#define Tcl_SetObjResult \
2984
+ (tclStubsPtr->tcl_SetObjResult) /* 235 */
2985
+#define Tcl_SetStdChannel \
2986
+ (tclStubsPtr->tcl_SetStdChannel) /* 236 */
2987
+#define Tcl_SetVar \
2988
+ (tclStubsPtr->tcl_SetVar) /* 237 */
2989
+#define Tcl_SetVar2 \
2990
+ (tclStubsPtr->tcl_SetVar2) /* 238 */
2991
+#define Tcl_SignalId \
2992
+ (tclStubsPtr->tcl_SignalId) /* 239 */
2993
+#define Tcl_SignalMsg \
2994
+ (tclStubsPtr->tcl_SignalMsg) /* 240 */
2995
+#define Tcl_SourceRCFile \
2996
+ (tclStubsPtr->tcl_SourceRCFile) /* 241 */
2997
+#define Tcl_SplitList \
2998
+ (tclStubsPtr->tcl_SplitList) /* 242 */
2999
+#define Tcl_SplitPath \
3000
+ (tclStubsPtr->tcl_SplitPath) /* 243 */
3001
+#define Tcl_StaticPackage \
3002
+ (tclStubsPtr->tcl_StaticPackage) /* 244 */
3003
+#define Tcl_StringMatch \
3004
+ (tclStubsPtr->tcl_StringMatch) /* 245 */
3005
+#define Tcl_TellOld \
3006
+ (tclStubsPtr->tcl_TellOld) /* 246 */
3007
+#define Tcl_TraceVar \
3008
+ (tclStubsPtr->tcl_TraceVar) /* 247 */
3009
+#define Tcl_TraceVar2 \
3010
+ (tclStubsPtr->tcl_TraceVar2) /* 248 */
3011
+#define Tcl_TranslateFileName \
3012
+ (tclStubsPtr->tcl_TranslateFileName) /* 249 */
3013
+#define Tcl_Ungets \
3014
+ (tclStubsPtr->tcl_Ungets) /* 250 */
3015
+#define Tcl_UnlinkVar \
3016
+ (tclStubsPtr->tcl_UnlinkVar) /* 251 */
3017
+#define Tcl_UnregisterChannel \
3018
+ (tclStubsPtr->tcl_UnregisterChannel) /* 252 */
3019
+#define Tcl_UnsetVar \
3020
+ (tclStubsPtr->tcl_UnsetVar) /* 253 */
3021
+#define Tcl_UnsetVar2 \
3022
+ (tclStubsPtr->tcl_UnsetVar2) /* 254 */
3023
+#define Tcl_UntraceVar \
3024
+ (tclStubsPtr->tcl_UntraceVar) /* 255 */
3025
+#define Tcl_UntraceVar2 \
3026
+ (tclStubsPtr->tcl_UntraceVar2) /* 256 */
3027
+#define Tcl_UpdateLinkedVar \
3028
+ (tclStubsPtr->tcl_UpdateLinkedVar) /* 257 */
3029
+#define Tcl_UpVar \
3030
+ (tclStubsPtr->tcl_UpVar) /* 258 */
3031
+#define Tcl_UpVar2 \
3032
+ (tclStubsPtr->tcl_UpVar2) /* 259 */
3033
+#define Tcl_VarEval \
3034
+ (tclStubsPtr->tcl_VarEval) /* 260 */
3035
+#define Tcl_VarTraceInfo \
3036
+ (tclStubsPtr->tcl_VarTraceInfo) /* 261 */
3037
+#define Tcl_VarTraceInfo2 \
3038
+ (tclStubsPtr->tcl_VarTraceInfo2) /* 262 */
3039
+#define Tcl_Write \
3040
+ (tclStubsPtr->tcl_Write) /* 263 */
3041
+#define Tcl_WrongNumArgs \
3042
+ (tclStubsPtr->tcl_WrongNumArgs) /* 264 */
3043
+#define Tcl_DumpActiveMemory \
3044
+ (tclStubsPtr->tcl_DumpActiveMemory) /* 265 */
3045
+#define Tcl_ValidateAllMemory \
3046
+ (tclStubsPtr->tcl_ValidateAllMemory) /* 266 */
3047
+#define Tcl_AppendResultVA \
3048
+ (tclStubsPtr->tcl_AppendResultVA) /* 267 */
3049
+#define Tcl_AppendStringsToObjVA \
3050
+ (tclStubsPtr->tcl_AppendStringsToObjVA) /* 268 */
3051
+#define Tcl_HashStats \
3052
+ (tclStubsPtr->tcl_HashStats) /* 269 */
3053
+#define Tcl_ParseVar \
3054
+ (tclStubsPtr->tcl_ParseVar) /* 270 */
3055
+#define Tcl_PkgPresent \
3056
+ (tclStubsPtr->tcl_PkgPresent) /* 271 */
3057
+#define Tcl_PkgPresentEx \
3058
+ (tclStubsPtr->tcl_PkgPresentEx) /* 272 */
3059
+#define Tcl_PkgProvide \
3060
+ (tclStubsPtr->tcl_PkgProvide) /* 273 */
3061
+#define Tcl_PkgRequire \
3062
+ (tclStubsPtr->tcl_PkgRequire) /* 274 */
3063
+#define Tcl_SetErrorCodeVA \
3064
+ (tclStubsPtr->tcl_SetErrorCodeVA) /* 275 */
3065
+#define Tcl_VarEvalVA \
3066
+ (tclStubsPtr->tcl_VarEvalVA) /* 276 */
3067
+#define Tcl_WaitPid \
3068
+ (tclStubsPtr->tcl_WaitPid) /* 277 */
3069
+#define Tcl_PanicVA \
3070
+ (tclStubsPtr->tcl_PanicVA) /* 278 */
3071
+#define Tcl_GetVersion \
3072
+ (tclStubsPtr->tcl_GetVersion) /* 279 */
3073
+#define Tcl_InitMemory \
3074
+ (tclStubsPtr->tcl_InitMemory) /* 280 */
3075
+#define Tcl_StackChannel \
3076
+ (tclStubsPtr->tcl_StackChannel) /* 281 */
3077
+#define Tcl_UnstackChannel \
3078
+ (tclStubsPtr->tcl_UnstackChannel) /* 282 */
3079
+#define Tcl_GetStackedChannel \
3080
+ (tclStubsPtr->tcl_GetStackedChannel) /* 283 */
3081
+#define Tcl_SetMainLoop \
3082
+ (tclStubsPtr->tcl_SetMainLoop) /* 284 */
3083
+/* Slot 285 is reserved */
3084
+#define Tcl_AppendObjToObj \
3085
+ (tclStubsPtr->tcl_AppendObjToObj) /* 286 */
3086
+#define Tcl_CreateEncoding \
3087
+ (tclStubsPtr->tcl_CreateEncoding) /* 287 */
3088
+#define Tcl_CreateThreadExitHandler \
3089
+ (tclStubsPtr->tcl_CreateThreadExitHandler) /* 288 */
3090
+#define Tcl_DeleteThreadExitHandler \
3091
+ (tclStubsPtr->tcl_DeleteThreadExitHandler) /* 289 */
3092
+#define Tcl_DiscardResult \
3093
+ (tclStubsPtr->tcl_DiscardResult) /* 290 */
3094
+#define Tcl_EvalEx \
3095
+ (tclStubsPtr->tcl_EvalEx) /* 291 */
3096
+#define Tcl_EvalObjv \
3097
+ (tclStubsPtr->tcl_EvalObjv) /* 292 */
3098
+#define Tcl_EvalObjEx \
3099
+ (tclStubsPtr->tcl_EvalObjEx) /* 293 */
3100
+#define Tcl_ExitThread \
3101
+ (tclStubsPtr->tcl_ExitThread) /* 294 */
3102
+#define Tcl_ExternalToUtf \
3103
+ (tclStubsPtr->tcl_ExternalToUtf) /* 295 */
3104
+#define Tcl_ExternalToUtfDString \
3105
+ (tclStubsPtr->tcl_ExternalToUtfDString) /* 296 */
3106
+#define Tcl_FinalizeThread \
3107
+ (tclStubsPtr->tcl_FinalizeThread) /* 297 */
3108
+#define Tcl_FinalizeNotifier \
3109
+ (tclStubsPtr->tcl_FinalizeNotifier) /* 298 */
3110
+#define Tcl_FreeEncoding \
3111
+ (tclStubsPtr->tcl_FreeEncoding) /* 299 */
3112
+#define Tcl_GetCurrentThread \
3113
+ (tclStubsPtr->tcl_GetCurrentThread) /* 300 */
3114
+#define Tcl_GetEncoding \
3115
+ (tclStubsPtr->tcl_GetEncoding) /* 301 */
3116
+#define Tcl_GetEncodingName \
3117
+ (tclStubsPtr->tcl_GetEncodingName) /* 302 */
3118
+#define Tcl_GetEncodingNames \
3119
+ (tclStubsPtr->tcl_GetEncodingNames) /* 303 */
3120
+#define Tcl_GetIndexFromObjStruct \
3121
+ (tclStubsPtr->tcl_GetIndexFromObjStruct) /* 304 */
3122
+#define Tcl_GetThreadData \
3123
+ (tclStubsPtr->tcl_GetThreadData) /* 305 */
3124
+#define Tcl_GetVar2Ex \
3125
+ (tclStubsPtr->tcl_GetVar2Ex) /* 306 */
3126
+#define Tcl_InitNotifier \
3127
+ (tclStubsPtr->tcl_InitNotifier) /* 307 */
3128
+#define Tcl_MutexLock \
3129
+ (tclStubsPtr->tcl_MutexLock) /* 308 */
3130
+#define Tcl_MutexUnlock \
3131
+ (tclStubsPtr->tcl_MutexUnlock) /* 309 */
3132
+#define Tcl_ConditionNotify \
3133
+ (tclStubsPtr->tcl_ConditionNotify) /* 310 */
3134
+#define Tcl_ConditionWait \
3135
+ (tclStubsPtr->tcl_ConditionWait) /* 311 */
3136
+#define Tcl_NumUtfChars \
3137
+ (tclStubsPtr->tcl_NumUtfChars) /* 312 */
3138
+#define Tcl_ReadChars \
3139
+ (tclStubsPtr->tcl_ReadChars) /* 313 */
3140
+#define Tcl_RestoreResult \
3141
+ (tclStubsPtr->tcl_RestoreResult) /* 314 */
3142
+#define Tcl_SaveResult \
3143
+ (tclStubsPtr->tcl_SaveResult) /* 315 */
3144
+#define Tcl_SetSystemEncoding \
3145
+ (tclStubsPtr->tcl_SetSystemEncoding) /* 316 */
3146
+#define Tcl_SetVar2Ex \
3147
+ (tclStubsPtr->tcl_SetVar2Ex) /* 317 */
3148
+#define Tcl_ThreadAlert \
3149
+ (tclStubsPtr->tcl_ThreadAlert) /* 318 */
3150
+#define Tcl_ThreadQueueEvent \
3151
+ (tclStubsPtr->tcl_ThreadQueueEvent) /* 319 */
3152
+#define Tcl_UniCharAtIndex \
3153
+ (tclStubsPtr->tcl_UniCharAtIndex) /* 320 */
3154
+#define Tcl_UniCharToLower \
3155
+ (tclStubsPtr->tcl_UniCharToLower) /* 321 */
3156
+#define Tcl_UniCharToTitle \
3157
+ (tclStubsPtr->tcl_UniCharToTitle) /* 322 */
3158
+#define Tcl_UniCharToUpper \
3159
+ (tclStubsPtr->tcl_UniCharToUpper) /* 323 */
3160
+#define Tcl_UniCharToUtf \
3161
+ (tclStubsPtr->tcl_UniCharToUtf) /* 324 */
3162
+#define Tcl_UtfAtIndex \
3163
+ (tclStubsPtr->tcl_UtfAtIndex) /* 325 */
3164
+#define Tcl_UtfCharComplete \
3165
+ (tclStubsPtr->tcl_UtfCharComplete) /* 326 */
3166
+#define Tcl_UtfBackslash \
3167
+ (tclStubsPtr->tcl_UtfBackslash) /* 327 */
3168
+#define Tcl_UtfFindFirst \
3169
+ (tclStubsPtr->tcl_UtfFindFirst) /* 328 */
3170
+#define Tcl_UtfFindLast \
3171
+ (tclStubsPtr->tcl_UtfFindLast) /* 329 */
3172
+#define Tcl_UtfNext \
3173
+ (tclStubsPtr->tcl_UtfNext) /* 330 */
3174
+#define Tcl_UtfPrev \
3175
+ (tclStubsPtr->tcl_UtfPrev) /* 331 */
3176
+#define Tcl_UtfToExternal \
3177
+ (tclStubsPtr->tcl_UtfToExternal) /* 332 */
3178
+#define Tcl_UtfToExternalDString \
3179
+ (tclStubsPtr->tcl_UtfToExternalDString) /* 333 */
3180
+#define Tcl_UtfToLower \
3181
+ (tclStubsPtr->tcl_UtfToLower) /* 334 */
3182
+#define Tcl_UtfToTitle \
3183
+ (tclStubsPtr->tcl_UtfToTitle) /* 335 */
3184
+#define Tcl_UtfToUniChar \
3185
+ (tclStubsPtr->tcl_UtfToUniChar) /* 336 */
3186
+#define Tcl_UtfToUpper \
3187
+ (tclStubsPtr->tcl_UtfToUpper) /* 337 */
3188
+#define Tcl_WriteChars \
3189
+ (tclStubsPtr->tcl_WriteChars) /* 338 */
3190
+#define Tcl_WriteObj \
3191
+ (tclStubsPtr->tcl_WriteObj) /* 339 */
3192
+#define Tcl_GetString \
3193
+ (tclStubsPtr->tcl_GetString) /* 340 */
3194
+#define Tcl_GetDefaultEncodingDir \
3195
+ (tclStubsPtr->tcl_GetDefaultEncodingDir) /* 341 */
3196
+#define Tcl_SetDefaultEncodingDir \
3197
+ (tclStubsPtr->tcl_SetDefaultEncodingDir) /* 342 */
3198
+#define Tcl_AlertNotifier \
3199
+ (tclStubsPtr->tcl_AlertNotifier) /* 343 */
3200
+#define Tcl_ServiceModeHook \
3201
+ (tclStubsPtr->tcl_ServiceModeHook) /* 344 */
3202
+#define Tcl_UniCharIsAlnum \
3203
+ (tclStubsPtr->tcl_UniCharIsAlnum) /* 345 */
3204
+#define Tcl_UniCharIsAlpha \
3205
+ (tclStubsPtr->tcl_UniCharIsAlpha) /* 346 */
3206
+#define Tcl_UniCharIsDigit \
3207
+ (tclStubsPtr->tcl_UniCharIsDigit) /* 347 */
3208
+#define Tcl_UniCharIsLower \
3209
+ (tclStubsPtr->tcl_UniCharIsLower) /* 348 */
3210
+#define Tcl_UniCharIsSpace \
3211
+ (tclStubsPtr->tcl_UniCharIsSpace) /* 349 */
3212
+#define Tcl_UniCharIsUpper \
3213
+ (tclStubsPtr->tcl_UniCharIsUpper) /* 350 */
3214
+#define Tcl_UniCharIsWordChar \
3215
+ (tclStubsPtr->tcl_UniCharIsWordChar) /* 351 */
3216
+#define Tcl_UniCharLen \
3217
+ (tclStubsPtr->tcl_UniCharLen) /* 352 */
3218
+#define Tcl_UniCharNcmp \
3219
+ (tclStubsPtr->tcl_UniCharNcmp) /* 353 */
3220
+#define Tcl_UniCharToUtfDString \
3221
+ (tclStubsPtr->tcl_UniCharToUtfDString) /* 354 */
3222
+#define Tcl_UtfToUniCharDString \
3223
+ (tclStubsPtr->tcl_UtfToUniCharDString) /* 355 */
3224
+#define Tcl_GetRegExpFromObj \
3225
+ (tclStubsPtr->tcl_GetRegExpFromObj) /* 356 */
3226
+#define Tcl_EvalTokens \
3227
+ (tclStubsPtr->tcl_EvalTokens) /* 357 */
3228
+#define Tcl_FreeParse \
3229
+ (tclStubsPtr->tcl_FreeParse) /* 358 */
3230
+#define Tcl_LogCommandInfo \
3231
+ (tclStubsPtr->tcl_LogCommandInfo) /* 359 */
3232
+#define Tcl_ParseBraces \
3233
+ (tclStubsPtr->tcl_ParseBraces) /* 360 */
3234
+#define Tcl_ParseCommand \
3235
+ (tclStubsPtr->tcl_ParseCommand) /* 361 */
3236
+#define Tcl_ParseExpr \
3237
+ (tclStubsPtr->tcl_ParseExpr) /* 362 */
3238
+#define Tcl_ParseQuotedString \
3239
+ (tclStubsPtr->tcl_ParseQuotedString) /* 363 */
3240
+#define Tcl_ParseVarName \
3241
+ (tclStubsPtr->tcl_ParseVarName) /* 364 */
3242
+#define Tcl_GetCwd \
3243
+ (tclStubsPtr->tcl_GetCwd) /* 365 */
3244
+#define Tcl_Chdir \
3245
+ (tclStubsPtr->tcl_Chdir) /* 366 */
3246
+#define Tcl_Access \
3247
+ (tclStubsPtr->tcl_Access) /* 367 */
3248
+#define Tcl_Stat \
3249
+ (tclStubsPtr->tcl_Stat) /* 368 */
3250
+#define Tcl_UtfNcmp \
3251
+ (tclStubsPtr->tcl_UtfNcmp) /* 369 */
3252
+#define Tcl_UtfNcasecmp \
3253
+ (tclStubsPtr->tcl_UtfNcasecmp) /* 370 */
3254
+#define Tcl_StringCaseMatch \
3255
+ (tclStubsPtr->tcl_StringCaseMatch) /* 371 */
3256
+#define Tcl_UniCharIsControl \
3257
+ (tclStubsPtr->tcl_UniCharIsControl) /* 372 */
3258
+#define Tcl_UniCharIsGraph \
3259
+ (tclStubsPtr->tcl_UniCharIsGraph) /* 373 */
3260
+#define Tcl_UniCharIsPrint \
3261
+ (tclStubsPtr->tcl_UniCharIsPrint) /* 374 */
3262
+#define Tcl_UniCharIsPunct \
3263
+ (tclStubsPtr->tcl_UniCharIsPunct) /* 375 */
3264
+#define Tcl_RegExpExecObj \
3265
+ (tclStubsPtr->tcl_RegExpExecObj) /* 376 */
3266
+#define Tcl_RegExpGetInfo \
3267
+ (tclStubsPtr->tcl_RegExpGetInfo) /* 377 */
3268
+#define Tcl_NewUnicodeObj \
3269
+ (tclStubsPtr->tcl_NewUnicodeObj) /* 378 */
3270
+#define Tcl_SetUnicodeObj \
3271
+ (tclStubsPtr->tcl_SetUnicodeObj) /* 379 */
3272
+#define Tcl_GetCharLength \
3273
+ (tclStubsPtr->tcl_GetCharLength) /* 380 */
3274
+#define Tcl_GetUniChar \
3275
+ (tclStubsPtr->tcl_GetUniChar) /* 381 */
3276
+#define Tcl_GetUnicode \
3277
+ (tclStubsPtr->tcl_GetUnicode) /* 382 */
3278
+#define Tcl_GetRange \
3279
+ (tclStubsPtr->tcl_GetRange) /* 383 */
3280
+#define Tcl_AppendUnicodeToObj \
3281
+ (tclStubsPtr->tcl_AppendUnicodeToObj) /* 384 */
3282
+#define Tcl_RegExpMatchObj \
3283
+ (tclStubsPtr->tcl_RegExpMatchObj) /* 385 */
3284
+#define Tcl_SetNotifier \
3285
+ (tclStubsPtr->tcl_SetNotifier) /* 386 */
3286
+#define Tcl_GetAllocMutex \
3287
+ (tclStubsPtr->tcl_GetAllocMutex) /* 387 */
3288
+#define Tcl_GetChannelNames \
3289
+ (tclStubsPtr->tcl_GetChannelNames) /* 388 */
3290
+#define Tcl_GetChannelNamesEx \
3291
+ (tclStubsPtr->tcl_GetChannelNamesEx) /* 389 */
3292
+#define Tcl_ProcObjCmd \
3293
+ (tclStubsPtr->tcl_ProcObjCmd) /* 390 */
3294
+#define Tcl_ConditionFinalize \
3295
+ (tclStubsPtr->tcl_ConditionFinalize) /* 391 */
3296
+#define Tcl_MutexFinalize \
3297
+ (tclStubsPtr->tcl_MutexFinalize) /* 392 */
3298
+#define Tcl_CreateThread \
3299
+ (tclStubsPtr->tcl_CreateThread) /* 393 */
3300
+#define Tcl_ReadRaw \
3301
+ (tclStubsPtr->tcl_ReadRaw) /* 394 */
3302
+#define Tcl_WriteRaw \
3303
+ (tclStubsPtr->tcl_WriteRaw) /* 395 */
3304
+#define Tcl_GetTopChannel \
3305
+ (tclStubsPtr->tcl_GetTopChannel) /* 396 */
3306
+#define Tcl_ChannelBuffered \
3307
+ (tclStubsPtr->tcl_ChannelBuffered) /* 397 */
3308
+#define Tcl_ChannelName \
3309
+ (tclStubsPtr->tcl_ChannelName) /* 398 */
3310
+#define Tcl_ChannelVersion \
3311
+ (tclStubsPtr->tcl_ChannelVersion) /* 399 */
3312
+#define Tcl_ChannelBlockModeProc \
3313
+ (tclStubsPtr->tcl_ChannelBlockModeProc) /* 400 */
3314
+#define Tcl_ChannelCloseProc \
3315
+ (tclStubsPtr->tcl_ChannelCloseProc) /* 401 */
3316
+#define Tcl_ChannelClose2Proc \
3317
+ (tclStubsPtr->tcl_ChannelClose2Proc) /* 402 */
3318
+#define Tcl_ChannelInputProc \
3319
+ (tclStubsPtr->tcl_ChannelInputProc) /* 403 */
3320
+#define Tcl_ChannelOutputProc \
3321
+ (tclStubsPtr->tcl_ChannelOutputProc) /* 404 */
3322
+#define Tcl_ChannelSeekProc \
3323
+ (tclStubsPtr->tcl_ChannelSeekProc) /* 405 */
3324
+#define Tcl_ChannelSetOptionProc \
3325
+ (tclStubsPtr->tcl_ChannelSetOptionProc) /* 406 */
3326
+#define Tcl_ChannelGetOptionProc \
3327
+ (tclStubsPtr->tcl_ChannelGetOptionProc) /* 407 */
3328
+#define Tcl_ChannelWatchProc \
3329
+ (tclStubsPtr->tcl_ChannelWatchProc) /* 408 */
3330
+#define Tcl_ChannelGetHandleProc \
3331
+ (tclStubsPtr->tcl_ChannelGetHandleProc) /* 409 */
3332
+#define Tcl_ChannelFlushProc \
3333
+ (tclStubsPtr->tcl_ChannelFlushProc) /* 410 */
3334
+#define Tcl_ChannelHandlerProc \
3335
+ (tclStubsPtr->tcl_ChannelHandlerProc) /* 411 */
3336
+#define Tcl_JoinThread \
3337
+ (tclStubsPtr->tcl_JoinThread) /* 412 */
3338
+#define Tcl_IsChannelShared \
3339
+ (tclStubsPtr->tcl_IsChannelShared) /* 413 */
3340
+#define Tcl_IsChannelRegistered \
3341
+ (tclStubsPtr->tcl_IsChannelRegistered) /* 414 */
3342
+#define Tcl_CutChannel \
3343
+ (tclStubsPtr->tcl_CutChannel) /* 415 */
3344
+#define Tcl_SpliceChannel \
3345
+ (tclStubsPtr->tcl_SpliceChannel) /* 416 */
3346
+#define Tcl_ClearChannelHandlers \
3347
+ (tclStubsPtr->tcl_ClearChannelHandlers) /* 417 */
3348
+#define Tcl_IsChannelExisting \
3349
+ (tclStubsPtr->tcl_IsChannelExisting) /* 418 */
3350
+#define Tcl_UniCharNcasecmp \
3351
+ (tclStubsPtr->tcl_UniCharNcasecmp) /* 419 */
3352
+#define Tcl_UniCharCaseMatch \
3353
+ (tclStubsPtr->tcl_UniCharCaseMatch) /* 420 */
3354
+#define Tcl_FindHashEntry \
3355
+ (tclStubsPtr->tcl_FindHashEntry) /* 421 */
3356
+#define Tcl_CreateHashEntry \
3357
+ (tclStubsPtr->tcl_CreateHashEntry) /* 422 */
3358
+#define Tcl_InitCustomHashTable \
3359
+ (tclStubsPtr->tcl_InitCustomHashTable) /* 423 */
3360
+#define Tcl_InitObjHashTable \
3361
+ (tclStubsPtr->tcl_InitObjHashTable) /* 424 */
3362
+#define Tcl_CommandTraceInfo \
3363
+ (tclStubsPtr->tcl_CommandTraceInfo) /* 425 */
3364
+#define Tcl_TraceCommand \
3365
+ (tclStubsPtr->tcl_TraceCommand) /* 426 */
3366
+#define Tcl_UntraceCommand \
3367
+ (tclStubsPtr->tcl_UntraceCommand) /* 427 */
3368
+#define Tcl_AttemptAlloc \
3369
+ (tclStubsPtr->tcl_AttemptAlloc) /* 428 */
3370
+#define Tcl_AttemptDbCkalloc \
3371
+ (tclStubsPtr->tcl_AttemptDbCkalloc) /* 429 */
3372
+#define Tcl_AttemptRealloc \
3373
+ (tclStubsPtr->tcl_AttemptRealloc) /* 430 */
3374
+#define Tcl_AttemptDbCkrealloc \
3375
+ (tclStubsPtr->tcl_AttemptDbCkrealloc) /* 431 */
3376
+#define Tcl_AttemptSetObjLength \
3377
+ (tclStubsPtr->tcl_AttemptSetObjLength) /* 432 */
3378
+#define Tcl_GetChannelThread \
3379
+ (tclStubsPtr->tcl_GetChannelThread) /* 433 */
3380
+#define Tcl_GetUnicodeFromObj \
3381
+ (tclStubsPtr->tcl_GetUnicodeFromObj) /* 434 */
3382
+#define Tcl_GetMathFuncInfo \
3383
+ (tclStubsPtr->tcl_GetMathFuncInfo) /* 435 */
3384
+#define Tcl_ListMathFuncs \
3385
+ (tclStubsPtr->tcl_ListMathFuncs) /* 436 */
3386
+#define Tcl_SubstObj \
3387
+ (tclStubsPtr->tcl_SubstObj) /* 437 */
3388
+#define Tcl_DetachChannel \
3389
+ (tclStubsPtr->tcl_DetachChannel) /* 438 */
3390
+#define Tcl_IsStandardChannel \
3391
+ (tclStubsPtr->tcl_IsStandardChannel) /* 439 */
3392
+#define Tcl_FSCopyFile \
3393
+ (tclStubsPtr->tcl_FSCopyFile) /* 440 */
3394
+#define Tcl_FSCopyDirectory \
3395
+ (tclStubsPtr->tcl_FSCopyDirectory) /* 441 */
3396
+#define Tcl_FSCreateDirectory \
3397
+ (tclStubsPtr->tcl_FSCreateDirectory) /* 442 */
3398
+#define Tcl_FSDeleteFile \
3399
+ (tclStubsPtr->tcl_FSDeleteFile) /* 443 */
3400
+#define Tcl_FSLoadFile \
3401
+ (tclStubsPtr->tcl_FSLoadFile) /* 444 */
3402
+#define Tcl_FSMatchInDirectory \
3403
+ (tclStubsPtr->tcl_FSMatchInDirectory) /* 445 */
3404
+#define Tcl_FSLink \
3405
+ (tclStubsPtr->tcl_FSLink) /* 446 */
3406
+#define Tcl_FSRemoveDirectory \
3407
+ (tclStubsPtr->tcl_FSRemoveDirectory) /* 447 */
3408
+#define Tcl_FSRenameFile \
3409
+ (tclStubsPtr->tcl_FSRenameFile) /* 448 */
3410
+#define Tcl_FSLstat \
3411
+ (tclStubsPtr->tcl_FSLstat) /* 449 */
3412
+#define Tcl_FSUtime \
3413
+ (tclStubsPtr->tcl_FSUtime) /* 450 */
3414
+#define Tcl_FSFileAttrsGet \
3415
+ (tclStubsPtr->tcl_FSFileAttrsGet) /* 451 */
3416
+#define Tcl_FSFileAttrsSet \
3417
+ (tclStubsPtr->tcl_FSFileAttrsSet) /* 452 */
3418
+#define Tcl_FSFileAttrStrings \
3419
+ (tclStubsPtr->tcl_FSFileAttrStrings) /* 453 */
3420
+#define Tcl_FSStat \
3421
+ (tclStubsPtr->tcl_FSStat) /* 454 */
3422
+#define Tcl_FSAccess \
3423
+ (tclStubsPtr->tcl_FSAccess) /* 455 */
3424
+#define Tcl_FSOpenFileChannel \
3425
+ (tclStubsPtr->tcl_FSOpenFileChannel) /* 456 */
3426
+#define Tcl_FSGetCwd \
3427
+ (tclStubsPtr->tcl_FSGetCwd) /* 457 */
3428
+#define Tcl_FSChdir \
3429
+ (tclStubsPtr->tcl_FSChdir) /* 458 */
3430
+#define Tcl_FSConvertToPathType \
3431
+ (tclStubsPtr->tcl_FSConvertToPathType) /* 459 */
3432
+#define Tcl_FSJoinPath \
3433
+ (tclStubsPtr->tcl_FSJoinPath) /* 460 */
3434
+#define Tcl_FSSplitPath \
3435
+ (tclStubsPtr->tcl_FSSplitPath) /* 461 */
3436
+#define Tcl_FSEqualPaths \
3437
+ (tclStubsPtr->tcl_FSEqualPaths) /* 462 */
3438
+#define Tcl_FSGetNormalizedPath \
3439
+ (tclStubsPtr->tcl_FSGetNormalizedPath) /* 463 */
3440
+#define Tcl_FSJoinToPath \
3441
+ (tclStubsPtr->tcl_FSJoinToPath) /* 464 */
3442
+#define Tcl_FSGetInternalRep \
3443
+ (tclStubsPtr->tcl_FSGetInternalRep) /* 465 */
3444
+#define Tcl_FSGetTranslatedPath \
3445
+ (tclStubsPtr->tcl_FSGetTranslatedPath) /* 466 */
3446
+#define Tcl_FSEvalFile \
3447
+ (tclStubsPtr->tcl_FSEvalFile) /* 467 */
3448
+#define Tcl_FSNewNativePath \
3449
+ (tclStubsPtr->tcl_FSNewNativePath) /* 468 */
3450
+#define Tcl_FSGetNativePath \
3451
+ (tclStubsPtr->tcl_FSGetNativePath) /* 469 */
3452
+#define Tcl_FSFileSystemInfo \
3453
+ (tclStubsPtr->tcl_FSFileSystemInfo) /* 470 */
3454
+#define Tcl_FSPathSeparator \
3455
+ (tclStubsPtr->tcl_FSPathSeparator) /* 471 */
3456
+#define Tcl_FSListVolumes \
3457
+ (tclStubsPtr->tcl_FSListVolumes) /* 472 */
3458
+#define Tcl_FSRegister \
3459
+ (tclStubsPtr->tcl_FSRegister) /* 473 */
3460
+#define Tcl_FSUnregister \
3461
+ (tclStubsPtr->tcl_FSUnregister) /* 474 */
3462
+#define Tcl_FSData \
3463
+ (tclStubsPtr->tcl_FSData) /* 475 */
3464
+#define Tcl_FSGetTranslatedStringPath \
3465
+ (tclStubsPtr->tcl_FSGetTranslatedStringPath) /* 476 */
3466
+#define Tcl_FSGetFileSystemForPath \
3467
+ (tclStubsPtr->tcl_FSGetFileSystemForPath) /* 477 */
3468
+#define Tcl_FSGetPathType \
3469
+ (tclStubsPtr->tcl_FSGetPathType) /* 478 */
3470
+#define Tcl_OutputBuffered \
3471
+ (tclStubsPtr->tcl_OutputBuffered) /* 479 */
3472
+#define Tcl_FSMountsChanged \
3473
+ (tclStubsPtr->tcl_FSMountsChanged) /* 480 */
3474
+#define Tcl_EvalTokensStandard \
3475
+ (tclStubsPtr->tcl_EvalTokensStandard) /* 481 */
3476
+#define Tcl_GetTime \
3477
+ (tclStubsPtr->tcl_GetTime) /* 482 */
3478
+#define Tcl_CreateObjTrace \
3479
+ (tclStubsPtr->tcl_CreateObjTrace) /* 483 */
3480
+#define Tcl_GetCommandInfoFromToken \
3481
+ (tclStubsPtr->tcl_GetCommandInfoFromToken) /* 484 */
3482
+#define Tcl_SetCommandInfoFromToken \
3483
+ (tclStubsPtr->tcl_SetCommandInfoFromToken) /* 485 */
3484
+#define Tcl_DbNewWideIntObj \
3485
+ (tclStubsPtr->tcl_DbNewWideIntObj) /* 486 */
3486
+#define Tcl_GetWideIntFromObj \
3487
+ (tclStubsPtr->tcl_GetWideIntFromObj) /* 487 */
3488
+#define Tcl_NewWideIntObj \
3489
+ (tclStubsPtr->tcl_NewWideIntObj) /* 488 */
3490
+#define Tcl_SetWideIntObj \
3491
+ (tclStubsPtr->tcl_SetWideIntObj) /* 489 */
3492
+#define Tcl_AllocStatBuf \
3493
+ (tclStubsPtr->tcl_AllocStatBuf) /* 490 */
3494
+#define Tcl_Seek \
3495
+ (tclStubsPtr->tcl_Seek) /* 491 */
3496
+#define Tcl_Tell \
3497
+ (tclStubsPtr->tcl_Tell) /* 492 */
3498
+#define Tcl_ChannelWideSeekProc \
3499
+ (tclStubsPtr->tcl_ChannelWideSeekProc) /* 493 */
3500
+#define Tcl_DictObjPut \
3501
+ (tclStubsPtr->tcl_DictObjPut) /* 494 */
3502
+#define Tcl_DictObjGet \
3503
+ (tclStubsPtr->tcl_DictObjGet) /* 495 */
3504
+#define Tcl_DictObjRemove \
3505
+ (tclStubsPtr->tcl_DictObjRemove) /* 496 */
3506
+#define Tcl_DictObjSize \
3507
+ (tclStubsPtr->tcl_DictObjSize) /* 497 */
3508
+#define Tcl_DictObjFirst \
3509
+ (tclStubsPtr->tcl_DictObjFirst) /* 498 */
3510
+#define Tcl_DictObjNext \
3511
+ (tclStubsPtr->tcl_DictObjNext) /* 499 */
3512
+#define Tcl_DictObjDone \
3513
+ (tclStubsPtr->tcl_DictObjDone) /* 500 */
3514
+#define Tcl_DictObjPutKeyList \
3515
+ (tclStubsPtr->tcl_DictObjPutKeyList) /* 501 */
3516
+#define Tcl_DictObjRemoveKeyList \
3517
+ (tclStubsPtr->tcl_DictObjRemoveKeyList) /* 502 */
3518
+#define Tcl_NewDictObj \
3519
+ (tclStubsPtr->tcl_NewDictObj) /* 503 */
3520
+#define Tcl_DbNewDictObj \
3521
+ (tclStubsPtr->tcl_DbNewDictObj) /* 504 */
3522
+#define Tcl_RegisterConfig \
3523
+ (tclStubsPtr->tcl_RegisterConfig) /* 505 */
3524
+#define Tcl_CreateNamespace \
3525
+ (tclStubsPtr->tcl_CreateNamespace) /* 506 */
3526
+#define Tcl_DeleteNamespace \
3527
+ (tclStubsPtr->tcl_DeleteNamespace) /* 507 */
3528
+#define Tcl_AppendExportList \
3529
+ (tclStubsPtr->tcl_AppendExportList) /* 508 */
3530
+#define Tcl_Export \
3531
+ (tclStubsPtr->tcl_Export) /* 509 */
3532
+#define Tcl_Import \
3533
+ (tclStubsPtr->tcl_Import) /* 510 */
3534
+#define Tcl_ForgetImport \
3535
+ (tclStubsPtr->tcl_ForgetImport) /* 511 */
3536
+#define Tcl_GetCurrentNamespace \
3537
+ (tclStubsPtr->tcl_GetCurrentNamespace) /* 512 */
3538
+#define Tcl_GetGlobalNamespace \
3539
+ (tclStubsPtr->tcl_GetGlobalNamespace) /* 513 */
3540
+#define Tcl_FindNamespace \
3541
+ (tclStubsPtr->tcl_FindNamespace) /* 514 */
3542
+#define Tcl_FindCommand \
3543
+ (tclStubsPtr->tcl_FindCommand) /* 515 */
3544
+#define Tcl_GetCommandFromObj \
3545
+ (tclStubsPtr->tcl_GetCommandFromObj) /* 516 */
3546
+#define Tcl_GetCommandFullName \
3547
+ (tclStubsPtr->tcl_GetCommandFullName) /* 517 */
3548
+#define Tcl_FSEvalFileEx \
3549
+ (tclStubsPtr->tcl_FSEvalFileEx) /* 518 */
3550
+#define Tcl_SetExitProc \
3551
+ (tclStubsPtr->tcl_SetExitProc) /* 519 */
3552
+#define Tcl_LimitAddHandler \
3553
+ (tclStubsPtr->tcl_LimitAddHandler) /* 520 */
3554
+#define Tcl_LimitRemoveHandler \
3555
+ (tclStubsPtr->tcl_LimitRemoveHandler) /* 521 */
3556
+#define Tcl_LimitReady \
3557
+ (tclStubsPtr->tcl_LimitReady) /* 522 */
3558
+#define Tcl_LimitCheck \
3559
+ (tclStubsPtr->tcl_LimitCheck) /* 523 */
3560
+#define Tcl_LimitExceeded \
3561
+ (tclStubsPtr->tcl_LimitExceeded) /* 524 */
3562
+#define Tcl_LimitSetCommands \
3563
+ (tclStubsPtr->tcl_LimitSetCommands) /* 525 */
3564
+#define Tcl_LimitSetTime \
3565
+ (tclStubsPtr->tcl_LimitSetTime) /* 526 */
3566
+#define Tcl_LimitSetGranularity \
3567
+ (tclStubsPtr->tcl_LimitSetGranularity) /* 527 */
3568
+#define Tcl_LimitTypeEnabled \
3569
+ (tclStubsPtr->tcl_LimitTypeEnabled) /* 528 */
3570
+#define Tcl_LimitTypeExceeded \
3571
+ (tclStubsPtr->tcl_LimitTypeExceeded) /* 529 */
3572
+#define Tcl_LimitTypeSet \
3573
+ (tclStubsPtr->tcl_LimitTypeSet) /* 530 */
3574
+#define Tcl_LimitTypeReset \
3575
+ (tclStubsPtr->tcl_LimitTypeReset) /* 531 */
3576
+#define Tcl_LimitGetCommands \
3577
+ (tclStubsPtr->tcl_LimitGetCommands) /* 532 */
3578
+#define Tcl_LimitGetTime \
3579
+ (tclStubsPtr->tcl_LimitGetTime) /* 533 */
3580
+#define Tcl_LimitGetGranularity \
3581
+ (tclStubsPtr->tcl_LimitGetGranularity) /* 534 */
3582
+#define Tcl_SaveInterpState \
3583
+ (tclStubsPtr->tcl_SaveInterpState) /* 535 */
3584
+#define Tcl_RestoreInterpState \
3585
+ (tclStubsPtr->tcl_RestoreInterpState) /* 536 */
3586
+#define Tcl_DiscardInterpState \
3587
+ (tclStubsPtr->tcl_DiscardInterpState) /* 537 */
3588
+#define Tcl_SetReturnOptions \
3589
+ (tclStubsPtr->tcl_SetReturnOptions) /* 538 */
3590
+#define Tcl_GetReturnOptions \
3591
+ (tclStubsPtr->tcl_GetReturnOptions) /* 539 */
3592
+#define Tcl_IsEnsemble \
3593
+ (tclStubsPtr->tcl_IsEnsemble) /* 540 */
3594
+#define Tcl_CreateEnsemble \
3595
+ (tclStubsPtr->tcl_CreateEnsemble) /* 541 */
3596
+#define Tcl_FindEnsemble \
3597
+ (tclStubsPtr->tcl_FindEnsemble) /* 542 */
3598
+#define Tcl_SetEnsembleSubcommandList \
3599
+ (tclStubsPtr->tcl_SetEnsembleSubcommandList) /* 543 */
3600
+#define Tcl_SetEnsembleMappingDict \
3601
+ (tclStubsPtr->tcl_SetEnsembleMappingDict) /* 544 */
3602
+#define Tcl_SetEnsembleUnknownHandler \
3603
+ (tclStubsPtr->tcl_SetEnsembleUnknownHandler) /* 545 */
3604
+#define Tcl_SetEnsembleFlags \
3605
+ (tclStubsPtr->tcl_SetEnsembleFlags) /* 546 */
3606
+#define Tcl_GetEnsembleSubcommandList \
3607
+ (tclStubsPtr->tcl_GetEnsembleSubcommandList) /* 547 */
3608
+#define Tcl_GetEnsembleMappingDict \
3609
+ (tclStubsPtr->tcl_GetEnsembleMappingDict) /* 548 */
3610
+#define Tcl_GetEnsembleUnknownHandler \
3611
+ (tclStubsPtr->tcl_GetEnsembleUnknownHandler) /* 549 */
3612
+#define Tcl_GetEnsembleFlags \
3613
+ (tclStubsPtr->tcl_GetEnsembleFlags) /* 550 */
3614
+#define Tcl_GetEnsembleNamespace \
3615
+ (tclStubsPtr->tcl_GetEnsembleNamespace) /* 551 */
3616
+#define Tcl_SetTimeProc \
3617
+ (tclStubsPtr->tcl_SetTimeProc) /* 552 */
3618
+#define Tcl_QueryTimeProc \
3619
+ (tclStubsPtr->tcl_QueryTimeProc) /* 553 */
3620
+#define Tcl_ChannelThreadActionProc \
3621
+ (tclStubsPtr->tcl_ChannelThreadActionProc) /* 554 */
3622
+#define Tcl_NewBignumObj \
3623
+ (tclStubsPtr->tcl_NewBignumObj) /* 555 */
3624
+#define Tcl_DbNewBignumObj \
3625
+ (tclStubsPtr->tcl_DbNewBignumObj) /* 556 */
3626
+#define Tcl_SetBignumObj \
3627
+ (tclStubsPtr->tcl_SetBignumObj) /* 557 */
3628
+#define Tcl_GetBignumFromObj \
3629
+ (tclStubsPtr->tcl_GetBignumFromObj) /* 558 */
3630
+#define Tcl_TakeBignumFromObj \
3631
+ (tclStubsPtr->tcl_TakeBignumFromObj) /* 559 */
3632
+#define Tcl_TruncateChannel \
3633
+ (tclStubsPtr->tcl_TruncateChannel) /* 560 */
3634
+#define Tcl_ChannelTruncateProc \
3635
+ (tclStubsPtr->tcl_ChannelTruncateProc) /* 561 */
3636
+#define Tcl_SetChannelErrorInterp \
3637
+ (tclStubsPtr->tcl_SetChannelErrorInterp) /* 562 */
3638
+#define Tcl_GetChannelErrorInterp \
3639
+ (tclStubsPtr->tcl_GetChannelErrorInterp) /* 563 */
3640
+#define Tcl_SetChannelError \
3641
+ (tclStubsPtr->tcl_SetChannelError) /* 564 */
3642
+#define Tcl_GetChannelError \
3643
+ (tclStubsPtr->tcl_GetChannelError) /* 565 */
3644
+#define Tcl_InitBignumFromDouble \
3645
+ (tclStubsPtr->tcl_InitBignumFromDouble) /* 566 */
3646
+#define Tcl_GetNamespaceUnknownHandler \
3647
+ (tclStubsPtr->tcl_GetNamespaceUnknownHandler) /* 567 */
3648
+#define Tcl_SetNamespaceUnknownHandler \
3649
+ (tclStubsPtr->tcl_SetNamespaceUnknownHandler) /* 568 */
3650
+#define Tcl_GetEncodingFromObj \
3651
+ (tclStubsPtr->tcl_GetEncodingFromObj) /* 569 */
3652
+#define Tcl_GetEncodingSearchPath \
3653
+ (tclStubsPtr->tcl_GetEncodingSearchPath) /* 570 */
3654
+#define Tcl_SetEncodingSearchPath \
3655
+ (tclStubsPtr->tcl_SetEncodingSearchPath) /* 571 */
3656
+#define Tcl_GetEncodingNameFromEnvironment \
3657
+ (tclStubsPtr->tcl_GetEncodingNameFromEnvironment) /* 572 */
3658
+#define Tcl_PkgRequireProc \
3659
+ (tclStubsPtr->tcl_PkgRequireProc) /* 573 */
3660
+#define Tcl_AppendObjToErrorInfo \
3661
+ (tclStubsPtr->tcl_AppendObjToErrorInfo) /* 574 */
3662
+#define Tcl_AppendLimitedToObj \
3663
+ (tclStubsPtr->tcl_AppendLimitedToObj) /* 575 */
3664
+#define Tcl_Format \
3665
+ (tclStubsPtr->tcl_Format) /* 576 */
3666
+#define Tcl_AppendFormatToObj \
3667
+ (tclStubsPtr->tcl_AppendFormatToObj) /* 577 */
3668
+#define Tcl_ObjPrintf \
3669
+ (tclStubsPtr->tcl_ObjPrintf) /* 578 */
3670
+#define Tcl_AppendPrintfToObj \
3671
+ (tclStubsPtr->tcl_AppendPrintfToObj) /* 579 */
3672
+#define Tcl_CancelEval \
3673
+ (tclStubsPtr->tcl_CancelEval) /* 580 */
3674
+#define Tcl_Canceled \
3675
+ (tclStubsPtr->tcl_Canceled) /* 581 */
3676
+#define Tcl_CreatePipe \
3677
+ (tclStubsPtr->tcl_CreatePipe) /* 582 */
3678
+#define Tcl_NRCreateCommand \
3679
+ (tclStubsPtr->tcl_NRCreateCommand) /* 583 */
3680
+#define Tcl_NREvalObj \
3681
+ (tclStubsPtr->tcl_NREvalObj) /* 584 */
3682
+#define Tcl_NREvalObjv \
3683
+ (tclStubsPtr->tcl_NREvalObjv) /* 585 */
3684
+#define Tcl_NRCmdSwap \
3685
+ (tclStubsPtr->tcl_NRCmdSwap) /* 586 */
3686
+#define Tcl_NRAddCallback \
3687
+ (tclStubsPtr->tcl_NRAddCallback) /* 587 */
3688
+#define Tcl_NRCallObjProc \
3689
+ (tclStubsPtr->tcl_NRCallObjProc) /* 588 */
3690
+#define Tcl_GetFSDeviceFromStat \
3691
+ (tclStubsPtr->tcl_GetFSDeviceFromStat) /* 589 */
3692
+#define Tcl_GetFSInodeFromStat \
3693
+ (tclStubsPtr->tcl_GetFSInodeFromStat) /* 590 */
3694
+#define Tcl_GetModeFromStat \
3695
+ (tclStubsPtr->tcl_GetModeFromStat) /* 591 */
3696
+#define Tcl_GetLinkCountFromStat \
3697
+ (tclStubsPtr->tcl_GetLinkCountFromStat) /* 592 */
3698
+#define Tcl_GetUserIdFromStat \
3699
+ (tclStubsPtr->tcl_GetUserIdFromStat) /* 593 */
3700
+#define Tcl_GetGroupIdFromStat \
3701
+ (tclStubsPtr->tcl_GetGroupIdFromStat) /* 594 */
3702
+#define Tcl_GetDeviceTypeFromStat \
3703
+ (tclStubsPtr->tcl_GetDeviceTypeFromStat) /* 595 */
3704
+#define Tcl_GetAccessTimeFromStat \
3705
+ (tclStubsPtr->tcl_GetAccessTimeFromStat) /* 596 */
3706
+#define Tcl_GetModificationTimeFromStat \
3707
+ (tclStubsPtr->tcl_GetModificationTimeFromStat) /* 597 */
3708
+#define Tcl_GetChangeTimeFromStat \
3709
+ (tclStubsPtr->tcl_GetChangeTimeFromStat) /* 598 */
3710
+#define Tcl_GetSizeFromStat \
3711
+ (tclStubsPtr->tcl_GetSizeFromStat) /* 599 */
3712
+#define Tcl_GetBlocksFromStat \
3713
+ (tclStubsPtr->tcl_GetBlocksFromStat) /* 600 */
3714
+#define Tcl_GetBlockSizeFromStat \
3715
+ (tclStubsPtr->tcl_GetBlockSizeFromStat) /* 601 */
3716
+#define Tcl_SetEnsembleParameterList \
3717
+ (tclStubsPtr->tcl_SetEnsembleParameterList) /* 602 */
3718
+#define Tcl_GetEnsembleParameterList \
3719
+ (tclStubsPtr->tcl_GetEnsembleParameterList) /* 603 */
3720
+#define Tcl_ParseArgsObjv \
3721
+ (tclStubsPtr->tcl_ParseArgsObjv) /* 604 */
3722
+#define Tcl_GetErrorLine \
3723
+ (tclStubsPtr->tcl_GetErrorLine) /* 605 */
3724
+#define Tcl_SetErrorLine \
3725
+ (tclStubsPtr->tcl_SetErrorLine) /* 606 */
3726
+#define Tcl_TransferResult \
3727
+ (tclStubsPtr->tcl_TransferResult) /* 607 */
3728
+#define Tcl_InterpActive \
3729
+ (tclStubsPtr->tcl_InterpActive) /* 608 */
3730
+#define Tcl_BackgroundException \
3731
+ (tclStubsPtr->tcl_BackgroundException) /* 609 */
3732
+#define Tcl_ZlibDeflate \
3733
+ (tclStubsPtr->tcl_ZlibDeflate) /* 610 */
3734
+#define Tcl_ZlibInflate \
3735
+ (tclStubsPtr->tcl_ZlibInflate) /* 611 */
3736
+#define Tcl_ZlibCRC32 \
3737
+ (tclStubsPtr->tcl_ZlibCRC32) /* 612 */
3738
+#define Tcl_ZlibAdler32 \
3739
+ (tclStubsPtr->tcl_ZlibAdler32) /* 613 */
3740
+#define Tcl_ZlibStreamInit \
3741
+ (tclStubsPtr->tcl_ZlibStreamInit) /* 614 */
3742
+#define Tcl_ZlibStreamGetCommandName \
3743
+ (tclStubsPtr->tcl_ZlibStreamGetCommandName) /* 615 */
3744
+#define Tcl_ZlibStreamEof \
3745
+ (tclStubsPtr->tcl_ZlibStreamEof) /* 616 */
3746
+#define Tcl_ZlibStreamChecksum \
3747
+ (tclStubsPtr->tcl_ZlibStreamChecksum) /* 617 */
3748
+#define Tcl_ZlibStreamPut \
3749
+ (tclStubsPtr->tcl_ZlibStreamPut) /* 618 */
3750
+#define Tcl_ZlibStreamGet \
3751
+ (tclStubsPtr->tcl_ZlibStreamGet) /* 619 */
3752
+#define Tcl_ZlibStreamClose \
3753
+ (tclStubsPtr->tcl_ZlibStreamClose) /* 620 */
3754
+#define Tcl_ZlibStreamReset \
3755
+ (tclStubsPtr->tcl_ZlibStreamReset) /* 621 */
3756
+#define Tcl_SetStartupScript \
3757
+ (tclStubsPtr->tcl_SetStartupScript) /* 622 */
3758
+#define Tcl_GetStartupScript \
3759
+ (tclStubsPtr->tcl_GetStartupScript) /* 623 */
3760
+#define Tcl_CloseEx \
3761
+ (tclStubsPtr->tcl_CloseEx) /* 624 */
3762
+#define Tcl_NRExprObj \
3763
+ (tclStubsPtr->tcl_NRExprObj) /* 625 */
3764
+#define Tcl_NRSubstObj \
3765
+ (tclStubsPtr->tcl_NRSubstObj) /* 626 */
3766
+#define Tcl_LoadFile \
3767
+ (tclStubsPtr->tcl_LoadFile) /* 627 */
3768
+#define Tcl_FindSymbol \
3769
+ (tclStubsPtr->tcl_FindSymbol) /* 628 */
3770
+#define Tcl_FSUnloadFile \
3771
+ (tclStubsPtr->tcl_FSUnloadFile) /* 629 */
3772
+#define Tcl_ZlibStreamSetCompressionDictionary \
3773
+ (tclStubsPtr->tcl_ZlibStreamSetCompressionDictionary) /* 630 */
3774
+
3775
+#endif /* defined(USE_TCL_STUBS) */
3776
+
3777
+/* !END!: Do not edit above this line. */
3778
+
3779
+#if defined(USE_TCL_STUBS)
3780
+# undef Tcl_CreateInterp
3781
+# undef Tcl_FindExecutable
3782
+# undef Tcl_GetStringResult
3783
+# undef Tcl_Init
3784
+# undef Tcl_SetPanicProc
3785
+# undef Tcl_SetVar
3786
+# undef Tcl_StaticPackage
3787
+# undef TclFSGetNativePath
3788
+# define Tcl_CreateInterp() (tclStubsPtr->tcl_CreateInterp())
3789
+# define Tcl_GetStringResult(interp) (tclStubsPtr->tcl_GetStringResult(interp))
3790
+# define Tcl_Init(interp) (tclStubsPtr->tcl_Init(interp))
3791
+# define Tcl_SetPanicProc(proc) (tclStubsPtr->tcl_SetPanicProc(proc))
3792
+# define Tcl_SetVar(interp, varName, newValue, flags) \
3793
+ (tclStubsPtr->tcl_SetVar(interp, varName, newValue, flags))
3794
+#endif
3795
+
3796
+#if defined(_WIN32) && defined(UNICODE)
3797
+# define Tcl_FindExecutable(arg) ((Tcl_FindExecutable)((const char *)(arg)))
3798
+# define Tcl_MainEx Tcl_MainExW
3799
+ EXTERN void Tcl_MainExW(int argc, wchar_t **argv,
3800
+ Tcl_AppInitProc *appInitProc, Tcl_Interp *interp);
3801
+#endif
3802
+
3803
+#undef TCL_STORAGE_CLASS
3804
+#define TCL_STORAGE_CLASS DLLIMPORT
3805
+
3806
+#endif /* _TCLDECLS */
--- a/compat/tcl-8.6/generic/tclDecls.h
+++ b/compat/tcl-8.6/generic/tclDecls.h
@@ -0,0 +1,3806 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
--- a/compat/tcl-8.6/generic/tclDecls.h
+++ b/compat/tcl-8.6/generic/tclDecls.h
@@ -0,0 +1,3806 @@
1 /*
2 * tclDecls.h --
3 *
4 * Declarations of functions in the platform independent public Tcl API.
5 *
6 * Copyright (c) 1998-1999 by Scriptics Corporation.
7 *
8 * See the file "license.terms" for information on usage and redistribution
9 * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
10 */
11
12 #ifndef _TCLDECLS
13 #define _TCLDECLS
14
15 #undef TCL_STORAGE_CLASS
16 #ifdef BUILD_tcl
17 # define TCL_STORAGE_CLASS DLLEXPORT
18 #else
19 # ifdef USE_TCL_STUBS
20 # define TCL_STORAGE_CLASS
21 # else
22 # define TCL_STORAGE_CLASS DLLIMPORT
23 # endif
24 #endif
25
26 /*
27 * WARNING: This file is automatically generated by the tools/genStubs.tcl
28 * script. Any modifications to the function declarations below should be made
29 * in the generic/tcl.decls script.
30 */
31
32 /* !BEGIN!: Do not edit below this line. */
33
34 /*
35 * Exported function declarations:
36 */
37
38 /* 0 */
39 EXTERN int Tcl_PkgProvideEx(Tcl_Interp *interp,
40 const char *name, const char *version,
41 const void *clientData);
42 /* 1 */
43 EXTERN CONST84_RETURN char * Tcl_PkgRequireEx(Tcl_Interp *interp,
44 const char *name, const char *version,
45 int exact, void *clientDataPtr);
46 /* 2 */
47 EXTERN void Tcl_Panic(const char *format, ...) TCL_FORMAT_PRINTF(1, 2);
48 /* 3 */
49 EXTERN char * Tcl_Alloc(unsigned int size);
50 /* 4 */
51 EXTERN void Tcl_Free(char *ptr);
52 /* 5 */
53 EXTERN char * Tcl_Realloc(char *ptr, unsigned int size);
54 /* 6 */
55 EXTERN char * Tcl_DbCkalloc(unsigned int size, const char *file,
56 int line);
57 /* 7 */
58 EXTERN void Tcl_DbCkfree(char *ptr, const char *file, int line);
59 /* 8 */
60 EXTERN char * Tcl_DbCkrealloc(char *ptr, unsigned int size,
61 const char *file, int line);
62 #if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
63 /* 9 */
64 EXTERN void Tcl_CreateFileHandler(int fd, int mask,
65 Tcl_FileProc *proc, ClientData clientData);
66 #endif /* UNIX */
67 #ifdef MAC_OSX_TCL /* MACOSX */
68 /* 9 */
69 EXTERN void Tcl_CreateFileHandler(int fd, int mask,
70 Tcl_FileProc *proc, ClientData clientData);
71 #endif /* MACOSX */
72 #if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
73 /* 10 */
74 EXTERN void Tcl_DeleteFileHandler(int fd);
75 #endif /* UNIX */
76 #ifdef MAC_OSX_TCL /* MACOSX */
77 /* 10 */
78 EXTERN void Tcl_DeleteFileHandler(int fd);
79 #endif /* MACOSX */
80 /* 11 */
81 EXTERN void Tcl_SetTimer(const Tcl_Time *timePtr);
82 /* 12 */
83 EXTERN void Tcl_Sleep(int ms);
84 /* 13 */
85 EXTERN int Tcl_WaitForEvent(const Tcl_Time *timePtr);
86 /* 14 */
87 EXTERN int Tcl_AppendAllObjTypes(Tcl_Interp *interp,
88 Tcl_Obj *objPtr);
89 /* 15 */
90 EXTERN void Tcl_AppendStringsToObj(Tcl_Obj *objPtr, ...);
91 /* 16 */
92 EXTERN void Tcl_AppendToObj(Tcl_Obj *objPtr, const char *bytes,
93 int length);
94 /* 17 */
95 EXTERN Tcl_Obj * Tcl_ConcatObj(int objc, Tcl_Obj *const objv[]);
96 /* 18 */
97 EXTERN int Tcl_ConvertToType(Tcl_Interp *interp,
98 Tcl_Obj *objPtr, const Tcl_ObjType *typePtr);
99 /* 19 */
100 EXTERN void Tcl_DbDecrRefCount(Tcl_Obj *objPtr, const char *file,
101 int line);
102 /* 20 */
103 EXTERN void Tcl_DbIncrRefCount(Tcl_Obj *objPtr, const char *file,
104 int line);
105 /* 21 */
106 EXTERN int Tcl_DbIsShared(Tcl_Obj *objPtr, const char *file,
107 int line);
108 /* 22 */
109 EXTERN Tcl_Obj * Tcl_DbNewBooleanObj(int boolValue, const char *file,
110 int line);
111 /* 23 */
112 EXTERN Tcl_Obj * Tcl_DbNewByteArrayObj(const unsigned char *bytes,
113 int length, const char *file, int line);
114 /* 24 */
115 EXTERN Tcl_Obj * Tcl_DbNewDoubleObj(double doubleValue,
116 const char *file, int line);
117 /* 25 */
118 EXTERN Tcl_Obj * Tcl_DbNewListObj(int objc, Tcl_Obj *const *objv,
119 const char *file, int line);
120 /* 26 */
121 EXTERN Tcl_Obj * Tcl_DbNewLongObj(long longValue, const char *file,
122 int line);
123 /* 27 */
124 EXTERN Tcl_Obj * Tcl_DbNewObj(const char *file, int line);
125 /* 28 */
126 EXTERN Tcl_Obj * Tcl_DbNewStringObj(const char *bytes, int length,
127 const char *file, int line);
128 /* 29 */
129 EXTERN Tcl_Obj * Tcl_DuplicateObj(Tcl_Obj *objPtr);
130 /* 30 */
131 EXTERN void TclFreeObj(Tcl_Obj *objPtr);
132 /* 31 */
133 EXTERN int Tcl_GetBoolean(Tcl_Interp *interp, const char *src,
134 int *boolPtr);
135 /* 32 */
136 EXTERN int Tcl_GetBooleanFromObj(Tcl_Interp *interp,
137 Tcl_Obj *objPtr, int *boolPtr);
138 /* 33 */
139 EXTERN unsigned char * Tcl_GetByteArrayFromObj(Tcl_Obj *objPtr,
140 int *lengthPtr);
141 /* 34 */
142 EXTERN int Tcl_GetDouble(Tcl_Interp *interp, const char *src,
143 double *doublePtr);
144 /* 35 */
145 EXTERN int Tcl_GetDoubleFromObj(Tcl_Interp *interp,
146 Tcl_Obj *objPtr, double *doublePtr);
147 /* 36 */
148 EXTERN int Tcl_GetIndexFromObj(Tcl_Interp *interp,
149 Tcl_Obj *objPtr,
150 CONST84 char *const *tablePtr,
151 const char *msg, int flags, int *indexPtr);
152 /* 37 */
153 EXTERN int Tcl_GetInt(Tcl_Interp *interp, const char *src,
154 int *intPtr);
155 /* 38 */
156 EXTERN int Tcl_GetIntFromObj(Tcl_Interp *interp,
157 Tcl_Obj *objPtr, int *intPtr);
158 /* 39 */
159 EXTERN int Tcl_GetLongFromObj(Tcl_Interp *interp,
160 Tcl_Obj *objPtr, long *longPtr);
161 /* 40 */
162 EXTERN CONST86 Tcl_ObjType * Tcl_GetObjType(const char *typeName);
163 /* 41 */
164 EXTERN char * Tcl_GetStringFromObj(Tcl_Obj *objPtr, int *lengthPtr);
165 /* 42 */
166 EXTERN void Tcl_InvalidateStringRep(Tcl_Obj *objPtr);
167 /* 43 */
168 EXTERN int Tcl_ListObjAppendList(Tcl_Interp *interp,
169 Tcl_Obj *listPtr, Tcl_Obj *elemListPtr);
170 /* 44 */
171 EXTERN int Tcl_ListObjAppendElement(Tcl_Interp *interp,
172 Tcl_Obj *listPtr, Tcl_Obj *objPtr);
173 /* 45 */
174 EXTERN int Tcl_ListObjGetElements(Tcl_Interp *interp,
175 Tcl_Obj *listPtr, int *objcPtr,
176 Tcl_Obj ***objvPtr);
177 /* 46 */
178 EXTERN int Tcl_ListObjIndex(Tcl_Interp *interp,
179 Tcl_Obj *listPtr, int index,
180 Tcl_Obj **objPtrPtr);
181 /* 47 */
182 EXTERN int Tcl_ListObjLength(Tcl_Interp *interp,
183 Tcl_Obj *listPtr, int *lengthPtr);
184 /* 48 */
185 EXTERN int Tcl_ListObjReplace(Tcl_Interp *interp,
186 Tcl_Obj *listPtr, int first, int count,
187 int objc, Tcl_Obj *const objv[]);
188 /* 49 */
189 EXTERN Tcl_Obj * Tcl_NewBooleanObj(int boolValue);
190 /* 50 */
191 EXTERN Tcl_Obj * Tcl_NewByteArrayObj(const unsigned char *bytes,
192 int length);
193 /* 51 */
194 EXTERN Tcl_Obj * Tcl_NewDoubleObj(double doubleValue);
195 /* 52 */
196 EXTERN Tcl_Obj * Tcl_NewIntObj(int intValue);
197 /* 53 */
198 EXTERN Tcl_Obj * Tcl_NewListObj(int objc, Tcl_Obj *const objv[]);
199 /* 54 */
200 EXTERN Tcl_Obj * Tcl_NewLongObj(long longValue);
201 /* 55 */
202 EXTERN Tcl_Obj * Tcl_NewObj(void);
203 /* 56 */
204 EXTERN Tcl_Obj * Tcl_NewStringObj(const char *bytes, int length);
205 /* 57 */
206 EXTERN void Tcl_SetBooleanObj(Tcl_Obj *objPtr, int boolValue);
207 /* 58 */
208 EXTERN unsigned char * Tcl_SetByteArrayLength(Tcl_Obj *objPtr, int length);
209 /* 59 */
210 EXTERN void Tcl_SetByteArrayObj(Tcl_Obj *objPtr,
211 const unsigned char *bytes, int length);
212 /* 60 */
213 EXTERN void Tcl_SetDoubleObj(Tcl_Obj *objPtr, double doubleValue);
214 /* 61 */
215 EXTERN void Tcl_SetIntObj(Tcl_Obj *objPtr, int intValue);
216 /* 62 */
217 EXTERN void Tcl_SetListObj(Tcl_Obj *objPtr, int objc,
218 Tcl_Obj *const objv[]);
219 /* 63 */
220 EXTERN void Tcl_SetLongObj(Tcl_Obj *objPtr, long longValue);
221 /* 64 */
222 EXTERN void Tcl_SetObjLength(Tcl_Obj *objPtr, int length);
223 /* 65 */
224 EXTERN void Tcl_SetStringObj(Tcl_Obj *objPtr, const char *bytes,
225 int length);
226 /* 66 */
227 EXTERN void Tcl_AddErrorInfo(Tcl_Interp *interp,
228 const char *message);
229 /* 67 */
230 EXTERN void Tcl_AddObjErrorInfo(Tcl_Interp *interp,
231 const char *message, int length);
232 /* 68 */
233 EXTERN void Tcl_AllowExceptions(Tcl_Interp *interp);
234 /* 69 */
235 EXTERN void Tcl_AppendElement(Tcl_Interp *interp,
236 const char *element);
237 /* 70 */
238 EXTERN void Tcl_AppendResult(Tcl_Interp *interp, ...);
239 /* 71 */
240 EXTERN Tcl_AsyncHandler Tcl_AsyncCreate(Tcl_AsyncProc *proc,
241 ClientData clientData);
242 /* 72 */
243 EXTERN void Tcl_AsyncDelete(Tcl_AsyncHandler async);
244 /* 73 */
245 EXTERN int Tcl_AsyncInvoke(Tcl_Interp *interp, int code);
246 /* 74 */
247 EXTERN void Tcl_AsyncMark(Tcl_AsyncHandler async);
248 /* 75 */
249 EXTERN int Tcl_AsyncReady(void);
250 /* 76 */
251 EXTERN void Tcl_BackgroundError(Tcl_Interp *interp);
252 /* 77 */
253 EXTERN char Tcl_Backslash(const char *src, int *readPtr);
254 /* 78 */
255 EXTERN int Tcl_BadChannelOption(Tcl_Interp *interp,
256 const char *optionName,
257 const char *optionList);
258 /* 79 */
259 EXTERN void Tcl_CallWhenDeleted(Tcl_Interp *interp,
260 Tcl_InterpDeleteProc *proc,
261 ClientData clientData);
262 /* 80 */
263 EXTERN void Tcl_CancelIdleCall(Tcl_IdleProc *idleProc,
264 ClientData clientData);
265 /* 81 */
266 EXTERN int Tcl_Close(Tcl_Interp *interp, Tcl_Channel chan);
267 /* 82 */
268 EXTERN int Tcl_CommandComplete(const char *cmd);
269 /* 83 */
270 EXTERN char * Tcl_Concat(int argc, CONST84 char *const *argv);
271 /* 84 */
272 EXTERN int Tcl_ConvertElement(const char *src, char *dst,
273 int flags);
274 /* 85 */
275 EXTERN int Tcl_ConvertCountedElement(const char *src,
276 int length, char *dst, int flags);
277 /* 86 */
278 EXTERN int Tcl_CreateAlias(Tcl_Interp *slave,
279 const char *slaveCmd, Tcl_Interp *target,
280 const char *targetCmd, int argc,
281 CONST84 char *const *argv);
282 /* 87 */
283 EXTERN int Tcl_CreateAliasObj(Tcl_Interp *slave,
284 const char *slaveCmd, Tcl_Interp *target,
285 const char *targetCmd, int objc,
286 Tcl_Obj *const objv[]);
287 /* 88 */
288 EXTERN Tcl_Channel Tcl_CreateChannel(const Tcl_ChannelType *typePtr,
289 const char *chanName,
290 ClientData instanceData, int mask);
291 /* 89 */
292 EXTERN void Tcl_CreateChannelHandler(Tcl_Channel chan, int mask,
293 Tcl_ChannelProc *proc, ClientData clientData);
294 /* 90 */
295 EXTERN void Tcl_CreateCloseHandler(Tcl_Channel chan,
296 Tcl_CloseProc *proc, ClientData clientData);
297 /* 91 */
298 EXTERN Tcl_Command Tcl_CreateCommand(Tcl_Interp *interp,
299 const char *cmdName, Tcl_CmdProc *proc,
300 ClientData clientData,
301 Tcl_CmdDeleteProc *deleteProc);
302 /* 92 */
303 EXTERN void Tcl_CreateEventSource(Tcl_EventSetupProc *setupProc,
304 Tcl_EventCheckProc *checkProc,
305 ClientData clientData);
306 /* 93 */
307 EXTERN void Tcl_CreateExitHandler(Tcl_ExitProc *proc,
308 ClientData clientData);
309 /* 94 */
310 EXTERN Tcl_Interp * Tcl_CreateInterp(void);
311 /* 95 */
312 EXTERN void Tcl_CreateMathFunc(Tcl_Interp *interp,
313 const char *name, int numArgs,
314 Tcl_ValueType *argTypes, Tcl_MathProc *proc,
315 ClientData clientData);
316 /* 96 */
317 EXTERN Tcl_Command Tcl_CreateObjCommand(Tcl_Interp *interp,
318 const char *cmdName, Tcl_ObjCmdProc *proc,
319 ClientData clientData,
320 Tcl_CmdDeleteProc *deleteProc);
321 /* 97 */
322 EXTERN Tcl_Interp * Tcl_CreateSlave(Tcl_Interp *interp,
323 const char *slaveName, int isSafe);
324 /* 98 */
325 EXTERN Tcl_TimerToken Tcl_CreateTimerHandler(int milliseconds,
326 Tcl_TimerProc *proc, ClientData clientData);
327 /* 99 */
328 EXTERN Tcl_Trace Tcl_CreateTrace(Tcl_Interp *interp, int level,
329 Tcl_CmdTraceProc *proc,
330 ClientData clientData);
331 /* 100 */
332 EXTERN void Tcl_DeleteAssocData(Tcl_Interp *interp,
333 const char *name);
334 /* 101 */
335 EXTERN void Tcl_DeleteChannelHandler(Tcl_Channel chan,
336 Tcl_ChannelProc *proc, ClientData clientData);
337 /* 102 */
338 EXTERN void Tcl_DeleteCloseHandler(Tcl_Channel chan,
339 Tcl_CloseProc *proc, ClientData clientData);
340 /* 103 */
341 EXTERN int Tcl_DeleteCommand(Tcl_Interp *interp,
342 const char *cmdName);
343 /* 104 */
344 EXTERN int Tcl_DeleteCommandFromToken(Tcl_Interp *interp,
345 Tcl_Command command);
346 /* 105 */
347 EXTERN void Tcl_DeleteEvents(Tcl_EventDeleteProc *proc,
348 ClientData clientData);
349 /* 106 */
350 EXTERN void Tcl_DeleteEventSource(Tcl_EventSetupProc *setupProc,
351 Tcl_EventCheckProc *checkProc,
352 ClientData clientData);
353 /* 107 */
354 EXTERN void Tcl_DeleteExitHandler(Tcl_ExitProc *proc,
355 ClientData clientData);
356 /* 108 */
357 EXTERN void Tcl_DeleteHashEntry(Tcl_HashEntry *entryPtr);
358 /* 109 */
359 EXTERN void Tcl_DeleteHashTable(Tcl_HashTable *tablePtr);
360 /* 110 */
361 EXTERN void Tcl_DeleteInterp(Tcl_Interp *interp);
362 /* 111 */
363 EXTERN void Tcl_DetachPids(int numPids, Tcl_Pid *pidPtr);
364 /* 112 */
365 EXTERN void Tcl_DeleteTimerHandler(Tcl_TimerToken token);
366 /* 113 */
367 EXTERN void Tcl_DeleteTrace(Tcl_Interp *interp, Tcl_Trace trace);
368 /* 114 */
369 EXTERN void Tcl_DontCallWhenDeleted(Tcl_Interp *interp,
370 Tcl_InterpDeleteProc *proc,
371 ClientData clientData);
372 /* 115 */
373 EXTERN int Tcl_DoOneEvent(int flags);
374 /* 116 */
375 EXTERN void Tcl_DoWhenIdle(Tcl_IdleProc *proc,
376 ClientData clientData);
377 /* 117 */
378 EXTERN char * Tcl_DStringAppend(Tcl_DString *dsPtr,
379 const char *bytes, int length);
380 /* 118 */
381 EXTERN char * Tcl_DStringAppendElement(Tcl_DString *dsPtr,
382 const char *element);
383 /* 119 */
384 EXTERN void Tcl_DStringEndSublist(Tcl_DString *dsPtr);
385 /* 120 */
386 EXTERN void Tcl_DStringFree(Tcl_DString *dsPtr);
387 /* 121 */
388 EXTERN void Tcl_DStringGetResult(Tcl_Interp *interp,
389 Tcl_DString *dsPtr);
390 /* 122 */
391 EXTERN void Tcl_DStringInit(Tcl_DString *dsPtr);
392 /* 123 */
393 EXTERN void Tcl_DStringResult(Tcl_Interp *interp,
394 Tcl_DString *dsPtr);
395 /* 124 */
396 EXTERN void Tcl_DStringSetLength(Tcl_DString *dsPtr, int length);
397 /* 125 */
398 EXTERN void Tcl_DStringStartSublist(Tcl_DString *dsPtr);
399 /* 126 */
400 EXTERN int Tcl_Eof(Tcl_Channel chan);
401 /* 127 */
402 EXTERN CONST84_RETURN char * Tcl_ErrnoId(void);
403 /* 128 */
404 EXTERN CONST84_RETURN char * Tcl_ErrnoMsg(int err);
405 /* 129 */
406 EXTERN int Tcl_Eval(Tcl_Interp *interp, const char *script);
407 /* 130 */
408 EXTERN int Tcl_EvalFile(Tcl_Interp *interp,
409 const char *fileName);
410 /* 131 */
411 EXTERN int Tcl_EvalObj(Tcl_Interp *interp, Tcl_Obj *objPtr);
412 /* 132 */
413 EXTERN void Tcl_EventuallyFree(ClientData clientData,
414 Tcl_FreeProc *freeProc);
415 /* 133 */
416 EXTERN void Tcl_Exit(int status);
417 /* 134 */
418 EXTERN int Tcl_ExposeCommand(Tcl_Interp *interp,
419 const char *hiddenCmdToken,
420 const char *cmdName);
421 /* 135 */
422 EXTERN int Tcl_ExprBoolean(Tcl_Interp *interp, const char *expr,
423 int *ptr);
424 /* 136 */
425 EXTERN int Tcl_ExprBooleanObj(Tcl_Interp *interp,
426 Tcl_Obj *objPtr, int *ptr);
427 /* 137 */
428 EXTERN int Tcl_ExprDouble(Tcl_Interp *interp, const char *expr,
429 double *ptr);
430 /* 138 */
431 EXTERN int Tcl_ExprDoubleObj(Tcl_Interp *interp,
432 Tcl_Obj *objPtr, double *ptr);
433 /* 139 */
434 EXTERN int Tcl_ExprLong(Tcl_Interp *interp, const char *expr,
435 long *ptr);
436 /* 140 */
437 EXTERN int Tcl_ExprLongObj(Tcl_Interp *interp, Tcl_Obj *objPtr,
438 long *ptr);
439 /* 141 */
440 EXTERN int Tcl_ExprObj(Tcl_Interp *interp, Tcl_Obj *objPtr,
441 Tcl_Obj **resultPtrPtr);
442 /* 142 */
443 EXTERN int Tcl_ExprString(Tcl_Interp *interp, const char *expr);
444 /* 143 */
445 EXTERN void Tcl_Finalize(void);
446 /* 144 */
447 EXTERN void Tcl_FindExecutable(const char *argv0);
448 /* 145 */
449 EXTERN Tcl_HashEntry * Tcl_FirstHashEntry(Tcl_HashTable *tablePtr,
450 Tcl_HashSearch *searchPtr);
451 /* 146 */
452 EXTERN int Tcl_Flush(Tcl_Channel chan);
453 /* 147 */
454 EXTERN void Tcl_FreeResult(Tcl_Interp *interp);
455 /* 148 */
456 EXTERN int Tcl_GetAlias(Tcl_Interp *interp,
457 const char *slaveCmd,
458 Tcl_Interp **targetInterpPtr,
459 CONST84 char **targetCmdPtr, int *argcPtr,
460 CONST84 char ***argvPtr);
461 /* 149 */
462 EXTERN int Tcl_GetAliasObj(Tcl_Interp *interp,
463 const char *slaveCmd,
464 Tcl_Interp **targetInterpPtr,
465 CONST84 char **targetCmdPtr, int *objcPtr,
466 Tcl_Obj ***objv);
467 /* 150 */
468 EXTERN ClientData Tcl_GetAssocData(Tcl_Interp *interp,
469 const char *name,
470 Tcl_InterpDeleteProc **procPtr);
471 /* 151 */
472 EXTERN Tcl_Channel Tcl_GetChannel(Tcl_Interp *interp,
473 const char *chanName, int *modePtr);
474 /* 152 */
475 EXTERN int Tcl_GetChannelBufferSize(Tcl_Channel chan);
476 /* 153 */
477 EXTERN int Tcl_GetChannelHandle(Tcl_Channel chan, int direction,
478 ClientData *handlePtr);
479 /* 154 */
480 EXTERN ClientData Tcl_GetChannelInstanceData(Tcl_Channel chan);
481 /* 155 */
482 EXTERN int Tcl_GetChannelMode(Tcl_Channel chan);
483 /* 156 */
484 EXTERN CONST84_RETURN char * Tcl_GetChannelName(Tcl_Channel chan);
485 /* 157 */
486 EXTERN int Tcl_GetChannelOption(Tcl_Interp *interp,
487 Tcl_Channel chan, const char *optionName,
488 Tcl_DString *dsPtr);
489 /* 158 */
490 EXTERN CONST86 Tcl_ChannelType * Tcl_GetChannelType(Tcl_Channel chan);
491 /* 159 */
492 EXTERN int Tcl_GetCommandInfo(Tcl_Interp *interp,
493 const char *cmdName, Tcl_CmdInfo *infoPtr);
494 /* 160 */
495 EXTERN CONST84_RETURN char * Tcl_GetCommandName(Tcl_Interp *interp,
496 Tcl_Command command);
497 /* 161 */
498 EXTERN int Tcl_GetErrno(void);
499 /* 162 */
500 EXTERN CONST84_RETURN char * Tcl_GetHostName(void);
501 /* 163 */
502 EXTERN int Tcl_GetInterpPath(Tcl_Interp *askInterp,
503 Tcl_Interp *slaveInterp);
504 /* 164 */
505 EXTERN Tcl_Interp * Tcl_GetMaster(Tcl_Interp *interp);
506 /* 165 */
507 EXTERN const char * Tcl_GetNameOfExecutable(void);
508 /* 166 */
509 EXTERN Tcl_Obj * Tcl_GetObjResult(Tcl_Interp *interp);
510 #if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
511 /* 167 */
512 EXTERN int Tcl_GetOpenFile(Tcl_Interp *interp,
513 const char *chanID, int forWriting,
514 int checkUsage, ClientData *filePtr);
515 #endif /* UNIX */
516 #ifdef MAC_OSX_TCL /* MACOSX */
517 /* 167 */
518 EXTERN int Tcl_GetOpenFile(Tcl_Interp *interp,
519 const char *chanID, int forWriting,
520 int checkUsage, ClientData *filePtr);
521 #endif /* MACOSX */
522 /* 168 */
523 EXTERN Tcl_PathType Tcl_GetPathType(const char *path);
524 /* 169 */
525 EXTERN int Tcl_Gets(Tcl_Channel chan, Tcl_DString *dsPtr);
526 /* 170 */
527 EXTERN int Tcl_GetsObj(Tcl_Channel chan, Tcl_Obj *objPtr);
528 /* 171 */
529 EXTERN int Tcl_GetServiceMode(void);
530 /* 172 */
531 EXTERN Tcl_Interp * Tcl_GetSlave(Tcl_Interp *interp,
532 const char *slaveName);
533 /* 173 */
534 EXTERN Tcl_Channel Tcl_GetStdChannel(int type);
535 /* 174 */
536 EXTERN CONST84_RETURN char * Tcl_GetStringResult(Tcl_Interp *interp);
537 /* 175 */
538 EXTERN CONST84_RETURN char * Tcl_GetVar(Tcl_Interp *interp,
539 const char *varName, int flags);
540 /* 176 */
541 EXTERN CONST84_RETURN char * Tcl_GetVar2(Tcl_Interp *interp,
542 const char *part1, const char *part2,
543 int flags);
544 /* 177 */
545 EXTERN int Tcl_GlobalEval(Tcl_Interp *interp,
546 const char *command);
547 /* 178 */
548 EXTERN int Tcl_GlobalEvalObj(Tcl_Interp *interp,
549 Tcl_Obj *objPtr);
550 /* 179 */
551 EXTERN int Tcl_HideCommand(Tcl_Interp *interp,
552 const char *cmdName,
553 const char *hiddenCmdToken);
554 /* 180 */
555 EXTERN int Tcl_Init(Tcl_Interp *interp);
556 /* 181 */
557 EXTERN void Tcl_InitHashTable(Tcl_HashTable *tablePtr,
558 int keyType);
559 /* 182 */
560 EXTERN int Tcl_InputBlocked(Tcl_Channel chan);
561 /* 183 */
562 EXTERN int Tcl_InputBuffered(Tcl_Channel chan);
563 /* 184 */
564 EXTERN int Tcl_InterpDeleted(Tcl_Interp *interp);
565 /* 185 */
566 EXTERN int Tcl_IsSafe(Tcl_Interp *interp);
567 /* 186 */
568 EXTERN char * Tcl_JoinPath(int argc, CONST84 char *const *argv,
569 Tcl_DString *resultPtr);
570 /* 187 */
571 EXTERN int Tcl_LinkVar(Tcl_Interp *interp, const char *varName,
572 char *addr, int type);
573 /* Slot 188 is reserved */
574 /* 189 */
575 EXTERN Tcl_Channel Tcl_MakeFileChannel(ClientData handle, int mode);
576 /* 190 */
577 EXTERN int Tcl_MakeSafe(Tcl_Interp *interp);
578 /* 191 */
579 EXTERN Tcl_Channel Tcl_MakeTcpClientChannel(ClientData tcpSocket);
580 /* 192 */
581 EXTERN char * Tcl_Merge(int argc, CONST84 char *const *argv);
582 /* 193 */
583 EXTERN Tcl_HashEntry * Tcl_NextHashEntry(Tcl_HashSearch *searchPtr);
584 /* 194 */
585 EXTERN void Tcl_NotifyChannel(Tcl_Channel channel, int mask);
586 /* 195 */
587 EXTERN Tcl_Obj * Tcl_ObjGetVar2(Tcl_Interp *interp, Tcl_Obj *part1Ptr,
588 Tcl_Obj *part2Ptr, int flags);
589 /* 196 */
590 EXTERN Tcl_Obj * Tcl_ObjSetVar2(Tcl_Interp *interp, Tcl_Obj *part1Ptr,
591 Tcl_Obj *part2Ptr, Tcl_Obj *newValuePtr,
592 int flags);
593 /* 197 */
594 EXTERN Tcl_Channel Tcl_OpenCommandChannel(Tcl_Interp *interp, int argc,
595 CONST84 char **argv, int flags);
596 /* 198 */
597 EXTERN Tcl_Channel Tcl_OpenFileChannel(Tcl_Interp *interp,
598 const char *fileName, const char *modeString,
599 int permissions);
600 /* 199 */
601 EXTERN Tcl_Channel Tcl_OpenTcpClient(Tcl_Interp *interp, int port,
602 const char *address, const char *myaddr,
603 int myport, int async);
604 /* 200 */
605 EXTERN Tcl_Channel Tcl_OpenTcpServer(Tcl_Interp *interp, int port,
606 const char *host,
607 Tcl_TcpAcceptProc *acceptProc,
608 ClientData callbackData);
609 /* 201 */
610 EXTERN void Tcl_Preserve(ClientData data);
611 /* 202 */
612 EXTERN void Tcl_PrintDouble(Tcl_Interp *interp, double value,
613 char *dst);
614 /* 203 */
615 EXTERN int Tcl_PutEnv(const char *assignment);
616 /* 204 */
617 EXTERN CONST84_RETURN char * Tcl_PosixError(Tcl_Interp *interp);
618 /* 205 */
619 EXTERN void Tcl_QueueEvent(Tcl_Event *evPtr,
620 Tcl_QueuePosition position);
621 /* 206 */
622 EXTERN int Tcl_Read(Tcl_Channel chan, char *bufPtr, int toRead);
623 /* 207 */
624 EXTERN void Tcl_ReapDetachedProcs(void);
625 /* 208 */
626 EXTERN int Tcl_RecordAndEval(Tcl_Interp *interp,
627 const char *cmd, int flags);
628 /* 209 */
629 EXTERN int Tcl_RecordAndEvalObj(Tcl_Interp *interp,
630 Tcl_Obj *cmdPtr, int flags);
631 /* 210 */
632 EXTERN void Tcl_RegisterChannel(Tcl_Interp *interp,
633 Tcl_Channel chan);
634 /* 211 */
635 EXTERN void Tcl_RegisterObjType(const Tcl_ObjType *typePtr);
636 /* 212 */
637 EXTERN Tcl_RegExp Tcl_RegExpCompile(Tcl_Interp *interp,
638 const char *pattern);
639 /* 213 */
640 EXTERN int Tcl_RegExpExec(Tcl_Interp *interp, Tcl_RegExp regexp,
641 const char *text, const char *start);
642 /* 214 */
643 EXTERN int Tcl_RegExpMatch(Tcl_Interp *interp, const char *text,
644 const char *pattern);
645 /* 215 */
646 EXTERN void Tcl_RegExpRange(Tcl_RegExp regexp, int index,
647 CONST84 char **startPtr,
648 CONST84 char **endPtr);
649 /* 216 */
650 EXTERN void Tcl_Release(ClientData clientData);
651 /* 217 */
652 EXTERN void Tcl_ResetResult(Tcl_Interp *interp);
653 /* 218 */
654 EXTERN int Tcl_ScanElement(const char *src, int *flagPtr);
655 /* 219 */
656 EXTERN int Tcl_ScanCountedElement(const char *src, int length,
657 int *flagPtr);
658 /* 220 */
659 EXTERN int Tcl_SeekOld(Tcl_Channel chan, int offset, int mode);
660 /* 221 */
661 EXTERN int Tcl_ServiceAll(void);
662 /* 222 */
663 EXTERN int Tcl_ServiceEvent(int flags);
664 /* 223 */
665 EXTERN void Tcl_SetAssocData(Tcl_Interp *interp,
666 const char *name, Tcl_InterpDeleteProc *proc,
667 ClientData clientData);
668 /* 224 */
669 EXTERN void Tcl_SetChannelBufferSize(Tcl_Channel chan, int sz);
670 /* 225 */
671 EXTERN int Tcl_SetChannelOption(Tcl_Interp *interp,
672 Tcl_Channel chan, const char *optionName,
673 const char *newValue);
674 /* 226 */
675 EXTERN int Tcl_SetCommandInfo(Tcl_Interp *interp,
676 const char *cmdName,
677 const Tcl_CmdInfo *infoPtr);
678 /* 227 */
679 EXTERN void Tcl_SetErrno(int err);
680 /* 228 */
681 EXTERN void Tcl_SetErrorCode(Tcl_Interp *interp, ...);
682 /* 229 */
683 EXTERN void Tcl_SetMaxBlockTime(const Tcl_Time *timePtr);
684 /* 230 */
685 EXTERN void Tcl_SetPanicProc(Tcl_PanicProc *panicProc);
686 /* 231 */
687 EXTERN int Tcl_SetRecursionLimit(Tcl_Interp *interp, int depth);
688 /* 232 */
689 EXTERN void Tcl_SetResult(Tcl_Interp *interp, char *result,
690 Tcl_FreeProc *freeProc);
691 /* 233 */
692 EXTERN int Tcl_SetServiceMode(int mode);
693 /* 234 */
694 EXTERN void Tcl_SetObjErrorCode(Tcl_Interp *interp,
695 Tcl_Obj *errorObjPtr);
696 /* 235 */
697 EXTERN void Tcl_SetObjResult(Tcl_Interp *interp,
698 Tcl_Obj *resultObjPtr);
699 /* 236 */
700 EXTERN void Tcl_SetStdChannel(Tcl_Channel channel, int type);
701 /* 237 */
702 EXTERN CONST84_RETURN char * Tcl_SetVar(Tcl_Interp *interp,
703 const char *varName, const char *newValue,
704 int flags);
705 /* 238 */
706 EXTERN CONST84_RETURN char * Tcl_SetVar2(Tcl_Interp *interp,
707 const char *part1, const char *part2,
708 const char *newValue, int flags);
709 /* 239 */
710 EXTERN CONST84_RETURN char * Tcl_SignalId(int sig);
711 /* 240 */
712 EXTERN CONST84_RETURN char * Tcl_SignalMsg(int sig);
713 /* 241 */
714 EXTERN void Tcl_SourceRCFile(Tcl_Interp *interp);
715 /* 242 */
716 EXTERN int Tcl_SplitList(Tcl_Interp *interp,
717 const char *listStr, int *argcPtr,
718 CONST84 char ***argvPtr);
719 /* 243 */
720 EXTERN void Tcl_SplitPath(const char *path, int *argcPtr,
721 CONST84 char ***argvPtr);
722 /* 244 */
723 EXTERN void Tcl_StaticPackage(Tcl_Interp *interp,
724 const char *pkgName,
725 Tcl_PackageInitProc *initProc,
726 Tcl_PackageInitProc *safeInitProc);
727 /* 245 */
728 EXTERN int Tcl_StringMatch(const char *str, const char *pattern);
729 /* 246 */
730 EXTERN int Tcl_TellOld(Tcl_Channel chan);
731 /* 247 */
732 EXTERN int Tcl_TraceVar(Tcl_Interp *interp, const char *varName,
733 int flags, Tcl_VarTraceProc *proc,
734 ClientData clientData);
735 /* 248 */
736 EXTERN int Tcl_TraceVar2(Tcl_Interp *interp, const char *part1,
737 const char *part2, int flags,
738 Tcl_VarTraceProc *proc,
739 ClientData clientData);
740 /* 249 */
741 EXTERN char * Tcl_TranslateFileName(Tcl_Interp *interp,
742 const char *name, Tcl_DString *bufferPtr);
743 /* 250 */
744 EXTERN int Tcl_Ungets(Tcl_Channel chan, const char *str,
745 int len, int atHead);
746 /* 251 */
747 EXTERN void Tcl_UnlinkVar(Tcl_Interp *interp,
748 const char *varName);
749 /* 252 */
750 EXTERN int Tcl_UnregisterChannel(Tcl_Interp *interp,
751 Tcl_Channel chan);
752 /* 253 */
753 EXTERN int Tcl_UnsetVar(Tcl_Interp *interp, const char *varName,
754 int flags);
755 /* 254 */
756 EXTERN int Tcl_UnsetVar2(Tcl_Interp *interp, const char *part1,
757 const char *part2, int flags);
758 /* 255 */
759 EXTERN void Tcl_UntraceVar(Tcl_Interp *interp,
760 const char *varName, int flags,
761 Tcl_VarTraceProc *proc,
762 ClientData clientData);
763 /* 256 */
764 EXTERN void Tcl_UntraceVar2(Tcl_Interp *interp,
765 const char *part1, const char *part2,
766 int flags, Tcl_VarTraceProc *proc,
767 ClientData clientData);
768 /* 257 */
769 EXTERN void Tcl_UpdateLinkedVar(Tcl_Interp *interp,
770 const char *varName);
771 /* 258 */
772 EXTERN int Tcl_UpVar(Tcl_Interp *interp, const char *frameName,
773 const char *varName, const char *localName,
774 int flags);
775 /* 259 */
776 EXTERN int Tcl_UpVar2(Tcl_Interp *interp, const char *frameName,
777 const char *part1, const char *part2,
778 const char *localName, int flags);
779 /* 260 */
780 EXTERN int Tcl_VarEval(Tcl_Interp *interp, ...);
781 /* 261 */
782 EXTERN ClientData Tcl_VarTraceInfo(Tcl_Interp *interp,
783 const char *varName, int flags,
784 Tcl_VarTraceProc *procPtr,
785 ClientData prevClientData);
786 /* 262 */
787 EXTERN ClientData Tcl_VarTraceInfo2(Tcl_Interp *interp,
788 const char *part1, const char *part2,
789 int flags, Tcl_VarTraceProc *procPtr,
790 ClientData prevClientData);
791 /* 263 */
792 EXTERN int Tcl_Write(Tcl_Channel chan, const char *s, int slen);
793 /* 264 */
794 EXTERN void Tcl_WrongNumArgs(Tcl_Interp *interp, int objc,
795 Tcl_Obj *const objv[], const char *message);
796 /* 265 */
797 EXTERN int Tcl_DumpActiveMemory(const char *fileName);
798 /* 266 */
799 EXTERN void Tcl_ValidateAllMemory(const char *file, int line);
800 /* 267 */
801 EXTERN void Tcl_AppendResultVA(Tcl_Interp *interp,
802 va_list argList);
803 /* 268 */
804 EXTERN void Tcl_AppendStringsToObjVA(Tcl_Obj *objPtr,
805 va_list argList);
806 /* 269 */
807 EXTERN char * Tcl_HashStats(Tcl_HashTable *tablePtr);
808 /* 270 */
809 EXTERN CONST84_RETURN char * Tcl_ParseVar(Tcl_Interp *interp,
810 const char *start, CONST84 char **termPtr);
811 /* 271 */
812 EXTERN CONST84_RETURN char * Tcl_PkgPresent(Tcl_Interp *interp,
813 const char *name, const char *version,
814 int exact);
815 /* 272 */
816 EXTERN CONST84_RETURN char * Tcl_PkgPresentEx(Tcl_Interp *interp,
817 const char *name, const char *version,
818 int exact, void *clientDataPtr);
819 /* 273 */
820 EXTERN int Tcl_PkgProvide(Tcl_Interp *interp, const char *name,
821 const char *version);
822 /* 274 */
823 EXTERN CONST84_RETURN char * Tcl_PkgRequire(Tcl_Interp *interp,
824 const char *name, const char *version,
825 int exact);
826 /* 275 */
827 EXTERN void Tcl_SetErrorCodeVA(Tcl_Interp *interp,
828 va_list argList);
829 /* 276 */
830 EXTERN int Tcl_VarEvalVA(Tcl_Interp *interp, va_list argList);
831 /* 277 */
832 EXTERN Tcl_Pid Tcl_WaitPid(Tcl_Pid pid, int *statPtr, int options);
833 /* 278 */
834 EXTERN void Tcl_PanicVA(const char *format, va_list argList);
835 /* 279 */
836 EXTERN void Tcl_GetVersion(int *major, int *minor,
837 int *patchLevel, int *type);
838 /* 280 */
839 EXTERN void Tcl_InitMemory(Tcl_Interp *interp);
840 /* 281 */
841 EXTERN Tcl_Channel Tcl_StackChannel(Tcl_Interp *interp,
842 const Tcl_ChannelType *typePtr,
843 ClientData instanceData, int mask,
844 Tcl_Channel prevChan);
845 /* 282 */
846 EXTERN int Tcl_UnstackChannel(Tcl_Interp *interp,
847 Tcl_Channel chan);
848 /* 283 */
849 EXTERN Tcl_Channel Tcl_GetStackedChannel(Tcl_Channel chan);
850 /* 284 */
851 EXTERN void Tcl_SetMainLoop(Tcl_MainLoopProc *proc);
852 /* Slot 285 is reserved */
853 /* 286 */
854 EXTERN void Tcl_AppendObjToObj(Tcl_Obj *objPtr,
855 Tcl_Obj *appendObjPtr);
856 /* 287 */
857 EXTERN Tcl_Encoding Tcl_CreateEncoding(const Tcl_EncodingType *typePtr);
858 /* 288 */
859 EXTERN void Tcl_CreateThreadExitHandler(Tcl_ExitProc *proc,
860 ClientData clientData);
861 /* 289 */
862 EXTERN void Tcl_DeleteThreadExitHandler(Tcl_ExitProc *proc,
863 ClientData clientData);
864 /* 290 */
865 EXTERN void Tcl_DiscardResult(Tcl_SavedResult *statePtr);
866 /* 291 */
867 EXTERN int Tcl_EvalEx(Tcl_Interp *interp, const char *script,
868 int numBytes, int flags);
869 /* 292 */
870 EXTERN int Tcl_EvalObjv(Tcl_Interp *interp, int objc,
871 Tcl_Obj *const objv[], int flags);
872 /* 293 */
873 EXTERN int Tcl_EvalObjEx(Tcl_Interp *interp, Tcl_Obj *objPtr,
874 int flags);
875 /* 294 */
876 EXTERN void Tcl_ExitThread(int status);
877 /* 295 */
878 EXTERN int Tcl_ExternalToUtf(Tcl_Interp *interp,
879 Tcl_Encoding encoding, const char *src,
880 int srcLen, int flags,
881 Tcl_EncodingState *statePtr, char *dst,
882 int dstLen, int *srcReadPtr,
883 int *dstWrotePtr, int *dstCharsPtr);
884 /* 296 */
885 EXTERN char * Tcl_ExternalToUtfDString(Tcl_Encoding encoding,
886 const char *src, int srcLen,
887 Tcl_DString *dsPtr);
888 /* 297 */
889 EXTERN void Tcl_FinalizeThread(void);
890 /* 298 */
891 EXTERN void Tcl_FinalizeNotifier(ClientData clientData);
892 /* 299 */
893 EXTERN void Tcl_FreeEncoding(Tcl_Encoding encoding);
894 /* 300 */
895 EXTERN Tcl_ThreadId Tcl_GetCurrentThread(void);
896 /* 301 */
897 EXTERN Tcl_Encoding Tcl_GetEncoding(Tcl_Interp *interp, const char *name);
898 /* 302 */
899 EXTERN CONST84_RETURN char * Tcl_GetEncodingName(Tcl_Encoding encoding);
900 /* 303 */
901 EXTERN void Tcl_GetEncodingNames(Tcl_Interp *interp);
902 /* 304 */
903 EXTERN int Tcl_GetIndexFromObjStruct(Tcl_Interp *interp,
904 Tcl_Obj *objPtr, const void *tablePtr,
905 int offset, const char *msg, int flags,
906 int *indexPtr);
907 /* 305 */
908 EXTERN void * Tcl_GetThreadData(Tcl_ThreadDataKey *keyPtr,
909 int size);
910 /* 306 */
911 EXTERN Tcl_Obj * Tcl_GetVar2Ex(Tcl_Interp *interp, const char *part1,
912 const char *part2, int flags);
913 /* 307 */
914 EXTERN ClientData Tcl_InitNotifier(void);
915 /* 308 */
916 EXTERN void Tcl_MutexLock(Tcl_Mutex *mutexPtr);
917 /* 309 */
918 EXTERN void Tcl_MutexUnlock(Tcl_Mutex *mutexPtr);
919 /* 310 */
920 EXTERN void Tcl_ConditionNotify(Tcl_Condition *condPtr);
921 /* 311 */
922 EXTERN void Tcl_ConditionWait(Tcl_Condition *condPtr,
923 Tcl_Mutex *mutexPtr, const Tcl_Time *timePtr);
924 /* 312 */
925 EXTERN int Tcl_NumUtfChars(const char *src, int length);
926 /* 313 */
927 EXTERN int Tcl_ReadChars(Tcl_Channel channel, Tcl_Obj *objPtr,
928 int charsToRead, int appendFlag);
929 /* 314 */
930 EXTERN void Tcl_RestoreResult(Tcl_Interp *interp,
931 Tcl_SavedResult *statePtr);
932 /* 315 */
933 EXTERN void Tcl_SaveResult(Tcl_Interp *interp,
934 Tcl_SavedResult *statePtr);
935 /* 316 */
936 EXTERN int Tcl_SetSystemEncoding(Tcl_Interp *interp,
937 const char *name);
938 /* 317 */
939 EXTERN Tcl_Obj * Tcl_SetVar2Ex(Tcl_Interp *interp, const char *part1,
940 const char *part2, Tcl_Obj *newValuePtr,
941 int flags);
942 /* 318 */
943 EXTERN void Tcl_ThreadAlert(Tcl_ThreadId threadId);
944 /* 319 */
945 EXTERN void Tcl_ThreadQueueEvent(Tcl_ThreadId threadId,
946 Tcl_Event *evPtr, Tcl_QueuePosition position);
947 /* 320 */
948 EXTERN Tcl_UniChar Tcl_UniCharAtIndex(const char *src, int index);
949 /* 321 */
950 EXTERN Tcl_UniChar Tcl_UniCharToLower(int ch);
951 /* 322 */
952 EXTERN Tcl_UniChar Tcl_UniCharToTitle(int ch);
953 /* 323 */
954 EXTERN Tcl_UniChar Tcl_UniCharToUpper(int ch);
955 /* 324 */
956 EXTERN int Tcl_UniCharToUtf(int ch, char *buf);
957 /* 325 */
958 EXTERN CONST84_RETURN char * Tcl_UtfAtIndex(const char *src, int index);
959 /* 326 */
960 EXTERN int Tcl_UtfCharComplete(const char *src, int length);
961 /* 327 */
962 EXTERN int Tcl_UtfBackslash(const char *src, int *readPtr,
963 char *dst);
964 /* 328 */
965 EXTERN CONST84_RETURN char * Tcl_UtfFindFirst(const char *src, int ch);
966 /* 329 */
967 EXTERN CONST84_RETURN char * Tcl_UtfFindLast(const char *src, int ch);
968 /* 330 */
969 EXTERN CONST84_RETURN char * Tcl_UtfNext(const char *src);
970 /* 331 */
971 EXTERN CONST84_RETURN char * Tcl_UtfPrev(const char *src, const char *start);
972 /* 332 */
973 EXTERN int Tcl_UtfToExternal(Tcl_Interp *interp,
974 Tcl_Encoding encoding, const char *src,
975 int srcLen, int flags,
976 Tcl_EncodingState *statePtr, char *dst,
977 int dstLen, int *srcReadPtr,
978 int *dstWrotePtr, int *dstCharsPtr);
979 /* 333 */
980 EXTERN char * Tcl_UtfToExternalDString(Tcl_Encoding encoding,
981 const char *src, int srcLen,
982 Tcl_DString *dsPtr);
983 /* 334 */
984 EXTERN int Tcl_UtfToLower(char *src);
985 /* 335 */
986 EXTERN int Tcl_UtfToTitle(char *src);
987 /* 336 */
988 EXTERN int Tcl_UtfToUniChar(const char *src, Tcl_UniChar *chPtr);
989 /* 337 */
990 EXTERN int Tcl_UtfToUpper(char *src);
991 /* 338 */
992 EXTERN int Tcl_WriteChars(Tcl_Channel chan, const char *src,
993 int srcLen);
994 /* 339 */
995 EXTERN int Tcl_WriteObj(Tcl_Channel chan, Tcl_Obj *objPtr);
996 /* 340 */
997 EXTERN char * Tcl_GetString(Tcl_Obj *objPtr);
998 /* 341 */
999 EXTERN CONST84_RETURN char * Tcl_GetDefaultEncodingDir(void);
1000 /* 342 */
1001 EXTERN void Tcl_SetDefaultEncodingDir(const char *path);
1002 /* 343 */
1003 EXTERN void Tcl_AlertNotifier(ClientData clientData);
1004 /* 344 */
1005 EXTERN void Tcl_ServiceModeHook(int mode);
1006 /* 345 */
1007 EXTERN int Tcl_UniCharIsAlnum(int ch);
1008 /* 346 */
1009 EXTERN int Tcl_UniCharIsAlpha(int ch);
1010 /* 347 */
1011 EXTERN int Tcl_UniCharIsDigit(int ch);
1012 /* 348 */
1013 EXTERN int Tcl_UniCharIsLower(int ch);
1014 /* 349 */
1015 EXTERN int Tcl_UniCharIsSpace(int ch);
1016 /* 350 */
1017 EXTERN int Tcl_UniCharIsUpper(int ch);
1018 /* 351 */
1019 EXTERN int Tcl_UniCharIsWordChar(int ch);
1020 /* 352 */
1021 EXTERN int Tcl_UniCharLen(const Tcl_UniChar *uniStr);
1022 /* 353 */
1023 EXTERN int Tcl_UniCharNcmp(const Tcl_UniChar *ucs,
1024 const Tcl_UniChar *uct,
1025 unsigned long numChars);
1026 /* 354 */
1027 EXTERN char * Tcl_UniCharToUtfDString(const Tcl_UniChar *uniStr,
1028 int uniLength, Tcl_DString *dsPtr);
1029 /* 355 */
1030 EXTERN Tcl_UniChar * Tcl_UtfToUniCharDString(const char *src, int length,
1031 Tcl_DString *dsPtr);
1032 /* 356 */
1033 EXTERN Tcl_RegExp Tcl_GetRegExpFromObj(Tcl_Interp *interp,
1034 Tcl_Obj *patObj, int flags);
1035 /* 357 */
1036 EXTERN Tcl_Obj * Tcl_EvalTokens(Tcl_Interp *interp,
1037 Tcl_Token *tokenPtr, int count);
1038 /* 358 */
1039 EXTERN void Tcl_FreeParse(Tcl_Parse *parsePtr);
1040 /* 359 */
1041 EXTERN void Tcl_LogCommandInfo(Tcl_Interp *interp,
1042 const char *script, const char *command,
1043 int length);
1044 /* 360 */
1045 EXTERN int Tcl_ParseBraces(Tcl_Interp *interp,
1046 const char *start, int numBytes,
1047 Tcl_Parse *parsePtr, int append,
1048 CONST84 char **termPtr);
1049 /* 361 */
1050 EXTERN int Tcl_ParseCommand(Tcl_Interp *interp,
1051 const char *start, int numBytes, int nested,
1052 Tcl_Parse *parsePtr);
1053 /* 362 */
1054 EXTERN int Tcl_ParseExpr(Tcl_Interp *interp, const char *start,
1055 int numBytes, Tcl_Parse *parsePtr);
1056 /* 363 */
1057 EXTERN int Tcl_ParseQuotedString(Tcl_Interp *interp,
1058 const char *start, int numBytes,
1059 Tcl_Parse *parsePtr, int append,
1060 CONST84 char **termPtr);
1061 /* 364 */
1062 EXTERN int Tcl_ParseVarName(Tcl_Interp *interp,
1063 const char *start, int numBytes,
1064 Tcl_Parse *parsePtr, int append);
1065 /* 365 */
1066 EXTERN char * Tcl_GetCwd(Tcl_Interp *interp, Tcl_DString *cwdPtr);
1067 /* 366 */
1068 EXTERN int Tcl_Chdir(const char *dirName);
1069 /* 367 */
1070 EXTERN int Tcl_Access(const char *path, int mode);
1071 /* 368 */
1072 EXTERN int Tcl_Stat(const char *path, struct stat *bufPtr);
1073 /* 369 */
1074 EXTERN int Tcl_UtfNcmp(const char *s1, const char *s2,
1075 unsigned long n);
1076 /* 370 */
1077 EXTERN int Tcl_UtfNcasecmp(const char *s1, const char *s2,
1078 unsigned long n);
1079 /* 371 */
1080 EXTERN int Tcl_StringCaseMatch(const char *str,
1081 const char *pattern, int nocase);
1082 /* 372 */
1083 EXTERN int Tcl_UniCharIsControl(int ch);
1084 /* 373 */
1085 EXTERN int Tcl_UniCharIsGraph(int ch);
1086 /* 374 */
1087 EXTERN int Tcl_UniCharIsPrint(int ch);
1088 /* 375 */
1089 EXTERN int Tcl_UniCharIsPunct(int ch);
1090 /* 376 */
1091 EXTERN int Tcl_RegExpExecObj(Tcl_Interp *interp,
1092 Tcl_RegExp regexp, Tcl_Obj *textObj,
1093 int offset, int nmatches, int flags);
1094 /* 377 */
1095 EXTERN void Tcl_RegExpGetInfo(Tcl_RegExp regexp,
1096 Tcl_RegExpInfo *infoPtr);
1097 /* 378 */
1098 EXTERN Tcl_Obj * Tcl_NewUnicodeObj(const Tcl_UniChar *unicode,
1099 int numChars);
1100 /* 379 */
1101 EXTERN void Tcl_SetUnicodeObj(Tcl_Obj *objPtr,
1102 const Tcl_UniChar *unicode, int numChars);
1103 /* 380 */
1104 EXTERN int Tcl_GetCharLength(Tcl_Obj *objPtr);
1105 /* 381 */
1106 EXTERN Tcl_UniChar Tcl_GetUniChar(Tcl_Obj *objPtr, int index);
1107 /* 382 */
1108 EXTERN Tcl_UniChar * Tcl_GetUnicode(Tcl_Obj *objPtr);
1109 /* 383 */
1110 EXTERN Tcl_Obj * Tcl_GetRange(Tcl_Obj *objPtr, int first, int last);
1111 /* 384 */
1112 EXTERN void Tcl_AppendUnicodeToObj(Tcl_Obj *objPtr,
1113 const Tcl_UniChar *unicode, int length);
1114 /* 385 */
1115 EXTERN int Tcl_RegExpMatchObj(Tcl_Interp *interp,
1116 Tcl_Obj *textObj, Tcl_Obj *patternObj);
1117 /* 386 */
1118 EXTERN void Tcl_SetNotifier(Tcl_NotifierProcs *notifierProcPtr);
1119 /* 387 */
1120 EXTERN Tcl_Mutex * Tcl_GetAllocMutex(void);
1121 /* 388 */
1122 EXTERN int Tcl_GetChannelNames(Tcl_Interp *interp);
1123 /* 389 */
1124 EXTERN int Tcl_GetChannelNamesEx(Tcl_Interp *interp,
1125 const char *pattern);
1126 /* 390 */
1127 EXTERN int Tcl_ProcObjCmd(ClientData clientData,
1128 Tcl_Interp *interp, int objc,
1129 Tcl_Obj *const objv[]);
1130 /* 391 */
1131 EXTERN void Tcl_ConditionFinalize(Tcl_Condition *condPtr);
1132 /* 392 */
1133 EXTERN void Tcl_MutexFinalize(Tcl_Mutex *mutex);
1134 /* 393 */
1135 EXTERN int Tcl_CreateThread(Tcl_ThreadId *idPtr,
1136 Tcl_ThreadCreateProc *proc,
1137 ClientData clientData, int stackSize,
1138 int flags);
1139 /* 394 */
1140 EXTERN int Tcl_ReadRaw(Tcl_Channel chan, char *dst,
1141 int bytesToRead);
1142 /* 395 */
1143 EXTERN int Tcl_WriteRaw(Tcl_Channel chan, const char *src,
1144 int srcLen);
1145 /* 396 */
1146 EXTERN Tcl_Channel Tcl_GetTopChannel(Tcl_Channel chan);
1147 /* 397 */
1148 EXTERN int Tcl_ChannelBuffered(Tcl_Channel chan);
1149 /* 398 */
1150 EXTERN CONST84_RETURN char * Tcl_ChannelName(
1151 const Tcl_ChannelType *chanTypePtr);
1152 /* 399 */
1153 EXTERN Tcl_ChannelTypeVersion Tcl_ChannelVersion(
1154 const Tcl_ChannelType *chanTypePtr);
1155 /* 400 */
1156 EXTERN Tcl_DriverBlockModeProc * Tcl_ChannelBlockModeProc(
1157 const Tcl_ChannelType *chanTypePtr);
1158 /* 401 */
1159 EXTERN Tcl_DriverCloseProc * Tcl_ChannelCloseProc(
1160 const Tcl_ChannelType *chanTypePtr);
1161 /* 402 */
1162 EXTERN Tcl_DriverClose2Proc * Tcl_ChannelClose2Proc(
1163 const Tcl_ChannelType *chanTypePtr);
1164 /* 403 */
1165 EXTERN Tcl_DriverInputProc * Tcl_ChannelInputProc(
1166 const Tcl_ChannelType *chanTypePtr);
1167 /* 404 */
1168 EXTERN Tcl_DriverOutputProc * Tcl_ChannelOutputProc(
1169 const Tcl_ChannelType *chanTypePtr);
1170 /* 405 */
1171 EXTERN Tcl_DriverSeekProc * Tcl_ChannelSeekProc(
1172 const Tcl_ChannelType *chanTypePtr);
1173 /* 406 */
1174 EXTERN Tcl_DriverSetOptionProc * Tcl_ChannelSetOptionProc(
1175 const Tcl_ChannelType *chanTypePtr);
1176 /* 407 */
1177 EXTERN Tcl_DriverGetOptionProc * Tcl_ChannelGetOptionProc(
1178 const Tcl_ChannelType *chanTypePtr);
1179 /* 408 */
1180 EXTERN Tcl_DriverWatchProc * Tcl_ChannelWatchProc(
1181 const Tcl_ChannelType *chanTypePtr);
1182 /* 409 */
1183 EXTERN Tcl_DriverGetHandleProc * Tcl_ChannelGetHandleProc(
1184 const Tcl_ChannelType *chanTypePtr);
1185 /* 410 */
1186 EXTERN Tcl_DriverFlushProc * Tcl_ChannelFlushProc(
1187 const Tcl_ChannelType *chanTypePtr);
1188 /* 411 */
1189 EXTERN Tcl_DriverHandlerProc * Tcl_ChannelHandlerProc(
1190 const Tcl_ChannelType *chanTypePtr);
1191 /* 412 */
1192 EXTERN int Tcl_JoinThread(Tcl_ThreadId threadId, int *result);
1193 /* 413 */
1194 EXTERN int Tcl_IsChannelShared(Tcl_Channel channel);
1195 /* 414 */
1196 EXTERN int Tcl_IsChannelRegistered(Tcl_Interp *interp,
1197 Tcl_Channel channel);
1198 /* 415 */
1199 EXTERN void Tcl_CutChannel(Tcl_Channel channel);
1200 /* 416 */
1201 EXTERN void Tcl_SpliceChannel(Tcl_Channel channel);
1202 /* 417 */
1203 EXTERN void Tcl_ClearChannelHandlers(Tcl_Channel channel);
1204 /* 418 */
1205 EXTERN int Tcl_IsChannelExisting(const char *channelName);
1206 /* 419 */
1207 EXTERN int Tcl_UniCharNcasecmp(const Tcl_UniChar *ucs,
1208 const Tcl_UniChar *uct,
1209 unsigned long numChars);
1210 /* 420 */
1211 EXTERN int Tcl_UniCharCaseMatch(const Tcl_UniChar *uniStr,
1212 const Tcl_UniChar *uniPattern, int nocase);
1213 /* 421 */
1214 EXTERN Tcl_HashEntry * Tcl_FindHashEntry(Tcl_HashTable *tablePtr,
1215 const void *key);
1216 /* 422 */
1217 EXTERN Tcl_HashEntry * Tcl_CreateHashEntry(Tcl_HashTable *tablePtr,
1218 const void *key, int *newPtr);
1219 /* 423 */
1220 EXTERN void Tcl_InitCustomHashTable(Tcl_HashTable *tablePtr,
1221 int keyType, const Tcl_HashKeyType *typePtr);
1222 /* 424 */
1223 EXTERN void Tcl_InitObjHashTable(Tcl_HashTable *tablePtr);
1224 /* 425 */
1225 EXTERN ClientData Tcl_CommandTraceInfo(Tcl_Interp *interp,
1226 const char *varName, int flags,
1227 Tcl_CommandTraceProc *procPtr,
1228 ClientData prevClientData);
1229 /* 426 */
1230 EXTERN int Tcl_TraceCommand(Tcl_Interp *interp,
1231 const char *varName, int flags,
1232 Tcl_CommandTraceProc *proc,
1233 ClientData clientData);
1234 /* 427 */
1235 EXTERN void Tcl_UntraceCommand(Tcl_Interp *interp,
1236 const char *varName, int flags,
1237 Tcl_CommandTraceProc *proc,
1238 ClientData clientData);
1239 /* 428 */
1240 EXTERN char * Tcl_AttemptAlloc(unsigned int size);
1241 /* 429 */
1242 EXTERN char * Tcl_AttemptDbCkalloc(unsigned int size,
1243 const char *file, int line);
1244 /* 430 */
1245 EXTERN char * Tcl_AttemptRealloc(char *ptr, unsigned int size);
1246 /* 431 */
1247 EXTERN char * Tcl_AttemptDbCkrealloc(char *ptr, unsigned int size,
1248 const char *file, int line);
1249 /* 432 */
1250 EXTERN int Tcl_AttemptSetObjLength(Tcl_Obj *objPtr, int length);
1251 /* 433 */
1252 EXTERN Tcl_ThreadId Tcl_GetChannelThread(Tcl_Channel channel);
1253 /* 434 */
1254 EXTERN Tcl_UniChar * Tcl_GetUnicodeFromObj(Tcl_Obj *objPtr,
1255 int *lengthPtr);
1256 /* 435 */
1257 EXTERN int Tcl_GetMathFuncInfo(Tcl_Interp *interp,
1258 const char *name, int *numArgsPtr,
1259 Tcl_ValueType **argTypesPtr,
1260 Tcl_MathProc **procPtr,
1261 ClientData *clientDataPtr);
1262 /* 436 */
1263 EXTERN Tcl_Obj * Tcl_ListMathFuncs(Tcl_Interp *interp,
1264 const char *pattern);
1265 /* 437 */
1266 EXTERN Tcl_Obj * Tcl_SubstObj(Tcl_Interp *interp, Tcl_Obj *objPtr,
1267 int flags);
1268 /* 438 */
1269 EXTERN int Tcl_DetachChannel(Tcl_Interp *interp,
1270 Tcl_Channel channel);
1271 /* 439 */
1272 EXTERN int Tcl_IsStandardChannel(Tcl_Channel channel);
1273 /* 440 */
1274 EXTERN int Tcl_FSCopyFile(Tcl_Obj *srcPathPtr,
1275 Tcl_Obj *destPathPtr);
1276 /* 441 */
1277 EXTERN int Tcl_FSCopyDirectory(Tcl_Obj *srcPathPtr,
1278 Tcl_Obj *destPathPtr, Tcl_Obj **errorPtr);
1279 /* 442 */
1280 EXTERN int Tcl_FSCreateDirectory(Tcl_Obj *pathPtr);
1281 /* 443 */
1282 EXTERN int Tcl_FSDeleteFile(Tcl_Obj *pathPtr);
1283 /* 444 */
1284 EXTERN int Tcl_FSLoadFile(Tcl_Interp *interp, Tcl_Obj *pathPtr,
1285 const char *sym1, const char *sym2,
1286 Tcl_PackageInitProc **proc1Ptr,
1287 Tcl_PackageInitProc **proc2Ptr,
1288 Tcl_LoadHandle *handlePtr,
1289 Tcl_FSUnloadFileProc **unloadProcPtr);
1290 /* 445 */
1291 EXTERN int Tcl_FSMatchInDirectory(Tcl_Interp *interp,
1292 Tcl_Obj *result, Tcl_Obj *pathPtr,
1293 const char *pattern, Tcl_GlobTypeData *types);
1294 /* 446 */
1295 EXTERN Tcl_Obj * Tcl_FSLink(Tcl_Obj *pathPtr, Tcl_Obj *toPtr,
1296 int linkAction);
1297 /* 447 */
1298 EXTERN int Tcl_FSRemoveDirectory(Tcl_Obj *pathPtr,
1299 int recursive, Tcl_Obj **errorPtr);
1300 /* 448 */
1301 EXTERN int Tcl_FSRenameFile(Tcl_Obj *srcPathPtr,
1302 Tcl_Obj *destPathPtr);
1303 /* 449 */
1304 EXTERN int Tcl_FSLstat(Tcl_Obj *pathPtr, Tcl_StatBuf *buf);
1305 /* 450 */
1306 EXTERN int Tcl_FSUtime(Tcl_Obj *pathPtr, struct utimbuf *tval);
1307 /* 451 */
1308 EXTERN int Tcl_FSFileAttrsGet(Tcl_Interp *interp, int index,
1309 Tcl_Obj *pathPtr, Tcl_Obj **objPtrRef);
1310 /* 452 */
1311 EXTERN int Tcl_FSFileAttrsSet(Tcl_Interp *interp, int index,
1312 Tcl_Obj *pathPtr, Tcl_Obj *objPtr);
1313 /* 453 */
1314 EXTERN const char *CONST86 * Tcl_FSFileAttrStrings(Tcl_Obj *pathPtr,
1315 Tcl_Obj **objPtrRef);
1316 /* 454 */
1317 EXTERN int Tcl_FSStat(Tcl_Obj *pathPtr, Tcl_StatBuf *buf);
1318 /* 455 */
1319 EXTERN int Tcl_FSAccess(Tcl_Obj *pathPtr, int mode);
1320 /* 456 */
1321 EXTERN Tcl_Channel Tcl_FSOpenFileChannel(Tcl_Interp *interp,
1322 Tcl_Obj *pathPtr, const char *modeString,
1323 int permissions);
1324 /* 457 */
1325 EXTERN Tcl_Obj * Tcl_FSGetCwd(Tcl_Interp *interp);
1326 /* 458 */
1327 EXTERN int Tcl_FSChdir(Tcl_Obj *pathPtr);
1328 /* 459 */
1329 EXTERN int Tcl_FSConvertToPathType(Tcl_Interp *interp,
1330 Tcl_Obj *pathPtr);
1331 /* 460 */
1332 EXTERN Tcl_Obj * Tcl_FSJoinPath(Tcl_Obj *listObj, int elements);
1333 /* 461 */
1334 EXTERN Tcl_Obj * Tcl_FSSplitPath(Tcl_Obj *pathPtr, int *lenPtr);
1335 /* 462 */
1336 EXTERN int Tcl_FSEqualPaths(Tcl_Obj *firstPtr,
1337 Tcl_Obj *secondPtr);
1338 /* 463 */
1339 EXTERN Tcl_Obj * Tcl_FSGetNormalizedPath(Tcl_Interp *interp,
1340 Tcl_Obj *pathPtr);
1341 /* 464 */
1342 EXTERN Tcl_Obj * Tcl_FSJoinToPath(Tcl_Obj *pathPtr, int objc,
1343 Tcl_Obj *const objv[]);
1344 /* 465 */
1345 EXTERN ClientData Tcl_FSGetInternalRep(Tcl_Obj *pathPtr,
1346 const Tcl_Filesystem *fsPtr);
1347 /* 466 */
1348 EXTERN Tcl_Obj * Tcl_FSGetTranslatedPath(Tcl_Interp *interp,
1349 Tcl_Obj *pathPtr);
1350 /* 467 */
1351 EXTERN int Tcl_FSEvalFile(Tcl_Interp *interp, Tcl_Obj *fileName);
1352 /* 468 */
1353 EXTERN Tcl_Obj * Tcl_FSNewNativePath(
1354 const Tcl_Filesystem *fromFilesystem,
1355 ClientData clientData);
1356 /* 469 */
1357 EXTERN const void * Tcl_FSGetNativePath(Tcl_Obj *pathPtr);
1358 /* 470 */
1359 EXTERN Tcl_Obj * Tcl_FSFileSystemInfo(Tcl_Obj *pathPtr);
1360 /* 471 */
1361 EXTERN Tcl_Obj * Tcl_FSPathSeparator(Tcl_Obj *pathPtr);
1362 /* 472 */
1363 EXTERN Tcl_Obj * Tcl_FSListVolumes(void);
1364 /* 473 */
1365 EXTERN int Tcl_FSRegister(ClientData clientData,
1366 const Tcl_Filesystem *fsPtr);
1367 /* 474 */
1368 EXTERN int Tcl_FSUnregister(const Tcl_Filesystem *fsPtr);
1369 /* 475 */
1370 EXTERN ClientData Tcl_FSData(const Tcl_Filesystem *fsPtr);
1371 /* 476 */
1372 EXTERN const char * Tcl_FSGetTranslatedStringPath(Tcl_Interp *interp,
1373 Tcl_Obj *pathPtr);
1374 /* 477 */
1375 EXTERN CONST86 Tcl_Filesystem * Tcl_FSGetFileSystemForPath(Tcl_Obj *pathPtr);
1376 /* 478 */
1377 EXTERN Tcl_PathType Tcl_FSGetPathType(Tcl_Obj *pathPtr);
1378 /* 479 */
1379 EXTERN int Tcl_OutputBuffered(Tcl_Channel chan);
1380 /* 480 */
1381 EXTERN void Tcl_FSMountsChanged(const Tcl_Filesystem *fsPtr);
1382 /* 481 */
1383 EXTERN int Tcl_EvalTokensStandard(Tcl_Interp *interp,
1384 Tcl_Token *tokenPtr, int count);
1385 /* 482 */
1386 EXTERN void Tcl_GetTime(Tcl_Time *timeBuf);
1387 /* 483 */
1388 EXTERN Tcl_Trace Tcl_CreateObjTrace(Tcl_Interp *interp, int level,
1389 int flags, Tcl_CmdObjTraceProc *objProc,
1390 ClientData clientData,
1391 Tcl_CmdObjTraceDeleteProc *delProc);
1392 /* 484 */
1393 EXTERN int Tcl_GetCommandInfoFromToken(Tcl_Command token,
1394 Tcl_CmdInfo *infoPtr);
1395 /* 485 */
1396 EXTERN int Tcl_SetCommandInfoFromToken(Tcl_Command token,
1397 const Tcl_CmdInfo *infoPtr);
1398 /* 486 */
1399 EXTERN Tcl_Obj * Tcl_DbNewWideIntObj(Tcl_WideInt wideValue,
1400 const char *file, int line);
1401 /* 487 */
1402 EXTERN int Tcl_GetWideIntFromObj(Tcl_Interp *interp,
1403 Tcl_Obj *objPtr, Tcl_WideInt *widePtr);
1404 /* 488 */
1405 EXTERN Tcl_Obj * Tcl_NewWideIntObj(Tcl_WideInt wideValue);
1406 /* 489 */
1407 EXTERN void Tcl_SetWideIntObj(Tcl_Obj *objPtr,
1408 Tcl_WideInt wideValue);
1409 /* 490 */
1410 EXTERN Tcl_StatBuf * Tcl_AllocStatBuf(void);
1411 /* 491 */
1412 EXTERN Tcl_WideInt Tcl_Seek(Tcl_Channel chan, Tcl_WideInt offset,
1413 int mode);
1414 /* 492 */
1415 EXTERN Tcl_WideInt Tcl_Tell(Tcl_Channel chan);
1416 /* 493 */
1417 EXTERN Tcl_DriverWideSeekProc * Tcl_ChannelWideSeekProc(
1418 const Tcl_ChannelType *chanTypePtr);
1419 /* 494 */
1420 EXTERN int Tcl_DictObjPut(Tcl_Interp *interp, Tcl_Obj *dictPtr,
1421 Tcl_Obj *keyPtr, Tcl_Obj *valuePtr);
1422 /* 495 */
1423 EXTERN int Tcl_DictObjGet(Tcl_Interp *interp, Tcl_Obj *dictPtr,
1424 Tcl_Obj *keyPtr, Tcl_Obj **valuePtrPtr);
1425 /* 496 */
1426 EXTERN int Tcl_DictObjRemove(Tcl_Interp *interp,
1427 Tcl_Obj *dictPtr, Tcl_Obj *keyPtr);
1428 /* 497 */
1429 EXTERN int Tcl_DictObjSize(Tcl_Interp *interp, Tcl_Obj *dictPtr,
1430 int *sizePtr);
1431 /* 498 */
1432 EXTERN int Tcl_DictObjFirst(Tcl_Interp *interp,
1433 Tcl_Obj *dictPtr, Tcl_DictSearch *searchPtr,
1434 Tcl_Obj **keyPtrPtr, Tcl_Obj **valuePtrPtr,
1435 int *donePtr);
1436 /* 499 */
1437 EXTERN void Tcl_DictObjNext(Tcl_DictSearch *searchPtr,
1438 Tcl_Obj **keyPtrPtr, Tcl_Obj **valuePtrPtr,
1439 int *donePtr);
1440 /* 500 */
1441 EXTERN void Tcl_DictObjDone(Tcl_DictSearch *searchPtr);
1442 /* 501 */
1443 EXTERN int Tcl_DictObjPutKeyList(Tcl_Interp *interp,
1444 Tcl_Obj *dictPtr, int keyc,
1445 Tcl_Obj *const *keyv, Tcl_Obj *valuePtr);
1446 /* 502 */
1447 EXTERN int Tcl_DictObjRemoveKeyList(Tcl_Interp *interp,
1448 Tcl_Obj *dictPtr, int keyc,
1449 Tcl_Obj *const *keyv);
1450 /* 503 */
1451 EXTERN Tcl_Obj * Tcl_NewDictObj(void);
1452 /* 504 */
1453 EXTERN Tcl_Obj * Tcl_DbNewDictObj(const char *file, int line);
1454 /* 505 */
1455 EXTERN void Tcl_RegisterConfig(Tcl_Interp *interp,
1456 const char *pkgName,
1457 const Tcl_Config *configuration,
1458 const char *valEncoding);
1459 /* 506 */
1460 EXTERN Tcl_Namespace * Tcl_CreateNamespace(Tcl_Interp *interp,
1461 const char *name, ClientData clientData,
1462 Tcl_NamespaceDeleteProc *deleteProc);
1463 /* 507 */
1464 EXTERN void Tcl_DeleteNamespace(Tcl_Namespace *nsPtr);
1465 /* 508 */
1466 EXTERN int Tcl_AppendExportList(Tcl_Interp *interp,
1467 Tcl_Namespace *nsPtr, Tcl_Obj *objPtr);
1468 /* 509 */
1469 EXTERN int Tcl_Export(Tcl_Interp *interp, Tcl_Namespace *nsPtr,
1470 const char *pattern, int resetListFirst);
1471 /* 510 */
1472 EXTERN int Tcl_Import(Tcl_Interp *interp, Tcl_Namespace *nsPtr,
1473 const char *pattern, int allowOverwrite);
1474 /* 511 */
1475 EXTERN int Tcl_ForgetImport(Tcl_Interp *interp,
1476 Tcl_Namespace *nsPtr, const char *pattern);
1477 /* 512 */
1478 EXTERN Tcl_Namespace * Tcl_GetCurrentNamespace(Tcl_Interp *interp);
1479 /* 513 */
1480 EXTERN Tcl_Namespace * Tcl_GetGlobalNamespace(Tcl_Interp *interp);
1481 /* 514 */
1482 EXTERN Tcl_Namespace * Tcl_FindNamespace(Tcl_Interp *interp,
1483 const char *name,
1484 Tcl_Namespace *contextNsPtr, int flags);
1485 /* 515 */
1486 EXTERN Tcl_Command Tcl_FindCommand(Tcl_Interp *interp, const char *name,
1487 Tcl_Namespace *contextNsPtr, int flags);
1488 /* 516 */
1489 EXTERN Tcl_Command Tcl_GetCommandFromObj(Tcl_Interp *interp,
1490 Tcl_Obj *objPtr);
1491 /* 517 */
1492 EXTERN void Tcl_GetCommandFullName(Tcl_Interp *interp,
1493 Tcl_Command command, Tcl_Obj *objPtr);
1494 /* 518 */
1495 EXTERN int Tcl_FSEvalFileEx(Tcl_Interp *interp,
1496 Tcl_Obj *fileName, const char *encodingName);
1497 /* 519 */
1498 EXTERN Tcl_ExitProc * Tcl_SetExitProc(Tcl_ExitProc *proc);
1499 /* 520 */
1500 EXTERN void Tcl_LimitAddHandler(Tcl_Interp *interp, int type,
1501 Tcl_LimitHandlerProc *handlerProc,
1502 ClientData clientData,
1503 Tcl_LimitHandlerDeleteProc *deleteProc);
1504 /* 521 */
1505 EXTERN void Tcl_LimitRemoveHandler(Tcl_Interp *interp, int type,
1506 Tcl_LimitHandlerProc *handlerProc,
1507 ClientData clientData);
1508 /* 522 */
1509 EXTERN int Tcl_LimitReady(Tcl_Interp *interp);
1510 /* 523 */
1511 EXTERN int Tcl_LimitCheck(Tcl_Interp *interp);
1512 /* 524 */
1513 EXTERN int Tcl_LimitExceeded(Tcl_Interp *interp);
1514 /* 525 */
1515 EXTERN void Tcl_LimitSetCommands(Tcl_Interp *interp,
1516 int commandLimit);
1517 /* 526 */
1518 EXTERN void Tcl_LimitSetTime(Tcl_Interp *interp,
1519 Tcl_Time *timeLimitPtr);
1520 /* 527 */
1521 EXTERN void Tcl_LimitSetGranularity(Tcl_Interp *interp, int type,
1522 int granularity);
1523 /* 528 */
1524 EXTERN int Tcl_LimitTypeEnabled(Tcl_Interp *interp, int type);
1525 /* 529 */
1526 EXTERN int Tcl_LimitTypeExceeded(Tcl_Interp *interp, int type);
1527 /* 530 */
1528 EXTERN void Tcl_LimitTypeSet(Tcl_Interp *interp, int type);
1529 /* 531 */
1530 EXTERN void Tcl_LimitTypeReset(Tcl_Interp *interp, int type);
1531 /* 532 */
1532 EXTERN int Tcl_LimitGetCommands(Tcl_Interp *interp);
1533 /* 533 */
1534 EXTERN void Tcl_LimitGetTime(Tcl_Interp *interp,
1535 Tcl_Time *timeLimitPtr);
1536 /* 534 */
1537 EXTERN int Tcl_LimitGetGranularity(Tcl_Interp *interp, int type);
1538 /* 535 */
1539 EXTERN Tcl_InterpState Tcl_SaveInterpState(Tcl_Interp *interp, int status);
1540 /* 536 */
1541 EXTERN int Tcl_RestoreInterpState(Tcl_Interp *interp,
1542 Tcl_InterpState state);
1543 /* 537 */
1544 EXTERN void Tcl_DiscardInterpState(Tcl_InterpState state);
1545 /* 538 */
1546 EXTERN int Tcl_SetReturnOptions(Tcl_Interp *interp,
1547 Tcl_Obj *options);
1548 /* 539 */
1549 EXTERN Tcl_Obj * Tcl_GetReturnOptions(Tcl_Interp *interp, int result);
1550 /* 540 */
1551 EXTERN int Tcl_IsEnsemble(Tcl_Command token);
1552 /* 541 */
1553 EXTERN Tcl_Command Tcl_CreateEnsemble(Tcl_Interp *interp,
1554 const char *name,
1555 Tcl_Namespace *namespacePtr, int flags);
1556 /* 542 */
1557 EXTERN Tcl_Command Tcl_FindEnsemble(Tcl_Interp *interp,
1558 Tcl_Obj *cmdNameObj, int flags);
1559 /* 543 */
1560 EXTERN int Tcl_SetEnsembleSubcommandList(Tcl_Interp *interp,
1561 Tcl_Command token, Tcl_Obj *subcmdList);
1562 /* 544 */
1563 EXTERN int Tcl_SetEnsembleMappingDict(Tcl_Interp *interp,
1564 Tcl_Command token, Tcl_Obj *mapDict);
1565 /* 545 */
1566 EXTERN int Tcl_SetEnsembleUnknownHandler(Tcl_Interp *interp,
1567 Tcl_Command token, Tcl_Obj *unknownList);
1568 /* 546 */
1569 EXTERN int Tcl_SetEnsembleFlags(Tcl_Interp *interp,
1570 Tcl_Command token, int flags);
1571 /* 547 */
1572 EXTERN int Tcl_GetEnsembleSubcommandList(Tcl_Interp *interp,
1573 Tcl_Command token, Tcl_Obj **subcmdListPtr);
1574 /* 548 */
1575 EXTERN int Tcl_GetEnsembleMappingDict(Tcl_Interp *interp,
1576 Tcl_Command token, Tcl_Obj **mapDictPtr);
1577 /* 549 */
1578 EXTERN int Tcl_GetEnsembleUnknownHandler(Tcl_Interp *interp,
1579 Tcl_Command token, Tcl_Obj **unknownListPtr);
1580 /* 550 */
1581 EXTERN int Tcl_GetEnsembleFlags(Tcl_Interp *interp,
1582 Tcl_Command token, int *flagsPtr);
1583 /* 551 */
1584 EXTERN int Tcl_GetEnsembleNamespace(Tcl_Interp *interp,
1585 Tcl_Command token,
1586 Tcl_Namespace **namespacePtrPtr);
1587 /* 552 */
1588 EXTERN void Tcl_SetTimeProc(Tcl_GetTimeProc *getProc,
1589 Tcl_ScaleTimeProc *scaleProc,
1590 ClientData clientData);
1591 /* 553 */
1592 EXTERN void Tcl_QueryTimeProc(Tcl_GetTimeProc **getProc,
1593 Tcl_ScaleTimeProc **scaleProc,
1594 ClientData *clientData);
1595 /* 554 */
1596 EXTERN Tcl_DriverThreadActionProc * Tcl_ChannelThreadActionProc(
1597 const Tcl_ChannelType *chanTypePtr);
1598 /* 555 */
1599 EXTERN Tcl_Obj * Tcl_NewBignumObj(mp_int *value);
1600 /* 556 */
1601 EXTERN Tcl_Obj * Tcl_DbNewBignumObj(mp_int *value, const char *file,
1602 int line);
1603 /* 557 */
1604 EXTERN void Tcl_SetBignumObj(Tcl_Obj *obj, mp_int *value);
1605 /* 558 */
1606 EXTERN int Tcl_GetBignumFromObj(Tcl_Interp *interp,
1607 Tcl_Obj *obj, mp_int *value);
1608 /* 559 */
1609 EXTERN int Tcl_TakeBignumFromObj(Tcl_Interp *interp,
1610 Tcl_Obj *obj, mp_int *value);
1611 /* 560 */
1612 EXTERN int Tcl_TruncateChannel(Tcl_Channel chan,
1613 Tcl_WideInt length);
1614 /* 561 */
1615 EXTERN Tcl_DriverTruncateProc * Tcl_ChannelTruncateProc(
1616 const Tcl_ChannelType *chanTypePtr);
1617 /* 562 */
1618 EXTERN void Tcl_SetChannelErrorInterp(Tcl_Interp *interp,
1619 Tcl_Obj *msg);
1620 /* 563 */
1621 EXTERN void Tcl_GetChannelErrorInterp(Tcl_Interp *interp,
1622 Tcl_Obj **msg);
1623 /* 564 */
1624 EXTERN void Tcl_SetChannelError(Tcl_Channel chan, Tcl_Obj *msg);
1625 /* 565 */
1626 EXTERN void Tcl_GetChannelError(Tcl_Channel chan, Tcl_Obj **msg);
1627 /* 566 */
1628 EXTERN int Tcl_InitBignumFromDouble(Tcl_Interp *interp,
1629 double initval, mp_int *toInit);
1630 /* 567 */
1631 EXTERN Tcl_Obj * Tcl_GetNamespaceUnknownHandler(Tcl_Interp *interp,
1632 Tcl_Namespace *nsPtr);
1633 /* 568 */
1634 EXTERN int Tcl_SetNamespaceUnknownHandler(Tcl_Interp *interp,
1635 Tcl_Namespace *nsPtr, Tcl_Obj *handlerPtr);
1636 /* 569 */
1637 EXTERN int Tcl_GetEncodingFromObj(Tcl_Interp *interp,
1638 Tcl_Obj *objPtr, Tcl_Encoding *encodingPtr);
1639 /* 570 */
1640 EXTERN Tcl_Obj * Tcl_GetEncodingSearchPath(void);
1641 /* 571 */
1642 EXTERN int Tcl_SetEncodingSearchPath(Tcl_Obj *searchPath);
1643 /* 572 */
1644 EXTERN const char * Tcl_GetEncodingNameFromEnvironment(
1645 Tcl_DString *bufPtr);
1646 /* 573 */
1647 EXTERN int Tcl_PkgRequireProc(Tcl_Interp *interp,
1648 const char *name, int objc,
1649 Tcl_Obj *const objv[], void *clientDataPtr);
1650 /* 574 */
1651 EXTERN void Tcl_AppendObjToErrorInfo(Tcl_Interp *interp,
1652 Tcl_Obj *objPtr);
1653 /* 575 */
1654 EXTERN void Tcl_AppendLimitedToObj(Tcl_Obj *objPtr,
1655 const char *bytes, int length, int limit,
1656 const char *ellipsis);
1657 /* 576 */
1658 EXTERN Tcl_Obj * Tcl_Format(Tcl_Interp *interp, const char *format,
1659 int objc, Tcl_Obj *const objv[]);
1660 /* 577 */
1661 EXTERN int Tcl_AppendFormatToObj(Tcl_Interp *interp,
1662 Tcl_Obj *objPtr, const char *format,
1663 int objc, Tcl_Obj *const objv[]);
1664 /* 578 */
1665 EXTERN Tcl_Obj * Tcl_ObjPrintf(const char *format, ...) TCL_FORMAT_PRINTF(1, 2);
1666 /* 579 */
1667 EXTERN void Tcl_AppendPrintfToObj(Tcl_Obj *objPtr,
1668 const char *format, ...) TCL_FORMAT_PRINTF(2, 3);
1669 /* 580 */
1670 EXTERN int Tcl_CancelEval(Tcl_Interp *interp,
1671 Tcl_Obj *resultObjPtr, ClientData clientData,
1672 int flags);
1673 /* 581 */
1674 EXTERN int Tcl_Canceled(Tcl_Interp *interp, int flags);
1675 /* 582 */
1676 EXTERN int Tcl_CreatePipe(Tcl_Interp *interp,
1677 Tcl_Channel *rchan, Tcl_Channel *wchan,
1678 int flags);
1679 /* 583 */
1680 EXTERN Tcl_Command Tcl_NRCreateCommand(Tcl_Interp *interp,
1681 const char *cmdName, Tcl_ObjCmdProc *proc,
1682 Tcl_ObjCmdProc *nreProc,
1683 ClientData clientData,
1684 Tcl_CmdDeleteProc *deleteProc);
1685 /* 584 */
1686 EXTERN int Tcl_NREvalObj(Tcl_Interp *interp, Tcl_Obj *objPtr,
1687 int flags);
1688 /* 585 */
1689 EXTERN int Tcl_NREvalObjv(Tcl_Interp *interp, int objc,
1690 Tcl_Obj *const objv[], int flags);
1691 /* 586 */
1692 EXTERN int Tcl_NRCmdSwap(Tcl_Interp *interp, Tcl_Command cmd,
1693 int objc, Tcl_Obj *const objv[], int flags);
1694 /* 587 */
1695 EXTERN void Tcl_NRAddCallback(Tcl_Interp *interp,
1696 Tcl_NRPostProc *postProcPtr,
1697 ClientData data0, ClientData data1,
1698 ClientData data2, ClientData data3);
1699 /* 588 */
1700 EXTERN int Tcl_NRCallObjProc(Tcl_Interp *interp,
1701 Tcl_ObjCmdProc *objProc,
1702 ClientData clientData, int objc,
1703 Tcl_Obj *const objv[]);
1704 /* 589 */
1705 EXTERN unsigned Tcl_GetFSDeviceFromStat(const Tcl_StatBuf *statPtr);
1706 /* 590 */
1707 EXTERN unsigned Tcl_GetFSInodeFromStat(const Tcl_StatBuf *statPtr);
1708 /* 591 */
1709 EXTERN unsigned Tcl_GetModeFromStat(const Tcl_StatBuf *statPtr);
1710 /* 592 */
1711 EXTERN int Tcl_GetLinkCountFromStat(const Tcl_StatBuf *statPtr);
1712 /* 593 */
1713 EXTERN int Tcl_GetUserIdFromStat(const Tcl_StatBuf *statPtr);
1714 /* 594 */
1715 EXTERN int Tcl_GetGroupIdFromStat(const Tcl_StatBuf *statPtr);
1716 /* 595 */
1717 EXTERN int Tcl_GetDeviceTypeFromStat(const Tcl_StatBuf *statPtr);
1718 /* 596 */
1719 EXTERN Tcl_WideInt Tcl_GetAccessTimeFromStat(const Tcl_StatBuf *statPtr);
1720 /* 597 */
1721 EXTERN Tcl_WideInt Tcl_GetModificationTimeFromStat(
1722 const Tcl_StatBuf *statPtr);
1723 /* 598 */
1724 EXTERN Tcl_WideInt Tcl_GetChangeTimeFromStat(const Tcl_StatBuf *statPtr);
1725 /* 599 */
1726 EXTERN Tcl_WideUInt Tcl_GetSizeFromStat(const Tcl_StatBuf *statPtr);
1727 /* 600 */
1728 EXTERN Tcl_WideUInt Tcl_GetBlocksFromStat(const Tcl_StatBuf *statPtr);
1729 /* 601 */
1730 EXTERN unsigned Tcl_GetBlockSizeFromStat(const Tcl_StatBuf *statPtr);
1731 /* 602 */
1732 EXTERN int Tcl_SetEnsembleParameterList(Tcl_Interp *interp,
1733 Tcl_Command token, Tcl_Obj *paramList);
1734 /* 603 */
1735 EXTERN int Tcl_GetEnsembleParameterList(Tcl_Interp *interp,
1736 Tcl_Command token, Tcl_Obj **paramListPtr);
1737 /* 604 */
1738 EXTERN int Tcl_ParseArgsObjv(Tcl_Interp *interp,
1739 const Tcl_ArgvInfo *argTable, int *objcPtr,
1740 Tcl_Obj *const *objv, Tcl_Obj ***remObjv);
1741 /* 605 */
1742 EXTERN int Tcl_GetErrorLine(Tcl_Interp *interp);
1743 /* 606 */
1744 EXTERN void Tcl_SetErrorLine(Tcl_Interp *interp, int lineNum);
1745 /* 607 */
1746 EXTERN void Tcl_TransferResult(Tcl_Interp *sourceInterp,
1747 int result, Tcl_Interp *targetInterp);
1748 /* 608 */
1749 EXTERN int Tcl_InterpActive(Tcl_Interp *interp);
1750 /* 609 */
1751 EXTERN void Tcl_BackgroundException(Tcl_Interp *interp, int code);
1752 /* 610 */
1753 EXTERN int Tcl_ZlibDeflate(Tcl_Interp *interp, int format,
1754 Tcl_Obj *data, int level,
1755 Tcl_Obj *gzipHeaderDictObj);
1756 /* 611 */
1757 EXTERN int Tcl_ZlibInflate(Tcl_Interp *interp, int format,
1758 Tcl_Obj *data, int buffersize,
1759 Tcl_Obj *gzipHeaderDictObj);
1760 /* 612 */
1761 EXTERN unsigned int Tcl_ZlibCRC32(unsigned int crc,
1762 const unsigned char *buf, int len);
1763 /* 613 */
1764 EXTERN unsigned int Tcl_ZlibAdler32(unsigned int adler,
1765 const unsigned char *buf, int len);
1766 /* 614 */
1767 EXTERN int Tcl_ZlibStreamInit(Tcl_Interp *interp, int mode,
1768 int format, int level, Tcl_Obj *dictObj,
1769 Tcl_ZlibStream *zshandle);
1770 /* 615 */
1771 EXTERN Tcl_Obj * Tcl_ZlibStreamGetCommandName(Tcl_ZlibStream zshandle);
1772 /* 616 */
1773 EXTERN int Tcl_ZlibStreamEof(Tcl_ZlibStream zshandle);
1774 /* 617 */
1775 EXTERN int Tcl_ZlibStreamChecksum(Tcl_ZlibStream zshandle);
1776 /* 618 */
1777 EXTERN int Tcl_ZlibStreamPut(Tcl_ZlibStream zshandle,
1778 Tcl_Obj *data, int flush);
1779 /* 619 */
1780 EXTERN int Tcl_ZlibStreamGet(Tcl_ZlibStream zshandle,
1781 Tcl_Obj *data, int count);
1782 /* 620 */
1783 EXTERN int Tcl_ZlibStreamClose(Tcl_ZlibStream zshandle);
1784 /* 621 */
1785 EXTERN int Tcl_ZlibStreamReset(Tcl_ZlibStream zshandle);
1786 /* 622 */
1787 EXTERN void Tcl_SetStartupScript(Tcl_Obj *path,
1788 const char *encoding);
1789 /* 623 */
1790 EXTERN Tcl_Obj * Tcl_GetStartupScript(const char **encodingPtr);
1791 /* 624 */
1792 EXTERN int Tcl_CloseEx(Tcl_Interp *interp, Tcl_Channel chan,
1793 int flags);
1794 /* 625 */
1795 EXTERN int Tcl_NRExprObj(Tcl_Interp *interp, Tcl_Obj *objPtr,
1796 Tcl_Obj *resultPtr);
1797 /* 626 */
1798 EXTERN int Tcl_NRSubstObj(Tcl_Interp *interp, Tcl_Obj *objPtr,
1799 int flags);
1800 /* 627 */
1801 EXTERN int Tcl_LoadFile(Tcl_Interp *interp, Tcl_Obj *pathPtr,
1802 const char *const symv[], int flags,
1803 void *procPtrs, Tcl_LoadHandle *handlePtr);
1804 /* 628 */
1805 EXTERN void * Tcl_FindSymbol(Tcl_Interp *interp,
1806 Tcl_LoadHandle handle, const char *symbol);
1807 /* 629 */
1808 EXTERN int Tcl_FSUnloadFile(Tcl_Interp *interp,
1809 Tcl_LoadHandle handlePtr);
1810 /* 630 */
1811 EXTERN void Tcl_ZlibStreamSetCompressionDictionary(
1812 Tcl_ZlibStream zhandle,
1813 Tcl_Obj *compressionDictionaryObj);
1814
1815 typedef struct {
1816 const struct TclPlatStubs *tclPlatStubs;
1817 const struct TclIntStubs *tclIntStubs;
1818 const struct TclIntPlatStubs *tclIntPlatStubs;
1819 } TclStubHooks;
1820
1821 typedef struct TclStubs {
1822 int magic;
1823 const TclStubHooks *hooks;
1824
1825 int (*tcl_PkgProvideEx) (Tcl_Interp *interp, const char *name, const char *version, const void *clientData); /* 0 */
1826 CONST84_RETURN char * (*tcl_PkgRequireEx) (Tcl_Interp *interp, const char *name, const char *version, int exact, void *clientDataPtr); /* 1 */
1827 void (*tcl_Panic) (const char *format, ...) TCL_FORMAT_PRINTF(1, 2); /* 2 */
1828 char * (*tcl_Alloc) (unsigned int size); /* 3 */
1829 void (*tcl_Free) (char *ptr); /* 4 */
1830 char * (*tcl_Realloc) (char *ptr, unsigned int size); /* 5 */
1831 char * (*tcl_DbCkalloc) (unsigned int size, const char *file, int line); /* 6 */
1832 void (*tcl_DbCkfree) (char *ptr, const char *file, int line); /* 7 */
1833 char * (*tcl_DbCkrealloc) (char *ptr, unsigned int size, const char *file, int line); /* 8 */
1834 #if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
1835 void (*tcl_CreateFileHandler) (int fd, int mask, Tcl_FileProc *proc, ClientData clientData); /* 9 */
1836 #endif /* UNIX */
1837 #if defined(__WIN32__) /* WIN */
1838 void (*reserved9)(void);
1839 #endif /* WIN */
1840 #ifdef MAC_OSX_TCL /* MACOSX */
1841 void (*tcl_CreateFileHandler) (int fd, int mask, Tcl_FileProc *proc, ClientData clientData); /* 9 */
1842 #endif /* MACOSX */
1843 #if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
1844 void (*tcl_DeleteFileHandler) (int fd); /* 10 */
1845 #endif /* UNIX */
1846 #if defined(__WIN32__) /* WIN */
1847 void (*reserved10)(void);
1848 #endif /* WIN */
1849 #ifdef MAC_OSX_TCL /* MACOSX */
1850 void (*tcl_DeleteFileHandler) (int fd); /* 10 */
1851 #endif /* MACOSX */
1852 void (*tcl_SetTimer) (const Tcl_Time *timePtr); /* 11 */
1853 void (*tcl_Sleep) (int ms); /* 12 */
1854 int (*tcl_WaitForEvent) (const Tcl_Time *timePtr); /* 13 */
1855 int (*tcl_AppendAllObjTypes) (Tcl_Interp *interp, Tcl_Obj *objPtr); /* 14 */
1856 void (*tcl_AppendStringsToObj) (Tcl_Obj *objPtr, ...); /* 15 */
1857 void (*tcl_AppendToObj) (Tcl_Obj *objPtr, const char *bytes, int length); /* 16 */
1858 Tcl_Obj * (*tcl_ConcatObj) (int objc, Tcl_Obj *const objv[]); /* 17 */
1859 int (*tcl_ConvertToType) (Tcl_Interp *interp, Tcl_Obj *objPtr, const Tcl_ObjType *typePtr); /* 18 */
1860 void (*tcl_DbDecrRefCount) (Tcl_Obj *objPtr, const char *file, int line); /* 19 */
1861 void (*tcl_DbIncrRefCount) (Tcl_Obj *objPtr, const char *file, int line); /* 20 */
1862 int (*tcl_DbIsShared) (Tcl_Obj *objPtr, const char *file, int line); /* 21 */
1863 Tcl_Obj * (*tcl_DbNewBooleanObj) (int boolValue, const char *file, int line); /* 22 */
1864 Tcl_Obj * (*tcl_DbNewByteArrayObj) (const unsigned char *bytes, int length, const char *file, int line); /* 23 */
1865 Tcl_Obj * (*tcl_DbNewDoubleObj) (double doubleValue, const char *file, int line); /* 24 */
1866 Tcl_Obj * (*tcl_DbNewListObj) (int objc, Tcl_Obj *const *objv, const char *file, int line); /* 25 */
1867 Tcl_Obj * (*tcl_DbNewLongObj) (long longValue, const char *file, int line); /* 26 */
1868 Tcl_Obj * (*tcl_DbNewObj) (const char *file, int line); /* 27 */
1869 Tcl_Obj * (*tcl_DbNewStringObj) (const char *bytes, int length, const char *file, int line); /* 28 */
1870 Tcl_Obj * (*tcl_DuplicateObj) (Tcl_Obj *objPtr); /* 29 */
1871 void (*tclFreeObj) (Tcl_Obj *objPtr); /* 30 */
1872 int (*tcl_GetBoolean) (Tcl_Interp *interp, const char *src, int *boolPtr); /* 31 */
1873 int (*tcl_GetBooleanFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int *boolPtr); /* 32 */
1874 unsigned char * (*tcl_GetByteArrayFromObj) (Tcl_Obj *objPtr, int *lengthPtr); /* 33 */
1875 int (*tcl_GetDouble) (Tcl_Interp *interp, const char *src, double *doublePtr); /* 34 */
1876 int (*tcl_GetDoubleFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, double *doublePtr); /* 35 */
1877 int (*tcl_GetIndexFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, CONST84 char *const *tablePtr, const char *msg, int flags, int *indexPtr); /* 36 */
1878 int (*tcl_GetInt) (Tcl_Interp *interp, const char *src, int *intPtr); /* 37 */
1879 int (*tcl_GetIntFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int *intPtr); /* 38 */
1880 int (*tcl_GetLongFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, long *longPtr); /* 39 */
1881 CONST86 Tcl_ObjType * (*tcl_GetObjType) (const char *typeName); /* 40 */
1882 char * (*tcl_GetStringFromObj) (Tcl_Obj *objPtr, int *lengthPtr); /* 41 */
1883 void (*tcl_InvalidateStringRep) (Tcl_Obj *objPtr); /* 42 */
1884 int (*tcl_ListObjAppendList) (Tcl_Interp *interp, Tcl_Obj *listPtr, Tcl_Obj *elemListPtr); /* 43 */
1885 int (*tcl_ListObjAppendElement) (Tcl_Interp *interp, Tcl_Obj *listPtr, Tcl_Obj *objPtr); /* 44 */
1886 int (*tcl_ListObjGetElements) (Tcl_Interp *interp, Tcl_Obj *listPtr, int *objcPtr, Tcl_Obj ***objvPtr); /* 45 */
1887 int (*tcl_ListObjIndex) (Tcl_Interp *interp, Tcl_Obj *listPtr, int index, Tcl_Obj **objPtrPtr); /* 46 */
1888 int (*tcl_ListObjLength) (Tcl_Interp *interp, Tcl_Obj *listPtr, int *lengthPtr); /* 47 */
1889 int (*tcl_ListObjReplace) (Tcl_Interp *interp, Tcl_Obj *listPtr, int first, int count, int objc, Tcl_Obj *const objv[]); /* 48 */
1890 Tcl_Obj * (*tcl_NewBooleanObj) (int boolValue); /* 49 */
1891 Tcl_Obj * (*tcl_NewByteArrayObj) (const unsigned char *bytes, int length); /* 50 */
1892 Tcl_Obj * (*tcl_NewDoubleObj) (double doubleValue); /* 51 */
1893 Tcl_Obj * (*tcl_NewIntObj) (int intValue); /* 52 */
1894 Tcl_Obj * (*tcl_NewListObj) (int objc, Tcl_Obj *const objv[]); /* 53 */
1895 Tcl_Obj * (*tcl_NewLongObj) (long longValue); /* 54 */
1896 Tcl_Obj * (*tcl_NewObj) (void); /* 55 */
1897 Tcl_Obj * (*tcl_NewStringObj) (const char *bytes, int length); /* 56 */
1898 void (*tcl_SetBooleanObj) (Tcl_Obj *objPtr, int boolValue); /* 57 */
1899 unsigned char * (*tcl_SetByteArrayLength) (Tcl_Obj *objPtr, int length); /* 58 */
1900 void (*tcl_SetByteArrayObj) (Tcl_Obj *objPtr, const unsigned char *bytes, int length); /* 59 */
1901 void (*tcl_SetDoubleObj) (Tcl_Obj *objPtr, double doubleValue); /* 60 */
1902 void (*tcl_SetIntObj) (Tcl_Obj *objPtr, int intValue); /* 61 */
1903 void (*tcl_SetListObj) (Tcl_Obj *objPtr, int objc, Tcl_Obj *const objv[]); /* 62 */
1904 void (*tcl_SetLongObj) (Tcl_Obj *objPtr, long longValue); /* 63 */
1905 void (*tcl_SetObjLength) (Tcl_Obj *objPtr, int length); /* 64 */
1906 void (*tcl_SetStringObj) (Tcl_Obj *objPtr, const char *bytes, int length); /* 65 */
1907 void (*tcl_AddErrorInfo) (Tcl_Interp *interp, const char *message); /* 66 */
1908 void (*tcl_AddObjErrorInfo) (Tcl_Interp *interp, const char *message, int length); /* 67 */
1909 void (*tcl_AllowExceptions) (Tcl_Interp *interp); /* 68 */
1910 void (*tcl_AppendElement) (Tcl_Interp *interp, const char *element); /* 69 */
1911 void (*tcl_AppendResult) (Tcl_Interp *interp, ...); /* 70 */
1912 Tcl_AsyncHandler (*tcl_AsyncCreate) (Tcl_AsyncProc *proc, ClientData clientData); /* 71 */
1913 void (*tcl_AsyncDelete) (Tcl_AsyncHandler async); /* 72 */
1914 int (*tcl_AsyncInvoke) (Tcl_Interp *interp, int code); /* 73 */
1915 void (*tcl_AsyncMark) (Tcl_AsyncHandler async); /* 74 */
1916 int (*tcl_AsyncReady) (void); /* 75 */
1917 void (*tcl_BackgroundError) (Tcl_Interp *interp); /* 76 */
1918 char (*tcl_Backslash) (const char *src, int *readPtr); /* 77 */
1919 int (*tcl_BadChannelOption) (Tcl_Interp *interp, const char *optionName, const char *optionList); /* 78 */
1920 void (*tcl_CallWhenDeleted) (Tcl_Interp *interp, Tcl_InterpDeleteProc *proc, ClientData clientData); /* 79 */
1921 void (*tcl_CancelIdleCall) (Tcl_IdleProc *idleProc, ClientData clientData); /* 80 */
1922 int (*tcl_Close) (Tcl_Interp *interp, Tcl_Channel chan); /* 81 */
1923 int (*tcl_CommandComplete) (const char *cmd); /* 82 */
1924 char * (*tcl_Concat) (int argc, CONST84 char *const *argv); /* 83 */
1925 int (*tcl_ConvertElement) (const char *src, char *dst, int flags); /* 84 */
1926 int (*tcl_ConvertCountedElement) (const char *src, int length, char *dst, int flags); /* 85 */
1927 int (*tcl_CreateAlias) (Tcl_Interp *slave, const char *slaveCmd, Tcl_Interp *target, const char *targetCmd, int argc, CONST84 char *const *argv); /* 86 */
1928 int (*tcl_CreateAliasObj) (Tcl_Interp *slave, const char *slaveCmd, Tcl_Interp *target, const char *targetCmd, int objc, Tcl_Obj *const objv[]); /* 87 */
1929 Tcl_Channel (*tcl_CreateChannel) (const Tcl_ChannelType *typePtr, const char *chanName, ClientData instanceData, int mask); /* 88 */
1930 void (*tcl_CreateChannelHandler) (Tcl_Channel chan, int mask, Tcl_ChannelProc *proc, ClientData clientData); /* 89 */
1931 void (*tcl_CreateCloseHandler) (Tcl_Channel chan, Tcl_CloseProc *proc, ClientData clientData); /* 90 */
1932 Tcl_Command (*tcl_CreateCommand) (Tcl_Interp *interp, const char *cmdName, Tcl_CmdProc *proc, ClientData clientData, Tcl_CmdDeleteProc *deleteProc); /* 91 */
1933 void (*tcl_CreateEventSource) (Tcl_EventSetupProc *setupProc, Tcl_EventCheckProc *checkProc, ClientData clientData); /* 92 */
1934 void (*tcl_CreateExitHandler) (Tcl_ExitProc *proc, ClientData clientData); /* 93 */
1935 Tcl_Interp * (*tcl_CreateInterp) (void); /* 94 */
1936 void (*tcl_CreateMathFunc) (Tcl_Interp *interp, const char *name, int numArgs, Tcl_ValueType *argTypes, Tcl_MathProc *proc, ClientData clientData); /* 95 */
1937 Tcl_Command (*tcl_CreateObjCommand) (Tcl_Interp *interp, const char *cmdName, Tcl_ObjCmdProc *proc, ClientData clientData, Tcl_CmdDeleteProc *deleteProc); /* 96 */
1938 Tcl_Interp * (*tcl_CreateSlave) (Tcl_Interp *interp, const char *slaveName, int isSafe); /* 97 */
1939 Tcl_TimerToken (*tcl_CreateTimerHandler) (int milliseconds, Tcl_TimerProc *proc, ClientData clientData); /* 98 */
1940 Tcl_Trace (*tcl_CreateTrace) (Tcl_Interp *interp, int level, Tcl_CmdTraceProc *proc, ClientData clientData); /* 99 */
1941 void (*tcl_DeleteAssocData) (Tcl_Interp *interp, const char *name); /* 100 */
1942 void (*tcl_DeleteChannelHandler) (Tcl_Channel chan, Tcl_ChannelProc *proc, ClientData clientData); /* 101 */
1943 void (*tcl_DeleteCloseHandler) (Tcl_Channel chan, Tcl_CloseProc *proc, ClientData clientData); /* 102 */
1944 int (*tcl_DeleteCommand) (Tcl_Interp *interp, const char *cmdName); /* 103 */
1945 int (*tcl_DeleteCommandFromToken) (Tcl_Interp *interp, Tcl_Command command); /* 104 */
1946 void (*tcl_DeleteEvents) (Tcl_EventDeleteProc *proc, ClientData clientData); /* 105 */
1947 void (*tcl_DeleteEventSource) (Tcl_EventSetupProc *setupProc, Tcl_EventCheckProc *checkProc, ClientData clientData); /* 106 */
1948 void (*tcl_DeleteExitHandler) (Tcl_ExitProc *proc, ClientData clientData); /* 107 */
1949 void (*tcl_DeleteHashEntry) (Tcl_HashEntry *entryPtr); /* 108 */
1950 void (*tcl_DeleteHashTable) (Tcl_HashTable *tablePtr); /* 109 */
1951 void (*tcl_DeleteInterp) (Tcl_Interp *interp); /* 110 */
1952 void (*tcl_DetachPids) (int numPids, Tcl_Pid *pidPtr); /* 111 */
1953 void (*tcl_DeleteTimerHandler) (Tcl_TimerToken token); /* 112 */
1954 void (*tcl_DeleteTrace) (Tcl_Interp *interp, Tcl_Trace trace); /* 113 */
1955 void (*tcl_DontCallWhenDeleted) (Tcl_Interp *interp, Tcl_InterpDeleteProc *proc, ClientData clientData); /* 114 */
1956 int (*tcl_DoOneEvent) (int flags); /* 115 */
1957 void (*tcl_DoWhenIdle) (Tcl_IdleProc *proc, ClientData clientData); /* 116 */
1958 char * (*tcl_DStringAppend) (Tcl_DString *dsPtr, const char *bytes, int length); /* 117 */
1959 char * (*tcl_DStringAppendElement) (Tcl_DString *dsPtr, const char *element); /* 118 */
1960 void (*tcl_DStringEndSublist) (Tcl_DString *dsPtr); /* 119 */
1961 void (*tcl_DStringFree) (Tcl_DString *dsPtr); /* 120 */
1962 void (*tcl_DStringGetResult) (Tcl_Interp *interp, Tcl_DString *dsPtr); /* 121 */
1963 void (*tcl_DStringInit) (Tcl_DString *dsPtr); /* 122 */
1964 void (*tcl_DStringResult) (Tcl_Interp *interp, Tcl_DString *dsPtr); /* 123 */
1965 void (*tcl_DStringSetLength) (Tcl_DString *dsPtr, int length); /* 124 */
1966 void (*tcl_DStringStartSublist) (Tcl_DString *dsPtr); /* 125 */
1967 int (*tcl_Eof) (Tcl_Channel chan); /* 126 */
1968 CONST84_RETURN char * (*tcl_ErrnoId) (void); /* 127 */
1969 CONST84_RETURN char * (*tcl_ErrnoMsg) (int err); /* 128 */
1970 int (*tcl_Eval) (Tcl_Interp *interp, const char *script); /* 129 */
1971 int (*tcl_EvalFile) (Tcl_Interp *interp, const char *fileName); /* 130 */
1972 int (*tcl_EvalObj) (Tcl_Interp *interp, Tcl_Obj *objPtr); /* 131 */
1973 void (*tcl_EventuallyFree) (ClientData clientData, Tcl_FreeProc *freeProc); /* 132 */
1974 void (*tcl_Exit) (int status); /* 133 */
1975 int (*tcl_ExposeCommand) (Tcl_Interp *interp, const char *hiddenCmdToken, const char *cmdName); /* 134 */
1976 int (*tcl_ExprBoolean) (Tcl_Interp *interp, const char *expr, int *ptr); /* 135 */
1977 int (*tcl_ExprBooleanObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int *ptr); /* 136 */
1978 int (*tcl_ExprDouble) (Tcl_Interp *interp, const char *expr, double *ptr); /* 137 */
1979 int (*tcl_ExprDoubleObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, double *ptr); /* 138 */
1980 int (*tcl_ExprLong) (Tcl_Interp *interp, const char *expr, long *ptr); /* 139 */
1981 int (*tcl_ExprLongObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, long *ptr); /* 140 */
1982 int (*tcl_ExprObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_Obj **resultPtrPtr); /* 141 */
1983 int (*tcl_ExprString) (Tcl_Interp *interp, const char *expr); /* 142 */
1984 void (*tcl_Finalize) (void); /* 143 */
1985 void (*tcl_FindExecutable) (const char *argv0); /* 144 */
1986 Tcl_HashEntry * (*tcl_FirstHashEntry) (Tcl_HashTable *tablePtr, Tcl_HashSearch *searchPtr); /* 145 */
1987 int (*tcl_Flush) (Tcl_Channel chan); /* 146 */
1988 void (*tcl_FreeResult) (Tcl_Interp *interp); /* 147 */
1989 int (*tcl_GetAlias) (Tcl_Interp *interp, const char *slaveCmd, Tcl_Interp **targetInterpPtr, CONST84 char **targetCmdPtr, int *argcPtr, CONST84 char ***argvPtr); /* 148 */
1990 int (*tcl_GetAliasObj) (Tcl_Interp *interp, const char *slaveCmd, Tcl_Interp **targetInterpPtr, CONST84 char **targetCmdPtr, int *objcPtr, Tcl_Obj ***objv); /* 149 */
1991 ClientData (*tcl_GetAssocData) (Tcl_Interp *interp, const char *name, Tcl_InterpDeleteProc **procPtr); /* 150 */
1992 Tcl_Channel (*tcl_GetChannel) (Tcl_Interp *interp, const char *chanName, int *modePtr); /* 151 */
1993 int (*tcl_GetChannelBufferSize) (Tcl_Channel chan); /* 152 */
1994 int (*tcl_GetChannelHandle) (Tcl_Channel chan, int direction, ClientData *handlePtr); /* 153 */
1995 ClientData (*tcl_GetChannelInstanceData) (Tcl_Channel chan); /* 154 */
1996 int (*tcl_GetChannelMode) (Tcl_Channel chan); /* 155 */
1997 CONST84_RETURN char * (*tcl_GetChannelName) (Tcl_Channel chan); /* 156 */
1998 int (*tcl_GetChannelOption) (Tcl_Interp *interp, Tcl_Channel chan, const char *optionName, Tcl_DString *dsPtr); /* 157 */
1999 CONST86 Tcl_ChannelType * (*tcl_GetChannelType) (Tcl_Channel chan); /* 158 */
2000 int (*tcl_GetCommandInfo) (Tcl_Interp *interp, const char *cmdName, Tcl_CmdInfo *infoPtr); /* 159 */
2001 CONST84_RETURN char * (*tcl_GetCommandName) (Tcl_Interp *interp, Tcl_Command command); /* 160 */
2002 int (*tcl_GetErrno) (void); /* 161 */
2003 CONST84_RETURN char * (*tcl_GetHostName) (void); /* 162 */
2004 int (*tcl_GetInterpPath) (Tcl_Interp *askInterp, Tcl_Interp *slaveInterp); /* 163 */
2005 Tcl_Interp * (*tcl_GetMaster) (Tcl_Interp *interp); /* 164 */
2006 const char * (*tcl_GetNameOfExecutable) (void); /* 165 */
2007 Tcl_Obj * (*tcl_GetObjResult) (Tcl_Interp *interp); /* 166 */
2008 #if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
2009 int (*tcl_GetOpenFile) (Tcl_Interp *interp, const char *chanID, int forWriting, int checkUsage, ClientData *filePtr); /* 167 */
2010 #endif /* UNIX */
2011 #if defined(__WIN32__) /* WIN */
2012 void (*reserved167)(void);
2013 #endif /* WIN */
2014 #ifdef MAC_OSX_TCL /* MACOSX */
2015 int (*tcl_GetOpenFile) (Tcl_Interp *interp, const char *chanID, int forWriting, int checkUsage, ClientData *filePtr); /* 167 */
2016 #endif /* MACOSX */
2017 Tcl_PathType (*tcl_GetPathType) (const char *path); /* 168 */
2018 int (*tcl_Gets) (Tcl_Channel chan, Tcl_DString *dsPtr); /* 169 */
2019 int (*tcl_GetsObj) (Tcl_Channel chan, Tcl_Obj *objPtr); /* 170 */
2020 int (*tcl_GetServiceMode) (void); /* 171 */
2021 Tcl_Interp * (*tcl_GetSlave) (Tcl_Interp *interp, const char *slaveName); /* 172 */
2022 Tcl_Channel (*tcl_GetStdChannel) (int type); /* 173 */
2023 CONST84_RETURN char * (*tcl_GetStringResult) (Tcl_Interp *interp); /* 174 */
2024 CONST84_RETURN char * (*tcl_GetVar) (Tcl_Interp *interp, const char *varName, int flags); /* 175 */
2025 CONST84_RETURN char * (*tcl_GetVar2) (Tcl_Interp *interp, const char *part1, const char *part2, int flags); /* 176 */
2026 int (*tcl_GlobalEval) (Tcl_Interp *interp, const char *command); /* 177 */
2027 int (*tcl_GlobalEvalObj) (Tcl_Interp *interp, Tcl_Obj *objPtr); /* 178 */
2028 int (*tcl_HideCommand) (Tcl_Interp *interp, const char *cmdName, const char *hiddenCmdToken); /* 179 */
2029 int (*tcl_Init) (Tcl_Interp *interp); /* 180 */
2030 void (*tcl_InitHashTable) (Tcl_HashTable *tablePtr, int keyType); /* 181 */
2031 int (*tcl_InputBlocked) (Tcl_Channel chan); /* 182 */
2032 int (*tcl_InputBuffered) (Tcl_Channel chan); /* 183 */
2033 int (*tcl_InterpDeleted) (Tcl_Interp *interp); /* 184 */
2034 int (*tcl_IsSafe) (Tcl_Interp *interp); /* 185 */
2035 char * (*tcl_JoinPath) (int argc, CONST84 char *const *argv, Tcl_DString *resultPtr); /* 186 */
2036 int (*tcl_LinkVar) (Tcl_Interp *interp, const char *varName, char *addr, int type); /* 187 */
2037 void (*reserved188)(void);
2038 Tcl_Channel (*tcl_MakeFileChannel) (ClientData handle, int mode); /* 189 */
2039 int (*tcl_MakeSafe) (Tcl_Interp *interp); /* 190 */
2040 Tcl_Channel (*tcl_MakeTcpClientChannel) (ClientData tcpSocket); /* 191 */
2041 char * (*tcl_Merge) (int argc, CONST84 char *const *argv); /* 192 */
2042 Tcl_HashEntry * (*tcl_NextHashEntry) (Tcl_HashSearch *searchPtr); /* 193 */
2043 void (*tcl_NotifyChannel) (Tcl_Channel channel, int mask); /* 194 */
2044 Tcl_Obj * (*tcl_ObjGetVar2) (Tcl_Interp *interp, Tcl_Obj *part1Ptr, Tcl_Obj *part2Ptr, int flags); /* 195 */
2045 Tcl_Obj * (*tcl_ObjSetVar2) (Tcl_Interp *interp, Tcl_Obj *part1Ptr, Tcl_Obj *part2Ptr, Tcl_Obj *newValuePtr, int flags); /* 196 */
2046 Tcl_Channel (*tcl_OpenCommandChannel) (Tcl_Interp *interp, int argc, CONST84 char **argv, int flags); /* 197 */
2047 Tcl_Channel (*tcl_OpenFileChannel) (Tcl_Interp *interp, const char *fileName, const char *modeString, int permissions); /* 198 */
2048 Tcl_Channel (*tcl_OpenTcpClient) (Tcl_Interp *interp, int port, const char *address, const char *myaddr, int myport, int async); /* 199 */
2049 Tcl_Channel (*tcl_OpenTcpServer) (Tcl_Interp *interp, int port, const char *host, Tcl_TcpAcceptProc *acceptProc, ClientData callbackData); /* 200 */
2050 void (*tcl_Preserve) (ClientData data); /* 201 */
2051 void (*tcl_PrintDouble) (Tcl_Interp *interp, double value, char *dst); /* 202 */
2052 int (*tcl_PutEnv) (const char *assignment); /* 203 */
2053 CONST84_RETURN char * (*tcl_PosixError) (Tcl_Interp *interp); /* 204 */
2054 void (*tcl_QueueEvent) (Tcl_Event *evPtr, Tcl_QueuePosition position); /* 205 */
2055 int (*tcl_Read) (Tcl_Channel chan, char *bufPtr, int toRead); /* 206 */
2056 void (*tcl_ReapDetachedProcs) (void); /* 207 */
2057 int (*tcl_RecordAndEval) (Tcl_Interp *interp, const char *cmd, int flags); /* 208 */
2058 int (*tcl_RecordAndEvalObj) (Tcl_Interp *interp, Tcl_Obj *cmdPtr, int flags); /* 209 */
2059 void (*tcl_RegisterChannel) (Tcl_Interp *interp, Tcl_Channel chan); /* 210 */
2060 void (*tcl_RegisterObjType) (const Tcl_ObjType *typePtr); /* 211 */
2061 Tcl_RegExp (*tcl_RegExpCompile) (Tcl_Interp *interp, const char *pattern); /* 212 */
2062 int (*tcl_RegExpExec) (Tcl_Interp *interp, Tcl_RegExp regexp, const char *text, const char *start); /* 213 */
2063 int (*tcl_RegExpMatch) (Tcl_Interp *interp, const char *text, const char *pattern); /* 214 */
2064 void (*tcl_RegExpRange) (Tcl_RegExp regexp, int index, CONST84 char **startPtr, CONST84 char **endPtr); /* 215 */
2065 void (*tcl_Release) (ClientData clientData); /* 216 */
2066 void (*tcl_ResetResult) (Tcl_Interp *interp); /* 217 */
2067 int (*tcl_ScanElement) (const char *src, int *flagPtr); /* 218 */
2068 int (*tcl_ScanCountedElement) (const char *src, int length, int *flagPtr); /* 219 */
2069 int (*tcl_SeekOld) (Tcl_Channel chan, int offset, int mode); /* 220 */
2070 int (*tcl_ServiceAll) (void); /* 221 */
2071 int (*tcl_ServiceEvent) (int flags); /* 222 */
2072 void (*tcl_SetAssocData) (Tcl_Interp *interp, const char *name, Tcl_InterpDeleteProc *proc, ClientData clientData); /* 223 */
2073 void (*tcl_SetChannelBufferSize) (Tcl_Channel chan, int sz); /* 224 */
2074 int (*tcl_SetChannelOption) (Tcl_Interp *interp, Tcl_Channel chan, const char *optionName, const char *newValue); /* 225 */
2075 int (*tcl_SetCommandInfo) (Tcl_Interp *interp, const char *cmdName, const Tcl_CmdInfo *infoPtr); /* 226 */
2076 void (*tcl_SetErrno) (int err); /* 227 */
2077 void (*tcl_SetErrorCode) (Tcl_Interp *interp, ...); /* 228 */
2078 void (*tcl_SetMaxBlockTime) (const Tcl_Time *timePtr); /* 229 */
2079 void (*tcl_SetPanicProc) (Tcl_PanicProc *panicProc); /* 230 */
2080 int (*tcl_SetRecursionLimit) (Tcl_Interp *interp, int depth); /* 231 */
2081 void (*tcl_SetResult) (Tcl_Interp *interp, char *result, Tcl_FreeProc *freeProc); /* 232 */
2082 int (*tcl_SetServiceMode) (int mode); /* 233 */
2083 void (*tcl_SetObjErrorCode) (Tcl_Interp *interp, Tcl_Obj *errorObjPtr); /* 234 */
2084 void (*tcl_SetObjResult) (Tcl_Interp *interp, Tcl_Obj *resultObjPtr); /* 235 */
2085 void (*tcl_SetStdChannel) (Tcl_Channel channel, int type); /* 236 */
2086 CONST84_RETURN char * (*tcl_SetVar) (Tcl_Interp *interp, const char *varName, const char *newValue, int flags); /* 237 */
2087 CONST84_RETURN char * (*tcl_SetVar2) (Tcl_Interp *interp, const char *part1, const char *part2, const char *newValue, int flags); /* 238 */
2088 CONST84_RETURN char * (*tcl_SignalId) (int sig); /* 239 */
2089 CONST84_RETURN char * (*tcl_SignalMsg) (int sig); /* 240 */
2090 void (*tcl_SourceRCFile) (Tcl_Interp *interp); /* 241 */
2091 int (*tcl_SplitList) (Tcl_Interp *interp, const char *listStr, int *argcPtr, CONST84 char ***argvPtr); /* 242 */
2092 void (*tcl_SplitPath) (const char *path, int *argcPtr, CONST84 char ***argvPtr); /* 243 */
2093 void (*tcl_StaticPackage) (Tcl_Interp *interp, const char *pkgName, Tcl_PackageInitProc *initProc, Tcl_PackageInitProc *safeInitProc); /* 244 */
2094 int (*tcl_StringMatch) (const char *str, const char *pattern); /* 245 */
2095 int (*tcl_TellOld) (Tcl_Channel chan); /* 246 */
2096 int (*tcl_TraceVar) (Tcl_Interp *interp, const char *varName, int flags, Tcl_VarTraceProc *proc, ClientData clientData); /* 247 */
2097 int (*tcl_TraceVar2) (Tcl_Interp *interp, const char *part1, const char *part2, int flags, Tcl_VarTraceProc *proc, ClientData clientData); /* 248 */
2098 char * (*tcl_TranslateFileName) (Tcl_Interp *interp, const char *name, Tcl_DString *bufferPtr); /* 249 */
2099 int (*tcl_Ungets) (Tcl_Channel chan, const char *str, int len, int atHead); /* 250 */
2100 void (*tcl_UnlinkVar) (Tcl_Interp *interp, const char *varName); /* 251 */
2101 int (*tcl_UnregisterChannel) (Tcl_Interp *interp, Tcl_Channel chan); /* 252 */
2102 int (*tcl_UnsetVar) (Tcl_Interp *interp, const char *varName, int flags); /* 253 */
2103 int (*tcl_UnsetVar2) (Tcl_Interp *interp, const char *part1, const char *part2, int flags); /* 254 */
2104 void (*tcl_UntraceVar) (Tcl_Interp *interp, const char *varName, int flags, Tcl_VarTraceProc *proc, ClientData clientData); /* 255 */
2105 void (*tcl_UntraceVar2) (Tcl_Interp *interp, const char *part1, const char *part2, int flags, Tcl_VarTraceProc *proc, ClientData clientData); /* 256 */
2106 void (*tcl_UpdateLinkedVar) (Tcl_Interp *interp, const char *varName); /* 257 */
2107 int (*tcl_UpVar) (Tcl_Interp *interp, const char *frameName, const char *varName, const char *localName, int flags); /* 258 */
2108 int (*tcl_UpVar2) (Tcl_Interp *interp, const char *frameName, const char *part1, const char *part2, const char *localName, int flags); /* 259 */
2109 int (*tcl_VarEval) (Tcl_Interp *interp, ...); /* 260 */
2110 ClientData (*tcl_VarTraceInfo) (Tcl_Interp *interp, const char *varName, int flags, Tcl_VarTraceProc *procPtr, ClientData prevClientData); /* 261 */
2111 ClientData (*tcl_VarTraceInfo2) (Tcl_Interp *interp, const char *part1, const char *part2, int flags, Tcl_VarTraceProc *procPtr, ClientData prevClientData); /* 262 */
2112 int (*tcl_Write) (Tcl_Channel chan, const char *s, int slen); /* 263 */
2113 void (*tcl_WrongNumArgs) (Tcl_Interp *interp, int objc, Tcl_Obj *const objv[], const char *message); /* 264 */
2114 int (*tcl_DumpActiveMemory) (const char *fileName); /* 265 */
2115 void (*tcl_ValidateAllMemory) (const char *file, int line); /* 266 */
2116 void (*tcl_AppendResultVA) (Tcl_Interp *interp, va_list argList); /* 267 */
2117 void (*tcl_AppendStringsToObjVA) (Tcl_Obj *objPtr, va_list argList); /* 268 */
2118 char * (*tcl_HashStats) (Tcl_HashTable *tablePtr); /* 269 */
2119 CONST84_RETURN char * (*tcl_ParseVar) (Tcl_Interp *interp, const char *start, CONST84 char **termPtr); /* 270 */
2120 CONST84_RETURN char * (*tcl_PkgPresent) (Tcl_Interp *interp, const char *name, const char *version, int exact); /* 271 */
2121 CONST84_RETURN char * (*tcl_PkgPresentEx) (Tcl_Interp *interp, const char *name, const char *version, int exact, void *clientDataPtr); /* 272 */
2122 int (*tcl_PkgProvide) (Tcl_Interp *interp, const char *name, const char *version); /* 273 */
2123 CONST84_RETURN char * (*tcl_PkgRequire) (Tcl_Interp *interp, const char *name, const char *version, int exact); /* 274 */
2124 void (*tcl_SetErrorCodeVA) (Tcl_Interp *interp, va_list argList); /* 275 */
2125 int (*tcl_VarEvalVA) (Tcl_Interp *interp, va_list argList); /* 276 */
2126 Tcl_Pid (*tcl_WaitPid) (Tcl_Pid pid, int *statPtr, int options); /* 277 */
2127 void (*tcl_PanicVA) (const char *format, va_list argList); /* 278 */
2128 void (*tcl_GetVersion) (int *major, int *minor, int *patchLevel, int *type); /* 279 */
2129 void (*tcl_InitMemory) (Tcl_Interp *interp); /* 280 */
2130 Tcl_Channel (*tcl_StackChannel) (Tcl_Interp *interp, const Tcl_ChannelType *typePtr, ClientData instanceData, int mask, Tcl_Channel prevChan); /* 281 */
2131 int (*tcl_UnstackChannel) (Tcl_Interp *interp, Tcl_Channel chan); /* 282 */
2132 Tcl_Channel (*tcl_GetStackedChannel) (Tcl_Channel chan); /* 283 */
2133 void (*tcl_SetMainLoop) (Tcl_MainLoopProc *proc); /* 284 */
2134 void (*reserved285)(void);
2135 void (*tcl_AppendObjToObj) (Tcl_Obj *objPtr, Tcl_Obj *appendObjPtr); /* 286 */
2136 Tcl_Encoding (*tcl_CreateEncoding) (const Tcl_EncodingType *typePtr); /* 287 */
2137 void (*tcl_CreateThreadExitHandler) (Tcl_ExitProc *proc, ClientData clientData); /* 288 */
2138 void (*tcl_DeleteThreadExitHandler) (Tcl_ExitProc *proc, ClientData clientData); /* 289 */
2139 void (*tcl_DiscardResult) (Tcl_SavedResult *statePtr); /* 290 */
2140 int (*tcl_EvalEx) (Tcl_Interp *interp, const char *script, int numBytes, int flags); /* 291 */
2141 int (*tcl_EvalObjv) (Tcl_Interp *interp, int objc, Tcl_Obj *const objv[], int flags); /* 292 */
2142 int (*tcl_EvalObjEx) (Tcl_Interp *interp, Tcl_Obj *objPtr, int flags); /* 293 */
2143 void (*tcl_ExitThread) (int status); /* 294 */
2144 int (*tcl_ExternalToUtf) (Tcl_Interp *interp, Tcl_Encoding encoding, const char *src, int srcLen, int flags, Tcl_EncodingState *statePtr, char *dst, int dstLen, int *srcReadPtr, int *dstWrotePtr, int *dstCharsPtr); /* 295 */
2145 char * (*tcl_ExternalToUtfDString) (Tcl_Encoding encoding, const char *src, int srcLen, Tcl_DString *dsPtr); /* 296 */
2146 void (*tcl_FinalizeThread) (void); /* 297 */
2147 void (*tcl_FinalizeNotifier) (ClientData clientData); /* 298 */
2148 void (*tcl_FreeEncoding) (Tcl_Encoding encoding); /* 299 */
2149 Tcl_ThreadId (*tcl_GetCurrentThread) (void); /* 300 */
2150 Tcl_Encoding (*tcl_GetEncoding) (Tcl_Interp *interp, const char *name); /* 301 */
2151 CONST84_RETURN char * (*tcl_GetEncodingName) (Tcl_Encoding encoding); /* 302 */
2152 void (*tcl_GetEncodingNames) (Tcl_Interp *interp); /* 303 */
2153 int (*tcl_GetIndexFromObjStruct) (Tcl_Interp *interp, Tcl_Obj *objPtr, const void *tablePtr, int offset, const char *msg, int flags, int *indexPtr); /* 304 */
2154 void * (*tcl_GetThreadData) (Tcl_ThreadDataKey *keyPtr, int size); /* 305 */
2155 Tcl_Obj * (*tcl_GetVar2Ex) (Tcl_Interp *interp, const char *part1, const char *part2, int flags); /* 306 */
2156 ClientData (*tcl_InitNotifier) (void); /* 307 */
2157 void (*tcl_MutexLock) (Tcl_Mutex *mutexPtr); /* 308 */
2158 void (*tcl_MutexUnlock) (Tcl_Mutex *mutexPtr); /* 309 */
2159 void (*tcl_ConditionNotify) (Tcl_Condition *condPtr); /* 310 */
2160 void (*tcl_ConditionWait) (Tcl_Condition *condPtr, Tcl_Mutex *mutexPtr, const Tcl_Time *timePtr); /* 311 */
2161 int (*tcl_NumUtfChars) (const char *src, int length); /* 312 */
2162 int (*tcl_ReadChars) (Tcl_Channel channel, Tcl_Obj *objPtr, int charsToRead, int appendFlag); /* 313 */
2163 void (*tcl_RestoreResult) (Tcl_Interp *interp, Tcl_SavedResult *statePtr); /* 314 */
2164 void (*tcl_SaveResult) (Tcl_Interp *interp, Tcl_SavedResult *statePtr); /* 315 */
2165 int (*tcl_SetSystemEncoding) (Tcl_Interp *interp, const char *name); /* 316 */
2166 Tcl_Obj * (*tcl_SetVar2Ex) (Tcl_Interp *interp, const char *part1, const char *part2, Tcl_Obj *newValuePtr, int flags); /* 317 */
2167 void (*tcl_ThreadAlert) (Tcl_ThreadId threadId); /* 318 */
2168 void (*tcl_ThreadQueueEvent) (Tcl_ThreadId threadId, Tcl_Event *evPtr, Tcl_QueuePosition position); /* 319 */
2169 Tcl_UniChar (*tcl_UniCharAtIndex) (const char *src, int index); /* 320 */
2170 Tcl_UniChar (*tcl_UniCharToLower) (int ch); /* 321 */
2171 Tcl_UniChar (*tcl_UniCharToTitle) (int ch); /* 322 */
2172 Tcl_UniChar (*tcl_UniCharToUpper) (int ch); /* 323 */
2173 int (*tcl_UniCharToUtf) (int ch, char *buf); /* 324 */
2174 CONST84_RETURN char * (*tcl_UtfAtIndex) (const char *src, int index); /* 325 */
2175 int (*tcl_UtfCharComplete) (const char *src, int length); /* 326 */
2176 int (*tcl_UtfBackslash) (const char *src, int *readPtr, char *dst); /* 327 */
2177 CONST84_RETURN char * (*tcl_UtfFindFirst) (const char *src, int ch); /* 328 */
2178 CONST84_RETURN char * (*tcl_UtfFindLast) (const char *src, int ch); /* 329 */
2179 CONST84_RETURN char * (*tcl_UtfNext) (const char *src); /* 330 */
2180 CONST84_RETURN char * (*tcl_UtfPrev) (const char *src, const char *start); /* 331 */
2181 int (*tcl_UtfToExternal) (Tcl_Interp *interp, Tcl_Encoding encoding, const char *src, int srcLen, int flags, Tcl_EncodingState *statePtr, char *dst, int dstLen, int *srcReadPtr, int *dstWrotePtr, int *dstCharsPtr); /* 332 */
2182 char * (*tcl_UtfToExternalDString) (Tcl_Encoding encoding, const char *src, int srcLen, Tcl_DString *dsPtr); /* 333 */
2183 int (*tcl_UtfToLower) (char *src); /* 334 */
2184 int (*tcl_UtfToTitle) (char *src); /* 335 */
2185 int (*tcl_UtfToUniChar) (const char *src, Tcl_UniChar *chPtr); /* 336 */
2186 int (*tcl_UtfToUpper) (char *src); /* 337 */
2187 int (*tcl_WriteChars) (Tcl_Channel chan, const char *src, int srcLen); /* 338 */
2188 int (*tcl_WriteObj) (Tcl_Channel chan, Tcl_Obj *objPtr); /* 339 */
2189 char * (*tcl_GetString) (Tcl_Obj *objPtr); /* 340 */
2190 CONST84_RETURN char * (*tcl_GetDefaultEncodingDir) (void); /* 341 */
2191 void (*tcl_SetDefaultEncodingDir) (const char *path); /* 342 */
2192 void (*tcl_AlertNotifier) (ClientData clientData); /* 343 */
2193 void (*tcl_ServiceModeHook) (int mode); /* 344 */
2194 int (*tcl_UniCharIsAlnum) (int ch); /* 345 */
2195 int (*tcl_UniCharIsAlpha) (int ch); /* 346 */
2196 int (*tcl_UniCharIsDigit) (int ch); /* 347 */
2197 int (*tcl_UniCharIsLower) (int ch); /* 348 */
2198 int (*tcl_UniCharIsSpace) (int ch); /* 349 */
2199 int (*tcl_UniCharIsUpper) (int ch); /* 350 */
2200 int (*tcl_UniCharIsWordChar) (int ch); /* 351 */
2201 int (*tcl_UniCharLen) (const Tcl_UniChar *uniStr); /* 352 */
2202 int (*tcl_UniCharNcmp) (const Tcl_UniChar *ucs, const Tcl_UniChar *uct, unsigned long numChars); /* 353 */
2203 char * (*tcl_UniCharToUtfDString) (const Tcl_UniChar *uniStr, int uniLength, Tcl_DString *dsPtr); /* 354 */
2204 Tcl_UniChar * (*tcl_UtfToUniCharDString) (const char *src, int length, Tcl_DString *dsPtr); /* 355 */
2205 Tcl_RegExp (*tcl_GetRegExpFromObj) (Tcl_Interp *interp, Tcl_Obj *patObj, int flags); /* 356 */
2206 Tcl_Obj * (*tcl_EvalTokens) (Tcl_Interp *interp, Tcl_Token *tokenPtr, int count); /* 357 */
2207 void (*tcl_FreeParse) (Tcl_Parse *parsePtr); /* 358 */
2208 void (*tcl_LogCommandInfo) (Tcl_Interp *interp, const char *script, const char *command, int length); /* 359 */
2209 int (*tcl_ParseBraces) (Tcl_Interp *interp, const char *start, int numBytes, Tcl_Parse *parsePtr, int append, CONST84 char **termPtr); /* 360 */
2210 int (*tcl_ParseCommand) (Tcl_Interp *interp, const char *start, int numBytes, int nested, Tcl_Parse *parsePtr); /* 361 */
2211 int (*tcl_ParseExpr) (Tcl_Interp *interp, const char *start, int numBytes, Tcl_Parse *parsePtr); /* 362 */
2212 int (*tcl_ParseQuotedString) (Tcl_Interp *interp, const char *start, int numBytes, Tcl_Parse *parsePtr, int append, CONST84 char **termPtr); /* 363 */
2213 int (*tcl_ParseVarName) (Tcl_Interp *interp, const char *start, int numBytes, Tcl_Parse *parsePtr, int append); /* 364 */
2214 char * (*tcl_GetCwd) (Tcl_Interp *interp, Tcl_DString *cwdPtr); /* 365 */
2215 int (*tcl_Chdir) (const char *dirName); /* 366 */
2216 int (*tcl_Access) (const char *path, int mode); /* 367 */
2217 int (*tcl_Stat) (const char *path, struct stat *bufPtr); /* 368 */
2218 int (*tcl_UtfNcmp) (const char *s1, const char *s2, unsigned long n); /* 369 */
2219 int (*tcl_UtfNcasecmp) (const char *s1, const char *s2, unsigned long n); /* 370 */
2220 int (*tcl_StringCaseMatch) (const char *str, const char *pattern, int nocase); /* 371 */
2221 int (*tcl_UniCharIsControl) (int ch); /* 372 */
2222 int (*tcl_UniCharIsGraph) (int ch); /* 373 */
2223 int (*tcl_UniCharIsPrint) (int ch); /* 374 */
2224 int (*tcl_UniCharIsPunct) (int ch); /* 375 */
2225 int (*tcl_RegExpExecObj) (Tcl_Interp *interp, Tcl_RegExp regexp, Tcl_Obj *textObj, int offset, int nmatches, int flags); /* 376 */
2226 void (*tcl_RegExpGetInfo) (Tcl_RegExp regexp, Tcl_RegExpInfo *infoPtr); /* 377 */
2227 Tcl_Obj * (*tcl_NewUnicodeObj) (const Tcl_UniChar *unicode, int numChars); /* 378 */
2228 void (*tcl_SetUnicodeObj) (Tcl_Obj *objPtr, const Tcl_UniChar *unicode, int numChars); /* 379 */
2229 int (*tcl_GetCharLength) (Tcl_Obj *objPtr); /* 380 */
2230 Tcl_UniChar (*tcl_GetUniChar) (Tcl_Obj *objPtr, int index); /* 381 */
2231 Tcl_UniChar * (*tcl_GetUnicode) (Tcl_Obj *objPtr); /* 382 */
2232 Tcl_Obj * (*tcl_GetRange) (Tcl_Obj *objPtr, int first, int last); /* 383 */
2233 void (*tcl_AppendUnicodeToObj) (Tcl_Obj *objPtr, const Tcl_UniChar *unicode, int length); /* 384 */
2234 int (*tcl_RegExpMatchObj) (Tcl_Interp *interp, Tcl_Obj *textObj, Tcl_Obj *patternObj); /* 385 */
2235 void (*tcl_SetNotifier) (Tcl_NotifierProcs *notifierProcPtr); /* 386 */
2236 Tcl_Mutex * (*tcl_GetAllocMutex) (void); /* 387 */
2237 int (*tcl_GetChannelNames) (Tcl_Interp *interp); /* 388 */
2238 int (*tcl_GetChannelNamesEx) (Tcl_Interp *interp, const char *pattern); /* 389 */
2239 int (*tcl_ProcObjCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 390 */
2240 void (*tcl_ConditionFinalize) (Tcl_Condition *condPtr); /* 391 */
2241 void (*tcl_MutexFinalize) (Tcl_Mutex *mutex); /* 392 */
2242 int (*tcl_CreateThread) (Tcl_ThreadId *idPtr, Tcl_ThreadCreateProc *proc, ClientData clientData, int stackSize, int flags); /* 393 */
2243 int (*tcl_ReadRaw) (Tcl_Channel chan, char *dst, int bytesToRead); /* 394 */
2244 int (*tcl_WriteRaw) (Tcl_Channel chan, const char *src, int srcLen); /* 395 */
2245 Tcl_Channel (*tcl_GetTopChannel) (Tcl_Channel chan); /* 396 */
2246 int (*tcl_ChannelBuffered) (Tcl_Channel chan); /* 397 */
2247 CONST84_RETURN char * (*tcl_ChannelName) (const Tcl_ChannelType *chanTypePtr); /* 398 */
2248 Tcl_ChannelTypeVersion (*tcl_ChannelVersion) (const Tcl_ChannelType *chanTypePtr); /* 399 */
2249 Tcl_DriverBlockModeProc * (*tcl_ChannelBlockModeProc) (const Tcl_ChannelType *chanTypePtr); /* 400 */
2250 Tcl_DriverCloseProc * (*tcl_ChannelCloseProc) (const Tcl_ChannelType *chanTypePtr); /* 401 */
2251 Tcl_DriverClose2Proc * (*tcl_ChannelClose2Proc) (const Tcl_ChannelType *chanTypePtr); /* 402 */
2252 Tcl_DriverInputProc * (*tcl_ChannelInputProc) (const Tcl_ChannelType *chanTypePtr); /* 403 */
2253 Tcl_DriverOutputProc * (*tcl_ChannelOutputProc) (const Tcl_ChannelType *chanTypePtr); /* 404 */
2254 Tcl_DriverSeekProc * (*tcl_ChannelSeekProc) (const Tcl_ChannelType *chanTypePtr); /* 405 */
2255 Tcl_DriverSetOptionProc * (*tcl_ChannelSetOptionProc) (const Tcl_ChannelType *chanTypePtr); /* 406 */
2256 Tcl_DriverGetOptionProc * (*tcl_ChannelGetOptionProc) (const Tcl_ChannelType *chanTypePtr); /* 407 */
2257 Tcl_DriverWatchProc * (*tcl_ChannelWatchProc) (const Tcl_ChannelType *chanTypePtr); /* 408 */
2258 Tcl_DriverGetHandleProc * (*tcl_ChannelGetHandleProc) (const Tcl_ChannelType *chanTypePtr); /* 409 */
2259 Tcl_DriverFlushProc * (*tcl_ChannelFlushProc) (const Tcl_ChannelType *chanTypePtr); /* 410 */
2260 Tcl_DriverHandlerProc * (*tcl_ChannelHandlerProc) (const Tcl_ChannelType *chanTypePtr); /* 411 */
2261 int (*tcl_JoinThread) (Tcl_ThreadId threadId, int *result); /* 412 */
2262 int (*tcl_IsChannelShared) (Tcl_Channel channel); /* 413 */
2263 int (*tcl_IsChannelRegistered) (Tcl_Interp *interp, Tcl_Channel channel); /* 414 */
2264 void (*tcl_CutChannel) (Tcl_Channel channel); /* 415 */
2265 void (*tcl_SpliceChannel) (Tcl_Channel channel); /* 416 */
2266 void (*tcl_ClearChannelHandlers) (Tcl_Channel channel); /* 417 */
2267 int (*tcl_IsChannelExisting) (const char *channelName); /* 418 */
2268 int (*tcl_UniCharNcasecmp) (const Tcl_UniChar *ucs, const Tcl_UniChar *uct, unsigned long numChars); /* 419 */
2269 int (*tcl_UniCharCaseMatch) (const Tcl_UniChar *uniStr, const Tcl_UniChar *uniPattern, int nocase); /* 420 */
2270 Tcl_HashEntry * (*tcl_FindHashEntry) (Tcl_HashTable *tablePtr, const void *key); /* 421 */
2271 Tcl_HashEntry * (*tcl_CreateHashEntry) (Tcl_HashTable *tablePtr, const void *key, int *newPtr); /* 422 */
2272 void (*tcl_InitCustomHashTable) (Tcl_HashTable *tablePtr, int keyType, const Tcl_HashKeyType *typePtr); /* 423 */
2273 void (*tcl_InitObjHashTable) (Tcl_HashTable *tablePtr); /* 424 */
2274 ClientData (*tcl_CommandTraceInfo) (Tcl_Interp *interp, const char *varName, int flags, Tcl_CommandTraceProc *procPtr, ClientData prevClientData); /* 425 */
2275 int (*tcl_TraceCommand) (Tcl_Interp *interp, const char *varName, int flags, Tcl_CommandTraceProc *proc, ClientData clientData); /* 426 */
2276 void (*tcl_UntraceCommand) (Tcl_Interp *interp, const char *varName, int flags, Tcl_CommandTraceProc *proc, ClientData clientData); /* 427 */
2277 char * (*tcl_AttemptAlloc) (unsigned int size); /* 428 */
2278 char * (*tcl_AttemptDbCkalloc) (unsigned int size, const char *file, int line); /* 429 */
2279 char * (*tcl_AttemptRealloc) (char *ptr, unsigned int size); /* 430 */
2280 char * (*tcl_AttemptDbCkrealloc) (char *ptr, unsigned int size, const char *file, int line); /* 431 */
2281 int (*tcl_AttemptSetObjLength) (Tcl_Obj *objPtr, int length); /* 432 */
2282 Tcl_ThreadId (*tcl_GetChannelThread) (Tcl_Channel channel); /* 433 */
2283 Tcl_UniChar * (*tcl_GetUnicodeFromObj) (Tcl_Obj *objPtr, int *lengthPtr); /* 434 */
2284 int (*tcl_GetMathFuncInfo) (Tcl_Interp *interp, const char *name, int *numArgsPtr, Tcl_ValueType **argTypesPtr, Tcl_MathProc **procPtr, ClientData *clientDataPtr); /* 435 */
2285 Tcl_Obj * (*tcl_ListMathFuncs) (Tcl_Interp *interp, const char *pattern); /* 436 */
2286 Tcl_Obj * (*tcl_SubstObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int flags); /* 437 */
2287 int (*tcl_DetachChannel) (Tcl_Interp *interp, Tcl_Channel channel); /* 438 */
2288 int (*tcl_IsStandardChannel) (Tcl_Channel channel); /* 439 */
2289 int (*tcl_FSCopyFile) (Tcl_Obj *srcPathPtr, Tcl_Obj *destPathPtr); /* 440 */
2290 int (*tcl_FSCopyDirectory) (Tcl_Obj *srcPathPtr, Tcl_Obj *destPathPtr, Tcl_Obj **errorPtr); /* 441 */
2291 int (*tcl_FSCreateDirectory) (Tcl_Obj *pathPtr); /* 442 */
2292 int (*tcl_FSDeleteFile) (Tcl_Obj *pathPtr); /* 443 */
2293 int (*tcl_FSLoadFile) (Tcl_Interp *interp, Tcl_Obj *pathPtr, const char *sym1, const char *sym2, Tcl_PackageInitProc **proc1Ptr, Tcl_PackageInitProc **proc2Ptr, Tcl_LoadHandle *handlePtr, Tcl_FSUnloadFileProc **unloadProcPtr); /* 444 */
2294 int (*tcl_FSMatchInDirectory) (Tcl_Interp *interp, Tcl_Obj *result, Tcl_Obj *pathPtr, const char *pattern, Tcl_GlobTypeData *types); /* 445 */
2295 Tcl_Obj * (*tcl_FSLink) (Tcl_Obj *pathPtr, Tcl_Obj *toPtr, int linkAction); /* 446 */
2296 int (*tcl_FSRemoveDirectory) (Tcl_Obj *pathPtr, int recursive, Tcl_Obj **errorPtr); /* 447 */
2297 int (*tcl_FSRenameFile) (Tcl_Obj *srcPathPtr, Tcl_Obj *destPathPtr); /* 448 */
2298 int (*tcl_FSLstat) (Tcl_Obj *pathPtr, Tcl_StatBuf *buf); /* 449 */
2299 int (*tcl_FSUtime) (Tcl_Obj *pathPtr, struct utimbuf *tval); /* 450 */
2300 int (*tcl_FSFileAttrsGet) (Tcl_Interp *interp, int index, Tcl_Obj *pathPtr, Tcl_Obj **objPtrRef); /* 451 */
2301 int (*tcl_FSFileAttrsSet) (Tcl_Interp *interp, int index, Tcl_Obj *pathPtr, Tcl_Obj *objPtr); /* 452 */
2302 const char *CONST86 * (*tcl_FSFileAttrStrings) (Tcl_Obj *pathPtr, Tcl_Obj **objPtrRef); /* 453 */
2303 int (*tcl_FSStat) (Tcl_Obj *pathPtr, Tcl_StatBuf *buf); /* 454 */
2304 int (*tcl_FSAccess) (Tcl_Obj *pathPtr, int mode); /* 455 */
2305 Tcl_Channel (*tcl_FSOpenFileChannel) (Tcl_Interp *interp, Tcl_Obj *pathPtr, const char *modeString, int permissions); /* 456 */
2306 Tcl_Obj * (*tcl_FSGetCwd) (Tcl_Interp *interp); /* 457 */
2307 int (*tcl_FSChdir) (Tcl_Obj *pathPtr); /* 458 */
2308 int (*tcl_FSConvertToPathType) (Tcl_Interp *interp, Tcl_Obj *pathPtr); /* 459 */
2309 Tcl_Obj * (*tcl_FSJoinPath) (Tcl_Obj *listObj, int elements); /* 460 */
2310 Tcl_Obj * (*tcl_FSSplitPath) (Tcl_Obj *pathPtr, int *lenPtr); /* 461 */
2311 int (*tcl_FSEqualPaths) (Tcl_Obj *firstPtr, Tcl_Obj *secondPtr); /* 462 */
2312 Tcl_Obj * (*tcl_FSGetNormalizedPath) (Tcl_Interp *interp, Tcl_Obj *pathPtr); /* 463 */
2313 Tcl_Obj * (*tcl_FSJoinToPath) (Tcl_Obj *pathPtr, int objc, Tcl_Obj *const objv[]); /* 464 */
2314 ClientData (*tcl_FSGetInternalRep) (Tcl_Obj *pathPtr, const Tcl_Filesystem *fsPtr); /* 465 */
2315 Tcl_Obj * (*tcl_FSGetTranslatedPath) (Tcl_Interp *interp, Tcl_Obj *pathPtr); /* 466 */
2316 int (*tcl_FSEvalFile) (Tcl_Interp *interp, Tcl_Obj *fileName); /* 467 */
2317 Tcl_Obj * (*tcl_FSNewNativePath) (const Tcl_Filesystem *fromFilesystem, ClientData clientData); /* 468 */
2318 const void * (*tcl_FSGetNativePath) (Tcl_Obj *pathPtr); /* 469 */
2319 Tcl_Obj * (*tcl_FSFileSystemInfo) (Tcl_Obj *pathPtr); /* 470 */
2320 Tcl_Obj * (*tcl_FSPathSeparator) (Tcl_Obj *pathPtr); /* 471 */
2321 Tcl_Obj * (*tcl_FSListVolumes) (void); /* 472 */
2322 int (*tcl_FSRegister) (ClientData clientData, const Tcl_Filesystem *fsPtr); /* 473 */
2323 int (*tcl_FSUnregister) (const Tcl_Filesystem *fsPtr); /* 474 */
2324 ClientData (*tcl_FSData) (const Tcl_Filesystem *fsPtr); /* 475 */
2325 const char * (*tcl_FSGetTranslatedStringPath) (Tcl_Interp *interp, Tcl_Obj *pathPtr); /* 476 */
2326 CONST86 Tcl_Filesystem * (*tcl_FSGetFileSystemForPath) (Tcl_Obj *pathPtr); /* 477 */
2327 Tcl_PathType (*tcl_FSGetPathType) (Tcl_Obj *pathPtr); /* 478 */
2328 int (*tcl_OutputBuffered) (Tcl_Channel chan); /* 479 */
2329 void (*tcl_FSMountsChanged) (const Tcl_Filesystem *fsPtr); /* 480 */
2330 int (*tcl_EvalTokensStandard) (Tcl_Interp *interp, Tcl_Token *tokenPtr, int count); /* 481 */
2331 void (*tcl_GetTime) (Tcl_Time *timeBuf); /* 482 */
2332 Tcl_Trace (*tcl_CreateObjTrace) (Tcl_Interp *interp, int level, int flags, Tcl_CmdObjTraceProc *objProc, ClientData clientData, Tcl_CmdObjTraceDeleteProc *delProc); /* 483 */
2333 int (*tcl_GetCommandInfoFromToken) (Tcl_Command token, Tcl_CmdInfo *infoPtr); /* 484 */
2334 int (*tcl_SetCommandInfoFromToken) (Tcl_Command token, const Tcl_CmdInfo *infoPtr); /* 485 */
2335 Tcl_Obj * (*tcl_DbNewWideIntObj) (Tcl_WideInt wideValue, const char *file, int line); /* 486 */
2336 int (*tcl_GetWideIntFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_WideInt *widePtr); /* 487 */
2337 Tcl_Obj * (*tcl_NewWideIntObj) (Tcl_WideInt wideValue); /* 488 */
2338 void (*tcl_SetWideIntObj) (Tcl_Obj *objPtr, Tcl_WideInt wideValue); /* 489 */
2339 Tcl_StatBuf * (*tcl_AllocStatBuf) (void); /* 490 */
2340 Tcl_WideInt (*tcl_Seek) (Tcl_Channel chan, Tcl_WideInt offset, int mode); /* 491 */
2341 Tcl_WideInt (*tcl_Tell) (Tcl_Channel chan); /* 492 */
2342 Tcl_DriverWideSeekProc * (*tcl_ChannelWideSeekProc) (const Tcl_ChannelType *chanTypePtr); /* 493 */
2343 int (*tcl_DictObjPut) (Tcl_Interp *interp, Tcl_Obj *dictPtr, Tcl_Obj *keyPtr, Tcl_Obj *valuePtr); /* 494 */
2344 int (*tcl_DictObjGet) (Tcl_Interp *interp, Tcl_Obj *dictPtr, Tcl_Obj *keyPtr, Tcl_Obj **valuePtrPtr); /* 495 */
2345 int (*tcl_DictObjRemove) (Tcl_Interp *interp, Tcl_Obj *dictPtr, Tcl_Obj *keyPtr); /* 496 */
2346 int (*tcl_DictObjSize) (Tcl_Interp *interp, Tcl_Obj *dictPtr, int *sizePtr); /* 497 */
2347 int (*tcl_DictObjFirst) (Tcl_Interp *interp, Tcl_Obj *dictPtr, Tcl_DictSearch *searchPtr, Tcl_Obj **keyPtrPtr, Tcl_Obj **valuePtrPtr, int *donePtr); /* 498 */
2348 void (*tcl_DictObjNext) (Tcl_DictSearch *searchPtr, Tcl_Obj **keyPtrPtr, Tcl_Obj **valuePtrPtr, int *donePtr); /* 499 */
2349 void (*tcl_DictObjDone) (Tcl_DictSearch *searchPtr); /* 500 */
2350 int (*tcl_DictObjPutKeyList) (Tcl_Interp *interp, Tcl_Obj *dictPtr, int keyc, Tcl_Obj *const *keyv, Tcl_Obj *valuePtr); /* 501 */
2351 int (*tcl_DictObjRemoveKeyList) (Tcl_Interp *interp, Tcl_Obj *dictPtr, int keyc, Tcl_Obj *const *keyv); /* 502 */
2352 Tcl_Obj * (*tcl_NewDictObj) (void); /* 503 */
2353 Tcl_Obj * (*tcl_DbNewDictObj) (const char *file, int line); /* 504 */
2354 void (*tcl_RegisterConfig) (Tcl_Interp *interp, const char *pkgName, const Tcl_Config *configuration, const char *valEncoding); /* 505 */
2355 Tcl_Namespace * (*tcl_CreateNamespace) (Tcl_Interp *interp, const char *name, ClientData clientData, Tcl_NamespaceDeleteProc *deleteProc); /* 506 */
2356 void (*tcl_DeleteNamespace) (Tcl_Namespace *nsPtr); /* 507 */
2357 int (*tcl_AppendExportList) (Tcl_Interp *interp, Tcl_Namespace *nsPtr, Tcl_Obj *objPtr); /* 508 */
2358 int (*tcl_Export) (Tcl_Interp *interp, Tcl_Namespace *nsPtr, const char *pattern, int resetListFirst); /* 509 */
2359 int (*tcl_Import) (Tcl_Interp *interp, Tcl_Namespace *nsPtr, const char *pattern, int allowOverwrite); /* 510 */
2360 int (*tcl_ForgetImport) (Tcl_Interp *interp, Tcl_Namespace *nsPtr, const char *pattern); /* 511 */
2361 Tcl_Namespace * (*tcl_GetCurrentNamespace) (Tcl_Interp *interp); /* 512 */
2362 Tcl_Namespace * (*tcl_GetGlobalNamespace) (Tcl_Interp *interp); /* 513 */
2363 Tcl_Namespace * (*tcl_FindNamespace) (Tcl_Interp *interp, const char *name, Tcl_Namespace *contextNsPtr, int flags); /* 514 */
2364 Tcl_Command (*tcl_FindCommand) (Tcl_Interp *interp, const char *name, Tcl_Namespace *contextNsPtr, int flags); /* 515 */
2365 Tcl_Command (*tcl_GetCommandFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr); /* 516 */
2366 void (*tcl_GetCommandFullName) (Tcl_Interp *interp, Tcl_Command command, Tcl_Obj *objPtr); /* 517 */
2367 int (*tcl_FSEvalFileEx) (Tcl_Interp *interp, Tcl_Obj *fileName, const char *encodingName); /* 518 */
2368 Tcl_ExitProc * (*tcl_SetExitProc) (Tcl_ExitProc *proc); /* 519 */
2369 void (*tcl_LimitAddHandler) (Tcl_Interp *interp, int type, Tcl_LimitHandlerProc *handlerProc, ClientData clientData, Tcl_LimitHandlerDeleteProc *deleteProc); /* 520 */
2370 void (*tcl_LimitRemoveHandler) (Tcl_Interp *interp, int type, Tcl_LimitHandlerProc *handlerProc, ClientData clientData); /* 521 */
2371 int (*tcl_LimitReady) (Tcl_Interp *interp); /* 522 */
2372 int (*tcl_LimitCheck) (Tcl_Interp *interp); /* 523 */
2373 int (*tcl_LimitExceeded) (Tcl_Interp *interp); /* 524 */
2374 void (*tcl_LimitSetCommands) (Tcl_Interp *interp, int commandLimit); /* 525 */
2375 void (*tcl_LimitSetTime) (Tcl_Interp *interp, Tcl_Time *timeLimitPtr); /* 526 */
2376 void (*tcl_LimitSetGranularity) (Tcl_Interp *interp, int type, int granularity); /* 527 */
2377 int (*tcl_LimitTypeEnabled) (Tcl_Interp *interp, int type); /* 528 */
2378 int (*tcl_LimitTypeExceeded) (Tcl_Interp *interp, int type); /* 529 */
2379 void (*tcl_LimitTypeSet) (Tcl_Interp *interp, int type); /* 530 */
2380 void (*tcl_LimitTypeReset) (Tcl_Interp *interp, int type); /* 531 */
2381 int (*tcl_LimitGetCommands) (Tcl_Interp *interp); /* 532 */
2382 void (*tcl_LimitGetTime) (Tcl_Interp *interp, Tcl_Time *timeLimitPtr); /* 533 */
2383 int (*tcl_LimitGetGranularity) (Tcl_Interp *interp, int type); /* 534 */
2384 Tcl_InterpState (*tcl_SaveInterpState) (Tcl_Interp *interp, int status); /* 535 */
2385 int (*tcl_RestoreInterpState) (Tcl_Interp *interp, Tcl_InterpState state); /* 536 */
2386 void (*tcl_DiscardInterpState) (Tcl_InterpState state); /* 537 */
2387 int (*tcl_SetReturnOptions) (Tcl_Interp *interp, Tcl_Obj *options); /* 538 */
2388 Tcl_Obj * (*tcl_GetReturnOptions) (Tcl_Interp *interp, int result); /* 539 */
2389 int (*tcl_IsEnsemble) (Tcl_Command token); /* 540 */
2390 Tcl_Command (*tcl_CreateEnsemble) (Tcl_Interp *interp, const char *name, Tcl_Namespace *namespacePtr, int flags); /* 541 */
2391 Tcl_Command (*tcl_FindEnsemble) (Tcl_Interp *interp, Tcl_Obj *cmdNameObj, int flags); /* 542 */
2392 int (*tcl_SetEnsembleSubcommandList) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj *subcmdList); /* 543 */
2393 int (*tcl_SetEnsembleMappingDict) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj *mapDict); /* 544 */
2394 int (*tcl_SetEnsembleUnknownHandler) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj *unknownList); /* 545 */
2395 int (*tcl_SetEnsembleFlags) (Tcl_Interp *interp, Tcl_Command token, int flags); /* 546 */
2396 int (*tcl_GetEnsembleSubcommandList) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj **subcmdListPtr); /* 547 */
2397 int (*tcl_GetEnsembleMappingDict) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj **mapDictPtr); /* 548 */
2398 int (*tcl_GetEnsembleUnknownHandler) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj **unknownListPtr); /* 549 */
2399 int (*tcl_GetEnsembleFlags) (Tcl_Interp *interp, Tcl_Command token, int *flagsPtr); /* 550 */
2400 int (*tcl_GetEnsembleNamespace) (Tcl_Interp *interp, Tcl_Command token, Tcl_Namespace **namespacePtrPtr); /* 551 */
2401 void (*tcl_SetTimeProc) (Tcl_GetTimeProc *getProc, Tcl_ScaleTimeProc *scaleProc, ClientData clientData); /* 552 */
2402 void (*tcl_QueryTimeProc) (Tcl_GetTimeProc **getProc, Tcl_ScaleTimeProc **scaleProc, ClientData *clientData); /* 553 */
2403 Tcl_DriverThreadActionProc * (*tcl_ChannelThreadActionProc) (const Tcl_ChannelType *chanTypePtr); /* 554 */
2404 Tcl_Obj * (*tcl_NewBignumObj) (mp_int *value); /* 555 */
2405 Tcl_Obj * (*tcl_DbNewBignumObj) (mp_int *value, const char *file, int line); /* 556 */
2406 void (*tcl_SetBignumObj) (Tcl_Obj *obj, mp_int *value); /* 557 */
2407 int (*tcl_GetBignumFromObj) (Tcl_Interp *interp, Tcl_Obj *obj, mp_int *value); /* 558 */
2408 int (*tcl_TakeBignumFromObj) (Tcl_Interp *interp, Tcl_Obj *obj, mp_int *value); /* 559 */
2409 int (*tcl_TruncateChannel) (Tcl_Channel chan, Tcl_WideInt length); /* 560 */
2410 Tcl_DriverTruncateProc * (*tcl_ChannelTruncateProc) (const Tcl_ChannelType *chanTypePtr); /* 561 */
2411 void (*tcl_SetChannelErrorInterp) (Tcl_Interp *interp, Tcl_Obj *msg); /* 562 */
2412 void (*tcl_GetChannelErrorInterp) (Tcl_Interp *interp, Tcl_Obj **msg); /* 563 */
2413 void (*tcl_SetChannelError) (Tcl_Channel chan, Tcl_Obj *msg); /* 564 */
2414 void (*tcl_GetChannelError) (Tcl_Channel chan, Tcl_Obj **msg); /* 565 */
2415 int (*tcl_InitBignumFromDouble) (Tcl_Interp *interp, double initval, mp_int *toInit); /* 566 */
2416 Tcl_Obj * (*tcl_GetNamespaceUnknownHandler) (Tcl_Interp *interp, Tcl_Namespace *nsPtr); /* 567 */
2417 int (*tcl_SetNamespaceUnknownHandler) (Tcl_Interp *interp, Tcl_Namespace *nsPtr, Tcl_Obj *handlerPtr); /* 568 */
2418 int (*tcl_GetEncodingFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_Encoding *encodingPtr); /* 569 */
2419 Tcl_Obj * (*tcl_GetEncodingSearchPath) (void); /* 570 */
2420 int (*tcl_SetEncodingSearchPath) (Tcl_Obj *searchPath); /* 571 */
2421 const char * (*tcl_GetEncodingNameFromEnvironment) (Tcl_DString *bufPtr); /* 572 */
2422 int (*tcl_PkgRequireProc) (Tcl_Interp *interp, const char *name, int objc, Tcl_Obj *const objv[], void *clientDataPtr); /* 573 */
2423 void (*tcl_AppendObjToErrorInfo) (Tcl_Interp *interp, Tcl_Obj *objPtr); /* 574 */
2424 void (*tcl_AppendLimitedToObj) (Tcl_Obj *objPtr, const char *bytes, int length, int limit, const char *ellipsis); /* 575 */
2425 Tcl_Obj * (*tcl_Format) (Tcl_Interp *interp, const char *format, int objc, Tcl_Obj *const objv[]); /* 576 */
2426 int (*tcl_AppendFormatToObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, const char *format, int objc, Tcl_Obj *const objv[]); /* 577 */
2427 Tcl_Obj * (*tcl_ObjPrintf) (const char *format, ...) TCL_FORMAT_PRINTF(1, 2); /* 578 */
2428 void (*tcl_AppendPrintfToObj) (Tcl_Obj *objPtr, const char *format, ...) TCL_FORMAT_PRINTF(2, 3); /* 579 */
2429 int (*tcl_CancelEval) (Tcl_Interp *interp, Tcl_Obj *resultObjPtr, ClientData clientData, int flags); /* 580 */
2430 int (*tcl_Canceled) (Tcl_Interp *interp, int flags); /* 581 */
2431 int (*tcl_CreatePipe) (Tcl_Interp *interp, Tcl_Channel *rchan, Tcl_Channel *wchan, int flags); /* 582 */
2432 Tcl_Command (*tcl_NRCreateCommand) (Tcl_Interp *interp, const char *cmdName, Tcl_ObjCmdProc *proc, Tcl_ObjCmdProc *nreProc, ClientData clientData, Tcl_CmdDeleteProc *deleteProc); /* 583 */
2433 int (*tcl_NREvalObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int flags); /* 584 */
2434 int (*tcl_NREvalObjv) (Tcl_Interp *interp, int objc, Tcl_Obj *const objv[], int flags); /* 585 */
2435 int (*tcl_NRCmdSwap) (Tcl_Interp *interp, Tcl_Command cmd, int objc, Tcl_Obj *const objv[], int flags); /* 586 */
2436 void (*tcl_NRAddCallback) (Tcl_Interp *interp, Tcl_NRPostProc *postProcPtr, ClientData data0, ClientData data1, ClientData data2, ClientData data3); /* 587 */
2437 int (*tcl_NRCallObjProc) (Tcl_Interp *interp, Tcl_ObjCmdProc *objProc, ClientData clientData, int objc, Tcl_Obj *const objv[]); /* 588 */
2438 unsigned (*tcl_GetFSDeviceFromStat) (const Tcl_StatBuf *statPtr); /* 589 */
2439 unsigned (*tcl_GetFSInodeFromStat) (const Tcl_StatBuf *statPtr); /* 590 */
2440 unsigned (*tcl_GetModeFromStat) (const Tcl_StatBuf *statPtr); /* 591 */
2441 int (*tcl_GetLinkCountFromStat) (const Tcl_StatBuf *statPtr); /* 592 */
2442 int (*tcl_GetUserIdFromStat) (const Tcl_StatBuf *statPtr); /* 593 */
2443 int (*tcl_GetGroupIdFromStat) (const Tcl_StatBuf *statPtr); /* 594 */
2444 int (*tcl_GetDeviceTypeFromStat) (const Tcl_StatBuf *statPtr); /* 595 */
2445 Tcl_WideInt (*tcl_GetAccessTimeFromStat) (const Tcl_StatBuf *statPtr); /* 596 */
2446 Tcl_WideInt (*tcl_GetModificationTimeFromStat) (const Tcl_StatBuf *statPtr); /* 597 */
2447 Tcl_WideInt (*tcl_GetChangeTimeFromStat) (const Tcl_StatBuf *statPtr); /* 598 */
2448 Tcl_WideUInt (*tcl_GetSizeFromStat) (const Tcl_StatBuf *statPtr); /* 599 */
2449 Tcl_WideUInt (*tcl_GetBlocksFromStat) (const Tcl_StatBuf *statPtr); /* 600 */
2450 unsigned (*tcl_GetBlockSizeFromStat) (const Tcl_StatBuf *statPtr); /* 601 */
2451 int (*tcl_SetEnsembleParameterList) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj *paramList); /* 602 */
2452 int (*tcl_GetEnsembleParameterList) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj **paramListPtr); /* 603 */
2453 int (*tcl_ParseArgsObjv) (Tcl_Interp *interp, const Tcl_ArgvInfo *argTable, int *objcPtr, Tcl_Obj *const *objv, Tcl_Obj ***remObjv); /* 604 */
2454 int (*tcl_GetErrorLine) (Tcl_Interp *interp); /* 605 */
2455 void (*tcl_SetErrorLine) (Tcl_Interp *interp, int lineNum); /* 606 */
2456 void (*tcl_TransferResult) (Tcl_Interp *sourceInterp, int result, Tcl_Interp *targetInterp); /* 607 */
2457 int (*tcl_InterpActive) (Tcl_Interp *interp); /* 608 */
2458 void (*tcl_BackgroundException) (Tcl_Interp *interp, int code); /* 609 */
2459 int (*tcl_ZlibDeflate) (Tcl_Interp *interp, int format, Tcl_Obj *data, int level, Tcl_Obj *gzipHeaderDictObj); /* 610 */
2460 int (*tcl_ZlibInflate) (Tcl_Interp *interp, int format, Tcl_Obj *data, int buffersize, Tcl_Obj *gzipHeaderDictObj); /* 611 */
2461 unsigned int (*tcl_ZlibCRC32) (unsigned int crc, const unsigned char *buf, int len); /* 612 */
2462 unsigned int (*tcl_ZlibAdler32) (unsigned int adler, const unsigned char *buf, int len); /* 613 */
2463 int (*tcl_ZlibStreamInit) (Tcl_Interp *interp, int mode, int format, int level, Tcl_Obj *dictObj, Tcl_ZlibStream *zshandle); /* 614 */
2464 Tcl_Obj * (*tcl_ZlibStreamGetCommandName) (Tcl_ZlibStream zshandle); /* 615 */
2465 int (*tcl_ZlibStreamEof) (Tcl_ZlibStream zshandle); /* 616 */
2466 int (*tcl_ZlibStreamChecksum) (Tcl_ZlibStream zshandle); /* 617 */
2467 int (*tcl_ZlibStreamPut) (Tcl_ZlibStream zshandle, Tcl_Obj *data, int flush); /* 618 */
2468 int (*tcl_ZlibStreamGet) (Tcl_ZlibStream zshandle, Tcl_Obj *data, int count); /* 619 */
2469 int (*tcl_ZlibStreamClose) (Tcl_ZlibStream zshandle); /* 620 */
2470 int (*tcl_ZlibStreamReset) (Tcl_ZlibStream zshandle); /* 621 */
2471 void (*tcl_SetStartupScript) (Tcl_Obj *path, const char *encoding); /* 622 */
2472 Tcl_Obj * (*tcl_GetStartupScript) (const char **encodingPtr); /* 623 */
2473 int (*tcl_CloseEx) (Tcl_Interp *interp, Tcl_Channel chan, int flags); /* 624 */
2474 int (*tcl_NRExprObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_Obj *resultPtr); /* 625 */
2475 int (*tcl_NRSubstObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int flags); /* 626 */
2476 int (*tcl_LoadFile) (Tcl_Interp *interp, Tcl_Obj *pathPtr, const char *const symv[], int flags, void *procPtrs, Tcl_LoadHandle *handlePtr); /* 627 */
2477 void * (*tcl_FindSymbol) (Tcl_Interp *interp, Tcl_LoadHandle handle, const char *symbol); /* 628 */
2478 int (*tcl_FSUnloadFile) (Tcl_Interp *interp, Tcl_LoadHandle handlePtr); /* 629 */
2479 void (*tcl_ZlibStreamSetCompressionDictionary) (Tcl_ZlibStream zhandle, Tcl_Obj *compressionDictionaryObj); /* 630 */
2480 } TclStubs;
2481
2482 #ifdef __cplusplus
2483 extern "C" {
2484 #endif
2485 extern const TclStubs *tclStubsPtr;
2486 #ifdef __cplusplus
2487 }
2488 #endif
2489
2490 #if defined(USE_TCL_STUBS)
2491
2492 /*
2493 * Inline function declarations:
2494 */
2495
2496 #define Tcl_PkgProvideEx \
2497 (tclStubsPtr->tcl_PkgProvideEx) /* 0 */
2498 #define Tcl_PkgRequireEx \
2499 (tclStubsPtr->tcl_PkgRequireEx) /* 1 */
2500 #define Tcl_Panic \
2501 (tclStubsPtr->tcl_Panic) /* 2 */
2502 #define Tcl_Alloc \
2503 (tclStubsPtr->tcl_Alloc) /* 3 */
2504 #define Tcl_Free \
2505 (tclStubsPtr->tcl_Free) /* 4 */
2506 #define Tcl_Realloc \
2507 (tclStubsPtr->tcl_Realloc) /* 5 */
2508 #define Tcl_DbCkalloc \
2509 (tclStubsPtr->tcl_DbCkalloc) /* 6 */
2510 #define Tcl_DbCkfree \
2511 (tclStubsPtr->tcl_DbCkfree) /* 7 */
2512 #define Tcl_DbCkrealloc \
2513 (tclStubsPtr->tcl_DbCkrealloc) /* 8 */
2514 #if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
2515 #define Tcl_CreateFileHandler \
2516 (tclStubsPtr->tcl_CreateFileHandler) /* 9 */
2517 #endif /* UNIX */
2518 #ifdef MAC_OSX_TCL /* MACOSX */
2519 #define Tcl_CreateFileHandler \
2520 (tclStubsPtr->tcl_CreateFileHandler) /* 9 */
2521 #endif /* MACOSX */
2522 #if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
2523 #define Tcl_DeleteFileHandler \
2524 (tclStubsPtr->tcl_DeleteFileHandler) /* 10 */
2525 #endif /* UNIX */
2526 #ifdef MAC_OSX_TCL /* MACOSX */
2527 #define Tcl_DeleteFileHandler \
2528 (tclStubsPtr->tcl_DeleteFileHandler) /* 10 */
2529 #endif /* MACOSX */
2530 #define Tcl_SetTimer \
2531 (tclStubsPtr->tcl_SetTimer) /* 11 */
2532 #define Tcl_Sleep \
2533 (tclStubsPtr->tcl_Sleep) /* 12 */
2534 #define Tcl_WaitForEvent \
2535 (tclStubsPtr->tcl_WaitForEvent) /* 13 */
2536 #define Tcl_AppendAllObjTypes \
2537 (tclStubsPtr->tcl_AppendAllObjTypes) /* 14 */
2538 #define Tcl_AppendStringsToObj \
2539 (tclStubsPtr->tcl_AppendStringsToObj) /* 15 */
2540 #define Tcl_AppendToObj \
2541 (tclStubsPtr->tcl_AppendToObj) /* 16 */
2542 #define Tcl_ConcatObj \
2543 (tclStubsPtr->tcl_ConcatObj) /* 17 */
2544 #define Tcl_ConvertToType \
2545 (tclStubsPtr->tcl_ConvertToType) /* 18 */
2546 #define Tcl_DbDecrRefCount \
2547 (tclStubsPtr->tcl_DbDecrRefCount) /* 19 */
2548 #define Tcl_DbIncrRefCount \
2549 (tclStubsPtr->tcl_DbIncrRefCount) /* 20 */
2550 #define Tcl_DbIsShared \
2551 (tclStubsPtr->tcl_DbIsShared) /* 21 */
2552 #define Tcl_DbNewBooleanObj \
2553 (tclStubsPtr->tcl_DbNewBooleanObj) /* 22 */
2554 #define Tcl_DbNewByteArrayObj \
2555 (tclStubsPtr->tcl_DbNewByteArrayObj) /* 23 */
2556 #define Tcl_DbNewDoubleObj \
2557 (tclStubsPtr->tcl_DbNewDoubleObj) /* 24 */
2558 #define Tcl_DbNewListObj \
2559 (tclStubsPtr->tcl_DbNewListObj) /* 25 */
2560 #define Tcl_DbNewLongObj \
2561 (tclStubsPtr->tcl_DbNewLongObj) /* 26 */
2562 #define Tcl_DbNewObj \
2563 (tclStubsPtr->tcl_DbNewObj) /* 27 */
2564 #define Tcl_DbNewStringObj \
2565 (tclStubsPtr->tcl_DbNewStringObj) /* 28 */
2566 #define Tcl_DuplicateObj \
2567 (tclStubsPtr->tcl_DuplicateObj) /* 29 */
2568 #define TclFreeObj \
2569 (tclStubsPtr->tclFreeObj) /* 30 */
2570 #define Tcl_GetBoolean \
2571 (tclStubsPtr->tcl_GetBoolean) /* 31 */
2572 #define Tcl_GetBooleanFromObj \
2573 (tclStubsPtr->tcl_GetBooleanFromObj) /* 32 */
2574 #define Tcl_GetByteArrayFromObj \
2575 (tclStubsPtr->tcl_GetByteArrayFromObj) /* 33 */
2576 #define Tcl_GetDouble \
2577 (tclStubsPtr->tcl_GetDouble) /* 34 */
2578 #define Tcl_GetDoubleFromObj \
2579 (tclStubsPtr->tcl_GetDoubleFromObj) /* 35 */
2580 #define Tcl_GetIndexFromObj \
2581 (tclStubsPtr->tcl_GetIndexFromObj) /* 36 */
2582 #define Tcl_GetInt \
2583 (tclStubsPtr->tcl_GetInt) /* 37 */
2584 #define Tcl_GetIntFromObj \
2585 (tclStubsPtr->tcl_GetIntFromObj) /* 38 */
2586 #define Tcl_GetLongFromObj \
2587 (tclStubsPtr->tcl_GetLongFromObj) /* 39 */
2588 #define Tcl_GetObjType \
2589 (tclStubsPtr->tcl_GetObjType) /* 40 */
2590 #define Tcl_GetStringFromObj \
2591 (tclStubsPtr->tcl_GetStringFromObj) /* 41 */
2592 #define Tcl_InvalidateStringRep \
2593 (tclStubsPtr->tcl_InvalidateStringRep) /* 42 */
2594 #define Tcl_ListObjAppendList \
2595 (tclStubsPtr->tcl_ListObjAppendList) /* 43 */
2596 #define Tcl_ListObjAppendElement \
2597 (tclStubsPtr->tcl_ListObjAppendElement) /* 44 */
2598 #define Tcl_ListObjGetElements \
2599 (tclStubsPtr->tcl_ListObjGetElements) /* 45 */
2600 #define Tcl_ListObjIndex \
2601 (tclStubsPtr->tcl_ListObjIndex) /* 46 */
2602 #define Tcl_ListObjLength \
2603 (tclStubsPtr->tcl_ListObjLength) /* 47 */
2604 #define Tcl_ListObjReplace \
2605 (tclStubsPtr->tcl_ListObjReplace) /* 48 */
2606 #define Tcl_NewBooleanObj \
2607 (tclStubsPtr->tcl_NewBooleanObj) /* 49 */
2608 #define Tcl_NewByteArrayObj \
2609 (tclStubsPtr->tcl_NewByteArrayObj) /* 50 */
2610 #define Tcl_NewDoubleObj \
2611 (tclStubsPtr->tcl_NewDoubleObj) /* 51 */
2612 #define Tcl_NewIntObj \
2613 (tclStubsPtr->tcl_NewIntObj) /* 52 */
2614 #define Tcl_NewListObj \
2615 (tclStubsPtr->tcl_NewListObj) /* 53 */
2616 #define Tcl_NewLongObj \
2617 (tclStubsPtr->tcl_NewLongObj) /* 54 */
2618 #define Tcl_NewObj \
2619 (tclStubsPtr->tcl_NewObj) /* 55 */
2620 #define Tcl_NewStringObj \
2621 (tclStubsPtr->tcl_NewStringObj) /* 56 */
2622 #define Tcl_SetBooleanObj \
2623 (tclStubsPtr->tcl_SetBooleanObj) /* 57 */
2624 #define Tcl_SetByteArrayLength \
2625 (tclStubsPtr->tcl_SetByteArrayLength) /* 58 */
2626 #define Tcl_SetByteArrayObj \
2627 (tclStubsPtr->tcl_SetByteArrayObj) /* 59 */
2628 #define Tcl_SetDoubleObj \
2629 (tclStubsPtr->tcl_SetDoubleObj) /* 60 */
2630 #define Tcl_SetIntObj \
2631 (tclStubsPtr->tcl_SetIntObj) /* 61 */
2632 #define Tcl_SetListObj \
2633 (tclStubsPtr->tcl_SetListObj) /* 62 */
2634 #define Tcl_SetLongObj \
2635 (tclStubsPtr->tcl_SetLongObj) /* 63 */
2636 #define Tcl_SetObjLength \
2637 (tclStubsPtr->tcl_SetObjLength) /* 64 */
2638 #define Tcl_SetStringObj \
2639 (tclStubsPtr->tcl_SetStringObj) /* 65 */
2640 #define Tcl_AddErrorInfo \
2641 (tclStubsPtr->tcl_AddErrorInfo) /* 66 */
2642 #define Tcl_AddObjErrorInfo \
2643 (tclStubsPtr->tcl_AddObjErrorInfo) /* 67 */
2644 #define Tcl_AllowExceptions \
2645 (tclStubsPtr->tcl_AllowExceptions) /* 68 */
2646 #define Tcl_AppendElement \
2647 (tclStubsPtr->tcl_AppendElement) /* 69 */
2648 #define Tcl_AppendResult \
2649 (tclStubsPtr->tcl_AppendResult) /* 70 */
2650 #define Tcl_AsyncCreate \
2651 (tclStubsPtr->tcl_AsyncCreate) /* 71 */
2652 #define Tcl_AsyncDelete \
2653 (tclStubsPtr->tcl_AsyncDelete) /* 72 */
2654 #define Tcl_AsyncInvoke \
2655 (tclStubsPtr->tcl_AsyncInvoke) /* 73 */
2656 #define Tcl_AsyncMark \
2657 (tclStubsPtr->tcl_AsyncMark) /* 74 */
2658 #define Tcl_AsyncReady \
2659 (tclStubsPtr->tcl_AsyncReady) /* 75 */
2660 #define Tcl_BackgroundError \
2661 (tclStubsPtr->tcl_BackgroundError) /* 76 */
2662 #define Tcl_Backslash \
2663 (tclStubsPtr->tcl_Backslash) /* 77 */
2664 #define Tcl_BadChannelOption \
2665 (tclStubsPtr->tcl_BadChannelOption) /* 78 */
2666 #define Tcl_CallWhenDeleted \
2667 (tclStubsPtr->tcl_CallWhenDeleted) /* 79 */
2668 #define Tcl_CancelIdleCall \
2669 (tclStubsPtr->tcl_CancelIdleCall) /* 80 */
2670 #define Tcl_Close \
2671 (tclStubsPtr->tcl_Close) /* 81 */
2672 #define Tcl_CommandComplete \
2673 (tclStubsPtr->tcl_CommandComplete) /* 82 */
2674 #define Tcl_Concat \
2675 (tclStubsPtr->tcl_Concat) /* 83 */
2676 #define Tcl_ConvertElement \
2677 (tclStubsPtr->tcl_ConvertElement) /* 84 */
2678 #define Tcl_ConvertCountedElement \
2679 (tclStubsPtr->tcl_ConvertCountedElement) /* 85 */
2680 #define Tcl_CreateAlias \
2681 (tclStubsPtr->tcl_CreateAlias) /* 86 */
2682 #define Tcl_CreateAliasObj \
2683 (tclStubsPtr->tcl_CreateAliasObj) /* 87 */
2684 #define Tcl_CreateChannel \
2685 (tclStubsPtr->tcl_CreateChannel) /* 88 */
2686 #define Tcl_CreateChannelHandler \
2687 (tclStubsPtr->tcl_CreateChannelHandler) /* 89 */
2688 #define Tcl_CreateCloseHandler \
2689 (tclStubsPtr->tcl_CreateCloseHandler) /* 90 */
2690 #define Tcl_CreateCommand \
2691 (tclStubsPtr->tcl_CreateCommand) /* 91 */
2692 #define Tcl_CreateEventSource \
2693 (tclStubsPtr->tcl_CreateEventSource) /* 92 */
2694 #define Tcl_CreateExitHandler \
2695 (tclStubsPtr->tcl_CreateExitHandler) /* 93 */
2696 #define Tcl_CreateInterp \
2697 (tclStubsPtr->tcl_CreateInterp) /* 94 */
2698 #define Tcl_CreateMathFunc \
2699 (tclStubsPtr->tcl_CreateMathFunc) /* 95 */
2700 #define Tcl_CreateObjCommand \
2701 (tclStubsPtr->tcl_CreateObjCommand) /* 96 */
2702 #define Tcl_CreateSlave \
2703 (tclStubsPtr->tcl_CreateSlave) /* 97 */
2704 #define Tcl_CreateTimerHandler \
2705 (tclStubsPtr->tcl_CreateTimerHandler) /* 98 */
2706 #define Tcl_CreateTrace \
2707 (tclStubsPtr->tcl_CreateTrace) /* 99 */
2708 #define Tcl_DeleteAssocData \
2709 (tclStubsPtr->tcl_DeleteAssocData) /* 100 */
2710 #define Tcl_DeleteChannelHandler \
2711 (tclStubsPtr->tcl_DeleteChannelHandler) /* 101 */
2712 #define Tcl_DeleteCloseHandler \
2713 (tclStubsPtr->tcl_DeleteCloseHandler) /* 102 */
2714 #define Tcl_DeleteCommand \
2715 (tclStubsPtr->tcl_DeleteCommand) /* 103 */
2716 #define Tcl_DeleteCommandFromToken \
2717 (tclStubsPtr->tcl_DeleteCommandFromToken) /* 104 */
2718 #define Tcl_DeleteEvents \
2719 (tclStubsPtr->tcl_DeleteEvents) /* 105 */
2720 #define Tcl_DeleteEventSource \
2721 (tclStubsPtr->tcl_DeleteEventSource) /* 106 */
2722 #define Tcl_DeleteExitHandler \
2723 (tclStubsPtr->tcl_DeleteExitHandler) /* 107 */
2724 #define Tcl_DeleteHashEntry \
2725 (tclStubsPtr->tcl_DeleteHashEntry) /* 108 */
2726 #define Tcl_DeleteHashTable \
2727 (tclStubsPtr->tcl_DeleteHashTable) /* 109 */
2728 #define Tcl_DeleteInterp \
2729 (tclStubsPtr->tcl_DeleteInterp) /* 110 */
2730 #define Tcl_DetachPids \
2731 (tclStubsPtr->tcl_DetachPids) /* 111 */
2732 #define Tcl_DeleteTimerHandler \
2733 (tclStubsPtr->tcl_DeleteTimerHandler) /* 112 */
2734 #define Tcl_DeleteTrace \
2735 (tclStubsPtr->tcl_DeleteTrace) /* 113 */
2736 #define Tcl_DontCallWhenDeleted \
2737 (tclStubsPtr->tcl_DontCallWhenDeleted) /* 114 */
2738 #define Tcl_DoOneEvent \
2739 (tclStubsPtr->tcl_DoOneEvent) /* 115 */
2740 #define Tcl_DoWhenIdle \
2741 (tclStubsPtr->tcl_DoWhenIdle) /* 116 */
2742 #define Tcl_DStringAppend \
2743 (tclStubsPtr->tcl_DStringAppend) /* 117 */
2744 #define Tcl_DStringAppendElement \
2745 (tclStubsPtr->tcl_DStringAppendElement) /* 118 */
2746 #define Tcl_DStringEndSublist \
2747 (tclStubsPtr->tcl_DStringEndSublist) /* 119 */
2748 #define Tcl_DStringFree \
2749 (tclStubsPtr->tcl_DStringFree) /* 120 */
2750 #define Tcl_DStringGetResult \
2751 (tclStubsPtr->tcl_DStringGetResult) /* 121 */
2752 #define Tcl_DStringInit \
2753 (tclStubsPtr->tcl_DStringInit) /* 122 */
2754 #define Tcl_DStringResult \
2755 (tclStubsPtr->tcl_DStringResult) /* 123 */
2756 #define Tcl_DStringSetLength \
2757 (tclStubsPtr->tcl_DStringSetLength) /* 124 */
2758 #define Tcl_DStringStartSublist \
2759 (tclStubsPtr->tcl_DStringStartSublist) /* 125 */
2760 #define Tcl_Eof \
2761 (tclStubsPtr->tcl_Eof) /* 126 */
2762 #define Tcl_ErrnoId \
2763 (tclStubsPtr->tcl_ErrnoId) /* 127 */
2764 #define Tcl_ErrnoMsg \
2765 (tclStubsPtr->tcl_ErrnoMsg) /* 128 */
2766 #define Tcl_Eval \
2767 (tclStubsPtr->tcl_Eval) /* 129 */
2768 #define Tcl_EvalFile \
2769 (tclStubsPtr->tcl_EvalFile) /* 130 */
2770 #define Tcl_EvalObj \
2771 (tclStubsPtr->tcl_EvalObj) /* 131 */
2772 #define Tcl_EventuallyFree \
2773 (tclStubsPtr->tcl_EventuallyFree) /* 132 */
2774 #define Tcl_Exit \
2775 (tclStubsPtr->tcl_Exit) /* 133 */
2776 #define Tcl_ExposeCommand \
2777 (tclStubsPtr->tcl_ExposeCommand) /* 134 */
2778 #define Tcl_ExprBoolean \
2779 (tclStubsPtr->tcl_ExprBoolean) /* 135 */
2780 #define Tcl_ExprBooleanObj \
2781 (tclStubsPtr->tcl_ExprBooleanObj) /* 136 */
2782 #define Tcl_ExprDouble \
2783 (tclStubsPtr->tcl_ExprDouble) /* 137 */
2784 #define Tcl_ExprDoubleObj \
2785 (tclStubsPtr->tcl_ExprDoubleObj) /* 138 */
2786 #define Tcl_ExprLong \
2787 (tclStubsPtr->tcl_ExprLong) /* 139 */
2788 #define Tcl_ExprLongObj \
2789 (tclStubsPtr->tcl_ExprLongObj) /* 140 */
2790 #define Tcl_ExprObj \
2791 (tclStubsPtr->tcl_ExprObj) /* 141 */
2792 #define Tcl_ExprString \
2793 (tclStubsPtr->tcl_ExprString) /* 142 */
2794 #define Tcl_Finalize \
2795 (tclStubsPtr->tcl_Finalize) /* 143 */
2796 #define Tcl_FindExecutable \
2797 (tclStubsPtr->tcl_FindExecutable) /* 144 */
2798 #define Tcl_FirstHashEntry \
2799 (tclStubsPtr->tcl_FirstHashEntry) /* 145 */
2800 #define Tcl_Flush \
2801 (tclStubsPtr->tcl_Flush) /* 146 */
2802 #define Tcl_FreeResult \
2803 (tclStubsPtr->tcl_FreeResult) /* 147 */
2804 #define Tcl_GetAlias \
2805 (tclStubsPtr->tcl_GetAlias) /* 148 */
2806 #define Tcl_GetAliasObj \
2807 (tclStubsPtr->tcl_GetAliasObj) /* 149 */
2808 #define Tcl_GetAssocData \
2809 (tclStubsPtr->tcl_GetAssocData) /* 150 */
2810 #define Tcl_GetChannel \
2811 (tclStubsPtr->tcl_GetChannel) /* 151 */
2812 #define Tcl_GetChannelBufferSize \
2813 (tclStubsPtr->tcl_GetChannelBufferSize) /* 152 */
2814 #define Tcl_GetChannelHandle \
2815 (tclStubsPtr->tcl_GetChannelHandle) /* 153 */
2816 #define Tcl_GetChannelInstanceData \
2817 (tclStubsPtr->tcl_GetChannelInstanceData) /* 154 */
2818 #define Tcl_GetChannelMode \
2819 (tclStubsPtr->tcl_GetChannelMode) /* 155 */
2820 #define Tcl_GetChannelName \
2821 (tclStubsPtr->tcl_GetChannelName) /* 156 */
2822 #define Tcl_GetChannelOption \
2823 (tclStubsPtr->tcl_GetChannelOption) /* 157 */
2824 #define Tcl_GetChannelType \
2825 (tclStubsPtr->tcl_GetChannelType) /* 158 */
2826 #define Tcl_GetCommandInfo \
2827 (tclStubsPtr->tcl_GetCommandInfo) /* 159 */
2828 #define Tcl_GetCommandName \
2829 (tclStubsPtr->tcl_GetCommandName) /* 160 */
2830 #define Tcl_GetErrno \
2831 (tclStubsPtr->tcl_GetErrno) /* 161 */
2832 #define Tcl_GetHostName \
2833 (tclStubsPtr->tcl_GetHostName) /* 162 */
2834 #define Tcl_GetInterpPath \
2835 (tclStubsPtr->tcl_GetInterpPath) /* 163 */
2836 #define Tcl_GetMaster \
2837 (tclStubsPtr->tcl_GetMaster) /* 164 */
2838 #define Tcl_GetNameOfExecutable \
2839 (tclStubsPtr->tcl_GetNameOfExecutable) /* 165 */
2840 #define Tcl_GetObjResult \
2841 (tclStubsPtr->tcl_GetObjResult) /* 166 */
2842 #if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
2843 #define Tcl_GetOpenFile \
2844 (tclStubsPtr->tcl_GetOpenFile) /* 167 */
2845 #endif /* UNIX */
2846 #ifdef MAC_OSX_TCL /* MACOSX */
2847 #define Tcl_GetOpenFile \
2848 (tclStubsPtr->tcl_GetOpenFile) /* 167 */
2849 #endif /* MACOSX */
2850 #define Tcl_GetPathType \
2851 (tclStubsPtr->tcl_GetPathType) /* 168 */
2852 #define Tcl_Gets \
2853 (tclStubsPtr->tcl_Gets) /* 169 */
2854 #define Tcl_GetsObj \
2855 (tclStubsPtr->tcl_GetsObj) /* 170 */
2856 #define Tcl_GetServiceMode \
2857 (tclStubsPtr->tcl_GetServiceMode) /* 171 */
2858 #define Tcl_GetSlave \
2859 (tclStubsPtr->tcl_GetSlave) /* 172 */
2860 #define Tcl_GetStdChannel \
2861 (tclStubsPtr->tcl_GetStdChannel) /* 173 */
2862 #define Tcl_GetStringResult \
2863 (tclStubsPtr->tcl_GetStringResult) /* 174 */
2864 #define Tcl_GetVar \
2865 (tclStubsPtr->tcl_GetVar) /* 175 */
2866 #define Tcl_GetVar2 \
2867 (tclStubsPtr->tcl_GetVar2) /* 176 */
2868 #define Tcl_GlobalEval \
2869 (tclStubsPtr->tcl_GlobalEval) /* 177 */
2870 #define Tcl_GlobalEvalObj \
2871 (tclStubsPtr->tcl_GlobalEvalObj) /* 178 */
2872 #define Tcl_HideCommand \
2873 (tclStubsPtr->tcl_HideCommand) /* 179 */
2874 #define Tcl_Init \
2875 (tclStubsPtr->tcl_Init) /* 180 */
2876 #define Tcl_InitHashTable \
2877 (tclStubsPtr->tcl_InitHashTable) /* 181 */
2878 #define Tcl_InputBlocked \
2879 (tclStubsPtr->tcl_InputBlocked) /* 182 */
2880 #define Tcl_InputBuffered \
2881 (tclStubsPtr->tcl_InputBuffered) /* 183 */
2882 #define Tcl_InterpDeleted \
2883 (tclStubsPtr->tcl_InterpDeleted) /* 184 */
2884 #define Tcl_IsSafe \
2885 (tclStubsPtr->tcl_IsSafe) /* 185 */
2886 #define Tcl_JoinPath \
2887 (tclStubsPtr->tcl_JoinPath) /* 186 */
2888 #define Tcl_LinkVar \
2889 (tclStubsPtr->tcl_LinkVar) /* 187 */
2890 /* Slot 188 is reserved */
2891 #define Tcl_MakeFileChannel \
2892 (tclStubsPtr->tcl_MakeFileChannel) /* 189 */
2893 #define Tcl_MakeSafe \
2894 (tclStubsPtr->tcl_MakeSafe) /* 190 */
2895 #define Tcl_MakeTcpClientChannel \
2896 (tclStubsPtr->tcl_MakeTcpClientChannel) /* 191 */
2897 #define Tcl_Merge \
2898 (tclStubsPtr->tcl_Merge) /* 192 */
2899 #define Tcl_NextHashEntry \
2900 (tclStubsPtr->tcl_NextHashEntry) /* 193 */
2901 #define Tcl_NotifyChannel \
2902 (tclStubsPtr->tcl_NotifyChannel) /* 194 */
2903 #define Tcl_ObjGetVar2 \
2904 (tclStubsPtr->tcl_ObjGetVar2) /* 195 */
2905 #define Tcl_ObjSetVar2 \
2906 (tclStubsPtr->tcl_ObjSetVar2) /* 196 */
2907 #define Tcl_OpenCommandChannel \
2908 (tclStubsPtr->tcl_OpenCommandChannel) /* 197 */
2909 #define Tcl_OpenFileChannel \
2910 (tclStubsPtr->tcl_OpenFileChannel) /* 198 */
2911 #define Tcl_OpenTcpClient \
2912 (tclStubsPtr->tcl_OpenTcpClient) /* 199 */
2913 #define Tcl_OpenTcpServer \
2914 (tclStubsPtr->tcl_OpenTcpServer) /* 200 */
2915 #define Tcl_Preserve \
2916 (tclStubsPtr->tcl_Preserve) /* 201 */
2917 #define Tcl_PrintDouble \
2918 (tclStubsPtr->tcl_PrintDouble) /* 202 */
2919 #define Tcl_PutEnv \
2920 (tclStubsPtr->tcl_PutEnv) /* 203 */
2921 #define Tcl_PosixError \
2922 (tclStubsPtr->tcl_PosixError) /* 204 */
2923 #define Tcl_QueueEvent \
2924 (tclStubsPtr->tcl_QueueEvent) /* 205 */
2925 #define Tcl_Read \
2926 (tclStubsPtr->tcl_Read) /* 206 */
2927 #define Tcl_ReapDetachedProcs \
2928 (tclStubsPtr->tcl_ReapDetachedProcs) /* 207 */
2929 #define Tcl_RecordAndEval \
2930 (tclStubsPtr->tcl_RecordAndEval) /* 208 */
2931 #define Tcl_RecordAndEvalObj \
2932 (tclStubsPtr->tcl_RecordAndEvalObj) /* 209 */
2933 #define Tcl_RegisterChannel \
2934 (tclStubsPtr->tcl_RegisterChannel) /* 210 */
2935 #define Tcl_RegisterObjType \
2936 (tclStubsPtr->tcl_RegisterObjType) /* 211 */
2937 #define Tcl_RegExpCompile \
2938 (tclStubsPtr->tcl_RegExpCompile) /* 212 */
2939 #define Tcl_RegExpExec \
2940 (tclStubsPtr->tcl_RegExpExec) /* 213 */
2941 #define Tcl_RegExpMatch \
2942 (tclStubsPtr->tcl_RegExpMatch) /* 214 */
2943 #define Tcl_RegExpRange \
2944 (tclStubsPtr->tcl_RegExpRange) /* 215 */
2945 #define Tcl_Release \
2946 (tclStubsPtr->tcl_Release) /* 216 */
2947 #define Tcl_ResetResult \
2948 (tclStubsPtr->tcl_ResetResult) /* 217 */
2949 #define Tcl_ScanElement \
2950 (tclStubsPtr->tcl_ScanElement) /* 218 */
2951 #define Tcl_ScanCountedElement \
2952 (tclStubsPtr->tcl_ScanCountedElement) /* 219 */
2953 #define Tcl_SeekOld \
2954 (tclStubsPtr->tcl_SeekOld) /* 220 */
2955 #define Tcl_ServiceAll \
2956 (tclStubsPtr->tcl_ServiceAll) /* 221 */
2957 #define Tcl_ServiceEvent \
2958 (tclStubsPtr->tcl_ServiceEvent) /* 222 */
2959 #define Tcl_SetAssocData \
2960 (tclStubsPtr->tcl_SetAssocData) /* 223 */
2961 #define Tcl_SetChannelBufferSize \
2962 (tclStubsPtr->tcl_SetChannelBufferSize) /* 224 */
2963 #define Tcl_SetChannelOption \
2964 (tclStubsPtr->tcl_SetChannelOption) /* 225 */
2965 #define Tcl_SetCommandInfo \
2966 (tclStubsPtr->tcl_SetCommandInfo) /* 226 */
2967 #define Tcl_SetErrno \
2968 (tclStubsPtr->tcl_SetErrno) /* 227 */
2969 #define Tcl_SetErrorCode \
2970 (tclStubsPtr->tcl_SetErrorCode) /* 228 */
2971 #define Tcl_SetMaxBlockTime \
2972 (tclStubsPtr->tcl_SetMaxBlockTime) /* 229 */
2973 #define Tcl_SetPanicProc \
2974 (tclStubsPtr->tcl_SetPanicProc) /* 230 */
2975 #define Tcl_SetRecursionLimit \
2976 (tclStubsPtr->tcl_SetRecursionLimit) /* 231 */
2977 #define Tcl_SetResult \
2978 (tclStubsPtr->tcl_SetResult) /* 232 */
2979 #define Tcl_SetServiceMode \
2980 (tclStubsPtr->tcl_SetServiceMode) /* 233 */
2981 #define Tcl_SetObjErrorCode \
2982 (tclStubsPtr->tcl_SetObjErrorCode) /* 234 */
2983 #define Tcl_SetObjResult \
2984 (tclStubsPtr->tcl_SetObjResult) /* 235 */
2985 #define Tcl_SetStdChannel \
2986 (tclStubsPtr->tcl_SetStdChannel) /* 236 */
2987 #define Tcl_SetVar \
2988 (tclStubsPtr->tcl_SetVar) /* 237 */
2989 #define Tcl_SetVar2 \
2990 (tclStubsPtr->tcl_SetVar2) /* 238 */
2991 #define Tcl_SignalId \
2992 (tclStubsPtr->tcl_SignalId) /* 239 */
2993 #define Tcl_SignalMsg \
2994 (tclStubsPtr->tcl_SignalMsg) /* 240 */
2995 #define Tcl_SourceRCFile \
2996 (tclStubsPtr->tcl_SourceRCFile) /* 241 */
2997 #define Tcl_SplitList \
2998 (tclStubsPtr->tcl_SplitList) /* 242 */
2999 #define Tcl_SplitPath \
3000 (tclStubsPtr->tcl_SplitPath) /* 243 */
3001 #define Tcl_StaticPackage \
3002 (tclStubsPtr->tcl_StaticPackage) /* 244 */
3003 #define Tcl_StringMatch \
3004 (tclStubsPtr->tcl_StringMatch) /* 245 */
3005 #define Tcl_TellOld \
3006 (tclStubsPtr->tcl_TellOld) /* 246 */
3007 #define Tcl_TraceVar \
3008 (tclStubsPtr->tcl_TraceVar) /* 247 */
3009 #define Tcl_TraceVar2 \
3010 (tclStubsPtr->tcl_TraceVar2) /* 248 */
3011 #define Tcl_TranslateFileName \
3012 (tclStubsPtr->tcl_TranslateFileName) /* 249 */
3013 #define Tcl_Ungets \
3014 (tclStubsPtr->tcl_Ungets) /* 250 */
3015 #define Tcl_UnlinkVar \
3016 (tclStubsPtr->tcl_UnlinkVar) /* 251 */
3017 #define Tcl_UnregisterChannel \
3018 (tclStubsPtr->tcl_UnregisterChannel) /* 252 */
3019 #define Tcl_UnsetVar \
3020 (tclStubsPtr->tcl_UnsetVar) /* 253 */
3021 #define Tcl_UnsetVar2 \
3022 (tclStubsPtr->tcl_UnsetVar2) /* 254 */
3023 #define Tcl_UntraceVar \
3024 (tclStubsPtr->tcl_UntraceVar) /* 255 */
3025 #define Tcl_UntraceVar2 \
3026 (tclStubsPtr->tcl_UntraceVar2) /* 256 */
3027 #define Tcl_UpdateLinkedVar \
3028 (tclStubsPtr->tcl_UpdateLinkedVar) /* 257 */
3029 #define Tcl_UpVar \
3030 (tclStubsPtr->tcl_UpVar) /* 258 */
3031 #define Tcl_UpVar2 \
3032 (tclStubsPtr->tcl_UpVar2) /* 259 */
3033 #define Tcl_VarEval \
3034 (tclStubsPtr->tcl_VarEval) /* 260 */
3035 #define Tcl_VarTraceInfo \
3036 (tclStubsPtr->tcl_VarTraceInfo) /* 261 */
3037 #define Tcl_VarTraceInfo2 \
3038 (tclStubsPtr->tcl_VarTraceInfo2) /* 262 */
3039 #define Tcl_Write \
3040 (tclStubsPtr->tcl_Write) /* 263 */
3041 #define Tcl_WrongNumArgs \
3042 (tclStubsPtr->tcl_WrongNumArgs) /* 264 */
3043 #define Tcl_DumpActiveMemory \
3044 (tclStubsPtr->tcl_DumpActiveMemory) /* 265 */
3045 #define Tcl_ValidateAllMemory \
3046 (tclStubsPtr->tcl_ValidateAllMemory) /* 266 */
3047 #define Tcl_AppendResultVA \
3048 (tclStubsPtr->tcl_AppendResultVA) /* 267 */
3049 #define Tcl_AppendStringsToObjVA \
3050 (tclStubsPtr->tcl_AppendStringsToObjVA) /* 268 */
3051 #define Tcl_HashStats \
3052 (tclStubsPtr->tcl_HashStats) /* 269 */
3053 #define Tcl_ParseVar \
3054 (tclStubsPtr->tcl_ParseVar) /* 270 */
3055 #define Tcl_PkgPresent \
3056 (tclStubsPtr->tcl_PkgPresent) /* 271 */
3057 #define Tcl_PkgPresentEx \
3058 (tclStubsPtr->tcl_PkgPresentEx) /* 272 */
3059 #define Tcl_PkgProvide \
3060 (tclStubsPtr->tcl_PkgProvide) /* 273 */
3061 #define Tcl_PkgRequire \
3062 (tclStubsPtr->tcl_PkgRequire) /* 274 */
3063 #define Tcl_SetErrorCodeVA \
3064 (tclStubsPtr->tcl_SetErrorCodeVA) /* 275 */
3065 #define Tcl_VarEvalVA \
3066 (tclStubsPtr->tcl_VarEvalVA) /* 276 */
3067 #define Tcl_WaitPid \
3068 (tclStubsPtr->tcl_WaitPid) /* 277 */
3069 #define Tcl_PanicVA \
3070 (tclStubsPtr->tcl_PanicVA) /* 278 */
3071 #define Tcl_GetVersion \
3072 (tclStubsPtr->tcl_GetVersion) /* 279 */
3073 #define Tcl_InitMemory \
3074 (tclStubsPtr->tcl_InitMemory) /* 280 */
3075 #define Tcl_StackChannel \
3076 (tclStubsPtr->tcl_StackChannel) /* 281 */
3077 #define Tcl_UnstackChannel \
3078 (tclStubsPtr->tcl_UnstackChannel) /* 282 */
3079 #define Tcl_GetStackedChannel \
3080 (tclStubsPtr->tcl_GetStackedChannel) /* 283 */
3081 #define Tcl_SetMainLoop \
3082 (tclStubsPtr->tcl_SetMainLoop) /* 284 */
3083 /* Slot 285 is reserved */
3084 #define Tcl_AppendObjToObj \
3085 (tclStubsPtr->tcl_AppendObjToObj) /* 286 */
3086 #define Tcl_CreateEncoding \
3087 (tclStubsPtr->tcl_CreateEncoding) /* 287 */
3088 #define Tcl_CreateThreadExitHandler \
3089 (tclStubsPtr->tcl_CreateThreadExitHandler) /* 288 */
3090 #define Tcl_DeleteThreadExitHandler \
3091 (tclStubsPtr->tcl_DeleteThreadExitHandler) /* 289 */
3092 #define Tcl_DiscardResult \
3093 (tclStubsPtr->tcl_DiscardResult) /* 290 */
3094 #define Tcl_EvalEx \
3095 (tclStubsPtr->tcl_EvalEx) /* 291 */
3096 #define Tcl_EvalObjv \
3097 (tclStubsPtr->tcl_EvalObjv) /* 292 */
3098 #define Tcl_EvalObjEx \
3099 (tclStubsPtr->tcl_EvalObjEx) /* 293 */
3100 #define Tcl_ExitThread \
3101 (tclStubsPtr->tcl_ExitThread) /* 294 */
3102 #define Tcl_ExternalToUtf \
3103 (tclStubsPtr->tcl_ExternalToUtf) /* 295 */
3104 #define Tcl_ExternalToUtfDString \
3105 (tclStubsPtr->tcl_ExternalToUtfDString) /* 296 */
3106 #define Tcl_FinalizeThread \
3107 (tclStubsPtr->tcl_FinalizeThread) /* 297 */
3108 #define Tcl_FinalizeNotifier \
3109 (tclStubsPtr->tcl_FinalizeNotifier) /* 298 */
3110 #define Tcl_FreeEncoding \
3111 (tclStubsPtr->tcl_FreeEncoding) /* 299 */
3112 #define Tcl_GetCurrentThread \
3113 (tclStubsPtr->tcl_GetCurrentThread) /* 300 */
3114 #define Tcl_GetEncoding \
3115 (tclStubsPtr->tcl_GetEncoding) /* 301 */
3116 #define Tcl_GetEncodingName \
3117 (tclStubsPtr->tcl_GetEncodingName) /* 302 */
3118 #define Tcl_GetEncodingNames \
3119 (tclStubsPtr->tcl_GetEncodingNames) /* 303 */
3120 #define Tcl_GetIndexFromObjStruct \
3121 (tclStubsPtr->tcl_GetIndexFromObjStruct) /* 304 */
3122 #define Tcl_GetThreadData \
3123 (tclStubsPtr->tcl_GetThreadData) /* 305 */
3124 #define Tcl_GetVar2Ex \
3125 (tclStubsPtr->tcl_GetVar2Ex) /* 306 */
3126 #define Tcl_InitNotifier \
3127 (tclStubsPtr->tcl_InitNotifier) /* 307 */
3128 #define Tcl_MutexLock \
3129 (tclStubsPtr->tcl_MutexLock) /* 308 */
3130 #define Tcl_MutexUnlock \
3131 (tclStubsPtr->tcl_MutexUnlock) /* 309 */
3132 #define Tcl_ConditionNotify \
3133 (tclStubsPtr->tcl_ConditionNotify) /* 310 */
3134 #define Tcl_ConditionWait \
3135 (tclStubsPtr->tcl_ConditionWait) /* 311 */
3136 #define Tcl_NumUtfChars \
3137 (tclStubsPtr->tcl_NumUtfChars) /* 312 */
3138 #define Tcl_ReadChars \
3139 (tclStubsPtr->tcl_ReadChars) /* 313 */
3140 #define Tcl_RestoreResult \
3141 (tclStubsPtr->tcl_RestoreResult) /* 314 */
3142 #define Tcl_SaveResult \
3143 (tclStubsPtr->tcl_SaveResult) /* 315 */
3144 #define Tcl_SetSystemEncoding \
3145 (tclStubsPtr->tcl_SetSystemEncoding) /* 316 */
3146 #define Tcl_SetVar2Ex \
3147 (tclStubsPtr->tcl_SetVar2Ex) /* 317 */
3148 #define Tcl_ThreadAlert \
3149 (tclStubsPtr->tcl_ThreadAlert) /* 318 */
3150 #define Tcl_ThreadQueueEvent \
3151 (tclStubsPtr->tcl_ThreadQueueEvent) /* 319 */
3152 #define Tcl_UniCharAtIndex \
3153 (tclStubsPtr->tcl_UniCharAtIndex) /* 320 */
3154 #define Tcl_UniCharToLower \
3155 (tclStubsPtr->tcl_UniCharToLower) /* 321 */
3156 #define Tcl_UniCharToTitle \
3157 (tclStubsPtr->tcl_UniCharToTitle) /* 322 */
3158 #define Tcl_UniCharToUpper \
3159 (tclStubsPtr->tcl_UniCharToUpper) /* 323 */
3160 #define Tcl_UniCharToUtf \
3161 (tclStubsPtr->tcl_UniCharToUtf) /* 324 */
3162 #define Tcl_UtfAtIndex \
3163 (tclStubsPtr->tcl_UtfAtIndex) /* 325 */
3164 #define Tcl_UtfCharComplete \
3165 (tclStubsPtr->tcl_UtfCharComplete) /* 326 */
3166 #define Tcl_UtfBackslash \
3167 (tclStubsPtr->tcl_UtfBackslash) /* 327 */
3168 #define Tcl_UtfFindFirst \
3169 (tclStubsPtr->tcl_UtfFindFirst) /* 328 */
3170 #define Tcl_UtfFindLast \
3171 (tclStubsPtr->tcl_UtfFindLast) /* 329 */
3172 #define Tcl_UtfNext \
3173 (tclStubsPtr->tcl_UtfNext) /* 330 */
3174 #define Tcl_UtfPrev \
3175 (tclStubsPtr->tcl_UtfPrev) /* 331 */
3176 #define Tcl_UtfToExternal \
3177 (tclStubsPtr->tcl_UtfToExternal) /* 332 */
3178 #define Tcl_UtfToExternalDString \
3179 (tclStubsPtr->tcl_UtfToExternalDString) /* 333 */
3180 #define Tcl_UtfToLower \
3181 (tclStubsPtr->tcl_UtfToLower) /* 334 */
3182 #define Tcl_UtfToTitle \
3183 (tclStubsPtr->tcl_UtfToTitle) /* 335 */
3184 #define Tcl_UtfToUniChar \
3185 (tclStubsPtr->tcl_UtfToUniChar) /* 336 */
3186 #define Tcl_UtfToUpper \
3187 (tclStubsPtr->tcl_UtfToUpper) /* 337 */
3188 #define Tcl_WriteChars \
3189 (tclStubsPtr->tcl_WriteChars) /* 338 */
3190 #define Tcl_WriteObj \
3191 (tclStubsPtr->tcl_WriteObj) /* 339 */
3192 #define Tcl_GetString \
3193 (tclStubsPtr->tcl_GetString) /* 340 */
3194 #define Tcl_GetDefaultEncodingDir \
3195 (tclStubsPtr->tcl_GetDefaultEncodingDir) /* 341 */
3196 #define Tcl_SetDefaultEncodingDir \
3197 (tclStubsPtr->tcl_SetDefaultEncodingDir) /* 342 */
3198 #define Tcl_AlertNotifier \
3199 (tclStubsPtr->tcl_AlertNotifier) /* 343 */
3200 #define Tcl_ServiceModeHook \
3201 (tclStubsPtr->tcl_ServiceModeHook) /* 344 */
3202 #define Tcl_UniCharIsAlnum \
3203 (tclStubsPtr->tcl_UniCharIsAlnum) /* 345 */
3204 #define Tcl_UniCharIsAlpha \
3205 (tclStubsPtr->tcl_UniCharIsAlpha) /* 346 */
3206 #define Tcl_UniCharIsDigit \
3207 (tclStubsPtr->tcl_UniCharIsDigit) /* 347 */
3208 #define Tcl_UniCharIsLower \
3209 (tclStubsPtr->tcl_UniCharIsLower) /* 348 */
3210 #define Tcl_UniCharIsSpace \
3211 (tclStubsPtr->tcl_UniCharIsSpace) /* 349 */
3212 #define Tcl_UniCharIsUpper \
3213 (tclStubsPtr->tcl_UniCharIsUpper) /* 350 */
3214 #define Tcl_UniCharIsWordChar \
3215 (tclStubsPtr->tcl_UniCharIsWordChar) /* 351 */
3216 #define Tcl_UniCharLen \
3217 (tclStubsPtr->tcl_UniCharLen) /* 352 */
3218 #define Tcl_UniCharNcmp \
3219 (tclStubsPtr->tcl_UniCharNcmp) /* 353 */
3220 #define Tcl_UniCharToUtfDString \
3221 (tclStubsPtr->tcl_UniCharToUtfDString) /* 354 */
3222 #define Tcl_UtfToUniCharDString \
3223 (tclStubsPtr->tcl_UtfToUniCharDString) /* 355 */
3224 #define Tcl_GetRegExpFromObj \
3225 (tclStubsPtr->tcl_GetRegExpFromObj) /* 356 */
3226 #define Tcl_EvalTokens \
3227 (tclStubsPtr->tcl_EvalTokens) /* 357 */
3228 #define Tcl_FreeParse \
3229 (tclStubsPtr->tcl_FreeParse) /* 358 */
3230 #define Tcl_LogCommandInfo \
3231 (tclStubsPtr->tcl_LogCommandInfo) /* 359 */
3232 #define Tcl_ParseBraces \
3233 (tclStubsPtr->tcl_ParseBraces) /* 360 */
3234 #define Tcl_ParseCommand \
3235 (tclStubsPtr->tcl_ParseCommand) /* 361 */
3236 #define Tcl_ParseExpr \
3237 (tclStubsPtr->tcl_ParseExpr) /* 362 */
3238 #define Tcl_ParseQuotedString \
3239 (tclStubsPtr->tcl_ParseQuotedString) /* 363 */
3240 #define Tcl_ParseVarName \
3241 (tclStubsPtr->tcl_ParseVarName) /* 364 */
3242 #define Tcl_GetCwd \
3243 (tclStubsPtr->tcl_GetCwd) /* 365 */
3244 #define Tcl_Chdir \
3245 (tclStubsPtr->tcl_Chdir) /* 366 */
3246 #define Tcl_Access \
3247 (tclStubsPtr->tcl_Access) /* 367 */
3248 #define Tcl_Stat \
3249 (tclStubsPtr->tcl_Stat) /* 368 */
3250 #define Tcl_UtfNcmp \
3251 (tclStubsPtr->tcl_UtfNcmp) /* 369 */
3252 #define Tcl_UtfNcasecmp \
3253 (tclStubsPtr->tcl_UtfNcasecmp) /* 370 */
3254 #define Tcl_StringCaseMatch \
3255 (tclStubsPtr->tcl_StringCaseMatch) /* 371 */
3256 #define Tcl_UniCharIsControl \
3257 (tclStubsPtr->tcl_UniCharIsControl) /* 372 */
3258 #define Tcl_UniCharIsGraph \
3259 (tclStubsPtr->tcl_UniCharIsGraph) /* 373 */
3260 #define Tcl_UniCharIsPrint \
3261 (tclStubsPtr->tcl_UniCharIsPrint) /* 374 */
3262 #define Tcl_UniCharIsPunct \
3263 (tclStubsPtr->tcl_UniCharIsPunct) /* 375 */
3264 #define Tcl_RegExpExecObj \
3265 (tclStubsPtr->tcl_RegExpExecObj) /* 376 */
3266 #define Tcl_RegExpGetInfo \
3267 (tclStubsPtr->tcl_RegExpGetInfo) /* 377 */
3268 #define Tcl_NewUnicodeObj \
3269 (tclStubsPtr->tcl_NewUnicodeObj) /* 378 */
3270 #define Tcl_SetUnicodeObj \
3271 (tclStubsPtr->tcl_SetUnicodeObj) /* 379 */
3272 #define Tcl_GetCharLength \
3273 (tclStubsPtr->tcl_GetCharLength) /* 380 */
3274 #define Tcl_GetUniChar \
3275 (tclStubsPtr->tcl_GetUniChar) /* 381 */
3276 #define Tcl_GetUnicode \
3277 (tclStubsPtr->tcl_GetUnicode) /* 382 */
3278 #define Tcl_GetRange \
3279 (tclStubsPtr->tcl_GetRange) /* 383 */
3280 #define Tcl_AppendUnicodeToObj \
3281 (tclStubsPtr->tcl_AppendUnicodeToObj) /* 384 */
3282 #define Tcl_RegExpMatchObj \
3283 (tclStubsPtr->tcl_RegExpMatchObj) /* 385 */
3284 #define Tcl_SetNotifier \
3285 (tclStubsPtr->tcl_SetNotifier) /* 386 */
3286 #define Tcl_GetAllocMutex \
3287 (tclStubsPtr->tcl_GetAllocMutex) /* 387 */
3288 #define Tcl_GetChannelNames \
3289 (tclStubsPtr->tcl_GetChannelNames) /* 388 */
3290 #define Tcl_GetChannelNamesEx \
3291 (tclStubsPtr->tcl_GetChannelNamesEx) /* 389 */
3292 #define Tcl_ProcObjCmd \
3293 (tclStubsPtr->tcl_ProcObjCmd) /* 390 */
3294 #define Tcl_ConditionFinalize \
3295 (tclStubsPtr->tcl_ConditionFinalize) /* 391 */
3296 #define Tcl_MutexFinalize \
3297 (tclStubsPtr->tcl_MutexFinalize) /* 392 */
3298 #define Tcl_CreateThread \
3299 (tclStubsPtr->tcl_CreateThread) /* 393 */
3300 #define Tcl_ReadRaw \
3301 (tclStubsPtr->tcl_ReadRaw) /* 394 */
3302 #define Tcl_WriteRaw \
3303 (tclStubsPtr->tcl_WriteRaw) /* 395 */
3304 #define Tcl_GetTopChannel \
3305 (tclStubsPtr->tcl_GetTopChannel) /* 396 */
3306 #define Tcl_ChannelBuffered \
3307 (tclStubsPtr->tcl_ChannelBuffered) /* 397 */
3308 #define Tcl_ChannelName \
3309 (tclStubsPtr->tcl_ChannelName) /* 398 */
3310 #define Tcl_ChannelVersion \
3311 (tclStubsPtr->tcl_ChannelVersion) /* 399 */
3312 #define Tcl_ChannelBlockModeProc \
3313 (tclStubsPtr->tcl_ChannelBlockModeProc) /* 400 */
3314 #define Tcl_ChannelCloseProc \
3315 (tclStubsPtr->tcl_ChannelCloseProc) /* 401 */
3316 #define Tcl_ChannelClose2Proc \
3317 (tclStubsPtr->tcl_ChannelClose2Proc) /* 402 */
3318 #define Tcl_ChannelInputProc \
3319 (tclStubsPtr->tcl_ChannelInputProc) /* 403 */
3320 #define Tcl_ChannelOutputProc \
3321 (tclStubsPtr->tcl_ChannelOutputProc) /* 404 */
3322 #define Tcl_ChannelSeekProc \
3323 (tclStubsPtr->tcl_ChannelSeekProc) /* 405 */
3324 #define Tcl_ChannelSetOptionProc \
3325 (tclStubsPtr->tcl_ChannelSetOptionProc) /* 406 */
3326 #define Tcl_ChannelGetOptionProc \
3327 (tclStubsPtr->tcl_ChannelGetOptionProc) /* 407 */
3328 #define Tcl_ChannelWatchProc \
3329 (tclStubsPtr->tcl_ChannelWatchProc) /* 408 */
3330 #define Tcl_ChannelGetHandleProc \
3331 (tclStubsPtr->tcl_ChannelGetHandleProc) /* 409 */
3332 #define Tcl_ChannelFlushProc \
3333 (tclStubsPtr->tcl_ChannelFlushProc) /* 410 */
3334 #define Tcl_ChannelHandlerProc \
3335 (tclStubsPtr->tcl_ChannelHandlerProc) /* 411 */
3336 #define Tcl_JoinThread \
3337 (tclStubsPtr->tcl_JoinThread) /* 412 */
3338 #define Tcl_IsChannelShared \
3339 (tclStubsPtr->tcl_IsChannelShared) /* 413 */
3340 #define Tcl_IsChannelRegistered \
3341 (tclStubsPtr->tcl_IsChannelRegistered) /* 414 */
3342 #define Tcl_CutChannel \
3343 (tclStubsPtr->tcl_CutChannel) /* 415 */
3344 #define Tcl_SpliceChannel \
3345 (tclStubsPtr->tcl_SpliceChannel) /* 416 */
3346 #define Tcl_ClearChannelHandlers \
3347 (tclStubsPtr->tcl_ClearChannelHandlers) /* 417 */
3348 #define Tcl_IsChannelExisting \
3349 (tclStubsPtr->tcl_IsChannelExisting) /* 418 */
3350 #define Tcl_UniCharNcasecmp \
3351 (tclStubsPtr->tcl_UniCharNcasecmp) /* 419 */
3352 #define Tcl_UniCharCaseMatch \
3353 (tclStubsPtr->tcl_UniCharCaseMatch) /* 420 */
3354 #define Tcl_FindHashEntry \
3355 (tclStubsPtr->tcl_FindHashEntry) /* 421 */
3356 #define Tcl_CreateHashEntry \
3357 (tclStubsPtr->tcl_CreateHashEntry) /* 422 */
3358 #define Tcl_InitCustomHashTable \
3359 (tclStubsPtr->tcl_InitCustomHashTable) /* 423 */
3360 #define Tcl_InitObjHashTable \
3361 (tclStubsPtr->tcl_InitObjHashTable) /* 424 */
3362 #define Tcl_CommandTraceInfo \
3363 (tclStubsPtr->tcl_CommandTraceInfo) /* 425 */
3364 #define Tcl_TraceCommand \
3365 (tclStubsPtr->tcl_TraceCommand) /* 426 */
3366 #define Tcl_UntraceCommand \
3367 (tclStubsPtr->tcl_UntraceCommand) /* 427 */
3368 #define Tcl_AttemptAlloc \
3369 (tclStubsPtr->tcl_AttemptAlloc) /* 428 */
3370 #define Tcl_AttemptDbCkalloc \
3371 (tclStubsPtr->tcl_AttemptDbCkalloc) /* 429 */
3372 #define Tcl_AttemptRealloc \
3373 (tclStubsPtr->tcl_AttemptRealloc) /* 430 */
3374 #define Tcl_AttemptDbCkrealloc \
3375 (tclStubsPtr->tcl_AttemptDbCkrealloc) /* 431 */
3376 #define Tcl_AttemptSetObjLength \
3377 (tclStubsPtr->tcl_AttemptSetObjLength) /* 432 */
3378 #define Tcl_GetChannelThread \
3379 (tclStubsPtr->tcl_GetChannelThread) /* 433 */
3380 #define Tcl_GetUnicodeFromObj \
3381 (tclStubsPtr->tcl_GetUnicodeFromObj) /* 434 */
3382 #define Tcl_GetMathFuncInfo \
3383 (tclStubsPtr->tcl_GetMathFuncInfo) /* 435 */
3384 #define Tcl_ListMathFuncs \
3385 (tclStubsPtr->tcl_ListMathFuncs) /* 436 */
3386 #define Tcl_SubstObj \
3387 (tclStubsPtr->tcl_SubstObj) /* 437 */
3388 #define Tcl_DetachChannel \
3389 (tclStubsPtr->tcl_DetachChannel) /* 438 */
3390 #define Tcl_IsStandardChannel \
3391 (tclStubsPtr->tcl_IsStandardChannel) /* 439 */
3392 #define Tcl_FSCopyFile \
3393 (tclStubsPtr->tcl_FSCopyFile) /* 440 */
3394 #define Tcl_FSCopyDirectory \
3395 (tclStubsPtr->tcl_FSCopyDirectory) /* 441 */
3396 #define Tcl_FSCreateDirectory \
3397 (tclStubsPtr->tcl_FSCreateDirectory) /* 442 */
3398 #define Tcl_FSDeleteFile \
3399 (tclStubsPtr->tcl_FSDeleteFile) /* 443 */
3400 #define Tcl_FSLoadFile \
3401 (tclStubsPtr->tcl_FSLoadFile) /* 444 */
3402 #define Tcl_FSMatchInDirectory \
3403 (tclStubsPtr->tcl_FSMatchInDirectory) /* 445 */
3404 #define Tcl_FSLink \
3405 (tclStubsPtr->tcl_FSLink) /* 446 */
3406 #define Tcl_FSRemoveDirectory \
3407 (tclStubsPtr->tcl_FSRemoveDirectory) /* 447 */
3408 #define Tcl_FSRenameFile \
3409 (tclStubsPtr->tcl_FSRenameFile) /* 448 */
3410 #define Tcl_FSLstat \
3411 (tclStubsPtr->tcl_FSLstat) /* 449 */
3412 #define Tcl_FSUtime \
3413 (tclStubsPtr->tcl_FSUtime) /* 450 */
3414 #define Tcl_FSFileAttrsGet \
3415 (tclStubsPtr->tcl_FSFileAttrsGet) /* 451 */
3416 #define Tcl_FSFileAttrsSet \
3417 (tclStubsPtr->tcl_FSFileAttrsSet) /* 452 */
3418 #define Tcl_FSFileAttrStrings \
3419 (tclStubsPtr->tcl_FSFileAttrStrings) /* 453 */
3420 #define Tcl_FSStat \
3421 (tclStubsPtr->tcl_FSStat) /* 454 */
3422 #define Tcl_FSAccess \
3423 (tclStubsPtr->tcl_FSAccess) /* 455 */
3424 #define Tcl_FSOpenFileChannel \
3425 (tclStubsPtr->tcl_FSOpenFileChannel) /* 456 */
3426 #define Tcl_FSGetCwd \
3427 (tclStubsPtr->tcl_FSGetCwd) /* 457 */
3428 #define Tcl_FSChdir \
3429 (tclStubsPtr->tcl_FSChdir) /* 458 */
3430 #define Tcl_FSConvertToPathType \
3431 (tclStubsPtr->tcl_FSConvertToPathType) /* 459 */
3432 #define Tcl_FSJoinPath \
3433 (tclStubsPtr->tcl_FSJoinPath) /* 460 */
3434 #define Tcl_FSSplitPath \
3435 (tclStubsPtr->tcl_FSSplitPath) /* 461 */
3436 #define Tcl_FSEqualPaths \
3437 (tclStubsPtr->tcl_FSEqualPaths) /* 462 */
3438 #define Tcl_FSGetNormalizedPath \
3439 (tclStubsPtr->tcl_FSGetNormalizedPath) /* 463 */
3440 #define Tcl_FSJoinToPath \
3441 (tclStubsPtr->tcl_FSJoinToPath) /* 464 */
3442 #define Tcl_FSGetInternalRep \
3443 (tclStubsPtr->tcl_FSGetInternalRep) /* 465 */
3444 #define Tcl_FSGetTranslatedPath \
3445 (tclStubsPtr->tcl_FSGetTranslatedPath) /* 466 */
3446 #define Tcl_FSEvalFile \
3447 (tclStubsPtr->tcl_FSEvalFile) /* 467 */
3448 #define Tcl_FSNewNativePath \
3449 (tclStubsPtr->tcl_FSNewNativePath) /* 468 */
3450 #define Tcl_FSGetNativePath \
3451 (tclStubsPtr->tcl_FSGetNativePath) /* 469 */
3452 #define Tcl_FSFileSystemInfo \
3453 (tclStubsPtr->tcl_FSFileSystemInfo) /* 470 */
3454 #define Tcl_FSPathSeparator \
3455 (tclStubsPtr->tcl_FSPathSeparator) /* 471 */
3456 #define Tcl_FSListVolumes \
3457 (tclStubsPtr->tcl_FSListVolumes) /* 472 */
3458 #define Tcl_FSRegister \
3459 (tclStubsPtr->tcl_FSRegister) /* 473 */
3460 #define Tcl_FSUnregister \
3461 (tclStubsPtr->tcl_FSUnregister) /* 474 */
3462 #define Tcl_FSData \
3463 (tclStubsPtr->tcl_FSData) /* 475 */
3464 #define Tcl_FSGetTranslatedStringPath \
3465 (tclStubsPtr->tcl_FSGetTranslatedStringPath) /* 476 */
3466 #define Tcl_FSGetFileSystemForPath \
3467 (tclStubsPtr->tcl_FSGetFileSystemForPath) /* 477 */
3468 #define Tcl_FSGetPathType \
3469 (tclStubsPtr->tcl_FSGetPathType) /* 478 */
3470 #define Tcl_OutputBuffered \
3471 (tclStubsPtr->tcl_OutputBuffered) /* 479 */
3472 #define Tcl_FSMountsChanged \
3473 (tclStubsPtr->tcl_FSMountsChanged) /* 480 */
3474 #define Tcl_EvalTokensStandard \
3475 (tclStubsPtr->tcl_EvalTokensStandard) /* 481 */
3476 #define Tcl_GetTime \
3477 (tclStubsPtr->tcl_GetTime) /* 482 */
3478 #define Tcl_CreateObjTrace \
3479 (tclStubsPtr->tcl_CreateObjTrace) /* 483 */
3480 #define Tcl_GetCommandInfoFromToken \
3481 (tclStubsPtr->tcl_GetCommandInfoFromToken) /* 484 */
3482 #define Tcl_SetCommandInfoFromToken \
3483 (tclStubsPtr->tcl_SetCommandInfoFromToken) /* 485 */
3484 #define Tcl_DbNewWideIntObj \
3485 (tclStubsPtr->tcl_DbNewWideIntObj) /* 486 */
3486 #define Tcl_GetWideIntFromObj \
3487 (tclStubsPtr->tcl_GetWideIntFromObj) /* 487 */
3488 #define Tcl_NewWideIntObj \
3489 (tclStubsPtr->tcl_NewWideIntObj) /* 488 */
3490 #define Tcl_SetWideIntObj \
3491 (tclStubsPtr->tcl_SetWideIntObj) /* 489 */
3492 #define Tcl_AllocStatBuf \
3493 (tclStubsPtr->tcl_AllocStatBuf) /* 490 */
3494 #define Tcl_Seek \
3495 (tclStubsPtr->tcl_Seek) /* 491 */
3496 #define Tcl_Tell \
3497 (tclStubsPtr->tcl_Tell) /* 492 */
3498 #define Tcl_ChannelWideSeekProc \
3499 (tclStubsPtr->tcl_ChannelWideSeekProc) /* 493 */
3500 #define Tcl_DictObjPut \
3501 (tclStubsPtr->tcl_DictObjPut) /* 494 */
3502 #define Tcl_DictObjGet \
3503 (tclStubsPtr->tcl_DictObjGet) /* 495 */
3504 #define Tcl_DictObjRemove \
3505 (tclStubsPtr->tcl_DictObjRemove) /* 496 */
3506 #define Tcl_DictObjSize \
3507 (tclStubsPtr->tcl_DictObjSize) /* 497 */
3508 #define Tcl_DictObjFirst \
3509 (tclStubsPtr->tcl_DictObjFirst) /* 498 */
3510 #define Tcl_DictObjNext \
3511 (tclStubsPtr->tcl_DictObjNext) /* 499 */
3512 #define Tcl_DictObjDone \
3513 (tclStubsPtr->tcl_DictObjDone) /* 500 */
3514 #define Tcl_DictObjPutKeyList \
3515 (tclStubsPtr->tcl_DictObjPutKeyList) /* 501 */
3516 #define Tcl_DictObjRemoveKeyList \
3517 (tclStubsPtr->tcl_DictObjRemoveKeyList) /* 502 */
3518 #define Tcl_NewDictObj \
3519 (tclStubsPtr->tcl_NewDictObj) /* 503 */
3520 #define Tcl_DbNewDictObj \
3521 (tclStubsPtr->tcl_DbNewDictObj) /* 504 */
3522 #define Tcl_RegisterConfig \
3523 (tclStubsPtr->tcl_RegisterConfig) /* 505 */
3524 #define Tcl_CreateNamespace \
3525 (tclStubsPtr->tcl_CreateNamespace) /* 506 */
3526 #define Tcl_DeleteNamespace \
3527 (tclStubsPtr->tcl_DeleteNamespace) /* 507 */
3528 #define Tcl_AppendExportList \
3529 (tclStubsPtr->tcl_AppendExportList) /* 508 */
3530 #define Tcl_Export \
3531 (tclStubsPtr->tcl_Export) /* 509 */
3532 #define Tcl_Import \
3533 (tclStubsPtr->tcl_Import) /* 510 */
3534 #define Tcl_ForgetImport \
3535 (tclStubsPtr->tcl_ForgetImport) /* 511 */
3536 #define Tcl_GetCurrentNamespace \
3537 (tclStubsPtr->tcl_GetCurrentNamespace) /* 512 */
3538 #define Tcl_GetGlobalNamespace \
3539 (tclStubsPtr->tcl_GetGlobalNamespace) /* 513 */
3540 #define Tcl_FindNamespace \
3541 (tclStubsPtr->tcl_FindNamespace) /* 514 */
3542 #define Tcl_FindCommand \
3543 (tclStubsPtr->tcl_FindCommand) /* 515 */
3544 #define Tcl_GetCommandFromObj \
3545 (tclStubsPtr->tcl_GetCommandFromObj) /* 516 */
3546 #define Tcl_GetCommandFullName \
3547 (tclStubsPtr->tcl_GetCommandFullName) /* 517 */
3548 #define Tcl_FSEvalFileEx \
3549 (tclStubsPtr->tcl_FSEvalFileEx) /* 518 */
3550 #define Tcl_SetExitProc \
3551 (tclStubsPtr->tcl_SetExitProc) /* 519 */
3552 #define Tcl_LimitAddHandler \
3553 (tclStubsPtr->tcl_LimitAddHandler) /* 520 */
3554 #define Tcl_LimitRemoveHandler \
3555 (tclStubsPtr->tcl_LimitRemoveHandler) /* 521 */
3556 #define Tcl_LimitReady \
3557 (tclStubsPtr->tcl_LimitReady) /* 522 */
3558 #define Tcl_LimitCheck \
3559 (tclStubsPtr->tcl_LimitCheck) /* 523 */
3560 #define Tcl_LimitExceeded \
3561 (tclStubsPtr->tcl_LimitExceeded) /* 524 */
3562 #define Tcl_LimitSetCommands \
3563 (tclStubsPtr->tcl_LimitSetCommands) /* 525 */
3564 #define Tcl_LimitSetTime \
3565 (tclStubsPtr->tcl_LimitSetTime) /* 526 */
3566 #define Tcl_LimitSetGranularity \
3567 (tclStubsPtr->tcl_LimitSetGranularity) /* 527 */
3568 #define Tcl_LimitTypeEnabled \
3569 (tclStubsPtr->tcl_LimitTypeEnabled) /* 528 */
3570 #define Tcl_LimitTypeExceeded \
3571 (tclStubsPtr->tcl_LimitTypeExceeded) /* 529 */
3572 #define Tcl_LimitTypeSet \
3573 (tclStubsPtr->tcl_LimitTypeSet) /* 530 */
3574 #define Tcl_LimitTypeReset \
3575 (tclStubsPtr->tcl_LimitTypeReset) /* 531 */
3576 #define Tcl_LimitGetCommands \
3577 (tclStubsPtr->tcl_LimitGetCommands) /* 532 */
3578 #define Tcl_LimitGetTime \
3579 (tclStubsPtr->tcl_LimitGetTime) /* 533 */
3580 #define Tcl_LimitGetGranularity \
3581 (tclStubsPtr->tcl_LimitGetGranularity) /* 534 */
3582 #define Tcl_SaveInterpState \
3583 (tclStubsPtr->tcl_SaveInterpState) /* 535 */
3584 #define Tcl_RestoreInterpState \
3585 (tclStubsPtr->tcl_RestoreInterpState) /* 536 */
3586 #define Tcl_DiscardInterpState \
3587 (tclStubsPtr->tcl_DiscardInterpState) /* 537 */
3588 #define Tcl_SetReturnOptions \
3589 (tclStubsPtr->tcl_SetReturnOptions) /* 538 */
3590 #define Tcl_GetReturnOptions \
3591 (tclStubsPtr->tcl_GetReturnOptions) /* 539 */
3592 #define Tcl_IsEnsemble \
3593 (tclStubsPtr->tcl_IsEnsemble) /* 540 */
3594 #define Tcl_CreateEnsemble \
3595 (tclStubsPtr->tcl_CreateEnsemble) /* 541 */
3596 #define Tcl_FindEnsemble \
3597 (tclStubsPtr->tcl_FindEnsemble) /* 542 */
3598 #define Tcl_SetEnsembleSubcommandList \
3599 (tclStubsPtr->tcl_SetEnsembleSubcommandList) /* 543 */
3600 #define Tcl_SetEnsembleMappingDict \
3601 (tclStubsPtr->tcl_SetEnsembleMappingDict) /* 544 */
3602 #define Tcl_SetEnsembleUnknownHandler \
3603 (tclStubsPtr->tcl_SetEnsembleUnknownHandler) /* 545 */
3604 #define Tcl_SetEnsembleFlags \
3605 (tclStubsPtr->tcl_SetEnsembleFlags) /* 546 */
3606 #define Tcl_GetEnsembleSubcommandList \
3607 (tclStubsPtr->tcl_GetEnsembleSubcommandList) /* 547 */
3608 #define Tcl_GetEnsembleMappingDict \
3609 (tclStubsPtr->tcl_GetEnsembleMappingDict) /* 548 */
3610 #define Tcl_GetEnsembleUnknownHandler \
3611 (tclStubsPtr->tcl_GetEnsembleUnknownHandler) /* 549 */
3612 #define Tcl_GetEnsembleFlags \
3613 (tclStubsPtr->tcl_GetEnsembleFlags) /* 550 */
3614 #define Tcl_GetEnsembleNamespace \
3615 (tclStubsPtr->tcl_GetEnsembleNamespace) /* 551 */
3616 #define Tcl_SetTimeProc \
3617 (tclStubsPtr->tcl_SetTimeProc) /* 552 */
3618 #define Tcl_QueryTimeProc \
3619 (tclStubsPtr->tcl_QueryTimeProc) /* 553 */
3620 #define Tcl_ChannelThreadActionProc \
3621 (tclStubsPtr->tcl_ChannelThreadActionProc) /* 554 */
3622 #define Tcl_NewBignumObj \
3623 (tclStubsPtr->tcl_NewBignumObj) /* 555 */
3624 #define Tcl_DbNewBignumObj \
3625 (tclStubsPtr->tcl_DbNewBignumObj) /* 556 */
3626 #define Tcl_SetBignumObj \
3627 (tclStubsPtr->tcl_SetBignumObj) /* 557 */
3628 #define Tcl_GetBignumFromObj \
3629 (tclStubsPtr->tcl_GetBignumFromObj) /* 558 */
3630 #define Tcl_TakeBignumFromObj \
3631 (tclStubsPtr->tcl_TakeBignumFromObj) /* 559 */
3632 #define Tcl_TruncateChannel \
3633 (tclStubsPtr->tcl_TruncateChannel) /* 560 */
3634 #define Tcl_ChannelTruncateProc \
3635 (tclStubsPtr->tcl_ChannelTruncateProc) /* 561 */
3636 #define Tcl_SetChannelErrorInterp \
3637 (tclStubsPtr->tcl_SetChannelErrorInterp) /* 562 */
3638 #define Tcl_GetChannelErrorInterp \
3639 (tclStubsPtr->tcl_GetChannelErrorInterp) /* 563 */
3640 #define Tcl_SetChannelError \
3641 (tclStubsPtr->tcl_SetChannelError) /* 564 */
3642 #define Tcl_GetChannelError \
3643 (tclStubsPtr->tcl_GetChannelError) /* 565 */
3644 #define Tcl_InitBignumFromDouble \
3645 (tclStubsPtr->tcl_InitBignumFromDouble) /* 566 */
3646 #define Tcl_GetNamespaceUnknownHandler \
3647 (tclStubsPtr->tcl_GetNamespaceUnknownHandler) /* 567 */
3648 #define Tcl_SetNamespaceUnknownHandler \
3649 (tclStubsPtr->tcl_SetNamespaceUnknownHandler) /* 568 */
3650 #define Tcl_GetEncodingFromObj \
3651 (tclStubsPtr->tcl_GetEncodingFromObj) /* 569 */
3652 #define Tcl_GetEncodingSearchPath \
3653 (tclStubsPtr->tcl_GetEncodingSearchPath) /* 570 */
3654 #define Tcl_SetEncodingSearchPath \
3655 (tclStubsPtr->tcl_SetEncodingSearchPath) /* 571 */
3656 #define Tcl_GetEncodingNameFromEnvironment \
3657 (tclStubsPtr->tcl_GetEncodingNameFromEnvironment) /* 572 */
3658 #define Tcl_PkgRequireProc \
3659 (tclStubsPtr->tcl_PkgRequireProc) /* 573 */
3660 #define Tcl_AppendObjToErrorInfo \
3661 (tclStubsPtr->tcl_AppendObjToErrorInfo) /* 574 */
3662 #define Tcl_AppendLimitedToObj \
3663 (tclStubsPtr->tcl_AppendLimitedToObj) /* 575 */
3664 #define Tcl_Format \
3665 (tclStubsPtr->tcl_Format) /* 576 */
3666 #define Tcl_AppendFormatToObj \
3667 (tclStubsPtr->tcl_AppendFormatToObj) /* 577 */
3668 #define Tcl_ObjPrintf \
3669 (tclStubsPtr->tcl_ObjPrintf) /* 578 */
3670 #define Tcl_AppendPrintfToObj \
3671 (tclStubsPtr->tcl_AppendPrintfToObj) /* 579 */
3672 #define Tcl_CancelEval \
3673 (tclStubsPtr->tcl_CancelEval) /* 580 */
3674 #define Tcl_Canceled \
3675 (tclStubsPtr->tcl_Canceled) /* 581 */
3676 #define Tcl_CreatePipe \
3677 (tclStubsPtr->tcl_CreatePipe) /* 582 */
3678 #define Tcl_NRCreateCommand \
3679 (tclStubsPtr->tcl_NRCreateCommand) /* 583 */
3680 #define Tcl_NREvalObj \
3681 (tclStubsPtr->tcl_NREvalObj) /* 584 */
3682 #define Tcl_NREvalObjv \
3683 (tclStubsPtr->tcl_NREvalObjv) /* 585 */
3684 #define Tcl_NRCmdSwap \
3685 (tclStubsPtr->tcl_NRCmdSwap) /* 586 */
3686 #define Tcl_NRAddCallback \
3687 (tclStubsPtr->tcl_NRAddCallback) /* 587 */
3688 #define Tcl_NRCallObjProc \
3689 (tclStubsPtr->tcl_NRCallObjProc) /* 588 */
3690 #define Tcl_GetFSDeviceFromStat \
3691 (tclStubsPtr->tcl_GetFSDeviceFromStat) /* 589 */
3692 #define Tcl_GetFSInodeFromStat \
3693 (tclStubsPtr->tcl_GetFSInodeFromStat) /* 590 */
3694 #define Tcl_GetModeFromStat \
3695 (tclStubsPtr->tcl_GetModeFromStat) /* 591 */
3696 #define Tcl_GetLinkCountFromStat \
3697 (tclStubsPtr->tcl_GetLinkCountFromStat) /* 592 */
3698 #define Tcl_GetUserIdFromStat \
3699 (tclStubsPtr->tcl_GetUserIdFromStat) /* 593 */
3700 #define Tcl_GetGroupIdFromStat \
3701 (tclStubsPtr->tcl_GetGroupIdFromStat) /* 594 */
3702 #define Tcl_GetDeviceTypeFromStat \
3703 (tclStubsPtr->tcl_GetDeviceTypeFromStat) /* 595 */
3704 #define Tcl_GetAccessTimeFromStat \
3705 (tclStubsPtr->tcl_GetAccessTimeFromStat) /* 596 */
3706 #define Tcl_GetModificationTimeFromStat \
3707 (tclStubsPtr->tcl_GetModificationTimeFromStat) /* 597 */
3708 #define Tcl_GetChangeTimeFromStat \
3709 (tclStubsPtr->tcl_GetChangeTimeFromStat) /* 598 */
3710 #define Tcl_GetSizeFromStat \
3711 (tclStubsPtr->tcl_GetSizeFromStat) /* 599 */
3712 #define Tcl_GetBlocksFromStat \
3713 (tclStubsPtr->tcl_GetBlocksFromStat) /* 600 */
3714 #define Tcl_GetBlockSizeFromStat \
3715 (tclStubsPtr->tcl_GetBlockSizeFromStat) /* 601 */
3716 #define Tcl_SetEnsembleParameterList \
3717 (tclStubsPtr->tcl_SetEnsembleParameterList) /* 602 */
3718 #define Tcl_GetEnsembleParameterList \
3719 (tclStubsPtr->tcl_GetEnsembleParameterList) /* 603 */
3720 #define Tcl_ParseArgsObjv \
3721 (tclStubsPtr->tcl_ParseArgsObjv) /* 604 */
3722 #define Tcl_GetErrorLine \
3723 (tclStubsPtr->tcl_GetErrorLine) /* 605 */
3724 #define Tcl_SetErrorLine \
3725 (tclStubsPtr->tcl_SetErrorLine) /* 606 */
3726 #define Tcl_TransferResult \
3727 (tclStubsPtr->tcl_TransferResult) /* 607 */
3728 #define Tcl_InterpActive \
3729 (tclStubsPtr->tcl_InterpActive) /* 608 */
3730 #define Tcl_BackgroundException \
3731 (tclStubsPtr->tcl_BackgroundException) /* 609 */
3732 #define Tcl_ZlibDeflate \
3733 (tclStubsPtr->tcl_ZlibDeflate) /* 610 */
3734 #define Tcl_ZlibInflate \
3735 (tclStubsPtr->tcl_ZlibInflate) /* 611 */
3736 #define Tcl_ZlibCRC32 \
3737 (tclStubsPtr->tcl_ZlibCRC32) /* 612 */
3738 #define Tcl_ZlibAdler32 \
3739 (tclStubsPtr->tcl_ZlibAdler32) /* 613 */
3740 #define Tcl_ZlibStreamInit \
3741 (tclStubsPtr->tcl_ZlibStreamInit) /* 614 */
3742 #define Tcl_ZlibStreamGetCommandName \
3743 (tclStubsPtr->tcl_ZlibStreamGetCommandName) /* 615 */
3744 #define Tcl_ZlibStreamEof \
3745 (tclStubsPtr->tcl_ZlibStreamEof) /* 616 */
3746 #define Tcl_ZlibStreamChecksum \
3747 (tclStubsPtr->tcl_ZlibStreamChecksum) /* 617 */
3748 #define Tcl_ZlibStreamPut \
3749 (tclStubsPtr->tcl_ZlibStreamPut) /* 618 */
3750 #define Tcl_ZlibStreamGet \
3751 (tclStubsPtr->tcl_ZlibStreamGet) /* 619 */
3752 #define Tcl_ZlibStreamClose \
3753 (tclStubsPtr->tcl_ZlibStreamClose) /* 620 */
3754 #define Tcl_ZlibStreamReset \
3755 (tclStubsPtr->tcl_ZlibStreamReset) /* 621 */
3756 #define Tcl_SetStartupScript \
3757 (tclStubsPtr->tcl_SetStartupScript) /* 622 */
3758 #define Tcl_GetStartupScript \
3759 (tclStubsPtr->tcl_GetStartupScript) /* 623 */
3760 #define Tcl_CloseEx \
3761 (tclStubsPtr->tcl_CloseEx) /* 624 */
3762 #define Tcl_NRExprObj \
3763 (tclStubsPtr->tcl_NRExprObj) /* 625 */
3764 #define Tcl_NRSubstObj \
3765 (tclStubsPtr->tcl_NRSubstObj) /* 626 */
3766 #define Tcl_LoadFile \
3767 (tclStubsPtr->tcl_LoadFile) /* 627 */
3768 #define Tcl_FindSymbol \
3769 (tclStubsPtr->tcl_FindSymbol) /* 628 */
3770 #define Tcl_FSUnloadFile \
3771 (tclStubsPtr->tcl_FSUnloadFile) /* 629 */
3772 #define Tcl_ZlibStreamSetCompressionDictionary \
3773 (tclStubsPtr->tcl_ZlibStreamSetCompressionDictionary) /* 630 */
3774
3775 #endif /* defined(USE_TCL_STUBS) */
3776
3777 /* !END!: Do not edit above this line. */
3778
3779 #if defined(USE_TCL_STUBS)
3780 # undef Tcl_CreateInterp
3781 # undef Tcl_FindExecutable
3782 # undef Tcl_GetStringResult
3783 # undef Tcl_Init
3784 # undef Tcl_SetPanicProc
3785 # undef Tcl_SetVar
3786 # undef Tcl_StaticPackage
3787 # undef TclFSGetNativePath
3788 # define Tcl_CreateInterp() (tclStubsPtr->tcl_CreateInterp())
3789 # define Tcl_GetStringResult(interp) (tclStubsPtr->tcl_GetStringResult(interp))
3790 # define Tcl_Init(interp) (tclStubsPtr->tcl_Init(interp))
3791 # define Tcl_SetPanicProc(proc) (tclStubsPtr->tcl_SetPanicProc(proc))
3792 # define Tcl_SetVar(interp, varName, newValue, flags) \
3793 (tclStubsPtr->tcl_SetVar(interp, varName, newValue, flags))
3794 #endif
3795
3796 #if defined(_WIN32) && defined(UNICODE)
3797 # define Tcl_FindExecutable(arg) ((Tcl_FindExecutable)((const char *)(arg)))
3798 # define Tcl_MainEx Tcl_MainExW
3799 EXTERN void Tcl_MainExW(int argc, wchar_t **argv,
3800 Tcl_AppInitProc *appInitProc, Tcl_Interp *interp);
3801 #endif
3802
3803 #undef TCL_STORAGE_CLASS
3804 #define TCL_STORAGE_CLASS DLLIMPORT
3805
3806 #endif /* _TCLDECLS */
--- a/compat/tcl-8.6/generic/tclDecls.h
+++ b/compat/tcl-8.6/generic/tclDecls.h
@@ -1632,7 +1632,6 @@
16321632
Tcl_Namespace *nsPtr);
16331633
/* 568 */
16341634
EXTERN int Tcl_SetNamespaceUnknownHandler(Tcl_Interp *interp,
1635
- Tcl_NamespObjSetVar2
16361635
Tcl_Namespace *nsPtr, Tcl_Obj *handlerPtr);
16371636
/* 569 */
16381637
EXTERN int Tcl_GetEncodingFromObj(Tcl_Interp *interp,
@@ -1643,10 +1642,6 @@
16431642
EXTERN int Tcl_SetEncodingSearchPath(Tcl_Obj *searchPath);
16441643
/* 572 */
16451644
EXTERN const char * Tcl_GetEncodingNameFromEnvironment(
1646
- Tcl_DString *bufPtr);
1647
-/* 573 */
1648
-EXTERN int Tcl_PkgRequireProc(Tcl_Interp *interp,
1649
- const char define Tcl_ObjSEnvironment(
16501645
Tcl_DString *bufPtr);
16511646
/* 573 */
16521647
EXTERN int Tcl_PkgRequireProc(Tcl_Interp *interp,
@@ -1784,4 +1779,2028 @@
17841779
/* 619 */
17851780
EXTERN int Tcl_ZlibStreamGet(Tcl_ZlibStream zshandle,
17861781
Tcl_Obj *data, int count);
1787
-/*
1782
+/* 620 */
1783
+EXTERN int Tcl_ZlibStreamClose(Tcl_ZlibStream zshandle);
1784
+/* 621 */
1785
+EXTERN int Tcl_ZlibStreamReset(Tcl_ZlibStream zshandle);
1786
+/* 622 */
1787
+EXTERN void Tcl_SetStartupScript(Tcl_Obj *path,
1788
+ const char *encoding);
1789
+/* 623 */
1790
+EXTERN Tcl_Obj * Tcl_GetStartupScript(const char **encodingPtr);
1791
+/* 624 */
1792
+EXTERN int Tcl_CloseEx(Tcl_Interp *interp, Tcl_Channel chan,
1793
+ int flags);
1794
+/* 625 */
1795
+EXTERN int Tcl_NRExprObj(Tcl_Interp *interp, Tcl_Obj *objPtr,
1796
+ Tcl_Obj *resultPtr);
1797
+/* 626 */
1798
+EXTERN int Tcl_NRSubstObj(Tcl_Interp *interp, Tcl_Obj *objPtr,
1799
+ int flags);
1800
+/* 627 */
1801
+EXTERN int Tcl_LoadFile(Tcl_Interp *interp, Tcl_Obj *pathPtr,
1802
+ const char *const symv[], int flags,
1803
+ void *procPtrs, Tcl_LoadHandle *handlePtr);
1804
+/* 628 */
1805
+EXTERN void * Tcl_FindSymbol(Tcl_Interp *interp,
1806
+ Tcl_LoadHandle handle, const char *symbol);
1807
+/* 629 */
1808
+EXTERN int Tcl_FSUnloadFile(Tcl_Interp *interp,
1809
+ Tcl_LoadHandle handlePtr);
1810
+/* 630 */
1811
+EXTERN void Tcl_ZlibStreamSetCompressionDictionary(
1812
+ Tcl_ZlibStream zhandle,
1813
+ Tcl_Obj *compressionDictionaryObj);
1814
+
1815
+typedef struct {
1816
+ const struct TclPlatStubs *tclPlatStubs;
1817
+ const struct TclIntStubs *tclIntStubs;
1818
+ const struct TclIntPlatStubs *tclIntPlatStubs;
1819
+} TclStubHooks;
1820
+
1821
+typedef struct TclStubs {
1822
+ int magic;
1823
+ const TclStubHooks *hooks;
1824
+
1825
+ int (*tcl_PkgProvideEx) (Tcl_Interp *interp, const char *name, const char *version, const void *clientData); /* 0 */
1826
+ CONST84_RETURN char * (*tcl_PkgRequireEx) (Tcl_Interp *interp, const char *name, const char *version, int exact, void *clientDataPtr); /* 1 */
1827
+ void (*tcl_Panic) (const char *format, ...) TCL_FORMAT_PRINTF(1, 2); /* 2 */
1828
+ char * (*tcl_Alloc) (unsigned int size); /* 3 */
1829
+ void (*tcl_Free) (char *ptr); /* 4 */
1830
+ char * (*tcl_Realloc) (char *ptr, unsigned int size); /* 5 */
1831
+ char * (*tcl_DbCkalloc) (unsigned int size, const char *file, int line); /* 6 */
1832
+ void (*tcl_DbCkfree) (char *ptr, const char *file, int line); /* 7 */
1833
+ char * (*tcl_DbCkrealloc) (char *ptr, unsigned int size, const char *file, int line); /* 8 */
1834
+#if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
1835
+ void (*tcl_CreateFileHandler) (int fd, int mask, Tcl_FileProc *proc, ClientData clientData); /* 9 */
1836
+#endif /* UNIX */
1837
+#if defined(__WIN32__) /* WIN */
1838
+ void (*reserved9)(void);
1839
+#endif /* WIN */
1840
+#ifdef MAC_OSX_TCL /* MACOSX */
1841
+ void (*tcl_CreateFileHandler) (int fd, int mask, Tcl_FileProc *proc, ClientData clientData); /* 9 */
1842
+#endif /* MACOSX */
1843
+#if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
1844
+ void (*tcl_DeleteFileHandler) (int fd); /* 10 */
1845
+#endif /* UNIX */
1846
+#if defined(__WIN32__) /* WIN */
1847
+ void (*reserved10)(void);
1848
+#endif /* WIN */
1849
+#ifdef MAC_OSX_TCL /* MACOSX */
1850
+ void (*tcl_DeleteFileHandler) (int fd); /* 10 */
1851
+#endif /* MACOSX */
1852
+ void (*tcl_SetTimer) (const Tcl_Time *timePtr); /* 11 */
1853
+ void (*tcl_Sleep) (int ms); /* 12 */
1854
+ int (*tcl_WaitForEvent) (const Tcl_Time *timePtr); /* 13 */
1855
+ int (*tcl_AppendAllObjTypes) (Tcl_Interp *interp, Tcl_Obj *objPtr); /* 14 */
1856
+ void (*tcl_AppendStringsToObj) (Tcl_Obj *objPtr, ...); /* 15 */
1857
+ void (*tcl_AppendToObj) (Tcl_Obj *objPtr, const char *bytes, int length); /* 16 */
1858
+ Tcl_Obj * (*tcl_ConcatObj) (int objc, Tcl_Obj *const objv[]); /* 17 */
1859
+ int (*tcl_ConvertToType) (Tcl_Interp *interp, Tcl_Obj *objPtr, const Tcl_ObjType *typePtr); /* 18 */
1860
+ void (*tcl_DbDecrRefCount) (Tcl_Obj *objPtr, const char *file, int line); /* 19 */
1861
+ void (*tcl_DbIncrRefCount) (Tcl_Obj *objPtr, const char *file, int line); /* 20 */
1862
+ int (*tcl_DbIsShared) (Tcl_Obj *objPtr, const char *file, int line); /* 21 */
1863
+ Tcl_Obj * (*tcl_DbNewBooleanObj) (int boolValue, const char *file, int line); /* 22 */
1864
+ Tcl_Obj * (*tcl_DbNewByteArrayObj) (const unsigned char *bytes, int length, const char *file, int line); /* 23 */
1865
+ Tcl_Obj * (*tcl_DbNewDoubleObj) (double doubleValue, const char *file, int line); /* 24 */
1866
+ Tcl_Obj * (*tcl_DbNewListObj) (int objc, Tcl_Obj *const *objv, const char *file, int line); /* 25 */
1867
+ Tcl_Obj * (*tcl_DbNewLongObj) (long longValue, const char *file, int line); /* 26 */
1868
+ Tcl_Obj * (*tcl_DbNewObj) (const char *file, int line); /* 27 */
1869
+ Tcl_Obj * (*tcl_DbNewStringObj) (const char *bytes, int length, const char *file, int line); /* 28 */
1870
+ Tcl_Obj * (*tcl_DuplicateObj) (Tcl_Obj *objPtr); /* 29 */
1871
+ void (*tclFreeObj) (Tcl_Obj *objPtr); /* 30 */
1872
+ int (*tcl_GetBoolean) (Tcl_Interp *interp, const char *src, int *boolPtr); /* 31 */
1873
+ int (*tcl_GetBooleanFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int *boolPtr); /* 32 */
1874
+ unsigned char * (*tcl_GetByteArrayFromObj) (Tcl_Obj *objPtr, int *lengthPtr); /* 33 */
1875
+ int (*tcl_GetDouble) (Tcl_Interp *interp, const char *src, double *doublePtr); /* 34 */
1876
+ int (*tcl_GetDoubleFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, double *doublePtr); /* 35 */
1877
+ int (*tcl_GetIndexFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, CONST84 char *const *tablePtr, const char *msg, int flags, int *indexPtr); /* 36 */
1878
+ int (*tcl_GetInt) (Tcl_Interp *interp, const char *src, int *intPtr); /* 37 */
1879
+ int (*tcl_GetIntFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int *intPtr); /* 38 */
1880
+ int (*tcl_GetLongFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, long *longPtr); /* 39 */
1881
+ CONST86 Tcl_ObjType * (*tcl_GetObjType) (const char *typeName); /* 40 */
1882
+ char * (*tcl_GetStringFromObj) (Tcl_Obj *objPtr, int *lengthPtr); /* 41 */
1883
+ void (*tcl_InvalidateStringRep) (Tcl_Obj *objPtr); /* 42 */
1884
+ int (*tcl_ListObjAppendList) (Tcl_Interp *interp, Tcl_Obj *listPtr, Tcl_Obj *elemListPtr); /* 43 */
1885
+ int (*tcl_ListObjAppendElement) (Tcl_Interp *interp, Tcl_Obj *listPtr, Tcl_Obj *objPtr); /* 44 */
1886
+ int (*tcl_ListObjGetElements) (Tcl_Interp *interp, Tcl_Obj *listPtr, int *objcPtr, Tcl_Obj ***objvPtr); /* 45 */
1887
+ int (*tcl_ListObjIndex) (Tcl_Interp *interp, Tcl_Obj *listPtr, int index, Tcl_Obj **objPtrPtr); /* 46 */
1888
+ int (*tcl_ListObjLength) (Tcl_Interp *interp, Tcl_Obj *listPtr, int *lengthPtr); /* 47 */
1889
+ int (*tcl_ListObjReplace) (Tcl_Interp *interp, Tcl_Obj *listPtr, int first, int count, int objc, Tcl_Obj *const objv[]); /* 48 */
1890
+ Tcl_Obj * (*tcl_NewBooleanObj) (int boolValue); /* 49 */
1891
+ Tcl_Obj * (*tcl_NewByteArrayObj) (const unsigned char *bytes, int length); /* 50 */
1892
+ Tcl_Obj * (*tcl_NewDoubleObj) (double doubleValue); /* 51 */
1893
+ Tcl_Obj * (*tcl_NewIntObj) (int intValue); /* 52 */
1894
+ Tcl_Obj * (*tcl_NewListObj) (int objc, Tcl_Obj *const objv[]); /* 53 */
1895
+ Tcl_Obj * (*tcl_NewLongObj) (long longValue); /* 54 */
1896
+ Tcl_Obj * (*tcl_NewObj) (void); /* 55 */
1897
+ Tcl_Obj * (*tcl_NewStringObj) (const char *bytes, int length); /* 56 */
1898
+ void (*tcl_SetBooleanObj) (Tcl_Obj *objPtr, int boolValue); /* 57 */
1899
+ unsigned char * (*tcl_SetByteArrayLength) (Tcl_Obj *objPtr, int length); /* 58 */
1900
+ void (*tcl_SetByteArrayObj) (Tcl_Obj *objPtr, const unsigned char *bytes, int length); /* 59 */
1901
+ void (*tcl_SetDoubleObj) (Tcl_Obj *objPtr, double doubleValue); /* 60 */
1902
+ void (*tcl_SetIntObj) (Tcl_Obj *objPtr, int intValue); /* 61 */
1903
+ void (*tcl_SetListObj) (Tcl_Obj *objPtr, int objc, Tcl_Obj *const objv[]); /* 62 */
1904
+ void (*tcl_SetLongObj) (Tcl_Obj *objPtr, long longValue); /* 63 */
1905
+ void (*tcl_SetObjLength) (Tcl_Obj *objPtr, int length); /* 64 */
1906
+ void (*tcl_SetStringObj) (Tcl_Obj *objPtr, const char *bytes, int length); /* 65 */
1907
+ void (*tcl_AddErrorInfo) (Tcl_Interp *interp, const char *message); /* 66 */
1908
+ void (*tcl_AddObjErrorInfo) (Tcl_Interp *interp, const char *message, int length); /* 67 */
1909
+ void (*tcl_AllowExceptions) (Tcl_Interp *interp); /* 68 */
1910
+ void (*tcl_AppendElement) (Tcl_Interp *interp, const char *element); /* 69 */
1911
+ void (*tcl_AppendResult) (Tcl_Interp *interp, ...); /* 70 */
1912
+ Tcl_AsyncHandler (*tcl_AsyncCreate) (Tcl_AsyncProc *proc, ClientData clientData); /* 71 */
1913
+ void (*tcl_AsyncDelete) (Tcl_AsyncHandler async); /* 72 */
1914
+ int (*tcl_AsyncInvoke) (Tcl_Interp *interp, int code); /* 73 */
1915
+ void (*tcl_AsyncMark) (Tcl_AsyncHandler async); /* 74 */
1916
+ int (*tcl_AsyncReady) (void); /* 75 */
1917
+ void (*tcl_BackgroundError) (Tcl_Interp *interp); /* 76 */
1918
+ char (*tcl_Backslash) (const char *src, int *readPtr); /* 77 */
1919
+ int (*tcl_BadChannelOption) (Tcl_Interp *interp, const char *optionName, const char *optionList); /* 78 */
1920
+ void (*tcl_CallWhenDeleted) (Tcl_Interp *interp, Tcl_InterpDeleteProc *proc, ClientData clientData); /* 79 */
1921
+ void (*tcl_CancelIdleCall) (Tcl_IdleProc *idleProc, ClientData clientData); /* 80 */
1922
+ int (*tcl_Close) (Tcl_Interp *interp, Tcl_Channel chan); /* 81 */
1923
+ int (*tcl_CommandComplete) (const char *cmd); /* 82 */
1924
+ char * (*tcl_Concat) (int argc, CONST84 char *const *argv); /* 83 */
1925
+ int (*tcl_ConvertElement) (const char *src, char *dst, int flags); /* 84 */
1926
+ int (*tcl_ConvertCountedElement) (const char *src, int length, char *dst, int flags); /* 85 */
1927
+ int (*tcl_CreateAlias) (Tcl_Interp *slave, const char *slaveCmd, Tcl_Interp *target, const char *targetCmd, int argc, CONST84 char *const *argv); /* 86 */
1928
+ int (*tcl_CreateAliasObj) (Tcl_Interp *slave, const char *slaveCmd, Tcl_Interp *target, const char *targetCmd, int objc, Tcl_Obj *const objv[]); /* 87 */
1929
+ Tcl_Channel (*tcl_CreateChannel) (const Tcl_ChannelType *typePtr, const char *chanName, ClientData instanceData, int mask); /* 88 */
1930
+ void (*tcl_CreateChannelHandler) (Tcl_Channel chan, int mask, Tcl_ChannelProc *proc, ClientData clientData); /* 89 */
1931
+ void (*tcl_CreateCloseHandler) (Tcl_Channel chan, Tcl_CloseProc *proc, ClientData clientData); /* 90 */
1932
+ Tcl_Command (*tcl_CreateCommand) (Tcl_Interp *interp, const char *cmdName, Tcl_CmdProc *proc, ClientData clientData, Tcl_CmdDeleteProc *deleteProc); /* 91 */
1933
+ void (*tcl_CreateEventSource) (Tcl_EventSetupProc *setupProc, Tcl_EventCheckProc *checkProc, ClientData clientData); /* 92 */
1934
+ void (*tcl_CreateExitHandler) (Tcl_ExitProc *proc, ClientData clientData); /* 93 */
1935
+ Tcl_Interp * (*tcl_CreateInterp) (void); /* 94 */
1936
+ void (*tcl_CreateMathFunc) (Tcl_Interp *interp, const char *name, int numArgs, Tcl_ValueType *argTypes, Tcl_MathProc *proc, ClientData clientData); /* 95 */
1937
+ Tcl_Command (*tcl_CreateObjCommand) (Tcl_Interp *interp, const char *cmdName, Tcl_ObjCmdProc *proc, ClientData clientData, Tcl_CmdDeleteProc *deleteProc); /* 96 */
1938
+ Tcl_Interp * (*tcl_CreateSlave) (Tcl_Interp *interp, const char *slaveName, int isSafe); /* 97 */
1939
+ Tcl_TimerToken (*tcl_CreateTimerHandler) (int milliseconds, Tcl_TimerProc *proc, ClientData clientData); /* 98 */
1940
+ Tcl_Trace (*tcl_CreateTrace) (Tcl_Interp *interp, int level, Tcl_CmdTraceProc *proc, ClientData clientData); /* 99 */
1941
+ void (*tcl_DeleteAssocData) (Tcl_Interp *interp, const char *name); /* 100 */
1942
+ void (*tcl_DeleteChannelHandler) (Tcl_Channel chan, Tcl_ChannelProc *proc, ClientData clientData); /* 101 */
1943
+ void (*tcl_DeleteCloseHandler) (Tcl_Channel chan, Tcl_CloseProc *proc, ClientData clientData); /* 102 */
1944
+ int (*tcl_DeleteCommand) (Tcl_Interp *interp, const char *cmdName); /* 103 */
1945
+ int (*tcl_DeleteCommandFromToken) (Tcl_Interp *interp, Tcl_Command command); /* 104 */
1946
+ void (*tcl_DeleteEvents) (Tcl_EventDeleteProc *proc, ClientData clientData); /* 105 */
1947
+ void (*tcl_DeleteEventSource) (Tcl_EventSetupProc *setupProc, Tcl_EventCheckProc *checkProc, ClientData clientData); /* 106 */
1948
+ void (*tcl_DeleteExitHandler) (Tcl_ExitProc *proc, ClientData clientData); /* 107 */
1949
+ void (*tcl_DeleteHashEntry) (Tcl_HashEntry *entryPtr); /* 108 */
1950
+ void (*tcl_DeleteHashTable) (Tcl_HashTable *tablePtr); /* 109 */
1951
+ void (*tcl_DeleteInterp) (Tcl_Interp *interp); /* 110 */
1952
+ void (*tcl_DetachPids) (int numPids, Tcl_Pid *pidPtr); /* 111 */
1953
+ void (*tcl_DeleteTimerHandler) (Tcl_TimerToken token); /* 112 */
1954
+ void (*tcl_DeleteTrace) (Tcl_Interp *interp, Tcl_Trace trace); /* 113 */
1955
+ void (*tcl_DontCallWhenDeleted) (Tcl_Interp *interp, Tcl_InterpDeleteProc *proc, ClientData clientData); /* 114 */
1956
+ int (*tcl_DoOneEvent) (int flags); /* 115 */
1957
+ void (*tcl_DoWhenIdle) (Tcl_IdleProc *proc, ClientData clientData); /* 116 */
1958
+ char * (*tcl_DStringAppend) (Tcl_DString *dsPtr, const char *bytes, int length); /* 117 */
1959
+ char * (*tcl_DStringAppendElement) (Tcl_DString *dsPtr, const char *element); /* 118 */
1960
+ void (*tcl_DStringEndSublist) (Tcl_DString *dsPtr); /* 119 */
1961
+ void (*tcl_DStringFree) (Tcl_DString *dsPtr); /* 120 */
1962
+ void (*tcl_DStringGetResult) (Tcl_Interp *interp, Tcl_DString *dsPtr); /* 121 */
1963
+ void (*tcl_DStringInit) (Tcl_DString *dsPtr); /* 122 */
1964
+ void (*tcl_DStringResult) (Tcl_Interp *interp, Tcl_DString *dsPtr); /* 123 */
1965
+ void (*tcl_DStringSetLength) (Tcl_DString *dsPtr, int length); /* 124 */
1966
+ void (*tcl_DStringStartSublist) (Tcl_DString *dsPtr); /* 125 */
1967
+ int (*tcl_Eof) (Tcl_Channel chan); /* 126 */
1968
+ CONST84_RETURN char * (*tcl_ErrnoId) (void); /* 127 */
1969
+ CONST84_RETURN char * (*tcl_ErrnoMsg) (int err); /* 128 */
1970
+ int (*tcl_Eval) (Tcl_Interp *interp, const char *script); /* 129 */
1971
+ int (*tcl_EvalFile) (Tcl_Interp *interp, const char *fileName); /* 130 */
1972
+ int (*tcl_EvalObj) (Tcl_Interp *interp, Tcl_Obj *objPtr); /* 131 */
1973
+ void (*tcl_EventuallyFree) (ClientData clientData, Tcl_FreeProc *freeProc); /* 132 */
1974
+ void (*tcl_Exit) (int status); /* 133 */
1975
+ int (*tcl_ExposeCommand) (Tcl_Interp *interp, const char *hiddenCmdToken, const char *cmdName); /* 134 */
1976
+ int (*tcl_ExprBoolean) (Tcl_Interp *interp, const char *expr, int *ptr); /* 135 */
1977
+ int (*tcl_ExprBooleanObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int *ptr); /* 136 */
1978
+ int (*tcl_ExprDouble) (Tcl_Interp *interp, const char *expr, double *ptr); /* 137 */
1979
+ int (*tcl_ExprDoubleObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, double *ptr); /* 138 */
1980
+ int (*tcl_ExprLong) (Tcl_Interp *interp, const char *expr, long *ptr); /* 139 */
1981
+ int (*tcl_ExprLongObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, long *ptr); /* 140 */
1982
+ int (*tcl_ExprObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_Obj **resultPtrPtr); /* 141 */
1983
+ int (*tcl_ExprString) (Tcl_Interp *interp, const char *expr); /* 142 */
1984
+ void (*tcl_Finalize) (void); /* 143 */
1985
+ void (*tcl_FindExecutable) (const char *argv0); /* 144 */
1986
+ Tcl_HashEntry * (*tcl_FirstHashEntry) (Tcl_HashTable *tablePtr, Tcl_HashSearch *searchPtr); /* 145 */
1987
+ int (*tcl_Flush) (Tcl_Channel chan); /* 146 */
1988
+ void (*tcl_FreeResult) (Tcl_Interp *interp); /* 147 */
1989
+ int (*tcl_GetAlias) (Tcl_Interp *interp, const char *slaveCmd, Tcl_Interp **targetInterpPtr, CONST84 char **targetCmdPtr, int *argcPtr, CONST84 char ***argvPtr); /* 148 */
1990
+ int (*tcl_GetAliasObj) (Tcl_Interp *interp, const char *slaveCmd, Tcl_Interp **targetInterpPtr, CONST84 char **targetCmdPtr, int *objcPtr, Tcl_Obj ***objv); /* 149 */
1991
+ ClientData (*tcl_GetAssocData) (Tcl_Interp *interp, const char *name, Tcl_InterpDeleteProc **procPtr); /* 150 */
1992
+ Tcl_Channel (*tcl_GetChannel) (Tcl_Interp *interp, const char *chanName, int *modePtr); /* 151 */
1993
+ int (*tcl_GetChannelBufferSize) (Tcl_Channel chan); /* 152 */
1994
+ int (*tcl_GetChannelHandle) (Tcl_Channel chan, int direction, ClientData *handlePtr); /* 153 */
1995
+ ClientData (*tcl_GetChannelInstanceData) (Tcl_Channel chan); /* 154 */
1996
+ int (*tcl_GetChannelMode) (Tcl_Channel chan); /* 155 */
1997
+ CONST84_RETURN char * (*tcl_GetChannelName) (Tcl_Channel chan); /* 156 */
1998
+ int (*tcl_GetChannelOption) (Tcl_Interp *interp, Tcl_Channel chan, const char *optionName, Tcl_DString *dsPtr); /* 157 */
1999
+ CONST86 Tcl_ChannelType * (*tcl_GetChannelType) (Tcl_Channel chan); /* 158 */
2000
+ int (*tcl_GetCommandInfo) (Tcl_Interp *interp, const char *cmdName, Tcl_CmdInfo *infoPtr); /* 159 */
2001
+ CONST84_RETURN char * (*tcl_GetCommandName) (Tcl_Interp *interp, Tcl_Command command); /* 160 */
2002
+ int (*tcl_GetErrno) (void); /* 161 */
2003
+ CONST84_RETURN char * (*tcl_GetHostName) (void); /* 162 */
2004
+ int (*tcl_GetInterpPath) (Tcl_Interp *askInterp, Tcl_Interp *slaveInterp); /* 163 */
2005
+ Tcl_Interp * (*tcl_GetMaster) (Tcl_Interp *interp); /* 164 */
2006
+ const char * (*tcl_GetNameOfExecutable) (void); /* 165 */
2007
+ Tcl_Obj * (*tcl_GetObjResult) (Tcl_Interp *interp); /* 166 */
2008
+#if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
2009
+ int (*tcl_GetOpenFile) (Tcl_Interp *interp, const char *chanID, int forWriting, int checkUsage, ClientData *filePtr); /* 167 */
2010
+#endif /* UNIX */
2011
+#if defined(__WIN32__) /* WIN */
2012
+ void (*reserved167)(void);
2013
+#endif /* WIN */
2014
+#ifdef MAC_OSX_TCL /* MACOSX */
2015
+ int (*tcl_GetOpenFile) (Tcl_Interp *interp, const char *chanID, int forWriting, int checkUsage, ClientData *filePtr); /* 167 */
2016
+#endif /* MACOSX */
2017
+ Tcl_PathType (*tcl_GetPathType) (const char *path); /* 168 */
2018
+ int (*tcl_Gets) (Tcl_Channel chan, Tcl_DString *dsPtr); /* 169 */
2019
+ int (*tcl_GetsObj) (Tcl_Channel chan, Tcl_Obj *objPtr); /* 170 */
2020
+ int (*tcl_GetServiceMode) (void); /* 171 */
2021
+ Tcl_Interp * (*tcl_GetSlave) (Tcl_Interp *interp, const char *slaveName); /* 172 */
2022
+ Tcl_Channel (*tcl_GetStdChannel) (int type); /* 173 */
2023
+ CONST84_RETURN char * (*tcl_GetStringResult) (Tcl_Interp *interp); /* 174 */
2024
+ CONST84_RETURN char * (*tcl_GetVar) (Tcl_Interp *interp, const char *varName, int flags); /* 175 */
2025
+ CONST84_RETURN char * (*tcl_GetVar2) (Tcl_Interp *interp, const char *part1, const char *part2, int flags); /* 176 */
2026
+ int (*tcl_GlobalEval) (Tcl_Interp *interp, const char *command); /* 177 */
2027
+ int (*tcl_GlobalEvalObj) (Tcl_Interp *interp, Tcl_Obj *objPtr); /* 178 */
2028
+ int (*tcl_HideCommand) (Tcl_Interp *interp, const char *cmdName, const char *hiddenCmdToken); /* 179 */
2029
+ int (*tcl_Init) (Tcl_Interp *interp); /* 180 */
2030
+ void (*tcl_InitHashTable) (Tcl_HashTable *tablePtr, int keyType); /* 181 */
2031
+ int (*tcl_InputBlocked) (Tcl_Channel chan); /* 182 */
2032
+ int (*tcl_InputBuffered) (Tcl_Channel chan); /* 183 */
2033
+ int (*tcl_InterpDeleted) (Tcl_Interp *interp); /* 184 */
2034
+ int (*tcl_IsSafe) (Tcl_Interp *interp); /* 185 */
2035
+ char * (*tcl_JoinPath) (int argc, CONST84 char *const *argv, Tcl_DString *resultPtr); /* 186 */
2036
+ int (*tcl_LinkVar) (Tcl_Interp *interp, const char *varName, char *addr, int type); /* 187 */
2037
+ void (*reserved188)(void);
2038
+ Tcl_Channel (*tcl_MakeFileChannel) (ClientData handle, int mode); /* 189 */
2039
+ int (*tcl_MakeSafe) (Tcl_Interp *interp); /* 190 */
2040
+ Tcl_Channel (*tcl_MakeTcpClientChannel) (ClientData tcpSocket); /* 191 */
2041
+ char * (*tcl_Merge) (int argc, CONST84 char *const *argv); /* 192 */
2042
+ Tcl_HashEntry * (*tcl_NextHashEntry) (Tcl_HashSearch *searchPtr); /* 193 */
2043
+ void (*tcl_NotifyChannel) (Tcl_Channel channel, int mask); /* 194 */
2044
+ Tcl_Obj * (*tcl_ObjGetVar2) (Tcl_Interp *interp, Tcl_Obj *part1Ptr, Tcl_Obj *part2Ptr, int flags); /* 195 */
2045
+ Tcl_Obj * (*tcl_ObjSetVar2) (Tcl_Interp *interp, Tcl_Obj *part1Ptr, Tcl_Obj *part2Ptr, Tcl_Obj *newValuePtr, int flags); /* 196 */
2046
+ Tcl_Channel (*tcl_OpenCommandChannel) (Tcl_Interp *interp, int argc, CONST84 char **argv, int flags); /* 197 */
2047
+ Tcl_Channel (*tcl_OpenFileChannel) (Tcl_Interp *interp, const char *fileName, const char *modeString, int permissions); /* 198 */
2048
+ Tcl_Channel (*tcl_OpenTcpClient) (Tcl_Interp *interp, int port, const char *address, const char *myaddr, int myport, int async); /* 199 */
2049
+ Tcl_Channel (*tcl_OpenTcpServer) (Tcl_Interp *interp, int port, const char *host, Tcl_TcpAcceptProc *acceptProc, ClientData callbackData); /* 200 */
2050
+ void (*tcl_Preserve) (ClientData data); /* 201 */
2051
+ void (*tcl_PrintDouble) (Tcl_Interp *interp, double value, char *dst); /* 202 */
2052
+ int (*tcl_PutEnv) (const char *assignment); /* 203 */
2053
+ CONST84_RETURN char * (*tcl_PosixError) (Tcl_Interp *interp); /* 204 */
2054
+ void (*tcl_QueueEvent) (Tcl_Event *evPtr, Tcl_QueuePosition position); /* 205 */
2055
+ int (*tcl_Read) (Tcl_Channel chan, char *bufPtr, int toRead); /* 206 */
2056
+ void (*tcl_ReapDetachedProcs) (void); /* 207 */
2057
+ int (*tcl_RecordAndEval) (Tcl_Interp *interp, const char *cmd, int flags); /* 208 */
2058
+ int (*tcl_RecordAndEvalObj) (Tcl_Interp *interp, Tcl_Obj *cmdPtr, int flags); /* 209 */
2059
+ void (*tcl_RegisterChannel) (Tcl_Interp *interp, Tcl_Channel chan); /* 210 */
2060
+ void (*tcl_RegisterObjType) (const Tcl_ObjType *typePtr); /* 211 */
2061
+ Tcl_RegExp (*tcl_RegExpCompile) (Tcl_Interp *interp, const char *pattern); /* 212 */
2062
+ int (*tcl_RegExpExec) (Tcl_Interp *interp, Tcl_RegExp regexp, const char *text, const char *start); /* 213 */
2063
+ int (*tcl_RegExpMatch) (Tcl_Interp *interp, const char *text, const char *pattern); /* 214 */
2064
+ void (*tcl_RegExpRange) (Tcl_RegExp regexp, int index, CONST84 char **startPtr, CONST84 char **endPtr); /* 215 */
2065
+ void (*tcl_Release) (ClientData clientData); /* 216 */
2066
+ void (*tcl_ResetResult) (Tcl_Interp *interp); /* 217 */
2067
+ int (*tcl_ScanElement) (const char *src, int *flagPtr); /* 218 */
2068
+ int (*tcl_ScanCountedElement) (const char *src, int length, int *flagPtr); /* 219 */
2069
+ int (*tcl_SeekOld) (Tcl_Channel chan, int offset, int mode); /* 220 */
2070
+ int (*tcl_ServiceAll) (void); /* 221 */
2071
+ int (*tcl_ServiceEvent) (int flags); /* 222 */
2072
+ void (*tcl_SetAssocData) (Tcl_Interp *interp, const char *name, Tcl_InterpDeleteProc *proc, ClientData clientData); /* 223 */
2073
+ void (*tcl_SetChannelBufferSize) (Tcl_Channel chan, int sz); /* 224 */
2074
+ int (*tcl_SetChannelOption) (Tcl_Interp *interp, Tcl_Channel chan, const char *optionName, const char *newValue); /* 225 */
2075
+ int (*tcl_SetCommandInfo) (Tcl_Interp *interp, const char *cmdName, const Tcl_CmdInfo *infoPtr); /* 226 */
2076
+ void (*tcl_SetErrno) (int err); /* 227 */
2077
+ void (*tcl_SetErrorCode) (Tcl_Interp *interp, ...); /* 228 */
2078
+ void (*tcl_SetMaxBlockTime) (const Tcl_Time *timePtr); /* 229 */
2079
+ void (*tcl_SetPanicProc) (Tcl_PanicProc *panicProc); /* 230 */
2080
+ int (*tcl_SetRecursionLimit) (Tcl_Interp *interp, int depth); /* 231 */
2081
+ void (*tcl_SetResult) (Tcl_Interp *interp, char *result, Tcl_FreeProc *freeProc); /* 232 */
2082
+ int (*tcl_SetServiceMode) (int mode); /* 233 */
2083
+ void (*tcl_SetObjErrorCode) (Tcl_Interp *interp, Tcl_Obj *errorObjPtr); /* 234 */
2084
+ void (*tcl_SetObjResult) (Tcl_Interp *interp, Tcl_Obj *resultObjPtr); /* 235 */
2085
+ void (*tcl_SetStdChannel) (Tcl_Channel channel, int type); /* 236 */
2086
+ CONST84_RETURN char * (*tcl_SetVar) (Tcl_Interp *interp, const char *varName, const char *newValue, int flags); /* 237 */
2087
+ CONST84_RETURN char * (*tcl_SetVar2) (Tcl_Interp *interp, const char *part1, const char *part2, const char *newValue, int flags); /* 238 */
2088
+ CONST84_RETURN char * (*tcl_SignalId) (int sig); /* 239 */
2089
+ CONST84_RETURN char * (*tcl_SignalMsg) (int sig); /* 240 */
2090
+ void (*tcl_SourceRCFile) (Tcl_Interp *interp); /* 241 */
2091
+ int (*tcl_SplitList) (Tcl_Interp *interp, const char *listStr, int *argcPtr, CONST84 char ***argvPtr); /* 242 */
2092
+ void (*tcl_SplitPath) (const char *path, int *argcPtr, CONST84 char ***argvPtr); /* 243 */
2093
+ void (*tcl_StaticPackage) (Tcl_Interp *interp, const char *pkgName, Tcl_PackageInitProc *initProc, Tcl_PackageInitProc *safeInitProc); /* 244 */
2094
+ int (*tcl_StringMatch) (const char *str, const char *pattern); /* 245 */
2095
+ int (*tcl_TellOld) (Tcl_Channel chan); /* 246 */
2096
+ int (*tcl_TraceVar) (Tcl_Interp *interp, const char *varName, int flags, Tcl_VarTraceProc *proc, ClientData clientData); /* 247 */
2097
+ int (*tcl_TraceVar2) (Tcl_Interp *interp, const char *part1, const char *part2, int flags, Tcl_VarTraceProc *proc, ClientData clientData); /* 248 */
2098
+ char * (*tcl_TranslateFileName) (Tcl_Interp *interp, const char *name, Tcl_DString *bufferPtr); /* 249 */
2099
+ int (*tcl_Ungets) (Tcl_Channel chan, const char *str, int len, int atHead); /* 250 */
2100
+ void (*tcl_UnlinkVar) (Tcl_Interp *interp, const char *varName); /* 251 */
2101
+ int (*tcl_UnregisterChannel) (Tcl_Interp *interp, Tcl_Channel chan); /* 252 */
2102
+ int (*tcl_UnsetVar) (Tcl_Interp *interp, const char *varName, int flags); /* 253 */
2103
+ int (*tcl_UnsetVar2) (Tcl_Interp *interp, const char *part1, const char *part2, int flags); /* 254 */
2104
+ void (*tcl_UntraceVar) (Tcl_Interp *interp, const char *varName, int flags, Tcl_VarTraceProc *proc, ClientData clientData); /* 255 */
2105
+ void (*tcl_UntraceVar2) (Tcl_Interp *interp, const char *part1, const char *part2, int flags, Tcl_VarTraceProc *proc, ClientData clientData); /* 256 */
2106
+ void (*tcl_UpdateLinkedVar) (Tcl_Interp *interp, const char *varName); /* 257 */
2107
+ int (*tcl_UpVar) (Tcl_Interp *interp, const char *frameName, const char *varName, const char *localName, int flags); /* 258 */
2108
+ int (*tcl_UpVar2) (Tcl_Interp *interp, const char *frameName, const char *part1, const char *part2, const char *localName, int flags); /* 259 */
2109
+ int (*tcl_VarEval) (Tcl_Interp *interp, ...); /* 260 */
2110
+ ClientData (*tcl_VarTraceInfo) (Tcl_Interp *interp, const char *varName, int flags, Tcl_VarTraceProc *procPtr, ClientData prevClientData); /* 261 */
2111
+ ClientData (*tcl_VarTraceInfo2) (Tcl_Interp *interp, const char *part1, const char *part2, int flags, Tcl_VarTraceProc *procPtr, ClientData prevClientData); /* 262 */
2112
+ int (*tcl_Write) (Tcl_Channel chan, const char *s, int slen); /* 263 */
2113
+ void (*tcl_WrongNumArgs) (Tcl_Interp *interp, int objc, Tcl_Obj *const objv[], const char *message); /* 264 */
2114
+ int (*tcl_DumpActiveMemory) (const char *fileName); /* 265 */
2115
+ void (*tcl_ValidateAllMemory) (const char *file, int line); /* 266 */
2116
+ void (*tcl_AppendResultVA) (Tcl_Interp *interp, va_list argList); /* 267 */
2117
+ void (*tcl_AppendStringsToObjVA) (Tcl_Obj *objPtr, va_list argList); /* 268 */
2118
+ char * (*tcl_HashStats) (Tcl_HashTable *tablePtr); /* 269 */
2119
+ CONST84_RETURN char * (*tcl_ParseVar) (Tcl_Interp *interp, const char *start, CONST84 char **termPtr); /* 270 */
2120
+ CONST84_RETURN char * (*tcl_PkgPresent) (Tcl_Interp *interp, const char *name, const char *version, int exact); /* 271 */
2121
+ CONST84_RETURN char * (*tcl_PkgPresentEx) (Tcl_Interp *interp, const char *name, const char *version, int exact, void *clientDataPtr); /* 272 */
2122
+ int (*tcl_PkgProvide) (Tcl_Interp *interp, const char *name, const char *version); /* 273 */
2123
+ CONST84_RETURN char * (*tcl_PkgRequire) (Tcl_Interp *interp, const char *name, const char *version, int exact); /* 274 */
2124
+ void (*tcl_SetErrorCodeVA) (Tcl_Interp *interp, va_list argList); /* 275 */
2125
+ int (*tcl_VarEvalVA) (Tcl_Interp *interp, va_list argList); /* 276 */
2126
+ Tcl_Pid (*tcl_WaitPid) (Tcl_Pid pid, int *statPtr, int options); /* 277 */
2127
+ void (*tcl_PanicVA) (const char *format, va_list argList); /* 278 */
2128
+ void (*tcl_GetVersion) (int *major, int *minor, int *patchLevel, int *type); /* 279 */
2129
+ void (*tcl_InitMemory) (Tcl_Interp *interp); /* 280 */
2130
+ Tcl_Channel (*tcl_StackChannel) (Tcl_Interp *interp, const Tcl_ChannelType *typePtr, ClientData instanceData, int mask, Tcl_Channel prevChan); /* 281 */
2131
+ int (*tcl_UnstackChannel) (Tcl_Interp *interp, Tcl_Channel chan); /* 282 */
2132
+ Tcl_Channel (*tcl_GetStackedChannel) (Tcl_Channel chan); /* 283 */
2133
+ void (*tcl_SetMainLoop) (Tcl_MainLoopProc *proc); /* 284 */
2134
+ void (*reserved285)(void);
2135
+ void (*tcl_AppendObjToObj) (Tcl_Obj *objPtr, Tcl_Obj *appendObjPtr); /* 286 */
2136
+ Tcl_Encoding (*tcl_CreateEncoding) (const Tcl_EncodingType *typePtr); /* 287 */
2137
+ void (*tcl_CreateThreadExitHandler) (Tcl_ExitProc *proc, ClientData clientData); /* 288 */
2138
+ void (*tcl_DeleteThreadExitHandler) (Tcl_ExitProc *proc, ClientData clientData); /* 289 */
2139
+ void (*tcl_DiscardResult) (Tcl_SavedResult *statePtr); /* 290 */
2140
+ int (*tcl_EvalEx) (Tcl_Interp *interp, const char *script, int numBytes, int flags); /* 291 */
2141
+ int (*tcl_EvalObjv) (Tcl_Interp *interp, int objc, Tcl_Obj *const objv[], int flags); /* 292 */
2142
+ int (*tcl_EvalObjEx) (Tcl_Interp *interp, Tcl_Obj *objPtr, int flags); /* 293 */
2143
+ void (*tcl_ExitThread) (int status); /* 294 */
2144
+ int (*tcl_ExternalToUtf) (Tcl_Interp *interp, Tcl_Encoding encoding, const char *src, int srcLen, int flags, Tcl_EncodingState *statePtr, char *dst, int dstLen, int *srcReadPtr, int *dstWrotePtr, int *dstCharsPtr); /* 295 */
2145
+ char * (*tcl_ExternalToUtfDString) (Tcl_Encoding encoding, const char *src, int srcLen, Tcl_DString *dsPtr); /* 296 */
2146
+ void (*tcl_FinalizeThread) (void); /* 297 */
2147
+ void (*tcl_FinalizeNotifier) (ClientData clientData); /* 298 */
2148
+ void (*tcl_FreeEncoding) (Tcl_Encoding encoding); /* 299 */
2149
+ Tcl_ThreadId (*tcl_GetCurrentThread) (void); /* 300 */
2150
+ Tcl_Encoding (*tcl_GetEncoding) (Tcl_Interp *interp, const char *name); /* 301 */
2151
+ CONST84_RETURN char * (*tcl_GetEncodingName) (Tcl_Encoding encoding); /* 302 */
2152
+ void (*tcl_GetEncodingNames) (Tcl_Interp *interp); /* 303 */
2153
+ int (*tcl_GetIndexFromObjStruct) (Tcl_Interp *interp, Tcl_Obj *objPtr, const void *tablePtr, int offset, const char *msg, int flags, int *indexPtr); /* 304 */
2154
+ void * (*tcl_GetThreadData) (Tcl_ThreadDataKey *keyPtr, int size); /* 305 */
2155
+ Tcl_Obj * (*tcl_GetVar2Ex) (Tcl_Interp *interp, const char *part1, const char *part2, int flags); /* 306 */
2156
+ ClientData (*tcl_InitNotifier) (void); /* 307 */
2157
+ void (*tcl_MutexLock) (Tcl_Mutex *mutexPtr); /* 308 */
2158
+ void (*tcl_MutexUnlock) (Tcl_Mutex *mutexPtr); /* 309 */
2159
+ void (*tcl_ConditionNotify) (Tcl_Condition *condPtr); /* 310 */
2160
+ void (*tcl_ConditionWait) (Tcl_Condition *condPtr, Tcl_Mutex *mutexPtr, const Tcl_Time *timePtr); /* 311 */
2161
+ int (*tcl_NumUtfChars) (const char *src, int length); /* 312 */
2162
+ int (*tcl_ReadChars) (Tcl_Channel channel, Tcl_Obj *objPtr, int charsToRead, int appendFlag); /* 313 */
2163
+ void (*tcl_RestoreResult) (Tcl_Interp *interp, Tcl_SavedResult *statePtr); /* 314 */
2164
+ void (*tcl_SaveResult) (Tcl_Interp *interp, Tcl_SavedResult *statePtr); /* 315 */
2165
+ int (*tcl_SetSystemEncoding) (Tcl_Interp *interp, const char *name); /* 316 */
2166
+ Tcl_Obj * (*tcl_SetVar2Ex) (Tcl_Interp *interp, const char *part1, const char *part2, Tcl_Obj *newValuePtr, int flags); /* 317 */
2167
+ void (*tcl_ThreadAlert) (Tcl_ThreadId threadId); /* 318 */
2168
+ void (*tcl_ThreadQueueEvent) (Tcl_ThreadId threadId, Tcl_Event *evPtr, Tcl_QueuePosition position); /* 319 */
2169
+ Tcl_UniChar (*tcl_UniCharAtIndex) (const char *src, int index); /* 320 */
2170
+ Tcl_UniChar (*tcl_UniCharToLower) (int ch); /* 321 */
2171
+ Tcl_UniChar (*tcl_UniCharToTitle) (int ch); /* 322 */
2172
+ Tcl_UniChar (*tcl_UniCharToUpper) (int ch); /* 323 */
2173
+ int (*tcl_UniCharToUtf) (int ch, char *buf); /* 324 */
2174
+ CONST84_RETURN char * (*tcl_UtfAtIndex) (const char *src, int index); /* 325 */
2175
+ int (*tcl_UtfCharComplete) (const char *src, int length); /* 326 */
2176
+ int (*tcl_UtfBackslash) (const char *src, int *readPtr, char *dst); /* 327 */
2177
+ CONST84_RETURN char * (*tcl_UtfFindFirst) (const char *src, int ch); /* 328 */
2178
+ CONST84_RETURN char * (*tcl_UtfFindLast) (const char *src, int ch); /* 329 */
2179
+ CONST84_RETURN char * (*tcl_UtfNext) (const char *src); /* 330 */
2180
+ CONST84_RETURN char * (*tcl_UtfPrev) (const char *src, const char *start); /* 331 */
2181
+ int (*tcl_UtfToExternal) (Tcl_Interp *interp, Tcl_Encoding encoding, const char *src, int srcLen, int flags, Tcl_EncodingState *statePtr, char *dst, int dstLen, int *srcReadPtr, int *dstWrotePtr, int *dstCharsPtr); /* 332 */
2182
+ char * (*tcl_UtfToExternalDString) (Tcl_Encoding encoding, const char *src, int srcLen, Tcl_DString *dsPtr); /* 333 */
2183
+ int (*tcl_UtfToLower) (char *src); /* 334 */
2184
+ int (*tcl_UtfToTitle) (char *src); /* 335 */
2185
+ int (*tcl_UtfToUniChar) (const char *src, Tcl_UniChar *chPtr); /* 336 */
2186
+ int (*tcl_UtfToUpper) (char *src); /* 337 */
2187
+ int (*tcl_WriteChars) (Tcl_Channel chan, const char *src, int srcLen); /* 338 */
2188
+ int (*tcl_WriteObj) (Tcl_Channel chan, Tcl_Obj *objPtr); /* 339 */
2189
+ char * (*tcl_GetString) (Tcl_Obj *objPtr); /* 340 */
2190
+ CONST84_RETURN char * (*tcl_GetDefaultEncodingDir) (void); /* 341 */
2191
+ void (*tcl_SetDefaultEncodingDir) (const char *path); /* 342 */
2192
+ void (*tcl_AlertNotifier) (ClientData clientData); /* 343 */
2193
+ void (*tcl_ServiceModeHook) (int mode); /* 344 */
2194
+ int (*tcl_UniCharIsAlnum) (int ch); /* 345 */
2195
+ int (*tcl_UniCharIsAlpha) (int ch); /* 346 */
2196
+ int (*tcl_UniCharIsDigit) (int ch); /* 347 */
2197
+ int (*tcl_UniCharIsLower) (int ch); /* 348 */
2198
+ int (*tcl_UniCharIsSpace) (int ch); /* 349 */
2199
+ int (*tcl_UniCharIsUpper) (int ch); /* 350 */
2200
+ int (*tcl_UniCharIsWordChar) (int ch); /* 351 */
2201
+ int (*tcl_UniCharLen) (const Tcl_UniChar *uniStr); /* 352 */
2202
+ int (*tcl_UniCharNcmp) (const Tcl_UniChar *ucs, const Tcl_UniChar *uct, unsigned long numChars); /* 353 */
2203
+ char * (*tcl_UniCharToUtfDString) (const Tcl_UniChar *uniStr, int uniLength, Tcl_DString *dsPtr); /* 354 */
2204
+ Tcl_UniChar * (*tcl_UtfToUniCharDString) (const char *src, int length, Tcl_DString *dsPtr); /* 355 */
2205
+ Tcl_RegExp (*tcl_GetRegExpFromObj) (Tcl_Interp *interp, Tcl_Obj *patObj, int flags); /* 356 */
2206
+ Tcl_Obj * (*tcl_EvalTokens) (Tcl_Interp *interp, Tcl_Token *tokenPtr, int count); /* 357 */
2207
+ void (*tcl_FreeParse) (Tcl_Parse *parsePtr); /* 358 */
2208
+ void (*tcl_LogCommandInfo) (Tcl_Interp *interp, const char *script, const char *command, int length); /* 359 */
2209
+ int (*tcl_ParseBraces) (Tcl_Interp *interp, const char *start, int numBytes, Tcl_Parse *parsePtr, int append, CONST84 char **termPtr); /* 360 */
2210
+ int (*tcl_ParseCommand) (Tcl_Interp *interp, const char *start, int numBytes, int nested, Tcl_Parse *parsePtr); /* 361 */
2211
+ int (*tcl_ParseExpr) (Tcl_Interp *interp, const char *start, int numBytes, Tcl_Parse *parsePtr); /* 362 */
2212
+ int (*tcl_ParseQuotedString) (Tcl_Interp *interp, const char *start, int numBytes, Tcl_Parse *parsePtr, int append, CONST84 char **termPtr); /* 363 */
2213
+ int (*tcl_ParseVarName) (Tcl_Interp *interp, const char *start, int numBytes, Tcl_Parse *parsePtr, int append); /* 364 */
2214
+ char * (*tcl_GetCwd) (Tcl_Interp *interp, Tcl_DString *cwdPtr); /* 365 */
2215
+ int (*tcl_Chdir) (const char *dirName); /* 366 */
2216
+ int (*tcl_Access) (const char *path, int mode); /* 367 */
2217
+ int (*tcl_Stat) (const char *path, struct stat *bufPtr); /* 368 */
2218
+ int (*tcl_UtfNcmp) (const char *s1, const char *s2, unsigned long n); /* 369 */
2219
+ int (*tcl_UtfNcasecmp) (const char *s1, const char *s2, unsigned long n); /* 370 */
2220
+ int (*tcl_StringCaseMatch) (const char *str, const char *pattern, int nocase); /* 371 */
2221
+ int (*tcl_UniCharIsControl) (int ch); /* 372 */
2222
+ int (*tcl_UniCharIsGraph) (int ch); /* 373 */
2223
+ int (*tcl_UniCharIsPrint) (int ch); /* 374 */
2224
+ int (*tcl_UniCharIsPunct) (int ch); /* 375 */
2225
+ int (*tcl_RegExpExecObj) (Tcl_Interp *interp, Tcl_RegExp regexp, Tcl_Obj *textObj, int offset, int nmatches, int flags); /* 376 */
2226
+ void (*tcl_RegExpGetInfo) (Tcl_RegExp regexp, Tcl_RegExpInfo *infoPtr); /* 377 */
2227
+ Tcl_Obj * (*tcl_NewUnicodeObj) (const Tcl_UniChar *unicode, int numChars); /* 378 */
2228
+ void (*tcl_SetUnicodeObj) (Tcl_Obj *objPtr, const Tcl_UniChar *unicode, int numChars); /* 379 */
2229
+ int (*tcl_GetCharLength) (Tcl_Obj *objPtr); /* 380 */
2230
+ Tcl_UniChar (*tcl_GetUniChar) (Tcl_Obj *objPtr, int index); /* 381 */
2231
+ Tcl_UniChar * (*tcl_GetUnicode) (Tcl_Obj *objPtr); /* 382 */
2232
+ Tcl_Obj * (*tcl_GetRange) (Tcl_Obj *objPtr, int first, int last); /* 383 */
2233
+ void (*tcl_AppendUnicodeToObj) (Tcl_Obj *objPtr, const Tcl_UniChar *unicode, int length); /* 384 */
2234
+ int (*tcl_RegExpMatchObj) (Tcl_Interp *interp, Tcl_Obj *textObj, Tcl_Obj *patternObj); /* 385 */
2235
+ void (*tcl_SetNotifier) (Tcl_NotifierProcs *notifierProcPtr); /* 386 */
2236
+ Tcl_Mutex * (*tcl_GetAllocMutex) (void); /* 387 */
2237
+ int (*tcl_GetChannelNames) (Tcl_Interp *interp); /* 388 */
2238
+ int (*tcl_GetChannelNamesEx) (Tcl_Interp *interp, const char *pattern); /* 389 */
2239
+ int (*tcl_ProcObjCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 390 */
2240
+ void (*tcl_ConditionFinalize) (Tcl_Condition *condPtr); /* 391 */
2241
+ void (*tcl_MutexFinalize) (Tcl_Mutex *mutex); /* 392 */
2242
+ int (*tcl_CreateThread) (Tcl_ThreadId *idPtr, Tcl_ThreadCreateProc *proc, ClientData clientData, int stackSize, int flags); /* 393 */
2243
+ int (*tcl_ReadRaw) (Tcl_Channel chan, char *dst, int bytesToRead); /* 394 */
2244
+ int (*tcl_WriteRaw) (Tcl_Channel chan, const char *src, int srcLen); /* 395 */
2245
+ Tcl_Channel (*tcl_GetTopChannel) (Tcl_Channel chan); /* 396 */
2246
+ int (*tcl_ChannelBuffered) (Tcl_Channel chan); /* 397 */
2247
+ CONST84_RETURN char * (*tcl_ChannelName) (const Tcl_ChannelType *chanTypePtr); /* 398 */
2248
+ Tcl_ChannelTypeVersion (*tcl_ChannelVersion) (const Tcl_ChannelType *chanTypePtr); /* 399 */
2249
+ Tcl_DriverBlockModeProc * (*tcl_ChannelBlockModeProc) (const Tcl_ChannelType *chanTypePtr); /* 400 */
2250
+ Tcl_DriverCloseProc * (*tcl_ChannelCloseProc) (const Tcl_ChannelType *chanTypePtr); /* 401 */
2251
+ Tcl_DriverClose2Proc * (*tcl_ChannelClose2Proc) (const Tcl_ChannelType *chanTypePtr); /* 402 */
2252
+ Tcl_DriverInputProc * (*tcl_ChannelInputProc) (const Tcl_ChannelType *chanTypePtr); /* 403 */
2253
+ Tcl_DriverOutputProc * (*tcl_ChannelOutputProc) (const Tcl_ChannelType *chanTypePtr); /* 404 */
2254
+ Tcl_DriverSeekProc * (*tcl_ChannelSeekProc) (const Tcl_ChannelType *chanTypePtr); /* 405 */
2255
+ Tcl_DriverSetOptionProc * (*tcl_ChannelSetOptionProc) (const Tcl_ChannelType *chanTypePtr); /* 406 */
2256
+ Tcl_DriverGetOptionProc * (*tcl_ChannelGetOptionProc) (const Tcl_ChannelType *chanTypePtr); /* 407 */
2257
+ Tcl_DriverWatchProc * (*tcl_ChannelWatchProc) (const Tcl_ChannelType *chanTypePtr); /* 408 */
2258
+ Tcl_DriverGetHandleProc * (*tcl_ChannelGetHandleProc) (const Tcl_ChannelType *chanTypePtr); /* 409 */
2259
+ Tcl_DriverFlushProc * (*tcl_ChannelFlushProc) (const Tcl_ChannelType *chanTypePtr); /* 410 */
2260
+ Tcl_DriverHandlerProc * (*tcl_ChannelHandlerProc) (const Tcl_ChannelType *chanTypePtr); /* 411 */
2261
+ int (*tcl_JoinThread) (Tcl_ThreadId threadId, int *result); /* 412 */
2262
+ int (*tcl_IsChannelShared) (Tcl_Channel channel); /* 413 */
2263
+ int (*tcl_IsChannelRegistered) (Tcl_Interp *interp, Tcl_Channel channel); /* 414 */
2264
+ void (*tcl_CutChannel) (Tcl_Channel channel); /* 415 */
2265
+ void (*tcl_SpliceChannel) (Tcl_Channel channel); /* 416 */
2266
+ void (*tcl_ClearChannelHandlers) (Tcl_Channel channel); /* 417 */
2267
+ int (*tcl_IsChannelExisting) (const char *channelName); /* 418 */
2268
+ int (*tcl_UniCharNcasecmp) (const Tcl_UniChar *ucs, const Tcl_UniChar *uct, unsigned long numChars); /* 419 */
2269
+ int (*tcl_UniCharCaseMatch) (const Tcl_UniChar *uniStr, const Tcl_UniChar *uniPattern, int nocase); /* 420 */
2270
+ Tcl_HashEntry * (*tcl_FindHashEntry) (Tcl_HashTable *tablePtr, const void *key); /* 421 */
2271
+ Tcl_HashEntry * (*tcl_CreateHashEntry) (Tcl_HashTable *tablePtr, const void *key, int *newPtr); /* 422 */
2272
+ void (*tcl_InitCustomHashTable) (Tcl_HashTable *tablePtr, int keyType, const Tcl_HashKeyType *typePtr); /* 423 */
2273
+ void (*tcl_InitObjHashTable) (Tcl_HashTable *tablePtr); /* 424 */
2274
+ ClientData (*tcl_CommandTraceInfo) (Tcl_Interp *interp, const char *varName, int flags, Tcl_CommandTraceProc *procPtr, ClientData prevClientData); /* 425 */
2275
+ int (*tcl_TraceCommand) (Tcl_Interp *interp, const char *varName, int flags, Tcl_CommandTraceProc *proc, ClientData clientData); /* 426 */
2276
+ void (*tcl_UntraceCommand) (Tcl_Interp *interp, const char *varName, int flags, Tcl_CommandTraceProc *proc, ClientData clientData); /* 427 */
2277
+ char * (*tcl_AttemptAlloc) (unsigned int size); /* 428 */
2278
+ char * (*tcl_AttemptDbCkalloc) (unsigned int size, const char *file, int line); /* 429 */
2279
+ char * (*tcl_AttemptRealloc) (char *ptr, unsigned int size); /* 430 */
2280
+ char * (*tcl_AttemptDbCkrealloc) (char *ptr, unsigned int size, const char *file, int line); /* 431 */
2281
+ int (*tcl_AttemptSetObjLength) (Tcl_Obj *objPtr, int length); /* 432 */
2282
+ Tcl_ThreadId (*tcl_GetChannelThread) (Tcl_Channel channel); /* 433 */
2283
+ Tcl_UniChar * (*tcl_GetUnicodeFromObj) (Tcl_Obj *objPtr, int *lengthPtr); /* 434 */
2284
+ int (*tcl_GetMathFuncInfo) (Tcl_Interp *interp, const char *name, int *numArgsPtr, Tcl_ValueType **argTypesPtr, Tcl_MathProc **procPtr, ClientData *clientDataPtr); /* 435 */
2285
+ Tcl_Obj * (*tcl_ListMathFuncs) (Tcl_Interp *interp, const char *pattern); /* 436 */
2286
+ Tcl_Obj * (*tcl_SubstObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int flags); /* 437 */
2287
+ int (*tcl_DetachChannel) (Tcl_Interp *interp, Tcl_Channel channel); /* 438 */
2288
+ int (*tcl_IsStandardChannel) (Tcl_Channel channel); /* 439 */
2289
+ int (*tcl_FSCopyFile) (Tcl_Obj *srcPathPtr, Tcl_Obj *destPathPtr); /* 440 */
2290
+ int (*tcl_FSCopyDirectory) (Tcl_Obj *srcPathPtr, Tcl_Obj *destPathPtr, Tcl_Obj **errorPtr); /* 441 */
2291
+ int (*tcl_FSCreateDirectory) (Tcl_Obj *pathPtr); /* 442 */
2292
+ int (*tcl_FSDeleteFile) (Tcl_Obj *pathPtr); /* 443 */
2293
+ int (*tcl_FSLoadFile) (Tcl_Interp *interp, Tcl_Obj *pathPtr, const char *sym1, const char *sym2, Tcl_PackageInitProc **proc1Ptr, Tcl_PackageInitProc **proc2Ptr, Tcl_LoadHandle *handlePtr, Tcl_FSUnloadFileProc **unloadProcPtr); /* 444 */
2294
+ int (*tcl_FSMatchInDirectory) (Tcl_Interp *interp, Tcl_Obj *result, Tcl_Obj *pathPtr, const char *pattern, Tcl_GlobTypeData *types); /* 445 */
2295
+ Tcl_Obj * (*tcl_FSLink) (Tcl_Obj *pathPtr, Tcl_Obj *toPtr, int linkAction); /* 446 */
2296
+ int (*tcl_FSRemoveDirectory) (Tcl_Obj *pathPtr, int recursive, Tcl_Obj **errorPtr); /* 447 */
2297
+ int (*tcl_FSRenameFile) (Tcl_Obj *srcPathPtr, Tcl_Obj *destPathPtr); /* 448 */
2298
+ int (*tcl_FSLstat) (Tcl_Obj *pathPtr, Tcl_StatBuf *buf); /* 449 */
2299
+ int (*tcl_FSUtime) (Tcl_Obj *pathPtr, struct utimbuf *tval); /* 450 */
2300
+ int (*tcl_FSFileAttrsGet) (Tcl_Interp *interp, int index, Tcl_Obj *pathPtr, Tcl_Obj **objPtrRef); /* 451 */
2301
+ int (*tcl_FSFileAttrsSet) (Tcl_Interp *interp, int index, Tcl_Obj *pathPtr, Tcl_Obj *objPtr); /* 452 */
2302
+ const char *CONST86 * (*tcl_FSFileAttrStrings) (Tcl_Obj *pathPtr, Tcl_Obj **objPtrRef); /* 453 */
2303
+ int (*tcl_FSStat) (Tcl_Obj *pathPtr, Tcl_StatBuf *buf); /* 454 */
2304
+ int (*tcl_FSAccess) (Tcl_Obj *pathPtr, int mode); /* 455 */
2305
+ Tcl_Channel (*tcl_FSOpenFileChannel) (Tcl_Interp *interp, Tcl_Obj *pathPtr, const char *modeString, int permissions); /* 456 */
2306
+ Tcl_Obj * (*tcl_FSGetCwd) (Tcl_Interp *interp); /* 457 */
2307
+ int (*tcl_FSChdir) (Tcl_Obj *pathPtr); /* 458 */
2308
+ int (*tcl_FSConvertToPathType) (Tcl_Interp *interp, Tcl_Obj *pathPtr); /* 459 */
2309
+ Tcl_Obj * (*tcl_FSJoinPath) (Tcl_Obj *listObj, int elements); /* 460 */
2310
+ Tcl_Obj * (*tcl_FSSplitPath) (Tcl_Obj *pathPtr, int *lenPtr); /* 461 */
2311
+ int (*tcl_FSEqualPaths) (Tcl_Obj *firstPtr, Tcl_Obj *secondPtr); /* 462 */
2312
+ Tcl_Obj * (*tcl_FSGetNormalizedPath) (Tcl_Interp *interp, Tcl_Obj *pathPtr); /* 463 */
2313
+ Tcl_Obj * (*tcl_FSJoinToPath) (Tcl_Obj *pathPtr, int objc, Tcl_Obj *const objv[]); /* 464 */
2314
+ ClientData (*tcl_FSGetInternalRep) (Tcl_Obj *pathPtr, const Tcl_Filesystem *fsPtr); /* 465 */
2315
+ Tcl_Obj * (*tcl_FSGetTranslatedPath) (Tcl_Interp *interp, Tcl_Obj *pathPtr); /* 466 */
2316
+ int (*tcl_FSEvalFile) (Tcl_Interp *interp, Tcl_Obj *fileName); /* 467 */
2317
+ Tcl_Obj * (*tcl_FSNewNativePath) (const Tcl_Filesystem *fromFilesystem, ClientData clientData); /* 468 */
2318
+ const void * (*tcl_FSGetNativePath) (Tcl_Obj *pathPtr); /* 469 */
2319
+ Tcl_Obj * (*tcl_FSFileSystemInfo) (Tcl_Obj *pathPtr); /* 470 */
2320
+ Tcl_Obj * (*tcl_FSPathSeparator) (Tcl_Obj *pathPtr); /* 471 */
2321
+ Tcl_Obj * (*tcl_FSListVolumes) (void); /* 472 */
2322
+ int (*tcl_FSRegister) (ClientData clientData, const Tcl_Filesystem *fsPtr); /* 473 */
2323
+ int (*tcl_FSUnregister) (const Tcl_Filesystem *fsPtr); /* 474 */
2324
+ ClientData (*tcl_FSData) (const Tcl_Filesystem *fsPtr); /* 475 */
2325
+ const char * (*tcl_FSGetTranslatedStringPath) (Tcl_Interp *interp, Tcl_Obj *pathPtr); /* 476 */
2326
+ CONST86 Tcl_Filesystem * (*tcl_FSGetFileSystemForPath) (Tcl_Obj *pathPtr); /* 477 */
2327
+ Tcl_PathType (*tcl_FSGetPathType) (Tcl_Obj *pathPtr); /* 478 */
2328
+ int (*tcl_OutputBuffered) (Tcl_Channel chan); /* 479 */
2329
+ void (*tcl_FSMountsChanged) (const Tcl_Filesystem *fsPtr); /* 480 */
2330
+ int (*tcl_EvalTokensStandard) (Tcl_Interp *interp, Tcl_Token *tokenPtr, int count); /* 481 */
2331
+ void (*tcl_GetTime) (Tcl_Time *timeBuf); /* 482 */
2332
+ Tcl_Trace (*tcl_CreateObjTrace) (Tcl_Interp *interp, int level, int flags, Tcl_CmdObjTraceProc *objProc, ClientData clientData, Tcl_CmdObjTraceDeleteProc *delProc); /* 483 */
2333
+ int (*tcl_GetCommandInfoFromToken) (Tcl_Command token, Tcl_CmdInfo *infoPtr); /* 484 */
2334
+ int (*tcl_SetCommandInfoFromToken) (Tcl_Command token, const Tcl_CmdInfo *infoPtr); /* 485 */
2335
+ Tcl_Obj * (*tcl_DbNewWideIntObj) (Tcl_WideInt wideValue, const char *file, int line); /* 486 */
2336
+ int (*tcl_GetWideIntFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_WideInt *widePtr); /* 487 */
2337
+ Tcl_Obj * (*tcl_NewWideIntObj) (Tcl_WideInt wideValue); /* 488 */
2338
+ void (*tcl_SetWideIntObj) (Tcl_Obj *objPtr, Tcl_WideInt wideValue); /* 489 */
2339
+ Tcl_StatBuf * (*tcl_AllocStatBuf) (void); /* 490 */
2340
+ Tcl_WideInt (*tcl_Seek) (Tcl_Channel chan, Tcl_WideInt offset, int mode); /* 491 */
2341
+ Tcl_WideInt (*tcl_Tell) (Tcl_Channel chan); /* 492 */
2342
+ Tcl_DriverWideSeekProc * (*tcl_ChannelWideSeekProc) (const Tcl_ChannelType *chanTypePtr); /* 493 */
2343
+ int (*tcl_DictObjPut) (Tcl_Interp *interp, Tcl_Obj *dictPtr, Tcl_Obj *keyPtr, Tcl_Obj *valuePtr); /* 494 */
2344
+ int (*tcl_DictObjGet) (Tcl_Interp *interp, Tcl_Obj *dictPtr, Tcl_Obj *keyPtr, Tcl_Obj **valuePtrPtr); /* 495 */
2345
+ int (*tcl_DictObjRemove) (Tcl_Interp *interp, Tcl_Obj *dictPtr, Tcl_Obj *keyPtr); /* 496 */
2346
+ int (*tcl_DictObjSize) (Tcl_Interp *interp, Tcl_Obj *dictPtr, int *sizePtr); /* 497 */
2347
+ int (*tcl_DictObjFirst) (Tcl_Interp *interp, Tcl_Obj *dictPtr, Tcl_DictSearch *searchPtr, Tcl_Obj **keyPtrPtr, Tcl_Obj **valuePtrPtr, int *donePtr); /* 498 */
2348
+ void (*tcl_DictObjNext) (Tcl_DictSearch *searchPtr, Tcl_Obj **keyPtrPtr, Tcl_Obj **valuePtrPtr, int *donePtr); /* 499 */
2349
+ void (*tcl_DictObjDone) (Tcl_DictSearch *searchPtr); /* 500 */
2350
+ int (*tcl_DictObjPutKeyList) (Tcl_Interp *interp, Tcl_Obj *dictPtr, int keyc, Tcl_Obj *const *keyv, Tcl_Obj *valuePtr); /* 501 */
2351
+ int (*tcl_DictObjRemoveKeyList) (Tcl_Interp *interp, Tcl_Obj *dictPtr, int keyc, Tcl_Obj *const *keyv); /* 502 */
2352
+ Tcl_Obj * (*tcl_NewDictObj) (void); /* 503 */
2353
+ Tcl_Obj * (*tcl_DbNewDictObj) (const char *file, int line); /* 504 */
2354
+ void (*tcl_RegisterConfig) (Tcl_Interp *interp, const char *pkgName, const Tcl_Config *configuration, const char *valEncoding); /* 505 */
2355
+ Tcl_Namespace * (*tcl_CreateNamespace) (Tcl_Interp *interp, const char *name, ClientData clientData, Tcl_NamespaceDeleteProc *deleteProc); /* 506 */
2356
+ void (*tcl_DeleteNamespace) (Tcl_Namespace *nsPtr); /* 507 */
2357
+ int (*tcl_AppendExportList) (Tcl_Interp *interp, Tcl_Namespace *nsPtr, Tcl_Obj *objPtr); /* 508 */
2358
+ int (*tcl_Export) (Tcl_Interp *interp, Tcl_Namespace *nsPtr, const char *pattern, int resetListFirst); /* 509 */
2359
+ int (*tcl_Import) (Tcl_Interp *interp, Tcl_Namespace *nsPtr, const char *pattern, int allowOverwrite); /* 510 */
2360
+ int (*tcl_ForgetImport) (Tcl_Interp *interp, Tcl_Namespace *nsPtr, const char *pattern); /* 511 */
2361
+ Tcl_Namespace * (*tcl_GetCurrentNamespace) (Tcl_Interp *interp); /* 512 */
2362
+ Tcl_Namespace * (*tcl_GetGlobalNamespace) (Tcl_Interp *interp); /* 513 */
2363
+ Tcl_Namespace * (*tcl_FindNamespace) (Tcl_Interp *interp, const char *name, Tcl_Namespace *contextNsPtr, int flags); /* 514 */
2364
+ Tcl_Command (*tcl_FindCommand) (Tcl_Interp *interp, const char *name, Tcl_Namespace *contextNsPtr, int flags); /* 515 */
2365
+ Tcl_Command (*tcl_GetCommandFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr); /* 516 */
2366
+ void (*tcl_GetCommandFullName) (Tcl_Interp *interp, Tcl_Command command, Tcl_Obj *objPtr); /* 517 */
2367
+ int (*tcl_FSEvalFileEx) (Tcl_Interp *interp, Tcl_Obj *fileName, const char *encodingName); /* 518 */
2368
+ Tcl_ExitProc * (*tcl_SetExitProc) (Tcl_ExitProc *proc); /* 519 */
2369
+ void (*tcl_LimitAddHandler) (Tcl_Interp *interp, int type, Tcl_LimitHandlerProc *handlerProc, ClientData clientData, Tcl_LimitHandlerDeleteProc *deleteProc); /* 520 */
2370
+ void (*tcl_LimitRemoveHandler) (Tcl_Interp *interp, int type, Tcl_LimitHandlerProc *handlerProc, ClientData clientData); /* 521 */
2371
+ int (*tcl_LimitReady) (Tcl_Interp *interp); /* 522 */
2372
+ int (*tcl_LimitCheck) (Tcl_Interp *interp); /* 523 */
2373
+ int (*tcl_LimitExceeded) (Tcl_Interp *interp); /* 524 */
2374
+ void (*tcl_LimitSetCommands) (Tcl_Interp *interp, int commandLimit); /* 525 */
2375
+ void (*tcl_LimitSetTime) (Tcl_Interp *interp, Tcl_Time *timeLimitPtr); /* 526 */
2376
+ void (*tcl_LimitSetGranularity) (Tcl_Interp *interp, int type, int granularity); /* 527 */
2377
+ int (*tcl_LimitTypeEnabled) (Tcl_Interp *interp, int type); /* 528 */
2378
+ int (*tcl_LimitTypeExceeded) (Tcl_Interp *interp, int type); /* 529 */
2379
+ void (*tcl_LimitTypeSet) (Tcl_Interp *interp, int type); /* 530 */
2380
+ void (*tcl_LimitTypeReset) (Tcl_Interp *interp, int type); /* 531 */
2381
+ int (*tcl_LimitGetCommands) (Tcl_Interp *interp); /* 532 */
2382
+ void (*tcl_LimitGetTime) (Tcl_Interp *interp, Tcl_Time *timeLimitPtr); /* 533 */
2383
+ int (*tcl_LimitGetGranularity) (Tcl_Interp *interp, int type); /* 534 */
2384
+ Tcl_InterpState (*tcl_SaveInterpState) (Tcl_Interp *interp, int status); /* 535 */
2385
+ int (*tcl_RestoreInterpState) (Tcl_Interp *interp, Tcl_InterpState state); /* 536 */
2386
+ void (*tcl_DiscardInterpState) (Tcl_InterpState state); /* 537 */
2387
+ int (*tcl_SetReturnOptions) (Tcl_Interp *interp, Tcl_Obj *options); /* 538 */
2388
+ Tcl_Obj * (*tcl_GetReturnOptions) (Tcl_Interp *interp, int result); /* 539 */
2389
+ int (*tcl_IsEnsemble) (Tcl_Command token); /* 540 */
2390
+ Tcl_Command (*tcl_CreateEnsemble) (Tcl_Interp *interp, const char *name, Tcl_Namespace *namespacePtr, int flags); /* 541 */
2391
+ Tcl_Command (*tcl_FindEnsemble) (Tcl_Interp *interp, Tcl_Obj *cmdNameObj, int flags); /* 542 */
2392
+ int (*tcl_SetEnsembleSubcommandList) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj *subcmdList); /* 543 */
2393
+ int (*tcl_SetEnsembleMappingDict) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj *mapDict); /* 544 */
2394
+ int (*tcl_SetEnsembleUnknownHandler) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj *unknownList); /* 545 */
2395
+ int (*tcl_SetEnsembleFlags) (Tcl_Interp *interp, Tcl_Command token, int flags); /* 546 */
2396
+ int (*tcl_GetEnsembleSubcommandList) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj **subcmdListPtr); /* 547 */
2397
+ int (*tcl_GetEnsembleMappingDict) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj **mapDictPtr); /* 548 */
2398
+ int (*tcl_GetEnsembleUnknownHandler) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj **unknownListPtr); /* 549 */
2399
+ int (*tcl_GetEnsembleFlags) (Tcl_Interp *interp, Tcl_Command token, int *flagsPtr); /* 550 */
2400
+ int (*tcl_GetEnsembleNamespace) (Tcl_Interp *interp, Tcl_Command token, Tcl_Namespace **namespacePtrPtr); /* 551 */
2401
+ void (*tcl_SetTimeProc) (Tcl_GetTimeProc *getProc, Tcl_ScaleTimeProc *scaleProc, ClientData clientData); /* 552 */
2402
+ void (*tcl_QueryTimeProc) (Tcl_GetTimeProc **getProc, Tcl_ScaleTimeProc **scaleProc, ClientData *clientData); /* 553 */
2403
+ Tcl_DriverThreadActionProc * (*tcl_ChannelThreadActionProc) (const Tcl_ChannelType *chanTypePtr); /* 554 */
2404
+ Tcl_Obj * (*tcl_NewBignumObj) (mp_int *value); /* 555 */
2405
+ Tcl_Obj * (*tcl_DbNewBignumObj) (mp_int *value, const char *file, int line); /* 556 */
2406
+ void (*tcl_SetBignumObj) (Tcl_Obj *obj, mp_int *value); /* 557 */
2407
+ int (*tcl_GetBignumFromObj) (Tcl_Interp *interp, Tcl_Obj *obj, mp_int *value); /* 558 */
2408
+ int (*tcl_TakeBignumFromObj) (Tcl_Interp *interp, Tcl_Obj *obj, mp_int *value); /* 559 */
2409
+ int (*tcl_TruncateChannel) (Tcl_Channel chan, Tcl_WideInt length); /* 560 */
2410
+ Tcl_DriverTruncateProc * (*tcl_ChannelTruncateProc) (const Tcl_ChannelType *chanTypePtr); /* 561 */
2411
+ void (*tcl_SetChannelErrorInterp) (Tcl_Interp *interp, Tcl_Obj *msg); /* 562 */
2412
+ void (*tcl_GetChannelErrorInterp) (Tcl_Interp *interp, Tcl_Obj **msg); /* 563 */
2413
+ void (*tcl_SetChannelError) (Tcl_Channel chan, Tcl_Obj *msg); /* 564 */
2414
+ void (*tcl_GetChannelError) (Tcl_Channel chan, Tcl_Obj **msg); /* 565 */
2415
+ int (*tcl_InitBignumFromDouble) (Tcl_Interp *interp, double initval, mp_int *toInit); /* 566 */
2416
+ Tcl_Obj * (*tcl_GetNamespaceUnknownHandler) (Tcl_Interp *interp, Tcl_Namespace *nsPtr); /* 567 */
2417
+ int (*tcl_SetNamespaceUnknownHandler) (Tcl_Interp *interp, Tcl_Namespace *nsPtr, Tcl_Obj *handlerPtr); /* 568 */
2418
+ int (*tcl_GetEncodingFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_Encoding *encodingPtr); /* 569 */
2419
+ Tcl_Obj * (*tcl_GetEncodingSearchPath) (void); /* 570 */
2420
+ int (*tcl_SetEncodingSearchPath) (Tcl_Obj *searchPath); /* 571 */
2421
+ const char * (*tcl_GetEncodingNameFromEnvironment) (Tcl_DString *bufPtr); /* 572 */
2422
+ int (*tcl_PkgRequireProc) (Tcl_Interp *interp, const char *name, int objc, Tcl_Obj *const objv[], void *clientDataPtr); /* 573 */
2423
+ void (*tcl_AppendObjToErrorInfo) (Tcl_Interp *interp, Tcl_Obj *objPtr); /* 574 */
2424
+ void (*tcl_AppendLimitedToObj) (Tcl_Obj *objPtr, const char *bytes, int length, int limit, const char *ellipsis); /* 575 */
2425
+ Tcl_Obj * (*tcl_Format) (Tcl_Interp *interp, const char *format, int objc, Tcl_Obj *const objv[]); /* 576 */
2426
+ int (*tcl_AppendFormatToObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, const char *format, int objc, Tcl_Obj *const objv[]); /* 577 */
2427
+ Tcl_Obj * (*tcl_ObjPrintf) (const char *format, ...) TCL_FORMAT_PRINTF(1, 2); /* 578 */
2428
+ void (*tcl_AppendPrintfToObj) (Tcl_Obj *objPtr, const char *format, ...) TCL_FORMAT_PRINTF(2, 3); /* 579 */
2429
+ int (*tcl_CancelEval) (Tcl_Interp *interp, Tcl_Obj *resultObjPtr, ClientData clientData, int flags); /* 580 */
2430
+ int (*tcl_Canceled) (Tcl_Interp *interp, int flags); /* 581 */
2431
+ int (*tcl_CreatePipe) (Tcl_Interp *interp, Tcl_Channel *rchan, Tcl_Channel *wchan, int flags); /* 582 */
2432
+ Tcl_Command (*tcl_NRCreateCommand) (Tcl_Interp *interp, const char *cmdName, Tcl_ObjCmdProc *proc, Tcl_ObjCmdProc *nreProc, ClientData clientData, Tcl_CmdDeleteProc *deleteProc); /* 583 */
2433
+ int (*tcl_NREvalObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int flags); /* 584 */
2434
+ int (*tcl_NREvalObjv) (Tcl_Interp *interp, int objc, Tcl_Obj *const objv[], int flags); /* 585 */
2435
+ int (*tcl_NRCmdSwap) (Tcl_Interp *interp, Tcl_Command cmd, int objc, Tcl_Obj *const objv[], int flags); /* 586 */
2436
+ void (*tcl_NRAddCallback) (Tcl_Interp *interp, Tcl_NRPostProc *postProcPtr, ClientData data0, ClientData data1, ClientData data2, ClientData data3); /* 587 */
2437
+ int (*tcl_NRCallObjProc) (Tcl_Interp *interp, Tcl_ObjCmdProc *objProc, ClientData clientData, int objc, Tcl_Obj *const objv[]); /* 588 */
2438
+ unsigned (*tcl_GetFSDeviceFromStat) (const Tcl_StatBuf *statPtr); /* 589 */
2439
+ unsigned (*tcl_GetFSInodeFromStat) (const Tcl_StatBuf *statPtr); /* 590 */
2440
+ unsigned (*tcl_GetModeFromStat) (const Tcl_StatBuf *statPtr); /* 591 */
2441
+ int (*tcl_GetLinkCountFromStat) (const Tcl_StatBuf *statPtr); /* 592 */
2442
+ int (*tcl_GetUserIdFromStat) (const Tcl_StatBuf *statPtr); /* 593 */
2443
+ int (*tcl_GetGroupIdFromStat) (const Tcl_StatBuf *statPtr); /* 594 */
2444
+ int (*tcl_GetDeviceTypeFromStat) (const Tcl_StatBuf *statPtr); /* 595 */
2445
+ Tcl_WideInt (*tcl_GetAccessTimeFromStat) (const Tcl_StatBuf *statPtr); /* 596 */
2446
+ Tcl_WideInt (*tcl_GetModificationTimeFromStat) (const Tcl_StatBuf *statPtr); /* 597 */
2447
+ Tcl_WideInt (*tcl_GetChangeTimeFromStat) (const Tcl_StatBuf *statPtr); /* 598 */
2448
+ Tcl_WideUInt (*tcl_GetSizeFromStat) (const Tcl_StatBuf *statPtr); /* 599 */
2449
+ Tcl_WideUInt (*tcl_GetBlocksFromStat) (const Tcl_StatBuf *statPtr); /* 600 */
2450
+ unsigned (*tcl_GetBlockSizeFromStat) (const Tcl_StatBuf *statPtr); /* 601 */
2451
+ int (*tcl_SetEnsembleParameterList) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj *paramList); /* 602 */
2452
+ int (*tcl_GetEnsembleParameterList) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj **paramListPtr); /* 603 */
2453
+ int (*tcl_ParseArgsObjv) (Tcl_Interp *interp, const Tcl_ArgvInfo *argTable, int *objcPtr, Tcl_Obj *const *objv, Tcl_Obj ***remObjv); /* 604 */
2454
+ int (*tcl_GetErrorLine) (Tcl_Interp *interp); /* 605 */
2455
+ void (*tcl_SetErrorLine) (Tcl_Interp *interp, int lineNum); /* 606 */
2456
+ void (*tcl_TransferResult) (Tcl_Interp *sourceInterp, int result, Tcl_Interp *targetInterp); /* 607 */
2457
+ int (*tcl_InterpActive) (Tcl_Interp *interp); /* 608 */
2458
+ void (*tcl_BackgroundException) (Tcl_Interp *interp, int code); /* 609 */
2459
+ int (*tcl_ZlibDeflate) (Tcl_Interp *interp, int format, Tcl_Obj *data, int level, Tcl_Obj *gzipHeaderDictObj); /* 610 */
2460
+ int (*tcl_ZlibInflate) (Tcl_Interp *interp, int format, Tcl_Obj *data, int buffersize, Tcl_Obj *gzipHeaderDictObj); /* 611 */
2461
+ unsigned int (*tcl_ZlibCRC32) (unsigned int crc, const unsigned char *buf, int len); /* 612 */
2462
+ unsigned int (*tcl_ZlibAdler32) (unsigned int adler, const unsigned char *buf, int len); /* 613 */
2463
+ int (*tcl_ZlibStreamInit) (Tcl_Interp *interp, int mode, int format, int level, Tcl_Obj *dictObj, Tcl_ZlibStream *zshandle); /* 614 */
2464
+ Tcl_Obj * (*tcl_ZlibStreamGetCommandName) (Tcl_ZlibStream zshandle); /* 615 */
2465
+ int (*tcl_ZlibStreamEof) (Tcl_ZlibStream zshandle); /* 616 */
2466
+ int (*tcl_ZlibStreamChecksum) (Tcl_ZlibStream zshandle); /* 617 */
2467
+ int (*tcl_ZlibStreamPut) (Tcl_ZlibStream zshandle, Tcl_Obj *data, int flush); /* 618 */
2468
+ int (*tcl_ZlibStreamGet) (Tcl_ZlibStream zshandle, Tcl_Obj *data, int count); /* 619 */
2469
+ int (*tcl_ZlibStreamClose) (Tcl_ZlibStream zshandle); /* 620 */
2470
+ int (*tcl_ZlibStreamReset) (Tcl_ZlibStream zshandle); /* 621 */
2471
+ void (*tcl_SetStartupScript) (Tcl_Obj *path, const char *encoding); /* 622 */
2472
+ Tcl_Obj * (*tcl_GetStartupScript) (const char **encodingPtr); /* 623 */
2473
+ int (*tcl_CloseEx) (Tcl_Interp *interp, Tcl_Channel chan, int flags); /* 624 */
2474
+ int (*tcl_NRExprObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_Obj *resultPtr); /* 625 */
2475
+ int (*tcl_NRSubstObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int flags); /* 626 */
2476
+ int (*tcl_LoadFile) (Tcl_Interp *interp, Tcl_Obj *pathPtr, const char *const symv[], int flags, void *procPtrs, Tcl_LoadHandle *handlePtr); /* 627 */
2477
+ void * (*tcl_FindSymbol) (Tcl_Interp *interp, Tcl_LoadHandle handle, const char *symbol); /* 628 */
2478
+ int (*tcl_FSUnloadFile) (Tcl_Interp *interp, Tcl_LoadHandle handlePtr); /* 629 */
2479
+ void (*tcl_ZlibStreamSetCompressionDictionary) (Tcl_ZlibStream zhandle, Tcl_Obj *compressionDictionaryObj); /* 630 */
2480
+} TclStubs;
2481
+
2482
+#ifdef __cplusplus
2483
+extern "C" {
2484
+#endif
2485
+extern const TclStubs *tclStubsPtr;
2486
+#ifdef __cplusplus
2487
+}
2488
+#endif
2489
+
2490
+#if defined(USE_TCL_STUBS)
2491
+
2492
+/*
2493
+ * Inline function declarations:
2494
+ */
2495
+
2496
+#define Tcl_PkgProvideEx \
2497
+ (tclStubsPtr->tcl_PkgProvideEx) /* 0 */
2498
+#define Tcl_PkgRequireEx \
2499
+ (tclStubsPtr->tcl_PkgRequireEx) /* 1 */
2500
+#define Tcl_Panic \
2501
+ (tclStubsPtr->tcl_Panic) /* 2 */
2502
+#define Tcl_Alloc \
2503
+ (tclStubsPtr->tcl_Alloc) /* 3 */
2504
+#define Tcl_Free \
2505
+ (tclStubsPtr->tcl_Free) /* 4 */
2506
+#define Tcl_Realloc \
2507
+ (tclStubsPtr->tcl_Realloc) /* 5 */
2508
+#define Tcl_DbCkalloc \
2509
+ (tclStubsPtr->tcl_DbCkalloc) /* 6 */
2510
+#define Tcl_DbCkfree \
2511
+ (tclStubsPtr->tcl_DbCkfree) /* 7 */
2512
+#define Tcl_DbCkrealloc \
2513
+ (tclStubsPtr->tcl_DbCkrealloc) /* 8 */
2514
+#if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
2515
+#define Tcl_CreateFileHandler \
2516
+ (tclStubsPtr->tcl_CreateFileHandler) /* 9 */
2517
+#endif /* UNIX */
2518
+#ifdef MAC_OSX_TCL /* MACOSX */
2519
+#define Tcl_CreateFileHandler \
2520
+ (tclStubsPtr->tcl_CreateFileHandler) /* 9 */
2521
+#endif /* MACOSX */
2522
+#if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
2523
+#define Tcl_DeleteFileHandler \
2524
+ (tclStubsPtr->tcl_DeleteFileHandler) /* 10 */
2525
+#endif /* UNIX */
2526
+#ifdef MAC_OSX_TCL /* MACOSX */
2527
+#define Tcl_DeleteFileHandler \
2528
+ (tclStubsPtr->tcl_DeleteFileHandler) /* 10 */
2529
+#endif /* MACOSX */
2530
+#define Tcl_SetTimer \
2531
+ (tclStubsPtr->tcl_SetTimer) /* 11 */
2532
+#define Tcl_Sleep \
2533
+ (tclStubsPtr->tcl_Sleep) /* 12 */
2534
+#define Tcl_WaitForEvent \
2535
+ (tclStubsPtr->tcl_WaitForEvent) /* 13 */
2536
+#define Tcl_AppendAllObjTypes \
2537
+ (tclStubsPtr->tcl_AppendAllObjTypes) /* 14 */
2538
+#define Tcl_AppendStringsToObj \
2539
+ (tclStubsPtr->tcl_AppendStringsToObj) /* 15 */
2540
+#define Tcl_AppendToObj \
2541
+ (tclStubsPtr->tcl_AppendToObj) /* 16 */
2542
+#define Tcl_ConcatObj \
2543
+ (tclStubsPtr->tcl_ConcatObj) /* 17 */
2544
+#define Tcl_ConvertToType \
2545
+ (tclStubsPtr->tcl_ConvertToType) /* 18 */
2546
+#define Tcl_DbDecrRefCount \
2547
+ (tclStubsPtr->tcl_DbDecrRefCount) /* 19 */
2548
+#define Tcl_DbIncrRefCount \
2549
+ (tclStubsPtr->tcl_DbIncrRefCount) /* 20 */
2550
+#define Tcl_DbIsShared \
2551
+ (tclStubsPtr->tcl_DbIsShared) /* 21 */
2552
+#define Tcl_DbNewBooleanObj \
2553
+ (tclStubsPtr->tcl_DbNewBooleanObj) /* 22 */
2554
+#define Tcl_DbNewByteArrayObj \
2555
+ (tclStubsPtr->tcl_DbNewByteArrayObj) /* 23 */
2556
+#define Tcl_DbNewDoubleObj \
2557
+ (tclStubsPtr->tcl_DbNewDoubleObj) /* 24 */
2558
+#define Tcl_DbNewListObj \
2559
+ (tclStubsPtr->tcl_DbNewListObj) /* 25 */
2560
+#define Tcl_DbNewLongObj \
2561
+ (tclStubsPtr->tcl_DbNewLongObj) /* 26 */
2562
+#define Tcl_DbNewObj \
2563
+ (tclStubsPtr->tcl_DbNewObj) /* 27 */
2564
+#define Tcl_DbNewStringObj \
2565
+ (tclStubsPtr->tcl_DbNewStringObj) /* 28 */
2566
+#define Tcl_DuplicateObj \
2567
+ (tclStubsPtr->tcl_DuplicateObj) /* 29 */
2568
+#define TclFreeObj \
2569
+ (tclStubsPtr->tclFreeObj) /* 30 */
2570
+#define Tcl_GetBoolean \
2571
+ (tclStubsPtr->tcl_GetBoolean) /* 31 */
2572
+#define Tcl_GetBooleanFromObj \
2573
+ (tclStubsPtr->tcl_GetBooleanFromObj) /* 32 */
2574
+#define Tcl_GetByteArrayFromObj \
2575
+ (tclStubsPtr->tcl_GetByteArrayFromObj) /* 33 */
2576
+#define Tcl_GetDouble \
2577
+ (tclStubsPtr->tcl_GetDouble) /* 34 */
2578
+#define Tcl_GetDoubleFromObj \
2579
+ (tclStubsPtr->tcl_GetDoubleFromObj) /* 35 */
2580
+#define Tcl_GetIndexFromObj \
2581
+ (tclStubsPtr->tcl_GetIndexFromObj) /* 36 */
2582
+#define Tcl_GetInt \
2583
+ (tclStubsPtr->tcl_GetInt) /* 37 */
2584
+#define Tcl_GetIntFromObj \
2585
+ (tclStubsPtr->tcl_GetIntFromObj) /* 38 */
2586
+#define Tcl_GetLongFromObj \
2587
+ (tclStubsPtr->tcl_GetLongFromObj) /* 39 */
2588
+#define Tcl_GetObjType \
2589
+ (tclStubsPtr->tcl_GetObjType) /* 40 */
2590
+#define Tcl_GetStringFromObj \
2591
+ (tclStubsPtr->tcl_GetStringFromObj) /* 41 */
2592
+#define Tcl_InvalidateStringRep \
2593
+ (tclStubsPtr->tcl_InvalidateStringRep) /* 42 */
2594
+#define Tcl_ListObjAppendList \
2595
+ (tclStubsPtr->tcl_ListObjAppendList) /* 43 */
2596
+#define Tcl_ListObjAppendElement \
2597
+ (tclStubsPtr->tcl_ListObjAppendElement) /* 44 */
2598
+#define Tcl_ListObjGetElements \
2599
+ (tclStubsPtr->tcl_ListObjGetElements) /* 45 */
2600
+#define Tcl_ListObjIndex \
2601
+ (tclStubsPtr->tcl_ListObjIndex) /* 46 */
2602
+#define Tcl_ListObjLength \
2603
+ (tclStubsPtr->tcl_ListObjLength) /* 47 */
2604
+#define Tcl_ListObjReplace \
2605
+ (tclStubsPtr->tcl_ListObjReplace) /* 48 */
2606
+#define Tcl_NewBooleanObj \
2607
+ (tclStubsPtr->tcl_NewBooleanObj) /* 49 */
2608
+#define Tcl_NewByteArrayObj \
2609
+ (tclStubsPtr->tcl_NewByteArrayObj) /* 50 */
2610
+#define Tcl_NewDoubleObj \
2611
+ (tclStubsPtr->tcl_NewDoubleObj) /* 51 */
2612
+#define Tcl_NewIntObj \
2613
+ (tclStubsPtr->tcl_NewIntObj) /* 52 */
2614
+#define Tcl_NewListObj \
2615
+ (tclStubsPtr->tcl_NewListObj) /* 53 */
2616
+#define Tcl_NewLongObj \
2617
+ (tclStubsPtr->tcl_NewLongObj) /* 54 */
2618
+#define Tcl_NewObj \
2619
+ (tclStubsPtr->tcl_NewObj) /* 55 */
2620
+#define Tcl_NewStringObj \
2621
+ (tclStubsPtr->tcl_NewStringObj) /* 56 */
2622
+#define Tcl_SetBooleanObj \
2623
+ (tclStubsPtr->tcl_SetBooleanObj) /* 57 */
2624
+#define Tcl_SetByteArrayLength \
2625
+ (tclStubsPtr->tcl_SetByteArrayLength) /* 58 */
2626
+#define Tcl_SetByteArrayObj \
2627
+ (tclStubsPtr->tcl_SetByteArrayObj) /* 59 */
2628
+#define Tcl_SetDoubleObj \
2629
+ (tclStubsPtr->tcl_SetDoubleObj) /* 60 */
2630
+#define Tcl_SetIntObj \
2631
+ (tclStubsPtr->tcl_SetIntObj) /* 61 */
2632
+#define Tcl_SetListObj \
2633
+ (tclStubsPtr->tcl_SetListObj) /* 62 */
2634
+#define Tcl_SetLongObj \
2635
+ (tclStubsPtr->tcl_SetLongObj) /* 63 */
2636
+#define Tcl_SetObjLength \
2637
+ (tclStubsPtr->tcl_SetObjLength) /* 64 */
2638
+#define Tcl_SetStringObj \
2639
+ (tclStubsPtr->tcl_SetStringObj) /* 65 */
2640
+#define Tcl_AddErrorInfo \
2641
+ (tclStubsPtr->tcl_AddErrorInfo) /* 66 */
2642
+#define Tcl_AddObjErrorInfo \
2643
+ (tclStubsPtr->tcl_AddObjErrorInfo) /* 67 */
2644
+#define Tcl_AllowExceptions \
2645
+ (tclStubsPtr->tcl_AllowExceptions) /* 68 */
2646
+#define Tcl_AppendElement \
2647
+ (tclStubsPtr->tcl_AppendElement) /* 69 */
2648
+#define Tcl_AppendResult \
2649
+ (tclStubsPtr->tcl_AppendResult) /* 70 */
2650
+#define Tcl_AsyncCreate \
2651
+ (tclStubsPtr->tcl_AsyncCreate) /* 71 */
2652
+#define Tcl_AsyncDelete \
2653
+ (tclStubsPtr->tcl_AsyncDelete) /* 72 */
2654
+#define Tcl_AsyncInvoke \
2655
+ (tclStubsPtr->tcl_AsyncInvoke) /* 73 */
2656
+#define Tcl_AsyncMark \
2657
+ (tclStubsPtr->tcl_AsyncMark) /* 74 */
2658
+#define Tcl_AsyncReady \
2659
+ (tclStubsPtr->tcl_AsyncReady) /* 75 */
2660
+#define Tcl_BackgroundError \
2661
+ (tclStubsPtr->tcl_BackgroundError) /* 76 */
2662
+#define Tcl_Backslash \
2663
+ (tclStubsPtr->tcl_Backslash) /* 77 */
2664
+#define Tcl_BadChannelOption \
2665
+ (tclStubsPtr->tcl_BadChannelOption) /* 78 */
2666
+#define Tcl_CallWhenDeleted \
2667
+ (tclStubsPtr->tcl_CallWhenDeleted) /* 79 */
2668
+#define Tcl_CancelIdleCall \
2669
+ (tclStubsPtr->tcl_CancelIdleCall) /* 80 */
2670
+#define Tcl_Close \
2671
+ (tclStubsPtr->tcl_Close) /* 81 */
2672
+#define Tcl_CommandComplete \
2673
+ (tclStubsPtr->tcl_CommandComplete) /* 82 */
2674
+#define Tcl_Concat \
2675
+ (tclStubsPtr->tcl_Concat) /* 83 */
2676
+#define Tcl_ConvertElement \
2677
+ (tclStubsPtr->tcl_ConvertElement) /* 84 */
2678
+#define Tcl_ConvertCountedElement \
2679
+ (tclStubsPtr->tcl_ConvertCountedElement) /* 85 */
2680
+#define Tcl_CreateAlias \
2681
+ (tclStubsPtr->tcl_CreateAlias) /* 86 */
2682
+#define Tcl_CreateAliasObj \
2683
+ (tclStubsPtr->tcl_CreateAliasObj) /* 87 */
2684
+#define Tcl_CreateChannel \
2685
+ (tclStubsPtr->tcl_CreateChannel) /* 88 */
2686
+#define Tcl_CreateChannelHandler \
2687
+ (tclStubsPtr->tcl_CreateChannelHandler) /* 89 */
2688
+#define Tcl_CreateCloseHandler \
2689
+ (tclStubsPtr->tcl_CreateCloseHandler) /* 90 */
2690
+#define Tcl_CreateCommand \
2691
+ (tclStubsPtr->tcl_CreateCommand) /* 91 */
2692
+#define Tcl_CreateEventSource \
2693
+ (tclStubsPtr->tcl_CreateEventSource) /* 92 */
2694
+#define Tcl_CreateExitHandler \
2695
+ (tclStubsPtr->tcl_CreateExitHandler) /* 93 */
2696
+#define Tcl_CreateInterp \
2697
+ (tclStubsPtr->tcl_CreateInterp) /* 94 */
2698
+#define Tcl_CreateMathFunc \
2699
+ (tclStubsPtr->tcl_CreateMathFunc) /* 95 */
2700
+#define Tcl_CreateObjCommand \
2701
+ (tclStubsPtr->tcl_CreateObjCommand) /* 96 */
2702
+#define Tcl_CreateSlave \
2703
+ (tclStubsPtr->tcl_CreateSlave) /* 97 */
2704
+#define Tcl_CreateTimerHandler \
2705
+ (tclStubsPtr->tcl_CreateTimerHandler) /* 98 */
2706
+#define Tcl_CreateTrace \
2707
+ (tclStubsPtr->tcl_CreateTrace) /* 99 */
2708
+#define Tcl_DeleteAssocData \
2709
+ (tclStubsPtr->tcl_DeleteAssocData) /* 100 */
2710
+#define Tcl_DeleteChannelHandler \
2711
+ (tclStubsPtr->tcl_DeleteChannelHandler) /* 101 */
2712
+#define Tcl_DeleteCloseHandler \
2713
+ (tclStubsPtr->tcl_DeleteCloseHandler) /* 102 */
2714
+#define Tcl_DeleteCommand \
2715
+ (tclStubsPtr->tcl_DeleteCommand) /* 103 */
2716
+#define Tcl_DeleteCommandFromToken \
2717
+ (tclStubsPtr->tcl_DeleteCommandFromToken) /* 104 */
2718
+#define Tcl_DeleteEvents \
2719
+ (tclStubsPtr->tcl_DeleteEvents) /* 105 */
2720
+#define Tcl_DeleteEventSource \
2721
+ (tclStubsPtr->tcl_DeleteEventSource) /* 106 */
2722
+#define Tcl_DeleteExitHandler \
2723
+ (tclStubsPtr->tcl_DeleteExitHandler) /* 107 */
2724
+#define Tcl_DeleteHashEntry \
2725
+ (tclStubsPtr->tcl_DeleteHashEntry) /* 108 */
2726
+#define Tcl_DeleteHashTable \
2727
+ (tclStubsPtr->tcl_DeleteHashTable) /* 109 */
2728
+#define Tcl_DeleteInterp \
2729
+ (tclStubsPtr->tcl_DeleteInterp) /* 110 */
2730
+#define Tcl_DetachPids \
2731
+ (tclStubsPtr->tcl_DetachPids) /* 111 */
2732
+#define Tcl_DeleteTimerHandler \
2733
+ (tclStubsPtr->tcl_DeleteTimerHandler) /* 112 */
2734
+#define Tcl_DeleteTrace \
2735
+ (tclStubsPtr->tcl_DeleteTrace) /* 113 */
2736
+#define Tcl_DontCallWhenDeleted \
2737
+ (tclStubsPtr->tcl_DontCallWhenDeleted) /* 114 */
2738
+#define Tcl_DoOneEvent \
2739
+ (tclStubsPtr->tcl_DoOneEvent) /* 115 */
2740
+#define Tcl_DoWhenIdle \
2741
+ (tclStubsPtr->tcl_DoWhenIdle) /* 116 */
2742
+#define Tcl_DStringAppend \
2743
+ (tclStubsPtr->tcl_DStringAppend) /* 117 */
2744
+#define Tcl_DStringAppendElement \
2745
+ (tclStubsPtr->tcl_DStringAppendElement) /* 118 */
2746
+#define Tcl_DStringEndSublist \
2747
+ (tclStubsPtr->tcl_DStringEndSublist) /* 119 */
2748
+#define Tcl_DStringFree \
2749
+ (tclStubsPtr->tcl_DStringFree) /* 120 */
2750
+#define Tcl_DStringGetResult \
2751
+ (tclStubsPtr->tcl_DStringGetResult) /* 121 */
2752
+#define Tcl_DStringInit \
2753
+ (tclStubsPtr->tcl_DStringInit) /* 122 */
2754
+#define Tcl_DStringResult \
2755
+ (tclStubsPtr->tcl_DStringResult) /* 123 */
2756
+#define Tcl_DStringSetLength \
2757
+ (tclStubsPtr->tcl_DStringSetLength) /* 124 */
2758
+#define Tcl_DStringStartSublist \
2759
+ (tclStubsPtr->tcl_DStringStartSublist) /* 125 */
2760
+#define Tcl_Eof \
2761
+ (tclStubsPtr->tcl_Eof) /* 126 */
2762
+#define Tcl_ErrnoId \
2763
+ (tclStubsPtr->tcl_ErrnoId) /* 127 */
2764
+#define Tcl_ErrnoMsg \
2765
+ (tclStubsPtr->tcl_ErrnoMsg) /* 128 */
2766
+#define Tcl_Eval \
2767
+ (tclStubsPtr->tcl_Eval) /* 129 */
2768
+#define Tcl_EvalFile \
2769
+ (tclStubsPtr->tcl_EvalFile) /* 130 */
2770
+#define Tcl_EvalObj \
2771
+ (tclStubsPtr->tcl_EvalObj) /* 131 */
2772
+#define Tcl_EventuallyFree \
2773
+ (tclStubsPtr->tcl_EventuallyFree) /* 132 */
2774
+#define Tcl_Exit \
2775
+ (tclStubsPtr->tcl_Exit) /* 133 */
2776
+#define Tcl_ExposeCommand \
2777
+ (tclStubsPtr->tcl_ExposeCommand) /* 134 */
2778
+#define Tcl_ExprBoolean \
2779
+ (tclStubsPtr->tcl_ExprBoolean) /* 135 */
2780
+#define Tcl_ExprBooleanObj \
2781
+ (tclStubsPtr->tcl_ExprBooleanObj) /* 136 */
2782
+#define Tcl_ExprDouble \
2783
+ (tclStubsPtr->tcl_ExprDouble) /* 137 */
2784
+#define Tcl_ExprDoubleObj \
2785
+ (tclStubsPtr->tcl_ExprDoubleObj) /* 138 */
2786
+#define Tcl_ExprLong \
2787
+ (tclStubsPtr->tcl_ExprLong) /* 139 */
2788
+#define Tcl_ExprLongObj \
2789
+ (tclStubsPtr->tcl_ExprLongObj) /* 140 */
2790
+#define Tcl_ExprObj \
2791
+ (tclStubsPtr->tcl_ExprObj) /* 141 */
2792
+#define Tcl_ExprString \
2793
+ (tclStubsPtr->tcl_ExprString) /* 142 */
2794
+#define Tcl_Finalize \
2795
+ (tclStubsPtr->tcl_Finalize) /* 143 */
2796
+#define Tcl_FindExecutable \
2797
+ (tclStubsPtr->tcl_FindExecutable) /* 144 */
2798
+#define Tcl_FirstHashEntry \
2799
+ (tclStubsPtr->tcl_FirstHashEntry) /* 145 */
2800
+#define Tcl_Flush \
2801
+ (tclStubsPtr->tcl_Flush) /* 146 */
2802
+#define Tcl_FreeResult \
2803
+ (tclStubsPtr->tcl_FreeResult) /* 147 */
2804
+#define Tcl_GetAlias \
2805
+ (tclStubsPtr->tcl_GetAlias) /* 148 */
2806
+#define Tcl_GetAliasObj \
2807
+ (tclStubsPtr->tcl_GetAliasObj) /* 149 */
2808
+#define Tcl_GetAssocData \
2809
+ (tclStubsPtr->tcl_GetAssocData) /* 150 */
2810
+#define Tcl_GetChannel \
2811
+ (tclStubsPtr->tcl_GetChannel) /* 151 */
2812
+#define Tcl_GetChannelBufferSize \
2813
+ (tclStubsPtr->tcl_GetChannelBufferSize) /* 152 */
2814
+#define Tcl_GetChannelHandle \
2815
+ (tclStubsPtr->tcl_GetChannelHandle) /* 153 */
2816
+#define Tcl_GetChannelInstanceData \
2817
+ (tclStubsPtr->tcl_GetChannelInstanceData) /* 154 */
2818
+#define Tcl_GetChannelMode \
2819
+ (tclStubsPtr->tcl_GetChannelMode) /* 155 */
2820
+#define Tcl_GetChannelName \
2821
+ (tclStubsPtr->tcl_GetChannelName) /* 156 */
2822
+#define Tcl_GetChannelOption \
2823
+ (tclStubsPtr->tcl_GetChannelOption) /* 157 */
2824
+#define Tcl_GetChannelType \
2825
+ (tclStubsPtr->tcl_GetChannelType) /* 158 */
2826
+#define Tcl_GetCommandInfo \
2827
+ (tclStubsPtr->tcl_GetCommandInfo) /* 159 */
2828
+#define Tcl_GetCommandName \
2829
+ (tclStubsPtr->tcl_GetCommandName) /* 160 */
2830
+#define Tcl_GetErrno \
2831
+ (tclStubsPtr->tcl_GetErrno) /* 161 */
2832
+#define Tcl_GetHostName \
2833
+ (tclStubsPtr->tcl_GetHostName) /* 162 */
2834
+#define Tcl_GetInterpPath \
2835
+ (tclStubsPtr->tcl_GetInterpPath) /* 163 */
2836
+#define Tcl_GetMaster \
2837
+ (tclStubsPtr->tcl_GetMaster) /* 164 */
2838
+#define Tcl_GetNameOfExecutable \
2839
+ (tclStubsPtr->tcl_GetNameOfExecutable) /* 165 */
2840
+#define Tcl_GetObjResult \
2841
+ (tclStubsPtr->tcl_GetObjResult) /* 166 */
2842
+#if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
2843
+#define Tcl_GetOpenFile \
2844
+ (tclStubsPtr->tcl_GetOpenFile) /* 167 */
2845
+#endif /* UNIX */
2846
+#ifdef MAC_OSX_TCL /* MACOSX */
2847
+#define Tcl_GetOpenFile \
2848
+ (tclStubsPtr->tcl_GetOpenFile) /* 167 */
2849
+#endif /* MACOSX */
2850
+#define Tcl_GetPathType \
2851
+ (tclStubsPtr->tcl_GetPathType) /* 168 */
2852
+#define Tcl_Gets \
2853
+ (tclStubsPtr->tcl_Gets) /* 169 */
2854
+#define Tcl_GetsObj \
2855
+ (tclStubsPtr->tcl_GetsObj) /* 170 */
2856
+#define Tcl_GetServiceMode \
2857
+ (tclStubsPtr->tcl_GetServiceMode) /* 171 */
2858
+#define Tcl_GetSlave \
2859
+ (tclStubsPtr->tcl_GetSlave) /* 172 */
2860
+#define Tcl_GetStdChannel \
2861
+ (tclStubsPtr->tcl_GetStdChannel) /* 173 */
2862
+#define Tcl_GetStringResult \
2863
+ (tclStubsPtr->tcl_GetStringResult) /* 174 */
2864
+#define Tcl_GetVar \
2865
+ (tclStubsPtr->tcl_GetVar) /* 175 */
2866
+#define Tcl_GetVar2 \
2867
+ (tclStubsPtr->tcl_GetVar2) /* 176 */
2868
+#define Tcl_GlobalEval \
2869
+ (tclStubsPtr->tcl_GlobalEval) /* 177 */
2870
+#define Tcl_GlobalEvalObj \
2871
+ (tclStubsPtr->tcl_GlobalEvalObj) /* 178 */
2872
+#define Tcl_HideCommand \
2873
+ (tclStubsPtr->tcl_HideCommand) /* 179 */
2874
+#define Tcl_Init \
2875
+ (tclStubsPtr->tcl_Init) /* 180 */
2876
+#define Tcl_InitHashTable \
2877
+ (tclStubsPtr->tcl_InitHashTable) /* 181 */
2878
+#define Tcl_InputBlocked \
2879
+ (tclStubsPtr->tcl_InputBlocked) /* 182 */
2880
+#define Tcl_InputBuffered \
2881
+ (tclStubsPtr->tcl_InputBuffered) /* 183 */
2882
+#define Tcl_InterpDeleted \
2883
+ (tclStubsPtr->tcl_InterpDeleted) /* 184 */
2884
+#define Tcl_IsSafe \
2885
+ (tclStubsPtr->tcl_IsSafe) /* 185 */
2886
+#define Tcl_JoinPath \
2887
+ (tclStubsPtr->tcl_JoinPath) /* 186 */
2888
+#define Tcl_LinkVar \
2889
+ (tclStubsPtr->tcl_LinkVar) /* 187 */
2890
+/* Slot 188 is reserved */
2891
+#define Tcl_MakeFileChannel \
2892
+ (tclStubsPtr->tcl_MakeFileChannel) /* 189 */
2893
+#define Tcl_MakeSafe \
2894
+ (tclStubsPtr->tcl_MakeSafe) /* 190 */
2895
+#define Tcl_MakeTcpClientChannel \
2896
+ (tclStubsPtr->tcl_MakeTcpClientChannel) /* 191 */
2897
+#define Tcl_Merge \
2898
+ (tclStubsPtr->tcl_Merge) /* 192 */
2899
+#define Tcl_NextHashEntry \
2900
+ (tclStubsPtr->tcl_NextHashEntry) /* 193 */
2901
+#define Tcl_NotifyChannel \
2902
+ (tclStubsPtr->tcl_NotifyChannel) /* 194 */
2903
+#define Tcl_ObjGetVar2 \
2904
+ (tclStubsPtr->tcl_ObjGetVar2) /* 195 */
2905
+#define Tcl_ObjSetVar2 \
2906
+ (tclStubsPtr->tcl_ObjSetVar2) /* 196 */
2907
+#define Tcl_OpenCommandChannel \
2908
+ (tclStubsPtr->tcl_OpenCommandChannel) /* 197 */
2909
+#define Tcl_OpenFileChannel \
2910
+ (tclStubsPtr->tcl_OpenFileChannel) /* 198 */
2911
+#define Tcl_OpenTcpClient \
2912
+ (tclStubsPtr->tcl_OpenTcpClient) /* 199 */
2913
+#define Tcl_OpenTcpServer \
2914
+ (tclStubsPtr->tcl_OpenTcpServer) /* 200 */
2915
+#define Tcl_Preserve \
2916
+ (tclStubsPtr->tcl_Preserve) /* 201 */
2917
+#define Tcl_PrintDouble \
2918
+ (tclStubsPtr->tcl_PrintDouble) /* 202 */
2919
+#define Tcl_PutEnv \
2920
+ (tclStubsPtr->tcl_PutEnv) /* 203 */
2921
+#define Tcl_PosixError \
2922
+ (tclStubsPtr->tcl_PosixError) /* 204 */
2923
+#define Tcl_QueueEvent \
2924
+ (tclStubsPtr->tcl_QueueEvent) /* 205 */
2925
+#define Tcl_Read \
2926
+ (tclStubsPtr->tcl_Read) /* 206 */
2927
+#define Tcl_ReapDetachedProcs \
2928
+ (tclStubsPtr->tcl_ReapDetachedProcs) /* 207 */
2929
+#define Tcl_RecordAndEval \
2930
+ (tclStubsPtr->tcl_RecordAndEval) /* 208 */
2931
+#define Tcl_RecordAndEvalObj \
2932
+ (tclStubsPtr->tcl_RecordAndEvalObj) /* 209 */
2933
+#define Tcl_RegisterChannel \
2934
+ (tclStubsPtr->tcl_RegisterChannel) /* 210 */
2935
+#define Tcl_RegisterObjType \
2936
+ (tclStubsPtr->tcl_RegisterObjType) /* 211 */
2937
+#define Tcl_RegExpCompile \
2938
+ (tclStubsPtr->tcl_RegExpCompile) /* 212 */
2939
+#define Tcl_RegExpExec \
2940
+ (tclStubsPtr->tcl_RegExpExec) /* 213 */
2941
+#define Tcl_RegExpMatch \
2942
+ (tclStubsPtr->tcl_RegExpMatch) /* 214 */
2943
+#define Tcl_RegExpRange \
2944
+ (tclStubsPtr->tcl_RegExpRange) /* 215 */
2945
+#define Tcl_Release \
2946
+ (tclStubsPtr->tcl_Release) /* 216 */
2947
+#define Tcl_ResetResult \
2948
+ (tclStubsPtr->tcl_ResetResult) /* 217 */
2949
+#define Tcl_ScanElement \
2950
+ (tclStubsPtr->tcl_ScanElement) /* 218 */
2951
+#define Tcl_ScanCountedElement \
2952
+ (tclStubsPtr->tcl_ScanCountedElement) /* 219 */
2953
+#define Tcl_SeekOld \
2954
+ (tclStubsPtr->tcl_SeekOld) /* 220 */
2955
+#define Tcl_ServiceAll \
2956
+ (tclStubsPtr->tcl_ServiceAll) /* 221 */
2957
+#define Tcl_ServiceEvent \
2958
+ (tclStubsPtr->tcl_ServiceEvent) /* 222 */
2959
+#define Tcl_SetAssocData \
2960
+ (tclStubsPtr->tcl_SetAssocData) /* 223 */
2961
+#define Tcl_SetChannelBufferSize \
2962
+ (tclStubsPtr->tcl_SetChannelBufferSize) /* 224 */
2963
+#define Tcl_SetChannelOption \
2964
+ (tclStubsPtr->tcl_SetChannelOption) /* 225 */
2965
+#define Tcl_SetCommandInfo \
2966
+ (tclStubsPtr->tcl_SetCommandInfo) /* 226 */
2967
+#define Tcl_SetErrno \
2968
+ (tclStubsPtr->tcl_SetErrno) /* 227 */
2969
+#define Tcl_SetErrorCode \
2970
+ (tclStubsPtr->tcl_SetErrorCode) /* 228 */
2971
+#define Tcl_SetMaxBlockTime \
2972
+ (tclStubsPtr->tcl_SetMaxBlockTime) /* 229 */
2973
+#define Tcl_SetPanicProc \
2974
+ (tclStubsPtr->tcl_SetPanicProc) /* 230 */
2975
+#define Tcl_SetRecursionLimit \
2976
+ (tclStubsPtr->tcl_SetRecursionLimit) /* 231 */
2977
+#define Tcl_SetResult \
2978
+ (tclStubsPtr->tcl_SetResult) /* 232 */
2979
+#define Tcl_SetServiceMode \
2980
+ (tclStubsPtr->tcl_SetServiceMode) /* 233 */
2981
+#define Tcl_SetObjErrorCode \
2982
+ (tclStubsPtr->tcl_SetObjErrorCode) /* 234 */
2983
+#define Tcl_SetObjResult \
2984
+ (tclStubsPtr->tcl_SetObjResult) /* 235 */
2985
+#define Tcl_SetStdChannel \
2986
+ (tclStubsPtr->tcl_SetStdChannel) /* 236 */
2987
+#define Tcl_SetVar \
2988
+ (tclStubsPtr->tcl_SetVar) /* 237 */
2989
+#define Tcl_SetVar2 \
2990
+ (tclStubsPtr->tcl_SetVar2) /* 238 */
2991
+#define Tcl_SignalId \
2992
+ (tclStubsPtr->tcl_SignalId) /* 239 */
2993
+#define Tcl_SignalMsg \
2994
+ (tclStubsPtr->tcl_SignalMsg) /* 240 */
2995
+#define Tcl_SourceRCFile \
2996
+ (tclStubsPtr->tcl_SourceRCFile) /* 241 */
2997
+#define Tcl_SplitList \
2998
+ (tclStubsPtr->tcl_SplitList) /* 242 */
2999
+#define Tcl_SplitPath \
3000
+ (tclStubsPtr->tcl_SplitPath) /* 243 */
3001
+#define Tcl_StaticPackage \
3002
+ (tclStubsPtr->tcl_StaticPackage) /* 244 */
3003
+#define Tcl_StringMatch \
3004
+ (tclStubsPtr->tcl_StringMatch) /* 245 */
3005
+#define Tcl_TellOld \
3006
+ (tclStubsPtr->tcl_TellOld) /* 246 */
3007
+#define Tcl_TraceVar \
3008
+ (tclStubsPtr->tcl_TraceVar) /* 247 */
3009
+#define Tcl_TraceVar2 \
3010
+ (tclStubsPtr->tcl_TraceVar2) /* 248 */
3011
+#define Tcl_TranslateFileName \
3012
+ (tclStubsPtr->tcl_TranslateFileName) /* 249 */
3013
+#define Tcl_Ungets \
3014
+ (tclStubsPtr->tcl_Ungets) /* 250 */
3015
+#define Tcl_UnlinkVar \
3016
+ (tclStubsPtr->tcl_UnlinkVar) /* 251 */
3017
+#define Tcl_UnregisterChannel \
3018
+ (tclStubsPtr->tcl_UnregisterChannel) /* 252 */
3019
+#define Tcl_UnsetVar \
3020
+ (tclStubsPtr->tcl_UnsetVar) /* 253 */
3021
+#define Tcl_UnsetVar2 \
3022
+ (tclStubsPtr->tcl_UnsetVar2) /* 254 */
3023
+#define Tcl_UntraceVar \
3024
+ (tclStubsPtr->tcl_UntraceVar) /* 255 */
3025
+#define Tcl_UntraceVar2 \
3026
+ (tclStubsPtr->tcl_UntraceVar2) /* 256 */
3027
+#define Tcl_UpdateLinkedVar \
3028
+ (tclStubsPtr->tcl_UpdateLinkedVar) /* 257 */
3029
+#define Tcl_UpVar \
3030
+ (tclStubsPtr->tcl_UpVar) /* 258 */
3031
+#define Tcl_UpVar2 \
3032
+ (tclStubsPtr->tcl_UpVar2) /* 259 */
3033
+#define Tcl_VarEval \
3034
+ (tclStubsPtr->tcl_VarEval) /* 260 */
3035
+#define Tcl_VarTraceInfo \
3036
+ (tclStubsPtr->tcl_VarTraceInfo) /* 261 */
3037
+#define Tcl_VarTraceInfo2 \
3038
+ (tclStubsPtr->tcl_VarTraceInfo2) /* 262 */
3039
+#define Tcl_Write \
3040
+ (tclStubsPtr->tcl_Write) /* 263 */
3041
+#define Tcl_WrongNumArgs \
3042
+ (tclStubsPtr->tcl_WrongNumArgs) /* 264 */
3043
+#define Tcl_DumpActiveMemory \
3044
+ (tclStubsPtr->tcl_DumpActiveMemory) /* 265 */
3045
+#define Tcl_ValidateAllMemory \
3046
+ (tclStubsPtr->tcl_ValidateAllMemory) /* 266 */
3047
+#define Tcl_AppendResultVA \
3048
+ (tclStubsPtr->tcl_AppendResultVA) /* 267 */
3049
+#define Tcl_AppendStringsToObjVA \
3050
+ (tclStubsPtr->tcl_AppendStringsToObjVA) /* 268 */
3051
+#define Tcl_HashStats \
3052
+ (tclStubsPtr->tcl_HashStats) /* 269 */
3053
+#define Tcl_ParseVar \
3054
+ (tclStubsPtr->tcl_ParseVar) /* 270 */
3055
+#define Tcl_PkgPresent \
3056
+ (tclStubsPtr->tcl_PkgPresent) /* 271 */
3057
+#define Tcl_PkgPresentEx \
3058
+ (tclStubsPtr->tcl_PkgPresentEx) /* 272 */
3059
+#define Tcl_PkgProvide \
3060
+ (tclStubsPtr->tcl_PkgProvide) /* 273 */
3061
+#define Tcl_PkgRequire \
3062
+ (tclStubsPtr->tcl_PkgRequire) /* 274 */
3063
+#define Tcl_SetErrorCodeVA \
3064
+ (tclStubsPtr->tcl_SetErrorCodeVA) /* 275 */
3065
+#define Tcl_VarEvalVA \
3066
+ (tclStubsPtr->tcl_VarEvalVA) /* 276 */
3067
+#define Tcl_WaitPid \
3068
+ (tclStubsPtr->tcl_WaitPid) /* 277 */
3069
+#define Tcl_PanicVA \
3070
+ (tclStubsPtr->tcl_PanicVA) /* 278 */
3071
+#define Tcl_GetVersion \
3072
+ (tclStubsPtr->tcl_GetVersion) /* 279 */
3073
+#define Tcl_InitMemory \
3074
+ (tclStubsPtr->tcl_InitMemory) /* 280 */
3075
+#define Tcl_StackChannel \
3076
+ (tclStubsPtr->tcl_StackChannel) /* 281 */
3077
+#define Tcl_UnstackChannel \
3078
+ (tclStubsPtr->tcl_UnstackChannel) /* 282 */
3079
+#define Tcl_GetStackedChannel \
3080
+ (tclStubsPtr->tcl_GetStackedChannel) /* 283 */
3081
+#define Tcl_SetMainLoop \
3082
+ (tclStubsPtr->tcl_SetMainLoop) /* 284 */
3083
+/* Slot 285 is reserved */
3084
+#define Tcl_AppendObjToObj \
3085
+ (tclStubsPtr->tcl_AppendObjToObj) /* 286 */
3086
+#define Tcl_CreateEncoding \
3087
+ (tclStubsPtr->tcl_CreateEncoding) /* 287 */
3088
+#define Tcl_CreateThreadExitHandler \
3089
+ (tclStubsPtr->tcl_CreateThreadExitHandler) /* 288 */
3090
+#define Tcl_DeleteThreadExitHandler \
3091
+ (tclStubsPtr->tcl_DeleteThreadExitHandler) /* 289 */
3092
+#define Tcl_DiscardResult \
3093
+ (tclStubsPtr->tcl_DiscardResult) /* 290 */
3094
+#define Tcl_EvalEx \
3095
+ (tclStubsPtr->tcl_EvalEx) /* 291 */
3096
+#define Tcl_EvalObjv \
3097
+ (tclStubsPtr->tcl_EvalObjv) /* 292 */
3098
+#define Tcl_EvalObjEx \
3099
+ (tclStubsPtr->tcl_EvalObjEx) /* 293 */
3100
+#define Tcl_ExitThread \
3101
+ (tclStubsPtr->tcl_ExitThread) /* 294 */
3102
+#define Tcl_ExternalToUtf \
3103
+ (tclStubsPtr->tcl_ExternalToUtf) /* 295 */
3104
+#define Tcl_ExternalToUtfDString \
3105
+ (tclStubsPtr->tcl_ExternalToUtfDString) /* 296 */
3106
+#define Tcl_FinalizeThread \
3107
+ (tclStubsPtr->tcl_FinalizeThread) /* 297 */
3108
+#define Tcl_FinalizeNotifier \
3109
+ (tclStubsPtr->tcl_FinalizeNotifier) /* 298 */
3110
+#define Tcl_FreeEncoding \
3111
+ (tclStubsPtr->tcl_FreeEncoding) /* 299 */
3112
+#define Tcl_GetCurrentThread \
3113
+ (tclStubsPtr->tcl_GetCurrentThread) /* 300 */
3114
+#define Tcl_GetEncoding \
3115
+ (tclStubsPtr->tcl_GetEncoding) /* 301 */
3116
+#define Tcl_GetEncodingName \
3117
+ (tclStubsPtr->tcl_GetEncodingName) /* 302 */
3118
+#define Tcl_GetEncodingNames \
3119
+ (tclStubsPtr->tcl_GetEncodingNames) /* 303 */
3120
+#define Tcl_GetIndexFromObjStruct \
3121
+ (tclStubsPtr->tcl_GetIndexFromObjStruct) /* 304 */
3122
+#define Tcl_GetThreadData \
3123
+ (tclStubsPtr->tcl_GetThreadData) /* 305 */
3124
+#define Tcl_GetVar2Ex \
3125
+ (tclStubsPtr->tcl_GetVar2Ex) /* 306 */
3126
+#define Tcl_InitNotifier \
3127
+ (tclStubsPtr->tcl_InitNotifier) /* 307 */
3128
+#define Tcl_MutexLock \
3129
+ (tclStubsPtr->tcl_MutexLock) /* 308 */
3130
+#define Tcl_MutexUnlock \
3131
+ (tclStubsPtr->tcl_MutexUnlock) /* 309 */
3132
+#define Tcl_ConditionNotify \
3133
+ (tclStubsPtr->tcl_ConditionNotify) /* 310 */
3134
+#define Tcl_ConditionWait \
3135
+ (tclStubsPtr->tcl_ConditionWait) /* 311 */
3136
+#define Tcl_NumUtfChars \
3137
+ (tclStubsPtr->tcl_NumUtfChars) /* 312 */
3138
+#define Tcl_ReadChars \
3139
+ (tclStubsPtr->tcl_ReadChars) /* 313 */
3140
+#define Tcl_RestoreResult \
3141
+ (tclStubsPtr->tcl_RestoreResult) /* 314 */
3142
+#define Tcl_SaveResult \
3143
+ (tclStubsPtr->tcl_SaveResult) /* 315 */
3144
+#define Tcl_SetSystemEncoding \
3145
+ (tclStubsPtr->tcl_SetSystemEncoding) /* 316 */
3146
+#define Tcl_SetVar2Ex \
3147
+ (tclStubsPtr->tcl_SetVar2Ex) /* 317 */
3148
+#define Tcl_ThreadAlert \
3149
+ (tclStubsPtr->tcl_ThreadAlert) /* 318 */
3150
+#define Tcl_ThreadQueueEvent \
3151
+ (tclStubsPtr->tcl_ThreadQueueEvent) /* 319 */
3152
+#define Tcl_UniCharAtIndex \
3153
+ (tclStubsPtr->tcl_UniCharAtIndex) /* 320 */
3154
+#define Tcl_UniCharToLower \
3155
+ (tclStubsPtr->tcl_UniCharToLower) /* 321 */
3156
+#define Tcl_UniCharToTitle \
3157
+ (tclStubsPtr->tcl_UniCharToTitle) /* 322 */
3158
+#define Tcl_UniCharToUpper \
3159
+ (tclStubsPtr->tcl_UniCharToUpper) /* 323 */
3160
+#define Tcl_UniCharToUtf \
3161
+ (tclStubsPtr->tcl_UniCharToUtf) /* 324 */
3162
+#define Tcl_UtfAtIndex \
3163
+ (tclStubsPtr->tcl_UtfAtIndex) /* 325 */
3164
+#define Tcl_UtfCharComplete \
3165
+ (tclStubsPtr->tcl_UtfCharComplete) /* 326 */
3166
+#define Tcl_UtfBackslash \
3167
+ (tclStubsPtr->tcl_UtfBackslash) /* 327 */
3168
+#define Tcl_UtfFindFirst \
3169
+ (tclStubsPtr->tcl_UtfFindFirst) /* 328 */
3170
+#define Tcl_UtfFindLast \
3171
+ (tclStubsPtr->tcl_UtfFindLast) /* 329 */
3172
+#define Tcl_UtfNext \
3173
+ (tclStubsPtr->tcl_UtfNext) /* 330 */
3174
+#define Tcl_UtfPrev \
3175
+ (tclStubsPtr->tcl_UtfPrev) /* 331 */
3176
+#define Tcl_UtfToExternal \
3177
+ (tclStubsPtr->tcl_UtfToExternal) /* 332 */
3178
+#define Tcl_UtfToExternalDString \
3179
+ (tclStubsPtr->tcl_UtfToExternalDString) /* 333 */
3180
+#define Tcl_UtfToLower \
3181
+ (tclStubsPtr->tcl_UtfToLower) /* 334 */
3182
+#define Tcl_UtfToTitle \
3183
+ (tclStubsPtr->tcl_UtfToTitle) /* 335 */
3184
+#define Tcl_UtfToUniChar \
3185
+ (tclStubsPtr->tcl_UtfToUniChar) /* 336 */
3186
+#define Tcl_UtfToUpper \
3187
+ (tclStubsPtr->tcl_UtfToUpper) /* 337 */
3188
+#define Tcl_WriteChars \
3189
+ (tclStubsPtr->tcl_WriteChars) /* 338 */
3190
+#define Tcl_WriteObj \
3191
+ (tclStubsPtr->tcl_WriteObj) /* 339 */
3192
+#define Tcl_GetString \
3193
+ (tclStubsPtr->tcl_GetString) /* 340 */
3194
+#define Tcl_GetDefaultEncodingDir \
3195
+ (tclStubsPtr->tcl_GetDefaultEncodingDir) /* 341 */
3196
+#define Tcl_SetDefaultEncodingDir \
3197
+ (tclStubsPtr->tcl_SetDefaultEncodingDir) /* 342 */
3198
+#define Tcl_AlertNotifier \
3199
+ (tclStubsPtr->tcl_AlertNotifier) /* 343 */
3200
+#define Tcl_ServiceModeHook \
3201
+ (tclStubsPtr->tcl_ServiceModeHook) /* 344 */
3202
+#define Tcl_UniCharIsAlnum \
3203
+ (tclStubsPtr->tcl_UniCharIsAlnum) /* 345 */
3204
+#define Tcl_UniCharIsAlpha \
3205
+ (tclStubsPtr->tcl_UniCharIsAlpha) /* 346 */
3206
+#define Tcl_UniCharIsDigit \
3207
+ (tclStubsPtr->tcl_UniCharIsDigit) /* 347 */
3208
+#define Tcl_UniCharIsLower \
3209
+ (tclStubsPtr->tcl_UniCharIsLower) /* 348 */
3210
+#define Tcl_UniCharIsSpace \
3211
+ (tclStubsPtr->tcl_UniCharIsSpace) /* 349 */
3212
+#define Tcl_UniCharIsUpper \
3213
+ (tclStubsPtr->tcl_UniCharIsUpper) /* 350 */
3214
+#define Tcl_UniCharIsWordChar \
3215
+ (tclStubsPtr->tcl_UniCharIsWordChar) /* 351 */
3216
+#define Tcl_UniCharLen \
3217
+ (tclStubsPtr->tcl_UniCharLen) /* 352 */
3218
+#define Tcl_UniCharNcmp \
3219
+ (tclStubsPtr->tcl_UniCharNcmp) /* 353 */
3220
+#define Tcl_UniCharToUtfDString \
3221
+ (tclStubsPtr->tcl_UniCharToUtfDString) /* 354 */
3222
+#define Tcl_UtfToUniCharDString \
3223
+ (tclStubsPtr->tcl_UtfToUniCharDString) /* 355 */
3224
+#define Tcl_GetRegExpFromObj \
3225
+ (tclStubsPtr->tcl_GetRegExpFromObj) /* 356 */
3226
+#define Tcl_EvalTokens \
3227
+ (tclStubsPtr->tcl_EvalTokens) /* 357 */
3228
+#define Tcl_FreeParse \
3229
+ (tclStubsPtr->tcl_FreeParse) /* 358 */
3230
+#define Tcl_LogCommandInfo \
3231
+ (tclStubsPtr->tcl_LogCommandInfo) /* 359 */
3232
+#define Tcl_ParseBraces \
3233
+ (tclStubsPtr->tcl_ParseBraces) /* 360 */
3234
+#define Tcl_ParseCommand \
3235
+ (tclStubsPtr->tcl_ParseCommand) /* 361 */
3236
+#define Tcl_ParseExpr \
3237
+ (tclStubsPtr->tcl_ParseExpr) /* 362 */
3238
+#define Tcl_ParseQuotedString \
3239
+ (tclStubsPtr->tcl_ParseQuotedString) /* 363 */
3240
+#define Tcl_ParseVarName \
3241
+ (tclStubsPtr->tcl_ParseVarName) /* 364 */
3242
+#define Tcl_GetCwd \
3243
+ (tclStubsPtr->tcl_GetCwd) /* 365 */
3244
+#define Tcl_Chdir \
3245
+ (tclStubsPtr->tcl_Chdir) /* 366 */
3246
+#define Tcl_Access \
3247
+ (tclStubsPtr->tcl_Access) /* 367 */
3248
+#define Tcl_Stat \
3249
+ (tclStubsPtr->tcl_Stat) /* 368 */
3250
+#define Tcl_UtfNcmp \
3251
+ (tclStubsPtr->tcl_UtfNcmp) /* 369 */
3252
+#define Tcl_UtfNcasecmp \
3253
+ (tclStubsPtr->tcl_UtfNcasecmp) /* 370 */
3254
+#define Tcl_StringCaseMatch \
3255
+ (tclStubsPtr->tcl_StringCaseMatch) /* 371 */
3256
+#define Tcl_UniCharIsControl \
3257
+ (tclStubsPtr->tcl_UniCharIsControl) /* 372 */
3258
+#define Tcl_UniCharIsGraph \
3259
+ (tclStubsPtr->tcl_UniCharIsGraph) /* 373 */
3260
+#define Tcl_UniCharIsPrint \
3261
+ (tclStubsPtr->tcl_UniCharIsPrint) /* 374 */
3262
+#define Tcl_UniCharIsPunct \
3263
+ (tclStubsPtr->tcl_UniCharIsPunct) /* 375 */
3264
+#define Tcl_RegExpExecObj \
3265
+ (tclStubsPtr->tcl_RegExpExecObj) /* 376 */
3266
+#define Tcl_RegExpGetInfo \
3267
+ (tclStubsPtr->tcl_RegExpGetInfo) /* 377 */
3268
+#define Tcl_NewUnicodeObj \
3269
+ (tclStubsPtr->tcl_NewUnicodeObj) /* 378 */
3270
+#define Tcl_SetUnicodeObj \
3271
+ (tclStubsPtr->tcl_SetUnicodeObj) /* 379 */
3272
+#define Tcl_GetCharLength \
3273
+ (tclStubsPtr->tcl_GetCharLength) /* 380 */
3274
+#define Tcl_GetUniChar \
3275
+ (tclStubsPtr->tcl_GetUniChar) /* 381 */
3276
+#define Tcl_GetUnicode \
3277
+ (tclStubsPtr->tcl_GetUnicode) /* 382 */
3278
+#define Tcl_GetRange \
3279
+ (tclStubsPtr->tcl_GetRange) /* 383 */
3280
+#define Tcl_AppendUnicodeToObj \
3281
+ (tclStubsPtr->tcl_AppendUnicodeToObj) /* 384 */
3282
+#define Tcl_RegExpMatchObj \
3283
+ (tclStubsPtr->tcl_RegExpMatchObj) /* 385 */
3284
+#define Tcl_SetNotifier \
3285
+ (tclStubsPtr->tcl_SetNotifier) /* 386 */
3286
+#define Tcl_GetAllocMutex \
3287
+ (tclStubsPtr->tcl_GetAllocMutex) /* 387 */
3288
+#define Tcl_GetChannelNames \
3289
+ (tclStubsPtr->tcl_GetChannelNames) /* 388 */
3290
+#define Tcl_GetChannelNamesEx \
3291
+ (tclStubsPtr->tcl_GetChannelNamesEx) /* 389 */
3292
+#define Tcl_ProcObjCmd \
3293
+ (tclStubsPtr->tcl_ProcObjCmd) /* 390 */
3294
+#define Tcl_ConditionFinalize \
3295
+ (tclStubsPtr->tcl_ConditionFinalize) /* 391 */
3296
+#define Tcl_MutexFinalize \
3297
+ (tclStubsPtr->tcl_MutexFinalize) /* 392 */
3298
+#define Tcl_CreateThread \
3299
+ (tclStubsPtr->tcl_CreateThread) /* 393 */
3300
+#define Tcl_ReadRaw \
3301
+ (tclStubsPtr->tcl_ReadRaw) /* 394 */
3302
+#define Tcl_WriteRaw \
3303
+ (tclStubsPtr->tcl_WriteRaw) /* 395 */
3304
+#define Tcl_GetTopChannel \
3305
+ (tclStubsPtr->tcl_GetTopChannel) /* 396 */
3306
+#define Tcl_ChannelBuffered \
3307
+ (tclStubsPtr->tcl_ChannelBuffered) /* 397 */
3308
+#define Tcl_ChannelName \
3309
+ (tclStubsPtr->tcl_ChannelName) /* 398 */
3310
+#define Tcl_ChannelVersion \
3311
+ (tclStubsPtr->tcl_ChannelVersion) /* 399 */
3312
+#define Tcl_ChannelBlockModeProc \
3313
+ (tclStubsPtr->tcl_ChannelBlockModeProc) /* 400 */
3314
+#define Tcl_ChannelCloseProc \
3315
+ (tclStubsPtr->tcl_ChannelCloseProc) /* 401 */
3316
+#define Tcl_ChannelClose2Proc \
3317
+ (tclStubsPtr->tcl_ChannelClose2Proc) /* 402 */
3318
+#define Tcl_ChannelInputProc \
3319
+ (tclStubsPtr->tcl_ChannelInputProc) /* 403 */
3320
+#define Tcl_ChannelOutputProc \
3321
+ (tclStubsPtr->tcl_ChannelOutputProc) /* 404 */
3322
+#define Tcl_ChannelSeekProc \
3323
+ (tclStubsPtr->tcl_ChannelSeekProc) /* 405 */
3324
+#define Tcl_ChannelSetOptionProc \
3325
+ (tclStubsPtr->tcl_ChannelSetOptionProc) /* 406 */
3326
+#define Tcl_ChannelGetOptionProc \
3327
+ (tclStubsPtr->tcl_ChannelGetOptionProc) /* 407 */
3328
+#define Tcl_ChannelWatchProc \
3329
+ (tclStubsPtr->tcl_ChannelWatchProc) /* 408 */
3330
+#define Tcl_ChannelGetHandleProc \
3331
+ (tclStubsPtr->tcl_ChannelGetHandleProc) /* 409 */
3332
+#define Tcl_ChannelFlushProc \
3333
+ (tclStubsPtr->tcl_ChannelFlushProc) /* 410 */
3334
+#define Tcl_ChannelHandlerProc \
3335
+ (tclStubsPtr->tcl_ChannelHandlerProc) /* 411 */
3336
+#define Tcl_JoinThread \
3337
+ (tclStubsPtr->tcl_JoinThread) /* 412 */
3338
+#define Tcl_IsChannelShared \
3339
+ (tclStubsPtr->tcl_IsChannelShared) /* 413 */
3340
+#define Tcl_IsChannelRegistered \
3341
+ (tclStubsPtr->tcl_IsChannelRegistered) /* 414 */
3342
+#define Tcl_CutChannel \
3343
+ (tclStubsPtr->tcl_CutChannel) /* 415 */
3344
+#define Tcl_SpliceChannel \
3345
+ (tclStubsPtr->tcl_SpliceChannel) /* 416 */
3346
+#define Tcl_ClearChannelHandlers \
3347
+ (tclStubsPtr->tcl_ClearChannelHandlers) /* 417 */
3348
+#define Tcl_IsChannelExisting \
3349
+ (tclStubsPtr->tcl_IsChannelExisting) /* 418 */
3350
+#define Tcl_UniCharNcasecmp \
3351
+ (tclStubsPtr->tcl_UniCharNcasecmp) /* 419 */
3352
+#define Tcl_UniCharCaseMatch \
3353
+ (tclStubsPtr->tcl_UniCharCaseMatch) /* 420 */
3354
+#define Tcl_FindHashEntry \
3355
+ (tclStubsPtr->tcl_FindHashEntry) /* 421 */
3356
+#define Tcl_CreateHashEntry \
3357
+ (tclStubsPtr->tcl_CreateHashEntry) /* 422 */
3358
+#define Tcl_InitCustomHashTable \
3359
+ (tclStubsPtr->tcl_InitCustomHashTable) /* 423 */
3360
+#define Tcl_InitObjHashTable \
3361
+ (tclStubsPtr->tcl_InitObjHashTable) /* 424 */
3362
+#define Tcl_CommandTraceInfo \
3363
+ (tclStubsPtr->tcl_CommandTraceInfo) /* 425 */
3364
+#define Tcl_TraceCommand \
3365
+ (tclStubsPtr->tcl_TraceCommand) /* 426 */
3366
+#define Tcl_UntraceCommand \
3367
+ (tclStubsPtr->tcl_UntraceCommand) /* 427 */
3368
+#define Tcl_AttemptAlloc \
3369
+ (tclStubsPtr->tcl_AttemptAlloc) /* 428 */
3370
+#define Tcl_AttemptDbCkalloc \
3371
+ (tclStubsPtr->tcl_AttemptDbCkalloc) /* 429 */
3372
+#define Tcl_AttemptRealloc \
3373
+ (tclStubsPtr->tcl_AttemptRealloc) /* 430 */
3374
+#define Tcl_AttemptDbCkrealloc \
3375
+ (tclStubsPtr->tcl_AttemptDbCkrealloc) /* 431 */
3376
+#define Tcl_AttemptSetObjLength \
3377
+ (tclStubsPtr->tcl_AttemptSetObjLength) /* 432 */
3378
+#define Tcl_GetChannelThread \
3379
+ (tclStubsPtr->tcl_GetChannelThread) /* 433 */
3380
+#define Tcl_GetUnicodeFromObj \
3381
+ (tclStubsPtr->tcl_GetUnicodeFromObj) /* 434 */
3382
+#define Tcl_GetMathFuncInfo \
3383
+ (tclStubsPtr->tcl_GetMathFuncInfo) /* 435 */
3384
+#define Tcl_ListMathFuncs \
3385
+ (tclStubsPtr->tcl_ListMathFuncs) /* 436 */
3386
+#define Tcl_SubstObj \
3387
+ (tclStubsPtr->tcl_SubstObj) /* 437 */
3388
+#define Tcl_DetachChannel \
3389
+ (tclStubsPtr->tcl_DetachChannel) /* 438 */
3390
+#define Tcl_IsStandardChannel \
3391
+ (tclStubsPtr->tcl_IsStandardChannel) /* 439 */
3392
+#define Tcl_FSCopyFile \
3393
+ (tclStubsPtr->tcl_FSCopyFile) /* 440 */
3394
+#define Tcl_FSCopyDirectory \
3395
+ (tclStubsPtr->tcl_FSCopyDirectory) /* 441 */
3396
+#define Tcl_FSCreateDirectory \
3397
+ (tclStubsPtr->tcl_FSCreateDirectory) /* 442 */
3398
+#define Tcl_FSDeleteFile \
3399
+ (tclStubsPtr->tcl_FSDeleteFile) /* 443 */
3400
+#define Tcl_FSLoadFile \
3401
+ (tclStubsPtr->tcl_FSLoadFile) /* 444 */
3402
+#define Tcl_FSMatchInDirectory \
3403
+ (tclStubsPtr->tcl_FSMatchInDirectory) /* 445 */
3404
+#define Tcl_FSLink \
3405
+ (tclStubsPtr->tcl_FSLink) /* 446 */
3406
+#define Tcl_FSRemoveDirectory \
3407
+ (tclStubsPtr->tcl_FSRemoveDirectory) /* 447 */
3408
+#define Tcl_FSRenameFile \
3409
+ (tclStubsPtr->tcl_FSRenameFile) /* 448 */
3410
+#define Tcl_FSLstat \
3411
+ (tclStubsPtr->tcl_FSLstat) /* 449 */
3412
+#define Tcl_FSUtime \
3413
+ (tclStubsPtr->tcl_FSUtime) /* 450 */
3414
+#define Tcl_FSFileAttrsGet \
3415
+ (tclStubsPtr->tcl_FSFileAttrsGet) /* 451 */
3416
+#define Tcl_FSFileAttrsSet \
3417
+ (tclStubsPtr->tcl_FSFileAttrsSet) /* 452 */
3418
+#define Tcl_FSFileAttrStrings \
3419
+ (tclStubsPtr->tcl_FSFileAttrStrings) /* 453 */
3420
+#define Tcl_FSStat \
3421
+ (tclStubsPtr->tcl_FSStat) /* 454 */
3422
+#define Tcl_FSAccess \
3423
+ (tclStubsPtr->tcl_FSAccess) /* 455 */
3424
+#define Tcl_FSOpenFileChannel \
3425
+ (tclStubsPtr->tcl_FSOpenFileChannel) /* 456 */
3426
+#define Tcl_FSGetCwd \
3427
+ (tclStubsPtr->tcl_FSGetCwd) /* 457 */
3428
+#define Tcl_FSChdir \
3429
+ (tclStubsPtr->tcl_FSChdir) /* 458 */
3430
+#define Tcl_FSConvertToPathType \
3431
+ (tclStubsPtr->tcl_FSConvertToPathType) /* 459 */
3432
+#define Tcl_FSJoinPath \
3433
+ (tclStubsPtr->tcl_FSJoinPath) /* 460 */
3434
+#define Tcl_FSSplitPath \
3435
+ (tclStubsPtr->tcl_FSSplitPath) /* 461 */
3436
+#define Tcl_FSEqualPaths \
3437
+ (tclStubsPtr->tcl_FSEqualPaths) /* 462 */
3438
+#define Tcl_FSGetNormalizedPath \
3439
+ (tclStubsPtr->tcl_FSGetNormalizedPath) /* 463 */
3440
+#define Tcl_FSJoinToPath \
3441
+ (tclStubsPtr->tcl_FSJoinToPath) /* 464 */
3442
+#define Tcl_FSGetInternalRep \
3443
+ (tclStubsPtr->tcl_FSGetInternalRep) /* 465 */
3444
+#define Tcl_FSGetTranslatedPath \
3445
+ (tclStubsPtr->tcl_FSGetTranslatedPath) /* 466 */
3446
+#define Tcl_FSEvalFile \
3447
+ (tclStubsPtr->tcl_FSEvalFile) /* 467 */
3448
+#define Tcl_FSNewNativePath \
3449
+ (tclStubsPtr->tcl_FSNewNativePath) /* 468 */
3450
+#define Tcl_FSGetNativePath \
3451
+ (tclStubsPtr->tcl_FSGetNativePath) /* 469 */
3452
+#define Tcl_FSFileSystemInfo \
3453
+ (tclStubsPtr->tcl_FSFileSystemInfo) /* 470 */
3454
+#define Tcl_FSPathSeparator \
3455
+ (tclStubsPtr->tcl_FSPathSeparator) /* 471 */
3456
+#define Tcl_FSListVolumes \
3457
+ (tclStubsPtr->tcl_FSListVolumes) /* 472 */
3458
+#define Tcl_FSRegister \
3459
+ (tclStubsPtr->tcl_FSRegister) /* 473 */
3460
+#define Tcl_FSUnregister \
3461
+ (tclStubsPtr->tcl_FSUnregister) /* 474 */
3462
+#define Tcl_FSData \
3463
+ (tclStubsPtr->tcl_FSData) /* 475 */
3464
+#define Tcl_FSGetTranslatedStringPath \
3465
+ (tclStubsPtr->tcl_FSGetTranslatedStringPath) /* 476 */
3466
+#define Tcl_FSGetFileSystemForPath \
3467
+ (tclStubsPtr->tcl_FSGetFileSystemForPath) /* 477 */
3468
+#define Tcl_FSGetPathType \
3469
+ (tclStubsPtr->tcl_FSGetPathType) /* 478 */
3470
+#define Tcl_OutputBuffered \
3471
+ (tclStubsPtr->tcl_OutputBuffered) /* 479 */
3472
+#define Tcl_FSMountsChanged \
3473
+ (tclStubsPtr->tcl_FSMountsChanged) /* 480 */
3474
+#define Tcl_EvalTokensStandard \
3475
+ (tclStubsPtr->tcl_EvalTokensStandard) /* 481 */
3476
+#define Tcl_GetTime \
3477
+ (tclStubsPtr->tcl_GetTime) /* 482 */
3478
+#define Tcl_CreateObjTrace \
3479
+ (tclStubsPtr->tcl_CreateObjTrace) /* 483 */
3480
+#define Tcl_GetCommandInfoFromToken \
3481
+ (tclStubsPtr->tcl_GetCommandInfoFromToken) /* 484 */
3482
+#define Tcl_SetCommandInfoFromToken \
3483
+ (tclStubsPtr->tcl_SetCommandInfoFromToken) /* 485 */
3484
+#define Tcl_DbNewWideIntObj \
3485
+ (tclStubsPtr->tcl_DbNewWideIntObj) /* 486 */
3486
+#define Tcl_GetWideIntFromObj \
3487
+ (tclStubsPtr->tcl_GetWideIntFromObj) /* 487 */
3488
+#define Tcl_NewWideIntObj \
3489
+ (tclStubsPtr->tcl_NewWideIntObj) /* 488 */
3490
+#define Tcl_SetWideIntObj \
3491
+ (tclStubsPtr->tcl_SetWideIntObj) /* 489 */
3492
+#define Tcl_AllocStatBuf \
3493
+ (tclStubsPtr->tcl_AllocStatBuf) /* 490 */
3494
+#define Tcl_Seek \
3495
+ (tclStubsPtr->tcl_Seek) /* 491 */
3496
+#define Tcl_Tell \
3497
+ (tclStubsPtr->tcl_Tell) /* 492 */
3498
+#define Tcl_ChannelWideSeekProc \
3499
+ (tclStubsPtr->tcl_ChannelWideSeekProc) /* 493 */
3500
+#define Tcl_DictObjPut \
3501
+ (tclStubsPtr->tcl_DictObjPut) /* 494 */
3502
+#define Tcl_DictObjGet \
3503
+ (tclStubsPtr->tcl_DictObjGet) /* 495 */
3504
+#define Tcl_DictObjRemove \
3505
+ (tclStubsPtr->tcl_DictObjRemove) /* 496 */
3506
+#define Tcl_DictObjSize \
3507
+ (tclStubsPtr->tcl_DictObjSize) /* 497 */
3508
+#define Tcl_DictObjFirst \
3509
+ (tclStubsPtr->tcl_DictObjFirst) /* 498 */
3510
+#define Tcl_DictObjNext \
3511
+ (tclStubsPtr->tcl_DictObjNext) /* 499 */
3512
+#define Tcl_DictObjDone \
3513
+ (tclStubsPtr->tcl_DictObjDone) /* 500 */
3514
+#define Tcl_DictObjPutKeyList \
3515
+ (tclStubsPtr->tcl_DictObjPutKeyList) /* 501 */
3516
+#define Tcl_DictObjRemoveKeyList \
3517
+ (tclStubsPtr->tcl_DictObjRemoveKeyList) /* 502 */
3518
+#define Tcl_NewDictObj \
3519
+ (tclStubsPtr->tcl_NewDictObj) /* 503 */
3520
+#define Tcl_DbNewDictObj \
3521
+ (tclStubsPtr->tcl_DbNewDictObj) /* 504 */
3522
+#define Tcl_RegisterConfig \
3523
+ (tclStubsPtr->tcl_RegisterConfig) /* 505 */
3524
+#define Tcl_CreateNamespace \
3525
+ (tclStubsPtr->tcl_CreateNamespace) /* 506 */
3526
+#define Tcl_DeleteNamespace \
3527
+ (tclStubsPtr->tcl_DeleteNamespace) /* 507 */
3528
+#define Tcl_AppendExportList \
3529
+ (tclStubsPtr->tcl_AppendExportList) /* 508 */
3530
+#define Tcl_Export \
3531
+ (tclStubsPtr->tcl_Export) /* 509 */
3532
+#define Tcl_Import \
3533
+ (tclStubsPtr->tcl_Import) /* 510 */
3534
+#define Tcl_ForgetImport \
3535
+ (tclStubsPtr->tcl_ForgetImport) /* 511 */
3536
+#define Tcl_GetCurrentNamespace \
3537
+ (tclStubsPtr->tcl_GetCurrentNamespace) /* 512 */
3538
+#define Tcl_GetGlobalNamespace \
3539
+ (tclStubsPtr->tcl_GetGlobalNamespace) /* 513 */
3540
+#define Tcl_FindNamespace \
3541
+ (tclStubsPtr->tcl_FindNamespace) /* 514 */
3542
+#define Tcl_FindCommand \
3543
+ (tclStubsPtr->tcl_FindCommand) /* 515 */
3544
+#define Tcl_GetCommandFromObj \
3545
+ (tclStubsPtr->tcl_GetCommandFromObj) /* 516 */
3546
+#define Tcl_GetCommandFullName \
3547
+ (tclStubsPtr->tcl_GetCommandFullName) /* 517 */
3548
+#define Tcl_FSEvalFileEx \
3549
+ (tclStubsPtr->tcl_FSEvalFileEx) /* 518 */
3550
+#define Tcl_SetExitProc \
3551
+ (tclStubsPtr->tcl_SetExitProc) /* 519 */
3552
+#define Tcl_LimitAddHandler \
3553
+ (tclStubsPtr->tcl_LimitAddHandler) /* 520 */
3554
+#define Tcl_LimitRemoveHandler \
3555
+ (tclStubsPtr->tcl_LimitRemoveHandler) /* 521 */
3556
+#define Tcl_LimitReady \
3557
+ (tclStubsPtr->tcl_LimitReady) /* 522 */
3558
+#define Tcl_LimitCheck \
3559
+ (tclStubsPtr->tcl_LimitCheck) /* 523 */
3560
+#define Tcl_LimitExceeded \
3561
+ (tclStubsPtr->tcl_LimitExceeded) /* 524 */
3562
+#define Tcl_LimitSetCommands \
3563
+ (tclStubsPtr->tcl_LimitSetCommands) /* 525 */
3564
+#define Tcl_LimitSetTime \
3565
+ (tclStubsPtr->tcl_LimitSetTime) /* 526 */
3566
+#define Tcl_LimitSetGranularity \
3567
+ (tclStubsPtr->tcl_LimitSetGranularity) /* 527 */
3568
+#define Tcl_LimitTypeEnabled \
3569
+ (tclStubsPtr->tcl_LimitTypeEnabled) /* 528 */
3570
+#define Tcl_LimitTypeExceeded \
3571
+ (tclStubsPtr->tcl_LimitTypeExceeded) /* 529 */
3572
+#define Tcl_LimitTypeSet \
3573
+ (tclStubsPtr->tcl_LimitTypeSet) /* 530 */
3574
+#define Tcl_LimitTypeReset \
3575
+ (tclStubsPtr->tcl_LimitTypeReset) /* 531 */
3576
+#define Tcl_LimitGetCommands \
3577
+ (tclStubsPtr->tcl_LimitGetCommands) /* 532 */
3578
+#define Tcl_LimitGetTime \
3579
+ (tclStubsPtr->tcl_LimitGetTime) /* 533 */
3580
+#define Tcl_LimitGetGranularity \
3581
+ (tclStubsPtr->tcl_LimitGetGranularity) /* 534 */
3582
+#define Tcl_SaveInterpState \
3583
+ (tclStubsPtr->tcl_SaveInterpState) /* 535 */
3584
+#define Tcl_RestoreInterpState \
3585
+ (tclStubsPtr->tcl_RestoreInterpState) /* 536 */
3586
+#define Tcl_DiscardInterpState \
3587
+ (tclStubsPtr->tcl_DiscardInterpState) /* 537 */
3588
+#define Tcl_SetReturnOptions \
3589
+ (tclStubsPtr->tcl_SetReturnOptions) /* 538 */
3590
+#define Tcl_GetReturnOptions \
3591
+ (tclStubsPtr->tcl_GetReturnOptions) /* 539 */
3592
+#define Tcl_IsEnsemble \
3593
+ (tclStubsPtr->tcl_IsEnsemble) /* 540 */
3594
+#define Tcl_CreateEnsemble \
3595
+ (tclStubsPtr->tcl_CreateEnsemble) /* 541 */
3596
+#define Tcl_FindEnsemble \
3597
+ (tclStubsPtr->tcl_FindEnsemble) /* 542 */
3598
+#define Tcl_SetEnsembleSubcommandList \
3599
+ (tclStubsPtr->tcl_SetEnsembleSubcommandList) /* 543 */
3600
+#define Tcl_SetEnsembleMappingDict \
3601
+ (tclStubsPtr->tcl_SetEnsembleMappingDict) /* 544 */
3602
+#define Tcl_SetEnsembleUnknownHandler \
3603
+ (tclStubsPtr->tcl_SetEnsembleUnknownHandler) /* 545 */
3604
+#define Tcl_SetEnsembleFlags \
3605
+ (tclStubsPtr->tcl_SetEnsembleFlags) /* 546 */
3606
+#define Tcl_GetEnsembleSubcommandList \
3607
+ (tclStubsPtr->tcl_GetEnsembleSubcommandList) /* 547 */
3608
+#define Tcl_GetEnsembleMappingDict \
3609
+ (tclStubsPtr->tcl_GetEnsembleMappingDict) /* 548 */
3610
+#define Tcl_GetEnsembleUnknownHandler \
3611
+ (tclStubsPtr->tcl_GetEnsembleUnknownHandler) /* 549 */
3612
+#define Tcl_GetEnsembleFlags \
3613
+ (tclStubsPtr->tcl_GetEnsembleFlags) /* 550 */
3614
+#define Tcl_GetEnsembleNamespace \
3615
+ (tclStubsPtr->tcl_GetEnsembleNamespace) /* 551 */
3616
+#define Tcl_SetTimeProc \
3617
+ (tclStubsPtr->tcl_SetTimeProc) /* 552 */
3618
+#define Tcl_QueryTimeProc \
3619
+ (tclStubsPtr->tcl_QueryTimeProc) /* 553 */
3620
+#define Tcl_ChannelThreadActionProc \
3621
+ (tclStubsPtr->tcl_ChannelThreadActionProc) /* 554 */
3622
+#define Tcl_NewBignumObj \
3623
+ (tclStubsPtr->tcl_NewBignumObj) /* 555 */
3624
+#define Tcl_DbNewBignumObj \
3625
+ (tclStubsPtr->tcl_DbNewBignumObj) /* 556 */
3626
+#define Tcl_SetBignumObj \
3627
+ (tclStubsPtr->tcl_SetBignumObj) /* 557 */
3628
+#define Tcl_GetBignumFromObj \
3629
+ (tclStubsPtr->tcl_GetBignumFromObj) /* 558 */
3630
+#define Tcl_TakeBignumFromObj \
3631
+ (tclStubsPtr->tcl_TakeBignumFromObj) /* 559 */
3632
+#define Tcl_TruncateChannel \
3633
+ (tclStubsPtr->tcl_TruncateChannel) /* 560 */
3634
+#define Tcl_ChannelTruncateProc \
3635
+ (tclStubsPtr->tcl_ChannelTruncateProc) /* 561 */
3636
+#define Tcl_SetChannelErrorInterp \
3637
+ (tclStubsPtr->tcl_SetChannelErrorInterp) /* 562 */
3638
+#define Tcl_GetChannelErrorInterp \
3639
+ (tclStubsPtr->tcl_GetChannelErrorInterp) /* 563 */
3640
+#define Tcl_SetChannelError \
3641
+ (tclStubsPtr->tcl_SetChannelError) /* 564 */
3642
+#define Tcl_GetChannelError \
3643
+ (tclStubsPtr->tcl_GetChannelError) /* 565 */
3644
+#define Tcl_InitBignumFromDouble \
3645
+ (tclStubsPtr->tcl_InitBignumFromDouble) /* 566 */
3646
+#define Tcl_GetNamespaceUnknownHandler \
3647
+ (tclStubsPtr->tcl_GetNamespaceUnknownHandler) /* 567 */
3648
+#define Tcl_SetNamespaceUnknownHandler \
3649
+ (tclStubsPtr->tcl_SetNamespaceUnknownHandler) /* 568 */
3650
+#define Tcl_GetEncodingFromObj \
3651
+ (tclStubsPtr->tcl_GetEncodingFromObj) /* 569 */
3652
+#define Tcl_GetEncodingSearchPath \
3653
+ (tclStubsPtr->tcl_GetEncodingSearchPath) /* 570 */
3654
+#define Tcl_SetEncodingSearchPath \
3655
+ (tclStubsPtr->tcl_SetEncodingSearchPath) /* 571 */
3656
+#define Tcl_GetEncodingNameFromEnvironment \
3657
+ (tclStubsPtr->tcl_GetEncodingNameFromEnvironment) /* 572 */
3658
+#define Tcl_PkgRequireProc \
3659
+ (tclStubsPtr->tcl_PkgRequireProc) /* 573 */
3660
+#define Tcl_AppendObjToErrorInfo \
3661
+ (tclStubsPtr->tcl_AppendObjToErrorInfo) /* 574 */
3662
+#define Tcl_AppendLimitedToObj \
3663
+ (tclStubsPtr->tcl_AppendLimitedToObj) /* 575 */
3664
+#define Tcl_Format \
3665
+ (tclStubsPtr->tcl_Format) /* 576 */
3666
+#define Tcl_AppendFormatToObj \
3667
+ (tclStubsPtr->tcl_AppendFormatToObj) /* 577 */
3668
+#define Tcl_ObjPrintf \
3669
+ (tclStubsPtr->tcl_ObjPrintf) /* 578 */
3670
+#define Tcl_AppendPrintfToObj \
3671
+ (tclStubsPtr->tcl_AppendPrintfToObj) /* 579 */
3672
+#define Tcl_CancelEval \
3673
+ (tclStubsPtr->tcl_CancelEval) /* 580 */
3674
+#define Tcl_Canceled \
3675
+ (tclStubsPtr->tcl_Canceled) /* 581 */
3676
+#define Tcl_CreatePipe \
3677
+ (tclStubsPtr->tcl_CreatePipe) /* 582 */
3678
+#define Tcl_NRCreateCommand \
3679
+ (tclStubsPtr->tcl_NRCreateCommand) /* 583 */
3680
+#define Tcl_NREvalObj \
3681
+ (tclStubsPtr->tcl_NREvalObj) /* 584 */
3682
+#define Tcl_NREvalObjv \
3683
+ (tclStubsPtr->tcl_NREvalObjv) /* 585 */
3684
+#define Tcl_NRCmdSwap \
3685
+ (tclStubsPtr->tcl_NRCmdSwap) /* 586 */
3686
+#define Tcl_NRAddCallback \
3687
+ (tclStubsPtr->tcl_NRAddCallback) /* 587 */
3688
+#define Tcl_NRCallObjProc \
3689
+ (tclStubsPtr->tcl_NRCallObjProc) /* 588 */
3690
+#define Tcl_GetFSDeviceFromStat \
3691
+ (tclStubsPtr->tcl_GetFSDeviceFromStat) /* 589 */
3692
+#define Tcl_GetFSInodeFromStat \
3693
+ (tclStubsPtr->tcl_GetFSInodeFromStat) /* 590 */
3694
+#define Tcl_GetModeFromStat \
3695
+ (tclStubsPtr->tcl_GetModeFromStat) /* 591 */
3696
+#define Tcl_GetLinkCountFromStat \
3697
+ (tclStubsPtr->tcl_GetLinkCountFromStat) /* 592 */
3698
+#define Tcl_GetUserIdFromStat \
3699
+ (tclStubsPtr->tcl_GetUserIdFromStat) /* 593 */
3700
+#define Tcl_GetGroupIdFromStat \
3701
+ (tclStubsPtr->tcl_GetGroupIdFromStat) /* 594 */
3702
+#define Tcl_GetDeviceTypeFromStat \
3703
+ (tclStubsPtr->tcl_GetDeviceTypeFromStat) /* 595 */
3704
+#define Tcl_GetAccessTimeFromStat \
3705
+ (tclStubsPtr->tcl_GetAccessTimeFromStat) /* 596 */
3706
+#define Tcl_GetModificationTimeFromStat \
3707
+ (tclStubsPtr->tcl_GetModificationTimeFromStat) /* 597 */
3708
+#define Tcl_GetChangeTimeFromStat \
3709
+ (tclStubsPtr->tcl_GetChangeTimeFromStat) /* 598 */
3710
+#define Tcl_GetSizeFromStat \
3711
+ (tclStubsPtr->tcl_GetSizeFromStat) /* 599 */
3712
+#define Tcl_GetBlocksFromStat \
3713
+ (tclStubsPtr->tcl_GetBlocksFromStat) /* 600 */
3714
+#define Tcl_GetBlockSizeFromStat \
3715
+ (tclStubsPtr->tcl_GetBlockSizeFromStat) /* 601 */
3716
+#define Tcl_SetEnsembleParameterList \
3717
+ (tclStubsPtr->tcl_SetEnsembleParameterList) /* 602 */
3718
+#define Tcl_GetEnsembleParameterList \
3719
+ (tclStubsPtr->tcl_GetEnsembleParameterList) /* 603 */
3720
+#define Tcl_ParseArgsObjv \
3721
+ (tclStubsPtr->tcl_ParseArgsObjv) /* 604 */
3722
+#define Tcl_GetErrorLine \
3723
+ (tclStubsPtr->tcl_GetErrorLine) /* 605 */
3724
+#define Tcl_SetErrorLine \
3725
+ (tclStubsPtr->tcl_SetErrorLine) /* 606 */
3726
+#define Tcl_TransferResult \
3727
+ (tclStubsPtr->tcl_TransferResult) /* 607 */
3728
+#define Tcl_InterpActive \
3729
+ (tclStubsPtr->tcl_InterpActive) /* 608 */
3730
+#define Tcl_BackgroundException \
3731
+ (tclStubsPtr->tcl_BackgroundException) /* 609 */
3732
+#define Tcl_ZlibDeflate \
3733
+ (tclStubsPtr->tcl_ZlibDeflate) /* 610 */
3734
+#define Tcl_ZlibInflate \
3735
+ (tclStubsPtr->tcl_ZlibInflate) /* 611 */
3736
+#define Tcl_ZlibCRC32 \
3737
+ (tclStubsPtr->tcl_ZlibCRC32) /* 612 */
3738
+#define Tcl_ZlibAdler32 \
3739
+ (tclStubsPtr->tcl_ZlibAdler32) /* 613 */
3740
+#define Tcl_ZlibStreamInit \
3741
+ (tclStubsPtr->tcl_ZlibStreamInit) /* 614 */
3742
+#define Tcl_ZlibStreamGetCommandName \
3743
+ (tclStubsPtr->tcl_ZlibStreamGetCommandName) /* 615 */
3744
+#define Tcl_ZlibStreamEof \
3745
+ (tclStubsPtr->tcl_ZlibStreamEof) /* 616 */
3746
+#define Tcl_ZlibStreamChecksum \
3747
+ (tclStubsPtr->tcl_ZlibStreamChecksum) /* 617 */
3748
+#define Tcl_ZlibStreamPut \
3749
+ (tclStubsPtr->tcl_ZlibStreamPut) /* 618 */
3750
+#define Tcl_ZlibStreamGet \
3751
+ (tclStubsPtr->tcl_ZlibStreamGet) /* 619 */
3752
+#define Tcl_ZlibStreamClose \
3753
+ (tclStubsPtr->tcl_ZlibStreamClose) /* 620 */
3754
+#define Tcl_ZlibStreamReset \
3755
+ (tclStubsPtr->tcl_ZlibStreamReset) /* 621 */
3756
+#define Tcl_SetStartupScript \
3757
+ (tclStubsPtr->tcl_SetStartupScript) /* 622 */
3758
+#define Tcl_GetStartupScript \
3759
+ (tclStubsPtr->tcl_GetStartupScript) /* 623 */
3760
+#define Tcl_CloseEx \
3761
+ (tclStubsPtr->tcl_CloseEx) /* 624 */
3762
+#define Tcl_NRExprObj \
3763
+ (tclStubsPtr->tcl_NRExprObj) /* 625 */
3764
+#define Tcl_NRSubstObj \
3765
+ (tclStubsPtr->tcl_NRSubstObj) /* 626 */
3766
+#define Tcl_LoadFile \
3767
+ (tclStubsPtr->tcl_LoadFile) /* 627 */
3768
+#define Tcl_FindSymbol \
3769
+ (tclStubsPtr->tcl_FindSymbol) /* 628 */
3770
+#define Tcl_FSUnloadFile \
3771
+ (tclStubsPtr->tcl_FSUnloadFile) /* 629 */
3772
+#define Tcl_ZlibStreamSetCompressionDictionary \
3773
+ (tclStubsPtr->tcl_ZlibStreamSetCompressionDictionary) /* 630 */
3774
+
3775
+#endif /* defined(USE_TCL_STUBS) */
3776
+
3777
+/* !END!: Do not edit above this line. */
3778
+
3779
+#if defined(USE_TCL_STUBS)
3780
+# undef Tcl_CreateInterp
3781
+# undef Tcl_FindExecutable
3782
+# undef Tcl_GetStringResult
3783
+# undef Tcl_Init
3784
+# undef Tcl_SetPanicProc
3785
+# undef Tcl_SetVar
3786
+# undef Tcl_StaticPackage
3787
+# undef TclFSGetNativePath
3788
+# define Tcl_CreateInterp() (tclStubsPtr->tcl_CreateInterp())
3789
+# define Tcl_GetStringResult(interp) (tclStubsPtr->tcl_GetStringResult(interp))
3790
+# define Tcl_Init(interp) (tclStubsPtr->tcl_Init(interp))
3791
+# define Tcl_SetPanicProc(proc) (tclStubsPtr->tcl_SetPanicProc(proc))
3792
+# define Tcl_SetVar(interp, varName, newValue, flags) \
3793
+ (tclStubsPtr->tcl_SetVar(interp, varName, newValue, flags))
3794
+#endif
3795
+
3796
+#if defined(_WIN32) && defined(UNICODE)
3797
+# define Tcl_FindExecutable(arg) ((Tcl_FindExecutable)((const char *)(arg)))
3798
+# define Tcl_MainEx Tcl_MainExW
3799
+ EXTERN void Tcl_MainExW(int argc, wchar_t **argv,
3800
+ Tcl_AppInitProc *appInitProc, Tcl_Interp *interp);
3801
+#endif
3802
+
3803
+#undef TCL_STORAGE_CLASS
3804
+#define TCL_STORAGE_CLASS DLLIMPORT
3805
+
3806
+#endif /* _TCLDECLS */
--- a/compat/tcl-8.6/generic/tclDecls.h
+++ b/compat/tcl-8.6/generic/tclDecls.h
@@ -1632,7 +1632,6 @@
1632 Tcl_Namespace *nsPtr);
1633 /* 568 */
1634 EXTERN int Tcl_SetNamespaceUnknownHandler(Tcl_Interp *interp,
1635 Tcl_NamespObjSetVar2
1636 Tcl_Namespace *nsPtr, Tcl_Obj *handlerPtr);
1637 /* 569 */
1638 EXTERN int Tcl_GetEncodingFromObj(Tcl_Interp *interp,
@@ -1643,10 +1642,6 @@
1643 EXTERN int Tcl_SetEncodingSearchPath(Tcl_Obj *searchPath);
1644 /* 572 */
1645 EXTERN const char * Tcl_GetEncodingNameFromEnvironment(
1646 Tcl_DString *bufPtr);
1647 /* 573 */
1648 EXTERN int Tcl_PkgRequireProc(Tcl_Interp *interp,
1649 const char define Tcl_ObjSEnvironment(
1650 Tcl_DString *bufPtr);
1651 /* 573 */
1652 EXTERN int Tcl_PkgRequireProc(Tcl_Interp *interp,
@@ -1784,4 +1779,2028 @@
1784 /* 619 */
1785 EXTERN int Tcl_ZlibStreamGet(Tcl_ZlibStream zshandle,
1786 Tcl_Obj *data, int count);
1787 /*
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
--- a/compat/tcl-8.6/generic/tclDecls.h
+++ b/compat/tcl-8.6/generic/tclDecls.h
@@ -1632,7 +1632,6 @@
1632 Tcl_Namespace *nsPtr);
1633 /* 568 */
1634 EXTERN int Tcl_SetNamespaceUnknownHandler(Tcl_Interp *interp,
 
1635 Tcl_Namespace *nsPtr, Tcl_Obj *handlerPtr);
1636 /* 569 */
1637 EXTERN int Tcl_GetEncodingFromObj(Tcl_Interp *interp,
@@ -1643,10 +1642,6 @@
1642 EXTERN int Tcl_SetEncodingSearchPath(Tcl_Obj *searchPath);
1643 /* 572 */
1644 EXTERN const char * Tcl_GetEncodingNameFromEnvironment(
 
 
 
 
1645 Tcl_DString *bufPtr);
1646 /* 573 */
1647 EXTERN int Tcl_PkgRequireProc(Tcl_Interp *interp,
@@ -1784,4 +1779,2028 @@
1779 /* 619 */
1780 EXTERN int Tcl_ZlibStreamGet(Tcl_ZlibStream zshandle,
1781 Tcl_Obj *data, int count);
1782 /* 620 */
1783 EXTERN int Tcl_ZlibStreamClose(Tcl_ZlibStream zshandle);
1784 /* 621 */
1785 EXTERN int Tcl_ZlibStreamReset(Tcl_ZlibStream zshandle);
1786 /* 622 */
1787 EXTERN void Tcl_SetStartupScript(Tcl_Obj *path,
1788 const char *encoding);
1789 /* 623 */
1790 EXTERN Tcl_Obj * Tcl_GetStartupScript(const char **encodingPtr);
1791 /* 624 */
1792 EXTERN int Tcl_CloseEx(Tcl_Interp *interp, Tcl_Channel chan,
1793 int flags);
1794 /* 625 */
1795 EXTERN int Tcl_NRExprObj(Tcl_Interp *interp, Tcl_Obj *objPtr,
1796 Tcl_Obj *resultPtr);
1797 /* 626 */
1798 EXTERN int Tcl_NRSubstObj(Tcl_Interp *interp, Tcl_Obj *objPtr,
1799 int flags);
1800 /* 627 */
1801 EXTERN int Tcl_LoadFile(Tcl_Interp *interp, Tcl_Obj *pathPtr,
1802 const char *const symv[], int flags,
1803 void *procPtrs, Tcl_LoadHandle *handlePtr);
1804 /* 628 */
1805 EXTERN void * Tcl_FindSymbol(Tcl_Interp *interp,
1806 Tcl_LoadHandle handle, const char *symbol);
1807 /* 629 */
1808 EXTERN int Tcl_FSUnloadFile(Tcl_Interp *interp,
1809 Tcl_LoadHandle handlePtr);
1810 /* 630 */
1811 EXTERN void Tcl_ZlibStreamSetCompressionDictionary(
1812 Tcl_ZlibStream zhandle,
1813 Tcl_Obj *compressionDictionaryObj);
1814
1815 typedef struct {
1816 const struct TclPlatStubs *tclPlatStubs;
1817 const struct TclIntStubs *tclIntStubs;
1818 const struct TclIntPlatStubs *tclIntPlatStubs;
1819 } TclStubHooks;
1820
1821 typedef struct TclStubs {
1822 int magic;
1823 const TclStubHooks *hooks;
1824
1825 int (*tcl_PkgProvideEx) (Tcl_Interp *interp, const char *name, const char *version, const void *clientData); /* 0 */
1826 CONST84_RETURN char * (*tcl_PkgRequireEx) (Tcl_Interp *interp, const char *name, const char *version, int exact, void *clientDataPtr); /* 1 */
1827 void (*tcl_Panic) (const char *format, ...) TCL_FORMAT_PRINTF(1, 2); /* 2 */
1828 char * (*tcl_Alloc) (unsigned int size); /* 3 */
1829 void (*tcl_Free) (char *ptr); /* 4 */
1830 char * (*tcl_Realloc) (char *ptr, unsigned int size); /* 5 */
1831 char * (*tcl_DbCkalloc) (unsigned int size, const char *file, int line); /* 6 */
1832 void (*tcl_DbCkfree) (char *ptr, const char *file, int line); /* 7 */
1833 char * (*tcl_DbCkrealloc) (char *ptr, unsigned int size, const char *file, int line); /* 8 */
1834 #if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
1835 void (*tcl_CreateFileHandler) (int fd, int mask, Tcl_FileProc *proc, ClientData clientData); /* 9 */
1836 #endif /* UNIX */
1837 #if defined(__WIN32__) /* WIN */
1838 void (*reserved9)(void);
1839 #endif /* WIN */
1840 #ifdef MAC_OSX_TCL /* MACOSX */
1841 void (*tcl_CreateFileHandler) (int fd, int mask, Tcl_FileProc *proc, ClientData clientData); /* 9 */
1842 #endif /* MACOSX */
1843 #if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
1844 void (*tcl_DeleteFileHandler) (int fd); /* 10 */
1845 #endif /* UNIX */
1846 #if defined(__WIN32__) /* WIN */
1847 void (*reserved10)(void);
1848 #endif /* WIN */
1849 #ifdef MAC_OSX_TCL /* MACOSX */
1850 void (*tcl_DeleteFileHandler) (int fd); /* 10 */
1851 #endif /* MACOSX */
1852 void (*tcl_SetTimer) (const Tcl_Time *timePtr); /* 11 */
1853 void (*tcl_Sleep) (int ms); /* 12 */
1854 int (*tcl_WaitForEvent) (const Tcl_Time *timePtr); /* 13 */
1855 int (*tcl_AppendAllObjTypes) (Tcl_Interp *interp, Tcl_Obj *objPtr); /* 14 */
1856 void (*tcl_AppendStringsToObj) (Tcl_Obj *objPtr, ...); /* 15 */
1857 void (*tcl_AppendToObj) (Tcl_Obj *objPtr, const char *bytes, int length); /* 16 */
1858 Tcl_Obj * (*tcl_ConcatObj) (int objc, Tcl_Obj *const objv[]); /* 17 */
1859 int (*tcl_ConvertToType) (Tcl_Interp *interp, Tcl_Obj *objPtr, const Tcl_ObjType *typePtr); /* 18 */
1860 void (*tcl_DbDecrRefCount) (Tcl_Obj *objPtr, const char *file, int line); /* 19 */
1861 void (*tcl_DbIncrRefCount) (Tcl_Obj *objPtr, const char *file, int line); /* 20 */
1862 int (*tcl_DbIsShared) (Tcl_Obj *objPtr, const char *file, int line); /* 21 */
1863 Tcl_Obj * (*tcl_DbNewBooleanObj) (int boolValue, const char *file, int line); /* 22 */
1864 Tcl_Obj * (*tcl_DbNewByteArrayObj) (const unsigned char *bytes, int length, const char *file, int line); /* 23 */
1865 Tcl_Obj * (*tcl_DbNewDoubleObj) (double doubleValue, const char *file, int line); /* 24 */
1866 Tcl_Obj * (*tcl_DbNewListObj) (int objc, Tcl_Obj *const *objv, const char *file, int line); /* 25 */
1867 Tcl_Obj * (*tcl_DbNewLongObj) (long longValue, const char *file, int line); /* 26 */
1868 Tcl_Obj * (*tcl_DbNewObj) (const char *file, int line); /* 27 */
1869 Tcl_Obj * (*tcl_DbNewStringObj) (const char *bytes, int length, const char *file, int line); /* 28 */
1870 Tcl_Obj * (*tcl_DuplicateObj) (Tcl_Obj *objPtr); /* 29 */
1871 void (*tclFreeObj) (Tcl_Obj *objPtr); /* 30 */
1872 int (*tcl_GetBoolean) (Tcl_Interp *interp, const char *src, int *boolPtr); /* 31 */
1873 int (*tcl_GetBooleanFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int *boolPtr); /* 32 */
1874 unsigned char * (*tcl_GetByteArrayFromObj) (Tcl_Obj *objPtr, int *lengthPtr); /* 33 */
1875 int (*tcl_GetDouble) (Tcl_Interp *interp, const char *src, double *doublePtr); /* 34 */
1876 int (*tcl_GetDoubleFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, double *doublePtr); /* 35 */
1877 int (*tcl_GetIndexFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, CONST84 char *const *tablePtr, const char *msg, int flags, int *indexPtr); /* 36 */
1878 int (*tcl_GetInt) (Tcl_Interp *interp, const char *src, int *intPtr); /* 37 */
1879 int (*tcl_GetIntFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int *intPtr); /* 38 */
1880 int (*tcl_GetLongFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, long *longPtr); /* 39 */
1881 CONST86 Tcl_ObjType * (*tcl_GetObjType) (const char *typeName); /* 40 */
1882 char * (*tcl_GetStringFromObj) (Tcl_Obj *objPtr, int *lengthPtr); /* 41 */
1883 void (*tcl_InvalidateStringRep) (Tcl_Obj *objPtr); /* 42 */
1884 int (*tcl_ListObjAppendList) (Tcl_Interp *interp, Tcl_Obj *listPtr, Tcl_Obj *elemListPtr); /* 43 */
1885 int (*tcl_ListObjAppendElement) (Tcl_Interp *interp, Tcl_Obj *listPtr, Tcl_Obj *objPtr); /* 44 */
1886 int (*tcl_ListObjGetElements) (Tcl_Interp *interp, Tcl_Obj *listPtr, int *objcPtr, Tcl_Obj ***objvPtr); /* 45 */
1887 int (*tcl_ListObjIndex) (Tcl_Interp *interp, Tcl_Obj *listPtr, int index, Tcl_Obj **objPtrPtr); /* 46 */
1888 int (*tcl_ListObjLength) (Tcl_Interp *interp, Tcl_Obj *listPtr, int *lengthPtr); /* 47 */
1889 int (*tcl_ListObjReplace) (Tcl_Interp *interp, Tcl_Obj *listPtr, int first, int count, int objc, Tcl_Obj *const objv[]); /* 48 */
1890 Tcl_Obj * (*tcl_NewBooleanObj) (int boolValue); /* 49 */
1891 Tcl_Obj * (*tcl_NewByteArrayObj) (const unsigned char *bytes, int length); /* 50 */
1892 Tcl_Obj * (*tcl_NewDoubleObj) (double doubleValue); /* 51 */
1893 Tcl_Obj * (*tcl_NewIntObj) (int intValue); /* 52 */
1894 Tcl_Obj * (*tcl_NewListObj) (int objc, Tcl_Obj *const objv[]); /* 53 */
1895 Tcl_Obj * (*tcl_NewLongObj) (long longValue); /* 54 */
1896 Tcl_Obj * (*tcl_NewObj) (void); /* 55 */
1897 Tcl_Obj * (*tcl_NewStringObj) (const char *bytes, int length); /* 56 */
1898 void (*tcl_SetBooleanObj) (Tcl_Obj *objPtr, int boolValue); /* 57 */
1899 unsigned char * (*tcl_SetByteArrayLength) (Tcl_Obj *objPtr, int length); /* 58 */
1900 void (*tcl_SetByteArrayObj) (Tcl_Obj *objPtr, const unsigned char *bytes, int length); /* 59 */
1901 void (*tcl_SetDoubleObj) (Tcl_Obj *objPtr, double doubleValue); /* 60 */
1902 void (*tcl_SetIntObj) (Tcl_Obj *objPtr, int intValue); /* 61 */
1903 void (*tcl_SetListObj) (Tcl_Obj *objPtr, int objc, Tcl_Obj *const objv[]); /* 62 */
1904 void (*tcl_SetLongObj) (Tcl_Obj *objPtr, long longValue); /* 63 */
1905 void (*tcl_SetObjLength) (Tcl_Obj *objPtr, int length); /* 64 */
1906 void (*tcl_SetStringObj) (Tcl_Obj *objPtr, const char *bytes, int length); /* 65 */
1907 void (*tcl_AddErrorInfo) (Tcl_Interp *interp, const char *message); /* 66 */
1908 void (*tcl_AddObjErrorInfo) (Tcl_Interp *interp, const char *message, int length); /* 67 */
1909 void (*tcl_AllowExceptions) (Tcl_Interp *interp); /* 68 */
1910 void (*tcl_AppendElement) (Tcl_Interp *interp, const char *element); /* 69 */
1911 void (*tcl_AppendResult) (Tcl_Interp *interp, ...); /* 70 */
1912 Tcl_AsyncHandler (*tcl_AsyncCreate) (Tcl_AsyncProc *proc, ClientData clientData); /* 71 */
1913 void (*tcl_AsyncDelete) (Tcl_AsyncHandler async); /* 72 */
1914 int (*tcl_AsyncInvoke) (Tcl_Interp *interp, int code); /* 73 */
1915 void (*tcl_AsyncMark) (Tcl_AsyncHandler async); /* 74 */
1916 int (*tcl_AsyncReady) (void); /* 75 */
1917 void (*tcl_BackgroundError) (Tcl_Interp *interp); /* 76 */
1918 char (*tcl_Backslash) (const char *src, int *readPtr); /* 77 */
1919 int (*tcl_BadChannelOption) (Tcl_Interp *interp, const char *optionName, const char *optionList); /* 78 */
1920 void (*tcl_CallWhenDeleted) (Tcl_Interp *interp, Tcl_InterpDeleteProc *proc, ClientData clientData); /* 79 */
1921 void (*tcl_CancelIdleCall) (Tcl_IdleProc *idleProc, ClientData clientData); /* 80 */
1922 int (*tcl_Close) (Tcl_Interp *interp, Tcl_Channel chan); /* 81 */
1923 int (*tcl_CommandComplete) (const char *cmd); /* 82 */
1924 char * (*tcl_Concat) (int argc, CONST84 char *const *argv); /* 83 */
1925 int (*tcl_ConvertElement) (const char *src, char *dst, int flags); /* 84 */
1926 int (*tcl_ConvertCountedElement) (const char *src, int length, char *dst, int flags); /* 85 */
1927 int (*tcl_CreateAlias) (Tcl_Interp *slave, const char *slaveCmd, Tcl_Interp *target, const char *targetCmd, int argc, CONST84 char *const *argv); /* 86 */
1928 int (*tcl_CreateAliasObj) (Tcl_Interp *slave, const char *slaveCmd, Tcl_Interp *target, const char *targetCmd, int objc, Tcl_Obj *const objv[]); /* 87 */
1929 Tcl_Channel (*tcl_CreateChannel) (const Tcl_ChannelType *typePtr, const char *chanName, ClientData instanceData, int mask); /* 88 */
1930 void (*tcl_CreateChannelHandler) (Tcl_Channel chan, int mask, Tcl_ChannelProc *proc, ClientData clientData); /* 89 */
1931 void (*tcl_CreateCloseHandler) (Tcl_Channel chan, Tcl_CloseProc *proc, ClientData clientData); /* 90 */
1932 Tcl_Command (*tcl_CreateCommand) (Tcl_Interp *interp, const char *cmdName, Tcl_CmdProc *proc, ClientData clientData, Tcl_CmdDeleteProc *deleteProc); /* 91 */
1933 void (*tcl_CreateEventSource) (Tcl_EventSetupProc *setupProc, Tcl_EventCheckProc *checkProc, ClientData clientData); /* 92 */
1934 void (*tcl_CreateExitHandler) (Tcl_ExitProc *proc, ClientData clientData); /* 93 */
1935 Tcl_Interp * (*tcl_CreateInterp) (void); /* 94 */
1936 void (*tcl_CreateMathFunc) (Tcl_Interp *interp, const char *name, int numArgs, Tcl_ValueType *argTypes, Tcl_MathProc *proc, ClientData clientData); /* 95 */
1937 Tcl_Command (*tcl_CreateObjCommand) (Tcl_Interp *interp, const char *cmdName, Tcl_ObjCmdProc *proc, ClientData clientData, Tcl_CmdDeleteProc *deleteProc); /* 96 */
1938 Tcl_Interp * (*tcl_CreateSlave) (Tcl_Interp *interp, const char *slaveName, int isSafe); /* 97 */
1939 Tcl_TimerToken (*tcl_CreateTimerHandler) (int milliseconds, Tcl_TimerProc *proc, ClientData clientData); /* 98 */
1940 Tcl_Trace (*tcl_CreateTrace) (Tcl_Interp *interp, int level, Tcl_CmdTraceProc *proc, ClientData clientData); /* 99 */
1941 void (*tcl_DeleteAssocData) (Tcl_Interp *interp, const char *name); /* 100 */
1942 void (*tcl_DeleteChannelHandler) (Tcl_Channel chan, Tcl_ChannelProc *proc, ClientData clientData); /* 101 */
1943 void (*tcl_DeleteCloseHandler) (Tcl_Channel chan, Tcl_CloseProc *proc, ClientData clientData); /* 102 */
1944 int (*tcl_DeleteCommand) (Tcl_Interp *interp, const char *cmdName); /* 103 */
1945 int (*tcl_DeleteCommandFromToken) (Tcl_Interp *interp, Tcl_Command command); /* 104 */
1946 void (*tcl_DeleteEvents) (Tcl_EventDeleteProc *proc, ClientData clientData); /* 105 */
1947 void (*tcl_DeleteEventSource) (Tcl_EventSetupProc *setupProc, Tcl_EventCheckProc *checkProc, ClientData clientData); /* 106 */
1948 void (*tcl_DeleteExitHandler) (Tcl_ExitProc *proc, ClientData clientData); /* 107 */
1949 void (*tcl_DeleteHashEntry) (Tcl_HashEntry *entryPtr); /* 108 */
1950 void (*tcl_DeleteHashTable) (Tcl_HashTable *tablePtr); /* 109 */
1951 void (*tcl_DeleteInterp) (Tcl_Interp *interp); /* 110 */
1952 void (*tcl_DetachPids) (int numPids, Tcl_Pid *pidPtr); /* 111 */
1953 void (*tcl_DeleteTimerHandler) (Tcl_TimerToken token); /* 112 */
1954 void (*tcl_DeleteTrace) (Tcl_Interp *interp, Tcl_Trace trace); /* 113 */
1955 void (*tcl_DontCallWhenDeleted) (Tcl_Interp *interp, Tcl_InterpDeleteProc *proc, ClientData clientData); /* 114 */
1956 int (*tcl_DoOneEvent) (int flags); /* 115 */
1957 void (*tcl_DoWhenIdle) (Tcl_IdleProc *proc, ClientData clientData); /* 116 */
1958 char * (*tcl_DStringAppend) (Tcl_DString *dsPtr, const char *bytes, int length); /* 117 */
1959 char * (*tcl_DStringAppendElement) (Tcl_DString *dsPtr, const char *element); /* 118 */
1960 void (*tcl_DStringEndSublist) (Tcl_DString *dsPtr); /* 119 */
1961 void (*tcl_DStringFree) (Tcl_DString *dsPtr); /* 120 */
1962 void (*tcl_DStringGetResult) (Tcl_Interp *interp, Tcl_DString *dsPtr); /* 121 */
1963 void (*tcl_DStringInit) (Tcl_DString *dsPtr); /* 122 */
1964 void (*tcl_DStringResult) (Tcl_Interp *interp, Tcl_DString *dsPtr); /* 123 */
1965 void (*tcl_DStringSetLength) (Tcl_DString *dsPtr, int length); /* 124 */
1966 void (*tcl_DStringStartSublist) (Tcl_DString *dsPtr); /* 125 */
1967 int (*tcl_Eof) (Tcl_Channel chan); /* 126 */
1968 CONST84_RETURN char * (*tcl_ErrnoId) (void); /* 127 */
1969 CONST84_RETURN char * (*tcl_ErrnoMsg) (int err); /* 128 */
1970 int (*tcl_Eval) (Tcl_Interp *interp, const char *script); /* 129 */
1971 int (*tcl_EvalFile) (Tcl_Interp *interp, const char *fileName); /* 130 */
1972 int (*tcl_EvalObj) (Tcl_Interp *interp, Tcl_Obj *objPtr); /* 131 */
1973 void (*tcl_EventuallyFree) (ClientData clientData, Tcl_FreeProc *freeProc); /* 132 */
1974 void (*tcl_Exit) (int status); /* 133 */
1975 int (*tcl_ExposeCommand) (Tcl_Interp *interp, const char *hiddenCmdToken, const char *cmdName); /* 134 */
1976 int (*tcl_ExprBoolean) (Tcl_Interp *interp, const char *expr, int *ptr); /* 135 */
1977 int (*tcl_ExprBooleanObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int *ptr); /* 136 */
1978 int (*tcl_ExprDouble) (Tcl_Interp *interp, const char *expr, double *ptr); /* 137 */
1979 int (*tcl_ExprDoubleObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, double *ptr); /* 138 */
1980 int (*tcl_ExprLong) (Tcl_Interp *interp, const char *expr, long *ptr); /* 139 */
1981 int (*tcl_ExprLongObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, long *ptr); /* 140 */
1982 int (*tcl_ExprObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_Obj **resultPtrPtr); /* 141 */
1983 int (*tcl_ExprString) (Tcl_Interp *interp, const char *expr); /* 142 */
1984 void (*tcl_Finalize) (void); /* 143 */
1985 void (*tcl_FindExecutable) (const char *argv0); /* 144 */
1986 Tcl_HashEntry * (*tcl_FirstHashEntry) (Tcl_HashTable *tablePtr, Tcl_HashSearch *searchPtr); /* 145 */
1987 int (*tcl_Flush) (Tcl_Channel chan); /* 146 */
1988 void (*tcl_FreeResult) (Tcl_Interp *interp); /* 147 */
1989 int (*tcl_GetAlias) (Tcl_Interp *interp, const char *slaveCmd, Tcl_Interp **targetInterpPtr, CONST84 char **targetCmdPtr, int *argcPtr, CONST84 char ***argvPtr); /* 148 */
1990 int (*tcl_GetAliasObj) (Tcl_Interp *interp, const char *slaveCmd, Tcl_Interp **targetInterpPtr, CONST84 char **targetCmdPtr, int *objcPtr, Tcl_Obj ***objv); /* 149 */
1991 ClientData (*tcl_GetAssocData) (Tcl_Interp *interp, const char *name, Tcl_InterpDeleteProc **procPtr); /* 150 */
1992 Tcl_Channel (*tcl_GetChannel) (Tcl_Interp *interp, const char *chanName, int *modePtr); /* 151 */
1993 int (*tcl_GetChannelBufferSize) (Tcl_Channel chan); /* 152 */
1994 int (*tcl_GetChannelHandle) (Tcl_Channel chan, int direction, ClientData *handlePtr); /* 153 */
1995 ClientData (*tcl_GetChannelInstanceData) (Tcl_Channel chan); /* 154 */
1996 int (*tcl_GetChannelMode) (Tcl_Channel chan); /* 155 */
1997 CONST84_RETURN char * (*tcl_GetChannelName) (Tcl_Channel chan); /* 156 */
1998 int (*tcl_GetChannelOption) (Tcl_Interp *interp, Tcl_Channel chan, const char *optionName, Tcl_DString *dsPtr); /* 157 */
1999 CONST86 Tcl_ChannelType * (*tcl_GetChannelType) (Tcl_Channel chan); /* 158 */
2000 int (*tcl_GetCommandInfo) (Tcl_Interp *interp, const char *cmdName, Tcl_CmdInfo *infoPtr); /* 159 */
2001 CONST84_RETURN char * (*tcl_GetCommandName) (Tcl_Interp *interp, Tcl_Command command); /* 160 */
2002 int (*tcl_GetErrno) (void); /* 161 */
2003 CONST84_RETURN char * (*tcl_GetHostName) (void); /* 162 */
2004 int (*tcl_GetInterpPath) (Tcl_Interp *askInterp, Tcl_Interp *slaveInterp); /* 163 */
2005 Tcl_Interp * (*tcl_GetMaster) (Tcl_Interp *interp); /* 164 */
2006 const char * (*tcl_GetNameOfExecutable) (void); /* 165 */
2007 Tcl_Obj * (*tcl_GetObjResult) (Tcl_Interp *interp); /* 166 */
2008 #if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
2009 int (*tcl_GetOpenFile) (Tcl_Interp *interp, const char *chanID, int forWriting, int checkUsage, ClientData *filePtr); /* 167 */
2010 #endif /* UNIX */
2011 #if defined(__WIN32__) /* WIN */
2012 void (*reserved167)(void);
2013 #endif /* WIN */
2014 #ifdef MAC_OSX_TCL /* MACOSX */
2015 int (*tcl_GetOpenFile) (Tcl_Interp *interp, const char *chanID, int forWriting, int checkUsage, ClientData *filePtr); /* 167 */
2016 #endif /* MACOSX */
2017 Tcl_PathType (*tcl_GetPathType) (const char *path); /* 168 */
2018 int (*tcl_Gets) (Tcl_Channel chan, Tcl_DString *dsPtr); /* 169 */
2019 int (*tcl_GetsObj) (Tcl_Channel chan, Tcl_Obj *objPtr); /* 170 */
2020 int (*tcl_GetServiceMode) (void); /* 171 */
2021 Tcl_Interp * (*tcl_GetSlave) (Tcl_Interp *interp, const char *slaveName); /* 172 */
2022 Tcl_Channel (*tcl_GetStdChannel) (int type); /* 173 */
2023 CONST84_RETURN char * (*tcl_GetStringResult) (Tcl_Interp *interp); /* 174 */
2024 CONST84_RETURN char * (*tcl_GetVar) (Tcl_Interp *interp, const char *varName, int flags); /* 175 */
2025 CONST84_RETURN char * (*tcl_GetVar2) (Tcl_Interp *interp, const char *part1, const char *part2, int flags); /* 176 */
2026 int (*tcl_GlobalEval) (Tcl_Interp *interp, const char *command); /* 177 */
2027 int (*tcl_GlobalEvalObj) (Tcl_Interp *interp, Tcl_Obj *objPtr); /* 178 */
2028 int (*tcl_HideCommand) (Tcl_Interp *interp, const char *cmdName, const char *hiddenCmdToken); /* 179 */
2029 int (*tcl_Init) (Tcl_Interp *interp); /* 180 */
2030 void (*tcl_InitHashTable) (Tcl_HashTable *tablePtr, int keyType); /* 181 */
2031 int (*tcl_InputBlocked) (Tcl_Channel chan); /* 182 */
2032 int (*tcl_InputBuffered) (Tcl_Channel chan); /* 183 */
2033 int (*tcl_InterpDeleted) (Tcl_Interp *interp); /* 184 */
2034 int (*tcl_IsSafe) (Tcl_Interp *interp); /* 185 */
2035 char * (*tcl_JoinPath) (int argc, CONST84 char *const *argv, Tcl_DString *resultPtr); /* 186 */
2036 int (*tcl_LinkVar) (Tcl_Interp *interp, const char *varName, char *addr, int type); /* 187 */
2037 void (*reserved188)(void);
2038 Tcl_Channel (*tcl_MakeFileChannel) (ClientData handle, int mode); /* 189 */
2039 int (*tcl_MakeSafe) (Tcl_Interp *interp); /* 190 */
2040 Tcl_Channel (*tcl_MakeTcpClientChannel) (ClientData tcpSocket); /* 191 */
2041 char * (*tcl_Merge) (int argc, CONST84 char *const *argv); /* 192 */
2042 Tcl_HashEntry * (*tcl_NextHashEntry) (Tcl_HashSearch *searchPtr); /* 193 */
2043 void (*tcl_NotifyChannel) (Tcl_Channel channel, int mask); /* 194 */
2044 Tcl_Obj * (*tcl_ObjGetVar2) (Tcl_Interp *interp, Tcl_Obj *part1Ptr, Tcl_Obj *part2Ptr, int flags); /* 195 */
2045 Tcl_Obj * (*tcl_ObjSetVar2) (Tcl_Interp *interp, Tcl_Obj *part1Ptr, Tcl_Obj *part2Ptr, Tcl_Obj *newValuePtr, int flags); /* 196 */
2046 Tcl_Channel (*tcl_OpenCommandChannel) (Tcl_Interp *interp, int argc, CONST84 char **argv, int flags); /* 197 */
2047 Tcl_Channel (*tcl_OpenFileChannel) (Tcl_Interp *interp, const char *fileName, const char *modeString, int permissions); /* 198 */
2048 Tcl_Channel (*tcl_OpenTcpClient) (Tcl_Interp *interp, int port, const char *address, const char *myaddr, int myport, int async); /* 199 */
2049 Tcl_Channel (*tcl_OpenTcpServer) (Tcl_Interp *interp, int port, const char *host, Tcl_TcpAcceptProc *acceptProc, ClientData callbackData); /* 200 */
2050 void (*tcl_Preserve) (ClientData data); /* 201 */
2051 void (*tcl_PrintDouble) (Tcl_Interp *interp, double value, char *dst); /* 202 */
2052 int (*tcl_PutEnv) (const char *assignment); /* 203 */
2053 CONST84_RETURN char * (*tcl_PosixError) (Tcl_Interp *interp); /* 204 */
2054 void (*tcl_QueueEvent) (Tcl_Event *evPtr, Tcl_QueuePosition position); /* 205 */
2055 int (*tcl_Read) (Tcl_Channel chan, char *bufPtr, int toRead); /* 206 */
2056 void (*tcl_ReapDetachedProcs) (void); /* 207 */
2057 int (*tcl_RecordAndEval) (Tcl_Interp *interp, const char *cmd, int flags); /* 208 */
2058 int (*tcl_RecordAndEvalObj) (Tcl_Interp *interp, Tcl_Obj *cmdPtr, int flags); /* 209 */
2059 void (*tcl_RegisterChannel) (Tcl_Interp *interp, Tcl_Channel chan); /* 210 */
2060 void (*tcl_RegisterObjType) (const Tcl_ObjType *typePtr); /* 211 */
2061 Tcl_RegExp (*tcl_RegExpCompile) (Tcl_Interp *interp, const char *pattern); /* 212 */
2062 int (*tcl_RegExpExec) (Tcl_Interp *interp, Tcl_RegExp regexp, const char *text, const char *start); /* 213 */
2063 int (*tcl_RegExpMatch) (Tcl_Interp *interp, const char *text, const char *pattern); /* 214 */
2064 void (*tcl_RegExpRange) (Tcl_RegExp regexp, int index, CONST84 char **startPtr, CONST84 char **endPtr); /* 215 */
2065 void (*tcl_Release) (ClientData clientData); /* 216 */
2066 void (*tcl_ResetResult) (Tcl_Interp *interp); /* 217 */
2067 int (*tcl_ScanElement) (const char *src, int *flagPtr); /* 218 */
2068 int (*tcl_ScanCountedElement) (const char *src, int length, int *flagPtr); /* 219 */
2069 int (*tcl_SeekOld) (Tcl_Channel chan, int offset, int mode); /* 220 */
2070 int (*tcl_ServiceAll) (void); /* 221 */
2071 int (*tcl_ServiceEvent) (int flags); /* 222 */
2072 void (*tcl_SetAssocData) (Tcl_Interp *interp, const char *name, Tcl_InterpDeleteProc *proc, ClientData clientData); /* 223 */
2073 void (*tcl_SetChannelBufferSize) (Tcl_Channel chan, int sz); /* 224 */
2074 int (*tcl_SetChannelOption) (Tcl_Interp *interp, Tcl_Channel chan, const char *optionName, const char *newValue); /* 225 */
2075 int (*tcl_SetCommandInfo) (Tcl_Interp *interp, const char *cmdName, const Tcl_CmdInfo *infoPtr); /* 226 */
2076 void (*tcl_SetErrno) (int err); /* 227 */
2077 void (*tcl_SetErrorCode) (Tcl_Interp *interp, ...); /* 228 */
2078 void (*tcl_SetMaxBlockTime) (const Tcl_Time *timePtr); /* 229 */
2079 void (*tcl_SetPanicProc) (Tcl_PanicProc *panicProc); /* 230 */
2080 int (*tcl_SetRecursionLimit) (Tcl_Interp *interp, int depth); /* 231 */
2081 void (*tcl_SetResult) (Tcl_Interp *interp, char *result, Tcl_FreeProc *freeProc); /* 232 */
2082 int (*tcl_SetServiceMode) (int mode); /* 233 */
2083 void (*tcl_SetObjErrorCode) (Tcl_Interp *interp, Tcl_Obj *errorObjPtr); /* 234 */
2084 void (*tcl_SetObjResult) (Tcl_Interp *interp, Tcl_Obj *resultObjPtr); /* 235 */
2085 void (*tcl_SetStdChannel) (Tcl_Channel channel, int type); /* 236 */
2086 CONST84_RETURN char * (*tcl_SetVar) (Tcl_Interp *interp, const char *varName, const char *newValue, int flags); /* 237 */
2087 CONST84_RETURN char * (*tcl_SetVar2) (Tcl_Interp *interp, const char *part1, const char *part2, const char *newValue, int flags); /* 238 */
2088 CONST84_RETURN char * (*tcl_SignalId) (int sig); /* 239 */
2089 CONST84_RETURN char * (*tcl_SignalMsg) (int sig); /* 240 */
2090 void (*tcl_SourceRCFile) (Tcl_Interp *interp); /* 241 */
2091 int (*tcl_SplitList) (Tcl_Interp *interp, const char *listStr, int *argcPtr, CONST84 char ***argvPtr); /* 242 */
2092 void (*tcl_SplitPath) (const char *path, int *argcPtr, CONST84 char ***argvPtr); /* 243 */
2093 void (*tcl_StaticPackage) (Tcl_Interp *interp, const char *pkgName, Tcl_PackageInitProc *initProc, Tcl_PackageInitProc *safeInitProc); /* 244 */
2094 int (*tcl_StringMatch) (const char *str, const char *pattern); /* 245 */
2095 int (*tcl_TellOld) (Tcl_Channel chan); /* 246 */
2096 int (*tcl_TraceVar) (Tcl_Interp *interp, const char *varName, int flags, Tcl_VarTraceProc *proc, ClientData clientData); /* 247 */
2097 int (*tcl_TraceVar2) (Tcl_Interp *interp, const char *part1, const char *part2, int flags, Tcl_VarTraceProc *proc, ClientData clientData); /* 248 */
2098 char * (*tcl_TranslateFileName) (Tcl_Interp *interp, const char *name, Tcl_DString *bufferPtr); /* 249 */
2099 int (*tcl_Ungets) (Tcl_Channel chan, const char *str, int len, int atHead); /* 250 */
2100 void (*tcl_UnlinkVar) (Tcl_Interp *interp, const char *varName); /* 251 */
2101 int (*tcl_UnregisterChannel) (Tcl_Interp *interp, Tcl_Channel chan); /* 252 */
2102 int (*tcl_UnsetVar) (Tcl_Interp *interp, const char *varName, int flags); /* 253 */
2103 int (*tcl_UnsetVar2) (Tcl_Interp *interp, const char *part1, const char *part2, int flags); /* 254 */
2104 void (*tcl_UntraceVar) (Tcl_Interp *interp, const char *varName, int flags, Tcl_VarTraceProc *proc, ClientData clientData); /* 255 */
2105 void (*tcl_UntraceVar2) (Tcl_Interp *interp, const char *part1, const char *part2, int flags, Tcl_VarTraceProc *proc, ClientData clientData); /* 256 */
2106 void (*tcl_UpdateLinkedVar) (Tcl_Interp *interp, const char *varName); /* 257 */
2107 int (*tcl_UpVar) (Tcl_Interp *interp, const char *frameName, const char *varName, const char *localName, int flags); /* 258 */
2108 int (*tcl_UpVar2) (Tcl_Interp *interp, const char *frameName, const char *part1, const char *part2, const char *localName, int flags); /* 259 */
2109 int (*tcl_VarEval) (Tcl_Interp *interp, ...); /* 260 */
2110 ClientData (*tcl_VarTraceInfo) (Tcl_Interp *interp, const char *varName, int flags, Tcl_VarTraceProc *procPtr, ClientData prevClientData); /* 261 */
2111 ClientData (*tcl_VarTraceInfo2) (Tcl_Interp *interp, const char *part1, const char *part2, int flags, Tcl_VarTraceProc *procPtr, ClientData prevClientData); /* 262 */
2112 int (*tcl_Write) (Tcl_Channel chan, const char *s, int slen); /* 263 */
2113 void (*tcl_WrongNumArgs) (Tcl_Interp *interp, int objc, Tcl_Obj *const objv[], const char *message); /* 264 */
2114 int (*tcl_DumpActiveMemory) (const char *fileName); /* 265 */
2115 void (*tcl_ValidateAllMemory) (const char *file, int line); /* 266 */
2116 void (*tcl_AppendResultVA) (Tcl_Interp *interp, va_list argList); /* 267 */
2117 void (*tcl_AppendStringsToObjVA) (Tcl_Obj *objPtr, va_list argList); /* 268 */
2118 char * (*tcl_HashStats) (Tcl_HashTable *tablePtr); /* 269 */
2119 CONST84_RETURN char * (*tcl_ParseVar) (Tcl_Interp *interp, const char *start, CONST84 char **termPtr); /* 270 */
2120 CONST84_RETURN char * (*tcl_PkgPresent) (Tcl_Interp *interp, const char *name, const char *version, int exact); /* 271 */
2121 CONST84_RETURN char * (*tcl_PkgPresentEx) (Tcl_Interp *interp, const char *name, const char *version, int exact, void *clientDataPtr); /* 272 */
2122 int (*tcl_PkgProvide) (Tcl_Interp *interp, const char *name, const char *version); /* 273 */
2123 CONST84_RETURN char * (*tcl_PkgRequire) (Tcl_Interp *interp, const char *name, const char *version, int exact); /* 274 */
2124 void (*tcl_SetErrorCodeVA) (Tcl_Interp *interp, va_list argList); /* 275 */
2125 int (*tcl_VarEvalVA) (Tcl_Interp *interp, va_list argList); /* 276 */
2126 Tcl_Pid (*tcl_WaitPid) (Tcl_Pid pid, int *statPtr, int options); /* 277 */
2127 void (*tcl_PanicVA) (const char *format, va_list argList); /* 278 */
2128 void (*tcl_GetVersion) (int *major, int *minor, int *patchLevel, int *type); /* 279 */
2129 void (*tcl_InitMemory) (Tcl_Interp *interp); /* 280 */
2130 Tcl_Channel (*tcl_StackChannel) (Tcl_Interp *interp, const Tcl_ChannelType *typePtr, ClientData instanceData, int mask, Tcl_Channel prevChan); /* 281 */
2131 int (*tcl_UnstackChannel) (Tcl_Interp *interp, Tcl_Channel chan); /* 282 */
2132 Tcl_Channel (*tcl_GetStackedChannel) (Tcl_Channel chan); /* 283 */
2133 void (*tcl_SetMainLoop) (Tcl_MainLoopProc *proc); /* 284 */
2134 void (*reserved285)(void);
2135 void (*tcl_AppendObjToObj) (Tcl_Obj *objPtr, Tcl_Obj *appendObjPtr); /* 286 */
2136 Tcl_Encoding (*tcl_CreateEncoding) (const Tcl_EncodingType *typePtr); /* 287 */
2137 void (*tcl_CreateThreadExitHandler) (Tcl_ExitProc *proc, ClientData clientData); /* 288 */
2138 void (*tcl_DeleteThreadExitHandler) (Tcl_ExitProc *proc, ClientData clientData); /* 289 */
2139 void (*tcl_DiscardResult) (Tcl_SavedResult *statePtr); /* 290 */
2140 int (*tcl_EvalEx) (Tcl_Interp *interp, const char *script, int numBytes, int flags); /* 291 */
2141 int (*tcl_EvalObjv) (Tcl_Interp *interp, int objc, Tcl_Obj *const objv[], int flags); /* 292 */
2142 int (*tcl_EvalObjEx) (Tcl_Interp *interp, Tcl_Obj *objPtr, int flags); /* 293 */
2143 void (*tcl_ExitThread) (int status); /* 294 */
2144 int (*tcl_ExternalToUtf) (Tcl_Interp *interp, Tcl_Encoding encoding, const char *src, int srcLen, int flags, Tcl_EncodingState *statePtr, char *dst, int dstLen, int *srcReadPtr, int *dstWrotePtr, int *dstCharsPtr); /* 295 */
2145 char * (*tcl_ExternalToUtfDString) (Tcl_Encoding encoding, const char *src, int srcLen, Tcl_DString *dsPtr); /* 296 */
2146 void (*tcl_FinalizeThread) (void); /* 297 */
2147 void (*tcl_FinalizeNotifier) (ClientData clientData); /* 298 */
2148 void (*tcl_FreeEncoding) (Tcl_Encoding encoding); /* 299 */
2149 Tcl_ThreadId (*tcl_GetCurrentThread) (void); /* 300 */
2150 Tcl_Encoding (*tcl_GetEncoding) (Tcl_Interp *interp, const char *name); /* 301 */
2151 CONST84_RETURN char * (*tcl_GetEncodingName) (Tcl_Encoding encoding); /* 302 */
2152 void (*tcl_GetEncodingNames) (Tcl_Interp *interp); /* 303 */
2153 int (*tcl_GetIndexFromObjStruct) (Tcl_Interp *interp, Tcl_Obj *objPtr, const void *tablePtr, int offset, const char *msg, int flags, int *indexPtr); /* 304 */
2154 void * (*tcl_GetThreadData) (Tcl_ThreadDataKey *keyPtr, int size); /* 305 */
2155 Tcl_Obj * (*tcl_GetVar2Ex) (Tcl_Interp *interp, const char *part1, const char *part2, int flags); /* 306 */
2156 ClientData (*tcl_InitNotifier) (void); /* 307 */
2157 void (*tcl_MutexLock) (Tcl_Mutex *mutexPtr); /* 308 */
2158 void (*tcl_MutexUnlock) (Tcl_Mutex *mutexPtr); /* 309 */
2159 void (*tcl_ConditionNotify) (Tcl_Condition *condPtr); /* 310 */
2160 void (*tcl_ConditionWait) (Tcl_Condition *condPtr, Tcl_Mutex *mutexPtr, const Tcl_Time *timePtr); /* 311 */
2161 int (*tcl_NumUtfChars) (const char *src, int length); /* 312 */
2162 int (*tcl_ReadChars) (Tcl_Channel channel, Tcl_Obj *objPtr, int charsToRead, int appendFlag); /* 313 */
2163 void (*tcl_RestoreResult) (Tcl_Interp *interp, Tcl_SavedResult *statePtr); /* 314 */
2164 void (*tcl_SaveResult) (Tcl_Interp *interp, Tcl_SavedResult *statePtr); /* 315 */
2165 int (*tcl_SetSystemEncoding) (Tcl_Interp *interp, const char *name); /* 316 */
2166 Tcl_Obj * (*tcl_SetVar2Ex) (Tcl_Interp *interp, const char *part1, const char *part2, Tcl_Obj *newValuePtr, int flags); /* 317 */
2167 void (*tcl_ThreadAlert) (Tcl_ThreadId threadId); /* 318 */
2168 void (*tcl_ThreadQueueEvent) (Tcl_ThreadId threadId, Tcl_Event *evPtr, Tcl_QueuePosition position); /* 319 */
2169 Tcl_UniChar (*tcl_UniCharAtIndex) (const char *src, int index); /* 320 */
2170 Tcl_UniChar (*tcl_UniCharToLower) (int ch); /* 321 */
2171 Tcl_UniChar (*tcl_UniCharToTitle) (int ch); /* 322 */
2172 Tcl_UniChar (*tcl_UniCharToUpper) (int ch); /* 323 */
2173 int (*tcl_UniCharToUtf) (int ch, char *buf); /* 324 */
2174 CONST84_RETURN char * (*tcl_UtfAtIndex) (const char *src, int index); /* 325 */
2175 int (*tcl_UtfCharComplete) (const char *src, int length); /* 326 */
2176 int (*tcl_UtfBackslash) (const char *src, int *readPtr, char *dst); /* 327 */
2177 CONST84_RETURN char * (*tcl_UtfFindFirst) (const char *src, int ch); /* 328 */
2178 CONST84_RETURN char * (*tcl_UtfFindLast) (const char *src, int ch); /* 329 */
2179 CONST84_RETURN char * (*tcl_UtfNext) (const char *src); /* 330 */
2180 CONST84_RETURN char * (*tcl_UtfPrev) (const char *src, const char *start); /* 331 */
2181 int (*tcl_UtfToExternal) (Tcl_Interp *interp, Tcl_Encoding encoding, const char *src, int srcLen, int flags, Tcl_EncodingState *statePtr, char *dst, int dstLen, int *srcReadPtr, int *dstWrotePtr, int *dstCharsPtr); /* 332 */
2182 char * (*tcl_UtfToExternalDString) (Tcl_Encoding encoding, const char *src, int srcLen, Tcl_DString *dsPtr); /* 333 */
2183 int (*tcl_UtfToLower) (char *src); /* 334 */
2184 int (*tcl_UtfToTitle) (char *src); /* 335 */
2185 int (*tcl_UtfToUniChar) (const char *src, Tcl_UniChar *chPtr); /* 336 */
2186 int (*tcl_UtfToUpper) (char *src); /* 337 */
2187 int (*tcl_WriteChars) (Tcl_Channel chan, const char *src, int srcLen); /* 338 */
2188 int (*tcl_WriteObj) (Tcl_Channel chan, Tcl_Obj *objPtr); /* 339 */
2189 char * (*tcl_GetString) (Tcl_Obj *objPtr); /* 340 */
2190 CONST84_RETURN char * (*tcl_GetDefaultEncodingDir) (void); /* 341 */
2191 void (*tcl_SetDefaultEncodingDir) (const char *path); /* 342 */
2192 void (*tcl_AlertNotifier) (ClientData clientData); /* 343 */
2193 void (*tcl_ServiceModeHook) (int mode); /* 344 */
2194 int (*tcl_UniCharIsAlnum) (int ch); /* 345 */
2195 int (*tcl_UniCharIsAlpha) (int ch); /* 346 */
2196 int (*tcl_UniCharIsDigit) (int ch); /* 347 */
2197 int (*tcl_UniCharIsLower) (int ch); /* 348 */
2198 int (*tcl_UniCharIsSpace) (int ch); /* 349 */
2199 int (*tcl_UniCharIsUpper) (int ch); /* 350 */
2200 int (*tcl_UniCharIsWordChar) (int ch); /* 351 */
2201 int (*tcl_UniCharLen) (const Tcl_UniChar *uniStr); /* 352 */
2202 int (*tcl_UniCharNcmp) (const Tcl_UniChar *ucs, const Tcl_UniChar *uct, unsigned long numChars); /* 353 */
2203 char * (*tcl_UniCharToUtfDString) (const Tcl_UniChar *uniStr, int uniLength, Tcl_DString *dsPtr); /* 354 */
2204 Tcl_UniChar * (*tcl_UtfToUniCharDString) (const char *src, int length, Tcl_DString *dsPtr); /* 355 */
2205 Tcl_RegExp (*tcl_GetRegExpFromObj) (Tcl_Interp *interp, Tcl_Obj *patObj, int flags); /* 356 */
2206 Tcl_Obj * (*tcl_EvalTokens) (Tcl_Interp *interp, Tcl_Token *tokenPtr, int count); /* 357 */
2207 void (*tcl_FreeParse) (Tcl_Parse *parsePtr); /* 358 */
2208 void (*tcl_LogCommandInfo) (Tcl_Interp *interp, const char *script, const char *command, int length); /* 359 */
2209 int (*tcl_ParseBraces) (Tcl_Interp *interp, const char *start, int numBytes, Tcl_Parse *parsePtr, int append, CONST84 char **termPtr); /* 360 */
2210 int (*tcl_ParseCommand) (Tcl_Interp *interp, const char *start, int numBytes, int nested, Tcl_Parse *parsePtr); /* 361 */
2211 int (*tcl_ParseExpr) (Tcl_Interp *interp, const char *start, int numBytes, Tcl_Parse *parsePtr); /* 362 */
2212 int (*tcl_ParseQuotedString) (Tcl_Interp *interp, const char *start, int numBytes, Tcl_Parse *parsePtr, int append, CONST84 char **termPtr); /* 363 */
2213 int (*tcl_ParseVarName) (Tcl_Interp *interp, const char *start, int numBytes, Tcl_Parse *parsePtr, int append); /* 364 */
2214 char * (*tcl_GetCwd) (Tcl_Interp *interp, Tcl_DString *cwdPtr); /* 365 */
2215 int (*tcl_Chdir) (const char *dirName); /* 366 */
2216 int (*tcl_Access) (const char *path, int mode); /* 367 */
2217 int (*tcl_Stat) (const char *path, struct stat *bufPtr); /* 368 */
2218 int (*tcl_UtfNcmp) (const char *s1, const char *s2, unsigned long n); /* 369 */
2219 int (*tcl_UtfNcasecmp) (const char *s1, const char *s2, unsigned long n); /* 370 */
2220 int (*tcl_StringCaseMatch) (const char *str, const char *pattern, int nocase); /* 371 */
2221 int (*tcl_UniCharIsControl) (int ch); /* 372 */
2222 int (*tcl_UniCharIsGraph) (int ch); /* 373 */
2223 int (*tcl_UniCharIsPrint) (int ch); /* 374 */
2224 int (*tcl_UniCharIsPunct) (int ch); /* 375 */
2225 int (*tcl_RegExpExecObj) (Tcl_Interp *interp, Tcl_RegExp regexp, Tcl_Obj *textObj, int offset, int nmatches, int flags); /* 376 */
2226 void (*tcl_RegExpGetInfo) (Tcl_RegExp regexp, Tcl_RegExpInfo *infoPtr); /* 377 */
2227 Tcl_Obj * (*tcl_NewUnicodeObj) (const Tcl_UniChar *unicode, int numChars); /* 378 */
2228 void (*tcl_SetUnicodeObj) (Tcl_Obj *objPtr, const Tcl_UniChar *unicode, int numChars); /* 379 */
2229 int (*tcl_GetCharLength) (Tcl_Obj *objPtr); /* 380 */
2230 Tcl_UniChar (*tcl_GetUniChar) (Tcl_Obj *objPtr, int index); /* 381 */
2231 Tcl_UniChar * (*tcl_GetUnicode) (Tcl_Obj *objPtr); /* 382 */
2232 Tcl_Obj * (*tcl_GetRange) (Tcl_Obj *objPtr, int first, int last); /* 383 */
2233 void (*tcl_AppendUnicodeToObj) (Tcl_Obj *objPtr, const Tcl_UniChar *unicode, int length); /* 384 */
2234 int (*tcl_RegExpMatchObj) (Tcl_Interp *interp, Tcl_Obj *textObj, Tcl_Obj *patternObj); /* 385 */
2235 void (*tcl_SetNotifier) (Tcl_NotifierProcs *notifierProcPtr); /* 386 */
2236 Tcl_Mutex * (*tcl_GetAllocMutex) (void); /* 387 */
2237 int (*tcl_GetChannelNames) (Tcl_Interp *interp); /* 388 */
2238 int (*tcl_GetChannelNamesEx) (Tcl_Interp *interp, const char *pattern); /* 389 */
2239 int (*tcl_ProcObjCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 390 */
2240 void (*tcl_ConditionFinalize) (Tcl_Condition *condPtr); /* 391 */
2241 void (*tcl_MutexFinalize) (Tcl_Mutex *mutex); /* 392 */
2242 int (*tcl_CreateThread) (Tcl_ThreadId *idPtr, Tcl_ThreadCreateProc *proc, ClientData clientData, int stackSize, int flags); /* 393 */
2243 int (*tcl_ReadRaw) (Tcl_Channel chan, char *dst, int bytesToRead); /* 394 */
2244 int (*tcl_WriteRaw) (Tcl_Channel chan, const char *src, int srcLen); /* 395 */
2245 Tcl_Channel (*tcl_GetTopChannel) (Tcl_Channel chan); /* 396 */
2246 int (*tcl_ChannelBuffered) (Tcl_Channel chan); /* 397 */
2247 CONST84_RETURN char * (*tcl_ChannelName) (const Tcl_ChannelType *chanTypePtr); /* 398 */
2248 Tcl_ChannelTypeVersion (*tcl_ChannelVersion) (const Tcl_ChannelType *chanTypePtr); /* 399 */
2249 Tcl_DriverBlockModeProc * (*tcl_ChannelBlockModeProc) (const Tcl_ChannelType *chanTypePtr); /* 400 */
2250 Tcl_DriverCloseProc * (*tcl_ChannelCloseProc) (const Tcl_ChannelType *chanTypePtr); /* 401 */
2251 Tcl_DriverClose2Proc * (*tcl_ChannelClose2Proc) (const Tcl_ChannelType *chanTypePtr); /* 402 */
2252 Tcl_DriverInputProc * (*tcl_ChannelInputProc) (const Tcl_ChannelType *chanTypePtr); /* 403 */
2253 Tcl_DriverOutputProc * (*tcl_ChannelOutputProc) (const Tcl_ChannelType *chanTypePtr); /* 404 */
2254 Tcl_DriverSeekProc * (*tcl_ChannelSeekProc) (const Tcl_ChannelType *chanTypePtr); /* 405 */
2255 Tcl_DriverSetOptionProc * (*tcl_ChannelSetOptionProc) (const Tcl_ChannelType *chanTypePtr); /* 406 */
2256 Tcl_DriverGetOptionProc * (*tcl_ChannelGetOptionProc) (const Tcl_ChannelType *chanTypePtr); /* 407 */
2257 Tcl_DriverWatchProc * (*tcl_ChannelWatchProc) (const Tcl_ChannelType *chanTypePtr); /* 408 */
2258 Tcl_DriverGetHandleProc * (*tcl_ChannelGetHandleProc) (const Tcl_ChannelType *chanTypePtr); /* 409 */
2259 Tcl_DriverFlushProc * (*tcl_ChannelFlushProc) (const Tcl_ChannelType *chanTypePtr); /* 410 */
2260 Tcl_DriverHandlerProc * (*tcl_ChannelHandlerProc) (const Tcl_ChannelType *chanTypePtr); /* 411 */
2261 int (*tcl_JoinThread) (Tcl_ThreadId threadId, int *result); /* 412 */
2262 int (*tcl_IsChannelShared) (Tcl_Channel channel); /* 413 */
2263 int (*tcl_IsChannelRegistered) (Tcl_Interp *interp, Tcl_Channel channel); /* 414 */
2264 void (*tcl_CutChannel) (Tcl_Channel channel); /* 415 */
2265 void (*tcl_SpliceChannel) (Tcl_Channel channel); /* 416 */
2266 void (*tcl_ClearChannelHandlers) (Tcl_Channel channel); /* 417 */
2267 int (*tcl_IsChannelExisting) (const char *channelName); /* 418 */
2268 int (*tcl_UniCharNcasecmp) (const Tcl_UniChar *ucs, const Tcl_UniChar *uct, unsigned long numChars); /* 419 */
2269 int (*tcl_UniCharCaseMatch) (const Tcl_UniChar *uniStr, const Tcl_UniChar *uniPattern, int nocase); /* 420 */
2270 Tcl_HashEntry * (*tcl_FindHashEntry) (Tcl_HashTable *tablePtr, const void *key); /* 421 */
2271 Tcl_HashEntry * (*tcl_CreateHashEntry) (Tcl_HashTable *tablePtr, const void *key, int *newPtr); /* 422 */
2272 void (*tcl_InitCustomHashTable) (Tcl_HashTable *tablePtr, int keyType, const Tcl_HashKeyType *typePtr); /* 423 */
2273 void (*tcl_InitObjHashTable) (Tcl_HashTable *tablePtr); /* 424 */
2274 ClientData (*tcl_CommandTraceInfo) (Tcl_Interp *interp, const char *varName, int flags, Tcl_CommandTraceProc *procPtr, ClientData prevClientData); /* 425 */
2275 int (*tcl_TraceCommand) (Tcl_Interp *interp, const char *varName, int flags, Tcl_CommandTraceProc *proc, ClientData clientData); /* 426 */
2276 void (*tcl_UntraceCommand) (Tcl_Interp *interp, const char *varName, int flags, Tcl_CommandTraceProc *proc, ClientData clientData); /* 427 */
2277 char * (*tcl_AttemptAlloc) (unsigned int size); /* 428 */
2278 char * (*tcl_AttemptDbCkalloc) (unsigned int size, const char *file, int line); /* 429 */
2279 char * (*tcl_AttemptRealloc) (char *ptr, unsigned int size); /* 430 */
2280 char * (*tcl_AttemptDbCkrealloc) (char *ptr, unsigned int size, const char *file, int line); /* 431 */
2281 int (*tcl_AttemptSetObjLength) (Tcl_Obj *objPtr, int length); /* 432 */
2282 Tcl_ThreadId (*tcl_GetChannelThread) (Tcl_Channel channel); /* 433 */
2283 Tcl_UniChar * (*tcl_GetUnicodeFromObj) (Tcl_Obj *objPtr, int *lengthPtr); /* 434 */
2284 int (*tcl_GetMathFuncInfo) (Tcl_Interp *interp, const char *name, int *numArgsPtr, Tcl_ValueType **argTypesPtr, Tcl_MathProc **procPtr, ClientData *clientDataPtr); /* 435 */
2285 Tcl_Obj * (*tcl_ListMathFuncs) (Tcl_Interp *interp, const char *pattern); /* 436 */
2286 Tcl_Obj * (*tcl_SubstObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int flags); /* 437 */
2287 int (*tcl_DetachChannel) (Tcl_Interp *interp, Tcl_Channel channel); /* 438 */
2288 int (*tcl_IsStandardChannel) (Tcl_Channel channel); /* 439 */
2289 int (*tcl_FSCopyFile) (Tcl_Obj *srcPathPtr, Tcl_Obj *destPathPtr); /* 440 */
2290 int (*tcl_FSCopyDirectory) (Tcl_Obj *srcPathPtr, Tcl_Obj *destPathPtr, Tcl_Obj **errorPtr); /* 441 */
2291 int (*tcl_FSCreateDirectory) (Tcl_Obj *pathPtr); /* 442 */
2292 int (*tcl_FSDeleteFile) (Tcl_Obj *pathPtr); /* 443 */
2293 int (*tcl_FSLoadFile) (Tcl_Interp *interp, Tcl_Obj *pathPtr, const char *sym1, const char *sym2, Tcl_PackageInitProc **proc1Ptr, Tcl_PackageInitProc **proc2Ptr, Tcl_LoadHandle *handlePtr, Tcl_FSUnloadFileProc **unloadProcPtr); /* 444 */
2294 int (*tcl_FSMatchInDirectory) (Tcl_Interp *interp, Tcl_Obj *result, Tcl_Obj *pathPtr, const char *pattern, Tcl_GlobTypeData *types); /* 445 */
2295 Tcl_Obj * (*tcl_FSLink) (Tcl_Obj *pathPtr, Tcl_Obj *toPtr, int linkAction); /* 446 */
2296 int (*tcl_FSRemoveDirectory) (Tcl_Obj *pathPtr, int recursive, Tcl_Obj **errorPtr); /* 447 */
2297 int (*tcl_FSRenameFile) (Tcl_Obj *srcPathPtr, Tcl_Obj *destPathPtr); /* 448 */
2298 int (*tcl_FSLstat) (Tcl_Obj *pathPtr, Tcl_StatBuf *buf); /* 449 */
2299 int (*tcl_FSUtime) (Tcl_Obj *pathPtr, struct utimbuf *tval); /* 450 */
2300 int (*tcl_FSFileAttrsGet) (Tcl_Interp *interp, int index, Tcl_Obj *pathPtr, Tcl_Obj **objPtrRef); /* 451 */
2301 int (*tcl_FSFileAttrsSet) (Tcl_Interp *interp, int index, Tcl_Obj *pathPtr, Tcl_Obj *objPtr); /* 452 */
2302 const char *CONST86 * (*tcl_FSFileAttrStrings) (Tcl_Obj *pathPtr, Tcl_Obj **objPtrRef); /* 453 */
2303 int (*tcl_FSStat) (Tcl_Obj *pathPtr, Tcl_StatBuf *buf); /* 454 */
2304 int (*tcl_FSAccess) (Tcl_Obj *pathPtr, int mode); /* 455 */
2305 Tcl_Channel (*tcl_FSOpenFileChannel) (Tcl_Interp *interp, Tcl_Obj *pathPtr, const char *modeString, int permissions); /* 456 */
2306 Tcl_Obj * (*tcl_FSGetCwd) (Tcl_Interp *interp); /* 457 */
2307 int (*tcl_FSChdir) (Tcl_Obj *pathPtr); /* 458 */
2308 int (*tcl_FSConvertToPathType) (Tcl_Interp *interp, Tcl_Obj *pathPtr); /* 459 */
2309 Tcl_Obj * (*tcl_FSJoinPath) (Tcl_Obj *listObj, int elements); /* 460 */
2310 Tcl_Obj * (*tcl_FSSplitPath) (Tcl_Obj *pathPtr, int *lenPtr); /* 461 */
2311 int (*tcl_FSEqualPaths) (Tcl_Obj *firstPtr, Tcl_Obj *secondPtr); /* 462 */
2312 Tcl_Obj * (*tcl_FSGetNormalizedPath) (Tcl_Interp *interp, Tcl_Obj *pathPtr); /* 463 */
2313 Tcl_Obj * (*tcl_FSJoinToPath) (Tcl_Obj *pathPtr, int objc, Tcl_Obj *const objv[]); /* 464 */
2314 ClientData (*tcl_FSGetInternalRep) (Tcl_Obj *pathPtr, const Tcl_Filesystem *fsPtr); /* 465 */
2315 Tcl_Obj * (*tcl_FSGetTranslatedPath) (Tcl_Interp *interp, Tcl_Obj *pathPtr); /* 466 */
2316 int (*tcl_FSEvalFile) (Tcl_Interp *interp, Tcl_Obj *fileName); /* 467 */
2317 Tcl_Obj * (*tcl_FSNewNativePath) (const Tcl_Filesystem *fromFilesystem, ClientData clientData); /* 468 */
2318 const void * (*tcl_FSGetNativePath) (Tcl_Obj *pathPtr); /* 469 */
2319 Tcl_Obj * (*tcl_FSFileSystemInfo) (Tcl_Obj *pathPtr); /* 470 */
2320 Tcl_Obj * (*tcl_FSPathSeparator) (Tcl_Obj *pathPtr); /* 471 */
2321 Tcl_Obj * (*tcl_FSListVolumes) (void); /* 472 */
2322 int (*tcl_FSRegister) (ClientData clientData, const Tcl_Filesystem *fsPtr); /* 473 */
2323 int (*tcl_FSUnregister) (const Tcl_Filesystem *fsPtr); /* 474 */
2324 ClientData (*tcl_FSData) (const Tcl_Filesystem *fsPtr); /* 475 */
2325 const char * (*tcl_FSGetTranslatedStringPath) (Tcl_Interp *interp, Tcl_Obj *pathPtr); /* 476 */
2326 CONST86 Tcl_Filesystem * (*tcl_FSGetFileSystemForPath) (Tcl_Obj *pathPtr); /* 477 */
2327 Tcl_PathType (*tcl_FSGetPathType) (Tcl_Obj *pathPtr); /* 478 */
2328 int (*tcl_OutputBuffered) (Tcl_Channel chan); /* 479 */
2329 void (*tcl_FSMountsChanged) (const Tcl_Filesystem *fsPtr); /* 480 */
2330 int (*tcl_EvalTokensStandard) (Tcl_Interp *interp, Tcl_Token *tokenPtr, int count); /* 481 */
2331 void (*tcl_GetTime) (Tcl_Time *timeBuf); /* 482 */
2332 Tcl_Trace (*tcl_CreateObjTrace) (Tcl_Interp *interp, int level, int flags, Tcl_CmdObjTraceProc *objProc, ClientData clientData, Tcl_CmdObjTraceDeleteProc *delProc); /* 483 */
2333 int (*tcl_GetCommandInfoFromToken) (Tcl_Command token, Tcl_CmdInfo *infoPtr); /* 484 */
2334 int (*tcl_SetCommandInfoFromToken) (Tcl_Command token, const Tcl_CmdInfo *infoPtr); /* 485 */
2335 Tcl_Obj * (*tcl_DbNewWideIntObj) (Tcl_WideInt wideValue, const char *file, int line); /* 486 */
2336 int (*tcl_GetWideIntFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_WideInt *widePtr); /* 487 */
2337 Tcl_Obj * (*tcl_NewWideIntObj) (Tcl_WideInt wideValue); /* 488 */
2338 void (*tcl_SetWideIntObj) (Tcl_Obj *objPtr, Tcl_WideInt wideValue); /* 489 */
2339 Tcl_StatBuf * (*tcl_AllocStatBuf) (void); /* 490 */
2340 Tcl_WideInt (*tcl_Seek) (Tcl_Channel chan, Tcl_WideInt offset, int mode); /* 491 */
2341 Tcl_WideInt (*tcl_Tell) (Tcl_Channel chan); /* 492 */
2342 Tcl_DriverWideSeekProc * (*tcl_ChannelWideSeekProc) (const Tcl_ChannelType *chanTypePtr); /* 493 */
2343 int (*tcl_DictObjPut) (Tcl_Interp *interp, Tcl_Obj *dictPtr, Tcl_Obj *keyPtr, Tcl_Obj *valuePtr); /* 494 */
2344 int (*tcl_DictObjGet) (Tcl_Interp *interp, Tcl_Obj *dictPtr, Tcl_Obj *keyPtr, Tcl_Obj **valuePtrPtr); /* 495 */
2345 int (*tcl_DictObjRemove) (Tcl_Interp *interp, Tcl_Obj *dictPtr, Tcl_Obj *keyPtr); /* 496 */
2346 int (*tcl_DictObjSize) (Tcl_Interp *interp, Tcl_Obj *dictPtr, int *sizePtr); /* 497 */
2347 int (*tcl_DictObjFirst) (Tcl_Interp *interp, Tcl_Obj *dictPtr, Tcl_DictSearch *searchPtr, Tcl_Obj **keyPtrPtr, Tcl_Obj **valuePtrPtr, int *donePtr); /* 498 */
2348 void (*tcl_DictObjNext) (Tcl_DictSearch *searchPtr, Tcl_Obj **keyPtrPtr, Tcl_Obj **valuePtrPtr, int *donePtr); /* 499 */
2349 void (*tcl_DictObjDone) (Tcl_DictSearch *searchPtr); /* 500 */
2350 int (*tcl_DictObjPutKeyList) (Tcl_Interp *interp, Tcl_Obj *dictPtr, int keyc, Tcl_Obj *const *keyv, Tcl_Obj *valuePtr); /* 501 */
2351 int (*tcl_DictObjRemoveKeyList) (Tcl_Interp *interp, Tcl_Obj *dictPtr, int keyc, Tcl_Obj *const *keyv); /* 502 */
2352 Tcl_Obj * (*tcl_NewDictObj) (void); /* 503 */
2353 Tcl_Obj * (*tcl_DbNewDictObj) (const char *file, int line); /* 504 */
2354 void (*tcl_RegisterConfig) (Tcl_Interp *interp, const char *pkgName, const Tcl_Config *configuration, const char *valEncoding); /* 505 */
2355 Tcl_Namespace * (*tcl_CreateNamespace) (Tcl_Interp *interp, const char *name, ClientData clientData, Tcl_NamespaceDeleteProc *deleteProc); /* 506 */
2356 void (*tcl_DeleteNamespace) (Tcl_Namespace *nsPtr); /* 507 */
2357 int (*tcl_AppendExportList) (Tcl_Interp *interp, Tcl_Namespace *nsPtr, Tcl_Obj *objPtr); /* 508 */
2358 int (*tcl_Export) (Tcl_Interp *interp, Tcl_Namespace *nsPtr, const char *pattern, int resetListFirst); /* 509 */
2359 int (*tcl_Import) (Tcl_Interp *interp, Tcl_Namespace *nsPtr, const char *pattern, int allowOverwrite); /* 510 */
2360 int (*tcl_ForgetImport) (Tcl_Interp *interp, Tcl_Namespace *nsPtr, const char *pattern); /* 511 */
2361 Tcl_Namespace * (*tcl_GetCurrentNamespace) (Tcl_Interp *interp); /* 512 */
2362 Tcl_Namespace * (*tcl_GetGlobalNamespace) (Tcl_Interp *interp); /* 513 */
2363 Tcl_Namespace * (*tcl_FindNamespace) (Tcl_Interp *interp, const char *name, Tcl_Namespace *contextNsPtr, int flags); /* 514 */
2364 Tcl_Command (*tcl_FindCommand) (Tcl_Interp *interp, const char *name, Tcl_Namespace *contextNsPtr, int flags); /* 515 */
2365 Tcl_Command (*tcl_GetCommandFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr); /* 516 */
2366 void (*tcl_GetCommandFullName) (Tcl_Interp *interp, Tcl_Command command, Tcl_Obj *objPtr); /* 517 */
2367 int (*tcl_FSEvalFileEx) (Tcl_Interp *interp, Tcl_Obj *fileName, const char *encodingName); /* 518 */
2368 Tcl_ExitProc * (*tcl_SetExitProc) (Tcl_ExitProc *proc); /* 519 */
2369 void (*tcl_LimitAddHandler) (Tcl_Interp *interp, int type, Tcl_LimitHandlerProc *handlerProc, ClientData clientData, Tcl_LimitHandlerDeleteProc *deleteProc); /* 520 */
2370 void (*tcl_LimitRemoveHandler) (Tcl_Interp *interp, int type, Tcl_LimitHandlerProc *handlerProc, ClientData clientData); /* 521 */
2371 int (*tcl_LimitReady) (Tcl_Interp *interp); /* 522 */
2372 int (*tcl_LimitCheck) (Tcl_Interp *interp); /* 523 */
2373 int (*tcl_LimitExceeded) (Tcl_Interp *interp); /* 524 */
2374 void (*tcl_LimitSetCommands) (Tcl_Interp *interp, int commandLimit); /* 525 */
2375 void (*tcl_LimitSetTime) (Tcl_Interp *interp, Tcl_Time *timeLimitPtr); /* 526 */
2376 void (*tcl_LimitSetGranularity) (Tcl_Interp *interp, int type, int granularity); /* 527 */
2377 int (*tcl_LimitTypeEnabled) (Tcl_Interp *interp, int type); /* 528 */
2378 int (*tcl_LimitTypeExceeded) (Tcl_Interp *interp, int type); /* 529 */
2379 void (*tcl_LimitTypeSet) (Tcl_Interp *interp, int type); /* 530 */
2380 void (*tcl_LimitTypeReset) (Tcl_Interp *interp, int type); /* 531 */
2381 int (*tcl_LimitGetCommands) (Tcl_Interp *interp); /* 532 */
2382 void (*tcl_LimitGetTime) (Tcl_Interp *interp, Tcl_Time *timeLimitPtr); /* 533 */
2383 int (*tcl_LimitGetGranularity) (Tcl_Interp *interp, int type); /* 534 */
2384 Tcl_InterpState (*tcl_SaveInterpState) (Tcl_Interp *interp, int status); /* 535 */
2385 int (*tcl_RestoreInterpState) (Tcl_Interp *interp, Tcl_InterpState state); /* 536 */
2386 void (*tcl_DiscardInterpState) (Tcl_InterpState state); /* 537 */
2387 int (*tcl_SetReturnOptions) (Tcl_Interp *interp, Tcl_Obj *options); /* 538 */
2388 Tcl_Obj * (*tcl_GetReturnOptions) (Tcl_Interp *interp, int result); /* 539 */
2389 int (*tcl_IsEnsemble) (Tcl_Command token); /* 540 */
2390 Tcl_Command (*tcl_CreateEnsemble) (Tcl_Interp *interp, const char *name, Tcl_Namespace *namespacePtr, int flags); /* 541 */
2391 Tcl_Command (*tcl_FindEnsemble) (Tcl_Interp *interp, Tcl_Obj *cmdNameObj, int flags); /* 542 */
2392 int (*tcl_SetEnsembleSubcommandList) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj *subcmdList); /* 543 */
2393 int (*tcl_SetEnsembleMappingDict) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj *mapDict); /* 544 */
2394 int (*tcl_SetEnsembleUnknownHandler) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj *unknownList); /* 545 */
2395 int (*tcl_SetEnsembleFlags) (Tcl_Interp *interp, Tcl_Command token, int flags); /* 546 */
2396 int (*tcl_GetEnsembleSubcommandList) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj **subcmdListPtr); /* 547 */
2397 int (*tcl_GetEnsembleMappingDict) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj **mapDictPtr); /* 548 */
2398 int (*tcl_GetEnsembleUnknownHandler) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj **unknownListPtr); /* 549 */
2399 int (*tcl_GetEnsembleFlags) (Tcl_Interp *interp, Tcl_Command token, int *flagsPtr); /* 550 */
2400 int (*tcl_GetEnsembleNamespace) (Tcl_Interp *interp, Tcl_Command token, Tcl_Namespace **namespacePtrPtr); /* 551 */
2401 void (*tcl_SetTimeProc) (Tcl_GetTimeProc *getProc, Tcl_ScaleTimeProc *scaleProc, ClientData clientData); /* 552 */
2402 void (*tcl_QueryTimeProc) (Tcl_GetTimeProc **getProc, Tcl_ScaleTimeProc **scaleProc, ClientData *clientData); /* 553 */
2403 Tcl_DriverThreadActionProc * (*tcl_ChannelThreadActionProc) (const Tcl_ChannelType *chanTypePtr); /* 554 */
2404 Tcl_Obj * (*tcl_NewBignumObj) (mp_int *value); /* 555 */
2405 Tcl_Obj * (*tcl_DbNewBignumObj) (mp_int *value, const char *file, int line); /* 556 */
2406 void (*tcl_SetBignumObj) (Tcl_Obj *obj, mp_int *value); /* 557 */
2407 int (*tcl_GetBignumFromObj) (Tcl_Interp *interp, Tcl_Obj *obj, mp_int *value); /* 558 */
2408 int (*tcl_TakeBignumFromObj) (Tcl_Interp *interp, Tcl_Obj *obj, mp_int *value); /* 559 */
2409 int (*tcl_TruncateChannel) (Tcl_Channel chan, Tcl_WideInt length); /* 560 */
2410 Tcl_DriverTruncateProc * (*tcl_ChannelTruncateProc) (const Tcl_ChannelType *chanTypePtr); /* 561 */
2411 void (*tcl_SetChannelErrorInterp) (Tcl_Interp *interp, Tcl_Obj *msg); /* 562 */
2412 void (*tcl_GetChannelErrorInterp) (Tcl_Interp *interp, Tcl_Obj **msg); /* 563 */
2413 void (*tcl_SetChannelError) (Tcl_Channel chan, Tcl_Obj *msg); /* 564 */
2414 void (*tcl_GetChannelError) (Tcl_Channel chan, Tcl_Obj **msg); /* 565 */
2415 int (*tcl_InitBignumFromDouble) (Tcl_Interp *interp, double initval, mp_int *toInit); /* 566 */
2416 Tcl_Obj * (*tcl_GetNamespaceUnknownHandler) (Tcl_Interp *interp, Tcl_Namespace *nsPtr); /* 567 */
2417 int (*tcl_SetNamespaceUnknownHandler) (Tcl_Interp *interp, Tcl_Namespace *nsPtr, Tcl_Obj *handlerPtr); /* 568 */
2418 int (*tcl_GetEncodingFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_Encoding *encodingPtr); /* 569 */
2419 Tcl_Obj * (*tcl_GetEncodingSearchPath) (void); /* 570 */
2420 int (*tcl_SetEncodingSearchPath) (Tcl_Obj *searchPath); /* 571 */
2421 const char * (*tcl_GetEncodingNameFromEnvironment) (Tcl_DString *bufPtr); /* 572 */
2422 int (*tcl_PkgRequireProc) (Tcl_Interp *interp, const char *name, int objc, Tcl_Obj *const objv[], void *clientDataPtr); /* 573 */
2423 void (*tcl_AppendObjToErrorInfo) (Tcl_Interp *interp, Tcl_Obj *objPtr); /* 574 */
2424 void (*tcl_AppendLimitedToObj) (Tcl_Obj *objPtr, const char *bytes, int length, int limit, const char *ellipsis); /* 575 */
2425 Tcl_Obj * (*tcl_Format) (Tcl_Interp *interp, const char *format, int objc, Tcl_Obj *const objv[]); /* 576 */
2426 int (*tcl_AppendFormatToObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, const char *format, int objc, Tcl_Obj *const objv[]); /* 577 */
2427 Tcl_Obj * (*tcl_ObjPrintf) (const char *format, ...) TCL_FORMAT_PRINTF(1, 2); /* 578 */
2428 void (*tcl_AppendPrintfToObj) (Tcl_Obj *objPtr, const char *format, ...) TCL_FORMAT_PRINTF(2, 3); /* 579 */
2429 int (*tcl_CancelEval) (Tcl_Interp *interp, Tcl_Obj *resultObjPtr, ClientData clientData, int flags); /* 580 */
2430 int (*tcl_Canceled) (Tcl_Interp *interp, int flags); /* 581 */
2431 int (*tcl_CreatePipe) (Tcl_Interp *interp, Tcl_Channel *rchan, Tcl_Channel *wchan, int flags); /* 582 */
2432 Tcl_Command (*tcl_NRCreateCommand) (Tcl_Interp *interp, const char *cmdName, Tcl_ObjCmdProc *proc, Tcl_ObjCmdProc *nreProc, ClientData clientData, Tcl_CmdDeleteProc *deleteProc); /* 583 */
2433 int (*tcl_NREvalObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int flags); /* 584 */
2434 int (*tcl_NREvalObjv) (Tcl_Interp *interp, int objc, Tcl_Obj *const objv[], int flags); /* 585 */
2435 int (*tcl_NRCmdSwap) (Tcl_Interp *interp, Tcl_Command cmd, int objc, Tcl_Obj *const objv[], int flags); /* 586 */
2436 void (*tcl_NRAddCallback) (Tcl_Interp *interp, Tcl_NRPostProc *postProcPtr, ClientData data0, ClientData data1, ClientData data2, ClientData data3); /* 587 */
2437 int (*tcl_NRCallObjProc) (Tcl_Interp *interp, Tcl_ObjCmdProc *objProc, ClientData clientData, int objc, Tcl_Obj *const objv[]); /* 588 */
2438 unsigned (*tcl_GetFSDeviceFromStat) (const Tcl_StatBuf *statPtr); /* 589 */
2439 unsigned (*tcl_GetFSInodeFromStat) (const Tcl_StatBuf *statPtr); /* 590 */
2440 unsigned (*tcl_GetModeFromStat) (const Tcl_StatBuf *statPtr); /* 591 */
2441 int (*tcl_GetLinkCountFromStat) (const Tcl_StatBuf *statPtr); /* 592 */
2442 int (*tcl_GetUserIdFromStat) (const Tcl_StatBuf *statPtr); /* 593 */
2443 int (*tcl_GetGroupIdFromStat) (const Tcl_StatBuf *statPtr); /* 594 */
2444 int (*tcl_GetDeviceTypeFromStat) (const Tcl_StatBuf *statPtr); /* 595 */
2445 Tcl_WideInt (*tcl_GetAccessTimeFromStat) (const Tcl_StatBuf *statPtr); /* 596 */
2446 Tcl_WideInt (*tcl_GetModificationTimeFromStat) (const Tcl_StatBuf *statPtr); /* 597 */
2447 Tcl_WideInt (*tcl_GetChangeTimeFromStat) (const Tcl_StatBuf *statPtr); /* 598 */
2448 Tcl_WideUInt (*tcl_GetSizeFromStat) (const Tcl_StatBuf *statPtr); /* 599 */
2449 Tcl_WideUInt (*tcl_GetBlocksFromStat) (const Tcl_StatBuf *statPtr); /* 600 */
2450 unsigned (*tcl_GetBlockSizeFromStat) (const Tcl_StatBuf *statPtr); /* 601 */
2451 int (*tcl_SetEnsembleParameterList) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj *paramList); /* 602 */
2452 int (*tcl_GetEnsembleParameterList) (Tcl_Interp *interp, Tcl_Command token, Tcl_Obj **paramListPtr); /* 603 */
2453 int (*tcl_ParseArgsObjv) (Tcl_Interp *interp, const Tcl_ArgvInfo *argTable, int *objcPtr, Tcl_Obj *const *objv, Tcl_Obj ***remObjv); /* 604 */
2454 int (*tcl_GetErrorLine) (Tcl_Interp *interp); /* 605 */
2455 void (*tcl_SetErrorLine) (Tcl_Interp *interp, int lineNum); /* 606 */
2456 void (*tcl_TransferResult) (Tcl_Interp *sourceInterp, int result, Tcl_Interp *targetInterp); /* 607 */
2457 int (*tcl_InterpActive) (Tcl_Interp *interp); /* 608 */
2458 void (*tcl_BackgroundException) (Tcl_Interp *interp, int code); /* 609 */
2459 int (*tcl_ZlibDeflate) (Tcl_Interp *interp, int format, Tcl_Obj *data, int level, Tcl_Obj *gzipHeaderDictObj); /* 610 */
2460 int (*tcl_ZlibInflate) (Tcl_Interp *interp, int format, Tcl_Obj *data, int buffersize, Tcl_Obj *gzipHeaderDictObj); /* 611 */
2461 unsigned int (*tcl_ZlibCRC32) (unsigned int crc, const unsigned char *buf, int len); /* 612 */
2462 unsigned int (*tcl_ZlibAdler32) (unsigned int adler, const unsigned char *buf, int len); /* 613 */
2463 int (*tcl_ZlibStreamInit) (Tcl_Interp *interp, int mode, int format, int level, Tcl_Obj *dictObj, Tcl_ZlibStream *zshandle); /* 614 */
2464 Tcl_Obj * (*tcl_ZlibStreamGetCommandName) (Tcl_ZlibStream zshandle); /* 615 */
2465 int (*tcl_ZlibStreamEof) (Tcl_ZlibStream zshandle); /* 616 */
2466 int (*tcl_ZlibStreamChecksum) (Tcl_ZlibStream zshandle); /* 617 */
2467 int (*tcl_ZlibStreamPut) (Tcl_ZlibStream zshandle, Tcl_Obj *data, int flush); /* 618 */
2468 int (*tcl_ZlibStreamGet) (Tcl_ZlibStream zshandle, Tcl_Obj *data, int count); /* 619 */
2469 int (*tcl_ZlibStreamClose) (Tcl_ZlibStream zshandle); /* 620 */
2470 int (*tcl_ZlibStreamReset) (Tcl_ZlibStream zshandle); /* 621 */
2471 void (*tcl_SetStartupScript) (Tcl_Obj *path, const char *encoding); /* 622 */
2472 Tcl_Obj * (*tcl_GetStartupScript) (const char **encodingPtr); /* 623 */
2473 int (*tcl_CloseEx) (Tcl_Interp *interp, Tcl_Channel chan, int flags); /* 624 */
2474 int (*tcl_NRExprObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_Obj *resultPtr); /* 625 */
2475 int (*tcl_NRSubstObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int flags); /* 626 */
2476 int (*tcl_LoadFile) (Tcl_Interp *interp, Tcl_Obj *pathPtr, const char *const symv[], int flags, void *procPtrs, Tcl_LoadHandle *handlePtr); /* 627 */
2477 void * (*tcl_FindSymbol) (Tcl_Interp *interp, Tcl_LoadHandle handle, const char *symbol); /* 628 */
2478 int (*tcl_FSUnloadFile) (Tcl_Interp *interp, Tcl_LoadHandle handlePtr); /* 629 */
2479 void (*tcl_ZlibStreamSetCompressionDictionary) (Tcl_ZlibStream zhandle, Tcl_Obj *compressionDictionaryObj); /* 630 */
2480 } TclStubs;
2481
2482 #ifdef __cplusplus
2483 extern "C" {
2484 #endif
2485 extern const TclStubs *tclStubsPtr;
2486 #ifdef __cplusplus
2487 }
2488 #endif
2489
2490 #if defined(USE_TCL_STUBS)
2491
2492 /*
2493 * Inline function declarations:
2494 */
2495
2496 #define Tcl_PkgProvideEx \
2497 (tclStubsPtr->tcl_PkgProvideEx) /* 0 */
2498 #define Tcl_PkgRequireEx \
2499 (tclStubsPtr->tcl_PkgRequireEx) /* 1 */
2500 #define Tcl_Panic \
2501 (tclStubsPtr->tcl_Panic) /* 2 */
2502 #define Tcl_Alloc \
2503 (tclStubsPtr->tcl_Alloc) /* 3 */
2504 #define Tcl_Free \
2505 (tclStubsPtr->tcl_Free) /* 4 */
2506 #define Tcl_Realloc \
2507 (tclStubsPtr->tcl_Realloc) /* 5 */
2508 #define Tcl_DbCkalloc \
2509 (tclStubsPtr->tcl_DbCkalloc) /* 6 */
2510 #define Tcl_DbCkfree \
2511 (tclStubsPtr->tcl_DbCkfree) /* 7 */
2512 #define Tcl_DbCkrealloc \
2513 (tclStubsPtr->tcl_DbCkrealloc) /* 8 */
2514 #if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
2515 #define Tcl_CreateFileHandler \
2516 (tclStubsPtr->tcl_CreateFileHandler) /* 9 */
2517 #endif /* UNIX */
2518 #ifdef MAC_OSX_TCL /* MACOSX */
2519 #define Tcl_CreateFileHandler \
2520 (tclStubsPtr->tcl_CreateFileHandler) /* 9 */
2521 #endif /* MACOSX */
2522 #if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
2523 #define Tcl_DeleteFileHandler \
2524 (tclStubsPtr->tcl_DeleteFileHandler) /* 10 */
2525 #endif /* UNIX */
2526 #ifdef MAC_OSX_TCL /* MACOSX */
2527 #define Tcl_DeleteFileHandler \
2528 (tclStubsPtr->tcl_DeleteFileHandler) /* 10 */
2529 #endif /* MACOSX */
2530 #define Tcl_SetTimer \
2531 (tclStubsPtr->tcl_SetTimer) /* 11 */
2532 #define Tcl_Sleep \
2533 (tclStubsPtr->tcl_Sleep) /* 12 */
2534 #define Tcl_WaitForEvent \
2535 (tclStubsPtr->tcl_WaitForEvent) /* 13 */
2536 #define Tcl_AppendAllObjTypes \
2537 (tclStubsPtr->tcl_AppendAllObjTypes) /* 14 */
2538 #define Tcl_AppendStringsToObj \
2539 (tclStubsPtr->tcl_AppendStringsToObj) /* 15 */
2540 #define Tcl_AppendToObj \
2541 (tclStubsPtr->tcl_AppendToObj) /* 16 */
2542 #define Tcl_ConcatObj \
2543 (tclStubsPtr->tcl_ConcatObj) /* 17 */
2544 #define Tcl_ConvertToType \
2545 (tclStubsPtr->tcl_ConvertToType) /* 18 */
2546 #define Tcl_DbDecrRefCount \
2547 (tclStubsPtr->tcl_DbDecrRefCount) /* 19 */
2548 #define Tcl_DbIncrRefCount \
2549 (tclStubsPtr->tcl_DbIncrRefCount) /* 20 */
2550 #define Tcl_DbIsShared \
2551 (tclStubsPtr->tcl_DbIsShared) /* 21 */
2552 #define Tcl_DbNewBooleanObj \
2553 (tclStubsPtr->tcl_DbNewBooleanObj) /* 22 */
2554 #define Tcl_DbNewByteArrayObj \
2555 (tclStubsPtr->tcl_DbNewByteArrayObj) /* 23 */
2556 #define Tcl_DbNewDoubleObj \
2557 (tclStubsPtr->tcl_DbNewDoubleObj) /* 24 */
2558 #define Tcl_DbNewListObj \
2559 (tclStubsPtr->tcl_DbNewListObj) /* 25 */
2560 #define Tcl_DbNewLongObj \
2561 (tclStubsPtr->tcl_DbNewLongObj) /* 26 */
2562 #define Tcl_DbNewObj \
2563 (tclStubsPtr->tcl_DbNewObj) /* 27 */
2564 #define Tcl_DbNewStringObj \
2565 (tclStubsPtr->tcl_DbNewStringObj) /* 28 */
2566 #define Tcl_DuplicateObj \
2567 (tclStubsPtr->tcl_DuplicateObj) /* 29 */
2568 #define TclFreeObj \
2569 (tclStubsPtr->tclFreeObj) /* 30 */
2570 #define Tcl_GetBoolean \
2571 (tclStubsPtr->tcl_GetBoolean) /* 31 */
2572 #define Tcl_GetBooleanFromObj \
2573 (tclStubsPtr->tcl_GetBooleanFromObj) /* 32 */
2574 #define Tcl_GetByteArrayFromObj \
2575 (tclStubsPtr->tcl_GetByteArrayFromObj) /* 33 */
2576 #define Tcl_GetDouble \
2577 (tclStubsPtr->tcl_GetDouble) /* 34 */
2578 #define Tcl_GetDoubleFromObj \
2579 (tclStubsPtr->tcl_GetDoubleFromObj) /* 35 */
2580 #define Tcl_GetIndexFromObj \
2581 (tclStubsPtr->tcl_GetIndexFromObj) /* 36 */
2582 #define Tcl_GetInt \
2583 (tclStubsPtr->tcl_GetInt) /* 37 */
2584 #define Tcl_GetIntFromObj \
2585 (tclStubsPtr->tcl_GetIntFromObj) /* 38 */
2586 #define Tcl_GetLongFromObj \
2587 (tclStubsPtr->tcl_GetLongFromObj) /* 39 */
2588 #define Tcl_GetObjType \
2589 (tclStubsPtr->tcl_GetObjType) /* 40 */
2590 #define Tcl_GetStringFromObj \
2591 (tclStubsPtr->tcl_GetStringFromObj) /* 41 */
2592 #define Tcl_InvalidateStringRep \
2593 (tclStubsPtr->tcl_InvalidateStringRep) /* 42 */
2594 #define Tcl_ListObjAppendList \
2595 (tclStubsPtr->tcl_ListObjAppendList) /* 43 */
2596 #define Tcl_ListObjAppendElement \
2597 (tclStubsPtr->tcl_ListObjAppendElement) /* 44 */
2598 #define Tcl_ListObjGetElements \
2599 (tclStubsPtr->tcl_ListObjGetElements) /* 45 */
2600 #define Tcl_ListObjIndex \
2601 (tclStubsPtr->tcl_ListObjIndex) /* 46 */
2602 #define Tcl_ListObjLength \
2603 (tclStubsPtr->tcl_ListObjLength) /* 47 */
2604 #define Tcl_ListObjReplace \
2605 (tclStubsPtr->tcl_ListObjReplace) /* 48 */
2606 #define Tcl_NewBooleanObj \
2607 (tclStubsPtr->tcl_NewBooleanObj) /* 49 */
2608 #define Tcl_NewByteArrayObj \
2609 (tclStubsPtr->tcl_NewByteArrayObj) /* 50 */
2610 #define Tcl_NewDoubleObj \
2611 (tclStubsPtr->tcl_NewDoubleObj) /* 51 */
2612 #define Tcl_NewIntObj \
2613 (tclStubsPtr->tcl_NewIntObj) /* 52 */
2614 #define Tcl_NewListObj \
2615 (tclStubsPtr->tcl_NewListObj) /* 53 */
2616 #define Tcl_NewLongObj \
2617 (tclStubsPtr->tcl_NewLongObj) /* 54 */
2618 #define Tcl_NewObj \
2619 (tclStubsPtr->tcl_NewObj) /* 55 */
2620 #define Tcl_NewStringObj \
2621 (tclStubsPtr->tcl_NewStringObj) /* 56 */
2622 #define Tcl_SetBooleanObj \
2623 (tclStubsPtr->tcl_SetBooleanObj) /* 57 */
2624 #define Tcl_SetByteArrayLength \
2625 (tclStubsPtr->tcl_SetByteArrayLength) /* 58 */
2626 #define Tcl_SetByteArrayObj \
2627 (tclStubsPtr->tcl_SetByteArrayObj) /* 59 */
2628 #define Tcl_SetDoubleObj \
2629 (tclStubsPtr->tcl_SetDoubleObj) /* 60 */
2630 #define Tcl_SetIntObj \
2631 (tclStubsPtr->tcl_SetIntObj) /* 61 */
2632 #define Tcl_SetListObj \
2633 (tclStubsPtr->tcl_SetListObj) /* 62 */
2634 #define Tcl_SetLongObj \
2635 (tclStubsPtr->tcl_SetLongObj) /* 63 */
2636 #define Tcl_SetObjLength \
2637 (tclStubsPtr->tcl_SetObjLength) /* 64 */
2638 #define Tcl_SetStringObj \
2639 (tclStubsPtr->tcl_SetStringObj) /* 65 */
2640 #define Tcl_AddErrorInfo \
2641 (tclStubsPtr->tcl_AddErrorInfo) /* 66 */
2642 #define Tcl_AddObjErrorInfo \
2643 (tclStubsPtr->tcl_AddObjErrorInfo) /* 67 */
2644 #define Tcl_AllowExceptions \
2645 (tclStubsPtr->tcl_AllowExceptions) /* 68 */
2646 #define Tcl_AppendElement \
2647 (tclStubsPtr->tcl_AppendElement) /* 69 */
2648 #define Tcl_AppendResult \
2649 (tclStubsPtr->tcl_AppendResult) /* 70 */
2650 #define Tcl_AsyncCreate \
2651 (tclStubsPtr->tcl_AsyncCreate) /* 71 */
2652 #define Tcl_AsyncDelete \
2653 (tclStubsPtr->tcl_AsyncDelete) /* 72 */
2654 #define Tcl_AsyncInvoke \
2655 (tclStubsPtr->tcl_AsyncInvoke) /* 73 */
2656 #define Tcl_AsyncMark \
2657 (tclStubsPtr->tcl_AsyncMark) /* 74 */
2658 #define Tcl_AsyncReady \
2659 (tclStubsPtr->tcl_AsyncReady) /* 75 */
2660 #define Tcl_BackgroundError \
2661 (tclStubsPtr->tcl_BackgroundError) /* 76 */
2662 #define Tcl_Backslash \
2663 (tclStubsPtr->tcl_Backslash) /* 77 */
2664 #define Tcl_BadChannelOption \
2665 (tclStubsPtr->tcl_BadChannelOption) /* 78 */
2666 #define Tcl_CallWhenDeleted \
2667 (tclStubsPtr->tcl_CallWhenDeleted) /* 79 */
2668 #define Tcl_CancelIdleCall \
2669 (tclStubsPtr->tcl_CancelIdleCall) /* 80 */
2670 #define Tcl_Close \
2671 (tclStubsPtr->tcl_Close) /* 81 */
2672 #define Tcl_CommandComplete \
2673 (tclStubsPtr->tcl_CommandComplete) /* 82 */
2674 #define Tcl_Concat \
2675 (tclStubsPtr->tcl_Concat) /* 83 */
2676 #define Tcl_ConvertElement \
2677 (tclStubsPtr->tcl_ConvertElement) /* 84 */
2678 #define Tcl_ConvertCountedElement \
2679 (tclStubsPtr->tcl_ConvertCountedElement) /* 85 */
2680 #define Tcl_CreateAlias \
2681 (tclStubsPtr->tcl_CreateAlias) /* 86 */
2682 #define Tcl_CreateAliasObj \
2683 (tclStubsPtr->tcl_CreateAliasObj) /* 87 */
2684 #define Tcl_CreateChannel \
2685 (tclStubsPtr->tcl_CreateChannel) /* 88 */
2686 #define Tcl_CreateChannelHandler \
2687 (tclStubsPtr->tcl_CreateChannelHandler) /* 89 */
2688 #define Tcl_CreateCloseHandler \
2689 (tclStubsPtr->tcl_CreateCloseHandler) /* 90 */
2690 #define Tcl_CreateCommand \
2691 (tclStubsPtr->tcl_CreateCommand) /* 91 */
2692 #define Tcl_CreateEventSource \
2693 (tclStubsPtr->tcl_CreateEventSource) /* 92 */
2694 #define Tcl_CreateExitHandler \
2695 (tclStubsPtr->tcl_CreateExitHandler) /* 93 */
2696 #define Tcl_CreateInterp \
2697 (tclStubsPtr->tcl_CreateInterp) /* 94 */
2698 #define Tcl_CreateMathFunc \
2699 (tclStubsPtr->tcl_CreateMathFunc) /* 95 */
2700 #define Tcl_CreateObjCommand \
2701 (tclStubsPtr->tcl_CreateObjCommand) /* 96 */
2702 #define Tcl_CreateSlave \
2703 (tclStubsPtr->tcl_CreateSlave) /* 97 */
2704 #define Tcl_CreateTimerHandler \
2705 (tclStubsPtr->tcl_CreateTimerHandler) /* 98 */
2706 #define Tcl_CreateTrace \
2707 (tclStubsPtr->tcl_CreateTrace) /* 99 */
2708 #define Tcl_DeleteAssocData \
2709 (tclStubsPtr->tcl_DeleteAssocData) /* 100 */
2710 #define Tcl_DeleteChannelHandler \
2711 (tclStubsPtr->tcl_DeleteChannelHandler) /* 101 */
2712 #define Tcl_DeleteCloseHandler \
2713 (tclStubsPtr->tcl_DeleteCloseHandler) /* 102 */
2714 #define Tcl_DeleteCommand \
2715 (tclStubsPtr->tcl_DeleteCommand) /* 103 */
2716 #define Tcl_DeleteCommandFromToken \
2717 (tclStubsPtr->tcl_DeleteCommandFromToken) /* 104 */
2718 #define Tcl_DeleteEvents \
2719 (tclStubsPtr->tcl_DeleteEvents) /* 105 */
2720 #define Tcl_DeleteEventSource \
2721 (tclStubsPtr->tcl_DeleteEventSource) /* 106 */
2722 #define Tcl_DeleteExitHandler \
2723 (tclStubsPtr->tcl_DeleteExitHandler) /* 107 */
2724 #define Tcl_DeleteHashEntry \
2725 (tclStubsPtr->tcl_DeleteHashEntry) /* 108 */
2726 #define Tcl_DeleteHashTable \
2727 (tclStubsPtr->tcl_DeleteHashTable) /* 109 */
2728 #define Tcl_DeleteInterp \
2729 (tclStubsPtr->tcl_DeleteInterp) /* 110 */
2730 #define Tcl_DetachPids \
2731 (tclStubsPtr->tcl_DetachPids) /* 111 */
2732 #define Tcl_DeleteTimerHandler \
2733 (tclStubsPtr->tcl_DeleteTimerHandler) /* 112 */
2734 #define Tcl_DeleteTrace \
2735 (tclStubsPtr->tcl_DeleteTrace) /* 113 */
2736 #define Tcl_DontCallWhenDeleted \
2737 (tclStubsPtr->tcl_DontCallWhenDeleted) /* 114 */
2738 #define Tcl_DoOneEvent \
2739 (tclStubsPtr->tcl_DoOneEvent) /* 115 */
2740 #define Tcl_DoWhenIdle \
2741 (tclStubsPtr->tcl_DoWhenIdle) /* 116 */
2742 #define Tcl_DStringAppend \
2743 (tclStubsPtr->tcl_DStringAppend) /* 117 */
2744 #define Tcl_DStringAppendElement \
2745 (tclStubsPtr->tcl_DStringAppendElement) /* 118 */
2746 #define Tcl_DStringEndSublist \
2747 (tclStubsPtr->tcl_DStringEndSublist) /* 119 */
2748 #define Tcl_DStringFree \
2749 (tclStubsPtr->tcl_DStringFree) /* 120 */
2750 #define Tcl_DStringGetResult \
2751 (tclStubsPtr->tcl_DStringGetResult) /* 121 */
2752 #define Tcl_DStringInit \
2753 (tclStubsPtr->tcl_DStringInit) /* 122 */
2754 #define Tcl_DStringResult \
2755 (tclStubsPtr->tcl_DStringResult) /* 123 */
2756 #define Tcl_DStringSetLength \
2757 (tclStubsPtr->tcl_DStringSetLength) /* 124 */
2758 #define Tcl_DStringStartSublist \
2759 (tclStubsPtr->tcl_DStringStartSublist) /* 125 */
2760 #define Tcl_Eof \
2761 (tclStubsPtr->tcl_Eof) /* 126 */
2762 #define Tcl_ErrnoId \
2763 (tclStubsPtr->tcl_ErrnoId) /* 127 */
2764 #define Tcl_ErrnoMsg \
2765 (tclStubsPtr->tcl_ErrnoMsg) /* 128 */
2766 #define Tcl_Eval \
2767 (tclStubsPtr->tcl_Eval) /* 129 */
2768 #define Tcl_EvalFile \
2769 (tclStubsPtr->tcl_EvalFile) /* 130 */
2770 #define Tcl_EvalObj \
2771 (tclStubsPtr->tcl_EvalObj) /* 131 */
2772 #define Tcl_EventuallyFree \
2773 (tclStubsPtr->tcl_EventuallyFree) /* 132 */
2774 #define Tcl_Exit \
2775 (tclStubsPtr->tcl_Exit) /* 133 */
2776 #define Tcl_ExposeCommand \
2777 (tclStubsPtr->tcl_ExposeCommand) /* 134 */
2778 #define Tcl_ExprBoolean \
2779 (tclStubsPtr->tcl_ExprBoolean) /* 135 */
2780 #define Tcl_ExprBooleanObj \
2781 (tclStubsPtr->tcl_ExprBooleanObj) /* 136 */
2782 #define Tcl_ExprDouble \
2783 (tclStubsPtr->tcl_ExprDouble) /* 137 */
2784 #define Tcl_ExprDoubleObj \
2785 (tclStubsPtr->tcl_ExprDoubleObj) /* 138 */
2786 #define Tcl_ExprLong \
2787 (tclStubsPtr->tcl_ExprLong) /* 139 */
2788 #define Tcl_ExprLongObj \
2789 (tclStubsPtr->tcl_ExprLongObj) /* 140 */
2790 #define Tcl_ExprObj \
2791 (tclStubsPtr->tcl_ExprObj) /* 141 */
2792 #define Tcl_ExprString \
2793 (tclStubsPtr->tcl_ExprString) /* 142 */
2794 #define Tcl_Finalize \
2795 (tclStubsPtr->tcl_Finalize) /* 143 */
2796 #define Tcl_FindExecutable \
2797 (tclStubsPtr->tcl_FindExecutable) /* 144 */
2798 #define Tcl_FirstHashEntry \
2799 (tclStubsPtr->tcl_FirstHashEntry) /* 145 */
2800 #define Tcl_Flush \
2801 (tclStubsPtr->tcl_Flush) /* 146 */
2802 #define Tcl_FreeResult \
2803 (tclStubsPtr->tcl_FreeResult) /* 147 */
2804 #define Tcl_GetAlias \
2805 (tclStubsPtr->tcl_GetAlias) /* 148 */
2806 #define Tcl_GetAliasObj \
2807 (tclStubsPtr->tcl_GetAliasObj) /* 149 */
2808 #define Tcl_GetAssocData \
2809 (tclStubsPtr->tcl_GetAssocData) /* 150 */
2810 #define Tcl_GetChannel \
2811 (tclStubsPtr->tcl_GetChannel) /* 151 */
2812 #define Tcl_GetChannelBufferSize \
2813 (tclStubsPtr->tcl_GetChannelBufferSize) /* 152 */
2814 #define Tcl_GetChannelHandle \
2815 (tclStubsPtr->tcl_GetChannelHandle) /* 153 */
2816 #define Tcl_GetChannelInstanceData \
2817 (tclStubsPtr->tcl_GetChannelInstanceData) /* 154 */
2818 #define Tcl_GetChannelMode \
2819 (tclStubsPtr->tcl_GetChannelMode) /* 155 */
2820 #define Tcl_GetChannelName \
2821 (tclStubsPtr->tcl_GetChannelName) /* 156 */
2822 #define Tcl_GetChannelOption \
2823 (tclStubsPtr->tcl_GetChannelOption) /* 157 */
2824 #define Tcl_GetChannelType \
2825 (tclStubsPtr->tcl_GetChannelType) /* 158 */
2826 #define Tcl_GetCommandInfo \
2827 (tclStubsPtr->tcl_GetCommandInfo) /* 159 */
2828 #define Tcl_GetCommandName \
2829 (tclStubsPtr->tcl_GetCommandName) /* 160 */
2830 #define Tcl_GetErrno \
2831 (tclStubsPtr->tcl_GetErrno) /* 161 */
2832 #define Tcl_GetHostName \
2833 (tclStubsPtr->tcl_GetHostName) /* 162 */
2834 #define Tcl_GetInterpPath \
2835 (tclStubsPtr->tcl_GetInterpPath) /* 163 */
2836 #define Tcl_GetMaster \
2837 (tclStubsPtr->tcl_GetMaster) /* 164 */
2838 #define Tcl_GetNameOfExecutable \
2839 (tclStubsPtr->tcl_GetNameOfExecutable) /* 165 */
2840 #define Tcl_GetObjResult \
2841 (tclStubsPtr->tcl_GetObjResult) /* 166 */
2842 #if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
2843 #define Tcl_GetOpenFile \
2844 (tclStubsPtr->tcl_GetOpenFile) /* 167 */
2845 #endif /* UNIX */
2846 #ifdef MAC_OSX_TCL /* MACOSX */
2847 #define Tcl_GetOpenFile \
2848 (tclStubsPtr->tcl_GetOpenFile) /* 167 */
2849 #endif /* MACOSX */
2850 #define Tcl_GetPathType \
2851 (tclStubsPtr->tcl_GetPathType) /* 168 */
2852 #define Tcl_Gets \
2853 (tclStubsPtr->tcl_Gets) /* 169 */
2854 #define Tcl_GetsObj \
2855 (tclStubsPtr->tcl_GetsObj) /* 170 */
2856 #define Tcl_GetServiceMode \
2857 (tclStubsPtr->tcl_GetServiceMode) /* 171 */
2858 #define Tcl_GetSlave \
2859 (tclStubsPtr->tcl_GetSlave) /* 172 */
2860 #define Tcl_GetStdChannel \
2861 (tclStubsPtr->tcl_GetStdChannel) /* 173 */
2862 #define Tcl_GetStringResult \
2863 (tclStubsPtr->tcl_GetStringResult) /* 174 */
2864 #define Tcl_GetVar \
2865 (tclStubsPtr->tcl_GetVar) /* 175 */
2866 #define Tcl_GetVar2 \
2867 (tclStubsPtr->tcl_GetVar2) /* 176 */
2868 #define Tcl_GlobalEval \
2869 (tclStubsPtr->tcl_GlobalEval) /* 177 */
2870 #define Tcl_GlobalEvalObj \
2871 (tclStubsPtr->tcl_GlobalEvalObj) /* 178 */
2872 #define Tcl_HideCommand \
2873 (tclStubsPtr->tcl_HideCommand) /* 179 */
2874 #define Tcl_Init \
2875 (tclStubsPtr->tcl_Init) /* 180 */
2876 #define Tcl_InitHashTable \
2877 (tclStubsPtr->tcl_InitHashTable) /* 181 */
2878 #define Tcl_InputBlocked \
2879 (tclStubsPtr->tcl_InputBlocked) /* 182 */
2880 #define Tcl_InputBuffered \
2881 (tclStubsPtr->tcl_InputBuffered) /* 183 */
2882 #define Tcl_InterpDeleted \
2883 (tclStubsPtr->tcl_InterpDeleted) /* 184 */
2884 #define Tcl_IsSafe \
2885 (tclStubsPtr->tcl_IsSafe) /* 185 */
2886 #define Tcl_JoinPath \
2887 (tclStubsPtr->tcl_JoinPath) /* 186 */
2888 #define Tcl_LinkVar \
2889 (tclStubsPtr->tcl_LinkVar) /* 187 */
2890 /* Slot 188 is reserved */
2891 #define Tcl_MakeFileChannel \
2892 (tclStubsPtr->tcl_MakeFileChannel) /* 189 */
2893 #define Tcl_MakeSafe \
2894 (tclStubsPtr->tcl_MakeSafe) /* 190 */
2895 #define Tcl_MakeTcpClientChannel \
2896 (tclStubsPtr->tcl_MakeTcpClientChannel) /* 191 */
2897 #define Tcl_Merge \
2898 (tclStubsPtr->tcl_Merge) /* 192 */
2899 #define Tcl_NextHashEntry \
2900 (tclStubsPtr->tcl_NextHashEntry) /* 193 */
2901 #define Tcl_NotifyChannel \
2902 (tclStubsPtr->tcl_NotifyChannel) /* 194 */
2903 #define Tcl_ObjGetVar2 \
2904 (tclStubsPtr->tcl_ObjGetVar2) /* 195 */
2905 #define Tcl_ObjSetVar2 \
2906 (tclStubsPtr->tcl_ObjSetVar2) /* 196 */
2907 #define Tcl_OpenCommandChannel \
2908 (tclStubsPtr->tcl_OpenCommandChannel) /* 197 */
2909 #define Tcl_OpenFileChannel \
2910 (tclStubsPtr->tcl_OpenFileChannel) /* 198 */
2911 #define Tcl_OpenTcpClient \
2912 (tclStubsPtr->tcl_OpenTcpClient) /* 199 */
2913 #define Tcl_OpenTcpServer \
2914 (tclStubsPtr->tcl_OpenTcpServer) /* 200 */
2915 #define Tcl_Preserve \
2916 (tclStubsPtr->tcl_Preserve) /* 201 */
2917 #define Tcl_PrintDouble \
2918 (tclStubsPtr->tcl_PrintDouble) /* 202 */
2919 #define Tcl_PutEnv \
2920 (tclStubsPtr->tcl_PutEnv) /* 203 */
2921 #define Tcl_PosixError \
2922 (tclStubsPtr->tcl_PosixError) /* 204 */
2923 #define Tcl_QueueEvent \
2924 (tclStubsPtr->tcl_QueueEvent) /* 205 */
2925 #define Tcl_Read \
2926 (tclStubsPtr->tcl_Read) /* 206 */
2927 #define Tcl_ReapDetachedProcs \
2928 (tclStubsPtr->tcl_ReapDetachedProcs) /* 207 */
2929 #define Tcl_RecordAndEval \
2930 (tclStubsPtr->tcl_RecordAndEval) /* 208 */
2931 #define Tcl_RecordAndEvalObj \
2932 (tclStubsPtr->tcl_RecordAndEvalObj) /* 209 */
2933 #define Tcl_RegisterChannel \
2934 (tclStubsPtr->tcl_RegisterChannel) /* 210 */
2935 #define Tcl_RegisterObjType \
2936 (tclStubsPtr->tcl_RegisterObjType) /* 211 */
2937 #define Tcl_RegExpCompile \
2938 (tclStubsPtr->tcl_RegExpCompile) /* 212 */
2939 #define Tcl_RegExpExec \
2940 (tclStubsPtr->tcl_RegExpExec) /* 213 */
2941 #define Tcl_RegExpMatch \
2942 (tclStubsPtr->tcl_RegExpMatch) /* 214 */
2943 #define Tcl_RegExpRange \
2944 (tclStubsPtr->tcl_RegExpRange) /* 215 */
2945 #define Tcl_Release \
2946 (tclStubsPtr->tcl_Release) /* 216 */
2947 #define Tcl_ResetResult \
2948 (tclStubsPtr->tcl_ResetResult) /* 217 */
2949 #define Tcl_ScanElement \
2950 (tclStubsPtr->tcl_ScanElement) /* 218 */
2951 #define Tcl_ScanCountedElement \
2952 (tclStubsPtr->tcl_ScanCountedElement) /* 219 */
2953 #define Tcl_SeekOld \
2954 (tclStubsPtr->tcl_SeekOld) /* 220 */
2955 #define Tcl_ServiceAll \
2956 (tclStubsPtr->tcl_ServiceAll) /* 221 */
2957 #define Tcl_ServiceEvent \
2958 (tclStubsPtr->tcl_ServiceEvent) /* 222 */
2959 #define Tcl_SetAssocData \
2960 (tclStubsPtr->tcl_SetAssocData) /* 223 */
2961 #define Tcl_SetChannelBufferSize \
2962 (tclStubsPtr->tcl_SetChannelBufferSize) /* 224 */
2963 #define Tcl_SetChannelOption \
2964 (tclStubsPtr->tcl_SetChannelOption) /* 225 */
2965 #define Tcl_SetCommandInfo \
2966 (tclStubsPtr->tcl_SetCommandInfo) /* 226 */
2967 #define Tcl_SetErrno \
2968 (tclStubsPtr->tcl_SetErrno) /* 227 */
2969 #define Tcl_SetErrorCode \
2970 (tclStubsPtr->tcl_SetErrorCode) /* 228 */
2971 #define Tcl_SetMaxBlockTime \
2972 (tclStubsPtr->tcl_SetMaxBlockTime) /* 229 */
2973 #define Tcl_SetPanicProc \
2974 (tclStubsPtr->tcl_SetPanicProc) /* 230 */
2975 #define Tcl_SetRecursionLimit \
2976 (tclStubsPtr->tcl_SetRecursionLimit) /* 231 */
2977 #define Tcl_SetResult \
2978 (tclStubsPtr->tcl_SetResult) /* 232 */
2979 #define Tcl_SetServiceMode \
2980 (tclStubsPtr->tcl_SetServiceMode) /* 233 */
2981 #define Tcl_SetObjErrorCode \
2982 (tclStubsPtr->tcl_SetObjErrorCode) /* 234 */
2983 #define Tcl_SetObjResult \
2984 (tclStubsPtr->tcl_SetObjResult) /* 235 */
2985 #define Tcl_SetStdChannel \
2986 (tclStubsPtr->tcl_SetStdChannel) /* 236 */
2987 #define Tcl_SetVar \
2988 (tclStubsPtr->tcl_SetVar) /* 237 */
2989 #define Tcl_SetVar2 \
2990 (tclStubsPtr->tcl_SetVar2) /* 238 */
2991 #define Tcl_SignalId \
2992 (tclStubsPtr->tcl_SignalId) /* 239 */
2993 #define Tcl_SignalMsg \
2994 (tclStubsPtr->tcl_SignalMsg) /* 240 */
2995 #define Tcl_SourceRCFile \
2996 (tclStubsPtr->tcl_SourceRCFile) /* 241 */
2997 #define Tcl_SplitList \
2998 (tclStubsPtr->tcl_SplitList) /* 242 */
2999 #define Tcl_SplitPath \
3000 (tclStubsPtr->tcl_SplitPath) /* 243 */
3001 #define Tcl_StaticPackage \
3002 (tclStubsPtr->tcl_StaticPackage) /* 244 */
3003 #define Tcl_StringMatch \
3004 (tclStubsPtr->tcl_StringMatch) /* 245 */
3005 #define Tcl_TellOld \
3006 (tclStubsPtr->tcl_TellOld) /* 246 */
3007 #define Tcl_TraceVar \
3008 (tclStubsPtr->tcl_TraceVar) /* 247 */
3009 #define Tcl_TraceVar2 \
3010 (tclStubsPtr->tcl_TraceVar2) /* 248 */
3011 #define Tcl_TranslateFileName \
3012 (tclStubsPtr->tcl_TranslateFileName) /* 249 */
3013 #define Tcl_Ungets \
3014 (tclStubsPtr->tcl_Ungets) /* 250 */
3015 #define Tcl_UnlinkVar \
3016 (tclStubsPtr->tcl_UnlinkVar) /* 251 */
3017 #define Tcl_UnregisterChannel \
3018 (tclStubsPtr->tcl_UnregisterChannel) /* 252 */
3019 #define Tcl_UnsetVar \
3020 (tclStubsPtr->tcl_UnsetVar) /* 253 */
3021 #define Tcl_UnsetVar2 \
3022 (tclStubsPtr->tcl_UnsetVar2) /* 254 */
3023 #define Tcl_UntraceVar \
3024 (tclStubsPtr->tcl_UntraceVar) /* 255 */
3025 #define Tcl_UntraceVar2 \
3026 (tclStubsPtr->tcl_UntraceVar2) /* 256 */
3027 #define Tcl_UpdateLinkedVar \
3028 (tclStubsPtr->tcl_UpdateLinkedVar) /* 257 */
3029 #define Tcl_UpVar \
3030 (tclStubsPtr->tcl_UpVar) /* 258 */
3031 #define Tcl_UpVar2 \
3032 (tclStubsPtr->tcl_UpVar2) /* 259 */
3033 #define Tcl_VarEval \
3034 (tclStubsPtr->tcl_VarEval) /* 260 */
3035 #define Tcl_VarTraceInfo \
3036 (tclStubsPtr->tcl_VarTraceInfo) /* 261 */
3037 #define Tcl_VarTraceInfo2 \
3038 (tclStubsPtr->tcl_VarTraceInfo2) /* 262 */
3039 #define Tcl_Write \
3040 (tclStubsPtr->tcl_Write) /* 263 */
3041 #define Tcl_WrongNumArgs \
3042 (tclStubsPtr->tcl_WrongNumArgs) /* 264 */
3043 #define Tcl_DumpActiveMemory \
3044 (tclStubsPtr->tcl_DumpActiveMemory) /* 265 */
3045 #define Tcl_ValidateAllMemory \
3046 (tclStubsPtr->tcl_ValidateAllMemory) /* 266 */
3047 #define Tcl_AppendResultVA \
3048 (tclStubsPtr->tcl_AppendResultVA) /* 267 */
3049 #define Tcl_AppendStringsToObjVA \
3050 (tclStubsPtr->tcl_AppendStringsToObjVA) /* 268 */
3051 #define Tcl_HashStats \
3052 (tclStubsPtr->tcl_HashStats) /* 269 */
3053 #define Tcl_ParseVar \
3054 (tclStubsPtr->tcl_ParseVar) /* 270 */
3055 #define Tcl_PkgPresent \
3056 (tclStubsPtr->tcl_PkgPresent) /* 271 */
3057 #define Tcl_PkgPresentEx \
3058 (tclStubsPtr->tcl_PkgPresentEx) /* 272 */
3059 #define Tcl_PkgProvide \
3060 (tclStubsPtr->tcl_PkgProvide) /* 273 */
3061 #define Tcl_PkgRequire \
3062 (tclStubsPtr->tcl_PkgRequire) /* 274 */
3063 #define Tcl_SetErrorCodeVA \
3064 (tclStubsPtr->tcl_SetErrorCodeVA) /* 275 */
3065 #define Tcl_VarEvalVA \
3066 (tclStubsPtr->tcl_VarEvalVA) /* 276 */
3067 #define Tcl_WaitPid \
3068 (tclStubsPtr->tcl_WaitPid) /* 277 */
3069 #define Tcl_PanicVA \
3070 (tclStubsPtr->tcl_PanicVA) /* 278 */
3071 #define Tcl_GetVersion \
3072 (tclStubsPtr->tcl_GetVersion) /* 279 */
3073 #define Tcl_InitMemory \
3074 (tclStubsPtr->tcl_InitMemory) /* 280 */
3075 #define Tcl_StackChannel \
3076 (tclStubsPtr->tcl_StackChannel) /* 281 */
3077 #define Tcl_UnstackChannel \
3078 (tclStubsPtr->tcl_UnstackChannel) /* 282 */
3079 #define Tcl_GetStackedChannel \
3080 (tclStubsPtr->tcl_GetStackedChannel) /* 283 */
3081 #define Tcl_SetMainLoop \
3082 (tclStubsPtr->tcl_SetMainLoop) /* 284 */
3083 /* Slot 285 is reserved */
3084 #define Tcl_AppendObjToObj \
3085 (tclStubsPtr->tcl_AppendObjToObj) /* 286 */
3086 #define Tcl_CreateEncoding \
3087 (tclStubsPtr->tcl_CreateEncoding) /* 287 */
3088 #define Tcl_CreateThreadExitHandler \
3089 (tclStubsPtr->tcl_CreateThreadExitHandler) /* 288 */
3090 #define Tcl_DeleteThreadExitHandler \
3091 (tclStubsPtr->tcl_DeleteThreadExitHandler) /* 289 */
3092 #define Tcl_DiscardResult \
3093 (tclStubsPtr->tcl_DiscardResult) /* 290 */
3094 #define Tcl_EvalEx \
3095 (tclStubsPtr->tcl_EvalEx) /* 291 */
3096 #define Tcl_EvalObjv \
3097 (tclStubsPtr->tcl_EvalObjv) /* 292 */
3098 #define Tcl_EvalObjEx \
3099 (tclStubsPtr->tcl_EvalObjEx) /* 293 */
3100 #define Tcl_ExitThread \
3101 (tclStubsPtr->tcl_ExitThread) /* 294 */
3102 #define Tcl_ExternalToUtf \
3103 (tclStubsPtr->tcl_ExternalToUtf) /* 295 */
3104 #define Tcl_ExternalToUtfDString \
3105 (tclStubsPtr->tcl_ExternalToUtfDString) /* 296 */
3106 #define Tcl_FinalizeThread \
3107 (tclStubsPtr->tcl_FinalizeThread) /* 297 */
3108 #define Tcl_FinalizeNotifier \
3109 (tclStubsPtr->tcl_FinalizeNotifier) /* 298 */
3110 #define Tcl_FreeEncoding \
3111 (tclStubsPtr->tcl_FreeEncoding) /* 299 */
3112 #define Tcl_GetCurrentThread \
3113 (tclStubsPtr->tcl_GetCurrentThread) /* 300 */
3114 #define Tcl_GetEncoding \
3115 (tclStubsPtr->tcl_GetEncoding) /* 301 */
3116 #define Tcl_GetEncodingName \
3117 (tclStubsPtr->tcl_GetEncodingName) /* 302 */
3118 #define Tcl_GetEncodingNames \
3119 (tclStubsPtr->tcl_GetEncodingNames) /* 303 */
3120 #define Tcl_GetIndexFromObjStruct \
3121 (tclStubsPtr->tcl_GetIndexFromObjStruct) /* 304 */
3122 #define Tcl_GetThreadData \
3123 (tclStubsPtr->tcl_GetThreadData) /* 305 */
3124 #define Tcl_GetVar2Ex \
3125 (tclStubsPtr->tcl_GetVar2Ex) /* 306 */
3126 #define Tcl_InitNotifier \
3127 (tclStubsPtr->tcl_InitNotifier) /* 307 */
3128 #define Tcl_MutexLock \
3129 (tclStubsPtr->tcl_MutexLock) /* 308 */
3130 #define Tcl_MutexUnlock \
3131 (tclStubsPtr->tcl_MutexUnlock) /* 309 */
3132 #define Tcl_ConditionNotify \
3133 (tclStubsPtr->tcl_ConditionNotify) /* 310 */
3134 #define Tcl_ConditionWait \
3135 (tclStubsPtr->tcl_ConditionWait) /* 311 */
3136 #define Tcl_NumUtfChars \
3137 (tclStubsPtr->tcl_NumUtfChars) /* 312 */
3138 #define Tcl_ReadChars \
3139 (tclStubsPtr->tcl_ReadChars) /* 313 */
3140 #define Tcl_RestoreResult \
3141 (tclStubsPtr->tcl_RestoreResult) /* 314 */
3142 #define Tcl_SaveResult \
3143 (tclStubsPtr->tcl_SaveResult) /* 315 */
3144 #define Tcl_SetSystemEncoding \
3145 (tclStubsPtr->tcl_SetSystemEncoding) /* 316 */
3146 #define Tcl_SetVar2Ex \
3147 (tclStubsPtr->tcl_SetVar2Ex) /* 317 */
3148 #define Tcl_ThreadAlert \
3149 (tclStubsPtr->tcl_ThreadAlert) /* 318 */
3150 #define Tcl_ThreadQueueEvent \
3151 (tclStubsPtr->tcl_ThreadQueueEvent) /* 319 */
3152 #define Tcl_UniCharAtIndex \
3153 (tclStubsPtr->tcl_UniCharAtIndex) /* 320 */
3154 #define Tcl_UniCharToLower \
3155 (tclStubsPtr->tcl_UniCharToLower) /* 321 */
3156 #define Tcl_UniCharToTitle \
3157 (tclStubsPtr->tcl_UniCharToTitle) /* 322 */
3158 #define Tcl_UniCharToUpper \
3159 (tclStubsPtr->tcl_UniCharToUpper) /* 323 */
3160 #define Tcl_UniCharToUtf \
3161 (tclStubsPtr->tcl_UniCharToUtf) /* 324 */
3162 #define Tcl_UtfAtIndex \
3163 (tclStubsPtr->tcl_UtfAtIndex) /* 325 */
3164 #define Tcl_UtfCharComplete \
3165 (tclStubsPtr->tcl_UtfCharComplete) /* 326 */
3166 #define Tcl_UtfBackslash \
3167 (tclStubsPtr->tcl_UtfBackslash) /* 327 */
3168 #define Tcl_UtfFindFirst \
3169 (tclStubsPtr->tcl_UtfFindFirst) /* 328 */
3170 #define Tcl_UtfFindLast \
3171 (tclStubsPtr->tcl_UtfFindLast) /* 329 */
3172 #define Tcl_UtfNext \
3173 (tclStubsPtr->tcl_UtfNext) /* 330 */
3174 #define Tcl_UtfPrev \
3175 (tclStubsPtr->tcl_UtfPrev) /* 331 */
3176 #define Tcl_UtfToExternal \
3177 (tclStubsPtr->tcl_UtfToExternal) /* 332 */
3178 #define Tcl_UtfToExternalDString \
3179 (tclStubsPtr->tcl_UtfToExternalDString) /* 333 */
3180 #define Tcl_UtfToLower \
3181 (tclStubsPtr->tcl_UtfToLower) /* 334 */
3182 #define Tcl_UtfToTitle \
3183 (tclStubsPtr->tcl_UtfToTitle) /* 335 */
3184 #define Tcl_UtfToUniChar \
3185 (tclStubsPtr->tcl_UtfToUniChar) /* 336 */
3186 #define Tcl_UtfToUpper \
3187 (tclStubsPtr->tcl_UtfToUpper) /* 337 */
3188 #define Tcl_WriteChars \
3189 (tclStubsPtr->tcl_WriteChars) /* 338 */
3190 #define Tcl_WriteObj \
3191 (tclStubsPtr->tcl_WriteObj) /* 339 */
3192 #define Tcl_GetString \
3193 (tclStubsPtr->tcl_GetString) /* 340 */
3194 #define Tcl_GetDefaultEncodingDir \
3195 (tclStubsPtr->tcl_GetDefaultEncodingDir) /* 341 */
3196 #define Tcl_SetDefaultEncodingDir \
3197 (tclStubsPtr->tcl_SetDefaultEncodingDir) /* 342 */
3198 #define Tcl_AlertNotifier \
3199 (tclStubsPtr->tcl_AlertNotifier) /* 343 */
3200 #define Tcl_ServiceModeHook \
3201 (tclStubsPtr->tcl_ServiceModeHook) /* 344 */
3202 #define Tcl_UniCharIsAlnum \
3203 (tclStubsPtr->tcl_UniCharIsAlnum) /* 345 */
3204 #define Tcl_UniCharIsAlpha \
3205 (tclStubsPtr->tcl_UniCharIsAlpha) /* 346 */
3206 #define Tcl_UniCharIsDigit \
3207 (tclStubsPtr->tcl_UniCharIsDigit) /* 347 */
3208 #define Tcl_UniCharIsLower \
3209 (tclStubsPtr->tcl_UniCharIsLower) /* 348 */
3210 #define Tcl_UniCharIsSpace \
3211 (tclStubsPtr->tcl_UniCharIsSpace) /* 349 */
3212 #define Tcl_UniCharIsUpper \
3213 (tclStubsPtr->tcl_UniCharIsUpper) /* 350 */
3214 #define Tcl_UniCharIsWordChar \
3215 (tclStubsPtr->tcl_UniCharIsWordChar) /* 351 */
3216 #define Tcl_UniCharLen \
3217 (tclStubsPtr->tcl_UniCharLen) /* 352 */
3218 #define Tcl_UniCharNcmp \
3219 (tclStubsPtr->tcl_UniCharNcmp) /* 353 */
3220 #define Tcl_UniCharToUtfDString \
3221 (tclStubsPtr->tcl_UniCharToUtfDString) /* 354 */
3222 #define Tcl_UtfToUniCharDString \
3223 (tclStubsPtr->tcl_UtfToUniCharDString) /* 355 */
3224 #define Tcl_GetRegExpFromObj \
3225 (tclStubsPtr->tcl_GetRegExpFromObj) /* 356 */
3226 #define Tcl_EvalTokens \
3227 (tclStubsPtr->tcl_EvalTokens) /* 357 */
3228 #define Tcl_FreeParse \
3229 (tclStubsPtr->tcl_FreeParse) /* 358 */
3230 #define Tcl_LogCommandInfo \
3231 (tclStubsPtr->tcl_LogCommandInfo) /* 359 */
3232 #define Tcl_ParseBraces \
3233 (tclStubsPtr->tcl_ParseBraces) /* 360 */
3234 #define Tcl_ParseCommand \
3235 (tclStubsPtr->tcl_ParseCommand) /* 361 */
3236 #define Tcl_ParseExpr \
3237 (tclStubsPtr->tcl_ParseExpr) /* 362 */
3238 #define Tcl_ParseQuotedString \
3239 (tclStubsPtr->tcl_ParseQuotedString) /* 363 */
3240 #define Tcl_ParseVarName \
3241 (tclStubsPtr->tcl_ParseVarName) /* 364 */
3242 #define Tcl_GetCwd \
3243 (tclStubsPtr->tcl_GetCwd) /* 365 */
3244 #define Tcl_Chdir \
3245 (tclStubsPtr->tcl_Chdir) /* 366 */
3246 #define Tcl_Access \
3247 (tclStubsPtr->tcl_Access) /* 367 */
3248 #define Tcl_Stat \
3249 (tclStubsPtr->tcl_Stat) /* 368 */
3250 #define Tcl_UtfNcmp \
3251 (tclStubsPtr->tcl_UtfNcmp) /* 369 */
3252 #define Tcl_UtfNcasecmp \
3253 (tclStubsPtr->tcl_UtfNcasecmp) /* 370 */
3254 #define Tcl_StringCaseMatch \
3255 (tclStubsPtr->tcl_StringCaseMatch) /* 371 */
3256 #define Tcl_UniCharIsControl \
3257 (tclStubsPtr->tcl_UniCharIsControl) /* 372 */
3258 #define Tcl_UniCharIsGraph \
3259 (tclStubsPtr->tcl_UniCharIsGraph) /* 373 */
3260 #define Tcl_UniCharIsPrint \
3261 (tclStubsPtr->tcl_UniCharIsPrint) /* 374 */
3262 #define Tcl_UniCharIsPunct \
3263 (tclStubsPtr->tcl_UniCharIsPunct) /* 375 */
3264 #define Tcl_RegExpExecObj \
3265 (tclStubsPtr->tcl_RegExpExecObj) /* 376 */
3266 #define Tcl_RegExpGetInfo \
3267 (tclStubsPtr->tcl_RegExpGetInfo) /* 377 */
3268 #define Tcl_NewUnicodeObj \
3269 (tclStubsPtr->tcl_NewUnicodeObj) /* 378 */
3270 #define Tcl_SetUnicodeObj \
3271 (tclStubsPtr->tcl_SetUnicodeObj) /* 379 */
3272 #define Tcl_GetCharLength \
3273 (tclStubsPtr->tcl_GetCharLength) /* 380 */
3274 #define Tcl_GetUniChar \
3275 (tclStubsPtr->tcl_GetUniChar) /* 381 */
3276 #define Tcl_GetUnicode \
3277 (tclStubsPtr->tcl_GetUnicode) /* 382 */
3278 #define Tcl_GetRange \
3279 (tclStubsPtr->tcl_GetRange) /* 383 */
3280 #define Tcl_AppendUnicodeToObj \
3281 (tclStubsPtr->tcl_AppendUnicodeToObj) /* 384 */
3282 #define Tcl_RegExpMatchObj \
3283 (tclStubsPtr->tcl_RegExpMatchObj) /* 385 */
3284 #define Tcl_SetNotifier \
3285 (tclStubsPtr->tcl_SetNotifier) /* 386 */
3286 #define Tcl_GetAllocMutex \
3287 (tclStubsPtr->tcl_GetAllocMutex) /* 387 */
3288 #define Tcl_GetChannelNames \
3289 (tclStubsPtr->tcl_GetChannelNames) /* 388 */
3290 #define Tcl_GetChannelNamesEx \
3291 (tclStubsPtr->tcl_GetChannelNamesEx) /* 389 */
3292 #define Tcl_ProcObjCmd \
3293 (tclStubsPtr->tcl_ProcObjCmd) /* 390 */
3294 #define Tcl_ConditionFinalize \
3295 (tclStubsPtr->tcl_ConditionFinalize) /* 391 */
3296 #define Tcl_MutexFinalize \
3297 (tclStubsPtr->tcl_MutexFinalize) /* 392 */
3298 #define Tcl_CreateThread \
3299 (tclStubsPtr->tcl_CreateThread) /* 393 */
3300 #define Tcl_ReadRaw \
3301 (tclStubsPtr->tcl_ReadRaw) /* 394 */
3302 #define Tcl_WriteRaw \
3303 (tclStubsPtr->tcl_WriteRaw) /* 395 */
3304 #define Tcl_GetTopChannel \
3305 (tclStubsPtr->tcl_GetTopChannel) /* 396 */
3306 #define Tcl_ChannelBuffered \
3307 (tclStubsPtr->tcl_ChannelBuffered) /* 397 */
3308 #define Tcl_ChannelName \
3309 (tclStubsPtr->tcl_ChannelName) /* 398 */
3310 #define Tcl_ChannelVersion \
3311 (tclStubsPtr->tcl_ChannelVersion) /* 399 */
3312 #define Tcl_ChannelBlockModeProc \
3313 (tclStubsPtr->tcl_ChannelBlockModeProc) /* 400 */
3314 #define Tcl_ChannelCloseProc \
3315 (tclStubsPtr->tcl_ChannelCloseProc) /* 401 */
3316 #define Tcl_ChannelClose2Proc \
3317 (tclStubsPtr->tcl_ChannelClose2Proc) /* 402 */
3318 #define Tcl_ChannelInputProc \
3319 (tclStubsPtr->tcl_ChannelInputProc) /* 403 */
3320 #define Tcl_ChannelOutputProc \
3321 (tclStubsPtr->tcl_ChannelOutputProc) /* 404 */
3322 #define Tcl_ChannelSeekProc \
3323 (tclStubsPtr->tcl_ChannelSeekProc) /* 405 */
3324 #define Tcl_ChannelSetOptionProc \
3325 (tclStubsPtr->tcl_ChannelSetOptionProc) /* 406 */
3326 #define Tcl_ChannelGetOptionProc \
3327 (tclStubsPtr->tcl_ChannelGetOptionProc) /* 407 */
3328 #define Tcl_ChannelWatchProc \
3329 (tclStubsPtr->tcl_ChannelWatchProc) /* 408 */
3330 #define Tcl_ChannelGetHandleProc \
3331 (tclStubsPtr->tcl_ChannelGetHandleProc) /* 409 */
3332 #define Tcl_ChannelFlushProc \
3333 (tclStubsPtr->tcl_ChannelFlushProc) /* 410 */
3334 #define Tcl_ChannelHandlerProc \
3335 (tclStubsPtr->tcl_ChannelHandlerProc) /* 411 */
3336 #define Tcl_JoinThread \
3337 (tclStubsPtr->tcl_JoinThread) /* 412 */
3338 #define Tcl_IsChannelShared \
3339 (tclStubsPtr->tcl_IsChannelShared) /* 413 */
3340 #define Tcl_IsChannelRegistered \
3341 (tclStubsPtr->tcl_IsChannelRegistered) /* 414 */
3342 #define Tcl_CutChannel \
3343 (tclStubsPtr->tcl_CutChannel) /* 415 */
3344 #define Tcl_SpliceChannel \
3345 (tclStubsPtr->tcl_SpliceChannel) /* 416 */
3346 #define Tcl_ClearChannelHandlers \
3347 (tclStubsPtr->tcl_ClearChannelHandlers) /* 417 */
3348 #define Tcl_IsChannelExisting \
3349 (tclStubsPtr->tcl_IsChannelExisting) /* 418 */
3350 #define Tcl_UniCharNcasecmp \
3351 (tclStubsPtr->tcl_UniCharNcasecmp) /* 419 */
3352 #define Tcl_UniCharCaseMatch \
3353 (tclStubsPtr->tcl_UniCharCaseMatch) /* 420 */
3354 #define Tcl_FindHashEntry \
3355 (tclStubsPtr->tcl_FindHashEntry) /* 421 */
3356 #define Tcl_CreateHashEntry \
3357 (tclStubsPtr->tcl_CreateHashEntry) /* 422 */
3358 #define Tcl_InitCustomHashTable \
3359 (tclStubsPtr->tcl_InitCustomHashTable) /* 423 */
3360 #define Tcl_InitObjHashTable \
3361 (tclStubsPtr->tcl_InitObjHashTable) /* 424 */
3362 #define Tcl_CommandTraceInfo \
3363 (tclStubsPtr->tcl_CommandTraceInfo) /* 425 */
3364 #define Tcl_TraceCommand \
3365 (tclStubsPtr->tcl_TraceCommand) /* 426 */
3366 #define Tcl_UntraceCommand \
3367 (tclStubsPtr->tcl_UntraceCommand) /* 427 */
3368 #define Tcl_AttemptAlloc \
3369 (tclStubsPtr->tcl_AttemptAlloc) /* 428 */
3370 #define Tcl_AttemptDbCkalloc \
3371 (tclStubsPtr->tcl_AttemptDbCkalloc) /* 429 */
3372 #define Tcl_AttemptRealloc \
3373 (tclStubsPtr->tcl_AttemptRealloc) /* 430 */
3374 #define Tcl_AttemptDbCkrealloc \
3375 (tclStubsPtr->tcl_AttemptDbCkrealloc) /* 431 */
3376 #define Tcl_AttemptSetObjLength \
3377 (tclStubsPtr->tcl_AttemptSetObjLength) /* 432 */
3378 #define Tcl_GetChannelThread \
3379 (tclStubsPtr->tcl_GetChannelThread) /* 433 */
3380 #define Tcl_GetUnicodeFromObj \
3381 (tclStubsPtr->tcl_GetUnicodeFromObj) /* 434 */
3382 #define Tcl_GetMathFuncInfo \
3383 (tclStubsPtr->tcl_GetMathFuncInfo) /* 435 */
3384 #define Tcl_ListMathFuncs \
3385 (tclStubsPtr->tcl_ListMathFuncs) /* 436 */
3386 #define Tcl_SubstObj \
3387 (tclStubsPtr->tcl_SubstObj) /* 437 */
3388 #define Tcl_DetachChannel \
3389 (tclStubsPtr->tcl_DetachChannel) /* 438 */
3390 #define Tcl_IsStandardChannel \
3391 (tclStubsPtr->tcl_IsStandardChannel) /* 439 */
3392 #define Tcl_FSCopyFile \
3393 (tclStubsPtr->tcl_FSCopyFile) /* 440 */
3394 #define Tcl_FSCopyDirectory \
3395 (tclStubsPtr->tcl_FSCopyDirectory) /* 441 */
3396 #define Tcl_FSCreateDirectory \
3397 (tclStubsPtr->tcl_FSCreateDirectory) /* 442 */
3398 #define Tcl_FSDeleteFile \
3399 (tclStubsPtr->tcl_FSDeleteFile) /* 443 */
3400 #define Tcl_FSLoadFile \
3401 (tclStubsPtr->tcl_FSLoadFile) /* 444 */
3402 #define Tcl_FSMatchInDirectory \
3403 (tclStubsPtr->tcl_FSMatchInDirectory) /* 445 */
3404 #define Tcl_FSLink \
3405 (tclStubsPtr->tcl_FSLink) /* 446 */
3406 #define Tcl_FSRemoveDirectory \
3407 (tclStubsPtr->tcl_FSRemoveDirectory) /* 447 */
3408 #define Tcl_FSRenameFile \
3409 (tclStubsPtr->tcl_FSRenameFile) /* 448 */
3410 #define Tcl_FSLstat \
3411 (tclStubsPtr->tcl_FSLstat) /* 449 */
3412 #define Tcl_FSUtime \
3413 (tclStubsPtr->tcl_FSUtime) /* 450 */
3414 #define Tcl_FSFileAttrsGet \
3415 (tclStubsPtr->tcl_FSFileAttrsGet) /* 451 */
3416 #define Tcl_FSFileAttrsSet \
3417 (tclStubsPtr->tcl_FSFileAttrsSet) /* 452 */
3418 #define Tcl_FSFileAttrStrings \
3419 (tclStubsPtr->tcl_FSFileAttrStrings) /* 453 */
3420 #define Tcl_FSStat \
3421 (tclStubsPtr->tcl_FSStat) /* 454 */
3422 #define Tcl_FSAccess \
3423 (tclStubsPtr->tcl_FSAccess) /* 455 */
3424 #define Tcl_FSOpenFileChannel \
3425 (tclStubsPtr->tcl_FSOpenFileChannel) /* 456 */
3426 #define Tcl_FSGetCwd \
3427 (tclStubsPtr->tcl_FSGetCwd) /* 457 */
3428 #define Tcl_FSChdir \
3429 (tclStubsPtr->tcl_FSChdir) /* 458 */
3430 #define Tcl_FSConvertToPathType \
3431 (tclStubsPtr->tcl_FSConvertToPathType) /* 459 */
3432 #define Tcl_FSJoinPath \
3433 (tclStubsPtr->tcl_FSJoinPath) /* 460 */
3434 #define Tcl_FSSplitPath \
3435 (tclStubsPtr->tcl_FSSplitPath) /* 461 */
3436 #define Tcl_FSEqualPaths \
3437 (tclStubsPtr->tcl_FSEqualPaths) /* 462 */
3438 #define Tcl_FSGetNormalizedPath \
3439 (tclStubsPtr->tcl_FSGetNormalizedPath) /* 463 */
3440 #define Tcl_FSJoinToPath \
3441 (tclStubsPtr->tcl_FSJoinToPath) /* 464 */
3442 #define Tcl_FSGetInternalRep \
3443 (tclStubsPtr->tcl_FSGetInternalRep) /* 465 */
3444 #define Tcl_FSGetTranslatedPath \
3445 (tclStubsPtr->tcl_FSGetTranslatedPath) /* 466 */
3446 #define Tcl_FSEvalFile \
3447 (tclStubsPtr->tcl_FSEvalFile) /* 467 */
3448 #define Tcl_FSNewNativePath \
3449 (tclStubsPtr->tcl_FSNewNativePath) /* 468 */
3450 #define Tcl_FSGetNativePath \
3451 (tclStubsPtr->tcl_FSGetNativePath) /* 469 */
3452 #define Tcl_FSFileSystemInfo \
3453 (tclStubsPtr->tcl_FSFileSystemInfo) /* 470 */
3454 #define Tcl_FSPathSeparator \
3455 (tclStubsPtr->tcl_FSPathSeparator) /* 471 */
3456 #define Tcl_FSListVolumes \
3457 (tclStubsPtr->tcl_FSListVolumes) /* 472 */
3458 #define Tcl_FSRegister \
3459 (tclStubsPtr->tcl_FSRegister) /* 473 */
3460 #define Tcl_FSUnregister \
3461 (tclStubsPtr->tcl_FSUnregister) /* 474 */
3462 #define Tcl_FSData \
3463 (tclStubsPtr->tcl_FSData) /* 475 */
3464 #define Tcl_FSGetTranslatedStringPath \
3465 (tclStubsPtr->tcl_FSGetTranslatedStringPath) /* 476 */
3466 #define Tcl_FSGetFileSystemForPath \
3467 (tclStubsPtr->tcl_FSGetFileSystemForPath) /* 477 */
3468 #define Tcl_FSGetPathType \
3469 (tclStubsPtr->tcl_FSGetPathType) /* 478 */
3470 #define Tcl_OutputBuffered \
3471 (tclStubsPtr->tcl_OutputBuffered) /* 479 */
3472 #define Tcl_FSMountsChanged \
3473 (tclStubsPtr->tcl_FSMountsChanged) /* 480 */
3474 #define Tcl_EvalTokensStandard \
3475 (tclStubsPtr->tcl_EvalTokensStandard) /* 481 */
3476 #define Tcl_GetTime \
3477 (tclStubsPtr->tcl_GetTime) /* 482 */
3478 #define Tcl_CreateObjTrace \
3479 (tclStubsPtr->tcl_CreateObjTrace) /* 483 */
3480 #define Tcl_GetCommandInfoFromToken \
3481 (tclStubsPtr->tcl_GetCommandInfoFromToken) /* 484 */
3482 #define Tcl_SetCommandInfoFromToken \
3483 (tclStubsPtr->tcl_SetCommandInfoFromToken) /* 485 */
3484 #define Tcl_DbNewWideIntObj \
3485 (tclStubsPtr->tcl_DbNewWideIntObj) /* 486 */
3486 #define Tcl_GetWideIntFromObj \
3487 (tclStubsPtr->tcl_GetWideIntFromObj) /* 487 */
3488 #define Tcl_NewWideIntObj \
3489 (tclStubsPtr->tcl_NewWideIntObj) /* 488 */
3490 #define Tcl_SetWideIntObj \
3491 (tclStubsPtr->tcl_SetWideIntObj) /* 489 */
3492 #define Tcl_AllocStatBuf \
3493 (tclStubsPtr->tcl_AllocStatBuf) /* 490 */
3494 #define Tcl_Seek \
3495 (tclStubsPtr->tcl_Seek) /* 491 */
3496 #define Tcl_Tell \
3497 (tclStubsPtr->tcl_Tell) /* 492 */
3498 #define Tcl_ChannelWideSeekProc \
3499 (tclStubsPtr->tcl_ChannelWideSeekProc) /* 493 */
3500 #define Tcl_DictObjPut \
3501 (tclStubsPtr->tcl_DictObjPut) /* 494 */
3502 #define Tcl_DictObjGet \
3503 (tclStubsPtr->tcl_DictObjGet) /* 495 */
3504 #define Tcl_DictObjRemove \
3505 (tclStubsPtr->tcl_DictObjRemove) /* 496 */
3506 #define Tcl_DictObjSize \
3507 (tclStubsPtr->tcl_DictObjSize) /* 497 */
3508 #define Tcl_DictObjFirst \
3509 (tclStubsPtr->tcl_DictObjFirst) /* 498 */
3510 #define Tcl_DictObjNext \
3511 (tclStubsPtr->tcl_DictObjNext) /* 499 */
3512 #define Tcl_DictObjDone \
3513 (tclStubsPtr->tcl_DictObjDone) /* 500 */
3514 #define Tcl_DictObjPutKeyList \
3515 (tclStubsPtr->tcl_DictObjPutKeyList) /* 501 */
3516 #define Tcl_DictObjRemoveKeyList \
3517 (tclStubsPtr->tcl_DictObjRemoveKeyList) /* 502 */
3518 #define Tcl_NewDictObj \
3519 (tclStubsPtr->tcl_NewDictObj) /* 503 */
3520 #define Tcl_DbNewDictObj \
3521 (tclStubsPtr->tcl_DbNewDictObj) /* 504 */
3522 #define Tcl_RegisterConfig \
3523 (tclStubsPtr->tcl_RegisterConfig) /* 505 */
3524 #define Tcl_CreateNamespace \
3525 (tclStubsPtr->tcl_CreateNamespace) /* 506 */
3526 #define Tcl_DeleteNamespace \
3527 (tclStubsPtr->tcl_DeleteNamespace) /* 507 */
3528 #define Tcl_AppendExportList \
3529 (tclStubsPtr->tcl_AppendExportList) /* 508 */
3530 #define Tcl_Export \
3531 (tclStubsPtr->tcl_Export) /* 509 */
3532 #define Tcl_Import \
3533 (tclStubsPtr->tcl_Import) /* 510 */
3534 #define Tcl_ForgetImport \
3535 (tclStubsPtr->tcl_ForgetImport) /* 511 */
3536 #define Tcl_GetCurrentNamespace \
3537 (tclStubsPtr->tcl_GetCurrentNamespace) /* 512 */
3538 #define Tcl_GetGlobalNamespace \
3539 (tclStubsPtr->tcl_GetGlobalNamespace) /* 513 */
3540 #define Tcl_FindNamespace \
3541 (tclStubsPtr->tcl_FindNamespace) /* 514 */
3542 #define Tcl_FindCommand \
3543 (tclStubsPtr->tcl_FindCommand) /* 515 */
3544 #define Tcl_GetCommandFromObj \
3545 (tclStubsPtr->tcl_GetCommandFromObj) /* 516 */
3546 #define Tcl_GetCommandFullName \
3547 (tclStubsPtr->tcl_GetCommandFullName) /* 517 */
3548 #define Tcl_FSEvalFileEx \
3549 (tclStubsPtr->tcl_FSEvalFileEx) /* 518 */
3550 #define Tcl_SetExitProc \
3551 (tclStubsPtr->tcl_SetExitProc) /* 519 */
3552 #define Tcl_LimitAddHandler \
3553 (tclStubsPtr->tcl_LimitAddHandler) /* 520 */
3554 #define Tcl_LimitRemoveHandler \
3555 (tclStubsPtr->tcl_LimitRemoveHandler) /* 521 */
3556 #define Tcl_LimitReady \
3557 (tclStubsPtr->tcl_LimitReady) /* 522 */
3558 #define Tcl_LimitCheck \
3559 (tclStubsPtr->tcl_LimitCheck) /* 523 */
3560 #define Tcl_LimitExceeded \
3561 (tclStubsPtr->tcl_LimitExceeded) /* 524 */
3562 #define Tcl_LimitSetCommands \
3563 (tclStubsPtr->tcl_LimitSetCommands) /* 525 */
3564 #define Tcl_LimitSetTime \
3565 (tclStubsPtr->tcl_LimitSetTime) /* 526 */
3566 #define Tcl_LimitSetGranularity \
3567 (tclStubsPtr->tcl_LimitSetGranularity) /* 527 */
3568 #define Tcl_LimitTypeEnabled \
3569 (tclStubsPtr->tcl_LimitTypeEnabled) /* 528 */
3570 #define Tcl_LimitTypeExceeded \
3571 (tclStubsPtr->tcl_LimitTypeExceeded) /* 529 */
3572 #define Tcl_LimitTypeSet \
3573 (tclStubsPtr->tcl_LimitTypeSet) /* 530 */
3574 #define Tcl_LimitTypeReset \
3575 (tclStubsPtr->tcl_LimitTypeReset) /* 531 */
3576 #define Tcl_LimitGetCommands \
3577 (tclStubsPtr->tcl_LimitGetCommands) /* 532 */
3578 #define Tcl_LimitGetTime \
3579 (tclStubsPtr->tcl_LimitGetTime) /* 533 */
3580 #define Tcl_LimitGetGranularity \
3581 (tclStubsPtr->tcl_LimitGetGranularity) /* 534 */
3582 #define Tcl_SaveInterpState \
3583 (tclStubsPtr->tcl_SaveInterpState) /* 535 */
3584 #define Tcl_RestoreInterpState \
3585 (tclStubsPtr->tcl_RestoreInterpState) /* 536 */
3586 #define Tcl_DiscardInterpState \
3587 (tclStubsPtr->tcl_DiscardInterpState) /* 537 */
3588 #define Tcl_SetReturnOptions \
3589 (tclStubsPtr->tcl_SetReturnOptions) /* 538 */
3590 #define Tcl_GetReturnOptions \
3591 (tclStubsPtr->tcl_GetReturnOptions) /* 539 */
3592 #define Tcl_IsEnsemble \
3593 (tclStubsPtr->tcl_IsEnsemble) /* 540 */
3594 #define Tcl_CreateEnsemble \
3595 (tclStubsPtr->tcl_CreateEnsemble) /* 541 */
3596 #define Tcl_FindEnsemble \
3597 (tclStubsPtr->tcl_FindEnsemble) /* 542 */
3598 #define Tcl_SetEnsembleSubcommandList \
3599 (tclStubsPtr->tcl_SetEnsembleSubcommandList) /* 543 */
3600 #define Tcl_SetEnsembleMappingDict \
3601 (tclStubsPtr->tcl_SetEnsembleMappingDict) /* 544 */
3602 #define Tcl_SetEnsembleUnknownHandler \
3603 (tclStubsPtr->tcl_SetEnsembleUnknownHandler) /* 545 */
3604 #define Tcl_SetEnsembleFlags \
3605 (tclStubsPtr->tcl_SetEnsembleFlags) /* 546 */
3606 #define Tcl_GetEnsembleSubcommandList \
3607 (tclStubsPtr->tcl_GetEnsembleSubcommandList) /* 547 */
3608 #define Tcl_GetEnsembleMappingDict \
3609 (tclStubsPtr->tcl_GetEnsembleMappingDict) /* 548 */
3610 #define Tcl_GetEnsembleUnknownHandler \
3611 (tclStubsPtr->tcl_GetEnsembleUnknownHandler) /* 549 */
3612 #define Tcl_GetEnsembleFlags \
3613 (tclStubsPtr->tcl_GetEnsembleFlags) /* 550 */
3614 #define Tcl_GetEnsembleNamespace \
3615 (tclStubsPtr->tcl_GetEnsembleNamespace) /* 551 */
3616 #define Tcl_SetTimeProc \
3617 (tclStubsPtr->tcl_SetTimeProc) /* 552 */
3618 #define Tcl_QueryTimeProc \
3619 (tclStubsPtr->tcl_QueryTimeProc) /* 553 */
3620 #define Tcl_ChannelThreadActionProc \
3621 (tclStubsPtr->tcl_ChannelThreadActionProc) /* 554 */
3622 #define Tcl_NewBignumObj \
3623 (tclStubsPtr->tcl_NewBignumObj) /* 555 */
3624 #define Tcl_DbNewBignumObj \
3625 (tclStubsPtr->tcl_DbNewBignumObj) /* 556 */
3626 #define Tcl_SetBignumObj \
3627 (tclStubsPtr->tcl_SetBignumObj) /* 557 */
3628 #define Tcl_GetBignumFromObj \
3629 (tclStubsPtr->tcl_GetBignumFromObj) /* 558 */
3630 #define Tcl_TakeBignumFromObj \
3631 (tclStubsPtr->tcl_TakeBignumFromObj) /* 559 */
3632 #define Tcl_TruncateChannel \
3633 (tclStubsPtr->tcl_TruncateChannel) /* 560 */
3634 #define Tcl_ChannelTruncateProc \
3635 (tclStubsPtr->tcl_ChannelTruncateProc) /* 561 */
3636 #define Tcl_SetChannelErrorInterp \
3637 (tclStubsPtr->tcl_SetChannelErrorInterp) /* 562 */
3638 #define Tcl_GetChannelErrorInterp \
3639 (tclStubsPtr->tcl_GetChannelErrorInterp) /* 563 */
3640 #define Tcl_SetChannelError \
3641 (tclStubsPtr->tcl_SetChannelError) /* 564 */
3642 #define Tcl_GetChannelError \
3643 (tclStubsPtr->tcl_GetChannelError) /* 565 */
3644 #define Tcl_InitBignumFromDouble \
3645 (tclStubsPtr->tcl_InitBignumFromDouble) /* 566 */
3646 #define Tcl_GetNamespaceUnknownHandler \
3647 (tclStubsPtr->tcl_GetNamespaceUnknownHandler) /* 567 */
3648 #define Tcl_SetNamespaceUnknownHandler \
3649 (tclStubsPtr->tcl_SetNamespaceUnknownHandler) /* 568 */
3650 #define Tcl_GetEncodingFromObj \
3651 (tclStubsPtr->tcl_GetEncodingFromObj) /* 569 */
3652 #define Tcl_GetEncodingSearchPath \
3653 (tclStubsPtr->tcl_GetEncodingSearchPath) /* 570 */
3654 #define Tcl_SetEncodingSearchPath \
3655 (tclStubsPtr->tcl_SetEncodingSearchPath) /* 571 */
3656 #define Tcl_GetEncodingNameFromEnvironment \
3657 (tclStubsPtr->tcl_GetEncodingNameFromEnvironment) /* 572 */
3658 #define Tcl_PkgRequireProc \
3659 (tclStubsPtr->tcl_PkgRequireProc) /* 573 */
3660 #define Tcl_AppendObjToErrorInfo \
3661 (tclStubsPtr->tcl_AppendObjToErrorInfo) /* 574 */
3662 #define Tcl_AppendLimitedToObj \
3663 (tclStubsPtr->tcl_AppendLimitedToObj) /* 575 */
3664 #define Tcl_Format \
3665 (tclStubsPtr->tcl_Format) /* 576 */
3666 #define Tcl_AppendFormatToObj \
3667 (tclStubsPtr->tcl_AppendFormatToObj) /* 577 */
3668 #define Tcl_ObjPrintf \
3669 (tclStubsPtr->tcl_ObjPrintf) /* 578 */
3670 #define Tcl_AppendPrintfToObj \
3671 (tclStubsPtr->tcl_AppendPrintfToObj) /* 579 */
3672 #define Tcl_CancelEval \
3673 (tclStubsPtr->tcl_CancelEval) /* 580 */
3674 #define Tcl_Canceled \
3675 (tclStubsPtr->tcl_Canceled) /* 581 */
3676 #define Tcl_CreatePipe \
3677 (tclStubsPtr->tcl_CreatePipe) /* 582 */
3678 #define Tcl_NRCreateCommand \
3679 (tclStubsPtr->tcl_NRCreateCommand) /* 583 */
3680 #define Tcl_NREvalObj \
3681 (tclStubsPtr->tcl_NREvalObj) /* 584 */
3682 #define Tcl_NREvalObjv \
3683 (tclStubsPtr->tcl_NREvalObjv) /* 585 */
3684 #define Tcl_NRCmdSwap \
3685 (tclStubsPtr->tcl_NRCmdSwap) /* 586 */
3686 #define Tcl_NRAddCallback \
3687 (tclStubsPtr->tcl_NRAddCallback) /* 587 */
3688 #define Tcl_NRCallObjProc \
3689 (tclStubsPtr->tcl_NRCallObjProc) /* 588 */
3690 #define Tcl_GetFSDeviceFromStat \
3691 (tclStubsPtr->tcl_GetFSDeviceFromStat) /* 589 */
3692 #define Tcl_GetFSInodeFromStat \
3693 (tclStubsPtr->tcl_GetFSInodeFromStat) /* 590 */
3694 #define Tcl_GetModeFromStat \
3695 (tclStubsPtr->tcl_GetModeFromStat) /* 591 */
3696 #define Tcl_GetLinkCountFromStat \
3697 (tclStubsPtr->tcl_GetLinkCountFromStat) /* 592 */
3698 #define Tcl_GetUserIdFromStat \
3699 (tclStubsPtr->tcl_GetUserIdFromStat) /* 593 */
3700 #define Tcl_GetGroupIdFromStat \
3701 (tclStubsPtr->tcl_GetGroupIdFromStat) /* 594 */
3702 #define Tcl_GetDeviceTypeFromStat \
3703 (tclStubsPtr->tcl_GetDeviceTypeFromStat) /* 595 */
3704 #define Tcl_GetAccessTimeFromStat \
3705 (tclStubsPtr->tcl_GetAccessTimeFromStat) /* 596 */
3706 #define Tcl_GetModificationTimeFromStat \
3707 (tclStubsPtr->tcl_GetModificationTimeFromStat) /* 597 */
3708 #define Tcl_GetChangeTimeFromStat \
3709 (tclStubsPtr->tcl_GetChangeTimeFromStat) /* 598 */
3710 #define Tcl_GetSizeFromStat \
3711 (tclStubsPtr->tcl_GetSizeFromStat) /* 599 */
3712 #define Tcl_GetBlocksFromStat \
3713 (tclStubsPtr->tcl_GetBlocksFromStat) /* 600 */
3714 #define Tcl_GetBlockSizeFromStat \
3715 (tclStubsPtr->tcl_GetBlockSizeFromStat) /* 601 */
3716 #define Tcl_SetEnsembleParameterList \
3717 (tclStubsPtr->tcl_SetEnsembleParameterList) /* 602 */
3718 #define Tcl_GetEnsembleParameterList \
3719 (tclStubsPtr->tcl_GetEnsembleParameterList) /* 603 */
3720 #define Tcl_ParseArgsObjv \
3721 (tclStubsPtr->tcl_ParseArgsObjv) /* 604 */
3722 #define Tcl_GetErrorLine \
3723 (tclStubsPtr->tcl_GetErrorLine) /* 605 */
3724 #define Tcl_SetErrorLine \
3725 (tclStubsPtr->tcl_SetErrorLine) /* 606 */
3726 #define Tcl_TransferResult \
3727 (tclStubsPtr->tcl_TransferResult) /* 607 */
3728 #define Tcl_InterpActive \
3729 (tclStubsPtr->tcl_InterpActive) /* 608 */
3730 #define Tcl_BackgroundException \
3731 (tclStubsPtr->tcl_BackgroundException) /* 609 */
3732 #define Tcl_ZlibDeflate \
3733 (tclStubsPtr->tcl_ZlibDeflate) /* 610 */
3734 #define Tcl_ZlibInflate \
3735 (tclStubsPtr->tcl_ZlibInflate) /* 611 */
3736 #define Tcl_ZlibCRC32 \
3737 (tclStubsPtr->tcl_ZlibCRC32) /* 612 */
3738 #define Tcl_ZlibAdler32 \
3739 (tclStubsPtr->tcl_ZlibAdler32) /* 613 */
3740 #define Tcl_ZlibStreamInit \
3741 (tclStubsPtr->tcl_ZlibStreamInit) /* 614 */
3742 #define Tcl_ZlibStreamGetCommandName \
3743 (tclStubsPtr->tcl_ZlibStreamGetCommandName) /* 615 */
3744 #define Tcl_ZlibStreamEof \
3745 (tclStubsPtr->tcl_ZlibStreamEof) /* 616 */
3746 #define Tcl_ZlibStreamChecksum \
3747 (tclStubsPtr->tcl_ZlibStreamChecksum) /* 617 */
3748 #define Tcl_ZlibStreamPut \
3749 (tclStubsPtr->tcl_ZlibStreamPut) /* 618 */
3750 #define Tcl_ZlibStreamGet \
3751 (tclStubsPtr->tcl_ZlibStreamGet) /* 619 */
3752 #define Tcl_ZlibStreamClose \
3753 (tclStubsPtr->tcl_ZlibStreamClose) /* 620 */
3754 #define Tcl_ZlibStreamReset \
3755 (tclStubsPtr->tcl_ZlibStreamReset) /* 621 */
3756 #define Tcl_SetStartupScript \
3757 (tclStubsPtr->tcl_SetStartupScript) /* 622 */
3758 #define Tcl_GetStartupScript \
3759 (tclStubsPtr->tcl_GetStartupScript) /* 623 */
3760 #define Tcl_CloseEx \
3761 (tclStubsPtr->tcl_CloseEx) /* 624 */
3762 #define Tcl_NRExprObj \
3763 (tclStubsPtr->tcl_NRExprObj) /* 625 */
3764 #define Tcl_NRSubstObj \
3765 (tclStubsPtr->tcl_NRSubstObj) /* 626 */
3766 #define Tcl_LoadFile \
3767 (tclStubsPtr->tcl_LoadFile) /* 627 */
3768 #define Tcl_FindSymbol \
3769 (tclStubsPtr->tcl_FindSymbol) /* 628 */
3770 #define Tcl_FSUnloadFile \
3771 (tclStubsPtr->tcl_FSUnloadFile) /* 629 */
3772 #define Tcl_ZlibStreamSetCompressionDictionary \
3773 (tclStubsPtr->tcl_ZlibStreamSetCompressionDictionary) /* 630 */
3774
3775 #endif /* defined(USE_TCL_STUBS) */
3776
3777 /* !END!: Do not edit above this line. */
3778
3779 #if defined(USE_TCL_STUBS)
3780 # undef Tcl_CreateInterp
3781 # undef Tcl_FindExecutable
3782 # undef Tcl_GetStringResult
3783 # undef Tcl_Init
3784 # undef Tcl_SetPanicProc
3785 # undef Tcl_SetVar
3786 # undef Tcl_StaticPackage
3787 # undef TclFSGetNativePath
3788 # define Tcl_CreateInterp() (tclStubsPtr->tcl_CreateInterp())
3789 # define Tcl_GetStringResult(interp) (tclStubsPtr->tcl_GetStringResult(interp))
3790 # define Tcl_Init(interp) (tclStubsPtr->tcl_Init(interp))
3791 # define Tcl_SetPanicProc(proc) (tclStubsPtr->tcl_SetPanicProc(proc))
3792 # define Tcl_SetVar(interp, varName, newValue, flags) \
3793 (tclStubsPtr->tcl_SetVar(interp, varName, newValue, flags))
3794 #endif
3795
3796 #if defined(_WIN32) && defined(UNICODE)
3797 # define Tcl_FindExecutable(arg) ((Tcl_FindExecutable)((const char *)(arg)))
3798 # define Tcl_MainEx Tcl_MainExW
3799 EXTERN void Tcl_MainExW(int argc, wchar_t **argv,
3800 Tcl_AppInitProc *appInitProc, Tcl_Interp *interp);
3801 #endif
3802
3803 #undef TCL_STORAGE_CLASS
3804 #define TCL_STORAGE_CLASS DLLIMPORT
3805
3806 #endif /* _TCLDECLS */
--- a/compat/tcl-8.6/generic/tclPlatDecls.h
+++ b/compat/tcl-8.6/generic/tclPlatDecls.h
@@ -0,0 +1,120 @@
1
+/*
2
+ * tclPlatDecls.h --
3
+ *
4
+ * Declarations of platform specific Tcl APIs.
5
+ *
6
+ * Copyright (c) 1998-1999 by Scriptics Corporation.
7
+ * All rights reserved.
8
+ */
9
+
10
+#ifndef _TCLPLATDECLS
11
+#define _TCLPLATDECLS
12
+
13
+#undef TCL_STORAGE_CLASS
14
+#ifdef BUILD_tcl
15
+# define TCL_STORAGE_CLASS DLLEXPORT
16
+#else
17
+# ifdef USE_TCL_STUBS
18
+# define TCL_STORAGE_CLASS
19
+# else
20
+# define TCL_STORAGE_CLASS DLLIMPORT
21
+# endif
22
+#endif
23
+
24
+/*
25
+ * WARNING: This file is automatically generated by the tools/genStubs.tcl
26
+ * script. Any modifications to the function declarations below should be made
27
+ * in the generic/tcl.decls script.
28
+ */
29
+
30
+/*
31
+ * TCHAR is needed here for win32, so if it is not defined yet do it here.
32
+ * This way, we don't need to include <tchar.h> just for one define.
33
+ */
34
+#if (defined(_WIN32) || defined(__CYGWIN__)) && !defined(_TCHAR_DEFINED)
35
+# if defined(_UNICODE)
36
+ typedef wchar_t TCHAR;
37
+# else
38
+ typedef char TCHAR;
39
+# endif
40
+# define _TCHAR_DEFINED
41
+#endif
42
+
43
+/* !BEGIN!: Do not edit below this line. */
44
+
45
+/*
46
+ * Exported function declarations:
47
+ */
48
+
49
+#if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */
50
+/* 0 */
51
+EXTERN TCHAR * Tcl_WinUtfToTChar(const char *str, int len,
52
+ Tcl_DString *dsPtr);
53
+/* 1 */
54
+EXTERN char * Tcl_WinTCharToUtf(const TCHAR *str, int len,
55
+ Tcl_DString *dsPtr);
56
+#endif /* WIN */
57
+#ifdef MAC_OSX_TCL /* MACOSX */
58
+/* 0 */
59
+EXTERN int Tcl_MacOSXOpenBundleResources(Tcl_Interp *interp,
60
+ const char *bundleName, int hasResourceFile,
61
+ int maxPathLen, char *libraryPath);
62
+/* 1 */
63
+EXTERN int Tcl_MacOSXOpenVersionedBundleResources(
64
+ Tcl_Interp *interp, const char *bundleName,
65
+ const char *bundleVersion,
66
+ int hasResourceFile, int maxPathLen,
67
+ char *libraryPath);
68
+#endif /* MACOSX */
69
+
70
+typedef struct TclPlatStubs {
71
+ int magic;
72
+ void *hooks;
73
+
74
+#if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */
75
+ TCHAR * (*tcl_WinUtfToTChar) (const char *str, int len, Tcl_DString *dsPtr); /* 0 */
76
+ char * (*tcl_WinTCharToUtf) (const TCHAR *str, int len, Tcl_DString *dsPtr); /* 1 */
77
+#endif /* WIN */
78
+#ifdef MAC_OSX_TCL /* MACOSX */
79
+ int (*tcl_MacOSXOpenBundleResources) (Tcl_Interp *interp, const char *bundleName, int hasResourceFile, int maxPathLen, char *libraryPath); /* 0 */
80
+ int (*tcl_MacOSXOpenVersionedBundleResources) (Tcl_Interp *interp, const char *bundleName, const char *bundleVersion, int hasResourceFile, int maxPathLen, char *libraryPath); /* 1 */
81
+#endif /* MACOSX */
82
+} TclPlatStubs;
83
+
84
+#ifdef __cplusplus
85
+extern "C" {
86
+#endif
87
+extern const TclPlatStubs *tclPlatStubsPtr;
88
+#ifdef __cplusplus
89
+}
90
+#endif
91
+
92
+#if defined(USE_TCL_STUBS)
93
+
94
+/*
95
+ * Inline function declarations:
96
+ */
97
+
98
+#if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */
99
+#define Tcl_WinUtfToTChar \
100
+ (tclPlatStubsPtr->tcl_WinUtfToTChar) /* 0 */
101
+#define Tcl_WinTCharToUtf \
102
+ (tclPlatStubsPtr->tcl_WinTCharToUtf) /* 1 */
103
+#endif /* WIN */
104
+#ifdef MAC_OSX_TCL /* MACOSX */
105
+#define Tcl_MacOSXOpenBundleResources \
106
+ (tclPlatStubsPtr->tcl_MacOSXOpenBundleResources) /* 0 */
107
+#define Tcl_MacOSXOpenVersionedBundleResources \
108
+ (tclPlatStubsPtr->tcl_MacOSXOpenVersionedBundleResources) /* 1 */
109
+#endif /* MACOSX */
110
+
111
+#endif /* defined(USE_TCL_STUBS) */
112
+
113
+/* !END!: Do not edit above this line. */
114
+
115
+#undef TCL_STORAGE_CLASS
116
+#define TCL_STORAGE_CLASS DLLIMPORT
117
+
118
+#endif /* _TCLPLATDECLS */
119
+
120
+
--- a/compat/tcl-8.6/generic/tclPlatDecls.h
+++ b/compat/tcl-8.6/generic/tclPlatDecls.h
@@ -0,0 +1,120 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
--- a/compat/tcl-8.6/generic/tclPlatDecls.h
+++ b/compat/tcl-8.6/generic/tclPlatDecls.h
@@ -0,0 +1,120 @@
1 /*
2 * tclPlatDecls.h --
3 *
4 * Declarations of platform specific Tcl APIs.
5 *
6 * Copyright (c) 1998-1999 by Scriptics Corporation.
7 * All rights reserved.
8 */
9
10 #ifndef _TCLPLATDECLS
11 #define _TCLPLATDECLS
12
13 #undef TCL_STORAGE_CLASS
14 #ifdef BUILD_tcl
15 # define TCL_STORAGE_CLASS DLLEXPORT
16 #else
17 # ifdef USE_TCL_STUBS
18 # define TCL_STORAGE_CLASS
19 # else
20 # define TCL_STORAGE_CLASS DLLIMPORT
21 # endif
22 #endif
23
24 /*
25 * WARNING: This file is automatically generated by the tools/genStubs.tcl
26 * script. Any modifications to the function declarations below should be made
27 * in the generic/tcl.decls script.
28 */
29
30 /*
31 * TCHAR is needed here for win32, so if it is not defined yet do it here.
32 * This way, we don't need to include <tchar.h> just for one define.
33 */
34 #if (defined(_WIN32) || defined(__CYGWIN__)) && !defined(_TCHAR_DEFINED)
35 # if defined(_UNICODE)
36 typedef wchar_t TCHAR;
37 # else
38 typedef char TCHAR;
39 # endif
40 # define _TCHAR_DEFINED
41 #endif
42
43 /* !BEGIN!: Do not edit below this line. */
44
45 /*
46 * Exported function declarations:
47 */
48
49 #if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */
50 /* 0 */
51 EXTERN TCHAR * Tcl_WinUtfToTChar(const char *str, int len,
52 Tcl_DString *dsPtr);
53 /* 1 */
54 EXTERN char * Tcl_WinTCharToUtf(const TCHAR *str, int len,
55 Tcl_DString *dsPtr);
56 #endif /* WIN */
57 #ifdef MAC_OSX_TCL /* MACOSX */
58 /* 0 */
59 EXTERN int Tcl_MacOSXOpenBundleResources(Tcl_Interp *interp,
60 const char *bundleName, int hasResourceFile,
61 int maxPathLen, char *libraryPath);
62 /* 1 */
63 EXTERN int Tcl_MacOSXOpenVersionedBundleResources(
64 Tcl_Interp *interp, const char *bundleName,
65 const char *bundleVersion,
66 int hasResourceFile, int maxPathLen,
67 char *libraryPath);
68 #endif /* MACOSX */
69
70 typedef struct TclPlatStubs {
71 int magic;
72 void *hooks;
73
74 #if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */
75 TCHAR * (*tcl_WinUtfToTChar) (const char *str, int len, Tcl_DString *dsPtr); /* 0 */
76 char * (*tcl_WinTCharToUtf) (const TCHAR *str, int len, Tcl_DString *dsPtr); /* 1 */
77 #endif /* WIN */
78 #ifdef MAC_OSX_TCL /* MACOSX */
79 int (*tcl_MacOSXOpenBundleResources) (Tcl_Interp *interp, const char *bundleName, int hasResourceFile, int maxPathLen, char *libraryPath); /* 0 */
80 int (*tcl_MacOSXOpenVersionedBundleResources) (Tcl_Interp *interp, const char *bundleName, const char *bundleVersion, int hasResourceFile, int maxPathLen, char *libraryPath); /* 1 */
81 #endif /* MACOSX */
82 } TclPlatStubs;
83
84 #ifdef __cplusplus
85 extern "C" {
86 #endif
87 extern const TclPlatStubs *tclPlatStubsPtr;
88 #ifdef __cplusplus
89 }
90 #endif
91
92 #if defined(USE_TCL_STUBS)
93
94 /*
95 * Inline function declarations:
96 */
97
98 #if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */
99 #define Tcl_WinUtfToTChar \
100 (tclPlatStubsPtr->tcl_WinUtfToTChar) /* 0 */
101 #define Tcl_WinTCharToUtf \
102 (tclPlatStubsPtr->tcl_WinTCharToUtf) /* 1 */
103 #endif /* WIN */
104 #ifdef MAC_OSX_TCL /* MACOSX */
105 #define Tcl_MacOSXOpenBundleResources \
106 (tclPlatStubsPtr->tcl_MacOSXOpenBundleResources) /* 0 */
107 #define Tcl_MacOSXOpenVersionedBundleResources \
108 (tclPlatStubsPtr->tcl_MacOSXOpenVersionedBundleResources) /* 1 */
109 #endif /* MACOSX */
110
111 #endif /* defined(USE_TCL_STUBS) */
112
113 /* !END!: Do not edit above this line. */
114
115 #undef TCL_STORAGE_CLASS
116 #define TCL_STORAGE_CLASS DLLIMPORT
117
118 #endif /* _TCLPLATDECLS */
119
120
+11 -1
--- src/makemake.tcl
+++ src/makemake.tcl
@@ -391,13 +391,17 @@
391391
392392
#### Enable scripting support via Tcl/Tk
393393
#
394394
# FOSSIL_ENABLE_TCL = 1
395395
396
-#### Load Tcl using the stubs mechanism
396
+#### Load Tcl using the stubs library mechanism
397397
#
398398
# FOSSIL_ENABLE_TCL_STUBS = 1
399
+
400
+#### Load Tcl using the private stubs mechanism
401
+#
402
+# FOSSIL_ENABLE_TCL_PRIVATE_STUBS = 1
399403
400404
#### Use the Tcl source directory instead of the install directory?
401405
# This is useful when Tcl has been compiled statically with MinGW.
402406
#
403407
FOSSIL_TCL_SOURCE = 1
@@ -450,11 +454,13 @@
450454
TCLLIBDIR = $(TCLDIR)/lib
451455
452456
#### Tcl: Which Tcl library do we want to use (8.4, 8.5, 8.6, etc)?
453457
#
454458
ifdef FOSSIL_ENABLE_TCL_STUBS
459
+ifndef FOSSIL_ENABLE_TCL_PRIVATE_STUBS
455460
LIBTCL = -ltclstub86
461
+endif
456462
TCLTARGET = libtclstub86.a
457463
else
458464
LIBTCL = -ltcl86
459465
TCLTARGET = binaries
460466
endif
@@ -514,10 +520,14 @@
514520
RCC += -DFOSSIL_ENABLE_TCL=1
515521
# Either statically linked or via stubs
516522
ifdef FOSSIL_ENABLE_TCL_STUBS
517523
TCC += -DFOSSIL_ENABLE_TCL_STUBS=1 -DUSE_TCL_STUBS
518524
RCC += -DFOSSIL_ENABLE_TCL_STUBS=1 -DUSE_TCL_STUBS
525
+ifdef FOSSIL_ENABLE_TCL_PRIVATE_STUBS
526
+TCC += -DFOSSIL_ENABLE_TCL_PRIVATE_STUBS=1
527
+RCC += -DFOSSIL_ENABLE_TCL_PRIVATE_STUBS=1
528
+endif
519529
else
520530
TCC += -DSTATIC_BUILD
521531
RCC += -DSTATIC_BUILD
522532
endif
523533
endif
524534
--- src/makemake.tcl
+++ src/makemake.tcl
@@ -391,13 +391,17 @@
391
392 #### Enable scripting support via Tcl/Tk
393 #
394 # FOSSIL_ENABLE_TCL = 1
395
396 #### Load Tcl using the stubs mechanism
397 #
398 # FOSSIL_ENABLE_TCL_STUBS = 1
 
 
 
 
399
400 #### Use the Tcl source directory instead of the install directory?
401 # This is useful when Tcl has been compiled statically with MinGW.
402 #
403 FOSSIL_TCL_SOURCE = 1
@@ -450,11 +454,13 @@
450 TCLLIBDIR = $(TCLDIR)/lib
451
452 #### Tcl: Which Tcl library do we want to use (8.4, 8.5, 8.6, etc)?
453 #
454 ifdef FOSSIL_ENABLE_TCL_STUBS
 
455 LIBTCL = -ltclstub86
 
456 TCLTARGET = libtclstub86.a
457 else
458 LIBTCL = -ltcl86
459 TCLTARGET = binaries
460 endif
@@ -514,10 +520,14 @@
514 RCC += -DFOSSIL_ENABLE_TCL=1
515 # Either statically linked or via stubs
516 ifdef FOSSIL_ENABLE_TCL_STUBS
517 TCC += -DFOSSIL_ENABLE_TCL_STUBS=1 -DUSE_TCL_STUBS
518 RCC += -DFOSSIL_ENABLE_TCL_STUBS=1 -DUSE_TCL_STUBS
 
 
 
 
519 else
520 TCC += -DSTATIC_BUILD
521 RCC += -DSTATIC_BUILD
522 endif
523 endif
524
--- src/makemake.tcl
+++ src/makemake.tcl
@@ -391,13 +391,17 @@
391
392 #### Enable scripting support via Tcl/Tk
393 #
394 # FOSSIL_ENABLE_TCL = 1
395
396 #### Load Tcl using the stubs library mechanism
397 #
398 # FOSSIL_ENABLE_TCL_STUBS = 1
399
400 #### Load Tcl using the private stubs mechanism
401 #
402 # FOSSIL_ENABLE_TCL_PRIVATE_STUBS = 1
403
404 #### Use the Tcl source directory instead of the install directory?
405 # This is useful when Tcl has been compiled statically with MinGW.
406 #
407 FOSSIL_TCL_SOURCE = 1
@@ -450,11 +454,13 @@
454 TCLLIBDIR = $(TCLDIR)/lib
455
456 #### Tcl: Which Tcl library do we want to use (8.4, 8.5, 8.6, etc)?
457 #
458 ifdef FOSSIL_ENABLE_TCL_STUBS
459 ifndef FOSSIL_ENABLE_TCL_PRIVATE_STUBS
460 LIBTCL = -ltclstub86
461 endif
462 TCLTARGET = libtclstub86.a
463 else
464 LIBTCL = -ltcl86
465 TCLTARGET = binaries
466 endif
@@ -514,10 +520,14 @@
520 RCC += -DFOSSIL_ENABLE_TCL=1
521 # Either statically linked or via stubs
522 ifdef FOSSIL_ENABLE_TCL_STUBS
523 TCC += -DFOSSIL_ENABLE_TCL_STUBS=1 -DUSE_TCL_STUBS
524 RCC += -DFOSSIL_ENABLE_TCL_STUBS=1 -DUSE_TCL_STUBS
525 ifdef FOSSIL_ENABLE_TCL_PRIVATE_STUBS
526 TCC += -DFOSSIL_ENABLE_TCL_PRIVATE_STUBS=1
527 RCC += -DFOSSIL_ENABLE_TCL_PRIVATE_STUBS=1
528 endif
529 else
530 TCC += -DSTATIC_BUILD
531 RCC += -DSTATIC_BUILD
532 endif
533 endif
534
+69 -7
--- src/th_tcl.c
+++ src/th_tcl.c
@@ -155,10 +155,65 @@
155155
const char **argv, /* Array of arguments for the TH1 command. */
156156
int *argl, /* Array of lengths for the TH1 command arguments. */
157157
int rc /* Recommended notification return value. */
158158
);
159159
160
+/*
161
+** Are we using our own private implementation of the Tcl stubs mechanism? If
162
+** this is enabled, it prevents the user from having to link against the Tcl
163
+** stubs library for the target platform, which may not be readily available.
164
+ */
165
+#if defined(FOSSIL_ENABLE_TCL_PRIVATE_STUBS)
166
+/*
167
+** HACK: Using some preprocessor magic and a private static variable, redirect
168
+** the Tcl API calls [found within this file] to the function pointers
169
+** that will be contained in our private Tcl stubs table. This takes
170
+** advantage of the fact that the Tcl headers always define the Tcl API
171
+** functions in terms of the "tclStubsPtr" variable.
172
+ */
173
+#define tclStubsPtr privateTclStubsPtr
174
+static const TclStubs *tclStubsPtr = NULL;
175
+
176
+/*
177
+** Create a Tcl interpreter structure that mirrors just enough fields to get
178
+** it up and running successfully with our private implementation of the Tcl
179
+** stubs mechanism.
180
+ */
181
+struct PrivateTclInterp {
182
+ char *result;
183
+ Tcl_FreeProc *freeProc;
184
+ int errorLine;
185
+ const struct TclStubs *stubTable;
186
+};
187
+
188
+/*
189
+** Fossil can now be compiled without linking to the actual Tcl stubs library.
190
+** In that case, this function will be used to perform those steps that would
191
+** normally be performed within the Tcl stubs library.
192
+ */
193
+static int initTclStubs(
194
+ Th_Interp *interp,
195
+ Tcl_Interp *tclInterp
196
+){
197
+ tclStubsPtr = ((struct PrivateTclInterp *)tclInterp)->stubTable;
198
+ if( !tclStubsPtr || (tclStubsPtr->magic!=TCL_STUB_MAGIC) ){
199
+ Th_ErrorMessage(interp,
200
+ "could not initialize Tcl stubs: incompatible mechanism",
201
+ (const char *)"", 0);
202
+ return TH_ERROR;
203
+ }
204
+ /* NOTE: At this point, the Tcl API functions should be available. */
205
+ if( Tcl_PkgRequireEx(tclInterp, "Tcl", "8.4", 0, (void *)&tclStubsPtr)==0 ){
206
+ Th_ErrorMessage(interp,
207
+ "could not initialize Tcl stubs: incompatible version",
208
+ (const char *)"", 0);
209
+ return TH_ERROR;
210
+ }
211
+ return TH_OK;
212
+}
213
+#endif /* defined(FOSSIL_ENABLE_TCL_PRIVATE_STUBS) */
214
+
160215
/*
161216
** Creates and initializes a Tcl interpreter for use with the specified TH1
162217
** interpreter. Stores the created Tcl interpreter in the Tcl context supplied
163218
** by the caller. This must be declared here because quite a few functions in
164219
** this file need to use it before it can be defined.
@@ -368,17 +423,17 @@
368423
){
369424
Tcl_Interp *tclInterp;
370425
#if !defined(USE_TCL_EVALOBJV)
371426
Tcl_Command command;
372427
Tcl_CmdInfo cmdInfo;
373
-#endif
428
+#endif /* !defined(USE_TCL_EVALOBJV) */
374429
int rc = TH_OK;
375430
int nResult;
376431
const char *zResult;
377432
#if !defined(USE_TCL_EVALOBJV)
378433
Tcl_Obj *objPtr;
379
-#endif
434
+#endif /* !defined(USE_TCL_EVALOBJV) */
380435
USE_ARGV_TO_OBJV();
381436
382437
if( createTclInterp(interp, ctx)!=TH_OK ){
383438
return TH_ERROR;
384439
}
@@ -410,18 +465,18 @@
410465
Tcl_DecrRefCount(objPtr);
411466
Tcl_Release((ClientData)tclInterp);
412467
return TH_ERROR;
413468
}
414469
Tcl_DecrRefCount(objPtr);
415
-#endif
470
+#endif /* !defined(USE_TCL_EVALOBJV) */
416471
COPY_ARGV_TO_OBJV();
417472
#if defined(USE_TCL_EVALOBJV)
418473
rc = Tcl_EvalObjv(tclInterp, objc, objv, 0);
419474
#else
420475
Tcl_ResetResult(tclInterp);
421476
rc = cmdInfo.objProc(cmdInfo.objClientData, tclInterp, objc, objv);
422
-#endif
477
+#endif /* defined(USE_TCL_EVALOBJV) */
423478
FREE_ARGV_TO_OBJV();
424479
zResult = getTclResult(tclInterp, &nResult);
425480
Th_SetResult(interp, zResult, nResult);
426481
Tcl_Release((ClientData)tclInterp);
427482
rc = notifyPreOrPostEval(1, interp, ctx, argc, argv, argl, rc);
@@ -538,11 +593,11 @@
538593
tcl_CreateInterpProc **pxCreateInterp,
539594
tcl_DeleteInterpProc **pxDeleteInterp
540595
){
541596
#if defined(USE_TCL_STUBS)
542597
char fileName[] = TCL_LIBRARY_NAME;
543
-#endif
598
+#endif /* defined(USE_TCL_STUBS) */
544599
if( !pLibrary || !pxFindExecutable || !pxCreateInterp ){
545600
Th_ErrorMessage(interp,
546601
"invalid Tcl loader argument(s)", (const char *)"", 0);
547602
return TH_ERROR;
548603
}
@@ -601,11 +656,11 @@
601656
*pLibrary = 0;
602657
*pxFindExecutable = Tcl_FindExecutable;
603658
*pxCreateInterp = Tcl_CreateInterp;
604659
*pxDeleteInterp = Tcl_DeleteInterp;
605660
return TH_OK;
606
-#endif
661
+#endif /* defined(USE_TCL_STUBS) */
607662
}
608663
609664
/*
610665
** Sets the "argv0", "argc", and "argv" script variables in the Tcl interpreter
611666
** based on the supplied command line arguments.
@@ -701,17 +756,24 @@
701756
Th_ErrorMessage(interp,
702757
"could not create Tcl interpreter", (const char *)"", 0);
703758
return TH_ERROR;
704759
}
705760
#if defined(USE_TCL_STUBS)
761
+#if defined(FOSSIL_ENABLE_TCL_PRIVATE_STUBS)
762
+ if( initTclStubs(interp, tclInterp)!=TH_OK ){
763
+ tclContext->xDeleteInterp(tclInterp);
764
+ return TH_ERROR;
765
+ }
766
+#else
706767
if( !Tcl_InitStubs(tclInterp, "8.4", 0) ){
707768
Th_ErrorMessage(interp,
708769
"could not initialize Tcl stubs", (const char *)"", 0);
709770
tclContext->xDeleteInterp(tclInterp);
710771
return TH_ERROR;
711772
}
712
-#endif
773
+#endif /* defined(FOSSIL_ENABLE_TCL_PRIVATE_STUBS) */
774
+#endif /* defined(USE_TCL_STUBS) */
713775
if( Tcl_InterpDeleted(tclInterp) ){
714776
Th_ErrorMessage(interp,
715777
"Tcl interpreter appears to be deleted", (const char *)"", 0);
716778
tclContext->xDeleteInterp(tclInterp); /* TODO: Redundant? */
717779
return TH_ERROR;
718780
--- src/th_tcl.c
+++ src/th_tcl.c
@@ -155,10 +155,65 @@
155 const char **argv, /* Array of arguments for the TH1 command. */
156 int *argl, /* Array of lengths for the TH1 command arguments. */
157 int rc /* Recommended notification return value. */
158 );
159
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
160 /*
161 ** Creates and initializes a Tcl interpreter for use with the specified TH1
162 ** interpreter. Stores the created Tcl interpreter in the Tcl context supplied
163 ** by the caller. This must be declared here because quite a few functions in
164 ** this file need to use it before it can be defined.
@@ -368,17 +423,17 @@
368 ){
369 Tcl_Interp *tclInterp;
370 #if !defined(USE_TCL_EVALOBJV)
371 Tcl_Command command;
372 Tcl_CmdInfo cmdInfo;
373 #endif
374 int rc = TH_OK;
375 int nResult;
376 const char *zResult;
377 #if !defined(USE_TCL_EVALOBJV)
378 Tcl_Obj *objPtr;
379 #endif
380 USE_ARGV_TO_OBJV();
381
382 if( createTclInterp(interp, ctx)!=TH_OK ){
383 return TH_ERROR;
384 }
@@ -410,18 +465,18 @@
410 Tcl_DecrRefCount(objPtr);
411 Tcl_Release((ClientData)tclInterp);
412 return TH_ERROR;
413 }
414 Tcl_DecrRefCount(objPtr);
415 #endif
416 COPY_ARGV_TO_OBJV();
417 #if defined(USE_TCL_EVALOBJV)
418 rc = Tcl_EvalObjv(tclInterp, objc, objv, 0);
419 #else
420 Tcl_ResetResult(tclInterp);
421 rc = cmdInfo.objProc(cmdInfo.objClientData, tclInterp, objc, objv);
422 #endif
423 FREE_ARGV_TO_OBJV();
424 zResult = getTclResult(tclInterp, &nResult);
425 Th_SetResult(interp, zResult, nResult);
426 Tcl_Release((ClientData)tclInterp);
427 rc = notifyPreOrPostEval(1, interp, ctx, argc, argv, argl, rc);
@@ -538,11 +593,11 @@
538 tcl_CreateInterpProc **pxCreateInterp,
539 tcl_DeleteInterpProc **pxDeleteInterp
540 ){
541 #if defined(USE_TCL_STUBS)
542 char fileName[] = TCL_LIBRARY_NAME;
543 #endif
544 if( !pLibrary || !pxFindExecutable || !pxCreateInterp ){
545 Th_ErrorMessage(interp,
546 "invalid Tcl loader argument(s)", (const char *)"", 0);
547 return TH_ERROR;
548 }
@@ -601,11 +656,11 @@
601 *pLibrary = 0;
602 *pxFindExecutable = Tcl_FindExecutable;
603 *pxCreateInterp = Tcl_CreateInterp;
604 *pxDeleteInterp = Tcl_DeleteInterp;
605 return TH_OK;
606 #endif
607 }
608
609 /*
610 ** Sets the "argv0", "argc", and "argv" script variables in the Tcl interpreter
611 ** based on the supplied command line arguments.
@@ -701,17 +756,24 @@
701 Th_ErrorMessage(interp,
702 "could not create Tcl interpreter", (const char *)"", 0);
703 return TH_ERROR;
704 }
705 #if defined(USE_TCL_STUBS)
 
 
 
 
 
 
706 if( !Tcl_InitStubs(tclInterp, "8.4", 0) ){
707 Th_ErrorMessage(interp,
708 "could not initialize Tcl stubs", (const char *)"", 0);
709 tclContext->xDeleteInterp(tclInterp);
710 return TH_ERROR;
711 }
712 #endif
 
713 if( Tcl_InterpDeleted(tclInterp) ){
714 Th_ErrorMessage(interp,
715 "Tcl interpreter appears to be deleted", (const char *)"", 0);
716 tclContext->xDeleteInterp(tclInterp); /* TODO: Redundant? */
717 return TH_ERROR;
718
--- src/th_tcl.c
+++ src/th_tcl.c
@@ -155,10 +155,65 @@
155 const char **argv, /* Array of arguments for the TH1 command. */
156 int *argl, /* Array of lengths for the TH1 command arguments. */
157 int rc /* Recommended notification return value. */
158 );
159
160 /*
161 ** Are we using our own private implementation of the Tcl stubs mechanism? If
162 ** this is enabled, it prevents the user from having to link against the Tcl
163 ** stubs library for the target platform, which may not be readily available.
164 */
165 #if defined(FOSSIL_ENABLE_TCL_PRIVATE_STUBS)
166 /*
167 ** HACK: Using some preprocessor magic and a private static variable, redirect
168 ** the Tcl API calls [found within this file] to the function pointers
169 ** that will be contained in our private Tcl stubs table. This takes
170 ** advantage of the fact that the Tcl headers always define the Tcl API
171 ** functions in terms of the "tclStubsPtr" variable.
172 */
173 #define tclStubsPtr privateTclStubsPtr
174 static const TclStubs *tclStubsPtr = NULL;
175
176 /*
177 ** Create a Tcl interpreter structure that mirrors just enough fields to get
178 ** it up and running successfully with our private implementation of the Tcl
179 ** stubs mechanism.
180 */
181 struct PrivateTclInterp {
182 char *result;
183 Tcl_FreeProc *freeProc;
184 int errorLine;
185 const struct TclStubs *stubTable;
186 };
187
188 /*
189 ** Fossil can now be compiled without linking to the actual Tcl stubs library.
190 ** In that case, this function will be used to perform those steps that would
191 ** normally be performed within the Tcl stubs library.
192 */
193 static int initTclStubs(
194 Th_Interp *interp,
195 Tcl_Interp *tclInterp
196 ){
197 tclStubsPtr = ((struct PrivateTclInterp *)tclInterp)->stubTable;
198 if( !tclStubsPtr || (tclStubsPtr->magic!=TCL_STUB_MAGIC) ){
199 Th_ErrorMessage(interp,
200 "could not initialize Tcl stubs: incompatible mechanism",
201 (const char *)"", 0);
202 return TH_ERROR;
203 }
204 /* NOTE: At this point, the Tcl API functions should be available. */
205 if( Tcl_PkgRequireEx(tclInterp, "Tcl", "8.4", 0, (void *)&tclStubsPtr)==0 ){
206 Th_ErrorMessage(interp,
207 "could not initialize Tcl stubs: incompatible version",
208 (const char *)"", 0);
209 return TH_ERROR;
210 }
211 return TH_OK;
212 }
213 #endif /* defined(FOSSIL_ENABLE_TCL_PRIVATE_STUBS) */
214
215 /*
216 ** Creates and initializes a Tcl interpreter for use with the specified TH1
217 ** interpreter. Stores the created Tcl interpreter in the Tcl context supplied
218 ** by the caller. This must be declared here because quite a few functions in
219 ** this file need to use it before it can be defined.
@@ -368,17 +423,17 @@
423 ){
424 Tcl_Interp *tclInterp;
425 #if !defined(USE_TCL_EVALOBJV)
426 Tcl_Command command;
427 Tcl_CmdInfo cmdInfo;
428 #endif /* !defined(USE_TCL_EVALOBJV) */
429 int rc = TH_OK;
430 int nResult;
431 const char *zResult;
432 #if !defined(USE_TCL_EVALOBJV)
433 Tcl_Obj *objPtr;
434 #endif /* !defined(USE_TCL_EVALOBJV) */
435 USE_ARGV_TO_OBJV();
436
437 if( createTclInterp(interp, ctx)!=TH_OK ){
438 return TH_ERROR;
439 }
@@ -410,18 +465,18 @@
465 Tcl_DecrRefCount(objPtr);
466 Tcl_Release((ClientData)tclInterp);
467 return TH_ERROR;
468 }
469 Tcl_DecrRefCount(objPtr);
470 #endif /* !defined(USE_TCL_EVALOBJV) */
471 COPY_ARGV_TO_OBJV();
472 #if defined(USE_TCL_EVALOBJV)
473 rc = Tcl_EvalObjv(tclInterp, objc, objv, 0);
474 #else
475 Tcl_ResetResult(tclInterp);
476 rc = cmdInfo.objProc(cmdInfo.objClientData, tclInterp, objc, objv);
477 #endif /* defined(USE_TCL_EVALOBJV) */
478 FREE_ARGV_TO_OBJV();
479 zResult = getTclResult(tclInterp, &nResult);
480 Th_SetResult(interp, zResult, nResult);
481 Tcl_Release((ClientData)tclInterp);
482 rc = notifyPreOrPostEval(1, interp, ctx, argc, argv, argl, rc);
@@ -538,11 +593,11 @@
593 tcl_CreateInterpProc **pxCreateInterp,
594 tcl_DeleteInterpProc **pxDeleteInterp
595 ){
596 #if defined(USE_TCL_STUBS)
597 char fileName[] = TCL_LIBRARY_NAME;
598 #endif /* defined(USE_TCL_STUBS) */
599 if( !pLibrary || !pxFindExecutable || !pxCreateInterp ){
600 Th_ErrorMessage(interp,
601 "invalid Tcl loader argument(s)", (const char *)"", 0);
602 return TH_ERROR;
603 }
@@ -601,11 +656,11 @@
656 *pLibrary = 0;
657 *pxFindExecutable = Tcl_FindExecutable;
658 *pxCreateInterp = Tcl_CreateInterp;
659 *pxDeleteInterp = Tcl_DeleteInterp;
660 return TH_OK;
661 #endif /* defined(USE_TCL_STUBS) */
662 }
663
664 /*
665 ** Sets the "argv0", "argc", and "argv" script variables in the Tcl interpreter
666 ** based on the supplied command line arguments.
@@ -701,17 +756,24 @@
756 Th_ErrorMessage(interp,
757 "could not create Tcl interpreter", (const char *)"", 0);
758 return TH_ERROR;
759 }
760 #if defined(USE_TCL_STUBS)
761 #if defined(FOSSIL_ENABLE_TCL_PRIVATE_STUBS)
762 if( initTclStubs(interp, tclInterp)!=TH_OK ){
763 tclContext->xDeleteInterp(tclInterp);
764 return TH_ERROR;
765 }
766 #else
767 if( !Tcl_InitStubs(tclInterp, "8.4", 0) ){
768 Th_ErrorMessage(interp,
769 "could not initialize Tcl stubs", (const char *)"", 0);
770 tclContext->xDeleteInterp(tclInterp);
771 return TH_ERROR;
772 }
773 #endif /* defined(FOSSIL_ENABLE_TCL_PRIVATE_STUBS) */
774 #endif /* defined(USE_TCL_STUBS) */
775 if( Tcl_InterpDeleted(tclInterp) ){
776 Th_ErrorMessage(interp,
777 "Tcl interpreter appears to be deleted", (const char *)"", 0);
778 tclContext->xDeleteInterp(tclInterp); /* TODO: Redundant? */
779 return TH_ERROR;
780
+69 -7
--- src/th_tcl.c
+++ src/th_tcl.c
@@ -155,10 +155,65 @@
155155
const char **argv, /* Array of arguments for the TH1 command. */
156156
int *argl, /* Array of lengths for the TH1 command arguments. */
157157
int rc /* Recommended notification return value. */
158158
);
159159
160
+/*
161
+** Are we using our own private implementation of the Tcl stubs mechanism? If
162
+** this is enabled, it prevents the user from having to link against the Tcl
163
+** stubs library for the target platform, which may not be readily available.
164
+ */
165
+#if defined(FOSSIL_ENABLE_TCL_PRIVATE_STUBS)
166
+/*
167
+** HACK: Using some preprocessor magic and a private static variable, redirect
168
+** the Tcl API calls [found within this file] to the function pointers
169
+** that will be contained in our private Tcl stubs table. This takes
170
+** advantage of the fact that the Tcl headers always define the Tcl API
171
+** functions in terms of the "tclStubsPtr" variable.
172
+ */
173
+#define tclStubsPtr privateTclStubsPtr
174
+static const TclStubs *tclStubsPtr = NULL;
175
+
176
+/*
177
+** Create a Tcl interpreter structure that mirrors just enough fields to get
178
+** it up and running successfully with our private implementation of the Tcl
179
+** stubs mechanism.
180
+ */
181
+struct PrivateTclInterp {
182
+ char *result;
183
+ Tcl_FreeProc *freeProc;
184
+ int errorLine;
185
+ const struct TclStubs *stubTable;
186
+};
187
+
188
+/*
189
+** Fossil can now be compiled without linking to the actual Tcl stubs library.
190
+** In that case, this function will be used to perform those steps that would
191
+** normally be performed within the Tcl stubs library.
192
+ */
193
+static int initTclStubs(
194
+ Th_Interp *interp,
195
+ Tcl_Interp *tclInterp
196
+){
197
+ tclStubsPtr = ((struct PrivateTclInterp *)tclInterp)->stubTable;
198
+ if( !tclStubsPtr || (tclStubsPtr->magic!=TCL_STUB_MAGIC) ){
199
+ Th_ErrorMessage(interp,
200
+ "could not initialize Tcl stubs: incompatible mechanism",
201
+ (const char *)"", 0);
202
+ return TH_ERROR;
203
+ }
204
+ /* NOTE: At this point, the Tcl API functions should be available. */
205
+ if( Tcl_PkgRequireEx(tclInterp, "Tcl", "8.4", 0, (void *)&tclStubsPtr)==0 ){
206
+ Th_ErrorMessage(interp,
207
+ "could not initialize Tcl stubs: incompatible version",
208
+ (const char *)"", 0);
209
+ return TH_ERROR;
210
+ }
211
+ return TH_OK;
212
+}
213
+#endif /* defined(FOSSIL_ENABLE_TCL_PRIVATE_STUBS) */
214
+
160215
/*
161216
** Creates and initializes a Tcl interpreter for use with the specified TH1
162217
** interpreter. Stores the created Tcl interpreter in the Tcl context supplied
163218
** by the caller. This must be declared here because quite a few functions in
164219
** this file need to use it before it can be defined.
@@ -368,17 +423,17 @@
368423
){
369424
Tcl_Interp *tclInterp;
370425
#if !defined(USE_TCL_EVALOBJV)
371426
Tcl_Command command;
372427
Tcl_CmdInfo cmdInfo;
373
-#endif
428
+#endif /* !defined(USE_TCL_EVALOBJV) */
374429
int rc = TH_OK;
375430
int nResult;
376431
const char *zResult;
377432
#if !defined(USE_TCL_EVALOBJV)
378433
Tcl_Obj *objPtr;
379
-#endif
434
+#endif /* !defined(USE_TCL_EVALOBJV) */
380435
USE_ARGV_TO_OBJV();
381436
382437
if( createTclInterp(interp, ctx)!=TH_OK ){
383438
return TH_ERROR;
384439
}
@@ -410,18 +465,18 @@
410465
Tcl_DecrRefCount(objPtr);
411466
Tcl_Release((ClientData)tclInterp);
412467
return TH_ERROR;
413468
}
414469
Tcl_DecrRefCount(objPtr);
415
-#endif
470
+#endif /* !defined(USE_TCL_EVALOBJV) */
416471
COPY_ARGV_TO_OBJV();
417472
#if defined(USE_TCL_EVALOBJV)
418473
rc = Tcl_EvalObjv(tclInterp, objc, objv, 0);
419474
#else
420475
Tcl_ResetResult(tclInterp);
421476
rc = cmdInfo.objProc(cmdInfo.objClientData, tclInterp, objc, objv);
422
-#endif
477
+#endif /* defined(USE_TCL_EVALOBJV) */
423478
FREE_ARGV_TO_OBJV();
424479
zResult = getTclResult(tclInterp, &nResult);
425480
Th_SetResult(interp, zResult, nResult);
426481
Tcl_Release((ClientData)tclInterp);
427482
rc = notifyPreOrPostEval(1, interp, ctx, argc, argv, argl, rc);
@@ -538,11 +593,11 @@
538593
tcl_CreateInterpProc **pxCreateInterp,
539594
tcl_DeleteInterpProc **pxDeleteInterp
540595
){
541596
#if defined(USE_TCL_STUBS)
542597
char fileName[] = TCL_LIBRARY_NAME;
543
-#endif
598
+#endif /* defined(USE_TCL_STUBS) */
544599
if( !pLibrary || !pxFindExecutable || !pxCreateInterp ){
545600
Th_ErrorMessage(interp,
546601
"invalid Tcl loader argument(s)", (const char *)"", 0);
547602
return TH_ERROR;
548603
}
@@ -601,11 +656,11 @@
601656
*pLibrary = 0;
602657
*pxFindExecutable = Tcl_FindExecutable;
603658
*pxCreateInterp = Tcl_CreateInterp;
604659
*pxDeleteInterp = Tcl_DeleteInterp;
605660
return TH_OK;
606
-#endif
661
+#endif /* defined(USE_TCL_STUBS) */
607662
}
608663
609664
/*
610665
** Sets the "argv0", "argc", and "argv" script variables in the Tcl interpreter
611666
** based on the supplied command line arguments.
@@ -701,17 +756,24 @@
701756
Th_ErrorMessage(interp,
702757
"could not create Tcl interpreter", (const char *)"", 0);
703758
return TH_ERROR;
704759
}
705760
#if defined(USE_TCL_STUBS)
761
+#if defined(FOSSIL_ENABLE_TCL_PRIVATE_STUBS)
762
+ if( initTclStubs(interp, tclInterp)!=TH_OK ){
763
+ tclContext->xDeleteInterp(tclInterp);
764
+ return TH_ERROR;
765
+ }
766
+#else
706767
if( !Tcl_InitStubs(tclInterp, "8.4", 0) ){
707768
Th_ErrorMessage(interp,
708769
"could not initialize Tcl stubs", (const char *)"", 0);
709770
tclContext->xDeleteInterp(tclInterp);
710771
return TH_ERROR;
711772
}
712
-#endif
773
+#endif /* defined(FOSSIL_ENABLE_TCL_PRIVATE_STUBS) */
774
+#endif /* defined(USE_TCL_STUBS) */
713775
if( Tcl_InterpDeleted(tclInterp) ){
714776
Th_ErrorMessage(interp,
715777
"Tcl interpreter appears to be deleted", (const char *)"", 0);
716778
tclContext->xDeleteInterp(tclInterp); /* TODO: Redundant? */
717779
return TH_ERROR;
718780
--- src/th_tcl.c
+++ src/th_tcl.c
@@ -155,10 +155,65 @@
155 const char **argv, /* Array of arguments for the TH1 command. */
156 int *argl, /* Array of lengths for the TH1 command arguments. */
157 int rc /* Recommended notification return value. */
158 );
159
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
160 /*
161 ** Creates and initializes a Tcl interpreter for use with the specified TH1
162 ** interpreter. Stores the created Tcl interpreter in the Tcl context supplied
163 ** by the caller. This must be declared here because quite a few functions in
164 ** this file need to use it before it can be defined.
@@ -368,17 +423,17 @@
368 ){
369 Tcl_Interp *tclInterp;
370 #if !defined(USE_TCL_EVALOBJV)
371 Tcl_Command command;
372 Tcl_CmdInfo cmdInfo;
373 #endif
374 int rc = TH_OK;
375 int nResult;
376 const char *zResult;
377 #if !defined(USE_TCL_EVALOBJV)
378 Tcl_Obj *objPtr;
379 #endif
380 USE_ARGV_TO_OBJV();
381
382 if( createTclInterp(interp, ctx)!=TH_OK ){
383 return TH_ERROR;
384 }
@@ -410,18 +465,18 @@
410 Tcl_DecrRefCount(objPtr);
411 Tcl_Release((ClientData)tclInterp);
412 return TH_ERROR;
413 }
414 Tcl_DecrRefCount(objPtr);
415 #endif
416 COPY_ARGV_TO_OBJV();
417 #if defined(USE_TCL_EVALOBJV)
418 rc = Tcl_EvalObjv(tclInterp, objc, objv, 0);
419 #else
420 Tcl_ResetResult(tclInterp);
421 rc = cmdInfo.objProc(cmdInfo.objClientData, tclInterp, objc, objv);
422 #endif
423 FREE_ARGV_TO_OBJV();
424 zResult = getTclResult(tclInterp, &nResult);
425 Th_SetResult(interp, zResult, nResult);
426 Tcl_Release((ClientData)tclInterp);
427 rc = notifyPreOrPostEval(1, interp, ctx, argc, argv, argl, rc);
@@ -538,11 +593,11 @@
538 tcl_CreateInterpProc **pxCreateInterp,
539 tcl_DeleteInterpProc **pxDeleteInterp
540 ){
541 #if defined(USE_TCL_STUBS)
542 char fileName[] = TCL_LIBRARY_NAME;
543 #endif
544 if( !pLibrary || !pxFindExecutable || !pxCreateInterp ){
545 Th_ErrorMessage(interp,
546 "invalid Tcl loader argument(s)", (const char *)"", 0);
547 return TH_ERROR;
548 }
@@ -601,11 +656,11 @@
601 *pLibrary = 0;
602 *pxFindExecutable = Tcl_FindExecutable;
603 *pxCreateInterp = Tcl_CreateInterp;
604 *pxDeleteInterp = Tcl_DeleteInterp;
605 return TH_OK;
606 #endif
607 }
608
609 /*
610 ** Sets the "argv0", "argc", and "argv" script variables in the Tcl interpreter
611 ** based on the supplied command line arguments.
@@ -701,17 +756,24 @@
701 Th_ErrorMessage(interp,
702 "could not create Tcl interpreter", (const char *)"", 0);
703 return TH_ERROR;
704 }
705 #if defined(USE_TCL_STUBS)
 
 
 
 
 
 
706 if( !Tcl_InitStubs(tclInterp, "8.4", 0) ){
707 Th_ErrorMessage(interp,
708 "could not initialize Tcl stubs", (const char *)"", 0);
709 tclContext->xDeleteInterp(tclInterp);
710 return TH_ERROR;
711 }
712 #endif
 
713 if( Tcl_InterpDeleted(tclInterp) ){
714 Th_ErrorMessage(interp,
715 "Tcl interpreter appears to be deleted", (const char *)"", 0);
716 tclContext->xDeleteInterp(tclInterp); /* TODO: Redundant? */
717 return TH_ERROR;
718
--- src/th_tcl.c
+++ src/th_tcl.c
@@ -155,10 +155,65 @@
155 const char **argv, /* Array of arguments for the TH1 command. */
156 int *argl, /* Array of lengths for the TH1 command arguments. */
157 int rc /* Recommended notification return value. */
158 );
159
160 /*
161 ** Are we using our own private implementation of the Tcl stubs mechanism? If
162 ** this is enabled, it prevents the user from having to link against the Tcl
163 ** stubs library for the target platform, which may not be readily available.
164 */
165 #if defined(FOSSIL_ENABLE_TCL_PRIVATE_STUBS)
166 /*
167 ** HACK: Using some preprocessor magic and a private static variable, redirect
168 ** the Tcl API calls [found within this file] to the function pointers
169 ** that will be contained in our private Tcl stubs table. This takes
170 ** advantage of the fact that the Tcl headers always define the Tcl API
171 ** functions in terms of the "tclStubsPtr" variable.
172 */
173 #define tclStubsPtr privateTclStubsPtr
174 static const TclStubs *tclStubsPtr = NULL;
175
176 /*
177 ** Create a Tcl interpreter structure that mirrors just enough fields to get
178 ** it up and running successfully with our private implementation of the Tcl
179 ** stubs mechanism.
180 */
181 struct PrivateTclInterp {
182 char *result;
183 Tcl_FreeProc *freeProc;
184 int errorLine;
185 const struct TclStubs *stubTable;
186 };
187
188 /*
189 ** Fossil can now be compiled without linking to the actual Tcl stubs library.
190 ** In that case, this function will be used to perform those steps that would
191 ** normally be performed within the Tcl stubs library.
192 */
193 static int initTclStubs(
194 Th_Interp *interp,
195 Tcl_Interp *tclInterp
196 ){
197 tclStubsPtr = ((struct PrivateTclInterp *)tclInterp)->stubTable;
198 if( !tclStubsPtr || (tclStubsPtr->magic!=TCL_STUB_MAGIC) ){
199 Th_ErrorMessage(interp,
200 "could not initialize Tcl stubs: incompatible mechanism",
201 (const char *)"", 0);
202 return TH_ERROR;
203 }
204 /* NOTE: At this point, the Tcl API functions should be available. */
205 if( Tcl_PkgRequireEx(tclInterp, "Tcl", "8.4", 0, (void *)&tclStubsPtr)==0 ){
206 Th_ErrorMessage(interp,
207 "could not initialize Tcl stubs: incompatible version",
208 (const char *)"", 0);
209 return TH_ERROR;
210 }
211 return TH_OK;
212 }
213 #endif /* defined(FOSSIL_ENABLE_TCL_PRIVATE_STUBS) */
214
215 /*
216 ** Creates and initializes a Tcl interpreter for use with the specified TH1
217 ** interpreter. Stores the created Tcl interpreter in the Tcl context supplied
218 ** by the caller. This must be declared here because quite a few functions in
219 ** this file need to use it before it can be defined.
@@ -368,17 +423,17 @@
423 ){
424 Tcl_Interp *tclInterp;
425 #if !defined(USE_TCL_EVALOBJV)
426 Tcl_Command command;
427 Tcl_CmdInfo cmdInfo;
428 #endif /* !defined(USE_TCL_EVALOBJV) */
429 int rc = TH_OK;
430 int nResult;
431 const char *zResult;
432 #if !defined(USE_TCL_EVALOBJV)
433 Tcl_Obj *objPtr;
434 #endif /* !defined(USE_TCL_EVALOBJV) */
435 USE_ARGV_TO_OBJV();
436
437 if( createTclInterp(interp, ctx)!=TH_OK ){
438 return TH_ERROR;
439 }
@@ -410,18 +465,18 @@
465 Tcl_DecrRefCount(objPtr);
466 Tcl_Release((ClientData)tclInterp);
467 return TH_ERROR;
468 }
469 Tcl_DecrRefCount(objPtr);
470 #endif /* !defined(USE_TCL_EVALOBJV) */
471 COPY_ARGV_TO_OBJV();
472 #if defined(USE_TCL_EVALOBJV)
473 rc = Tcl_EvalObjv(tclInterp, objc, objv, 0);
474 #else
475 Tcl_ResetResult(tclInterp);
476 rc = cmdInfo.objProc(cmdInfo.objClientData, tclInterp, objc, objv);
477 #endif /* defined(USE_TCL_EVALOBJV) */
478 FREE_ARGV_TO_OBJV();
479 zResult = getTclResult(tclInterp, &nResult);
480 Th_SetResult(interp, zResult, nResult);
481 Tcl_Release((ClientData)tclInterp);
482 rc = notifyPreOrPostEval(1, interp, ctx, argc, argv, argl, rc);
@@ -538,11 +593,11 @@
593 tcl_CreateInterpProc **pxCreateInterp,
594 tcl_DeleteInterpProc **pxDeleteInterp
595 ){
596 #if defined(USE_TCL_STUBS)
597 char fileName[] = TCL_LIBRARY_NAME;
598 #endif /* defined(USE_TCL_STUBS) */
599 if( !pLibrary || !pxFindExecutable || !pxCreateInterp ){
600 Th_ErrorMessage(interp,
601 "invalid Tcl loader argument(s)", (const char *)"", 0);
602 return TH_ERROR;
603 }
@@ -601,11 +656,11 @@
656 *pLibrary = 0;
657 *pxFindExecutable = Tcl_FindExecutable;
658 *pxCreateInterp = Tcl_CreateInterp;
659 *pxDeleteInterp = Tcl_DeleteInterp;
660 return TH_OK;
661 #endif /* defined(USE_TCL_STUBS) */
662 }
663
664 /*
665 ** Sets the "argv0", "argc", and "argv" script variables in the Tcl interpreter
666 ** based on the supplied command line arguments.
@@ -701,17 +756,24 @@
756 Th_ErrorMessage(interp,
757 "could not create Tcl interpreter", (const char *)"", 0);
758 return TH_ERROR;
759 }
760 #if defined(USE_TCL_STUBS)
761 #if defined(FOSSIL_ENABLE_TCL_PRIVATE_STUBS)
762 if( initTclStubs(interp, tclInterp)!=TH_OK ){
763 tclContext->xDeleteInterp(tclInterp);
764 return TH_ERROR;
765 }
766 #else
767 if( !Tcl_InitStubs(tclInterp, "8.4", 0) ){
768 Th_ErrorMessage(interp,
769 "could not initialize Tcl stubs", (const char *)"", 0);
770 tclContext->xDeleteInterp(tclInterp);
771 return TH_ERROR;
772 }
773 #endif /* defined(FOSSIL_ENABLE_TCL_PRIVATE_STUBS) */
774 #endif /* defined(USE_TCL_STUBS) */
775 if( Tcl_InterpDeleted(tclInterp) ){
776 Th_ErrorMessage(interp,
777 "Tcl interpreter appears to be deleted", (const char *)"", 0);
778 tclContext->xDeleteInterp(tclInterp); /* TODO: Redundant? */
779 return TH_ERROR;
780
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -52,13 +52,17 @@
5252
5353
#### Enable scripting support via Tcl/Tk
5454
#
5555
# FOSSIL_ENABLE_TCL = 1
5656
57
-#### Load Tcl using the stubs mechanism
57
+#### Load Tcl using the stubs library mechanism
5858
#
5959
# FOSSIL_ENABLE_TCL_STUBS = 1
60
+
61
+#### Load Tcl using the private stubs mechanism
62
+#
63
+# FOSSIL_ENABLE_TCL_PRIVATE_STUBS = 1
6064
6165
#### Use the Tcl source directory instead of the install directory?
6266
# This is useful when Tcl has been compiled statically with MinGW.
6367
#
6468
FOSSIL_TCL_SOURCE = 1
@@ -111,11 +115,13 @@
111115
TCLLIBDIR = $(TCLDIR)/lib
112116
113117
#### Tcl: Which Tcl library do we want to use (8.4, 8.5, 8.6, etc)?
114118
#
115119
ifdef FOSSIL_ENABLE_TCL_STUBS
120
+ifndef FOSSIL_ENABLE_TCL_PRIVATE_STUBS
116121
LIBTCL = -ltclstub86
122
+endif
117123
TCLTARGET = libtclstub86.a
118124
else
119125
LIBTCL = -ltcl86
120126
TCLTARGET = binaries
121127
endif
@@ -175,10 +181,14 @@
175181
RCC += -DFOSSIL_ENABLE_TCL=1
176182
# Either statically linked or via stubs
177183
ifdef FOSSIL_ENABLE_TCL_STUBS
178184
TCC += -DFOSSIL_ENABLE_TCL_STUBS=1 -DUSE_TCL_STUBS
179185
RCC += -DFOSSIL_ENABLE_TCL_STUBS=1 -DUSE_TCL_STUBS
186
+ifdef FOSSIL_ENABLE_TCL_PRIVATE_STUBS
187
+TCC += -DFOSSIL_ENABLE_TCL_PRIVATE_STUBS=1
188
+RCC += -DFOSSIL_ENABLE_TCL_PRIVATE_STUBS=1
189
+endif
180190
else
181191
TCC += -DSTATIC_BUILD
182192
RCC += -DSTATIC_BUILD
183193
endif
184194
endif
185195
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -52,13 +52,17 @@
52
53 #### Enable scripting support via Tcl/Tk
54 #
55 # FOSSIL_ENABLE_TCL = 1
56
57 #### Load Tcl using the stubs mechanism
58 #
59 # FOSSIL_ENABLE_TCL_STUBS = 1
 
 
 
 
60
61 #### Use the Tcl source directory instead of the install directory?
62 # This is useful when Tcl has been compiled statically with MinGW.
63 #
64 FOSSIL_TCL_SOURCE = 1
@@ -111,11 +115,13 @@
111 TCLLIBDIR = $(TCLDIR)/lib
112
113 #### Tcl: Which Tcl library do we want to use (8.4, 8.5, 8.6, etc)?
114 #
115 ifdef FOSSIL_ENABLE_TCL_STUBS
 
116 LIBTCL = -ltclstub86
 
117 TCLTARGET = libtclstub86.a
118 else
119 LIBTCL = -ltcl86
120 TCLTARGET = binaries
121 endif
@@ -175,10 +181,14 @@
175 RCC += -DFOSSIL_ENABLE_TCL=1
176 # Either statically linked or via stubs
177 ifdef FOSSIL_ENABLE_TCL_STUBS
178 TCC += -DFOSSIL_ENABLE_TCL_STUBS=1 -DUSE_TCL_STUBS
179 RCC += -DFOSSIL_ENABLE_TCL_STUBS=1 -DUSE_TCL_STUBS
 
 
 
 
180 else
181 TCC += -DSTATIC_BUILD
182 RCC += -DSTATIC_BUILD
183 endif
184 endif
185
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -52,13 +52,17 @@
52
53 #### Enable scripting support via Tcl/Tk
54 #
55 # FOSSIL_ENABLE_TCL = 1
56
57 #### Load Tcl using the stubs library mechanism
58 #
59 # FOSSIL_ENABLE_TCL_STUBS = 1
60
61 #### Load Tcl using the private stubs mechanism
62 #
63 # FOSSIL_ENABLE_TCL_PRIVATE_STUBS = 1
64
65 #### Use the Tcl source directory instead of the install directory?
66 # This is useful when Tcl has been compiled statically with MinGW.
67 #
68 FOSSIL_TCL_SOURCE = 1
@@ -111,11 +115,13 @@
115 TCLLIBDIR = $(TCLDIR)/lib
116
117 #### Tcl: Which Tcl library do we want to use (8.4, 8.5, 8.6, etc)?
118 #
119 ifdef FOSSIL_ENABLE_TCL_STUBS
120 ifndef FOSSIL_ENABLE_TCL_PRIVATE_STUBS
121 LIBTCL = -ltclstub86
122 endif
123 TCLTARGET = libtclstub86.a
124 else
125 LIBTCL = -ltcl86
126 TCLTARGET = binaries
127 endif
@@ -175,10 +181,14 @@
181 RCC += -DFOSSIL_ENABLE_TCL=1
182 # Either statically linked or via stubs
183 ifdef FOSSIL_ENABLE_TCL_STUBS
184 TCC += -DFOSSIL_ENABLE_TCL_STUBS=1 -DUSE_TCL_STUBS
185 RCC += -DFOSSIL_ENABLE_TCL_STUBS=1 -DUSE_TCL_STUBS
186 ifdef FOSSIL_ENABLE_TCL_PRIVATE_STUBS
187 TCC += -DFOSSIL_ENABLE_TCL_PRIVATE_STUBS=1
188 RCC += -DFOSSIL_ENABLE_TCL_PRIVATE_STUBS=1
189 endif
190 else
191 TCC += -DSTATIC_BUILD
192 RCC += -DSTATIC_BUILD
193 endif
194 endif
195
--- win/Makefile.mingw.mistachkin
+++ win/Makefile.mingw.mistachkin
@@ -52,13 +52,17 @@
5252
5353
#### Enable scripting support via Tcl/Tk
5454
#
5555
FOSSIL_ENABLE_TCL = 1
5656
57
-#### Load Tcl using the stubs mechanism
57
+#### Load Tcl using the stubs library mechanism
5858
#
5959
FOSSIL_ENABLE_TCL_STUBS = 1
60
+
61
+#### Load Tcl using the private stubs mechanism
62
+#
63
+# FOSSIL_ENABLE_TCL_PRIVATE_STUBS = 1
6064
6165
#### Use the Tcl source directory instead of the install directory?
6266
# This is useful when Tcl has been compiled statically with MinGW.
6367
#
6468
FOSSIL_TCL_SOURCE = 1
@@ -111,11 +115,13 @@
111115
TCLLIBDIR = $(TCLDIR)/lib
112116
113117
#### Tcl: Which Tcl library do we want to use (8.4, 8.5, 8.6, etc)?
114118
#
115119
ifdef FOSSIL_ENABLE_TCL_STUBS
120
+ifndef FOSSIL_ENABLE_TCL_PRIVATE_STUBS
116121
LIBTCL = -ltclstub86
122
+endif
117123
TCLTARGET = libtclstub86.a
118124
else
119125
LIBTCL = -ltcl86
120126
TCLTARGET = binaries
121127
endif
@@ -175,10 +181,14 @@
175181
RCC += -DFOSSIL_ENABLE_TCL=1
176182
# Either statically linked or via stubs
177183
ifdef FOSSIL_ENABLE_TCL_STUBS
178184
TCC += -DFOSSIL_ENABLE_TCL_STUBS=1 -DUSE_TCL_STUBS
179185
RCC += -DFOSSIL_ENABLE_TCL_STUBS=1 -DUSE_TCL_STUBS
186
+ifdef FOSSIL_ENABLE_TCL_PRIVATE_STUBS
187
+TCC += -DFOSSIL_ENABLE_TCL_PRIVATE_STUBS=1
188
+RCC += -DFOSSIL_ENABLE_TCL_PRIVATE_STUBS=1
189
+endif
180190
else
181191
TCC += -DSTATIC_BUILD
182192
RCC += -DSTATIC_BUILD
183193
endif
184194
endif
185195
--- win/Makefile.mingw.mistachkin
+++ win/Makefile.mingw.mistachkin
@@ -52,13 +52,17 @@
52
53 #### Enable scripting support via Tcl/Tk
54 #
55 FOSSIL_ENABLE_TCL = 1
56
57 #### Load Tcl using the stubs mechanism
58 #
59 FOSSIL_ENABLE_TCL_STUBS = 1
 
 
 
 
60
61 #### Use the Tcl source directory instead of the install directory?
62 # This is useful when Tcl has been compiled statically with MinGW.
63 #
64 FOSSIL_TCL_SOURCE = 1
@@ -111,11 +115,13 @@
111 TCLLIBDIR = $(TCLDIR)/lib
112
113 #### Tcl: Which Tcl library do we want to use (8.4, 8.5, 8.6, etc)?
114 #
115 ifdef FOSSIL_ENABLE_TCL_STUBS
 
116 LIBTCL = -ltclstub86
 
117 TCLTARGET = libtclstub86.a
118 else
119 LIBTCL = -ltcl86
120 TCLTARGET = binaries
121 endif
@@ -175,10 +181,14 @@
175 RCC += -DFOSSIL_ENABLE_TCL=1
176 # Either statically linked or via stubs
177 ifdef FOSSIL_ENABLE_TCL_STUBS
178 TCC += -DFOSSIL_ENABLE_TCL_STUBS=1 -DUSE_TCL_STUBS
179 RCC += -DFOSSIL_ENABLE_TCL_STUBS=1 -DUSE_TCL_STUBS
 
 
 
 
180 else
181 TCC += -DSTATIC_BUILD
182 RCC += -DSTATIC_BUILD
183 endif
184 endif
185
--- win/Makefile.mingw.mistachkin
+++ win/Makefile.mingw.mistachkin
@@ -52,13 +52,17 @@
52
53 #### Enable scripting support via Tcl/Tk
54 #
55 FOSSIL_ENABLE_TCL = 1
56
57 #### Load Tcl using the stubs library mechanism
58 #
59 FOSSIL_ENABLE_TCL_STUBS = 1
60
61 #### Load Tcl using the private stubs mechanism
62 #
63 # FOSSIL_ENABLE_TCL_PRIVATE_STUBS = 1
64
65 #### Use the Tcl source directory instead of the install directory?
66 # This is useful when Tcl has been compiled statically with MinGW.
67 #
68 FOSSIL_TCL_SOURCE = 1
@@ -111,11 +115,13 @@
115 TCLLIBDIR = $(TCLDIR)/lib
116
117 #### Tcl: Which Tcl library do we want to use (8.4, 8.5, 8.6, etc)?
118 #
119 ifdef FOSSIL_ENABLE_TCL_STUBS
120 ifndef FOSSIL_ENABLE_TCL_PRIVATE_STUBS
121 LIBTCL = -ltclstub86
122 endif
123 TCLTARGET = libtclstub86.a
124 else
125 LIBTCL = -ltcl86
126 TCLTARGET = binaries
127 endif
@@ -175,10 +181,14 @@
181 RCC += -DFOSSIL_ENABLE_TCL=1
182 # Either statically linked or via stubs
183 ifdef FOSSIL_ENABLE_TCL_STUBS
184 TCC += -DFOSSIL_ENABLE_TCL_STUBS=1 -DUSE_TCL_STUBS
185 RCC += -DFOSSIL_ENABLE_TCL_STUBS=1 -DUSE_TCL_STUBS
186 ifdef FOSSIL_ENABLE_TCL_PRIVATE_STUBS
187 TCC += -DFOSSIL_ENABLE_TCL_PRIVATE_STUBS=1
188 RCC += -DFOSSIL_ENABLE_TCL_PRIVATE_STUBS=1
189 endif
190 else
191 TCC += -DSTATIC_BUILD
192 RCC += -DSTATIC_BUILD
193 endif
194 endif
195

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button