prasb commited on
Commit
d4ef5ce
·
verified ·
1 Parent(s): 4c0a02c

Add files using upload-large-folder tool

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +53 -0
  2. my_container_sandbox/workspace/anaconda3/include/cudnn.h +78 -0
  3. my_container_sandbox/workspace/anaconda3/include/cudnn_adv_infer.h +658 -0
  4. my_container_sandbox/workspace/anaconda3/include/cudnn_adv_infer_v8.h +658 -0
  5. my_container_sandbox/workspace/anaconda3/include/cudnn_adv_train_v8.h +540 -0
  6. my_container_sandbox/workspace/anaconda3/include/cudnn_backend.h +608 -0
  7. my_container_sandbox/workspace/anaconda3/include/cudnn_cnn_train.h +219 -0
  8. my_container_sandbox/workspace/anaconda3/include/cudnn_cnn_train_v8.h +219 -0
  9. my_container_sandbox/workspace/anaconda3/include/cudnn_v8.h +78 -0
  10. my_container_sandbox/workspace/anaconda3/include/cudnn_version_v8.h +109 -0
  11. my_container_sandbox/workspace/anaconda3/include/curses.h +0 -0
  12. my_container_sandbox/workspace/anaconda3/include/cursesp.h +271 -0
  13. my_container_sandbox/workspace/anaconda3/include/cursslk.h +240 -0
  14. my_container_sandbox/workspace/anaconda3/include/fakemysql.h +335 -0
  15. my_container_sandbox/workspace/anaconda3/include/fakepq.h +46 -0
  16. my_container_sandbox/workspace/anaconda3/include/fakesql.h +282 -0
  17. my_container_sandbox/workspace/anaconda3/include/ffitarget.h +162 -0
  18. my_container_sandbox/workspace/anaconda3/include/form.h +460 -0
  19. my_container_sandbox/workspace/anaconda3/include/itcl2TclOO.h +33 -0
  20. my_container_sandbox/workspace/anaconda3/include/itclDecls.h +211 -0
  21. my_container_sandbox/workspace/anaconda3/include/itclInt.h +843 -0
  22. my_container_sandbox/workspace/anaconda3/include/itclIntDecls.h +1046 -0
  23. my_container_sandbox/workspace/anaconda3/include/lzma.h +328 -0
  24. my_container_sandbox/workspace/anaconda3/include/menu.h +281 -0
  25. my_container_sandbox/workspace/anaconda3/include/mysqlStubs.h +101 -0
  26. my_container_sandbox/workspace/anaconda3/include/ncurses.h +0 -0
  27. my_container_sandbox/workspace/anaconda3/include/odbcStubs.h +78 -0
  28. my_container_sandbox/workspace/anaconda3/include/sqlite3.h +0 -0
  29. my_container_sandbox/workspace/anaconda3/include/tcl.h +2639 -0
  30. my_container_sandbox/workspace/anaconda3/include/tclIntPlatDecls.h +600 -0
  31. my_container_sandbox/workspace/anaconda3/include/tclOO.h +147 -0
  32. my_container_sandbox/workspace/anaconda3/include/tclOOInt.h +607 -0
  33. my_container_sandbox/workspace/anaconda3/include/tclOOIntDecls.h +166 -0
  34. my_container_sandbox/workspace/anaconda3/include/tclPort.h +46 -0
  35. my_container_sandbox/workspace/anaconda3/include/tclThread.h +36 -0
  36. my_container_sandbox/workspace/anaconda3/include/tdbcDecls.h +70 -0
  37. my_container_sandbox/workspace/anaconda3/include/tdbcInt.h +40 -0
  38. my_container_sandbox/workspace/anaconda3/include/tk.h +1635 -0
  39. my_container_sandbox/workspace/anaconda3/include/tk3d.h +85 -0
  40. my_container_sandbox/workspace/anaconda3/include/tkArray.h +610 -0
  41. my_container_sandbox/workspace/anaconda3/include/tkColor.h +75 -0
  42. my_container_sandbox/workspace/anaconda3/include/tkDecls.h +1759 -0
  43. my_container_sandbox/workspace/anaconda3/include/tkEntry.h +298 -0
  44. my_container_sandbox/workspace/anaconda3/include/tkIntDecls.h +1228 -0
  45. my_container_sandbox/workspace/anaconda3/include/tkMacOSX.h +34 -0
  46. my_container_sandbox/workspace/anaconda3/include/tkMacOSXConstants.h +119 -0
  47. my_container_sandbox/workspace/anaconda3/include/tkMacOSXEvent.h +25 -0
  48. my_container_sandbox/workspace/anaconda3/include/tkMacOSXFont.h +32 -0
  49. my_container_sandbox/workspace/anaconda3/include/tkMacOSXInt.h +199 -0
  50. my_container_sandbox/workspace/anaconda3/include/tkMacOSXKeysyms.h +1308 -0
.gitattributes CHANGED
@@ -81,3 +81,56 @@ my_container_sandbox/workspace/anaconda3/lib/libtinfow.a filter=lfs diff=lfs mer
81
  my_container_sandbox/workspace/anaconda3/lib/libcudnn.so.8 filter=lfs diff=lfs merge=lfs -text
82
  my_container_sandbox/workspace/anaconda3/lib/libcufftw.so.10.4.2.109 filter=lfs diff=lfs merge=lfs -text
83
  my_container_sandbox/workspace/anaconda3/lib/libtinfow.so filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
81
  my_container_sandbox/workspace/anaconda3/lib/libcudnn.so.8 filter=lfs diff=lfs merge=lfs -text
82
  my_container_sandbox/workspace/anaconda3/lib/libcufftw.so.10.4.2.109 filter=lfs diff=lfs merge=lfs -text
83
  my_container_sandbox/workspace/anaconda3/lib/libtinfow.so filter=lfs diff=lfs merge=lfs -text
84
+ my_container_sandbox/workspace/anaconda3/lib/liblsan.so.0 filter=lfs diff=lfs merge=lfs -text
85
+ my_container_sandbox/workspace/anaconda3/lib/liblzma.so.5.4.6 filter=lfs diff=lfs merge=lfs -text
86
+ my_container_sandbox/workspace/anaconda3/lib/libncurses++.a filter=lfs diff=lfs merge=lfs -text
87
+ my_container_sandbox/workspace/anaconda3/lib/libnppitc.so.11.3.3.95 filter=lfs diff=lfs merge=lfs -text
88
+ my_container_sandbox/workspace/anaconda3/lib/libnvjpeg.so.11.5.0.109 filter=lfs diff=lfs merge=lfs -text
89
+ my_container_sandbox/workspace/anaconda3/lib/libcuinj64.so.11.3.111 filter=lfs diff=lfs merge=lfs -text
90
+ my_container_sandbox/workspace/anaconda3/lib/libdevice.10.bc filter=lfs diff=lfs merge=lfs -text
91
+ my_container_sandbox/workspace/anaconda3/lib/libcufftw.so.10 filter=lfs diff=lfs merge=lfs -text
92
+ my_container_sandbox/workspace/anaconda3/lib/libnvblas.so.11.5.1.109 filter=lfs diff=lfs merge=lfs -text
93
+ my_container_sandbox/workspace/anaconda3/lib/libtinfow.so.6 filter=lfs diff=lfs merge=lfs -text
94
+ my_container_sandbox/workspace/anaconda3/lib/liblzma.so.5 filter=lfs diff=lfs merge=lfs -text
95
+ my_container_sandbox/workspace/anaconda3/lib/libnvblas.so filter=lfs diff=lfs merge=lfs -text
96
+ my_container_sandbox/workspace/anaconda3/lib/libnppisu.so filter=lfs diff=lfs merge=lfs -text
97
+ my_container_sandbox/workspace/anaconda3/lib/libnppitc.so filter=lfs diff=lfs merge=lfs -text
98
+ my_container_sandbox/workspace/anaconda3/lib/libssl.a filter=lfs diff=lfs merge=lfs -text
99
+ my_container_sandbox/workspace/anaconda3/lib/libcudart.so.11.3.109 filter=lfs diff=lfs merge=lfs -text
100
+ my_container_sandbox/workspace/anaconda3/lib/libgomp.so filter=lfs diff=lfs merge=lfs -text
101
+ my_container_sandbox/workspace/anaconda3/lib/libtinfo.so.6.4 filter=lfs diff=lfs merge=lfs -text
102
+ my_container_sandbox/workspace/anaconda3/lib/libitm.so filter=lfs diff=lfs merge=lfs -text
103
+ my_container_sandbox/workspace/anaconda3/lib/libtk8.6.so filter=lfs diff=lfs merge=lfs -text
104
+ my_container_sandbox/workspace/anaconda3/lib/libcrypto.a filter=lfs diff=lfs merge=lfs -text
105
+ my_container_sandbox/workspace/anaconda3/lib/libsqlite3.so.0 filter=lfs diff=lfs merge=lfs -text
106
+ my_container_sandbox/workspace/anaconda3/lib/libtsan.so.0 filter=lfs diff=lfs merge=lfs -text
107
+ my_container_sandbox/workspace/anaconda3/lib/libsqlite3.so filter=lfs diff=lfs merge=lfs -text
108
+ my_container_sandbox/workspace/anaconda3/lib/libnvjpeg.so filter=lfs diff=lfs merge=lfs -text
109
+ my_container_sandbox/workspace/anaconda3/lib/libasan.so.6.0.0 filter=lfs diff=lfs merge=lfs -text
110
+ my_container_sandbox/workspace/anaconda3/lib/libtsan.so.0.0.0 filter=lfs diff=lfs merge=lfs -text
111
+ my_container_sandbox/workspace/anaconda3/lib/libcrypto.so.1.1 filter=lfs diff=lfs merge=lfs -text
112
+ my_container_sandbox/workspace/anaconda3/lib/libitm.so.1.0.0 filter=lfs diff=lfs merge=lfs -text
113
+ my_container_sandbox/workspace/anaconda3/lib/libnppim.so filter=lfs diff=lfs merge=lfs -text
114
+ my_container_sandbox/workspace/anaconda3/lib/libcrypto.so filter=lfs diff=lfs merge=lfs -text
115
+ my_container_sandbox/workspace/anaconda3/lib/libnvrtc-builtins.so filter=lfs diff=lfs merge=lfs -text
116
+ my_container_sandbox/workspace/anaconda3/lib/libnvjpeg.so.11 filter=lfs diff=lfs merge=lfs -text
117
+ my_container_sandbox/workspace/anaconda3/lib/libatomic.so.1.2.0 filter=lfs diff=lfs merge=lfs -text
118
+ my_container_sandbox/workspace/anaconda3/lib/libnppisu.so.11 filter=lfs diff=lfs merge=lfs -text
119
+ my_container_sandbox/workspace/anaconda3/lib/libnppidei.so.11 filter=lfs diff=lfs merge=lfs -text
120
+ my_container_sandbox/workspace/anaconda3/lib/libnvrtc-builtins.so.11.3.109 filter=lfs diff=lfs merge=lfs -text
121
+ my_container_sandbox/workspace/anaconda3/lib/liblsan.so filter=lfs diff=lfs merge=lfs -text
122
+ my_container_sandbox/workspace/anaconda3/lib/libncursesw.so.6 filter=lfs diff=lfs merge=lfs -text
123
+ my_container_sandbox/workspace/anaconda3/lib/libcudnn.so filter=lfs diff=lfs merge=lfs -text
124
+ my_container_sandbox/workspace/anaconda3/lib/libnppim.so.11.3.3.95 filter=lfs diff=lfs merge=lfs -text
125
+ my_container_sandbox/workspace/anaconda3/lib/libstdc++.so.6.0.32 filter=lfs diff=lfs merge=lfs -text
126
+ my_container_sandbox/workspace/anaconda3/lib/libnppidei.so filter=lfs diff=lfs merge=lfs -text
127
+ my_container_sandbox/workspace/anaconda3/lib/libnppidei.so.11.3.3.95 filter=lfs diff=lfs merge=lfs -text
128
+ my_container_sandbox/workspace/anaconda3/lib/libnppim.so.11 filter=lfs diff=lfs merge=lfs -text
129
+ my_container_sandbox/workspace/anaconda3/lib/libpython3.8.so filter=lfs diff=lfs merge=lfs -text
130
+ my_container_sandbox/workspace/anaconda3/lib/libnvrtc-builtins.so.11.3 filter=lfs diff=lfs merge=lfs -text
131
+ my_container_sandbox/workspace/anaconda3/lib/libncursesw.so filter=lfs diff=lfs merge=lfs -text
132
+ my_container_sandbox/workspace/anaconda3/lib/libubsan.so filter=lfs diff=lfs merge=lfs -text
133
+ my_container_sandbox/workspace/anaconda3/lib/libcudart.so.11.0 filter=lfs diff=lfs merge=lfs -text
134
+ my_container_sandbox/workspace/anaconda3/lib/libasan.so.6 filter=lfs diff=lfs merge=lfs -text
135
+ my_container_sandbox/workspace/anaconda3/lib/libasan.so filter=lfs diff=lfs merge=lfs -text
136
+ my_container_sandbox/workspace/anaconda3/lib/libquadmath.so.0.0.0 filter=lfs diff=lfs merge=lfs -text
my_container_sandbox/workspace/anaconda3/include/cudnn.h ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Copyright 2014-2023 NVIDIA Corporation. All rights reserved.
3
+ *
4
+ * NOTICE TO LICENSEE:
5
+ *
6
+ * This source code and/or documentation ("Licensed Deliverables") are
7
+ * subject to NVIDIA intellectual property rights under U.S. and
8
+ * international Copyright laws.
9
+ *
10
+ * These Licensed Deliverables contained herein is PROPRIETARY and
11
+ * CONFIDENTIAL to NVIDIA and is being provided under the terms and
12
+ * conditions of a form of NVIDIA software license agreement by and
13
+ * between NVIDIA and Licensee ("License Agreement") or electronically
14
+ * accepted by Licensee. Notwithstanding any terms or conditions to
15
+ * the contrary in the License Agreement, reproduction or disclosure
16
+ * of the Licensed Deliverables to any third party without the express
17
+ * written consent of NVIDIA is prohibited.
18
+ *
19
+ * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
20
+ * LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE
21
+ * SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE. IT IS
22
+ * PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND.
23
+ * NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED
24
+ * DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY,
25
+ * NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE.
26
+ * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
27
+ * LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY
28
+ * SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY
29
+ * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
30
+ * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
31
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
32
+ * OF THESE LICENSED DELIVERABLES.
33
+ *
34
+ * U.S. Government End Users. These Licensed Deliverables are a
35
+ * "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT
36
+ * 1995), consisting of "commercial computer software" and "commercial
37
+ * computer software documentation" as such terms are used in 48
38
+ * C.F.R. 12.212 (SEPT 1995) and is provided to the U.S. Government
39
+ * only as a commercial end item. Consistent with 48 C.F.R.12.212 and
40
+ * 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all
41
+ * U.S. Government End Users acquire the Licensed Deliverables with
42
+ * only those rights set forth herein.
43
+ *
44
+ * Any use of the Licensed Deliverables in individual and commercial
45
+ * software must include, in the user documentation and internal
46
+ * comments to the code, the above Disclaimer and U.S. Government End
47
+ * Users Notice.
48
+ */
49
+
50
+ /* cudnn : Neural Networks Library
51
+
52
+ */
53
+
54
+ #if !defined(CUDNN_H_)
55
+ #define CUDNN_H_
56
+
57
+ #include <cuda_runtime.h>
58
+ #include <stdint.h>
59
+
60
+ #include "cudnn_version.h"
61
+ #include "cudnn_ops_infer.h"
62
+ #include "cudnn_ops_train.h"
63
+ #include "cudnn_adv_infer.h"
64
+ #include "cudnn_adv_train.h"
65
+ #include "cudnn_cnn_infer.h"
66
+ #include "cudnn_cnn_train.h"
67
+
68
+ #include "cudnn_backend.h"
69
+
70
+ #if defined(__cplusplus)
71
+ extern "C" {
72
+ #endif
73
+
74
+ #if defined(__cplusplus)
75
+ }
76
+ #endif
77
+
78
+ #endif /* CUDNN_H_ */
my_container_sandbox/workspace/anaconda3/include/cudnn_adv_infer.h ADDED
@@ -0,0 +1,658 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Copyright 2014-2023 NVIDIA Corporation. All rights reserved.
3
+ *
4
+ * NOTICE TO LICENSEE:
5
+ *
6
+ * This source code and/or documentation ("Licensed Deliverables") are
7
+ * subject to NVIDIA intellectual property rights under U.S. and
8
+ * international Copyright laws.
9
+ *
10
+ * These Licensed Deliverables contained herein is PROPRIETARY and
11
+ * CONFIDENTIAL to NVIDIA and is being provided under the terms and
12
+ * conditions of a form of NVIDIA software license agreement by and
13
+ * between NVIDIA and Licensee ("License Agreement") or electronically
14
+ * accepted by Licensee. Notwithstanding any terms or conditions to
15
+ * the contrary in the License Agreement, reproduction or disclosure
16
+ * of the Licensed Deliverables to any third party without the express
17
+ * written consent of NVIDIA is prohibited.
18
+ *
19
+ * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
20
+ * LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE
21
+ * SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE. IT IS
22
+ * PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND.
23
+ * NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED
24
+ * DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY,
25
+ * NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE.
26
+ * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
27
+ * LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY
28
+ * SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY
29
+ * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
30
+ * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
31
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
32
+ * OF THESE LICENSED DELIVERABLES.
33
+ *
34
+ * U.S. Government End Users. These Licensed Deliverables are a
35
+ * "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT
36
+ * 1995), consisting of "commercial computer software" and "commercial
37
+ * computer software documentation" as such terms are used in 48
38
+ * C.F.R. 12.212 (SEPT 1995) and is provided to the U.S. Government
39
+ * only as a commercial end item. Consistent with 48 C.F.R.12.212 and
40
+ * 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all
41
+ * U.S. Government End Users acquire the Licensed Deliverables with
42
+ * only those rights set forth herein.
43
+ *
44
+ * Any use of the Licensed Deliverables in individual and commercial
45
+ * software must include, in the user documentation and internal
46
+ * comments to the code, the above Disclaimer and U.S. Government End
47
+ * Users Notice.
48
+ */
49
+
50
+ /* cudnn_adv_infer : cuDNN's advanced and experimental features.
51
+
52
+ */
53
+
54
+ #if !defined(CUDNN_ADV_INFER_H_)
55
+ #define CUDNN_ADV_INFER_H_
56
+
57
+ #include <cuda_runtime.h>
58
+ #include <stdint.h>
59
+
60
+ #include "cudnn_version.h"
61
+ #include "cudnn_ops_infer.h"
62
+
63
+ /* These version numbers are autogenerated, do not edit manually. */
64
+ #define CUDNN_ADV_INFER_MAJOR 8
65
+ #define CUDNN_ADV_INFER_MINOR 9
66
+ #define CUDNN_ADV_INFER_PATCH 2
67
+
68
+ #if (CUDNN_ADV_INFER_MAJOR != CUDNN_MAJOR) || (CUDNN_ADV_INFER_MINOR != CUDNN_MINOR) || \
69
+ (CUDNN_ADV_INFER_PATCH != CUDNN_PATCHLEVEL)
70
+ #error Version mismatch in cuDNN ADV INFER!!!
71
+ #endif
72
+
73
+ #if defined(__cplusplus)
74
+ extern "C" {
75
+ #endif
76
+
77
+ /* BASIC RNN API */
78
+
79
+ typedef enum {
80
+ CUDNN_FWD_MODE_INFERENCE = 0,
81
+ CUDNN_FWD_MODE_TRAINING = 1,
82
+ } cudnnForwardMode_t;
83
+
84
+ typedef enum {
85
+ CUDNN_RNN_RELU = 0, /* basic RNN cell type with ReLu activation */
86
+ CUDNN_RNN_TANH = 1, /* basic RNN cell type with tanh activation */
87
+ CUDNN_LSTM = 2, /* LSTM with optional recurrent projection and clipping */
88
+ CUDNN_GRU = 3, /* Using h' = tanh(r * Uh(t-1) + Wx) and h = (1 - z) * h' + z * h(t-1); */
89
+ } cudnnRNNMode_t;
90
+
91
+ typedef enum {
92
+ CUDNN_RNN_NO_BIAS = 0, /* rnn cell formulas do not use biases */
93
+ CUDNN_RNN_SINGLE_INP_BIAS = 1, /* rnn cell formulas use one input bias in input GEMM */
94
+ CUDNN_RNN_DOUBLE_BIAS = 2, /* default, rnn cell formulas use two bias vectors */
95
+ CUDNN_RNN_SINGLE_REC_BIAS = 3 /* rnn cell formulas use one recurrent bias in recurrent GEMM */
96
+ } cudnnRNNBiasMode_t;
97
+
98
+ typedef enum {
99
+ CUDNN_UNIDIRECTIONAL = 0, /* single direction network */
100
+ CUDNN_BIDIRECTIONAL = 1, /* output concatination at each layer */
101
+ } cudnnDirectionMode_t;
102
+
103
+ typedef enum {
104
+ CUDNN_LINEAR_INPUT = 0, /* adjustable weight matrix in first layer input GEMM */
105
+ CUDNN_SKIP_INPUT = 1, /* fixed identity matrix in the first layer input GEMM */
106
+ } cudnnRNNInputMode_t;
107
+
108
+ typedef enum {
109
+ CUDNN_RNN_CLIP_NONE = 0, /* disables LSTM cell clipping */
110
+ CUDNN_RNN_CLIP_MINMAX = 1, /* enables LSTM cell clipping */
111
+ } cudnnRNNClipMode_t;
112
+
113
+ typedef enum {
114
+ CUDNN_RNN_DATA_LAYOUT_SEQ_MAJOR_UNPACKED = 0, /* padded, outer stride from one time-step to the next */
115
+ CUDNN_RNN_DATA_LAYOUT_SEQ_MAJOR_PACKED = 1, /* sequence length sorted and packed as in basic RNN api */
116
+ CUDNN_RNN_DATA_LAYOUT_BATCH_MAJOR_UNPACKED = 2, /* padded, outer stride from one batch to the next */
117
+ } cudnnRNNDataLayout_t;
118
+
119
+ /* Legacy type for backward compatibility */
120
+ typedef unsigned cudnnRNNPaddingMode_t;
121
+
122
+ /* For auxFlags in cudnnSetRNNDescriptor_v8() and cudnnSetRNNPaddingMode() */
123
+ #define CUDNN_RNN_PADDED_IO_DISABLED 0
124
+ #define CUDNN_RNN_PADDED_IO_ENABLED (1U << 0)
125
+
126
+ struct cudnnRNNStruct;
127
+ typedef struct cudnnRNNStruct *cudnnRNNDescriptor_t;
128
+
129
+ struct cudnnPersistentRNNPlan;
130
+ typedef struct cudnnPersistentRNNPlan *cudnnPersistentRNNPlan_t;
131
+
132
+ struct cudnnRNNDataStruct;
133
+ typedef struct cudnnRNNDataStruct *cudnnRNNDataDescriptor_t;
134
+
135
+ cudnnStatus_t CUDNNWINAPI
136
+ cudnnCreateRNNDescriptor(cudnnRNNDescriptor_t *rnnDesc);
137
+
138
+ cudnnStatus_t CUDNNWINAPI
139
+ cudnnDestroyRNNDescriptor(cudnnRNNDescriptor_t rnnDesc);
140
+
141
+ cudnnStatus_t CUDNNWINAPI
142
+ cudnnSetRNNDescriptor_v8(cudnnRNNDescriptor_t rnnDesc,
143
+ cudnnRNNAlgo_t algo,
144
+ cudnnRNNMode_t cellMode,
145
+ cudnnRNNBiasMode_t biasMode,
146
+ cudnnDirectionMode_t dirMode,
147
+ cudnnRNNInputMode_t inputMode,
148
+ cudnnDataType_t dataType,
149
+ cudnnDataType_t mathPrec,
150
+ cudnnMathType_t mathType,
151
+ int32_t inputSize,
152
+ int32_t hiddenSize,
153
+ int32_t projSize,
154
+ int32_t numLayers,
155
+ cudnnDropoutDescriptor_t dropoutDesc,
156
+ uint32_t auxFlags);
157
+
158
+ cudnnStatus_t CUDNNWINAPI
159
+ cudnnGetRNNDescriptor_v8(cudnnRNNDescriptor_t rnnDesc,
160
+ cudnnRNNAlgo_t *algo,
161
+ cudnnRNNMode_t *cellMode,
162
+ cudnnRNNBiasMode_t *biasMode,
163
+ cudnnDirectionMode_t *dirMode,
164
+ cudnnRNNInputMode_t *inputMode,
165
+ cudnnDataType_t *dataType,
166
+ cudnnDataType_t *mathPrec,
167
+ cudnnMathType_t *mathType,
168
+ int32_t *inputSize,
169
+ int32_t *hiddenSize,
170
+ int32_t *projSize,
171
+ int32_t *numLayers,
172
+ cudnnDropoutDescriptor_t *dropoutDesc,
173
+ uint32_t *auxFlags);
174
+
175
+ /*
176
+ * mathPrec in cudnnSetRNNDescriptor_v6() specifies compute precision
177
+ * compute precision is further modified by cudnnSetRNNMatrixMathType()
178
+ * dataType in cudnnGetRNNParamsSize() and wDesc specify weight storage
179
+ * dropout is between RNN layers, not between recurrent steps
180
+ */
181
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
182
+ cudnnSetRNNDescriptor_v6(cudnnHandle_t handle,
183
+ cudnnRNNDescriptor_t rnnDesc,
184
+ const int hiddenSize,
185
+ const int numLayers,
186
+ cudnnDropoutDescriptor_t dropoutDesc,
187
+ cudnnRNNInputMode_t inputMode,
188
+ cudnnDirectionMode_t direction,
189
+ cudnnRNNMode_t cellMode,
190
+ cudnnRNNAlgo_t algo,
191
+ cudnnDataType_t mathPrec);
192
+
193
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
194
+ cudnnGetRNNDescriptor_v6(cudnnHandle_t handle,
195
+ cudnnRNNDescriptor_t rnnDesc,
196
+ int *hiddenSize,
197
+ int *numLayers,
198
+ cudnnDropoutDescriptor_t *dropoutDesc,
199
+ cudnnRNNInputMode_t *inputMode,
200
+ cudnnDirectionMode_t *direction,
201
+ cudnnRNNMode_t *cellMode,
202
+ cudnnRNNAlgo_t *algo,
203
+ cudnnDataType_t *mathPrec);
204
+
205
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
206
+ cudnnSetRNNMatrixMathType(cudnnRNNDescriptor_t rnnDesc, cudnnMathType_t mType);
207
+
208
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
209
+ cudnnGetRNNMatrixMathType(cudnnRNNDescriptor_t rnnDesc, cudnnMathType_t *mType);
210
+
211
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
212
+ cudnnSetRNNBiasMode(cudnnRNNDescriptor_t rnnDesc, cudnnRNNBiasMode_t biasMode);
213
+
214
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
215
+ cudnnGetRNNBiasMode(cudnnRNNDescriptor_t rnnDesc, cudnnRNNBiasMode_t *biasMode);
216
+
217
+ cudnnStatus_t CUDNNWINAPI
218
+ cudnnRNNSetClip_v8(cudnnRNNDescriptor_t rnnDesc,
219
+ cudnnRNNClipMode_t clipMode,
220
+ cudnnNanPropagation_t clipNanOpt,
221
+ double lclip,
222
+ double rclip);
223
+
224
+ cudnnStatus_t CUDNNWINAPI
225
+ cudnnRNNGetClip_v8(cudnnRNNDescriptor_t rnnDesc,
226
+ cudnnRNNClipMode_t *clipMode,
227
+ cudnnNanPropagation_t *clipNanOpt,
228
+ double *lclip,
229
+ double *rclip);
230
+
231
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
232
+ cudnnRNNSetClip(cudnnHandle_t handle,
233
+ cudnnRNNDescriptor_t rnnDesc,
234
+ cudnnRNNClipMode_t clipMode,
235
+ cudnnNanPropagation_t clipNanOpt,
236
+ double lclip,
237
+ double rclip);
238
+
239
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
240
+ cudnnRNNGetClip(cudnnHandle_t handle,
241
+ cudnnRNNDescriptor_t rnnDesc,
242
+ cudnnRNNClipMode_t *clipMode,
243
+ cudnnNanPropagation_t *clipNanOpt,
244
+ double *lclip,
245
+ double *rclip);
246
+
247
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
248
+ cudnnSetRNNProjectionLayers(cudnnHandle_t handle,
249
+ cudnnRNNDescriptor_t rnnDesc,
250
+ const int recProjSize,
251
+ const int outProjSize);
252
+
253
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
254
+ cudnnGetRNNProjectionLayers(cudnnHandle_t handle,
255
+ const cudnnRNNDescriptor_t rnnDesc,
256
+ int *recProjSize,
257
+ int *outProjSize);
258
+
259
+ /* Expensive. Creates the plan for the specific settings. */
260
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
261
+ cudnnCreatePersistentRNNPlan(cudnnRNNDescriptor_t rnnDesc,
262
+ const int minibatch,
263
+ const cudnnDataType_t dataType,
264
+ cudnnPersistentRNNPlan_t *plan);
265
+
266
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
267
+ cudnnDestroyPersistentRNNPlan(cudnnPersistentRNNPlan_t plan);
268
+
269
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
270
+ cudnnSetPersistentRNNPlan(cudnnRNNDescriptor_t rnnDesc, cudnnPersistentRNNPlan_t plan);
271
+
272
+ cudnnStatus_t CUDNNWINAPI
273
+ cudnnBuildRNNDynamic(cudnnHandle_t handle, cudnnRNNDescriptor_t rnnDesc, int miniBatch);
274
+
275
+ /* dataType in weight descriptors and input descriptors is used to describe storage */
276
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
277
+ cudnnGetRNNWorkspaceSize(cudnnHandle_t handle,
278
+ const cudnnRNNDescriptor_t rnnDesc,
279
+ const int seqLength,
280
+ const cudnnTensorDescriptor_t *xDesc,
281
+ size_t *sizeInBytes);
282
+
283
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
284
+ cudnnGetRNNTrainingReserveSize(cudnnHandle_t handle,
285
+ const cudnnRNNDescriptor_t rnnDesc,
286
+ const int seqLength,
287
+ const cudnnTensorDescriptor_t *xDesc,
288
+ size_t *sizeInBytes);
289
+
290
+ cudnnStatus_t CUDNNWINAPI
291
+ cudnnGetRNNTempSpaceSizes(cudnnHandle_t handle,
292
+ cudnnRNNDescriptor_t rnnDesc,
293
+ cudnnForwardMode_t fwdMode,
294
+ cudnnRNNDataDescriptor_t xDesc,
295
+ size_t *workSpaceSize,
296
+ size_t *reserveSpaceSize);
297
+
298
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
299
+ cudnnGetRNNParamsSize(cudnnHandle_t handle,
300
+ const cudnnRNNDescriptor_t rnnDesc,
301
+ const cudnnTensorDescriptor_t xDesc,
302
+ size_t *sizeInBytes,
303
+ cudnnDataType_t dataType);
304
+
305
+ cudnnStatus_t CUDNNWINAPI
306
+ cudnnGetRNNWeightSpaceSize(cudnnHandle_t handle, cudnnRNNDescriptor_t rnnDesc, size_t *weightSpaceSize);
307
+
308
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
309
+ cudnnGetRNNLinLayerMatrixParams(cudnnHandle_t handle,
310
+ const cudnnRNNDescriptor_t rnnDesc,
311
+ const int pseudoLayer,
312
+ const cudnnTensorDescriptor_t xDesc,
313
+ const cudnnFilterDescriptor_t wDesc,
314
+ const void *w,
315
+ const int linLayerID,
316
+ cudnnFilterDescriptor_t linLayerMatDesc,
317
+ void **linLayerMat);
318
+
319
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
320
+ cudnnGetRNNLinLayerBiasParams(cudnnHandle_t handle,
321
+ const cudnnRNNDescriptor_t rnnDesc,
322
+ const int pseudoLayer,
323
+ const cudnnTensorDescriptor_t xDesc,
324
+ const cudnnFilterDescriptor_t wDesc,
325
+ const void *w,
326
+ const int linLayerID,
327
+ cudnnFilterDescriptor_t linLayerBiasDesc,
328
+ void **linLayerBias);
329
+
330
+ cudnnStatus_t CUDNNWINAPI
331
+ cudnnGetRNNWeightParams(cudnnHandle_t handle,
332
+ cudnnRNNDescriptor_t rnnDesc,
333
+ int32_t pseudoLayer,
334
+ size_t weightSpaceSize,
335
+ const void *weightSpace,
336
+ int32_t linLayerID,
337
+ cudnnTensorDescriptor_t mDesc,
338
+ void **mAddr,
339
+ cudnnTensorDescriptor_t bDesc,
340
+ void **bAddr);
341
+
342
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
343
+ cudnnRNNForwardInference(cudnnHandle_t handle,
344
+ const cudnnRNNDescriptor_t rnnDesc,
345
+ const int seqLength,
346
+ const cudnnTensorDescriptor_t *xDesc,
347
+ const void *x,
348
+ const cudnnTensorDescriptor_t hxDesc,
349
+ const void *hx,
350
+ const cudnnTensorDescriptor_t cxDesc,
351
+ const void *cx,
352
+ const cudnnFilterDescriptor_t wDesc,
353
+ const void *w,
354
+ const cudnnTensorDescriptor_t *yDesc,
355
+ void *y,
356
+ const cudnnTensorDescriptor_t hyDesc,
357
+ void *hy,
358
+ const cudnnTensorDescriptor_t cyDesc,
359
+ void *cy,
360
+ void *workSpace,
361
+ size_t workSpaceSizeInBytes);
362
+
363
+ /* RNN EX API */
364
+
365
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
366
+ cudnnSetRNNPaddingMode(cudnnRNNDescriptor_t rnnDesc, unsigned paddingMode);
367
+
368
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
369
+ cudnnGetRNNPaddingMode(cudnnRNNDescriptor_t rnnDesc, unsigned *paddingMode);
370
+
371
+ cudnnStatus_t CUDNNWINAPI
372
+ cudnnCreateRNNDataDescriptor(cudnnRNNDataDescriptor_t *rnnDataDesc);
373
+
374
+ cudnnStatus_t CUDNNWINAPI
375
+ cudnnDestroyRNNDataDescriptor(cudnnRNNDataDescriptor_t rnnDataDesc);
376
+
377
+ cudnnStatus_t CUDNNWINAPI
378
+ cudnnSetRNNDataDescriptor(cudnnRNNDataDescriptor_t rnnDataDesc,
379
+ cudnnDataType_t dataType,
380
+ cudnnRNNDataLayout_t layout,
381
+ int maxSeqLength,
382
+ int batchSize,
383
+ int vectorSize,
384
+ const int seqLengthArray[], /* length of each sequence in the batch */
385
+ void *paddingFill); /* symbol for filling padding position in output */
386
+
387
+ cudnnStatus_t CUDNNWINAPI
388
+ cudnnGetRNNDataDescriptor(cudnnRNNDataDescriptor_t rnnDataDesc,
389
+ cudnnDataType_t *dataType,
390
+ cudnnRNNDataLayout_t *layout,
391
+ int *maxSeqLength,
392
+ int *batchSize,
393
+ int *vectorSize,
394
+ int arrayLengthRequested,
395
+ int seqLengthArray[],
396
+ void *paddingFill);
397
+
398
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
399
+ cudnnRNNForwardInferenceEx(cudnnHandle_t handle,
400
+ const cudnnRNNDescriptor_t rnnDesc,
401
+ const cudnnRNNDataDescriptor_t xDesc,
402
+ const void *x,
403
+ const cudnnTensorDescriptor_t hxDesc,
404
+ const void *hx,
405
+ const cudnnTensorDescriptor_t cxDesc,
406
+ const void *cx,
407
+ const cudnnFilterDescriptor_t wDesc,
408
+ const void *w,
409
+ const cudnnRNNDataDescriptor_t yDesc,
410
+ void *y,
411
+ const cudnnTensorDescriptor_t hyDesc,
412
+ void *hy,
413
+ const cudnnTensorDescriptor_t cyDesc,
414
+ void *cy,
415
+ const cudnnRNNDataDescriptor_t kDesc, /* reserved, should pass NULL */
416
+ const void *keys, /* reserved, should pass NULL */
417
+ const cudnnRNNDataDescriptor_t cDesc, /* reserved, should pass NULL */
418
+ void *cAttn, /* reserved, should pass NULL */
419
+ const cudnnRNNDataDescriptor_t iDesc, /* reserved, should pass NULL */
420
+ void *iAttn, /* reserved, should pass NULL */
421
+ const cudnnRNNDataDescriptor_t qDesc, /* reserved, should pass NULL */
422
+ void *queries, /* reserved, should pass NULL */
423
+ void *workSpace,
424
+ size_t workSpaceSizeInBytes);
425
+
426
+ cudnnStatus_t CUDNNWINAPI
427
+ cudnnRNNForward(cudnnHandle_t handle,
428
+ cudnnRNNDescriptor_t rnnDesc,
429
+ cudnnForwardMode_t fwdMode,
430
+ const int32_t devSeqLengths[],
431
+ cudnnRNNDataDescriptor_t xDesc,
432
+ const void *x,
433
+ cudnnRNNDataDescriptor_t yDesc,
434
+ void *y,
435
+ cudnnTensorDescriptor_t hDesc,
436
+ const void *hx,
437
+ void *hy,
438
+ cudnnTensorDescriptor_t cDesc,
439
+ const void *cx,
440
+ void *cy,
441
+ size_t weightSpaceSize,
442
+ const void *weightSpace,
443
+ size_t workSpaceSize,
444
+ void *workSpace,
445
+ size_t reserveSpaceSize,
446
+ void *reserveSpace);
447
+
448
+ /* RNN FIND API */
449
+
450
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
451
+ cudnnSetRNNAlgorithmDescriptor(cudnnHandle_t handle, cudnnRNNDescriptor_t rnnDesc, cudnnAlgorithmDescriptor_t algoDesc);
452
+
453
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
454
+ cudnnGetRNNForwardInferenceAlgorithmMaxCount(cudnnHandle_t handle, const cudnnRNNDescriptor_t rnnDesc, int *count);
455
+
456
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
457
+ cudnnFindRNNForwardInferenceAlgorithmEx(cudnnHandle_t handle,
458
+ const cudnnRNNDescriptor_t rnnDesc,
459
+ const int seqLength,
460
+ const cudnnTensorDescriptor_t *xDesc,
461
+ const void *x,
462
+ const cudnnTensorDescriptor_t hxDesc,
463
+ const void *hx,
464
+ const cudnnTensorDescriptor_t cxDesc,
465
+ const void *cx,
466
+ const cudnnFilterDescriptor_t wDesc,
467
+ const void *w,
468
+ const cudnnTensorDescriptor_t *yDesc,
469
+ void *y,
470
+ const cudnnTensorDescriptor_t hyDesc,
471
+ void *hy,
472
+ const cudnnTensorDescriptor_t cyDesc,
473
+ void *cy,
474
+ const float findIntensity,
475
+ const int requestedAlgoCount,
476
+ int *returnedAlgoCount,
477
+ cudnnAlgorithmPerformance_t *perfResults,
478
+ void *workspace,
479
+ size_t workSpaceSizeInBytes);
480
+
481
+ /* Sequence data descriptor */
482
+
483
+ typedef enum {
484
+ CUDNN_SEQDATA_TIME_DIM = 0, /* index in time */
485
+ CUDNN_SEQDATA_BATCH_DIM = 1, /* index in batch */
486
+ CUDNN_SEQDATA_BEAM_DIM = 2, /* index in beam */
487
+ CUDNN_SEQDATA_VECT_DIM = 3 /* index in vector */
488
+ } cudnnSeqDataAxis_t;
489
+
490
+ struct cudnnSeqDataStruct;
491
+ typedef struct cudnnSeqDataStruct *cudnnSeqDataDescriptor_t;
492
+
493
+ #define CUDNN_SEQDATA_DIM_COUNT 4 /* dimension count */
494
+
495
+ cudnnStatus_t CUDNNWINAPI
496
+ cudnnCreateSeqDataDescriptor(cudnnSeqDataDescriptor_t *seqDataDesc);
497
+
498
+ cudnnStatus_t CUDNNWINAPI
499
+ cudnnDestroySeqDataDescriptor(cudnnSeqDataDescriptor_t seqDataDesc);
500
+
501
+ cudnnStatus_t CUDNNWINAPI
502
+ cudnnSetSeqDataDescriptor(cudnnSeqDataDescriptor_t seqDataDesc,
503
+ cudnnDataType_t dataType,
504
+ int nbDims,
505
+ const int dimA[],
506
+ const cudnnSeqDataAxis_t axes[],
507
+ size_t seqLengthArraySize,
508
+ const int seqLengthArray[],
509
+ void *paddingFill);
510
+
511
+ cudnnStatus_t CUDNNWINAPI
512
+ cudnnGetSeqDataDescriptor(const cudnnSeqDataDescriptor_t seqDataDesc,
513
+ cudnnDataType_t *dataType,
514
+ int *nbDims,
515
+ int nbDimsRequested,
516
+ int dimA[],
517
+ cudnnSeqDataAxis_t axes[],
518
+ size_t *seqLengthArraySize,
519
+ size_t seqLengthSizeRequested,
520
+ int seqLengthArray[],
521
+ void *paddingFill);
522
+
523
+ /* Multihead Attention */
524
+
525
+ /* Legacy type for backward compatibility */
526
+ typedef unsigned cudnnAttnQueryMap_t;
527
+
528
+ /*
529
+ * Multi-head attention options passed via 'attnMode' in cudnnSetAttnDescriptor().
530
+ * Use the bitwise OR operator to combine several settings listed below. Additional
531
+ * minor options can be added here w/o changing or introducing new API functions.
532
+ */
533
+ #define CUDNN_ATTN_QUERYMAP_ALL_TO_ONE 0 /* multiple Q-s map to a single (K,V) set when beam size > 1 */
534
+ #define CUDNN_ATTN_QUERYMAP_ONE_TO_ONE (1U << 0) /* multiple Q-s map to multiple (K,V) sets when beam size > 1 */
535
+ #define CUDNN_ATTN_DISABLE_PROJ_BIASES 0 /* no biases in attention input and output projections */
536
+ #define CUDNN_ATTN_ENABLE_PROJ_BIASES (1U << 1) /* use biases in attention input and output projections */
537
+
538
+ struct cudnnAttnStruct;
539
+ typedef struct cudnnAttnStruct *cudnnAttnDescriptor_t;
540
+
541
+ cudnnStatus_t CUDNNWINAPI
542
+ cudnnCreateAttnDescriptor(cudnnAttnDescriptor_t *attnDesc);
543
+
544
+ cudnnStatus_t CUDNNWINAPI
545
+ cudnnDestroyAttnDescriptor(cudnnAttnDescriptor_t attnDesc);
546
+
547
+ cudnnStatus_t CUDNNWINAPI
548
+ cudnnSetAttnDescriptor(cudnnAttnDescriptor_t attnDesc,
549
+ unsigned attnMode,
550
+ int nHeads,
551
+ double smScaler,
552
+ cudnnDataType_t dataType,
553
+ cudnnDataType_t computePrec,
554
+ cudnnMathType_t mathType,
555
+ cudnnDropoutDescriptor_t attnDropoutDesc,
556
+ cudnnDropoutDescriptor_t postDropoutDesc,
557
+ int qSize,
558
+ int kSize,
559
+ int vSize,
560
+ int qProjSize,
561
+ int kProjSize,
562
+ int vProjSize,
563
+ int oProjSize,
564
+ int qoMaxSeqLength,
565
+ int kvMaxSeqLength,
566
+ int maxBatchSize,
567
+ int maxBeamSize);
568
+
569
+ cudnnStatus_t CUDNNWINAPI
570
+ cudnnGetAttnDescriptor(cudnnAttnDescriptor_t attnDesc,
571
+ unsigned *attnMode,
572
+ int *nHeads,
573
+ double *smScaler,
574
+ cudnnDataType_t *dataType,
575
+ cudnnDataType_t *computePrec,
576
+ cudnnMathType_t *mathType,
577
+ cudnnDropoutDescriptor_t *attnDropoutDesc,
578
+ cudnnDropoutDescriptor_t *postDropoutDesc,
579
+ int *qSize,
580
+ int *kSize,
581
+ int *vSize,
582
+ int *qProjSize,
583
+ int *kProjSize,
584
+ int *vProjSize,
585
+ int *oProjSize,
586
+ int *qoMaxSeqLength,
587
+ int *kvMaxSeqLength,
588
+ int *maxBatchSize,
589
+ int *maxBeamSize);
590
+
591
+ cudnnStatus_t CUDNNWINAPI
592
+ cudnnGetMultiHeadAttnBuffers(cudnnHandle_t handle,
593
+ const cudnnAttnDescriptor_t attnDesc,
594
+ size_t *weightSizeInBytes,
595
+ size_t *workSpaceSizeInBytes,
596
+ size_t *reserveSpaceSizeInBytes);
597
+
598
+ typedef enum {
599
+ CUDNN_MH_ATTN_Q_WEIGHTS = 0, /* input projection weights for 'queries' */
600
+ CUDNN_MH_ATTN_K_WEIGHTS = 1, /* input projection weights for 'keys' */
601
+ CUDNN_MH_ATTN_V_WEIGHTS = 2, /* input projection weights for 'values' */
602
+ CUDNN_MH_ATTN_O_WEIGHTS = 3, /* output projection weights */
603
+ CUDNN_MH_ATTN_Q_BIASES = 4, /* input projection bias tensor for 'queries' */
604
+ CUDNN_MH_ATTN_K_BIASES = 5, /* input projection bias for 'keys' */
605
+ CUDNN_MH_ATTN_V_BIASES = 6, /* input projection bias for 'values' */
606
+ CUDNN_MH_ATTN_O_BIASES = 7, /* output projection biases */
607
+ } cudnnMultiHeadAttnWeightKind_t;
608
+
609
+ #define CUDNN_ATTN_WKIND_COUNT 8 /* Number of attention weight/bias tensors */
610
+
611
+ cudnnStatus_t CUDNNWINAPI
612
+ cudnnGetMultiHeadAttnWeights(cudnnHandle_t handle,
613
+ const cudnnAttnDescriptor_t attnDesc,
614
+ cudnnMultiHeadAttnWeightKind_t wKind,
615
+ size_t weightSizeInBytes,
616
+ const void *weights,
617
+ cudnnTensorDescriptor_t wDesc,
618
+ void **wAddr);
619
+
620
+ cudnnStatus_t CUDNNWINAPI
621
+ cudnnMultiHeadAttnForward(cudnnHandle_t handle,
622
+ const cudnnAttnDescriptor_t attnDesc,
623
+ int currIdx,
624
+ const int loWinIdx[],
625
+ const int hiWinIdx[],
626
+ const int devSeqLengthsQO[],
627
+ const int devSeqLengthsKV[],
628
+ const cudnnSeqDataDescriptor_t qDesc,
629
+ const void *queries,
630
+ const void *residuals,
631
+ const cudnnSeqDataDescriptor_t kDesc,
632
+ const void *keys,
633
+ const cudnnSeqDataDescriptor_t vDesc,
634
+ const void *values,
635
+ const cudnnSeqDataDescriptor_t oDesc,
636
+ void *out,
637
+ size_t weightSizeInBytes,
638
+ const void *weights,
639
+ size_t workSpaceSizeInBytes,
640
+ void *workSpace,
641
+ size_t reserveSpaceSizeInBytes,
642
+ void *reserveSpace);
643
+
644
+ /*
645
+ * \brief Cross-library version checker.
646
+ * This function is implemented differently in each sub-library. Each sublib
647
+ * checks whether its own version matches that of its dependencies.
648
+ * \returns CUDNN_STATUS_SUCCESS if the version check passes,
649
+ * CUDNN_STATUS_VERSION_MISMATCH if the versions are inconsistent.
650
+ */
651
+ cudnnStatus_t CUDNNWINAPI
652
+ cudnnAdvInferVersionCheck(void);
653
+
654
+ #if defined(__cplusplus)
655
+ }
656
+ #endif
657
+
658
+ #endif /* CUDNN_ADV_INFER_H_ */
my_container_sandbox/workspace/anaconda3/include/cudnn_adv_infer_v8.h ADDED
@@ -0,0 +1,658 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Copyright 2014-2023 NVIDIA Corporation. All rights reserved.
3
+ *
4
+ * NOTICE TO LICENSEE:
5
+ *
6
+ * This source code and/or documentation ("Licensed Deliverables") are
7
+ * subject to NVIDIA intellectual property rights under U.S. and
8
+ * international Copyright laws.
9
+ *
10
+ * These Licensed Deliverables contained herein is PROPRIETARY and
11
+ * CONFIDENTIAL to NVIDIA and is being provided under the terms and
12
+ * conditions of a form of NVIDIA software license agreement by and
13
+ * between NVIDIA and Licensee ("License Agreement") or electronically
14
+ * accepted by Licensee. Notwithstanding any terms or conditions to
15
+ * the contrary in the License Agreement, reproduction or disclosure
16
+ * of the Licensed Deliverables to any third party without the express
17
+ * written consent of NVIDIA is prohibited.
18
+ *
19
+ * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
20
+ * LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE
21
+ * SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE. IT IS
22
+ * PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND.
23
+ * NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED
24
+ * DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY,
25
+ * NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE.
26
+ * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
27
+ * LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY
28
+ * SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY
29
+ * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
30
+ * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
31
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
32
+ * OF THESE LICENSED DELIVERABLES.
33
+ *
34
+ * U.S. Government End Users. These Licensed Deliverables are a
35
+ * "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT
36
+ * 1995), consisting of "commercial computer software" and "commercial
37
+ * computer software documentation" as such terms are used in 48
38
+ * C.F.R. 12.212 (SEPT 1995) and is provided to the U.S. Government
39
+ * only as a commercial end item. Consistent with 48 C.F.R.12.212 and
40
+ * 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all
41
+ * U.S. Government End Users acquire the Licensed Deliverables with
42
+ * only those rights set forth herein.
43
+ *
44
+ * Any use of the Licensed Deliverables in individual and commercial
45
+ * software must include, in the user documentation and internal
46
+ * comments to the code, the above Disclaimer and U.S. Government End
47
+ * Users Notice.
48
+ */
49
+
50
+ /* cudnn_adv_infer : cuDNN's advanced and experimental features.
51
+
52
+ */
53
+
54
+ #if !defined(CUDNN_ADV_INFER_H_)
55
+ #define CUDNN_ADV_INFER_H_
56
+
57
+ #include <cuda_runtime.h>
58
+ #include <stdint.h>
59
+
60
+ #include "cudnn_version.h"
61
+ #include "cudnn_ops_infer.h"
62
+
63
+ /* These version numbers are autogenerated, do not edit manually. */
64
+ #define CUDNN_ADV_INFER_MAJOR 8
65
+ #define CUDNN_ADV_INFER_MINOR 9
66
+ #define CUDNN_ADV_INFER_PATCH 2
67
+
68
+ #if (CUDNN_ADV_INFER_MAJOR != CUDNN_MAJOR) || (CUDNN_ADV_INFER_MINOR != CUDNN_MINOR) || \
69
+ (CUDNN_ADV_INFER_PATCH != CUDNN_PATCHLEVEL)
70
+ #error Version mismatch in cuDNN ADV INFER!!!
71
+ #endif
72
+
73
+ #if defined(__cplusplus)
74
+ extern "C" {
75
+ #endif
76
+
77
+ /* BASIC RNN API */
78
+
79
+ typedef enum {
80
+ CUDNN_FWD_MODE_INFERENCE = 0,
81
+ CUDNN_FWD_MODE_TRAINING = 1,
82
+ } cudnnForwardMode_t;
83
+
84
+ typedef enum {
85
+ CUDNN_RNN_RELU = 0, /* basic RNN cell type with ReLu activation */
86
+ CUDNN_RNN_TANH = 1, /* basic RNN cell type with tanh activation */
87
+ CUDNN_LSTM = 2, /* LSTM with optional recurrent projection and clipping */
88
+ CUDNN_GRU = 3, /* Using h' = tanh(r * Uh(t-1) + Wx) and h = (1 - z) * h' + z * h(t-1); */
89
+ } cudnnRNNMode_t;
90
+
91
+ typedef enum {
92
+ CUDNN_RNN_NO_BIAS = 0, /* rnn cell formulas do not use biases */
93
+ CUDNN_RNN_SINGLE_INP_BIAS = 1, /* rnn cell formulas use one input bias in input GEMM */
94
+ CUDNN_RNN_DOUBLE_BIAS = 2, /* default, rnn cell formulas use two bias vectors */
95
+ CUDNN_RNN_SINGLE_REC_BIAS = 3 /* rnn cell formulas use one recurrent bias in recurrent GEMM */
96
+ } cudnnRNNBiasMode_t;
97
+
98
+ typedef enum {
99
+ CUDNN_UNIDIRECTIONAL = 0, /* single direction network */
100
+ CUDNN_BIDIRECTIONAL = 1, /* output concatination at each layer */
101
+ } cudnnDirectionMode_t;
102
+
103
+ typedef enum {
104
+ CUDNN_LINEAR_INPUT = 0, /* adjustable weight matrix in first layer input GEMM */
105
+ CUDNN_SKIP_INPUT = 1, /* fixed identity matrix in the first layer input GEMM */
106
+ } cudnnRNNInputMode_t;
107
+
108
+ typedef enum {
109
+ CUDNN_RNN_CLIP_NONE = 0, /* disables LSTM cell clipping */
110
+ CUDNN_RNN_CLIP_MINMAX = 1, /* enables LSTM cell clipping */
111
+ } cudnnRNNClipMode_t;
112
+
113
+ typedef enum {
114
+ CUDNN_RNN_DATA_LAYOUT_SEQ_MAJOR_UNPACKED = 0, /* padded, outer stride from one time-step to the next */
115
+ CUDNN_RNN_DATA_LAYOUT_SEQ_MAJOR_PACKED = 1, /* sequence length sorted and packed as in basic RNN api */
116
+ CUDNN_RNN_DATA_LAYOUT_BATCH_MAJOR_UNPACKED = 2, /* padded, outer stride from one batch to the next */
117
+ } cudnnRNNDataLayout_t;
118
+
119
+ /* Legacy type for backward compatibility */
120
+ typedef unsigned cudnnRNNPaddingMode_t;
121
+
122
+ /* For auxFlags in cudnnSetRNNDescriptor_v8() and cudnnSetRNNPaddingMode() */
123
+ #define CUDNN_RNN_PADDED_IO_DISABLED 0
124
+ #define CUDNN_RNN_PADDED_IO_ENABLED (1U << 0)
125
+
126
+ struct cudnnRNNStruct;
127
+ typedef struct cudnnRNNStruct *cudnnRNNDescriptor_t;
128
+
129
+ struct cudnnPersistentRNNPlan;
130
+ typedef struct cudnnPersistentRNNPlan *cudnnPersistentRNNPlan_t;
131
+
132
+ struct cudnnRNNDataStruct;
133
+ typedef struct cudnnRNNDataStruct *cudnnRNNDataDescriptor_t;
134
+
135
+ cudnnStatus_t CUDNNWINAPI
136
+ cudnnCreateRNNDescriptor(cudnnRNNDescriptor_t *rnnDesc);
137
+
138
+ cudnnStatus_t CUDNNWINAPI
139
+ cudnnDestroyRNNDescriptor(cudnnRNNDescriptor_t rnnDesc);
140
+
141
+ cudnnStatus_t CUDNNWINAPI
142
+ cudnnSetRNNDescriptor_v8(cudnnRNNDescriptor_t rnnDesc,
143
+ cudnnRNNAlgo_t algo,
144
+ cudnnRNNMode_t cellMode,
145
+ cudnnRNNBiasMode_t biasMode,
146
+ cudnnDirectionMode_t dirMode,
147
+ cudnnRNNInputMode_t inputMode,
148
+ cudnnDataType_t dataType,
149
+ cudnnDataType_t mathPrec,
150
+ cudnnMathType_t mathType,
151
+ int32_t inputSize,
152
+ int32_t hiddenSize,
153
+ int32_t projSize,
154
+ int32_t numLayers,
155
+ cudnnDropoutDescriptor_t dropoutDesc,
156
+ uint32_t auxFlags);
157
+
158
+ cudnnStatus_t CUDNNWINAPI
159
+ cudnnGetRNNDescriptor_v8(cudnnRNNDescriptor_t rnnDesc,
160
+ cudnnRNNAlgo_t *algo,
161
+ cudnnRNNMode_t *cellMode,
162
+ cudnnRNNBiasMode_t *biasMode,
163
+ cudnnDirectionMode_t *dirMode,
164
+ cudnnRNNInputMode_t *inputMode,
165
+ cudnnDataType_t *dataType,
166
+ cudnnDataType_t *mathPrec,
167
+ cudnnMathType_t *mathType,
168
+ int32_t *inputSize,
169
+ int32_t *hiddenSize,
170
+ int32_t *projSize,
171
+ int32_t *numLayers,
172
+ cudnnDropoutDescriptor_t *dropoutDesc,
173
+ uint32_t *auxFlags);
174
+
175
+ /*
176
+ * mathPrec in cudnnSetRNNDescriptor_v6() specifies compute precision
177
+ * compute precision is further modified by cudnnSetRNNMatrixMathType()
178
+ * dataType in cudnnGetRNNParamsSize() and wDesc specify weight storage
179
+ * dropout is between RNN layers, not between recurrent steps
180
+ */
181
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
182
+ cudnnSetRNNDescriptor_v6(cudnnHandle_t handle,
183
+ cudnnRNNDescriptor_t rnnDesc,
184
+ const int hiddenSize,
185
+ const int numLayers,
186
+ cudnnDropoutDescriptor_t dropoutDesc,
187
+ cudnnRNNInputMode_t inputMode,
188
+ cudnnDirectionMode_t direction,
189
+ cudnnRNNMode_t cellMode,
190
+ cudnnRNNAlgo_t algo,
191
+ cudnnDataType_t mathPrec);
192
+
193
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
194
+ cudnnGetRNNDescriptor_v6(cudnnHandle_t handle,
195
+ cudnnRNNDescriptor_t rnnDesc,
196
+ int *hiddenSize,
197
+ int *numLayers,
198
+ cudnnDropoutDescriptor_t *dropoutDesc,
199
+ cudnnRNNInputMode_t *inputMode,
200
+ cudnnDirectionMode_t *direction,
201
+ cudnnRNNMode_t *cellMode,
202
+ cudnnRNNAlgo_t *algo,
203
+ cudnnDataType_t *mathPrec);
204
+
205
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
206
+ cudnnSetRNNMatrixMathType(cudnnRNNDescriptor_t rnnDesc, cudnnMathType_t mType);
207
+
208
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
209
+ cudnnGetRNNMatrixMathType(cudnnRNNDescriptor_t rnnDesc, cudnnMathType_t *mType);
210
+
211
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
212
+ cudnnSetRNNBiasMode(cudnnRNNDescriptor_t rnnDesc, cudnnRNNBiasMode_t biasMode);
213
+
214
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
215
+ cudnnGetRNNBiasMode(cudnnRNNDescriptor_t rnnDesc, cudnnRNNBiasMode_t *biasMode);
216
+
217
+ cudnnStatus_t CUDNNWINAPI
218
+ cudnnRNNSetClip_v8(cudnnRNNDescriptor_t rnnDesc,
219
+ cudnnRNNClipMode_t clipMode,
220
+ cudnnNanPropagation_t clipNanOpt,
221
+ double lclip,
222
+ double rclip);
223
+
224
+ cudnnStatus_t CUDNNWINAPI
225
+ cudnnRNNGetClip_v8(cudnnRNNDescriptor_t rnnDesc,
226
+ cudnnRNNClipMode_t *clipMode,
227
+ cudnnNanPropagation_t *clipNanOpt,
228
+ double *lclip,
229
+ double *rclip);
230
+
231
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
232
+ cudnnRNNSetClip(cudnnHandle_t handle,
233
+ cudnnRNNDescriptor_t rnnDesc,
234
+ cudnnRNNClipMode_t clipMode,
235
+ cudnnNanPropagation_t clipNanOpt,
236
+ double lclip,
237
+ double rclip);
238
+
239
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
240
+ cudnnRNNGetClip(cudnnHandle_t handle,
241
+ cudnnRNNDescriptor_t rnnDesc,
242
+ cudnnRNNClipMode_t *clipMode,
243
+ cudnnNanPropagation_t *clipNanOpt,
244
+ double *lclip,
245
+ double *rclip);
246
+
247
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
248
+ cudnnSetRNNProjectionLayers(cudnnHandle_t handle,
249
+ cudnnRNNDescriptor_t rnnDesc,
250
+ const int recProjSize,
251
+ const int outProjSize);
252
+
253
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
254
+ cudnnGetRNNProjectionLayers(cudnnHandle_t handle,
255
+ const cudnnRNNDescriptor_t rnnDesc,
256
+ int *recProjSize,
257
+ int *outProjSize);
258
+
259
+ /* Expensive. Creates the plan for the specific settings. */
260
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
261
+ cudnnCreatePersistentRNNPlan(cudnnRNNDescriptor_t rnnDesc,
262
+ const int minibatch,
263
+ const cudnnDataType_t dataType,
264
+ cudnnPersistentRNNPlan_t *plan);
265
+
266
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
267
+ cudnnDestroyPersistentRNNPlan(cudnnPersistentRNNPlan_t plan);
268
+
269
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
270
+ cudnnSetPersistentRNNPlan(cudnnRNNDescriptor_t rnnDesc, cudnnPersistentRNNPlan_t plan);
271
+
272
+ cudnnStatus_t CUDNNWINAPI
273
+ cudnnBuildRNNDynamic(cudnnHandle_t handle, cudnnRNNDescriptor_t rnnDesc, int miniBatch);
274
+
275
+ /* dataType in weight descriptors and input descriptors is used to describe storage */
276
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
277
+ cudnnGetRNNWorkspaceSize(cudnnHandle_t handle,
278
+ const cudnnRNNDescriptor_t rnnDesc,
279
+ const int seqLength,
280
+ const cudnnTensorDescriptor_t *xDesc,
281
+ size_t *sizeInBytes);
282
+
283
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
284
+ cudnnGetRNNTrainingReserveSize(cudnnHandle_t handle,
285
+ const cudnnRNNDescriptor_t rnnDesc,
286
+ const int seqLength,
287
+ const cudnnTensorDescriptor_t *xDesc,
288
+ size_t *sizeInBytes);
289
+
290
+ cudnnStatus_t CUDNNWINAPI
291
+ cudnnGetRNNTempSpaceSizes(cudnnHandle_t handle,
292
+ cudnnRNNDescriptor_t rnnDesc,
293
+ cudnnForwardMode_t fwdMode,
294
+ cudnnRNNDataDescriptor_t xDesc,
295
+ size_t *workSpaceSize,
296
+ size_t *reserveSpaceSize);
297
+
298
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
299
+ cudnnGetRNNParamsSize(cudnnHandle_t handle,
300
+ const cudnnRNNDescriptor_t rnnDesc,
301
+ const cudnnTensorDescriptor_t xDesc,
302
+ size_t *sizeInBytes,
303
+ cudnnDataType_t dataType);
304
+
305
+ cudnnStatus_t CUDNNWINAPI
306
+ cudnnGetRNNWeightSpaceSize(cudnnHandle_t handle, cudnnRNNDescriptor_t rnnDesc, size_t *weightSpaceSize);
307
+
308
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
309
+ cudnnGetRNNLinLayerMatrixParams(cudnnHandle_t handle,
310
+ const cudnnRNNDescriptor_t rnnDesc,
311
+ const int pseudoLayer,
312
+ const cudnnTensorDescriptor_t xDesc,
313
+ const cudnnFilterDescriptor_t wDesc,
314
+ const void *w,
315
+ const int linLayerID,
316
+ cudnnFilterDescriptor_t linLayerMatDesc,
317
+ void **linLayerMat);
318
+
319
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
320
+ cudnnGetRNNLinLayerBiasParams(cudnnHandle_t handle,
321
+ const cudnnRNNDescriptor_t rnnDesc,
322
+ const int pseudoLayer,
323
+ const cudnnTensorDescriptor_t xDesc,
324
+ const cudnnFilterDescriptor_t wDesc,
325
+ const void *w,
326
+ const int linLayerID,
327
+ cudnnFilterDescriptor_t linLayerBiasDesc,
328
+ void **linLayerBias);
329
+
330
+ cudnnStatus_t CUDNNWINAPI
331
+ cudnnGetRNNWeightParams(cudnnHandle_t handle,
332
+ cudnnRNNDescriptor_t rnnDesc,
333
+ int32_t pseudoLayer,
334
+ size_t weightSpaceSize,
335
+ const void *weightSpace,
336
+ int32_t linLayerID,
337
+ cudnnTensorDescriptor_t mDesc,
338
+ void **mAddr,
339
+ cudnnTensorDescriptor_t bDesc,
340
+ void **bAddr);
341
+
342
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
343
+ cudnnRNNForwardInference(cudnnHandle_t handle,
344
+ const cudnnRNNDescriptor_t rnnDesc,
345
+ const int seqLength,
346
+ const cudnnTensorDescriptor_t *xDesc,
347
+ const void *x,
348
+ const cudnnTensorDescriptor_t hxDesc,
349
+ const void *hx,
350
+ const cudnnTensorDescriptor_t cxDesc,
351
+ const void *cx,
352
+ const cudnnFilterDescriptor_t wDesc,
353
+ const void *w,
354
+ const cudnnTensorDescriptor_t *yDesc,
355
+ void *y,
356
+ const cudnnTensorDescriptor_t hyDesc,
357
+ void *hy,
358
+ const cudnnTensorDescriptor_t cyDesc,
359
+ void *cy,
360
+ void *workSpace,
361
+ size_t workSpaceSizeInBytes);
362
+
363
+ /* RNN EX API */
364
+
365
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
366
+ cudnnSetRNNPaddingMode(cudnnRNNDescriptor_t rnnDesc, unsigned paddingMode);
367
+
368
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
369
+ cudnnGetRNNPaddingMode(cudnnRNNDescriptor_t rnnDesc, unsigned *paddingMode);
370
+
371
+ cudnnStatus_t CUDNNWINAPI
372
+ cudnnCreateRNNDataDescriptor(cudnnRNNDataDescriptor_t *rnnDataDesc);
373
+
374
+ cudnnStatus_t CUDNNWINAPI
375
+ cudnnDestroyRNNDataDescriptor(cudnnRNNDataDescriptor_t rnnDataDesc);
376
+
377
+ cudnnStatus_t CUDNNWINAPI
378
+ cudnnSetRNNDataDescriptor(cudnnRNNDataDescriptor_t rnnDataDesc,
379
+ cudnnDataType_t dataType,
380
+ cudnnRNNDataLayout_t layout,
381
+ int maxSeqLength,
382
+ int batchSize,
383
+ int vectorSize,
384
+ const int seqLengthArray[], /* length of each sequence in the batch */
385
+ void *paddingFill); /* symbol for filling padding position in output */
386
+
387
+ cudnnStatus_t CUDNNWINAPI
388
+ cudnnGetRNNDataDescriptor(cudnnRNNDataDescriptor_t rnnDataDesc,
389
+ cudnnDataType_t *dataType,
390
+ cudnnRNNDataLayout_t *layout,
391
+ int *maxSeqLength,
392
+ int *batchSize,
393
+ int *vectorSize,
394
+ int arrayLengthRequested,
395
+ int seqLengthArray[],
396
+ void *paddingFill);
397
+
398
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
399
+ cudnnRNNForwardInferenceEx(cudnnHandle_t handle,
400
+ const cudnnRNNDescriptor_t rnnDesc,
401
+ const cudnnRNNDataDescriptor_t xDesc,
402
+ const void *x,
403
+ const cudnnTensorDescriptor_t hxDesc,
404
+ const void *hx,
405
+ const cudnnTensorDescriptor_t cxDesc,
406
+ const void *cx,
407
+ const cudnnFilterDescriptor_t wDesc,
408
+ const void *w,
409
+ const cudnnRNNDataDescriptor_t yDesc,
410
+ void *y,
411
+ const cudnnTensorDescriptor_t hyDesc,
412
+ void *hy,
413
+ const cudnnTensorDescriptor_t cyDesc,
414
+ void *cy,
415
+ const cudnnRNNDataDescriptor_t kDesc, /* reserved, should pass NULL */
416
+ const void *keys, /* reserved, should pass NULL */
417
+ const cudnnRNNDataDescriptor_t cDesc, /* reserved, should pass NULL */
418
+ void *cAttn, /* reserved, should pass NULL */
419
+ const cudnnRNNDataDescriptor_t iDesc, /* reserved, should pass NULL */
420
+ void *iAttn, /* reserved, should pass NULL */
421
+ const cudnnRNNDataDescriptor_t qDesc, /* reserved, should pass NULL */
422
+ void *queries, /* reserved, should pass NULL */
423
+ void *workSpace,
424
+ size_t workSpaceSizeInBytes);
425
+
426
+ cudnnStatus_t CUDNNWINAPI
427
+ cudnnRNNForward(cudnnHandle_t handle,
428
+ cudnnRNNDescriptor_t rnnDesc,
429
+ cudnnForwardMode_t fwdMode,
430
+ const int32_t devSeqLengths[],
431
+ cudnnRNNDataDescriptor_t xDesc,
432
+ const void *x,
433
+ cudnnRNNDataDescriptor_t yDesc,
434
+ void *y,
435
+ cudnnTensorDescriptor_t hDesc,
436
+ const void *hx,
437
+ void *hy,
438
+ cudnnTensorDescriptor_t cDesc,
439
+ const void *cx,
440
+ void *cy,
441
+ size_t weightSpaceSize,
442
+ const void *weightSpace,
443
+ size_t workSpaceSize,
444
+ void *workSpace,
445
+ size_t reserveSpaceSize,
446
+ void *reserveSpace);
447
+
448
+ /* RNN FIND API */
449
+
450
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
451
+ cudnnSetRNNAlgorithmDescriptor(cudnnHandle_t handle, cudnnRNNDescriptor_t rnnDesc, cudnnAlgorithmDescriptor_t algoDesc);
452
+
453
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
454
+ cudnnGetRNNForwardInferenceAlgorithmMaxCount(cudnnHandle_t handle, const cudnnRNNDescriptor_t rnnDesc, int *count);
455
+
456
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
457
+ cudnnFindRNNForwardInferenceAlgorithmEx(cudnnHandle_t handle,
458
+ const cudnnRNNDescriptor_t rnnDesc,
459
+ const int seqLength,
460
+ const cudnnTensorDescriptor_t *xDesc,
461
+ const void *x,
462
+ const cudnnTensorDescriptor_t hxDesc,
463
+ const void *hx,
464
+ const cudnnTensorDescriptor_t cxDesc,
465
+ const void *cx,
466
+ const cudnnFilterDescriptor_t wDesc,
467
+ const void *w,
468
+ const cudnnTensorDescriptor_t *yDesc,
469
+ void *y,
470
+ const cudnnTensorDescriptor_t hyDesc,
471
+ void *hy,
472
+ const cudnnTensorDescriptor_t cyDesc,
473
+ void *cy,
474
+ const float findIntensity,
475
+ const int requestedAlgoCount,
476
+ int *returnedAlgoCount,
477
+ cudnnAlgorithmPerformance_t *perfResults,
478
+ void *workspace,
479
+ size_t workSpaceSizeInBytes);
480
+
481
+ /* Sequence data descriptor */
482
+
483
+ typedef enum {
484
+ CUDNN_SEQDATA_TIME_DIM = 0, /* index in time */
485
+ CUDNN_SEQDATA_BATCH_DIM = 1, /* index in batch */
486
+ CUDNN_SEQDATA_BEAM_DIM = 2, /* index in beam */
487
+ CUDNN_SEQDATA_VECT_DIM = 3 /* index in vector */
488
+ } cudnnSeqDataAxis_t;
489
+
490
+ struct cudnnSeqDataStruct;
491
+ typedef struct cudnnSeqDataStruct *cudnnSeqDataDescriptor_t;
492
+
493
+ #define CUDNN_SEQDATA_DIM_COUNT 4 /* dimension count */
494
+
495
+ cudnnStatus_t CUDNNWINAPI
496
+ cudnnCreateSeqDataDescriptor(cudnnSeqDataDescriptor_t *seqDataDesc);
497
+
498
+ cudnnStatus_t CUDNNWINAPI
499
+ cudnnDestroySeqDataDescriptor(cudnnSeqDataDescriptor_t seqDataDesc);
500
+
501
+ cudnnStatus_t CUDNNWINAPI
502
+ cudnnSetSeqDataDescriptor(cudnnSeqDataDescriptor_t seqDataDesc,
503
+ cudnnDataType_t dataType,
504
+ int nbDims,
505
+ const int dimA[],
506
+ const cudnnSeqDataAxis_t axes[],
507
+ size_t seqLengthArraySize,
508
+ const int seqLengthArray[],
509
+ void *paddingFill);
510
+
511
+ cudnnStatus_t CUDNNWINAPI
512
+ cudnnGetSeqDataDescriptor(const cudnnSeqDataDescriptor_t seqDataDesc,
513
+ cudnnDataType_t *dataType,
514
+ int *nbDims,
515
+ int nbDimsRequested,
516
+ int dimA[],
517
+ cudnnSeqDataAxis_t axes[],
518
+ size_t *seqLengthArraySize,
519
+ size_t seqLengthSizeRequested,
520
+ int seqLengthArray[],
521
+ void *paddingFill);
522
+
523
+ /* Multihead Attention */
524
+
525
+ /* Legacy type for backward compatibility */
526
+ typedef unsigned cudnnAttnQueryMap_t;
527
+
528
+ /*
529
+ * Multi-head attention options passed via 'attnMode' in cudnnSetAttnDescriptor().
530
+ * Use the bitwise OR operator to combine several settings listed below. Additional
531
+ * minor options can be added here w/o changing or introducing new API functions.
532
+ */
533
+ #define CUDNN_ATTN_QUERYMAP_ALL_TO_ONE 0 /* multiple Q-s map to a single (K,V) set when beam size > 1 */
534
+ #define CUDNN_ATTN_QUERYMAP_ONE_TO_ONE (1U << 0) /* multiple Q-s map to multiple (K,V) sets when beam size > 1 */
535
+ #define CUDNN_ATTN_DISABLE_PROJ_BIASES 0 /* no biases in attention input and output projections */
536
+ #define CUDNN_ATTN_ENABLE_PROJ_BIASES (1U << 1) /* use biases in attention input and output projections */
537
+
538
+ struct cudnnAttnStruct;
539
+ typedef struct cudnnAttnStruct *cudnnAttnDescriptor_t;
540
+
541
+ cudnnStatus_t CUDNNWINAPI
542
+ cudnnCreateAttnDescriptor(cudnnAttnDescriptor_t *attnDesc);
543
+
544
+ cudnnStatus_t CUDNNWINAPI
545
+ cudnnDestroyAttnDescriptor(cudnnAttnDescriptor_t attnDesc);
546
+
547
+ cudnnStatus_t CUDNNWINAPI
548
+ cudnnSetAttnDescriptor(cudnnAttnDescriptor_t attnDesc,
549
+ unsigned attnMode,
550
+ int nHeads,
551
+ double smScaler,
552
+ cudnnDataType_t dataType,
553
+ cudnnDataType_t computePrec,
554
+ cudnnMathType_t mathType,
555
+ cudnnDropoutDescriptor_t attnDropoutDesc,
556
+ cudnnDropoutDescriptor_t postDropoutDesc,
557
+ int qSize,
558
+ int kSize,
559
+ int vSize,
560
+ int qProjSize,
561
+ int kProjSize,
562
+ int vProjSize,
563
+ int oProjSize,
564
+ int qoMaxSeqLength,
565
+ int kvMaxSeqLength,
566
+ int maxBatchSize,
567
+ int maxBeamSize);
568
+
569
+ cudnnStatus_t CUDNNWINAPI
570
+ cudnnGetAttnDescriptor(cudnnAttnDescriptor_t attnDesc,
571
+ unsigned *attnMode,
572
+ int *nHeads,
573
+ double *smScaler,
574
+ cudnnDataType_t *dataType,
575
+ cudnnDataType_t *computePrec,
576
+ cudnnMathType_t *mathType,
577
+ cudnnDropoutDescriptor_t *attnDropoutDesc,
578
+ cudnnDropoutDescriptor_t *postDropoutDesc,
579
+ int *qSize,
580
+ int *kSize,
581
+ int *vSize,
582
+ int *qProjSize,
583
+ int *kProjSize,
584
+ int *vProjSize,
585
+ int *oProjSize,
586
+ int *qoMaxSeqLength,
587
+ int *kvMaxSeqLength,
588
+ int *maxBatchSize,
589
+ int *maxBeamSize);
590
+
591
+ cudnnStatus_t CUDNNWINAPI
592
+ cudnnGetMultiHeadAttnBuffers(cudnnHandle_t handle,
593
+ const cudnnAttnDescriptor_t attnDesc,
594
+ size_t *weightSizeInBytes,
595
+ size_t *workSpaceSizeInBytes,
596
+ size_t *reserveSpaceSizeInBytes);
597
+
598
+ typedef enum {
599
+ CUDNN_MH_ATTN_Q_WEIGHTS = 0, /* input projection weights for 'queries' */
600
+ CUDNN_MH_ATTN_K_WEIGHTS = 1, /* input projection weights for 'keys' */
601
+ CUDNN_MH_ATTN_V_WEIGHTS = 2, /* input projection weights for 'values' */
602
+ CUDNN_MH_ATTN_O_WEIGHTS = 3, /* output projection weights */
603
+ CUDNN_MH_ATTN_Q_BIASES = 4, /* input projection bias tensor for 'queries' */
604
+ CUDNN_MH_ATTN_K_BIASES = 5, /* input projection bias for 'keys' */
605
+ CUDNN_MH_ATTN_V_BIASES = 6, /* input projection bias for 'values' */
606
+ CUDNN_MH_ATTN_O_BIASES = 7, /* output projection biases */
607
+ } cudnnMultiHeadAttnWeightKind_t;
608
+
609
+ #define CUDNN_ATTN_WKIND_COUNT 8 /* Number of attention weight/bias tensors */
610
+
611
+ cudnnStatus_t CUDNNWINAPI
612
+ cudnnGetMultiHeadAttnWeights(cudnnHandle_t handle,
613
+ const cudnnAttnDescriptor_t attnDesc,
614
+ cudnnMultiHeadAttnWeightKind_t wKind,
615
+ size_t weightSizeInBytes,
616
+ const void *weights,
617
+ cudnnTensorDescriptor_t wDesc,
618
+ void **wAddr);
619
+
620
+ cudnnStatus_t CUDNNWINAPI
621
+ cudnnMultiHeadAttnForward(cudnnHandle_t handle,
622
+ const cudnnAttnDescriptor_t attnDesc,
623
+ int currIdx,
624
+ const int loWinIdx[],
625
+ const int hiWinIdx[],
626
+ const int devSeqLengthsQO[],
627
+ const int devSeqLengthsKV[],
628
+ const cudnnSeqDataDescriptor_t qDesc,
629
+ const void *queries,
630
+ const void *residuals,
631
+ const cudnnSeqDataDescriptor_t kDesc,
632
+ const void *keys,
633
+ const cudnnSeqDataDescriptor_t vDesc,
634
+ const void *values,
635
+ const cudnnSeqDataDescriptor_t oDesc,
636
+ void *out,
637
+ size_t weightSizeInBytes,
638
+ const void *weights,
639
+ size_t workSpaceSizeInBytes,
640
+ void *workSpace,
641
+ size_t reserveSpaceSizeInBytes,
642
+ void *reserveSpace);
643
+
644
+ /*
645
+ * \brief Cross-library version checker.
646
+ * This function is implemented differently in each sub-library. Each sublib
647
+ * checks whether its own version matches that of its dependencies.
648
+ * \returns CUDNN_STATUS_SUCCESS if the version check passes,
649
+ * CUDNN_STATUS_VERSION_MISMATCH if the versions are inconsistent.
650
+ */
651
+ cudnnStatus_t CUDNNWINAPI
652
+ cudnnAdvInferVersionCheck(void);
653
+
654
+ #if defined(__cplusplus)
655
+ }
656
+ #endif
657
+
658
+ #endif /* CUDNN_ADV_INFER_H_ */
my_container_sandbox/workspace/anaconda3/include/cudnn_adv_train_v8.h ADDED
@@ -0,0 +1,540 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Copyright 2014-2023 NVIDIA Corporation. All rights reserved.
3
+ *
4
+ * NOTICE TO LICENSEE:
5
+ *
6
+ * This source code and/or documentation ("Licensed Deliverables") are
7
+ * subject to NVIDIA intellectual property rights under U.S. and
8
+ * international Copyright laws.
9
+ *
10
+ * These Licensed Deliverables contained herein is PROPRIETARY and
11
+ * CONFIDENTIAL to NVIDIA and is being provided under the terms and
12
+ * conditions of a form of NVIDIA software license agreement by and
13
+ * between NVIDIA and Licensee ("License Agreement") or electronically
14
+ * accepted by Licensee. Notwithstanding any terms or conditions to
15
+ * the contrary in the License Agreement, reproduction or disclosure
16
+ * of the Licensed Deliverables to any third party without the express
17
+ * written consent of NVIDIA is prohibited.
18
+ *
19
+ * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
20
+ * LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE
21
+ * SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE. IT IS
22
+ * PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND.
23
+ * NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED
24
+ * DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY,
25
+ * NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE.
26
+ * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
27
+ * LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY
28
+ * SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY
29
+ * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
30
+ * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
31
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
32
+ * OF THESE LICENSED DELIVERABLES.
33
+ *
34
+ * U.S. Government End Users. These Licensed Deliverables are a
35
+ * "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT
36
+ * 1995), consisting of "commercial computer software" and "commercial
37
+ * computer software documentation" as such terms are used in 48
38
+ * C.F.R. 12.212 (SEPT 1995) and is provided to the U.S. Government
39
+ * only as a commercial end item. Consistent with 48 C.F.R.12.212 and
40
+ * 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all
41
+ * U.S. Government End Users acquire the Licensed Deliverables with
42
+ * only those rights set forth herein.
43
+ *
44
+ * Any use of the Licensed Deliverables in individual and commercial
45
+ * software must include, in the user documentation and internal
46
+ * comments to the code, the above Disclaimer and U.S. Government End
47
+ * Users Notice.
48
+ */
49
+
50
+ /* cudnn_adv_train : cuDNN's advanced and experimental features.
51
+
52
+ */
53
+
54
+ #if !defined(CUDNN_ADV_TRAIN_H_)
55
+ #define CUDNN_ADV_TRAIN_H_
56
+
57
+ #include <cuda_runtime.h>
58
+ #include <stdint.h>
59
+
60
+ #include "cudnn_version.h"
61
+ #include "cudnn_ops_infer.h"
62
+ #include "cudnn_ops_train.h"
63
+ #include "cudnn_adv_infer.h"
64
+
65
+ /* These version numbers are autogenerated, do not edit manually. */
66
+ #define CUDNN_ADV_TRAIN_MAJOR 8
67
+ #define CUDNN_ADV_TRAIN_MINOR 9
68
+ #define CUDNN_ADV_TRAIN_PATCH 2
69
+
70
+ #if (CUDNN_ADV_TRAIN_MAJOR != CUDNN_MAJOR) || (CUDNN_ADV_TRAIN_MINOR != CUDNN_MINOR) || \
71
+ (CUDNN_ADV_TRAIN_PATCH != CUDNN_PATCHLEVEL)
72
+ #error Version mismatch in cuDNN ADV TRAIN!!!
73
+ #endif
74
+
75
+ #if defined(__cplusplus)
76
+ extern "C" {
77
+ #endif
78
+
79
+ typedef enum {
80
+ CUDNN_WGRAD_MODE_ADD = 0, /* add partial gradients to wgrad output buffers */
81
+ CUDNN_WGRAD_MODE_SET = 1, /* write partial gradients to wgrad output buffers */
82
+ } cudnnWgradMode_t;
83
+
84
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
85
+ cudnnRNNForwardTraining(cudnnHandle_t handle,
86
+ const cudnnRNNDescriptor_t rnnDesc,
87
+ const int seqLength,
88
+ const cudnnTensorDescriptor_t *xDesc,
89
+ const void *x,
90
+ const cudnnTensorDescriptor_t hxDesc,
91
+ const void *hx,
92
+ const cudnnTensorDescriptor_t cxDesc,
93
+ const void *cx,
94
+ const cudnnFilterDescriptor_t wDesc,
95
+ const void *w,
96
+ const cudnnTensorDescriptor_t *yDesc,
97
+ void *y,
98
+ const cudnnTensorDescriptor_t hyDesc,
99
+ void *hy,
100
+ const cudnnTensorDescriptor_t cyDesc,
101
+ void *cy,
102
+ void *workSpace,
103
+ size_t workSpaceSizeInBytes,
104
+ void *reserveSpace,
105
+ size_t reserveSpaceSizeInBytes);
106
+
107
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
108
+ cudnnRNNBackwardData(cudnnHandle_t handle,
109
+ const cudnnRNNDescriptor_t rnnDesc,
110
+ const int seqLength,
111
+ const cudnnTensorDescriptor_t *yDesc,
112
+ const void *y,
113
+ const cudnnTensorDescriptor_t *dyDesc,
114
+ const void *dy,
115
+ const cudnnTensorDescriptor_t dhyDesc,
116
+ const void *dhy,
117
+ const cudnnTensorDescriptor_t dcyDesc,
118
+ const void *dcy,
119
+ const cudnnFilterDescriptor_t wDesc,
120
+ const void *w,
121
+ const cudnnTensorDescriptor_t hxDesc,
122
+ const void *hx,
123
+ const cudnnTensorDescriptor_t cxDesc,
124
+ const void *cx,
125
+ const cudnnTensorDescriptor_t *dxDesc,
126
+ void *dx,
127
+ const cudnnTensorDescriptor_t dhxDesc,
128
+ void *dhx,
129
+ const cudnnTensorDescriptor_t dcxDesc,
130
+ void *dcx,
131
+ void *workSpace,
132
+ size_t workSpaceSizeInBytes,
133
+ void *reserveSpace,
134
+ size_t reserveSpaceSizeInBytes);
135
+
136
+ cudnnStatus_t CUDNNWINAPI
137
+ cudnnRNNBackwardData_v8(cudnnHandle_t handle,
138
+ cudnnRNNDescriptor_t rnnDesc,
139
+ const int32_t devSeqLengths[],
140
+ cudnnRNNDataDescriptor_t yDesc,
141
+ const void *y,
142
+ const void *dy,
143
+ cudnnRNNDataDescriptor_t xDesc,
144
+ void *dx,
145
+ cudnnTensorDescriptor_t hDesc,
146
+ const void *hx,
147
+ const void *dhy,
148
+ void *dhx,
149
+ cudnnTensorDescriptor_t cDesc,
150
+ const void *cx,
151
+ const void *dcy,
152
+ void *dcx,
153
+ size_t weightSpaceSize,
154
+ const void *weightSpace,
155
+ size_t workSpaceSize,
156
+ void *workSpace,
157
+ size_t reserveSpaceSize,
158
+ void *reserveSpace);
159
+
160
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
161
+ cudnnRNNBackwardWeights(cudnnHandle_t handle,
162
+ const cudnnRNNDescriptor_t rnnDesc,
163
+ const int seqLength,
164
+ const cudnnTensorDescriptor_t *xDesc,
165
+ const void *x,
166
+ const cudnnTensorDescriptor_t hxDesc,
167
+ const void *hx,
168
+ const cudnnTensorDescriptor_t *yDesc,
169
+ const void *y,
170
+ const void *workSpace,
171
+ size_t workSpaceSizeInBytes,
172
+ const cudnnFilterDescriptor_t dwDesc,
173
+ void *dw,
174
+ const void *reserveSpace,
175
+ size_t reserveSpaceSizeInBytes);
176
+
177
+ cudnnStatus_t CUDNNWINAPI
178
+ cudnnRNNBackwardWeights_v8(cudnnHandle_t handle,
179
+ cudnnRNNDescriptor_t rnnDesc,
180
+ cudnnWgradMode_t addGrad,
181
+ const int32_t devSeqLengths[],
182
+ cudnnRNNDataDescriptor_t xDesc,
183
+ const void *x,
184
+ cudnnTensorDescriptor_t hDesc,
185
+ const void *hx,
186
+ cudnnRNNDataDescriptor_t yDesc,
187
+ const void *y,
188
+ size_t weightSpaceSize,
189
+ void *dweightSpace,
190
+ size_t workSpaceSize,
191
+ void *workSpace,
192
+ size_t reserveSpaceSize,
193
+ void *reserveSpace);
194
+
195
+ /* RNN EX API */
196
+
197
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
198
+ cudnnRNNForwardTrainingEx(cudnnHandle_t handle,
199
+ const cudnnRNNDescriptor_t rnnDesc,
200
+ const cudnnRNNDataDescriptor_t xDesc,
201
+ const void *x,
202
+ const cudnnTensorDescriptor_t hxDesc,
203
+ const void *hx,
204
+ const cudnnTensorDescriptor_t cxDesc,
205
+ const void *cx,
206
+ const cudnnFilterDescriptor_t wDesc,
207
+ const void *w,
208
+ const cudnnRNNDataDescriptor_t yDesc,
209
+ void *y,
210
+ const cudnnTensorDescriptor_t hyDesc,
211
+ void *hy,
212
+ const cudnnTensorDescriptor_t cyDesc,
213
+ void *cy,
214
+ const cudnnRNNDataDescriptor_t kDesc, /* reserved, should pass NULL */
215
+ const void *keys, /* reserved, should pass NULL */
216
+ const cudnnRNNDataDescriptor_t cDesc, /* reserved, should pass NULL */
217
+ void *cAttn, /* reserved, should pass NULL */
218
+ const cudnnRNNDataDescriptor_t iDesc, /* reserved, should pass NULL */
219
+ void *iAttn, /* reserved, should pass NULL */
220
+ const cudnnRNNDataDescriptor_t qDesc, /* reserved, should pass NULL */
221
+ void *queries, /* reserved, should pass NULL */
222
+ void *workSpace,
223
+ size_t workSpaceSizeInBytes,
224
+ void *reserveSpace,
225
+ size_t reserveSpaceSizeInBytes);
226
+
227
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
228
+ cudnnRNNBackwardDataEx(cudnnHandle_t handle,
229
+ const cudnnRNNDescriptor_t rnnDesc,
230
+ const cudnnRNNDataDescriptor_t yDesc,
231
+ const void *y,
232
+ const cudnnRNNDataDescriptor_t dyDesc,
233
+ const void *dy,
234
+ const cudnnRNNDataDescriptor_t dcDesc, /* reserved, should pass NULL */
235
+ const void *dcAttn, /* reserved, should pass NULL */
236
+ const cudnnTensorDescriptor_t dhyDesc,
237
+ const void *dhy,
238
+ const cudnnTensorDescriptor_t dcyDesc,
239
+ const void *dcy,
240
+ const cudnnFilterDescriptor_t wDesc,
241
+ const void *w,
242
+ const cudnnTensorDescriptor_t hxDesc,
243
+ const void *hx,
244
+ const cudnnTensorDescriptor_t cxDesc,
245
+ const void *cx,
246
+ const cudnnRNNDataDescriptor_t dxDesc,
247
+ void *dx,
248
+ const cudnnTensorDescriptor_t dhxDesc,
249
+ void *dhx,
250
+ const cudnnTensorDescriptor_t dcxDesc,
251
+ void *dcx,
252
+ const cudnnRNNDataDescriptor_t dkDesc, /* reserved, should pass NULL */
253
+ void *dkeys, /* reserved, should pass NULL */
254
+ void *workSpace,
255
+ size_t workSpaceSizeInBytes,
256
+ void *reserveSpace,
257
+ size_t reserveSpaceSizeInBytes);
258
+
259
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
260
+ cudnnRNNBackwardWeightsEx(cudnnHandle_t handle,
261
+ const cudnnRNNDescriptor_t rnnDesc,
262
+ const cudnnRNNDataDescriptor_t xDesc,
263
+ const void *x,
264
+ const cudnnTensorDescriptor_t hxDesc,
265
+ const void *hx,
266
+ const cudnnRNNDataDescriptor_t yDesc,
267
+ const void *y,
268
+ void *workSpace,
269
+ size_t workSpaceSizeInBytes,
270
+ const cudnnFilterDescriptor_t dwDesc,
271
+ void *dw,
272
+ void *reserveSpace,
273
+ size_t reserveSpaceSizeInBytes);
274
+
275
+ /* RNN FIND API */
276
+
277
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
278
+ cudnnGetRNNForwardTrainingAlgorithmMaxCount(cudnnHandle_t handle, const cudnnRNNDescriptor_t rnnDesc, int *count);
279
+
280
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
281
+ cudnnFindRNNForwardTrainingAlgorithmEx(cudnnHandle_t handle,
282
+ const cudnnRNNDescriptor_t rnnDesc,
283
+ const int seqLength,
284
+ const cudnnTensorDescriptor_t *xDesc,
285
+ const void *x,
286
+ const cudnnTensorDescriptor_t hxDesc,
287
+ const void *hx,
288
+ const cudnnTensorDescriptor_t cxDesc,
289
+ const void *cx,
290
+ const cudnnFilterDescriptor_t wDesc,
291
+ const void *w,
292
+ const cudnnTensorDescriptor_t *yDesc,
293
+ void *y,
294
+ const cudnnTensorDescriptor_t hyDesc,
295
+ void *hy,
296
+ const cudnnTensorDescriptor_t cyDesc,
297
+ void *cy,
298
+ const float findIntensity,
299
+ const int requestedAlgoCount,
300
+ int *returnedAlgoCount,
301
+ cudnnAlgorithmPerformance_t *perfResults,
302
+ void *workspace,
303
+ size_t workSpaceSizeInBytes,
304
+ void *reserveSpace,
305
+ size_t reserveSpaceSizeInBytes);
306
+
307
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
308
+ cudnnGetRNNBackwardDataAlgorithmMaxCount(cudnnHandle_t handle, const cudnnRNNDescriptor_t rnnDesc, int *count);
309
+
310
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
311
+ cudnnFindRNNBackwardDataAlgorithmEx(cudnnHandle_t handle,
312
+ const cudnnRNNDescriptor_t rnnDesc,
313
+ const int seqLength,
314
+ const cudnnTensorDescriptor_t *yDesc,
315
+ const void *y,
316
+ const cudnnTensorDescriptor_t *dyDesc,
317
+ const void *dy,
318
+ const cudnnTensorDescriptor_t dhyDesc,
319
+ const void *dhy,
320
+ const cudnnTensorDescriptor_t dcyDesc,
321
+ const void *dcy,
322
+ const cudnnFilterDescriptor_t wDesc,
323
+ const void *w,
324
+ const cudnnTensorDescriptor_t hxDesc,
325
+ const void *hx,
326
+ const cudnnTensorDescriptor_t cxDesc,
327
+ const void *cx,
328
+ const cudnnTensorDescriptor_t *dxDesc,
329
+ void *dx,
330
+ const cudnnTensorDescriptor_t dhxDesc,
331
+ void *dhx,
332
+ const cudnnTensorDescriptor_t dcxDesc,
333
+ void *dcx,
334
+ const float findIntensity,
335
+ const int requestedAlgoCount,
336
+ int *returnedAlgoCount,
337
+ cudnnAlgorithmPerformance_t *perfResults,
338
+ void *workspace,
339
+ size_t workSpaceSizeInBytes,
340
+ void *reserveSpace,
341
+ size_t reserveSpaceSizeInBytes);
342
+
343
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
344
+ cudnnGetRNNBackwardWeightsAlgorithmMaxCount(cudnnHandle_t handle, const cudnnRNNDescriptor_t rnnDesc, int *count);
345
+
346
+ CUDNN_DEPRECATED cudnnStatus_t CUDNNWINAPI
347
+ cudnnFindRNNBackwardWeightsAlgorithmEx(cudnnHandle_t handle,
348
+ const cudnnRNNDescriptor_t rnnDesc,
349
+ const int seqLength,
350
+ const cudnnTensorDescriptor_t *xDesc,
351
+ const void *x,
352
+ const cudnnTensorDescriptor_t hxDesc,
353
+ const void *hx,
354
+ const cudnnTensorDescriptor_t *yDesc,
355
+ const void *y,
356
+ const float findIntensity,
357
+ const int requestedAlgoCount,
358
+ int *returnedAlgoCount,
359
+ cudnnAlgorithmPerformance_t *perfResults,
360
+ const void *workspace,
361
+ size_t workSpaceSizeInBytes,
362
+ const cudnnFilterDescriptor_t dwDesc,
363
+ void *dw,
364
+ const void *reserveSpace,
365
+ size_t reserveSpaceSizeInBytes);
366
+
367
+ cudnnStatus_t CUDNNWINAPI
368
+ cudnnMultiHeadAttnBackwardData(cudnnHandle_t handle,
369
+ const cudnnAttnDescriptor_t attnDesc,
370
+ const int loWinIdx[],
371
+ const int hiWinIdx[],
372
+ const int devSeqLengthsDQDO[],
373
+ const int devSeqLengthsDKDV[],
374
+ const cudnnSeqDataDescriptor_t doDesc,
375
+ const void *dout,
376
+ const cudnnSeqDataDescriptor_t dqDesc,
377
+ void *dqueries,
378
+ const void *queries,
379
+ const cudnnSeqDataDescriptor_t dkDesc,
380
+ void *dkeys,
381
+ const void *keys,
382
+ const cudnnSeqDataDescriptor_t dvDesc,
383
+ void *dvalues,
384
+ const void *values,
385
+ size_t weightSizeInBytes,
386
+ const void *weights,
387
+ size_t workSpaceSizeInBytes,
388
+ void *workSpace,
389
+ size_t reserveSpaceSizeInBytes,
390
+ void *reserveSpace);
391
+
392
+ cudnnStatus_t CUDNNWINAPI
393
+ cudnnMultiHeadAttnBackwardWeights(cudnnHandle_t handle,
394
+ const cudnnAttnDescriptor_t attnDesc,
395
+ cudnnWgradMode_t addGrad,
396
+ const cudnnSeqDataDescriptor_t qDesc,
397
+ const void *queries,
398
+ const cudnnSeqDataDescriptor_t kDesc,
399
+ const void *keys,
400
+ const cudnnSeqDataDescriptor_t vDesc,
401
+ const void *values,
402
+ const cudnnSeqDataDescriptor_t doDesc,
403
+ const void *dout,
404
+ size_t weightSizeInBytes,
405
+ const void *weights,
406
+ void *dweights,
407
+ size_t workSpaceSizeInBytes,
408
+ void *workSpace,
409
+ size_t reserveSpaceSizeInBytes,
410
+ void *reserveSpace);
411
+
412
+ /*
413
+ * CTC (Connectionist Temporal Classification) loss descriptor create/destory/set/get functions
414
+ */
415
+ /* Input normalization mode for loss function */
416
+ typedef enum {
417
+ CUDNN_LOSS_NORMALIZATION_NONE = 0,
418
+ CUDNN_LOSS_NORMALIZATION_SOFTMAX = 1,
419
+ } cudnnLossNormalizationMode_t;
420
+
421
+ cudnnStatus_t CUDNNWINAPI
422
+ cudnnCreateCTCLossDescriptor(cudnnCTCLossDescriptor_t *ctcLossDesc);
423
+
424
+ cudnnStatus_t CUDNNWINAPI
425
+ cudnnSetCTCLossDescriptor(cudnnCTCLossDescriptor_t ctcLossDesc, cudnnDataType_t compType);
426
+
427
+ cudnnStatus_t CUDNNWINAPI
428
+ cudnnSetCTCLossDescriptorEx(cudnnCTCLossDescriptor_t ctcLossDesc,
429
+ cudnnDataType_t compType,
430
+ cudnnLossNormalizationMode_t normMode,
431
+ cudnnNanPropagation_t gradMode);
432
+
433
+ cudnnStatus_t CUDNNWINAPI
434
+ cudnnSetCTCLossDescriptor_v8(cudnnCTCLossDescriptor_t ctcLossDesc,
435
+ cudnnDataType_t compType,
436
+ cudnnLossNormalizationMode_t normMode,
437
+ cudnnNanPropagation_t gradMode,
438
+ int maxLabelLength);
439
+
440
+ cudnnStatus_t CUDNNWINAPI
441
+ cudnnGetCTCLossDescriptor(cudnnCTCLossDescriptor_t ctcLossDesc, cudnnDataType_t *compType);
442
+
443
+ cudnnStatus_t CUDNNWINAPI
444
+ cudnnGetCTCLossDescriptorEx(cudnnCTCLossDescriptor_t ctcLossDesc,
445
+ cudnnDataType_t *compType,
446
+ cudnnLossNormalizationMode_t *normMode,
447
+ cudnnNanPropagation_t *gradMode);
448
+
449
+ cudnnStatus_t CUDNNWINAPI
450
+ cudnnGetCTCLossDescriptor_v8(cudnnCTCLossDescriptor_t ctcLossDesc,
451
+ cudnnDataType_t *compType,
452
+ cudnnLossNormalizationMode_t *normMode,
453
+ cudnnNanPropagation_t *gradMode,
454
+ int *maxLabelLength);
455
+
456
+ cudnnStatus_t CUDNNWINAPI
457
+ cudnnDestroyCTCLossDescriptor(cudnnCTCLossDescriptor_t ctcLossDesc);
458
+
459
+ /* return the ctc costs and gradients, given the probabilities and labels */
460
+ cudnnStatus_t CUDNNWINAPI
461
+ cudnnCTCLoss(
462
+ cudnnHandle_t handle,
463
+ const cudnnTensorDescriptor_t
464
+ probsDesc, /* Tensor descriptor for probabilities, the dimensions are T,N,A (T is the timing steps, N is the
465
+ mini batch size, A is the alphabet size) */
466
+ const void *probs, /* probabilities after softmax, in GPU memory */
467
+ const int hostLabels[], /* labels, in CPU memory */
468
+ const int hostLabelLengths[], /* the length of each label, in CPU memory */
469
+ const int hostInputLengths[], /* the lengths of timing steps in each batch, in CPU memory */
470
+ void *costs, /* the returned costs of CTC, in GPU memory */
471
+ const cudnnTensorDescriptor_t gradientsDesc, /* Tensor descriptor for gradients, the dimensions are T,N,A */
472
+ void *gradients, /* the returned CTC gradients, in GPU memory, to compute costs only, set it to NULL */
473
+ cudnnCTCLossAlgo_t algo, /* algorithm selected, supported now 0 and 1 */
474
+ cudnnCTCLossDescriptor_t ctcLossDesc,
475
+ void *workspace, /* pointer to the workspace, in GPU memory */
476
+ size_t workSpaceSizeInBytes); /* size of the workspace */
477
+
478
+ /* return the ctc costs and gradients, given the probabilities and labels */
479
+ cudnnStatus_t CUDNNWINAPI
480
+ cudnnCTCLoss_v8(
481
+ cudnnHandle_t handle,
482
+ cudnnCTCLossAlgo_t algo, /* algorithm selected, supported now 0 and 1 */
483
+ cudnnCTCLossDescriptor_t ctcLossDesc,
484
+ const cudnnTensorDescriptor_t
485
+ probsDesc, /* Tensor descriptor for probabilities, the dimensions are T,N,A (T is the timing steps, N is the
486
+ mini batch size, A is the alphabet size) */
487
+ const void *probs, /* probabilities after softmax, in GPU memory */
488
+ const int labels[], /* labels, in GPU memory */
489
+ const int labelLengths[], /* the length of each label, in GPU memory */
490
+ const int inputLengths[], /* the lengths of timing steps in each batch, in GPU memory */
491
+ void *costs, /* the returned costs of CTC, in GPU memory */
492
+ const cudnnTensorDescriptor_t gradientsDesc, /* Tensor descriptor for gradients, the dimensions are T,N,A */
493
+ void *gradients, /* the returned CTC gradients, in GPU memory, to compute costs only, set it to NULL */
494
+ size_t workSpaceSizeInBytes, /* size of the workspace */
495
+ void *workspace); /* pointer to the workspace, in GPU memory */
496
+
497
+ /* return the workspace size needed for ctc */
498
+ cudnnStatus_t CUDNNWINAPI
499
+ cudnnGetCTCLossWorkspaceSize(
500
+ cudnnHandle_t handle,
501
+ const cudnnTensorDescriptor_t probsDesc, /* Tensor descriptor for probabilities, the dimensions are T,N,A (T is the
502
+ timing steps, N is the mini batch size, A is the alphabet size) */
503
+ const cudnnTensorDescriptor_t gradientsDesc, /* Tensor descriptor for gradients, the
504
+ dimensions are T,N,A. To compute costs
505
+ only, set it to NULL */
506
+ const int *labels, /* labels, in CPU memory */
507
+ const int *labelLengths, /* the length of each label, in CPU memory */
508
+ const int *inputLengths, /* the lengths of timing steps in each batch, in CPU memory */
509
+ cudnnCTCLossAlgo_t algo, /* algorithm selected, supported now 0 and 1 */
510
+ cudnnCTCLossDescriptor_t ctcLossDesc,
511
+ size_t *sizeInBytes); /* pointer to the returned workspace size */
512
+
513
+ /* return the workspace size needed for ctc */
514
+ cudnnStatus_t CUDNNWINAPI
515
+ cudnnGetCTCLossWorkspaceSize_v8(
516
+ cudnnHandle_t handle,
517
+ cudnnCTCLossAlgo_t algo, /* algorithm selected, supported now 0 and 1 */
518
+ cudnnCTCLossDescriptor_t ctcLossDesc,
519
+ const cudnnTensorDescriptor_t probsDesc, /* Tensor descriptor for probabilities, the dimensions are T,N,A (T is the
520
+ timing steps, N is the mini batch size, A is the alphabet size) */
521
+ const cudnnTensorDescriptor_t gradientsDesc, /* Tensor descriptor for gradients, the
522
+ dimensions are T,N,A. To compute costs
523
+ only, set it to NULL */
524
+ size_t *sizeInBytes); /* pointer to the returned workspace size */
525
+
526
+ /*
527
+ * \brief Cross-library version checker.
528
+ * This function is implemented differently in each sub-library. Each sublib
529
+ * checks whether its own version matches that of its dependencies.
530
+ * \returns CUDNN_STATUS_SUCCESS if the version check passes,
531
+ * CUDNN_STATUS_VERSION_MISMATCH if the versions are inconsistent.
532
+ */
533
+ cudnnStatus_t CUDNNWINAPI
534
+ cudnnAdvTrainVersionCheck(void);
535
+
536
+ #if defined(__cplusplus)
537
+ }
538
+ #endif
539
+
540
+ #endif /* CUDNN_ADV_TRAIN_H_ */
my_container_sandbox/workspace/anaconda3/include/cudnn_backend.h ADDED
@@ -0,0 +1,608 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Copyright 2014-2023 NVIDIA Corporation. All rights reserved.
3
+ *
4
+ * NOTICE TO LICENSEE:
5
+ *
6
+ * This source code and/or documentation ("Licensed Deliverables") are
7
+ * subject to NVIDIA intellectual property rights under U.S. and
8
+ * international Copyright laws.
9
+ *
10
+ * These Licensed Deliverables contained herein is PROPRIETARY and
11
+ * CONFIDENTIAL to NVIDIA and is being provided under the terms and
12
+ * conditions of a form of NVIDIA software license agreement by and
13
+ * between NVIDIA and Licensee ("License Agreement") or electronically
14
+ * accepted by Licensee. Notwithstanding any terms or conditions to
15
+ * the contrary in the License Agreement, reproduction or disclosure
16
+ * of the Licensed Deliverables to any third party without the express
17
+ * written consent of NVIDIA is prohibited.
18
+ *
19
+ * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
20
+ * LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE
21
+ * SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE. IT IS
22
+ * PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND.
23
+ * NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED
24
+ * DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY,
25
+ * NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE.
26
+ * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
27
+ * LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY
28
+ * SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY
29
+ * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
30
+ * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
31
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
32
+ * OF THESE LICENSED DELIVERABLES.
33
+ *
34
+ * U.S. Government End Users. These Licensed Deliverables are a
35
+ * "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT
36
+ * 1995), consisting of "commercial computer software" and "commercial
37
+ * computer software documentation" as such terms are used in 48
38
+ * C.F.R. 12.212 (SEPT 1995) and is provided to the U.S. Government
39
+ * only as a commercial end item. Consistent with 48 C.F.R.12.212 and
40
+ * 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all
41
+ * U.S. Government End Users acquire the Licensed Deliverables with
42
+ * only those rights set forth herein.
43
+ *
44
+ * Any use of the Licensed Deliverables in individual and commercial
45
+ * software must include, in the user documentation and internal
46
+ * comments to the code, the above Disclaimer and U.S. Government End
47
+ * Users Notice.
48
+ */
49
+
50
+ #ifndef _CUDNN_BACKEND_H_
51
+ #define _CUDNN_BACKEND_H_
52
+
53
+ /*
54
+ * The content in this header file is under development to be included in cudnn.h in the future
55
+ * Production code should have all include of this header file remove.
56
+ */
57
+
58
+ #include "cudnn_ops_infer.h"
59
+ #include "cudnn_cnn_infer.h"
60
+
61
+ /* NOTE: definition in extern "C" to be copied later to public header */
62
+ #if defined(__cplusplus)
63
+ extern "C" {
64
+ #endif
65
+
66
+ typedef void *cudnnBackendDescriptor_t;
67
+
68
+ typedef struct cudnnFractionStruct {
69
+ int64_t numerator;
70
+ int64_t denominator;
71
+ } cudnnFraction_t;
72
+
73
+ typedef enum {
74
+ CUDNN_POINTWISE_ADD = 0,
75
+ CUDNN_POINTWISE_ADD_SQUARE = 5,
76
+ CUDNN_POINTWISE_DIV = 6,
77
+ CUDNN_POINTWISE_MAX = 3,
78
+ CUDNN_POINTWISE_MIN = 2,
79
+ CUDNN_POINTWISE_MOD = 7,
80
+ CUDNN_POINTWISE_MUL = 1,
81
+ CUDNN_POINTWISE_POW = 8,
82
+ CUDNN_POINTWISE_SUB = 9,
83
+
84
+ CUDNN_POINTWISE_ABS = 10,
85
+ CUDNN_POINTWISE_CEIL = 11,
86
+ CUDNN_POINTWISE_COS = 12,
87
+ CUDNN_POINTWISE_EXP = 13,
88
+ CUDNN_POINTWISE_FLOOR = 14,
89
+ CUDNN_POINTWISE_LOG = 15,
90
+ CUDNN_POINTWISE_NEG = 16,
91
+ CUDNN_POINTWISE_RSQRT = 17,
92
+ CUDNN_POINTWISE_SIN = 18,
93
+ CUDNN_POINTWISE_SQRT = 4,
94
+ CUDNN_POINTWISE_TAN = 19,
95
+ CUDNN_POINTWISE_ERF = 20,
96
+ CUDNN_POINTWISE_IDENTITY = 21,
97
+ CUDNN_POINTWISE_RECIPROCAL = 22,
98
+
99
+ CUDNN_POINTWISE_RELU_FWD = 100,
100
+ CUDNN_POINTWISE_TANH_FWD = 101,
101
+ CUDNN_POINTWISE_SIGMOID_FWD = 102,
102
+ CUDNN_POINTWISE_ELU_FWD = 103,
103
+ CUDNN_POINTWISE_GELU_FWD = 104,
104
+ CUDNN_POINTWISE_SOFTPLUS_FWD = 105,
105
+ CUDNN_POINTWISE_SWISH_FWD = 106,
106
+ CUDNN_POINTWISE_GELU_APPROX_TANH_FWD = 107,
107
+
108
+ CUDNN_POINTWISE_RELU_BWD = 200,
109
+ CUDNN_POINTWISE_TANH_BWD = 201,
110
+ CUDNN_POINTWISE_SIGMOID_BWD = 202,
111
+ CUDNN_POINTWISE_ELU_BWD = 203,
112
+ CUDNN_POINTWISE_GELU_BWD = 204,
113
+ CUDNN_POINTWISE_SOFTPLUS_BWD = 205,
114
+ CUDNN_POINTWISE_SWISH_BWD = 206,
115
+ CUDNN_POINTWISE_GELU_APPROX_TANH_BWD = 207,
116
+
117
+ CUDNN_POINTWISE_CMP_EQ = 300,
118
+ CUDNN_POINTWISE_CMP_NEQ = 301,
119
+ CUDNN_POINTWISE_CMP_GT = 302,
120
+ CUDNN_POINTWISE_CMP_GE = 303,
121
+ CUDNN_POINTWISE_CMP_LT = 304,
122
+ CUDNN_POINTWISE_CMP_LE = 305,
123
+
124
+ CUDNN_POINTWISE_LOGICAL_AND = 400,
125
+ CUDNN_POINTWISE_LOGICAL_OR = 401,
126
+ CUDNN_POINTWISE_LOGICAL_NOT = 402,
127
+
128
+ CUDNN_POINTWISE_GEN_INDEX = 501,
129
+
130
+ CUDNN_POINTWISE_BINARY_SELECT = 601,
131
+ } cudnnPointwiseMode_t;
132
+
133
+ typedef enum {
134
+ CUDNN_RESAMPLE_NEAREST = 0,
135
+ CUDNN_RESAMPLE_BILINEAR = 1,
136
+ CUDNN_RESAMPLE_AVGPOOL = 2,
137
+ CUDNN_RESAMPLE_AVGPOOL_INCLUDE_PADDING = 2,
138
+ CUDNN_RESAMPLE_AVGPOOL_EXCLUDE_PADDING = 4,
139
+ CUDNN_RESAMPLE_MAXPOOL = 3,
140
+ } cudnnResampleMode_t;
141
+
142
+ typedef enum {
143
+ CUDNN_SIGNAL_SET = 0,
144
+ CUDNN_SIGNAL_WAIT = 1,
145
+ } cudnnSignalMode_t;
146
+
147
+ typedef enum {
148
+ CUDNN_GENSTATS_SUM_SQSUM = 0,
149
+ } cudnnGenStatsMode_t;
150
+
151
+ typedef enum {
152
+ CUDNN_BN_FINALIZE_STATISTICS_TRAINING = 0,
153
+ CUDNN_BN_FINALIZE_STATISTICS_INFERENCE = 1,
154
+ } cudnnBnFinalizeStatsMode_t;
155
+
156
+ typedef enum {
157
+ CUDNN_RNG_DISTRIBUTION_BERNOULLI,
158
+ CUDNN_RNG_DISTRIBUTION_UNIFORM,
159
+ CUDNN_RNG_DISTRIBUTION_NORMAL,
160
+ } cudnnRngDistribution_t;
161
+
162
+ typedef enum {
163
+ CUDNN_ATTR_POINTWISE_MODE = 0,
164
+ CUDNN_ATTR_POINTWISE_MATH_PREC = 1,
165
+ CUDNN_ATTR_POINTWISE_NAN_PROPAGATION = 2,
166
+ CUDNN_ATTR_POINTWISE_RELU_LOWER_CLIP = 3,
167
+ CUDNN_ATTR_POINTWISE_RELU_UPPER_CLIP = 4,
168
+ CUDNN_ATTR_POINTWISE_RELU_LOWER_CLIP_SLOPE = 5,
169
+ CUDNN_ATTR_POINTWISE_ELU_ALPHA = 6,
170
+ CUDNN_ATTR_POINTWISE_SOFTPLUS_BETA = 7,
171
+ CUDNN_ATTR_POINTWISE_SWISH_BETA = 8,
172
+ CUDNN_ATTR_POINTWISE_AXIS = 9,
173
+
174
+ CUDNN_ATTR_CONVOLUTION_COMP_TYPE = 100,
175
+ CUDNN_ATTR_CONVOLUTION_CONV_MODE = 101,
176
+ CUDNN_ATTR_CONVOLUTION_DILATIONS = 102,
177
+ CUDNN_ATTR_CONVOLUTION_FILTER_STRIDES = 103,
178
+ CUDNN_ATTR_CONVOLUTION_POST_PADDINGS = 104,
179
+ CUDNN_ATTR_CONVOLUTION_PRE_PADDINGS = 105,
180
+ CUDNN_ATTR_CONVOLUTION_SPATIAL_DIMS = 106,
181
+
182
+ CUDNN_ATTR_ENGINEHEUR_MODE = 200,
183
+ CUDNN_ATTR_ENGINEHEUR_OPERATION_GRAPH = 201,
184
+ CUDNN_ATTR_ENGINEHEUR_RESULTS = 202,
185
+
186
+ CUDNN_ATTR_ENGINECFG_ENGINE = 300,
187
+ CUDNN_ATTR_ENGINECFG_INTERMEDIATE_INFO = 301,
188
+ CUDNN_ATTR_ENGINECFG_KNOB_CHOICES = 302,
189
+
190
+ CUDNN_ATTR_EXECUTION_PLAN_HANDLE = 400,
191
+ CUDNN_ATTR_EXECUTION_PLAN_ENGINE_CONFIG = 401,
192
+ CUDNN_ATTR_EXECUTION_PLAN_WORKSPACE_SIZE = 402,
193
+ CUDNN_ATTR_EXECUTION_PLAN_COMPUTED_INTERMEDIATE_UIDS = 403,
194
+ CUDNN_ATTR_EXECUTION_PLAN_RUN_ONLY_INTERMEDIATE_UIDS = 404,
195
+ CUDNN_ATTR_EXECUTION_PLAN_JSON_REPRESENTATION = 405,
196
+
197
+ CUDNN_ATTR_INTERMEDIATE_INFO_UNIQUE_ID = 500,
198
+ CUDNN_ATTR_INTERMEDIATE_INFO_SIZE = 501,
199
+ CUDNN_ATTR_INTERMEDIATE_INFO_DEPENDENT_DATA_UIDS = 502,
200
+ CUDNN_ATTR_INTERMEDIATE_INFO_DEPENDENT_ATTRIBUTES = 503,
201
+
202
+ CUDNN_ATTR_KNOB_CHOICE_KNOB_TYPE = 600,
203
+ CUDNN_ATTR_KNOB_CHOICE_KNOB_VALUE = 601,
204
+
205
+ CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_ALPHA = 700,
206
+ CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_BETA = 701,
207
+ CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_CONV_DESC = 702,
208
+ CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_W = 703,
209
+ CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_X = 704,
210
+ CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_Y = 705,
211
+ CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_ALPHA = 706,
212
+ CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_BETA = 707,
213
+ CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_CONV_DESC = 708,
214
+ CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_W = 709,
215
+ CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_DX = 710,
216
+ CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_DY = 711,
217
+ CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_ALPHA = 712,
218
+ CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_BETA = 713,
219
+ CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_CONV_DESC = 714,
220
+ CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_DW = 715,
221
+ CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_X = 716,
222
+ CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_DY = 717,
223
+
224
+ CUDNN_ATTR_OPERATION_POINTWISE_PW_DESCRIPTOR = 750,
225
+ CUDNN_ATTR_OPERATION_POINTWISE_XDESC = 751,
226
+ CUDNN_ATTR_OPERATION_POINTWISE_BDESC = 752,
227
+ CUDNN_ATTR_OPERATION_POINTWISE_YDESC = 753,
228
+ CUDNN_ATTR_OPERATION_POINTWISE_ALPHA1 = 754,
229
+ CUDNN_ATTR_OPERATION_POINTWISE_ALPHA2 = 755,
230
+ CUDNN_ATTR_OPERATION_POINTWISE_DXDESC = 756,
231
+ CUDNN_ATTR_OPERATION_POINTWISE_DYDESC = 757,
232
+ CUDNN_ATTR_OPERATION_POINTWISE_TDESC = 758,
233
+
234
+ CUDNN_ATTR_OPERATION_GENSTATS_MODE = 770,
235
+ CUDNN_ATTR_OPERATION_GENSTATS_MATH_PREC = 771,
236
+ CUDNN_ATTR_OPERATION_GENSTATS_XDESC = 772,
237
+ CUDNN_ATTR_OPERATION_GENSTATS_SUMDESC = 773,
238
+ CUDNN_ATTR_OPERATION_GENSTATS_SQSUMDESC = 774,
239
+
240
+ CUDNN_ATTR_OPERATION_BN_FINALIZE_STATS_MODE = 780,
241
+ CUDNN_ATTR_OPERATION_BN_FINALIZE_MATH_PREC = 781,
242
+ CUDNN_ATTR_OPERATION_BN_FINALIZE_Y_SUM_DESC = 782,
243
+ CUDNN_ATTR_OPERATION_BN_FINALIZE_Y_SQ_SUM_DESC = 783,
244
+ CUDNN_ATTR_OPERATION_BN_FINALIZE_SCALE_DESC = 784,
245
+ CUDNN_ATTR_OPERATION_BN_FINALIZE_BIAS_DESC = 785,
246
+ CUDNN_ATTR_OPERATION_BN_FINALIZE_PREV_RUNNING_MEAN_DESC = 786,
247
+ CUDNN_ATTR_OPERATION_BN_FINALIZE_PREV_RUNNING_VAR_DESC = 787,
248
+ CUDNN_ATTR_OPERATION_BN_FINALIZE_UPDATED_RUNNING_MEAN_DESC = 788,
249
+ CUDNN_ATTR_OPERATION_BN_FINALIZE_UPDATED_RUNNING_VAR_DESC = 789,
250
+ CUDNN_ATTR_OPERATION_BN_FINALIZE_SAVED_MEAN_DESC = 790,
251
+ CUDNN_ATTR_OPERATION_BN_FINALIZE_SAVED_INV_STD_DESC = 791,
252
+ CUDNN_ATTR_OPERATION_BN_FINALIZE_EQ_SCALE_DESC = 792,
253
+ CUDNN_ATTR_OPERATION_BN_FINALIZE_EQ_BIAS_DESC = 793,
254
+ CUDNN_ATTR_OPERATION_BN_FINALIZE_ACCUM_COUNT_DESC = 794,
255
+ CUDNN_ATTR_OPERATION_BN_FINALIZE_EPSILON_DESC = 795,
256
+ CUDNN_ATTR_OPERATION_BN_FINALIZE_EXP_AVERATE_FACTOR_DESC = 796,
257
+
258
+ CUDNN_ATTR_OPERATIONGRAPH_HANDLE = 800,
259
+ CUDNN_ATTR_OPERATIONGRAPH_OPS = 801,
260
+ CUDNN_ATTR_OPERATIONGRAPH_ENGINE_GLOBAL_COUNT = 802,
261
+
262
+ CUDNN_ATTR_TENSOR_BYTE_ALIGNMENT = 900,
263
+ CUDNN_ATTR_TENSOR_DATA_TYPE = 901,
264
+ CUDNN_ATTR_TENSOR_DIMENSIONS = 902,
265
+ CUDNN_ATTR_TENSOR_STRIDES = 903,
266
+ CUDNN_ATTR_TENSOR_VECTOR_COUNT = 904,
267
+ CUDNN_ATTR_TENSOR_VECTORIZED_DIMENSION = 905,
268
+ CUDNN_ATTR_TENSOR_UNIQUE_ID = 906,
269
+ CUDNN_ATTR_TENSOR_IS_VIRTUAL = 907,
270
+ CUDNN_ATTR_TENSOR_IS_BY_VALUE = 908,
271
+ CUDNN_ATTR_TENSOR_REORDERING_MODE = 909,
272
+ CUDNN_ATTR_TENSOR_RAGGED_OFFSET_DESC = 913,
273
+
274
+ CUDNN_ATTR_VARIANT_PACK_UNIQUE_IDS = 1000,
275
+ CUDNN_ATTR_VARIANT_PACK_DATA_POINTERS = 1001,
276
+ CUDNN_ATTR_VARIANT_PACK_INTERMEDIATES = 1002,
277
+ CUDNN_ATTR_VARIANT_PACK_WORKSPACE = 1003,
278
+
279
+ CUDNN_ATTR_LAYOUT_INFO_TENSOR_UID = 1100,
280
+ CUDNN_ATTR_LAYOUT_INFO_TYPES = 1101,
281
+
282
+ CUDNN_ATTR_KNOB_INFO_TYPE = 1200,
283
+ CUDNN_ATTR_KNOB_INFO_MAXIMUM_VALUE = 1201,
284
+ CUDNN_ATTR_KNOB_INFO_MINIMUM_VALUE = 1202,
285
+ CUDNN_ATTR_KNOB_INFO_STRIDE = 1203,
286
+
287
+ CUDNN_ATTR_ENGINE_OPERATION_GRAPH = 1300,
288
+ CUDNN_ATTR_ENGINE_GLOBAL_INDEX = 1301,
289
+ CUDNN_ATTR_ENGINE_KNOB_INFO = 1302,
290
+ CUDNN_ATTR_ENGINE_NUMERICAL_NOTE = 1303,
291
+ CUDNN_ATTR_ENGINE_LAYOUT_INFO = 1304,
292
+ CUDNN_ATTR_ENGINE_BEHAVIOR_NOTE = 1305,
293
+
294
+ CUDNN_ATTR_MATMUL_COMP_TYPE = 1500,
295
+ CUDNN_ATTR_MATMUL_PADDING_VALUE = 1503,
296
+
297
+ CUDNN_ATTR_OPERATION_MATMUL_ADESC = 1520,
298
+ CUDNN_ATTR_OPERATION_MATMUL_BDESC = 1521,
299
+ CUDNN_ATTR_OPERATION_MATMUL_CDESC = 1522,
300
+ CUDNN_ATTR_OPERATION_MATMUL_DESC = 1523,
301
+ CUDNN_ATTR_OPERATION_MATMUL_IRREGULARLY_STRIDED_BATCH_COUNT = 1524,
302
+ CUDNN_ATTR_OPERATION_MATMUL_GEMM_M_OVERRIDE_DESC = 1525,
303
+ CUDNN_ATTR_OPERATION_MATMUL_GEMM_N_OVERRIDE_DESC = 1526,
304
+ CUDNN_ATTR_OPERATION_MATMUL_GEMM_K_OVERRIDE_DESC = 1527,
305
+
306
+ CUDNN_ATTR_REDUCTION_OPERATOR = 1600,
307
+ CUDNN_ATTR_REDUCTION_COMP_TYPE = 1601,
308
+
309
+ CUDNN_ATTR_OPERATION_REDUCTION_XDESC = 1610,
310
+ CUDNN_ATTR_OPERATION_REDUCTION_YDESC = 1611,
311
+ CUDNN_ATTR_OPERATION_REDUCTION_DESC = 1612,
312
+
313
+ CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_MATH_PREC = 1620,
314
+ CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_MEAN_DESC = 1621,
315
+ CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_INVSTD_DESC = 1622,
316
+ CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_BN_SCALE_DESC = 1623,
317
+ CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_X_DESC = 1624,
318
+ CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_DY_DESC = 1625,
319
+ CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_DBN_SCALE_DESC = 1626,
320
+ CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_DBN_BIAS_DESC = 1627,
321
+ CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_EQ_DY_SCALE_DESC = 1628,
322
+ CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_EQ_X_SCALE_DESC = 1629,
323
+ CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_EQ_BIAS = 1630,
324
+
325
+ CUDNN_ATTR_RESAMPLE_MODE = 1700,
326
+ CUDNN_ATTR_RESAMPLE_COMP_TYPE = 1701,
327
+ CUDNN_ATTR_RESAMPLE_SPATIAL_DIMS = 1702,
328
+ CUDNN_ATTR_RESAMPLE_POST_PADDINGS = 1703,
329
+ CUDNN_ATTR_RESAMPLE_PRE_PADDINGS = 1704,
330
+ CUDNN_ATTR_RESAMPLE_STRIDES = 1705,
331
+ CUDNN_ATTR_RESAMPLE_WINDOW_DIMS = 1706,
332
+ CUDNN_ATTR_RESAMPLE_NAN_PROPAGATION = 1707,
333
+ CUDNN_ATTR_RESAMPLE_PADDING_MODE = 1708,
334
+
335
+ CUDNN_ATTR_OPERATION_RESAMPLE_FWD_XDESC = 1710,
336
+ CUDNN_ATTR_OPERATION_RESAMPLE_FWD_YDESC = 1711,
337
+ CUDNN_ATTR_OPERATION_RESAMPLE_FWD_IDXDESC = 1712,
338
+ CUDNN_ATTR_OPERATION_RESAMPLE_FWD_ALPHA = 1713,
339
+ CUDNN_ATTR_OPERATION_RESAMPLE_FWD_BETA = 1714,
340
+ CUDNN_ATTR_OPERATION_RESAMPLE_FWD_DESC = 1716,
341
+
342
+ CUDNN_ATTR_OPERATION_RESAMPLE_BWD_DXDESC = 1720,
343
+ CUDNN_ATTR_OPERATION_RESAMPLE_BWD_DYDESC = 1721,
344
+ CUDNN_ATTR_OPERATION_RESAMPLE_BWD_IDXDESC = 1722,
345
+ CUDNN_ATTR_OPERATION_RESAMPLE_BWD_ALPHA = 1723,
346
+ CUDNN_ATTR_OPERATION_RESAMPLE_BWD_BETA = 1724,
347
+ CUDNN_ATTR_OPERATION_RESAMPLE_BWD_DESC = 1725,
348
+ CUDNN_ATTR_OPERATION_RESAMPLE_BWD_XDESC = 1726,
349
+ CUDNN_ATTR_OPERATION_RESAMPLE_BWD_YDESC = 1727,
350
+
351
+ CUDNN_ATTR_OPERATION_CONCAT_AXIS = 1800,
352
+ CUDNN_ATTR_OPERATION_CONCAT_INPUT_DESCS = 1801,
353
+ CUDNN_ATTR_OPERATION_CONCAT_INPLACE_INDEX = 1802,
354
+ CUDNN_ATTR_OPERATION_CONCAT_OUTPUT_DESC = 1803,
355
+
356
+ CUDNN_ATTR_OPERATION_SIGNAL_MODE = 1900,
357
+ CUDNN_ATTR_OPERATION_SIGNAL_FLAGDESC = 1901,
358
+ CUDNN_ATTR_OPERATION_SIGNAL_VALUE = 1902,
359
+ CUDNN_ATTR_OPERATION_SIGNAL_XDESC = 1903,
360
+ CUDNN_ATTR_OPERATION_SIGNAL_YDESC = 1904,
361
+
362
+ CUDNN_ATTR_OPERATION_NORM_FWD_MODE = 2000,
363
+ CUDNN_ATTR_OPERATION_NORM_FWD_PHASE = 2001,
364
+ CUDNN_ATTR_OPERATION_NORM_FWD_XDESC = 2002,
365
+ CUDNN_ATTR_OPERATION_NORM_FWD_MEAN_DESC = 2003,
366
+ CUDNN_ATTR_OPERATION_NORM_FWD_INV_VARIANCE_DESC = 2004,
367
+ CUDNN_ATTR_OPERATION_NORM_FWD_SCALE_DESC = 2005,
368
+ CUDNN_ATTR_OPERATION_NORM_FWD_BIAS_DESC = 2006,
369
+ CUDNN_ATTR_OPERATION_NORM_FWD_EPSILON_DESC = 2007,
370
+ CUDNN_ATTR_OPERATION_NORM_FWD_EXP_AVG_FACTOR_DESC = 2008,
371
+ CUDNN_ATTR_OPERATION_NORM_FWD_INPUT_RUNNING_MEAN_DESC = 2009,
372
+ CUDNN_ATTR_OPERATION_NORM_FWD_INPUT_RUNNING_VAR_DESC = 2010,
373
+ CUDNN_ATTR_OPERATION_NORM_FWD_OUTPUT_RUNNING_MEAN_DESC = 2011,
374
+ CUDNN_ATTR_OPERATION_NORM_FWD_OUTPUT_RUNNING_VAR_DESC = 2012,
375
+ CUDNN_ATTR_OPERATION_NORM_FWD_YDESC = 2013,
376
+ CUDNN_ATTR_OPERATION_NORM_FWD_PEER_STAT_DESCS = 2014,
377
+
378
+ CUDNN_ATTR_OPERATION_NORM_BWD_MODE = 2100,
379
+ CUDNN_ATTR_OPERATION_NORM_BWD_XDESC = 2101,
380
+ CUDNN_ATTR_OPERATION_NORM_BWD_MEAN_DESC = 2102,
381
+ CUDNN_ATTR_OPERATION_NORM_BWD_INV_VARIANCE_DESC = 2103,
382
+ CUDNN_ATTR_OPERATION_NORM_BWD_DYDESC = 2104,
383
+ CUDNN_ATTR_OPERATION_NORM_BWD_SCALE_DESC = 2105,
384
+ CUDNN_ATTR_OPERATION_NORM_BWD_EPSILON_DESC = 2106,
385
+ CUDNN_ATTR_OPERATION_NORM_BWD_DSCALE_DESC = 2107,
386
+ CUDNN_ATTR_OPERATION_NORM_BWD_DBIAS_DESC = 2108,
387
+ CUDNN_ATTR_OPERATION_NORM_BWD_DXDESC = 2109,
388
+ CUDNN_ATTR_OPERATION_NORM_BWD_PEER_STAT_DESCS = 2110,
389
+
390
+ CUDNN_ATTR_OPERATION_RESHAPE_XDESC = 2200,
391
+ CUDNN_ATTR_OPERATION_RESHAPE_YDESC = 2201,
392
+
393
+ CUDNN_ATTR_RNG_DISTRIBUTION = 2300,
394
+ CUDNN_ATTR_RNG_NORMAL_DIST_MEAN = 2301,
395
+ CUDNN_ATTR_RNG_NORMAL_DIST_STANDARD_DEVIATION = 2302,
396
+ CUDNN_ATTR_RNG_UNIFORM_DIST_MAXIMUM = 2303,
397
+ CUDNN_ATTR_RNG_UNIFORM_DIST_MINIMUM = 2304,
398
+ CUDNN_ATTR_RNG_BERNOULLI_DIST_PROBABILITY = 2305,
399
+
400
+ CUDNN_ATTR_OPERATION_RNG_YDESC = 2310,
401
+ CUDNN_ATTR_OPERATION_RNG_SEED = 2311,
402
+ CUDNN_ATTR_OPERATION_RNG_DESC = 2312,
403
+ CUDNN_ATTR_OPERATION_RNG_OFFSET_DESC = 2313,
404
+
405
+ } cudnnBackendAttributeName_t;
406
+
407
+ typedef enum {
408
+ CUDNN_TYPE_HANDLE = 0,
409
+ CUDNN_TYPE_DATA_TYPE,
410
+ CUDNN_TYPE_BOOLEAN,
411
+ CUDNN_TYPE_INT64,
412
+ CUDNN_TYPE_FLOAT,
413
+ CUDNN_TYPE_DOUBLE,
414
+ CUDNN_TYPE_VOID_PTR,
415
+ CUDNN_TYPE_CONVOLUTION_MODE,
416
+ CUDNN_TYPE_HEUR_MODE,
417
+ CUDNN_TYPE_KNOB_TYPE,
418
+ CUDNN_TYPE_NAN_PROPOGATION,
419
+ CUDNN_TYPE_NUMERICAL_NOTE,
420
+ CUDNN_TYPE_LAYOUT_TYPE,
421
+ CUDNN_TYPE_ATTRIB_NAME,
422
+ CUDNN_TYPE_POINTWISE_MODE,
423
+ CUDNN_TYPE_BACKEND_DESCRIPTOR,
424
+ CUDNN_TYPE_GENSTATS_MODE,
425
+ CUDNN_TYPE_BN_FINALIZE_STATS_MODE,
426
+ CUDNN_TYPE_REDUCTION_OPERATOR_TYPE,
427
+ CUDNN_TYPE_BEHAVIOR_NOTE,
428
+ CUDNN_TYPE_TENSOR_REORDERING_MODE,
429
+ CUDNN_TYPE_RESAMPLE_MODE,
430
+ CUDNN_TYPE_PADDING_MODE,
431
+ CUDNN_TYPE_INT32,
432
+ CUDNN_TYPE_CHAR,
433
+ CUDNN_TYPE_SIGNAL_MODE,
434
+ CUDNN_TYPE_FRACTION,
435
+ CUDNN_TYPE_NORM_MODE,
436
+ CUDNN_TYPE_NORM_FWD_PHASE,
437
+ CUDNN_TYPE_RNG_DISTRIBUTION
438
+ } cudnnBackendAttributeType_t;
439
+
440
+ typedef enum {
441
+ CUDNN_BACKEND_POINTWISE_DESCRIPTOR = 0,
442
+ CUDNN_BACKEND_CONVOLUTION_DESCRIPTOR,
443
+ CUDNN_BACKEND_ENGINE_DESCRIPTOR,
444
+ CUDNN_BACKEND_ENGINECFG_DESCRIPTOR,
445
+ CUDNN_BACKEND_ENGINEHEUR_DESCRIPTOR,
446
+ CUDNN_BACKEND_EXECUTION_PLAN_DESCRIPTOR,
447
+ CUDNN_BACKEND_INTERMEDIATE_INFO_DESCRIPTOR,
448
+ CUDNN_BACKEND_KNOB_CHOICE_DESCRIPTOR,
449
+ CUDNN_BACKEND_KNOB_INFO_DESCRIPTOR,
450
+ CUDNN_BACKEND_LAYOUT_INFO_DESCRIPTOR,
451
+ CUDNN_BACKEND_OPERATION_CONVOLUTION_FORWARD_DESCRIPTOR,
452
+ CUDNN_BACKEND_OPERATION_CONVOLUTION_BACKWARD_FILTER_DESCRIPTOR,
453
+ CUDNN_BACKEND_OPERATION_CONVOLUTION_BACKWARD_DATA_DESCRIPTOR,
454
+ CUDNN_BACKEND_OPERATION_POINTWISE_DESCRIPTOR,
455
+ CUDNN_BACKEND_OPERATION_GEN_STATS_DESCRIPTOR,
456
+ CUDNN_BACKEND_OPERATIONGRAPH_DESCRIPTOR,
457
+ CUDNN_BACKEND_VARIANT_PACK_DESCRIPTOR,
458
+ CUDNN_BACKEND_TENSOR_DESCRIPTOR,
459
+ CUDNN_BACKEND_MATMUL_DESCRIPTOR,
460
+ CUDNN_BACKEND_OPERATION_MATMUL_DESCRIPTOR,
461
+ CUDNN_BACKEND_OPERATION_BN_FINALIZE_STATISTICS_DESCRIPTOR,
462
+ CUDNN_BACKEND_REDUCTION_DESCRIPTOR,
463
+ CUDNN_BACKEND_OPERATION_REDUCTION_DESCRIPTOR,
464
+ CUDNN_BACKEND_OPERATION_BN_BWD_WEIGHTS_DESCRIPTOR,
465
+ CUDNN_BACKEND_RESAMPLE_DESCRIPTOR,
466
+ CUDNN_BACKEND_OPERATION_RESAMPLE_FWD_DESCRIPTOR,
467
+ CUDNN_BACKEND_OPERATION_RESAMPLE_BWD_DESCRIPTOR,
468
+ CUDNN_BACKEND_OPERATION_CONCAT_DESCRIPTOR,
469
+ CUDNN_BACKEND_OPERATION_SIGNAL_DESCRIPTOR,
470
+ CUDNN_BACKEND_OPERATION_NORM_FORWARD_DESCRIPTOR,
471
+ CUDNN_BACKEND_OPERATION_NORM_BACKWARD_DESCRIPTOR,
472
+ CUDNN_BACKEND_OPERATION_RESHAPE_DESCRIPTOR,
473
+ CUDNN_BACKEND_RNG_DESCRIPTOR,
474
+ CUDNN_BACKEND_OPERATION_RNG_DESCRIPTOR
475
+ } cudnnBackendDescriptorType_t;
476
+
477
+ typedef enum {
478
+ CUDNN_NUMERICAL_NOTE_TENSOR_CORE = 0,
479
+ CUDNN_NUMERICAL_NOTE_DOWN_CONVERT_INPUTS,
480
+ CUDNN_NUMERICAL_NOTE_REDUCED_PRECISION_REDUCTION,
481
+ CUDNN_NUMERICAL_NOTE_FFT,
482
+ CUDNN_NUMERICAL_NOTE_NONDETERMINISTIC,
483
+ CUDNN_NUMERICAL_NOTE_WINOGRAD,
484
+ CUDNN_NUMERICAL_NOTE_WINOGRAD_TILE_4x4,
485
+ CUDNN_NUMERICAL_NOTE_WINOGRAD_TILE_6x6,
486
+ CUDNN_NUMERICAL_NOTE_WINOGRAD_TILE_13x13,
487
+ CUDNN_NUMERICAL_NOTE_TYPE_COUNT,
488
+ } cudnnBackendNumericalNote_t;
489
+
490
+ typedef enum {
491
+ CUDNN_BEHAVIOR_NOTE_RUNTIME_COMPILATION = 0,
492
+ CUDNN_BEHAVIOR_NOTE_REQUIRES_FILTER_INT8x32_REORDER = 1,
493
+ CUDNN_BEHAVIOR_NOTE_REQUIRES_BIAS_INT8x32_REORDER = 2,
494
+ CUDNN_BEHAVIOR_NOTE_TYPE_COUNT,
495
+ } cudnnBackendBehaviorNote_t;
496
+
497
+ typedef enum {
498
+ CUDNN_KNOB_TYPE_SPLIT_K = 0,
499
+ CUDNN_KNOB_TYPE_SWIZZLE = 1,
500
+ CUDNN_KNOB_TYPE_TILE_SIZE = 2,
501
+ CUDNN_KNOB_TYPE_USE_TEX = 3,
502
+ CUDNN_KNOB_TYPE_EDGE = 4,
503
+ CUDNN_KNOB_TYPE_KBLOCK = 5,
504
+ CUDNN_KNOB_TYPE_LDGA = 6,
505
+ CUDNN_KNOB_TYPE_LDGB = 7,
506
+ CUDNN_KNOB_TYPE_CHUNK_K = 8,
507
+ CUDNN_KNOB_TYPE_SPLIT_H = 9,
508
+ CUDNN_KNOB_TYPE_WINO_TILE = 10,
509
+ CUDNN_KNOB_TYPE_MULTIPLY = 11,
510
+ CUDNN_KNOB_TYPE_SPLIT_K_BUF = 12,
511
+ CUDNN_KNOB_TYPE_TILEK = 13,
512
+ CUDNN_KNOB_TYPE_STAGES = 14,
513
+ CUDNN_KNOB_TYPE_REDUCTION_MODE = 15,
514
+ CUDNN_KNOB_TYPE_CTA_SPLIT_K_MODE = 16,
515
+ CUDNN_KNOB_TYPE_SPLIT_K_SLC = 17,
516
+ CUDNN_KNOB_TYPE_IDX_MODE = 18,
517
+ CUDNN_KNOB_TYPE_SLICED = 19,
518
+ CUDNN_KNOB_TYPE_SPLIT_RS = 20,
519
+ CUDNN_KNOB_TYPE_SINGLEBUFFER = 21,
520
+ CUDNN_KNOB_TYPE_LDGC = 22,
521
+ CUDNN_KNOB_TYPE_SPECFILT = 23,
522
+ CUDNN_KNOB_TYPE_KERNEL_CFG = 24,
523
+ CUDNN_KNOB_TYPE_WORKSPACE = 25,
524
+ CUDNN_KNOB_TYPE_TILE_CGA = 26,
525
+ CUDNN_KNOB_TYPE_TILE_CGA_M = 27,
526
+ CUDNN_KNOB_TYPE_TILE_CGA_N = 28,
527
+ CUDNN_KNOB_TYPE_BLOCK_SIZE = 29,
528
+ CUDNN_KNOB_TYPE_OCCUPANCY = 30,
529
+ CUDNN_KNOB_TYPE_ARRAY_SIZE_PER_THREAD = 31,
530
+ CUDNN_KNOB_TYPE_NUM_C_PER_BLOCK = 32,
531
+ CUDNN_KNOB_TYPE_COUNTS,
532
+ } cudnnBackendKnobType_t;
533
+
534
+ typedef enum {
535
+ CUDNN_LAYOUT_TYPE_PREFERRED_NCHW = 0,
536
+ CUDNN_LAYOUT_TYPE_PREFERRED_NHWC = 1,
537
+ CUDNN_LAYOUT_TYPE_PREFERRED_PAD4CK = 2,
538
+ CUDNN_LAYOUT_TYPE_PREFERRED_PAD8CK = 3,
539
+ CUDNN_LAYOUT_TYPE_COUNT = 4,
540
+ } cudnnBackendLayoutType_t;
541
+
542
+ typedef enum {
543
+ CUDNN_HEUR_MODE_INSTANT = 0,
544
+ CUDNN_HEUR_MODE_B = 1,
545
+ CUDNN_HEUR_MODE_FALLBACK = 2,
546
+ CUDNN_HEUR_MODE_A = 3,
547
+ CUDNN_HEUR_MODES_COUNT = 4,
548
+ } cudnnBackendHeurMode_t;
549
+
550
+ typedef enum {
551
+ CUDNN_TENSOR_REORDERING_NONE = 0,
552
+ CUDNN_TENSOR_REORDERING_INT8x32 = 1,
553
+ CUDNN_TENSOR_REORDERING_F16x16 = 2,
554
+ } cudnnBackendTensorReordering_t;
555
+
556
+ typedef enum {
557
+ CUDNN_ZERO_PAD = 0,
558
+ CUDNN_NEG_INF_PAD = 1,
559
+ CUDNN_EDGE_VAL_PAD = 2,
560
+ } cudnnPaddingMode_t;
561
+
562
+ typedef enum {
563
+ CUDNN_LAYER_NORM = 0,
564
+ CUDNN_INSTANCE_NORM = 1,
565
+ CUDNN_BATCH_NORM = 2,
566
+ CUDNN_GROUP_NORM = 3,
567
+ } cudnnBackendNormMode_t;
568
+
569
+ typedef enum {
570
+ CUDNN_NORM_FWD_INFERENCE = 0,
571
+ CUDNN_NORM_FWD_TRAINING = 1,
572
+ } cudnnBackendNormFwdPhase_t;
573
+
574
+ cudnnStatus_t CUDNNWINAPI
575
+ cudnnBackendCreateDescriptor(cudnnBackendDescriptorType_t descriptorType, cudnnBackendDescriptor_t *descriptor);
576
+
577
+ cudnnStatus_t CUDNNWINAPI
578
+ cudnnBackendDestroyDescriptor(cudnnBackendDescriptor_t descriptor);
579
+
580
+ cudnnStatus_t CUDNNWINAPI
581
+ cudnnBackendInitialize(cudnnBackendDescriptor_t descriptor);
582
+
583
+ cudnnStatus_t CUDNNWINAPI
584
+ cudnnBackendFinalize(cudnnBackendDescriptor_t descriptor);
585
+
586
+ cudnnStatus_t CUDNNWINAPI
587
+ cudnnBackendSetAttribute(cudnnBackendDescriptor_t descriptor,
588
+ cudnnBackendAttributeName_t attributeName,
589
+ cudnnBackendAttributeType_t attributeType,
590
+ int64_t elementCount,
591
+ const void *arrayOfElements);
592
+
593
+ cudnnStatus_t CUDNNWINAPI
594
+ cudnnBackendGetAttribute(cudnnBackendDescriptor_t const descriptor,
595
+ cudnnBackendAttributeName_t attributeName,
596
+ cudnnBackendAttributeType_t attributeType,
597
+ int64_t requestedElementCount,
598
+ int64_t *elementCount,
599
+ void *arrayOfElements);
600
+
601
+ cudnnStatus_t CUDNNWINAPI
602
+ cudnnBackendExecute(cudnnHandle_t handle, cudnnBackendDescriptor_t executionPlan, cudnnBackendDescriptor_t variantPack);
603
+
604
+ #if defined(__cplusplus)
605
+ }
606
+ #endif
607
+
608
+ #endif /* _CUDNN_BACKEND_H_ */
my_container_sandbox/workspace/anaconda3/include/cudnn_cnn_train.h ADDED
@@ -0,0 +1,219 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Copyright 2014-2023 NVIDIA Corporation. All rights reserved.
3
+ *
4
+ * NOTICE TO LICENSEE:
5
+ *
6
+ * This source code and/or documentation ("Licensed Deliverables") are
7
+ * subject to NVIDIA intellectual property rights under U.S. and
8
+ * international Copyright laws.
9
+ *
10
+ * These Licensed Deliverables contained herein is PROPRIETARY and
11
+ * CONFIDENTIAL to NVIDIA and is being provided under the terms and
12
+ * conditions of a form of NVIDIA software license agreement by and
13
+ * between NVIDIA and Licensee ("License Agreement") or electronically
14
+ * accepted by Licensee. Notwithstanding any terms or conditions to
15
+ * the contrary in the License Agreement, reproduction or disclosure
16
+ * of the Licensed Deliverables to any third party without the express
17
+ * written consent of NVIDIA is prohibited.
18
+ *
19
+ * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
20
+ * LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE
21
+ * SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE. IT IS
22
+ * PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND.
23
+ * NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED
24
+ * DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY,
25
+ * NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE.
26
+ * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
27
+ * LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY
28
+ * SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY
29
+ * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
30
+ * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
31
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
32
+ * OF THESE LICENSED DELIVERABLES.
33
+ *
34
+ * U.S. Government End Users. These Licensed Deliverables are a
35
+ * "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT
36
+ * 1995), consisting of "commercial computer software" and "commercial
37
+ * computer software documentation" as such terms are used in 48
38
+ * C.F.R. 12.212 (SEPT 1995) and is provided to the U.S. Government
39
+ * only as a commercial end item. Consistent with 48 C.F.R.12.212 and
40
+ * 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all
41
+ * U.S. Government End Users acquire the Licensed Deliverables with
42
+ * only those rights set forth herein.
43
+ *
44
+ * Any use of the Licensed Deliverables in individual and commercial
45
+ * software must include, in the user documentation and internal
46
+ * comments to the code, the above Disclaimer and U.S. Government End
47
+ * Users Notice.
48
+ */
49
+
50
+ /*
51
+ * cudnn_cnn_train : cuDNN's basic definitions and inference CNN functions.
52
+ */
53
+
54
+ #pragma once
55
+ #include <cuda_runtime.h>
56
+ #include <stdint.h>
57
+
58
+ #include "cudnn_version.h"
59
+ #include "cudnn_ops_infer.h"
60
+ #include "cudnn_ops_train.h"
61
+ #include "cudnn_cnn_infer.h"
62
+
63
+ /* These version numbers are autogenerated, do not edit manually. */
64
+ #define CUDNN_CNN_TRAIN_MAJOR 8
65
+ #define CUDNN_CNN_TRAIN_MINOR 9
66
+ #define CUDNN_CNN_TRAIN_PATCH 2
67
+
68
+ #if (CUDNN_CNN_TRAIN_MAJOR != CUDNN_MAJOR) || (CUDNN_CNN_TRAIN_MINOR != CUDNN_MINOR) || \
69
+ (CUDNN_CNN_TRAIN_PATCH != CUDNN_PATCHLEVEL)
70
+ #error Version mismatch in cuDNN CNN INFER!!!
71
+ #endif
72
+
73
+ #if defined(__cplusplus)
74
+ extern "C" {
75
+ #endif
76
+
77
+ /* helper function to provide the convolution backward filter algo that fit best the requirement */
78
+
79
+ typedef struct cudnnConvolutionBwdFilterAlgoPerfStruct {
80
+ cudnnConvolutionBwdFilterAlgo_t algo;
81
+ cudnnStatus_t status;
82
+ float time;
83
+ size_t memory;
84
+ cudnnDeterminism_t determinism;
85
+ cudnnMathType_t mathType;
86
+ int reserved[3];
87
+ } cudnnConvolutionBwdFilterAlgoPerf_t;
88
+
89
+ cudnnStatus_t CUDNNWINAPI
90
+ cudnnGetConvolutionBackwardFilterAlgorithmMaxCount(cudnnHandle_t handle, int *count);
91
+
92
+ cudnnStatus_t CUDNNWINAPI
93
+ cudnnFindConvolutionBackwardFilterAlgorithm(cudnnHandle_t handle,
94
+ const cudnnTensorDescriptor_t xDesc,
95
+ const cudnnTensorDescriptor_t dyDesc,
96
+ const cudnnConvolutionDescriptor_t convDesc,
97
+ const cudnnFilterDescriptor_t dwDesc,
98
+ const int requestedAlgoCount,
99
+ int *returnedAlgoCount,
100
+ cudnnConvolutionBwdFilterAlgoPerf_t *perfResults);
101
+
102
+ cudnnStatus_t CUDNNWINAPI
103
+ cudnnFindConvolutionBackwardFilterAlgorithmEx(cudnnHandle_t handle,
104
+ const cudnnTensorDescriptor_t xDesc,
105
+ const void *x,
106
+ const cudnnTensorDescriptor_t dyDesc,
107
+ const void *y,
108
+ const cudnnConvolutionDescriptor_t convDesc,
109
+ const cudnnFilterDescriptor_t dwDesc,
110
+ void *dw,
111
+ const int requestedAlgoCount,
112
+ int *returnedAlgoCount,
113
+ cudnnConvolutionBwdFilterAlgoPerf_t *perfResults,
114
+ void *workSpace,
115
+ size_t workSpaceSizeInBytes);
116
+
117
+ cudnnStatus_t CUDNNWINAPI
118
+ cudnnGetConvolutionBackwardFilterAlgorithm_v7(cudnnHandle_t handle,
119
+ const cudnnTensorDescriptor_t srcDesc,
120
+ const cudnnTensorDescriptor_t diffDesc,
121
+ const cudnnConvolutionDescriptor_t convDesc,
122
+ const cudnnFilterDescriptor_t gradDesc,
123
+ const int requestedAlgoCount,
124
+ int *returnedAlgoCount,
125
+ cudnnConvolutionBwdFilterAlgoPerf_t *perfResults);
126
+
127
+ /*
128
+ * convolution algorithm (which requires potentially some workspace)
129
+ */
130
+
131
+ /* Helper function to return the minimum size of the workspace to be passed to the convolution given an algo*/
132
+ cudnnStatus_t CUDNNWINAPI
133
+ cudnnGetConvolutionBackwardFilterWorkspaceSize(cudnnHandle_t handle,
134
+ const cudnnTensorDescriptor_t xDesc,
135
+ const cudnnTensorDescriptor_t dyDesc,
136
+ const cudnnConvolutionDescriptor_t convDesc,
137
+ const cudnnFilterDescriptor_t gradDesc,
138
+ cudnnConvolutionBwdFilterAlgo_t algo,
139
+ size_t *sizeInBytes);
140
+
141
+ cudnnStatus_t CUDNNWINAPI
142
+ cudnnConvolutionBackwardFilter(cudnnHandle_t handle,
143
+ const void *alpha,
144
+ const cudnnTensorDescriptor_t xDesc,
145
+ const void *x,
146
+ const cudnnTensorDescriptor_t dyDesc,
147
+ const void *dy,
148
+ const cudnnConvolutionDescriptor_t convDesc,
149
+ cudnnConvolutionBwdFilterAlgo_t algo,
150
+ void *workSpace,
151
+ size_t workSpaceSizeInBytes,
152
+ const void *beta,
153
+ const cudnnFilterDescriptor_t dwDesc,
154
+ void *dw);
155
+
156
+ /* Function to compute the bias gradient for batch convolution */
157
+ cudnnStatus_t CUDNNWINAPI
158
+ cudnnConvolutionBackwardBias(cudnnHandle_t handle,
159
+ const void *alpha,
160
+ const cudnnTensorDescriptor_t dyDesc,
161
+ const void *dy,
162
+ const void *beta,
163
+ const cudnnTensorDescriptor_t dbDesc,
164
+ void *db);
165
+
166
+ cudnnStatus_t CUDNNWINAPI
167
+ cudnnCreateFusedOpsConstParamPack(cudnnFusedOpsConstParamPack_t *constPack, cudnnFusedOps_t ops);
168
+
169
+ cudnnStatus_t CUDNNWINAPI
170
+ cudnnDestroyFusedOpsConstParamPack(cudnnFusedOpsConstParamPack_t constPack);
171
+
172
+ cudnnStatus_t CUDNNWINAPI
173
+ cudnnSetFusedOpsConstParamPackAttribute(cudnnFusedOpsConstParamPack_t constPack,
174
+ cudnnFusedOpsConstParamLabel_t paramLabel,
175
+ const void *param);
176
+
177
+ cudnnStatus_t CUDNNWINAPI
178
+ cudnnGetFusedOpsConstParamPackAttribute(const cudnnFusedOpsConstParamPack_t constPack,
179
+ cudnnFusedOpsConstParamLabel_t paramLabel,
180
+ void *param,
181
+ int *isNULL);
182
+
183
+ cudnnStatus_t CUDNNWINAPI
184
+ cudnnCreateFusedOpsVariantParamPack(cudnnFusedOpsVariantParamPack_t *varPack, cudnnFusedOps_t ops);
185
+
186
+ cudnnStatus_t CUDNNWINAPI
187
+ cudnnDestroyFusedOpsVariantParamPack(cudnnFusedOpsVariantParamPack_t varPack);
188
+
189
+ cudnnStatus_t CUDNNWINAPI
190
+ cudnnSetFusedOpsVariantParamPackAttribute(cudnnFusedOpsVariantParamPack_t varPack,
191
+ cudnnFusedOpsVariantParamLabel_t paramLabel,
192
+ void *ptr);
193
+
194
+ cudnnStatus_t CUDNNWINAPI
195
+ cudnnGetFusedOpsVariantParamPackAttribute(const cudnnFusedOpsVariantParamPack_t varPack,
196
+ cudnnFusedOpsVariantParamLabel_t paramLabel,
197
+ void *ptr);
198
+
199
+ cudnnStatus_t CUDNNWINAPI
200
+ cudnnCreateFusedOpsPlan(cudnnFusedOpsPlan_t *plan, cudnnFusedOps_t ops);
201
+
202
+ cudnnStatus_t CUDNNWINAPI
203
+ cudnnDestroyFusedOpsPlan(cudnnFusedOpsPlan_t plan);
204
+
205
+ cudnnStatus_t CUDNNWINAPI
206
+ cudnnMakeFusedOpsPlan(cudnnHandle_t handle,
207
+ cudnnFusedOpsPlan_t plan,
208
+ const cudnnFusedOpsConstParamPack_t constPack,
209
+ size_t *workspaceSizeInBytes);
210
+
211
+ cudnnStatus_t CUDNNWINAPI
212
+ cudnnFusedOpsExecute(cudnnHandle_t handle, const cudnnFusedOpsPlan_t plan, cudnnFusedOpsVariantParamPack_t varPack);
213
+
214
+ cudnnStatus_t CUDNNWINAPI
215
+ cudnnCnnTrainVersionCheck(void);
216
+
217
+ #if defined(__cplusplus)
218
+ }
219
+ #endif
my_container_sandbox/workspace/anaconda3/include/cudnn_cnn_train_v8.h ADDED
@@ -0,0 +1,219 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Copyright 2014-2023 NVIDIA Corporation. All rights reserved.
3
+ *
4
+ * NOTICE TO LICENSEE:
5
+ *
6
+ * This source code and/or documentation ("Licensed Deliverables") are
7
+ * subject to NVIDIA intellectual property rights under U.S. and
8
+ * international Copyright laws.
9
+ *
10
+ * These Licensed Deliverables contained herein is PROPRIETARY and
11
+ * CONFIDENTIAL to NVIDIA and is being provided under the terms and
12
+ * conditions of a form of NVIDIA software license agreement by and
13
+ * between NVIDIA and Licensee ("License Agreement") or electronically
14
+ * accepted by Licensee. Notwithstanding any terms or conditions to
15
+ * the contrary in the License Agreement, reproduction or disclosure
16
+ * of the Licensed Deliverables to any third party without the express
17
+ * written consent of NVIDIA is prohibited.
18
+ *
19
+ * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
20
+ * LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE
21
+ * SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE. IT IS
22
+ * PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND.
23
+ * NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED
24
+ * DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY,
25
+ * NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE.
26
+ * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
27
+ * LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY
28
+ * SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY
29
+ * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
30
+ * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
31
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
32
+ * OF THESE LICENSED DELIVERABLES.
33
+ *
34
+ * U.S. Government End Users. These Licensed Deliverables are a
35
+ * "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT
36
+ * 1995), consisting of "commercial computer software" and "commercial
37
+ * computer software documentation" as such terms are used in 48
38
+ * C.F.R. 12.212 (SEPT 1995) and is provided to the U.S. Government
39
+ * only as a commercial end item. Consistent with 48 C.F.R.12.212 and
40
+ * 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all
41
+ * U.S. Government End Users acquire the Licensed Deliverables with
42
+ * only those rights set forth herein.
43
+ *
44
+ * Any use of the Licensed Deliverables in individual and commercial
45
+ * software must include, in the user documentation and internal
46
+ * comments to the code, the above Disclaimer and U.S. Government End
47
+ * Users Notice.
48
+ */
49
+
50
+ /*
51
+ * cudnn_cnn_train : cuDNN's basic definitions and inference CNN functions.
52
+ */
53
+
54
+ #pragma once
55
+ #include <cuda_runtime.h>
56
+ #include <stdint.h>
57
+
58
+ #include "cudnn_version.h"
59
+ #include "cudnn_ops_infer.h"
60
+ #include "cudnn_ops_train.h"
61
+ #include "cudnn_cnn_infer.h"
62
+
63
+ /* These version numbers are autogenerated, do not edit manually. */
64
+ #define CUDNN_CNN_TRAIN_MAJOR 8
65
+ #define CUDNN_CNN_TRAIN_MINOR 9
66
+ #define CUDNN_CNN_TRAIN_PATCH 2
67
+
68
+ #if (CUDNN_CNN_TRAIN_MAJOR != CUDNN_MAJOR) || (CUDNN_CNN_TRAIN_MINOR != CUDNN_MINOR) || \
69
+ (CUDNN_CNN_TRAIN_PATCH != CUDNN_PATCHLEVEL)
70
+ #error Version mismatch in cuDNN CNN INFER!!!
71
+ #endif
72
+
73
+ #if defined(__cplusplus)
74
+ extern "C" {
75
+ #endif
76
+
77
+ /* helper function to provide the convolution backward filter algo that fit best the requirement */
78
+
79
+ typedef struct cudnnConvolutionBwdFilterAlgoPerfStruct {
80
+ cudnnConvolutionBwdFilterAlgo_t algo;
81
+ cudnnStatus_t status;
82
+ float time;
83
+ size_t memory;
84
+ cudnnDeterminism_t determinism;
85
+ cudnnMathType_t mathType;
86
+ int reserved[3];
87
+ } cudnnConvolutionBwdFilterAlgoPerf_t;
88
+
89
+ cudnnStatus_t CUDNNWINAPI
90
+ cudnnGetConvolutionBackwardFilterAlgorithmMaxCount(cudnnHandle_t handle, int *count);
91
+
92
+ cudnnStatus_t CUDNNWINAPI
93
+ cudnnFindConvolutionBackwardFilterAlgorithm(cudnnHandle_t handle,
94
+ const cudnnTensorDescriptor_t xDesc,
95
+ const cudnnTensorDescriptor_t dyDesc,
96
+ const cudnnConvolutionDescriptor_t convDesc,
97
+ const cudnnFilterDescriptor_t dwDesc,
98
+ const int requestedAlgoCount,
99
+ int *returnedAlgoCount,
100
+ cudnnConvolutionBwdFilterAlgoPerf_t *perfResults);
101
+
102
+ cudnnStatus_t CUDNNWINAPI
103
+ cudnnFindConvolutionBackwardFilterAlgorithmEx(cudnnHandle_t handle,
104
+ const cudnnTensorDescriptor_t xDesc,
105
+ const void *x,
106
+ const cudnnTensorDescriptor_t dyDesc,
107
+ const void *y,
108
+ const cudnnConvolutionDescriptor_t convDesc,
109
+ const cudnnFilterDescriptor_t dwDesc,
110
+ void *dw,
111
+ const int requestedAlgoCount,
112
+ int *returnedAlgoCount,
113
+ cudnnConvolutionBwdFilterAlgoPerf_t *perfResults,
114
+ void *workSpace,
115
+ size_t workSpaceSizeInBytes);
116
+
117
+ cudnnStatus_t CUDNNWINAPI
118
+ cudnnGetConvolutionBackwardFilterAlgorithm_v7(cudnnHandle_t handle,
119
+ const cudnnTensorDescriptor_t srcDesc,
120
+ const cudnnTensorDescriptor_t diffDesc,
121
+ const cudnnConvolutionDescriptor_t convDesc,
122
+ const cudnnFilterDescriptor_t gradDesc,
123
+ const int requestedAlgoCount,
124
+ int *returnedAlgoCount,
125
+ cudnnConvolutionBwdFilterAlgoPerf_t *perfResults);
126
+
127
+ /*
128
+ * convolution algorithm (which requires potentially some workspace)
129
+ */
130
+
131
+ /* Helper function to return the minimum size of the workspace to be passed to the convolution given an algo*/
132
+ cudnnStatus_t CUDNNWINAPI
133
+ cudnnGetConvolutionBackwardFilterWorkspaceSize(cudnnHandle_t handle,
134
+ const cudnnTensorDescriptor_t xDesc,
135
+ const cudnnTensorDescriptor_t dyDesc,
136
+ const cudnnConvolutionDescriptor_t convDesc,
137
+ const cudnnFilterDescriptor_t gradDesc,
138
+ cudnnConvolutionBwdFilterAlgo_t algo,
139
+ size_t *sizeInBytes);
140
+
141
+ cudnnStatus_t CUDNNWINAPI
142
+ cudnnConvolutionBackwardFilter(cudnnHandle_t handle,
143
+ const void *alpha,
144
+ const cudnnTensorDescriptor_t xDesc,
145
+ const void *x,
146
+ const cudnnTensorDescriptor_t dyDesc,
147
+ const void *dy,
148
+ const cudnnConvolutionDescriptor_t convDesc,
149
+ cudnnConvolutionBwdFilterAlgo_t algo,
150
+ void *workSpace,
151
+ size_t workSpaceSizeInBytes,
152
+ const void *beta,
153
+ const cudnnFilterDescriptor_t dwDesc,
154
+ void *dw);
155
+
156
+ /* Function to compute the bias gradient for batch convolution */
157
+ cudnnStatus_t CUDNNWINAPI
158
+ cudnnConvolutionBackwardBias(cudnnHandle_t handle,
159
+ const void *alpha,
160
+ const cudnnTensorDescriptor_t dyDesc,
161
+ const void *dy,
162
+ const void *beta,
163
+ const cudnnTensorDescriptor_t dbDesc,
164
+ void *db);
165
+
166
+ cudnnStatus_t CUDNNWINAPI
167
+ cudnnCreateFusedOpsConstParamPack(cudnnFusedOpsConstParamPack_t *constPack, cudnnFusedOps_t ops);
168
+
169
+ cudnnStatus_t CUDNNWINAPI
170
+ cudnnDestroyFusedOpsConstParamPack(cudnnFusedOpsConstParamPack_t constPack);
171
+
172
+ cudnnStatus_t CUDNNWINAPI
173
+ cudnnSetFusedOpsConstParamPackAttribute(cudnnFusedOpsConstParamPack_t constPack,
174
+ cudnnFusedOpsConstParamLabel_t paramLabel,
175
+ const void *param);
176
+
177
+ cudnnStatus_t CUDNNWINAPI
178
+ cudnnGetFusedOpsConstParamPackAttribute(const cudnnFusedOpsConstParamPack_t constPack,
179
+ cudnnFusedOpsConstParamLabel_t paramLabel,
180
+ void *param,
181
+ int *isNULL);
182
+
183
+ cudnnStatus_t CUDNNWINAPI
184
+ cudnnCreateFusedOpsVariantParamPack(cudnnFusedOpsVariantParamPack_t *varPack, cudnnFusedOps_t ops);
185
+
186
+ cudnnStatus_t CUDNNWINAPI
187
+ cudnnDestroyFusedOpsVariantParamPack(cudnnFusedOpsVariantParamPack_t varPack);
188
+
189
+ cudnnStatus_t CUDNNWINAPI
190
+ cudnnSetFusedOpsVariantParamPackAttribute(cudnnFusedOpsVariantParamPack_t varPack,
191
+ cudnnFusedOpsVariantParamLabel_t paramLabel,
192
+ void *ptr);
193
+
194
+ cudnnStatus_t CUDNNWINAPI
195
+ cudnnGetFusedOpsVariantParamPackAttribute(const cudnnFusedOpsVariantParamPack_t varPack,
196
+ cudnnFusedOpsVariantParamLabel_t paramLabel,
197
+ void *ptr);
198
+
199
+ cudnnStatus_t CUDNNWINAPI
200
+ cudnnCreateFusedOpsPlan(cudnnFusedOpsPlan_t *plan, cudnnFusedOps_t ops);
201
+
202
+ cudnnStatus_t CUDNNWINAPI
203
+ cudnnDestroyFusedOpsPlan(cudnnFusedOpsPlan_t plan);
204
+
205
+ cudnnStatus_t CUDNNWINAPI
206
+ cudnnMakeFusedOpsPlan(cudnnHandle_t handle,
207
+ cudnnFusedOpsPlan_t plan,
208
+ const cudnnFusedOpsConstParamPack_t constPack,
209
+ size_t *workspaceSizeInBytes);
210
+
211
+ cudnnStatus_t CUDNNWINAPI
212
+ cudnnFusedOpsExecute(cudnnHandle_t handle, const cudnnFusedOpsPlan_t plan, cudnnFusedOpsVariantParamPack_t varPack);
213
+
214
+ cudnnStatus_t CUDNNWINAPI
215
+ cudnnCnnTrainVersionCheck(void);
216
+
217
+ #if defined(__cplusplus)
218
+ }
219
+ #endif
my_container_sandbox/workspace/anaconda3/include/cudnn_v8.h ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Copyright 2014-2023 NVIDIA Corporation. All rights reserved.
3
+ *
4
+ * NOTICE TO LICENSEE:
5
+ *
6
+ * This source code and/or documentation ("Licensed Deliverables") are
7
+ * subject to NVIDIA intellectual property rights under U.S. and
8
+ * international Copyright laws.
9
+ *
10
+ * These Licensed Deliverables contained herein is PROPRIETARY and
11
+ * CONFIDENTIAL to NVIDIA and is being provided under the terms and
12
+ * conditions of a form of NVIDIA software license agreement by and
13
+ * between NVIDIA and Licensee ("License Agreement") or electronically
14
+ * accepted by Licensee. Notwithstanding any terms or conditions to
15
+ * the contrary in the License Agreement, reproduction or disclosure
16
+ * of the Licensed Deliverables to any third party without the express
17
+ * written consent of NVIDIA is prohibited.
18
+ *
19
+ * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
20
+ * LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE
21
+ * SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE. IT IS
22
+ * PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND.
23
+ * NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED
24
+ * DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY,
25
+ * NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE.
26
+ * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
27
+ * LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY
28
+ * SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY
29
+ * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
30
+ * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
31
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
32
+ * OF THESE LICENSED DELIVERABLES.
33
+ *
34
+ * U.S. Government End Users. These Licensed Deliverables are a
35
+ * "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT
36
+ * 1995), consisting of "commercial computer software" and "commercial
37
+ * computer software documentation" as such terms are used in 48
38
+ * C.F.R. 12.212 (SEPT 1995) and is provided to the U.S. Government
39
+ * only as a commercial end item. Consistent with 48 C.F.R.12.212 and
40
+ * 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all
41
+ * U.S. Government End Users acquire the Licensed Deliverables with
42
+ * only those rights set forth herein.
43
+ *
44
+ * Any use of the Licensed Deliverables in individual and commercial
45
+ * software must include, in the user documentation and internal
46
+ * comments to the code, the above Disclaimer and U.S. Government End
47
+ * Users Notice.
48
+ */
49
+
50
+ /* cudnn : Neural Networks Library
51
+
52
+ */
53
+
54
+ #if !defined(CUDNN_H_)
55
+ #define CUDNN_H_
56
+
57
+ #include <cuda_runtime.h>
58
+ #include <stdint.h>
59
+
60
+ #include "cudnn_version.h"
61
+ #include "cudnn_ops_infer.h"
62
+ #include "cudnn_ops_train.h"
63
+ #include "cudnn_adv_infer.h"
64
+ #include "cudnn_adv_train.h"
65
+ #include "cudnn_cnn_infer.h"
66
+ #include "cudnn_cnn_train.h"
67
+
68
+ #include "cudnn_backend.h"
69
+
70
+ #if defined(__cplusplus)
71
+ extern "C" {
72
+ #endif
73
+
74
+ #if defined(__cplusplus)
75
+ }
76
+ #endif
77
+
78
+ #endif /* CUDNN_H_ */
my_container_sandbox/workspace/anaconda3/include/cudnn_version_v8.h ADDED
@@ -0,0 +1,109 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Copyright 2014-2023 NVIDIA Corporation. All rights reserved.
3
+ *
4
+ * NOTICE TO LICENSEE:
5
+ *
6
+ * This source code and/or documentation ("Licensed Deliverables") are
7
+ * subject to NVIDIA intellectual property rights under U.S. and
8
+ * international Copyright laws.
9
+ *
10
+ * These Licensed Deliverables contained herein is PROPRIETARY and
11
+ * CONFIDENTIAL to NVIDIA and is being provided under the terms and
12
+ * conditions of a form of NVIDIA software license agreement by and
13
+ * between NVIDIA and Licensee ("License Agreement") or electronically
14
+ * accepted by Licensee. Notwithstanding any terms or conditions to
15
+ * the contrary in the License Agreement, reproduction or disclosure
16
+ * of the Licensed Deliverables to any third party without the express
17
+ * written consent of NVIDIA is prohibited.
18
+ *
19
+ * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
20
+ * LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE
21
+ * SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE. IT IS
22
+ * PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND.
23
+ * NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED
24
+ * DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY,
25
+ * NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE.
26
+ * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
27
+ * LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY
28
+ * SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY
29
+ * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
30
+ * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
31
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
32
+ * OF THESE LICENSED DELIVERABLES.
33
+ *
34
+ * U.S. Government End Users. These Licensed Deliverables are a
35
+ * "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT
36
+ * 1995), consisting of "commercial computer software" and "commercial
37
+ * computer software documentation" as such terms are used in 48
38
+ * C.F.R. 12.212 (SEPT 1995) and is provided to the U.S. Government
39
+ * only as a commercial end item. Consistent with 48 C.F.R.12.212 and
40
+ * 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all
41
+ * U.S. Government End Users acquire the Licensed Deliverables with
42
+ * only those rights set forth herein.
43
+ *
44
+ * Any use of the Licensed Deliverables in individual and commercial
45
+ * software must include, in the user documentation and internal
46
+ * comments to the code, the above Disclaimer and U.S. Government End
47
+ * Users Notice.
48
+ */
49
+
50
+ /**
51
+ * \file: The master cuDNN version file.
52
+ */
53
+
54
+ #ifndef CUDNN_VERSION_H_
55
+ #define CUDNN_VERSION_H_
56
+
57
+ #define CUDNN_MAJOR 8
58
+ #define CUDNN_MINOR 9
59
+ #define CUDNN_PATCHLEVEL 2
60
+
61
+ #define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
62
+
63
+ /* cannot use constexpr here since this is a C-only file */
64
+ /* Below is the max SM version this cuDNN library is aware of and supports natively */
65
+
66
+ #define CUDNN_MAX_SM_MAJOR_NUMBER 9
67
+ #define CUDNN_MAX_SM_MINOR_NUMBER 0
68
+ #define CUDNN_MAX_DEVICE_VERSION (CUDNN_MAX_SM_MAJOR_NUMBER * 100 + CUDNN_MAX_SM_MINOR_NUMBER * 10)
69
+
70
+ /* Here are constants for each of the SM Architectures we support to use in code where device version checks must be
71
+ * made */
72
+
73
+ /* MAXWELL SM 50 52 53 */
74
+ #define CUDNN_SM_50 500
75
+ #define CUDNN_SM_52 520
76
+ #define CUDNN_SM_53 530
77
+
78
+ /* PASCAL SM 60 61 62 */
79
+ #define CUDNN_SM_60 600
80
+ #define CUDNN_SM_61 610
81
+ #define CUDNN_SM_62 620
82
+
83
+ /* VOLTA SM 70 72 */
84
+ #define CUDNN_SM_70 700
85
+ #define CUDNN_SM_72 720
86
+
87
+ /* TURING SM 75 */
88
+ #define CUDNN_SM_75 750
89
+
90
+ /* AMPERE SM 80 86 87 */
91
+ #define CUDNN_SM_80 800
92
+ #define CUDNN_SM_86 860
93
+ #define CUDNN_SM_87 870
94
+
95
+ /* ADA LOVELACE SM 89 */
96
+ #define CUDNN_SM_89 890
97
+
98
+ /* HOPPER SM 90 */
99
+ #define CUDNN_SM_90 900
100
+
101
+ /* END MARKER for last known version.
102
+ * This can be replaced after support for 1000 is added
103
+ */
104
+ #define CUDNN_SM_9X_END 999
105
+
106
+ /* This is the minimum version we support devices below this will return CUDNN_STATUS_ARCH_MISMATCH */
107
+ #define CUDNN_MIN_DEVICE_VERSION CUDNN_SM_50
108
+
109
+ #endif /* CUDNN_VERSION_H */
my_container_sandbox/workspace/anaconda3/include/curses.h ADDED
The diff for this file is too large to render. See raw diff
 
my_container_sandbox/workspace/anaconda3/include/cursesp.h ADDED
@@ -0,0 +1,271 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // * This makes emacs happy -*-Mode: C++;-*-
2
+ // vile:cppmode
3
+ /****************************************************************************
4
+ * Copyright 2019-2021,2022 Thomas E. Dickey *
5
+ * Copyright 1998-2012,2014 Free Software Foundation, Inc. *
6
+ * *
7
+ * Permission is hereby granted, free of charge, to any person obtaining a *
8
+ * copy of this software and associated documentation files (the *
9
+ * "Software"), to deal in the Software without restriction, including *
10
+ * without limitation the rights to use, copy, modify, merge, publish, *
11
+ * distribute, distribute with modifications, sublicense, and/or sell *
12
+ * copies of the Software, and to permit persons to whom the Software is *
13
+ * furnished to do so, subject to the following conditions: *
14
+ * *
15
+ * The above copyright notice and this permission notice shall be included *
16
+ * in all copies or substantial portions of the Software. *
17
+ * *
18
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
19
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
20
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
21
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
22
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
23
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
24
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
25
+ * *
26
+ * Except as contained in this notice, the name(s) of the above copyright *
27
+ * holders shall not be used in advertising or otherwise to promote the *
28
+ * sale, use or other dealings in this Software without prior written *
29
+ * authorization. *
30
+ ****************************************************************************/
31
+
32
+ /****************************************************************************
33
+ * Author: Juergen Pfeifer, 1997 *
34
+ ****************************************************************************/
35
+
36
+ #ifndef NCURSES_CURSESP_H_incl
37
+ #define NCURSES_CURSESP_H_incl 1
38
+
39
+ // $Id: cursesp.h,v 1.36 2022/08/20 20:52:15 tom Exp $
40
+
41
+ #include <ncursesw/cursesw.h>
42
+
43
+ extern "C" {
44
+ # include <ncursesw/panel.h>
45
+ }
46
+
47
+ class NCURSES_CXX_IMPEXP NCursesPanel
48
+ : public NCursesWindow
49
+ {
50
+ protected:
51
+ PANEL *p;
52
+ static NCursesPanel *dummy;
53
+
54
+ private:
55
+ // This structure is used for the panel's user data field to link the
56
+ // PANEL* to the C++ object and to provide extra space for a user pointer.
57
+ typedef struct {
58
+ void* m_user; // the pointer for the user's data
59
+ const NCursesPanel* m_back; // backward pointer to C++ object
60
+ const PANEL* m_owner; // the panel itself
61
+ } UserHook;
62
+
63
+ inline UserHook *UserPointer()
64
+ {
65
+ UserHook* uptr = reinterpret_cast<UserHook*>(
66
+ const_cast<void *>(::panel_userptr (p)));
67
+ return uptr;
68
+ }
69
+
70
+ void init(); // Initialize the panel object
71
+
72
+ protected:
73
+ void set_user(void *user)
74
+ {
75
+ UserHook* uptr = UserPointer();
76
+ if (uptr != 0 && uptr->m_back==this && uptr->m_owner==p) {
77
+ uptr->m_user = user;
78
+ }
79
+ }
80
+ // Set the user pointer of the panel.
81
+
82
+ void *get_user()
83
+ {
84
+ UserHook* uptr = UserPointer();
85
+ void *result = 0;
86
+ if (uptr != 0 && uptr->m_back==this && uptr->m_owner==p)
87
+ result = uptr->m_user;
88
+ return result;
89
+ }
90
+
91
+ void OnError (int err) const THROW2(NCursesException const, NCursesPanelException)
92
+ {
93
+ if (err==ERR)
94
+ THROW(new NCursesPanelException (this, err));
95
+ }
96
+ // If err is equal to the curses error indicator ERR, an error handler
97
+ // is called.
98
+
99
+ // Get a keystroke. Default implementation calls getch()
100
+ virtual int getKey(void);
101
+
102
+ public:
103
+ NCursesPanel(int nlines,
104
+ int ncols,
105
+ int begin_y = 0,
106
+ int begin_x = 0)
107
+ : NCursesWindow(nlines,ncols,begin_y,begin_x), p(0)
108
+ {
109
+ init();
110
+ }
111
+ // Create a panel with this size starting at the requested position.
112
+
113
+ NCursesPanel()
114
+ : NCursesWindow(::stdscr), p(0)
115
+ {
116
+ init();
117
+ }
118
+ // This constructor creates the default Panel associated with the
119
+ // ::stdscr window
120
+
121
+ NCursesPanel& operator=(const NCursesPanel& rhs)
122
+ {
123
+ if (this != &rhs) {
124
+ *this = rhs;
125
+ NCursesWindow::operator=(rhs);
126
+ }
127
+ return *this;
128
+ }
129
+
130
+ NCursesPanel(const NCursesPanel& rhs)
131
+ : NCursesWindow(rhs),
132
+ p(rhs.p)
133
+ {
134
+ }
135
+
136
+ virtual ~NCursesPanel() THROWS(NCursesException);
137
+
138
+ // basic manipulation
139
+ inline void hide()
140
+ {
141
+ OnError (::hide_panel(p));
142
+ }
143
+ // Hide the panel. It stays in the stack but becomes invisible.
144
+
145
+ inline void show()
146
+ {
147
+ OnError (::show_panel(p));
148
+ }
149
+ // Show the panel, i.e. make it visible.
150
+
151
+ inline void top()
152
+ {
153
+ OnError (::top_panel(p));
154
+ }
155
+ // Make this panel the top panel in the stack.
156
+
157
+ inline void bottom()
158
+ {
159
+ OnError (::bottom_panel(p));
160
+ }
161
+ // Make this panel the bottom panel in the stack.
162
+ // N.B.: The panel associated with ::stdscr is always on the bottom. So
163
+ // actually bottom() makes the panel the first above ::stdscr.
164
+
165
+ virtual int mvwin(int y, int x) NCURSES_OVERRIDE
166
+ {
167
+ OnError(::move_panel(p, y, x));
168
+ return OK;
169
+ }
170
+
171
+ inline bool hidden() const
172
+ {
173
+ return (::panel_hidden (p) ? TRUE : FALSE);
174
+ }
175
+ // Return TRUE if the panel is hidden, FALSE otherwise.
176
+
177
+ /* The functions panel_above() and panel_below() are not reflected in
178
+ the NCursesPanel class. The reason for this is, that we cannot
179
+ assume that a panel retrieved by those operations is one wrapped
180
+ by a C++ class. Although this situation might be handled, we also
181
+ need a reverse mapping from PANEL to NCursesPanel which needs some
182
+ redesign of the low level stuff. At the moment, we define them in the
183
+ interface but they will always produce an error. */
184
+ inline NCursesPanel& above() const
185
+ {
186
+ OnError(ERR);
187
+ return *dummy;
188
+ }
189
+
190
+ inline NCursesPanel& below() const
191
+ {
192
+ OnError(ERR);
193
+ return *dummy;
194
+ }
195
+
196
+ // Those two are rewrites of the corresponding virtual members of
197
+ // NCursesWindow
198
+ virtual int refresh() NCURSES_OVERRIDE;
199
+ // Propagate all panel changes to the virtual screen and update the
200
+ // physical screen.
201
+
202
+ virtual int noutrefresh() NCURSES_OVERRIDE;
203
+ // Propagate all panel changes to the virtual screen.
204
+
205
+ static void redraw();
206
+ // Redraw all panels.
207
+
208
+ // decorations
209
+ virtual void frame(const char* title=NULL,
210
+ const char* btitle=NULL);
211
+ // Put a frame around the panel and put the title centered in the top line
212
+ // and btitle in the bottom line.
213
+
214
+ virtual void boldframe(const char* title=NULL,
215
+ const char* btitle=NULL);
216
+ // Same as frame(), but use highlighted attributes.
217
+
218
+ virtual void label(const char* topLabel,
219
+ const char* bottomLabel);
220
+ // Put the title centered in the top line and btitle in the bottom line.
221
+
222
+ virtual void centertext(int row,const char* label);
223
+ // Put the label text centered in the specified row.
224
+ };
225
+
226
+ /* We use templates to provide a typesafe mechanism to associate
227
+ * user data with a panel. A NCursesUserPanel<T> is a panel
228
+ * associated with some user data of type T.
229
+ */
230
+ template<class T> class NCursesUserPanel : public NCursesPanel
231
+ {
232
+ public:
233
+ NCursesUserPanel (int nlines,
234
+ int ncols,
235
+ int begin_y = 0,
236
+ int begin_x = 0,
237
+ const T* p_UserData = STATIC_CAST(T*)(0))
238
+ : NCursesPanel (nlines, ncols, begin_y, begin_x)
239
+ {
240
+ if (p)
241
+ set_user (const_cast<void *>(reinterpret_cast<const void*>
242
+ (p_UserData)));
243
+ };
244
+ // This creates an user panel of the requested size with associated
245
+ // user data pointed to by p_UserData.
246
+
247
+ explicit NCursesUserPanel(const T* p_UserData = STATIC_CAST(T*)(0)) : NCursesPanel()
248
+ {
249
+ if (p)
250
+ set_user(const_cast<void *>(reinterpret_cast<const void*>(p_UserData)));
251
+ };
252
+ // This creates an user panel associated with the ::stdscr and user data
253
+ // pointed to by p_UserData.
254
+
255
+ virtual ~NCursesUserPanel() THROWS(NCursesException) {};
256
+
257
+ T* UserData (void)
258
+ {
259
+ return reinterpret_cast<T*>(get_user ());
260
+ };
261
+ // Retrieve the user data associated with the panel.
262
+
263
+ virtual void setUserData (const T* p_UserData)
264
+ {
265
+ if (p)
266
+ set_user (const_cast<void *>(reinterpret_cast<const void*>(p_UserData)));
267
+ }
268
+ // Associate the user panel with the user data pointed to by p_UserData.
269
+ };
270
+
271
+ #endif /* NCURSES_CURSESP_H_incl */
my_container_sandbox/workspace/anaconda3/include/cursslk.h ADDED
@@ -0,0 +1,240 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // * this is for making emacs happy: -*-Mode: C++;-*-
2
+ // vile:cppmode
3
+ /****************************************************************************
4
+ * Copyright 2019-2020,2021 Thomas E. Dickey *
5
+ * Copyright 1998-2003,2005 Free Software Foundation, Inc. *
6
+ * *
7
+ * Permission is hereby granted, free of charge, to any person obtaining a *
8
+ * copy of this software and associated documentation files (the *
9
+ * "Software"), to deal in the Software without restriction, including *
10
+ * without limitation the rights to use, copy, modify, merge, publish, *
11
+ * distribute, distribute with modifications, sublicense, and/or sell *
12
+ * copies of the Software, and to permit persons to whom the Software is *
13
+ * furnished to do so, subject to the following conditions: *
14
+ * *
15
+ * The above copyright notice and this permission notice shall be included *
16
+ * in all copies or substantial portions of the Software. *
17
+ * *
18
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
19
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
20
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
21
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
22
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
23
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
24
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
25
+ * *
26
+ * Except as contained in this notice, the name(s) of the above copyright *
27
+ * holders shall not be used in advertising or otherwise to promote the *
28
+ * sale, use or other dealings in this Software without prior written *
29
+ * authorization. *
30
+ ****************************************************************************/
31
+
32
+ /****************************************************************************
33
+ * Author: Juergen Pfeifer, 1997 *
34
+ ****************************************************************************/
35
+
36
+ // $Id: cursslk.h,v 1.19 2021/04/17 18:11:08 tom Exp $
37
+
38
+ #ifndef NCURSES_CURSSLK_H_incl
39
+ #define NCURSES_CURSSLK_H_incl
40
+
41
+ #include <ncursesw/cursesw.h>
42
+
43
+ class NCURSES_CXX_IMPEXP Soft_Label_Key_Set {
44
+ public:
45
+ // This inner class represents the attributes of a Soft Label Key (SLK)
46
+ class NCURSES_CXX_IMPEXP Soft_Label_Key {
47
+ friend class Soft_Label_Key_Set;
48
+ public:
49
+ typedef enum { Left=0, Center=1, Right=2 } Justification;
50
+
51
+ private:
52
+ char *label; // The Text of the Label
53
+ Justification format; // The Justification
54
+ int num; // The number of the Label
55
+
56
+ Soft_Label_Key() : label(NULL), format(Left), num(-1) {
57
+ }
58
+
59
+ virtual ~Soft_Label_Key() {
60
+ delete[] label;
61
+ };
62
+
63
+ public:
64
+ // Set the text of the Label
65
+ Soft_Label_Key& operator=(char *text);
66
+
67
+ // Set the Justification of the Label
68
+ Soft_Label_Key& operator=(Justification just) {
69
+ format = just;
70
+ return *this;
71
+ }
72
+
73
+ // Retrieve the text of the label
74
+ inline char* operator()(void) const {
75
+ return label;
76
+ }
77
+
78
+ Soft_Label_Key& operator=(const Soft_Label_Key& rhs)
79
+ {
80
+ if (this != &rhs) {
81
+ *this = rhs;
82
+ }
83
+ return *this;
84
+ }
85
+
86
+ Soft_Label_Key(const Soft_Label_Key& rhs)
87
+ : label(NULL),
88
+ format(rhs.format),
89
+ num(rhs.num)
90
+ {
91
+ *this = rhs.label;
92
+ }
93
+ };
94
+
95
+ public:
96
+ typedef enum {
97
+ None = -1,
98
+ Three_Two_Three = 0,
99
+ Four_Four = 1,
100
+ PC_Style = 2,
101
+ PC_Style_With_Index = 3
102
+ } Label_Layout;
103
+
104
+ private:
105
+ static long count; // Number of Key Sets
106
+ static Label_Layout format; // Layout of the Key Sets
107
+ static int num_labels; // Number Of Labels in Key Sets
108
+ bool b_attrInit; // Are attributes initialized
109
+
110
+ Soft_Label_Key *slk_array; // The array of SLK's
111
+
112
+ // Init the Key Set
113
+ void init();
114
+
115
+ // Activate or Deactivate Label# i, Label counting starts with 1!
116
+ void activate_label(int i, bool bf=TRUE);
117
+
118
+ // Activate of Deactivate all Labels
119
+ void activate_labels(bool bf);
120
+
121
+ protected:
122
+ inline void Error (const char* msg) const THROWS(NCursesException) {
123
+ THROW(new NCursesException (msg));
124
+ }
125
+
126
+ // Remove SLK's from screen
127
+ void clear() {
128
+ if (ERR==::slk_clear())
129
+ Error("slk_clear");
130
+ }
131
+
132
+ // Restore them
133
+ void restore() {
134
+ if (ERR==::slk_restore())
135
+ Error("slk_restore");
136
+ }
137
+
138
+ public:
139
+
140
+ // Construct a Key Set, use the most comfortable layout as default.
141
+ // You must create a Soft_Label_Key_Set before you create any object of
142
+ // the NCursesWindow, NCursesPanel or derived classes. (Actually before
143
+ // ::initscr() is called).
144
+ explicit Soft_Label_Key_Set(Label_Layout fmt);
145
+
146
+ // This constructor assumes, that you already constructed a Key Set
147
+ // with a layout by the constructor above. This layout will be reused.
148
+ Soft_Label_Key_Set();
149
+
150
+ Soft_Label_Key_Set& operator=(const Soft_Label_Key_Set& rhs)
151
+ {
152
+ if (this != &rhs) {
153
+ *this = rhs;
154
+ init(); // allocate a new slk_array[]
155
+ }
156
+ return *this;
157
+ }
158
+
159
+ Soft_Label_Key_Set(const Soft_Label_Key_Set& rhs)
160
+ : b_attrInit(rhs.b_attrInit),
161
+ slk_array(NULL)
162
+ {
163
+ init(); // allocate a new slk_array[]
164
+ }
165
+
166
+ virtual ~Soft_Label_Key_Set() THROWS(NCursesException);
167
+
168
+ // Get Label# i. Label counting starts with 1!
169
+ Soft_Label_Key& operator[](int i);
170
+
171
+ // Retrieve number of Labels
172
+ int labels() const;
173
+
174
+ // Refresh the SLK portion of the screen
175
+ inline void refresh() {
176
+ if (ERR==::slk_refresh())
177
+ Error("slk_refresh");
178
+ }
179
+
180
+ // Mark the SLK portion of the screen for refresh, defer actual refresh
181
+ // until next update call.
182
+ inline void noutrefresh() {
183
+ if (ERR==::slk_noutrefresh())
184
+ Error("slk_noutrefresh");
185
+ }
186
+
187
+ // Mark the whole SLK portion of the screen as modified
188
+ inline void touch() {
189
+ if (ERR==::slk_touch())
190
+ Error("slk_touch");
191
+ }
192
+
193
+ // Activate Label# i
194
+ inline void show(int i) {
195
+ activate_label(i,FALSE);
196
+ activate_label(i,TRUE);
197
+ }
198
+
199
+ // Hide Label# i
200
+ inline void hide(int i) {
201
+ activate_label(i,FALSE);
202
+ }
203
+
204
+ // Show all Labels
205
+ inline void show() {
206
+ activate_labels(FALSE);
207
+ activate_labels(TRUE);
208
+ }
209
+
210
+ // Hide all Labels
211
+ inline void hide() {
212
+ activate_labels(FALSE);
213
+ }
214
+
215
+ inline void attron(attr_t attrs) {
216
+ if (ERR==::slk_attron(attrs))
217
+ Error("slk_attron");
218
+ }
219
+
220
+ inline void attroff(attr_t attrs) {
221
+ if (ERR==::slk_attroff(attrs))
222
+ Error("slk_attroff");
223
+ }
224
+
225
+ inline void attrset(attr_t attrs) {
226
+ if (ERR==::slk_attrset(attrs))
227
+ Error("slk_attrset");
228
+ }
229
+
230
+ inline void color(short color_pair_number) {
231
+ if (ERR==::slk_color(color_pair_number))
232
+ Error("slk_color");
233
+ }
234
+
235
+ inline attr_t attr() const {
236
+ return ::slk_attr();
237
+ }
238
+ };
239
+
240
+ #endif /* NCURSES_CURSSLK_H_incl */
my_container_sandbox/workspace/anaconda3/include/fakemysql.h ADDED
@@ -0,0 +1,335 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * fakemysql.h --
3
+ *
4
+ * Fake definitions of the MySQL API sufficient to build tdbc::mysql
5
+ * without having an MySQL installation on the build system. This file
6
+ * comprises only data type, constant and function definitions.
7
+ *
8
+ * The programmers of this file believe that it contains material not
9
+ * subject to copyright under the doctrines of scenes a faire and
10
+ * of merger of idea and expression. Accordingly, this file is in the
11
+ * public domain.
12
+ *
13
+ *-----------------------------------------------------------------------------
14
+ */
15
+
16
+ #ifndef FAKEMYSQL_H_INCLUDED
17
+ #define FAKEMYSQL_H_INCLUDED
18
+
19
+ #include <stddef.h>
20
+
21
+ #ifndef MODULE_SCOPE
22
+ #define MODULE_SCOPE extern
23
+ #endif
24
+
25
+ MODULE_SCOPE Tcl_LoadHandle MysqlInitStubs(Tcl_Interp*);
26
+
27
+ #ifdef _WIN32
28
+ #define STDCALL __stdcall
29
+ #else
30
+ #define STDCALL /* nothing */
31
+ #endif
32
+
33
+ enum enum_field_types {
34
+ MYSQL_TYPE_DECIMAL=0,
35
+ MYSQL_TYPE_TINY=1,
36
+ MYSQL_TYPE_SHORT=2,
37
+ MYSQL_TYPE_LONG=3,
38
+ MYSQL_TYPE_FLOAT=4,
39
+ MYSQL_TYPE_DOUBLE=5,
40
+ MYSQL_TYPE_NULL=6,
41
+ MYSQL_TYPE_TIMESTAMP=7,
42
+ MYSQL_TYPE_LONGLONG=8,
43
+ MYSQL_TYPE_INT24=9,
44
+ MYSQL_TYPE_DATE=10,
45
+ MYSQL_TYPE_TIME=11,
46
+ MYSQL_TYPE_DATETIME=12,
47
+ MYSQL_TYPE_YEAR=13,
48
+ MYSQL_TYPE_NEWDATE=14,
49
+ MYSQL_TYPE_VARCHAR=15,
50
+ MYSQL_TYPE_BIT=16,
51
+ MYSQL_TYPE_NEWDECIMAL=246,
52
+ MYSQL_TYPE_ENUM=247,
53
+ MYSQL_TYPE_SET=248,
54
+ MYSQL_TYPE_TINY_BLOB=249,
55
+ MYSQL_TYPE_MEDIUM_BLOB=250,
56
+ MYSQL_TYPE_LONG_BLOB=251,
57
+ MYSQL_TYPE_BLOB=252,
58
+ MYSQL_TYPE_VAR_STRING=253,
59
+ MYSQL_TYPE_STRING=254,
60
+ MYSQL_TYPE_GEOMETRY=255
61
+ };
62
+
63
+ enum mysql_option {
64
+ MYSQL_SET_CHARSET_NAME=7,
65
+ };
66
+
67
+ enum mysql_status {
68
+ MYSQL_STATUS_READY=0,
69
+ };
70
+
71
+ #define CLIENT_COMPRESS 32
72
+ #define CLIENT_INTERACTIVE 1024
73
+ #define MYSQL_DATA_TRUNCATED 101
74
+ #define MYSQL_ERRMSG_SIZE 512
75
+ #define MYSQL_NO_DATA 100
76
+ #define SCRAMBLE_LENGTH 20
77
+ #define SQLSTATE_LENGTH 5
78
+
79
+ typedef struct st_list LIST;
80
+ typedef struct st_mem_root MEM_ROOT;
81
+ typedef struct st_mysql MYSQL;
82
+ typedef struct st_mysql_bind MYSQL_BIND;
83
+ typedef struct st_mysql_field MYSQL_FIELD;
84
+ typedef struct st_mysql_res MYSQL_RES;
85
+ typedef char** MYSQL_ROW;
86
+ typedef struct st_mysql_stmt MYSQL_STMT;
87
+ typedef char my_bool;
88
+ #ifndef Socket_defined
89
+ typedef int my_socket;
90
+ #define INVALID_SOCKET -1
91
+ #endif
92
+ typedef Tcl_WideUInt my_ulonglong;
93
+ typedef struct st_net NET;
94
+ typedef struct st_used_mem USED_MEM;
95
+ typedef struct st_vio Vio;
96
+
97
+ struct st_mem_root {
98
+ USED_MEM *free;
99
+ USED_MEM *used;
100
+ USED_MEM *pre_alloc;
101
+ size_t min_malloc;
102
+ size_t block_size;
103
+ unsigned int block_num;
104
+ unsigned int first_block_usage;
105
+ void (*error_handler)(void);
106
+ };
107
+
108
+ struct st_mysql_options {
109
+ unsigned int connect_timeout;
110
+ unsigned int read_timeout;
111
+ unsigned int write_timeout;
112
+ unsigned int port;
113
+ unsigned int protocol;
114
+ unsigned long client_flag;
115
+ char *host;
116
+ char *user;
117
+ char *password;
118
+ char *unix_socket;
119
+ char *db;
120
+ struct st_dynamic_array *init_commands;
121
+ char *my_cnf_file;
122
+ char *my_cnf_group;
123
+ char *charset_dir;
124
+ char *charset_name;
125
+ char *ssl_key;
126
+ char *ssl_cert;
127
+ char *ssl_ca;
128
+ char *ssl_capath;
129
+ char *ssl_cipher;
130
+ char *shared_memory_base_name;
131
+ unsigned long max_allowed_packet;
132
+ my_bool use_ssl;
133
+ my_bool compress,named_pipe;
134
+ my_bool rpl_probe;
135
+ my_bool rpl_parse;
136
+ my_bool no_master_reads;
137
+ #if !defined(CHECK_EMBEDDED_DIFFERENCES) || defined(EMBEDDED_LIBRARY)
138
+ my_bool separate_thread;
139
+ #endif
140
+ enum mysql_option methods_to_use;
141
+ char *client_ip;
142
+ my_bool secure_auth;
143
+ my_bool report_data_truncation;
144
+ int (*local_infile_init)(void **, const char *, void *);
145
+ int (*local_infile_read)(void *, char *, unsigned int);
146
+ void (*local_infile_end)(void *);
147
+ int (*local_infile_error)(void *, char *, unsigned int);
148
+ void *local_infile_userdata;
149
+ void *extension;
150
+ };
151
+
152
+ struct st_net {
153
+ #if !defined(CHECK_EMBEDDED_DIFFERENCES) || !defined(EMBEDDED_LIBRARY)
154
+ Vio *vio;
155
+ unsigned char *buff;
156
+ unsigned char *buff_end;
157
+ unsigned char *write_pos;
158
+ unsigned char *read_pos;
159
+ my_socket fd;
160
+ unsigned long remain_in_buf;
161
+ unsigned long length;
162
+ unsigned long buf_length;
163
+ unsigned long where_b;
164
+ unsigned long max_packet;
165
+ unsigned long max_packet_size;
166
+ unsigned int pkt_nr;
167
+ unsigned int compress_pkt_nr;
168
+ unsigned int write_timeout;
169
+ unsigned int read_timeout;
170
+ unsigned int retry_count;
171
+ int fcntl;
172
+ unsigned int *return_status;
173
+ unsigned char reading_or_writing;
174
+ char save_char;
175
+ my_bool unused0;
176
+ my_bool unused;
177
+ my_bool compress;
178
+ my_bool unused1;
179
+ #endif
180
+ unsigned char *query_cache_query;
181
+ unsigned int last_errno;
182
+ unsigned char error;
183
+ my_bool unused2;
184
+ my_bool return_errno;
185
+ char last_error[MYSQL_ERRMSG_SIZE];
186
+ char sqlstate[SQLSTATE_LENGTH+1];
187
+ void *extension;
188
+ #if defined(MYSQL_SERVER) && !defined(EMBEDDED_LIBRARY)
189
+ my_bool skip_big_packet;
190
+ #endif
191
+ };
192
+
193
+ /*
194
+ * st_mysql differs between 5.0 and 5.1, but the 5.0 version is a
195
+ * strict subset, we don't use any of the 5.1 fields, and we don't
196
+ * ever allocate the structure ourselves.
197
+ */
198
+
199
+ struct st_mysql {
200
+ NET net;
201
+ unsigned char *connector_fd;
202
+ char *host;
203
+ char *user;
204
+ char *passwd;
205
+ char *unix_socket;
206
+ char *server_version;
207
+ char *host_info;
208
+ char *info;
209
+ char *db;
210
+ struct charset_info_st *charset;
211
+ MYSQL_FIELD *fields;
212
+ MEM_ROOT field_alloc;
213
+ my_ulonglong affected_rows;
214
+ my_ulonglong insert_id;
215
+ my_ulonglong extra_info;
216
+ unsigned long thread_id;
217
+ unsigned long packet_length;
218
+ unsigned int port;
219
+ unsigned long client_flag;
220
+ unsigned long server_capabilities;
221
+ unsigned int protocol_version;
222
+ unsigned int field_count;
223
+ unsigned int server_status;
224
+ unsigned int server_language;
225
+ unsigned int warning_count;
226
+ struct st_mysql_options options;
227
+ enum mysql_status status;
228
+ my_bool free_me;
229
+ my_bool reconnect;
230
+ char scramble[SCRAMBLE_LENGTH+1];
231
+ my_bool rpl_pivot;
232
+ struct st_mysql *master;
233
+ struct st_mysql *next_slave;
234
+ struct st_mysql* last_used_slave;
235
+ struct st_mysql* last_used_con;
236
+ LIST *stmts;
237
+ const struct st_mysql_methods *methods;
238
+ void *thd;
239
+ my_bool *unbuffered_fetch_owner;
240
+ char *info_buffer;
241
+ };
242
+
243
+ /*
244
+ * There are different version of the MYSQL_BIND structure before and after
245
+ * MySQL 5.1. We go after the fields of the structure using accessor functions
246
+ * so that the code in this file is compatible with both versions.
247
+ */
248
+
249
+ struct st_mysql_bind_51 { /* Post-5.1 */
250
+ unsigned long* length;
251
+ my_bool* is_null;
252
+ void* buffer;
253
+ my_bool* error;
254
+ unsigned char* row_ptr;
255
+ void (*store_param_func)(NET* net, MYSQL_BIND* param);
256
+ void (*fetch_result)(MYSQL_BIND*, MYSQL_FIELD*, unsigned char**);
257
+ void (*skip_result)(MYSQL_BIND*, MYSQL_FIELD*, unsigned char**);
258
+ unsigned long buffer_length;
259
+ unsigned long offset;
260
+ unsigned long length_value;
261
+ unsigned int param_number;
262
+ unsigned int pack_length;
263
+ enum enum_field_types buffer_type;
264
+ my_bool error_value;
265
+ my_bool is_unsigned;
266
+ my_bool long_data_used;
267
+ my_bool is_null_value;
268
+ void* extension;
269
+ };
270
+
271
+ struct st_mysql_bind_50 { /* Pre-5.1 */
272
+ unsigned long* length;
273
+ my_bool* is_null;
274
+ void* buffer;
275
+ my_bool* error;
276
+ enum enum_field_types buffer_type;
277
+ unsigned long buffer_length;
278
+ unsigned char* row_ptr;
279
+ unsigned long offset;
280
+ unsigned long length_value;
281
+ unsigned int param_number;
282
+ unsigned int pack_length;
283
+ my_bool error_value;
284
+ my_bool is_unsigned;
285
+ my_bool long_data_used;
286
+ my_bool is_null_value;
287
+ void (*store_param_func)(NET* net, MYSQL_BIND* param);
288
+ void (*fetch_result)(MYSQL_BIND*, MYSQL_FIELD*, unsigned char**);
289
+ void (*skip_result)(MYSQL_BIND*, MYSQL_FIELD*, unsigned char**);
290
+ };
291
+
292
+ /*
293
+ * There are also different versions of the MYSQL_FIELD structure; fortunately,
294
+ * the 5.1 version is a strict extension of the 5.0 version.
295
+ */
296
+
297
+ struct st_mysql_field {
298
+ char* name;
299
+ char *org_name;
300
+ char* table;
301
+ char* org_table;
302
+ char* db;
303
+ char* catalog;
304
+ char* def;
305
+ unsigned long length;
306
+ unsigned long max_length;
307
+ unsigned int name_length;
308
+ unsigned int org_name_length;
309
+ unsigned int table_length;
310
+ unsigned int org_table_length;
311
+ unsigned int db_length;
312
+ unsigned int catalog_length;
313
+ unsigned int def_length;
314
+ unsigned int flags;
315
+ unsigned int decimals;
316
+ unsigned int charsetnr;
317
+ enum enum_field_types type;
318
+ };
319
+ struct st_mysql_field_50 {
320
+ struct st_mysql_field field;
321
+ };
322
+ struct st_mysql_field_51 {
323
+ struct st_mysql_field field;
324
+ void* extension;
325
+ };
326
+ #define NOT_NULL_FLAG 1
327
+
328
+ #define IS_NUM(t) ((t) <= MYSQL_TYPE_INT24 || (t) == MYSQL_TYPE_YEAR || (t) == MYSQL_TYPE_NEWDECIMAL)
329
+
330
+ #define mysql_library_init mysql_server_init
331
+ #define mysql_library_end mysql_server_end
332
+
333
+ #include "mysqlStubs.h"
334
+
335
+ #endif /* not FAKEMYSQL_H_INCLUDED */
my_container_sandbox/workspace/anaconda3/include/fakepq.h ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * fakepq.h --
3
+ *
4
+ * Minimal replacement for 'pq-fe.h' in the PostgreSQL client
5
+ * without having a PostgreSQL installation on the build system.
6
+ * This file comprises only data type, constant and function definitions.
7
+ *
8
+ * The programmers of this file believe that it contains material not
9
+ * subject to copyright under the doctrines of scenes a faire and
10
+ * of merger of idea and expression. Accordingly, this file is in the
11
+ * public domain.
12
+ *
13
+ *-----------------------------------------------------------------------------
14
+ */
15
+
16
+ #ifndef FAKEPQ_H_INCLUDED
17
+ #define FAKEPQ_H_INCLUDED
18
+
19
+ #ifndef MODULE_SCOPE
20
+ #define MODULE_SCOPE extern
21
+ #endif
22
+
23
+ MODULE_SCOPE Tcl_LoadHandle PostgresqlInitStubs(Tcl_Interp*);
24
+
25
+ typedef enum {
26
+ CONNECTION_OK=0,
27
+ } ConnStatusType;
28
+ typedef enum {
29
+ PGRES_EMPTY_QUERY=0,
30
+ PGRES_BAD_RESPONSE=5,
31
+ PGRES_NONFATAL_ERROR=6,
32
+ PGRES_FATAL_ERROR=7,
33
+ } ExecStatusType;
34
+ typedef unsigned int Oid;
35
+ typedef struct pg_conn PGconn;
36
+ typedef struct pg_result PGresult;
37
+ typedef void (*PQnoticeProcessor)(void*, const PGresult*);
38
+
39
+ #define PG_DIAG_SQLSTATE 'C'
40
+ #define PG_DIAG_MESSAGE_PRIMARY 'M'
41
+
42
+ #include "pqStubs.h"
43
+
44
+ MODULE_SCOPE const pqStubDefs* pqStubs;
45
+
46
+ #endif
my_container_sandbox/workspace/anaconda3/include/fakesql.h ADDED
@@ -0,0 +1,282 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * fakesql.h --
3
+ *
4
+ * Include file that defines the subset of SQL/CLI that TDBC
5
+ * uses, so that tdbc::odbc can build without an explicit ODBC
6
+ * dependency. It comprises only data type, constant and
7
+ * function declarations.
8
+ *
9
+ * The programmers of this file believe that it contains material not
10
+ * subject to copyright under the doctrines of scenes a faire and
11
+ * of merger of idea and expression. Accordingly, this file is in the
12
+ * public domain.
13
+ *
14
+ *-----------------------------------------------------------------------------
15
+ */
16
+
17
+ #ifndef FAKESQL_H_INCLUDED
18
+ #define FAKESQL_H_INCLUDED
19
+
20
+ #include <stddef.h>
21
+
22
+ #ifndef MODULE_SCOPE
23
+ #define MODULE_SCOPE extern
24
+ #endif
25
+
26
+ /* Limits */
27
+
28
+ #define SQL_MAX_DSN_LENGTH 32
29
+ #define SQL_MAX_MESSAGE_LENGTH 512
30
+
31
+ /* Fundamental data types */
32
+
33
+ #ifndef _WIN32
34
+ typedef int BOOL;
35
+ typedef unsigned int DWORD;
36
+ typedef void* HANDLE;
37
+ typedef HANDLE HWND;
38
+ typedef unsigned short WCHAR;
39
+ typedef char* LPSTR;
40
+ typedef WCHAR* LPWSTR;
41
+ typedef const char* LPCSTR;
42
+ typedef const WCHAR* LPCWSTR;
43
+ typedef unsigned short WORD;
44
+ #endif
45
+ typedef void* PVOID;
46
+ typedef short RETCODE;
47
+ typedef long SDWORD;
48
+ typedef short SWORD;
49
+ typedef unsigned short USHORT;
50
+ typedef USHORT UWORD;
51
+
52
+ /* ODBC data types */
53
+
54
+ typedef Tcl_WideInt SQLBIGINT;
55
+ typedef unsigned char SQLCHAR;
56
+ typedef double SQLDOUBLE;
57
+ typedef void* SQLHANDLE;
58
+ typedef SDWORD SQLINTEGER;
59
+ typedef PVOID SQLPOINTER;
60
+ typedef SWORD SQLSMALLINT;
61
+ typedef Tcl_WideUInt SQLUBIGINT;
62
+ typedef unsigned char SQLUCHAR;
63
+ typedef unsigned int SQLUINTEGER;
64
+ typedef UWORD SQLUSMALLINT;
65
+ typedef WCHAR SQLWCHAR;
66
+
67
+ typedef SQLSMALLINT SQLRETURN;
68
+
69
+ /* TODO - Check how the SQLLEN and SQLULEN types are handled on
70
+ * 64-bit Unix. */
71
+
72
+ #if defined(_WIN64)
73
+ typedef Tcl_WideInt SQLLEN;
74
+ typedef Tcl_WideUInt SQLULEN;
75
+ #else
76
+ typedef SQLINTEGER SQLLEN;
77
+ typedef SQLUINTEGER SQLULEN;
78
+ #endif
79
+
80
+ /* Handle types */
81
+
82
+ typedef SQLHANDLE SQLHENV;
83
+ typedef SQLHANDLE SQLHDBC;
84
+ typedef SQLHANDLE SQLHSTMT;
85
+ typedef HWND SQLHWND;
86
+
87
+ #define SQL_HANDLE_DBC 2
88
+ #define SQL_HANDLE_ENV 1
89
+ #define SQL_HANDLE_STMT 3
90
+
91
+ /* Null handles */
92
+
93
+ #define SQL_NULL_HANDLE ((SQLHANDLE) 0)
94
+ #define SQL_NULL_HENV ((SQLHENV) 0)
95
+ #define SQL_NULL_HDBC ((SQLHDBC) 0)
96
+ #define SQL_NULL_HSTMT ((SQLHSTMT) 0)
97
+
98
+ /* SQL data types */
99
+
100
+ enum _SQL_DATATYPE {
101
+ SQL_BIGINT = -5,
102
+ SQL_BINARY = -2,
103
+ SQL_BIT = -7,
104
+ SQL_CHAR = 1,
105
+ SQL_DATE = 9,
106
+ SQL_DECIMAL = 3,
107
+ SQL_DOUBLE = 8,
108
+ SQL_FLOAT = 6,
109
+ SQL_INTEGER = 4,
110
+ SQL_LONGVARBINARY = -4,
111
+ SQL_LONGVARCHAR = -1,
112
+ SQL_NUMERIC = 2,
113
+ SQL_REAL = 7,
114
+ SQL_SMALLINT = 5,
115
+ SQL_TIME = 10,
116
+ SQL_TIMESTAMP = 11,
117
+ SQL_TINYINT = -6,
118
+ SQL_VARBINARY = -3,
119
+ SQL_VARCHAR = 12,
120
+ SQL_WCHAR = -8,
121
+ SQL_WVARCHAR = -9,
122
+ SQL_WLONGVARCHAR = -10,
123
+ };
124
+
125
+ /* C data types */
126
+
127
+ #define SQL_SIGNED_OFFSET (-20)
128
+
129
+ #define SQL_C_BINARY SQL_BINARY
130
+ #define SQL_C_CHAR SQL_CHAR
131
+ #define SQL_C_DOUBLE SQL_DOUBLE
132
+ #define SQL_C_LONG SQL_INTEGER
133
+ #define SQL_C_SBIGINT SQL_BIGINT + SQL_SIGNED_OFFSET
134
+ #define SQL_C_SLONG SQL_INTEGER + SQL_SIGNED_OFFSET
135
+ #define SQL_C_WCHAR SQL_WCHAR
136
+
137
+ /* Parameter transmission diretions */
138
+
139
+ #define SQL_PARAM_INPUT 1
140
+
141
+ /* Status returns */
142
+
143
+ #define SQL_ERROR (-1)
144
+ #define SQL_NO_DATA 100
145
+ #define SQL_NO_TOTAL (-4)
146
+ #define SQL_SUCCESS 0
147
+ #define SQL_SUCCESS_WITH_INFO 1
148
+ #define SQL_SUCCEEDED(rc) (((rc)&(~1))==0)
149
+
150
+ /* Diagnostic fields */
151
+
152
+ enum _SQL_DIAG {
153
+ SQL_DIAG_SQLSTATE = 4,
154
+ };
155
+
156
+ /* Transaction isolation levels */
157
+
158
+ #define SQL_TXN_READ_COMMITTED 2
159
+ #define SQL_TXN_READ_UNCOMMITTED 1
160
+ #define SQL_TXN_REPEATABLE_READ 4
161
+ #define SQL_TXN_SERIALIZABLE 8
162
+
163
+ /* Access modes */
164
+
165
+ #define SQL_MODE_READ_ONLY 1UL
166
+ #define SQL_MODE_READ_WRITE 0UL
167
+
168
+ /* ODBC properties */
169
+
170
+ #define SQL_ACCESS_MODE 101
171
+ #define SQL_AUTOCOMMIT 102
172
+ #define SQL_TXN_ISOLATION 108
173
+
174
+ /* ODBC attributes */
175
+
176
+ #define SQL_ATTR_ACCESS_MODE SQL_ACCESS_MODE
177
+ #define SQL_ATTR_CONNECTION_TIMEOUT 113
178
+ #define SQL_ATTR_ODBC_VERSION 200
179
+ #define SQL_ATTR_TXN_ISOLATION SQL_TXN_ISOLATION
180
+ #define SQL_ATTR_AUTOCOMMIT SQL_AUTOCOMMIT
181
+
182
+ /* Nullable? */
183
+
184
+ #define SQL_NULLABLE_UNKNOWN 2
185
+
186
+ /* Placeholder for length of missing data */
187
+
188
+ #define SQL_NULL_DATA (-1)
189
+
190
+ /* ODBC versions */
191
+
192
+ #define SQL_OV_ODBC3 3UL
193
+ #define SQL_ODBC_VER 10
194
+
195
+ /* SQLDriverConnect flags */
196
+
197
+ #define SQL_DRIVER_COMPLETE_REQUIRED 3
198
+ #define SQL_DRIVER_NOPROMPT 0
199
+
200
+ /* SQLGetTypeInfo flags */
201
+
202
+ #define SQL_ALL_TYPES 0
203
+
204
+ /* Transaction actions */
205
+
206
+ #define SQL_COMMIT 0
207
+ #define SQL_ROLLBACK 1
208
+
209
+ /* Data source fetch flags */
210
+
211
+ #define SQL_FETCH_FIRST 2
212
+ #define SQL_FETCH_FIRST_SYSTEM 32
213
+ #define SQL_FETCH_FIRST_USER 31
214
+ #define SQL_FETCH_NEXT 1
215
+
216
+ /* ODBCINST actions */
217
+
218
+ #define ODBC_ADD_DSN 1
219
+ #define ODBC_CONFIG_DSN 2
220
+ #define ODBC_REMOVE_DSN 3
221
+ #define ODBC_ADD_SYS_DSN 4
222
+ #define ODBC_CONFIG_SYS_DSN 5
223
+ #define ODBC_REMOVE_SYS_DSN 6
224
+
225
+ /* ODBCINST errors */
226
+
227
+ #define ODBC_ERROR_GENERAL_ERR 1
228
+ #define ODBC_ERROR_INVALID_BUFF_LEN 2
229
+ #define ODBC_ERROR_INVALID_HWND 3
230
+ #define ODBC_ERROR_INVALID_STR 4
231
+ #define ODBC_ERROR_INVALID_REQUEST_TYPE 5
232
+ #define ODBC_ERROR_COMPONENT_NOT_FOUND 6
233
+ #define ODBC_ERROR_INVALID_NAME 7
234
+ #define ODBC_ERROR_INVALID_KEYWORD_VALUE 8
235
+ #define ODBC_ERROR_INVALID_DSN 9
236
+ #define ODBC_ERROR_INVALID_INF 10
237
+ #define ODBC_ERROR_REQUEST_FAILED 11
238
+ #define ODBC_ERROR_INVALID_PATH 12
239
+ #define ODBC_ERROR_LOAD_LIB_FAILED 13
240
+ #define ODBC_ERROR_INVALID_PARAM_SEQUENCE 14
241
+ #define ODBC_ERROR_INVALID_LOG_FILE 15
242
+ #define ODBC_ERROR_USER_CANCELED 16
243
+ #define ODBC_ERROR_USAGE_UPDATE_FAILED 17
244
+ #define ODBC_ERROR_CREATE_DSN_FAILED 18
245
+ #define ODBC_ERROR_WRITING_SYSINFO_FAILED 19
246
+ #define ODBC_ERROR_REMOVE_DSN_FAILED 20
247
+ #define ODBC_ERROR_OUT_OF_MEM 21
248
+ #define ODBC_ERROR_OUTPUT_STRING_TRUNCATED 22
249
+
250
+ /* ODBC client library entry points */
251
+
252
+ #ifdef _WIN32
253
+ #define SQL_API __stdcall
254
+ #define INSTAPI __stdcall
255
+ #else
256
+ #define SQL_API /* nothing */
257
+ #define INSTAPI /* nothing */
258
+ #endif
259
+
260
+ #include "odbcStubs.h"
261
+ MODULE_SCOPE const odbcStubDefs* odbcStubs;
262
+
263
+ /*
264
+ * Additional entry points in ODBCINST - all of these are optional
265
+ * and resolved with Tcl_FindSymbol, not directly in Tcl_LoadLibrary.
266
+ */
267
+
268
+ MODULE_SCOPE BOOL (INSTAPI* SQLConfigDataSourceW)(HWND, WORD, LPCWSTR,
269
+ LPCWSTR);
270
+ MODULE_SCOPE BOOL (INSTAPI* SQLConfigDataSource)(HWND, WORD, LPCSTR, LPCSTR);
271
+ MODULE_SCOPE BOOL (INSTAPI* SQLInstallerErrorW)(WORD, DWORD*, LPWSTR, WORD,
272
+ WORD*);
273
+ MODULE_SCOPE BOOL (INSTAPI* SQLInstallerError)(WORD, DWORD*, LPSTR, WORD,
274
+ WORD*);
275
+
276
+ /*
277
+ * Function that initialises the stubs
278
+ */
279
+
280
+ MODULE_SCOPE Tcl_LoadHandle OdbcInitStubs(Tcl_Interp*, Tcl_LoadHandle*);
281
+
282
+ #endif
my_container_sandbox/workspace/anaconda3/include/ffitarget.h ADDED
@@ -0,0 +1,162 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* -----------------------------------------------------------------*-C-*-
2
+ ffitarget.h - Copyright (c) 2012, 2014, 2018 Anthony Green
3
+ Copyright (c) 1996-2003, 2010 Red Hat, Inc.
4
+ Copyright (C) 2008 Free Software Foundation, Inc.
5
+
6
+ Target configuration macros for x86 and x86-64.
7
+
8
+ Permission is hereby granted, free of charge, to any person obtaining
9
+ a copy of this software and associated documentation files (the
10
+ ``Software''), to deal in the Software without restriction, including
11
+ without limitation the rights to use, copy, modify, merge, publish,
12
+ distribute, sublicense, and/or sell copies of the Software, and to
13
+ permit persons to whom the Software is furnished to do so, subject to
14
+ the following conditions:
15
+
16
+ The above copyright notice and this permission notice shall be included
17
+ in all copies or substantial portions of the Software.
18
+
19
+ THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
20
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
22
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
23
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
24
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
26
+ DEALINGS IN THE SOFTWARE.
27
+
28
+ ----------------------------------------------------------------------- */
29
+
30
+ #ifndef LIBFFI_TARGET_H
31
+ #define LIBFFI_TARGET_H
32
+
33
+ #ifndef LIBFFI_H
34
+ #error "Please do not include ffitarget.h directly into your source. Use ffi.h instead."
35
+ #endif
36
+
37
+ /* ---- System specific configurations ----------------------------------- */
38
+
39
+ /* For code common to all platforms on x86 and x86_64. */
40
+ #define X86_ANY
41
+
42
+ #if defined (X86_64) && defined (__i386__)
43
+ #undef X86_64
44
+ #define X86
45
+ #endif
46
+
47
+ #ifdef X86_WIN64
48
+ #define FFI_SIZEOF_ARG 8
49
+ #define USE_BUILTIN_FFS 0 /* not yet implemented in mingw-64 */
50
+ #endif
51
+
52
+ #define FFI_TARGET_SPECIFIC_STACK_SPACE_ALLOCATION
53
+ #ifndef _MSC_VER
54
+ #define FFI_TARGET_HAS_COMPLEX_TYPE
55
+ #endif
56
+
57
+ /* ---- Generic type definitions ----------------------------------------- */
58
+
59
+ #ifndef LIBFFI_ASM
60
+ #ifdef X86_WIN64
61
+ #ifdef _MSC_VER
62
+ typedef unsigned __int64 ffi_arg;
63
+ typedef __int64 ffi_sarg;
64
+ #else
65
+ typedef unsigned long long ffi_arg;
66
+ typedef long long ffi_sarg;
67
+ #endif
68
+ #else
69
+ #if defined __x86_64__ && defined __ILP32__
70
+ #define FFI_SIZEOF_ARG 8
71
+ #define FFI_SIZEOF_JAVA_RAW 4
72
+ typedef unsigned long long ffi_arg;
73
+ typedef long long ffi_sarg;
74
+ #else
75
+ typedef unsigned long ffi_arg;
76
+ typedef signed long ffi_sarg;
77
+ #endif
78
+ #endif
79
+
80
+ typedef enum ffi_abi {
81
+ #if defined(X86_WIN64)
82
+ FFI_FIRST_ABI = 0,
83
+ FFI_WIN64, /* sizeof(long double) == 8 - microsoft compilers */
84
+ FFI_GNUW64, /* sizeof(long double) == 16 - GNU compilers */
85
+ FFI_LAST_ABI,
86
+ #ifdef __GNUC__
87
+ FFI_DEFAULT_ABI = FFI_GNUW64
88
+ #else
89
+ FFI_DEFAULT_ABI = FFI_WIN64
90
+ #endif
91
+
92
+ #elif defined(X86_64) || (defined (__x86_64__) && defined (X86_DARWIN))
93
+ FFI_FIRST_ABI = 1,
94
+ FFI_UNIX64,
95
+ FFI_WIN64,
96
+ FFI_EFI64 = FFI_WIN64,
97
+ FFI_GNUW64,
98
+ FFI_LAST_ABI,
99
+ FFI_DEFAULT_ABI = FFI_UNIX64
100
+
101
+ #elif defined(X86_WIN32)
102
+ FFI_FIRST_ABI = 0,
103
+ FFI_SYSV = 1,
104
+ FFI_STDCALL = 2,
105
+ FFI_THISCALL = 3,
106
+ FFI_FASTCALL = 4,
107
+ FFI_MS_CDECL = 5,
108
+ FFI_PASCAL = 6,
109
+ FFI_REGISTER = 7,
110
+ FFI_LAST_ABI,
111
+ FFI_DEFAULT_ABI = FFI_MS_CDECL
112
+ #else
113
+ FFI_FIRST_ABI = 0,
114
+ FFI_SYSV = 1,
115
+ FFI_THISCALL = 3,
116
+ FFI_FASTCALL = 4,
117
+ FFI_STDCALL = 5,
118
+ FFI_PASCAL = 6,
119
+ FFI_REGISTER = 7,
120
+ FFI_MS_CDECL = 8,
121
+ FFI_LAST_ABI,
122
+ FFI_DEFAULT_ABI = FFI_SYSV
123
+ #endif
124
+ } ffi_abi;
125
+ #endif
126
+
127
+ /* ---- Definitions for closures ----------------------------------------- */
128
+
129
+ #define FFI_CLOSURES 1
130
+ #define FFI_GO_CLOSURES 1
131
+
132
+ #define FFI_TYPE_SMALL_STRUCT_1B (FFI_TYPE_LAST + 1)
133
+ #define FFI_TYPE_SMALL_STRUCT_2B (FFI_TYPE_LAST + 2)
134
+ #define FFI_TYPE_SMALL_STRUCT_4B (FFI_TYPE_LAST + 3)
135
+ #define FFI_TYPE_MS_STRUCT (FFI_TYPE_LAST + 4)
136
+
137
+ #if defined (X86_64) || defined(X86_WIN64) \
138
+ || (defined (__x86_64__) && defined (X86_DARWIN))
139
+ /* 4 bytes of ENDBR64 + 7 bytes of LEA + 6 bytes of JMP + 7 bytes of NOP
140
+ + 8 bytes of pointer. */
141
+ # define FFI_TRAMPOLINE_SIZE 32
142
+ # define FFI_NATIVE_RAW_API 0
143
+ #else
144
+ /* 4 bytes of ENDBR32 + 5 bytes of MOV + 5 bytes of JMP + 2 unused
145
+ bytes. */
146
+ # define FFI_TRAMPOLINE_SIZE 16
147
+ # define FFI_NATIVE_RAW_API 1 /* x86 has native raw api support */
148
+ #endif
149
+
150
+ #if !defined(GENERATE_LIBFFI_MAP) && defined(__CET__)
151
+ # include <cet.h>
152
+ # if (__CET__ & 1) != 0
153
+ # define ENDBR_PRESENT
154
+ # endif
155
+ # define _CET_NOTRACK notrack
156
+ #else
157
+ # define _CET_ENDBR
158
+ # define _CET_NOTRACK
159
+ #endif
160
+
161
+ #endif
162
+
my_container_sandbox/workspace/anaconda3/include/form.h ADDED
@@ -0,0 +1,460 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /****************************************************************************
2
+ * Copyright 2018-2019-2020,2021 Thomas E. Dickey *
3
+ * Copyright 1998-2016,2017 Free Software Foundation, Inc. *
4
+ * *
5
+ * Permission is hereby granted, free of charge, to any person obtaining a *
6
+ * copy of this software and associated documentation files (the *
7
+ * "Software"), to deal in the Software without restriction, including *
8
+ * without limitation the rights to use, copy, modify, merge, publish, *
9
+ * distribute, distribute with modifications, sublicense, and/or sell *
10
+ * copies of the Software, and to permit persons to whom the Software is *
11
+ * furnished to do so, subject to the following conditions: *
12
+ * *
13
+ * The above copyright notice and this permission notice shall be included *
14
+ * in all copies or substantial portions of the Software. *
15
+ * *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
17
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
18
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
19
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
20
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
21
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
22
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
23
+ * *
24
+ * Except as contained in this notice, the name(s) of the above copyright *
25
+ * holders shall not be used in advertising or otherwise to promote the *
26
+ * sale, use or other dealings in this Software without prior written *
27
+ * authorization. *
28
+ ****************************************************************************/
29
+
30
+ /****************************************************************************
31
+ * Author: Juergen Pfeifer, 1995,1997 *
32
+ ****************************************************************************/
33
+
34
+ /* $Id: form.h,v 0.32 2021/06/17 21:26:02 tom Exp $ */
35
+
36
+ #ifndef FORM_H
37
+ #define FORM_H
38
+ /* *INDENT-OFF*/
39
+
40
+ #include <ncursesw/curses.h>
41
+ #include <ncursesw/eti.h>
42
+
43
+ #ifdef __cplusplus
44
+ extern "C" {
45
+ #endif
46
+
47
+ #if defined(BUILDING_FORM)
48
+ # define FORM_IMPEXP NCURSES_EXPORT_GENERAL_EXPORT
49
+ #else
50
+ # define FORM_IMPEXP NCURSES_EXPORT_GENERAL_IMPORT
51
+ #endif
52
+
53
+ #define FORM_WRAPPED_VAR(type,name) extern FORM_IMPEXP type NCURSES_PUBLIC_VAR(name)(void)
54
+
55
+ #define FORM_EXPORT(type) FORM_IMPEXP type NCURSES_API
56
+ #define FORM_EXPORT_VAR(type) FORM_IMPEXP type
57
+
58
+ #ifndef FORM_PRIV_H
59
+ typedef void *FIELD_CELL;
60
+ #endif
61
+
62
+ #ifndef NCURSES_FIELD_INTERNALS
63
+ #define NCURSES_FIELD_INTERNALS /* nothing */
64
+ #endif
65
+
66
+ typedef int Form_Options;
67
+ typedef int Field_Options;
68
+
69
+ /**********
70
+ * _PAGE *
71
+ **********/
72
+
73
+ typedef struct pagenode
74
+ #if !NCURSES_OPAQUE_FORM
75
+ {
76
+ short pmin; /* index of first field on page */
77
+ short pmax; /* index of last field on page */
78
+ short smin; /* index of top leftmost field on page */
79
+ short smax; /* index of bottom rightmost field on page */
80
+ }
81
+ #endif /* !NCURSES_OPAQUE_FORM */
82
+ _PAGE;
83
+
84
+ /**********
85
+ * FIELD *
86
+ **********/
87
+
88
+ typedef struct fieldnode
89
+ #if 1 /* not yet: !NCURSES_OPAQUE_FORM */
90
+ {
91
+ unsigned short status; /* flags */
92
+ short rows; /* size in rows */
93
+ short cols; /* size in cols */
94
+ short frow; /* first row */
95
+ short fcol; /* first col */
96
+ int drows; /* dynamic rows */
97
+ int dcols; /* dynamic cols */
98
+ int maxgrow; /* maximum field growth */
99
+ int nrow; /* off-screen rows */
100
+ short nbuf; /* additional buffers */
101
+ short just; /* justification */
102
+ short page; /* page on form */
103
+ short index; /* into form -> field */
104
+ int pad; /* pad character */
105
+ chtype fore; /* foreground attribute */
106
+ chtype back; /* background attribute */
107
+ Field_Options opts; /* options */
108
+ struct fieldnode * snext; /* sorted order pointer */
109
+ struct fieldnode * sprev; /* sorted order pointer */
110
+ struct fieldnode * link; /* linked field chain */
111
+ struct formnode * form; /* containing form */
112
+ struct typenode * type; /* field type */
113
+ void * arg; /* argument for type */
114
+ FIELD_CELL * buf; /* field buffers */
115
+ void * usrptr; /* user pointer */
116
+ /*
117
+ * The wide-character configuration requires extra information. Because
118
+ * there are existing applications that manipulate the members of FIELD
119
+ * directly, we cannot make the struct opaque, except by changing the ABI.
120
+ * Offsets of members up to this point are the same in the narrow- and
121
+ * wide-character configuration. But note that the type of buf depends on
122
+ * the configuration, and is made opaque for that reason.
123
+ */
124
+ NCURSES_FIELD_INTERNALS
125
+ }
126
+ #endif /* NCURSES_OPAQUE_FORM */
127
+ FIELD;
128
+
129
+
130
+ /*********
131
+ * FORM *
132
+ *********/
133
+
134
+ typedef struct formnode
135
+ #if 1 /* not yet: !NCURSES_OPAQUE_FORM */
136
+ {
137
+ unsigned short status; /* flags */
138
+ short rows; /* size in rows */
139
+ short cols; /* size in cols */
140
+ int currow; /* current row in field window */
141
+ int curcol; /* current col in field window */
142
+ int toprow; /* in scrollable field window */
143
+ int begincol; /* in horiz. scrollable field */
144
+ short maxfield; /* number of fields */
145
+ short maxpage; /* number of pages */
146
+ short curpage; /* index into page */
147
+ Form_Options opts; /* options */
148
+ WINDOW * win; /* window */
149
+ WINDOW * sub; /* subwindow */
150
+ WINDOW * w; /* window for current field */
151
+ FIELD ** field; /* field [maxfield] */
152
+ FIELD * current; /* current field */
153
+ _PAGE * page; /* page [maxpage] */
154
+ void * usrptr; /* user pointer */
155
+
156
+ void (*forminit)(struct formnode *);
157
+ void (*formterm)(struct formnode *);
158
+ void (*fieldinit)(struct formnode *);
159
+ void (*fieldterm)(struct formnode *);
160
+
161
+ }
162
+ #endif /* !NCURSES_OPAQUE_FORM */
163
+ FORM;
164
+
165
+
166
+ /**************
167
+ * FIELDTYPE *
168
+ **************/
169
+
170
+ typedef struct typenode
171
+ #if !NCURSES_OPAQUE_FORM
172
+ {
173
+ unsigned short status; /* flags */
174
+ long ref; /* reference count */
175
+ struct typenode * left; /* ptr to operand for | */
176
+ struct typenode * right; /* ptr to operand for | */
177
+
178
+ void* (*makearg)(va_list *); /* make fieldtype arg */
179
+ void* (*copyarg)(const void *); /* copy fieldtype arg */
180
+ void (*freearg)(void *); /* free fieldtype arg */
181
+
182
+ #if NCURSES_INTEROP_FUNCS
183
+ union {
184
+ bool (*ofcheck)(FIELD *,const void *); /* field validation */
185
+ bool (*gfcheck)(FORM*,FIELD *,const void*); /* generic field validation */
186
+ } fieldcheck;
187
+ union {
188
+ bool (*occheck)(int,const void *); /* character validation */
189
+ bool (*gccheck)(int,FORM*,
190
+ FIELD*,const void*); /* generic char validation */
191
+ } charcheck;
192
+ union {
193
+ bool (*onext)(FIELD *,const void *); /* enumerate next value */
194
+ bool (*gnext)(FORM*,FIELD*,const void*); /* generic enumerate next */
195
+ } enum_next;
196
+ union {
197
+ bool (*oprev)(FIELD *,const void *); /* enumerate prev value */
198
+ bool (*gprev)(FORM*,FIELD*,const void*); /* generic enumerate prev */
199
+ } enum_prev;
200
+ void* (*genericarg)(void*); /* Alternate Arg method */
201
+ #else
202
+ bool (*fcheck)(FIELD *,const void *); /* field validation */
203
+ bool (*ccheck)(int,const void *); /* character validation */
204
+
205
+ bool (*next)(FIELD *,const void *); /* enumerate next value */
206
+ bool (*prev)(FIELD *,const void *); /* enumerate prev value */
207
+ #endif
208
+ }
209
+ #endif /* !NCURSES_OPAQUE_FORM */
210
+ FIELDTYPE;
211
+
212
+ typedef void (*Form_Hook)(FORM *);
213
+
214
+ /***************************
215
+ * miscellaneous #defines *
216
+ ***************************/
217
+
218
+ /* field justification */
219
+ #define NO_JUSTIFICATION (0)
220
+ #define JUSTIFY_LEFT (1)
221
+ #define JUSTIFY_CENTER (2)
222
+ #define JUSTIFY_RIGHT (3)
223
+
224
+ /* field options */
225
+ #define O_VISIBLE (0x0001U)
226
+ #define O_ACTIVE (0x0002U)
227
+ #define O_PUBLIC (0x0004U)
228
+ #define O_EDIT (0x0008U)
229
+ #define O_WRAP (0x0010U)
230
+ #define O_BLANK (0x0020U)
231
+ #define O_AUTOSKIP (0x0040U)
232
+ #define O_NULLOK (0x0080U)
233
+ #define O_PASSOK (0x0100U)
234
+ #define O_STATIC (0x0200U)
235
+ #define O_DYNAMIC_JUSTIFY (0x0400U) /* ncurses extension */
236
+ #define O_NO_LEFT_STRIP (0x0800U) /* ncurses extension */
237
+ #define O_EDGE_INSERT_STAY (0x1000U) /* ncurses extension */
238
+ #define O_INPUT_LIMIT (0x2000U) /* ncurses extension */
239
+
240
+ /* form options */
241
+ #define O_NL_OVERLOAD (0x0001U)
242
+ #define O_BS_OVERLOAD (0x0002U)
243
+
244
+ /* form driver commands */
245
+ #define REQ_NEXT_PAGE (KEY_MAX + 1) /* move to next page */
246
+ #define REQ_PREV_PAGE (KEY_MAX + 2) /* move to previous page */
247
+ #define REQ_FIRST_PAGE (KEY_MAX + 3) /* move to first page */
248
+ #define REQ_LAST_PAGE (KEY_MAX + 4) /* move to last page */
249
+
250
+ #define REQ_NEXT_FIELD (KEY_MAX + 5) /* move to next field */
251
+ #define REQ_PREV_FIELD (KEY_MAX + 6) /* move to previous field */
252
+ #define REQ_FIRST_FIELD (KEY_MAX + 7) /* move to first field */
253
+ #define REQ_LAST_FIELD (KEY_MAX + 8) /* move to last field */
254
+ #define REQ_SNEXT_FIELD (KEY_MAX + 9) /* move to sorted next field */
255
+ #define REQ_SPREV_FIELD (KEY_MAX + 10) /* move to sorted prev field */
256
+ #define REQ_SFIRST_FIELD (KEY_MAX + 11) /* move to sorted first field */
257
+ #define REQ_SLAST_FIELD (KEY_MAX + 12) /* move to sorted last field */
258
+ #define REQ_LEFT_FIELD (KEY_MAX + 13) /* move to left to field */
259
+ #define REQ_RIGHT_FIELD (KEY_MAX + 14) /* move to right to field */
260
+ #define REQ_UP_FIELD (KEY_MAX + 15) /* move to up to field */
261
+ #define REQ_DOWN_FIELD (KEY_MAX + 16) /* move to down to field */
262
+
263
+ #define REQ_NEXT_CHAR (KEY_MAX + 17) /* move to next char in field */
264
+ #define REQ_PREV_CHAR (KEY_MAX + 18) /* move to prev char in field */
265
+ #define REQ_NEXT_LINE (KEY_MAX + 19) /* move to next line in field */
266
+ #define REQ_PREV_LINE (KEY_MAX + 20) /* move to prev line in field */
267
+ #define REQ_NEXT_WORD (KEY_MAX + 21) /* move to next word in field */
268
+ #define REQ_PREV_WORD (KEY_MAX + 22) /* move to prev word in field */
269
+ #define REQ_BEG_FIELD (KEY_MAX + 23) /* move to first char in field */
270
+ #define REQ_END_FIELD (KEY_MAX + 24) /* move after last char in fld */
271
+ #define REQ_BEG_LINE (KEY_MAX + 25) /* move to beginning of line */
272
+ #define REQ_END_LINE (KEY_MAX + 26) /* move after last char in line */
273
+ #define REQ_LEFT_CHAR (KEY_MAX + 27) /* move left in field */
274
+ #define REQ_RIGHT_CHAR (KEY_MAX + 28) /* move right in field */
275
+ #define REQ_UP_CHAR (KEY_MAX + 29) /* move up in field */
276
+ #define REQ_DOWN_CHAR (KEY_MAX + 30) /* move down in field */
277
+
278
+ #define REQ_NEW_LINE (KEY_MAX + 31) /* insert/overlay new line */
279
+ #define REQ_INS_CHAR (KEY_MAX + 32) /* insert blank char at cursor */
280
+ #define REQ_INS_LINE (KEY_MAX + 33) /* insert blank line at cursor */
281
+ #define REQ_DEL_CHAR (KEY_MAX + 34) /* delete char at cursor */
282
+ #define REQ_DEL_PREV (KEY_MAX + 35) /* delete char before cursor */
283
+ #define REQ_DEL_LINE (KEY_MAX + 36) /* delete line at cursor */
284
+ #define REQ_DEL_WORD (KEY_MAX + 37) /* delete word at cursor */
285
+ #define REQ_CLR_EOL (KEY_MAX + 38) /* clear to end of line */
286
+ #define REQ_CLR_EOF (KEY_MAX + 39) /* clear to end of field */
287
+ #define REQ_CLR_FIELD (KEY_MAX + 40) /* clear entire field */
288
+ #define REQ_OVL_MODE (KEY_MAX + 41) /* begin overlay mode */
289
+ #define REQ_INS_MODE (KEY_MAX + 42) /* begin insert mode */
290
+ #define REQ_SCR_FLINE (KEY_MAX + 43) /* scroll field forward a line */
291
+ #define REQ_SCR_BLINE (KEY_MAX + 44) /* scroll field backward a line */
292
+ #define REQ_SCR_FPAGE (KEY_MAX + 45) /* scroll field forward a page */
293
+ #define REQ_SCR_BPAGE (KEY_MAX + 46) /* scroll field backward a page */
294
+ #define REQ_SCR_FHPAGE (KEY_MAX + 47) /* scroll field forward half page */
295
+ #define REQ_SCR_BHPAGE (KEY_MAX + 48) /* scroll field backward half page */
296
+ #define REQ_SCR_FCHAR (KEY_MAX + 49) /* horizontal scroll char */
297
+ #define REQ_SCR_BCHAR (KEY_MAX + 50) /* horizontal scroll char */
298
+ #define REQ_SCR_HFLINE (KEY_MAX + 51) /* horizontal scroll line */
299
+ #define REQ_SCR_HBLINE (KEY_MAX + 52) /* horizontal scroll line */
300
+ #define REQ_SCR_HFHALF (KEY_MAX + 53) /* horizontal scroll half line */
301
+ #define REQ_SCR_HBHALF (KEY_MAX + 54) /* horizontal scroll half line */
302
+
303
+ #define REQ_VALIDATION (KEY_MAX + 55) /* validate field */
304
+ #define REQ_NEXT_CHOICE (KEY_MAX + 56) /* display next field choice */
305
+ #define REQ_PREV_CHOICE (KEY_MAX + 57) /* display prev field choice */
306
+
307
+ #define MIN_FORM_COMMAND (KEY_MAX + 1) /* used by form_driver */
308
+ #define MAX_FORM_COMMAND (KEY_MAX + 57) /* used by form_driver */
309
+
310
+ #if defined(MAX_COMMAND)
311
+ # if (MAX_FORM_COMMAND > MAX_COMMAND)
312
+ # error Something is wrong -- MAX_FORM_COMMAND is greater than MAX_COMMAND
313
+ # elif (MAX_COMMAND != (KEY_MAX + 128))
314
+ # error Something is wrong -- MAX_COMMAND is already inconsistently defined.
315
+ # endif
316
+ #else
317
+ # define MAX_COMMAND (KEY_MAX + 128)
318
+ #endif
319
+
320
+ /*************************
321
+ * standard field types *
322
+ *************************/
323
+ extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_ALPHA;
324
+ extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_ALNUM;
325
+ extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_ENUM;
326
+ extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_INTEGER;
327
+ extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_NUMERIC;
328
+ extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_REGEXP;
329
+
330
+ /************************************
331
+ * built-in additional field types *
332
+ * They are not defined in SVr4 *
333
+ ************************************/
334
+ extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_IPV4; /* Internet IP Version 4 address */
335
+
336
+ /***********************
337
+ * FIELDTYPE routines *
338
+ ***********************/
339
+ extern FORM_EXPORT(FIELDTYPE *) new_fieldtype (
340
+ bool (* const field_check)(FIELD *,const void *),
341
+ bool (* const char_check)(int,const void *));
342
+ extern FORM_EXPORT(FIELDTYPE *) link_fieldtype(
343
+ FIELDTYPE *, FIELDTYPE *);
344
+
345
+ extern FORM_EXPORT(int) free_fieldtype (FIELDTYPE *);
346
+ extern FORM_EXPORT(int) set_fieldtype_arg (FIELDTYPE *,
347
+ void * (* const make_arg)(va_list *),
348
+ void * (* const copy_arg)(const void *),
349
+ void (* const free_arg)(void *));
350
+ extern FORM_EXPORT(int) set_fieldtype_choice (FIELDTYPE *,
351
+ bool (* const next_choice)(FIELD *,const void *),
352
+ bool (* const prev_choice)(FIELD *,const void *));
353
+
354
+ /*******************
355
+ * FIELD routines *
356
+ *******************/
357
+ extern FORM_EXPORT(FIELD *) new_field (int,int,int,int,int,int);
358
+ extern FORM_EXPORT(FIELD *) dup_field (FIELD *,int,int);
359
+ extern FORM_EXPORT(FIELD *) link_field (FIELD *,int,int);
360
+
361
+ extern FORM_EXPORT(int) free_field (FIELD *);
362
+ extern FORM_EXPORT(int) field_info (const FIELD *,int *,int *,int *,int *,int *,int *);
363
+ extern FORM_EXPORT(int) dynamic_field_info (const FIELD *,int *,int *,int *);
364
+ extern FORM_EXPORT(int) set_max_field ( FIELD *,int);
365
+ extern FORM_EXPORT(int) move_field (FIELD *,int,int);
366
+ extern FORM_EXPORT(int) set_field_type (FIELD *,FIELDTYPE *,...);
367
+ extern FORM_EXPORT(int) set_new_page (FIELD *,bool);
368
+ extern FORM_EXPORT(int) set_field_just (FIELD *,int);
369
+ extern FORM_EXPORT(int) field_just (const FIELD *);
370
+ extern FORM_EXPORT(int) set_field_fore (FIELD *,chtype);
371
+ extern FORM_EXPORT(int) set_field_back (FIELD *,chtype);
372
+ extern FORM_EXPORT(int) set_field_pad (FIELD *,int);
373
+ extern FORM_EXPORT(int) field_pad (const FIELD *);
374
+ extern FORM_EXPORT(int) set_field_buffer (FIELD *,int,const char *);
375
+ extern FORM_EXPORT(int) set_field_status (FIELD *,bool);
376
+ extern FORM_EXPORT(int) set_field_userptr (FIELD *, void *);
377
+ extern FORM_EXPORT(int) set_field_opts (FIELD *,Field_Options);
378
+ extern FORM_EXPORT(int) field_opts_on (FIELD *,Field_Options);
379
+ extern FORM_EXPORT(int) field_opts_off (FIELD *,Field_Options);
380
+
381
+ extern FORM_EXPORT(chtype) field_fore (const FIELD *);
382
+ extern FORM_EXPORT(chtype) field_back (const FIELD *);
383
+
384
+ extern FORM_EXPORT(bool) new_page (const FIELD *);
385
+ extern FORM_EXPORT(bool) field_status (const FIELD *);
386
+
387
+ extern FORM_EXPORT(void *) field_arg (const FIELD *);
388
+
389
+ extern FORM_EXPORT(void *) field_userptr (const FIELD *);
390
+
391
+ extern FORM_EXPORT(FIELDTYPE *) field_type (const FIELD *);
392
+
393
+ extern FORM_EXPORT(char *) field_buffer (const FIELD *,int);
394
+
395
+ extern FORM_EXPORT(Field_Options) field_opts (const FIELD *);
396
+
397
+ /******************
398
+ * FORM routines *
399
+ ******************/
400
+
401
+ extern FORM_EXPORT(FORM *) new_form (FIELD **);
402
+
403
+ extern FORM_EXPORT(FIELD **) form_fields (const FORM *);
404
+ extern FORM_EXPORT(FIELD *) current_field (const FORM *);
405
+
406
+ extern FORM_EXPORT(WINDOW *) form_win (const FORM *);
407
+ extern FORM_EXPORT(WINDOW *) form_sub (const FORM *);
408
+
409
+ extern FORM_EXPORT(Form_Hook) form_init (const FORM *);
410
+ extern FORM_EXPORT(Form_Hook) form_term (const FORM *);
411
+ extern FORM_EXPORT(Form_Hook) field_init (const FORM *);
412
+ extern FORM_EXPORT(Form_Hook) field_term (const FORM *);
413
+
414
+ extern FORM_EXPORT(int) free_form (FORM *);
415
+ extern FORM_EXPORT(int) set_form_fields (FORM *,FIELD **);
416
+ extern FORM_EXPORT(int) field_count (const FORM *);
417
+ extern FORM_EXPORT(int) set_form_win (FORM *,WINDOW *);
418
+ extern FORM_EXPORT(int) set_form_sub (FORM *,WINDOW *);
419
+ extern FORM_EXPORT(int) set_current_field (FORM *,FIELD *);
420
+ extern FORM_EXPORT(int) unfocus_current_field (FORM *);
421
+ extern FORM_EXPORT(int) field_index (const FIELD *);
422
+ extern FORM_EXPORT(int) set_form_page (FORM *,int);
423
+ extern FORM_EXPORT(int) form_page (const FORM *);
424
+ extern FORM_EXPORT(int) scale_form (const FORM *,int *,int *);
425
+ extern FORM_EXPORT(int) set_form_init (FORM *,Form_Hook);
426
+ extern FORM_EXPORT(int) set_form_term (FORM *,Form_Hook);
427
+ extern FORM_EXPORT(int) set_field_init (FORM *,Form_Hook);
428
+ extern FORM_EXPORT(int) set_field_term (FORM *,Form_Hook);
429
+ extern FORM_EXPORT(int) post_form (FORM *);
430
+ extern FORM_EXPORT(int) unpost_form (FORM *);
431
+ extern FORM_EXPORT(int) pos_form_cursor (FORM *);
432
+ extern FORM_EXPORT(int) form_driver (FORM *,int);
433
+ # if NCURSES_WIDECHAR
434
+ extern FORM_EXPORT(int) form_driver_w (FORM *,int,wchar_t);
435
+ # endif
436
+ extern FORM_EXPORT(int) set_form_userptr (FORM *,void *);
437
+ extern FORM_EXPORT(int) set_form_opts (FORM *,Form_Options);
438
+ extern FORM_EXPORT(int) form_opts_on (FORM *,Form_Options);
439
+ extern FORM_EXPORT(int) form_opts_off (FORM *,Form_Options);
440
+ extern FORM_EXPORT(int) form_request_by_name (const char *);
441
+
442
+ extern FORM_EXPORT(const char *) form_request_name (int);
443
+
444
+ extern FORM_EXPORT(void *) form_userptr (const FORM *);
445
+
446
+ extern FORM_EXPORT(Form_Options) form_opts (const FORM *);
447
+
448
+ extern FORM_EXPORT(bool) data_ahead (const FORM *);
449
+ extern FORM_EXPORT(bool) data_behind (const FORM *);
450
+
451
+ #if NCURSES_SP_FUNCS
452
+ extern FORM_EXPORT(FORM *) NCURSES_SP_NAME(new_form) (SCREEN*, FIELD **);
453
+ #endif
454
+
455
+ #ifdef __cplusplus
456
+ }
457
+ #endif
458
+ /* *INDENT-ON*/
459
+
460
+ #endif /* FORM_H */
my_container_sandbox/workspace/anaconda3/include/itcl2TclOO.h ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ #ifndef _TCLINT
3
+ typedef void (ProcErrorProc)(Tcl_Interp *interp, Tcl_Obj *procNameObj);
4
+ #endif
5
+
6
+ #ifndef TCL_OO_INTERNAL_H
7
+ typedef int (TclOO_PreCallProc)(ClientData clientData, Tcl_Interp *interp,
8
+ Tcl_ObjectContext context, Tcl_CallFrame *framePtr, int *isFinished);
9
+ typedef int (TclOO_PostCallProc)(ClientData clientData, Tcl_Interp *interp,
10
+ Tcl_ObjectContext context, Tcl_Namespace *namespacePtr, int result);
11
+ #endif
12
+
13
+ MODULE_SCOPE int Itcl_NRRunCallbacks(Tcl_Interp *interp, void *rootPtr);
14
+ MODULE_SCOPE void * Itcl_GetCurrentCallbackPtr(Tcl_Interp *interp);
15
+ MODULE_SCOPE Tcl_Method Itcl_NewProcClassMethod(Tcl_Interp *interp, Tcl_Class clsPtr,
16
+ TclOO_PreCallProc *preCallPtr, TclOO_PostCallProc *postCallPtr,
17
+ ProcErrorProc *errProc, ClientData clientData, Tcl_Obj *nameObj,
18
+ Tcl_Obj *argsObj, Tcl_Obj *bodyObj, ClientData *clientData2);
19
+ MODULE_SCOPE Tcl_Method Itcl_NewProcMethod(Tcl_Interp *interp, Tcl_Object oPtr,
20
+ TclOO_PreCallProc *preCallPtr, TclOO_PostCallProc *postCallPtr,
21
+ ProcErrorProc *errProc, ClientData clientData, Tcl_Obj *nameObj,
22
+ Tcl_Obj *argsObj, Tcl_Obj *bodyObj, ClientData *clientData2);
23
+ MODULE_SCOPE int Itcl_PublicObjectCmd(ClientData clientData, Tcl_Interp *interp,
24
+ Tcl_Class clsPtr, int objc, Tcl_Obj *const *objv);
25
+ MODULE_SCOPE Tcl_Method Itcl_NewForwardClassMethod(Tcl_Interp *interp,
26
+ Tcl_Class clsPtr, int flags, Tcl_Obj *nameObj, Tcl_Obj *prefixObj);
27
+ MODULE_SCOPE int Itcl_SelfCmd(ClientData clientData, Tcl_Interp *interp,
28
+ int objc, Tcl_Obj *const *objv);
29
+ MODULE_SCOPE int Itcl_IsMethodCallFrame(Tcl_Interp *interp);
30
+ MODULE_SCOPE int Itcl_InvokeEnsembleMethod(Tcl_Interp *interp, Tcl_Namespace *nsPtr,
31
+ Tcl_Obj *namePtr, Tcl_Proc *procPtr, int objc, Tcl_Obj *const *objv);
32
+ MODULE_SCOPE int Itcl_InvokeProcedureMethod(ClientData clientData, Tcl_Interp *interp,
33
+ int objc, Tcl_Obj *const *objv);
my_container_sandbox/workspace/anaconda3/include/itclDecls.h ADDED
@@ -0,0 +1,211 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * This file is (mostly) automatically generated from itcl.decls.
3
+ */
4
+
5
+ #ifndef _ITCLDECLS
6
+ #define _ITCLDECLS
7
+
8
+ #if defined(USE_ITCL_STUBS)
9
+
10
+ ITCLAPI const char *Itcl_InitStubs(
11
+ Tcl_Interp *, const char *version, int exact);
12
+ #else
13
+
14
+ #define Itcl_InitStubs(interp, version, exact) Tcl_PkgRequireEx(interp,"itcl",version,exact,NULL)
15
+
16
+ #endif
17
+
18
+
19
+ /* !BEGIN!: Do not edit below this line. */
20
+
21
+ #define ITCL_STUBS_EPOCH 0
22
+ #define ITCL_STUBS_REVISION 152
23
+
24
+ #ifdef __cplusplus
25
+ extern "C" {
26
+ #endif
27
+
28
+ /*
29
+ * Exported function declarations:
30
+ */
31
+
32
+ /* Slot 0 is reserved */
33
+ /* Slot 1 is reserved */
34
+ /* 2 */
35
+ ITCLAPI int Itcl_RegisterC(Tcl_Interp *interp, const char *name,
36
+ Tcl_CmdProc *proc, ClientData clientData,
37
+ Tcl_CmdDeleteProc *deleteProc);
38
+ /* 3 */
39
+ ITCLAPI int Itcl_RegisterObjC(Tcl_Interp *interp,
40
+ const char *name, Tcl_ObjCmdProc *proc,
41
+ ClientData clientData,
42
+ Tcl_CmdDeleteProc *deleteProc);
43
+ /* 4 */
44
+ ITCLAPI int Itcl_FindC(Tcl_Interp *interp, const char *name,
45
+ Tcl_CmdProc **argProcPtr,
46
+ Tcl_ObjCmdProc **objProcPtr,
47
+ ClientData *cDataPtr);
48
+ /* 5 */
49
+ ITCLAPI void Itcl_InitStack(Itcl_Stack *stack);
50
+ /* 6 */
51
+ ITCLAPI void Itcl_DeleteStack(Itcl_Stack *stack);
52
+ /* 7 */
53
+ ITCLAPI void Itcl_PushStack(ClientData cdata, Itcl_Stack *stack);
54
+ /* 8 */
55
+ ITCLAPI ClientData Itcl_PopStack(Itcl_Stack *stack);
56
+ /* 9 */
57
+ ITCLAPI ClientData Itcl_PeekStack(Itcl_Stack *stack);
58
+ /* 10 */
59
+ ITCLAPI ClientData Itcl_GetStackValue(Itcl_Stack *stack, int pos);
60
+ /* 11 */
61
+ ITCLAPI void Itcl_InitList(Itcl_List *listPtr);
62
+ /* 12 */
63
+ ITCLAPI void Itcl_DeleteList(Itcl_List *listPtr);
64
+ /* 13 */
65
+ ITCLAPI Itcl_ListElem * Itcl_CreateListElem(Itcl_List *listPtr);
66
+ /* 14 */
67
+ ITCLAPI Itcl_ListElem * Itcl_DeleteListElem(Itcl_ListElem *elemPtr);
68
+ /* 15 */
69
+ ITCLAPI Itcl_ListElem * Itcl_InsertList(Itcl_List *listPtr, ClientData val);
70
+ /* 16 */
71
+ ITCLAPI Itcl_ListElem * Itcl_InsertListElem(Itcl_ListElem *pos,
72
+ ClientData val);
73
+ /* 17 */
74
+ ITCLAPI Itcl_ListElem * Itcl_AppendList(Itcl_List *listPtr, ClientData val);
75
+ /* 18 */
76
+ ITCLAPI Itcl_ListElem * Itcl_AppendListElem(Itcl_ListElem *pos,
77
+ ClientData val);
78
+ /* 19 */
79
+ ITCLAPI void Itcl_SetListValue(Itcl_ListElem *elemPtr,
80
+ ClientData val);
81
+ /* 20 */
82
+ ITCLAPI void Itcl_EventuallyFree(ClientData cdata,
83
+ Tcl_FreeProc *fproc);
84
+ /* 21 */
85
+ ITCLAPI void Itcl_PreserveData(ClientData cdata);
86
+ /* 22 */
87
+ ITCLAPI void Itcl_ReleaseData(ClientData cdata);
88
+ /* 23 */
89
+ ITCLAPI Itcl_InterpState Itcl_SaveInterpState(Tcl_Interp *interp, int status);
90
+ /* 24 */
91
+ ITCLAPI int Itcl_RestoreInterpState(Tcl_Interp *interp,
92
+ Itcl_InterpState state);
93
+ /* 25 */
94
+ ITCLAPI void Itcl_DiscardInterpState(Itcl_InterpState state);
95
+ /* 26 */
96
+ ITCLAPI void * Itcl_Alloc(size_t size);
97
+ /* 27 */
98
+ ITCLAPI void Itcl_Free(void *ptr);
99
+
100
+ typedef struct {
101
+ const struct ItclIntStubs *itclIntStubs;
102
+ } ItclStubHooks;
103
+
104
+ typedef struct ItclStubs {
105
+ int magic;
106
+ int epoch;
107
+ int revision;
108
+ const ItclStubHooks *hooks;
109
+
110
+ void (*reserved0)(void);
111
+ void (*reserved1)(void);
112
+ int (*itcl_RegisterC) (Tcl_Interp *interp, const char *name, Tcl_CmdProc *proc, ClientData clientData, Tcl_CmdDeleteProc *deleteProc); /* 2 */
113
+ int (*itcl_RegisterObjC) (Tcl_Interp *interp, const char *name, Tcl_ObjCmdProc *proc, ClientData clientData, Tcl_CmdDeleteProc *deleteProc); /* 3 */
114
+ int (*itcl_FindC) (Tcl_Interp *interp, const char *name, Tcl_CmdProc **argProcPtr, Tcl_ObjCmdProc **objProcPtr, ClientData *cDataPtr); /* 4 */
115
+ void (*itcl_InitStack) (Itcl_Stack *stack); /* 5 */
116
+ void (*itcl_DeleteStack) (Itcl_Stack *stack); /* 6 */
117
+ void (*itcl_PushStack) (ClientData cdata, Itcl_Stack *stack); /* 7 */
118
+ ClientData (*itcl_PopStack) (Itcl_Stack *stack); /* 8 */
119
+ ClientData (*itcl_PeekStack) (Itcl_Stack *stack); /* 9 */
120
+ ClientData (*itcl_GetStackValue) (Itcl_Stack *stack, int pos); /* 10 */
121
+ void (*itcl_InitList) (Itcl_List *listPtr); /* 11 */
122
+ void (*itcl_DeleteList) (Itcl_List *listPtr); /* 12 */
123
+ Itcl_ListElem * (*itcl_CreateListElem) (Itcl_List *listPtr); /* 13 */
124
+ Itcl_ListElem * (*itcl_DeleteListElem) (Itcl_ListElem *elemPtr); /* 14 */
125
+ Itcl_ListElem * (*itcl_InsertList) (Itcl_List *listPtr, ClientData val); /* 15 */
126
+ Itcl_ListElem * (*itcl_InsertListElem) (Itcl_ListElem *pos, ClientData val); /* 16 */
127
+ Itcl_ListElem * (*itcl_AppendList) (Itcl_List *listPtr, ClientData val); /* 17 */
128
+ Itcl_ListElem * (*itcl_AppendListElem) (Itcl_ListElem *pos, ClientData val); /* 18 */
129
+ void (*itcl_SetListValue) (Itcl_ListElem *elemPtr, ClientData val); /* 19 */
130
+ void (*itcl_EventuallyFree) (ClientData cdata, Tcl_FreeProc *fproc); /* 20 */
131
+ void (*itcl_PreserveData) (ClientData cdata); /* 21 */
132
+ void (*itcl_ReleaseData) (ClientData cdata); /* 22 */
133
+ Itcl_InterpState (*itcl_SaveInterpState) (Tcl_Interp *interp, int status); /* 23 */
134
+ int (*itcl_RestoreInterpState) (Tcl_Interp *interp, Itcl_InterpState state); /* 24 */
135
+ void (*itcl_DiscardInterpState) (Itcl_InterpState state); /* 25 */
136
+ void * (*itcl_Alloc) (size_t size); /* 26 */
137
+ void (*itcl_Free) (void *ptr); /* 27 */
138
+ } ItclStubs;
139
+
140
+ extern const ItclStubs *itclStubsPtr;
141
+
142
+ #ifdef __cplusplus
143
+ }
144
+ #endif
145
+
146
+ #if defined(USE_ITCL_STUBS)
147
+
148
+ /*
149
+ * Inline function declarations:
150
+ */
151
+
152
+ /* Slot 0 is reserved */
153
+ /* Slot 1 is reserved */
154
+ #define Itcl_RegisterC \
155
+ (itclStubsPtr->itcl_RegisterC) /* 2 */
156
+ #define Itcl_RegisterObjC \
157
+ (itclStubsPtr->itcl_RegisterObjC) /* 3 */
158
+ #define Itcl_FindC \
159
+ (itclStubsPtr->itcl_FindC) /* 4 */
160
+ #define Itcl_InitStack \
161
+ (itclStubsPtr->itcl_InitStack) /* 5 */
162
+ #define Itcl_DeleteStack \
163
+ (itclStubsPtr->itcl_DeleteStack) /* 6 */
164
+ #define Itcl_PushStack \
165
+ (itclStubsPtr->itcl_PushStack) /* 7 */
166
+ #define Itcl_PopStack \
167
+ (itclStubsPtr->itcl_PopStack) /* 8 */
168
+ #define Itcl_PeekStack \
169
+ (itclStubsPtr->itcl_PeekStack) /* 9 */
170
+ #define Itcl_GetStackValue \
171
+ (itclStubsPtr->itcl_GetStackValue) /* 10 */
172
+ #define Itcl_InitList \
173
+ (itclStubsPtr->itcl_InitList) /* 11 */
174
+ #define Itcl_DeleteList \
175
+ (itclStubsPtr->itcl_DeleteList) /* 12 */
176
+ #define Itcl_CreateListElem \
177
+ (itclStubsPtr->itcl_CreateListElem) /* 13 */
178
+ #define Itcl_DeleteListElem \
179
+ (itclStubsPtr->itcl_DeleteListElem) /* 14 */
180
+ #define Itcl_InsertList \
181
+ (itclStubsPtr->itcl_InsertList) /* 15 */
182
+ #define Itcl_InsertListElem \
183
+ (itclStubsPtr->itcl_InsertListElem) /* 16 */
184
+ #define Itcl_AppendList \
185
+ (itclStubsPtr->itcl_AppendList) /* 17 */
186
+ #define Itcl_AppendListElem \
187
+ (itclStubsPtr->itcl_AppendListElem) /* 18 */
188
+ #define Itcl_SetListValue \
189
+ (itclStubsPtr->itcl_SetListValue) /* 19 */
190
+ #define Itcl_EventuallyFree \
191
+ (itclStubsPtr->itcl_EventuallyFree) /* 20 */
192
+ #define Itcl_PreserveData \
193
+ (itclStubsPtr->itcl_PreserveData) /* 21 */
194
+ #define Itcl_ReleaseData \
195
+ (itclStubsPtr->itcl_ReleaseData) /* 22 */
196
+ #define Itcl_SaveInterpState \
197
+ (itclStubsPtr->itcl_SaveInterpState) /* 23 */
198
+ #define Itcl_RestoreInterpState \
199
+ (itclStubsPtr->itcl_RestoreInterpState) /* 24 */
200
+ #define Itcl_DiscardInterpState \
201
+ (itclStubsPtr->itcl_DiscardInterpState) /* 25 */
202
+ #define Itcl_Alloc \
203
+ (itclStubsPtr->itcl_Alloc) /* 26 */
204
+ #define Itcl_Free \
205
+ (itclStubsPtr->itcl_Free) /* 27 */
206
+
207
+ #endif /* defined(USE_ITCL_STUBS) */
208
+
209
+ /* !END!: Do not edit above this line. */
210
+
211
+ #endif /* _ITCLDECLS */
my_container_sandbox/workspace/anaconda3/include/itclInt.h ADDED
@@ -0,0 +1,843 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * itclInt.h --
3
+ *
4
+ * This file contains internal definitions for the C-implemented part of a
5
+ * Itcl
6
+ *
7
+ * Copyright (c) 2007 by Arnulf P. Wiedemann
8
+ *
9
+ * See the file "license.terms" for information on usage and redistribution of
10
+ * this file, and for a DISCLAIMER OF ALL WARRANTIES.
11
+ */
12
+
13
+ #ifdef HAVE_UNISTD_H
14
+ #include <unistd.h>
15
+ #endif
16
+ #ifdef HAVE_STDINT_H
17
+ #include <stdint.h>
18
+ #endif
19
+
20
+ /*
21
+ * Used to tag functions that are only to be visible within the module being
22
+ * built and not outside it (where this is supported by the linker).
23
+ */
24
+
25
+ #ifndef MODULE_SCOPE
26
+ # ifdef __cplusplus
27
+ # define MODULE_SCOPE extern "C"
28
+ # else
29
+ # define MODULE_SCOPE extern
30
+ # endif
31
+ #endif
32
+
33
+ #include <string.h>
34
+ #include <ctype.h>
35
+ #include <tclOO.h>
36
+ #include "itcl.h"
37
+ #include "itclMigrate2TclCore.h"
38
+ #include "itclTclIntStubsFcn.h"
39
+
40
+ /*
41
+ * Utility macros: STRINGIFY takes an argument and wraps it in "" (double
42
+ * quotation marks).
43
+ */
44
+
45
+ #ifndef STRINGIFY
46
+ # define STRINGIFY(x) STRINGIFY1(x)
47
+ # define STRINGIFY1(x) #x
48
+ #endif
49
+
50
+ /*
51
+ * MSVC 8.0 started to mark many standard C library functions depreciated
52
+ * including the *printf family and others. Tell it to shut up.
53
+ * (_MSC_VER is 1200 for VC6, 1300 or 1310 for vc7.net, 1400 for 8.0)
54
+ */
55
+ #if defined(_MSC_VER)
56
+ # pragma warning(disable:4244)
57
+ # if _MSC_VER >= 1400
58
+ # pragma warning(disable:4267)
59
+ # pragma warning(disable:4996)
60
+ # endif
61
+ #endif
62
+
63
+ #ifndef JOIN
64
+ # define JOIN(a,b) JOIN1(a,b)
65
+ # define JOIN1(a,b) a##b
66
+ #endif
67
+
68
+ #ifndef TCL_UNUSED
69
+ # if defined(__cplusplus)
70
+ # define TCL_UNUSED(T) T
71
+ # else
72
+ # define TCL_UNUSED(T) T JOIN(dummy, __LINE__)
73
+ # endif
74
+ #endif
75
+
76
+ /*
77
+ * Since the Tcl/Tk distribution doesn't perform any asserts,
78
+ * dynamic loading can fail to find the __assert function.
79
+ * As a workaround, we'll include our own.
80
+ */
81
+
82
+ #undef assert
83
+ #if defined(NDEBUG) && !defined(DEBUG)
84
+ #define assert(EX) ((void)0)
85
+ #else /* !NDEBUG || DEBUG */
86
+ #define assert(EX) (void)((EX) || (Itcl_Assert(STRINGIFY(EX), __FILE__, __LINE__), 0))
87
+ #endif
88
+
89
+ #define ITCL_INTERP_DATA "itcl_data"
90
+ #define ITCL_TK_VERSION "8.6"
91
+
92
+ /*
93
+ * Convenience macros for iterating through hash tables. FOREACH_HASH_DECLS
94
+ * sets up the declarations needed for the main macro, FOREACH_HASH, which
95
+ * does the actual iteration. FOREACH_HASH_VALUE is a restricted version that
96
+ * only iterates over values.
97
+ */
98
+
99
+ #define FOREACH_HASH_DECLS \
100
+ Tcl_HashEntry *hPtr;Tcl_HashSearch search
101
+ #define FOREACH_HASH(key,val,tablePtr) \
102
+ for(hPtr=Tcl_FirstHashEntry((tablePtr),&search); hPtr!=NULL ? \
103
+ (*(void **)&(key)=Tcl_GetHashKey((tablePtr),hPtr),\
104
+ *(void **)&(val)=Tcl_GetHashValue(hPtr),1):0; hPtr=Tcl_NextHashEntry(&search))
105
+ #define FOREACH_HASH_VALUE(val,tablePtr) \
106
+ for(hPtr=Tcl_FirstHashEntry((tablePtr),&search); hPtr!=NULL ? \
107
+ (*(void **)&(val)=Tcl_GetHashValue(hPtr),1):0;hPtr=Tcl_NextHashEntry(&search))
108
+
109
+ /*
110
+ * What sort of size of things we like to allocate.
111
+ */
112
+
113
+ #define ALLOC_CHUNK 8
114
+
115
+ #define ITCL_INT_NAMESPACE ITCL_NAMESPACE"::internal"
116
+ #define ITCL_INTDICTS_NAMESPACE ITCL_INT_NAMESPACE"::dicts"
117
+ #define ITCL_VARIABLES_NAMESPACE ITCL_INT_NAMESPACE"::variables"
118
+ #define ITCL_COMMANDS_NAMESPACE ITCL_INT_NAMESPACE"::commands"
119
+
120
+ typedef struct ItclFoundation {
121
+ Itcl_Stack methodCallStack;
122
+ Tcl_Command dispatchCommand;
123
+ } ItclFoundation;
124
+
125
+ typedef struct ItclArgList {
126
+ struct ItclArgList *nextPtr; /* pointer to next argument */
127
+ Tcl_Obj *namePtr; /* name of the argument */
128
+ Tcl_Obj *defaultValuePtr; /* default value or NULL if none */
129
+ } ItclArgList;
130
+
131
+ /*
132
+ * Common info for managing all known objects.
133
+ * Each interpreter has one of these data structures stored as
134
+ * clientData in the "itcl" namespace. It is also accessible
135
+ * as associated data via the key ITCL_INTERP_DATA.
136
+ */
137
+ struct ItclClass;
138
+ struct ItclObject;
139
+ struct ItclMemberFunc;
140
+ struct EnsembleInfo;
141
+ struct ItclDelegatedOption;
142
+ struct ItclDelegatedFunction;
143
+
144
+ typedef struct ItclObjectInfo {
145
+ Tcl_Interp *interp; /* interpreter that manages this info */
146
+ Tcl_HashTable objects; /* list of all known objects key is
147
+ * ioPtr */
148
+ Tcl_HashTable objectCmds; /* list of known objects using accessCmd */
149
+ Tcl_HashTable unused5; /* list of known objects using namePtr */
150
+ Tcl_HashTable classes; /* list of all known classes,
151
+ * key is iclsPtr */
152
+ Tcl_HashTable nameClasses; /* maps from fullNamePtr to iclsPtr */
153
+ Tcl_HashTable namespaceClasses; /* maps from nsPtr to iclsPtr */
154
+ Tcl_HashTable procMethods; /* maps from procPtr to mFunc */
155
+ Tcl_HashTable instances; /* maps from instanceNumber to ioPtr */
156
+ Tcl_HashTable unused8; /* maps from ioPtr to instanceNumber */
157
+ Tcl_HashTable frameContext; /* maps frame to context stack */
158
+ Tcl_HashTable classTypes; /* maps from class type i.e. "widget"
159
+ * to define value i.e. ITCL_WIDGET */
160
+ int protection; /* protection level currently in effect */
161
+ int useOldResolvers; /* whether to use the "old" style
162
+ * resolvers or the CallFrame resolvers */
163
+ Itcl_Stack clsStack; /* stack of class definitions currently
164
+ * being parsed */
165
+ Itcl_Stack unused; /* Removed */
166
+ Itcl_Stack unused6; /* obsolete field */
167
+ struct ItclObject *currIoPtr; /* object currently being constructed
168
+ * set only during calling of constructors
169
+ * otherwise NULL */
170
+ Tcl_ObjectMetadataType *class_meta_type;
171
+ /* type for getting the Itcl class info
172
+ * from a TclOO Tcl_Object */
173
+ const Tcl_ObjectMetadataType *object_meta_type;
174
+ /* type for getting the Itcl object info
175
+ * from a TclOO Tcl_Object */
176
+ Tcl_Object clazzObjectPtr; /* the root object of Itcl */
177
+ Tcl_Class clazzClassPtr; /* the root class of Itcl */
178
+ struct EnsembleInfo *ensembleInfo;
179
+ struct ItclClass *currContextIclsPtr;
180
+ /* context class for delegated option
181
+ * handling */
182
+ int currClassFlags; /* flags for the class just in creation */
183
+ int buildingWidget; /* set if in construction of a widget */
184
+ int unparsedObjc; /* number options not parsed by
185
+ ItclExtendedConfigure/-Cget function */
186
+ Tcl_Obj **unparsedObjv; /* options not parsed by
187
+ ItclExtendedConfigure/-Cget function */
188
+ int functionFlags; /* used for creating of ItclMemberCode */
189
+ int unused7;
190
+ struct ItclDelegatedOption *currIdoPtr;
191
+ /* the current delegated option info */
192
+ int inOptionHandling; /* used to indicate for type/widget ...
193
+ * that there is an option processing
194
+ * and methods are allowed to be called */
195
+ /* these are the Tcl_Obj Ptrs for the clazz unknown procedure */
196
+ /* need to store them to be able to free them at the end */
197
+ int itclWidgetInitted; /* set to 1 if itclWidget.tcl has already
198
+ * been called
199
+ */
200
+ int itclHullCmdsInitted; /* set to 1 if itclHullCmds.tcl has already
201
+ * been called
202
+ */
203
+ Tcl_Obj *unused2;
204
+ Tcl_Obj *unused3;
205
+ Tcl_Obj *unused4;
206
+ Tcl_Obj *infoVarsPtr;
207
+ Tcl_Obj *unused9;
208
+ Tcl_Obj *infoVars4Ptr;
209
+ Tcl_Obj *typeDestructorArgumentPtr;
210
+ struct ItclObject *lastIoPtr; /* last object constructed */
211
+ Tcl_Command infoCmd;
212
+ } ItclObjectInfo;
213
+
214
+ typedef struct EnsembleInfo {
215
+ Tcl_HashTable ensembles; /* list of all known ensembles */
216
+ Tcl_HashTable subEnsembles; /* list of all known subensembles */
217
+ int numEnsembles;
218
+ Tcl_Namespace *ensembleNsPtr;
219
+ } EnsembleInfo;
220
+ /*
221
+ * Representation for each [incr Tcl] class.
222
+ */
223
+ #define ITCL_CLASS 0x1
224
+ #define ITCL_TYPE 0x2
225
+ #define ITCL_WIDGET 0x4
226
+ #define ITCL_WIDGETADAPTOR 0x8
227
+ #define ITCL_ECLASS 0x10
228
+ #define ITCL_NWIDGET 0x20
229
+ #define ITCL_WIDGET_FRAME 0x40
230
+ #define ITCL_WIDGET_LABEL_FRAME 0x80
231
+ #define ITCL_WIDGET_TOPLEVEL 0x100
232
+ #define ITCL_WIDGET_TTK_FRAME 0x200
233
+ #define ITCL_WIDGET_TTK_LABEL_FRAME 0x400
234
+ #define ITCL_WIDGET_TTK_TOPLEVEL 0x800
235
+ #define ITCL_CLASS_IS_DELETED 0x1000
236
+ #define ITCL_CLASS_IS_DESTROYED 0x2000
237
+ #define ITCL_CLASS_NS_IS_DESTROYED 0x4000
238
+ #define ITCL_CLASS_IS_RENAMED 0x8000 /* unused */
239
+ #define ITCL_CLASS_IS_FREED 0x10000
240
+ #define ITCL_CLASS_DERIVED_RELEASED 0x20000
241
+ #define ITCL_CLASS_NS_TEARDOWN 0x40000
242
+ #define ITCL_CLASS_NO_VARNS_DELETE 0x80000
243
+ #define ITCL_CLASS_SHOULD_VARNS_DELETE 0x100000
244
+ #define ITCL_CLASS_DESTRUCTOR_CALLED 0x400000
245
+
246
+
247
+ typedef struct ItclClass {
248
+ Tcl_Obj *namePtr; /* class name */
249
+ Tcl_Obj *fullNamePtr; /* fully qualified class name */
250
+ Tcl_Interp *interp; /* interpreter that manages this info */
251
+ Tcl_Namespace *nsPtr; /* namespace representing class scope */
252
+ Tcl_Command accessCmd; /* access command for creating instances */
253
+ Tcl_Command thisCmd; /* needed for deletion of class */
254
+
255
+ struct ItclObjectInfo *infoPtr;
256
+ /* info about all known objects
257
+ * and other stuff like stacks */
258
+ Itcl_List bases; /* list of base classes */
259
+ Itcl_List derived; /* list of all derived classes */
260
+ Tcl_HashTable heritage; /* table of all base classes. Look up
261
+ * by pointer to class definition. This
262
+ * provides fast lookup for inheritance
263
+ * tests. */
264
+ Tcl_Obj *initCode; /* initialization code for new objs */
265
+ Tcl_HashTable variables; /* definitions for all data members
266
+ in this class. Look up simple string
267
+ names and get back ItclVariable* ptrs */
268
+ Tcl_HashTable options; /* definitions for all option members
269
+ in this class. Look up simple string
270
+ names and get back ItclOption* ptrs */
271
+ Tcl_HashTable components; /* definitions for all component members
272
+ in this class. Look up simple string
273
+ names and get back ItclComponent* ptrs */
274
+ Tcl_HashTable functions; /* definitions for all member functions
275
+ in this class. Look up simple string
276
+ names and get back ItclMemberFunc* ptrs */
277
+ Tcl_HashTable delegatedOptions; /* definitions for all delegated options
278
+ in this class. Look up simple string
279
+ names and get back
280
+ ItclDelegatedOption * ptrs */
281
+ Tcl_HashTable delegatedFunctions; /* definitions for all delegated methods
282
+ or procs in this class. Look up simple
283
+ string names and get back
284
+ ItclDelegatedFunction * ptrs */
285
+ Tcl_HashTable methodVariables; /* definitions for all methodvariable members
286
+ in this class. Look up simple string
287
+ names and get back
288
+ ItclMethodVariable* ptrs */
289
+ int numInstanceVars; /* number of instance vars in variables
290
+ table */
291
+ Tcl_HashTable classCommons; /* used for storing variable namespace
292
+ * string for Tcl_Resolve */
293
+ Tcl_HashTable resolveVars; /* all possible names for variables in
294
+ * this class (e.g., x, foo::x, etc.) */
295
+ Tcl_HashTable resolveCmds; /* all possible names for functions in
296
+ * this class (e.g., x, foo::x, etc.) */
297
+ Tcl_HashTable contextCache; /* cache for function contexts */
298
+ struct ItclMemberFunc *unused2;
299
+ /* the class constructor or NULL */
300
+ struct ItclMemberFunc *unused3;
301
+ /* the class destructor or NULL */
302
+ struct ItclMemberFunc *unused1;
303
+ Tcl_Resolve *resolvePtr;
304
+ Tcl_Obj *widgetClassPtr; /* class name for widget if class is a
305
+ * ::itcl::widget */
306
+ Tcl_Obj *hullTypePtr; /* hulltype name for widget if class is a
307
+ * ::itcl::widget */
308
+ Tcl_Object oPtr; /* TclOO class object */
309
+ Tcl_Class clsPtr; /* TclOO class */
310
+ int numCommons; /* number of commons in this class */
311
+ int numVariables; /* number of variables in this class */
312
+ int numOptions; /* number of options in this class */
313
+ int unique; /* unique number for #auto generation */
314
+ int flags; /* maintains class status */
315
+ int callRefCount; /* prevent deleting of class if refcount>1 */
316
+ Tcl_Obj *typeConstructorPtr; /* initialization for types */
317
+ int destructorHasBeenCalled; /* prevent multiple invocations of destrcutor */
318
+ int refCount;
319
+ } ItclClass;
320
+
321
+ typedef struct ItclHierIter {
322
+ ItclClass *current; /* current position in hierarchy */
323
+ Itcl_Stack stack; /* stack used for traversal */
324
+ } ItclHierIter;
325
+
326
+ #define ITCL_OBJECT_IS_DELETED 0x01
327
+ #define ITCL_OBJECT_IS_DESTRUCTED 0x02
328
+ #define ITCL_OBJECT_IS_DESTROYED 0x04
329
+ #define ITCL_OBJECT_IS_RENAMED 0x08
330
+ #define ITCL_OBJECT_CLASS_DESTRUCTED 0x10
331
+ #define ITCL_TCLOO_OBJECT_IS_DELETED 0x20
332
+ #define ITCL_OBJECT_DESTRUCT_ERROR 0x40
333
+ #define ITCL_OBJECT_SHOULD_VARNS_DELETE 0x80
334
+ #define ITCL_OBJECT_ROOT_METHOD 0x8000
335
+
336
+ /*
337
+ * Representation for each [incr Tcl] object.
338
+ */
339
+ typedef struct ItclObject {
340
+ ItclClass *iclsPtr; /* most-specific class */
341
+ Tcl_Command accessCmd; /* object access command */
342
+
343
+ Tcl_HashTable* constructed; /* temp storage used during construction */
344
+ Tcl_HashTable* destructed; /* temp storage used during destruction */
345
+ Tcl_HashTable objectVariables;
346
+ /* used for storing Tcl_Var entries for
347
+ * variable resolving, key is ivPtr of
348
+ * variable, value is varPtr */
349
+ Tcl_HashTable objectOptions; /* definitions for all option members
350
+ in this object. Look up option namePtr
351
+ names and get back ItclOption* ptrs */
352
+ Tcl_HashTable objectComponents; /* definitions for all component members
353
+ in this object. Look up component namePtr
354
+ names and get back ItclComponent* ptrs */
355
+ Tcl_HashTable objectMethodVariables;
356
+ /* definitions for all methodvariable members
357
+ in this object. Look up methodvariable
358
+ namePtr names and get back
359
+ ItclMethodVariable* ptrs */
360
+ Tcl_HashTable objectDelegatedOptions;
361
+ /* definitions for all delegated option
362
+ members in this object. Look up option
363
+ namePtr names and get back
364
+ ItclOption* ptrs */
365
+ Tcl_HashTable objectDelegatedFunctions;
366
+ /* definitions for all delegated function
367
+ members in this object. Look up function
368
+ namePtr names and get back
369
+ ItclMemberFunc * ptrs */
370
+ Tcl_HashTable contextCache; /* cache for function contexts */
371
+ Tcl_Obj *namePtr;
372
+ Tcl_Obj *origNamePtr; /* the original name before any rename */
373
+ Tcl_Obj *createNamePtr; /* the temp name before any rename
374
+ * mostly used for widgetadaptor
375
+ * because that hijackes the name
376
+ * often when installing the hull */
377
+ Tcl_Interp *interp;
378
+ ItclObjectInfo *infoPtr;
379
+ Tcl_Obj *varNsNamePtr;
380
+ Tcl_Object oPtr; /* the TclOO object */
381
+ Tcl_Resolve *resolvePtr;
382
+ int flags;
383
+ int callRefCount; /* prevent deleting of object if refcount > 1 */
384
+ Tcl_Obj *hullWindowNamePtr; /* the window path name for the hull
385
+ * (before renaming in installhull) */
386
+ int destructorHasBeenCalled; /* is set when the destructor is called
387
+ * to avoid callin destructor twice */
388
+ int noComponentTrace; /* don't call component traces if
389
+ * setting components in DelegationInstall */
390
+ int hadConstructorError; /* needed for multiple calls of CallItclObjectCmd */
391
+ } ItclObject;
392
+
393
+ #define ITCL_IGNORE_ERRS 0x002 /* useful for construction/destruction */
394
+
395
+ typedef struct ItclResolveInfo {
396
+ int flags;
397
+ ItclClass *iclsPtr;
398
+ ItclObject *ioPtr;
399
+ } ItclResolveInfo;
400
+
401
+ #define ITCL_RESOLVE_CLASS 0x01
402
+ #define ITCL_RESOLVE_OBJECT 0x02
403
+
404
+ /*
405
+ * Implementation for any code body in an [incr Tcl] class.
406
+ */
407
+ typedef struct ItclMemberCode {
408
+ int flags; /* flags describing implementation */
409
+ int argcount; /* number of args in arglist */
410
+ int maxargcount; /* max number of args in arglist */
411
+ Tcl_Obj *usagePtr; /* usage string for error messages */
412
+ Tcl_Obj *argumentPtr; /* the function arguments */
413
+ Tcl_Obj *bodyPtr; /* the function body */
414
+ ItclArgList *argListPtr; /* the parsed arguments */
415
+ union {
416
+ Tcl_CmdProc *argCmd; /* (argc,argv) C implementation */
417
+ Tcl_ObjCmdProc *objCmd; /* (objc,objv) C implementation */
418
+ } cfunc;
419
+ ClientData clientData; /* client data for C implementations */
420
+ } ItclMemberCode;
421
+
422
+ /*
423
+ * Flag bits for ItclMemberCode:
424
+ */
425
+ #define ITCL_IMPLEMENT_NONE 0x001 /* no implementation */
426
+ #define ITCL_IMPLEMENT_TCL 0x002 /* Tcl implementation */
427
+ #define ITCL_IMPLEMENT_ARGCMD 0x004 /* (argc,argv) C implementation */
428
+ #define ITCL_IMPLEMENT_OBJCMD 0x008 /* (objc,objv) C implementation */
429
+ #define ITCL_IMPLEMENT_C 0x00c /* either kind of C implementation */
430
+
431
+ #define Itcl_IsMemberCodeImplemented(mcode) \
432
+ (((mcode)->flags & ITCL_IMPLEMENT_NONE) == 0)
433
+
434
+ /*
435
+ * Flag bits for ItclMember: functions and variables
436
+ */
437
+ #define ITCL_COMMON 0x010 /* non-zero => is a "proc" or common
438
+ * variable */
439
+
440
+ /*
441
+ * Flag bits for ItclMember: functions
442
+ */
443
+ #define ITCL_CONSTRUCTOR 0x020 /* non-zero => is a constructor */
444
+ #define ITCL_DESTRUCTOR 0x040 /* non-zero => is a destructor */
445
+ #define ITCL_ARG_SPEC 0x080 /* non-zero => has an argument spec */
446
+ #define ITCL_BODY_SPEC 0x100 /* non-zero => has an body spec */
447
+ #define ITCL_BUILTIN 0x400 /* non-zero => built-in method */
448
+ #define ITCL_COMPONENT 0x800 /* non-zero => component */
449
+ #define ITCL_TYPE_METHOD 0x1000 /* non-zero => typemethod */
450
+ #define ITCL_METHOD 0x2000 /* non-zero => method */
451
+
452
+ /*
453
+ * Flag bits for ItclMember: variables
454
+ */
455
+ #define ITCL_THIS_VAR 0x20 /* non-zero => built-in "this" variable */
456
+ #define ITCL_OPTIONS_VAR 0x40 /* non-zero => built-in "itcl_options"
457
+ * variable */
458
+ #define ITCL_TYPE_VAR 0x80 /* non-zero => built-in "type" variable */
459
+ /* no longer used ??? */
460
+ #define ITCL_SELF_VAR 0x100 /* non-zero => built-in "self" variable */
461
+ #define ITCL_SELFNS_VAR 0x200 /* non-zero => built-in "selfns"
462
+ * variable */
463
+ #define ITCL_WIN_VAR 0x400 /* non-zero => built-in "win" variable */
464
+ #define ITCL_COMPONENT_VAR 0x800 /* non-zero => component variable */
465
+ #define ITCL_HULL_VAR 0x1000 /* non-zero => built-in "itcl_hull"
466
+ * variable */
467
+ #define ITCL_OPTION_READONLY 0x2000 /* non-zero => readonly */
468
+ #define ITCL_VARIABLE 0x4000 /* non-zero => normal variable */
469
+ #define ITCL_TYPE_VARIABLE 0x8000 /* non-zero => typevariable */
470
+ #define ITCL_OPTION_INITTED 0x10000 /* non-zero => option has been initialized */
471
+ #define ITCL_OPTION_COMP_VAR 0x20000 /* variable to collect option components of extendedclass */
472
+
473
+ /*
474
+ * Instance components.
475
+ */
476
+ struct ItclVariable;
477
+ typedef struct ItclComponent {
478
+ Tcl_Obj *namePtr; /* member name */
479
+ struct ItclVariable *ivPtr; /* variable for this component */
480
+ int flags;
481
+ int haveKeptOptions;
482
+ Tcl_HashTable keptOptions; /* table of options to keep */
483
+ } ItclComponent;
484
+
485
+ #define ITCL_COMPONENT_INHERIT 0x01
486
+ #define ITCL_COMPONENT_PUBLIC 0x02
487
+
488
+ typedef struct ItclDelegatedFunction {
489
+ Tcl_Obj *namePtr;
490
+ ItclComponent *icPtr;
491
+ Tcl_Obj *asPtr;
492
+ Tcl_Obj *usingPtr;
493
+ Tcl_HashTable exceptions;
494
+ int flags;
495
+ } ItclDelegatedFunction;
496
+
497
+ /*
498
+ * Representation of member functions in an [incr Tcl] class.
499
+ */
500
+ typedef struct ItclMemberFunc {
501
+ Tcl_Obj* namePtr; /* member name */
502
+ Tcl_Obj* fullNamePtr; /* member name with "class::" qualifier */
503
+ ItclClass* iclsPtr; /* class containing this member */
504
+ int protection; /* protection level */
505
+ int flags; /* flags describing member (see above) */
506
+ ItclObjectInfo *infoPtr;
507
+ ItclMemberCode *codePtr; /* code associated with member */
508
+ Tcl_Command accessCmd; /* Tcl command installed for this function */
509
+ int argcount; /* number of args in arglist */
510
+ int maxargcount; /* max number of args in arglist */
511
+ Tcl_Obj *usagePtr; /* usage string for error messages */
512
+ Tcl_Obj *argumentPtr; /* the function arguments */
513
+ Tcl_Obj *builtinArgumentPtr; /* the function arguments for builtin functions */
514
+ Tcl_Obj *origArgsPtr; /* the argument string of the original definition */
515
+ Tcl_Obj *bodyPtr; /* the function body */
516
+ ItclArgList *argListPtr; /* the parsed arguments */
517
+ ItclClass *declaringClassPtr; /* the class which declared the method/proc */
518
+ ClientData tmPtr; /* TclOO methodPtr */
519
+ ItclDelegatedFunction *idmPtr;
520
+ /* if the function is delegated != NULL */
521
+ } ItclMemberFunc;
522
+
523
+ /*
524
+ * Instance variables.
525
+ */
526
+ typedef struct ItclVariable {
527
+ Tcl_Obj *namePtr; /* member name */
528
+ Tcl_Obj *fullNamePtr; /* member name with "class::" qualifier */
529
+ ItclClass *iclsPtr; /* class containing this member */
530
+ ItclObjectInfo *infoPtr;
531
+ ItclMemberCode *codePtr; /* code associated with member */
532
+ Tcl_Obj *init; /* initial value */
533
+ Tcl_Obj *arrayInitPtr; /* initial value if variable should be array */
534
+ int protection; /* protection level */
535
+ int flags; /* flags describing member (see below) */
536
+ int initted; /* is set when first time initted, to check
537
+ * for example itcl_hull var, which can be only
538
+ * initialized once */
539
+ } ItclVariable;
540
+
541
+
542
+ struct ItclOption;
543
+
544
+ typedef struct ItclDelegatedOption {
545
+ Tcl_Obj *namePtr;
546
+ Tcl_Obj *resourceNamePtr;
547
+ Tcl_Obj *classNamePtr;
548
+ struct ItclOption *ioptPtr; /* the option name or null for "*" */
549
+ ItclComponent *icPtr; /* the component where the delegation goes
550
+ * to */
551
+ Tcl_Obj *asPtr;
552
+ Tcl_HashTable exceptions; /* exceptions from delegation */
553
+ } ItclDelegatedOption;
554
+
555
+ /*
556
+ * Instance options.
557
+ */
558
+ typedef struct ItclOption {
559
+ /* within a class hierarchy there must be only
560
+ * one option with the same name !! */
561
+ Tcl_Obj *namePtr; /* member name */
562
+ Tcl_Obj *fullNamePtr; /* member name with "class::" qualifier */
563
+ Tcl_Obj *resourceNamePtr;
564
+ Tcl_Obj *classNamePtr;
565
+ ItclClass *iclsPtr; /* class containing this member */
566
+ int protection; /* protection level */
567
+ int flags; /* flags describing member (see below) */
568
+ ItclMemberCode *codePtr; /* code associated with member */
569
+ Tcl_Obj *defaultValuePtr; /* initial value */
570
+ Tcl_Obj *cgetMethodPtr;
571
+ Tcl_Obj *cgetMethodVarPtr;
572
+ Tcl_Obj *configureMethodPtr;
573
+ Tcl_Obj *configureMethodVarPtr;
574
+ Tcl_Obj *validateMethodPtr;
575
+ Tcl_Obj *validateMethodVarPtr;
576
+ ItclDelegatedOption *idoPtr;
577
+ /* if the option is delegated != NULL */
578
+ } ItclOption;
579
+
580
+ /*
581
+ * Instance methodvariables.
582
+ */
583
+ typedef struct ItclMethodVariable {
584
+ Tcl_Obj *namePtr; /* member name */
585
+ Tcl_Obj *fullNamePtr; /* member name with "class::" qualifier */
586
+ ItclClass *iclsPtr; /* class containing this member */
587
+ int protection; /* protection level */
588
+ int flags; /* flags describing member (see below) */
589
+ Tcl_Obj *defaultValuePtr;
590
+ Tcl_Obj *callbackPtr;
591
+ } ItclMethodVariable;
592
+
593
+ #define VAR_TYPE_VARIABLE 1
594
+ #define VAR_TYPE_COMMON 2
595
+
596
+ #define CMD_TYPE_METHOD 1
597
+ #define CMD_TYPE_PROC 2
598
+
599
+ typedef struct ItclClassCmdInfo {
600
+ int type;
601
+ int protection;
602
+ int cmdNum;
603
+ Tcl_Namespace *nsPtr;
604
+ Tcl_Namespace *declaringNsPtr;
605
+ } ItclClassCmdInfo;
606
+
607
+ /*
608
+ * Instance variable lookup entry.
609
+ */
610
+ typedef struct ItclVarLookup {
611
+ ItclVariable* ivPtr; /* variable definition */
612
+ int usage; /* number of uses for this record */
613
+ int accessible; /* non-zero => accessible from class with
614
+ * this lookup record in its resolveVars */
615
+ char *leastQualName; /* simplist name for this variable, with
616
+ * the fewest qualifiers. This string is
617
+ * taken from the resolveVars table, so
618
+ * it shouldn't be freed. */
619
+ int varNum;
620
+ Tcl_Var varPtr;
621
+ } ItclVarLookup;
622
+
623
+ /*
624
+ * Instance command lookup entry.
625
+ */
626
+ typedef struct ItclCmdLookup {
627
+ ItclMemberFunc* imPtr; /* function definition */
628
+ int cmdNum;
629
+ ItclClassCmdInfo *classCmdInfoPtr;
630
+ Tcl_Command cmdPtr;
631
+ } ItclCmdLookup;
632
+
633
+ typedef struct ItclCallContext {
634
+ int objectFlags;
635
+ Tcl_Namespace *nsPtr;
636
+ ItclObject *ioPtr;
637
+ ItclMemberFunc *imPtr;
638
+ int refCount;
639
+ } ItclCallContext;
640
+
641
+ /*
642
+ * The macro below is used to modify a "char" value (e.g. by casting
643
+ * it to an unsigned character) so that it can be used safely with
644
+ * macros such as isspace.
645
+ */
646
+
647
+ #define UCHAR(c) ((unsigned char) (c))
648
+ /*
649
+ * Macros used to cast between pointers and integers (e.g. when storing an int
650
+ * in ClientData), on 64-bit architectures they avoid gcc warning about "cast
651
+ * to/from pointer from/to integer of different size".
652
+ */
653
+
654
+ #if !defined(INT2PTR) && !defined(PTR2INT)
655
+ # if defined(HAVE_INTPTR_T) || defined(intptr_t)
656
+ # define INT2PTR(p) ((void*)(intptr_t)(p))
657
+ # define PTR2INT(p) ((int)(intptr_t)(p))
658
+ # else
659
+ # define INT2PTR(p) ((void*)(p))
660
+ # define PTR2INT(p) ((int)(p))
661
+ # endif
662
+ #endif
663
+
664
+ #ifdef ITCL_DEBUG
665
+ MODULE_SCOPE int _itcl_debug_level;
666
+ MODULE_SCOPE void ItclShowArgs(int level, const char *str, int objc,
667
+ Tcl_Obj * const* objv);
668
+ #else
669
+ #define ItclShowArgs(a,b,c,d) do {(void)(c);(void)(d);} while(0)
670
+ #endif
671
+
672
+ MODULE_SCOPE Tcl_ObjCmdProc ItclCallCCommand;
673
+ MODULE_SCOPE Tcl_ObjCmdProc ItclObjectUnknownCommand;
674
+ MODULE_SCOPE int ItclCheckCallProc(ClientData clientData, Tcl_Interp *interp,
675
+ Tcl_ObjectContext contextPtr, Tcl_CallFrame *framePtr, int *isFinished);
676
+
677
+ MODULE_SCOPE void ItclPreserveClass(ItclClass *iclsPtr);
678
+ MODULE_SCOPE void ItclReleaseClass(ClientData iclsPtr);
679
+
680
+ MODULE_SCOPE ItclFoundation *ItclGetFoundation(Tcl_Interp *interp);
681
+ MODULE_SCOPE Tcl_ObjCmdProc ItclClassCommandDispatcher;
682
+ MODULE_SCOPE Tcl_Command Itcl_CmdAliasProc(Tcl_Interp *interp,
683
+ Tcl_Namespace *nsPtr, const char *cmdName, ClientData clientData);
684
+ MODULE_SCOPE Tcl_Var Itcl_VarAliasProc(Tcl_Interp *interp,
685
+ Tcl_Namespace *nsPtr, const char *VarName, ClientData clientData);
686
+ MODULE_SCOPE int ItclIsClass(Tcl_Interp *interp, Tcl_Command cmd);
687
+ MODULE_SCOPE int ItclCheckCallMethod(ClientData clientData, Tcl_Interp *interp,
688
+ Tcl_ObjectContext contextPtr, Tcl_CallFrame *framePtr, int *isFinished);
689
+ MODULE_SCOPE int ItclAfterCallMethod(ClientData clientData, Tcl_Interp *interp,
690
+ Tcl_ObjectContext contextPtr, Tcl_Namespace *nsPtr, int result);
691
+ MODULE_SCOPE void ItclReportObjectUsage(Tcl_Interp *interp,
692
+ ItclObject *contextIoPtr, Tcl_Namespace *callerNsPtr,
693
+ Tcl_Namespace *contextNsPtr);
694
+ MODULE_SCOPE int ItclMapMethodNameProc(Tcl_Interp *interp, Tcl_Object oPtr,
695
+ Tcl_Class *startClsPtr, Tcl_Obj *methodObj);
696
+ MODULE_SCOPE int ItclCreateArgList(Tcl_Interp *interp, const char *str,
697
+ int *argcPtr, int *maxArgcPtr, Tcl_Obj **usagePtr,
698
+ ItclArgList **arglistPtrPtr, ItclMemberFunc *imPtr,
699
+ const char *commandName);
700
+ MODULE_SCOPE int ItclObjectCmd(ClientData clientData, Tcl_Interp *interp,
701
+ Tcl_Object oPtr, Tcl_Class clsPtr, int objc, Tcl_Obj *const *objv);
702
+ MODULE_SCOPE int ItclCreateObject (Tcl_Interp *interp, const char* name,
703
+ ItclClass *iclsPtr, int objc, Tcl_Obj *const objv[]);
704
+ MODULE_SCOPE void ItclDeleteObjectVariablesNamespace(Tcl_Interp *interp,
705
+ ItclObject *ioPtr);
706
+ MODULE_SCOPE void ItclDeleteClassVariablesNamespace(Tcl_Interp *interp,
707
+ ItclClass *iclsPtr);
708
+ MODULE_SCOPE int ItclInfoInit(Tcl_Interp *interp, ItclObjectInfo *infoPtr);
709
+
710
+ MODULE_SCOPE Tcl_HashEntry *ItclResolveVarEntry(
711
+ ItclClass* iclsPtr, const char *varName);
712
+
713
+ struct Tcl_ResolvedVarInfo;
714
+ MODULE_SCOPE int Itcl_ClassCmdResolver(Tcl_Interp *interp, const char* name,
715
+ Tcl_Namespace *nsPtr, int flags, Tcl_Command *rPtr);
716
+ MODULE_SCOPE int Itcl_ClassVarResolver(Tcl_Interp *interp, const char* name,
717
+ Tcl_Namespace *nsPtr, int flags, Tcl_Var *rPtr);
718
+ MODULE_SCOPE int Itcl_ClassCompiledVarResolver(Tcl_Interp *interp,
719
+ const char* name, int length, Tcl_Namespace *nsPtr,
720
+ struct Tcl_ResolvedVarInfo **rPtr);
721
+ MODULE_SCOPE int Itcl_ClassCmdResolver2(Tcl_Interp *interp, const char* name,
722
+ Tcl_Namespace *nsPtr, int flags, Tcl_Command *rPtr);
723
+ MODULE_SCOPE int Itcl_ClassVarResolver2(Tcl_Interp *interp, const char* name,
724
+ Tcl_Namespace *nsPtr, int flags, Tcl_Var *rPtr);
725
+ MODULE_SCOPE int Itcl_ClassCompiledVarResolver2(Tcl_Interp *interp,
726
+ const char* name, int length, Tcl_Namespace *nsPtr,
727
+ struct Tcl_ResolvedVarInfo **rPtr);
728
+ MODULE_SCOPE int ItclSetParserResolver(Tcl_Namespace *nsPtr);
729
+ MODULE_SCOPE void ItclProcErrorProc(Tcl_Interp *interp, Tcl_Obj *procNameObj);
730
+ MODULE_SCOPE int Itcl_CreateOption (Tcl_Interp *interp, ItclClass *iclsPtr,
731
+ ItclOption *ioptPtr);
732
+ MODULE_SCOPE int ItclCreateMethodVariable(Tcl_Interp *interp,
733
+ ItclVariable *ivPtr, Tcl_Obj* defaultPtr, Tcl_Obj* callbackPtr,
734
+ ItclMethodVariable** imvPtrPtr);
735
+ MODULE_SCOPE int DelegationInstall(Tcl_Interp *interp, ItclObject *ioPtr,
736
+ ItclClass *iclsPtr);
737
+ MODULE_SCOPE ItclClass *ItclNamespace2Class(Tcl_Namespace *nsPtr);
738
+ MODULE_SCOPE const char* ItclGetCommonInstanceVar(Tcl_Interp *interp,
739
+ const char *name, const char *name2, ItclObject *contextIoPtr,
740
+ ItclClass *contextIclsPtr);
741
+ MODULE_SCOPE int ItclCreateMethod(Tcl_Interp* interp, ItclClass *iclsPtr,
742
+ Tcl_Obj *namePtr, const char* arglist, const char* body,
743
+ ItclMemberFunc **imPtrPtr);
744
+ MODULE_SCOPE int Itcl_WidgetParseInit(Tcl_Interp *interp,
745
+ ItclObjectInfo *infoPtr);
746
+ MODULE_SCOPE void ItclDeleteObjectMetadata(ClientData clientData);
747
+ MODULE_SCOPE void ItclDeleteClassMetadata(ClientData clientData);
748
+ MODULE_SCOPE void ItclDeleteArgList(ItclArgList *arglistPtr);
749
+ MODULE_SCOPE int Itcl_ClassOptionCmd(ClientData clientData, Tcl_Interp *interp,
750
+ int objc, Tcl_Obj *const objv[]);
751
+ MODULE_SCOPE int DelegatedOptionsInstall(Tcl_Interp *interp,
752
+ ItclClass *iclsPtr);
753
+ MODULE_SCOPE int Itcl_HandleDelegateOptionCmd(Tcl_Interp *interp,
754
+ ItclObject *ioPtr, ItclClass *iclsPtr, ItclDelegatedOption **idoPtrPtr,
755
+ int objc, Tcl_Obj *const objv[]);
756
+ MODULE_SCOPE int Itcl_HandleDelegateMethodCmd(Tcl_Interp *interp,
757
+ ItclObject *ioPtr, ItclClass *iclsPtr,
758
+ ItclDelegatedFunction **idmPtrPtr, int objc, Tcl_Obj *const objv[]);
759
+ MODULE_SCOPE int DelegateFunction(Tcl_Interp *interp, ItclObject *ioPtr,
760
+ ItclClass *iclsPtr, Tcl_Obj *componentNamePtr,
761
+ ItclDelegatedFunction *idmPtr);
762
+ MODULE_SCOPE int ItclInitObjectMethodVariables(Tcl_Interp *interp,
763
+ ItclObject *ioPtr, ItclClass *iclsPtr, const char *name);
764
+ MODULE_SCOPE int InitTclOOFunctionPointers(Tcl_Interp *interp);
765
+ MODULE_SCOPE ItclOption* ItclNewOption(Tcl_Interp *interp, ItclObject *ioPtr,
766
+ ItclClass *iclsPtr, Tcl_Obj *namePtr, const char *resourceName,
767
+ const char *className, char *init, ItclMemberCode *mCodePtr);
768
+ MODULE_SCOPE int ItclParseOption(ItclObjectInfo *infoPtr, Tcl_Interp *interp,
769
+ int objc, Tcl_Obj *const objv[], ItclClass *iclsPtr,
770
+ ItclObject *ioPtr, ItclOption **ioptPtrPtr);
771
+ MODULE_SCOPE void ItclDestroyClassNamesp(ClientData cdata);
772
+ MODULE_SCOPE int ExpandDelegateAs(Tcl_Interp *interp, ItclObject *ioPtr,
773
+ ItclClass *iclsPtr, ItclDelegatedFunction *idmPtr,
774
+ const char *funcName, Tcl_Obj *listPtr);
775
+ MODULE_SCOPE int ItclCheckForInitializedComponents(Tcl_Interp *interp,
776
+ ItclClass *iclsPtr, ItclObject *ioPtr);
777
+ MODULE_SCOPE int ItclCreateDelegatedFunction(Tcl_Interp *interp,
778
+ ItclClass *iclsPtr, Tcl_Obj *methodNamePtr, ItclComponent *icPtr,
779
+ Tcl_Obj *targetPtr, Tcl_Obj *usingPtr, Tcl_Obj *exceptionsPtr,
780
+ ItclDelegatedFunction **idmPtrPtr);
781
+ MODULE_SCOPE void ItclDeleteDelegatedOption(char *cdata);
782
+ MODULE_SCOPE void Itcl_FinishList();
783
+ MODULE_SCOPE void ItclDeleteDelegatedFunction(ItclDelegatedFunction *idmPtr);
784
+ MODULE_SCOPE void ItclFinishEnsemble(ItclObjectInfo *infoPtr);
785
+ MODULE_SCOPE int Itcl_EnsembleDeleteCmd(ClientData clientData,
786
+ Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);
787
+ MODULE_SCOPE int ItclAddClassesDictInfo(Tcl_Interp *interp, ItclClass *iclsPtr);
788
+ MODULE_SCOPE int ItclDeleteClassesDictInfo(Tcl_Interp *interp,
789
+ ItclClass *iclsPtr);
790
+ MODULE_SCOPE int ItclAddObjectsDictInfo(Tcl_Interp *interp, ItclObject *ioPtr);
791
+ MODULE_SCOPE int ItclDeleteObjectsDictInfo(Tcl_Interp *interp,
792
+ ItclObject *ioPtr);
793
+ MODULE_SCOPE int ItclAddOptionDictInfo(Tcl_Interp *interp, ItclClass *iclsPtr,
794
+ ItclOption *ioptPtr);
795
+ MODULE_SCOPE int ItclAddDelegatedOptionDictInfo(Tcl_Interp *interp,
796
+ ItclClass *iclsPtr, ItclDelegatedOption *idoPtr);
797
+ MODULE_SCOPE int ItclAddClassComponentDictInfo(Tcl_Interp *interp,
798
+ ItclClass *iclsPtr, ItclComponent *icPtr);
799
+ MODULE_SCOPE int ItclAddClassVariableDictInfo(Tcl_Interp *interp,
800
+ ItclClass *iclsPtr, ItclVariable *ivPtr);
801
+ MODULE_SCOPE int ItclAddClassFunctionDictInfo(Tcl_Interp *interp,
802
+ ItclClass *iclsPtr, ItclMemberFunc *imPtr);
803
+ MODULE_SCOPE int ItclAddClassDelegatedFunctionDictInfo(Tcl_Interp *interp,
804
+ ItclClass *iclsPtr, ItclDelegatedFunction *idmPtr);
805
+ MODULE_SCOPE int ItclClassCreateObject(ClientData clientData, Tcl_Interp *interp,
806
+ int objc, Tcl_Obj *const objv[]);
807
+
808
+ MODULE_SCOPE void ItclRestoreInfoVars(ClientData clientData);
809
+
810
+ MODULE_SCOPE Tcl_ObjCmdProc Itcl_BiMyProcCmd;
811
+ MODULE_SCOPE Tcl_ObjCmdProc Itcl_BiInstallComponentCmd;
812
+ MODULE_SCOPE Tcl_ObjCmdProc Itcl_BiCallInstanceCmd;
813
+ MODULE_SCOPE Tcl_ObjCmdProc Itcl_BiGetInstanceVarCmd;
814
+ MODULE_SCOPE Tcl_ObjCmdProc Itcl_BiMyTypeMethodCmd;
815
+ MODULE_SCOPE Tcl_ObjCmdProc Itcl_BiMyMethodCmd;
816
+ MODULE_SCOPE Tcl_ObjCmdProc Itcl_BiMyTypeVarCmd;
817
+ MODULE_SCOPE Tcl_ObjCmdProc Itcl_BiMyVarCmd;
818
+ MODULE_SCOPE Tcl_ObjCmdProc Itcl_BiItclHullCmd;
819
+ MODULE_SCOPE Tcl_ObjCmdProc Itcl_ThisCmd;
820
+ MODULE_SCOPE Tcl_ObjCmdProc Itcl_ExtendedClassCmd;
821
+ MODULE_SCOPE Tcl_ObjCmdProc Itcl_TypeClassCmd;
822
+ MODULE_SCOPE Tcl_ObjCmdProc Itcl_AddObjectOptionCmd;
823
+ MODULE_SCOPE Tcl_ObjCmdProc Itcl_AddDelegatedOptionCmd;
824
+ MODULE_SCOPE Tcl_ObjCmdProc Itcl_AddDelegatedFunctionCmd;
825
+ MODULE_SCOPE Tcl_ObjCmdProc Itcl_SetComponentCmd;
826
+ MODULE_SCOPE Tcl_ObjCmdProc Itcl_ClassHullTypeCmd;
827
+ MODULE_SCOPE Tcl_ObjCmdProc Itcl_ClassWidgetClassCmd;
828
+
829
+ typedef int (ItclRootMethodProc)(ItclObject *ioPtr, Tcl_Interp *interp,
830
+ int objc, Tcl_Obj *const objv[]);
831
+
832
+ MODULE_SCOPE const Tcl_MethodType itclRootMethodType;
833
+ MODULE_SCOPE ItclRootMethodProc ItclUnknownGuts;
834
+ MODULE_SCOPE ItclRootMethodProc ItclConstructGuts;
835
+ MODULE_SCOPE ItclRootMethodProc ItclInfoGuts;
836
+
837
+ #include "itcl2TclOO.h"
838
+
839
+ /*
840
+ * Include all the private API, generated from itcl.decls.
841
+ */
842
+
843
+ #include "itclIntDecls.h"
my_container_sandbox/workspace/anaconda3/include/itclIntDecls.h ADDED
@@ -0,0 +1,1046 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * This file is (mostly) automatically generated from itcl.decls.
3
+ */
4
+
5
+ #ifndef _ITCLINTDECLS
6
+ #define _ITCLINTDECLS
7
+
8
+ /* !BEGIN!: Do not edit below this line. */
9
+
10
+ #define ITCLINT_STUBS_EPOCH 0
11
+ #define ITCLINT_STUBS_REVISION 152
12
+
13
+ #ifdef __cplusplus
14
+ extern "C" {
15
+ #endif
16
+
17
+ /*
18
+ * Exported function declarations:
19
+ */
20
+
21
+ /* 0 */
22
+ ITCLAPI int Itcl_IsClassNamespace(Tcl_Namespace *namesp);
23
+ /* 1 */
24
+ ITCLAPI int Itcl_IsClass(Tcl_Command cmd);
25
+ /* 2 */
26
+ ITCLAPI ItclClass * Itcl_FindClass(Tcl_Interp *interp, const char *path,
27
+ int autoload);
28
+ /* 3 */
29
+ ITCLAPI int Itcl_FindObject(Tcl_Interp *interp, const char *name,
30
+ ItclObject **roPtr);
31
+ /* 4 */
32
+ ITCLAPI int Itcl_IsObject(Tcl_Command cmd);
33
+ /* 5 */
34
+ ITCLAPI int Itcl_ObjectIsa(ItclObject *contextObj,
35
+ ItclClass *cdefn);
36
+ /* 6 */
37
+ ITCLAPI int Itcl_Protection(Tcl_Interp *interp, int newLevel);
38
+ /* 7 */
39
+ ITCLAPI const char * Itcl_ProtectionStr(int pLevel);
40
+ /* 8 */
41
+ ITCLAPI int Itcl_CanAccess(ItclMemberFunc *memberPtr,
42
+ Tcl_Namespace *fromNsPtr);
43
+ /* 9 */
44
+ ITCLAPI int Itcl_CanAccessFunc(ItclMemberFunc *mfunc,
45
+ Tcl_Namespace *fromNsPtr);
46
+ /* Slot 10 is reserved */
47
+ /* 11 */
48
+ ITCLAPI void Itcl_ParseNamespPath(const char *name,
49
+ Tcl_DString *buffer, const char **head,
50
+ const char **tail);
51
+ /* 12 */
52
+ ITCLAPI int Itcl_DecodeScopedCommand(Tcl_Interp *interp,
53
+ const char *name, Tcl_Namespace **rNsPtr,
54
+ char **rCmdPtr);
55
+ /* 13 */
56
+ ITCLAPI int Itcl_EvalArgs(Tcl_Interp *interp, int objc,
57
+ Tcl_Obj *const objv[]);
58
+ /* 14 */
59
+ ITCLAPI Tcl_Obj * Itcl_CreateArgs(Tcl_Interp *interp,
60
+ const char *string, int objc,
61
+ Tcl_Obj *const objv[]);
62
+ /* Slot 15 is reserved */
63
+ /* Slot 16 is reserved */
64
+ /* 17 */
65
+ ITCLAPI int Itcl_GetContext(Tcl_Interp *interp,
66
+ ItclClass **iclsPtrPtr,
67
+ ItclObject **ioPtrPtr);
68
+ /* 18 */
69
+ ITCLAPI void Itcl_InitHierIter(ItclHierIter *iter,
70
+ ItclClass *iclsPtr);
71
+ /* 19 */
72
+ ITCLAPI void Itcl_DeleteHierIter(ItclHierIter *iter);
73
+ /* 20 */
74
+ ITCLAPI ItclClass * Itcl_AdvanceHierIter(ItclHierIter *iter);
75
+ /* 21 */
76
+ ITCLAPI int Itcl_FindClassesCmd(ClientData clientData,
77
+ Tcl_Interp *interp, int objc,
78
+ Tcl_Obj *const objv[]);
79
+ /* 22 */
80
+ ITCLAPI int Itcl_FindObjectsCmd(ClientData clientData,
81
+ Tcl_Interp *interp, int objc,
82
+ Tcl_Obj *const objv[]);
83
+ /* Slot 23 is reserved */
84
+ /* 24 */
85
+ ITCLAPI int Itcl_DelClassCmd(ClientData clientData,
86
+ Tcl_Interp *interp, int objc,
87
+ Tcl_Obj *const objv[]);
88
+ /* 25 */
89
+ ITCLAPI int Itcl_DelObjectCmd(ClientData clientData,
90
+ Tcl_Interp *interp, int objc,
91
+ Tcl_Obj *const objv[]);
92
+ /* 26 */
93
+ ITCLAPI int Itcl_ScopeCmd(ClientData clientData,
94
+ Tcl_Interp *interp, int objc,
95
+ Tcl_Obj *const objv[]);
96
+ /* 27 */
97
+ ITCLAPI int Itcl_CodeCmd(ClientData clientData,
98
+ Tcl_Interp *interp, int objc,
99
+ Tcl_Obj *const objv[]);
100
+ /* 28 */
101
+ ITCLAPI int Itcl_StubCreateCmd(ClientData clientData,
102
+ Tcl_Interp *interp, int objc,
103
+ Tcl_Obj *const objv[]);
104
+ /* 29 */
105
+ ITCLAPI int Itcl_StubExistsCmd(ClientData clientData,
106
+ Tcl_Interp *interp, int objc,
107
+ Tcl_Obj *const objv[]);
108
+ /* 30 */
109
+ ITCLAPI int Itcl_IsStub(Tcl_Command cmd);
110
+ /* 31 */
111
+ ITCLAPI int Itcl_CreateClass(Tcl_Interp *interp,
112
+ const char *path, ItclObjectInfo *info,
113
+ ItclClass **rPtr);
114
+ /* 32 */
115
+ ITCLAPI int Itcl_DeleteClass(Tcl_Interp *interp,
116
+ ItclClass *iclsPtr);
117
+ /* 33 */
118
+ ITCLAPI Tcl_Namespace * Itcl_FindClassNamespace(Tcl_Interp *interp,
119
+ const char *path);
120
+ /* 34 */
121
+ ITCLAPI int Itcl_HandleClass(ClientData clientData,
122
+ Tcl_Interp *interp, int objc,
123
+ Tcl_Obj *const objv[]);
124
+ /* Slot 35 is reserved */
125
+ /* Slot 36 is reserved */
126
+ /* Slot 37 is reserved */
127
+ /* 38 */
128
+ ITCLAPI void Itcl_BuildVirtualTables(ItclClass *iclsPtr);
129
+ /* 39 */
130
+ ITCLAPI int Itcl_CreateVariable(Tcl_Interp *interp,
131
+ ItclClass *iclsPtr, Tcl_Obj *name,
132
+ char *init, char *config,
133
+ ItclVariable **ivPtr);
134
+ /* 40 */
135
+ ITCLAPI void Itcl_DeleteVariable(char *cdata);
136
+ /* 41 */
137
+ ITCLAPI const char * Itcl_GetCommonVar(Tcl_Interp *interp,
138
+ const char *name, ItclClass *contextClass);
139
+ /* Slot 42 is reserved */
140
+ /* Slot 43 is reserved */
141
+ /* 44 */
142
+ ITCLAPI int Itcl_CreateObject(Tcl_Interp *interp,
143
+ const char*name, ItclClass *iclsPtr,
144
+ int objc, Tcl_Obj *const objv[],
145
+ ItclObject **rioPtr);
146
+ /* 45 */
147
+ ITCLAPI int Itcl_DeleteObject(Tcl_Interp *interp,
148
+ ItclObject *contextObj);
149
+ /* 46 */
150
+ ITCLAPI int Itcl_DestructObject(Tcl_Interp *interp,
151
+ ItclObject *contextObj, int flags);
152
+ /* Slot 47 is reserved */
153
+ /* 48 */
154
+ ITCLAPI const char * Itcl_GetInstanceVar(Tcl_Interp *interp,
155
+ const char *name, ItclObject *contextIoPtr,
156
+ ItclClass *contextIclsPtr);
157
+ /* Slot 49 is reserved */
158
+ /* 50 */
159
+ ITCLAPI int Itcl_BodyCmd(ClientData dummy, Tcl_Interp *interp,
160
+ int objc, Tcl_Obj *const objv[]);
161
+ /* 51 */
162
+ ITCLAPI int Itcl_ConfigBodyCmd(ClientData dummy,
163
+ Tcl_Interp *interp, int objc,
164
+ Tcl_Obj *const objv[]);
165
+ /* 52 */
166
+ ITCLAPI int Itcl_CreateMethod(Tcl_Interp *interp,
167
+ ItclClass *iclsPtr, Tcl_Obj *namePtr,
168
+ const char *arglist, const char *body);
169
+ /* 53 */
170
+ ITCLAPI int Itcl_CreateProc(Tcl_Interp *interp,
171
+ ItclClass *iclsPtr, Tcl_Obj *namePtr,
172
+ const char *arglist, const char *body);
173
+ /* 54 */
174
+ ITCLAPI int Itcl_CreateMemberFunc(Tcl_Interp *interp,
175
+ ItclClass *iclsPtr, Tcl_Obj *name,
176
+ const char *arglist, const char *body,
177
+ ItclMemberFunc **mfuncPtr);
178
+ /* 55 */
179
+ ITCLAPI int Itcl_ChangeMemberFunc(Tcl_Interp *interp,
180
+ ItclMemberFunc *mfunc, const char *arglist,
181
+ const char *body);
182
+ /* 56 */
183
+ ITCLAPI void Itcl_DeleteMemberFunc(void *cdata);
184
+ /* 57 */
185
+ ITCLAPI int Itcl_CreateMemberCode(Tcl_Interp *interp,
186
+ ItclClass *iclsPtr, const char *arglist,
187
+ const char *body, ItclMemberCode **mcodePtr);
188
+ /* 58 */
189
+ ITCLAPI void Itcl_DeleteMemberCode(void *cdata);
190
+ /* 59 */
191
+ ITCLAPI int Itcl_GetMemberCode(Tcl_Interp *interp,
192
+ ItclMemberFunc *mfunc);
193
+ /* Slot 60 is reserved */
194
+ /* 61 */
195
+ ITCLAPI int Itcl_EvalMemberCode(Tcl_Interp *interp,
196
+ ItclMemberFunc *mfunc,
197
+ ItclObject *contextObj, int objc,
198
+ Tcl_Obj *const objv[]);
199
+ /* Slot 62 is reserved */
200
+ /* Slot 63 is reserved */
201
+ /* Slot 64 is reserved */
202
+ /* Slot 65 is reserved */
203
+ /* Slot 66 is reserved */
204
+ /* 67 */
205
+ ITCLAPI void Itcl_GetMemberFuncUsage(ItclMemberFunc *mfunc,
206
+ ItclObject *contextObj, Tcl_Obj *objPtr);
207
+ /* 68 */
208
+ ITCLAPI int Itcl_ExecMethod(ClientData clientData,
209
+ Tcl_Interp *interp, int objc,
210
+ Tcl_Obj *const objv[]);
211
+ /* 69 */
212
+ ITCLAPI int Itcl_ExecProc(ClientData clientData,
213
+ Tcl_Interp *interp, int objc,
214
+ Tcl_Obj *const objv[]);
215
+ /* Slot 70 is reserved */
216
+ /* 71 */
217
+ ITCLAPI int Itcl_ConstructBase(Tcl_Interp *interp,
218
+ ItclObject *contextObj,
219
+ ItclClass *contextClass);
220
+ /* 72 */
221
+ ITCLAPI int Itcl_InvokeMethodIfExists(Tcl_Interp *interp,
222
+ const char *name, ItclClass *contextClass,
223
+ ItclObject *contextObj, int objc,
224
+ Tcl_Obj *const objv[]);
225
+ /* Slot 73 is reserved */
226
+ /* 74 */
227
+ ITCLAPI int Itcl_ReportFuncErrors(Tcl_Interp *interp,
228
+ ItclMemberFunc *mfunc,
229
+ ItclObject *contextObj, int result);
230
+ /* 75 */
231
+ ITCLAPI int Itcl_ParseInit(Tcl_Interp *interp,
232
+ ItclObjectInfo *info);
233
+ /* 76 */
234
+ ITCLAPI int Itcl_ClassCmd(ClientData clientData,
235
+ Tcl_Interp *interp, int objc,
236
+ Tcl_Obj *const objv[]);
237
+ /* 77 */
238
+ ITCLAPI int Itcl_ClassInheritCmd(ClientData clientData,
239
+ Tcl_Interp *interp, int objc,
240
+ Tcl_Obj *const objv[]);
241
+ /* 78 */
242
+ ITCLAPI int Itcl_ClassProtectionCmd(ClientData clientData,
243
+ Tcl_Interp *interp, int objc,
244
+ Tcl_Obj *const objv[]);
245
+ /* 79 */
246
+ ITCLAPI int Itcl_ClassConstructorCmd(ClientData clientData,
247
+ Tcl_Interp *interp, int objc,
248
+ Tcl_Obj *const objv[]);
249
+ /* 80 */
250
+ ITCLAPI int Itcl_ClassDestructorCmd(ClientData clientData,
251
+ Tcl_Interp *interp, int objc,
252
+ Tcl_Obj *const objv[]);
253
+ /* 81 */
254
+ ITCLAPI int Itcl_ClassMethodCmd(ClientData clientData,
255
+ Tcl_Interp *interp, int objc,
256
+ Tcl_Obj *const objv[]);
257
+ /* 82 */
258
+ ITCLAPI int Itcl_ClassProcCmd(ClientData clientData,
259
+ Tcl_Interp *interp, int objc,
260
+ Tcl_Obj *const objv[]);
261
+ /* 83 */
262
+ ITCLAPI int Itcl_ClassVariableCmd(ClientData clientData,
263
+ Tcl_Interp *interp, int objc,
264
+ Tcl_Obj *const objv[]);
265
+ /* 84 */
266
+ ITCLAPI int Itcl_ClassCommonCmd(ClientData clientData,
267
+ Tcl_Interp *interp, int objc,
268
+ Tcl_Obj *const objv[]);
269
+ /* 85 */
270
+ ITCLAPI int Itcl_ParseVarResolver(Tcl_Interp *interp,
271
+ const char *name, Tcl_Namespace *contextNs,
272
+ int flags, Tcl_Var *rPtr);
273
+ /* 86 */
274
+ ITCLAPI int Itcl_BiInit(Tcl_Interp *interp,
275
+ ItclObjectInfo *infoPtr);
276
+ /* 87 */
277
+ ITCLAPI int Itcl_InstallBiMethods(Tcl_Interp *interp,
278
+ ItclClass *cdefn);
279
+ /* 88 */
280
+ ITCLAPI int Itcl_BiIsaCmd(ClientData clientData,
281
+ Tcl_Interp *interp, int objc,
282
+ Tcl_Obj *const objv[]);
283
+ /* 89 */
284
+ ITCLAPI int Itcl_BiConfigureCmd(ClientData clientData,
285
+ Tcl_Interp *interp, int objc,
286
+ Tcl_Obj *const objv[]);
287
+ /* 90 */
288
+ ITCLAPI int Itcl_BiCgetCmd(ClientData clientData,
289
+ Tcl_Interp *interp, int objc,
290
+ Tcl_Obj *const objv[]);
291
+ /* 91 */
292
+ ITCLAPI int Itcl_BiChainCmd(ClientData dummy, Tcl_Interp *interp,
293
+ int objc, Tcl_Obj *const objv[]);
294
+ /* 92 */
295
+ ITCLAPI int Itcl_BiInfoClassCmd(ClientData dummy,
296
+ Tcl_Interp *interp, int objc,
297
+ Tcl_Obj *const objv[]);
298
+ /* 93 */
299
+ ITCLAPI int Itcl_BiInfoInheritCmd(ClientData dummy,
300
+ Tcl_Interp *interp, int objc,
301
+ Tcl_Obj *const objv[]);
302
+ /* 94 */
303
+ ITCLAPI int Itcl_BiInfoHeritageCmd(ClientData dummy,
304
+ Tcl_Interp *interp, int objc,
305
+ Tcl_Obj *const objv[]);
306
+ /* 95 */
307
+ ITCLAPI int Itcl_BiInfoFunctionCmd(ClientData dummy,
308
+ Tcl_Interp *interp, int objc,
309
+ Tcl_Obj *const objv[]);
310
+ /* 96 */
311
+ ITCLAPI int Itcl_BiInfoVariableCmd(ClientData dummy,
312
+ Tcl_Interp *interp, int objc,
313
+ Tcl_Obj *const objv[]);
314
+ /* 97 */
315
+ ITCLAPI int Itcl_BiInfoBodyCmd(ClientData dummy,
316
+ Tcl_Interp *interp, int objc,
317
+ Tcl_Obj *const objv[]);
318
+ /* 98 */
319
+ ITCLAPI int Itcl_BiInfoArgsCmd(ClientData dummy,
320
+ Tcl_Interp *interp, int objc,
321
+ Tcl_Obj *const objv[]);
322
+ /* Slot 99 is reserved */
323
+ /* 100 */
324
+ ITCLAPI int Itcl_EnsembleInit(Tcl_Interp *interp);
325
+ /* 101 */
326
+ ITCLAPI int Itcl_CreateEnsemble(Tcl_Interp *interp,
327
+ const char *ensName);
328
+ /* 102 */
329
+ ITCLAPI int Itcl_AddEnsemblePart(Tcl_Interp *interp,
330
+ const char *ensName, const char *partName,
331
+ const char *usageInfo,
332
+ Tcl_ObjCmdProc *objProc,
333
+ ClientData clientData,
334
+ Tcl_CmdDeleteProc *deleteProc);
335
+ /* 103 */
336
+ ITCLAPI int Itcl_GetEnsemblePart(Tcl_Interp *interp,
337
+ const char *ensName, const char *partName,
338
+ Tcl_CmdInfo *infoPtr);
339
+ /* 104 */
340
+ ITCLAPI int Itcl_IsEnsemble(Tcl_CmdInfo *infoPtr);
341
+ /* 105 */
342
+ ITCLAPI int Itcl_GetEnsembleUsage(Tcl_Interp *interp,
343
+ const char *ensName, Tcl_Obj *objPtr);
344
+ /* 106 */
345
+ ITCLAPI int Itcl_GetEnsembleUsageForObj(Tcl_Interp *interp,
346
+ Tcl_Obj *ensObjPtr, Tcl_Obj *objPtr);
347
+ /* 107 */
348
+ ITCLAPI int Itcl_EnsembleCmd(ClientData clientData,
349
+ Tcl_Interp *interp, int objc,
350
+ Tcl_Obj *const objv[]);
351
+ /* 108 */
352
+ ITCLAPI int Itcl_EnsPartCmd(ClientData clientData,
353
+ Tcl_Interp *interp, int objc,
354
+ Tcl_Obj *const objv[]);
355
+ /* 109 */
356
+ ITCLAPI int Itcl_EnsembleErrorCmd(ClientData clientData,
357
+ Tcl_Interp *interp, int objc,
358
+ Tcl_Obj *const objv[]);
359
+ /* Slot 110 is reserved */
360
+ /* Slot 111 is reserved */
361
+ /* Slot 112 is reserved */
362
+ /* Slot 113 is reserved */
363
+ /* Slot 114 is reserved */
364
+ /* 115 */
365
+ ITCLAPI void Itcl_Assert(const char *testExpr,
366
+ const char *fileName, int lineNum);
367
+ /* 116 */
368
+ ITCLAPI int Itcl_IsObjectCmd(ClientData clientData,
369
+ Tcl_Interp *interp, int objc,
370
+ Tcl_Obj *const objv[]);
371
+ /* 117 */
372
+ ITCLAPI int Itcl_IsClassCmd(ClientData clientData,
373
+ Tcl_Interp *interp, int objc,
374
+ Tcl_Obj *const objv[]);
375
+ /* Slot 118 is reserved */
376
+ /* Slot 119 is reserved */
377
+ /* Slot 120 is reserved */
378
+ /* Slot 121 is reserved */
379
+ /* Slot 122 is reserved */
380
+ /* Slot 123 is reserved */
381
+ /* Slot 124 is reserved */
382
+ /* Slot 125 is reserved */
383
+ /* Slot 126 is reserved */
384
+ /* Slot 127 is reserved */
385
+ /* Slot 128 is reserved */
386
+ /* Slot 129 is reserved */
387
+ /* Slot 130 is reserved */
388
+ /* Slot 131 is reserved */
389
+ /* Slot 132 is reserved */
390
+ /* Slot 133 is reserved */
391
+ /* Slot 134 is reserved */
392
+ /* Slot 135 is reserved */
393
+ /* Slot 136 is reserved */
394
+ /* Slot 137 is reserved */
395
+ /* Slot 138 is reserved */
396
+ /* Slot 139 is reserved */
397
+ /* 140 */
398
+ ITCLAPI int Itcl_FilterAddCmd(ClientData clientData,
399
+ Tcl_Interp *interp, int objc,
400
+ Tcl_Obj *const objv[]);
401
+ /* 141 */
402
+ ITCLAPI int Itcl_FilterDeleteCmd(ClientData clientData,
403
+ Tcl_Interp *interp, int objc,
404
+ Tcl_Obj *const objv[]);
405
+ /* 142 */
406
+ ITCLAPI int Itcl_ForwardAddCmd(ClientData clientData,
407
+ Tcl_Interp *interp, int objc,
408
+ Tcl_Obj *const objv[]);
409
+ /* 143 */
410
+ ITCLAPI int Itcl_ForwardDeleteCmd(ClientData clientData,
411
+ Tcl_Interp *interp, int objc,
412
+ Tcl_Obj *const objv[]);
413
+ /* 144 */
414
+ ITCLAPI int Itcl_MixinAddCmd(ClientData clientData,
415
+ Tcl_Interp *interp, int objc,
416
+ Tcl_Obj *const objv[]);
417
+ /* 145 */
418
+ ITCLAPI int Itcl_MixinDeleteCmd(ClientData clientData,
419
+ Tcl_Interp *interp, int objc,
420
+ Tcl_Obj *const objv[]);
421
+ /* Slot 146 is reserved */
422
+ /* Slot 147 is reserved */
423
+ /* Slot 148 is reserved */
424
+ /* Slot 149 is reserved */
425
+ /* Slot 150 is reserved */
426
+ /* 151 */
427
+ ITCLAPI int Itcl_BiInfoUnknownCmd(ClientData dummy,
428
+ Tcl_Interp *interp, int objc,
429
+ Tcl_Obj *const objv[]);
430
+ /* 152 */
431
+ ITCLAPI int Itcl_BiInfoVarsCmd(ClientData dummy,
432
+ Tcl_Interp *interp, int objc,
433
+ Tcl_Obj *const objv[]);
434
+ /* 153 */
435
+ ITCLAPI int Itcl_CanAccess2(ItclClass *iclsPtr, int protection,
436
+ Tcl_Namespace *fromNsPtr);
437
+ /* Slot 154 is reserved */
438
+ /* Slot 155 is reserved */
439
+ /* Slot 156 is reserved */
440
+ /* Slot 157 is reserved */
441
+ /* Slot 158 is reserved */
442
+ /* Slot 159 is reserved */
443
+ /* 160 */
444
+ ITCLAPI int Itcl_SetCallFrameResolver(Tcl_Interp *interp,
445
+ Tcl_Resolve *resolvePtr);
446
+ /* 161 */
447
+ ITCLAPI int ItclEnsembleSubCmd(ClientData clientData,
448
+ Tcl_Interp *interp, const char *ensembleName,
449
+ int objc, Tcl_Obj *const *objv,
450
+ const char *functionName);
451
+ /* 162 */
452
+ ITCLAPI Tcl_Namespace * Itcl_GetUplevelNamespace(Tcl_Interp *interp,
453
+ int level);
454
+ /* 163 */
455
+ ITCLAPI ClientData Itcl_GetCallFrameClientData(Tcl_Interp *interp);
456
+ /* Slot 164 is reserved */
457
+ /* 165 */
458
+ ITCLAPI int Itcl_SetCallFrameNamespace(Tcl_Interp *interp,
459
+ Tcl_Namespace *nsPtr);
460
+ /* 166 */
461
+ ITCLAPI int Itcl_GetCallFrameObjc(Tcl_Interp *interp);
462
+ /* 167 */
463
+ ITCLAPI Tcl_Obj *const * Itcl_GetCallFrameObjv(Tcl_Interp *interp);
464
+ /* 168 */
465
+ ITCLAPI int Itcl_NWidgetCmd(ClientData infoPtr,
466
+ Tcl_Interp *interp, int objc,
467
+ Tcl_Obj *const objv[]);
468
+ /* 169 */
469
+ ITCLAPI int Itcl_AddOptionCmd(ClientData infoPtr,
470
+ Tcl_Interp *interp, int objc,
471
+ Tcl_Obj *const objv[]);
472
+ /* 170 */
473
+ ITCLAPI int Itcl_AddComponentCmd(ClientData infoPtr,
474
+ Tcl_Interp *interp, int objc,
475
+ Tcl_Obj *const objv[]);
476
+ /* 171 */
477
+ ITCLAPI int Itcl_BiInfoOptionCmd(ClientData dummy,
478
+ Tcl_Interp *interp, int objc,
479
+ Tcl_Obj *const objv[]);
480
+ /* 172 */
481
+ ITCLAPI int Itcl_BiInfoComponentCmd(ClientData dummy,
482
+ Tcl_Interp *interp, int objc,
483
+ Tcl_Obj *const objv[]);
484
+ /* 173 */
485
+ ITCLAPI int Itcl_RenameCommand(Tcl_Interp *interp,
486
+ const char *oldName, const char *newName);
487
+ /* 174 */
488
+ ITCLAPI int Itcl_PushCallFrame(Tcl_Interp *interp,
489
+ Tcl_CallFrame *framePtr,
490
+ Tcl_Namespace *nsPtr, int isProcCallFrame);
491
+ /* 175 */
492
+ ITCLAPI void Itcl_PopCallFrame(Tcl_Interp *interp);
493
+ /* 176 */
494
+ ITCLAPI Tcl_CallFrame * Itcl_GetUplevelCallFrame(Tcl_Interp *interp,
495
+ int level);
496
+ /* 177 */
497
+ ITCLAPI Tcl_CallFrame * Itcl_ActivateCallFrame(Tcl_Interp *interp,
498
+ Tcl_CallFrame *framePtr);
499
+ /* 178 */
500
+ ITCLAPI const char* ItclSetInstanceVar(Tcl_Interp *interp,
501
+ const char *name, const char *name2,
502
+ const char *value, ItclObject *contextIoPtr,
503
+ ItclClass *contextIclsPtr);
504
+ /* 179 */
505
+ ITCLAPI Tcl_Obj * ItclCapitalize(const char *str);
506
+ /* 180 */
507
+ ITCLAPI int ItclClassBaseCmd(ClientData clientData,
508
+ Tcl_Interp *interp, int flags, int objc,
509
+ Tcl_Obj *const objv[],
510
+ ItclClass **iclsPtrPtr);
511
+ /* 181 */
512
+ ITCLAPI int ItclCreateComponent(Tcl_Interp *interp,
513
+ ItclClass *iclsPtr, Tcl_Obj *componentPtr,
514
+ int type, ItclComponent **icPtrPtr);
515
+ /* 182 */
516
+ ITCLAPI void Itcl_SetContext(Tcl_Interp *interp,
517
+ ItclObject *ioPtr);
518
+ /* 183 */
519
+ ITCLAPI void Itcl_UnsetContext(Tcl_Interp *interp);
520
+ /* 184 */
521
+ ITCLAPI const char * ItclGetInstanceVar(Tcl_Interp *interp,
522
+ const char *name, const char *name2,
523
+ ItclObject *ioPtr, ItclClass *iclsPtr);
524
+
525
+ typedef struct ItclIntStubs {
526
+ int magic;
527
+ int epoch;
528
+ int revision;
529
+ void *hooks;
530
+
531
+ int (*itcl_IsClassNamespace) (Tcl_Namespace *namesp); /* 0 */
532
+ int (*itcl_IsClass) (Tcl_Command cmd); /* 1 */
533
+ ItclClass * (*itcl_FindClass) (Tcl_Interp *interp, const char *path, int autoload); /* 2 */
534
+ int (*itcl_FindObject) (Tcl_Interp *interp, const char *name, ItclObject **roPtr); /* 3 */
535
+ int (*itcl_IsObject) (Tcl_Command cmd); /* 4 */
536
+ int (*itcl_ObjectIsa) (ItclObject *contextObj, ItclClass *cdefn); /* 5 */
537
+ int (*itcl_Protection) (Tcl_Interp *interp, int newLevel); /* 6 */
538
+ const char * (*itcl_ProtectionStr) (int pLevel); /* 7 */
539
+ int (*itcl_CanAccess) (ItclMemberFunc *memberPtr, Tcl_Namespace *fromNsPtr); /* 8 */
540
+ int (*itcl_CanAccessFunc) (ItclMemberFunc *mfunc, Tcl_Namespace *fromNsPtr); /* 9 */
541
+ void (*reserved10)(void);
542
+ void (*itcl_ParseNamespPath) (const char *name, Tcl_DString *buffer, const char **head, const char **tail); /* 11 */
543
+ int (*itcl_DecodeScopedCommand) (Tcl_Interp *interp, const char *name, Tcl_Namespace **rNsPtr, char **rCmdPtr); /* 12 */
544
+ int (*itcl_EvalArgs) (Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 13 */
545
+ Tcl_Obj * (*itcl_CreateArgs) (Tcl_Interp *interp, const char *string, int objc, Tcl_Obj *const objv[]); /* 14 */
546
+ void (*reserved15)(void);
547
+ void (*reserved16)(void);
548
+ int (*itcl_GetContext) (Tcl_Interp *interp, ItclClass **iclsPtrPtr, ItclObject **ioPtrPtr); /* 17 */
549
+ void (*itcl_InitHierIter) (ItclHierIter *iter, ItclClass *iclsPtr); /* 18 */
550
+ void (*itcl_DeleteHierIter) (ItclHierIter *iter); /* 19 */
551
+ ItclClass * (*itcl_AdvanceHierIter) (ItclHierIter *iter); /* 20 */
552
+ int (*itcl_FindClassesCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 21 */
553
+ int (*itcl_FindObjectsCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 22 */
554
+ void (*reserved23)(void);
555
+ int (*itcl_DelClassCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 24 */
556
+ int (*itcl_DelObjectCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 25 */
557
+ int (*itcl_ScopeCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 26 */
558
+ int (*itcl_CodeCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 27 */
559
+ int (*itcl_StubCreateCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 28 */
560
+ int (*itcl_StubExistsCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 29 */
561
+ int (*itcl_IsStub) (Tcl_Command cmd); /* 30 */
562
+ int (*itcl_CreateClass) (Tcl_Interp *interp, const char *path, ItclObjectInfo *info, ItclClass **rPtr); /* 31 */
563
+ int (*itcl_DeleteClass) (Tcl_Interp *interp, ItclClass *iclsPtr); /* 32 */
564
+ Tcl_Namespace * (*itcl_FindClassNamespace) (Tcl_Interp *interp, const char *path); /* 33 */
565
+ int (*itcl_HandleClass) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 34 */
566
+ void (*reserved35)(void);
567
+ void (*reserved36)(void);
568
+ void (*reserved37)(void);
569
+ void (*itcl_BuildVirtualTables) (ItclClass *iclsPtr); /* 38 */
570
+ int (*itcl_CreateVariable) (Tcl_Interp *interp, ItclClass *iclsPtr, Tcl_Obj *name, char *init, char *config, ItclVariable **ivPtr); /* 39 */
571
+ void (*itcl_DeleteVariable) (char *cdata); /* 40 */
572
+ const char * (*itcl_GetCommonVar) (Tcl_Interp *interp, const char *name, ItclClass *contextClass); /* 41 */
573
+ void (*reserved42)(void);
574
+ void (*reserved43)(void);
575
+ int (*itcl_CreateObject) (Tcl_Interp *interp, const char*name, ItclClass *iclsPtr, int objc, Tcl_Obj *const objv[], ItclObject **rioPtr); /* 44 */
576
+ int (*itcl_DeleteObject) (Tcl_Interp *interp, ItclObject *contextObj); /* 45 */
577
+ int (*itcl_DestructObject) (Tcl_Interp *interp, ItclObject *contextObj, int flags); /* 46 */
578
+ void (*reserved47)(void);
579
+ const char * (*itcl_GetInstanceVar) (Tcl_Interp *interp, const char *name, ItclObject *contextIoPtr, ItclClass *contextIclsPtr); /* 48 */
580
+ void (*reserved49)(void);
581
+ int (*itcl_BodyCmd) (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 50 */
582
+ int (*itcl_ConfigBodyCmd) (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 51 */
583
+ int (*itcl_CreateMethod) (Tcl_Interp *interp, ItclClass *iclsPtr, Tcl_Obj *namePtr, const char *arglist, const char *body); /* 52 */
584
+ int (*itcl_CreateProc) (Tcl_Interp *interp, ItclClass *iclsPtr, Tcl_Obj *namePtr, const char *arglist, const char *body); /* 53 */
585
+ int (*itcl_CreateMemberFunc) (Tcl_Interp *interp, ItclClass *iclsPtr, Tcl_Obj *name, const char *arglist, const char *body, ItclMemberFunc **mfuncPtr); /* 54 */
586
+ int (*itcl_ChangeMemberFunc) (Tcl_Interp *interp, ItclMemberFunc *mfunc, const char *arglist, const char *body); /* 55 */
587
+ void (*itcl_DeleteMemberFunc) (void *cdata); /* 56 */
588
+ int (*itcl_CreateMemberCode) (Tcl_Interp *interp, ItclClass *iclsPtr, const char *arglist, const char *body, ItclMemberCode **mcodePtr); /* 57 */
589
+ void (*itcl_DeleteMemberCode) (void *cdata); /* 58 */
590
+ int (*itcl_GetMemberCode) (Tcl_Interp *interp, ItclMemberFunc *mfunc); /* 59 */
591
+ void (*reserved60)(void);
592
+ int (*itcl_EvalMemberCode) (Tcl_Interp *interp, ItclMemberFunc *mfunc, ItclObject *contextObj, int objc, Tcl_Obj *const objv[]); /* 61 */
593
+ void (*reserved62)(void);
594
+ void (*reserved63)(void);
595
+ void (*reserved64)(void);
596
+ void (*reserved65)(void);
597
+ void (*reserved66)(void);
598
+ void (*itcl_GetMemberFuncUsage) (ItclMemberFunc *mfunc, ItclObject *contextObj, Tcl_Obj *objPtr); /* 67 */
599
+ int (*itcl_ExecMethod) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 68 */
600
+ int (*itcl_ExecProc) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 69 */
601
+ void (*reserved70)(void);
602
+ int (*itcl_ConstructBase) (Tcl_Interp *interp, ItclObject *contextObj, ItclClass *contextClass); /* 71 */
603
+ int (*itcl_InvokeMethodIfExists) (Tcl_Interp *interp, const char *name, ItclClass *contextClass, ItclObject *contextObj, int objc, Tcl_Obj *const objv[]); /* 72 */
604
+ void (*reserved73)(void);
605
+ int (*itcl_ReportFuncErrors) (Tcl_Interp *interp, ItclMemberFunc *mfunc, ItclObject *contextObj, int result); /* 74 */
606
+ int (*itcl_ParseInit) (Tcl_Interp *interp, ItclObjectInfo *info); /* 75 */
607
+ int (*itcl_ClassCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 76 */
608
+ int (*itcl_ClassInheritCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 77 */
609
+ int (*itcl_ClassProtectionCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 78 */
610
+ int (*itcl_ClassConstructorCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 79 */
611
+ int (*itcl_ClassDestructorCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 80 */
612
+ int (*itcl_ClassMethodCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 81 */
613
+ int (*itcl_ClassProcCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 82 */
614
+ int (*itcl_ClassVariableCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 83 */
615
+ int (*itcl_ClassCommonCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 84 */
616
+ int (*itcl_ParseVarResolver) (Tcl_Interp *interp, const char *name, Tcl_Namespace *contextNs, int flags, Tcl_Var *rPtr); /* 85 */
617
+ int (*itcl_BiInit) (Tcl_Interp *interp, ItclObjectInfo *infoPtr); /* 86 */
618
+ int (*itcl_InstallBiMethods) (Tcl_Interp *interp, ItclClass *cdefn); /* 87 */
619
+ int (*itcl_BiIsaCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 88 */
620
+ int (*itcl_BiConfigureCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 89 */
621
+ int (*itcl_BiCgetCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 90 */
622
+ int (*itcl_BiChainCmd) (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 91 */
623
+ int (*itcl_BiInfoClassCmd) (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 92 */
624
+ int (*itcl_BiInfoInheritCmd) (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 93 */
625
+ int (*itcl_BiInfoHeritageCmd) (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 94 */
626
+ int (*itcl_BiInfoFunctionCmd) (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 95 */
627
+ int (*itcl_BiInfoVariableCmd) (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 96 */
628
+ int (*itcl_BiInfoBodyCmd) (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 97 */
629
+ int (*itcl_BiInfoArgsCmd) (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 98 */
630
+ void (*reserved99)(void);
631
+ int (*itcl_EnsembleInit) (Tcl_Interp *interp); /* 100 */
632
+ int (*itcl_CreateEnsemble) (Tcl_Interp *interp, const char *ensName); /* 101 */
633
+ int (*itcl_AddEnsemblePart) (Tcl_Interp *interp, const char *ensName, const char *partName, const char *usageInfo, Tcl_ObjCmdProc *objProc, ClientData clientData, Tcl_CmdDeleteProc *deleteProc); /* 102 */
634
+ int (*itcl_GetEnsemblePart) (Tcl_Interp *interp, const char *ensName, const char *partName, Tcl_CmdInfo *infoPtr); /* 103 */
635
+ int (*itcl_IsEnsemble) (Tcl_CmdInfo *infoPtr); /* 104 */
636
+ int (*itcl_GetEnsembleUsage) (Tcl_Interp *interp, const char *ensName, Tcl_Obj *objPtr); /* 105 */
637
+ int (*itcl_GetEnsembleUsageForObj) (Tcl_Interp *interp, Tcl_Obj *ensObjPtr, Tcl_Obj *objPtr); /* 106 */
638
+ int (*itcl_EnsembleCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 107 */
639
+ int (*itcl_EnsPartCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 108 */
640
+ int (*itcl_EnsembleErrorCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 109 */
641
+ void (*reserved110)(void);
642
+ void (*reserved111)(void);
643
+ void (*reserved112)(void);
644
+ void (*reserved113)(void);
645
+ void (*reserved114)(void);
646
+ void (*itcl_Assert) (const char *testExpr, const char *fileName, int lineNum); /* 115 */
647
+ int (*itcl_IsObjectCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 116 */
648
+ int (*itcl_IsClassCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 117 */
649
+ void (*reserved118)(void);
650
+ void (*reserved119)(void);
651
+ void (*reserved120)(void);
652
+ void (*reserved121)(void);
653
+ void (*reserved122)(void);
654
+ void (*reserved123)(void);
655
+ void (*reserved124)(void);
656
+ void (*reserved125)(void);
657
+ void (*reserved126)(void);
658
+ void (*reserved127)(void);
659
+ void (*reserved128)(void);
660
+ void (*reserved129)(void);
661
+ void (*reserved130)(void);
662
+ void (*reserved131)(void);
663
+ void (*reserved132)(void);
664
+ void (*reserved133)(void);
665
+ void (*reserved134)(void);
666
+ void (*reserved135)(void);
667
+ void (*reserved136)(void);
668
+ void (*reserved137)(void);
669
+ void (*reserved138)(void);
670
+ void (*reserved139)(void);
671
+ int (*itcl_FilterAddCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 140 */
672
+ int (*itcl_FilterDeleteCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 141 */
673
+ int (*itcl_ForwardAddCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 142 */
674
+ int (*itcl_ForwardDeleteCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 143 */
675
+ int (*itcl_MixinAddCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 144 */
676
+ int (*itcl_MixinDeleteCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 145 */
677
+ void (*reserved146)(void);
678
+ void (*reserved147)(void);
679
+ void (*reserved148)(void);
680
+ void (*reserved149)(void);
681
+ void (*reserved150)(void);
682
+ int (*itcl_BiInfoUnknownCmd) (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 151 */
683
+ int (*itcl_BiInfoVarsCmd) (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 152 */
684
+ int (*itcl_CanAccess2) (ItclClass *iclsPtr, int protection, Tcl_Namespace *fromNsPtr); /* 153 */
685
+ void (*reserved154)(void);
686
+ void (*reserved155)(void);
687
+ void (*reserved156)(void);
688
+ void (*reserved157)(void);
689
+ void (*reserved158)(void);
690
+ void (*reserved159)(void);
691
+ int (*itcl_SetCallFrameResolver) (Tcl_Interp *interp, Tcl_Resolve *resolvePtr); /* 160 */
692
+ int (*itclEnsembleSubCmd) (ClientData clientData, Tcl_Interp *interp, const char *ensembleName, int objc, Tcl_Obj *const *objv, const char *functionName); /* 161 */
693
+ Tcl_Namespace * (*itcl_GetUplevelNamespace) (Tcl_Interp *interp, int level); /* 162 */
694
+ ClientData (*itcl_GetCallFrameClientData) (Tcl_Interp *interp); /* 163 */
695
+ void (*reserved164)(void);
696
+ int (*itcl_SetCallFrameNamespace) (Tcl_Interp *interp, Tcl_Namespace *nsPtr); /* 165 */
697
+ int (*itcl_GetCallFrameObjc) (Tcl_Interp *interp); /* 166 */
698
+ Tcl_Obj *const * (*itcl_GetCallFrameObjv) (Tcl_Interp *interp); /* 167 */
699
+ int (*itcl_NWidgetCmd) (ClientData infoPtr, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 168 */
700
+ int (*itcl_AddOptionCmd) (ClientData infoPtr, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 169 */
701
+ int (*itcl_AddComponentCmd) (ClientData infoPtr, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 170 */
702
+ int (*itcl_BiInfoOptionCmd) (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 171 */
703
+ int (*itcl_BiInfoComponentCmd) (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 172 */
704
+ int (*itcl_RenameCommand) (Tcl_Interp *interp, const char *oldName, const char *newName); /* 173 */
705
+ int (*itcl_PushCallFrame) (Tcl_Interp *interp, Tcl_CallFrame *framePtr, Tcl_Namespace *nsPtr, int isProcCallFrame); /* 174 */
706
+ void (*itcl_PopCallFrame) (Tcl_Interp *interp); /* 175 */
707
+ Tcl_CallFrame * (*itcl_GetUplevelCallFrame) (Tcl_Interp *interp, int level); /* 176 */
708
+ Tcl_CallFrame * (*itcl_ActivateCallFrame) (Tcl_Interp *interp, Tcl_CallFrame *framePtr); /* 177 */
709
+ const char* (*itclSetInstanceVar) (Tcl_Interp *interp, const char *name, const char *name2, const char *value, ItclObject *contextIoPtr, ItclClass *contextIclsPtr); /* 178 */
710
+ Tcl_Obj * (*itclCapitalize) (const char *str); /* 179 */
711
+ int (*itclClassBaseCmd) (ClientData clientData, Tcl_Interp *interp, int flags, int objc, Tcl_Obj *const objv[], ItclClass **iclsPtrPtr); /* 180 */
712
+ int (*itclCreateComponent) (Tcl_Interp *interp, ItclClass *iclsPtr, Tcl_Obj *componentPtr, int type, ItclComponent **icPtrPtr); /* 181 */
713
+ void (*itcl_SetContext) (Tcl_Interp *interp, ItclObject *ioPtr); /* 182 */
714
+ void (*itcl_UnsetContext) (Tcl_Interp *interp); /* 183 */
715
+ const char * (*itclGetInstanceVar) (Tcl_Interp *interp, const char *name, const char *name2, ItclObject *ioPtr, ItclClass *iclsPtr); /* 184 */
716
+ } ItclIntStubs;
717
+
718
+ extern const ItclIntStubs *itclIntStubsPtr;
719
+
720
+ #ifdef __cplusplus
721
+ }
722
+ #endif
723
+
724
+ #if defined(USE_ITCL_STUBS)
725
+
726
+ /*
727
+ * Inline function declarations:
728
+ */
729
+
730
+ #define Itcl_IsClassNamespace \
731
+ (itclIntStubsPtr->itcl_IsClassNamespace) /* 0 */
732
+ #define Itcl_IsClass \
733
+ (itclIntStubsPtr->itcl_IsClass) /* 1 */
734
+ #define Itcl_FindClass \
735
+ (itclIntStubsPtr->itcl_FindClass) /* 2 */
736
+ #define Itcl_FindObject \
737
+ (itclIntStubsPtr->itcl_FindObject) /* 3 */
738
+ #define Itcl_IsObject \
739
+ (itclIntStubsPtr->itcl_IsObject) /* 4 */
740
+ #define Itcl_ObjectIsa \
741
+ (itclIntStubsPtr->itcl_ObjectIsa) /* 5 */
742
+ #define Itcl_Protection \
743
+ (itclIntStubsPtr->itcl_Protection) /* 6 */
744
+ #define Itcl_ProtectionStr \
745
+ (itclIntStubsPtr->itcl_ProtectionStr) /* 7 */
746
+ #define Itcl_CanAccess \
747
+ (itclIntStubsPtr->itcl_CanAccess) /* 8 */
748
+ #define Itcl_CanAccessFunc \
749
+ (itclIntStubsPtr->itcl_CanAccessFunc) /* 9 */
750
+ /* Slot 10 is reserved */
751
+ #define Itcl_ParseNamespPath \
752
+ (itclIntStubsPtr->itcl_ParseNamespPath) /* 11 */
753
+ #define Itcl_DecodeScopedCommand \
754
+ (itclIntStubsPtr->itcl_DecodeScopedCommand) /* 12 */
755
+ #define Itcl_EvalArgs \
756
+ (itclIntStubsPtr->itcl_EvalArgs) /* 13 */
757
+ #define Itcl_CreateArgs \
758
+ (itclIntStubsPtr->itcl_CreateArgs) /* 14 */
759
+ /* Slot 15 is reserved */
760
+ /* Slot 16 is reserved */
761
+ #define Itcl_GetContext \
762
+ (itclIntStubsPtr->itcl_GetContext) /* 17 */
763
+ #define Itcl_InitHierIter \
764
+ (itclIntStubsPtr->itcl_InitHierIter) /* 18 */
765
+ #define Itcl_DeleteHierIter \
766
+ (itclIntStubsPtr->itcl_DeleteHierIter) /* 19 */
767
+ #define Itcl_AdvanceHierIter \
768
+ (itclIntStubsPtr->itcl_AdvanceHierIter) /* 20 */
769
+ #define Itcl_FindClassesCmd \
770
+ (itclIntStubsPtr->itcl_FindClassesCmd) /* 21 */
771
+ #define Itcl_FindObjectsCmd \
772
+ (itclIntStubsPtr->itcl_FindObjectsCmd) /* 22 */
773
+ /* Slot 23 is reserved */
774
+ #define Itcl_DelClassCmd \
775
+ (itclIntStubsPtr->itcl_DelClassCmd) /* 24 */
776
+ #define Itcl_DelObjectCmd \
777
+ (itclIntStubsPtr->itcl_DelObjectCmd) /* 25 */
778
+ #define Itcl_ScopeCmd \
779
+ (itclIntStubsPtr->itcl_ScopeCmd) /* 26 */
780
+ #define Itcl_CodeCmd \
781
+ (itclIntStubsPtr->itcl_CodeCmd) /* 27 */
782
+ #define Itcl_StubCreateCmd \
783
+ (itclIntStubsPtr->itcl_StubCreateCmd) /* 28 */
784
+ #define Itcl_StubExistsCmd \
785
+ (itclIntStubsPtr->itcl_StubExistsCmd) /* 29 */
786
+ #define Itcl_IsStub \
787
+ (itclIntStubsPtr->itcl_IsStub) /* 30 */
788
+ #define Itcl_CreateClass \
789
+ (itclIntStubsPtr->itcl_CreateClass) /* 31 */
790
+ #define Itcl_DeleteClass \
791
+ (itclIntStubsPtr->itcl_DeleteClass) /* 32 */
792
+ #define Itcl_FindClassNamespace \
793
+ (itclIntStubsPtr->itcl_FindClassNamespace) /* 33 */
794
+ #define Itcl_HandleClass \
795
+ (itclIntStubsPtr->itcl_HandleClass) /* 34 */
796
+ /* Slot 35 is reserved */
797
+ /* Slot 36 is reserved */
798
+ /* Slot 37 is reserved */
799
+ #define Itcl_BuildVirtualTables \
800
+ (itclIntStubsPtr->itcl_BuildVirtualTables) /* 38 */
801
+ #define Itcl_CreateVariable \
802
+ (itclIntStubsPtr->itcl_CreateVariable) /* 39 */
803
+ #define Itcl_DeleteVariable \
804
+ (itclIntStubsPtr->itcl_DeleteVariable) /* 40 */
805
+ #define Itcl_GetCommonVar \
806
+ (itclIntStubsPtr->itcl_GetCommonVar) /* 41 */
807
+ /* Slot 42 is reserved */
808
+ /* Slot 43 is reserved */
809
+ #define Itcl_CreateObject \
810
+ (itclIntStubsPtr->itcl_CreateObject) /* 44 */
811
+ #define Itcl_DeleteObject \
812
+ (itclIntStubsPtr->itcl_DeleteObject) /* 45 */
813
+ #define Itcl_DestructObject \
814
+ (itclIntStubsPtr->itcl_DestructObject) /* 46 */
815
+ /* Slot 47 is reserved */
816
+ #define Itcl_GetInstanceVar \
817
+ (itclIntStubsPtr->itcl_GetInstanceVar) /* 48 */
818
+ /* Slot 49 is reserved */
819
+ #define Itcl_BodyCmd \
820
+ (itclIntStubsPtr->itcl_BodyCmd) /* 50 */
821
+ #define Itcl_ConfigBodyCmd \
822
+ (itclIntStubsPtr->itcl_ConfigBodyCmd) /* 51 */
823
+ #define Itcl_CreateMethod \
824
+ (itclIntStubsPtr->itcl_CreateMethod) /* 52 */
825
+ #define Itcl_CreateProc \
826
+ (itclIntStubsPtr->itcl_CreateProc) /* 53 */
827
+ #define Itcl_CreateMemberFunc \
828
+ (itclIntStubsPtr->itcl_CreateMemberFunc) /* 54 */
829
+ #define Itcl_ChangeMemberFunc \
830
+ (itclIntStubsPtr->itcl_ChangeMemberFunc) /* 55 */
831
+ #define Itcl_DeleteMemberFunc \
832
+ (itclIntStubsPtr->itcl_DeleteMemberFunc) /* 56 */
833
+ #define Itcl_CreateMemberCode \
834
+ (itclIntStubsPtr->itcl_CreateMemberCode) /* 57 */
835
+ #define Itcl_DeleteMemberCode \
836
+ (itclIntStubsPtr->itcl_DeleteMemberCode) /* 58 */
837
+ #define Itcl_GetMemberCode \
838
+ (itclIntStubsPtr->itcl_GetMemberCode) /* 59 */
839
+ /* Slot 60 is reserved */
840
+ #define Itcl_EvalMemberCode \
841
+ (itclIntStubsPtr->itcl_EvalMemberCode) /* 61 */
842
+ /* Slot 62 is reserved */
843
+ /* Slot 63 is reserved */
844
+ /* Slot 64 is reserved */
845
+ /* Slot 65 is reserved */
846
+ /* Slot 66 is reserved */
847
+ #define Itcl_GetMemberFuncUsage \
848
+ (itclIntStubsPtr->itcl_GetMemberFuncUsage) /* 67 */
849
+ #define Itcl_ExecMethod \
850
+ (itclIntStubsPtr->itcl_ExecMethod) /* 68 */
851
+ #define Itcl_ExecProc \
852
+ (itclIntStubsPtr->itcl_ExecProc) /* 69 */
853
+ /* Slot 70 is reserved */
854
+ #define Itcl_ConstructBase \
855
+ (itclIntStubsPtr->itcl_ConstructBase) /* 71 */
856
+ #define Itcl_InvokeMethodIfExists \
857
+ (itclIntStubsPtr->itcl_InvokeMethodIfExists) /* 72 */
858
+ /* Slot 73 is reserved */
859
+ #define Itcl_ReportFuncErrors \
860
+ (itclIntStubsPtr->itcl_ReportFuncErrors) /* 74 */
861
+ #define Itcl_ParseInit \
862
+ (itclIntStubsPtr->itcl_ParseInit) /* 75 */
863
+ #define Itcl_ClassCmd \
864
+ (itclIntStubsPtr->itcl_ClassCmd) /* 76 */
865
+ #define Itcl_ClassInheritCmd \
866
+ (itclIntStubsPtr->itcl_ClassInheritCmd) /* 77 */
867
+ #define Itcl_ClassProtectionCmd \
868
+ (itclIntStubsPtr->itcl_ClassProtectionCmd) /* 78 */
869
+ #define Itcl_ClassConstructorCmd \
870
+ (itclIntStubsPtr->itcl_ClassConstructorCmd) /* 79 */
871
+ #define Itcl_ClassDestructorCmd \
872
+ (itclIntStubsPtr->itcl_ClassDestructorCmd) /* 80 */
873
+ #define Itcl_ClassMethodCmd \
874
+ (itclIntStubsPtr->itcl_ClassMethodCmd) /* 81 */
875
+ #define Itcl_ClassProcCmd \
876
+ (itclIntStubsPtr->itcl_ClassProcCmd) /* 82 */
877
+ #define Itcl_ClassVariableCmd \
878
+ (itclIntStubsPtr->itcl_ClassVariableCmd) /* 83 */
879
+ #define Itcl_ClassCommonCmd \
880
+ (itclIntStubsPtr->itcl_ClassCommonCmd) /* 84 */
881
+ #define Itcl_ParseVarResolver \
882
+ (itclIntStubsPtr->itcl_ParseVarResolver) /* 85 */
883
+ #define Itcl_BiInit \
884
+ (itclIntStubsPtr->itcl_BiInit) /* 86 */
885
+ #define Itcl_InstallBiMethods \
886
+ (itclIntStubsPtr->itcl_InstallBiMethods) /* 87 */
887
+ #define Itcl_BiIsaCmd \
888
+ (itclIntStubsPtr->itcl_BiIsaCmd) /* 88 */
889
+ #define Itcl_BiConfigureCmd \
890
+ (itclIntStubsPtr->itcl_BiConfigureCmd) /* 89 */
891
+ #define Itcl_BiCgetCmd \
892
+ (itclIntStubsPtr->itcl_BiCgetCmd) /* 90 */
893
+ #define Itcl_BiChainCmd \
894
+ (itclIntStubsPtr->itcl_BiChainCmd) /* 91 */
895
+ #define Itcl_BiInfoClassCmd \
896
+ (itclIntStubsPtr->itcl_BiInfoClassCmd) /* 92 */
897
+ #define Itcl_BiInfoInheritCmd \
898
+ (itclIntStubsPtr->itcl_BiInfoInheritCmd) /* 93 */
899
+ #define Itcl_BiInfoHeritageCmd \
900
+ (itclIntStubsPtr->itcl_BiInfoHeritageCmd) /* 94 */
901
+ #define Itcl_BiInfoFunctionCmd \
902
+ (itclIntStubsPtr->itcl_BiInfoFunctionCmd) /* 95 */
903
+ #define Itcl_BiInfoVariableCmd \
904
+ (itclIntStubsPtr->itcl_BiInfoVariableCmd) /* 96 */
905
+ #define Itcl_BiInfoBodyCmd \
906
+ (itclIntStubsPtr->itcl_BiInfoBodyCmd) /* 97 */
907
+ #define Itcl_BiInfoArgsCmd \
908
+ (itclIntStubsPtr->itcl_BiInfoArgsCmd) /* 98 */
909
+ /* Slot 99 is reserved */
910
+ #define Itcl_EnsembleInit \
911
+ (itclIntStubsPtr->itcl_EnsembleInit) /* 100 */
912
+ #define Itcl_CreateEnsemble \
913
+ (itclIntStubsPtr->itcl_CreateEnsemble) /* 101 */
914
+ #define Itcl_AddEnsemblePart \
915
+ (itclIntStubsPtr->itcl_AddEnsemblePart) /* 102 */
916
+ #define Itcl_GetEnsemblePart \
917
+ (itclIntStubsPtr->itcl_GetEnsemblePart) /* 103 */
918
+ #define Itcl_IsEnsemble \
919
+ (itclIntStubsPtr->itcl_IsEnsemble) /* 104 */
920
+ #define Itcl_GetEnsembleUsage \
921
+ (itclIntStubsPtr->itcl_GetEnsembleUsage) /* 105 */
922
+ #define Itcl_GetEnsembleUsageForObj \
923
+ (itclIntStubsPtr->itcl_GetEnsembleUsageForObj) /* 106 */
924
+ #define Itcl_EnsembleCmd \
925
+ (itclIntStubsPtr->itcl_EnsembleCmd) /* 107 */
926
+ #define Itcl_EnsPartCmd \
927
+ (itclIntStubsPtr->itcl_EnsPartCmd) /* 108 */
928
+ #define Itcl_EnsembleErrorCmd \
929
+ (itclIntStubsPtr->itcl_EnsembleErrorCmd) /* 109 */
930
+ /* Slot 110 is reserved */
931
+ /* Slot 111 is reserved */
932
+ /* Slot 112 is reserved */
933
+ /* Slot 113 is reserved */
934
+ /* Slot 114 is reserved */
935
+ #define Itcl_Assert \
936
+ (itclIntStubsPtr->itcl_Assert) /* 115 */
937
+ #define Itcl_IsObjectCmd \
938
+ (itclIntStubsPtr->itcl_IsObjectCmd) /* 116 */
939
+ #define Itcl_IsClassCmd \
940
+ (itclIntStubsPtr->itcl_IsClassCmd) /* 117 */
941
+ /* Slot 118 is reserved */
942
+ /* Slot 119 is reserved */
943
+ /* Slot 120 is reserved */
944
+ /* Slot 121 is reserved */
945
+ /* Slot 122 is reserved */
946
+ /* Slot 123 is reserved */
947
+ /* Slot 124 is reserved */
948
+ /* Slot 125 is reserved */
949
+ /* Slot 126 is reserved */
950
+ /* Slot 127 is reserved */
951
+ /* Slot 128 is reserved */
952
+ /* Slot 129 is reserved */
953
+ /* Slot 130 is reserved */
954
+ /* Slot 131 is reserved */
955
+ /* Slot 132 is reserved */
956
+ /* Slot 133 is reserved */
957
+ /* Slot 134 is reserved */
958
+ /* Slot 135 is reserved */
959
+ /* Slot 136 is reserved */
960
+ /* Slot 137 is reserved */
961
+ /* Slot 138 is reserved */
962
+ /* Slot 139 is reserved */
963
+ #define Itcl_FilterAddCmd \
964
+ (itclIntStubsPtr->itcl_FilterAddCmd) /* 140 */
965
+ #define Itcl_FilterDeleteCmd \
966
+ (itclIntStubsPtr->itcl_FilterDeleteCmd) /* 141 */
967
+ #define Itcl_ForwardAddCmd \
968
+ (itclIntStubsPtr->itcl_ForwardAddCmd) /* 142 */
969
+ #define Itcl_ForwardDeleteCmd \
970
+ (itclIntStubsPtr->itcl_ForwardDeleteCmd) /* 143 */
971
+ #define Itcl_MixinAddCmd \
972
+ (itclIntStubsPtr->itcl_MixinAddCmd) /* 144 */
973
+ #define Itcl_MixinDeleteCmd \
974
+ (itclIntStubsPtr->itcl_MixinDeleteCmd) /* 145 */
975
+ /* Slot 146 is reserved */
976
+ /* Slot 147 is reserved */
977
+ /* Slot 148 is reserved */
978
+ /* Slot 149 is reserved */
979
+ /* Slot 150 is reserved */
980
+ #define Itcl_BiInfoUnknownCmd \
981
+ (itclIntStubsPtr->itcl_BiInfoUnknownCmd) /* 151 */
982
+ #define Itcl_BiInfoVarsCmd \
983
+ (itclIntStubsPtr->itcl_BiInfoVarsCmd) /* 152 */
984
+ #define Itcl_CanAccess2 \
985
+ (itclIntStubsPtr->itcl_CanAccess2) /* 153 */
986
+ /* Slot 154 is reserved */
987
+ /* Slot 155 is reserved */
988
+ /* Slot 156 is reserved */
989
+ /* Slot 157 is reserved */
990
+ /* Slot 158 is reserved */
991
+ /* Slot 159 is reserved */
992
+ #define Itcl_SetCallFrameResolver \
993
+ (itclIntStubsPtr->itcl_SetCallFrameResolver) /* 160 */
994
+ #define ItclEnsembleSubCmd \
995
+ (itclIntStubsPtr->itclEnsembleSubCmd) /* 161 */
996
+ #define Itcl_GetUplevelNamespace \
997
+ (itclIntStubsPtr->itcl_GetUplevelNamespace) /* 162 */
998
+ #define Itcl_GetCallFrameClientData \
999
+ (itclIntStubsPtr->itcl_GetCallFrameClientData) /* 163 */
1000
+ /* Slot 164 is reserved */
1001
+ #define Itcl_SetCallFrameNamespace \
1002
+ (itclIntStubsPtr->itcl_SetCallFrameNamespace) /* 165 */
1003
+ #define Itcl_GetCallFrameObjc \
1004
+ (itclIntStubsPtr->itcl_GetCallFrameObjc) /* 166 */
1005
+ #define Itcl_GetCallFrameObjv \
1006
+ (itclIntStubsPtr->itcl_GetCallFrameObjv) /* 167 */
1007
+ #define Itcl_NWidgetCmd \
1008
+ (itclIntStubsPtr->itcl_NWidgetCmd) /* 168 */
1009
+ #define Itcl_AddOptionCmd \
1010
+ (itclIntStubsPtr->itcl_AddOptionCmd) /* 169 */
1011
+ #define Itcl_AddComponentCmd \
1012
+ (itclIntStubsPtr->itcl_AddComponentCmd) /* 170 */
1013
+ #define Itcl_BiInfoOptionCmd \
1014
+ (itclIntStubsPtr->itcl_BiInfoOptionCmd) /* 171 */
1015
+ #define Itcl_BiInfoComponentCmd \
1016
+ (itclIntStubsPtr->itcl_BiInfoComponentCmd) /* 172 */
1017
+ #define Itcl_RenameCommand \
1018
+ (itclIntStubsPtr->itcl_RenameCommand) /* 173 */
1019
+ #define Itcl_PushCallFrame \
1020
+ (itclIntStubsPtr->itcl_PushCallFrame) /* 174 */
1021
+ #define Itcl_PopCallFrame \
1022
+ (itclIntStubsPtr->itcl_PopCallFrame) /* 175 */
1023
+ #define Itcl_GetUplevelCallFrame \
1024
+ (itclIntStubsPtr->itcl_GetUplevelCallFrame) /* 176 */
1025
+ #define Itcl_ActivateCallFrame \
1026
+ (itclIntStubsPtr->itcl_ActivateCallFrame) /* 177 */
1027
+ #define ItclSetInstanceVar \
1028
+ (itclIntStubsPtr->itclSetInstanceVar) /* 178 */
1029
+ #define ItclCapitalize \
1030
+ (itclIntStubsPtr->itclCapitalize) /* 179 */
1031
+ #define ItclClassBaseCmd \
1032
+ (itclIntStubsPtr->itclClassBaseCmd) /* 180 */
1033
+ #define ItclCreateComponent \
1034
+ (itclIntStubsPtr->itclCreateComponent) /* 181 */
1035
+ #define Itcl_SetContext \
1036
+ (itclIntStubsPtr->itcl_SetContext) /* 182 */
1037
+ #define Itcl_UnsetContext \
1038
+ (itclIntStubsPtr->itcl_UnsetContext) /* 183 */
1039
+ #define ItclGetInstanceVar \
1040
+ (itclIntStubsPtr->itclGetInstanceVar) /* 184 */
1041
+
1042
+ #endif /* defined(USE_ITCL_STUBS) */
1043
+
1044
+ /* !END!: Do not edit above this line. */
1045
+
1046
+ #endif /* _ITCLINTDECLS */
my_container_sandbox/workspace/anaconda3/include/lzma.h ADDED
@@ -0,0 +1,328 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * \file api/lzma.h
3
+ * \brief The public API of liblzma data compression library
4
+ * \mainpage
5
+ *
6
+ * liblzma is a public domain general-purpose data compression library with
7
+ * a zlib-like API. The native file format is .xz, but also the old .lzma
8
+ * format and raw (no headers) streams are supported. Multiple compression
9
+ * algorithms (filters) are supported. Currently LZMA2 is the primary filter.
10
+ *
11
+ * liblzma is part of XZ Utils <https://xz.tukaani.org/xz-utils/>. XZ Utils
12
+ * includes a gzip-like command line tool named xz and some other tools.
13
+ * XZ Utils is developed and maintained by Lasse Collin and Jia Tan.
14
+ *
15
+ * Major parts of liblzma are based on Igor Pavlov's public domain LZMA SDK
16
+ * <https://7-zip.org/sdk.html>.
17
+ *
18
+ * The SHA-256 implementation is based on the public domain code found from
19
+ * 7-Zip <https://7-zip.org/>, which has a modified version of the public
20
+ * domain SHA-256 code found from Crypto++ <https://www.cryptopp.com/>.
21
+ * The SHA-256 code in Crypto++ was written by Kevin Springle and Wei Dai.
22
+ */
23
+
24
+ /*
25
+ * Author: Lasse Collin
26
+ *
27
+ * This file has been put into the public domain.
28
+ * You can do whatever you want with this file.
29
+ */
30
+
31
+ #ifndef LZMA_H
32
+ #define LZMA_H
33
+
34
+ /*****************************
35
+ * Required standard headers *
36
+ *****************************/
37
+
38
+ /*
39
+ * liblzma API headers need some standard types and macros. To allow
40
+ * including lzma.h without requiring the application to include other
41
+ * headers first, lzma.h includes the required standard headers unless
42
+ * they already seem to be included already or if LZMA_MANUAL_HEADERS
43
+ * has been defined.
44
+ *
45
+ * Here's what types and macros are needed and from which headers:
46
+ * - stddef.h: size_t, NULL
47
+ * - stdint.h: uint8_t, uint32_t, uint64_t, UINT32_C(n), uint64_C(n),
48
+ * UINT32_MAX, UINT64_MAX
49
+ *
50
+ * However, inttypes.h is a little more portable than stdint.h, although
51
+ * inttypes.h declares some unneeded things compared to plain stdint.h.
52
+ *
53
+ * The hacks below aren't perfect, specifically they assume that inttypes.h
54
+ * exists and that it typedefs at least uint8_t, uint32_t, and uint64_t,
55
+ * and that, in case of incomplete inttypes.h, unsigned int is 32-bit.
56
+ * If the application already takes care of setting up all the types and
57
+ * macros properly (for example by using gnulib's stdint.h or inttypes.h),
58
+ * we try to detect that the macros are already defined and don't include
59
+ * inttypes.h here again. However, you may define LZMA_MANUAL_HEADERS to
60
+ * force this file to never include any system headers.
61
+ *
62
+ * Some could argue that liblzma API should provide all the required types,
63
+ * for example lzma_uint64, LZMA_UINT64_C(n), and LZMA_UINT64_MAX. This was
64
+ * seen as an unnecessary mess, since most systems already provide all the
65
+ * necessary types and macros in the standard headers.
66
+ *
67
+ * Note that liblzma API still has lzma_bool, because using stdbool.h would
68
+ * break C89 and C++ programs on many systems. sizeof(bool) in C99 isn't
69
+ * necessarily the same as sizeof(bool) in C++.
70
+ */
71
+
72
+ #ifndef LZMA_MANUAL_HEADERS
73
+ /*
74
+ * I suppose this works portably also in C++. Note that in C++,
75
+ * we need to get size_t into the global namespace.
76
+ */
77
+ # include <stddef.h>
78
+
79
+ /*
80
+ * Skip inttypes.h if we already have all the required macros. If we
81
+ * have the macros, we assume that we have the matching typedefs too.
82
+ */
83
+ # if !defined(UINT32_C) || !defined(UINT64_C) \
84
+ || !defined(UINT32_MAX) || !defined(UINT64_MAX)
85
+ /*
86
+ * MSVC versions older than 2013 have no C99 support, and
87
+ * thus they cannot be used to compile liblzma. Using an
88
+ * existing liblzma.dll with old MSVC can work though(*),
89
+ * but we need to define the required standard integer
90
+ * types here in a MSVC-specific way.
91
+ *
92
+ * (*) If you do this, the existing liblzma.dll probably uses
93
+ * a different runtime library than your MSVC-built
94
+ * application. Mixing runtimes is generally bad, but
95
+ * in this case it should work as long as you avoid
96
+ * the few rarely-needed liblzma functions that allocate
97
+ * memory and expect the caller to free it using free().
98
+ */
99
+ # if defined(_WIN32) && defined(_MSC_VER) && _MSC_VER < 1800
100
+ typedef unsigned __int8 uint8_t;
101
+ typedef unsigned __int32 uint32_t;
102
+ typedef unsigned __int64 uint64_t;
103
+ # else
104
+ /* Use the standard inttypes.h. */
105
+ # ifdef __cplusplus
106
+ /*
107
+ * C99 sections 7.18.2 and 7.18.4 specify
108
+ * that C++ implementations define the limit
109
+ * and constant macros only if specifically
110
+ * requested. Note that if you want the
111
+ * format macros (PRIu64 etc.) too, you need
112
+ * to define __STDC_FORMAT_MACROS before
113
+ * including lzma.h, since re-including
114
+ * inttypes.h with __STDC_FORMAT_MACROS
115
+ * defined doesn't necessarily work.
116
+ */
117
+ # ifndef __STDC_LIMIT_MACROS
118
+ # define __STDC_LIMIT_MACROS 1
119
+ # endif
120
+ # ifndef __STDC_CONSTANT_MACROS
121
+ # define __STDC_CONSTANT_MACROS 1
122
+ # endif
123
+ # endif
124
+
125
+ # include <inttypes.h>
126
+ # endif
127
+
128
+ /*
129
+ * Some old systems have only the typedefs in inttypes.h, and
130
+ * lack all the macros. For those systems, we need a few more
131
+ * hacks. We assume that unsigned int is 32-bit and unsigned
132
+ * long is either 32-bit or 64-bit. If these hacks aren't
133
+ * enough, the application has to setup the types manually
134
+ * before including lzma.h.
135
+ */
136
+ # ifndef UINT32_C
137
+ # if defined(_WIN32) && defined(_MSC_VER)
138
+ # define UINT32_C(n) n ## UI32
139
+ # else
140
+ # define UINT32_C(n) n ## U
141
+ # endif
142
+ # endif
143
+
144
+ # ifndef UINT64_C
145
+ # if defined(_WIN32) && defined(_MSC_VER)
146
+ # define UINT64_C(n) n ## UI64
147
+ # else
148
+ /* Get ULONG_MAX. */
149
+ # include <limits.h>
150
+ # if ULONG_MAX == 4294967295UL
151
+ # define UINT64_C(n) n ## ULL
152
+ # else
153
+ # define UINT64_C(n) n ## UL
154
+ # endif
155
+ # endif
156
+ # endif
157
+
158
+ # ifndef UINT32_MAX
159
+ # define UINT32_MAX (UINT32_C(4294967295))
160
+ # endif
161
+
162
+ # ifndef UINT64_MAX
163
+ # define UINT64_MAX (UINT64_C(18446744073709551615))
164
+ # endif
165
+ # endif
166
+ #endif /* ifdef LZMA_MANUAL_HEADERS */
167
+
168
+
169
+ /******************
170
+ * LZMA_API macro *
171
+ ******************/
172
+
173
+ /*
174
+ * Some systems require that the functions and function pointers are
175
+ * declared specially in the headers. LZMA_API_IMPORT is for importing
176
+ * symbols and LZMA_API_CALL is to specify the calling convention.
177
+ *
178
+ * By default it is assumed that the application will link dynamically
179
+ * against liblzma. #define LZMA_API_STATIC in your application if you
180
+ * want to link against static liblzma. If you don't care about portability
181
+ * to operating systems like Windows, or at least don't care about linking
182
+ * against static liblzma on them, don't worry about LZMA_API_STATIC. That
183
+ * is, most developers will never need to use LZMA_API_STATIC.
184
+ *
185
+ * The GCC variants are a special case on Windows (Cygwin and MinGW-w64).
186
+ * We rely on GCC doing the right thing with its auto-import feature,
187
+ * and thus don't use __declspec(dllimport). This way developers don't
188
+ * need to worry about LZMA_API_STATIC. Also the calling convention is
189
+ * omitted on Cygwin but not on MinGW-w64.
190
+ */
191
+ #ifndef LZMA_API_IMPORT
192
+ # if !defined(LZMA_API_STATIC) && defined(_WIN32) && !defined(__GNUC__)
193
+ # define LZMA_API_IMPORT __declspec(dllimport)
194
+ # else
195
+ # define LZMA_API_IMPORT
196
+ # endif
197
+ #endif
198
+
199
+ #ifndef LZMA_API_CALL
200
+ # if defined(_WIN32) && !defined(__CYGWIN__)
201
+ # define LZMA_API_CALL __cdecl
202
+ # else
203
+ # define LZMA_API_CALL
204
+ # endif
205
+ #endif
206
+
207
+ #ifndef LZMA_API
208
+ # define LZMA_API(type) LZMA_API_IMPORT type LZMA_API_CALL
209
+ #endif
210
+
211
+
212
+ /***********
213
+ * nothrow *
214
+ ***********/
215
+
216
+ /*
217
+ * None of the functions in liblzma may throw an exception. Even
218
+ * the functions that use callback functions won't throw exceptions,
219
+ * because liblzma would break if a callback function threw an exception.
220
+ */
221
+ #ifndef lzma_nothrow
222
+ # if defined(__cplusplus)
223
+ # if __cplusplus >= 201103L || (defined(_MSVC_LANG) \
224
+ && _MSVC_LANG >= 201103L)
225
+ # define lzma_nothrow noexcept
226
+ # else
227
+ # define lzma_nothrow throw()
228
+ # endif
229
+ # elif defined(__GNUC__) && (__GNUC__ > 3 \
230
+ || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3))
231
+ # define lzma_nothrow __attribute__((__nothrow__))
232
+ # else
233
+ # define lzma_nothrow
234
+ # endif
235
+ #endif
236
+
237
+
238
+ /********************
239
+ * GNU C extensions *
240
+ ********************/
241
+
242
+ /*
243
+ * GNU C extensions are used conditionally in the public API. It doesn't
244
+ * break anything if these are sometimes enabled and sometimes not, only
245
+ * affects warnings and optimizations.
246
+ */
247
+ #if defined(__GNUC__) && __GNUC__ >= 3
248
+ # ifndef lzma_attribute
249
+ # define lzma_attribute(attr) __attribute__(attr)
250
+ # endif
251
+
252
+ /* warn_unused_result was added in GCC 3.4. */
253
+ # ifndef lzma_attr_warn_unused_result
254
+ # if __GNUC__ == 3 && __GNUC_MINOR__ < 4
255
+ # define lzma_attr_warn_unused_result
256
+ # endif
257
+ # endif
258
+
259
+ #else
260
+ # ifndef lzma_attribute
261
+ # define lzma_attribute(attr)
262
+ # endif
263
+ #endif
264
+
265
+
266
+ #ifndef lzma_attr_pure
267
+ # define lzma_attr_pure lzma_attribute((__pure__))
268
+ #endif
269
+
270
+ #ifndef lzma_attr_const
271
+ # define lzma_attr_const lzma_attribute((__const__))
272
+ #endif
273
+
274
+ #ifndef lzma_attr_warn_unused_result
275
+ # define lzma_attr_warn_unused_result \
276
+ lzma_attribute((__warn_unused_result__))
277
+ #endif
278
+
279
+
280
+ /**************
281
+ * Subheaders *
282
+ **************/
283
+
284
+ #ifdef __cplusplus
285
+ extern "C" {
286
+ #endif
287
+
288
+ /*
289
+ * Subheaders check that this is defined. It is to prevent including
290
+ * them directly from applications.
291
+ */
292
+ #define LZMA_H_INTERNAL 1
293
+
294
+ /* Basic features */
295
+ #include "lzma/version.h"
296
+ #include "lzma/base.h"
297
+ #include "lzma/vli.h"
298
+ #include "lzma/check.h"
299
+
300
+ /* Filters */
301
+ #include "lzma/filter.h"
302
+ #include "lzma/bcj.h"
303
+ #include "lzma/delta.h"
304
+ #include "lzma/lzma12.h"
305
+
306
+ /* Container formats */
307
+ #include "lzma/container.h"
308
+
309
+ /* Advanced features */
310
+ #include "lzma/stream_flags.h"
311
+ #include "lzma/block.h"
312
+ #include "lzma/index.h"
313
+ #include "lzma/index_hash.h"
314
+
315
+ /* Hardware information */
316
+ #include "lzma/hardware.h"
317
+
318
+ /*
319
+ * All subheaders included. Undefine LZMA_H_INTERNAL to prevent applications
320
+ * re-including the subheaders.
321
+ */
322
+ #undef LZMA_H_INTERNAL
323
+
324
+ #ifdef __cplusplus
325
+ }
326
+ #endif
327
+
328
+ #endif /* ifndef LZMA_H */
my_container_sandbox/workspace/anaconda3/include/menu.h ADDED
@@ -0,0 +1,281 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /****************************************************************************
2
+ * Copyright 2020 Thomas E. Dickey *
3
+ * Copyright 1998-2016,2017 Free Software Foundation, Inc. *
4
+ * *
5
+ * Permission is hereby granted, free of charge, to any person obtaining a *
6
+ * copy of this software and associated documentation files (the *
7
+ * "Software"), to deal in the Software without restriction, including *
8
+ * without limitation the rights to use, copy, modify, merge, publish, *
9
+ * distribute, distribute with modifications, sublicense, and/or sell *
10
+ * copies of the Software, and to permit persons to whom the Software is *
11
+ * furnished to do so, subject to the following conditions: *
12
+ * *
13
+ * The above copyright notice and this permission notice shall be included *
14
+ * in all copies or substantial portions of the Software. *
15
+ * *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
17
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
18
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
19
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
20
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
21
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
22
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
23
+ * *
24
+ * Except as contained in this notice, the name(s) of the above copyright *
25
+ * holders shall not be used in advertising or otherwise to promote the *
26
+ * sale, use or other dealings in this Software without prior written *
27
+ * authorization. *
28
+ ****************************************************************************/
29
+
30
+ /****************************************************************************
31
+ * Author: Juergen Pfeifer, 1995,1997 *
32
+ ****************************************************************************/
33
+
34
+ /* $Id: menu.h,v 1.26 2020/12/12 00:38:02 tom Exp $ */
35
+
36
+ #ifndef ETI_MENU
37
+ #define ETI_MENU
38
+
39
+ #ifdef AMIGA
40
+ #define TEXT TEXT_ncurses
41
+ #endif
42
+
43
+ #include <ncursesw/curses.h>
44
+ #include <ncursesw/eti.h>
45
+
46
+ #ifdef __cplusplus
47
+ extern "C"
48
+ {
49
+ #endif
50
+
51
+ #if defined(BUILDING_MENU)
52
+ # define MENU_IMPEXP NCURSES_EXPORT_GENERAL_EXPORT
53
+ #else
54
+ # define MENU_IMPEXP NCURSES_EXPORT_GENERAL_IMPORT
55
+ #endif
56
+
57
+ #define MENU_WRAPPED_VAR(type,name) extern MENU_IMPEXP type NCURSES_PUBLIC_VAR(name)(void)
58
+
59
+ #define MENU_EXPORT(type) MENU_IMPEXP type NCURSES_API
60
+ #define MENU_EXPORT_VAR(type) MENU_IMPEXP type
61
+
62
+ typedef int Menu_Options;
63
+ typedef int Item_Options;
64
+
65
+ /* Menu options: */
66
+ #define O_ONEVALUE (0x01)
67
+ #define O_SHOWDESC (0x02)
68
+ #define O_ROWMAJOR (0x04)
69
+ #define O_IGNORECASE (0x08)
70
+ #define O_SHOWMATCH (0x10)
71
+ #define O_NONCYCLIC (0x20)
72
+ #define O_MOUSE_MENU (0x40)
73
+
74
+ /* Item options: */
75
+ #define O_SELECTABLE (0x01)
76
+
77
+ #if !NCURSES_OPAQUE_MENU
78
+ typedef struct
79
+ {
80
+ const char *str;
81
+ unsigned short length;
82
+ }
83
+ TEXT;
84
+ #endif /* !NCURSES_OPAQUE_MENU */
85
+
86
+ struct tagMENU;
87
+
88
+ typedef struct tagITEM
89
+ #if !NCURSES_OPAQUE_MENU
90
+ {
91
+ TEXT name; /* name of menu item */
92
+ TEXT description; /* description of item, optional in display */
93
+ struct tagMENU *imenu; /* Pointer to parent menu */
94
+ void *userptr; /* Pointer to user defined per item data */
95
+ Item_Options opt; /* Item options */
96
+ short index; /* Item number if connected to a menu */
97
+ short y; /* y and x location of item in menu */
98
+ short x;
99
+ bool value; /* Selection value */
100
+
101
+ struct tagITEM *left; /* neighbor items */
102
+ struct tagITEM *right;
103
+ struct tagITEM *up;
104
+ struct tagITEM *down;
105
+
106
+ }
107
+ #endif /* !NCURSES_OPAQUE_MENU */
108
+ ITEM;
109
+
110
+ typedef void (*Menu_Hook) (struct tagMENU *);
111
+
112
+ typedef struct tagMENU
113
+ #if 1 /* not yet: !NCURSES_OPAQUE_MENU */
114
+ {
115
+ short height; /* Nr. of chars high */
116
+ short width; /* Nr. of chars wide */
117
+ short rows; /* Nr. of items high */
118
+ short cols; /* Nr. of items wide */
119
+ short frows; /* Nr. of formatted items high */
120
+ short fcols; /* Nr. of formatted items wide */
121
+ short arows; /* Nr. of items high (actual) */
122
+ short namelen; /* Max. name length */
123
+ short desclen; /* Max. description length */
124
+ short marklen; /* Length of mark, if any */
125
+ short itemlen; /* Length of one item */
126
+ short spc_desc; /* Spacing for descriptor */
127
+ short spc_cols; /* Spacing for columns */
128
+ short spc_rows; /* Spacing for rows */
129
+ char *pattern; /* Buffer to store match chars */
130
+ short pindex; /* Index into pattern buffer */
131
+ WINDOW *win; /* Window containing menu */
132
+ WINDOW *sub; /* Subwindow for menu display */
133
+ WINDOW *userwin; /* User's window */
134
+ WINDOW *usersub; /* User's subwindow */
135
+ ITEM **items; /* array of items */
136
+ short nitems; /* Nr. of items in menu */
137
+ ITEM *curitem; /* Current item */
138
+ short toprow; /* Top row of menu */
139
+ chtype fore; /* Selection attribute */
140
+ chtype back; /* Nonselection attribute */
141
+ chtype grey; /* Inactive attribute */
142
+ unsigned char pad; /* Pad character */
143
+
144
+ Menu_Hook menuinit; /* User hooks */
145
+ Menu_Hook menuterm;
146
+ Menu_Hook iteminit;
147
+ Menu_Hook itemterm;
148
+
149
+ void *userptr; /* Pointer to menus user data */
150
+ char *mark; /* Pointer to marker string */
151
+
152
+ Menu_Options opt; /* Menu options */
153
+ unsigned short status; /* Internal state of menu */
154
+ }
155
+ #endif /* !NCURSES_OPAQUE_MENU */
156
+ MENU;
157
+
158
+ /* Define keys */
159
+
160
+ #define REQ_LEFT_ITEM (KEY_MAX + 1)
161
+ #define REQ_RIGHT_ITEM (KEY_MAX + 2)
162
+ #define REQ_UP_ITEM (KEY_MAX + 3)
163
+ #define REQ_DOWN_ITEM (KEY_MAX + 4)
164
+ #define REQ_SCR_ULINE (KEY_MAX + 5)
165
+ #define REQ_SCR_DLINE (KEY_MAX + 6)
166
+ #define REQ_SCR_DPAGE (KEY_MAX + 7)
167
+ #define REQ_SCR_UPAGE (KEY_MAX + 8)
168
+ #define REQ_FIRST_ITEM (KEY_MAX + 9)
169
+ #define REQ_LAST_ITEM (KEY_MAX + 10)
170
+ #define REQ_NEXT_ITEM (KEY_MAX + 11)
171
+ #define REQ_PREV_ITEM (KEY_MAX + 12)
172
+ #define REQ_TOGGLE_ITEM (KEY_MAX + 13)
173
+ #define REQ_CLEAR_PATTERN (KEY_MAX + 14)
174
+ #define REQ_BACK_PATTERN (KEY_MAX + 15)
175
+ #define REQ_NEXT_MATCH (KEY_MAX + 16)
176
+ #define REQ_PREV_MATCH (KEY_MAX + 17)
177
+
178
+ #define MIN_MENU_COMMAND (KEY_MAX + 1)
179
+ #define MAX_MENU_COMMAND (KEY_MAX + 17)
180
+
181
+ /*
182
+ * Some AT&T code expects MAX_COMMAND to be out-of-band not
183
+ * just for menu commands but for forms ones as well.
184
+ */
185
+ #if defined(MAX_COMMAND)
186
+ # if (MAX_MENU_COMMAND > MAX_COMMAND)
187
+ # error Something is wrong -- MAX_MENU_COMMAND is greater than MAX_COMMAND
188
+ # elif (MAX_COMMAND != (KEY_MAX + 128))
189
+ # error Something is wrong -- MAX_COMMAND is already inconsistently defined.
190
+ # endif
191
+ #else
192
+ # define MAX_COMMAND (KEY_MAX + 128)
193
+ #endif
194
+
195
+ /* --------- prototypes for libmenu functions ----------------------------- */
196
+
197
+ extern MENU_EXPORT(ITEM **) menu_items(const MENU *);
198
+ extern MENU_EXPORT(ITEM *) current_item(const MENU *);
199
+ extern MENU_EXPORT(ITEM *) new_item(const char *, const char *);
200
+
201
+ extern MENU_EXPORT(MENU *) new_menu(ITEM **);
202
+
203
+ extern MENU_EXPORT(Item_Options) item_opts(const ITEM *);
204
+ extern MENU_EXPORT(Menu_Options) menu_opts(const MENU *);
205
+
206
+ extern MENU_EXPORT(Menu_Hook) item_init(const MENU *);
207
+ extern MENU_EXPORT(Menu_Hook) item_term(const MENU *);
208
+ extern MENU_EXPORT(Menu_Hook) menu_init(const MENU *);
209
+ extern MENU_EXPORT(Menu_Hook) menu_term(const MENU *);
210
+
211
+ extern MENU_EXPORT(WINDOW *) menu_sub(const MENU *);
212
+ extern MENU_EXPORT(WINDOW *) menu_win(const MENU *);
213
+
214
+ extern MENU_EXPORT(const char *) item_description(const ITEM *);
215
+ extern MENU_EXPORT(const char *) item_name(const ITEM *);
216
+ extern MENU_EXPORT(const char *) menu_mark(const MENU *);
217
+ extern MENU_EXPORT(const char *) menu_request_name(int);
218
+
219
+ extern MENU_EXPORT(char *) menu_pattern(const MENU *);
220
+
221
+ extern MENU_EXPORT(void *) menu_userptr(const MENU *);
222
+ extern MENU_EXPORT(void *) item_userptr(const ITEM *);
223
+
224
+ extern MENU_EXPORT(chtype) menu_back(const MENU *);
225
+ extern MENU_EXPORT(chtype) menu_fore(const MENU *);
226
+ extern MENU_EXPORT(chtype) menu_grey(const MENU *);
227
+
228
+ extern MENU_EXPORT(int) free_item(ITEM *);
229
+ extern MENU_EXPORT(int) free_menu(MENU *);
230
+ extern MENU_EXPORT(int) item_count(const MENU *);
231
+ extern MENU_EXPORT(int) item_index(const ITEM *);
232
+ extern MENU_EXPORT(int) item_opts_off(ITEM *, Item_Options);
233
+ extern MENU_EXPORT(int) item_opts_on(ITEM *, Item_Options);
234
+ extern MENU_EXPORT(int) menu_driver(MENU *, int);
235
+ extern MENU_EXPORT(int) menu_opts_off(MENU *, Menu_Options);
236
+ extern MENU_EXPORT(int) menu_opts_on(MENU *, Menu_Options);
237
+ extern MENU_EXPORT(int) menu_pad(const MENU *);
238
+ extern MENU_EXPORT(int) pos_menu_cursor(const MENU *);
239
+ extern MENU_EXPORT(int) post_menu(MENU *);
240
+ extern MENU_EXPORT(int) scale_menu(const MENU *, int *, int *);
241
+ extern MENU_EXPORT(int) set_current_item(MENU *menu, ITEM *item);
242
+ extern MENU_EXPORT(int) set_item_init(MENU *, Menu_Hook);
243
+ extern MENU_EXPORT(int) set_item_opts(ITEM *, Item_Options);
244
+ extern MENU_EXPORT(int) set_item_term(MENU *, Menu_Hook);
245
+ extern MENU_EXPORT(int) set_item_userptr(ITEM *, void *);
246
+ extern MENU_EXPORT(int) set_item_value(ITEM *, bool);
247
+ extern MENU_EXPORT(int) set_menu_back(MENU *, chtype);
248
+ extern MENU_EXPORT(int) set_menu_fore(MENU *, chtype);
249
+ extern MENU_EXPORT(int) set_menu_format(MENU *, int, int);
250
+ extern MENU_EXPORT(int) set_menu_grey(MENU *, chtype);
251
+ extern MENU_EXPORT(int) set_menu_init(MENU *, Menu_Hook);
252
+ extern MENU_EXPORT(int) set_menu_items(MENU *, ITEM **);
253
+ extern MENU_EXPORT(int) set_menu_mark(MENU *, const char *);
254
+ extern MENU_EXPORT(int) set_menu_opts(MENU *, Menu_Options);
255
+ extern MENU_EXPORT(int) set_menu_pad(MENU *, int);
256
+ extern MENU_EXPORT(int) set_menu_pattern(MENU *, const char *);
257
+ extern MENU_EXPORT(int) set_menu_sub(MENU *, WINDOW *);
258
+ extern MENU_EXPORT(int) set_menu_term(MENU *, Menu_Hook);
259
+ extern MENU_EXPORT(int) set_menu_userptr(MENU *, void *);
260
+ extern MENU_EXPORT(int) set_menu_win(MENU *, WINDOW *);
261
+ extern MENU_EXPORT(int) set_top_row(MENU *, int);
262
+ extern MENU_EXPORT(int) top_row(const MENU *);
263
+ extern MENU_EXPORT(int) unpost_menu(MENU *);
264
+ extern MENU_EXPORT(int) menu_request_by_name(const char *);
265
+ extern MENU_EXPORT(int) set_menu_spacing(MENU *, int, int, int);
266
+ extern MENU_EXPORT(int) menu_spacing(const MENU *, int *, int *, int *);
267
+
268
+ extern MENU_EXPORT(bool) item_value(const ITEM *);
269
+ extern MENU_EXPORT(bool) item_visible(const ITEM *);
270
+
271
+ extern MENU_EXPORT(void) menu_format(const MENU *, int *, int *);
272
+
273
+ #if NCURSES_SP_FUNCS
274
+ extern MENU_EXPORT(MENU *) NCURSES_SP_NAME(new_menu) (SCREEN *, ITEM **);
275
+ #endif
276
+
277
+ #ifdef __cplusplus
278
+ }
279
+ #endif
280
+
281
+ #endif /* ETI_MENU */
my_container_sandbox/workspace/anaconda3/include/mysqlStubs.h ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ *-----------------------------------------------------------------------------
3
+ *
4
+ * ../generic/mysqlStubs.h --
5
+ *
6
+ * Stubs for procedures in mysqlStubDefs.txt
7
+ *
8
+ * Generated by genExtStubs.tcl: DO NOT EDIT
9
+ * 2017-05-26 05:57:32Z
10
+ *
11
+ *-----------------------------------------------------------------------------
12
+ */
13
+
14
+ typedef struct mysqlStubDefs {
15
+
16
+ /* Functions from libraries: mysqlclient_r mysqlclient mysql */
17
+
18
+ int (STDCALL*mysql_server_initPtr)(int, char**, char**);
19
+ void (STDCALL*mysql_server_endPtr)(void);
20
+ my_ulonglong (STDCALL*mysql_affected_rowsPtr)(MYSQL*);
21
+ my_bool (STDCALL*mysql_autocommitPtr)(MYSQL*, my_bool);
22
+ my_bool (STDCALL*mysql_change_userPtr)(MYSQL*, const char*, const char*, const char*);
23
+ my_bool (STDCALL*mysql_closePtr)(MYSQL*);
24
+ my_bool (STDCALL*mysql_commitPtr)(MYSQL*);
25
+ unsigned int (STDCALL*mysql_errnoPtr)(MYSQL*);
26
+ const char* (STDCALL*mysql_errorPtr)(MYSQL*);
27
+ MYSQL_FIELD* (STDCALL*mysql_fetch_fieldsPtr)(MYSQL_RES*);
28
+ unsigned long* (STDCALL*mysql_fetch_lengthsPtr)(MYSQL_RES*);
29
+ MYSQL_ROW (STDCALL*mysql_fetch_rowPtr)(MYSQL_RES*);
30
+ unsigned int (STDCALL*mysql_field_countPtr)(MYSQL*);
31
+ void (STDCALL*mysql_free_resultPtr)(MYSQL_RES*);
32
+ unsigned long (STDCALL*mysql_get_client_versionPtr)(void);
33
+ MYSQL* (STDCALL*mysql_initPtr)(MYSQL*);
34
+ MYSQL_RES* (STDCALL*mysql_list_fieldsPtr)(MYSQL*, const char*, const char*);
35
+ MYSQL_RES* (STDCALL*mysql_list_tablesPtr)(MYSQL*, const char*);
36
+ unsigned int (STDCALL*mysql_num_fieldsPtr)(MYSQL_RES*);
37
+ int (STDCALL*mysql_optionsPtr)(MYSQL*, enum mysql_option, const void*);
38
+ int (STDCALL*mysql_queryPtr)(MYSQL*, const char*);
39
+ MYSQL* (STDCALL*mysql_real_connectPtr)(MYSQL*, const char*, const char*, const char*, const char*, unsigned int, const char*, unsigned long);
40
+ my_bool (STDCALL*mysql_rollbackPtr)(MYSQL*);
41
+ int (STDCALL*mysql_select_dbPtr)(MYSQL*, const char*);
42
+ const char* (STDCALL*mysql_sqlstatePtr)(MYSQL*);
43
+ my_bool (STDCALL*mysql_ssl_setPtr)(MYSQL*, const char*, const char*, const char*, const char*, const char*);
44
+ my_ulonglong (STDCALL*mysql_stmt_affected_rowsPtr)(MYSQL_STMT*);
45
+ my_bool (STDCALL*mysql_stmt_bind_paramPtr)(MYSQL_STMT*, MYSQL_BIND*);
46
+ my_bool (STDCALL*mysql_stmt_bind_resultPtr)(MYSQL_STMT*, MYSQL_BIND*);
47
+ my_bool (STDCALL*mysql_stmt_closePtr)(MYSQL_STMT*);
48
+ unsigned int (STDCALL*mysql_stmt_errnoPtr)(MYSQL_STMT*);
49
+ const char* (STDCALL*mysql_stmt_errorPtr)(MYSQL_STMT*);
50
+ int (STDCALL*mysql_stmt_executePtr)(MYSQL_STMT*);
51
+ int (STDCALL*mysql_stmt_fetchPtr)(MYSQL_STMT*);
52
+ int (STDCALL*mysql_stmt_fetch_columnPtr)(MYSQL_STMT*, MYSQL_BIND*, unsigned int, unsigned long);
53
+ MYSQL_STMT* (STDCALL*mysql_stmt_initPtr)(MYSQL*);
54
+ int (STDCALL*mysql_stmt_preparePtr)(MYSQL_STMT*, const char*, unsigned long);
55
+ MYSQL_RES* (STDCALL*mysql_stmt_result_metadataPtr)(MYSQL_STMT*);
56
+ const char* (STDCALL*mysql_stmt_sqlstatePtr)(MYSQL_STMT*);
57
+ int (STDCALL*mysql_stmt_store_resultPtr)(MYSQL_STMT*);
58
+ MYSQL_RES* (STDCALL*mysql_store_resultPtr)(MYSQL*);
59
+ } mysqlStubDefs;
60
+ #define mysql_server_init (mysqlStubs->mysql_server_initPtr)
61
+ #define mysql_server_end (mysqlStubs->mysql_server_endPtr)
62
+ #define mysql_affected_rows (mysqlStubs->mysql_affected_rowsPtr)
63
+ #define mysql_autocommit (mysqlStubs->mysql_autocommitPtr)
64
+ #define mysql_change_user (mysqlStubs->mysql_change_userPtr)
65
+ #define mysql_close (mysqlStubs->mysql_closePtr)
66
+ #define mysql_commit (mysqlStubs->mysql_commitPtr)
67
+ #define mysql_errno (mysqlStubs->mysql_errnoPtr)
68
+ #define mysql_error (mysqlStubs->mysql_errorPtr)
69
+ #define mysql_fetch_fields (mysqlStubs->mysql_fetch_fieldsPtr)
70
+ #define mysql_fetch_lengths (mysqlStubs->mysql_fetch_lengthsPtr)
71
+ #define mysql_fetch_row (mysqlStubs->mysql_fetch_rowPtr)
72
+ #define mysql_field_count (mysqlStubs->mysql_field_countPtr)
73
+ #define mysql_free_result (mysqlStubs->mysql_free_resultPtr)
74
+ #define mysql_get_client_version (mysqlStubs->mysql_get_client_versionPtr)
75
+ #define mysql_init (mysqlStubs->mysql_initPtr)
76
+ #define mysql_list_fields (mysqlStubs->mysql_list_fieldsPtr)
77
+ #define mysql_list_tables (mysqlStubs->mysql_list_tablesPtr)
78
+ #define mysql_num_fields (mysqlStubs->mysql_num_fieldsPtr)
79
+ #define mysql_options (mysqlStubs->mysql_optionsPtr)
80
+ #define mysql_query (mysqlStubs->mysql_queryPtr)
81
+ #define mysql_real_connect (mysqlStubs->mysql_real_connectPtr)
82
+ #define mysql_rollback (mysqlStubs->mysql_rollbackPtr)
83
+ #define mysql_select_db (mysqlStubs->mysql_select_dbPtr)
84
+ #define mysql_sqlstate (mysqlStubs->mysql_sqlstatePtr)
85
+ #define mysql_ssl_set (mysqlStubs->mysql_ssl_setPtr)
86
+ #define mysql_stmt_affected_rows (mysqlStubs->mysql_stmt_affected_rowsPtr)
87
+ #define mysql_stmt_bind_param (mysqlStubs->mysql_stmt_bind_paramPtr)
88
+ #define mysql_stmt_bind_result (mysqlStubs->mysql_stmt_bind_resultPtr)
89
+ #define mysql_stmt_close (mysqlStubs->mysql_stmt_closePtr)
90
+ #define mysql_stmt_errno (mysqlStubs->mysql_stmt_errnoPtr)
91
+ #define mysql_stmt_error (mysqlStubs->mysql_stmt_errorPtr)
92
+ #define mysql_stmt_execute (mysqlStubs->mysql_stmt_executePtr)
93
+ #define mysql_stmt_fetch (mysqlStubs->mysql_stmt_fetchPtr)
94
+ #define mysql_stmt_fetch_column (mysqlStubs->mysql_stmt_fetch_columnPtr)
95
+ #define mysql_stmt_init (mysqlStubs->mysql_stmt_initPtr)
96
+ #define mysql_stmt_prepare (mysqlStubs->mysql_stmt_preparePtr)
97
+ #define mysql_stmt_result_metadata (mysqlStubs->mysql_stmt_result_metadataPtr)
98
+ #define mysql_stmt_sqlstate (mysqlStubs->mysql_stmt_sqlstatePtr)
99
+ #define mysql_stmt_store_result (mysqlStubs->mysql_stmt_store_resultPtr)
100
+ #define mysql_store_result (mysqlStubs->mysql_store_resultPtr)
101
+ MODULE_SCOPE const mysqlStubDefs *mysqlStubs;
my_container_sandbox/workspace/anaconda3/include/ncurses.h ADDED
The diff for this file is too large to render. See raw diff
 
my_container_sandbox/workspace/anaconda3/include/odbcStubs.h ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ *-----------------------------------------------------------------------------
3
+ *
4
+ * odbcStubs.h --
5
+ *
6
+ * Stubs for procedures in odbcStubDefs.txt
7
+ *
8
+ * Generated by genExtStubs.tcl: DO NOT EDIT
9
+ * 2018-05-12 16:18:48Z
10
+ *
11
+ *-----------------------------------------------------------------------------
12
+ */
13
+
14
+ typedef struct odbcStubDefs {
15
+ SQLRETURN (SQL_API*SQLAllocHandlePtr)(SQLSMALLINT,SQLHANDLE,SQLHANDLE*);
16
+ SQLRETURN (SQL_API*SQLBindParameterPtr)(SQLHSTMT,SQLUSMALLINT,SQLSMALLINT,SQLSMALLINT,SQLSMALLINT,SQLULEN,SQLSMALLINT,SQLPOINTER,SQLLEN,SQLLEN*);
17
+ SQLRETURN (SQL_API*SQLCloseCursorPtr)(SQLHSTMT);
18
+ SQLRETURN (SQL_API*SQLColumnsWPtr)(SQLHSTMT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT ,SQLWCHAR*,SQLSMALLINT );
19
+ SQLRETURN (SQL_API*SQLDataSourcesWPtr)(SQLHENV,SQLUSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*);
20
+ SQLRETURN (SQL_API*SQLDescribeColWPtr)(SQLHSTMT,SQLUSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*,SQLSMALLINT*,SQLULEN*,SQLSMALLINT*,SQLSMALLINT*);
21
+ SQLRETURN (SQL_API*SQLDescribeParamPtr)(SQLHSTMT,SQLUSMALLINT,SQLSMALLINT*,SQLULEN*,SQLSMALLINT*,SQLSMALLINT*);
22
+ SQLRETURN (SQL_API*SQLDisconnectPtr)(SQLHDBC);
23
+ SQLRETURN (SQL_API*SQLDriverConnectWPtr)(SQLHDBC,SQLHWND,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*,SQLUSMALLINT);
24
+ SQLRETURN (SQL_API*SQLDriversWPtr)(SQLHENV,SQLUSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*);
25
+ SQLRETURN (SQL_API*SQLEndTranPtr)(SQLSMALLINT,SQLHANDLE,SQLSMALLINT);
26
+ SQLRETURN (SQL_API*SQLExecutePtr)(SQLHSTMT);
27
+ SQLRETURN (SQL_API*SQLFetchPtr)(SQLHSTMT);
28
+ SQLRETURN (SQL_API*SQLForeignKeysWPtr)(SQLHSTMT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT);
29
+ SQLRETURN (SQL_API*SQLFreeHandlePtr)(SQLSMALLINT,SQLHANDLE);
30
+ SQLRETURN (SQL_API*SQLGetConnectAttrPtr)(SQLHDBC,SQLINTEGER,SQLPOINTER,SQLINTEGER,SQLINTEGER*);
31
+ SQLRETURN (SQL_API*SQLGetDataPtr)(SQLHSTMT,SQLUSMALLINT,SQLSMALLINT,SQLPOINTER,SQLLEN,SQLLEN*);
32
+ SQLRETURN (SQL_API*SQLGetDiagFieldAPtr)(SQLSMALLINT,SQLHANDLE,SQLSMALLINT,SQLSMALLINT,SQLPOINTER,SQLSMALLINT,SQLSMALLINT*);
33
+ SQLRETURN (SQL_API*SQLGetDiagRecWPtr)(SQLSMALLINT,SQLHANDLE,SQLSMALLINT,SQLWCHAR*,SQLINTEGER*,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*);
34
+ SQLRETURN (SQL_API*SQLGetInfoWPtr)(SQLHANDLE,SQLUSMALLINT,SQLPOINTER,SQLSMALLINT,SQLSMALLINT*);
35
+ SQLRETURN (SQL_API*SQLGetTypeInfoPtr)(SQLHSTMT,SQLSMALLINT);
36
+ SQLRETURN (SQL_API*SQLMoreResultsPtr)(SQLHSTMT);
37
+ SQLRETURN (SQL_API*SQLNumParamsPtr)(SQLHSTMT,SQLSMALLINT*);
38
+ SQLRETURN (SQL_API*SQLNumResultColsPtr)(SQLHSTMT,SQLSMALLINT*);
39
+ SQLRETURN (SQL_API*SQLPrepareWPtr)(SQLHSTMT,SQLWCHAR*,SQLINTEGER);
40
+ SQLRETURN (SQL_API*SQLPrimaryKeysWPtr)(SQLHSTMT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT);
41
+ SQLRETURN (SQL_API*SQLRowCountPtr)(SQLHSTMT,SQLLEN*);
42
+ SQLRETURN (SQL_API*SQLSetConnectAttrPtr)(SQLHDBC,SQLINTEGER,SQLPOINTER,SQLINTEGER);
43
+ SQLRETURN (SQL_API*SQLSetConnectOptionPtr)(SQLHDBC,SQLUSMALLINT,SQLULEN);
44
+ SQLRETURN (SQL_API*SQLSetEnvAttrPtr)(SQLHENV,SQLINTEGER,SQLPOINTER,SQLINTEGER);
45
+ SQLRETURN (SQL_API*SQLTablesWPtr)(SQLHSTMT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT);
46
+ } odbcStubDefs;
47
+ #define SQLAllocHandle (odbcStubs->SQLAllocHandlePtr)
48
+ #define SQLBindParameter (odbcStubs->SQLBindParameterPtr)
49
+ #define SQLCloseCursor (odbcStubs->SQLCloseCursorPtr)
50
+ #define SQLColumnsW (odbcStubs->SQLColumnsWPtr)
51
+ #define SQLDataSourcesW (odbcStubs->SQLDataSourcesWPtr)
52
+ #define SQLDescribeColW (odbcStubs->SQLDescribeColWPtr)
53
+ #define SQLDescribeParam (odbcStubs->SQLDescribeParamPtr)
54
+ #define SQLDisconnect (odbcStubs->SQLDisconnectPtr)
55
+ #define SQLDriverConnectW (odbcStubs->SQLDriverConnectWPtr)
56
+ #define SQLDriversW (odbcStubs->SQLDriversWPtr)
57
+ #define SQLEndTran (odbcStubs->SQLEndTranPtr)
58
+ #define SQLExecute (odbcStubs->SQLExecutePtr)
59
+ #define SQLFetch (odbcStubs->SQLFetchPtr)
60
+ #define SQLForeignKeysW (odbcStubs->SQLForeignKeysWPtr)
61
+ #define SQLFreeHandle (odbcStubs->SQLFreeHandlePtr)
62
+ #define SQLGetConnectAttr (odbcStubs->SQLGetConnectAttrPtr)
63
+ #define SQLGetData (odbcStubs->SQLGetDataPtr)
64
+ #define SQLGetDiagFieldA (odbcStubs->SQLGetDiagFieldAPtr)
65
+ #define SQLGetDiagRecW (odbcStubs->SQLGetDiagRecWPtr)
66
+ #define SQLGetInfoW (odbcStubs->SQLGetInfoWPtr)
67
+ #define SQLGetTypeInfo (odbcStubs->SQLGetTypeInfoPtr)
68
+ #define SQLMoreResults (odbcStubs->SQLMoreResultsPtr)
69
+ #define SQLNumParams (odbcStubs->SQLNumParamsPtr)
70
+ #define SQLNumResultCols (odbcStubs->SQLNumResultColsPtr)
71
+ #define SQLPrepareW (odbcStubs->SQLPrepareWPtr)
72
+ #define SQLPrimaryKeysW (odbcStubs->SQLPrimaryKeysWPtr)
73
+ #define SQLRowCount (odbcStubs->SQLRowCountPtr)
74
+ #define SQLSetConnectAttr (odbcStubs->SQLSetConnectAttrPtr)
75
+ #define SQLSetConnectOption (odbcStubs->SQLSetConnectOptionPtr)
76
+ #define SQLSetEnvAttr (odbcStubs->SQLSetEnvAttrPtr)
77
+ #define SQLTablesW (odbcStubs->SQLTablesWPtr)
78
+ MODULE_SCOPE const odbcStubDefs *odbcStubs;
my_container_sandbox/workspace/anaconda3/include/sqlite3.h ADDED
The diff for this file is too large to render. See raw diff
 
my_container_sandbox/workspace/anaconda3/include/tcl.h ADDED
@@ -0,0 +1,2639 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ * README (sections 0 and 2, with and without separator)
45
+ * macosx/Tcl-Common.xcconfig (not patchlevel) 1 LOC
46
+ * win/README (not patchlevel) (sections 0 and 2)
47
+ * unix/tcl.spec (1 LOC patch)
48
+ * tools/tcl.hpj.in (not patchlevel, for windows installer)
49
+ */
50
+
51
+ #define TCL_MAJOR_VERSION 8
52
+ #define TCL_MINOR_VERSION 6
53
+ #define TCL_RELEASE_LEVEL TCL_FINAL_RELEASE
54
+ #define TCL_RELEASE_SERIAL 12
55
+
56
+ #define TCL_VERSION "8.6"
57
+ #define TCL_PATCH_LEVEL "8.6.12"
58
+
59
+ /*
60
+ *----------------------------------------------------------------------------
61
+ * The following definitions set up the proper options for Windows compilers.
62
+ * We use this method because there is no autoconf equivalent.
63
+ */
64
+
65
+ #ifdef _WIN32
66
+ # ifndef __WIN32__
67
+ # define __WIN32__
68
+ # endif
69
+ # ifndef WIN32
70
+ # define WIN32
71
+ # endif
72
+ #endif
73
+
74
+ /*
75
+ * Utility macros: STRINGIFY takes an argument and wraps it in "" (double
76
+ * quotation marks), JOIN joins two arguments.
77
+ */
78
+
79
+ #ifndef STRINGIFY
80
+ # define STRINGIFY(x) STRINGIFY1(x)
81
+ # define STRINGIFY1(x) #x
82
+ #endif
83
+ #ifndef JOIN
84
+ # define JOIN(a,b) JOIN1(a,b)
85
+ # define JOIN1(a,b) a##b
86
+ #endif
87
+
88
+ /*
89
+ * A special definition used to allow this header file to be included from
90
+ * windows resource files so that they can obtain version information.
91
+ * RC_INVOKED is defined by default by the windows RC tool.
92
+ *
93
+ * Resource compilers don't like all the C stuff, like typedefs and function
94
+ * declarations, that occur below, so block them out.
95
+ */
96
+
97
+ #ifndef RC_INVOKED
98
+
99
+ /*
100
+ * Special macro to define mutexes, that doesn't do anything if we are not
101
+ * using threads.
102
+ */
103
+
104
+ #ifdef TCL_THREADS
105
+ #define TCL_DECLARE_MUTEX(name) static Tcl_Mutex name;
106
+ #else
107
+ #define TCL_DECLARE_MUTEX(name)
108
+ #endif
109
+
110
+ /*
111
+ * Tcl's public routine Tcl_FSSeek() uses the values SEEK_SET, SEEK_CUR, and
112
+ * SEEK_END, all #define'd by stdio.h .
113
+ *
114
+ * Also, many extensions need stdio.h, and they've grown accustomed to tcl.h
115
+ * providing it for them rather than #include-ing it themselves as they
116
+ * should, so also for their sake, we keep the #include to be consistent with
117
+ * prior Tcl releases.
118
+ */
119
+
120
+ #include <stdio.h>
121
+
122
+ /*
123
+ *----------------------------------------------------------------------------
124
+ * Support for functions with a variable number of arguments.
125
+ *
126
+ * The following TCL_VARARGS* macros are to support old extensions
127
+ * written for older versions of Tcl where the macros permitted
128
+ * support for the varargs.h system as well as stdarg.h .
129
+ *
130
+ * New code should just directly be written to use stdarg.h conventions.
131
+ */
132
+
133
+ #include <stdarg.h>
134
+ #if !defined(TCL_NO_DEPRECATED) && TCL_MAJOR_VERSION < 9
135
+ # define TCL_VARARGS(type, name) (type name, ...)
136
+ # define TCL_VARARGS_DEF(type, name) (type name, ...)
137
+ # define TCL_VARARGS_START(type, name, list) (va_start(list, name), name)
138
+ #endif /* !TCL_NO_DEPRECATED */
139
+ #if defined(__GNUC__) && (__GNUC__ > 2)
140
+ # if defined(_WIN32) && defined(__USE_MINGW_ANSI_STDIO) && __USE_MINGW_ANSI_STDIO
141
+ # define TCL_FORMAT_PRINTF(a,b) __attribute__ ((__format__ (__MINGW_PRINTF_FORMAT, a, b)))
142
+ # else
143
+ # define TCL_FORMAT_PRINTF(a,b) __attribute__ ((__format__ (__printf__, a, b)))
144
+ # endif
145
+ # define TCL_NORETURN __attribute__ ((noreturn))
146
+ # if defined(BUILD_tcl) || defined(BUILD_tk)
147
+ # define TCL_NORETURN1 __attribute__ ((noreturn))
148
+ # else
149
+ # define TCL_NORETURN1 /* nothing */
150
+ # endif
151
+ #else
152
+ # define TCL_FORMAT_PRINTF(a,b)
153
+ # if defined(_MSC_VER) && (_MSC_VER >= 1310)
154
+ # define TCL_NORETURN _declspec(noreturn)
155
+ # else
156
+ # define TCL_NORETURN /* nothing */
157
+ # endif
158
+ # define TCL_NORETURN1 /* nothing */
159
+ #endif
160
+
161
+ /*
162
+ * Allow a part of Tcl's API to be explicitly marked as deprecated.
163
+ *
164
+ * Used to make TIP 330/336 generate moans even if people use the
165
+ * compatibility macros. Change your code, guys! We won't support you forever.
166
+ */
167
+
168
+ #if defined(__GNUC__) && ((__GNUC__ >= 4) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1)))
169
+ # if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5))
170
+ # define TCL_DEPRECATED_API(msg) __attribute__ ((__deprecated__ (msg)))
171
+ # else
172
+ # define TCL_DEPRECATED_API(msg) __attribute__ ((__deprecated__))
173
+ # endif
174
+ #else
175
+ # define TCL_DEPRECATED_API(msg) /* nothing portable */
176
+ #endif
177
+
178
+ /*
179
+ *----------------------------------------------------------------------------
180
+ * Macros used to declare a function to be exported by a DLL. Used by Windows,
181
+ * maps to no-op declarations on non-Windows systems. The default build on
182
+ * windows is for a DLL, which causes the DLLIMPORT and DLLEXPORT macros to be
183
+ * nonempty. To build a static library, the macro STATIC_BUILD should be
184
+ * defined.
185
+ *
186
+ * Note: when building static but linking dynamically to MSVCRT we must still
187
+ * correctly decorate the C library imported function. Use CRTIMPORT
188
+ * for this purpose. _DLL is defined by the compiler when linking to
189
+ * MSVCRT.
190
+ */
191
+
192
+ #if (defined(_WIN32) && (defined(_MSC_VER) || (defined(__BORLANDC__) && (__BORLANDC__ >= 0x0550)) || defined(__LCC__) || defined(__WATCOMC__) || (defined(__GNUC__) && defined(__declspec))))
193
+ # define HAVE_DECLSPEC 1
194
+ # ifdef STATIC_BUILD
195
+ # define DLLIMPORT
196
+ # define DLLEXPORT
197
+ # ifdef _DLL
198
+ # define CRTIMPORT __declspec(dllimport)
199
+ # else
200
+ # define CRTIMPORT
201
+ # endif
202
+ # else
203
+ # define DLLIMPORT __declspec(dllimport)
204
+ # define DLLEXPORT __declspec(dllexport)
205
+ # define CRTIMPORT __declspec(dllimport)
206
+ # endif
207
+ #else
208
+ # define DLLIMPORT
209
+ # if defined(__GNUC__) && __GNUC__ > 3
210
+ # define DLLEXPORT __attribute__ ((visibility("default")))
211
+ # else
212
+ # define DLLEXPORT
213
+ # endif
214
+ # define CRTIMPORT
215
+ #endif
216
+
217
+ /*
218
+ * These macros are used to control whether functions are being declared for
219
+ * import or export. If a function is being declared while it is being built
220
+ * to be included in a shared library, then it should have the DLLEXPORT
221
+ * storage class. If is being declared for use by a module that is going to
222
+ * link against the shared library, then it should have the DLLIMPORT storage
223
+ * class. If the symbol is being declared for a static build or for use from a
224
+ * stub library, then the storage class should be empty.
225
+ *
226
+ * The convention is that a macro called BUILD_xxxx, where xxxx is the name of
227
+ * a library we are building, is set on the compile line for sources that are
228
+ * to be placed in the library. When this macro is set, the storage class will
229
+ * be set to DLLEXPORT. At the end of the header file, the storage class will
230
+ * be reset to DLLIMPORT.
231
+ */
232
+
233
+ #undef TCL_STORAGE_CLASS
234
+ #ifdef BUILD_tcl
235
+ # define TCL_STORAGE_CLASS DLLEXPORT
236
+ #else
237
+ # ifdef USE_TCL_STUBS
238
+ # define TCL_STORAGE_CLASS
239
+ # else
240
+ # define TCL_STORAGE_CLASS DLLIMPORT
241
+ # endif
242
+ #endif
243
+
244
+ /*
245
+ * The following _ANSI_ARGS_ macro is to support old extensions
246
+ * written for older versions of Tcl where it permitted support
247
+ * for compilers written in the pre-prototype era of C.
248
+ *
249
+ * New code should use prototypes.
250
+ */
251
+
252
+ #ifndef TCL_NO_DEPRECATED
253
+ # undef _ANSI_ARGS_
254
+ # define _ANSI_ARGS_(x) x
255
+ #endif
256
+
257
+ /*
258
+ * Definitions that allow this header file to be used either with or without
259
+ * ANSI C features.
260
+ */
261
+
262
+ #ifndef INLINE
263
+ # define INLINE
264
+ #endif
265
+
266
+ #ifdef NO_CONST
267
+ # ifndef const
268
+ # define const
269
+ # endif
270
+ #endif
271
+ #ifndef CONST
272
+ # define CONST const
273
+ #endif
274
+
275
+ #ifdef USE_NON_CONST
276
+ # ifdef USE_COMPAT_CONST
277
+ # error define at most one of USE_NON_CONST and USE_COMPAT_CONST
278
+ # endif
279
+ # define CONST84
280
+ # define CONST84_RETURN
281
+ #else
282
+ # ifdef USE_COMPAT_CONST
283
+ # define CONST84
284
+ # define CONST84_RETURN const
285
+ # else
286
+ # define CONST84 const
287
+ # define CONST84_RETURN const
288
+ # endif
289
+ #endif
290
+
291
+ #ifndef CONST86
292
+ # define CONST86 CONST84
293
+ #endif
294
+
295
+ /*
296
+ * Make sure EXTERN isn't defined elsewhere.
297
+ */
298
+
299
+ #ifdef EXTERN
300
+ # undef EXTERN
301
+ #endif /* EXTERN */
302
+
303
+ #ifdef __cplusplus
304
+ # define EXTERN extern "C" TCL_STORAGE_CLASS
305
+ #else
306
+ # define EXTERN extern TCL_STORAGE_CLASS
307
+ #endif
308
+
309
+ /*
310
+ *----------------------------------------------------------------------------
311
+ * The following code is copied from winnt.h. If we don't replicate it here,
312
+ * then <windows.h> can't be included after tcl.h, since tcl.h also defines
313
+ * VOID. This block is skipped under Cygwin and Mingw.
314
+ */
315
+
316
+ #if defined(_WIN32) && !defined(HAVE_WINNT_IGNORE_VOID)
317
+ #ifndef VOID
318
+ #define VOID void
319
+ typedef char CHAR;
320
+ typedef short SHORT;
321
+ typedef long LONG;
322
+ #endif
323
+ #endif /* _WIN32 && !HAVE_WINNT_IGNORE_VOID */
324
+
325
+ /*
326
+ * Macro to use instead of "void" for arguments that must have type "void *"
327
+ * in ANSI C; maps them to type "char *" in non-ANSI systems.
328
+ */
329
+
330
+ #ifndef __VXWORKS__
331
+ # ifndef NO_VOID
332
+ # define VOID void
333
+ # else
334
+ # define VOID char
335
+ # endif
336
+ #endif
337
+
338
+ /*
339
+ * Miscellaneous declarations.
340
+ */
341
+
342
+ #ifndef _CLIENTDATA
343
+ # ifndef NO_VOID
344
+ typedef void *ClientData;
345
+ # else
346
+ typedef int *ClientData;
347
+ # endif
348
+ # define _CLIENTDATA
349
+ #endif
350
+
351
+ /*
352
+ * Darwin specific configure overrides (to support fat compiles, where
353
+ * configure runs only once for multiple architectures):
354
+ */
355
+
356
+ #ifdef __APPLE__
357
+ # ifdef __LP64__
358
+ # undef TCL_WIDE_INT_TYPE
359
+ # define TCL_WIDE_INT_IS_LONG 1
360
+ # define TCL_CFG_DO64BIT 1
361
+ # else /* !__LP64__ */
362
+ # define TCL_WIDE_INT_TYPE long long
363
+ # undef TCL_WIDE_INT_IS_LONG
364
+ # undef TCL_CFG_DO64BIT
365
+ # endif /* __LP64__ */
366
+ # undef HAVE_STRUCT_STAT64
367
+ #endif /* __APPLE__ */
368
+
369
+ /* Cross-compiling 32-bit on a 64-bit platform? Then our
370
+ * configure script does the wrong thing. Correct that here.
371
+ */
372
+ #if defined(__GNUC__) && !defined(_WIN32) && !defined(__LP64__)
373
+ # undef TCL_WIDE_INT_IS_LONG
374
+ # undef TCL_WIDE_INT_TYPE
375
+ # define TCL_WIDE_INT_TYPE long long
376
+ #endif
377
+
378
+ /*
379
+ * Define Tcl_WideInt to be a type that is (at least) 64-bits wide, and define
380
+ * Tcl_WideUInt to be the unsigned variant of that type (assuming that where
381
+ * we have one, we can have the other.)
382
+ *
383
+ * Also defines the following macros:
384
+ * TCL_WIDE_INT_IS_LONG - if wide ints are really longs (i.e. we're on a
385
+ * LP64 system such as modern Solaris or Linux ... not including Win64)
386
+ * Tcl_WideAsLong - forgetful converter from wideInt to long.
387
+ * Tcl_LongAsWide - sign-extending converter from long to wideInt.
388
+ * Tcl_WideAsDouble - converter from wideInt to double.
389
+ * Tcl_DoubleAsWide - converter from double to wideInt.
390
+ *
391
+ * The following invariant should hold for any long value 'longVal':
392
+ * longVal == Tcl_WideAsLong(Tcl_LongAsWide(longVal))
393
+ *
394
+ * Note on converting between Tcl_WideInt and strings. This implementation (in
395
+ * tclObj.c) depends on the function
396
+ * sprintf(...,"%" TCL_LL_MODIFIER "d",...).
397
+ */
398
+
399
+ #if !defined(TCL_WIDE_INT_TYPE)&&!defined(TCL_WIDE_INT_IS_LONG)
400
+ # ifdef _WIN32
401
+ # define TCL_WIDE_INT_TYPE __int64
402
+ # ifdef __BORLANDC__
403
+ # define TCL_LL_MODIFIER "L"
404
+ # elif defined(_WIN32) && (!defined(__USE_MINGW_ANSI_STDIO) || !__USE_MINGW_ANSI_STDIO)
405
+ # define TCL_LL_MODIFIER "I64"
406
+ # else
407
+ # define TCL_LL_MODIFIER "ll"
408
+ # endif
409
+ # elif defined(__GNUC__)
410
+ # define TCL_WIDE_INT_TYPE long long
411
+ # define TCL_LL_MODIFIER "ll"
412
+ # else /* ! _WIN32 && ! __GNUC__ */
413
+ /*
414
+ * Don't know what platform it is and configure hasn't discovered what is
415
+ * going on for us. Try to guess...
416
+ */
417
+ # include <limits.h>
418
+ # if (INT_MAX < LONG_MAX)
419
+ # define TCL_WIDE_INT_IS_LONG 1
420
+ # else
421
+ # define TCL_WIDE_INT_TYPE long long
422
+ # endif
423
+ # endif /* _WIN32 */
424
+ #endif /* !TCL_WIDE_INT_TYPE & !TCL_WIDE_INT_IS_LONG */
425
+ #ifdef TCL_WIDE_INT_IS_LONG
426
+ # undef TCL_WIDE_INT_TYPE
427
+ # define TCL_WIDE_INT_TYPE long
428
+ #endif /* TCL_WIDE_INT_IS_LONG */
429
+
430
+ typedef TCL_WIDE_INT_TYPE Tcl_WideInt;
431
+ typedef unsigned TCL_WIDE_INT_TYPE Tcl_WideUInt;
432
+
433
+ #ifdef TCL_WIDE_INT_IS_LONG
434
+ # define Tcl_WideAsLong(val) ((long)(val))
435
+ # define Tcl_LongAsWide(val) ((long)(val))
436
+ # define Tcl_WideAsDouble(val) ((double)((long)(val)))
437
+ # define Tcl_DoubleAsWide(val) ((long)((double)(val)))
438
+ # ifndef TCL_LL_MODIFIER
439
+ # define TCL_LL_MODIFIER "l"
440
+ # endif /* !TCL_LL_MODIFIER */
441
+ #else /* TCL_WIDE_INT_IS_LONG */
442
+ /*
443
+ * The next short section of defines are only done when not running on Windows
444
+ * or some other strange platform.
445
+ */
446
+ # ifndef TCL_LL_MODIFIER
447
+ # define TCL_LL_MODIFIER "ll"
448
+ # endif /* !TCL_LL_MODIFIER */
449
+ # define Tcl_WideAsLong(val) ((long)((Tcl_WideInt)(val)))
450
+ # define Tcl_LongAsWide(val) ((Tcl_WideInt)((long)(val)))
451
+ # define Tcl_WideAsDouble(val) ((double)((Tcl_WideInt)(val)))
452
+ # define Tcl_DoubleAsWide(val) ((Tcl_WideInt)((double)(val)))
453
+ #endif /* TCL_WIDE_INT_IS_LONG */
454
+
455
+ #ifdef _WIN32
456
+ # ifdef __BORLANDC__
457
+ typedef struct stati64 Tcl_StatBuf;
458
+ # elif defined(_WIN64) || defined(_USE_64BIT_TIME_T)
459
+ typedef struct __stat64 Tcl_StatBuf;
460
+ # elif (defined(_MSC_VER) && (_MSC_VER < 1400)) || defined(_USE_32BIT_TIME_T)
461
+ typedef struct _stati64 Tcl_StatBuf;
462
+ # else
463
+ typedef struct _stat32i64 Tcl_StatBuf;
464
+ # endif /* _MSC_VER < 1400 */
465
+ #elif defined(__CYGWIN__)
466
+ typedef struct {
467
+ dev_t st_dev;
468
+ unsigned short st_ino;
469
+ unsigned short st_mode;
470
+ short st_nlink;
471
+ short st_uid;
472
+ short st_gid;
473
+ /* Here is a 2-byte gap */
474
+ dev_t st_rdev;
475
+ /* Here is a 4-byte gap */
476
+ long long st_size;
477
+ struct {long tv_sec;} st_atim;
478
+ struct {long tv_sec;} st_mtim;
479
+ struct {long tv_sec;} st_ctim;
480
+ /* Here is a 4-byte gap */
481
+ } Tcl_StatBuf;
482
+ #elif defined(HAVE_STRUCT_STAT64) && !defined(__APPLE__)
483
+ typedef struct stat64 Tcl_StatBuf;
484
+ #else
485
+ typedef struct stat Tcl_StatBuf;
486
+ #endif
487
+
488
+ /*
489
+ *----------------------------------------------------------------------------
490
+ * Data structures defined opaquely in this module. The definitions below just
491
+ * provide dummy types. A few fields are made visible in Tcl_Interp
492
+ * structures, namely those used for returning a string result from commands.
493
+ * Direct access to the result field is discouraged in Tcl 8.0. The
494
+ * interpreter result is either an object or a string, and the two values are
495
+ * kept consistent unless some C code sets interp->result directly.
496
+ * Programmers should use either the function Tcl_GetObjResult() or
497
+ * Tcl_GetStringResult() to read the interpreter's result. See the SetResult
498
+ * man page for details.
499
+ *
500
+ * Note: any change to the Tcl_Interp definition below must be mirrored in the
501
+ * "real" definition in tclInt.h.
502
+ *
503
+ * Note: Tcl_ObjCmdProc functions do not directly set result and freeProc.
504
+ * Instead, they set a Tcl_Obj member in the "real" structure that can be
505
+ * accessed with Tcl_GetObjResult() and Tcl_SetObjResult().
506
+ */
507
+
508
+ typedef struct Tcl_Interp
509
+ #if !defined(TCL_NO_DEPRECATED) && TCL_MAJOR_VERSION < 9
510
+ {
511
+ /* TIP #330: Strongly discourage extensions from using the string
512
+ * result. */
513
+ #ifdef USE_INTERP_RESULT
514
+ char *result TCL_DEPRECATED_API("use Tcl_GetStringResult/Tcl_SetResult");
515
+ /* If the last command returned a string
516
+ * result, this points to it. */
517
+ void (*freeProc) (char *blockPtr)
518
+ TCL_DEPRECATED_API("use Tcl_GetStringResult/Tcl_SetResult");
519
+ /* Zero means the string result is statically
520
+ * allocated. TCL_DYNAMIC means it was
521
+ * allocated with ckalloc and should be freed
522
+ * with ckfree. Other values give the address
523
+ * of function to invoke to free the result.
524
+ * Tcl_Eval must free it before executing next
525
+ * command. */
526
+ #else
527
+ char *resultDontUse; /* Don't use in extensions! */
528
+ void (*freeProcDontUse) (char *); /* Don't use in extensions! */
529
+ #endif
530
+ #ifdef USE_INTERP_ERRORLINE
531
+ int errorLine TCL_DEPRECATED_API("use Tcl_GetErrorLine/Tcl_SetErrorLine");
532
+ /* When TCL_ERROR is returned, this gives the
533
+ * line number within the command where the
534
+ * error occurred (1 if first line). */
535
+ #else
536
+ int errorLineDontUse; /* Don't use in extensions! */
537
+ #endif
538
+ }
539
+ #endif /* !TCL_NO_DEPRECATED */
540
+ Tcl_Interp;
541
+
542
+ typedef struct Tcl_AsyncHandler_ *Tcl_AsyncHandler;
543
+ typedef struct Tcl_Channel_ *Tcl_Channel;
544
+ typedef struct Tcl_ChannelTypeVersion_ *Tcl_ChannelTypeVersion;
545
+ typedef struct Tcl_Command_ *Tcl_Command;
546
+ typedef struct Tcl_Condition_ *Tcl_Condition;
547
+ typedef struct Tcl_Dict_ *Tcl_Dict;
548
+ typedef struct Tcl_EncodingState_ *Tcl_EncodingState;
549
+ typedef struct Tcl_Encoding_ *Tcl_Encoding;
550
+ typedef struct Tcl_Event Tcl_Event;
551
+ typedef struct Tcl_InterpState_ *Tcl_InterpState;
552
+ typedef struct Tcl_LoadHandle_ *Tcl_LoadHandle;
553
+ typedef struct Tcl_Mutex_ *Tcl_Mutex;
554
+ typedef struct Tcl_Pid_ *Tcl_Pid;
555
+ typedef struct Tcl_RegExp_ *Tcl_RegExp;
556
+ typedef struct Tcl_ThreadDataKey_ *Tcl_ThreadDataKey;
557
+ typedef struct Tcl_ThreadId_ *Tcl_ThreadId;
558
+ typedef struct Tcl_TimerToken_ *Tcl_TimerToken;
559
+ typedef struct Tcl_Trace_ *Tcl_Trace;
560
+ typedef struct Tcl_Var_ *Tcl_Var;
561
+ typedef struct Tcl_ZLibStream_ *Tcl_ZlibStream;
562
+
563
+ /*
564
+ *----------------------------------------------------------------------------
565
+ * Definition of the interface to functions implementing threads. A function
566
+ * following this definition is given to each call of 'Tcl_CreateThread' and
567
+ * will be called as the main fuction of the new thread created by that call.
568
+ */
569
+
570
+ #if defined _WIN32
571
+ typedef unsigned (__stdcall Tcl_ThreadCreateProc) (ClientData clientData);
572
+ #else
573
+ typedef void (Tcl_ThreadCreateProc) (ClientData clientData);
574
+ #endif
575
+
576
+ /*
577
+ * Threading function return types used for abstracting away platform
578
+ * differences when writing a Tcl_ThreadCreateProc. See the NewThread function
579
+ * in generic/tclThreadTest.c for it's usage.
580
+ */
581
+
582
+ #if defined _WIN32
583
+ # define Tcl_ThreadCreateType unsigned __stdcall
584
+ # define TCL_THREAD_CREATE_RETURN return 0
585
+ #else
586
+ # define Tcl_ThreadCreateType void
587
+ # define TCL_THREAD_CREATE_RETURN
588
+ #endif
589
+
590
+ /*
591
+ * Definition of values for default stacksize and the possible flags to be
592
+ * given to Tcl_CreateThread.
593
+ */
594
+
595
+ #define TCL_THREAD_STACK_DEFAULT (0) /* Use default size for stack. */
596
+ #define TCL_THREAD_NOFLAGS (0000) /* Standard flags, default
597
+ * behaviour. */
598
+ #define TCL_THREAD_JOINABLE (0001) /* Mark the thread as joinable. */
599
+
600
+ /*
601
+ * Flag values passed to Tcl_StringCaseMatch.
602
+ */
603
+
604
+ #define TCL_MATCH_NOCASE (1<<0)
605
+
606
+ /*
607
+ * Flag values passed to Tcl_GetRegExpFromObj.
608
+ */
609
+
610
+ #define TCL_REG_BASIC 000000 /* BREs (convenience). */
611
+ #define TCL_REG_EXTENDED 000001 /* EREs. */
612
+ #define TCL_REG_ADVF 000002 /* Advanced features in EREs. */
613
+ #define TCL_REG_ADVANCED 000003 /* AREs (which are also EREs). */
614
+ #define TCL_REG_QUOTE 000004 /* No special characters, none. */
615
+ #define TCL_REG_NOCASE 000010 /* Ignore case. */
616
+ #define TCL_REG_NOSUB 000020 /* Don't care about subexpressions. */
617
+ #define TCL_REG_EXPANDED 000040 /* Expanded format, white space &
618
+ * comments. */
619
+ #define TCL_REG_NLSTOP 000100 /* \n doesn't match . or [^ ] */
620
+ #define TCL_REG_NLANCH 000200 /* ^ matches after \n, $ before. */
621
+ #define TCL_REG_NEWLINE 000300 /* Newlines are line terminators. */
622
+ #define TCL_REG_CANMATCH 001000 /* Report details on partial/limited
623
+ * matches. */
624
+
625
+ /*
626
+ * Flags values passed to Tcl_RegExpExecObj.
627
+ */
628
+
629
+ #define TCL_REG_NOTBOL 0001 /* Beginning of string does not match ^. */
630
+ #define TCL_REG_NOTEOL 0002 /* End of string does not match $. */
631
+
632
+ /*
633
+ * Structures filled in by Tcl_RegExpInfo. Note that all offset values are
634
+ * relative to the start of the match string, not the beginning of the entire
635
+ * string.
636
+ */
637
+
638
+ typedef struct Tcl_RegExpIndices {
639
+ long start; /* Character offset of first character in
640
+ * match. */
641
+ long end; /* Character offset of first character after
642
+ * the match. */
643
+ } Tcl_RegExpIndices;
644
+
645
+ typedef struct Tcl_RegExpInfo {
646
+ int nsubs; /* Number of subexpressions in the compiled
647
+ * expression. */
648
+ Tcl_RegExpIndices *matches; /* Array of nsubs match offset pairs. */
649
+ long extendStart; /* The offset at which a subsequent match
650
+ * might begin. */
651
+ long reserved; /* Reserved for later use. */
652
+ } Tcl_RegExpInfo;
653
+
654
+ /*
655
+ * Picky compilers complain if this typdef doesn't appear before the struct's
656
+ * reference in tclDecls.h.
657
+ */
658
+
659
+ typedef Tcl_StatBuf *Tcl_Stat_;
660
+ typedef struct stat *Tcl_OldStat_;
661
+
662
+ /*
663
+ *----------------------------------------------------------------------------
664
+ * When a TCL command returns, the interpreter contains a result from the
665
+ * command. Programmers are strongly encouraged to use one of the functions
666
+ * Tcl_GetObjResult() or Tcl_GetStringResult() to read the interpreter's
667
+ * result. See the SetResult man page for details. Besides this result, the
668
+ * command function returns an integer code, which is one of the following:
669
+ *
670
+ * TCL_OK Command completed normally; the interpreter's result
671
+ * contains the command's result.
672
+ * TCL_ERROR The command couldn't be completed successfully; the
673
+ * interpreter's result describes what went wrong.
674
+ * TCL_RETURN The command requests that the current function return;
675
+ * the interpreter's result contains the function's
676
+ * return value.
677
+ * TCL_BREAK The command requests that the innermost loop be
678
+ * exited; the interpreter's result is meaningless.
679
+ * TCL_CONTINUE Go on to the next iteration of the current loop; the
680
+ * interpreter's result is meaningless.
681
+ */
682
+
683
+ #define TCL_OK 0
684
+ #define TCL_ERROR 1
685
+ #define TCL_RETURN 2
686
+ #define TCL_BREAK 3
687
+ #define TCL_CONTINUE 4
688
+
689
+ #define TCL_RESULT_SIZE 200
690
+
691
+ /*
692
+ *----------------------------------------------------------------------------
693
+ * Flags to control what substitutions are performed by Tcl_SubstObj():
694
+ */
695
+
696
+ #define TCL_SUBST_COMMANDS 001
697
+ #define TCL_SUBST_VARIABLES 002
698
+ #define TCL_SUBST_BACKSLASHES 004
699
+ #define TCL_SUBST_ALL 007
700
+
701
+ /*
702
+ * Argument descriptors for math function callbacks in expressions:
703
+ */
704
+
705
+ typedef enum {
706
+ TCL_INT, TCL_DOUBLE, TCL_EITHER, TCL_WIDE_INT
707
+ } Tcl_ValueType;
708
+
709
+ typedef struct Tcl_Value {
710
+ Tcl_ValueType type; /* Indicates intValue or doubleValue is valid,
711
+ * or both. */
712
+ long intValue; /* Integer value. */
713
+ double doubleValue; /* Double-precision floating value. */
714
+ Tcl_WideInt wideValue; /* Wide (min. 64-bit) integer value. */
715
+ } Tcl_Value;
716
+
717
+ /*
718
+ * Forward declaration of Tcl_Obj to prevent an error when the forward
719
+ * reference to Tcl_Obj is encountered in the function types declared below.
720
+ */
721
+
722
+ struct Tcl_Obj;
723
+
724
+ /*
725
+ *----------------------------------------------------------------------------
726
+ * Function types defined by Tcl:
727
+ */
728
+
729
+ typedef int (Tcl_AppInitProc) (Tcl_Interp *interp);
730
+ typedef int (Tcl_AsyncProc) (ClientData clientData, Tcl_Interp *interp,
731
+ int code);
732
+ typedef void (Tcl_ChannelProc) (ClientData clientData, int mask);
733
+ typedef void (Tcl_CloseProc) (ClientData data);
734
+ typedef void (Tcl_CmdDeleteProc) (ClientData clientData);
735
+ typedef int (Tcl_CmdProc) (ClientData clientData, Tcl_Interp *interp,
736
+ int argc, CONST84 char *argv[]);
737
+ typedef void (Tcl_CmdTraceProc) (ClientData clientData, Tcl_Interp *interp,
738
+ int level, char *command, Tcl_CmdProc *proc,
739
+ ClientData cmdClientData, int argc, CONST84 char *argv[]);
740
+ typedef int (Tcl_CmdObjTraceProc) (ClientData clientData, Tcl_Interp *interp,
741
+ int level, const char *command, Tcl_Command commandInfo, int objc,
742
+ struct Tcl_Obj *const *objv);
743
+ typedef void (Tcl_CmdObjTraceDeleteProc) (ClientData clientData);
744
+ typedef void (Tcl_DupInternalRepProc) (struct Tcl_Obj *srcPtr,
745
+ struct Tcl_Obj *dupPtr);
746
+ typedef int (Tcl_EncodingConvertProc) (ClientData clientData, const char *src,
747
+ int srcLen, int flags, Tcl_EncodingState *statePtr, char *dst,
748
+ int dstLen, int *srcReadPtr, int *dstWrotePtr, int *dstCharsPtr);
749
+ typedef void (Tcl_EncodingFreeProc) (ClientData clientData);
750
+ typedef int (Tcl_EventProc) (Tcl_Event *evPtr, int flags);
751
+ typedef void (Tcl_EventCheckProc) (ClientData clientData, int flags);
752
+ typedef int (Tcl_EventDeleteProc) (Tcl_Event *evPtr, ClientData clientData);
753
+ typedef void (Tcl_EventSetupProc) (ClientData clientData, int flags);
754
+ typedef void (Tcl_ExitProc) (ClientData clientData);
755
+ typedef void (Tcl_FileProc) (ClientData clientData, int mask);
756
+ typedef void (Tcl_FileFreeProc) (ClientData clientData);
757
+ typedef void (Tcl_FreeInternalRepProc) (struct Tcl_Obj *objPtr);
758
+ typedef void (Tcl_FreeProc) (char *blockPtr);
759
+ typedef void (Tcl_IdleProc) (ClientData clientData);
760
+ typedef void (Tcl_InterpDeleteProc) (ClientData clientData,
761
+ Tcl_Interp *interp);
762
+ typedef int (Tcl_MathProc) (ClientData clientData, Tcl_Interp *interp,
763
+ Tcl_Value *args, Tcl_Value *resultPtr);
764
+ typedef void (Tcl_NamespaceDeleteProc) (ClientData clientData);
765
+ typedef int (Tcl_ObjCmdProc) (ClientData clientData, Tcl_Interp *interp,
766
+ int objc, struct Tcl_Obj *const *objv);
767
+ typedef int (Tcl_PackageInitProc) (Tcl_Interp *interp);
768
+ typedef int (Tcl_PackageUnloadProc) (Tcl_Interp *interp, int flags);
769
+ typedef void (Tcl_PanicProc) (const char *format, ...);
770
+ typedef void (Tcl_TcpAcceptProc) (ClientData callbackData, Tcl_Channel chan,
771
+ char *address, int port);
772
+ typedef void (Tcl_TimerProc) (ClientData clientData);
773
+ typedef int (Tcl_SetFromAnyProc) (Tcl_Interp *interp, struct Tcl_Obj *objPtr);
774
+ typedef void (Tcl_UpdateStringProc) (struct Tcl_Obj *objPtr);
775
+ typedef char * (Tcl_VarTraceProc) (ClientData clientData, Tcl_Interp *interp,
776
+ CONST84 char *part1, CONST84 char *part2, int flags);
777
+ typedef void (Tcl_CommandTraceProc) (ClientData clientData, Tcl_Interp *interp,
778
+ const char *oldName, const char *newName, int flags);
779
+ typedef void (Tcl_CreateFileHandlerProc) (int fd, int mask, Tcl_FileProc *proc,
780
+ ClientData clientData);
781
+ typedef void (Tcl_DeleteFileHandlerProc) (int fd);
782
+ typedef void (Tcl_AlertNotifierProc) (ClientData clientData);
783
+ typedef void (Tcl_ServiceModeHookProc) (int mode);
784
+ typedef ClientData (Tcl_InitNotifierProc) (void);
785
+ typedef void (Tcl_FinalizeNotifierProc) (ClientData clientData);
786
+ typedef void (Tcl_MainLoopProc) (void);
787
+
788
+ /*
789
+ *----------------------------------------------------------------------------
790
+ * The following structure represents a type of object, which is a particular
791
+ * internal representation for an object plus a set of functions that provide
792
+ * standard operations on objects of that type.
793
+ */
794
+
795
+ typedef struct Tcl_ObjType {
796
+ const char *name; /* Name of the type, e.g. "int". */
797
+ Tcl_FreeInternalRepProc *freeIntRepProc;
798
+ /* Called to free any storage for the type's
799
+ * internal rep. NULL if the internal rep does
800
+ * not need freeing. */
801
+ Tcl_DupInternalRepProc *dupIntRepProc;
802
+ /* Called to create a new object as a copy of
803
+ * an existing object. */
804
+ Tcl_UpdateStringProc *updateStringProc;
805
+ /* Called to update the string rep from the
806
+ * type's internal representation. */
807
+ Tcl_SetFromAnyProc *setFromAnyProc;
808
+ /* Called to convert the object's internal rep
809
+ * to this type. Frees the internal rep of the
810
+ * old type. Returns TCL_ERROR on failure. */
811
+ } Tcl_ObjType;
812
+
813
+ /*
814
+ * One of the following structures exists for each object in the Tcl system.
815
+ * An object stores a value as either a string, some internal representation,
816
+ * or both.
817
+ */
818
+
819
+ typedef struct Tcl_Obj {
820
+ int refCount; /* When 0 the object will be freed. */
821
+ char *bytes; /* This points to the first byte of the
822
+ * object's string representation. The array
823
+ * must be followed by a null byte (i.e., at
824
+ * offset length) but may also contain
825
+ * embedded null characters. The array's
826
+ * storage is allocated by ckalloc. NULL means
827
+ * the string rep is invalid and must be
828
+ * regenerated from the internal rep. Clients
829
+ * should use Tcl_GetStringFromObj or
830
+ * Tcl_GetString to get a pointer to the byte
831
+ * array as a readonly value. */
832
+ int length; /* The number of bytes at *bytes, not
833
+ * including the terminating null. */
834
+ const Tcl_ObjType *typePtr; /* Denotes the object's type. Always
835
+ * corresponds to the type of the object's
836
+ * internal rep. NULL indicates the object has
837
+ * no internal rep (has no type). */
838
+ union { /* The internal representation: */
839
+ long longValue; /* - an long integer value. */
840
+ double doubleValue; /* - a double-precision floating value. */
841
+ void *otherValuePtr; /* - another, type-specific value,
842
+ not used internally any more. */
843
+ Tcl_WideInt wideValue; /* - a long long value. */
844
+ struct { /* - internal rep as two pointers.
845
+ * the main use of which is a bignum's
846
+ * tightly packed fields, where the alloc,
847
+ * used and signum flags are packed into
848
+ * ptr2 with everything else hung off ptr1. */
849
+ void *ptr1;
850
+ void *ptr2;
851
+ } twoPtrValue;
852
+ struct { /* - internal rep as a pointer and a long,
853
+ not used internally any more. */
854
+ void *ptr;
855
+ unsigned long value;
856
+ } ptrAndLongRep;
857
+ } internalRep;
858
+ } Tcl_Obj;
859
+
860
+ /*
861
+ * Macros to increment and decrement a Tcl_Obj's reference count, and to test
862
+ * whether an object is shared (i.e. has reference count > 1). Note: clients
863
+ * should use Tcl_DecrRefCount() when they are finished using an object, and
864
+ * should never call TclFreeObj() directly. TclFreeObj() is only defined and
865
+ * made public in tcl.h to support Tcl_DecrRefCount's macro definition.
866
+ */
867
+
868
+ void Tcl_IncrRefCount(Tcl_Obj *objPtr);
869
+ void Tcl_DecrRefCount(Tcl_Obj *objPtr);
870
+ int Tcl_IsShared(Tcl_Obj *objPtr);
871
+
872
+ /*
873
+ *----------------------------------------------------------------------------
874
+ * The following structure contains the state needed by Tcl_SaveResult. No-one
875
+ * outside of Tcl should access any of these fields. This structure is
876
+ * typically allocated on the stack.
877
+ */
878
+
879
+ typedef struct Tcl_SavedResult {
880
+ char *result;
881
+ Tcl_FreeProc *freeProc;
882
+ Tcl_Obj *objResultPtr;
883
+ char *appendResult;
884
+ int appendAvl;
885
+ int appendUsed;
886
+ char resultSpace[TCL_RESULT_SIZE+1];
887
+ } Tcl_SavedResult;
888
+
889
+ /*
890
+ *----------------------------------------------------------------------------
891
+ * The following definitions support Tcl's namespace facility. Note: the first
892
+ * five fields must match exactly the fields in a Namespace structure (see
893
+ * tclInt.h).
894
+ */
895
+
896
+ typedef struct Tcl_Namespace {
897
+ char *name; /* The namespace's name within its parent
898
+ * namespace. This contains no ::'s. The name
899
+ * of the global namespace is "" although "::"
900
+ * is an synonym. */
901
+ char *fullName; /* The namespace's fully qualified name. This
902
+ * starts with ::. */
903
+ ClientData clientData; /* Arbitrary value associated with this
904
+ * namespace. */
905
+ Tcl_NamespaceDeleteProc *deleteProc;
906
+ /* Function invoked when deleting the
907
+ * namespace to, e.g., free clientData. */
908
+ struct Tcl_Namespace *parentPtr;
909
+ /* Points to the namespace that contains this
910
+ * one. NULL if this is the global
911
+ * namespace. */
912
+ } Tcl_Namespace;
913
+
914
+ /*
915
+ *----------------------------------------------------------------------------
916
+ * The following structure represents a call frame, or activation record. A
917
+ * call frame defines a naming context for a procedure call: its local scope
918
+ * (for local variables) and its namespace scope (used for non-local
919
+ * variables; often the global :: namespace). A call frame can also define the
920
+ * naming context for a namespace eval or namespace inscope command: the
921
+ * namespace in which the command's code should execute. The Tcl_CallFrame
922
+ * structures exist only while procedures or namespace eval/inscope's are
923
+ * being executed, and provide a Tcl call stack.
924
+ *
925
+ * A call frame is initialized and pushed using Tcl_PushCallFrame and popped
926
+ * using Tcl_PopCallFrame. Storage for a Tcl_CallFrame must be provided by the
927
+ * Tcl_PushCallFrame caller, and callers typically allocate them on the C call
928
+ * stack for efficiency. For this reason, Tcl_CallFrame is defined as a
929
+ * structure and not as an opaque token. However, most Tcl_CallFrame fields
930
+ * are hidden since applications should not access them directly; others are
931
+ * declared as "dummyX".
932
+ *
933
+ * WARNING!! The structure definition must be kept consistent with the
934
+ * CallFrame structure in tclInt.h. If you change one, change the other.
935
+ */
936
+
937
+ typedef struct Tcl_CallFrame {
938
+ Tcl_Namespace *nsPtr;
939
+ int dummy1;
940
+ int dummy2;
941
+ void *dummy3;
942
+ void *dummy4;
943
+ void *dummy5;
944
+ int dummy6;
945
+ void *dummy7;
946
+ void *dummy8;
947
+ int dummy9;
948
+ void *dummy10;
949
+ void *dummy11;
950
+ void *dummy12;
951
+ void *dummy13;
952
+ } Tcl_CallFrame;
953
+
954
+ /*
955
+ *----------------------------------------------------------------------------
956
+ * Information about commands that is returned by Tcl_GetCommandInfo and
957
+ * passed to Tcl_SetCommandInfo. objProc is an objc/objv object-based command
958
+ * function while proc is a traditional Tcl argc/argv string-based function.
959
+ * Tcl_CreateObjCommand and Tcl_CreateCommand ensure that both objProc and
960
+ * proc are non-NULL and can be called to execute the command. However, it may
961
+ * be faster to call one instead of the other. The member isNativeObjectProc
962
+ * is set to 1 if an object-based function was registered by
963
+ * Tcl_CreateObjCommand, and to 0 if a string-based function was registered by
964
+ * Tcl_CreateCommand. The other function is typically set to a compatibility
965
+ * wrapper that does string-to-object or object-to-string argument conversions
966
+ * then calls the other function.
967
+ */
968
+
969
+ typedef struct Tcl_CmdInfo {
970
+ int isNativeObjectProc; /* 1 if objProc was registered by a call to
971
+ * Tcl_CreateObjCommand; 0 otherwise.
972
+ * Tcl_SetCmdInfo does not modify this
973
+ * field. */
974
+ Tcl_ObjCmdProc *objProc; /* Command's object-based function. */
975
+ ClientData objClientData; /* ClientData for object proc. */
976
+ Tcl_CmdProc *proc; /* Command's string-based function. */
977
+ ClientData clientData; /* ClientData for string proc. */
978
+ Tcl_CmdDeleteProc *deleteProc;
979
+ /* Function to call when command is
980
+ * deleted. */
981
+ ClientData deleteData; /* Value to pass to deleteProc (usually the
982
+ * same as clientData). */
983
+ Tcl_Namespace *namespacePtr;/* Points to the namespace that contains this
984
+ * command. Note that Tcl_SetCmdInfo will not
985
+ * change a command's namespace; use
986
+ * TclRenameCommand or Tcl_Eval (of 'rename')
987
+ * to do that. */
988
+ } Tcl_CmdInfo;
989
+
990
+ /*
991
+ *----------------------------------------------------------------------------
992
+ * The structure defined below is used to hold dynamic strings. The only
993
+ * fields that clients should use are string and length, accessible via the
994
+ * macros Tcl_DStringValue and Tcl_DStringLength.
995
+ */
996
+
997
+ #define TCL_DSTRING_STATIC_SIZE 200
998
+ typedef struct Tcl_DString {
999
+ char *string; /* Points to beginning of string: either
1000
+ * staticSpace below or a malloced array. */
1001
+ int length; /* Number of non-NULL characters in the
1002
+ * string. */
1003
+ int spaceAvl; /* Total number of bytes available for the
1004
+ * string and its terminating NULL char. */
1005
+ char staticSpace[TCL_DSTRING_STATIC_SIZE];
1006
+ /* Space to use in common case where string is
1007
+ * small. */
1008
+ } Tcl_DString;
1009
+
1010
+ #define Tcl_DStringLength(dsPtr) ((dsPtr)->length)
1011
+ #define Tcl_DStringValue(dsPtr) ((dsPtr)->string)
1012
+ #define Tcl_DStringTrunc Tcl_DStringSetLength
1013
+
1014
+ /*
1015
+ * Definitions for the maximum number of digits of precision that may be
1016
+ * specified in the "tcl_precision" variable, and the number of bytes of
1017
+ * buffer space required by Tcl_PrintDouble.
1018
+ */
1019
+
1020
+ #define TCL_MAX_PREC 17
1021
+ #define TCL_DOUBLE_SPACE (TCL_MAX_PREC+10)
1022
+
1023
+ /*
1024
+ * Definition for a number of bytes of buffer space sufficient to hold the
1025
+ * string representation of an integer in base 10 (assuming the existence of
1026
+ * 64-bit integers).
1027
+ */
1028
+
1029
+ #define TCL_INTEGER_SPACE 24
1030
+
1031
+ /*
1032
+ * Flag values passed to Tcl_ConvertElement.
1033
+ * TCL_DONT_USE_BRACES forces it not to enclose the element in braces, but to
1034
+ * use backslash quoting instead.
1035
+ * TCL_DONT_QUOTE_HASH disables the default quoting of the '#' character. It
1036
+ * is safe to leave the hash unquoted when the element is not the first
1037
+ * element of a list, and this flag can be used by the caller to indicate
1038
+ * that condition.
1039
+ */
1040
+
1041
+ #define TCL_DONT_USE_BRACES 1
1042
+ #define TCL_DONT_QUOTE_HASH 8
1043
+
1044
+ /*
1045
+ * Flag that may be passed to Tcl_GetIndexFromObj to force it to disallow
1046
+ * abbreviated strings.
1047
+ */
1048
+
1049
+ #define TCL_EXACT 1
1050
+
1051
+ /*
1052
+ *----------------------------------------------------------------------------
1053
+ * Flag values passed to Tcl_RecordAndEval, Tcl_EvalObj, Tcl_EvalObjv.
1054
+ * WARNING: these bit choices must not conflict with the bit choices for
1055
+ * evalFlag bits in tclInt.h!
1056
+ *
1057
+ * Meanings:
1058
+ * TCL_NO_EVAL: Just record this command
1059
+ * TCL_EVAL_GLOBAL: Execute script in global namespace
1060
+ * TCL_EVAL_DIRECT: Do not compile this script
1061
+ * TCL_EVAL_INVOKE: Magical Tcl_EvalObjv mode for aliases/ensembles
1062
+ * o Run in iPtr->lookupNsPtr or global namespace
1063
+ * o Cut out of error traces
1064
+ * o Don't reset the flags controlling ensemble
1065
+ * error message rewriting.
1066
+ * TCL_CANCEL_UNWIND: Magical Tcl_CancelEval mode that causes the
1067
+ * stack for the script in progress to be
1068
+ * completely unwound.
1069
+ * TCL_EVAL_NOERR: Do no exception reporting at all, just return
1070
+ * as the caller will report.
1071
+ */
1072
+
1073
+ #define TCL_NO_EVAL 0x010000
1074
+ #define TCL_EVAL_GLOBAL 0x020000
1075
+ #define TCL_EVAL_DIRECT 0x040000
1076
+ #define TCL_EVAL_INVOKE 0x080000
1077
+ #define TCL_CANCEL_UNWIND 0x100000
1078
+ #define TCL_EVAL_NOERR 0x200000
1079
+
1080
+ /*
1081
+ * Special freeProc values that may be passed to Tcl_SetResult (see the man
1082
+ * page for details):
1083
+ */
1084
+
1085
+ #define TCL_VOLATILE ((Tcl_FreeProc *) 1)
1086
+ #define TCL_STATIC ((Tcl_FreeProc *) 0)
1087
+ #define TCL_DYNAMIC ((Tcl_FreeProc *) 3)
1088
+
1089
+ /*
1090
+ * Flag values passed to variable-related functions.
1091
+ * WARNING: these bit choices must not conflict with the bit choice for
1092
+ * TCL_CANCEL_UNWIND, above.
1093
+ */
1094
+
1095
+ #define TCL_GLOBAL_ONLY 1
1096
+ #define TCL_NAMESPACE_ONLY 2
1097
+ #define TCL_APPEND_VALUE 4
1098
+ #define TCL_LIST_ELEMENT 8
1099
+ #define TCL_TRACE_READS 0x10
1100
+ #define TCL_TRACE_WRITES 0x20
1101
+ #define TCL_TRACE_UNSETS 0x40
1102
+ #define TCL_TRACE_DESTROYED 0x80
1103
+ #define TCL_INTERP_DESTROYED 0x100
1104
+ #define TCL_LEAVE_ERR_MSG 0x200
1105
+ #define TCL_TRACE_ARRAY 0x800
1106
+ #ifndef TCL_REMOVE_OBSOLETE_TRACES
1107
+ /* Required to support old variable/vdelete/vinfo traces. */
1108
+ #define TCL_TRACE_OLD_STYLE 0x1000
1109
+ #endif
1110
+ /* Indicate the semantics of the result of a trace. */
1111
+ #define TCL_TRACE_RESULT_DYNAMIC 0x8000
1112
+ #define TCL_TRACE_RESULT_OBJECT 0x10000
1113
+
1114
+ /*
1115
+ * Flag values for ensemble commands.
1116
+ */
1117
+
1118
+ #define TCL_ENSEMBLE_PREFIX 0x02/* Flag value to say whether to allow
1119
+ * unambiguous prefixes of commands or to
1120
+ * require exact matches for command names. */
1121
+
1122
+ /*
1123
+ * Flag values passed to command-related functions.
1124
+ */
1125
+
1126
+ #define TCL_TRACE_RENAME 0x2000
1127
+ #define TCL_TRACE_DELETE 0x4000
1128
+
1129
+ #define TCL_ALLOW_INLINE_COMPILATION 0x20000
1130
+
1131
+ /*
1132
+ * The TCL_PARSE_PART1 flag is deprecated and has no effect. The part1 is now
1133
+ * always parsed whenever the part2 is NULL. (This is to avoid a common error
1134
+ * when converting code to use the new object based APIs and forgetting to
1135
+ * give the flag)
1136
+ */
1137
+
1138
+ #if !defined(TCL_NO_DEPRECATED) && TCL_MAJOR_VERSION < 9
1139
+ # define TCL_PARSE_PART1 0x400
1140
+ #endif /* !TCL_NO_DEPRECATED */
1141
+
1142
+ /*
1143
+ * Types for linked variables:
1144
+ */
1145
+
1146
+ #define TCL_LINK_INT 1
1147
+ #define TCL_LINK_DOUBLE 2
1148
+ #define TCL_LINK_BOOLEAN 3
1149
+ #define TCL_LINK_STRING 4
1150
+ #define TCL_LINK_WIDE_INT 5
1151
+ #define TCL_LINK_CHAR 6
1152
+ #define TCL_LINK_UCHAR 7
1153
+ #define TCL_LINK_SHORT 8
1154
+ #define TCL_LINK_USHORT 9
1155
+ #define TCL_LINK_UINT 10
1156
+ #define TCL_LINK_LONG 11
1157
+ #define TCL_LINK_ULONG 12
1158
+ #define TCL_LINK_FLOAT 13
1159
+ #define TCL_LINK_WIDE_UINT 14
1160
+ #define TCL_LINK_READ_ONLY 0x80
1161
+
1162
+ /*
1163
+ *----------------------------------------------------------------------------
1164
+ * Forward declarations of Tcl_HashTable and related types.
1165
+ */
1166
+
1167
+ typedef struct Tcl_HashKeyType Tcl_HashKeyType;
1168
+ typedef struct Tcl_HashTable Tcl_HashTable;
1169
+ typedef struct Tcl_HashEntry Tcl_HashEntry;
1170
+
1171
+ typedef unsigned (Tcl_HashKeyProc) (Tcl_HashTable *tablePtr, void *keyPtr);
1172
+ typedef int (Tcl_CompareHashKeysProc) (void *keyPtr, Tcl_HashEntry *hPtr);
1173
+ typedef Tcl_HashEntry * (Tcl_AllocHashEntryProc) (Tcl_HashTable *tablePtr,
1174
+ void *keyPtr);
1175
+ typedef void (Tcl_FreeHashEntryProc) (Tcl_HashEntry *hPtr);
1176
+
1177
+ /*
1178
+ * This flag controls whether the hash table stores the hash of a key, or
1179
+ * recalculates it. There should be no reason for turning this flag off as it
1180
+ * is completely binary and source compatible unless you directly access the
1181
+ * bucketPtr member of the Tcl_HashTableEntry structure. This member has been
1182
+ * removed and the space used to store the hash value.
1183
+ */
1184
+
1185
+ #ifndef TCL_HASH_KEY_STORE_HASH
1186
+ # define TCL_HASH_KEY_STORE_HASH 1
1187
+ #endif
1188
+
1189
+ /*
1190
+ * Structure definition for an entry in a hash table. No-one outside Tcl
1191
+ * should access any of these fields directly; use the macros defined below.
1192
+ */
1193
+
1194
+ struct Tcl_HashEntry {
1195
+ Tcl_HashEntry *nextPtr; /* Pointer to next entry in this hash bucket,
1196
+ * or NULL for end of chain. */
1197
+ Tcl_HashTable *tablePtr; /* Pointer to table containing entry. */
1198
+ #if TCL_HASH_KEY_STORE_HASH
1199
+ void *hash; /* Hash value, stored as pointer to ensure
1200
+ * that the offsets of the fields in this
1201
+ * structure are not changed. */
1202
+ #else
1203
+ Tcl_HashEntry **bucketPtr; /* Pointer to bucket that points to first
1204
+ * entry in this entry's chain: used for
1205
+ * deleting the entry. */
1206
+ #endif
1207
+ ClientData clientData; /* Application stores something here with
1208
+ * Tcl_SetHashValue. */
1209
+ union { /* Key has one of these forms: */
1210
+ char *oneWordValue; /* One-word value for key. */
1211
+ Tcl_Obj *objPtr; /* Tcl_Obj * key value. */
1212
+ int words[1]; /* Multiple integer words for key. The actual
1213
+ * size will be as large as necessary for this
1214
+ * table's keys. */
1215
+ char string[1]; /* String for key. The actual size will be as
1216
+ * large as needed to hold the key. */
1217
+ } key; /* MUST BE LAST FIELD IN RECORD!! */
1218
+ };
1219
+
1220
+ /*
1221
+ * Flags used in Tcl_HashKeyType.
1222
+ *
1223
+ * TCL_HASH_KEY_RANDOMIZE_HASH -
1224
+ * There are some things, pointers for example
1225
+ * which don't hash well because they do not use
1226
+ * the lower bits. If this flag is set then the
1227
+ * hash table will attempt to rectify this by
1228
+ * randomising the bits and then using the upper
1229
+ * N bits as the index into the table.
1230
+ * TCL_HASH_KEY_SYSTEM_HASH - If this flag is set then all memory internally
1231
+ * allocated for the hash table that is not for an
1232
+ * entry will use the system heap.
1233
+ */
1234
+
1235
+ #define TCL_HASH_KEY_RANDOMIZE_HASH 0x1
1236
+ #define TCL_HASH_KEY_SYSTEM_HASH 0x2
1237
+
1238
+ /*
1239
+ * Structure definition for the methods associated with a hash table key type.
1240
+ */
1241
+
1242
+ #define TCL_HASH_KEY_TYPE_VERSION 1
1243
+ struct Tcl_HashKeyType {
1244
+ int version; /* Version of the table. If this structure is
1245
+ * extended in future then the version can be
1246
+ * used to distinguish between different
1247
+ * structures. */
1248
+ int flags; /* Flags, see above for details. */
1249
+ Tcl_HashKeyProc *hashKeyProc;
1250
+ /* Calculates a hash value for the key. If
1251
+ * this is NULL then the pointer itself is
1252
+ * used as a hash value. */
1253
+ Tcl_CompareHashKeysProc *compareKeysProc;
1254
+ /* Compares two keys and returns zero if they
1255
+ * do not match, and non-zero if they do. If
1256
+ * this is NULL then the pointers are
1257
+ * compared. */
1258
+ Tcl_AllocHashEntryProc *allocEntryProc;
1259
+ /* Called to allocate memory for a new entry,
1260
+ * i.e. if the key is a string then this could
1261
+ * allocate a single block which contains
1262
+ * enough space for both the entry and the
1263
+ * string. Only the key field of the allocated
1264
+ * Tcl_HashEntry structure needs to be filled
1265
+ * in. If something else needs to be done to
1266
+ * the key, i.e. incrementing a reference
1267
+ * count then that should be done by this
1268
+ * function. If this is NULL then Tcl_Alloc is
1269
+ * used to allocate enough space for a
1270
+ * Tcl_HashEntry and the key pointer is
1271
+ * assigned to key.oneWordValue. */
1272
+ Tcl_FreeHashEntryProc *freeEntryProc;
1273
+ /* Called to free memory associated with an
1274
+ * entry. If something else needs to be done
1275
+ * to the key, i.e. decrementing a reference
1276
+ * count then that should be done by this
1277
+ * function. If this is NULL then Tcl_Free is
1278
+ * used to free the Tcl_HashEntry. */
1279
+ };
1280
+
1281
+ /*
1282
+ * Structure definition for a hash table. Must be in tcl.h so clients can
1283
+ * allocate space for these structures, but clients should never access any
1284
+ * fields in this structure.
1285
+ */
1286
+
1287
+ #define TCL_SMALL_HASH_TABLE 4
1288
+ struct Tcl_HashTable {
1289
+ Tcl_HashEntry **buckets; /* Pointer to bucket array. Each element
1290
+ * points to first entry in bucket's hash
1291
+ * chain, or NULL. */
1292
+ Tcl_HashEntry *staticBuckets[TCL_SMALL_HASH_TABLE];
1293
+ /* Bucket array used for small tables (to
1294
+ * avoid mallocs and frees). */
1295
+ int numBuckets; /* Total number of buckets allocated at
1296
+ * **bucketPtr. */
1297
+ int numEntries; /* Total number of entries present in
1298
+ * table. */
1299
+ int rebuildSize; /* Enlarge table when numEntries gets to be
1300
+ * this large. */
1301
+ int downShift; /* Shift count used in hashing function.
1302
+ * Designed to use high-order bits of
1303
+ * randomized keys. */
1304
+ int mask; /* Mask value used in hashing function. */
1305
+ int keyType; /* Type of keys used in this table. It's
1306
+ * either TCL_CUSTOM_KEYS, TCL_STRING_KEYS,
1307
+ * TCL_ONE_WORD_KEYS, or an integer giving the
1308
+ * number of ints that is the size of the
1309
+ * key. */
1310
+ Tcl_HashEntry *(*findProc) (Tcl_HashTable *tablePtr, const char *key);
1311
+ Tcl_HashEntry *(*createProc) (Tcl_HashTable *tablePtr, const char *key,
1312
+ int *newPtr);
1313
+ const Tcl_HashKeyType *typePtr;
1314
+ /* Type of the keys used in the
1315
+ * Tcl_HashTable. */
1316
+ };
1317
+
1318
+ /*
1319
+ * Structure definition for information used to keep track of searches through
1320
+ * hash tables:
1321
+ */
1322
+
1323
+ typedef struct Tcl_HashSearch {
1324
+ Tcl_HashTable *tablePtr; /* Table being searched. */
1325
+ int nextIndex; /* Index of next bucket to be enumerated after
1326
+ * present one. */
1327
+ Tcl_HashEntry *nextEntryPtr;/* Next entry to be enumerated in the current
1328
+ * bucket. */
1329
+ } Tcl_HashSearch;
1330
+
1331
+ /*
1332
+ * Acceptable key types for hash tables:
1333
+ *
1334
+ * TCL_STRING_KEYS: The keys are strings, they are copied into the
1335
+ * entry.
1336
+ * TCL_ONE_WORD_KEYS: The keys are pointers, the pointer is stored
1337
+ * in the entry.
1338
+ * TCL_CUSTOM_TYPE_KEYS: The keys are arbitrary types which are copied
1339
+ * into the entry.
1340
+ * TCL_CUSTOM_PTR_KEYS: The keys are pointers to arbitrary types, the
1341
+ * pointer is stored in the entry.
1342
+ *
1343
+ * While maintaining binary compatibility the above have to be distinct values
1344
+ * as they are used to differentiate between old versions of the hash table
1345
+ * which don't have a typePtr and new ones which do. Once binary compatibility
1346
+ * is discarded in favour of making more wide spread changes TCL_STRING_KEYS
1347
+ * can be the same as TCL_CUSTOM_TYPE_KEYS, and TCL_ONE_WORD_KEYS can be the
1348
+ * same as TCL_CUSTOM_PTR_KEYS because they simply determine how the key is
1349
+ * accessed from the entry and not the behaviour.
1350
+ */
1351
+
1352
+ #define TCL_STRING_KEYS (0)
1353
+ #define TCL_ONE_WORD_KEYS (1)
1354
+ #define TCL_CUSTOM_TYPE_KEYS (-2)
1355
+ #define TCL_CUSTOM_PTR_KEYS (-1)
1356
+
1357
+ /*
1358
+ * Structure definition for information used to keep track of searches through
1359
+ * dictionaries. These fields should not be accessed by code outside
1360
+ * tclDictObj.c
1361
+ */
1362
+
1363
+ typedef struct {
1364
+ void *next; /* Search position for underlying hash
1365
+ * table. */
1366
+ int epoch; /* Epoch marker for dictionary being searched,
1367
+ * or -1 if search has terminated. */
1368
+ Tcl_Dict dictionaryPtr; /* Reference to dictionary being searched. */
1369
+ } Tcl_DictSearch;
1370
+
1371
+ /*
1372
+ *----------------------------------------------------------------------------
1373
+ * Flag values to pass to Tcl_DoOneEvent to disable searches for some kinds of
1374
+ * events:
1375
+ */
1376
+
1377
+ #define TCL_DONT_WAIT (1<<1)
1378
+ #define TCL_WINDOW_EVENTS (1<<2)
1379
+ #define TCL_FILE_EVENTS (1<<3)
1380
+ #define TCL_TIMER_EVENTS (1<<4)
1381
+ #define TCL_IDLE_EVENTS (1<<5) /* WAS 0x10 ???? */
1382
+ #define TCL_ALL_EVENTS (~TCL_DONT_WAIT)
1383
+
1384
+ /*
1385
+ * The following structure defines a generic event for the Tcl event system.
1386
+ * These are the things that are queued in calls to Tcl_QueueEvent and
1387
+ * serviced later by Tcl_DoOneEvent. There can be many different kinds of
1388
+ * events with different fields, corresponding to window events, timer events,
1389
+ * etc. The structure for a particular event consists of a Tcl_Event header
1390
+ * followed by additional information specific to that event.
1391
+ */
1392
+
1393
+ struct Tcl_Event {
1394
+ Tcl_EventProc *proc; /* Function to call to service this event. */
1395
+ struct Tcl_Event *nextPtr; /* Next in list of pending events, or NULL. */
1396
+ };
1397
+
1398
+ /*
1399
+ * Positions to pass to Tcl_QueueEvent:
1400
+ */
1401
+
1402
+ typedef enum {
1403
+ TCL_QUEUE_TAIL, TCL_QUEUE_HEAD, TCL_QUEUE_MARK
1404
+ } Tcl_QueuePosition;
1405
+
1406
+ /*
1407
+ * Values to pass to Tcl_SetServiceMode to specify the behavior of notifier
1408
+ * event routines.
1409
+ */
1410
+
1411
+ #define TCL_SERVICE_NONE 0
1412
+ #define TCL_SERVICE_ALL 1
1413
+
1414
+ /*
1415
+ * The following structure keeps is used to hold a time value, either as an
1416
+ * absolute time (the number of seconds from the epoch) or as an elapsed time.
1417
+ * On Unix systems the epoch is Midnight Jan 1, 1970 GMT.
1418
+ */
1419
+
1420
+ typedef struct Tcl_Time {
1421
+ long sec; /* Seconds. */
1422
+ long usec; /* Microseconds. */
1423
+ } Tcl_Time;
1424
+
1425
+ typedef void (Tcl_SetTimerProc) (CONST86 Tcl_Time *timePtr);
1426
+ typedef int (Tcl_WaitForEventProc) (CONST86 Tcl_Time *timePtr);
1427
+
1428
+ /*
1429
+ * TIP #233 (Virtualized Time)
1430
+ */
1431
+
1432
+ typedef void (Tcl_GetTimeProc) (Tcl_Time *timebuf, ClientData clientData);
1433
+ typedef void (Tcl_ScaleTimeProc) (Tcl_Time *timebuf, ClientData clientData);
1434
+
1435
+ /*
1436
+ *----------------------------------------------------------------------------
1437
+ * Bits to pass to Tcl_CreateFileHandler and Tcl_CreateChannelHandler to
1438
+ * indicate what sorts of events are of interest:
1439
+ */
1440
+
1441
+ #define TCL_READABLE (1<<1)
1442
+ #define TCL_WRITABLE (1<<2)
1443
+ #define TCL_EXCEPTION (1<<3)
1444
+
1445
+ /*
1446
+ * Flag values to pass to Tcl_OpenCommandChannel to indicate the disposition
1447
+ * of the stdio handles. TCL_STDIN, TCL_STDOUT, TCL_STDERR, are also used in
1448
+ * Tcl_GetStdChannel.
1449
+ */
1450
+
1451
+ #define TCL_STDIN (1<<1)
1452
+ #define TCL_STDOUT (1<<2)
1453
+ #define TCL_STDERR (1<<3)
1454
+ #define TCL_ENFORCE_MODE (1<<4)
1455
+
1456
+ /*
1457
+ * Bits passed to Tcl_DriverClose2Proc to indicate which side of a channel
1458
+ * should be closed.
1459
+ */
1460
+
1461
+ #define TCL_CLOSE_READ (1<<1)
1462
+ #define TCL_CLOSE_WRITE (1<<2)
1463
+
1464
+ /*
1465
+ * Value to use as the closeProc for a channel that supports the close2Proc
1466
+ * interface.
1467
+ */
1468
+
1469
+ #define TCL_CLOSE2PROC ((Tcl_DriverCloseProc *) 1)
1470
+
1471
+ /*
1472
+ * Channel version tag. This was introduced in 8.3.2/8.4.
1473
+ */
1474
+
1475
+ #define TCL_CHANNEL_VERSION_1 ((Tcl_ChannelTypeVersion) 0x1)
1476
+ #define TCL_CHANNEL_VERSION_2 ((Tcl_ChannelTypeVersion) 0x2)
1477
+ #define TCL_CHANNEL_VERSION_3 ((Tcl_ChannelTypeVersion) 0x3)
1478
+ #define TCL_CHANNEL_VERSION_4 ((Tcl_ChannelTypeVersion) 0x4)
1479
+ #define TCL_CHANNEL_VERSION_5 ((Tcl_ChannelTypeVersion) 0x5)
1480
+
1481
+ /*
1482
+ * TIP #218: Channel Actions, Ids for Tcl_DriverThreadActionProc.
1483
+ */
1484
+
1485
+ #define TCL_CHANNEL_THREAD_INSERT (0)
1486
+ #define TCL_CHANNEL_THREAD_REMOVE (1)
1487
+
1488
+ /*
1489
+ * Typedefs for the various operations in a channel type:
1490
+ */
1491
+
1492
+ typedef int (Tcl_DriverBlockModeProc) (ClientData instanceData, int mode);
1493
+ typedef int (Tcl_DriverCloseProc) (ClientData instanceData,
1494
+ Tcl_Interp *interp);
1495
+ typedef int (Tcl_DriverClose2Proc) (ClientData instanceData,
1496
+ Tcl_Interp *interp, int flags);
1497
+ typedef int (Tcl_DriverInputProc) (ClientData instanceData, char *buf,
1498
+ int toRead, int *errorCodePtr);
1499
+ typedef int (Tcl_DriverOutputProc) (ClientData instanceData,
1500
+ CONST84 char *buf, int toWrite, int *errorCodePtr);
1501
+ typedef int (Tcl_DriverSeekProc) (ClientData instanceData, long offset,
1502
+ int mode, int *errorCodePtr);
1503
+ typedef int (Tcl_DriverSetOptionProc) (ClientData instanceData,
1504
+ Tcl_Interp *interp, const char *optionName,
1505
+ const char *value);
1506
+ typedef int (Tcl_DriverGetOptionProc) (ClientData instanceData,
1507
+ Tcl_Interp *interp, CONST84 char *optionName,
1508
+ Tcl_DString *dsPtr);
1509
+ typedef void (Tcl_DriverWatchProc) (ClientData instanceData, int mask);
1510
+ typedef int (Tcl_DriverGetHandleProc) (ClientData instanceData,
1511
+ int direction, ClientData *handlePtr);
1512
+ typedef int (Tcl_DriverFlushProc) (ClientData instanceData);
1513
+ typedef int (Tcl_DriverHandlerProc) (ClientData instanceData,
1514
+ int interestMask);
1515
+ typedef Tcl_WideInt (Tcl_DriverWideSeekProc) (ClientData instanceData,
1516
+ Tcl_WideInt offset, int mode, int *errorCodePtr);
1517
+ /*
1518
+ * TIP #218, Channel Thread Actions
1519
+ */
1520
+ typedef void (Tcl_DriverThreadActionProc) (ClientData instanceData,
1521
+ int action);
1522
+ /*
1523
+ * TIP #208, File Truncation (etc.)
1524
+ */
1525
+ typedef int (Tcl_DriverTruncateProc) (ClientData instanceData,
1526
+ Tcl_WideInt length);
1527
+
1528
+ /*
1529
+ * struct Tcl_ChannelType:
1530
+ *
1531
+ * One such structure exists for each type (kind) of channel. It collects
1532
+ * together in one place all the functions that are part of the specific
1533
+ * channel type.
1534
+ *
1535
+ * It is recommend that the Tcl_Channel* functions are used to access elements
1536
+ * of this structure, instead of direct accessing.
1537
+ */
1538
+
1539
+ typedef struct Tcl_ChannelType {
1540
+ const char *typeName; /* The name of the channel type in Tcl
1541
+ * commands. This storage is owned by channel
1542
+ * type. */
1543
+ Tcl_ChannelTypeVersion version;
1544
+ /* Version of the channel type. */
1545
+ Tcl_DriverCloseProc *closeProc;
1546
+ /* Function to call to close the channel, or
1547
+ * TCL_CLOSE2PROC if the close2Proc should be
1548
+ * used instead. */
1549
+ Tcl_DriverInputProc *inputProc;
1550
+ /* Function to call for input on channel. */
1551
+ Tcl_DriverOutputProc *outputProc;
1552
+ /* Function to call for output on channel. */
1553
+ Tcl_DriverSeekProc *seekProc;
1554
+ /* Function to call to seek on the channel.
1555
+ * May be NULL. */
1556
+ Tcl_DriverSetOptionProc *setOptionProc;
1557
+ /* Set an option on a channel. */
1558
+ Tcl_DriverGetOptionProc *getOptionProc;
1559
+ /* Get an option from a channel. */
1560
+ Tcl_DriverWatchProc *watchProc;
1561
+ /* Set up the notifier to watch for events on
1562
+ * this channel. */
1563
+ Tcl_DriverGetHandleProc *getHandleProc;
1564
+ /* Get an OS handle from the channel or NULL
1565
+ * if not supported. */
1566
+ Tcl_DriverClose2Proc *close2Proc;
1567
+ /* Function to call to close the channel if
1568
+ * the device supports closing the read &
1569
+ * write sides independently. */
1570
+ Tcl_DriverBlockModeProc *blockModeProc;
1571
+ /* Set blocking mode for the raw channel. May
1572
+ * be NULL. */
1573
+ /*
1574
+ * Only valid in TCL_CHANNEL_VERSION_2 channels or later.
1575
+ */
1576
+ Tcl_DriverFlushProc *flushProc;
1577
+ /* Function to call to flush a channel. May be
1578
+ * NULL. */
1579
+ Tcl_DriverHandlerProc *handlerProc;
1580
+ /* Function to call to handle a channel event.
1581
+ * This will be passed up the stacked channel
1582
+ * chain. */
1583
+ /*
1584
+ * Only valid in TCL_CHANNEL_VERSION_3 channels or later.
1585
+ */
1586
+ Tcl_DriverWideSeekProc *wideSeekProc;
1587
+ /* Function to call to seek on the channel
1588
+ * which can handle 64-bit offsets. May be
1589
+ * NULL, and must be NULL if seekProc is
1590
+ * NULL. */
1591
+ /*
1592
+ * Only valid in TCL_CHANNEL_VERSION_4 channels or later.
1593
+ * TIP #218, Channel Thread Actions.
1594
+ */
1595
+ Tcl_DriverThreadActionProc *threadActionProc;
1596
+ /* Function to call to notify the driver of
1597
+ * thread specific activity for a channel. May
1598
+ * be NULL. */
1599
+ /*
1600
+ * Only valid in TCL_CHANNEL_VERSION_5 channels or later.
1601
+ * TIP #208, File Truncation.
1602
+ */
1603
+ Tcl_DriverTruncateProc *truncateProc;
1604
+ /* Function to call to truncate the underlying
1605
+ * file to a particular length. May be NULL if
1606
+ * the channel does not support truncation. */
1607
+ } Tcl_ChannelType;
1608
+
1609
+ /*
1610
+ * The following flags determine whether the blockModeProc above should set
1611
+ * the channel into blocking or nonblocking mode. They are passed as arguments
1612
+ * to the blockModeProc function in the above structure.
1613
+ */
1614
+
1615
+ #define TCL_MODE_BLOCKING 0 /* Put channel into blocking mode. */
1616
+ #define TCL_MODE_NONBLOCKING 1 /* Put channel into nonblocking
1617
+ * mode. */
1618
+
1619
+ /*
1620
+ *----------------------------------------------------------------------------
1621
+ * Enum for different types of file paths.
1622
+ */
1623
+
1624
+ typedef enum Tcl_PathType {
1625
+ TCL_PATH_ABSOLUTE,
1626
+ TCL_PATH_RELATIVE,
1627
+ TCL_PATH_VOLUME_RELATIVE
1628
+ } Tcl_PathType;
1629
+
1630
+ /*
1631
+ * The following structure is used to pass glob type data amongst the various
1632
+ * glob routines and Tcl_FSMatchInDirectory.
1633
+ */
1634
+
1635
+ typedef struct Tcl_GlobTypeData {
1636
+ int type; /* Corresponds to bcdpfls as in 'find -t'. */
1637
+ int perm; /* Corresponds to file permissions. */
1638
+ Tcl_Obj *macType; /* Acceptable Mac type. */
1639
+ Tcl_Obj *macCreator; /* Acceptable Mac creator. */
1640
+ } Tcl_GlobTypeData;
1641
+
1642
+ /*
1643
+ * Type and permission definitions for glob command.
1644
+ */
1645
+
1646
+ #define TCL_GLOB_TYPE_BLOCK (1<<0)
1647
+ #define TCL_GLOB_TYPE_CHAR (1<<1)
1648
+ #define TCL_GLOB_TYPE_DIR (1<<2)
1649
+ #define TCL_GLOB_TYPE_PIPE (1<<3)
1650
+ #define TCL_GLOB_TYPE_FILE (1<<4)
1651
+ #define TCL_GLOB_TYPE_LINK (1<<5)
1652
+ #define TCL_GLOB_TYPE_SOCK (1<<6)
1653
+ #define TCL_GLOB_TYPE_MOUNT (1<<7)
1654
+
1655
+ #define TCL_GLOB_PERM_RONLY (1<<0)
1656
+ #define TCL_GLOB_PERM_HIDDEN (1<<1)
1657
+ #define TCL_GLOB_PERM_R (1<<2)
1658
+ #define TCL_GLOB_PERM_W (1<<3)
1659
+ #define TCL_GLOB_PERM_X (1<<4)
1660
+
1661
+ /*
1662
+ * Flags for the unload callback function.
1663
+ */
1664
+
1665
+ #define TCL_UNLOAD_DETACH_FROM_INTERPRETER (1<<0)
1666
+ #define TCL_UNLOAD_DETACH_FROM_PROCESS (1<<1)
1667
+
1668
+ /*
1669
+ * Typedefs for the various filesystem operations:
1670
+ */
1671
+
1672
+ typedef int (Tcl_FSStatProc) (Tcl_Obj *pathPtr, Tcl_StatBuf *buf);
1673
+ typedef int (Tcl_FSAccessProc) (Tcl_Obj *pathPtr, int mode);
1674
+ typedef Tcl_Channel (Tcl_FSOpenFileChannelProc) (Tcl_Interp *interp,
1675
+ Tcl_Obj *pathPtr, int mode, int permissions);
1676
+ typedef int (Tcl_FSMatchInDirectoryProc) (Tcl_Interp *interp, Tcl_Obj *result,
1677
+ Tcl_Obj *pathPtr, const char *pattern, Tcl_GlobTypeData *types);
1678
+ typedef Tcl_Obj * (Tcl_FSGetCwdProc) (Tcl_Interp *interp);
1679
+ typedef int (Tcl_FSChdirProc) (Tcl_Obj *pathPtr);
1680
+ typedef int (Tcl_FSLstatProc) (Tcl_Obj *pathPtr, Tcl_StatBuf *buf);
1681
+ typedef int (Tcl_FSCreateDirectoryProc) (Tcl_Obj *pathPtr);
1682
+ typedef int (Tcl_FSDeleteFileProc) (Tcl_Obj *pathPtr);
1683
+ typedef int (Tcl_FSCopyDirectoryProc) (Tcl_Obj *srcPathPtr,
1684
+ Tcl_Obj *destPathPtr, Tcl_Obj **errorPtr);
1685
+ typedef int (Tcl_FSCopyFileProc) (Tcl_Obj *srcPathPtr, Tcl_Obj *destPathPtr);
1686
+ typedef int (Tcl_FSRemoveDirectoryProc) (Tcl_Obj *pathPtr, int recursive,
1687
+ Tcl_Obj **errorPtr);
1688
+ typedef int (Tcl_FSRenameFileProc) (Tcl_Obj *srcPathPtr, Tcl_Obj *destPathPtr);
1689
+ typedef void (Tcl_FSUnloadFileProc) (Tcl_LoadHandle loadHandle);
1690
+ typedef Tcl_Obj * (Tcl_FSListVolumesProc) (void);
1691
+ /* We have to declare the utime structure here. */
1692
+ struct utimbuf;
1693
+ typedef int (Tcl_FSUtimeProc) (Tcl_Obj *pathPtr, struct utimbuf *tval);
1694
+ typedef int (Tcl_FSNormalizePathProc) (Tcl_Interp *interp, Tcl_Obj *pathPtr,
1695
+ int nextCheckpoint);
1696
+ typedef int (Tcl_FSFileAttrsGetProc) (Tcl_Interp *interp, int index,
1697
+ Tcl_Obj *pathPtr, Tcl_Obj **objPtrRef);
1698
+ typedef const char *CONST86 * (Tcl_FSFileAttrStringsProc) (Tcl_Obj *pathPtr,
1699
+ Tcl_Obj **objPtrRef);
1700
+ typedef int (Tcl_FSFileAttrsSetProc) (Tcl_Interp *interp, int index,
1701
+ Tcl_Obj *pathPtr, Tcl_Obj *objPtr);
1702
+ typedef Tcl_Obj * (Tcl_FSLinkProc) (Tcl_Obj *pathPtr, Tcl_Obj *toPtr,
1703
+ int linkType);
1704
+ typedef int (Tcl_FSLoadFileProc) (Tcl_Interp *interp, Tcl_Obj *pathPtr,
1705
+ Tcl_LoadHandle *handlePtr, Tcl_FSUnloadFileProc **unloadProcPtr);
1706
+ typedef int (Tcl_FSPathInFilesystemProc) (Tcl_Obj *pathPtr,
1707
+ ClientData *clientDataPtr);
1708
+ typedef Tcl_Obj * (Tcl_FSFilesystemPathTypeProc) (Tcl_Obj *pathPtr);
1709
+ typedef Tcl_Obj * (Tcl_FSFilesystemSeparatorProc) (Tcl_Obj *pathPtr);
1710
+ typedef void (Tcl_FSFreeInternalRepProc) (ClientData clientData);
1711
+ typedef ClientData (Tcl_FSDupInternalRepProc) (ClientData clientData);
1712
+ typedef Tcl_Obj * (Tcl_FSInternalToNormalizedProc) (ClientData clientData);
1713
+ typedef ClientData (Tcl_FSCreateInternalRepProc) (Tcl_Obj *pathPtr);
1714
+
1715
+ typedef struct Tcl_FSVersion_ *Tcl_FSVersion;
1716
+
1717
+ /*
1718
+ *----------------------------------------------------------------------------
1719
+ * Data structures related to hooking into the filesystem
1720
+ */
1721
+
1722
+ /*
1723
+ * Filesystem version tag. This was introduced in 8.4.
1724
+ */
1725
+
1726
+ #define TCL_FILESYSTEM_VERSION_1 ((Tcl_FSVersion) 0x1)
1727
+
1728
+ /*
1729
+ * struct Tcl_Filesystem:
1730
+ *
1731
+ * One such structure exists for each type (kind) of filesystem. It collects
1732
+ * together the functions that form the interface for a particulr the
1733
+ * filesystem. Tcl always accesses the filesystem through one of these
1734
+ * structures.
1735
+ *
1736
+ * Not all entries need be non-NULL; any which are NULL are simply ignored.
1737
+ * However, a complete filesystem should provide all of these functions. The
1738
+ * explanations in the structure show the importance of each function.
1739
+ */
1740
+
1741
+ typedef struct Tcl_Filesystem {
1742
+ const char *typeName; /* The name of the filesystem. */
1743
+ int structureLength; /* Length of this structure, so future binary
1744
+ * compatibility can be assured. */
1745
+ Tcl_FSVersion version; /* Version of the filesystem type. */
1746
+ Tcl_FSPathInFilesystemProc *pathInFilesystemProc;
1747
+ /* Determines whether the pathname is in this
1748
+ * filesystem. This is the most important
1749
+ * filesystem function. */
1750
+ Tcl_FSDupInternalRepProc *dupInternalRepProc;
1751
+ /* Duplicates the internal handle of the node.
1752
+ * If it is NULL, the filesystem is less
1753
+ * performant. */
1754
+ Tcl_FSFreeInternalRepProc *freeInternalRepProc;
1755
+ /* Frees the internal handle of the node. NULL
1756
+ * only if there is no need to free resources
1757
+ * used for the internal handle. */
1758
+ Tcl_FSInternalToNormalizedProc *internalToNormalizedProc;
1759
+ /* Converts the internal handle to a normalized
1760
+ * path. NULL if the filesystem creates nodes
1761
+ * having no pathname. */
1762
+ Tcl_FSCreateInternalRepProc *createInternalRepProc;
1763
+ /* Creates an internal handle for a pathname.
1764
+ * May be NULL if pathnames have no internal
1765
+ * handle or if pathInFilesystemProc always
1766
+ * immediately creates an internal
1767
+ * representation for pathnames in the
1768
+ * filesystem. */
1769
+ Tcl_FSNormalizePathProc *normalizePathProc;
1770
+ /* Normalizes a path. Should be implemented if
1771
+ * the filesystems supports multiple paths to
1772
+ * the same node. */
1773
+ Tcl_FSFilesystemPathTypeProc *filesystemPathTypeProc;
1774
+ /* Determines the type of a path in this
1775
+ * filesystem. May be NULL. */
1776
+ Tcl_FSFilesystemSeparatorProc *filesystemSeparatorProc;
1777
+ /* Produces the separator character(s) for this
1778
+ * filesystem. Must not be NULL. */
1779
+ Tcl_FSStatProc *statProc; /* Called by 'Tcl_FSStat()'. Provided by any
1780
+ * reasonable filesystem. */
1781
+ Tcl_FSAccessProc *accessProc;
1782
+ /* Called by 'Tcl_FSAccess()'. Implemented by
1783
+ * any reasonable filesystem. */
1784
+ Tcl_FSOpenFileChannelProc *openFileChannelProc;
1785
+ /* Called by 'Tcl_FSOpenFileChannel()'.
1786
+ * Provided by any reasonable filesystem. */
1787
+ Tcl_FSMatchInDirectoryProc *matchInDirectoryProc;
1788
+ /* Called by 'Tcl_FSMatchInDirectory()'. NULL
1789
+ * if the filesystem does not support glob or
1790
+ * recursive copy. */
1791
+ Tcl_FSUtimeProc *utimeProc; /* Called by 'Tcl_FSUtime()', by 'file
1792
+ * mtime' to set (not read) times, 'file
1793
+ * atime', and the open-r/open-w/fcopy variant
1794
+ * of 'file copy'. */
1795
+ Tcl_FSLinkProc *linkProc; /* Called by 'Tcl_FSLink()'. NULL if reading or
1796
+ * creating links is not supported. */
1797
+ Tcl_FSListVolumesProc *listVolumesProc;
1798
+ /* Lists filesystem volumes added by this
1799
+ * filesystem. NULL if the filesystem does not
1800
+ * use volumes. */
1801
+ Tcl_FSFileAttrStringsProc *fileAttrStringsProc;
1802
+ /* List all valid attributes strings. NULL if
1803
+ * the filesystem does not support the 'file
1804
+ * attributes' command. Can be used to attach
1805
+ * arbitrary additional data to files in a
1806
+ * filesystem. */
1807
+ Tcl_FSFileAttrsGetProc *fileAttrsGetProc;
1808
+ /* Called by 'Tcl_FSFileAttrsGet()' and by
1809
+ * 'file attributes'. */
1810
+ Tcl_FSFileAttrsSetProc *fileAttrsSetProc;
1811
+ /* Called by 'Tcl_FSFileAttrsSet()' and by
1812
+ * 'file attributes'. */
1813
+ Tcl_FSCreateDirectoryProc *createDirectoryProc;
1814
+ /* Called by 'Tcl_FSCreateDirectory()'. May be
1815
+ * NULL if the filesystem is read-only. */
1816
+ Tcl_FSRemoveDirectoryProc *removeDirectoryProc;
1817
+ /* Called by 'Tcl_FSRemoveDirectory()'. May be
1818
+ * NULL if the filesystem is read-only. */
1819
+ Tcl_FSDeleteFileProc *deleteFileProc;
1820
+ /* Called by 'Tcl_FSDeleteFile()' May be NULL
1821
+ * if the filesystem is is read-only. */
1822
+ Tcl_FSCopyFileProc *copyFileProc;
1823
+ /* Called by 'Tcl_FSCopyFile()'. If NULL, for
1824
+ * a copy operation at the script level (not
1825
+ * C) Tcl uses open-r, open-w and fcopy. */
1826
+ Tcl_FSRenameFileProc *renameFileProc;
1827
+ /* Called by 'Tcl_FSRenameFile()'. If NULL, for
1828
+ * a rename operation at the script level (not
1829
+ * C) Tcl performs a copy operation followed
1830
+ * by a delete operation. */
1831
+ Tcl_FSCopyDirectoryProc *copyDirectoryProc;
1832
+ /* Called by 'Tcl_FSCopyDirectory()'. If NULL,
1833
+ * for a copy operation at the script level
1834
+ * (not C) Tcl recursively creates directories
1835
+ * and copies files. */
1836
+ Tcl_FSLstatProc *lstatProc; /* Called by 'Tcl_FSLstat()'. If NULL, Tcl
1837
+ * attempts to use 'statProc' instead. */
1838
+ Tcl_FSLoadFileProc *loadFileProc;
1839
+ /* Called by 'Tcl_FSLoadFile()'. If NULL, Tcl
1840
+ * performs a copy to a temporary file in the
1841
+ * native filesystem and then calls
1842
+ * Tcl_FSLoadFile() on that temporary copy. */
1843
+ Tcl_FSGetCwdProc *getCwdProc;
1844
+ /* Called by 'Tcl_FSGetCwd()'. Normally NULL.
1845
+ * Usually only called once: If 'getcwd' is
1846
+ * called before 'chdir' is ever called. */
1847
+ Tcl_FSChdirProc *chdirProc; /* Called by 'Tcl_FSChdir()'. For a virtual
1848
+ * filesystem, chdirProc just returns zero
1849
+ * (success) if the pathname is a valid
1850
+ * directory, and some other value otherwise.
1851
+ * For A real filesystem, chdirProc performs
1852
+ * the correct action, e.g. calls the system
1853
+ * 'chdir' function. If not implemented, then
1854
+ * 'cd' and 'pwd' fail for a pathname in this
1855
+ * filesystem. On success Tcl stores the
1856
+ * pathname for use by GetCwd. If NULL, Tcl
1857
+ * performs records the pathname as the new
1858
+ * current directory if it passes a series of
1859
+ * directory access checks. */
1860
+ } Tcl_Filesystem;
1861
+
1862
+ /*
1863
+ * The following definitions are used as values for the 'linkAction' flag to
1864
+ * Tcl_FSLink, or the linkProc of any filesystem. Any combination of flags can
1865
+ * be given. For link creation, the linkProc should create a link which
1866
+ * matches any of the types given.
1867
+ *
1868
+ * TCL_CREATE_SYMBOLIC_LINK - Create a symbolic or soft link.
1869
+ * TCL_CREATE_HARD_LINK - Create a hard link.
1870
+ */
1871
+
1872
+ #define TCL_CREATE_SYMBOLIC_LINK 0x01
1873
+ #define TCL_CREATE_HARD_LINK 0x02
1874
+
1875
+ /*
1876
+ *----------------------------------------------------------------------------
1877
+ * The following structure represents the Notifier functions that you can
1878
+ * override with the Tcl_SetNotifier call.
1879
+ */
1880
+
1881
+ typedef struct Tcl_NotifierProcs {
1882
+ Tcl_SetTimerProc *setTimerProc;
1883
+ Tcl_WaitForEventProc *waitForEventProc;
1884
+ Tcl_CreateFileHandlerProc *createFileHandlerProc;
1885
+ Tcl_DeleteFileHandlerProc *deleteFileHandlerProc;
1886
+ Tcl_InitNotifierProc *initNotifierProc;
1887
+ Tcl_FinalizeNotifierProc *finalizeNotifierProc;
1888
+ Tcl_AlertNotifierProc *alertNotifierProc;
1889
+ Tcl_ServiceModeHookProc *serviceModeHookProc;
1890
+ } Tcl_NotifierProcs;
1891
+
1892
+ /*
1893
+ *----------------------------------------------------------------------------
1894
+ * The following data structures and declarations are for the new Tcl parser.
1895
+ *
1896
+ * For each word of a command, and for each piece of a word such as a variable
1897
+ * reference, one of the following structures is created to describe the
1898
+ * token.
1899
+ */
1900
+
1901
+ typedef struct Tcl_Token {
1902
+ int type; /* Type of token, such as TCL_TOKEN_WORD; see
1903
+ * below for valid types. */
1904
+ const char *start; /* First character in token. */
1905
+ int size; /* Number of bytes in token. */
1906
+ int numComponents; /* If this token is composed of other tokens,
1907
+ * this field tells how many of them there are
1908
+ * (including components of components, etc.).
1909
+ * The component tokens immediately follow
1910
+ * this one. */
1911
+ } Tcl_Token;
1912
+
1913
+ /*
1914
+ * Type values defined for Tcl_Token structures. These values are defined as
1915
+ * mask bits so that it's easy to check for collections of types.
1916
+ *
1917
+ * TCL_TOKEN_WORD - The token describes one word of a command,
1918
+ * from the first non-blank character of the word
1919
+ * (which may be " or {) up to but not including
1920
+ * the space, semicolon, or bracket that
1921
+ * terminates the word. NumComponents counts the
1922
+ * total number of sub-tokens that make up the
1923
+ * word. This includes, for example, sub-tokens
1924
+ * of TCL_TOKEN_VARIABLE tokens.
1925
+ * TCL_TOKEN_SIMPLE_WORD - This token is just like TCL_TOKEN_WORD except
1926
+ * that the word is guaranteed to consist of a
1927
+ * single TCL_TOKEN_TEXT sub-token.
1928
+ * TCL_TOKEN_TEXT - The token describes a range of literal text
1929
+ * that is part of a word. NumComponents is
1930
+ * always 0.
1931
+ * TCL_TOKEN_BS - The token describes a backslash sequence that
1932
+ * must be collapsed. NumComponents is always 0.
1933
+ * TCL_TOKEN_COMMAND - The token describes a command whose result
1934
+ * must be substituted into the word. The token
1935
+ * includes the enclosing brackets. NumComponents
1936
+ * is always 0.
1937
+ * TCL_TOKEN_VARIABLE - The token describes a variable substitution,
1938
+ * including the dollar sign, variable name, and
1939
+ * array index (if there is one) up through the
1940
+ * right parentheses. NumComponents tells how
1941
+ * many additional tokens follow to represent the
1942
+ * variable name. The first token will be a
1943
+ * TCL_TOKEN_TEXT token that describes the
1944
+ * variable name. If the variable is an array
1945
+ * reference then there will be one or more
1946
+ * additional tokens, of type TCL_TOKEN_TEXT,
1947
+ * TCL_TOKEN_BS, TCL_TOKEN_COMMAND, and
1948
+ * TCL_TOKEN_VARIABLE, that describe the array
1949
+ * index; numComponents counts the total number
1950
+ * of nested tokens that make up the variable
1951
+ * reference, including sub-tokens of
1952
+ * TCL_TOKEN_VARIABLE tokens.
1953
+ * TCL_TOKEN_SUB_EXPR - The token describes one subexpression of an
1954
+ * expression, from the first non-blank character
1955
+ * of the subexpression up to but not including
1956
+ * the space, brace, or bracket that terminates
1957
+ * the subexpression. NumComponents counts the
1958
+ * total number of following subtokens that make
1959
+ * up the subexpression; this includes all
1960
+ * subtokens for any nested TCL_TOKEN_SUB_EXPR
1961
+ * tokens. For example, a numeric value used as a
1962
+ * primitive operand is described by a
1963
+ * TCL_TOKEN_SUB_EXPR token followed by a
1964
+ * TCL_TOKEN_TEXT token. A binary subexpression
1965
+ * is described by a TCL_TOKEN_SUB_EXPR token
1966
+ * followed by the TCL_TOKEN_OPERATOR token for
1967
+ * the operator, then TCL_TOKEN_SUB_EXPR tokens
1968
+ * for the left then the right operands.
1969
+ * TCL_TOKEN_OPERATOR - The token describes one expression operator.
1970
+ * An operator might be the name of a math
1971
+ * function such as "abs". A TCL_TOKEN_OPERATOR
1972
+ * token is always preceded by one
1973
+ * TCL_TOKEN_SUB_EXPR token for the operator's
1974
+ * subexpression, and is followed by zero or more
1975
+ * TCL_TOKEN_SUB_EXPR tokens for the operator's
1976
+ * operands. NumComponents is always 0.
1977
+ * TCL_TOKEN_EXPAND_WORD - This token is just like TCL_TOKEN_WORD except
1978
+ * that it marks a word that began with the
1979
+ * literal character prefix "{*}". This word is
1980
+ * marked to be expanded - that is, broken into
1981
+ * words after substitution is complete.
1982
+ */
1983
+
1984
+ #define TCL_TOKEN_WORD 1
1985
+ #define TCL_TOKEN_SIMPLE_WORD 2
1986
+ #define TCL_TOKEN_TEXT 4
1987
+ #define TCL_TOKEN_BS 8
1988
+ #define TCL_TOKEN_COMMAND 16
1989
+ #define TCL_TOKEN_VARIABLE 32
1990
+ #define TCL_TOKEN_SUB_EXPR 64
1991
+ #define TCL_TOKEN_OPERATOR 128
1992
+ #define TCL_TOKEN_EXPAND_WORD 256
1993
+
1994
+ /*
1995
+ * Parsing error types. On any parsing error, one of these values will be
1996
+ * stored in the error field of the Tcl_Parse structure defined below.
1997
+ */
1998
+
1999
+ #define TCL_PARSE_SUCCESS 0
2000
+ #define TCL_PARSE_QUOTE_EXTRA 1
2001
+ #define TCL_PARSE_BRACE_EXTRA 2
2002
+ #define TCL_PARSE_MISSING_BRACE 3
2003
+ #define TCL_PARSE_MISSING_BRACKET 4
2004
+ #define TCL_PARSE_MISSING_PAREN 5
2005
+ #define TCL_PARSE_MISSING_QUOTE 6
2006
+ #define TCL_PARSE_MISSING_VAR_BRACE 7
2007
+ #define TCL_PARSE_SYNTAX 8
2008
+ #define TCL_PARSE_BAD_NUMBER 9
2009
+
2010
+ /*
2011
+ * A structure of the following type is filled in by Tcl_ParseCommand. It
2012
+ * describes a single command parsed from an input string.
2013
+ */
2014
+
2015
+ #define NUM_STATIC_TOKENS 20
2016
+
2017
+ typedef struct Tcl_Parse {
2018
+ const char *commentStart; /* Pointer to # that begins the first of one
2019
+ * or more comments preceding the command. */
2020
+ int commentSize; /* Number of bytes in comments (up through
2021
+ * newline character that terminates the last
2022
+ * comment). If there were no comments, this
2023
+ * field is 0. */
2024
+ const char *commandStart; /* First character in first word of
2025
+ * command. */
2026
+ int commandSize; /* Number of bytes in command, including first
2027
+ * character of first word, up through the
2028
+ * terminating newline, close bracket, or
2029
+ * semicolon. */
2030
+ int numWords; /* Total number of words in command. May be
2031
+ * 0. */
2032
+ Tcl_Token *tokenPtr; /* Pointer to first token representing the
2033
+ * words of the command. Initially points to
2034
+ * staticTokens, but may change to point to
2035
+ * malloc-ed space if command exceeds space in
2036
+ * staticTokens. */
2037
+ int numTokens; /* Total number of tokens in command. */
2038
+ int tokensAvailable; /* Total number of tokens available at
2039
+ * *tokenPtr. */
2040
+ int errorType; /* One of the parsing error types defined
2041
+ * above. */
2042
+
2043
+ /*
2044
+ * The fields below are intended only for the private use of the parser.
2045
+ * They should not be used by functions that invoke Tcl_ParseCommand.
2046
+ */
2047
+
2048
+ const char *string; /* The original command string passed to
2049
+ * Tcl_ParseCommand. */
2050
+ const char *end; /* Points to the character just after the last
2051
+ * one in the command string. */
2052
+ Tcl_Interp *interp; /* Interpreter to use for error reporting, or
2053
+ * NULL. */
2054
+ const char *term; /* Points to character in string that
2055
+ * terminated most recent token. Filled in by
2056
+ * ParseTokens. If an error occurs, points to
2057
+ * beginning of region where the error
2058
+ * occurred (e.g. the open brace if the close
2059
+ * brace is missing). */
2060
+ int incomplete; /* This field is set to 1 by Tcl_ParseCommand
2061
+ * if the command appears to be incomplete.
2062
+ * This information is used by
2063
+ * Tcl_CommandComplete. */
2064
+ Tcl_Token staticTokens[NUM_STATIC_TOKENS];
2065
+ /* Initial space for tokens for command. This
2066
+ * space should be large enough to accommodate
2067
+ * most commands; dynamic space is allocated
2068
+ * for very large commands that don't fit
2069
+ * here. */
2070
+ } Tcl_Parse;
2071
+
2072
+ /*
2073
+ *----------------------------------------------------------------------------
2074
+ * The following structure represents a user-defined encoding. It collects
2075
+ * together all the functions that are used by the specific encoding.
2076
+ */
2077
+
2078
+ typedef struct Tcl_EncodingType {
2079
+ const char *encodingName; /* The name of the encoding, e.g. "euc-jp".
2080
+ * This name is the unique key for this
2081
+ * encoding type. */
2082
+ Tcl_EncodingConvertProc *toUtfProc;
2083
+ /* Function to convert from external encoding
2084
+ * into UTF-8. */
2085
+ Tcl_EncodingConvertProc *fromUtfProc;
2086
+ /* Function to convert from UTF-8 into
2087
+ * external encoding. */
2088
+ Tcl_EncodingFreeProc *freeProc;
2089
+ /* If non-NULL, function to call when this
2090
+ * encoding is deleted. */
2091
+ ClientData clientData; /* Arbitrary value associated with encoding
2092
+ * type. Passed to conversion functions. */
2093
+ int nullSize; /* Number of zero bytes that signify
2094
+ * end-of-string in this encoding. This number
2095
+ * is used to determine the source string
2096
+ * length when the srcLen argument is
2097
+ * negative. Must be 1 or 2. */
2098
+ } Tcl_EncodingType;
2099
+
2100
+ /*
2101
+ * The following definitions are used as values for the conversion control
2102
+ * flags argument when converting text from one character set to another:
2103
+ *
2104
+ * TCL_ENCODING_START - Signifies that the source buffer is the first
2105
+ * block in a (potentially multi-block) input
2106
+ * stream. Tells the conversion function to reset
2107
+ * to an initial state and perform any
2108
+ * initialization that needs to occur before the
2109
+ * first byte is converted. If the source buffer
2110
+ * contains the entire input stream to be
2111
+ * converted, this flag should be set.
2112
+ * TCL_ENCODING_END - Signifies that the source buffer is the last
2113
+ * block in a (potentially multi-block) input
2114
+ * stream. Tells the conversion routine to
2115
+ * perform any finalization that needs to occur
2116
+ * after the last byte is converted and then to
2117
+ * reset to an initial state. If the source
2118
+ * buffer contains the entire input stream to be
2119
+ * converted, this flag should be set.
2120
+ * TCL_ENCODING_STOPONERROR - If set, the converter returns immediately upon
2121
+ * encountering an invalid byte sequence or a
2122
+ * source character that has no mapping in the
2123
+ * target encoding. If clear, the converter
2124
+ * substitues the problematic character(s) with
2125
+ * one or more "close" characters in the
2126
+ * destination buffer and then continues to
2127
+ * convert the source.
2128
+ * TCL_ENCODING_NO_TERMINATE - If set, Tcl_ExternalToUtf does not append a
2129
+ * terminating NUL byte. Since it does not need
2130
+ * an extra byte for a terminating NUL, it fills
2131
+ * all dstLen bytes with encoded UTF-8 content if
2132
+ * needed. If clear, a byte is reserved in the
2133
+ * dst space for NUL termination, and a
2134
+ * terminating NUL is appended.
2135
+ * TCL_ENCODING_CHAR_LIMIT - If set and dstCharsPtr is not NULL, then
2136
+ * Tcl_ExternalToUtf takes the initial value of
2137
+ * *dstCharsPtr as a limit of the maximum number
2138
+ * of chars to produce in the encoded UTF-8
2139
+ * content. Otherwise, the number of chars
2140
+ * produced is controlled only by other limiting
2141
+ * factors.
2142
+ */
2143
+
2144
+ #define TCL_ENCODING_START 0x01
2145
+ #define TCL_ENCODING_END 0x02
2146
+ #define TCL_ENCODING_STOPONERROR 0x04
2147
+ #define TCL_ENCODING_NO_TERMINATE 0x08
2148
+ #define TCL_ENCODING_CHAR_LIMIT 0x10
2149
+
2150
+ /*
2151
+ * The following definitions are the error codes returned by the conversion
2152
+ * routines:
2153
+ *
2154
+ * TCL_OK - All characters were converted.
2155
+ * TCL_CONVERT_NOSPACE - The output buffer would not have been large
2156
+ * enough for all of the converted data; as many
2157
+ * characters as could fit were converted though.
2158
+ * TCL_CONVERT_MULTIBYTE - The last few bytes in the source string were
2159
+ * the beginning of a multibyte sequence, but
2160
+ * more bytes were needed to complete this
2161
+ * sequence. A subsequent call to the conversion
2162
+ * routine should pass the beginning of this
2163
+ * unconverted sequence plus additional bytes
2164
+ * from the source stream to properly convert the
2165
+ * formerly split-up multibyte sequence.
2166
+ * TCL_CONVERT_SYNTAX - The source stream contained an invalid
2167
+ * character sequence. This may occur if the
2168
+ * input stream has been damaged or if the input
2169
+ * encoding method was misidentified. This error
2170
+ * is reported only if TCL_ENCODING_STOPONERROR
2171
+ * was specified.
2172
+ * TCL_CONVERT_UNKNOWN - The source string contained a character that
2173
+ * could not be represented in the target
2174
+ * encoding. This error is reported only if
2175
+ * TCL_ENCODING_STOPONERROR was specified.
2176
+ */
2177
+
2178
+ #define TCL_CONVERT_MULTIBYTE (-1)
2179
+ #define TCL_CONVERT_SYNTAX (-2)
2180
+ #define TCL_CONVERT_UNKNOWN (-3)
2181
+ #define TCL_CONVERT_NOSPACE (-4)
2182
+
2183
+ /*
2184
+ * The maximum number of bytes that are necessary to represent a single
2185
+ * Unicode character in UTF-8. The valid values should be 3, 4 or 6
2186
+ * (or perhaps 1 if we want to support a non-unicode enabled core). If 3 or
2187
+ * 4, then Tcl_UniChar must be 2-bytes in size (UCS-2) (the default). If 6,
2188
+ * then Tcl_UniChar must be 4-bytes in size (UCS-4). At this time UCS-2 mode
2189
+ * is the default and recommended mode. UCS-4 is experimental and not
2190
+ * recommended. It works for the core, but most extensions expect UCS-2.
2191
+ */
2192
+
2193
+ #ifndef TCL_UTF_MAX
2194
+ #define TCL_UTF_MAX 3
2195
+ #endif
2196
+
2197
+ /*
2198
+ * This represents a Unicode character. Any changes to this should also be
2199
+ * reflected in regcustom.h.
2200
+ */
2201
+
2202
+ #if TCL_UTF_MAX > 4
2203
+ /*
2204
+ * unsigned int isn't 100% accurate as it should be a strict 4-byte value.
2205
+ * The size of this value must be reflected correctly in regcustom.h.
2206
+ * XXX: Tcl is currently UCS-2 and planning UTF-16 for the Unicode
2207
+ * XXX: string rep that Tcl_UniChar represents. Changing the size
2208
+ * XXX: of Tcl_UniChar is /not/ supported.
2209
+ */
2210
+ typedef unsigned int Tcl_UniChar;
2211
+ #else
2212
+ typedef unsigned short Tcl_UniChar;
2213
+ #endif
2214
+
2215
+ /*
2216
+ *----------------------------------------------------------------------------
2217
+ * TIP #59: The following structure is used in calls 'Tcl_RegisterConfig' to
2218
+ * provide the system with the embedded configuration data.
2219
+ */
2220
+
2221
+ typedef struct Tcl_Config {
2222
+ const char *key; /* Configuration key to register. ASCII
2223
+ * encoded, thus UTF-8. */
2224
+ const char *value; /* The value associated with the key. System
2225
+ * encoding. */
2226
+ } Tcl_Config;
2227
+
2228
+ /*
2229
+ *----------------------------------------------------------------------------
2230
+ * Flags for TIP#143 limits, detailing which limits are active in an
2231
+ * interpreter. Used for Tcl_{Add,Remove}LimitHandler type argument.
2232
+ */
2233
+
2234
+ #define TCL_LIMIT_COMMANDS 0x01
2235
+ #define TCL_LIMIT_TIME 0x02
2236
+
2237
+ /*
2238
+ * Structure containing information about a limit handler to be called when a
2239
+ * command- or time-limit is exceeded by an interpreter.
2240
+ */
2241
+
2242
+ typedef void (Tcl_LimitHandlerProc) (ClientData clientData, Tcl_Interp *interp);
2243
+ typedef void (Tcl_LimitHandlerDeleteProc) (ClientData clientData);
2244
+
2245
+ /*
2246
+ *----------------------------------------------------------------------------
2247
+ * Override definitions for libtommath.
2248
+ */
2249
+
2250
+ typedef struct mp_int mp_int;
2251
+ #define MP_INT_DECLARED
2252
+ typedef unsigned int mp_digit;
2253
+ #define MP_DIGIT_DECLARED
2254
+
2255
+ /*
2256
+ *----------------------------------------------------------------------------
2257
+ * Definitions needed for Tcl_ParseArgvObj routines.
2258
+ * Based on tkArgv.c.
2259
+ * Modifications from the original are copyright (c) Sam Bromley 2006
2260
+ */
2261
+
2262
+ typedef struct {
2263
+ int type; /* Indicates the option type; see below. */
2264
+ const char *keyStr; /* The key string that flags the option in the
2265
+ * argv array. */
2266
+ void *srcPtr; /* Value to be used in setting dst; usage
2267
+ * depends on type.*/
2268
+ void *dstPtr; /* Address of value to be modified; usage
2269
+ * depends on type.*/
2270
+ const char *helpStr; /* Documentation message describing this
2271
+ * option. */
2272
+ ClientData clientData; /* Word to pass to function callbacks. */
2273
+ } Tcl_ArgvInfo;
2274
+
2275
+ /*
2276
+ * Legal values for the type field of a Tcl_ArgInfo: see the user
2277
+ * documentation for details.
2278
+ */
2279
+
2280
+ #define TCL_ARGV_CONSTANT 15
2281
+ #define TCL_ARGV_INT 16
2282
+ #define TCL_ARGV_STRING 17
2283
+ #define TCL_ARGV_REST 18
2284
+ #define TCL_ARGV_FLOAT 19
2285
+ #define TCL_ARGV_FUNC 20
2286
+ #define TCL_ARGV_GENFUNC 21
2287
+ #define TCL_ARGV_HELP 22
2288
+ #define TCL_ARGV_END 23
2289
+
2290
+ /*
2291
+ * Types of callback functions for the TCL_ARGV_FUNC and TCL_ARGV_GENFUNC
2292
+ * argument types:
2293
+ */
2294
+
2295
+ typedef int (Tcl_ArgvFuncProc)(ClientData clientData, Tcl_Obj *objPtr,
2296
+ void *dstPtr);
2297
+ typedef int (Tcl_ArgvGenFuncProc)(ClientData clientData, Tcl_Interp *interp,
2298
+ int objc, Tcl_Obj *const *objv, void *dstPtr);
2299
+
2300
+ /*
2301
+ * Shorthand for commonly used argTable entries.
2302
+ */
2303
+
2304
+ #define TCL_ARGV_AUTO_HELP \
2305
+ {TCL_ARGV_HELP, "-help", NULL, NULL, \
2306
+ "Print summary of command-line options and abort", NULL}
2307
+ #define TCL_ARGV_AUTO_REST \
2308
+ {TCL_ARGV_REST, "--", NULL, NULL, \
2309
+ "Marks the end of the options", NULL}
2310
+ #define TCL_ARGV_TABLE_END \
2311
+ {TCL_ARGV_END, NULL, NULL, NULL, NULL, NULL}
2312
+
2313
+ /*
2314
+ *----------------------------------------------------------------------------
2315
+ * Definitions needed for Tcl_Zlib routines. [TIP #234]
2316
+ *
2317
+ * Constants for the format flags describing what sort of data format is
2318
+ * desired/expected for the Tcl_ZlibDeflate, Tcl_ZlibInflate and
2319
+ * Tcl_ZlibStreamInit functions.
2320
+ */
2321
+
2322
+ #define TCL_ZLIB_FORMAT_RAW 1
2323
+ #define TCL_ZLIB_FORMAT_ZLIB 2
2324
+ #define TCL_ZLIB_FORMAT_GZIP 4
2325
+ #define TCL_ZLIB_FORMAT_AUTO 8
2326
+
2327
+ /*
2328
+ * Constants that describe whether the stream is to operate in compressing or
2329
+ * decompressing mode.
2330
+ */
2331
+
2332
+ #define TCL_ZLIB_STREAM_DEFLATE 16
2333
+ #define TCL_ZLIB_STREAM_INFLATE 32
2334
+
2335
+ /*
2336
+ * Constants giving compression levels. Use of TCL_ZLIB_COMPRESS_DEFAULT is
2337
+ * recommended.
2338
+ */
2339
+
2340
+ #define TCL_ZLIB_COMPRESS_NONE 0
2341
+ #define TCL_ZLIB_COMPRESS_FAST 1
2342
+ #define TCL_ZLIB_COMPRESS_BEST 9
2343
+ #define TCL_ZLIB_COMPRESS_DEFAULT (-1)
2344
+
2345
+ /*
2346
+ * Constants for types of flushing, used with Tcl_ZlibFlush.
2347
+ */
2348
+
2349
+ #define TCL_ZLIB_NO_FLUSH 0
2350
+ #define TCL_ZLIB_FLUSH 2
2351
+ #define TCL_ZLIB_FULLFLUSH 3
2352
+ #define TCL_ZLIB_FINALIZE 4
2353
+
2354
+ /*
2355
+ *----------------------------------------------------------------------------
2356
+ * Definitions needed for the Tcl_LoadFile function. [TIP #416]
2357
+ */
2358
+
2359
+ #define TCL_LOAD_GLOBAL 1
2360
+ #define TCL_LOAD_LAZY 2
2361
+
2362
+ /*
2363
+ *----------------------------------------------------------------------------
2364
+ * Single public declaration for NRE.
2365
+ */
2366
+
2367
+ typedef int (Tcl_NRPostProc) (ClientData data[], Tcl_Interp *interp,
2368
+ int result);
2369
+
2370
+ /*
2371
+ *----------------------------------------------------------------------------
2372
+ * The following constant is used to test for older versions of Tcl in the
2373
+ * stubs tables.
2374
+ */
2375
+
2376
+ #define TCL_STUB_MAGIC ((int) 0xFCA3BACF)
2377
+
2378
+ /*
2379
+ * The following function is required to be defined in all stubs aware
2380
+ * extensions. The function is actually implemented in the stub library, not
2381
+ * the main Tcl library, although there is a trivial implementation in the
2382
+ * main library in case an extension is statically linked into an application.
2383
+ */
2384
+
2385
+ const char * Tcl_InitStubs(Tcl_Interp *interp, const char *version,
2386
+ int exact);
2387
+ const char * TclTomMathInitializeStubs(Tcl_Interp *interp,
2388
+ const char *version, int epoch, int revision);
2389
+
2390
+ /*
2391
+ * When not using stubs, make it a macro.
2392
+ */
2393
+
2394
+ #ifndef USE_TCL_STUBS
2395
+ #define Tcl_InitStubs(interp, version, exact) \
2396
+ Tcl_PkgInitStubsCheck(interp, version, exact)
2397
+ #endif
2398
+
2399
+ /*
2400
+ * Public functions that are not accessible via the stubs table.
2401
+ * Tcl_GetMemoryInfo is needed for AOLserver. [Bug 1868171]
2402
+ */
2403
+
2404
+ #define Tcl_Main(argc, argv, proc) Tcl_MainEx(argc, argv, proc, \
2405
+ ((Tcl_CreateInterp)()))
2406
+ EXTERN void Tcl_MainEx(int argc, char **argv,
2407
+ Tcl_AppInitProc *appInitProc, Tcl_Interp *interp);
2408
+ EXTERN const char * Tcl_PkgInitStubsCheck(Tcl_Interp *interp,
2409
+ const char *version, int exact);
2410
+ EXTERN void Tcl_GetMemoryInfo(Tcl_DString *dsPtr);
2411
+
2412
+ /*
2413
+ *----------------------------------------------------------------------------
2414
+ * Include the public function declarations that are accessible via the stubs
2415
+ * table.
2416
+ */
2417
+
2418
+ #include "tclDecls.h"
2419
+
2420
+ /*
2421
+ * Include platform specific public function declarations that are accessible
2422
+ * via the stubs table. Make all TclOO symbols MODULE_SCOPE (which only
2423
+ * has effect on building it as a shared library). See ticket [3010352].
2424
+ */
2425
+
2426
+ #if defined(BUILD_tcl)
2427
+ # undef TCLAPI
2428
+ # define TCLAPI MODULE_SCOPE
2429
+ #endif
2430
+
2431
+ #include "tclPlatDecls.h"
2432
+
2433
+ /*
2434
+ *----------------------------------------------------------------------------
2435
+ * The following declarations either map ckalloc and ckfree to malloc and
2436
+ * free, or they map them to functions with all sorts of debugging hooks
2437
+ * defined in tclCkalloc.c.
2438
+ */
2439
+
2440
+ #ifdef TCL_MEM_DEBUG
2441
+
2442
+ # define ckalloc(x) \
2443
+ ((void *) Tcl_DbCkalloc((unsigned)(x), __FILE__, __LINE__))
2444
+ # define ckfree(x) \
2445
+ Tcl_DbCkfree((char *)(x), __FILE__, __LINE__)
2446
+ # define ckrealloc(x,y) \
2447
+ ((void *) Tcl_DbCkrealloc((char *)(x), (unsigned)(y), __FILE__, __LINE__))
2448
+ # define attemptckalloc(x) \
2449
+ ((void *) Tcl_AttemptDbCkalloc((unsigned)(x), __FILE__, __LINE__))
2450
+ # define attemptckrealloc(x,y) \
2451
+ ((void *) Tcl_AttemptDbCkrealloc((char *)(x), (unsigned)(y), __FILE__, __LINE__))
2452
+
2453
+ #else /* !TCL_MEM_DEBUG */
2454
+
2455
+ /*
2456
+ * If we are not using the debugging allocator, we should call the Tcl_Alloc,
2457
+ * et al. routines in order to guarantee that every module is using the same
2458
+ * memory allocator both inside and outside of the Tcl library.
2459
+ */
2460
+
2461
+ # define ckalloc(x) \
2462
+ ((void *) Tcl_Alloc((unsigned)(x)))
2463
+ # define ckfree(x) \
2464
+ Tcl_Free((char *)(x))
2465
+ # define ckrealloc(x,y) \
2466
+ ((void *) Tcl_Realloc((char *)(x), (unsigned)(y)))
2467
+ # define attemptckalloc(x) \
2468
+ ((void *) Tcl_AttemptAlloc((unsigned)(x)))
2469
+ # define attemptckrealloc(x,y) \
2470
+ ((void *) Tcl_AttemptRealloc((char *)(x), (unsigned)(y)))
2471
+ # undef Tcl_InitMemory
2472
+ # define Tcl_InitMemory(x)
2473
+ # undef Tcl_DumpActiveMemory
2474
+ # define Tcl_DumpActiveMemory(x)
2475
+ # undef Tcl_ValidateAllMemory
2476
+ # define Tcl_ValidateAllMemory(x,y)
2477
+
2478
+ #endif /* !TCL_MEM_DEBUG */
2479
+
2480
+ #ifdef TCL_MEM_DEBUG
2481
+ # define Tcl_IncrRefCount(objPtr) \
2482
+ Tcl_DbIncrRefCount(objPtr, __FILE__, __LINE__)
2483
+ # define Tcl_DecrRefCount(objPtr) \
2484
+ Tcl_DbDecrRefCount(objPtr, __FILE__, __LINE__)
2485
+ # define Tcl_IsShared(objPtr) \
2486
+ Tcl_DbIsShared(objPtr, __FILE__, __LINE__)
2487
+ #else
2488
+ # define Tcl_IncrRefCount(objPtr) \
2489
+ ++(objPtr)->refCount
2490
+ /*
2491
+ * Use do/while0 idiom for optimum correctness without compiler warnings.
2492
+ * https://wiki.c2.com/?TrivialDoWhileLoop
2493
+ */
2494
+ # define Tcl_DecrRefCount(objPtr) \
2495
+ do { \
2496
+ Tcl_Obj *_objPtr = (objPtr); \
2497
+ if (_objPtr->refCount-- <= 1) { \
2498
+ TclFreeObj(_objPtr); \
2499
+ } \
2500
+ } while(0)
2501
+ # define Tcl_IsShared(objPtr) \
2502
+ ((objPtr)->refCount > 1)
2503
+ #endif
2504
+
2505
+ /*
2506
+ * Macros and definitions that help to debug the use of Tcl objects. When
2507
+ * TCL_MEM_DEBUG is defined, the Tcl_New declarations are overridden to call
2508
+ * debugging versions of the object creation functions.
2509
+ */
2510
+
2511
+ #ifdef TCL_MEM_DEBUG
2512
+ # undef Tcl_NewBignumObj
2513
+ # define Tcl_NewBignumObj(val) \
2514
+ Tcl_DbNewBignumObj(val, __FILE__, __LINE__)
2515
+ # undef Tcl_NewBooleanObj
2516
+ # define Tcl_NewBooleanObj(val) \
2517
+ Tcl_DbNewBooleanObj(val, __FILE__, __LINE__)
2518
+ # undef Tcl_NewByteArrayObj
2519
+ # define Tcl_NewByteArrayObj(bytes, len) \
2520
+ Tcl_DbNewByteArrayObj(bytes, len, __FILE__, __LINE__)
2521
+ # undef Tcl_NewDoubleObj
2522
+ # define Tcl_NewDoubleObj(val) \
2523
+ Tcl_DbNewDoubleObj(val, __FILE__, __LINE__)
2524
+ # undef Tcl_NewIntObj
2525
+ # define Tcl_NewIntObj(val) \
2526
+ Tcl_DbNewLongObj(val, __FILE__, __LINE__)
2527
+ # undef Tcl_NewListObj
2528
+ # define Tcl_NewListObj(objc, objv) \
2529
+ Tcl_DbNewListObj(objc, objv, __FILE__, __LINE__)
2530
+ # undef Tcl_NewLongObj
2531
+ # define Tcl_NewLongObj(val) \
2532
+ Tcl_DbNewLongObj(val, __FILE__, __LINE__)
2533
+ # undef Tcl_NewObj
2534
+ # define Tcl_NewObj() \
2535
+ Tcl_DbNewObj(__FILE__, __LINE__)
2536
+ # undef Tcl_NewStringObj
2537
+ # define Tcl_NewStringObj(bytes, len) \
2538
+ Tcl_DbNewStringObj(bytes, len, __FILE__, __LINE__)
2539
+ # undef Tcl_NewWideIntObj
2540
+ # define Tcl_NewWideIntObj(val) \
2541
+ Tcl_DbNewWideIntObj(val, __FILE__, __LINE__)
2542
+ #endif /* TCL_MEM_DEBUG */
2543
+
2544
+ /*
2545
+ *----------------------------------------------------------------------------
2546
+ * Macros for clients to use to access fields of hash entries:
2547
+ */
2548
+
2549
+ #define Tcl_GetHashValue(h) ((h)->clientData)
2550
+ #define Tcl_SetHashValue(h, value) ((h)->clientData = (ClientData) (value))
2551
+ #define Tcl_GetHashKey(tablePtr, h) \
2552
+ ((void *) (((tablePtr)->keyType == TCL_ONE_WORD_KEYS || \
2553
+ (tablePtr)->keyType == TCL_CUSTOM_PTR_KEYS) \
2554
+ ? (h)->key.oneWordValue \
2555
+ : (h)->key.string))
2556
+
2557
+ /*
2558
+ * Macros to use for clients to use to invoke find and create functions for
2559
+ * hash tables:
2560
+ */
2561
+
2562
+ #undef Tcl_FindHashEntry
2563
+ #define Tcl_FindHashEntry(tablePtr, key) \
2564
+ (*((tablePtr)->findProc))(tablePtr, (const char *)(key))
2565
+ #undef Tcl_CreateHashEntry
2566
+ #define Tcl_CreateHashEntry(tablePtr, key, newPtr) \
2567
+ (*((tablePtr)->createProc))(tablePtr, (const char *)(key), newPtr)
2568
+
2569
+ /*
2570
+ *----------------------------------------------------------------------------
2571
+ * Macros that eliminate the overhead of the thread synchronization functions
2572
+ * when compiling without thread support.
2573
+ */
2574
+
2575
+ #ifndef TCL_THREADS
2576
+ #undef Tcl_MutexLock
2577
+ #define Tcl_MutexLock(mutexPtr)
2578
+ #undef Tcl_MutexUnlock
2579
+ #define Tcl_MutexUnlock(mutexPtr)
2580
+ #undef Tcl_MutexFinalize
2581
+ #define Tcl_MutexFinalize(mutexPtr)
2582
+ #undef Tcl_ConditionNotify
2583
+ #define Tcl_ConditionNotify(condPtr)
2584
+ #undef Tcl_ConditionWait
2585
+ #define Tcl_ConditionWait(condPtr, mutexPtr, timePtr)
2586
+ #undef Tcl_ConditionFinalize
2587
+ #define Tcl_ConditionFinalize(condPtr)
2588
+ #endif /* TCL_THREADS */
2589
+
2590
+ /*
2591
+ *----------------------------------------------------------------------------
2592
+ * Deprecated Tcl functions:
2593
+ */
2594
+
2595
+ #ifndef TCL_NO_DEPRECATED
2596
+ /*
2597
+ * These function have been renamed. The old names are deprecated, but we
2598
+ * define these macros for backwards compatibility.
2599
+ */
2600
+
2601
+ # define Tcl_Ckalloc Tcl_Alloc
2602
+ # define Tcl_Ckfree Tcl_Free
2603
+ # define Tcl_Ckrealloc Tcl_Realloc
2604
+ # define Tcl_Return Tcl_SetResult
2605
+ # define Tcl_TildeSubst Tcl_TranslateFileName
2606
+ #if !defined(__APPLE__) /* On OSX, there is a conflict with "mach/mach.h" */
2607
+ # define panic Tcl_Panic
2608
+ #endif
2609
+ # define panicVA Tcl_PanicVA
2610
+ #endif /* !TCL_NO_DEPRECATED */
2611
+
2612
+ /*
2613
+ *----------------------------------------------------------------------------
2614
+ * Convenience declaration of Tcl_AppInit for backwards compatibility. This
2615
+ * function is not *implemented* by the tcl library, so the storage class is
2616
+ * neither DLLEXPORT nor DLLIMPORT.
2617
+ */
2618
+
2619
+ extern Tcl_AppInitProc Tcl_AppInit;
2620
+
2621
+ #endif /* RC_INVOKED */
2622
+
2623
+ /*
2624
+ * end block for C++
2625
+ */
2626
+
2627
+ #ifdef __cplusplus
2628
+ }
2629
+ #endif
2630
+
2631
+ #endif /* _TCL */
2632
+
2633
+ /*
2634
+ * Local Variables:
2635
+ * mode: c
2636
+ * c-basic-offset: 4
2637
+ * fill-column: 78
2638
+ * End:
2639
+ */
my_container_sandbox/workspace/anaconda3/include/tclIntPlatDecls.h ADDED
@@ -0,0 +1,600 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * tclIntPlatDecls.h --
3
+ *
4
+ * This file contains the declarations for all platform dependent
5
+ * unsupported functions that are exported by the Tcl library. These
6
+ * interfaces are not guaranteed to remain the same between
7
+ * versions. Use at your own risk.
8
+ *
9
+ * Copyright (c) 1998-1999 by Scriptics Corporation.
10
+ * All rights reserved.
11
+ */
12
+
13
+ #ifndef _TCLINTPLATDECLS
14
+ #define _TCLINTPLATDECLS
15
+
16
+ #undef TCL_STORAGE_CLASS
17
+ #ifdef BUILD_tcl
18
+ # define TCL_STORAGE_CLASS DLLEXPORT
19
+ #else
20
+ # ifdef USE_TCL_STUBS
21
+ # define TCL_STORAGE_CLASS
22
+ # else
23
+ # define TCL_STORAGE_CLASS DLLIMPORT
24
+ # endif
25
+ #endif
26
+
27
+ /*
28
+ * WARNING: This file is automatically generated by the tools/genStubs.tcl
29
+ * script. Any modifications to the function declarations below should be made
30
+ * in the generic/tclInt.decls script.
31
+ */
32
+
33
+ /* !BEGIN!: Do not edit below this line. */
34
+
35
+ #ifdef __cplusplus
36
+ extern "C" {
37
+ #endif
38
+
39
+ /*
40
+ * Exported function declarations:
41
+ */
42
+
43
+ #if !defined(_WIN32) && !defined(__CYGWIN__) && !defined(MAC_OSX_TCL) /* UNIX */
44
+ /* 0 */
45
+ EXTERN void TclGetAndDetachPids(Tcl_Interp *interp,
46
+ Tcl_Channel chan);
47
+ /* 1 */
48
+ EXTERN int TclpCloseFile(TclFile file);
49
+ /* 2 */
50
+ EXTERN Tcl_Channel TclpCreateCommandChannel(TclFile readFile,
51
+ TclFile writeFile, TclFile errorFile,
52
+ int numPids, Tcl_Pid *pidPtr);
53
+ /* 3 */
54
+ EXTERN int TclpCreatePipe(TclFile *readPipe, TclFile *writePipe);
55
+ /* 4 */
56
+ EXTERN int TclpCreateProcess(Tcl_Interp *interp, int argc,
57
+ const char **argv, TclFile inputFile,
58
+ TclFile outputFile, TclFile errorFile,
59
+ Tcl_Pid *pidPtr);
60
+ /* 5 */
61
+ EXTERN int TclUnixWaitForFile_(int fd, int mask, int timeout);
62
+ /* 6 */
63
+ EXTERN TclFile TclpMakeFile(Tcl_Channel channel, int direction);
64
+ /* 7 */
65
+ EXTERN TclFile TclpOpenFile(const char *fname, int mode);
66
+ /* 8 */
67
+ EXTERN int TclUnixWaitForFile(int fd, int mask, int timeout);
68
+ /* 9 */
69
+ EXTERN TclFile TclpCreateTempFile(const char *contents);
70
+ /* 10 */
71
+ EXTERN Tcl_DirEntry * TclpReaddir(TclDIR *dir);
72
+ /* 11 */
73
+ EXTERN struct tm * TclpLocaltime_unix(const time_t *clock);
74
+ /* 12 */
75
+ EXTERN struct tm * TclpGmtime_unix(const time_t *clock);
76
+ /* 13 */
77
+ EXTERN char * TclpInetNtoa(struct in_addr addr);
78
+ /* 14 */
79
+ EXTERN int TclUnixCopyFile(const char *src, const char *dst,
80
+ const Tcl_StatBuf *statBufPtr,
81
+ int dontCopyAtts);
82
+ /* 15 */
83
+ EXTERN int TclMacOSXGetFileAttribute(Tcl_Interp *interp,
84
+ int objIndex, Tcl_Obj *fileName,
85
+ Tcl_Obj **attributePtrPtr);
86
+ /* 16 */
87
+ EXTERN int TclMacOSXSetFileAttribute(Tcl_Interp *interp,
88
+ int objIndex, Tcl_Obj *fileName,
89
+ Tcl_Obj *attributePtr);
90
+ /* 17 */
91
+ EXTERN int TclMacOSXCopyFileAttributes(const char *src,
92
+ const char *dst,
93
+ const Tcl_StatBuf *statBufPtr);
94
+ /* 18 */
95
+ EXTERN int TclMacOSXMatchType(Tcl_Interp *interp,
96
+ const char *pathName, const char *fileName,
97
+ Tcl_StatBuf *statBufPtr,
98
+ Tcl_GlobTypeData *types);
99
+ /* 19 */
100
+ EXTERN void TclMacOSXNotifierAddRunLoopMode(
101
+ const void *runLoopMode);
102
+ /* Slot 20 is reserved */
103
+ /* Slot 21 is reserved */
104
+ /* 22 */
105
+ EXTERN TclFile TclpCreateTempFile_(const char *contents);
106
+ /* Slot 23 is reserved */
107
+ /* Slot 24 is reserved */
108
+ /* Slot 25 is reserved */
109
+ /* Slot 26 is reserved */
110
+ /* Slot 27 is reserved */
111
+ /* Slot 28 is reserved */
112
+ /* 29 */
113
+ EXTERN int TclWinCPUID(unsigned int index, unsigned int *regs);
114
+ /* 30 */
115
+ EXTERN int TclUnixOpenTemporaryFile(Tcl_Obj *dirObj,
116
+ Tcl_Obj *basenameObj, Tcl_Obj *extensionObj,
117
+ Tcl_Obj *resultingNameObj);
118
+ #endif /* UNIX */
119
+ #if defined(_WIN32) || defined(__CYGWIN__) /* WIN */
120
+ /* 0 */
121
+ EXTERN void TclWinConvertError(DWORD errCode);
122
+ /* 1 */
123
+ EXTERN void TclWinConvertWSAError(DWORD errCode);
124
+ /* 2 */
125
+ EXTERN struct servent * TclWinGetServByName(const char *nm,
126
+ const char *proto);
127
+ /* 3 */
128
+ EXTERN int TclWinGetSockOpt(SOCKET s, int level, int optname,
129
+ char *optval, int *optlen);
130
+ /* 4 */
131
+ EXTERN HINSTANCE TclWinGetTclInstance(void);
132
+ /* 5 */
133
+ EXTERN int TclUnixWaitForFile(int fd, int mask, int timeout);
134
+ /* 6 */
135
+ EXTERN unsigned short TclWinNToHS(unsigned short ns);
136
+ /* 7 */
137
+ EXTERN int TclWinSetSockOpt(SOCKET s, int level, int optname,
138
+ const char *optval, int optlen);
139
+ /* 8 */
140
+ EXTERN int TclpGetPid(Tcl_Pid pid);
141
+ /* 9 */
142
+ EXTERN int TclWinGetPlatformId(void);
143
+ /* 10 */
144
+ EXTERN Tcl_DirEntry * TclpReaddir(TclDIR *dir);
145
+ /* 11 */
146
+ EXTERN void TclGetAndDetachPids(Tcl_Interp *interp,
147
+ Tcl_Channel chan);
148
+ /* 12 */
149
+ EXTERN int TclpCloseFile(TclFile file);
150
+ /* 13 */
151
+ EXTERN Tcl_Channel TclpCreateCommandChannel(TclFile readFile,
152
+ TclFile writeFile, TclFile errorFile,
153
+ int numPids, Tcl_Pid *pidPtr);
154
+ /* 14 */
155
+ EXTERN int TclpCreatePipe(TclFile *readPipe, TclFile *writePipe);
156
+ /* 15 */
157
+ EXTERN int TclpCreateProcess(Tcl_Interp *interp, int argc,
158
+ const char **argv, TclFile inputFile,
159
+ TclFile outputFile, TclFile errorFile,
160
+ Tcl_Pid *pidPtr);
161
+ /* 16 */
162
+ EXTERN int TclpIsAtty(int fd);
163
+ /* 17 */
164
+ EXTERN int TclUnixCopyFile(const char *src, const char *dst,
165
+ const Tcl_StatBuf *statBufPtr,
166
+ int dontCopyAtts);
167
+ /* 18 */
168
+ EXTERN TclFile TclpMakeFile(Tcl_Channel channel, int direction);
169
+ /* 19 */
170
+ EXTERN TclFile TclpOpenFile(const char *fname, int mode);
171
+ /* 20 */
172
+ EXTERN void TclWinAddProcess(HANDLE hProcess, DWORD id);
173
+ /* 21 */
174
+ EXTERN char * TclpInetNtoa(struct in_addr addr);
175
+ /* 22 */
176
+ EXTERN TclFile TclpCreateTempFile(const char *contents);
177
+ /* Slot 23 is reserved */
178
+ /* 24 */
179
+ EXTERN char * TclWinNoBackslash(char *path);
180
+ /* Slot 25 is reserved */
181
+ /* 26 */
182
+ EXTERN void TclWinSetInterfaces(int wide);
183
+ /* 27 */
184
+ EXTERN void TclWinFlushDirtyChannels(void);
185
+ /* 28 */
186
+ EXTERN void TclWinResetInterfaces(void);
187
+ /* 29 */
188
+ EXTERN int TclWinCPUID(unsigned int index, unsigned int *regs);
189
+ /* 30 */
190
+ EXTERN int TclUnixOpenTemporaryFile(Tcl_Obj *dirObj,
191
+ Tcl_Obj *basenameObj, Tcl_Obj *extensionObj,
192
+ Tcl_Obj *resultingNameObj);
193
+ #endif /* WIN */
194
+ #ifdef MAC_OSX_TCL /* MACOSX */
195
+ /* 0 */
196
+ EXTERN void TclGetAndDetachPids(Tcl_Interp *interp,
197
+ Tcl_Channel chan);
198
+ /* 1 */
199
+ EXTERN int TclpCloseFile(TclFile file);
200
+ /* 2 */
201
+ EXTERN Tcl_Channel TclpCreateCommandChannel(TclFile readFile,
202
+ TclFile writeFile, TclFile errorFile,
203
+ int numPids, Tcl_Pid *pidPtr);
204
+ /* 3 */
205
+ EXTERN int TclpCreatePipe(TclFile *readPipe, TclFile *writePipe);
206
+ /* 4 */
207
+ EXTERN int TclpCreateProcess(Tcl_Interp *interp, int argc,
208
+ const char **argv, TclFile inputFile,
209
+ TclFile outputFile, TclFile errorFile,
210
+ Tcl_Pid *pidPtr);
211
+ /* 5 */
212
+ EXTERN int TclUnixWaitForFile_(int fd, int mask, int timeout);
213
+ /* 6 */
214
+ EXTERN TclFile TclpMakeFile(Tcl_Channel channel, int direction);
215
+ /* 7 */
216
+ EXTERN TclFile TclpOpenFile(const char *fname, int mode);
217
+ /* 8 */
218
+ EXTERN int TclUnixWaitForFile(int fd, int mask, int timeout);
219
+ /* 9 */
220
+ EXTERN TclFile TclpCreateTempFile(const char *contents);
221
+ /* 10 */
222
+ EXTERN Tcl_DirEntry * TclpReaddir(TclDIR *dir);
223
+ /* 11 */
224
+ EXTERN struct tm * TclpLocaltime_unix(const time_t *clock);
225
+ /* 12 */
226
+ EXTERN struct tm * TclpGmtime_unix(const time_t *clock);
227
+ /* 13 */
228
+ EXTERN char * TclpInetNtoa(struct in_addr addr);
229
+ /* 14 */
230
+ EXTERN int TclUnixCopyFile(const char *src, const char *dst,
231
+ const Tcl_StatBuf *statBufPtr,
232
+ int dontCopyAtts);
233
+ /* 15 */
234
+ EXTERN int TclMacOSXGetFileAttribute(Tcl_Interp *interp,
235
+ int objIndex, Tcl_Obj *fileName,
236
+ Tcl_Obj **attributePtrPtr);
237
+ /* 16 */
238
+ EXTERN int TclMacOSXSetFileAttribute(Tcl_Interp *interp,
239
+ int objIndex, Tcl_Obj *fileName,
240
+ Tcl_Obj *attributePtr);
241
+ /* 17 */
242
+ EXTERN int TclMacOSXCopyFileAttributes(const char *src,
243
+ const char *dst,
244
+ const Tcl_StatBuf *statBufPtr);
245
+ /* 18 */
246
+ EXTERN int TclMacOSXMatchType(Tcl_Interp *interp,
247
+ const char *pathName, const char *fileName,
248
+ Tcl_StatBuf *statBufPtr,
249
+ Tcl_GlobTypeData *types);
250
+ /* 19 */
251
+ EXTERN void TclMacOSXNotifierAddRunLoopMode(
252
+ const void *runLoopMode);
253
+ /* Slot 20 is reserved */
254
+ /* Slot 21 is reserved */
255
+ /* 22 */
256
+ EXTERN TclFile TclpCreateTempFile_(const char *contents);
257
+ /* Slot 23 is reserved */
258
+ /* Slot 24 is reserved */
259
+ /* Slot 25 is reserved */
260
+ /* Slot 26 is reserved */
261
+ /* Slot 27 is reserved */
262
+ /* Slot 28 is reserved */
263
+ /* 29 */
264
+ EXTERN int TclWinCPUID(unsigned int index, unsigned int *regs);
265
+ /* 30 */
266
+ EXTERN int TclUnixOpenTemporaryFile(Tcl_Obj *dirObj,
267
+ Tcl_Obj *basenameObj, Tcl_Obj *extensionObj,
268
+ Tcl_Obj *resultingNameObj);
269
+ #endif /* MACOSX */
270
+
271
+ typedef struct TclIntPlatStubs {
272
+ int magic;
273
+ void *hooks;
274
+
275
+ #if !defined(_WIN32) && !defined(__CYGWIN__) && !defined(MAC_OSX_TCL) /* UNIX */
276
+ void (*tclGetAndDetachPids) (Tcl_Interp *interp, Tcl_Channel chan); /* 0 */
277
+ int (*tclpCloseFile) (TclFile file); /* 1 */
278
+ Tcl_Channel (*tclpCreateCommandChannel) (TclFile readFile, TclFile writeFile, TclFile errorFile, int numPids, Tcl_Pid *pidPtr); /* 2 */
279
+ int (*tclpCreatePipe) (TclFile *readPipe, TclFile *writePipe); /* 3 */
280
+ int (*tclpCreateProcess) (Tcl_Interp *interp, int argc, const char **argv, TclFile inputFile, TclFile outputFile, TclFile errorFile, Tcl_Pid *pidPtr); /* 4 */
281
+ int (*tclUnixWaitForFile_) (int fd, int mask, int timeout); /* 5 */
282
+ TclFile (*tclpMakeFile) (Tcl_Channel channel, int direction); /* 6 */
283
+ TclFile (*tclpOpenFile) (const char *fname, int mode); /* 7 */
284
+ int (*tclUnixWaitForFile) (int fd, int mask, int timeout); /* 8 */
285
+ TclFile (*tclpCreateTempFile) (const char *contents); /* 9 */
286
+ Tcl_DirEntry * (*tclpReaddir) (TclDIR *dir); /* 10 */
287
+ struct tm * (*tclpLocaltime_unix) (const time_t *clock); /* 11 */
288
+ struct tm * (*tclpGmtime_unix) (const time_t *clock); /* 12 */
289
+ char * (*tclpInetNtoa) (struct in_addr addr); /* 13 */
290
+ int (*tclUnixCopyFile) (const char *src, const char *dst, const Tcl_StatBuf *statBufPtr, int dontCopyAtts); /* 14 */
291
+ int (*tclMacOSXGetFileAttribute) (Tcl_Interp *interp, int objIndex, Tcl_Obj *fileName, Tcl_Obj **attributePtrPtr); /* 15 */
292
+ int (*tclMacOSXSetFileAttribute) (Tcl_Interp *interp, int objIndex, Tcl_Obj *fileName, Tcl_Obj *attributePtr); /* 16 */
293
+ int (*tclMacOSXCopyFileAttributes) (const char *src, const char *dst, const Tcl_StatBuf *statBufPtr); /* 17 */
294
+ int (*tclMacOSXMatchType) (Tcl_Interp *interp, const char *pathName, const char *fileName, Tcl_StatBuf *statBufPtr, Tcl_GlobTypeData *types); /* 18 */
295
+ void (*tclMacOSXNotifierAddRunLoopMode) (const void *runLoopMode); /* 19 */
296
+ void (*reserved20)(void);
297
+ void (*reserved21)(void);
298
+ TclFile (*tclpCreateTempFile_) (const char *contents); /* 22 */
299
+ void (*reserved23)(void);
300
+ void (*reserved24)(void);
301
+ void (*reserved25)(void);
302
+ void (*reserved26)(void);
303
+ void (*reserved27)(void);
304
+ void (*reserved28)(void);
305
+ int (*tclWinCPUID) (unsigned int index, unsigned int *regs); /* 29 */
306
+ int (*tclUnixOpenTemporaryFile) (Tcl_Obj *dirObj, Tcl_Obj *basenameObj, Tcl_Obj *extensionObj, Tcl_Obj *resultingNameObj); /* 30 */
307
+ #endif /* UNIX */
308
+ #if defined(_WIN32) || defined(__CYGWIN__) /* WIN */
309
+ void (*tclWinConvertError) (DWORD errCode); /* 0 */
310
+ void (*tclWinConvertWSAError) (DWORD errCode); /* 1 */
311
+ struct servent * (*tclWinGetServByName) (const char *nm, const char *proto); /* 2 */
312
+ int (*tclWinGetSockOpt) (SOCKET s, int level, int optname, char *optval, int *optlen); /* 3 */
313
+ HINSTANCE (*tclWinGetTclInstance) (void); /* 4 */
314
+ int (*tclUnixWaitForFile) (int fd, int mask, int timeout); /* 5 */
315
+ unsigned short (*tclWinNToHS) (unsigned short ns); /* 6 */
316
+ int (*tclWinSetSockOpt) (SOCKET s, int level, int optname, const char *optval, int optlen); /* 7 */
317
+ int (*tclpGetPid) (Tcl_Pid pid); /* 8 */
318
+ int (*tclWinGetPlatformId) (void); /* 9 */
319
+ Tcl_DirEntry * (*tclpReaddir) (TclDIR *dir); /* 10 */
320
+ void (*tclGetAndDetachPids) (Tcl_Interp *interp, Tcl_Channel chan); /* 11 */
321
+ int (*tclpCloseFile) (TclFile file); /* 12 */
322
+ Tcl_Channel (*tclpCreateCommandChannel) (TclFile readFile, TclFile writeFile, TclFile errorFile, int numPids, Tcl_Pid *pidPtr); /* 13 */
323
+ int (*tclpCreatePipe) (TclFile *readPipe, TclFile *writePipe); /* 14 */
324
+ int (*tclpCreateProcess) (Tcl_Interp *interp, int argc, const char **argv, TclFile inputFile, TclFile outputFile, TclFile errorFile, Tcl_Pid *pidPtr); /* 15 */
325
+ int (*tclpIsAtty) (int fd); /* 16 */
326
+ int (*tclUnixCopyFile) (const char *src, const char *dst, const Tcl_StatBuf *statBufPtr, int dontCopyAtts); /* 17 */
327
+ TclFile (*tclpMakeFile) (Tcl_Channel channel, int direction); /* 18 */
328
+ TclFile (*tclpOpenFile) (const char *fname, int mode); /* 19 */
329
+ void (*tclWinAddProcess) (HANDLE hProcess, DWORD id); /* 20 */
330
+ char * (*tclpInetNtoa) (struct in_addr addr); /* 21 */
331
+ TclFile (*tclpCreateTempFile) (const char *contents); /* 22 */
332
+ void (*reserved23)(void);
333
+ char * (*tclWinNoBackslash) (char *path); /* 24 */
334
+ void (*reserved25)(void);
335
+ void (*tclWinSetInterfaces) (int wide); /* 26 */
336
+ void (*tclWinFlushDirtyChannels) (void); /* 27 */
337
+ void (*tclWinResetInterfaces) (void); /* 28 */
338
+ int (*tclWinCPUID) (unsigned int index, unsigned int *regs); /* 29 */
339
+ int (*tclUnixOpenTemporaryFile) (Tcl_Obj *dirObj, Tcl_Obj *basenameObj, Tcl_Obj *extensionObj, Tcl_Obj *resultingNameObj); /* 30 */
340
+ #endif /* WIN */
341
+ #ifdef MAC_OSX_TCL /* MACOSX */
342
+ void (*tclGetAndDetachPids) (Tcl_Interp *interp, Tcl_Channel chan); /* 0 */
343
+ int (*tclpCloseFile) (TclFile file); /* 1 */
344
+ Tcl_Channel (*tclpCreateCommandChannel) (TclFile readFile, TclFile writeFile, TclFile errorFile, int numPids, Tcl_Pid *pidPtr); /* 2 */
345
+ int (*tclpCreatePipe) (TclFile *readPipe, TclFile *writePipe); /* 3 */
346
+ int (*tclpCreateProcess) (Tcl_Interp *interp, int argc, const char **argv, TclFile inputFile, TclFile outputFile, TclFile errorFile, Tcl_Pid *pidPtr); /* 4 */
347
+ int (*tclUnixWaitForFile_) (int fd, int mask, int timeout); /* 5 */
348
+ TclFile (*tclpMakeFile) (Tcl_Channel channel, int direction); /* 6 */
349
+ TclFile (*tclpOpenFile) (const char *fname, int mode); /* 7 */
350
+ int (*tclUnixWaitForFile) (int fd, int mask, int timeout); /* 8 */
351
+ TclFile (*tclpCreateTempFile) (const char *contents); /* 9 */
352
+ Tcl_DirEntry * (*tclpReaddir) (TclDIR *dir); /* 10 */
353
+ struct tm * (*tclpLocaltime_unix) (const time_t *clock); /* 11 */
354
+ struct tm * (*tclpGmtime_unix) (const time_t *clock); /* 12 */
355
+ char * (*tclpInetNtoa) (struct in_addr addr); /* 13 */
356
+ int (*tclUnixCopyFile) (const char *src, const char *dst, const Tcl_StatBuf *statBufPtr, int dontCopyAtts); /* 14 */
357
+ int (*tclMacOSXGetFileAttribute) (Tcl_Interp *interp, int objIndex, Tcl_Obj *fileName, Tcl_Obj **attributePtrPtr); /* 15 */
358
+ int (*tclMacOSXSetFileAttribute) (Tcl_Interp *interp, int objIndex, Tcl_Obj *fileName, Tcl_Obj *attributePtr); /* 16 */
359
+ int (*tclMacOSXCopyFileAttributes) (const char *src, const char *dst, const Tcl_StatBuf *statBufPtr); /* 17 */
360
+ int (*tclMacOSXMatchType) (Tcl_Interp *interp, const char *pathName, const char *fileName, Tcl_StatBuf *statBufPtr, Tcl_GlobTypeData *types); /* 18 */
361
+ void (*tclMacOSXNotifierAddRunLoopMode) (const void *runLoopMode); /* 19 */
362
+ void (*reserved20)(void);
363
+ void (*reserved21)(void);
364
+ TclFile (*tclpCreateTempFile_) (const char *contents); /* 22 */
365
+ void (*reserved23)(void);
366
+ void (*reserved24)(void);
367
+ void (*reserved25)(void);
368
+ void (*reserved26)(void);
369
+ void (*reserved27)(void);
370
+ void (*reserved28)(void);
371
+ int (*tclWinCPUID) (unsigned int index, unsigned int *regs); /* 29 */
372
+ int (*tclUnixOpenTemporaryFile) (Tcl_Obj *dirObj, Tcl_Obj *basenameObj, Tcl_Obj *extensionObj, Tcl_Obj *resultingNameObj); /* 30 */
373
+ #endif /* MACOSX */
374
+ } TclIntPlatStubs;
375
+
376
+ extern const TclIntPlatStubs *tclIntPlatStubsPtr;
377
+
378
+ #ifdef __cplusplus
379
+ }
380
+ #endif
381
+
382
+ #if defined(USE_TCL_STUBS)
383
+
384
+ /*
385
+ * Inline function declarations:
386
+ */
387
+
388
+ #if !defined(_WIN32) && !defined(__CYGWIN__) && !defined(MAC_OSX_TCL) /* UNIX */
389
+ #define TclGetAndDetachPids \
390
+ (tclIntPlatStubsPtr->tclGetAndDetachPids) /* 0 */
391
+ #define TclpCloseFile \
392
+ (tclIntPlatStubsPtr->tclpCloseFile) /* 1 */
393
+ #define TclpCreateCommandChannel \
394
+ (tclIntPlatStubsPtr->tclpCreateCommandChannel) /* 2 */
395
+ #define TclpCreatePipe \
396
+ (tclIntPlatStubsPtr->tclpCreatePipe) /* 3 */
397
+ #define TclpCreateProcess \
398
+ (tclIntPlatStubsPtr->tclpCreateProcess) /* 4 */
399
+ #define TclUnixWaitForFile_ \
400
+ (tclIntPlatStubsPtr->tclUnixWaitForFile_) /* 5 */
401
+ #define TclpMakeFile \
402
+ (tclIntPlatStubsPtr->tclpMakeFile) /* 6 */
403
+ #define TclpOpenFile \
404
+ (tclIntPlatStubsPtr->tclpOpenFile) /* 7 */
405
+ #define TclUnixWaitForFile \
406
+ (tclIntPlatStubsPtr->tclUnixWaitForFile) /* 8 */
407
+ #define TclpCreateTempFile \
408
+ (tclIntPlatStubsPtr->tclpCreateTempFile) /* 9 */
409
+ #define TclpReaddir \
410
+ (tclIntPlatStubsPtr->tclpReaddir) /* 10 */
411
+ #define TclpLocaltime_unix \
412
+ (tclIntPlatStubsPtr->tclpLocaltime_unix) /* 11 */
413
+ #define TclpGmtime_unix \
414
+ (tclIntPlatStubsPtr->tclpGmtime_unix) /* 12 */
415
+ #define TclpInetNtoa \
416
+ (tclIntPlatStubsPtr->tclpInetNtoa) /* 13 */
417
+ #define TclUnixCopyFile \
418
+ (tclIntPlatStubsPtr->tclUnixCopyFile) /* 14 */
419
+ #define TclMacOSXGetFileAttribute \
420
+ (tclIntPlatStubsPtr->tclMacOSXGetFileAttribute) /* 15 */
421
+ #define TclMacOSXSetFileAttribute \
422
+ (tclIntPlatStubsPtr->tclMacOSXSetFileAttribute) /* 16 */
423
+ #define TclMacOSXCopyFileAttributes \
424
+ (tclIntPlatStubsPtr->tclMacOSXCopyFileAttributes) /* 17 */
425
+ #define TclMacOSXMatchType \
426
+ (tclIntPlatStubsPtr->tclMacOSXMatchType) /* 18 */
427
+ #define TclMacOSXNotifierAddRunLoopMode \
428
+ (tclIntPlatStubsPtr->tclMacOSXNotifierAddRunLoopMode) /* 19 */
429
+ /* Slot 20 is reserved */
430
+ /* Slot 21 is reserved */
431
+ #define TclpCreateTempFile_ \
432
+ (tclIntPlatStubsPtr->tclpCreateTempFile_) /* 22 */
433
+ /* Slot 23 is reserved */
434
+ /* Slot 24 is reserved */
435
+ /* Slot 25 is reserved */
436
+ /* Slot 26 is reserved */
437
+ /* Slot 27 is reserved */
438
+ /* Slot 28 is reserved */
439
+ #define TclWinCPUID \
440
+ (tclIntPlatStubsPtr->tclWinCPUID) /* 29 */
441
+ #define TclUnixOpenTemporaryFile \
442
+ (tclIntPlatStubsPtr->tclUnixOpenTemporaryFile) /* 30 */
443
+ #endif /* UNIX */
444
+ #if defined(_WIN32) || defined(__CYGWIN__) /* WIN */
445
+ #define TclWinConvertError \
446
+ (tclIntPlatStubsPtr->tclWinConvertError) /* 0 */
447
+ #define TclWinConvertWSAError \
448
+ (tclIntPlatStubsPtr->tclWinConvertWSAError) /* 1 */
449
+ #define TclWinGetServByName \
450
+ (tclIntPlatStubsPtr->tclWinGetServByName) /* 2 */
451
+ #define TclWinGetSockOpt \
452
+ (tclIntPlatStubsPtr->tclWinGetSockOpt) /* 3 */
453
+ #define TclWinGetTclInstance \
454
+ (tclIntPlatStubsPtr->tclWinGetTclInstance) /* 4 */
455
+ #define TclUnixWaitForFile \
456
+ (tclIntPlatStubsPtr->tclUnixWaitForFile) /* 5 */
457
+ #define TclWinNToHS \
458
+ (tclIntPlatStubsPtr->tclWinNToHS) /* 6 */
459
+ #define TclWinSetSockOpt \
460
+ (tclIntPlatStubsPtr->tclWinSetSockOpt) /* 7 */
461
+ #define TclpGetPid \
462
+ (tclIntPlatStubsPtr->tclpGetPid) /* 8 */
463
+ #define TclWinGetPlatformId \
464
+ (tclIntPlatStubsPtr->tclWinGetPlatformId) /* 9 */
465
+ #define TclpReaddir \
466
+ (tclIntPlatStubsPtr->tclpReaddir) /* 10 */
467
+ #define TclGetAndDetachPids \
468
+ (tclIntPlatStubsPtr->tclGetAndDetachPids) /* 11 */
469
+ #define TclpCloseFile \
470
+ (tclIntPlatStubsPtr->tclpCloseFile) /* 12 */
471
+ #define TclpCreateCommandChannel \
472
+ (tclIntPlatStubsPtr->tclpCreateCommandChannel) /* 13 */
473
+ #define TclpCreatePipe \
474
+ (tclIntPlatStubsPtr->tclpCreatePipe) /* 14 */
475
+ #define TclpCreateProcess \
476
+ (tclIntPlatStubsPtr->tclpCreateProcess) /* 15 */
477
+ #define TclpIsAtty \
478
+ (tclIntPlatStubsPtr->tclpIsAtty) /* 16 */
479
+ #define TclUnixCopyFile \
480
+ (tclIntPlatStubsPtr->tclUnixCopyFile) /* 17 */
481
+ #define TclpMakeFile \
482
+ (tclIntPlatStubsPtr->tclpMakeFile) /* 18 */
483
+ #define TclpOpenFile \
484
+ (tclIntPlatStubsPtr->tclpOpenFile) /* 19 */
485
+ #define TclWinAddProcess \
486
+ (tclIntPlatStubsPtr->tclWinAddProcess) /* 20 */
487
+ #define TclpInetNtoa \
488
+ (tclIntPlatStubsPtr->tclpInetNtoa) /* 21 */
489
+ #define TclpCreateTempFile \
490
+ (tclIntPlatStubsPtr->tclpCreateTempFile) /* 22 */
491
+ /* Slot 23 is reserved */
492
+ #define TclWinNoBackslash \
493
+ (tclIntPlatStubsPtr->tclWinNoBackslash) /* 24 */
494
+ /* Slot 25 is reserved */
495
+ #define TclWinSetInterfaces \
496
+ (tclIntPlatStubsPtr->tclWinSetInterfaces) /* 26 */
497
+ #define TclWinFlushDirtyChannels \
498
+ (tclIntPlatStubsPtr->tclWinFlushDirtyChannels) /* 27 */
499
+ #define TclWinResetInterfaces \
500
+ (tclIntPlatStubsPtr->tclWinResetInterfaces) /* 28 */
501
+ #define TclWinCPUID \
502
+ (tclIntPlatStubsPtr->tclWinCPUID) /* 29 */
503
+ #define TclUnixOpenTemporaryFile \
504
+ (tclIntPlatStubsPtr->tclUnixOpenTemporaryFile) /* 30 */
505
+ #endif /* WIN */
506
+ #ifdef MAC_OSX_TCL /* MACOSX */
507
+ #define TclGetAndDetachPids \
508
+ (tclIntPlatStubsPtr->tclGetAndDetachPids) /* 0 */
509
+ #define TclpCloseFile \
510
+ (tclIntPlatStubsPtr->tclpCloseFile) /* 1 */
511
+ #define TclpCreateCommandChannel \
512
+ (tclIntPlatStubsPtr->tclpCreateCommandChannel) /* 2 */
513
+ #define TclpCreatePipe \
514
+ (tclIntPlatStubsPtr->tclpCreatePipe) /* 3 */
515
+ #define TclpCreateProcess \
516
+ (tclIntPlatStubsPtr->tclpCreateProcess) /* 4 */
517
+ #define TclUnixWaitForFile_ \
518
+ (tclIntPlatStubsPtr->tclUnixWaitForFile_) /* 5 */
519
+ #define TclpMakeFile \
520
+ (tclIntPlatStubsPtr->tclpMakeFile) /* 6 */
521
+ #define TclpOpenFile \
522
+ (tclIntPlatStubsPtr->tclpOpenFile) /* 7 */
523
+ #define TclUnixWaitForFile \
524
+ (tclIntPlatStubsPtr->tclUnixWaitForFile) /* 8 */
525
+ #define TclpCreateTempFile \
526
+ (tclIntPlatStubsPtr->tclpCreateTempFile) /* 9 */
527
+ #define TclpReaddir \
528
+ (tclIntPlatStubsPtr->tclpReaddir) /* 10 */
529
+ #define TclpLocaltime_unix \
530
+ (tclIntPlatStubsPtr->tclpLocaltime_unix) /* 11 */
531
+ #define TclpGmtime_unix \
532
+ (tclIntPlatStubsPtr->tclpGmtime_unix) /* 12 */
533
+ #define TclpInetNtoa \
534
+ (tclIntPlatStubsPtr->tclpInetNtoa) /* 13 */
535
+ #define TclUnixCopyFile \
536
+ (tclIntPlatStubsPtr->tclUnixCopyFile) /* 14 */
537
+ #define TclMacOSXGetFileAttribute \
538
+ (tclIntPlatStubsPtr->tclMacOSXGetFileAttribute) /* 15 */
539
+ #define TclMacOSXSetFileAttribute \
540
+ (tclIntPlatStubsPtr->tclMacOSXSetFileAttribute) /* 16 */
541
+ #define TclMacOSXCopyFileAttributes \
542
+ (tclIntPlatStubsPtr->tclMacOSXCopyFileAttributes) /* 17 */
543
+ #define TclMacOSXMatchType \
544
+ (tclIntPlatStubsPtr->tclMacOSXMatchType) /* 18 */
545
+ #define TclMacOSXNotifierAddRunLoopMode \
546
+ (tclIntPlatStubsPtr->tclMacOSXNotifierAddRunLoopMode) /* 19 */
547
+ /* Slot 20 is reserved */
548
+ /* Slot 21 is reserved */
549
+ #define TclpCreateTempFile_ \
550
+ (tclIntPlatStubsPtr->tclpCreateTempFile_) /* 22 */
551
+ /* Slot 23 is reserved */
552
+ /* Slot 24 is reserved */
553
+ /* Slot 25 is reserved */
554
+ /* Slot 26 is reserved */
555
+ /* Slot 27 is reserved */
556
+ /* Slot 28 is reserved */
557
+ #define TclWinCPUID \
558
+ (tclIntPlatStubsPtr->tclWinCPUID) /* 29 */
559
+ #define TclUnixOpenTemporaryFile \
560
+ (tclIntPlatStubsPtr->tclUnixOpenTemporaryFile) /* 30 */
561
+ #endif /* MACOSX */
562
+
563
+ #endif /* defined(USE_TCL_STUBS) */
564
+
565
+ /* !END!: Do not edit above this line. */
566
+
567
+ #undef TCL_STORAGE_CLASS
568
+ #define TCL_STORAGE_CLASS DLLIMPORT
569
+ #undef TclpLocaltime_unix
570
+ #undef TclpGmtime_unix
571
+ #undef TclWinConvertWSAError
572
+ #define TclWinConvertWSAError TclWinConvertError
573
+ #undef TclpInetNtoa
574
+ #define TclpInetNtoa inet_ntoa
575
+
576
+ #undef TclpCreateTempFile_
577
+ #undef TclUnixWaitForFile_
578
+ #ifndef MAC_OSX_TCL /* not accessable on Win32/UNIX */
579
+ #undef TclMacOSXGetFileAttribute /* 15 */
580
+ #undef TclMacOSXSetFileAttribute /* 16 */
581
+ #undef TclMacOSXCopyFileAttributes /* 17 */
582
+ #undef TclMacOSXMatchType /* 18 */
583
+ #undef TclMacOSXNotifierAddRunLoopMode /* 19 */
584
+ #endif
585
+
586
+ #if defined(_WIN32)
587
+ # undef TclWinNToHS
588
+ # undef TclWinGetServByName
589
+ # undef TclWinGetSockOpt
590
+ # undef TclWinSetSockOpt
591
+ # define TclWinNToHS ntohs
592
+ # define TclWinGetServByName getservbyname
593
+ # define TclWinGetSockOpt getsockopt
594
+ # define TclWinSetSockOpt setsockopt
595
+ #else
596
+ # undef TclpGetPid
597
+ # define TclpGetPid(pid) ((unsigned long) (pid))
598
+ #endif
599
+
600
+ #endif /* _TCLINTPLATDECLS */
my_container_sandbox/workspace/anaconda3/include/tclOO.h ADDED
@@ -0,0 +1,147 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * tclOO.h --
3
+ *
4
+ * This file contains the public API definitions and some of the function
5
+ * declarations for the object-system (NB: not Tcl_Obj, but ::oo).
6
+ *
7
+ * Copyright (c) 2006-2010 by Donal K. Fellows
8
+ *
9
+ * See the file "license.terms" for information on usage and redistribution of
10
+ * this file, and for a DISCLAIMER OF ALL WARRANTIES.
11
+ */
12
+
13
+ #ifndef TCLOO_H_INCLUDED
14
+ #define TCLOO_H_INCLUDED
15
+
16
+ /*
17
+ * Be careful when it comes to versioning; need to make sure that the
18
+ * standalone TclOO version matches. Also make sure that this matches the
19
+ * version in the files:
20
+ *
21
+ * tests/oo.test
22
+ * tests/ooNext2.test
23
+ * unix/tclooConfig.sh
24
+ * win/tclooConfig.sh
25
+ */
26
+
27
+ #define TCLOO_VERSION "1.1.0"
28
+ #define TCLOO_PATCHLEVEL TCLOO_VERSION
29
+
30
+ #include "tcl.h"
31
+
32
+ /*
33
+ * For C++ compilers, use extern "C"
34
+ */
35
+
36
+ #ifdef __cplusplus
37
+ extern "C" {
38
+ #endif
39
+
40
+ extern const char *TclOOInitializeStubs(
41
+ Tcl_Interp *, const char *version);
42
+ #define Tcl_OOInitStubs(interp) \
43
+ TclOOInitializeStubs((interp), TCLOO_VERSION)
44
+ #ifndef USE_TCL_STUBS
45
+ # define TclOOInitializeStubs(interp, version) (TCLOO_PATCHLEVEL)
46
+ #endif
47
+
48
+ /*
49
+ * These are opaque types.
50
+ */
51
+
52
+ typedef struct Tcl_Class_ *Tcl_Class;
53
+ typedef struct Tcl_Method_ *Tcl_Method;
54
+ typedef struct Tcl_Object_ *Tcl_Object;
55
+ typedef struct Tcl_ObjectContext_ *Tcl_ObjectContext;
56
+
57
+ /*
58
+ * Public datatypes for callbacks and structures used in the TIP#257 (OO)
59
+ * implementation. These are used to implement custom types of method calls
60
+ * and to allow the attachment of arbitrary data to objects and classes.
61
+ */
62
+
63
+ typedef int (Tcl_MethodCallProc)(ClientData clientData, Tcl_Interp *interp,
64
+ Tcl_ObjectContext objectContext, int objc, Tcl_Obj *const *objv);
65
+ typedef void (Tcl_MethodDeleteProc)(ClientData clientData);
66
+ typedef int (Tcl_CloneProc)(Tcl_Interp *interp, ClientData oldClientData,
67
+ ClientData *newClientData);
68
+ typedef void (Tcl_ObjectMetadataDeleteProc)(ClientData clientData);
69
+ typedef int (Tcl_ObjectMapMethodNameProc)(Tcl_Interp *interp,
70
+ Tcl_Object object, Tcl_Class *startClsPtr, Tcl_Obj *methodNameObj);
71
+
72
+ /*
73
+ * The type of a method implementation. This describes how to call the method
74
+ * implementation, how to delete it (when the object or class is deleted) and
75
+ * how to create a clone of it (when the object or class is copied).
76
+ */
77
+
78
+ typedef struct {
79
+ int version; /* Structure version field. Always to be equal
80
+ * to TCL_OO_METHOD_VERSION_CURRENT in
81
+ * declarations. */
82
+ const char *name; /* Name of this type of method, mostly for
83
+ * debugging purposes. */
84
+ Tcl_MethodCallProc *callProc;
85
+ /* How to invoke this method. */
86
+ Tcl_MethodDeleteProc *deleteProc;
87
+ /* How to delete this method's type-specific
88
+ * data, or NULL if the type-specific data
89
+ * does not need deleting. */
90
+ Tcl_CloneProc *cloneProc; /* How to copy this method's type-specific
91
+ * data, or NULL if the type-specific data can
92
+ * be copied directly. */
93
+ } Tcl_MethodType;
94
+
95
+ /*
96
+ * The correct value for the version field of the Tcl_MethodType structure.
97
+ * This allows new versions of the structure to be introduced without breaking
98
+ * binary compatability.
99
+ */
100
+
101
+ #define TCL_OO_METHOD_VERSION_CURRENT 1
102
+
103
+ /*
104
+ * The type of some object (or class) metadata. This describes how to delete
105
+ * the metadata (when the object or class is deleted) and how to create a
106
+ * clone of it (when the object or class is copied).
107
+ */
108
+
109
+ typedef struct {
110
+ int version; /* Structure version field. Always to be equal
111
+ * to TCL_OO_METADATA_VERSION_CURRENT in
112
+ * declarations. */
113
+ const char *name;
114
+ Tcl_ObjectMetadataDeleteProc *deleteProc;
115
+ /* How to delete the metadata. This must not
116
+ * be NULL. */
117
+ Tcl_CloneProc *cloneProc; /* How to copy the metadata, or NULL if the
118
+ * type-specific data can be copied
119
+ * directly. */
120
+ } Tcl_ObjectMetadataType;
121
+
122
+ /*
123
+ * The correct value for the version field of the Tcl_ObjectMetadataType
124
+ * structure. This allows new versions of the structure to be introduced
125
+ * without breaking binary compatability.
126
+ */
127
+
128
+ #define TCL_OO_METADATA_VERSION_CURRENT 1
129
+
130
+ /*
131
+ * Include all the public API, generated from tclOO.decls.
132
+ */
133
+
134
+ #include "tclOODecls.h"
135
+
136
+ #ifdef __cplusplus
137
+ }
138
+ #endif
139
+ #endif
140
+
141
+ /*
142
+ * Local Variables:
143
+ * mode: c
144
+ * c-basic-offset: 4
145
+ * fill-column: 78
146
+ * End:
147
+ */
my_container_sandbox/workspace/anaconda3/include/tclOOInt.h ADDED
@@ -0,0 +1,607 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * tclOOInt.h --
3
+ *
4
+ * This file contains the structure definitions and some of the function
5
+ * declarations for the object-system (NB: not Tcl_Obj, but ::oo).
6
+ *
7
+ * Copyright (c) 2006-2012 by Donal K. Fellows
8
+ *
9
+ * See the file "license.terms" for information on usage and redistribution of
10
+ * this file, and for a DISCLAIMER OF ALL WARRANTIES.
11
+ */
12
+
13
+ #ifndef TCL_OO_INTERNAL_H
14
+ #define TCL_OO_INTERNAL_H 1
15
+
16
+ #include "tclInt.h"
17
+ #include "tclOO.h"
18
+
19
+ /*
20
+ * Hack to make things work with Objective C. Note that ObjC isn't really
21
+ * supported, but we don't want to to be actively hostile to it. [Bug 2163447]
22
+ */
23
+
24
+ #ifdef __OBJC__
25
+ #define Class TclOOClass
26
+ #define Object TclOOObject
27
+ #endif /* __OBJC__ */
28
+
29
+ /*
30
+ * Forward declarations.
31
+ */
32
+
33
+ struct CallChain;
34
+ struct Class;
35
+ struct Foundation;
36
+ struct Object;
37
+
38
+ /*
39
+ * The data that needs to be stored per method. This record is used to collect
40
+ * information about all sorts of methods, including forwards, constructors
41
+ * and destructors.
42
+ */
43
+
44
+ typedef struct Method {
45
+ const Tcl_MethodType *typePtr;
46
+ /* The type of method. If NULL, this is a
47
+ * special flag record which is just used for
48
+ * the setting of the flags field. */
49
+ int refCount;
50
+ ClientData clientData; /* Type-specific data. */
51
+ Tcl_Obj *namePtr; /* Name of the method. */
52
+ struct Object *declaringObjectPtr;
53
+ /* The object that declares this method, or
54
+ * NULL if it was declared by a class. */
55
+ struct Class *declaringClassPtr;
56
+ /* The class that declares this method, or
57
+ * NULL if it was declared directly on an
58
+ * object. */
59
+ int flags; /* Assorted flags. Includes whether this
60
+ * method is public/exported or not. */
61
+ } Method;
62
+
63
+ /*
64
+ * Pre- and post-call callbacks, to allow procedure-like methods to be fine
65
+ * tuned in their behaviour.
66
+ */
67
+
68
+ typedef int (TclOO_PreCallProc)(ClientData clientData, Tcl_Interp *interp,
69
+ Tcl_ObjectContext context, Tcl_CallFrame *framePtr, int *isFinished);
70
+ typedef int (TclOO_PostCallProc)(ClientData clientData, Tcl_Interp *interp,
71
+ Tcl_ObjectContext context, Tcl_Namespace *namespacePtr, int result);
72
+ typedef void (TclOO_PmCDDeleteProc)(ClientData clientData);
73
+ typedef ClientData (TclOO_PmCDCloneProc)(ClientData clientData);
74
+
75
+ /*
76
+ * Procedure-like methods have the following extra information.
77
+ */
78
+
79
+ typedef struct ProcedureMethod {
80
+ int version; /* Version of this structure. Currently must
81
+ * be 0. */
82
+ Proc *procPtr; /* Core of the implementation of the method;
83
+ * includes the argument definition and the
84
+ * body bytecodes. */
85
+ int flags; /* Flags to control features. */
86
+ int refCount;
87
+ ClientData clientData;
88
+ TclOO_PmCDDeleteProc *deleteClientdataProc;
89
+ TclOO_PmCDCloneProc *cloneClientdataProc;
90
+ ProcErrorProc *errProc; /* Replacement error handler. */
91
+ TclOO_PreCallProc *preCallProc;
92
+ /* Callback to allow for additional setup
93
+ * before the method executes. */
94
+ TclOO_PostCallProc *postCallProc;
95
+ /* Callback to allow for additional cleanup
96
+ * after the method executes. */
97
+ GetFrameInfoValueProc *gfivProc;
98
+ /* Callback to allow for fine tuning of how
99
+ * the method reports itself. */
100
+ } ProcedureMethod;
101
+
102
+ #define TCLOO_PROCEDURE_METHOD_VERSION 0
103
+
104
+ /*
105
+ * Flags for use in a ProcedureMethod.
106
+ *
107
+ * When the USE_DECLARER_NS flag is set, the method will use the namespace of
108
+ * the object or class that declared it (or the clone of it, if it was from
109
+ * such that the implementation of the method came to the particular use)
110
+ * instead of the namespace of the object on which the method was invoked.
111
+ * This flag must be distinct from all others that are associated with
112
+ * methods.
113
+ */
114
+
115
+ #define USE_DECLARER_NS 0x80
116
+
117
+ /*
118
+ * Forwarded methods have the following extra information.
119
+ */
120
+
121
+ typedef struct ForwardMethod {
122
+ Tcl_Obj *prefixObj; /* The list of values to use to replace the
123
+ * object and method name with. Will be a
124
+ * non-empty list. */
125
+ } ForwardMethod;
126
+
127
+ /*
128
+ * Helper definitions that declare a "list" array. The two varieties are
129
+ * either optimized for simplicity (in the case that the whole array is
130
+ * typically assigned at once) or efficiency (in the case that the array is
131
+ * expected to be expanded over time). These lists are designed to be iterated
132
+ * over with the help of the FOREACH macro (see later in this file).
133
+ *
134
+ * The "num" field always counts the number of listType_t elements used in the
135
+ * "list" field. When a "size" field exists, it describes how many elements
136
+ * are present in the list; when absent, exactly "num" elements are present.
137
+ */
138
+
139
+ #define LIST_STATIC(listType_t) \
140
+ struct { int num; listType_t *list; }
141
+ #define LIST_DYNAMIC(listType_t) \
142
+ struct { int num, size; listType_t *list; }
143
+
144
+ /*
145
+ * Now, the definition of what an object actually is.
146
+ */
147
+
148
+ typedef struct Object {
149
+ struct Foundation *fPtr; /* The basis for the object system. Putting
150
+ * this here allows the avoidance of quite a
151
+ * lot of hash lookups on the critical path
152
+ * for object invocation and creation. */
153
+ Tcl_Namespace *namespacePtr;/* This object's namespace. */
154
+ Tcl_Command command; /* Reference to this object's public
155
+ * command. */
156
+ Tcl_Command myCommand; /* Reference to this object's internal
157
+ * command. */
158
+ struct Class *selfCls; /* This object's class. */
159
+ Tcl_HashTable *methodsPtr; /* Object-local Tcl_Obj (method name) to
160
+ * Method* mapping. */
161
+ LIST_STATIC(struct Class *) mixins;
162
+ /* Classes mixed into this object. */
163
+ LIST_STATIC(Tcl_Obj *) filters;
164
+ /* List of filter names. */
165
+ struct Class *classPtr; /* This is non-NULL for all classes, and NULL
166
+ * for everything else. It points to the class
167
+ * structure. */
168
+ int refCount; /* Number of strong references to this object.
169
+ * Note that there may be many more weak
170
+ * references; this mechanism exists to
171
+ * avoid Tcl_Preserve. */
172
+ int flags;
173
+ int creationEpoch; /* Unique value to make comparisons of objects
174
+ * easier. */
175
+ int epoch; /* Per-object epoch, incremented when the way
176
+ * an object should resolve call chains is
177
+ * changed. */
178
+ Tcl_HashTable *metadataPtr; /* Mapping from pointers to metadata type to
179
+ * the ClientData values that are the values
180
+ * of each piece of attached metadata. This
181
+ * field starts out as NULL and is only
182
+ * allocated if metadata is attached. */
183
+ Tcl_Obj *cachedNameObj; /* Cache of the name of the object. */
184
+ Tcl_HashTable *chainCache; /* Place to keep unused contexts. This table
185
+ * is indexed by method name as Tcl_Obj. */
186
+ Tcl_ObjectMapMethodNameProc *mapMethodNameProc;
187
+ /* Function to allow remapping of method
188
+ * names. For itcl-ng. */
189
+ LIST_STATIC(Tcl_Obj *) variables;
190
+ } Object;
191
+
192
+ #define OBJECT_DESTRUCTING 1 /* Indicates that an object is being or has
193
+ * been destroyed */
194
+ #define DESTRUCTOR_CALLED 2 /* Indicates that evaluation of destructor script for the
195
+ object has began */
196
+ #define OO_UNUSED_4 4 /* No longer used. */
197
+ #define ROOT_OBJECT 0x1000 /* Flag to say that this object is the root of
198
+ * the class hierarchy and should be treated
199
+ * specially during teardown. */
200
+ #define FILTER_HANDLING 0x2000 /* Flag set when the object is processing a
201
+ * filter; when set, filters are *not*
202
+ * processed on the object, preventing nasty
203
+ * recursive filtering problems. */
204
+ #define USE_CLASS_CACHE 0x4000 /* Flag set to say that the object is a pure
205
+ * instance of the class, and has had nothing
206
+ * added that changes the dispatch chain (i.e.
207
+ * no methods, mixins, or filters. */
208
+ #define ROOT_CLASS 0x8000 /* Flag to say that this object is the root
209
+ * class of classes, and should be treated
210
+ * specially during teardown (and in a few
211
+ * other spots). */
212
+ #define FORCE_UNKNOWN 0x10000 /* States that we are *really* looking up the
213
+ * unknown method handler at that point. */
214
+ #define DONT_DELETE 0x20000 /* Inhibit deletion of this object. */
215
+
216
+ /*
217
+ * And the definition of a class. Note that every class also has an associated
218
+ * object, through which it is manipulated.
219
+ */
220
+
221
+ typedef struct Class {
222
+ Object *thisPtr; /* Reference to the object associated with
223
+ * this class. */
224
+ int flags; /* Assorted flags. */
225
+ LIST_STATIC(struct Class *) superclasses;
226
+ /* List of superclasses, used for generation
227
+ * of method call chains. */
228
+ LIST_DYNAMIC(struct Class *) subclasses;
229
+ /* List of subclasses, used to ensure deletion
230
+ * of dependent entities happens properly when
231
+ * the class itself is deleted. */
232
+ LIST_DYNAMIC(Object *) instances;
233
+ /* List of instances, used to ensure deletion
234
+ * of dependent entities happens properly when
235
+ * the class itself is deleted. */
236
+ LIST_STATIC(Tcl_Obj *) filters;
237
+ /* List of filter names, used for generation
238
+ * of method call chains. */
239
+ LIST_STATIC(struct Class *) mixins;
240
+ /* List of mixin classes, used for generation
241
+ * of method call chains. */
242
+ LIST_DYNAMIC(struct Class *) mixinSubs;
243
+ /* List of classes that this class is mixed
244
+ * into, used to ensure deletion of dependent
245
+ * entities happens properly when the class
246
+ * itself is deleted. */
247
+ Tcl_HashTable classMethods; /* Hash table of all methods. Hash maps from
248
+ * the (Tcl_Obj*) method name to the (Method*)
249
+ * method record. */
250
+ Method *constructorPtr; /* Method record of the class constructor (if
251
+ * any). */
252
+ Method *destructorPtr; /* Method record of the class destructor (if
253
+ * any). */
254
+ Tcl_HashTable *metadataPtr; /* Mapping from pointers to metadata type to
255
+ * the ClientData values that are the values
256
+ * of each piece of attached metadata. This
257
+ * field starts out as NULL and is only
258
+ * allocated if metadata is attached. */
259
+ struct CallChain *constructorChainPtr;
260
+ struct CallChain *destructorChainPtr;
261
+ Tcl_HashTable *classChainCache;
262
+ /* Places where call chains are stored. For
263
+ * constructors, the class chain is always
264
+ * used. For destructors and ordinary methods,
265
+ * the class chain is only used when the
266
+ * object doesn't override with its own mixins
267
+ * (and filters and method implementations for
268
+ * when getting method chains). */
269
+ LIST_STATIC(Tcl_Obj *) variables;
270
+ } Class;
271
+
272
+ /*
273
+ * The foundation of the object system within an interpreter contains
274
+ * references to the key classes and namespaces, together with a few other
275
+ * useful bits and pieces. Probably ought to eventually go in the Interp
276
+ * structure itself.
277
+ */
278
+
279
+ typedef struct ThreadLocalData {
280
+ int nsCount; /* Epoch counter is used for keeping
281
+ * the values used in Tcl_Obj internal
282
+ * representations sane. Must be thread-local
283
+ * because Tcl_Objs can cross interpreter
284
+ * boundaries within a thread (objects don't
285
+ * generally cross threads). */
286
+ } ThreadLocalData;
287
+
288
+ typedef struct Foundation {
289
+ Tcl_Interp *interp;
290
+ Class *objectCls; /* The root of the object system. */
291
+ Class *classCls; /* The class of all classes. */
292
+ Tcl_Namespace *ooNs; /* ::oo namespace. */
293
+ Tcl_Namespace *defineNs; /* Namespace containing special commands for
294
+ * manipulating objects and classes. The
295
+ * "oo::define" command acts as a special kind
296
+ * of ensemble for this namespace. */
297
+ Tcl_Namespace *objdefNs; /* Namespace containing special commands for
298
+ * manipulating objects and classes. The
299
+ * "oo::objdefine" command acts as a special
300
+ * kind of ensemble for this namespace. */
301
+ Tcl_Namespace *helpersNs; /* Namespace containing the commands that are
302
+ * only valid when executing inside a
303
+ * procedural method. */
304
+ int epoch; /* Used to invalidate method chains when the
305
+ * class structure changes. */
306
+ ThreadLocalData *tsdPtr; /* Counter so we can allocate a unique
307
+ * namespace to each object. */
308
+ Tcl_Obj *unknownMethodNameObj;
309
+ /* Shared object containing the name of the
310
+ * unknown method handler method. */
311
+ Tcl_Obj *constructorName; /* Shared object containing the "name" of a
312
+ * constructor. */
313
+ Tcl_Obj *destructorName; /* Shared object containing the "name" of a
314
+ * destructor. */
315
+ Tcl_Obj *clonedName; /* Shared object containing the name of a
316
+ * "<cloned>" pseudo-constructor. */
317
+ Tcl_Obj *defineName; /* Fully qualified name of oo::define. */
318
+ } Foundation;
319
+
320
+ /*
321
+ * A call context structure is built when a method is called. It contains the
322
+ * chain of method implementations that are to be invoked by a particular
323
+ * call, and the process of calling walks the chain, with the [next] command
324
+ * proceeding to the next entry in the chain.
325
+ */
326
+
327
+ #define CALL_CHAIN_STATIC_SIZE 4
328
+
329
+ struct MInvoke {
330
+ Method *mPtr; /* Reference to the method implementation
331
+ * record. */
332
+ int isFilter; /* Whether this is a filter invocation. */
333
+ Class *filterDeclarer; /* What class decided to add the filter; if
334
+ * NULL, it was added by the object. */
335
+ };
336
+
337
+ typedef struct CallChain {
338
+ int objectCreationEpoch; /* The object's creation epoch. Note that the
339
+ * object reference is not stored in the call
340
+ * chain; it is in the call context. */
341
+ int objectEpoch; /* Local (object structure) epoch counter
342
+ * snapshot. */
343
+ int epoch; /* Global (class structure) epoch counter
344
+ * snapshot. */
345
+ int flags; /* Assorted flags, see below. */
346
+ int refCount; /* Reference count. */
347
+ int numChain; /* Size of the call chain. */
348
+ struct MInvoke *chain; /* Array of call chain entries. May point to
349
+ * staticChain if the number of entries is
350
+ * small. */
351
+ struct MInvoke staticChain[CALL_CHAIN_STATIC_SIZE];
352
+ } CallChain;
353
+
354
+ typedef struct CallContext {
355
+ Object *oPtr; /* The object associated with this call. */
356
+ int index; /* Index into the call chain of the currently
357
+ * executing method implementation. */
358
+ int skip; /* Current number of arguments to skip; can
359
+ * vary depending on whether it is a direct
360
+ * method call or a continuation via the
361
+ * [next] command. */
362
+ CallChain *callPtr; /* The actual call chain. */
363
+ } CallContext;
364
+
365
+ /*
366
+ * Bits for the 'flags' field of the call chain.
367
+ */
368
+
369
+ #define PUBLIC_METHOD 0x01 /* This is a public (exported) method. */
370
+ #define PRIVATE_METHOD 0x02 /* This is a private (class's direct instances
371
+ * only) method. */
372
+ #define OO_UNKNOWN_METHOD 0x04 /* This is an unknown method. */
373
+ #define CONSTRUCTOR 0x08 /* This is a constructor. */
374
+ #define DESTRUCTOR 0x10 /* This is a destructor. */
375
+
376
+ /*
377
+ * Structure containing definition information about basic class methods.
378
+ */
379
+
380
+ typedef struct {
381
+ const char *name; /* Name of the method in question. */
382
+ int isPublic; /* Whether the method is public by default. */
383
+ Tcl_MethodType definition; /* How to call the method. */
384
+ } DeclaredClassMethod;
385
+
386
+ /*
387
+ *----------------------------------------------------------------
388
+ * Commands relating to OO support.
389
+ *----------------------------------------------------------------
390
+ */
391
+
392
+ MODULE_SCOPE int TclOOInit(Tcl_Interp *interp);
393
+ MODULE_SCOPE int TclOODefineObjCmd(ClientData clientData,
394
+ Tcl_Interp *interp, int objc,
395
+ Tcl_Obj *const *objv);
396
+ MODULE_SCOPE int TclOOObjDefObjCmd(ClientData clientData,
397
+ Tcl_Interp *interp, int objc,
398
+ Tcl_Obj *const *objv);
399
+ MODULE_SCOPE int TclOODefineConstructorObjCmd(ClientData clientData,
400
+ Tcl_Interp *interp, int objc,
401
+ Tcl_Obj *const *objv);
402
+ MODULE_SCOPE int TclOODefineDeleteMethodObjCmd(ClientData clientData,
403
+ Tcl_Interp *interp, int objc,
404
+ Tcl_Obj *const *objv);
405
+ MODULE_SCOPE int TclOODefineDestructorObjCmd(ClientData clientData,
406
+ Tcl_Interp *interp, int objc,
407
+ Tcl_Obj *const *objv);
408
+ MODULE_SCOPE int TclOODefineExportObjCmd(ClientData clientData,
409
+ Tcl_Interp *interp, int objc,
410
+ Tcl_Obj *const *objv);
411
+ MODULE_SCOPE int TclOODefineForwardObjCmd(ClientData clientData,
412
+ Tcl_Interp *interp, int objc,
413
+ Tcl_Obj *const *objv);
414
+ MODULE_SCOPE int TclOODefineMethodObjCmd(ClientData clientData,
415
+ Tcl_Interp *interp, int objc,
416
+ Tcl_Obj *const *objv);
417
+ MODULE_SCOPE int TclOODefineRenameMethodObjCmd(ClientData clientData,
418
+ Tcl_Interp *interp, int objc,
419
+ Tcl_Obj *const *objv);
420
+ MODULE_SCOPE int TclOODefineUnexportObjCmd(ClientData clientData,
421
+ Tcl_Interp *interp, int objc,
422
+ Tcl_Obj *const *objv);
423
+ MODULE_SCOPE int TclOODefineClassObjCmd(ClientData clientData,
424
+ Tcl_Interp *interp, int objc,
425
+ Tcl_Obj *const *objv);
426
+ MODULE_SCOPE int TclOODefineSelfObjCmd(ClientData clientData,
427
+ Tcl_Interp *interp, int objc,
428
+ Tcl_Obj *const *objv);
429
+ MODULE_SCOPE int TclOOUnknownDefinition(ClientData clientData,
430
+ Tcl_Interp *interp, int objc,
431
+ Tcl_Obj *const *objv);
432
+ MODULE_SCOPE int TclOOCopyObjectCmd(ClientData clientData,
433
+ Tcl_Interp *interp, int objc,
434
+ Tcl_Obj *const *objv);
435
+ MODULE_SCOPE int TclOONextObjCmd(ClientData clientData,
436
+ Tcl_Interp *interp, int objc,
437
+ Tcl_Obj *const *objv);
438
+ MODULE_SCOPE int TclOONextToObjCmd(ClientData clientData,
439
+ Tcl_Interp *interp, int objc,
440
+ Tcl_Obj *const *objv);
441
+ MODULE_SCOPE int TclOOSelfObjCmd(ClientData clientData,
442
+ Tcl_Interp *interp, int objc,
443
+ Tcl_Obj *const *objv);
444
+
445
+ /*
446
+ * Method implementations (in tclOOBasic.c).
447
+ */
448
+
449
+ MODULE_SCOPE int TclOO_Class_Constructor(ClientData clientData,
450
+ Tcl_Interp *interp, Tcl_ObjectContext context,
451
+ int objc, Tcl_Obj *const *objv);
452
+ MODULE_SCOPE int TclOO_Class_Create(ClientData clientData,
453
+ Tcl_Interp *interp, Tcl_ObjectContext context,
454
+ int objc, Tcl_Obj *const *objv);
455
+ MODULE_SCOPE int TclOO_Class_CreateNs(ClientData clientData,
456
+ Tcl_Interp *interp, Tcl_ObjectContext context,
457
+ int objc, Tcl_Obj *const *objv);
458
+ MODULE_SCOPE int TclOO_Class_New(ClientData clientData,
459
+ Tcl_Interp *interp, Tcl_ObjectContext context,
460
+ int objc, Tcl_Obj *const *objv);
461
+ MODULE_SCOPE int TclOO_Object_Destroy(ClientData clientData,
462
+ Tcl_Interp *interp, Tcl_ObjectContext context,
463
+ int objc, Tcl_Obj *const *objv);
464
+ MODULE_SCOPE int TclOO_Object_Eval(ClientData clientData,
465
+ Tcl_Interp *interp, Tcl_ObjectContext context,
466
+ int objc, Tcl_Obj *const *objv);
467
+ MODULE_SCOPE int TclOO_Object_LinkVar(ClientData clientData,
468
+ Tcl_Interp *interp, Tcl_ObjectContext context,
469
+ int objc, Tcl_Obj *const *objv);
470
+ MODULE_SCOPE int TclOO_Object_Unknown(ClientData clientData,
471
+ Tcl_Interp *interp, Tcl_ObjectContext context,
472
+ int objc, Tcl_Obj *const *objv);
473
+ MODULE_SCOPE int TclOO_Object_VarName(ClientData clientData,
474
+ Tcl_Interp *interp, Tcl_ObjectContext context,
475
+ int objc, Tcl_Obj *const *objv);
476
+
477
+ /*
478
+ * Private definitions, some of which perhaps ought to be exposed properly or
479
+ * maybe just put in the internal stubs table.
480
+ */
481
+
482
+ MODULE_SCOPE void TclOOAddToInstances(Object *oPtr, Class *clsPtr);
483
+ MODULE_SCOPE void TclOOAddToMixinSubs(Class *subPtr, Class *mixinPtr);
484
+ MODULE_SCOPE void TclOOAddToSubclasses(Class *subPtr, Class *superPtr);
485
+ MODULE_SCOPE Class * TclOOAllocClass(Tcl_Interp *interp,
486
+ Object *useThisObj);
487
+ MODULE_SCOPE int TclNRNewObjectInstance(Tcl_Interp *interp,
488
+ Tcl_Class cls, const char *nameStr,
489
+ const char *nsNameStr, int objc,
490
+ Tcl_Obj *const *objv, int skip,
491
+ Tcl_Object *objectPtr);
492
+ MODULE_SCOPE Object * TclNewObjectInstanceCommon(Tcl_Interp *interp,
493
+ Class *classPtr,
494
+ const char *nameStr,
495
+ const char *nsNameStr);
496
+ MODULE_SCOPE int TclOODecrRefCount(Object *oPtr);
497
+ MODULE_SCOPE int TclOOObjectDestroyed(Object *oPtr);
498
+ MODULE_SCOPE int TclOODefineSlots(Foundation *fPtr);
499
+ MODULE_SCOPE void TclOODeleteChain(CallChain *callPtr);
500
+ MODULE_SCOPE void TclOODeleteChainCache(Tcl_HashTable *tablePtr);
501
+ MODULE_SCOPE void TclOODeleteContext(CallContext *contextPtr);
502
+ MODULE_SCOPE void TclOODeleteDescendants(Tcl_Interp *interp,
503
+ Object *oPtr);
504
+ MODULE_SCOPE void TclOODelMethodRef(Method *method);
505
+ MODULE_SCOPE CallContext *TclOOGetCallContext(Object *oPtr,
506
+ Tcl_Obj *methodNameObj, int flags,
507
+ Tcl_Obj *cacheInThisObj);
508
+ MODULE_SCOPE CallChain *TclOOGetStereotypeCallChain(Class *clsPtr,
509
+ Tcl_Obj *methodNameObj, int flags);
510
+ MODULE_SCOPE Foundation *TclOOGetFoundation(Tcl_Interp *interp);
511
+ MODULE_SCOPE Tcl_Obj * TclOOGetFwdFromMethod(Method *mPtr);
512
+ MODULE_SCOPE Proc * TclOOGetProcFromMethod(Method *mPtr);
513
+ MODULE_SCOPE Tcl_Obj * TclOOGetMethodBody(Method *mPtr);
514
+ MODULE_SCOPE int TclOOGetSortedClassMethodList(Class *clsPtr,
515
+ int flags, const char ***stringsPtr);
516
+ MODULE_SCOPE int TclOOGetSortedMethodList(Object *oPtr, int flags,
517
+ const char ***stringsPtr);
518
+ MODULE_SCOPE int TclOOInit(Tcl_Interp *interp);
519
+ MODULE_SCOPE void TclOOInitInfo(Tcl_Interp *interp);
520
+ MODULE_SCOPE int TclOOInvokeContext(ClientData clientData,
521
+ Tcl_Interp *interp, int objc,
522
+ Tcl_Obj *const objv[]);
523
+ MODULE_SCOPE int TclNRObjectContextInvokeNext(Tcl_Interp *interp,
524
+ Tcl_ObjectContext context, int objc,
525
+ Tcl_Obj *const *objv, int skip);
526
+ MODULE_SCOPE void TclOONewBasicMethod(Tcl_Interp *interp, Class *clsPtr,
527
+ const DeclaredClassMethod *dcm);
528
+ MODULE_SCOPE Tcl_Obj * TclOOObjectName(Tcl_Interp *interp, Object *oPtr);
529
+ MODULE_SCOPE void TclOOReleaseClassContents(Tcl_Interp *interp,
530
+ Object *oPtr);
531
+ MODULE_SCOPE int TclOORemoveFromInstances(Object *oPtr, Class *clsPtr);
532
+ MODULE_SCOPE int TclOORemoveFromMixins(Class *mixinPtr, Object *oPtr);
533
+ MODULE_SCOPE int TclOORemoveFromMixinSubs(Class *subPtr,
534
+ Class *mixinPtr);
535
+ MODULE_SCOPE int TclOORemoveFromSubclasses(Class *subPtr,
536
+ Class *superPtr);
537
+ MODULE_SCOPE Tcl_Obj * TclOORenderCallChain(Tcl_Interp *interp,
538
+ CallChain *callPtr);
539
+ MODULE_SCOPE void TclOOStashContext(Tcl_Obj *objPtr,
540
+ CallContext *contextPtr);
541
+ MODULE_SCOPE void TclOOSetupVariableResolver(Tcl_Namespace *nsPtr);
542
+
543
+ /*
544
+ * Include all the private API, generated from tclOO.decls.
545
+ */
546
+
547
+ #include "tclOOIntDecls.h"
548
+
549
+ /*
550
+ * Alternatives to Tcl_Preserve/Tcl_EventuallyFree/Tcl_Release.
551
+ */
552
+
553
+ #define AddRef(ptr) ((ptr)->refCount++)
554
+
555
+ /*
556
+ * A convenience macro for iterating through the lists used in the internal
557
+ * memory management of objects.
558
+ * REQUIRES DECLARATION: int i;
559
+ */
560
+
561
+ #define FOREACH(var,ary) \
562
+ for(i=0 ; i<(ary).num; i++) if ((ary).list[i] == NULL) { \
563
+ continue; \
564
+ } else if (var = (ary).list[i], 1)
565
+
566
+ /*
567
+ * Convenience macros for iterating through hash tables. FOREACH_HASH_DECLS
568
+ * sets up the declarations needed for the main macro, FOREACH_HASH, which
569
+ * does the actual iteration. FOREACH_HASH_VALUE is a restricted version that
570
+ * only iterates over values.
571
+ */
572
+
573
+ #define FOREACH_HASH_DECLS \
574
+ Tcl_HashEntry *hPtr;Tcl_HashSearch search
575
+ #define FOREACH_HASH(key,val,tablePtr) \
576
+ for(hPtr=Tcl_FirstHashEntry((tablePtr),&search); hPtr!=NULL ? \
577
+ ((key)=(void *)Tcl_GetHashKey((tablePtr),hPtr),\
578
+ (val)=Tcl_GetHashValue(hPtr),1):0; hPtr=Tcl_NextHashEntry(&search))
579
+ #define FOREACH_HASH_VALUE(val,tablePtr) \
580
+ for(hPtr=Tcl_FirstHashEntry((tablePtr),&search); hPtr!=NULL ? \
581
+ ((val)=Tcl_GetHashValue(hPtr),1):0;hPtr=Tcl_NextHashEntry(&search))
582
+
583
+ /*
584
+ * Convenience macro for duplicating a list. Needs no external declaration,
585
+ * but all arguments are used multiple times and so must have no side effects.
586
+ */
587
+
588
+ #undef DUPLICATE /* prevent possible conflict with definition in WINAPI nb30.h */
589
+ #define DUPLICATE(target,source,type) \
590
+ do { \
591
+ size_t len = sizeof(type) * ((target).num=(source).num);\
592
+ if (len != 0) { \
593
+ memcpy(((target).list=(type*)ckalloc(len)), (source).list, len); \
594
+ } else { \
595
+ (target).list = NULL; \
596
+ } \
597
+ } while(0)
598
+
599
+ #endif /* TCL_OO_INTERNAL_H */
600
+
601
+ /*
602
+ * Local Variables:
603
+ * mode: c
604
+ * c-basic-offset: 4
605
+ * fill-column: 78
606
+ * End:
607
+ */
my_container_sandbox/workspace/anaconda3/include/tclOOIntDecls.h ADDED
@@ -0,0 +1,166 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * This file is (mostly) automatically generated from tclOO.decls.
3
+ */
4
+
5
+ #ifndef _TCLOOINTDECLS
6
+ #define _TCLOOINTDECLS
7
+
8
+ /* !BEGIN!: Do not edit below this line. */
9
+
10
+ #ifdef __cplusplus
11
+ extern "C" {
12
+ #endif
13
+
14
+ /*
15
+ * Exported function declarations:
16
+ */
17
+
18
+ /* 0 */
19
+ TCLAPI Tcl_Object TclOOGetDefineCmdContext(Tcl_Interp *interp);
20
+ /* 1 */
21
+ TCLAPI Tcl_Method TclOOMakeProcInstanceMethod(Tcl_Interp *interp,
22
+ Object *oPtr, int flags, Tcl_Obj *nameObj,
23
+ Tcl_Obj *argsObj, Tcl_Obj *bodyObj,
24
+ const Tcl_MethodType *typePtr,
25
+ ClientData clientData, Proc **procPtrPtr);
26
+ /* 2 */
27
+ TCLAPI Tcl_Method TclOOMakeProcMethod(Tcl_Interp *interp,
28
+ Class *clsPtr, int flags, Tcl_Obj *nameObj,
29
+ const char *namePtr, Tcl_Obj *argsObj,
30
+ Tcl_Obj *bodyObj,
31
+ const Tcl_MethodType *typePtr,
32
+ ClientData clientData, Proc **procPtrPtr);
33
+ /* 3 */
34
+ TCLAPI Method * TclOONewProcInstanceMethod(Tcl_Interp *interp,
35
+ Object *oPtr, int flags, Tcl_Obj *nameObj,
36
+ Tcl_Obj *argsObj, Tcl_Obj *bodyObj,
37
+ ProcedureMethod **pmPtrPtr);
38
+ /* 4 */
39
+ TCLAPI Method * TclOONewProcMethod(Tcl_Interp *interp, Class *clsPtr,
40
+ int flags, Tcl_Obj *nameObj,
41
+ Tcl_Obj *argsObj, Tcl_Obj *bodyObj,
42
+ ProcedureMethod **pmPtrPtr);
43
+ /* 5 */
44
+ TCLAPI int TclOOObjectCmdCore(Object *oPtr, Tcl_Interp *interp,
45
+ int objc, Tcl_Obj *const *objv,
46
+ int publicOnly, Class *startCls);
47
+ /* 6 */
48
+ TCLAPI int TclOOIsReachable(Class *targetPtr, Class *startPtr);
49
+ /* 7 */
50
+ TCLAPI Method * TclOONewForwardMethod(Tcl_Interp *interp,
51
+ Class *clsPtr, int isPublic,
52
+ Tcl_Obj *nameObj, Tcl_Obj *prefixObj);
53
+ /* 8 */
54
+ TCLAPI Method * TclOONewForwardInstanceMethod(Tcl_Interp *interp,
55
+ Object *oPtr, int isPublic, Tcl_Obj *nameObj,
56
+ Tcl_Obj *prefixObj);
57
+ /* 9 */
58
+ TCLAPI Tcl_Method TclOONewProcInstanceMethodEx(Tcl_Interp *interp,
59
+ Tcl_Object oPtr,
60
+ TclOO_PreCallProc *preCallPtr,
61
+ TclOO_PostCallProc *postCallPtr,
62
+ ProcErrorProc *errProc,
63
+ ClientData clientData, Tcl_Obj *nameObj,
64
+ Tcl_Obj *argsObj, Tcl_Obj *bodyObj,
65
+ int flags, void **internalTokenPtr);
66
+ /* 10 */
67
+ TCLAPI Tcl_Method TclOONewProcMethodEx(Tcl_Interp *interp,
68
+ Tcl_Class clsPtr,
69
+ TclOO_PreCallProc *preCallPtr,
70
+ TclOO_PostCallProc *postCallPtr,
71
+ ProcErrorProc *errProc,
72
+ ClientData clientData, Tcl_Obj *nameObj,
73
+ Tcl_Obj *argsObj, Tcl_Obj *bodyObj,
74
+ int flags, void **internalTokenPtr);
75
+ /* 11 */
76
+ TCLAPI int TclOOInvokeObject(Tcl_Interp *interp,
77
+ Tcl_Object object, Tcl_Class startCls,
78
+ int publicPrivate, int objc,
79
+ Tcl_Obj *const *objv);
80
+ /* 12 */
81
+ TCLAPI void TclOOObjectSetFilters(Object *oPtr, int numFilters,
82
+ Tcl_Obj *const *filters);
83
+ /* 13 */
84
+ TCLAPI void TclOOClassSetFilters(Tcl_Interp *interp,
85
+ Class *classPtr, int numFilters,
86
+ Tcl_Obj *const *filters);
87
+ /* 14 */
88
+ TCLAPI void TclOOObjectSetMixins(Object *oPtr, int numMixins,
89
+ Class *const *mixins);
90
+ /* 15 */
91
+ TCLAPI void TclOOClassSetMixins(Tcl_Interp *interp,
92
+ Class *classPtr, int numMixins,
93
+ Class *const *mixins);
94
+
95
+ typedef struct TclOOIntStubs {
96
+ int magic;
97
+ void *hooks;
98
+
99
+ Tcl_Object (*tclOOGetDefineCmdContext) (Tcl_Interp *interp); /* 0 */
100
+ Tcl_Method (*tclOOMakeProcInstanceMethod) (Tcl_Interp *interp, Object *oPtr, int flags, Tcl_Obj *nameObj, Tcl_Obj *argsObj, Tcl_Obj *bodyObj, const Tcl_MethodType *typePtr, ClientData clientData, Proc **procPtrPtr); /* 1 */
101
+ Tcl_Method (*tclOOMakeProcMethod) (Tcl_Interp *interp, Class *clsPtr, int flags, Tcl_Obj *nameObj, const char *namePtr, Tcl_Obj *argsObj, Tcl_Obj *bodyObj, const Tcl_MethodType *typePtr, ClientData clientData, Proc **procPtrPtr); /* 2 */
102
+ Method * (*tclOONewProcInstanceMethod) (Tcl_Interp *interp, Object *oPtr, int flags, Tcl_Obj *nameObj, Tcl_Obj *argsObj, Tcl_Obj *bodyObj, ProcedureMethod **pmPtrPtr); /* 3 */
103
+ Method * (*tclOONewProcMethod) (Tcl_Interp *interp, Class *clsPtr, int flags, Tcl_Obj *nameObj, Tcl_Obj *argsObj, Tcl_Obj *bodyObj, ProcedureMethod **pmPtrPtr); /* 4 */
104
+ int (*tclOOObjectCmdCore) (Object *oPtr, Tcl_Interp *interp, int objc, Tcl_Obj *const *objv, int publicOnly, Class *startCls); /* 5 */
105
+ int (*tclOOIsReachable) (Class *targetPtr, Class *startPtr); /* 6 */
106
+ Method * (*tclOONewForwardMethod) (Tcl_Interp *interp, Class *clsPtr, int isPublic, Tcl_Obj *nameObj, Tcl_Obj *prefixObj); /* 7 */
107
+ Method * (*tclOONewForwardInstanceMethod) (Tcl_Interp *interp, Object *oPtr, int isPublic, Tcl_Obj *nameObj, Tcl_Obj *prefixObj); /* 8 */
108
+ Tcl_Method (*tclOONewProcInstanceMethodEx) (Tcl_Interp *interp, Tcl_Object oPtr, TclOO_PreCallProc *preCallPtr, TclOO_PostCallProc *postCallPtr, ProcErrorProc *errProc, ClientData clientData, Tcl_Obj *nameObj, Tcl_Obj *argsObj, Tcl_Obj *bodyObj, int flags, void **internalTokenPtr); /* 9 */
109
+ Tcl_Method (*tclOONewProcMethodEx) (Tcl_Interp *interp, Tcl_Class clsPtr, TclOO_PreCallProc *preCallPtr, TclOO_PostCallProc *postCallPtr, ProcErrorProc *errProc, ClientData clientData, Tcl_Obj *nameObj, Tcl_Obj *argsObj, Tcl_Obj *bodyObj, int flags, void **internalTokenPtr); /* 10 */
110
+ int (*tclOOInvokeObject) (Tcl_Interp *interp, Tcl_Object object, Tcl_Class startCls, int publicPrivate, int objc, Tcl_Obj *const *objv); /* 11 */
111
+ void (*tclOOObjectSetFilters) (Object *oPtr, int numFilters, Tcl_Obj *const *filters); /* 12 */
112
+ void (*tclOOClassSetFilters) (Tcl_Interp *interp, Class *classPtr, int numFilters, Tcl_Obj *const *filters); /* 13 */
113
+ void (*tclOOObjectSetMixins) (Object *oPtr, int numMixins, Class *const *mixins); /* 14 */
114
+ void (*tclOOClassSetMixins) (Tcl_Interp *interp, Class *classPtr, int numMixins, Class *const *mixins); /* 15 */
115
+ } TclOOIntStubs;
116
+
117
+ extern const TclOOIntStubs *tclOOIntStubsPtr;
118
+
119
+ #ifdef __cplusplus
120
+ }
121
+ #endif
122
+
123
+ #if defined(USE_TCLOO_STUBS)
124
+
125
+ /*
126
+ * Inline function declarations:
127
+ */
128
+
129
+ #define TclOOGetDefineCmdContext \
130
+ (tclOOIntStubsPtr->tclOOGetDefineCmdContext) /* 0 */
131
+ #define TclOOMakeProcInstanceMethod \
132
+ (tclOOIntStubsPtr->tclOOMakeProcInstanceMethod) /* 1 */
133
+ #define TclOOMakeProcMethod \
134
+ (tclOOIntStubsPtr->tclOOMakeProcMethod) /* 2 */
135
+ #define TclOONewProcInstanceMethod \
136
+ (tclOOIntStubsPtr->tclOONewProcInstanceMethod) /* 3 */
137
+ #define TclOONewProcMethod \
138
+ (tclOOIntStubsPtr->tclOONewProcMethod) /* 4 */
139
+ #define TclOOObjectCmdCore \
140
+ (tclOOIntStubsPtr->tclOOObjectCmdCore) /* 5 */
141
+ #define TclOOIsReachable \
142
+ (tclOOIntStubsPtr->tclOOIsReachable) /* 6 */
143
+ #define TclOONewForwardMethod \
144
+ (tclOOIntStubsPtr->tclOONewForwardMethod) /* 7 */
145
+ #define TclOONewForwardInstanceMethod \
146
+ (tclOOIntStubsPtr->tclOONewForwardInstanceMethod) /* 8 */
147
+ #define TclOONewProcInstanceMethodEx \
148
+ (tclOOIntStubsPtr->tclOONewProcInstanceMethodEx) /* 9 */
149
+ #define TclOONewProcMethodEx \
150
+ (tclOOIntStubsPtr->tclOONewProcMethodEx) /* 10 */
151
+ #define TclOOInvokeObject \
152
+ (tclOOIntStubsPtr->tclOOInvokeObject) /* 11 */
153
+ #define TclOOObjectSetFilters \
154
+ (tclOOIntStubsPtr->tclOOObjectSetFilters) /* 12 */
155
+ #define TclOOClassSetFilters \
156
+ (tclOOIntStubsPtr->tclOOClassSetFilters) /* 13 */
157
+ #define TclOOObjectSetMixins \
158
+ (tclOOIntStubsPtr->tclOOObjectSetMixins) /* 14 */
159
+ #define TclOOClassSetMixins \
160
+ (tclOOIntStubsPtr->tclOOClassSetMixins) /* 15 */
161
+
162
+ #endif /* defined(USE_TCLOO_STUBS) */
163
+
164
+ /* !END!: Do not edit above this line. */
165
+
166
+ #endif /* _TCLOOINTDECLS */
my_container_sandbox/workspace/anaconda3/include/tclPort.h ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * tclPort.h --
3
+ *
4
+ * This header file handles porting issues that occur because
5
+ * of differences between systems. It reads in platform specific
6
+ * portability files.
7
+ *
8
+ * Copyright (c) 1994-1995 Sun Microsystems, Inc.
9
+ *
10
+ * See the file "license.terms" for information on usage and redistribution
11
+ * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
12
+ */
13
+
14
+ #ifndef _TCLPORT
15
+ #define _TCLPORT
16
+
17
+ #ifdef HAVE_TCL_CONFIG_H
18
+ #include "tclConfig.h"
19
+ #endif
20
+ #if defined(_WIN32)
21
+ # include "tclWinPort.h"
22
+ #else
23
+ # include "tclUnixPort.h"
24
+ #endif
25
+ #include "tcl.h"
26
+
27
+ #if !defined(LLONG_MIN)
28
+ # ifdef TCL_WIDE_INT_IS_LONG
29
+ # define LLONG_MIN LONG_MIN
30
+ # else
31
+ # ifdef LLONG_BIT
32
+ # define LLONG_MIN ((Tcl_WideInt)(Tcl_LongAsWide(1)<<(LLONG_BIT-1)))
33
+ # else
34
+ /* Assume we're on a system with a 64-bit 'long long' type */
35
+ # define LLONG_MIN ((Tcl_WideInt)(Tcl_LongAsWide(1)<<63))
36
+ # endif
37
+ # endif
38
+ /* Assume that if LLONG_MIN is undefined, then so is LLONG_MAX */
39
+ # define LLONG_MAX (~LLONG_MIN)
40
+ #endif
41
+
42
+ #define UWIDE_MAX ((Tcl_WideUInt)-1)
43
+ #define WIDE_MAX ((Tcl_WideInt)(UWIDE_MAX >> 1))
44
+ #define WIDE_MIN ((Tcl_WideInt)((Tcl_WideUInt)WIDE_MAX+1))
45
+
46
+ #endif /* _TCLPORT */
my_container_sandbox/workspace/anaconda3/include/tclThread.h ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * --------------------------------------------------------------------------
3
+ * tclthread.h --
4
+ *
5
+ * Global header file for the thread extension.
6
+ *
7
+ * Copyright (c) 2002 ActiveState Corporation.
8
+ * Copyright (c) 2002 by Zoran Vasiljevic.
9
+ *
10
+ * See the file "license.terms" for information on usage and redistribution
11
+ * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
12
+ * ---------------------------------------------------------------------------
13
+ */
14
+
15
+ /*
16
+ * Thread extension version numbers are not stored here
17
+ * because this isn't a public export file.
18
+ */
19
+
20
+ #ifndef _TCL_THREAD_H_
21
+ #define _TCL_THREAD_H_
22
+
23
+ #include <tcl.h>
24
+
25
+ /*
26
+ * Exported from threadCmd.c file.
27
+ */
28
+ #ifdef __cplusplus
29
+ extern "C" {
30
+ #endif
31
+ DLLEXPORT int Thread_Init(Tcl_Interp *interp);
32
+ #ifdef __cplusplus
33
+ }
34
+ #endif
35
+
36
+ #endif /* _TCL_THREAD_H_ */
my_container_sandbox/workspace/anaconda3/include/tdbcDecls.h ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * tdbcDecls.h --
3
+ *
4
+ * Exported Stubs declarations for Tcl DataBaseConnectivity (TDBC).
5
+ *
6
+ * This file is (mostly) generated automatically from tdbc.decls
7
+ *
8
+ * Copyright (c) 2008 by Kevin B. Kenny.
9
+ *
10
+ * See the file "license.terms" for information on usage and redistribution of
11
+ * this file, and for a DISCLAIMER OF ALL WARRANTIES.
12
+ *
13
+ * RCS: @(#) $Id$
14
+ *
15
+ */
16
+
17
+ /* !BEGIN!: Do not edit below this line. */
18
+
19
+ #define TDBC_STUBS_EPOCH 0
20
+ #define TDBC_STUBS_REVISION 3
21
+
22
+ #ifdef __cplusplus
23
+ extern "C" {
24
+ #endif
25
+
26
+ /*
27
+ * Exported function declarations:
28
+ */
29
+
30
+ /* 0 */
31
+ TDBCAPI int Tdbc_Init_ (Tcl_Interp* interp);
32
+ /* 1 */
33
+ TDBCAPI Tcl_Obj* Tdbc_TokenizeSql (Tcl_Interp* interp,
34
+ const char* statement);
35
+ /* 2 */
36
+ TDBCAPI const char* Tdbc_MapSqlState (const char* sqlstate);
37
+
38
+ typedef struct TdbcStubs {
39
+ int magic;
40
+ int epoch;
41
+ int revision;
42
+ void *hooks;
43
+
44
+ int (*tdbc_Init_) (Tcl_Interp* interp); /* 0 */
45
+ Tcl_Obj* (*tdbc_TokenizeSql) (Tcl_Interp* interp, const char* statement); /* 1 */
46
+ const char* (*tdbc_MapSqlState) (const char* sqlstate); /* 2 */
47
+ } TdbcStubs;
48
+
49
+ extern const TdbcStubs *tdbcStubsPtr;
50
+
51
+ #ifdef __cplusplus
52
+ }
53
+ #endif
54
+
55
+ #if defined(USE_TDBC_STUBS)
56
+
57
+ /*
58
+ * Inline function declarations:
59
+ */
60
+
61
+ #define Tdbc_Init_ \
62
+ (tdbcStubsPtr->tdbc_Init_) /* 0 */
63
+ #define Tdbc_TokenizeSql \
64
+ (tdbcStubsPtr->tdbc_TokenizeSql) /* 1 */
65
+ #define Tdbc_MapSqlState \
66
+ (tdbcStubsPtr->tdbc_MapSqlState) /* 2 */
67
+
68
+ #endif /* defined(USE_TDBC_STUBS) */
69
+
70
+ /* !END!: Do not edit above this line. */
my_container_sandbox/workspace/anaconda3/include/tdbcInt.h ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * tdbcInt.h --
3
+ *
4
+ * Declarations of the public API for Tcl DataBase Connectivity (TDBC)
5
+ *
6
+ * Copyright (c) 2006 by Kevin B. Kenny
7
+ *
8
+ * See the file "license.terms" for information on usage and redistribution of
9
+ * this file, and for a DISCLAIMER OF ALL WARRANTIES.
10
+ *
11
+ * RCS: @(#) $Id$
12
+ *
13
+ *-----------------------------------------------------------------------------
14
+ */
15
+ #ifndef TDBCINT_H_INCLUDED
16
+ #define TDBCINT_H_INCLUDED 1
17
+
18
+ #include "tdbc.h"
19
+
20
+ /*
21
+ * Used to tag functions that are only to be visible within the module being
22
+ * built and not outside it (where this is supported by the linker).
23
+ */
24
+
25
+ #ifndef MODULE_SCOPE
26
+ # ifdef __cplusplus
27
+ # define MODULE_SCOPE extern "C"
28
+ # else
29
+ # define MODULE_SCOPE extern
30
+ # endif
31
+ #endif
32
+
33
+ /*
34
+ * Linkage to procedures not exported from this module
35
+ */
36
+
37
+ MODULE_SCOPE int TdbcTokenizeObjCmd(ClientData clientData, Tcl_Interp* interp,
38
+ int objc, Tcl_Obj *const objv[]);
39
+
40
+ #endif
my_container_sandbox/workspace/anaconda3/include/tk.h ADDED
@@ -0,0 +1,1635 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * tk.h --
3
+ *
4
+ * Declarations for Tk-related things that are visible outside of the Tk
5
+ * module itself.
6
+ *
7
+ * Copyright (c) 1989-1994 The Regents of the University of California.
8
+ * Copyright (c) 1994 The Australian National University.
9
+ * Copyright (c) 1994-1998 Sun Microsystems, Inc.
10
+ * Copyright (c) 1998-2000 Ajuba Solutions.
11
+ *
12
+ * See the file "license.terms" for information on usage and redistribution of
13
+ * this file, and for a DISCLAIMER OF ALL WARRANTIES.
14
+ */
15
+
16
+ #ifndef _TK
17
+ #define _TK
18
+
19
+ #include <tcl.h>
20
+ #if (TCL_MAJOR_VERSION != 8) || (TCL_MINOR_VERSION < 6)
21
+ # error Tk 8.6 must be compiled with tcl.h from Tcl 8.6 or better
22
+ #endif
23
+
24
+ #ifndef CONST84
25
+ # define CONST84 const
26
+ # define CONST84_RETURN const
27
+ #endif
28
+ #ifndef CONST86
29
+ # define CONST86 CONST84
30
+ #endif
31
+ #ifndef EXTERN
32
+ # define EXTERN extern TCL_STORAGE_CLASS
33
+ #endif
34
+
35
+ /*
36
+ * Utility macros: STRINGIFY takes an argument and wraps it in "" (double
37
+ * quotation marks), JOIN joins two arguments.
38
+ */
39
+
40
+ #ifndef STRINGIFY
41
+ # define STRINGIFY(x) STRINGIFY1(x)
42
+ # define STRINGIFY1(x) #x
43
+ #endif
44
+ #ifndef JOIN
45
+ # define JOIN(a,b) JOIN1(a,b)
46
+ # define JOIN1(a,b) a##b
47
+ #endif
48
+
49
+ /*
50
+ * For C++ compilers, use extern "C"
51
+ */
52
+
53
+ #ifdef __cplusplus
54
+ extern "C" {
55
+ #endif
56
+
57
+ /*
58
+ * When version numbers change here, you must also go into the following files
59
+ * and update the version numbers:
60
+ *
61
+ * library/tk.tcl (1 LOC patch)
62
+ * unix/configure.in (2 LOC Major, 2 LOC minor, 1 LOC patch)
63
+ * win/configure.in (as above)
64
+ * README (sections 0 and 1)
65
+ * macosx/Tk-Common.xcconfig (not patchlevel) 1 LOC
66
+ * win/README (not patchlevel)
67
+ * unix/README (not patchlevel)
68
+ * unix/tk.spec (1 LOC patch)
69
+ * win/tcl.m4 (not patchlevel)
70
+ *
71
+ * You may also need to update some of these files when the numbers change for
72
+ * the version of Tcl that this release of Tk is compiled against.
73
+ */
74
+
75
+ #define TK_MAJOR_VERSION 8
76
+ #define TK_MINOR_VERSION 6
77
+ #define TK_RELEASE_LEVEL TCL_FINAL_RELEASE
78
+ #define TK_RELEASE_SERIAL 12
79
+
80
+ #define TK_VERSION "8.6"
81
+ #define TK_PATCH_LEVEL "8.6.12"
82
+
83
+ /*
84
+ * A special definition used to allow this header file to be included from
85
+ * windows or mac resource files so that they can obtain version information.
86
+ * RC_INVOKED is defined by default by the windows RC tool and manually set
87
+ * for macintosh.
88
+ *
89
+ * Resource compilers don't like all the C stuff, like typedefs and procedure
90
+ * declarations, that occur below, so block them out.
91
+ */
92
+
93
+ #ifndef RC_INVOKED
94
+
95
+ #if !defined(_XLIB_H) && !defined(_X11_XLIB_H_)
96
+ #if defined(__GNUC__) && !defined(__cplusplus)
97
+ # pragma GCC diagnostic ignored "-Wc++-compat"
98
+ #endif
99
+ # include <X11/Xlib.h>
100
+ # ifdef MAC_OSX_TK
101
+ # include <X11/X.h>
102
+ # endif
103
+ #endif
104
+ #if defined(STDC_HEADERS) || defined(__STDC__) || defined(__C99__FUNC__) \
105
+ || defined(__cplusplus) || defined(_MSC_VER) || defined(__ICC)
106
+ # include <stddef.h>
107
+ #endif
108
+
109
+ #ifdef BUILD_tk
110
+ #undef TCL_STORAGE_CLASS
111
+ #define TCL_STORAGE_CLASS DLLEXPORT
112
+ #endif
113
+
114
+ /*
115
+ *----------------------------------------------------------------------
116
+ *
117
+ * Decide whether or not to use input methods.
118
+ */
119
+
120
+ #ifdef XNQueryInputStyle
121
+ #define TK_USE_INPUT_METHODS
122
+ #endif
123
+
124
+ /*
125
+ * Dummy types that are used by clients:
126
+ */
127
+
128
+ #define Tk_ImageModel Tk_ImageMaster
129
+ typedef struct Tk_BindingTable_ *Tk_BindingTable;
130
+ typedef struct Tk_Canvas_ *Tk_Canvas;
131
+ typedef struct Tk_Cursor_ *Tk_Cursor;
132
+ typedef struct Tk_ErrorHandler_ *Tk_ErrorHandler;
133
+ typedef struct Tk_Font_ *Tk_Font;
134
+ typedef struct Tk_Image__ *Tk_Image;
135
+ typedef struct Tk_ImageMaster_ *Tk_ImageMaster;
136
+ typedef struct Tk_OptionTable_ *Tk_OptionTable;
137
+ typedef struct Tk_PostscriptInfo_ *Tk_PostscriptInfo;
138
+ typedef struct Tk_TextLayout_ *Tk_TextLayout;
139
+ typedef struct Tk_Window_ *Tk_Window;
140
+ typedef struct Tk_3DBorder_ *Tk_3DBorder;
141
+ typedef struct Tk_Style_ *Tk_Style;
142
+ typedef struct Tk_StyleEngine_ *Tk_StyleEngine;
143
+ typedef struct Tk_StyledElement_ *Tk_StyledElement;
144
+
145
+ /*
146
+ * Additional types exported to clients.
147
+ */
148
+
149
+ typedef const char *Tk_Uid;
150
+
151
+ /*
152
+ *----------------------------------------------------------------------
153
+ *
154
+ * The enum below defines the valid types for Tk configuration options as
155
+ * implemented by Tk_InitOptions, Tk_SetOptions, etc.
156
+ */
157
+
158
+ typedef enum {
159
+ TK_OPTION_BOOLEAN,
160
+ TK_OPTION_INT,
161
+ TK_OPTION_DOUBLE,
162
+ TK_OPTION_STRING,
163
+ TK_OPTION_STRING_TABLE,
164
+ TK_OPTION_COLOR,
165
+ TK_OPTION_FONT,
166
+ TK_OPTION_BITMAP,
167
+ TK_OPTION_BORDER,
168
+ TK_OPTION_RELIEF,
169
+ TK_OPTION_CURSOR,
170
+ TK_OPTION_JUSTIFY,
171
+ TK_OPTION_ANCHOR,
172
+ TK_OPTION_SYNONYM,
173
+ TK_OPTION_PIXELS,
174
+ TK_OPTION_WINDOW,
175
+ TK_OPTION_END,
176
+ TK_OPTION_CUSTOM,
177
+ TK_OPTION_STYLE
178
+ } Tk_OptionType;
179
+
180
+ /*
181
+ * Structures of the following type are used by widgets to specify their
182
+ * configuration options. Typically each widget has a static array of these
183
+ * structures, where each element of the array describes a single
184
+ * configuration option. The array is passed to Tk_CreateOptionTable.
185
+ */
186
+
187
+ typedef struct Tk_OptionSpec {
188
+ Tk_OptionType type; /* Type of option, such as TK_OPTION_COLOR;
189
+ * see definitions above. Last option in table
190
+ * must have type TK_OPTION_END. */
191
+ const char *optionName; /* Name used to specify option in Tcl
192
+ * commands. */
193
+ const char *dbName; /* Name for option in option database. */
194
+ const char *dbClass; /* Class for option in database. */
195
+ const char *defValue; /* Default value for option if not specified
196
+ * in command line, the option database, or
197
+ * the system. */
198
+ int objOffset; /* Where in record to store a Tcl_Obj * that
199
+ * holds the value of this option, specified
200
+ * as an offset in bytes from the start of the
201
+ * record. Use the Tk_Offset macro to generate
202
+ * values for this. -1 means don't store the
203
+ * Tcl_Obj in the record. */
204
+ int internalOffset; /* Where in record to store the internal
205
+ * representation of the value of this option,
206
+ * such as an int or XColor *. This field is
207
+ * specified as an offset in bytes from the
208
+ * start of the record. Use the Tk_Offset
209
+ * macro to generate values for it. -1 means
210
+ * don't store the internal representation in
211
+ * the record. */
212
+ int flags; /* Any combination of the values defined
213
+ * below. */
214
+ const void *clientData; /* An alternate place to put option-specific
215
+ * data. Used for the monochrome default value
216
+ * for colors, etc. */
217
+ int typeMask; /* An arbitrary bit mask defined by the class
218
+ * manager; typically bits correspond to
219
+ * certain kinds of options such as all those
220
+ * that require a redisplay when they change.
221
+ * Tk_SetOptions returns the bit-wise OR of
222
+ * the typeMasks of all options that were
223
+ * changed. */
224
+ } Tk_OptionSpec;
225
+
226
+ /*
227
+ * Flag values for Tk_OptionSpec structures. These flags are shared by
228
+ * Tk_ConfigSpec structures, so be sure to coordinate any changes carefully.
229
+ */
230
+
231
+ #define TK_OPTION_NULL_OK (1 << 0)
232
+ #define TK_OPTION_DONT_SET_DEFAULT (1 << 3)
233
+
234
+ /*
235
+ * The following structure and function types are used by TK_OPTION_CUSTOM
236
+ * options; the structure holds pointers to the functions needed by the Tk
237
+ * option config code to handle a custom option.
238
+ */
239
+
240
+ typedef int (Tk_CustomOptionSetProc) (ClientData clientData,
241
+ Tcl_Interp *interp, Tk_Window tkwin, Tcl_Obj **value, char *widgRec,
242
+ int offset, char *saveInternalPtr, int flags);
243
+ typedef Tcl_Obj *(Tk_CustomOptionGetProc) (ClientData clientData,
244
+ Tk_Window tkwin, char *widgRec, int offset);
245
+ typedef void (Tk_CustomOptionRestoreProc) (ClientData clientData,
246
+ Tk_Window tkwin, char *internalPtr, char *saveInternalPtr);
247
+ typedef void (Tk_CustomOptionFreeProc) (ClientData clientData, Tk_Window tkwin,
248
+ char *internalPtr);
249
+
250
+ typedef struct Tk_ObjCustomOption {
251
+ const char *name; /* Name of the custom option. */
252
+ Tk_CustomOptionSetProc *setProc;
253
+ /* Function to use to set a record's option
254
+ * value from a Tcl_Obj */
255
+ Tk_CustomOptionGetProc *getProc;
256
+ /* Function to use to get a Tcl_Obj
257
+ * representation from an internal
258
+ * representation of an option. */
259
+ Tk_CustomOptionRestoreProc *restoreProc;
260
+ /* Function to use to restore a saved value
261
+ * for the internal representation. */
262
+ Tk_CustomOptionFreeProc *freeProc;
263
+ /* Function to use to free the internal
264
+ * representation of an option. */
265
+ ClientData clientData; /* Arbitrary one-word value passed to the
266
+ * handling procs. */
267
+ } Tk_ObjCustomOption;
268
+
269
+ /*
270
+ * Macro to use to fill in "offset" fields of the Tk_OptionSpec structure.
271
+ * Computes number of bytes from beginning of structure to a given field.
272
+ */
273
+
274
+ #define Tk_Offset(type, field) ((int) offsetof(type, field))
275
+ /* Workaround for platforms missing offsetof(), e.g. VC++ 6.0 */
276
+ #ifndef offsetof
277
+ # define offsetof(type, field) ((size_t) ((char *) &((type *) 0)->field))
278
+ #endif
279
+
280
+ /*
281
+ * The following two structures are used for error handling. When config
282
+ * options are being modified, the old values are saved in a Tk_SavedOptions
283
+ * structure. If an error occurs, then the contents of the structure can be
284
+ * used to restore all of the old values. The contents of this structure are
285
+ * for the private use Tk. No-one outside Tk should ever read or write any of
286
+ * the fields of these structures.
287
+ */
288
+
289
+ typedef struct Tk_SavedOption {
290
+ struct TkOption *optionPtr; /* Points to information that describes the
291
+ * option. */
292
+ Tcl_Obj *valuePtr; /* The old value of the option, in the form of
293
+ * a Tcl object; may be NULL if the value was
294
+ * not saved as an object. */
295
+ double internalForm; /* The old value of the option, in some
296
+ * internal representation such as an int or
297
+ * (XColor *). Valid only if the field
298
+ * optionPtr->specPtr->objOffset is < 0. The
299
+ * space must be large enough to accommodate a
300
+ * double, a long, or a pointer; right now it
301
+ * looks like a double (i.e., 8 bytes) is big
302
+ * enough. Also, using a double guarantees
303
+ * that the field is properly aligned for
304
+ * storing large values. */
305
+ } Tk_SavedOption;
306
+
307
+ #ifdef TCL_MEM_DEBUG
308
+ # define TK_NUM_SAVED_OPTIONS 2
309
+ #else
310
+ # define TK_NUM_SAVED_OPTIONS 20
311
+ #endif
312
+
313
+ typedef struct Tk_SavedOptions {
314
+ char *recordPtr; /* The data structure in which to restore
315
+ * configuration options. */
316
+ Tk_Window tkwin; /* Window associated with recordPtr; needed to
317
+ * restore certain options. */
318
+ int numItems; /* The number of valid items in items field. */
319
+ Tk_SavedOption items[TK_NUM_SAVED_OPTIONS];
320
+ /* Items used to hold old values. */
321
+ struct Tk_SavedOptions *nextPtr;
322
+ /* Points to next structure in list; needed if
323
+ * too many options changed to hold all the
324
+ * old values in a single structure. NULL
325
+ * means no more structures. */
326
+ } Tk_SavedOptions;
327
+
328
+ /*
329
+ * Structure used to describe application-specific configuration options:
330
+ * indicates procedures to call to parse an option and to return a text string
331
+ * describing an option. THESE ARE DEPRECATED; PLEASE USE THE NEW STRUCTURES
332
+ * LISTED ABOVE.
333
+ */
334
+
335
+ /*
336
+ * This is a temporary flag used while tkObjConfig and new widgets are in
337
+ * development.
338
+ */
339
+
340
+ #ifndef __NO_OLD_CONFIG
341
+
342
+ typedef int (Tk_OptionParseProc) (ClientData clientData, Tcl_Interp *interp,
343
+ Tk_Window tkwin, CONST84 char *value, char *widgRec, int offset);
344
+ typedef CONST86 char *(Tk_OptionPrintProc) (ClientData clientData,
345
+ Tk_Window tkwin, char *widgRec, int offset, Tcl_FreeProc **freeProcPtr);
346
+
347
+ typedef struct Tk_CustomOption {
348
+ Tk_OptionParseProc *parseProc;
349
+ /* Procedure to call to parse an option and
350
+ * store it in converted form. */
351
+ Tk_OptionPrintProc *printProc;
352
+ /* Procedure to return a printable string
353
+ * describing an existing option. */
354
+ ClientData clientData; /* Arbitrary one-word value used by option
355
+ * parser: passed to parseProc and
356
+ * printProc. */
357
+ } Tk_CustomOption;
358
+
359
+ /*
360
+ * Structure used to specify information for Tk_ConfigureWidget. Each
361
+ * structure gives complete information for one option, including how the
362
+ * option is specified on the command line, where it appears in the option
363
+ * database, etc.
364
+ */
365
+
366
+ typedef struct Tk_ConfigSpec {
367
+ int type; /* Type of option, such as TK_CONFIG_COLOR;
368
+ * see definitions below. Last option in table
369
+ * must have type TK_CONFIG_END. */
370
+ CONST86 char *argvName; /* Switch used to specify option in argv. NULL
371
+ * means this spec is part of a group. */
372
+ Tk_Uid dbName; /* Name for option in option database. */
373
+ Tk_Uid dbClass; /* Class for option in database. */
374
+ Tk_Uid defValue; /* Default value for option if not specified
375
+ * in command line or database. */
376
+ int offset; /* Where in widget record to store value; use
377
+ * Tk_Offset macro to generate values for
378
+ * this. */
379
+ int specFlags; /* Any combination of the values defined
380
+ * below; other bits are used internally by
381
+ * tkConfig.c. */
382
+ CONST86 Tk_CustomOption *customPtr;
383
+ /* If type is TK_CONFIG_CUSTOM then this is a
384
+ * pointer to info about how to parse and
385
+ * print the option. Otherwise it is
386
+ * irrelevant. */
387
+ } Tk_ConfigSpec;
388
+
389
+ /*
390
+ * Type values for Tk_ConfigSpec structures. See the user documentation for
391
+ * details.
392
+ */
393
+
394
+ typedef enum {
395
+ TK_CONFIG_BOOLEAN, TK_CONFIG_INT, TK_CONFIG_DOUBLE, TK_CONFIG_STRING,
396
+ TK_CONFIG_UID, TK_CONFIG_COLOR, TK_CONFIG_FONT, TK_CONFIG_BITMAP,
397
+ TK_CONFIG_BORDER, TK_CONFIG_RELIEF, TK_CONFIG_CURSOR,
398
+ TK_CONFIG_ACTIVE_CURSOR, TK_CONFIG_JUSTIFY, TK_CONFIG_ANCHOR,
399
+ TK_CONFIG_SYNONYM, TK_CONFIG_CAP_STYLE, TK_CONFIG_JOIN_STYLE,
400
+ TK_CONFIG_PIXELS, TK_CONFIG_MM, TK_CONFIG_WINDOW, TK_CONFIG_CUSTOM,
401
+ TK_CONFIG_END
402
+ } Tk_ConfigTypes;
403
+
404
+ /*
405
+ * Possible values for flags argument to Tk_ConfigureWidget:
406
+ */
407
+
408
+ #define TK_CONFIG_ARGV_ONLY 1
409
+ #define TK_CONFIG_OBJS 0x80
410
+
411
+ /*
412
+ * Possible flag values for Tk_ConfigSpec structures. Any bits at or above
413
+ * TK_CONFIG_USER_BIT may be used by clients for selecting certain entries.
414
+ * Before changing any values here, coordinate with tkOldConfig.c
415
+ * (internal-use-only flags are defined there).
416
+ */
417
+
418
+ #define TK_CONFIG_NULL_OK (1 << 0)
419
+ #define TK_CONFIG_COLOR_ONLY (1 << 1)
420
+ #define TK_CONFIG_MONO_ONLY (1 << 2)
421
+ #define TK_CONFIG_DONT_SET_DEFAULT (1 << 3)
422
+ #define TK_CONFIG_OPTION_SPECIFIED (1 << 4)
423
+ #define TK_CONFIG_USER_BIT 0x100
424
+ #endif /* __NO_OLD_CONFIG */
425
+
426
+ /*
427
+ * Structure used to specify how to handle argv options.
428
+ */
429
+
430
+ typedef struct {
431
+ CONST86 char *key; /* The key string that flags the option in the
432
+ * argv array. */
433
+ int type; /* Indicates option type; see below. */
434
+ char *src; /* Value to be used in setting dst; usage
435
+ * depends on type. */
436
+ char *dst; /* Address of value to be modified; usage
437
+ * depends on type. */
438
+ CONST86 char *help; /* Documentation message describing this
439
+ * option. */
440
+ } Tk_ArgvInfo;
441
+
442
+ /*
443
+ * Legal values for the type field of a Tk_ArgvInfo: see the user
444
+ * documentation for details.
445
+ */
446
+
447
+ #define TK_ARGV_CONSTANT 15
448
+ #define TK_ARGV_INT 16
449
+ #define TK_ARGV_STRING 17
450
+ #define TK_ARGV_UID 18
451
+ #define TK_ARGV_REST 19
452
+ #define TK_ARGV_FLOAT 20
453
+ #define TK_ARGV_FUNC 21
454
+ #define TK_ARGV_GENFUNC 22
455
+ #define TK_ARGV_HELP 23
456
+ #define TK_ARGV_CONST_OPTION 24
457
+ #define TK_ARGV_OPTION_VALUE 25
458
+ #define TK_ARGV_OPTION_NAME_VALUE 26
459
+ #define TK_ARGV_END 27
460
+
461
+ /*
462
+ * Flag bits for passing to Tk_ParseArgv:
463
+ */
464
+
465
+ #define TK_ARGV_NO_DEFAULTS 0x1
466
+ #define TK_ARGV_NO_LEFTOVERS 0x2
467
+ #define TK_ARGV_NO_ABBREV 0x4
468
+ #define TK_ARGV_DONT_SKIP_FIRST_ARG 0x8
469
+
470
+ /*
471
+ * Enumerated type for describing actions to be taken in response to a
472
+ * restrictProc established by Tk_RestrictEvents.
473
+ */
474
+
475
+ typedef enum {
476
+ TK_DEFER_EVENT, TK_PROCESS_EVENT, TK_DISCARD_EVENT
477
+ } Tk_RestrictAction;
478
+
479
+ /*
480
+ * Priority levels to pass to Tk_AddOption:
481
+ */
482
+
483
+ #define TK_WIDGET_DEFAULT_PRIO 20
484
+ #define TK_STARTUP_FILE_PRIO 40
485
+ #define TK_USER_DEFAULT_PRIO 60
486
+ #define TK_INTERACTIVE_PRIO 80
487
+ #define TK_MAX_PRIO 100
488
+
489
+ /*
490
+ * Relief values returned by Tk_GetRelief:
491
+ */
492
+
493
+ #define TK_RELIEF_NULL -1
494
+ #define TK_RELIEF_FLAT 0
495
+ #define TK_RELIEF_GROOVE 1
496
+ #define TK_RELIEF_RAISED 2
497
+ #define TK_RELIEF_RIDGE 3
498
+ #define TK_RELIEF_SOLID 4
499
+ #define TK_RELIEF_SUNKEN 5
500
+
501
+ /*
502
+ * "Which" argument values for Tk_3DBorderGC:
503
+ */
504
+
505
+ #define TK_3D_FLAT_GC 1
506
+ #define TK_3D_LIGHT_GC 2
507
+ #define TK_3D_DARK_GC 3
508
+
509
+ /*
510
+ * Special EnterNotify/LeaveNotify "mode" for use in events generated by
511
+ * tkShare.c. Pick a high enough value that it's unlikely to conflict with
512
+ * existing values (like NotifyNormal) or any new values defined in the
513
+ * future.
514
+ */
515
+
516
+ #define TK_NOTIFY_SHARE 20
517
+
518
+ /*
519
+ * Enumerated type for describing a point by which to anchor something:
520
+ */
521
+
522
+ typedef enum {
523
+ TK_ANCHOR_N, TK_ANCHOR_NE, TK_ANCHOR_E, TK_ANCHOR_SE,
524
+ TK_ANCHOR_S, TK_ANCHOR_SW, TK_ANCHOR_W, TK_ANCHOR_NW,
525
+ TK_ANCHOR_CENTER
526
+ } Tk_Anchor;
527
+
528
+ /*
529
+ * Enumerated type for describing a style of justification:
530
+ */
531
+
532
+ typedef enum {
533
+ TK_JUSTIFY_LEFT, TK_JUSTIFY_RIGHT, TK_JUSTIFY_CENTER
534
+ } Tk_Justify;
535
+
536
+ /*
537
+ * The following structure is used by Tk_GetFontMetrics() to return
538
+ * information about the properties of a Tk_Font.
539
+ */
540
+
541
+ typedef struct Tk_FontMetrics {
542
+ int ascent; /* The amount in pixels that the tallest
543
+ * letter sticks up above the baseline, plus
544
+ * any extra blank space added by the designer
545
+ * of the font. */
546
+ int descent; /* The largest amount in pixels that any
547
+ * letter sticks below the baseline, plus any
548
+ * extra blank space added by the designer of
549
+ * the font. */
550
+ int linespace; /* The sum of the ascent and descent. How far
551
+ * apart two lines of text in the same font
552
+ * should be placed so that none of the
553
+ * characters in one line overlap any of the
554
+ * characters in the other line. */
555
+ } Tk_FontMetrics;
556
+
557
+ /*
558
+ * Flags passed to Tk_MeasureChars:
559
+ */
560
+
561
+ #define TK_WHOLE_WORDS 1
562
+ #define TK_AT_LEAST_ONE 2
563
+ #define TK_PARTIAL_OK 4
564
+
565
+ /*
566
+ * Flags passed to Tk_ComputeTextLayout:
567
+ */
568
+
569
+ #define TK_IGNORE_TABS 8
570
+ #define TK_IGNORE_NEWLINES 16
571
+
572
+ /*
573
+ * Widget class procedures used to implement platform specific widget
574
+ * behavior.
575
+ */
576
+
577
+ typedef Window (Tk_ClassCreateProc) (Tk_Window tkwin, Window parent,
578
+ ClientData instanceData);
579
+ typedef void (Tk_ClassWorldChangedProc) (ClientData instanceData);
580
+ typedef void (Tk_ClassModalProc) (Tk_Window tkwin, XEvent *eventPtr);
581
+
582
+ typedef struct Tk_ClassProcs {
583
+ unsigned int size;
584
+ Tk_ClassWorldChangedProc *worldChangedProc;
585
+ /* Procedure to invoke when the widget needs
586
+ * to respond in some way to a change in the
587
+ * world (font changes, etc.) */
588
+ Tk_ClassCreateProc *createProc;
589
+ /* Procedure to invoke when the platform-
590
+ * dependent window needs to be created. */
591
+ Tk_ClassModalProc *modalProc;
592
+ /* Procedure to invoke after all bindings on a
593
+ * widget have been triggered in order to
594
+ * handle a modal loop. */
595
+ } Tk_ClassProcs;
596
+
597
+ /*
598
+ * Simple accessor for Tk_ClassProcs structure. Checks that the structure is
599
+ * not NULL, then checks the size field and returns either the requested
600
+ * field, if present, or NULL if the structure is too small to have the field
601
+ * (or NULL if the structure is NULL).
602
+ *
603
+ * A more general version of this function may be useful if other
604
+ * size-versioned structure pop up in the future:
605
+ *
606
+ * #define Tk_GetField(name, who, which) \
607
+ * (((who) == NULL) ? NULL :
608
+ * (((who)->size <= Tk_Offset(name, which)) ? NULL :(name)->which))
609
+ */
610
+
611
+ #define Tk_GetClassProc(procs, which) \
612
+ (((procs) == NULL) ? NULL : \
613
+ (((procs)->size <= Tk_Offset(Tk_ClassProcs, which)) ? NULL:(procs)->which))
614
+
615
+ /*
616
+ * Each geometry manager (the packer, the placer, etc.) is represented by a
617
+ * structure of the following form, which indicates procedures to invoke in
618
+ * the geometry manager to carry out certain functions.
619
+ */
620
+
621
+ #define Tk_GeomLostContentProc Tk_GeomLostSlaveProc
622
+ typedef void (Tk_GeomRequestProc) (ClientData clientData, Tk_Window tkwin);
623
+ typedef void (Tk_GeomLostContentProc) (ClientData clientData, Tk_Window tkwin);
624
+
625
+ typedef struct Tk_GeomMgr {
626
+ const char *name; /* Name of the geometry manager (command used
627
+ * to invoke it, or name of widget class that
628
+ * allows embedded widgets). */
629
+ Tk_GeomRequestProc *requestProc;
630
+ /* Procedure to invoke when a content's
631
+ * requested geometry changes. */
632
+ Tk_GeomLostContentProc *lostSlaveProc;
633
+ /* Procedure to invoke when content is taken
634
+ * away from one geometry manager by another.
635
+ * NULL means geometry manager doesn't care
636
+ * when content lost. */
637
+ } Tk_GeomMgr;
638
+
639
+ /*
640
+ * Result values returned by Tk_GetScrollInfo:
641
+ */
642
+
643
+ #define TK_SCROLL_MOVETO 1
644
+ #define TK_SCROLL_PAGES 2
645
+ #define TK_SCROLL_UNITS 3
646
+ #define TK_SCROLL_ERROR 4
647
+
648
+ /*
649
+ *----------------------------------------------------------------------
650
+ *
651
+ * Extensions to the X event set
652
+ *
653
+ *----------------------------------------------------------------------
654
+ */
655
+
656
+ #define VirtualEvent (MappingNotify + 1)
657
+ #define ActivateNotify (MappingNotify + 2)
658
+ #define DeactivateNotify (MappingNotify + 3)
659
+ #define MouseWheelEvent (MappingNotify + 4)
660
+ #define TK_LASTEVENT (MappingNotify + 5)
661
+
662
+ #define MouseWheelMask (1L << 28)
663
+ #define ActivateMask (1L << 29)
664
+ #define VirtualEventMask (1L << 30)
665
+
666
+ /*
667
+ * A virtual event shares most of its fields with the XKeyEvent and
668
+ * XButtonEvent structures. 99% of the time a virtual event will be an
669
+ * abstraction of a key or button event, so this structure provides the most
670
+ * information to the user. The only difference is the changing of the detail
671
+ * field for a virtual event so that it holds the name of the virtual event
672
+ * being triggered.
673
+ *
674
+ * When using this structure, you should ensure that you zero out all the
675
+ * fields first using memset() or bzero().
676
+ */
677
+
678
+ typedef struct {
679
+ int type;
680
+ unsigned long serial; /* # of last request processed by server. */
681
+ Bool send_event; /* True if this came from a SendEvent
682
+ * request. */
683
+ Display *display; /* Display the event was read from. */
684
+ Window event; /* Window on which event was requested. */
685
+ Window root; /* Root window that the event occurred on. */
686
+ Window subwindow; /* Child window. */
687
+ Time time; /* Milliseconds. */
688
+ int x, y; /* Pointer x, y coordinates in event
689
+ * window. */
690
+ int x_root, y_root; /* Coordinates relative to root. */
691
+ unsigned int state; /* Key or button mask */
692
+ Tk_Uid name; /* Name of virtual event. */
693
+ Bool same_screen; /* Same screen flag. */
694
+ Tcl_Obj *user_data; /* Application-specific data reference; Tk
695
+ * will decrement the reference count *once*
696
+ * when it has finished processing the
697
+ * event. */
698
+ } XVirtualEvent;
699
+
700
+ typedef struct {
701
+ int type;
702
+ unsigned long serial; /* # of last request processed by server. */
703
+ Bool send_event; /* True if this came from a SendEvent
704
+ * request. */
705
+ Display *display; /* Display the event was read from. */
706
+ Window window; /* Window in which event occurred. */
707
+ } XActivateDeactivateEvent;
708
+ typedef XActivateDeactivateEvent XActivateEvent;
709
+ typedef XActivateDeactivateEvent XDeactivateEvent;
710
+
711
+ /*
712
+ *----------------------------------------------------------------------
713
+ *
714
+ * Macros for querying Tk_Window structures. See the manual entries for
715
+ * documentation.
716
+ *
717
+ *----------------------------------------------------------------------
718
+ */
719
+
720
+ #define Tk_Display(tkwin) (((Tk_FakeWin *) (tkwin))->display)
721
+ #define Tk_ScreenNumber(tkwin) (((Tk_FakeWin *) (tkwin))->screenNum)
722
+ #define Tk_Screen(tkwin) \
723
+ (ScreenOfDisplay(Tk_Display(tkwin), Tk_ScreenNumber(tkwin)))
724
+ #define Tk_Depth(tkwin) (((Tk_FakeWin *) (tkwin))->depth)
725
+ #define Tk_Visual(tkwin) (((Tk_FakeWin *) (tkwin))->visual)
726
+ #define Tk_WindowId(tkwin) (((Tk_FakeWin *) (tkwin))->window)
727
+ #define Tk_PathName(tkwin) (((Tk_FakeWin *) (tkwin))->pathName)
728
+ #define Tk_Name(tkwin) (((Tk_FakeWin *) (tkwin))->nameUid)
729
+ #define Tk_Class(tkwin) (((Tk_FakeWin *) (tkwin))->classUid)
730
+ #define Tk_X(tkwin) (((Tk_FakeWin *) (tkwin))->changes.x)
731
+ #define Tk_Y(tkwin) (((Tk_FakeWin *) (tkwin))->changes.y)
732
+ #define Tk_Width(tkwin) (((Tk_FakeWin *) (tkwin))->changes.width)
733
+ #define Tk_Height(tkwin) \
734
+ (((Tk_FakeWin *) (tkwin))->changes.height)
735
+ #define Tk_Changes(tkwin) (&((Tk_FakeWin *) (tkwin))->changes)
736
+ #define Tk_Attributes(tkwin) (&((Tk_FakeWin *) (tkwin))->atts)
737
+ #define Tk_IsEmbedded(tkwin) \
738
+ (((Tk_FakeWin *) (tkwin))->flags & TK_EMBEDDED)
739
+ #define Tk_IsContainer(tkwin) \
740
+ (((Tk_FakeWin *) (tkwin))->flags & TK_CONTAINER)
741
+ #define Tk_IsMapped(tkwin) \
742
+ (((Tk_FakeWin *) (tkwin))->flags & TK_MAPPED)
743
+ #define Tk_IsTopLevel(tkwin) \
744
+ (((Tk_FakeWin *) (tkwin))->flags & TK_TOP_LEVEL)
745
+ #define Tk_HasWrapper(tkwin) \
746
+ (((Tk_FakeWin *) (tkwin))->flags & TK_HAS_WRAPPER)
747
+ #define Tk_WinManaged(tkwin) \
748
+ (((Tk_FakeWin *) (tkwin))->flags & TK_WIN_MANAGED)
749
+ #define Tk_TopWinHierarchy(tkwin) \
750
+ (((Tk_FakeWin *) (tkwin))->flags & TK_TOP_HIERARCHY)
751
+ #define Tk_IsManageable(tkwin) \
752
+ (((Tk_FakeWin *) (tkwin))->flags & TK_WM_MANAGEABLE)
753
+ #define Tk_ReqWidth(tkwin) (((Tk_FakeWin *) (tkwin))->reqWidth)
754
+ #define Tk_ReqHeight(tkwin) (((Tk_FakeWin *) (tkwin))->reqHeight)
755
+ /* Tk_InternalBorderWidth is deprecated */
756
+ #define Tk_InternalBorderWidth(tkwin) \
757
+ (((Tk_FakeWin *) (tkwin))->internalBorderLeft)
758
+ #define Tk_InternalBorderLeft(tkwin) \
759
+ (((Tk_FakeWin *) (tkwin))->internalBorderLeft)
760
+ #define Tk_InternalBorderRight(tkwin) \
761
+ (((Tk_FakeWin *) (tkwin))->internalBorderRight)
762
+ #define Tk_InternalBorderTop(tkwin) \
763
+ (((Tk_FakeWin *) (tkwin))->internalBorderTop)
764
+ #define Tk_InternalBorderBottom(tkwin) \
765
+ (((Tk_FakeWin *) (tkwin))->internalBorderBottom)
766
+ #define Tk_MinReqWidth(tkwin) (((Tk_FakeWin *) (tkwin))->minReqWidth)
767
+ #define Tk_MinReqHeight(tkwin) (((Tk_FakeWin *) (tkwin))->minReqHeight)
768
+ #define Tk_Parent(tkwin) (((Tk_FakeWin *) (tkwin))->parentPtr)
769
+ #define Tk_Colormap(tkwin) (((Tk_FakeWin *) (tkwin))->atts.colormap)
770
+
771
+ /*
772
+ * The structure below is needed by the macros above so that they can access
773
+ * the fields of a Tk_Window. The fields not needed by the macros are declared
774
+ * as "dummyX". The structure has its own type in order to prevent apps from
775
+ * accessing Tk_Window fields except using official macros. WARNING!! The
776
+ * structure definition must be kept consistent with the TkWindow structure in
777
+ * tkInt.h. If you change one, then change the other. See the declaration in
778
+ * tkInt.h for documentation on what the fields are used for internally.
779
+ */
780
+
781
+ typedef struct Tk_FakeWin {
782
+ Display *display;
783
+ char *dummy1; /* dispPtr */
784
+ int screenNum;
785
+ Visual *visual;
786
+ int depth;
787
+ Window window;
788
+ char *dummy2; /* childList */
789
+ char *dummy3; /* lastChildPtr */
790
+ Tk_Window parentPtr; /* parentPtr */
791
+ char *dummy4; /* nextPtr */
792
+ char *dummy5; /* mainPtr */
793
+ char *pathName;
794
+ Tk_Uid nameUid;
795
+ Tk_Uid classUid;
796
+ XWindowChanges changes;
797
+ unsigned int dummy6; /* dirtyChanges */
798
+ XSetWindowAttributes atts;
799
+ unsigned long dummy7; /* dirtyAtts */
800
+ unsigned int flags;
801
+ char *dummy8; /* handlerList */
802
+ #ifdef TK_USE_INPUT_METHODS
803
+ XIC dummy9; /* inputContext */
804
+ #endif /* TK_USE_INPUT_METHODS */
805
+ ClientData *dummy10; /* tagPtr */
806
+ int dummy11; /* numTags */
807
+ int dummy12; /* optionLevel */
808
+ char *dummy13; /* selHandlerList */
809
+ char *dummy14; /* geomMgrPtr */
810
+ ClientData dummy15; /* geomData */
811
+ int reqWidth, reqHeight;
812
+ int internalBorderLeft;
813
+ char *dummy16; /* wmInfoPtr */
814
+ char *dummy17; /* classProcPtr */
815
+ ClientData dummy18; /* instanceData */
816
+ char *dummy19; /* privatePtr */
817
+ int internalBorderRight;
818
+ int internalBorderTop;
819
+ int internalBorderBottom;
820
+ int minReqWidth;
821
+ int minReqHeight;
822
+ #ifdef TK_USE_INPUT_METHODS
823
+ int dummy20;
824
+ #endif /* TK_USE_INPUT_METHODS */
825
+ char *dummy21; /* geomMgrName */
826
+ Tk_Window dummy22; /* maintainerPtr */
827
+ } Tk_FakeWin;
828
+
829
+ /*
830
+ * Flag values for TkWindow (and Tk_FakeWin) structures are:
831
+ *
832
+ * TK_MAPPED: 1 means window is currently mapped,
833
+ * 0 means unmapped.
834
+ * TK_TOP_LEVEL: 1 means this is a top-level widget.
835
+ * TK_ALREADY_DEAD: 1 means the window is in the process of
836
+ * being destroyed already.
837
+ * TK_NEED_CONFIG_NOTIFY: 1 means that the window has been reconfigured
838
+ * before it was made to exist. At the time of
839
+ * making it exist a ConfigureNotify event needs
840
+ * to be generated.
841
+ * TK_GRAB_FLAG: Used to manage grabs. See tkGrab.c for details
842
+ * TK_CHECKED_IC: 1 means we've already tried to get an input
843
+ * context for this window; if the ic field is
844
+ * NULL it means that there isn't a context for
845
+ * the field.
846
+ * TK_DONT_DESTROY_WINDOW: 1 means that Tk_DestroyWindow should not
847
+ * invoke XDestroyWindow to destroy this widget's
848
+ * X window. The flag is set when the window has
849
+ * already been destroyed elsewhere (e.g. by
850
+ * another application) or when it will be
851
+ * destroyed later (e.g. by destroying its parent)
852
+ * TK_WM_COLORMAP_WINDOW: 1 means that this window has at some time
853
+ * appeared in the WM_COLORMAP_WINDOWS property
854
+ * for its toplevel, so we have to remove it from
855
+ * that property if the window is deleted and the
856
+ * toplevel isn't.
857
+ * TK_EMBEDDED: 1 means that this window (which must be a
858
+ * toplevel) is not a free-standing window but
859
+ * rather is embedded in some other application.
860
+ * TK_CONTAINER: 1 means that this window is a container, and
861
+ * that some other application (either in this
862
+ * process or elsewhere) may be embedding itself
863
+ * inside the window.
864
+ * TK_BOTH_HALVES: 1 means that this window is used for
865
+ * application embedding (either as container or
866
+ * embedded application), and both the containing
867
+ * and embedded halves are associated with
868
+ * windows in this particular process.
869
+ * TK_WRAPPER: 1 means that this window is the extra wrapper
870
+ * window created around a toplevel to hold the
871
+ * menubar under Unix. See tkUnixWm.c for more
872
+ * information.
873
+ * TK_REPARENTED: 1 means that this window has been reparented
874
+ * so that as far as the window system is
875
+ * concerned it isn't a child of its Tk parent.
876
+ * Initially this is used only for special Unix
877
+ * menubar windows.
878
+ * TK_ANONYMOUS_WINDOW: 1 means that this window has no name, and is
879
+ * thus not accessible from Tk.
880
+ * TK_HAS_WRAPPER 1 means that this window has a wrapper window
881
+ * TK_WIN_MANAGED 1 means that this window is a child of the root
882
+ * window, and is managed by the window manager.
883
+ * TK_TOP_HIERARCHY 1 means this window is at the top of a physical
884
+ * window hierarchy within this process, i.e. the
885
+ * window's parent either doesn't exist or is not
886
+ * owned by this Tk application.
887
+ * TK_PROP_PROPCHANGE 1 means that PropertyNotify events in the
888
+ * window's children should propagate up to this
889
+ * window.
890
+ * TK_WM_MANAGEABLE 1 marks a window as capable of being converted
891
+ * into a toplevel using [wm manage].
892
+ * TK_CAN_INPUT_TEXT 1 means that this window accepts text input.
893
+ * Used on macOS to indicate that key events can be
894
+ * processed with the NSTextInputClient protocol.
895
+ * Not currently accessible through the public API.
896
+ */
897
+
898
+ #define TK_MAPPED 1
899
+ #define TK_TOP_LEVEL 2
900
+ #define TK_ALREADY_DEAD 4
901
+ #define TK_NEED_CONFIG_NOTIFY 8
902
+ #define TK_GRAB_FLAG 0x10
903
+ #define TK_CHECKED_IC 0x20
904
+ #define TK_DONT_DESTROY_WINDOW 0x40
905
+ #define TK_WM_COLORMAP_WINDOW 0x80
906
+ #define TK_EMBEDDED 0x100
907
+ #define TK_CONTAINER 0x200
908
+ #define TK_BOTH_HALVES 0x400
909
+
910
+ #define TK_WRAPPER 0x1000
911
+ #define TK_REPARENTED 0x2000
912
+ #define TK_ANONYMOUS_WINDOW 0x4000
913
+ #define TK_HAS_WRAPPER 0x8000
914
+ #define TK_WIN_MANAGED 0x10000
915
+ #define TK_TOP_HIERARCHY 0x20000
916
+ #define TK_PROP_PROPCHANGE 0x40000
917
+ #define TK_WM_MANAGEABLE 0x80000
918
+ #define TK_CAN_INPUT_TEXT 0x100000
919
+
920
+ /*
921
+ *----------------------------------------------------------------------
922
+ *
923
+ * Procedure prototypes and structures used for defining new canvas items:
924
+ *
925
+ *----------------------------------------------------------------------
926
+ */
927
+
928
+ typedef enum {
929
+ TK_STATE_NULL = -1, TK_STATE_ACTIVE, TK_STATE_DISABLED,
930
+ TK_STATE_NORMAL, TK_STATE_HIDDEN
931
+ } Tk_State;
932
+
933
+ typedef struct Tk_SmoothMethod {
934
+ CONST86 char *name;
935
+ int (*coordProc) (Tk_Canvas canvas, double *pointPtr, int numPoints,
936
+ int numSteps, XPoint xPoints[], double dblPoints[]);
937
+ void (*postscriptProc) (Tcl_Interp *interp, Tk_Canvas canvas,
938
+ double *coordPtr, int numPoints, int numSteps);
939
+ } Tk_SmoothMethod;
940
+
941
+ /*
942
+ * For each item in a canvas widget there exists one record with the following
943
+ * structure. Each actual item is represented by a record with the following
944
+ * stuff at its beginning, plus additional type-specific stuff after that.
945
+ */
946
+
947
+ #define TK_TAG_SPACE 3
948
+
949
+ typedef struct Tk_Item {
950
+ int id; /* Unique identifier for this item (also
951
+ * serves as first tag for item). */
952
+ struct Tk_Item *nextPtr; /* Next in display list of all items in this
953
+ * canvas. Later items in list are drawn on
954
+ * top of earlier ones. */
955
+ Tk_Uid staticTagSpace[TK_TAG_SPACE];
956
+ /* Built-in space for limited # of tags. */
957
+ Tk_Uid *tagPtr; /* Pointer to array of tags. Usually points to
958
+ * staticTagSpace, but may point to malloc-ed
959
+ * space if there are lots of tags. */
960
+ int tagSpace; /* Total amount of tag space available at
961
+ * tagPtr. */
962
+ int numTags; /* Number of tag slots actually used at
963
+ * *tagPtr. */
964
+ struct Tk_ItemType *typePtr;/* Table of procedures that implement this
965
+ * type of item. */
966
+ int x1, y1, x2, y2; /* Bounding box for item, in integer canvas
967
+ * units. Set by item-specific code and
968
+ * guaranteed to contain every pixel drawn in
969
+ * item. Item area includes x1 and y1 but not
970
+ * x2 and y2. */
971
+ struct Tk_Item *prevPtr; /* Previous in display list of all items in
972
+ * this canvas. Later items in list are drawn
973
+ * just below earlier ones. */
974
+ Tk_State state; /* State of item. */
975
+ char *reserved1; /* reserved for future use */
976
+ int redraw_flags; /* Some flags used in the canvas */
977
+
978
+ /*
979
+ *------------------------------------------------------------------
980
+ * Starting here is additional type-specific stuff; see the declarations
981
+ * for individual types to see what is part of each type. The actual space
982
+ * below is determined by the "itemInfoSize" of the type's Tk_ItemType
983
+ * record.
984
+ *------------------------------------------------------------------
985
+ */
986
+ } Tk_Item;
987
+
988
+ /*
989
+ * Flag bits for canvases (redraw_flags):
990
+ *
991
+ * TK_ITEM_STATE_DEPENDANT - 1 means that object needs to be redrawn if the
992
+ * canvas state changes.
993
+ * TK_ITEM_DONT_REDRAW - 1 means that the object redraw is already been
994
+ * prepared, so the general canvas code doesn't
995
+ * need to do that any more.
996
+ */
997
+
998
+ #define TK_ITEM_STATE_DEPENDANT 1
999
+ #define TK_ITEM_DONT_REDRAW 2
1000
+
1001
+ /*
1002
+ * Records of the following type are used to describe a type of item (e.g.
1003
+ * lines, circles, etc.) that can form part of a canvas widget.
1004
+ */
1005
+
1006
+ #ifdef USE_OLD_CANVAS
1007
+ typedef int (Tk_ItemCreateProc)(Tcl_Interp *interp, Tk_Canvas canvas,
1008
+ Tk_Item *itemPtr, int argc, char **argv);
1009
+ typedef int (Tk_ItemConfigureProc)(Tcl_Interp *interp, Tk_Canvas canvas,
1010
+ Tk_Item *itemPtr, int argc, char **argv, int flags);
1011
+ typedef int (Tk_ItemCoordProc)(Tcl_Interp *interp, Tk_Canvas canvas,
1012
+ Tk_Item *itemPtr, int argc, char **argv);
1013
+ #else
1014
+ typedef int (Tk_ItemCreateProc)(Tcl_Interp *interp, Tk_Canvas canvas,
1015
+ Tk_Item *itemPtr, int argc, Tcl_Obj *const objv[]);
1016
+ typedef int (Tk_ItemConfigureProc)(Tcl_Interp *interp, Tk_Canvas canvas,
1017
+ Tk_Item *itemPtr, int argc, Tcl_Obj *const objv[],
1018
+ int flags);
1019
+ typedef int (Tk_ItemCoordProc)(Tcl_Interp *interp, Tk_Canvas canvas,
1020
+ Tk_Item *itemPtr, int argc, Tcl_Obj *const argv[]);
1021
+ #endif /* USE_OLD_CANVAS */
1022
+ typedef void (Tk_ItemDeleteProc)(Tk_Canvas canvas, Tk_Item *itemPtr,
1023
+ Display *display);
1024
+ typedef void (Tk_ItemDisplayProc)(Tk_Canvas canvas, Tk_Item *itemPtr,
1025
+ Display *display, Drawable dst, int x, int y, int width,
1026
+ int height);
1027
+ typedef double (Tk_ItemPointProc)(Tk_Canvas canvas, Tk_Item *itemPtr,
1028
+ double *pointPtr);
1029
+ typedef int (Tk_ItemAreaProc)(Tk_Canvas canvas, Tk_Item *itemPtr,
1030
+ double *rectPtr);
1031
+ typedef int (Tk_ItemPostscriptProc)(Tcl_Interp *interp, Tk_Canvas canvas,
1032
+ Tk_Item *itemPtr, int prepass);
1033
+ typedef void (Tk_ItemScaleProc)(Tk_Canvas canvas, Tk_Item *itemPtr,
1034
+ double originX, double originY, double scaleX,
1035
+ double scaleY);
1036
+ typedef void (Tk_ItemTranslateProc)(Tk_Canvas canvas, Tk_Item *itemPtr,
1037
+ double deltaX, double deltaY);
1038
+ #ifdef USE_OLD_CANVAS
1039
+ typedef int (Tk_ItemIndexProc)(Tcl_Interp *interp, Tk_Canvas canvas,
1040
+ Tk_Item *itemPtr, char *indexString, int *indexPtr);
1041
+ #else
1042
+ typedef int (Tk_ItemIndexProc)(Tcl_Interp *interp, Tk_Canvas canvas,
1043
+ Tk_Item *itemPtr, Tcl_Obj *indexString, int *indexPtr);
1044
+ #endif /* USE_OLD_CANVAS */
1045
+ typedef void (Tk_ItemCursorProc)(Tk_Canvas canvas, Tk_Item *itemPtr,
1046
+ int index);
1047
+ typedef int (Tk_ItemSelectionProc)(Tk_Canvas canvas, Tk_Item *itemPtr,
1048
+ int offset, char *buffer, int maxBytes);
1049
+ #ifdef USE_OLD_CANVAS
1050
+ typedef void (Tk_ItemInsertProc)(Tk_Canvas canvas, Tk_Item *itemPtr,
1051
+ int beforeThis, char *string);
1052
+ #else
1053
+ typedef void (Tk_ItemInsertProc)(Tk_Canvas canvas, Tk_Item *itemPtr,
1054
+ int beforeThis, Tcl_Obj *string);
1055
+ #endif /* USE_OLD_CANVAS */
1056
+ typedef void (Tk_ItemDCharsProc)(Tk_Canvas canvas, Tk_Item *itemPtr,
1057
+ int first, int last);
1058
+
1059
+ #ifndef __NO_OLD_CONFIG
1060
+
1061
+ typedef struct Tk_ItemType {
1062
+ CONST86 char *name; /* The name of this type of item, such as
1063
+ * "line". */
1064
+ int itemSize; /* Total amount of space needed for item's
1065
+ * record. */
1066
+ Tk_ItemCreateProc *createProc;
1067
+ /* Procedure to create a new item of this
1068
+ * type. */
1069
+ CONST86 Tk_ConfigSpec *configSpecs; /* Pointer to array of configuration specs for
1070
+ * this type. Used for returning configuration
1071
+ * info. */
1072
+ Tk_ItemConfigureProc *configProc;
1073
+ /* Procedure to call to change configuration
1074
+ * options. */
1075
+ Tk_ItemCoordProc *coordProc;/* Procedure to call to get and set the item's
1076
+ * coordinates. */
1077
+ Tk_ItemDeleteProc *deleteProc;
1078
+ /* Procedure to delete existing item of this
1079
+ * type. */
1080
+ Tk_ItemDisplayProc *displayProc;
1081
+ /* Procedure to display items of this type. */
1082
+ int alwaysRedraw; /* Non-zero means displayProc should be called
1083
+ * even when the item has been moved
1084
+ * off-screen. */
1085
+ Tk_ItemPointProc *pointProc;/* Computes distance from item to a given
1086
+ * point. */
1087
+ Tk_ItemAreaProc *areaProc; /* Computes whether item is inside, outside,
1088
+ * or overlapping an area. */
1089
+ Tk_ItemPostscriptProc *postscriptProc;
1090
+ /* Procedure to write a Postscript description
1091
+ * for items of this type. */
1092
+ Tk_ItemScaleProc *scaleProc;/* Procedure to rescale items of this type. */
1093
+ Tk_ItemTranslateProc *translateProc;
1094
+ /* Procedure to translate items of this
1095
+ * type. */
1096
+ Tk_ItemIndexProc *indexProc;/* Procedure to determine index of indicated
1097
+ * character. NULL if item doesn't support
1098
+ * indexing. */
1099
+ Tk_ItemCursorProc *icursorProc;
1100
+ /* Procedure to set insert cursor posn to just
1101
+ * before a given position. */
1102
+ Tk_ItemSelectionProc *selectionProc;
1103
+ /* Procedure to return selection (in STRING
1104
+ * format) when it is in this item. */
1105
+ Tk_ItemInsertProc *insertProc;
1106
+ /* Procedure to insert something into an
1107
+ * item. */
1108
+ Tk_ItemDCharsProc *dCharsProc;
1109
+ /* Procedure to delete characters from an
1110
+ * item. */
1111
+ struct Tk_ItemType *nextPtr;/* Used to link types together into a list. */
1112
+ char *reserved1; /* Reserved for future extension. */
1113
+ int reserved2; /* Carefully compatible with */
1114
+ char *reserved3; /* Jan Nijtmans dash patch */
1115
+ char *reserved4;
1116
+ } Tk_ItemType;
1117
+
1118
+ /*
1119
+ * Flag (used in the alwaysRedraw field) to say whether an item supports
1120
+ * point-level manipulation like the line and polygon items.
1121
+ */
1122
+
1123
+ #define TK_MOVABLE_POINTS 2
1124
+
1125
+ #endif /* __NO_OLD_CONFIG */
1126
+
1127
+ /*
1128
+ * The following structure provides information about the selection and the
1129
+ * insertion cursor. It is needed by only a few items, such as those that
1130
+ * display text. It is shared by the generic canvas code and the item-specific
1131
+ * code, but most of the fields should be written only by the canvas generic
1132
+ * code.
1133
+ */
1134
+
1135
+ typedef struct Tk_CanvasTextInfo {
1136
+ Tk_3DBorder selBorder; /* Border and background for selected
1137
+ * characters. Read-only to items.*/
1138
+ int selBorderWidth; /* Width of border around selection. Read-only
1139
+ * to items. */
1140
+ XColor *selFgColorPtr; /* Foreground color for selected text.
1141
+ * Read-only to items. */
1142
+ Tk_Item *selItemPtr; /* Pointer to selected item. NULL means
1143
+ * selection isn't in this canvas. Writable by
1144
+ * items. */
1145
+ int selectFirst; /* Character index of first selected
1146
+ * character. Writable by items. */
1147
+ int selectLast; /* Character index of last selected character.
1148
+ * Writable by items. */
1149
+ Tk_Item *anchorItemPtr; /* Item corresponding to "selectAnchor": not
1150
+ * necessarily selItemPtr. Read-only to
1151
+ * items. */
1152
+ int selectAnchor; /* Character index of fixed end of selection
1153
+ * (i.e. "select to" operation will use this
1154
+ * as one end of the selection). Writable by
1155
+ * items. */
1156
+ Tk_3DBorder insertBorder; /* Used to draw vertical bar for insertion
1157
+ * cursor. Read-only to items. */
1158
+ int insertWidth; /* Total width of insertion cursor. Read-only
1159
+ * to items. */
1160
+ int insertBorderWidth; /* Width of 3-D border around insert cursor.
1161
+ * Read-only to items. */
1162
+ Tk_Item *focusItemPtr; /* Item that currently has the input focus, or
1163
+ * NULL if no such item. Read-only to items. */
1164
+ int gotFocus; /* Non-zero means that the canvas widget has
1165
+ * the input focus. Read-only to items.*/
1166
+ int cursorOn; /* Non-zero means that an insertion cursor
1167
+ * should be displayed in focusItemPtr.
1168
+ * Read-only to items.*/
1169
+ } Tk_CanvasTextInfo;
1170
+
1171
+ /*
1172
+ * Structures used for Dashing and Outline.
1173
+ */
1174
+
1175
+ typedef struct Tk_Dash {
1176
+ int number;
1177
+ union {
1178
+ char *pt;
1179
+ char array[sizeof(char *)];
1180
+ } pattern;
1181
+ } Tk_Dash;
1182
+
1183
+ typedef struct Tk_TSOffset {
1184
+ int flags; /* Flags; see below for possible values */
1185
+ int xoffset; /* x offset */
1186
+ int yoffset; /* y offset */
1187
+ } Tk_TSOffset;
1188
+
1189
+ /*
1190
+ * Bit fields in Tk_TSOffset->flags:
1191
+ */
1192
+
1193
+ #define TK_OFFSET_INDEX 1
1194
+ #define TK_OFFSET_RELATIVE 2
1195
+ #define TK_OFFSET_LEFT 4
1196
+ #define TK_OFFSET_CENTER 8
1197
+ #define TK_OFFSET_RIGHT 16
1198
+ #define TK_OFFSET_TOP 32
1199
+ #define TK_OFFSET_MIDDLE 64
1200
+ #define TK_OFFSET_BOTTOM 128
1201
+
1202
+ typedef struct Tk_Outline {
1203
+ GC gc; /* Graphics context. */
1204
+ double width; /* Width of outline. */
1205
+ double activeWidth; /* Width of outline. */
1206
+ double disabledWidth; /* Width of outline. */
1207
+ int offset; /* Dash offset. */
1208
+ Tk_Dash dash; /* Dash pattern. */
1209
+ Tk_Dash activeDash; /* Dash pattern if state is active. */
1210
+ Tk_Dash disabledDash; /* Dash pattern if state is disabled. */
1211
+ void *reserved1; /* Reserved for future expansion. */
1212
+ void *reserved2;
1213
+ void *reserved3;
1214
+ Tk_TSOffset tsoffset; /* Stipple offset for outline. */
1215
+ XColor *color; /* Outline color. */
1216
+ XColor *activeColor; /* Outline color if state is active. */
1217
+ XColor *disabledColor; /* Outline color if state is disabled. */
1218
+ Pixmap stipple; /* Outline Stipple pattern. */
1219
+ Pixmap activeStipple; /* Outline Stipple pattern if state is
1220
+ * active. */
1221
+ Pixmap disabledStipple; /* Outline Stipple pattern if state is
1222
+ * disabled. */
1223
+ } Tk_Outline;
1224
+
1225
+ /*
1226
+ *----------------------------------------------------------------------
1227
+ *
1228
+ * Procedure prototypes and structures used for managing images:
1229
+ *
1230
+ *----------------------------------------------------------------------
1231
+ */
1232
+
1233
+ typedef struct Tk_ImageType Tk_ImageType;
1234
+ #ifdef USE_OLD_IMAGE
1235
+ typedef int (Tk_ImageCreateProc) (Tcl_Interp *interp, char *name, int argc,
1236
+ char **argv, Tk_ImageType *typePtr, Tk_ImageMaster model,
1237
+ ClientData *clientDataPtr);
1238
+ #else
1239
+ typedef int (Tk_ImageCreateProc) (Tcl_Interp *interp, CONST86 char *name, int objc,
1240
+ Tcl_Obj *const objv[], CONST86 Tk_ImageType *typePtr, Tk_ImageMaster model,
1241
+ ClientData *clientDataPtr);
1242
+ #endif /* USE_OLD_IMAGE */
1243
+ typedef ClientData (Tk_ImageGetProc) (Tk_Window tkwin, ClientData clientData);
1244
+ typedef void (Tk_ImageDisplayProc) (ClientData clientData, Display *display,
1245
+ Drawable drawable, int imageX, int imageY, int width, int height,
1246
+ int drawableX, int drawableY);
1247
+ typedef void (Tk_ImageFreeProc) (ClientData clientData, Display *display);
1248
+ typedef void (Tk_ImageDeleteProc) (ClientData clientData);
1249
+ typedef void (Tk_ImageChangedProc) (ClientData clientData, int x, int y,
1250
+ int width, int height, int imageWidth, int imageHeight);
1251
+ typedef int (Tk_ImagePostscriptProc) (ClientData clientData,
1252
+ Tcl_Interp *interp, Tk_Window tkwin, Tk_PostscriptInfo psinfo,
1253
+ int x, int y, int width, int height, int prepass);
1254
+
1255
+ /*
1256
+ * The following structure represents a particular type of image (bitmap, xpm
1257
+ * image, etc.). It provides information common to all images of that type,
1258
+ * such as the type name and a collection of procedures in the image manager
1259
+ * that respond to various events. Each image manager is represented by one of
1260
+ * these structures.
1261
+ */
1262
+
1263
+ struct Tk_ImageType {
1264
+ CONST86 char *name; /* Name of image type. */
1265
+ Tk_ImageCreateProc *createProc;
1266
+ /* Procedure to call to create a new image of
1267
+ * this type. */
1268
+ Tk_ImageGetProc *getProc; /* Procedure to call the first time
1269
+ * Tk_GetImage is called in a new way (new
1270
+ * visual or screen). */
1271
+ Tk_ImageDisplayProc *displayProc;
1272
+ /* Call to draw image, in response to
1273
+ * Tk_RedrawImage calls. */
1274
+ Tk_ImageFreeProc *freeProc; /* Procedure to call whenever Tk_FreeImage is
1275
+ * called to release an instance of an
1276
+ * image. */
1277
+ Tk_ImageDeleteProc *deleteProc;
1278
+ /* Procedure to call to delete image. It will
1279
+ * not be called until after freeProc has been
1280
+ * called for each instance of the image. */
1281
+ Tk_ImagePostscriptProc *postscriptProc;
1282
+ /* Procedure to call to produce postscript
1283
+ * output for the image. */
1284
+ struct Tk_ImageType *nextPtr;
1285
+ /* Next in list of all image types currently
1286
+ * known. Filled in by Tk, not by image
1287
+ * manager. */
1288
+ char *reserved; /* reserved for future expansion */
1289
+ };
1290
+
1291
+ /*
1292
+ *----------------------------------------------------------------------
1293
+ *
1294
+ * Additional definitions used to manage images of type "photo".
1295
+ *
1296
+ *----------------------------------------------------------------------
1297
+ */
1298
+
1299
+ /*
1300
+ * The following type is used to identify a particular photo image to be
1301
+ * manipulated:
1302
+ */
1303
+
1304
+ typedef void *Tk_PhotoHandle;
1305
+
1306
+ /*
1307
+ * The following structure describes a block of pixels in memory:
1308
+ */
1309
+
1310
+ typedef struct Tk_PhotoImageBlock {
1311
+ unsigned char *pixelPtr; /* Pointer to the first pixel. */
1312
+ int width; /* Width of block, in pixels. */
1313
+ int height; /* Height of block, in pixels. */
1314
+ int pitch; /* Address difference between corresponding
1315
+ * pixels in successive lines. */
1316
+ int pixelSize; /* Address difference between successive
1317
+ * pixels in the same line. */
1318
+ int offset[4]; /* Address differences between the red, green,
1319
+ * blue and alpha components of the pixel and
1320
+ * the pixel as a whole. */
1321
+ } Tk_PhotoImageBlock;
1322
+
1323
+ /*
1324
+ * The following values control how blocks are combined into photo images when
1325
+ * the alpha component of a pixel is not 255, a.k.a. the compositing rule.
1326
+ */
1327
+
1328
+ #define TK_PHOTO_COMPOSITE_OVERLAY 0
1329
+ #define TK_PHOTO_COMPOSITE_SET 1
1330
+
1331
+ /*
1332
+ * Procedure prototypes and structures used in reading and writing photo
1333
+ * images:
1334
+ */
1335
+
1336
+ typedef struct Tk_PhotoImageFormat Tk_PhotoImageFormat;
1337
+ #ifdef USE_OLD_IMAGE
1338
+ typedef int (Tk_ImageFileMatchProc) (Tcl_Channel chan, char *fileName,
1339
+ char *formatString, int *widthPtr, int *heightPtr);
1340
+ typedef int (Tk_ImageStringMatchProc) (char *string, char *formatString,
1341
+ int *widthPtr, int *heightPtr);
1342
+ typedef int (Tk_ImageFileReadProc) (Tcl_Interp *interp, Tcl_Channel chan,
1343
+ char *fileName, char *formatString, Tk_PhotoHandle imageHandle,
1344
+ int destX, int destY, int width, int height, int srcX, int srcY);
1345
+ typedef int (Tk_ImageStringReadProc) (Tcl_Interp *interp, char *string,
1346
+ char *formatString, Tk_PhotoHandle imageHandle, int destX, int destY,
1347
+ int width, int height, int srcX, int srcY);
1348
+ typedef int (Tk_ImageFileWriteProc) (Tcl_Interp *interp, char *fileName,
1349
+ char *formatString, Tk_PhotoImageBlock *blockPtr);
1350
+ typedef int (Tk_ImageStringWriteProc) (Tcl_Interp *interp,
1351
+ Tcl_DString *dataPtr, char *formatString, Tk_PhotoImageBlock *blockPtr);
1352
+ #else
1353
+ typedef int (Tk_ImageFileMatchProc) (Tcl_Channel chan, const char *fileName,
1354
+ Tcl_Obj *format, int *widthPtr, int *heightPtr, Tcl_Interp *interp);
1355
+ typedef int (Tk_ImageStringMatchProc) (Tcl_Obj *dataObj, Tcl_Obj *format,
1356
+ int *widthPtr, int *heightPtr, Tcl_Interp *interp);
1357
+ typedef int (Tk_ImageFileReadProc) (Tcl_Interp *interp, Tcl_Channel chan,
1358
+ const char *fileName, Tcl_Obj *format, Tk_PhotoHandle imageHandle,
1359
+ int destX, int destY, int width, int height, int srcX, int srcY);
1360
+ typedef int (Tk_ImageStringReadProc) (Tcl_Interp *interp, Tcl_Obj *dataObj,
1361
+ Tcl_Obj *format, Tk_PhotoHandle imageHandle, int destX, int destY,
1362
+ int width, int height, int srcX, int srcY);
1363
+ typedef int (Tk_ImageFileWriteProc) (Tcl_Interp *interp, const char *fileName,
1364
+ Tcl_Obj *format, Tk_PhotoImageBlock *blockPtr);
1365
+ typedef int (Tk_ImageStringWriteProc) (Tcl_Interp *interp, Tcl_Obj *format,
1366
+ Tk_PhotoImageBlock *blockPtr);
1367
+ #endif /* USE_OLD_IMAGE */
1368
+
1369
+ /*
1370
+ * The following structure represents a particular file format for storing
1371
+ * images (e.g., PPM, GIF, JPEG, etc.). It provides information to allow image
1372
+ * files of that format to be recognized and read into a photo image.
1373
+ */
1374
+
1375
+ struct Tk_PhotoImageFormat {
1376
+ CONST86 char *name; /* Name of image file format */
1377
+ Tk_ImageFileMatchProc *fileMatchProc;
1378
+ /* Procedure to call to determine whether an
1379
+ * image file matches this format. */
1380
+ Tk_ImageStringMatchProc *stringMatchProc;
1381
+ /* Procedure to call to determine whether the
1382
+ * data in a string matches this format. */
1383
+ Tk_ImageFileReadProc *fileReadProc;
1384
+ /* Procedure to call to read data from an
1385
+ * image file into a photo image. */
1386
+ Tk_ImageStringReadProc *stringReadProc;
1387
+ /* Procedure to call to read data from a
1388
+ * string into a photo image. */
1389
+ Tk_ImageFileWriteProc *fileWriteProc;
1390
+ /* Procedure to call to write data from a
1391
+ * photo image to a file. */
1392
+ Tk_ImageStringWriteProc *stringWriteProc;
1393
+ /* Procedure to call to obtain a string
1394
+ * representation of the data in a photo
1395
+ * image.*/
1396
+ struct Tk_PhotoImageFormat *nextPtr;
1397
+ /* Next in list of all photo image formats
1398
+ * currently known. Filled in by Tk, not by
1399
+ * image format handler. */
1400
+ };
1401
+
1402
+ /*
1403
+ *----------------------------------------------------------------------
1404
+ *
1405
+ * Procedure prototypes and structures used for managing styles:
1406
+ *
1407
+ *----------------------------------------------------------------------
1408
+ */
1409
+
1410
+ /*
1411
+ * Style support version tag.
1412
+ */
1413
+
1414
+ #define TK_STYLE_VERSION_1 0x1
1415
+ #define TK_STYLE_VERSION TK_STYLE_VERSION_1
1416
+
1417
+ /*
1418
+ * The following structures and prototypes are used as static templates to
1419
+ * declare widget elements.
1420
+ */
1421
+
1422
+ typedef void (Tk_GetElementSizeProc) (ClientData clientData, char *recordPtr,
1423
+ const Tk_OptionSpec **optionsPtr, Tk_Window tkwin, int width,
1424
+ int height, int inner, int *widthPtr, int *heightPtr);
1425
+ typedef void (Tk_GetElementBoxProc) (ClientData clientData, char *recordPtr,
1426
+ const Tk_OptionSpec **optionsPtr, Tk_Window tkwin, int x, int y,
1427
+ int width, int height, int inner, int *xPtr, int *yPtr, int *widthPtr,
1428
+ int *heightPtr);
1429
+ typedef int (Tk_GetElementBorderWidthProc) (ClientData clientData,
1430
+ char *recordPtr, const Tk_OptionSpec **optionsPtr, Tk_Window tkwin);
1431
+ typedef void (Tk_DrawElementProc) (ClientData clientData, char *recordPtr,
1432
+ const Tk_OptionSpec **optionsPtr, Tk_Window tkwin, Drawable d, int x,
1433
+ int y, int width, int height, int state);
1434
+
1435
+ typedef struct Tk_ElementOptionSpec {
1436
+ char *name; /* Name of the required option. */
1437
+ Tk_OptionType type; /* Accepted option type. TK_OPTION_END means
1438
+ * any. */
1439
+ } Tk_ElementOptionSpec;
1440
+
1441
+ typedef struct Tk_ElementSpec {
1442
+ int version; /* Version of the style support. */
1443
+ char *name; /* Name of element. */
1444
+ Tk_ElementOptionSpec *options;
1445
+ /* List of required options. Last one's name
1446
+ * must be NULL. */
1447
+ Tk_GetElementSizeProc *getSize;
1448
+ /* Compute the external (resp. internal) size
1449
+ * of the element from its desired internal
1450
+ * (resp. external) size. */
1451
+ Tk_GetElementBoxProc *getBox;
1452
+ /* Compute the inscribed or bounding boxes
1453
+ * within a given area. */
1454
+ Tk_GetElementBorderWidthProc *getBorderWidth;
1455
+ /* Return the element's internal border width.
1456
+ * Mostly useful for widgets. */
1457
+ Tk_DrawElementProc *draw; /* Draw the element in the given bounding
1458
+ * box. */
1459
+ } Tk_ElementSpec;
1460
+
1461
+ /*
1462
+ * Element state flags. Can be OR'ed.
1463
+ */
1464
+
1465
+ #define TK_ELEMENT_STATE_ACTIVE 1<<0
1466
+ #define TK_ELEMENT_STATE_DISABLED 1<<1
1467
+ #define TK_ELEMENT_STATE_FOCUS 1<<2
1468
+ #define TK_ELEMENT_STATE_PRESSED 1<<3
1469
+
1470
+ /*
1471
+ *----------------------------------------------------------------------
1472
+ *
1473
+ * The definitions below provide backward compatibility for functions and
1474
+ * types related to event handling that used to be in Tk but have moved to
1475
+ * Tcl.
1476
+ *
1477
+ *----------------------------------------------------------------------
1478
+ */
1479
+
1480
+ #define TK_READABLE TCL_READABLE
1481
+ #define TK_WRITABLE TCL_WRITABLE
1482
+ #define TK_EXCEPTION TCL_EXCEPTION
1483
+
1484
+ #define TK_DONT_WAIT TCL_DONT_WAIT
1485
+ #define TK_X_EVENTS TCL_WINDOW_EVENTS
1486
+ #define TK_WINDOW_EVENTS TCL_WINDOW_EVENTS
1487
+ #define TK_FILE_EVENTS TCL_FILE_EVENTS
1488
+ #define TK_TIMER_EVENTS TCL_TIMER_EVENTS
1489
+ #define TK_IDLE_EVENTS TCL_IDLE_EVENTS
1490
+ #define TK_ALL_EVENTS TCL_ALL_EVENTS
1491
+
1492
+ #define Tk_IdleProc Tcl_IdleProc
1493
+ #define Tk_FileProc Tcl_FileProc
1494
+ #define Tk_TimerProc Tcl_TimerProc
1495
+ #define Tk_TimerToken Tcl_TimerToken
1496
+
1497
+ #define Tk_BackgroundError Tcl_BackgroundError
1498
+ #define Tk_CancelIdleCall Tcl_CancelIdleCall
1499
+ #define Tk_CreateFileHandler Tcl_CreateFileHandler
1500
+ #define Tk_CreateTimerHandler Tcl_CreateTimerHandler
1501
+ #define Tk_DeleteFileHandler Tcl_DeleteFileHandler
1502
+ #define Tk_DeleteTimerHandler Tcl_DeleteTimerHandler
1503
+ #define Tk_DoOneEvent Tcl_DoOneEvent
1504
+ #define Tk_DoWhenIdle Tcl_DoWhenIdle
1505
+ #define Tk_Sleep Tcl_Sleep
1506
+
1507
+ /* Additional stuff that has moved to Tcl: */
1508
+
1509
+ #define Tk_EventuallyFree Tcl_EventuallyFree
1510
+ #define Tk_FreeProc Tcl_FreeProc
1511
+ #define Tk_Preserve Tcl_Preserve
1512
+ #define Tk_Release Tcl_Release
1513
+
1514
+ /* Removed Tk_Main, use macro instead */
1515
+ #if defined(_WIN32) || defined(__CYGWIN__)
1516
+ #define Tk_Main(argc, argv, proc) Tk_MainEx(argc, argv, proc, \
1517
+ (Tcl_FindExecutable(0), (Tcl_CreateInterp)()))
1518
+ #else
1519
+ #define Tk_Main(argc, argv, proc) Tk_MainEx(argc, argv, proc, \
1520
+ (Tcl_FindExecutable(argv[0]), (Tcl_CreateInterp)()))
1521
+ #endif
1522
+ const char * Tk_InitStubs(Tcl_Interp *interp, const char *version,
1523
+ int exact);
1524
+ EXTERN const char * Tk_PkgInitStubsCheck(Tcl_Interp *interp,
1525
+ const char *version, int exact);
1526
+
1527
+ #ifndef USE_TK_STUBS
1528
+ #define Tk_InitStubs(interp, version, exact) \
1529
+ Tk_PkgInitStubsCheck(interp, version, exact)
1530
+ #endif /* USE_TK_STUBS */
1531
+
1532
+ #define Tk_InitImageArgs(interp, argc, argv) /**/
1533
+
1534
+ /*
1535
+ *----------------------------------------------------------------------
1536
+ *
1537
+ * Additional procedure types defined by Tk.
1538
+ *
1539
+ *----------------------------------------------------------------------
1540
+ */
1541
+
1542
+ typedef int (Tk_ErrorProc) (ClientData clientData, XErrorEvent *errEventPtr);
1543
+ typedef void (Tk_EventProc) (ClientData clientData, XEvent *eventPtr);
1544
+ typedef int (Tk_GenericProc) (ClientData clientData, XEvent *eventPtr);
1545
+ typedef int (Tk_ClientMessageProc) (Tk_Window tkwin, XEvent *eventPtr);
1546
+ typedef int (Tk_GetSelProc) (ClientData clientData, Tcl_Interp *interp,
1547
+ CONST86 char *portion);
1548
+ typedef void (Tk_LostSelProc) (ClientData clientData);
1549
+ typedef Tk_RestrictAction (Tk_RestrictProc) (ClientData clientData,
1550
+ XEvent *eventPtr);
1551
+ typedef int (Tk_SelectionProc) (ClientData clientData, int offset,
1552
+ char *buffer, int maxBytes);
1553
+
1554
+ /*
1555
+ *----------------------------------------------------------------------
1556
+ *
1557
+ * Platform independent exported procedures and variables.
1558
+ *
1559
+ *----------------------------------------------------------------------
1560
+ */
1561
+
1562
+ #include "tkDecls.h"
1563
+
1564
+ #ifdef USE_OLD_IMAGE
1565
+ #undef Tk_CreateImageType
1566
+ #define Tk_CreateImageType Tk_CreateOldImageType
1567
+ #undef Tk_CreatePhotoImageFormat
1568
+ #define Tk_CreatePhotoImageFormat Tk_CreateOldPhotoImageFormat
1569
+ #endif /* USE_OLD_IMAGE */
1570
+
1571
+ /*
1572
+ *----------------------------------------------------------------------
1573
+ *
1574
+ * Allow users to say that they don't want to alter their source to add extra
1575
+ * arguments to Tk_PhotoPutBlock() et al; DO NOT DEFINE THIS WHEN BUILDING TK.
1576
+ *
1577
+ * This goes after the inclusion of the stubbed-decls so that the declarations
1578
+ * of what is actually there can be correct.
1579
+ */
1580
+
1581
+ #ifdef USE_COMPOSITELESS_PHOTO_PUT_BLOCK
1582
+ # ifdef Tk_PhotoPutBlock
1583
+ # undef Tk_PhotoPutBlock
1584
+ # endif
1585
+ # define Tk_PhotoPutBlock Tk_PhotoPutBlock_NoComposite
1586
+ # ifdef Tk_PhotoPutZoomedBlock
1587
+ # undef Tk_PhotoPutZoomedBlock
1588
+ # endif
1589
+ # define Tk_PhotoPutZoomedBlock Tk_PhotoPutZoomedBlock_NoComposite
1590
+ # define USE_PANIC_ON_PHOTO_ALLOC_FAILURE
1591
+ #else /* !USE_COMPOSITELESS_PHOTO_PUT_BLOCK */
1592
+ # ifdef USE_PANIC_ON_PHOTO_ALLOC_FAILURE
1593
+ # ifdef Tk_PhotoPutBlock
1594
+ # undef Tk_PhotoPutBlock
1595
+ # endif
1596
+ # define Tk_PhotoPutBlock Tk_PhotoPutBlock_Panic
1597
+ # ifdef Tk_PhotoPutZoomedBlock
1598
+ # undef Tk_PhotoPutZoomedBlock
1599
+ # endif
1600
+ # define Tk_PhotoPutZoomedBlock Tk_PhotoPutZoomedBlock_Panic
1601
+ # endif /* USE_PANIC_ON_PHOTO_ALLOC_FAILURE */
1602
+ #endif /* USE_COMPOSITELESS_PHOTO_PUT_BLOCK */
1603
+ #ifdef USE_PANIC_ON_PHOTO_ALLOC_FAILURE
1604
+ # ifdef Tk_PhotoExpand
1605
+ # undef Tk_PhotoExpand
1606
+ # endif
1607
+ # define Tk_PhotoExpand Tk_PhotoExpand_Panic
1608
+ # ifdef Tk_PhotoSetSize
1609
+ # undef Tk_PhotoSetSize
1610
+ # endif
1611
+ # define Tk_PhotoSetSize Tk_PhotoSetSize_Panic
1612
+ #endif /* USE_PANIC_ON_PHOTO_ALLOC_FAILURE */
1613
+
1614
+ #undef TCL_STORAGE_CLASS
1615
+ #define TCL_STORAGE_CLASS DLLIMPORT
1616
+
1617
+ #endif /* RC_INVOKED */
1618
+
1619
+ /*
1620
+ * end block for C++
1621
+ */
1622
+
1623
+ #ifdef __cplusplus
1624
+ }
1625
+ #endif
1626
+
1627
+ #endif /* _TK */
1628
+
1629
+ /*
1630
+ * Local Variables:
1631
+ * mode: c
1632
+ * c-basic-offset: 4
1633
+ * fill-column: 78
1634
+ * End:
1635
+ */
my_container_sandbox/workspace/anaconda3/include/tk3d.h ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * tk3d.h --
3
+ *
4
+ * Declarations of types and functions shared by the 3d border module.
5
+ *
6
+ * Copyright (c) 1996-1997 by Sun Microsystems, Inc.
7
+ *
8
+ * See the file "license.terms" for information on usage and redistribution of
9
+ * this file, and for a DISCLAIMER OF ALL WARRANTIES.
10
+ */
11
+
12
+ #ifndef _TK3D
13
+ #define _TK3D
14
+
15
+ #include "tkInt.h"
16
+
17
+ /*
18
+ * One of the following data structures is allocated for each 3-D border
19
+ * currently in use. Structures of this type are indexed by borderTable, so
20
+ * that a single structure can be shared for several uses.
21
+ */
22
+
23
+ typedef struct TkBorder {
24
+ Screen *screen; /* Screen on which the border will be used. */
25
+ Visual *visual; /* Visual for all windows and pixmaps using
26
+ * the border. */
27
+ int depth; /* Number of bits per pixel of drawables where
28
+ * the border will be used. */
29
+ Colormap colormap; /* Colormap out of which pixels are
30
+ * allocated. */
31
+ int resourceRefCount; /* Number of active uses of this color (each
32
+ * active use corresponds to a call to
33
+ * Tk_Alloc3DBorderFromObj or Tk_Get3DBorder).
34
+ * If this count is 0, then this structure is
35
+ * no longer valid and it isn't present in
36
+ * borderTable: it is being kept around only
37
+ * because there are objects referring to it.
38
+ * The structure is freed when objRefCount and
39
+ * resourceRefCount are both 0. */
40
+ int objRefCount; /* The number of Tcl objects that reference
41
+ * this structure. */
42
+ XColor *bgColorPtr; /* Background color (intensity between
43
+ * lightColorPtr and darkColorPtr). */
44
+ XColor *darkColorPtr; /* Color for darker areas (must free when
45
+ * deleting structure). NULL means shadows
46
+ * haven't been allocated yet.*/
47
+ XColor *lightColorPtr; /* Color used for lighter areas of border
48
+ * (must free this when deleting structure).
49
+ * NULL means shadows haven't been allocated
50
+ * yet. */
51
+ Pixmap shadow; /* Stipple pattern to use for drawing shadows
52
+ * areas. Used for displays with <= 64 colors
53
+ * or where colormap has filled up. */
54
+ GC bgGC; /* Used (if necessary) to draw areas in the
55
+ * background color. */
56
+ GC darkGC; /* Used to draw darker parts of the border.
57
+ * NULL means the shadow colors haven't been
58
+ * allocated yet.*/
59
+ GC lightGC; /* Used to draw lighter parts of the border.
60
+ * NULL means the shadow colors haven't been
61
+ * allocated yet. */
62
+ Tcl_HashEntry *hashPtr; /* Entry in borderTable (needed in order to
63
+ * delete structure). */
64
+ struct TkBorder *nextPtr; /* Points to the next TkBorder structure with
65
+ * the same color name. Borders with the same
66
+ * name but different screens or colormaps are
67
+ * chained together off a single entry in
68
+ * borderTable. */
69
+ } TkBorder;
70
+
71
+ /*
72
+ * Maximum intensity for a color:
73
+ */
74
+
75
+ #define MAX_INTENSITY 65535
76
+
77
+ /*
78
+ * Declarations for platform specific interfaces used by this module.
79
+ */
80
+
81
+ MODULE_SCOPE TkBorder *TkpGetBorder(void);
82
+ MODULE_SCOPE void TkpGetShadows(TkBorder *borderPtr, Tk_Window tkwin);
83
+ MODULE_SCOPE void TkpFreeBorder(TkBorder *borderPtr);
84
+
85
+ #endif /* _TK3D */
my_container_sandbox/workspace/anaconda3/include/tkArray.h ADDED
@@ -0,0 +1,610 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * tkArray.h --
3
+ *
4
+ * An array is a sequence of items, stored in a contiguous memory region.
5
+ * Random access to any item is very fast. New items can be either appended
6
+ * or prepended. An array may be traversed in the forward or backward direction.
7
+ *
8
+ * Copyright (c) 2018-2019 by Gregor Cramer.
9
+ *
10
+ * See the file "license.terms" for information on usage and redistribution of
11
+ * this file, and for a DISCLAIMER OF ALL WARRANTIES.
12
+ */
13
+
14
+ /*
15
+ * Note that this file will not be included in header files, it is the purpose
16
+ * of this file to be included in source files only. Thus we are not using the
17
+ * prefix "Tk_" here for functions, because all the functions have private scope.
18
+ */
19
+
20
+ /*
21
+ * -------------------------------------------------------------------------------
22
+ * Use the array in the following way:
23
+ * -------------------------------------------------------------------------------
24
+ * typedef struct { int key, value; } Pair;
25
+ * TK_PTR_ARRAY_DEFINE(MyArray, Pair);
26
+ * MyArray *arr = NULL;
27
+ * if (MyArray_IsEmpty(arr)) {
28
+ * MyArray_Append(&arr, MakePair(1, 2));
29
+ * MyArray_Append(&arr, MakePair(2, 3));
30
+ * for (i = 0; i < MyArray_Size(arr); ++i) {
31
+ * Pair *p = MyArray_Get(arr, i);
32
+ * printf("%d -> %d\n", p->key, p->value);
33
+ * ckfree(p);
34
+ * }
35
+ * MyArray_Free(&arr);
36
+ * assert(arr == NULL);
37
+ * }
38
+ * -------------------------------------------------------------------------------
39
+ * Or with aggregated elements:
40
+ * -------------------------------------------------------------------------------
41
+ * typedef struct { int key, value; } Pair;
42
+ * TK_ARRAY_DEFINE(MyArray, Pair);
43
+ * Pair p1 = { 1, 2 };
44
+ * Pair p2 = { 2, 3 };
45
+ * MyArray *arr = NULL;
46
+ * if (MyArray_IsEmpty(arr)) {
47
+ * MyArray_Append(&arr, p1);
48
+ * MyArray_Append(&arr, p2);
49
+ * for (i = 0; i < MyArray_Size(arr); ++i) {
50
+ * const Pair *p = MyArray_Get(arr, i);
51
+ * printf("%d -> %d\n", p->key, p->value);
52
+ * }
53
+ * MyArray_Free(&arr);
54
+ * assert(arr == NULL);
55
+ * }
56
+ * -------------------------------------------------------------------------------
57
+ */
58
+
59
+ /*************************************************************************/
60
+ /*
61
+ * Two array types will be provided:
62
+ * Use TK_ARRAY_DEFINE if your array is aggregating the elements. Use
63
+ * TK_PTR_ARRAY_DEFINE if your array contains pointers to elements. But
64
+ * in latter case the array is not responsible for the lifetime of the
65
+ * elements.
66
+ */
67
+ /*************************************************************************/
68
+ /*
69
+ * Array_ElemSize: Returns the memory size for one array element.
70
+ */
71
+ /*************************************************************************/
72
+ /*
73
+ * Array_BufferSize: Returns the memory size for given number of elements.
74
+ */
75
+ /*************************************************************************/
76
+ /*
77
+ * Array_IsEmpty: Array is empty?
78
+ */
79
+ /*************************************************************************/
80
+ /*
81
+ * Array_Size: Number of elements in array.
82
+ */
83
+ /*************************************************************************/
84
+ /*
85
+ * Array_Capacity: Capacity of given array. This is the maximal number of
86
+ * elements fitting into current array memory without resizing the buffer.
87
+ */
88
+ /*************************************************************************/
89
+ /*
90
+ * Array_SetSize: Set array size, new size must not exceed the capacity of
91
+ * the array. This function has to be used with care when increasing the
92
+ * array size.
93
+ */
94
+ /*************************************************************************/
95
+ /*
96
+ * Array_First: Returns position of first element in array. Given array
97
+ * may be NULL.
98
+ */
99
+ /*************************************************************************/
100
+ /*
101
+ * Array_Last: Returns position after last element in array. Given array
102
+ * may be empty.
103
+ */
104
+ /*************************************************************************/
105
+ /*
106
+ * Array_Front: Returns first element in array. Given array must not be
107
+ * empty.
108
+ */
109
+ /*************************************************************************/
110
+ /*
111
+ * Array_Back: Returns last element in array. Given array must not be
112
+ * empty.
113
+ */
114
+ /*************************************************************************/
115
+ /*
116
+ * Array_Resize: Resize buffer of array for given number of elements. The
117
+ * array may grow or shrink. Note that this function is not initializing
118
+ * the increased buffer.
119
+ */
120
+ /*************************************************************************/
121
+ /*
122
+ * Array_ResizeAndClear: Resize buffer of array for given number of
123
+ * elements. The array may grow or shrink. The increased memory will be
124
+ * filled with zeroes.
125
+ */
126
+ /*************************************************************************/
127
+ /*
128
+ * Array_Clear: Fill specified range with zeroes.
129
+ */
130
+ /*************************************************************************/
131
+ /*
132
+ * Array_Free: Resize array to size zero. This function will release the
133
+ * array buffer.
134
+ */
135
+ /*************************************************************************/
136
+ /*
137
+ * Array_Append: Insert given element after end of array.
138
+ */
139
+ /*************************************************************************/
140
+ /*
141
+ * Array_PopBack: Shrink array by one element. Given array must not be
142
+ * empty.
143
+ */
144
+ /*************************************************************************/
145
+ /*
146
+ * Array_Get: Random access to array element at given position. The given
147
+ * index must not exceed current array size.
148
+ */
149
+ /*************************************************************************/
150
+ /*
151
+ * Array_Set: Replace array element at given position with new value. The
152
+ * given index must not exceed current array size.
153
+ */
154
+ /*************************************************************************/
155
+ /*
156
+ * Array_Find: Return index position of element which matches given
157
+ * argument. If not found then -1 will be returned.
158
+ */
159
+ /*************************************************************************/
160
+
161
+ #ifndef TK_ARRAY_DEFINED
162
+ #define TK_ARRAY_DEFINED
163
+
164
+ #include "tkInt.h"
165
+
166
+ #if defined(__GNUC__) || defined(__clang__)
167
+ # define __TK_ARRAY_UNUSED __attribute__((unused))
168
+ #else
169
+ # define __TK_ARRAY_UNUSED
170
+ #endif
171
+
172
+ #define TK_ARRAY_DEFINE(AT, ElemType) /* AT = type of array */ \
173
+ /* ------------------------------------------------------------------------- */ \
174
+ typedef struct AT { \
175
+ size_t size; \
176
+ size_t capacity; \
177
+ ElemType buf[1]; \
178
+ } AT; \
179
+ \
180
+ __TK_ARRAY_UNUSED \
181
+ static void \
182
+ AT##_Init(AT *arr) \
183
+ { \
184
+ assert(arr); \
185
+ arr->size = 0; \
186
+ arr->capacity = 0; \
187
+ } \
188
+ \
189
+ __TK_ARRAY_UNUSED \
190
+ static size_t \
191
+ AT##_ElemSize() \
192
+ { \
193
+ return sizeof(ElemType); \
194
+ } \
195
+ \
196
+ __TK_ARRAY_UNUSED \
197
+ static size_t \
198
+ AT##_BufferSize(size_t numElems) \
199
+ { \
200
+ return numElems*sizeof(ElemType); \
201
+ } \
202
+ \
203
+ __TK_ARRAY_UNUSED \
204
+ static int \
205
+ AT##_IsEmpty(const AT *arr) \
206
+ { \
207
+ assert(!arr || arr->size != 0xdeadbeef); \
208
+ return !arr || arr->size == 0u; \
209
+ } \
210
+ \
211
+ __TK_ARRAY_UNUSED \
212
+ static size_t \
213
+ AT##_Size(const AT *arr) \
214
+ { \
215
+ assert(!arr || arr->size != 0xdeadbeef); \
216
+ return arr ? arr->size : 0u; \
217
+ } \
218
+ \
219
+ __TK_ARRAY_UNUSED \
220
+ static size_t \
221
+ AT##_Capacity(const AT *arr) \
222
+ { \
223
+ assert(!arr || arr->size != 0xdeadbeef); \
224
+ return arr ? arr->capacity : 0u; \
225
+ } \
226
+ \
227
+ __TK_ARRAY_UNUSED \
228
+ static ElemType * \
229
+ AT##_First(AT *arr) \
230
+ { \
231
+ assert(!arr || arr->size != 0xdeadbeef); \
232
+ return arr ? arr->buf : NULL; \
233
+ } \
234
+ \
235
+ __TK_ARRAY_UNUSED \
236
+ static ElemType * \
237
+ AT##_Last(AT *arr) \
238
+ { \
239
+ assert(!arr || arr->size != 0xdeadbeef); \
240
+ return arr ? arr->buf + arr->size : NULL; \
241
+ } \
242
+ \
243
+ __TK_ARRAY_UNUSED \
244
+ static ElemType * \
245
+ AT##_Front(AT *arr) \
246
+ { \
247
+ assert(arr); \
248
+ assert(arr->size != 0xdeadbeef); \
249
+ assert(!AT##_IsEmpty(arr)); \
250
+ return &arr->buf[0]; \
251
+ } \
252
+ \
253
+ __TK_ARRAY_UNUSED \
254
+ static ElemType * \
255
+ AT##_Back(AT *arr) \
256
+ { \
257
+ assert(arr); \
258
+ assert(arr->size != 0xdeadbeef); \
259
+ assert(!AT##_IsEmpty(arr)); \
260
+ return &arr->buf[arr->size - 1]; \
261
+ } \
262
+ \
263
+ __TK_ARRAY_UNUSED \
264
+ static void \
265
+ AT##_Resize(AT **arrp, size_t newSize) \
266
+ { \
267
+ assert(arrp); \
268
+ assert(!*arrp || (*arrp)->size != 0xdeadbeef); \
269
+ if (newSize == 0) { \
270
+ assert(!*arrp || ((*arrp)->size = 0xdeadbeef)); \
271
+ ckfree(*arrp); \
272
+ *arrp = NULL; \
273
+ } else { \
274
+ int init = *arrp == NULL; \
275
+ size_t memSize = AT##_BufferSize(newSize - 1) + sizeof(AT); \
276
+ *arrp = ckrealloc(*arrp, memSize); \
277
+ if (init) { \
278
+ (*arrp)->size = 0; \
279
+ } else if (newSize < (*arrp)->size) { \
280
+ (*arrp)->size = newSize; \
281
+ } \
282
+ (*arrp)->capacity = newSize; \
283
+ } \
284
+ } \
285
+ \
286
+ __TK_ARRAY_UNUSED \
287
+ static void \
288
+ AT##_Clear(AT *arr, size_t from, size_t to) \
289
+ { \
290
+ assert(arr); \
291
+ assert(arr->size != 0xdeadbeef); \
292
+ assert(to <= AT##_Capacity(arr)); \
293
+ assert(from <= to); \
294
+ memset(arr->buf + from, 0, AT##_BufferSize(to - from)); \
295
+ } \
296
+ \
297
+ __TK_ARRAY_UNUSED \
298
+ static void \
299
+ AT##_ResizeAndClear(AT **arrp, size_t newSize) \
300
+ { \
301
+ size_t oldCapacity; \
302
+ assert(arrp); \
303
+ oldCapacity = *arrp ? (*arrp)->capacity : 0; \
304
+ AT##_Resize(arrp, newSize); \
305
+ if (newSize > oldCapacity) { \
306
+ AT##_Clear(*arrp, oldCapacity, newSize); \
307
+ } \
308
+ } \
309
+ \
310
+ __TK_ARRAY_UNUSED \
311
+ static void \
312
+ AT##_SetSize(AT *arr, size_t newSize) \
313
+ { \
314
+ assert(newSize <= AT##_Capacity(arr)); \
315
+ assert(!arr || arr->size != 0xdeadbeef); \
316
+ if (arr) { \
317
+ arr->size = newSize; \
318
+ } \
319
+ } \
320
+ \
321
+ __TK_ARRAY_UNUSED \
322
+ static void \
323
+ AT##_Append(AT **arrp, ElemType *elem) \
324
+ { \
325
+ assert(arrp); \
326
+ if (!*arrp) { \
327
+ AT##_Resize(arrp, 1); \
328
+ } else if ((*arrp)->size == (*arrp)->capacity) { \
329
+ AT##_Resize(arrp, (*arrp)->capacity + ((*arrp)->capacity + 1)/2); \
330
+ } \
331
+ (*arrp)->buf[(*arrp)->size++] = *elem; \
332
+ } \
333
+ \
334
+ __TK_ARRAY_UNUSED \
335
+ static size_t \
336
+ AT##_PopBack(AT *arr) \
337
+ { \
338
+ assert(!AT##_IsEmpty(arr)); \
339
+ return arr->size -= 1; \
340
+ } \
341
+ \
342
+ __TK_ARRAY_UNUSED \
343
+ static ElemType * \
344
+ AT##_Get(const AT *arr, size_t at) \
345
+ { \
346
+ assert(arr); \
347
+ assert(at < AT##_Size(arr)); \
348
+ return (ElemType *) &arr->buf[at]; \
349
+ } \
350
+ \
351
+ __TK_ARRAY_UNUSED \
352
+ static void \
353
+ AT##_Set(AT *arr, size_t at, ElemType *elem) \
354
+ { \
355
+ assert(arr); \
356
+ assert(at < AT##_Size(arr)); \
357
+ arr->buf[at] = *elem; \
358
+ } \
359
+ \
360
+ __TK_ARRAY_UNUSED \
361
+ static void \
362
+ AT##_Free(AT **arrp) \
363
+ { \
364
+ AT##_Resize(arrp, 0); \
365
+ } \
366
+ \
367
+ __TK_ARRAY_UNUSED \
368
+ static int \
369
+ AT##_Find(const AT *arr, const ElemType *elem) \
370
+ { \
371
+ assert(!arr || arr->size != 0xdeadbeef); \
372
+ if (arr) { \
373
+ const ElemType *buf = arr->buf; \
374
+ size_t i; \
375
+ for (i = 0; i < arr->size; ++i) { \
376
+ if (memcmp(&buf[i], elem, sizeof(ElemType)) == 0) { \
377
+ return (int) i; \
378
+ } \
379
+ } \
380
+ } \
381
+ return -1; \
382
+ } \
383
+ \
384
+ __TK_ARRAY_UNUSED \
385
+ static int \
386
+ AT##_Contains(const AT *arr, const ElemType *elem) \
387
+ { \
388
+ return AT##_Find(arr, elem) != -1; \
389
+ } \
390
+ /* ------------------------------------------------------------------------- */
391
+
392
+ #define TK_PTR_ARRAY_DEFINE(AT, ElemType) /* AT = type of array */ \
393
+ /* ------------------------------------------------------------------------- */ \
394
+ typedef struct AT { \
395
+ size_t size; \
396
+ size_t capacity; \
397
+ ElemType *buf[1]; \
398
+ } AT; \
399
+ \
400
+ __TK_ARRAY_UNUSED \
401
+ static size_t \
402
+ AT##_ElemSize() \
403
+ { \
404
+ return sizeof(ElemType); \
405
+ } \
406
+ \
407
+ __TK_ARRAY_UNUSED \
408
+ static size_t \
409
+ AT##_BufferSize(size_t numElems) \
410
+ { \
411
+ return numElems*sizeof(ElemType *); \
412
+ } \
413
+ \
414
+ __TK_ARRAY_UNUSED \
415
+ static int \
416
+ AT##_IsEmpty(const AT *arr) \
417
+ { \
418
+ assert(!arr || arr->size != 0xdeadbeef); \
419
+ return !arr || arr->size == 0; \
420
+ } \
421
+ \
422
+ __TK_ARRAY_UNUSED \
423
+ static ElemType ** \
424
+ AT##_First(AT *arr) \
425
+ { \
426
+ assert(!arr || arr->size != 0xdeadbeef); \
427
+ return arr ? arr->buf : NULL; \
428
+ } \
429
+ \
430
+ __TK_ARRAY_UNUSED \
431
+ static ElemType ** \
432
+ AT##_Last(AT *arr) \
433
+ { \
434
+ assert(!arr || arr->size != 0xdeadbeef); \
435
+ return arr ? arr->buf + arr->size : NULL; \
436
+ } \
437
+ \
438
+ __TK_ARRAY_UNUSED \
439
+ static ElemType * \
440
+ AT##_Front(AT *arr) \
441
+ { \
442
+ assert(arr); \
443
+ assert(arr->size != 0xdeadbeef); \
444
+ assert(!AT##_IsEmpty(arr)); \
445
+ return arr->buf[0]; \
446
+ } \
447
+ \
448
+ __TK_ARRAY_UNUSED \
449
+ static ElemType * \
450
+ AT##_Back(AT *arr) \
451
+ { \
452
+ assert(arr); \
453
+ assert(arr->size != 0xdeadbeef); \
454
+ assert(!AT##_IsEmpty(arr)); \
455
+ return arr->buf[arr->size - 1]; \
456
+ } \
457
+ \
458
+ __TK_ARRAY_UNUSED \
459
+ static size_t \
460
+ AT##_Size(const AT *arr) \
461
+ { \
462
+ assert(!arr || arr->size != 0xdeadbeef); \
463
+ return arr ? arr->size : 0; \
464
+ } \
465
+ \
466
+ __TK_ARRAY_UNUSED \
467
+ static size_t \
468
+ AT##_Capacity(const AT *arr) \
469
+ { \
470
+ assert(!arr || arr->size != 0xdeadbeef); \
471
+ return arr ? arr->capacity : 0; \
472
+ } \
473
+ \
474
+ __TK_ARRAY_UNUSED \
475
+ static void \
476
+ AT##_Resize(AT **arrp, size_t newCapacity) \
477
+ { \
478
+ assert(arrp); \
479
+ assert(!*arrp || (*arrp)->size != 0xdeadbeef); \
480
+ if (newCapacity == 0) { \
481
+ assert(!*arrp || ((*arrp)->size = 0xdeadbeef)); \
482
+ ckfree(*arrp); \
483
+ *arrp = NULL; \
484
+ } else { \
485
+ int init = *arrp == NULL; \
486
+ size_t memSize = AT##_BufferSize(newCapacity - 1) + sizeof(AT); \
487
+ *arrp = ckrealloc(*arrp, memSize); \
488
+ if (init) { \
489
+ (*arrp)->size = 0; \
490
+ } else if (newCapacity < (*arrp)->size) { \
491
+ (*arrp)->size = newCapacity; \
492
+ } \
493
+ (*arrp)->capacity = newCapacity; \
494
+ } \
495
+ } \
496
+ \
497
+ __TK_ARRAY_UNUSED \
498
+ static void \
499
+ AT##_Clear(AT *arr, size_t from, size_t to) \
500
+ { \
501
+ assert(arr); \
502
+ assert(arr->size != 0xdeadbeef); \
503
+ assert(to <= AT##_Capacity(arr)); \
504
+ assert(from <= to); \
505
+ memset(arr->buf + from, 0, AT##_BufferSize(to - from)); \
506
+ } \
507
+ \
508
+ __TK_ARRAY_UNUSED \
509
+ static void \
510
+ AT##_ResizeAndClear(AT **arrp, size_t newCapacity) \
511
+ { \
512
+ size_t oldCapacity; \
513
+ assert(arrp); \
514
+ oldCapacity = *arrp ? (*arrp)->capacity : 0; \
515
+ AT##_Resize(arrp, newCapacity); \
516
+ if (newCapacity > oldCapacity) { \
517
+ AT##_Clear(*arrp, oldCapacity, newCapacity); \
518
+ } \
519
+ } \
520
+ \
521
+ __TK_ARRAY_UNUSED \
522
+ static void \
523
+ AT##_SetSize(AT *arr, size_t newSize) \
524
+ { \
525
+ assert(arr); \
526
+ assert(newSize <= AT##_Capacity(arr)); \
527
+ arr->size = newSize; \
528
+ } \
529
+ \
530
+ __TK_ARRAY_UNUSED \
531
+ static void \
532
+ AT##_Append(AT **arrp, ElemType *elem) \
533
+ { \
534
+ assert(arrp); \
535
+ if (!*arrp) { \
536
+ AT##_Resize(arrp, 1); \
537
+ } else if ((*arrp)->size == (*arrp)->capacity) { \
538
+ AT##_Resize(arrp, (*arrp)->capacity + ((*arrp)->capacity + 1)/2); \
539
+ } \
540
+ (*arrp)->buf[(*arrp)->size++] = elem; \
541
+ } \
542
+ \
543
+ __TK_ARRAY_UNUSED \
544
+ static size_t \
545
+ AT##_PopBack(AT *arr) \
546
+ { \
547
+ assert(!AT##_IsEmpty(arr)); \
548
+ return arr->size -= 1; \
549
+ } \
550
+ \
551
+ __TK_ARRAY_UNUSED \
552
+ static ElemType * \
553
+ AT##_Get(const AT *arr, size_t at) \
554
+ { \
555
+ assert(arr); \
556
+ assert(at < AT##_Size(arr)); \
557
+ return arr->buf[at]; \
558
+ } \
559
+ \
560
+ __TK_ARRAY_UNUSED \
561
+ static void \
562
+ AT##_Set(AT *arr, size_t at, ElemType *elem) \
563
+ { \
564
+ assert(arr); \
565
+ assert(at < AT##_Size(arr)); \
566
+ arr->buf[at] = elem; \
567
+ } \
568
+ \
569
+ __TK_ARRAY_UNUSED \
570
+ static void \
571
+ AT##_Free(AT **arrp) \
572
+ { \
573
+ AT##_Resize(arrp, 0); \
574
+ } \
575
+ \
576
+ __TK_ARRAY_UNUSED \
577
+ static int \
578
+ AT##_Find(const AT *arr, const ElemType *elem) \
579
+ { \
580
+ assert(!arr || arr->size != 0xdeadbeef); \
581
+ if (arr) { \
582
+ ElemType *const *buf = arr->buf; \
583
+ size_t i; \
584
+ for (i = 0; i < arr->size; ++i) { \
585
+ if (buf[i] == elem) { \
586
+ return (int) i; \
587
+ } \
588
+ } \
589
+ } \
590
+ return -1; \
591
+ } \
592
+ \
593
+ __TK_ARRAY_UNUSED \
594
+ static int \
595
+ AT##_Contains(const AT *arr, const ElemType *elem) \
596
+ { \
597
+ return AT##_Find(arr, elem) != -1; \
598
+ } \
599
+ /* ------------------------------------------------------------------------- */
600
+
601
+ #endif /* TK_ARRAY_DEFINED */
602
+
603
+ /*
604
+ * Local Variables:
605
+ * mode: c
606
+ * c-basic-offset: 4
607
+ * fill-column: 105
608
+ * End:
609
+ * vi:set ts=8 sw=4:
610
+ */
my_container_sandbox/workspace/anaconda3/include/tkColor.h ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * tkColor.h --
3
+ *
4
+ * Declarations of data types and functions used by the Tk color module.
5
+ *
6
+ * Copyright (c) 1996-1997 by Sun Microsystems, Inc.
7
+ *
8
+ * See the file "license.terms" for information on usage and redistribution of
9
+ * this file, and for a DISCLAIMER OF ALL WARRANTIES.
10
+ */
11
+
12
+ #ifndef _TKCOLOR
13
+ #define _TKCOLOR
14
+
15
+ #include "tkInt.h"
16
+
17
+ /*
18
+ * One of the following data structures is used to keep track of each color
19
+ * that is being used by the application; typically there is a colormap entry
20
+ * allocated for each of these colors.
21
+ */
22
+
23
+ #define TK_COLOR_BY_NAME 1
24
+ #define TK_COLOR_BY_VALUE 2
25
+
26
+ #define COLOR_MAGIC ((unsigned int) 0x46140277)
27
+
28
+ typedef struct TkColor {
29
+ XColor color; /* Information about this color. */
30
+ unsigned int magic; /* Used for quick integrity check on this
31
+ * structure. Must always have the value
32
+ * COLOR_MAGIC. */
33
+ GC gc; /* Simple gc with this color as foreground
34
+ * color and all other fields defaulted. May
35
+ * be NULL. */
36
+ Screen *screen; /* Screen where this color is valid. Used to
37
+ * delete it, and to find its display. */
38
+ Colormap colormap; /* Colormap from which this entry was
39
+ * allocated. */
40
+ Visual *visual; /* Visual associated with colormap. */
41
+ int resourceRefCount; /* Number of active uses of this color (each
42
+ * active use corresponds to a call to
43
+ * Tk_AllocColorFromObj or Tk_GetColor). If
44
+ * this count is 0, then this TkColor
45
+ * structure is no longer valid and it isn't
46
+ * present in a hash table: it is being kept
47
+ * around only because there are objects
48
+ * referring to it. The structure is freed
49
+ * when resourceRefCount and objRefCount are
50
+ * both 0. */
51
+ int objRefCount; /* The number of Tcl objects that reference
52
+ * this structure. */
53
+ int type; /* TK_COLOR_BY_NAME or TK_COLOR_BY_VALUE. */
54
+ Tcl_HashEntry *hashPtr; /* Pointer to hash table entry for this
55
+ * structure. (for use in deleting entry). */
56
+ struct TkColor *nextPtr; /* Points to the next TkColor structure with
57
+ * the same color name. Colors with the same
58
+ * name but different screens or colormaps are
59
+ * chained together off a single entry in
60
+ * nameTable. For colors in valueTable (those
61
+ * allocated by Tk_GetColorByValue) this field
62
+ * is always NULL. */
63
+ } TkColor;
64
+
65
+ /*
66
+ * Common APIs exported from all platform-specific implementations.
67
+ */
68
+
69
+ #ifndef TkpFreeColor
70
+ MODULE_SCOPE void TkpFreeColor(TkColor *tkColPtr);
71
+ #endif
72
+ MODULE_SCOPE TkColor * TkpGetColor(Tk_Window tkwin, Tk_Uid name);
73
+ MODULE_SCOPE TkColor * TkpGetColorByValue(Tk_Window tkwin, XColor *colorPtr);
74
+
75
+ #endif /* _TKCOLOR */
my_container_sandbox/workspace/anaconda3/include/tkDecls.h ADDED
@@ -0,0 +1,1759 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * tkDecls.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 _TKDECLS
13
+ #define _TKDECLS
14
+
15
+ #ifdef BUILD_tk
16
+ #undef TCL_STORAGE_CLASS
17
+ #define TCL_STORAGE_CLASS DLLEXPORT
18
+ #endif
19
+
20
+ /*
21
+ * WARNING: This file is automatically generated by the tools/genStubs.tcl
22
+ * script. Any modifications to the function declarations below should be made
23
+ * in the generic/tk.decls script.
24
+ */
25
+
26
+ /* !BEGIN!: Do not edit below this line. */
27
+
28
+ #ifdef __cplusplus
29
+ extern "C" {
30
+ #endif
31
+
32
+ /*
33
+ * Exported function declarations:
34
+ */
35
+
36
+ /* 0 */
37
+ EXTERN void Tk_MainLoop(void);
38
+ /* 1 */
39
+ EXTERN XColor * Tk_3DBorderColor(Tk_3DBorder border);
40
+ /* 2 */
41
+ EXTERN GC Tk_3DBorderGC(Tk_Window tkwin, Tk_3DBorder border,
42
+ int which);
43
+ /* 3 */
44
+ EXTERN void Tk_3DHorizontalBevel(Tk_Window tkwin,
45
+ Drawable drawable, Tk_3DBorder border, int x,
46
+ int y, int width, int height, int leftIn,
47
+ int rightIn, int topBevel, int relief);
48
+ /* 4 */
49
+ EXTERN void Tk_3DVerticalBevel(Tk_Window tkwin,
50
+ Drawable drawable, Tk_3DBorder border, int x,
51
+ int y, int width, int height, int leftBevel,
52
+ int relief);
53
+ /* 5 */
54
+ EXTERN void Tk_AddOption(Tk_Window tkwin, const char *name,
55
+ const char *value, int priority);
56
+ /* 6 */
57
+ EXTERN void Tk_BindEvent(Tk_BindingTable bindingTable,
58
+ XEvent *eventPtr, Tk_Window tkwin,
59
+ int numObjects, ClientData *objectPtr);
60
+ /* 7 */
61
+ EXTERN void Tk_CanvasDrawableCoords(Tk_Canvas canvas, double x,
62
+ double y, short *drawableXPtr,
63
+ short *drawableYPtr);
64
+ /* 8 */
65
+ EXTERN void Tk_CanvasEventuallyRedraw(Tk_Canvas canvas, int x1,
66
+ int y1, int x2, int y2);
67
+ /* 9 */
68
+ EXTERN int Tk_CanvasGetCoord(Tcl_Interp *interp,
69
+ Tk_Canvas canvas, const char *str,
70
+ double *doublePtr);
71
+ /* 10 */
72
+ EXTERN Tk_CanvasTextInfo * Tk_CanvasGetTextInfo(Tk_Canvas canvas);
73
+ /* 11 */
74
+ EXTERN int Tk_CanvasPsBitmap(Tcl_Interp *interp,
75
+ Tk_Canvas canvas, Pixmap bitmap, int x,
76
+ int y, int width, int height);
77
+ /* 12 */
78
+ EXTERN int Tk_CanvasPsColor(Tcl_Interp *interp,
79
+ Tk_Canvas canvas, XColor *colorPtr);
80
+ /* 13 */
81
+ EXTERN int Tk_CanvasPsFont(Tcl_Interp *interp, Tk_Canvas canvas,
82
+ Tk_Font font);
83
+ /* 14 */
84
+ EXTERN void Tk_CanvasPsPath(Tcl_Interp *interp, Tk_Canvas canvas,
85
+ double *coordPtr, int numPoints);
86
+ /* 15 */
87
+ EXTERN int Tk_CanvasPsStipple(Tcl_Interp *interp,
88
+ Tk_Canvas canvas, Pixmap bitmap);
89
+ /* 16 */
90
+ EXTERN double Tk_CanvasPsY(Tk_Canvas canvas, double y);
91
+ /* 17 */
92
+ EXTERN void Tk_CanvasSetStippleOrigin(Tk_Canvas canvas, GC gc);
93
+ /* 18 */
94
+ EXTERN int Tk_CanvasTagsParseProc(ClientData clientData,
95
+ Tcl_Interp *interp, Tk_Window tkwin,
96
+ const char *value, char *widgRec, int offset);
97
+ /* 19 */
98
+ EXTERN CONST86 char * Tk_CanvasTagsPrintProc(ClientData clientData,
99
+ Tk_Window tkwin, char *widgRec, int offset,
100
+ Tcl_FreeProc **freeProcPtr);
101
+ /* 20 */
102
+ EXTERN Tk_Window Tk_CanvasTkwin(Tk_Canvas canvas);
103
+ /* 21 */
104
+ EXTERN void Tk_CanvasWindowCoords(Tk_Canvas canvas, double x,
105
+ double y, short *screenXPtr,
106
+ short *screenYPtr);
107
+ /* 22 */
108
+ EXTERN void Tk_ChangeWindowAttributes(Tk_Window tkwin,
109
+ unsigned long valueMask,
110
+ XSetWindowAttributes *attsPtr);
111
+ /* 23 */
112
+ EXTERN int Tk_CharBbox(Tk_TextLayout layout, int index,
113
+ int *xPtr, int *yPtr, int *widthPtr,
114
+ int *heightPtr);
115
+ /* 24 */
116
+ EXTERN void Tk_ClearSelection(Tk_Window tkwin, Atom selection);
117
+ /* 25 */
118
+ EXTERN int Tk_ClipboardAppend(Tcl_Interp *interp,
119
+ Tk_Window tkwin, Atom target, Atom format,
120
+ const char *buffer);
121
+ /* 26 */
122
+ EXTERN int Tk_ClipboardClear(Tcl_Interp *interp,
123
+ Tk_Window tkwin);
124
+ /* 27 */
125
+ EXTERN int Tk_ConfigureInfo(Tcl_Interp *interp, Tk_Window tkwin,
126
+ const Tk_ConfigSpec *specs, char *widgRec,
127
+ const char *argvName, int flags);
128
+ /* 28 */
129
+ EXTERN int Tk_ConfigureValue(Tcl_Interp *interp,
130
+ Tk_Window tkwin, const Tk_ConfigSpec *specs,
131
+ char *widgRec, const char *argvName,
132
+ int flags);
133
+ /* 29 */
134
+ EXTERN int Tk_ConfigureWidget(Tcl_Interp *interp,
135
+ Tk_Window tkwin, const Tk_ConfigSpec *specs,
136
+ int argc, CONST84 char **argv, char *widgRec,
137
+ int flags);
138
+ /* 30 */
139
+ EXTERN void Tk_ConfigureWindow(Tk_Window tkwin,
140
+ unsigned int valueMask,
141
+ XWindowChanges *valuePtr);
142
+ /* 31 */
143
+ EXTERN Tk_TextLayout Tk_ComputeTextLayout(Tk_Font font, const char *str,
144
+ int numChars, int wrapLength,
145
+ Tk_Justify justify, int flags, int *widthPtr,
146
+ int *heightPtr);
147
+ /* 32 */
148
+ EXTERN Tk_Window Tk_CoordsToWindow(int rootX, int rootY,
149
+ Tk_Window tkwin);
150
+ /* 33 */
151
+ EXTERN unsigned long Tk_CreateBinding(Tcl_Interp *interp,
152
+ Tk_BindingTable bindingTable,
153
+ ClientData object, const char *eventStr,
154
+ const char *script, int append);
155
+ /* 34 */
156
+ EXTERN Tk_BindingTable Tk_CreateBindingTable(Tcl_Interp *interp);
157
+ /* 35 */
158
+ EXTERN Tk_ErrorHandler Tk_CreateErrorHandler(Display *display, int errNum,
159
+ int request, int minorCode,
160
+ Tk_ErrorProc *errorProc,
161
+ ClientData clientData);
162
+ /* 36 */
163
+ EXTERN void Tk_CreateEventHandler(Tk_Window token,
164
+ unsigned long mask, Tk_EventProc *proc,
165
+ ClientData clientData);
166
+ /* 37 */
167
+ EXTERN void Tk_CreateGenericHandler(Tk_GenericProc *proc,
168
+ ClientData clientData);
169
+ /* 38 */
170
+ EXTERN void Tk_CreateImageType(const Tk_ImageType *typePtr);
171
+ /* 39 */
172
+ EXTERN void Tk_CreateItemType(Tk_ItemType *typePtr);
173
+ /* 40 */
174
+ EXTERN void Tk_CreatePhotoImageFormat(
175
+ const Tk_PhotoImageFormat *formatPtr);
176
+ /* 41 */
177
+ EXTERN void Tk_CreateSelHandler(Tk_Window tkwin, Atom selection,
178
+ Atom target, Tk_SelectionProc *proc,
179
+ ClientData clientData, Atom format);
180
+ /* 42 */
181
+ EXTERN Tk_Window Tk_CreateWindow(Tcl_Interp *interp, Tk_Window parent,
182
+ const char *name, const char *screenName);
183
+ /* 43 */
184
+ EXTERN Tk_Window Tk_CreateWindowFromPath(Tcl_Interp *interp,
185
+ Tk_Window tkwin, const char *pathName,
186
+ const char *screenName);
187
+ /* 44 */
188
+ EXTERN int Tk_DefineBitmap(Tcl_Interp *interp, const char *name,
189
+ const void *source, int width, int height);
190
+ /* 45 */
191
+ EXTERN void Tk_DefineCursor(Tk_Window window, Tk_Cursor cursor);
192
+ /* 46 */
193
+ EXTERN void Tk_DeleteAllBindings(Tk_BindingTable bindingTable,
194
+ ClientData object);
195
+ /* 47 */
196
+ EXTERN int Tk_DeleteBinding(Tcl_Interp *interp,
197
+ Tk_BindingTable bindingTable,
198
+ ClientData object, const char *eventStr);
199
+ /* 48 */
200
+ EXTERN void Tk_DeleteBindingTable(Tk_BindingTable bindingTable);
201
+ /* 49 */
202
+ EXTERN void Tk_DeleteErrorHandler(Tk_ErrorHandler handler);
203
+ /* 50 */
204
+ EXTERN void Tk_DeleteEventHandler(Tk_Window token,
205
+ unsigned long mask, Tk_EventProc *proc,
206
+ ClientData clientData);
207
+ /* 51 */
208
+ EXTERN void Tk_DeleteGenericHandler(Tk_GenericProc *proc,
209
+ ClientData clientData);
210
+ /* 52 */
211
+ EXTERN void Tk_DeleteImage(Tcl_Interp *interp, const char *name);
212
+ /* 53 */
213
+ EXTERN void Tk_DeleteSelHandler(Tk_Window tkwin, Atom selection,
214
+ Atom target);
215
+ /* 54 */
216
+ EXTERN void Tk_DestroyWindow(Tk_Window tkwin);
217
+ /* 55 */
218
+ EXTERN CONST84_RETURN char * Tk_DisplayName(Tk_Window tkwin);
219
+ /* 56 */
220
+ EXTERN int Tk_DistanceToTextLayout(Tk_TextLayout layout, int x,
221
+ int y);
222
+ /* 57 */
223
+ EXTERN void Tk_Draw3DPolygon(Tk_Window tkwin, Drawable drawable,
224
+ Tk_3DBorder border, XPoint *pointPtr,
225
+ int numPoints, int borderWidth,
226
+ int leftRelief);
227
+ /* 58 */
228
+ EXTERN void Tk_Draw3DRectangle(Tk_Window tkwin,
229
+ Drawable drawable, Tk_3DBorder border, int x,
230
+ int y, int width, int height,
231
+ int borderWidth, int relief);
232
+ /* 59 */
233
+ EXTERN void Tk_DrawChars(Display *display, Drawable drawable,
234
+ GC gc, Tk_Font tkfont, const char *source,
235
+ int numBytes, int x, int y);
236
+ /* 60 */
237
+ EXTERN void Tk_DrawFocusHighlight(Tk_Window tkwin, GC gc,
238
+ int width, Drawable drawable);
239
+ /* 61 */
240
+ EXTERN void Tk_DrawTextLayout(Display *display,
241
+ Drawable drawable, GC gc,
242
+ Tk_TextLayout layout, int x, int y,
243
+ int firstChar, int lastChar);
244
+ /* 62 */
245
+ EXTERN void Tk_Fill3DPolygon(Tk_Window tkwin, Drawable drawable,
246
+ Tk_3DBorder border, XPoint *pointPtr,
247
+ int numPoints, int borderWidth,
248
+ int leftRelief);
249
+ /* 63 */
250
+ EXTERN void Tk_Fill3DRectangle(Tk_Window tkwin,
251
+ Drawable drawable, Tk_3DBorder border, int x,
252
+ int y, int width, int height,
253
+ int borderWidth, int relief);
254
+ /* 64 */
255
+ EXTERN Tk_PhotoHandle Tk_FindPhoto(Tcl_Interp *interp,
256
+ const char *imageName);
257
+ /* 65 */
258
+ EXTERN Font Tk_FontId(Tk_Font font);
259
+ /* 66 */
260
+ EXTERN void Tk_Free3DBorder(Tk_3DBorder border);
261
+ /* 67 */
262
+ EXTERN void Tk_FreeBitmap(Display *display, Pixmap bitmap);
263
+ /* 68 */
264
+ EXTERN void Tk_FreeColor(XColor *colorPtr);
265
+ /* 69 */
266
+ EXTERN void Tk_FreeColormap(Display *display, Colormap colormap);
267
+ /* 70 */
268
+ EXTERN void Tk_FreeCursor(Display *display, Tk_Cursor cursor);
269
+ /* 71 */
270
+ EXTERN void Tk_FreeFont(Tk_Font f);
271
+ /* 72 */
272
+ EXTERN void Tk_FreeGC(Display *display, GC gc);
273
+ /* 73 */
274
+ EXTERN void Tk_FreeImage(Tk_Image image);
275
+ /* 74 */
276
+ EXTERN void Tk_FreeOptions(const Tk_ConfigSpec *specs,
277
+ char *widgRec, Display *display,
278
+ int needFlags);
279
+ /* 75 */
280
+ EXTERN void Tk_FreePixmap(Display *display, Pixmap pixmap);
281
+ /* 76 */
282
+ EXTERN void Tk_FreeTextLayout(Tk_TextLayout textLayout);
283
+ /* 77 */
284
+ EXTERN void Tk_FreeXId(Display *display, XID xid);
285
+ /* 78 */
286
+ EXTERN GC Tk_GCForColor(XColor *colorPtr, Drawable drawable);
287
+ /* 79 */
288
+ EXTERN void Tk_GeometryRequest(Tk_Window tkwin, int reqWidth,
289
+ int reqHeight);
290
+ /* 80 */
291
+ EXTERN Tk_3DBorder Tk_Get3DBorder(Tcl_Interp *interp, Tk_Window tkwin,
292
+ Tk_Uid colorName);
293
+ /* 81 */
294
+ EXTERN void Tk_GetAllBindings(Tcl_Interp *interp,
295
+ Tk_BindingTable bindingTable,
296
+ ClientData object);
297
+ /* 82 */
298
+ EXTERN int Tk_GetAnchor(Tcl_Interp *interp, const char *str,
299
+ Tk_Anchor *anchorPtr);
300
+ /* 83 */
301
+ EXTERN CONST84_RETURN char * Tk_GetAtomName(Tk_Window tkwin, Atom atom);
302
+ /* 84 */
303
+ EXTERN CONST84_RETURN char * Tk_GetBinding(Tcl_Interp *interp,
304
+ Tk_BindingTable bindingTable,
305
+ ClientData object, const char *eventStr);
306
+ /* 85 */
307
+ EXTERN Pixmap Tk_GetBitmap(Tcl_Interp *interp, Tk_Window tkwin,
308
+ const char *str);
309
+ /* 86 */
310
+ EXTERN Pixmap Tk_GetBitmapFromData(Tcl_Interp *interp,
311
+ Tk_Window tkwin, const void *source,
312
+ int width, int height);
313
+ /* 87 */
314
+ EXTERN int Tk_GetCapStyle(Tcl_Interp *interp, const char *str,
315
+ int *capPtr);
316
+ /* 88 */
317
+ EXTERN XColor * Tk_GetColor(Tcl_Interp *interp, Tk_Window tkwin,
318
+ Tk_Uid name);
319
+ /* 89 */
320
+ EXTERN XColor * Tk_GetColorByValue(Tk_Window tkwin, XColor *colorPtr);
321
+ /* 90 */
322
+ EXTERN Colormap Tk_GetColormap(Tcl_Interp *interp, Tk_Window tkwin,
323
+ const char *str);
324
+ /* 91 */
325
+ EXTERN Tk_Cursor Tk_GetCursor(Tcl_Interp *interp, Tk_Window tkwin,
326
+ Tk_Uid str);
327
+ /* 92 */
328
+ EXTERN Tk_Cursor Tk_GetCursorFromData(Tcl_Interp *interp,
329
+ Tk_Window tkwin, const char *source,
330
+ const char *mask, int width, int height,
331
+ int xHot, int yHot, Tk_Uid fg, Tk_Uid bg);
332
+ /* 93 */
333
+ EXTERN Tk_Font Tk_GetFont(Tcl_Interp *interp, Tk_Window tkwin,
334
+ const char *str);
335
+ /* 94 */
336
+ EXTERN Tk_Font Tk_GetFontFromObj(Tk_Window tkwin, Tcl_Obj *objPtr);
337
+ /* 95 */
338
+ EXTERN void Tk_GetFontMetrics(Tk_Font font,
339
+ Tk_FontMetrics *fmPtr);
340
+ /* 96 */
341
+ EXTERN GC Tk_GetGC(Tk_Window tkwin, unsigned long valueMask,
342
+ XGCValues *valuePtr);
343
+ /* 97 */
344
+ EXTERN Tk_Image Tk_GetImage(Tcl_Interp *interp, Tk_Window tkwin,
345
+ const char *name,
346
+ Tk_ImageChangedProc *changeProc,
347
+ ClientData clientData);
348
+ /* 98 */
349
+ EXTERN ClientData Tk_GetImageMasterData(Tcl_Interp *interp,
350
+ const char *name,
351
+ CONST86 Tk_ImageType **typePtrPtr);
352
+ /* 99 */
353
+ EXTERN Tk_ItemType * Tk_GetItemTypes(void);
354
+ /* 100 */
355
+ EXTERN int Tk_GetJoinStyle(Tcl_Interp *interp, const char *str,
356
+ int *joinPtr);
357
+ /* 101 */
358
+ EXTERN int Tk_GetJustify(Tcl_Interp *interp, const char *str,
359
+ Tk_Justify *justifyPtr);
360
+ /* 102 */
361
+ EXTERN int Tk_GetNumMainWindows(void);
362
+ /* 103 */
363
+ EXTERN Tk_Uid Tk_GetOption(Tk_Window tkwin, const char *name,
364
+ const char *className);
365
+ /* 104 */
366
+ EXTERN int Tk_GetPixels(Tcl_Interp *interp, Tk_Window tkwin,
367
+ const char *str, int *intPtr);
368
+ /* 105 */
369
+ EXTERN Pixmap Tk_GetPixmap(Display *display, Drawable d, int width,
370
+ int height, int depth);
371
+ /* 106 */
372
+ EXTERN int Tk_GetRelief(Tcl_Interp *interp, const char *name,
373
+ int *reliefPtr);
374
+ /* 107 */
375
+ EXTERN void Tk_GetRootCoords(Tk_Window tkwin, int *xPtr,
376
+ int *yPtr);
377
+ /* 108 */
378
+ EXTERN int Tk_GetScrollInfo(Tcl_Interp *interp, int argc,
379
+ CONST84 char **argv, double *dblPtr,
380
+ int *intPtr);
381
+ /* 109 */
382
+ EXTERN int Tk_GetScreenMM(Tcl_Interp *interp, Tk_Window tkwin,
383
+ const char *str, double *doublePtr);
384
+ /* 110 */
385
+ EXTERN int Tk_GetSelection(Tcl_Interp *interp, Tk_Window tkwin,
386
+ Atom selection, Atom target,
387
+ Tk_GetSelProc *proc, ClientData clientData);
388
+ /* 111 */
389
+ EXTERN Tk_Uid Tk_GetUid(const char *str);
390
+ /* 112 */
391
+ EXTERN Visual * Tk_GetVisual(Tcl_Interp *interp, Tk_Window tkwin,
392
+ const char *str, int *depthPtr,
393
+ Colormap *colormapPtr);
394
+ /* 113 */
395
+ EXTERN void Tk_GetVRootGeometry(Tk_Window tkwin, int *xPtr,
396
+ int *yPtr, int *widthPtr, int *heightPtr);
397
+ /* 114 */
398
+ EXTERN int Tk_Grab(Tcl_Interp *interp, Tk_Window tkwin,
399
+ int grabGlobal);
400
+ /* 115 */
401
+ EXTERN void Tk_HandleEvent(XEvent *eventPtr);
402
+ /* 116 */
403
+ EXTERN Tk_Window Tk_IdToWindow(Display *display, Window window);
404
+ /* 117 */
405
+ EXTERN void Tk_ImageChanged(Tk_ImageMaster model, int x, int y,
406
+ int width, int height, int imageWidth,
407
+ int imageHeight);
408
+ /* 118 */
409
+ EXTERN int Tk_Init(Tcl_Interp *interp);
410
+ /* 119 */
411
+ EXTERN Atom Tk_InternAtom(Tk_Window tkwin, const char *name);
412
+ /* 120 */
413
+ EXTERN int Tk_IntersectTextLayout(Tk_TextLayout layout, int x,
414
+ int y, int width, int height);
415
+ /* 121 */
416
+ EXTERN void Tk_MaintainGeometry(Tk_Window window,
417
+ Tk_Window container, int x, int y, int width,
418
+ int height);
419
+ /* 122 */
420
+ EXTERN Tk_Window Tk_MainWindow(Tcl_Interp *interp);
421
+ /* 123 */
422
+ EXTERN void Tk_MakeWindowExist(Tk_Window tkwin);
423
+ /* 124 */
424
+ EXTERN void Tk_ManageGeometry(Tk_Window tkwin,
425
+ const Tk_GeomMgr *mgrPtr,
426
+ ClientData clientData);
427
+ /* 125 */
428
+ EXTERN void Tk_MapWindow(Tk_Window tkwin);
429
+ /* 126 */
430
+ EXTERN int Tk_MeasureChars(Tk_Font tkfont, const char *source,
431
+ int numBytes, int maxPixels, int flags,
432
+ int *lengthPtr);
433
+ /* 127 */
434
+ EXTERN void Tk_MoveResizeWindow(Tk_Window tkwin, int x, int y,
435
+ int width, int height);
436
+ /* 128 */
437
+ EXTERN void Tk_MoveWindow(Tk_Window tkwin, int x, int y);
438
+ /* 129 */
439
+ EXTERN void Tk_MoveToplevelWindow(Tk_Window tkwin, int x, int y);
440
+ /* 130 */
441
+ EXTERN CONST84_RETURN char * Tk_NameOf3DBorder(Tk_3DBorder border);
442
+ /* 131 */
443
+ EXTERN CONST84_RETURN char * Tk_NameOfAnchor(Tk_Anchor anchor);
444
+ /* 132 */
445
+ EXTERN CONST84_RETURN char * Tk_NameOfBitmap(Display *display, Pixmap bitmap);
446
+ /* 133 */
447
+ EXTERN CONST84_RETURN char * Tk_NameOfCapStyle(int cap);
448
+ /* 134 */
449
+ EXTERN CONST84_RETURN char * Tk_NameOfColor(XColor *colorPtr);
450
+ /* 135 */
451
+ EXTERN CONST84_RETURN char * Tk_NameOfCursor(Display *display,
452
+ Tk_Cursor cursor);
453
+ /* 136 */
454
+ EXTERN CONST84_RETURN char * Tk_NameOfFont(Tk_Font font);
455
+ /* 137 */
456
+ EXTERN CONST84_RETURN char * Tk_NameOfImage(Tk_ImageMaster model);
457
+ /* 138 */
458
+ EXTERN CONST84_RETURN char * Tk_NameOfJoinStyle(int join);
459
+ /* 139 */
460
+ EXTERN CONST84_RETURN char * Tk_NameOfJustify(Tk_Justify justify);
461
+ /* 140 */
462
+ EXTERN CONST84_RETURN char * Tk_NameOfRelief(int relief);
463
+ /* 141 */
464
+ EXTERN Tk_Window Tk_NameToWindow(Tcl_Interp *interp,
465
+ const char *pathName, Tk_Window tkwin);
466
+ /* 142 */
467
+ EXTERN void Tk_OwnSelection(Tk_Window tkwin, Atom selection,
468
+ Tk_LostSelProc *proc, ClientData clientData);
469
+ /* 143 */
470
+ EXTERN int Tk_ParseArgv(Tcl_Interp *interp, Tk_Window tkwin,
471
+ int *argcPtr, CONST84 char **argv,
472
+ const Tk_ArgvInfo *argTable, int flags);
473
+ /* 144 */
474
+ EXTERN void Tk_PhotoPutBlock_NoComposite(Tk_PhotoHandle handle,
475
+ Tk_PhotoImageBlock *blockPtr, int x, int y,
476
+ int width, int height);
477
+ /* 145 */
478
+ EXTERN void Tk_PhotoPutZoomedBlock_NoComposite(
479
+ Tk_PhotoHandle handle,
480
+ Tk_PhotoImageBlock *blockPtr, int x, int y,
481
+ int width, int height, int zoomX, int zoomY,
482
+ int subsampleX, int subsampleY);
483
+ /* 146 */
484
+ EXTERN int Tk_PhotoGetImage(Tk_PhotoHandle handle,
485
+ Tk_PhotoImageBlock *blockPtr);
486
+ /* 147 */
487
+ EXTERN void Tk_PhotoBlank(Tk_PhotoHandle handle);
488
+ /* 148 */
489
+ EXTERN void Tk_PhotoExpand_Panic(Tk_PhotoHandle handle,
490
+ int width, int height);
491
+ /* 149 */
492
+ EXTERN void Tk_PhotoGetSize(Tk_PhotoHandle handle, int *widthPtr,
493
+ int *heightPtr);
494
+ /* 150 */
495
+ EXTERN void Tk_PhotoSetSize_Panic(Tk_PhotoHandle handle,
496
+ int width, int height);
497
+ /* 151 */
498
+ EXTERN int Tk_PointToChar(Tk_TextLayout layout, int x, int y);
499
+ /* 152 */
500
+ EXTERN int Tk_PostscriptFontName(Tk_Font tkfont,
501
+ Tcl_DString *dsPtr);
502
+ /* 153 */
503
+ EXTERN void Tk_PreserveColormap(Display *display,
504
+ Colormap colormap);
505
+ /* 154 */
506
+ EXTERN void Tk_QueueWindowEvent(XEvent *eventPtr,
507
+ Tcl_QueuePosition position);
508
+ /* 155 */
509
+ EXTERN void Tk_RedrawImage(Tk_Image image, int imageX,
510
+ int imageY, int width, int height,
511
+ Drawable drawable, int drawableX,
512
+ int drawableY);
513
+ /* 156 */
514
+ EXTERN void Tk_ResizeWindow(Tk_Window tkwin, int width,
515
+ int height);
516
+ /* 157 */
517
+ EXTERN int Tk_RestackWindow(Tk_Window tkwin, int aboveBelow,
518
+ Tk_Window other);
519
+ /* 158 */
520
+ EXTERN Tk_RestrictProc * Tk_RestrictEvents(Tk_RestrictProc *proc,
521
+ ClientData arg, ClientData *prevArgPtr);
522
+ /* 159 */
523
+ EXTERN int Tk_SafeInit(Tcl_Interp *interp);
524
+ /* 160 */
525
+ EXTERN const char * Tk_SetAppName(Tk_Window tkwin, const char *name);
526
+ /* 161 */
527
+ EXTERN void Tk_SetBackgroundFromBorder(Tk_Window tkwin,
528
+ Tk_3DBorder border);
529
+ /* 162 */
530
+ EXTERN void Tk_SetClass(Tk_Window tkwin, const char *className);
531
+ /* 163 */
532
+ EXTERN void Tk_SetGrid(Tk_Window tkwin, int reqWidth,
533
+ int reqHeight, int gridWidth, int gridHeight);
534
+ /* 164 */
535
+ EXTERN void Tk_SetInternalBorder(Tk_Window tkwin, int width);
536
+ /* 165 */
537
+ EXTERN void Tk_SetWindowBackground(Tk_Window tkwin,
538
+ unsigned long pixel);
539
+ /* 166 */
540
+ EXTERN void Tk_SetWindowBackgroundPixmap(Tk_Window tkwin,
541
+ Pixmap pixmap);
542
+ /* 167 */
543
+ EXTERN void Tk_SetWindowBorder(Tk_Window tkwin,
544
+ unsigned long pixel);
545
+ /* 168 */
546
+ EXTERN void Tk_SetWindowBorderWidth(Tk_Window tkwin, int width);
547
+ /* 169 */
548
+ EXTERN void Tk_SetWindowBorderPixmap(Tk_Window tkwin,
549
+ Pixmap pixmap);
550
+ /* 170 */
551
+ EXTERN void Tk_SetWindowColormap(Tk_Window tkwin,
552
+ Colormap colormap);
553
+ /* 171 */
554
+ EXTERN int Tk_SetWindowVisual(Tk_Window tkwin, Visual *visual,
555
+ int depth, Colormap colormap);
556
+ /* 172 */
557
+ EXTERN void Tk_SizeOfBitmap(Display *display, Pixmap bitmap,
558
+ int *widthPtr, int *heightPtr);
559
+ /* 173 */
560
+ EXTERN void Tk_SizeOfImage(Tk_Image image, int *widthPtr,
561
+ int *heightPtr);
562
+ /* 174 */
563
+ EXTERN int Tk_StrictMotif(Tk_Window tkwin);
564
+ /* 175 */
565
+ EXTERN void Tk_TextLayoutToPostscript(Tcl_Interp *interp,
566
+ Tk_TextLayout layout);
567
+ /* 176 */
568
+ EXTERN int Tk_TextWidth(Tk_Font font, const char *str,
569
+ int numBytes);
570
+ /* 177 */
571
+ EXTERN void Tk_UndefineCursor(Tk_Window window);
572
+ /* 178 */
573
+ EXTERN void Tk_UnderlineChars(Display *display,
574
+ Drawable drawable, GC gc, Tk_Font tkfont,
575
+ const char *source, int x, int y,
576
+ int firstByte, int lastByte);
577
+ /* 179 */
578
+ EXTERN void Tk_UnderlineTextLayout(Display *display,
579
+ Drawable drawable, GC gc,
580
+ Tk_TextLayout layout, int x, int y,
581
+ int underline);
582
+ /* 180 */
583
+ EXTERN void Tk_Ungrab(Tk_Window tkwin);
584
+ /* 181 */
585
+ EXTERN void Tk_UnmaintainGeometry(Tk_Window window,
586
+ Tk_Window container);
587
+ /* 182 */
588
+ EXTERN void Tk_UnmapWindow(Tk_Window tkwin);
589
+ /* 183 */
590
+ EXTERN void Tk_UnsetGrid(Tk_Window tkwin);
591
+ /* 184 */
592
+ EXTERN void Tk_UpdatePointer(Tk_Window tkwin, int x, int y,
593
+ int state);
594
+ /* 185 */
595
+ EXTERN Pixmap Tk_AllocBitmapFromObj(Tcl_Interp *interp,
596
+ Tk_Window tkwin, Tcl_Obj *objPtr);
597
+ /* 186 */
598
+ EXTERN Tk_3DBorder Tk_Alloc3DBorderFromObj(Tcl_Interp *interp,
599
+ Tk_Window tkwin, Tcl_Obj *objPtr);
600
+ /* 187 */
601
+ EXTERN XColor * Tk_AllocColorFromObj(Tcl_Interp *interp,
602
+ Tk_Window tkwin, Tcl_Obj *objPtr);
603
+ /* 188 */
604
+ EXTERN Tk_Cursor Tk_AllocCursorFromObj(Tcl_Interp *interp,
605
+ Tk_Window tkwin, Tcl_Obj *objPtr);
606
+ /* 189 */
607
+ EXTERN Tk_Font Tk_AllocFontFromObj(Tcl_Interp *interp,
608
+ Tk_Window tkwin, Tcl_Obj *objPtr);
609
+ /* 190 */
610
+ EXTERN Tk_OptionTable Tk_CreateOptionTable(Tcl_Interp *interp,
611
+ const Tk_OptionSpec *templatePtr);
612
+ /* 191 */
613
+ EXTERN void Tk_DeleteOptionTable(Tk_OptionTable optionTable);
614
+ /* 192 */
615
+ EXTERN void Tk_Free3DBorderFromObj(Tk_Window tkwin,
616
+ Tcl_Obj *objPtr);
617
+ /* 193 */
618
+ EXTERN void Tk_FreeBitmapFromObj(Tk_Window tkwin,
619
+ Tcl_Obj *objPtr);
620
+ /* 194 */
621
+ EXTERN void Tk_FreeColorFromObj(Tk_Window tkwin, Tcl_Obj *objPtr);
622
+ /* 195 */
623
+ EXTERN void Tk_FreeConfigOptions(char *recordPtr,
624
+ Tk_OptionTable optionToken, Tk_Window tkwin);
625
+ /* 196 */
626
+ EXTERN void Tk_FreeSavedOptions(Tk_SavedOptions *savePtr);
627
+ /* 197 */
628
+ EXTERN void Tk_FreeCursorFromObj(Tk_Window tkwin,
629
+ Tcl_Obj *objPtr);
630
+ /* 198 */
631
+ EXTERN void Tk_FreeFontFromObj(Tk_Window tkwin, Tcl_Obj *objPtr);
632
+ /* 199 */
633
+ EXTERN Tk_3DBorder Tk_Get3DBorderFromObj(Tk_Window tkwin,
634
+ Tcl_Obj *objPtr);
635
+ /* 200 */
636
+ EXTERN int Tk_GetAnchorFromObj(Tcl_Interp *interp,
637
+ Tcl_Obj *objPtr, Tk_Anchor *anchorPtr);
638
+ /* 201 */
639
+ EXTERN Pixmap Tk_GetBitmapFromObj(Tk_Window tkwin, Tcl_Obj *objPtr);
640
+ /* 202 */
641
+ EXTERN XColor * Tk_GetColorFromObj(Tk_Window tkwin, Tcl_Obj *objPtr);
642
+ /* 203 */
643
+ EXTERN Tk_Cursor Tk_GetCursorFromObj(Tk_Window tkwin, Tcl_Obj *objPtr);
644
+ /* 204 */
645
+ EXTERN Tcl_Obj * Tk_GetOptionInfo(Tcl_Interp *interp, char *recordPtr,
646
+ Tk_OptionTable optionTable, Tcl_Obj *namePtr,
647
+ Tk_Window tkwin);
648
+ /* 205 */
649
+ EXTERN Tcl_Obj * Tk_GetOptionValue(Tcl_Interp *interp,
650
+ char *recordPtr, Tk_OptionTable optionTable,
651
+ Tcl_Obj *namePtr, Tk_Window tkwin);
652
+ /* 206 */
653
+ EXTERN int Tk_GetJustifyFromObj(Tcl_Interp *interp,
654
+ Tcl_Obj *objPtr, Tk_Justify *justifyPtr);
655
+ /* 207 */
656
+ EXTERN int Tk_GetMMFromObj(Tcl_Interp *interp, Tk_Window tkwin,
657
+ Tcl_Obj *objPtr, double *doublePtr);
658
+ /* 208 */
659
+ EXTERN int Tk_GetPixelsFromObj(Tcl_Interp *interp,
660
+ Tk_Window tkwin, Tcl_Obj *objPtr,
661
+ int *intPtr);
662
+ /* 209 */
663
+ EXTERN int Tk_GetReliefFromObj(Tcl_Interp *interp,
664
+ Tcl_Obj *objPtr, int *resultPtr);
665
+ /* 210 */
666
+ EXTERN int Tk_GetScrollInfoObj(Tcl_Interp *interp, int objc,
667
+ Tcl_Obj *const objv[], double *dblPtr,
668
+ int *intPtr);
669
+ /* 211 */
670
+ EXTERN int Tk_InitOptions(Tcl_Interp *interp, char *recordPtr,
671
+ Tk_OptionTable optionToken, Tk_Window tkwin);
672
+ /* 212 */
673
+ EXTERN void Tk_MainEx(int argc, char **argv,
674
+ Tcl_AppInitProc *appInitProc,
675
+ Tcl_Interp *interp);
676
+ /* 213 */
677
+ EXTERN void Tk_RestoreSavedOptions(Tk_SavedOptions *savePtr);
678
+ /* 214 */
679
+ EXTERN int Tk_SetOptions(Tcl_Interp *interp, char *recordPtr,
680
+ Tk_OptionTable optionTable, int objc,
681
+ Tcl_Obj *const objv[], Tk_Window tkwin,
682
+ Tk_SavedOptions *savePtr, int *maskPtr);
683
+ /* 215 */
684
+ EXTERN void Tk_InitConsoleChannels(Tcl_Interp *interp);
685
+ /* 216 */
686
+ EXTERN int Tk_CreateConsoleWindow(Tcl_Interp *interp);
687
+ /* 217 */
688
+ EXTERN void Tk_CreateSmoothMethod(Tcl_Interp *interp,
689
+ const Tk_SmoothMethod *method);
690
+ /* Slot 218 is reserved */
691
+ /* Slot 219 is reserved */
692
+ /* 220 */
693
+ EXTERN int Tk_GetDash(Tcl_Interp *interp, const char *value,
694
+ Tk_Dash *dash);
695
+ /* 221 */
696
+ EXTERN void Tk_CreateOutline(Tk_Outline *outline);
697
+ /* 222 */
698
+ EXTERN void Tk_DeleteOutline(Display *display,
699
+ Tk_Outline *outline);
700
+ /* 223 */
701
+ EXTERN int Tk_ConfigOutlineGC(XGCValues *gcValues,
702
+ Tk_Canvas canvas, Tk_Item *item,
703
+ Tk_Outline *outline);
704
+ /* 224 */
705
+ EXTERN int Tk_ChangeOutlineGC(Tk_Canvas canvas, Tk_Item *item,
706
+ Tk_Outline *outline);
707
+ /* 225 */
708
+ EXTERN int Tk_ResetOutlineGC(Tk_Canvas canvas, Tk_Item *item,
709
+ Tk_Outline *outline);
710
+ /* 226 */
711
+ EXTERN int Tk_CanvasPsOutline(Tk_Canvas canvas, Tk_Item *item,
712
+ Tk_Outline *outline);
713
+ /* 227 */
714
+ EXTERN void Tk_SetTSOrigin(Tk_Window tkwin, GC gc, int x, int y);
715
+ /* 228 */
716
+ EXTERN int Tk_CanvasGetCoordFromObj(Tcl_Interp *interp,
717
+ Tk_Canvas canvas, Tcl_Obj *obj,
718
+ double *doublePtr);
719
+ /* 229 */
720
+ EXTERN void Tk_CanvasSetOffset(Tk_Canvas canvas, GC gc,
721
+ Tk_TSOffset *offset);
722
+ /* 230 */
723
+ EXTERN void Tk_DitherPhoto(Tk_PhotoHandle handle, int x, int y,
724
+ int width, int height);
725
+ /* 231 */
726
+ EXTERN int Tk_PostscriptBitmap(Tcl_Interp *interp,
727
+ Tk_Window tkwin, Tk_PostscriptInfo psInfo,
728
+ Pixmap bitmap, int startX, int startY,
729
+ int width, int height);
730
+ /* 232 */
731
+ EXTERN int Tk_PostscriptColor(Tcl_Interp *interp,
732
+ Tk_PostscriptInfo psInfo, XColor *colorPtr);
733
+ /* 233 */
734
+ EXTERN int Tk_PostscriptFont(Tcl_Interp *interp,
735
+ Tk_PostscriptInfo psInfo, Tk_Font font);
736
+ /* 234 */
737
+ EXTERN int Tk_PostscriptImage(Tk_Image image,
738
+ Tcl_Interp *interp, Tk_Window tkwin,
739
+ Tk_PostscriptInfo psinfo, int x, int y,
740
+ int width, int height, int prepass);
741
+ /* 235 */
742
+ EXTERN void Tk_PostscriptPath(Tcl_Interp *interp,
743
+ Tk_PostscriptInfo psInfo, double *coordPtr,
744
+ int numPoints);
745
+ /* 236 */
746
+ EXTERN int Tk_PostscriptStipple(Tcl_Interp *interp,
747
+ Tk_Window tkwin, Tk_PostscriptInfo psInfo,
748
+ Pixmap bitmap);
749
+ /* 237 */
750
+ EXTERN double Tk_PostscriptY(double y, Tk_PostscriptInfo psInfo);
751
+ /* 238 */
752
+ EXTERN int Tk_PostscriptPhoto(Tcl_Interp *interp,
753
+ Tk_PhotoImageBlock *blockPtr,
754
+ Tk_PostscriptInfo psInfo, int width,
755
+ int height);
756
+ /* 239 */
757
+ EXTERN void Tk_CreateClientMessageHandler(
758
+ Tk_ClientMessageProc *proc);
759
+ /* 240 */
760
+ EXTERN void Tk_DeleteClientMessageHandler(
761
+ Tk_ClientMessageProc *proc);
762
+ /* 241 */
763
+ EXTERN Tk_Window Tk_CreateAnonymousWindow(Tcl_Interp *interp,
764
+ Tk_Window parent, const char *screenName);
765
+ /* 242 */
766
+ EXTERN void Tk_SetClassProcs(Tk_Window tkwin,
767
+ const Tk_ClassProcs *procs,
768
+ ClientData instanceData);
769
+ /* 243 */
770
+ EXTERN void Tk_SetInternalBorderEx(Tk_Window tkwin, int left,
771
+ int right, int top, int bottom);
772
+ /* 244 */
773
+ EXTERN void Tk_SetMinimumRequestSize(Tk_Window tkwin,
774
+ int minWidth, int minHeight);
775
+ /* 245 */
776
+ EXTERN void Tk_SetCaretPos(Tk_Window tkwin, int x, int y,
777
+ int height);
778
+ /* 246 */
779
+ EXTERN void Tk_PhotoPutBlock_Panic(Tk_PhotoHandle handle,
780
+ Tk_PhotoImageBlock *blockPtr, int x, int y,
781
+ int width, int height, int compRule);
782
+ /* 247 */
783
+ EXTERN void Tk_PhotoPutZoomedBlock_Panic(Tk_PhotoHandle handle,
784
+ Tk_PhotoImageBlock *blockPtr, int x, int y,
785
+ int width, int height, int zoomX, int zoomY,
786
+ int subsampleX, int subsampleY, int compRule);
787
+ /* 248 */
788
+ EXTERN int Tk_CollapseMotionEvents(Display *display,
789
+ int collapse);
790
+ /* 249 */
791
+ EXTERN Tk_StyleEngine Tk_RegisterStyleEngine(const char *name,
792
+ Tk_StyleEngine parent);
793
+ /* 250 */
794
+ EXTERN Tk_StyleEngine Tk_GetStyleEngine(const char *name);
795
+ /* 251 */
796
+ EXTERN int Tk_RegisterStyledElement(Tk_StyleEngine engine,
797
+ Tk_ElementSpec *templatePtr);
798
+ /* 252 */
799
+ EXTERN int Tk_GetElementId(const char *name);
800
+ /* 253 */
801
+ EXTERN Tk_Style Tk_CreateStyle(const char *name,
802
+ Tk_StyleEngine engine, ClientData clientData);
803
+ /* 254 */
804
+ EXTERN Tk_Style Tk_GetStyle(Tcl_Interp *interp, const char *name);
805
+ /* 255 */
806
+ EXTERN void Tk_FreeStyle(Tk_Style style);
807
+ /* 256 */
808
+ EXTERN const char * Tk_NameOfStyle(Tk_Style style);
809
+ /* 257 */
810
+ EXTERN Tk_Style Tk_AllocStyleFromObj(Tcl_Interp *interp,
811
+ Tcl_Obj *objPtr);
812
+ /* 258 */
813
+ EXTERN Tk_Style Tk_GetStyleFromObj(Tcl_Obj *objPtr);
814
+ /* 259 */
815
+ EXTERN void Tk_FreeStyleFromObj(Tcl_Obj *objPtr);
816
+ /* 260 */
817
+ EXTERN Tk_StyledElement Tk_GetStyledElement(Tk_Style style, int elementId,
818
+ Tk_OptionTable optionTable);
819
+ /* 261 */
820
+ EXTERN void Tk_GetElementSize(Tk_Style style,
821
+ Tk_StyledElement element, char *recordPtr,
822
+ Tk_Window tkwin, int width, int height,
823
+ int inner, int *widthPtr, int *heightPtr);
824
+ /* 262 */
825
+ EXTERN void Tk_GetElementBox(Tk_Style style,
826
+ Tk_StyledElement element, char *recordPtr,
827
+ Tk_Window tkwin, int x, int y, int width,
828
+ int height, int inner, int *xPtr, int *yPtr,
829
+ int *widthPtr, int *heightPtr);
830
+ /* 263 */
831
+ EXTERN int Tk_GetElementBorderWidth(Tk_Style style,
832
+ Tk_StyledElement element, char *recordPtr,
833
+ Tk_Window tkwin);
834
+ /* 264 */
835
+ EXTERN void Tk_DrawElement(Tk_Style style,
836
+ Tk_StyledElement element, char *recordPtr,
837
+ Tk_Window tkwin, Drawable d, int x, int y,
838
+ int width, int height, int state);
839
+ /* 265 */
840
+ EXTERN int Tk_PhotoExpand(Tcl_Interp *interp,
841
+ Tk_PhotoHandle handle, int width, int height);
842
+ /* 266 */
843
+ EXTERN int Tk_PhotoPutBlock(Tcl_Interp *interp,
844
+ Tk_PhotoHandle handle,
845
+ Tk_PhotoImageBlock *blockPtr, int x, int y,
846
+ int width, int height, int compRule);
847
+ /* 267 */
848
+ EXTERN int Tk_PhotoPutZoomedBlock(Tcl_Interp *interp,
849
+ Tk_PhotoHandle handle,
850
+ Tk_PhotoImageBlock *blockPtr, int x, int y,
851
+ int width, int height, int zoomX, int zoomY,
852
+ int subsampleX, int subsampleY, int compRule);
853
+ /* 268 */
854
+ EXTERN int Tk_PhotoSetSize(Tcl_Interp *interp,
855
+ Tk_PhotoHandle handle, int width, int height);
856
+ /* 269 */
857
+ EXTERN long Tk_GetUserInactiveTime(Display *dpy);
858
+ /* 270 */
859
+ EXTERN void Tk_ResetUserInactiveTime(Display *dpy);
860
+ /* 271 */
861
+ EXTERN Tcl_Interp * Tk_Interp(Tk_Window tkwin);
862
+ /* 272 */
863
+ EXTERN void Tk_CreateOldImageType(const Tk_ImageType *typePtr);
864
+ /* 273 */
865
+ EXTERN void Tk_CreateOldPhotoImageFormat(
866
+ const Tk_PhotoImageFormat *formatPtr);
867
+ /* Slot 274 is reserved */
868
+ /* Slot 275 is reserved */
869
+ /* Slot 276 is reserved */
870
+ /* Slot 277 is reserved */
871
+ /* Slot 278 is reserved */
872
+ /* Slot 279 is reserved */
873
+ /* 280 */
874
+ EXTERN void TkUnusedStubEntry(void);
875
+
876
+ typedef struct {
877
+ const struct TkPlatStubs *tkPlatStubs;
878
+ const struct TkIntStubs *tkIntStubs;
879
+ const struct TkIntPlatStubs *tkIntPlatStubs;
880
+ const struct TkIntXlibStubs *tkIntXlibStubs;
881
+ } TkStubHooks;
882
+
883
+ typedef struct TkStubs {
884
+ int magic;
885
+ const TkStubHooks *hooks;
886
+
887
+ void (*tk_MainLoop) (void); /* 0 */
888
+ XColor * (*tk_3DBorderColor) (Tk_3DBorder border); /* 1 */
889
+ GC (*tk_3DBorderGC) (Tk_Window tkwin, Tk_3DBorder border, int which); /* 2 */
890
+ void (*tk_3DHorizontalBevel) (Tk_Window tkwin, Drawable drawable, Tk_3DBorder border, int x, int y, int width, int height, int leftIn, int rightIn, int topBevel, int relief); /* 3 */
891
+ void (*tk_3DVerticalBevel) (Tk_Window tkwin, Drawable drawable, Tk_3DBorder border, int x, int y, int width, int height, int leftBevel, int relief); /* 4 */
892
+ void (*tk_AddOption) (Tk_Window tkwin, const char *name, const char *value, int priority); /* 5 */
893
+ void (*tk_BindEvent) (Tk_BindingTable bindingTable, XEvent *eventPtr, Tk_Window tkwin, int numObjects, ClientData *objectPtr); /* 6 */
894
+ void (*tk_CanvasDrawableCoords) (Tk_Canvas canvas, double x, double y, short *drawableXPtr, short *drawableYPtr); /* 7 */
895
+ void (*tk_CanvasEventuallyRedraw) (Tk_Canvas canvas, int x1, int y1, int x2, int y2); /* 8 */
896
+ int (*tk_CanvasGetCoord) (Tcl_Interp *interp, Tk_Canvas canvas, const char *str, double *doublePtr); /* 9 */
897
+ Tk_CanvasTextInfo * (*tk_CanvasGetTextInfo) (Tk_Canvas canvas); /* 10 */
898
+ int (*tk_CanvasPsBitmap) (Tcl_Interp *interp, Tk_Canvas canvas, Pixmap bitmap, int x, int y, int width, int height); /* 11 */
899
+ int (*tk_CanvasPsColor) (Tcl_Interp *interp, Tk_Canvas canvas, XColor *colorPtr); /* 12 */
900
+ int (*tk_CanvasPsFont) (Tcl_Interp *interp, Tk_Canvas canvas, Tk_Font font); /* 13 */
901
+ void (*tk_CanvasPsPath) (Tcl_Interp *interp, Tk_Canvas canvas, double *coordPtr, int numPoints); /* 14 */
902
+ int (*tk_CanvasPsStipple) (Tcl_Interp *interp, Tk_Canvas canvas, Pixmap bitmap); /* 15 */
903
+ double (*tk_CanvasPsY) (Tk_Canvas canvas, double y); /* 16 */
904
+ void (*tk_CanvasSetStippleOrigin) (Tk_Canvas canvas, GC gc); /* 17 */
905
+ int (*tk_CanvasTagsParseProc) (ClientData clientData, Tcl_Interp *interp, Tk_Window tkwin, const char *value, char *widgRec, int offset); /* 18 */
906
+ CONST86 char * (*tk_CanvasTagsPrintProc) (ClientData clientData, Tk_Window tkwin, char *widgRec, int offset, Tcl_FreeProc **freeProcPtr); /* 19 */
907
+ Tk_Window (*tk_CanvasTkwin) (Tk_Canvas canvas); /* 20 */
908
+ void (*tk_CanvasWindowCoords) (Tk_Canvas canvas, double x, double y, short *screenXPtr, short *screenYPtr); /* 21 */
909
+ void (*tk_ChangeWindowAttributes) (Tk_Window tkwin, unsigned long valueMask, XSetWindowAttributes *attsPtr); /* 22 */
910
+ int (*tk_CharBbox) (Tk_TextLayout layout, int index, int *xPtr, int *yPtr, int *widthPtr, int *heightPtr); /* 23 */
911
+ void (*tk_ClearSelection) (Tk_Window tkwin, Atom selection); /* 24 */
912
+ int (*tk_ClipboardAppend) (Tcl_Interp *interp, Tk_Window tkwin, Atom target, Atom format, const char *buffer); /* 25 */
913
+ int (*tk_ClipboardClear) (Tcl_Interp *interp, Tk_Window tkwin); /* 26 */
914
+ int (*tk_ConfigureInfo) (Tcl_Interp *interp, Tk_Window tkwin, const Tk_ConfigSpec *specs, char *widgRec, const char *argvName, int flags); /* 27 */
915
+ int (*tk_ConfigureValue) (Tcl_Interp *interp, Tk_Window tkwin, const Tk_ConfigSpec *specs, char *widgRec, const char *argvName, int flags); /* 28 */
916
+ int (*tk_ConfigureWidget) (Tcl_Interp *interp, Tk_Window tkwin, const Tk_ConfigSpec *specs, int argc, CONST84 char **argv, char *widgRec, int flags); /* 29 */
917
+ void (*tk_ConfigureWindow) (Tk_Window tkwin, unsigned int valueMask, XWindowChanges *valuePtr); /* 30 */
918
+ Tk_TextLayout (*tk_ComputeTextLayout) (Tk_Font font, const char *str, int numChars, int wrapLength, Tk_Justify justify, int flags, int *widthPtr, int *heightPtr); /* 31 */
919
+ Tk_Window (*tk_CoordsToWindow) (int rootX, int rootY, Tk_Window tkwin); /* 32 */
920
+ unsigned long (*tk_CreateBinding) (Tcl_Interp *interp, Tk_BindingTable bindingTable, ClientData object, const char *eventStr, const char *script, int append); /* 33 */
921
+ Tk_BindingTable (*tk_CreateBindingTable) (Tcl_Interp *interp); /* 34 */
922
+ Tk_ErrorHandler (*tk_CreateErrorHandler) (Display *display, int errNum, int request, int minorCode, Tk_ErrorProc *errorProc, ClientData clientData); /* 35 */
923
+ void (*tk_CreateEventHandler) (Tk_Window token, unsigned long mask, Tk_EventProc *proc, ClientData clientData); /* 36 */
924
+ void (*tk_CreateGenericHandler) (Tk_GenericProc *proc, ClientData clientData); /* 37 */
925
+ void (*tk_CreateImageType) (const Tk_ImageType *typePtr); /* 38 */
926
+ void (*tk_CreateItemType) (Tk_ItemType *typePtr); /* 39 */
927
+ void (*tk_CreatePhotoImageFormat) (const Tk_PhotoImageFormat *formatPtr); /* 40 */
928
+ void (*tk_CreateSelHandler) (Tk_Window tkwin, Atom selection, Atom target, Tk_SelectionProc *proc, ClientData clientData, Atom format); /* 41 */
929
+ Tk_Window (*tk_CreateWindow) (Tcl_Interp *interp, Tk_Window parent, const char *name, const char *screenName); /* 42 */
930
+ Tk_Window (*tk_CreateWindowFromPath) (Tcl_Interp *interp, Tk_Window tkwin, const char *pathName, const char *screenName); /* 43 */
931
+ int (*tk_DefineBitmap) (Tcl_Interp *interp, const char *name, const void *source, int width, int height); /* 44 */
932
+ void (*tk_DefineCursor) (Tk_Window window, Tk_Cursor cursor); /* 45 */
933
+ void (*tk_DeleteAllBindings) (Tk_BindingTable bindingTable, ClientData object); /* 46 */
934
+ int (*tk_DeleteBinding) (Tcl_Interp *interp, Tk_BindingTable bindingTable, ClientData object, const char *eventStr); /* 47 */
935
+ void (*tk_DeleteBindingTable) (Tk_BindingTable bindingTable); /* 48 */
936
+ void (*tk_DeleteErrorHandler) (Tk_ErrorHandler handler); /* 49 */
937
+ void (*tk_DeleteEventHandler) (Tk_Window token, unsigned long mask, Tk_EventProc *proc, ClientData clientData); /* 50 */
938
+ void (*tk_DeleteGenericHandler) (Tk_GenericProc *proc, ClientData clientData); /* 51 */
939
+ void (*tk_DeleteImage) (Tcl_Interp *interp, const char *name); /* 52 */
940
+ void (*tk_DeleteSelHandler) (Tk_Window tkwin, Atom selection, Atom target); /* 53 */
941
+ void (*tk_DestroyWindow) (Tk_Window tkwin); /* 54 */
942
+ CONST84_RETURN char * (*tk_DisplayName) (Tk_Window tkwin); /* 55 */
943
+ int (*tk_DistanceToTextLayout) (Tk_TextLayout layout, int x, int y); /* 56 */
944
+ void (*tk_Draw3DPolygon) (Tk_Window tkwin, Drawable drawable, Tk_3DBorder border, XPoint *pointPtr, int numPoints, int borderWidth, int leftRelief); /* 57 */
945
+ void (*tk_Draw3DRectangle) (Tk_Window tkwin, Drawable drawable, Tk_3DBorder border, int x, int y, int width, int height, int borderWidth, int relief); /* 58 */
946
+ void (*tk_DrawChars) (Display *display, Drawable drawable, GC gc, Tk_Font tkfont, const char *source, int numBytes, int x, int y); /* 59 */
947
+ void (*tk_DrawFocusHighlight) (Tk_Window tkwin, GC gc, int width, Drawable drawable); /* 60 */
948
+ void (*tk_DrawTextLayout) (Display *display, Drawable drawable, GC gc, Tk_TextLayout layout, int x, int y, int firstChar, int lastChar); /* 61 */
949
+ void (*tk_Fill3DPolygon) (Tk_Window tkwin, Drawable drawable, Tk_3DBorder border, XPoint *pointPtr, int numPoints, int borderWidth, int leftRelief); /* 62 */
950
+ void (*tk_Fill3DRectangle) (Tk_Window tkwin, Drawable drawable, Tk_3DBorder border, int x, int y, int width, int height, int borderWidth, int relief); /* 63 */
951
+ Tk_PhotoHandle (*tk_FindPhoto) (Tcl_Interp *interp, const char *imageName); /* 64 */
952
+ Font (*tk_FontId) (Tk_Font font); /* 65 */
953
+ void (*tk_Free3DBorder) (Tk_3DBorder border); /* 66 */
954
+ void (*tk_FreeBitmap) (Display *display, Pixmap bitmap); /* 67 */
955
+ void (*tk_FreeColor) (XColor *colorPtr); /* 68 */
956
+ void (*tk_FreeColormap) (Display *display, Colormap colormap); /* 69 */
957
+ void (*tk_FreeCursor) (Display *display, Tk_Cursor cursor); /* 70 */
958
+ void (*tk_FreeFont) (Tk_Font f); /* 71 */
959
+ void (*tk_FreeGC) (Display *display, GC gc); /* 72 */
960
+ void (*tk_FreeImage) (Tk_Image image); /* 73 */
961
+ void (*tk_FreeOptions) (const Tk_ConfigSpec *specs, char *widgRec, Display *display, int needFlags); /* 74 */
962
+ void (*tk_FreePixmap) (Display *display, Pixmap pixmap); /* 75 */
963
+ void (*tk_FreeTextLayout) (Tk_TextLayout textLayout); /* 76 */
964
+ void (*tk_FreeXId) (Display *display, XID xid); /* 77 */
965
+ GC (*tk_GCForColor) (XColor *colorPtr, Drawable drawable); /* 78 */
966
+ void (*tk_GeometryRequest) (Tk_Window tkwin, int reqWidth, int reqHeight); /* 79 */
967
+ Tk_3DBorder (*tk_Get3DBorder) (Tcl_Interp *interp, Tk_Window tkwin, Tk_Uid colorName); /* 80 */
968
+ void (*tk_GetAllBindings) (Tcl_Interp *interp, Tk_BindingTable bindingTable, ClientData object); /* 81 */
969
+ int (*tk_GetAnchor) (Tcl_Interp *interp, const char *str, Tk_Anchor *anchorPtr); /* 82 */
970
+ CONST84_RETURN char * (*tk_GetAtomName) (Tk_Window tkwin, Atom atom); /* 83 */
971
+ CONST84_RETURN char * (*tk_GetBinding) (Tcl_Interp *interp, Tk_BindingTable bindingTable, ClientData object, const char *eventStr); /* 84 */
972
+ Pixmap (*tk_GetBitmap) (Tcl_Interp *interp, Tk_Window tkwin, const char *str); /* 85 */
973
+ Pixmap (*tk_GetBitmapFromData) (Tcl_Interp *interp, Tk_Window tkwin, const void *source, int width, int height); /* 86 */
974
+ int (*tk_GetCapStyle) (Tcl_Interp *interp, const char *str, int *capPtr); /* 87 */
975
+ XColor * (*tk_GetColor) (Tcl_Interp *interp, Tk_Window tkwin, Tk_Uid name); /* 88 */
976
+ XColor * (*tk_GetColorByValue) (Tk_Window tkwin, XColor *colorPtr); /* 89 */
977
+ Colormap (*tk_GetColormap) (Tcl_Interp *interp, Tk_Window tkwin, const char *str); /* 90 */
978
+ Tk_Cursor (*tk_GetCursor) (Tcl_Interp *interp, Tk_Window tkwin, Tk_Uid str); /* 91 */
979
+ Tk_Cursor (*tk_GetCursorFromData) (Tcl_Interp *interp, Tk_Window tkwin, const char *source, const char *mask, int width, int height, int xHot, int yHot, Tk_Uid fg, Tk_Uid bg); /* 92 */
980
+ Tk_Font (*tk_GetFont) (Tcl_Interp *interp, Tk_Window tkwin, const char *str); /* 93 */
981
+ Tk_Font (*tk_GetFontFromObj) (Tk_Window tkwin, Tcl_Obj *objPtr); /* 94 */
982
+ void (*tk_GetFontMetrics) (Tk_Font font, Tk_FontMetrics *fmPtr); /* 95 */
983
+ GC (*tk_GetGC) (Tk_Window tkwin, unsigned long valueMask, XGCValues *valuePtr); /* 96 */
984
+ Tk_Image (*tk_GetImage) (Tcl_Interp *interp, Tk_Window tkwin, const char *name, Tk_ImageChangedProc *changeProc, ClientData clientData); /* 97 */
985
+ ClientData (*tk_GetImageMasterData) (Tcl_Interp *interp, const char *name, CONST86 Tk_ImageType **typePtrPtr); /* 98 */
986
+ Tk_ItemType * (*tk_GetItemTypes) (void); /* 99 */
987
+ int (*tk_GetJoinStyle) (Tcl_Interp *interp, const char *str, int *joinPtr); /* 100 */
988
+ int (*tk_GetJustify) (Tcl_Interp *interp, const char *str, Tk_Justify *justifyPtr); /* 101 */
989
+ int (*tk_GetNumMainWindows) (void); /* 102 */
990
+ Tk_Uid (*tk_GetOption) (Tk_Window tkwin, const char *name, const char *className); /* 103 */
991
+ int (*tk_GetPixels) (Tcl_Interp *interp, Tk_Window tkwin, const char *str, int *intPtr); /* 104 */
992
+ Pixmap (*tk_GetPixmap) (Display *display, Drawable d, int width, int height, int depth); /* 105 */
993
+ int (*tk_GetRelief) (Tcl_Interp *interp, const char *name, int *reliefPtr); /* 106 */
994
+ void (*tk_GetRootCoords) (Tk_Window tkwin, int *xPtr, int *yPtr); /* 107 */
995
+ int (*tk_GetScrollInfo) (Tcl_Interp *interp, int argc, CONST84 char **argv, double *dblPtr, int *intPtr); /* 108 */
996
+ int (*tk_GetScreenMM) (Tcl_Interp *interp, Tk_Window tkwin, const char *str, double *doublePtr); /* 109 */
997
+ int (*tk_GetSelection) (Tcl_Interp *interp, Tk_Window tkwin, Atom selection, Atom target, Tk_GetSelProc *proc, ClientData clientData); /* 110 */
998
+ Tk_Uid (*tk_GetUid) (const char *str); /* 111 */
999
+ Visual * (*tk_GetVisual) (Tcl_Interp *interp, Tk_Window tkwin, const char *str, int *depthPtr, Colormap *colormapPtr); /* 112 */
1000
+ void (*tk_GetVRootGeometry) (Tk_Window tkwin, int *xPtr, int *yPtr, int *widthPtr, int *heightPtr); /* 113 */
1001
+ int (*tk_Grab) (Tcl_Interp *interp, Tk_Window tkwin, int grabGlobal); /* 114 */
1002
+ void (*tk_HandleEvent) (XEvent *eventPtr); /* 115 */
1003
+ Tk_Window (*tk_IdToWindow) (Display *display, Window window); /* 116 */
1004
+ void (*tk_ImageChanged) (Tk_ImageMaster model, int x, int y, int width, int height, int imageWidth, int imageHeight); /* 117 */
1005
+ int (*tk_Init) (Tcl_Interp *interp); /* 118 */
1006
+ Atom (*tk_InternAtom) (Tk_Window tkwin, const char *name); /* 119 */
1007
+ int (*tk_IntersectTextLayout) (Tk_TextLayout layout, int x, int y, int width, int height); /* 120 */
1008
+ void (*tk_MaintainGeometry) (Tk_Window window, Tk_Window container, int x, int y, int width, int height); /* 121 */
1009
+ Tk_Window (*tk_MainWindow) (Tcl_Interp *interp); /* 122 */
1010
+ void (*tk_MakeWindowExist) (Tk_Window tkwin); /* 123 */
1011
+ void (*tk_ManageGeometry) (Tk_Window tkwin, const Tk_GeomMgr *mgrPtr, ClientData clientData); /* 124 */
1012
+ void (*tk_MapWindow) (Tk_Window tkwin); /* 125 */
1013
+ int (*tk_MeasureChars) (Tk_Font tkfont, const char *source, int numBytes, int maxPixels, int flags, int *lengthPtr); /* 126 */
1014
+ void (*tk_MoveResizeWindow) (Tk_Window tkwin, int x, int y, int width, int height); /* 127 */
1015
+ void (*tk_MoveWindow) (Tk_Window tkwin, int x, int y); /* 128 */
1016
+ void (*tk_MoveToplevelWindow) (Tk_Window tkwin, int x, int y); /* 129 */
1017
+ CONST84_RETURN char * (*tk_NameOf3DBorder) (Tk_3DBorder border); /* 130 */
1018
+ CONST84_RETURN char * (*tk_NameOfAnchor) (Tk_Anchor anchor); /* 131 */
1019
+ CONST84_RETURN char * (*tk_NameOfBitmap) (Display *display, Pixmap bitmap); /* 132 */
1020
+ CONST84_RETURN char * (*tk_NameOfCapStyle) (int cap); /* 133 */
1021
+ CONST84_RETURN char * (*tk_NameOfColor) (XColor *colorPtr); /* 134 */
1022
+ CONST84_RETURN char * (*tk_NameOfCursor) (Display *display, Tk_Cursor cursor); /* 135 */
1023
+ CONST84_RETURN char * (*tk_NameOfFont) (Tk_Font font); /* 136 */
1024
+ CONST84_RETURN char * (*tk_NameOfImage) (Tk_ImageMaster model); /* 137 */
1025
+ CONST84_RETURN char * (*tk_NameOfJoinStyle) (int join); /* 138 */
1026
+ CONST84_RETURN char * (*tk_NameOfJustify) (Tk_Justify justify); /* 139 */
1027
+ CONST84_RETURN char * (*tk_NameOfRelief) (int relief); /* 140 */
1028
+ Tk_Window (*tk_NameToWindow) (Tcl_Interp *interp, const char *pathName, Tk_Window tkwin); /* 141 */
1029
+ void (*tk_OwnSelection) (Tk_Window tkwin, Atom selection, Tk_LostSelProc *proc, ClientData clientData); /* 142 */
1030
+ int (*tk_ParseArgv) (Tcl_Interp *interp, Tk_Window tkwin, int *argcPtr, CONST84 char **argv, const Tk_ArgvInfo *argTable, int flags); /* 143 */
1031
+ void (*tk_PhotoPutBlock_NoComposite) (Tk_PhotoHandle handle, Tk_PhotoImageBlock *blockPtr, int x, int y, int width, int height); /* 144 */
1032
+ void (*tk_PhotoPutZoomedBlock_NoComposite) (Tk_PhotoHandle handle, Tk_PhotoImageBlock *blockPtr, int x, int y, int width, int height, int zoomX, int zoomY, int subsampleX, int subsampleY); /* 145 */
1033
+ int (*tk_PhotoGetImage) (Tk_PhotoHandle handle, Tk_PhotoImageBlock *blockPtr); /* 146 */
1034
+ void (*tk_PhotoBlank) (Tk_PhotoHandle handle); /* 147 */
1035
+ void (*tk_PhotoExpand_Panic) (Tk_PhotoHandle handle, int width, int height); /* 148 */
1036
+ void (*tk_PhotoGetSize) (Tk_PhotoHandle handle, int *widthPtr, int *heightPtr); /* 149 */
1037
+ void (*tk_PhotoSetSize_Panic) (Tk_PhotoHandle handle, int width, int height); /* 150 */
1038
+ int (*tk_PointToChar) (Tk_TextLayout layout, int x, int y); /* 151 */
1039
+ int (*tk_PostscriptFontName) (Tk_Font tkfont, Tcl_DString *dsPtr); /* 152 */
1040
+ void (*tk_PreserveColormap) (Display *display, Colormap colormap); /* 153 */
1041
+ void (*tk_QueueWindowEvent) (XEvent *eventPtr, Tcl_QueuePosition position); /* 154 */
1042
+ void (*tk_RedrawImage) (Tk_Image image, int imageX, int imageY, int width, int height, Drawable drawable, int drawableX, int drawableY); /* 155 */
1043
+ void (*tk_ResizeWindow) (Tk_Window tkwin, int width, int height); /* 156 */
1044
+ int (*tk_RestackWindow) (Tk_Window tkwin, int aboveBelow, Tk_Window other); /* 157 */
1045
+ Tk_RestrictProc * (*tk_RestrictEvents) (Tk_RestrictProc *proc, ClientData arg, ClientData *prevArgPtr); /* 158 */
1046
+ int (*tk_SafeInit) (Tcl_Interp *interp); /* 159 */
1047
+ const char * (*tk_SetAppName) (Tk_Window tkwin, const char *name); /* 160 */
1048
+ void (*tk_SetBackgroundFromBorder) (Tk_Window tkwin, Tk_3DBorder border); /* 161 */
1049
+ void (*tk_SetClass) (Tk_Window tkwin, const char *className); /* 162 */
1050
+ void (*tk_SetGrid) (Tk_Window tkwin, int reqWidth, int reqHeight, int gridWidth, int gridHeight); /* 163 */
1051
+ void (*tk_SetInternalBorder) (Tk_Window tkwin, int width); /* 164 */
1052
+ void (*tk_SetWindowBackground) (Tk_Window tkwin, unsigned long pixel); /* 165 */
1053
+ void (*tk_SetWindowBackgroundPixmap) (Tk_Window tkwin, Pixmap pixmap); /* 166 */
1054
+ void (*tk_SetWindowBorder) (Tk_Window tkwin, unsigned long pixel); /* 167 */
1055
+ void (*tk_SetWindowBorderWidth) (Tk_Window tkwin, int width); /* 168 */
1056
+ void (*tk_SetWindowBorderPixmap) (Tk_Window tkwin, Pixmap pixmap); /* 169 */
1057
+ void (*tk_SetWindowColormap) (Tk_Window tkwin, Colormap colormap); /* 170 */
1058
+ int (*tk_SetWindowVisual) (Tk_Window tkwin, Visual *visual, int depth, Colormap colormap); /* 171 */
1059
+ void (*tk_SizeOfBitmap) (Display *display, Pixmap bitmap, int *widthPtr, int *heightPtr); /* 172 */
1060
+ void (*tk_SizeOfImage) (Tk_Image image, int *widthPtr, int *heightPtr); /* 173 */
1061
+ int (*tk_StrictMotif) (Tk_Window tkwin); /* 174 */
1062
+ void (*tk_TextLayoutToPostscript) (Tcl_Interp *interp, Tk_TextLayout layout); /* 175 */
1063
+ int (*tk_TextWidth) (Tk_Font font, const char *str, int numBytes); /* 176 */
1064
+ void (*tk_UndefineCursor) (Tk_Window window); /* 177 */
1065
+ void (*tk_UnderlineChars) (Display *display, Drawable drawable, GC gc, Tk_Font tkfont, const char *source, int x, int y, int firstByte, int lastByte); /* 178 */
1066
+ void (*tk_UnderlineTextLayout) (Display *display, Drawable drawable, GC gc, Tk_TextLayout layout, int x, int y, int underline); /* 179 */
1067
+ void (*tk_Ungrab) (Tk_Window tkwin); /* 180 */
1068
+ void (*tk_UnmaintainGeometry) (Tk_Window window, Tk_Window container); /* 181 */
1069
+ void (*tk_UnmapWindow) (Tk_Window tkwin); /* 182 */
1070
+ void (*tk_UnsetGrid) (Tk_Window tkwin); /* 183 */
1071
+ void (*tk_UpdatePointer) (Tk_Window tkwin, int x, int y, int state); /* 184 */
1072
+ Pixmap (*tk_AllocBitmapFromObj) (Tcl_Interp *interp, Tk_Window tkwin, Tcl_Obj *objPtr); /* 185 */
1073
+ Tk_3DBorder (*tk_Alloc3DBorderFromObj) (Tcl_Interp *interp, Tk_Window tkwin, Tcl_Obj *objPtr); /* 186 */
1074
+ XColor * (*tk_AllocColorFromObj) (Tcl_Interp *interp, Tk_Window tkwin, Tcl_Obj *objPtr); /* 187 */
1075
+ Tk_Cursor (*tk_AllocCursorFromObj) (Tcl_Interp *interp, Tk_Window tkwin, Tcl_Obj *objPtr); /* 188 */
1076
+ Tk_Font (*tk_AllocFontFromObj) (Tcl_Interp *interp, Tk_Window tkwin, Tcl_Obj *objPtr); /* 189 */
1077
+ Tk_OptionTable (*tk_CreateOptionTable) (Tcl_Interp *interp, const Tk_OptionSpec *templatePtr); /* 190 */
1078
+ void (*tk_DeleteOptionTable) (Tk_OptionTable optionTable); /* 191 */
1079
+ void (*tk_Free3DBorderFromObj) (Tk_Window tkwin, Tcl_Obj *objPtr); /* 192 */
1080
+ void (*tk_FreeBitmapFromObj) (Tk_Window tkwin, Tcl_Obj *objPtr); /* 193 */
1081
+ void (*tk_FreeColorFromObj) (Tk_Window tkwin, Tcl_Obj *objPtr); /* 194 */
1082
+ void (*tk_FreeConfigOptions) (char *recordPtr, Tk_OptionTable optionToken, Tk_Window tkwin); /* 195 */
1083
+ void (*tk_FreeSavedOptions) (Tk_SavedOptions *savePtr); /* 196 */
1084
+ void (*tk_FreeCursorFromObj) (Tk_Window tkwin, Tcl_Obj *objPtr); /* 197 */
1085
+ void (*tk_FreeFontFromObj) (Tk_Window tkwin, Tcl_Obj *objPtr); /* 198 */
1086
+ Tk_3DBorder (*tk_Get3DBorderFromObj) (Tk_Window tkwin, Tcl_Obj *objPtr); /* 199 */
1087
+ int (*tk_GetAnchorFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, Tk_Anchor *anchorPtr); /* 200 */
1088
+ Pixmap (*tk_GetBitmapFromObj) (Tk_Window tkwin, Tcl_Obj *objPtr); /* 201 */
1089
+ XColor * (*tk_GetColorFromObj) (Tk_Window tkwin, Tcl_Obj *objPtr); /* 202 */
1090
+ Tk_Cursor (*tk_GetCursorFromObj) (Tk_Window tkwin, Tcl_Obj *objPtr); /* 203 */
1091
+ Tcl_Obj * (*tk_GetOptionInfo) (Tcl_Interp *interp, char *recordPtr, Tk_OptionTable optionTable, Tcl_Obj *namePtr, Tk_Window tkwin); /* 204 */
1092
+ Tcl_Obj * (*tk_GetOptionValue) (Tcl_Interp *interp, char *recordPtr, Tk_OptionTable optionTable, Tcl_Obj *namePtr, Tk_Window tkwin); /* 205 */
1093
+ int (*tk_GetJustifyFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, Tk_Justify *justifyPtr); /* 206 */
1094
+ int (*tk_GetMMFromObj) (Tcl_Interp *interp, Tk_Window tkwin, Tcl_Obj *objPtr, double *doublePtr); /* 207 */
1095
+ int (*tk_GetPixelsFromObj) (Tcl_Interp *interp, Tk_Window tkwin, Tcl_Obj *objPtr, int *intPtr); /* 208 */
1096
+ int (*tk_GetReliefFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr, int *resultPtr); /* 209 */
1097
+ int (*tk_GetScrollInfoObj) (Tcl_Interp *interp, int objc, Tcl_Obj *const objv[], double *dblPtr, int *intPtr); /* 210 */
1098
+ int (*tk_InitOptions) (Tcl_Interp *interp, char *recordPtr, Tk_OptionTable optionToken, Tk_Window tkwin); /* 211 */
1099
+ void (*tk_MainEx) (int argc, char **argv, Tcl_AppInitProc *appInitProc, Tcl_Interp *interp); /* 212 */
1100
+ void (*tk_RestoreSavedOptions) (Tk_SavedOptions *savePtr); /* 213 */
1101
+ int (*tk_SetOptions) (Tcl_Interp *interp, char *recordPtr, Tk_OptionTable optionTable, int objc, Tcl_Obj *const objv[], Tk_Window tkwin, Tk_SavedOptions *savePtr, int *maskPtr); /* 214 */
1102
+ void (*tk_InitConsoleChannels) (Tcl_Interp *interp); /* 215 */
1103
+ int (*tk_CreateConsoleWindow) (Tcl_Interp *interp); /* 216 */
1104
+ void (*tk_CreateSmoothMethod) (Tcl_Interp *interp, const Tk_SmoothMethod *method); /* 217 */
1105
+ void (*reserved218)(void);
1106
+ void (*reserved219)(void);
1107
+ int (*tk_GetDash) (Tcl_Interp *interp, const char *value, Tk_Dash *dash); /* 220 */
1108
+ void (*tk_CreateOutline) (Tk_Outline *outline); /* 221 */
1109
+ void (*tk_DeleteOutline) (Display *display, Tk_Outline *outline); /* 222 */
1110
+ int (*tk_ConfigOutlineGC) (XGCValues *gcValues, Tk_Canvas canvas, Tk_Item *item, Tk_Outline *outline); /* 223 */
1111
+ int (*tk_ChangeOutlineGC) (Tk_Canvas canvas, Tk_Item *item, Tk_Outline *outline); /* 224 */
1112
+ int (*tk_ResetOutlineGC) (Tk_Canvas canvas, Tk_Item *item, Tk_Outline *outline); /* 225 */
1113
+ int (*tk_CanvasPsOutline) (Tk_Canvas canvas, Tk_Item *item, Tk_Outline *outline); /* 226 */
1114
+ void (*tk_SetTSOrigin) (Tk_Window tkwin, GC gc, int x, int y); /* 227 */
1115
+ int (*tk_CanvasGetCoordFromObj) (Tcl_Interp *interp, Tk_Canvas canvas, Tcl_Obj *obj, double *doublePtr); /* 228 */
1116
+ void (*tk_CanvasSetOffset) (Tk_Canvas canvas, GC gc, Tk_TSOffset *offset); /* 229 */
1117
+ void (*tk_DitherPhoto) (Tk_PhotoHandle handle, int x, int y, int width, int height); /* 230 */
1118
+ int (*tk_PostscriptBitmap) (Tcl_Interp *interp, Tk_Window tkwin, Tk_PostscriptInfo psInfo, Pixmap bitmap, int startX, int startY, int width, int height); /* 231 */
1119
+ int (*tk_PostscriptColor) (Tcl_Interp *interp, Tk_PostscriptInfo psInfo, XColor *colorPtr); /* 232 */
1120
+ int (*tk_PostscriptFont) (Tcl_Interp *interp, Tk_PostscriptInfo psInfo, Tk_Font font); /* 233 */
1121
+ int (*tk_PostscriptImage) (Tk_Image image, Tcl_Interp *interp, Tk_Window tkwin, Tk_PostscriptInfo psinfo, int x, int y, int width, int height, int prepass); /* 234 */
1122
+ void (*tk_PostscriptPath) (Tcl_Interp *interp, Tk_PostscriptInfo psInfo, double *coordPtr, int numPoints); /* 235 */
1123
+ int (*tk_PostscriptStipple) (Tcl_Interp *interp, Tk_Window tkwin, Tk_PostscriptInfo psInfo, Pixmap bitmap); /* 236 */
1124
+ double (*tk_PostscriptY) (double y, Tk_PostscriptInfo psInfo); /* 237 */
1125
+ int (*tk_PostscriptPhoto) (Tcl_Interp *interp, Tk_PhotoImageBlock *blockPtr, Tk_PostscriptInfo psInfo, int width, int height); /* 238 */
1126
+ void (*tk_CreateClientMessageHandler) (Tk_ClientMessageProc *proc); /* 239 */
1127
+ void (*tk_DeleteClientMessageHandler) (Tk_ClientMessageProc *proc); /* 240 */
1128
+ Tk_Window (*tk_CreateAnonymousWindow) (Tcl_Interp *interp, Tk_Window parent, const char *screenName); /* 241 */
1129
+ void (*tk_SetClassProcs) (Tk_Window tkwin, const Tk_ClassProcs *procs, ClientData instanceData); /* 242 */
1130
+ void (*tk_SetInternalBorderEx) (Tk_Window tkwin, int left, int right, int top, int bottom); /* 243 */
1131
+ void (*tk_SetMinimumRequestSize) (Tk_Window tkwin, int minWidth, int minHeight); /* 244 */
1132
+ void (*tk_SetCaretPos) (Tk_Window tkwin, int x, int y, int height); /* 245 */
1133
+ void (*tk_PhotoPutBlock_Panic) (Tk_PhotoHandle handle, Tk_PhotoImageBlock *blockPtr, int x, int y, int width, int height, int compRule); /* 246 */
1134
+ void (*tk_PhotoPutZoomedBlock_Panic) (Tk_PhotoHandle handle, Tk_PhotoImageBlock *blockPtr, int x, int y, int width, int height, int zoomX, int zoomY, int subsampleX, int subsampleY, int compRule); /* 247 */
1135
+ int (*tk_CollapseMotionEvents) (Display *display, int collapse); /* 248 */
1136
+ Tk_StyleEngine (*tk_RegisterStyleEngine) (const char *name, Tk_StyleEngine parent); /* 249 */
1137
+ Tk_StyleEngine (*tk_GetStyleEngine) (const char *name); /* 250 */
1138
+ int (*tk_RegisterStyledElement) (Tk_StyleEngine engine, Tk_ElementSpec *templatePtr); /* 251 */
1139
+ int (*tk_GetElementId) (const char *name); /* 252 */
1140
+ Tk_Style (*tk_CreateStyle) (const char *name, Tk_StyleEngine engine, ClientData clientData); /* 253 */
1141
+ Tk_Style (*tk_GetStyle) (Tcl_Interp *interp, const char *name); /* 254 */
1142
+ void (*tk_FreeStyle) (Tk_Style style); /* 255 */
1143
+ const char * (*tk_NameOfStyle) (Tk_Style style); /* 256 */
1144
+ Tk_Style (*tk_AllocStyleFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr); /* 257 */
1145
+ Tk_Style (*tk_GetStyleFromObj) (Tcl_Obj *objPtr); /* 258 */
1146
+ void (*tk_FreeStyleFromObj) (Tcl_Obj *objPtr); /* 259 */
1147
+ Tk_StyledElement (*tk_GetStyledElement) (Tk_Style style, int elementId, Tk_OptionTable optionTable); /* 260 */
1148
+ void (*tk_GetElementSize) (Tk_Style style, Tk_StyledElement element, char *recordPtr, Tk_Window tkwin, int width, int height, int inner, int *widthPtr, int *heightPtr); /* 261 */
1149
+ void (*tk_GetElementBox) (Tk_Style style, Tk_StyledElement element, char *recordPtr, Tk_Window tkwin, int x, int y, int width, int height, int inner, int *xPtr, int *yPtr, int *widthPtr, int *heightPtr); /* 262 */
1150
+ int (*tk_GetElementBorderWidth) (Tk_Style style, Tk_StyledElement element, char *recordPtr, Tk_Window tkwin); /* 263 */
1151
+ void (*tk_DrawElement) (Tk_Style style, Tk_StyledElement element, char *recordPtr, Tk_Window tkwin, Drawable d, int x, int y, int width, int height, int state); /* 264 */
1152
+ int (*tk_PhotoExpand) (Tcl_Interp *interp, Tk_PhotoHandle handle, int width, int height); /* 265 */
1153
+ int (*tk_PhotoPutBlock) (Tcl_Interp *interp, Tk_PhotoHandle handle, Tk_PhotoImageBlock *blockPtr, int x, int y, int width, int height, int compRule); /* 266 */
1154
+ int (*tk_PhotoPutZoomedBlock) (Tcl_Interp *interp, Tk_PhotoHandle handle, Tk_PhotoImageBlock *blockPtr, int x, int y, int width, int height, int zoomX, int zoomY, int subsampleX, int subsampleY, int compRule); /* 267 */
1155
+ int (*tk_PhotoSetSize) (Tcl_Interp *interp, Tk_PhotoHandle handle, int width, int height); /* 268 */
1156
+ long (*tk_GetUserInactiveTime) (Display *dpy); /* 269 */
1157
+ void (*tk_ResetUserInactiveTime) (Display *dpy); /* 270 */
1158
+ Tcl_Interp * (*tk_Interp) (Tk_Window tkwin); /* 271 */
1159
+ void (*tk_CreateOldImageType) (const Tk_ImageType *typePtr); /* 272 */
1160
+ void (*tk_CreateOldPhotoImageFormat) (const Tk_PhotoImageFormat *formatPtr); /* 273 */
1161
+ void (*reserved274)(void);
1162
+ void (*reserved275)(void);
1163
+ void (*reserved276)(void);
1164
+ void (*reserved277)(void);
1165
+ void (*reserved278)(void);
1166
+ void (*reserved279)(void);
1167
+ void (*tkUnusedStubEntry) (void); /* 280 */
1168
+ } TkStubs;
1169
+
1170
+ extern const TkStubs *tkStubsPtr;
1171
+
1172
+ #ifdef __cplusplus
1173
+ }
1174
+ #endif
1175
+
1176
+ #if defined(USE_TK_STUBS)
1177
+
1178
+ /*
1179
+ * Inline function declarations:
1180
+ */
1181
+
1182
+ #define Tk_MainLoop \
1183
+ (tkStubsPtr->tk_MainLoop) /* 0 */
1184
+ #define Tk_3DBorderColor \
1185
+ (tkStubsPtr->tk_3DBorderColor) /* 1 */
1186
+ #define Tk_3DBorderGC \
1187
+ (tkStubsPtr->tk_3DBorderGC) /* 2 */
1188
+ #define Tk_3DHorizontalBevel \
1189
+ (tkStubsPtr->tk_3DHorizontalBevel) /* 3 */
1190
+ #define Tk_3DVerticalBevel \
1191
+ (tkStubsPtr->tk_3DVerticalBevel) /* 4 */
1192
+ #define Tk_AddOption \
1193
+ (tkStubsPtr->tk_AddOption) /* 5 */
1194
+ #define Tk_BindEvent \
1195
+ (tkStubsPtr->tk_BindEvent) /* 6 */
1196
+ #define Tk_CanvasDrawableCoords \
1197
+ (tkStubsPtr->tk_CanvasDrawableCoords) /* 7 */
1198
+ #define Tk_CanvasEventuallyRedraw \
1199
+ (tkStubsPtr->tk_CanvasEventuallyRedraw) /* 8 */
1200
+ #define Tk_CanvasGetCoord \
1201
+ (tkStubsPtr->tk_CanvasGetCoord) /* 9 */
1202
+ #define Tk_CanvasGetTextInfo \
1203
+ (tkStubsPtr->tk_CanvasGetTextInfo) /* 10 */
1204
+ #define Tk_CanvasPsBitmap \
1205
+ (tkStubsPtr->tk_CanvasPsBitmap) /* 11 */
1206
+ #define Tk_CanvasPsColor \
1207
+ (tkStubsPtr->tk_CanvasPsColor) /* 12 */
1208
+ #define Tk_CanvasPsFont \
1209
+ (tkStubsPtr->tk_CanvasPsFont) /* 13 */
1210
+ #define Tk_CanvasPsPath \
1211
+ (tkStubsPtr->tk_CanvasPsPath) /* 14 */
1212
+ #define Tk_CanvasPsStipple \
1213
+ (tkStubsPtr->tk_CanvasPsStipple) /* 15 */
1214
+ #define Tk_CanvasPsY \
1215
+ (tkStubsPtr->tk_CanvasPsY) /* 16 */
1216
+ #define Tk_CanvasSetStippleOrigin \
1217
+ (tkStubsPtr->tk_CanvasSetStippleOrigin) /* 17 */
1218
+ #define Tk_CanvasTagsParseProc \
1219
+ (tkStubsPtr->tk_CanvasTagsParseProc) /* 18 */
1220
+ #define Tk_CanvasTagsPrintProc \
1221
+ (tkStubsPtr->tk_CanvasTagsPrintProc) /* 19 */
1222
+ #define Tk_CanvasTkwin \
1223
+ (tkStubsPtr->tk_CanvasTkwin) /* 20 */
1224
+ #define Tk_CanvasWindowCoords \
1225
+ (tkStubsPtr->tk_CanvasWindowCoords) /* 21 */
1226
+ #define Tk_ChangeWindowAttributes \
1227
+ (tkStubsPtr->tk_ChangeWindowAttributes) /* 22 */
1228
+ #define Tk_CharBbox \
1229
+ (tkStubsPtr->tk_CharBbox) /* 23 */
1230
+ #define Tk_ClearSelection \
1231
+ (tkStubsPtr->tk_ClearSelection) /* 24 */
1232
+ #define Tk_ClipboardAppend \
1233
+ (tkStubsPtr->tk_ClipboardAppend) /* 25 */
1234
+ #define Tk_ClipboardClear \
1235
+ (tkStubsPtr->tk_ClipboardClear) /* 26 */
1236
+ #define Tk_ConfigureInfo \
1237
+ (tkStubsPtr->tk_ConfigureInfo) /* 27 */
1238
+ #define Tk_ConfigureValue \
1239
+ (tkStubsPtr->tk_ConfigureValue) /* 28 */
1240
+ #define Tk_ConfigureWidget \
1241
+ (tkStubsPtr->tk_ConfigureWidget) /* 29 */
1242
+ #define Tk_ConfigureWindow \
1243
+ (tkStubsPtr->tk_ConfigureWindow) /* 30 */
1244
+ #define Tk_ComputeTextLayout \
1245
+ (tkStubsPtr->tk_ComputeTextLayout) /* 31 */
1246
+ #define Tk_CoordsToWindow \
1247
+ (tkStubsPtr->tk_CoordsToWindow) /* 32 */
1248
+ #define Tk_CreateBinding \
1249
+ (tkStubsPtr->tk_CreateBinding) /* 33 */
1250
+ #define Tk_CreateBindingTable \
1251
+ (tkStubsPtr->tk_CreateBindingTable) /* 34 */
1252
+ #define Tk_CreateErrorHandler \
1253
+ (tkStubsPtr->tk_CreateErrorHandler) /* 35 */
1254
+ #define Tk_CreateEventHandler \
1255
+ (tkStubsPtr->tk_CreateEventHandler) /* 36 */
1256
+ #define Tk_CreateGenericHandler \
1257
+ (tkStubsPtr->tk_CreateGenericHandler) /* 37 */
1258
+ #define Tk_CreateImageType \
1259
+ (tkStubsPtr->tk_CreateImageType) /* 38 */
1260
+ #define Tk_CreateItemType \
1261
+ (tkStubsPtr->tk_CreateItemType) /* 39 */
1262
+ #define Tk_CreatePhotoImageFormat \
1263
+ (tkStubsPtr->tk_CreatePhotoImageFormat) /* 40 */
1264
+ #define Tk_CreateSelHandler \
1265
+ (tkStubsPtr->tk_CreateSelHandler) /* 41 */
1266
+ #define Tk_CreateWindow \
1267
+ (tkStubsPtr->tk_CreateWindow) /* 42 */
1268
+ #define Tk_CreateWindowFromPath \
1269
+ (tkStubsPtr->tk_CreateWindowFromPath) /* 43 */
1270
+ #define Tk_DefineBitmap \
1271
+ (tkStubsPtr->tk_DefineBitmap) /* 44 */
1272
+ #define Tk_DefineCursor \
1273
+ (tkStubsPtr->tk_DefineCursor) /* 45 */
1274
+ #define Tk_DeleteAllBindings \
1275
+ (tkStubsPtr->tk_DeleteAllBindings) /* 46 */
1276
+ #define Tk_DeleteBinding \
1277
+ (tkStubsPtr->tk_DeleteBinding) /* 47 */
1278
+ #define Tk_DeleteBindingTable \
1279
+ (tkStubsPtr->tk_DeleteBindingTable) /* 48 */
1280
+ #define Tk_DeleteErrorHandler \
1281
+ (tkStubsPtr->tk_DeleteErrorHandler) /* 49 */
1282
+ #define Tk_DeleteEventHandler \
1283
+ (tkStubsPtr->tk_DeleteEventHandler) /* 50 */
1284
+ #define Tk_DeleteGenericHandler \
1285
+ (tkStubsPtr->tk_DeleteGenericHandler) /* 51 */
1286
+ #define Tk_DeleteImage \
1287
+ (tkStubsPtr->tk_DeleteImage) /* 52 */
1288
+ #define Tk_DeleteSelHandler \
1289
+ (tkStubsPtr->tk_DeleteSelHandler) /* 53 */
1290
+ #define Tk_DestroyWindow \
1291
+ (tkStubsPtr->tk_DestroyWindow) /* 54 */
1292
+ #define Tk_DisplayName \
1293
+ (tkStubsPtr->tk_DisplayName) /* 55 */
1294
+ #define Tk_DistanceToTextLayout \
1295
+ (tkStubsPtr->tk_DistanceToTextLayout) /* 56 */
1296
+ #define Tk_Draw3DPolygon \
1297
+ (tkStubsPtr->tk_Draw3DPolygon) /* 57 */
1298
+ #define Tk_Draw3DRectangle \
1299
+ (tkStubsPtr->tk_Draw3DRectangle) /* 58 */
1300
+ #define Tk_DrawChars \
1301
+ (tkStubsPtr->tk_DrawChars) /* 59 */
1302
+ #define Tk_DrawFocusHighlight \
1303
+ (tkStubsPtr->tk_DrawFocusHighlight) /* 60 */
1304
+ #define Tk_DrawTextLayout \
1305
+ (tkStubsPtr->tk_DrawTextLayout) /* 61 */
1306
+ #define Tk_Fill3DPolygon \
1307
+ (tkStubsPtr->tk_Fill3DPolygon) /* 62 */
1308
+ #define Tk_Fill3DRectangle \
1309
+ (tkStubsPtr->tk_Fill3DRectangle) /* 63 */
1310
+ #define Tk_FindPhoto \
1311
+ (tkStubsPtr->tk_FindPhoto) /* 64 */
1312
+ #define Tk_FontId \
1313
+ (tkStubsPtr->tk_FontId) /* 65 */
1314
+ #define Tk_Free3DBorder \
1315
+ (tkStubsPtr->tk_Free3DBorder) /* 66 */
1316
+ #define Tk_FreeBitmap \
1317
+ (tkStubsPtr->tk_FreeBitmap) /* 67 */
1318
+ #define Tk_FreeColor \
1319
+ (tkStubsPtr->tk_FreeColor) /* 68 */
1320
+ #define Tk_FreeColormap \
1321
+ (tkStubsPtr->tk_FreeColormap) /* 69 */
1322
+ #define Tk_FreeCursor \
1323
+ (tkStubsPtr->tk_FreeCursor) /* 70 */
1324
+ #define Tk_FreeFont \
1325
+ (tkStubsPtr->tk_FreeFont) /* 71 */
1326
+ #define Tk_FreeGC \
1327
+ (tkStubsPtr->tk_FreeGC) /* 72 */
1328
+ #define Tk_FreeImage \
1329
+ (tkStubsPtr->tk_FreeImage) /* 73 */
1330
+ #define Tk_FreeOptions \
1331
+ (tkStubsPtr->tk_FreeOptions) /* 74 */
1332
+ #define Tk_FreePixmap \
1333
+ (tkStubsPtr->tk_FreePixmap) /* 75 */
1334
+ #define Tk_FreeTextLayout \
1335
+ (tkStubsPtr->tk_FreeTextLayout) /* 76 */
1336
+ #define Tk_FreeXId \
1337
+ (tkStubsPtr->tk_FreeXId) /* 77 */
1338
+ #define Tk_GCForColor \
1339
+ (tkStubsPtr->tk_GCForColor) /* 78 */
1340
+ #define Tk_GeometryRequest \
1341
+ (tkStubsPtr->tk_GeometryRequest) /* 79 */
1342
+ #define Tk_Get3DBorder \
1343
+ (tkStubsPtr->tk_Get3DBorder) /* 80 */
1344
+ #define Tk_GetAllBindings \
1345
+ (tkStubsPtr->tk_GetAllBindings) /* 81 */
1346
+ #define Tk_GetAnchor \
1347
+ (tkStubsPtr->tk_GetAnchor) /* 82 */
1348
+ #define Tk_GetAtomName \
1349
+ (tkStubsPtr->tk_GetAtomName) /* 83 */
1350
+ #define Tk_GetBinding \
1351
+ (tkStubsPtr->tk_GetBinding) /* 84 */
1352
+ #define Tk_GetBitmap \
1353
+ (tkStubsPtr->tk_GetBitmap) /* 85 */
1354
+ #define Tk_GetBitmapFromData \
1355
+ (tkStubsPtr->tk_GetBitmapFromData) /* 86 */
1356
+ #define Tk_GetCapStyle \
1357
+ (tkStubsPtr->tk_GetCapStyle) /* 87 */
1358
+ #define Tk_GetColor \
1359
+ (tkStubsPtr->tk_GetColor) /* 88 */
1360
+ #define Tk_GetColorByValue \
1361
+ (tkStubsPtr->tk_GetColorByValue) /* 89 */
1362
+ #define Tk_GetColormap \
1363
+ (tkStubsPtr->tk_GetColormap) /* 90 */
1364
+ #define Tk_GetCursor \
1365
+ (tkStubsPtr->tk_GetCursor) /* 91 */
1366
+ #define Tk_GetCursorFromData \
1367
+ (tkStubsPtr->tk_GetCursorFromData) /* 92 */
1368
+ #define Tk_GetFont \
1369
+ (tkStubsPtr->tk_GetFont) /* 93 */
1370
+ #define Tk_GetFontFromObj \
1371
+ (tkStubsPtr->tk_GetFontFromObj) /* 94 */
1372
+ #define Tk_GetFontMetrics \
1373
+ (tkStubsPtr->tk_GetFontMetrics) /* 95 */
1374
+ #define Tk_GetGC \
1375
+ (tkStubsPtr->tk_GetGC) /* 96 */
1376
+ #define Tk_GetImage \
1377
+ (tkStubsPtr->tk_GetImage) /* 97 */
1378
+ #define Tk_GetImageMasterData \
1379
+ (tkStubsPtr->tk_GetImageMasterData) /* 98 */
1380
+ #define Tk_GetItemTypes \
1381
+ (tkStubsPtr->tk_GetItemTypes) /* 99 */
1382
+ #define Tk_GetJoinStyle \
1383
+ (tkStubsPtr->tk_GetJoinStyle) /* 100 */
1384
+ #define Tk_GetJustify \
1385
+ (tkStubsPtr->tk_GetJustify) /* 101 */
1386
+ #define Tk_GetNumMainWindows \
1387
+ (tkStubsPtr->tk_GetNumMainWindows) /* 102 */
1388
+ #define Tk_GetOption \
1389
+ (tkStubsPtr->tk_GetOption) /* 103 */
1390
+ #define Tk_GetPixels \
1391
+ (tkStubsPtr->tk_GetPixels) /* 104 */
1392
+ #define Tk_GetPixmap \
1393
+ (tkStubsPtr->tk_GetPixmap) /* 105 */
1394
+ #define Tk_GetRelief \
1395
+ (tkStubsPtr->tk_GetRelief) /* 106 */
1396
+ #define Tk_GetRootCoords \
1397
+ (tkStubsPtr->tk_GetRootCoords) /* 107 */
1398
+ #define Tk_GetScrollInfo \
1399
+ (tkStubsPtr->tk_GetScrollInfo) /* 108 */
1400
+ #define Tk_GetScreenMM \
1401
+ (tkStubsPtr->tk_GetScreenMM) /* 109 */
1402
+ #define Tk_GetSelection \
1403
+ (tkStubsPtr->tk_GetSelection) /* 110 */
1404
+ #define Tk_GetUid \
1405
+ (tkStubsPtr->tk_GetUid) /* 111 */
1406
+ #define Tk_GetVisual \
1407
+ (tkStubsPtr->tk_GetVisual) /* 112 */
1408
+ #define Tk_GetVRootGeometry \
1409
+ (tkStubsPtr->tk_GetVRootGeometry) /* 113 */
1410
+ #define Tk_Grab \
1411
+ (tkStubsPtr->tk_Grab) /* 114 */
1412
+ #define Tk_HandleEvent \
1413
+ (tkStubsPtr->tk_HandleEvent) /* 115 */
1414
+ #define Tk_IdToWindow \
1415
+ (tkStubsPtr->tk_IdToWindow) /* 116 */
1416
+ #define Tk_ImageChanged \
1417
+ (tkStubsPtr->tk_ImageChanged) /* 117 */
1418
+ #define Tk_Init \
1419
+ (tkStubsPtr->tk_Init) /* 118 */
1420
+ #define Tk_InternAtom \
1421
+ (tkStubsPtr->tk_InternAtom) /* 119 */
1422
+ #define Tk_IntersectTextLayout \
1423
+ (tkStubsPtr->tk_IntersectTextLayout) /* 120 */
1424
+ #define Tk_MaintainGeometry \
1425
+ (tkStubsPtr->tk_MaintainGeometry) /* 121 */
1426
+ #define Tk_MainWindow \
1427
+ (tkStubsPtr->tk_MainWindow) /* 122 */
1428
+ #define Tk_MakeWindowExist \
1429
+ (tkStubsPtr->tk_MakeWindowExist) /* 123 */
1430
+ #define Tk_ManageGeometry \
1431
+ (tkStubsPtr->tk_ManageGeometry) /* 124 */
1432
+ #define Tk_MapWindow \
1433
+ (tkStubsPtr->tk_MapWindow) /* 125 */
1434
+ #define Tk_MeasureChars \
1435
+ (tkStubsPtr->tk_MeasureChars) /* 126 */
1436
+ #define Tk_MoveResizeWindow \
1437
+ (tkStubsPtr->tk_MoveResizeWindow) /* 127 */
1438
+ #define Tk_MoveWindow \
1439
+ (tkStubsPtr->tk_MoveWindow) /* 128 */
1440
+ #define Tk_MoveToplevelWindow \
1441
+ (tkStubsPtr->tk_MoveToplevelWindow) /* 129 */
1442
+ #define Tk_NameOf3DBorder \
1443
+ (tkStubsPtr->tk_NameOf3DBorder) /* 130 */
1444
+ #define Tk_NameOfAnchor \
1445
+ (tkStubsPtr->tk_NameOfAnchor) /* 131 */
1446
+ #define Tk_NameOfBitmap \
1447
+ (tkStubsPtr->tk_NameOfBitmap) /* 132 */
1448
+ #define Tk_NameOfCapStyle \
1449
+ (tkStubsPtr->tk_NameOfCapStyle) /* 133 */
1450
+ #define Tk_NameOfColor \
1451
+ (tkStubsPtr->tk_NameOfColor) /* 134 */
1452
+ #define Tk_NameOfCursor \
1453
+ (tkStubsPtr->tk_NameOfCursor) /* 135 */
1454
+ #define Tk_NameOfFont \
1455
+ (tkStubsPtr->tk_NameOfFont) /* 136 */
1456
+ #define Tk_NameOfImage \
1457
+ (tkStubsPtr->tk_NameOfImage) /* 137 */
1458
+ #define Tk_NameOfJoinStyle \
1459
+ (tkStubsPtr->tk_NameOfJoinStyle) /* 138 */
1460
+ #define Tk_NameOfJustify \
1461
+ (tkStubsPtr->tk_NameOfJustify) /* 139 */
1462
+ #define Tk_NameOfRelief \
1463
+ (tkStubsPtr->tk_NameOfRelief) /* 140 */
1464
+ #define Tk_NameToWindow \
1465
+ (tkStubsPtr->tk_NameToWindow) /* 141 */
1466
+ #define Tk_OwnSelection \
1467
+ (tkStubsPtr->tk_OwnSelection) /* 142 */
1468
+ #define Tk_ParseArgv \
1469
+ (tkStubsPtr->tk_ParseArgv) /* 143 */
1470
+ #define Tk_PhotoPutBlock_NoComposite \
1471
+ (tkStubsPtr->tk_PhotoPutBlock_NoComposite) /* 144 */
1472
+ #define Tk_PhotoPutZoomedBlock_NoComposite \
1473
+ (tkStubsPtr->tk_PhotoPutZoomedBlock_NoComposite) /* 145 */
1474
+ #define Tk_PhotoGetImage \
1475
+ (tkStubsPtr->tk_PhotoGetImage) /* 146 */
1476
+ #define Tk_PhotoBlank \
1477
+ (tkStubsPtr->tk_PhotoBlank) /* 147 */
1478
+ #define Tk_PhotoExpand_Panic \
1479
+ (tkStubsPtr->tk_PhotoExpand_Panic) /* 148 */
1480
+ #define Tk_PhotoGetSize \
1481
+ (tkStubsPtr->tk_PhotoGetSize) /* 149 */
1482
+ #define Tk_PhotoSetSize_Panic \
1483
+ (tkStubsPtr->tk_PhotoSetSize_Panic) /* 150 */
1484
+ #define Tk_PointToChar \
1485
+ (tkStubsPtr->tk_PointToChar) /* 151 */
1486
+ #define Tk_PostscriptFontName \
1487
+ (tkStubsPtr->tk_PostscriptFontName) /* 152 */
1488
+ #define Tk_PreserveColormap \
1489
+ (tkStubsPtr->tk_PreserveColormap) /* 153 */
1490
+ #define Tk_QueueWindowEvent \
1491
+ (tkStubsPtr->tk_QueueWindowEvent) /* 154 */
1492
+ #define Tk_RedrawImage \
1493
+ (tkStubsPtr->tk_RedrawImage) /* 155 */
1494
+ #define Tk_ResizeWindow \
1495
+ (tkStubsPtr->tk_ResizeWindow) /* 156 */
1496
+ #define Tk_RestackWindow \
1497
+ (tkStubsPtr->tk_RestackWindow) /* 157 */
1498
+ #define Tk_RestrictEvents \
1499
+ (tkStubsPtr->tk_RestrictEvents) /* 158 */
1500
+ #define Tk_SafeInit \
1501
+ (tkStubsPtr->tk_SafeInit) /* 159 */
1502
+ #define Tk_SetAppName \
1503
+ (tkStubsPtr->tk_SetAppName) /* 160 */
1504
+ #define Tk_SetBackgroundFromBorder \
1505
+ (tkStubsPtr->tk_SetBackgroundFromBorder) /* 161 */
1506
+ #define Tk_SetClass \
1507
+ (tkStubsPtr->tk_SetClass) /* 162 */
1508
+ #define Tk_SetGrid \
1509
+ (tkStubsPtr->tk_SetGrid) /* 163 */
1510
+ #define Tk_SetInternalBorder \
1511
+ (tkStubsPtr->tk_SetInternalBorder) /* 164 */
1512
+ #define Tk_SetWindowBackground \
1513
+ (tkStubsPtr->tk_SetWindowBackground) /* 165 */
1514
+ #define Tk_SetWindowBackgroundPixmap \
1515
+ (tkStubsPtr->tk_SetWindowBackgroundPixmap) /* 166 */
1516
+ #define Tk_SetWindowBorder \
1517
+ (tkStubsPtr->tk_SetWindowBorder) /* 167 */
1518
+ #define Tk_SetWindowBorderWidth \
1519
+ (tkStubsPtr->tk_SetWindowBorderWidth) /* 168 */
1520
+ #define Tk_SetWindowBorderPixmap \
1521
+ (tkStubsPtr->tk_SetWindowBorderPixmap) /* 169 */
1522
+ #define Tk_SetWindowColormap \
1523
+ (tkStubsPtr->tk_SetWindowColormap) /* 170 */
1524
+ #define Tk_SetWindowVisual \
1525
+ (tkStubsPtr->tk_SetWindowVisual) /* 171 */
1526
+ #define Tk_SizeOfBitmap \
1527
+ (tkStubsPtr->tk_SizeOfBitmap) /* 172 */
1528
+ #define Tk_SizeOfImage \
1529
+ (tkStubsPtr->tk_SizeOfImage) /* 173 */
1530
+ #define Tk_StrictMotif \
1531
+ (tkStubsPtr->tk_StrictMotif) /* 174 */
1532
+ #define Tk_TextLayoutToPostscript \
1533
+ (tkStubsPtr->tk_TextLayoutToPostscript) /* 175 */
1534
+ #define Tk_TextWidth \
1535
+ (tkStubsPtr->tk_TextWidth) /* 176 */
1536
+ #define Tk_UndefineCursor \
1537
+ (tkStubsPtr->tk_UndefineCursor) /* 177 */
1538
+ #define Tk_UnderlineChars \
1539
+ (tkStubsPtr->tk_UnderlineChars) /* 178 */
1540
+ #define Tk_UnderlineTextLayout \
1541
+ (tkStubsPtr->tk_UnderlineTextLayout) /* 179 */
1542
+ #define Tk_Ungrab \
1543
+ (tkStubsPtr->tk_Ungrab) /* 180 */
1544
+ #define Tk_UnmaintainGeometry \
1545
+ (tkStubsPtr->tk_UnmaintainGeometry) /* 181 */
1546
+ #define Tk_UnmapWindow \
1547
+ (tkStubsPtr->tk_UnmapWindow) /* 182 */
1548
+ #define Tk_UnsetGrid \
1549
+ (tkStubsPtr->tk_UnsetGrid) /* 183 */
1550
+ #define Tk_UpdatePointer \
1551
+ (tkStubsPtr->tk_UpdatePointer) /* 184 */
1552
+ #define Tk_AllocBitmapFromObj \
1553
+ (tkStubsPtr->tk_AllocBitmapFromObj) /* 185 */
1554
+ #define Tk_Alloc3DBorderFromObj \
1555
+ (tkStubsPtr->tk_Alloc3DBorderFromObj) /* 186 */
1556
+ #define Tk_AllocColorFromObj \
1557
+ (tkStubsPtr->tk_AllocColorFromObj) /* 187 */
1558
+ #define Tk_AllocCursorFromObj \
1559
+ (tkStubsPtr->tk_AllocCursorFromObj) /* 188 */
1560
+ #define Tk_AllocFontFromObj \
1561
+ (tkStubsPtr->tk_AllocFontFromObj) /* 189 */
1562
+ #define Tk_CreateOptionTable \
1563
+ (tkStubsPtr->tk_CreateOptionTable) /* 190 */
1564
+ #define Tk_DeleteOptionTable \
1565
+ (tkStubsPtr->tk_DeleteOptionTable) /* 191 */
1566
+ #define Tk_Free3DBorderFromObj \
1567
+ (tkStubsPtr->tk_Free3DBorderFromObj) /* 192 */
1568
+ #define Tk_FreeBitmapFromObj \
1569
+ (tkStubsPtr->tk_FreeBitmapFromObj) /* 193 */
1570
+ #define Tk_FreeColorFromObj \
1571
+ (tkStubsPtr->tk_FreeColorFromObj) /* 194 */
1572
+ #define Tk_FreeConfigOptions \
1573
+ (tkStubsPtr->tk_FreeConfigOptions) /* 195 */
1574
+ #define Tk_FreeSavedOptions \
1575
+ (tkStubsPtr->tk_FreeSavedOptions) /* 196 */
1576
+ #define Tk_FreeCursorFromObj \
1577
+ (tkStubsPtr->tk_FreeCursorFromObj) /* 197 */
1578
+ #define Tk_FreeFontFromObj \
1579
+ (tkStubsPtr->tk_FreeFontFromObj) /* 198 */
1580
+ #define Tk_Get3DBorderFromObj \
1581
+ (tkStubsPtr->tk_Get3DBorderFromObj) /* 199 */
1582
+ #define Tk_GetAnchorFromObj \
1583
+ (tkStubsPtr->tk_GetAnchorFromObj) /* 200 */
1584
+ #define Tk_GetBitmapFromObj \
1585
+ (tkStubsPtr->tk_GetBitmapFromObj) /* 201 */
1586
+ #define Tk_GetColorFromObj \
1587
+ (tkStubsPtr->tk_GetColorFromObj) /* 202 */
1588
+ #define Tk_GetCursorFromObj \
1589
+ (tkStubsPtr->tk_GetCursorFromObj) /* 203 */
1590
+ #define Tk_GetOptionInfo \
1591
+ (tkStubsPtr->tk_GetOptionInfo) /* 204 */
1592
+ #define Tk_GetOptionValue \
1593
+ (tkStubsPtr->tk_GetOptionValue) /* 205 */
1594
+ #define Tk_GetJustifyFromObj \
1595
+ (tkStubsPtr->tk_GetJustifyFromObj) /* 206 */
1596
+ #define Tk_GetMMFromObj \
1597
+ (tkStubsPtr->tk_GetMMFromObj) /* 207 */
1598
+ #define Tk_GetPixelsFromObj \
1599
+ (tkStubsPtr->tk_GetPixelsFromObj) /* 208 */
1600
+ #define Tk_GetReliefFromObj \
1601
+ (tkStubsPtr->tk_GetReliefFromObj) /* 209 */
1602
+ #define Tk_GetScrollInfoObj \
1603
+ (tkStubsPtr->tk_GetScrollInfoObj) /* 210 */
1604
+ #define Tk_InitOptions \
1605
+ (tkStubsPtr->tk_InitOptions) /* 211 */
1606
+ #define Tk_MainEx \
1607
+ (tkStubsPtr->tk_MainEx) /* 212 */
1608
+ #define Tk_RestoreSavedOptions \
1609
+ (tkStubsPtr->tk_RestoreSavedOptions) /* 213 */
1610
+ #define Tk_SetOptions \
1611
+ (tkStubsPtr->tk_SetOptions) /* 214 */
1612
+ #define Tk_InitConsoleChannels \
1613
+ (tkStubsPtr->tk_InitConsoleChannels) /* 215 */
1614
+ #define Tk_CreateConsoleWindow \
1615
+ (tkStubsPtr->tk_CreateConsoleWindow) /* 216 */
1616
+ #define Tk_CreateSmoothMethod \
1617
+ (tkStubsPtr->tk_CreateSmoothMethod) /* 217 */
1618
+ /* Slot 218 is reserved */
1619
+ /* Slot 219 is reserved */
1620
+ #define Tk_GetDash \
1621
+ (tkStubsPtr->tk_GetDash) /* 220 */
1622
+ #define Tk_CreateOutline \
1623
+ (tkStubsPtr->tk_CreateOutline) /* 221 */
1624
+ #define Tk_DeleteOutline \
1625
+ (tkStubsPtr->tk_DeleteOutline) /* 222 */
1626
+ #define Tk_ConfigOutlineGC \
1627
+ (tkStubsPtr->tk_ConfigOutlineGC) /* 223 */
1628
+ #define Tk_ChangeOutlineGC \
1629
+ (tkStubsPtr->tk_ChangeOutlineGC) /* 224 */
1630
+ #define Tk_ResetOutlineGC \
1631
+ (tkStubsPtr->tk_ResetOutlineGC) /* 225 */
1632
+ #define Tk_CanvasPsOutline \
1633
+ (tkStubsPtr->tk_CanvasPsOutline) /* 226 */
1634
+ #define Tk_SetTSOrigin \
1635
+ (tkStubsPtr->tk_SetTSOrigin) /* 227 */
1636
+ #define Tk_CanvasGetCoordFromObj \
1637
+ (tkStubsPtr->tk_CanvasGetCoordFromObj) /* 228 */
1638
+ #define Tk_CanvasSetOffset \
1639
+ (tkStubsPtr->tk_CanvasSetOffset) /* 229 */
1640
+ #define Tk_DitherPhoto \
1641
+ (tkStubsPtr->tk_DitherPhoto) /* 230 */
1642
+ #define Tk_PostscriptBitmap \
1643
+ (tkStubsPtr->tk_PostscriptBitmap) /* 231 */
1644
+ #define Tk_PostscriptColor \
1645
+ (tkStubsPtr->tk_PostscriptColor) /* 232 */
1646
+ #define Tk_PostscriptFont \
1647
+ (tkStubsPtr->tk_PostscriptFont) /* 233 */
1648
+ #define Tk_PostscriptImage \
1649
+ (tkStubsPtr->tk_PostscriptImage) /* 234 */
1650
+ #define Tk_PostscriptPath \
1651
+ (tkStubsPtr->tk_PostscriptPath) /* 235 */
1652
+ #define Tk_PostscriptStipple \
1653
+ (tkStubsPtr->tk_PostscriptStipple) /* 236 */
1654
+ #define Tk_PostscriptY \
1655
+ (tkStubsPtr->tk_PostscriptY) /* 237 */
1656
+ #define Tk_PostscriptPhoto \
1657
+ (tkStubsPtr->tk_PostscriptPhoto) /* 238 */
1658
+ #define Tk_CreateClientMessageHandler \
1659
+ (tkStubsPtr->tk_CreateClientMessageHandler) /* 239 */
1660
+ #define Tk_DeleteClientMessageHandler \
1661
+ (tkStubsPtr->tk_DeleteClientMessageHandler) /* 240 */
1662
+ #define Tk_CreateAnonymousWindow \
1663
+ (tkStubsPtr->tk_CreateAnonymousWindow) /* 241 */
1664
+ #define Tk_SetClassProcs \
1665
+ (tkStubsPtr->tk_SetClassProcs) /* 242 */
1666
+ #define Tk_SetInternalBorderEx \
1667
+ (tkStubsPtr->tk_SetInternalBorderEx) /* 243 */
1668
+ #define Tk_SetMinimumRequestSize \
1669
+ (tkStubsPtr->tk_SetMinimumRequestSize) /* 244 */
1670
+ #define Tk_SetCaretPos \
1671
+ (tkStubsPtr->tk_SetCaretPos) /* 245 */
1672
+ #define Tk_PhotoPutBlock_Panic \
1673
+ (tkStubsPtr->tk_PhotoPutBlock_Panic) /* 246 */
1674
+ #define Tk_PhotoPutZoomedBlock_Panic \
1675
+ (tkStubsPtr->tk_PhotoPutZoomedBlock_Panic) /* 247 */
1676
+ #define Tk_CollapseMotionEvents \
1677
+ (tkStubsPtr->tk_CollapseMotionEvents) /* 248 */
1678
+ #define Tk_RegisterStyleEngine \
1679
+ (tkStubsPtr->tk_RegisterStyleEngine) /* 249 */
1680
+ #define Tk_GetStyleEngine \
1681
+ (tkStubsPtr->tk_GetStyleEngine) /* 250 */
1682
+ #define Tk_RegisterStyledElement \
1683
+ (tkStubsPtr->tk_RegisterStyledElement) /* 251 */
1684
+ #define Tk_GetElementId \
1685
+ (tkStubsPtr->tk_GetElementId) /* 252 */
1686
+ #define Tk_CreateStyle \
1687
+ (tkStubsPtr->tk_CreateStyle) /* 253 */
1688
+ #define Tk_GetStyle \
1689
+ (tkStubsPtr->tk_GetStyle) /* 254 */
1690
+ #define Tk_FreeStyle \
1691
+ (tkStubsPtr->tk_FreeStyle) /* 255 */
1692
+ #define Tk_NameOfStyle \
1693
+ (tkStubsPtr->tk_NameOfStyle) /* 256 */
1694
+ #define Tk_AllocStyleFromObj \
1695
+ (tkStubsPtr->tk_AllocStyleFromObj) /* 257 */
1696
+ #define Tk_GetStyleFromObj \
1697
+ (tkStubsPtr->tk_GetStyleFromObj) /* 258 */
1698
+ #define Tk_FreeStyleFromObj \
1699
+ (tkStubsPtr->tk_FreeStyleFromObj) /* 259 */
1700
+ #define Tk_GetStyledElement \
1701
+ (tkStubsPtr->tk_GetStyledElement) /* 260 */
1702
+ #define Tk_GetElementSize \
1703
+ (tkStubsPtr->tk_GetElementSize) /* 261 */
1704
+ #define Tk_GetElementBox \
1705
+ (tkStubsPtr->tk_GetElementBox) /* 262 */
1706
+ #define Tk_GetElementBorderWidth \
1707
+ (tkStubsPtr->tk_GetElementBorderWidth) /* 263 */
1708
+ #define Tk_DrawElement \
1709
+ (tkStubsPtr->tk_DrawElement) /* 264 */
1710
+ #define Tk_PhotoExpand \
1711
+ (tkStubsPtr->tk_PhotoExpand) /* 265 */
1712
+ #define Tk_PhotoPutBlock \
1713
+ (tkStubsPtr->tk_PhotoPutBlock) /* 266 */
1714
+ #define Tk_PhotoPutZoomedBlock \
1715
+ (tkStubsPtr->tk_PhotoPutZoomedBlock) /* 267 */
1716
+ #define Tk_PhotoSetSize \
1717
+ (tkStubsPtr->tk_PhotoSetSize) /* 268 */
1718
+ #define Tk_GetUserInactiveTime \
1719
+ (tkStubsPtr->tk_GetUserInactiveTime) /* 269 */
1720
+ #define Tk_ResetUserInactiveTime \
1721
+ (tkStubsPtr->tk_ResetUserInactiveTime) /* 270 */
1722
+ #define Tk_Interp \
1723
+ (tkStubsPtr->tk_Interp) /* 271 */
1724
+ #define Tk_CreateOldImageType \
1725
+ (tkStubsPtr->tk_CreateOldImageType) /* 272 */
1726
+ #define Tk_CreateOldPhotoImageFormat \
1727
+ (tkStubsPtr->tk_CreateOldPhotoImageFormat) /* 273 */
1728
+ /* Slot 274 is reserved */
1729
+ /* Slot 275 is reserved */
1730
+ /* Slot 276 is reserved */
1731
+ /* Slot 277 is reserved */
1732
+ /* Slot 278 is reserved */
1733
+ /* Slot 279 is reserved */
1734
+ #define TkUnusedStubEntry \
1735
+ (tkStubsPtr->tkUnusedStubEntry) /* 280 */
1736
+
1737
+ #endif /* defined(USE_TK_STUBS) */
1738
+
1739
+ /* !END!: Do not edit above this line. */
1740
+
1741
+ /* Functions that don't belong in the stub table */
1742
+ #undef Tk_MainEx
1743
+ #undef Tk_Init
1744
+ #undef Tk_SafeInit
1745
+ #undef Tk_CreateConsoleWindow
1746
+ #define Tk_GetImageModelData Tk_GetImageMasterData
1747
+
1748
+ #if defined(_WIN32) && defined(UNICODE)
1749
+ # define Tk_MainEx Tk_MainExW
1750
+ EXTERN void Tk_MainExW(int argc, wchar_t **argv,
1751
+ Tcl_AppInitProc *appInitProc, Tcl_Interp *interp);
1752
+ #endif
1753
+
1754
+ #undef TCL_STORAGE_CLASS
1755
+ #define TCL_STORAGE_CLASS DLLIMPORT
1756
+
1757
+ #undef TkUnusedStubEntry
1758
+
1759
+ #endif /* _TKDECLS */
my_container_sandbox/workspace/anaconda3/include/tkEntry.h ADDED
@@ -0,0 +1,298 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * tkEntry.h --
3
+ *
4
+ * This module defined the structures for the Entry & SpinBox widgets.
5
+ *
6
+ * See the file "license.terms" for information on usage and redistribution of
7
+ * this file, and for a DISCLAIMER OF ALL WARRANTIES.
8
+ *
9
+ * Copyright (c) 2002 Apple Inc.
10
+ */
11
+
12
+ #ifndef _TKENTRY
13
+ #define _TKENTRY
14
+
15
+ #ifndef _TKINT
16
+ #include "tkInt.h"
17
+ #endif
18
+
19
+ enum EntryType {
20
+ TK_ENTRY, TK_SPINBOX
21
+ };
22
+
23
+ /*
24
+ * A data structure of the following type is kept for each Entry widget
25
+ * managed by this file:
26
+ */
27
+
28
+ typedef struct {
29
+ Tk_Window tkwin; /* Window that embodies the entry. NULL means
30
+ * that the window has been destroyed but the
31
+ * data structures haven't yet been cleaned
32
+ * up.*/
33
+ Display *display; /* Display containing widget. Used, among
34
+ * other things, so that resources can be
35
+ * freed even after tkwin has gone away. */
36
+ Tcl_Interp *interp; /* Interpreter associated with entry. */
37
+ Tcl_Command widgetCmd; /* Token for entry's widget command. */
38
+ Tk_OptionTable optionTable; /* Table that defines configuration options
39
+ * available for this widget. */
40
+ enum EntryType type; /* Specialized type of Entry widget */
41
+
42
+ /*
43
+ * Fields that are set by widget commands other than "configure".
44
+ */
45
+
46
+ const char *string; /* Pointer to storage for string;
47
+ * NULL-terminated; malloc-ed. */
48
+ int insertPos; /* Character index before which next typed
49
+ * character will be inserted. */
50
+
51
+ /*
52
+ * Information about what's selected, if any.
53
+ */
54
+
55
+ int selectFirst; /* Character index of first selected character
56
+ * (-1 means nothing selected. */
57
+ int selectLast; /* Character index just after last selected
58
+ * character (-1 means nothing selected. */
59
+ int selectAnchor; /* Fixed end of selection (i.e. "select to"
60
+ * operation will use this as one end of the
61
+ * selection). */
62
+
63
+ /*
64
+ * Information for scanning:
65
+ */
66
+
67
+ int scanMarkX; /* X-position at which scan started (e.g.
68
+ * button was pressed here). */
69
+ int scanMarkIndex; /* Character index of character that was at
70
+ * left of window when scan started. */
71
+
72
+ /*
73
+ * Configuration settings that are updated by Tk_ConfigureWidget.
74
+ */
75
+
76
+ Tk_3DBorder normalBorder; /* Used for drawing border around whole
77
+ * window, plus used for background. */
78
+ Tk_3DBorder disabledBorder; /* Used for drawing border around whole window
79
+ * in disabled state, plus used for
80
+ * background. */
81
+ Tk_3DBorder readonlyBorder; /* Used for drawing border around whole window
82
+ * in readonly state, plus used for
83
+ * background. */
84
+ int borderWidth; /* Width of 3-D border around window. */
85
+ Tk_Cursor cursor; /* Current cursor for window, or NULL. */
86
+ int exportSelection; /* Non-zero means tie internal entry selection
87
+ * to X selection. */
88
+ Tk_Font tkfont; /* Information about text font, or NULL. */
89
+ XColor *fgColorPtr; /* Text color in normal mode. */
90
+ XColor *dfgColorPtr; /* Text color in disabled mode. */
91
+ XColor *highlightBgColorPtr;/* Color for drawing traversal highlight area
92
+ * when highlight is off. */
93
+ XColor *highlightColorPtr; /* Color for drawing traversal highlight. */
94
+ int highlightWidth; /* Width in pixels of highlight to draw around
95
+ * widget when it has the focus. <= 0 means
96
+ * don't draw a highlight. */
97
+ Tk_3DBorder insertBorder; /* Used to draw vertical bar for insertion
98
+ * cursor. */
99
+ int insertBorderWidth; /* Width of 3-D border around insert cursor. */
100
+ int insertOffTime; /* Number of milliseconds cursor should spend
101
+ * in "off" state for each blink. */
102
+ int insertOnTime; /* Number of milliseconds cursor should spend
103
+ * in "on" state for each blink. */
104
+ int insertWidth; /* Total width of insert cursor. */
105
+ Tk_Justify justify; /* Justification to use for text within
106
+ * window. */
107
+ int relief; /* 3-D effect: TK_RELIEF_RAISED, etc. */
108
+ Tk_3DBorder selBorder; /* Border and background for selected
109
+ * characters. */
110
+ int selBorderWidth; /* Width of border around selection. */
111
+ XColor *selFgColorPtr; /* Foreground color for selected text. */
112
+ int state; /* Normal or disabled. Entry is read-only when
113
+ * disabled. */
114
+ char *textVarName; /* Name of variable (malloc'ed) or NULL. If
115
+ * non-NULL, entry's string tracks the
116
+ * contents of this variable and vice
117
+ * versa. */
118
+ char *takeFocus; /* Value of -takefocus option; not used in the
119
+ * C code, but used by keyboard traversal
120
+ * scripts. Malloc'ed, but may be NULL. */
121
+ int prefWidth; /* Desired width of window, measured in
122
+ * average characters. */
123
+ char *scrollCmd; /* Command prefix for communicating with
124
+ * scrollbar(s). Malloc'ed. NULL means no
125
+ * command to issue. */
126
+ char *showChar; /* Value of -show option. If non-NULL, first
127
+ * character is used for displaying all
128
+ * characters in entry. Malloc'ed. This is
129
+ * only used by the Entry widget. */
130
+
131
+ /*
132
+ * Fields whose values are derived from the current values of the
133
+ * configuration settings above.
134
+ */
135
+
136
+ const char *displayString; /* String to use when displaying. This may be
137
+ * a pointer to string, or a pointer to
138
+ * malloced memory with the same character
139
+ * length as string but whose characters are
140
+ * all equal to showChar. */
141
+ int numBytes; /* Length of string in bytes. */
142
+ int numChars; /* Length of string in characters. Both string
143
+ * and displayString have the same character
144
+ * length, but may have different byte lengths
145
+ * due to being made from different UTF-8
146
+ * characters. */
147
+ int numDisplayBytes; /* Length of displayString in bytes. */
148
+ int inset; /* Number of pixels on the left and right
149
+ * sides that are taken up by XPAD,
150
+ * borderWidth (if any), and highlightWidth
151
+ * (if any). */
152
+ Tk_TextLayout textLayout; /* Cached text layout information. */
153
+ int layoutX, layoutY; /* Origin for layout. */
154
+ int leftX; /* X position at which character at leftIndex
155
+ * is drawn (varies depending on justify). */
156
+ int leftIndex; /* Character index of left-most character
157
+ * visible in window. */
158
+ Tcl_TimerToken insertBlinkHandler;
159
+ /* Timer handler used to blink cursor on and
160
+ * off. */
161
+ GC textGC; /* For drawing normal text. */
162
+ GC selTextGC; /* For drawing selected text. */
163
+ GC highlightGC; /* For drawing traversal highlight. */
164
+ int avgWidth; /* Width of average character. */
165
+ int xWidth; /* Extra width to reserve for widget. Used by
166
+ * spinboxes for button space. */
167
+ int flags; /* Miscellaneous flags; see below for
168
+ * definitions. */
169
+
170
+ int validate; /* Non-zero means try to validate */
171
+ char *validateCmd; /* Command prefix to use when invoking
172
+ * validate command. NULL means don't invoke
173
+ * commands. Malloc'ed. */
174
+ char *invalidCmd; /* Command called when a validation returns 0
175
+ * (successfully fails), defaults to {}. */
176
+ } Entry;
177
+
178
+ /*
179
+ * A data structure of the following type is kept for each spinbox widget
180
+ * managed by this file:
181
+ */
182
+
183
+ typedef struct {
184
+ Entry entry; /* A pointer to the generic entry structure.
185
+ * This must be the first element of the
186
+ * Spinbox. */
187
+
188
+ /*
189
+ * Spinbox specific configuration settings.
190
+ */
191
+
192
+ Tk_3DBorder activeBorder; /* Used for drawing border around active
193
+ * buttons. */
194
+ Tk_3DBorder buttonBorder; /* Used for drawing border around buttons. */
195
+ Tk_Cursor bCursor; /* cursor for buttons, or NULL. */
196
+ int bdRelief; /* 3-D effect: TK_RELIEF_RAISED, etc. */
197
+ int buRelief; /* 3-D effect: TK_RELIEF_RAISED, etc. */
198
+ char *command; /* Command to invoke for spin buttons. NULL
199
+ * means no command to issue. */
200
+
201
+ /*
202
+ * Spinbox specific fields for use with configuration settings above.
203
+ */
204
+
205
+ int wrap; /* whether to wrap around when spinning */
206
+
207
+ int selElement; /* currently selected control */
208
+ int curElement; /* currently mouseover control */
209
+
210
+ int repeatDelay; /* repeat delay */
211
+ int repeatInterval; /* repeat interval */
212
+
213
+ double fromValue; /* Value corresponding to left/top of dial */
214
+ double toValue; /* Value corresponding to right/bottom of
215
+ * dial */
216
+ double increment; /* If > 0, all values are rounded to an even
217
+ * multiple of this value. */
218
+ char *formatBuf; /* string into which to format value.
219
+ * Malloc'ed. */
220
+ char *reqFormat; /* Sprintf conversion specifier used for the
221
+ * value that the users requests. Malloc'ed */
222
+ char *valueFormat; /* Sprintf conversion specifier used for the
223
+ * value. */
224
+ char digitFormat[16]; /* Sprintf conversion specifier computed from
225
+ * digits and other information; used for the
226
+ * value. */
227
+
228
+ char *valueStr; /* Values List. Malloc'ed. */
229
+ Tcl_Obj *listObj; /* Pointer to the list object being used */
230
+ int eIndex; /* Holds the current index into elements */
231
+ int nElements; /* Holds the current count of elements */
232
+ } Spinbox;
233
+
234
+ /*
235
+ * Assigned bits of "flags" fields of Entry structures, and what those bits
236
+ * mean:
237
+ *
238
+ * REDRAW_PENDING: Non-zero means a DoWhenIdle handler has
239
+ * already been queued to redisplay the entry.
240
+ * BORDER_NEEDED: Non-zero means 3-D border must be redrawn
241
+ * around window during redisplay. Normally only
242
+ * text portion needs to be redrawn.
243
+ * CURSOR_ON: Non-zero means insert cursor is displayed at
244
+ * present. 0 means it isn't displayed.
245
+ * GOT_FOCUS: Non-zero means this window has the input
246
+ * focus.
247
+ * UPDATE_SCROLLBAR: Non-zero means scrollbar should be updated
248
+ * during next redisplay operation.
249
+ * GOT_SELECTION: Non-zero means we've claimed the selection.
250
+ * ENTRY_DELETED: This entry has been effectively destroyed.
251
+ * VALIDATING: Non-zero means we are in a validateCmd
252
+ * VALIDATE_VAR: Non-zero means we are attempting to validate
253
+ * the entry's textvariable with validateCmd
254
+ * VALIDATE_ABORT: Non-zero if validatecommand signals an abort
255
+ * for current procedure and make no changes
256
+ * ENTRY_VAR_TRACED: Non-zero if a var trace is set.
257
+ */
258
+
259
+ #define REDRAW_PENDING 1
260
+ #define BORDER_NEEDED 2
261
+ #define CURSOR_ON 4
262
+ #define GOT_FOCUS 8
263
+ #define UPDATE_SCROLLBAR 0x10
264
+ #define GOT_SELECTION 0x20
265
+ #define ENTRY_DELETED 0x40
266
+ #define VALIDATING 0x80
267
+ #define VALIDATE_VAR 0x100
268
+ #define VALIDATE_ABORT 0x200
269
+ #define ENTRY_VAR_TRACED 0x400
270
+
271
+ /*
272
+ * The following enum is used to define a type for the -state option of the
273
+ * Entry widget. These values are used as indices into the string table below.
274
+ */
275
+
276
+ enum state {
277
+ STATE_DISABLED, STATE_NORMAL, STATE_READONLY
278
+ };
279
+
280
+ /*
281
+ * This is the element index corresponding to the strings in selElementNames.
282
+ * If you modify them, you must modify the numbers here.
283
+ */
284
+
285
+ enum selelement {
286
+ SEL_NONE, SEL_BUTTONDOWN, SEL_BUTTONUP, SEL_NULL, SEL_ENTRY
287
+ };
288
+
289
+ /*
290
+ * Declaration of functions used in the implementation of the native side of
291
+ * the Entry widget.
292
+ */
293
+
294
+ MODULE_SCOPE int TkpDrawEntryBorderAndFocus(Entry *entryPtr,
295
+ Drawable d, int isSpinbox);
296
+ MODULE_SCOPE int TkpDrawSpinboxButtons(Spinbox *sbPtr, Drawable d);
297
+
298
+ #endif /* _TKENTRY */
my_container_sandbox/workspace/anaconda3/include/tkIntDecls.h ADDED
@@ -0,0 +1,1228 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * tkIntDecls.h --
3
+ *
4
+ * This file contains the declarations for all unsupported
5
+ * functions that are exported by the Tk library. These
6
+ * interfaces are not guaranteed to remain the same between
7
+ * versions. Use at your own risk.
8
+ *
9
+ * Copyright (c) 1998-1999 by Scriptics Corporation.
10
+ *
11
+ * See the file "license.terms" for information on usage and redistribution
12
+ * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
13
+ */
14
+
15
+ #ifndef _TKINTDECLS
16
+ #define _TKINTDECLS
17
+
18
+ #ifdef BUILD_tk
19
+ #undef TCL_STORAGE_CLASS
20
+ #define TCL_STORAGE_CLASS DLLEXPORT
21
+ #endif
22
+
23
+ struct TkText;
24
+ typedef struct TkTextBTree_ *TkTextBTree;
25
+ struct TkTextDispChunk;
26
+ struct TkTextIndex;
27
+ struct TkTextSegment;
28
+ struct TkSharedText;
29
+
30
+ /*
31
+ * WARNING: This file is automatically generated by the tools/genStubs.tcl
32
+ * script. Any modifications to the function declarations below should be made
33
+ * in the generic/tkInt.decls script.
34
+ */
35
+
36
+ /* !BEGIN!: Do not edit below this line. */
37
+
38
+ #ifdef __cplusplus
39
+ extern "C" {
40
+ #endif
41
+
42
+ /*
43
+ * Exported function declarations:
44
+ */
45
+
46
+ /* 0 */
47
+ EXTERN TkWindow * TkAllocWindow(TkDisplay *dispPtr, int screenNum,
48
+ TkWindow *parentPtr);
49
+ /* 1 */
50
+ EXTERN void TkBezierPoints(double control[], int numSteps,
51
+ double *coordPtr);
52
+ /* 2 */
53
+ EXTERN void TkBezierScreenPoints(Tk_Canvas canvas,
54
+ double control[], int numSteps,
55
+ XPoint *xPointPtr);
56
+ /* Slot 3 is reserved */
57
+ /* 4 */
58
+ EXTERN void TkBindEventProc(TkWindow *winPtr, XEvent *eventPtr);
59
+ /* 5 */
60
+ EXTERN void TkBindFree(TkMainInfo *mainPtr);
61
+ /* 6 */
62
+ EXTERN void TkBindInit(TkMainInfo *mainPtr);
63
+ /* 7 */
64
+ EXTERN void TkChangeEventWindow(XEvent *eventPtr,
65
+ TkWindow *winPtr);
66
+ /* 8 */
67
+ EXTERN int TkClipInit(Tcl_Interp *interp, TkDisplay *dispPtr);
68
+ /* 9 */
69
+ EXTERN void TkComputeAnchor(Tk_Anchor anchor, Tk_Window tkwin,
70
+ int padX, int padY, int innerWidth,
71
+ int innerHeight, int *xPtr, int *yPtr);
72
+ /* Slot 10 is reserved */
73
+ /* Slot 11 is reserved */
74
+ /* 12 */
75
+ EXTERN TkCursor * TkCreateCursorFromData(Tk_Window tkwin,
76
+ const char *source, const char *mask,
77
+ int width, int height, int xHot, int yHot,
78
+ XColor fg, XColor bg);
79
+ /* 13 */
80
+ EXTERN int TkCreateFrame(ClientData clientData,
81
+ Tcl_Interp *interp, int argc,
82
+ const char *const *argv, int toplevel,
83
+ const char *appName);
84
+ /* 14 */
85
+ EXTERN Tk_Window TkCreateMainWindow(Tcl_Interp *interp,
86
+ const char *screenName, const char *baseName);
87
+ /* 15 */
88
+ EXTERN Time TkCurrentTime(TkDisplay *dispPtr);
89
+ /* 16 */
90
+ EXTERN void TkDeleteAllImages(TkMainInfo *mainPtr);
91
+ /* 17 */
92
+ EXTERN void TkDoConfigureNotify(TkWindow *winPtr);
93
+ /* 18 */
94
+ EXTERN void TkDrawInsetFocusHighlight(Tk_Window tkwin, GC gc,
95
+ int width, Drawable drawable, int padding);
96
+ /* 19 */
97
+ EXTERN void TkEventDeadWindow(TkWindow *winPtr);
98
+ /* 20 */
99
+ EXTERN void TkFillPolygon(Tk_Canvas canvas, double *coordPtr,
100
+ int numPoints, Display *display,
101
+ Drawable drawable, GC gc, GC outlineGC);
102
+ /* 21 */
103
+ EXTERN int TkFindStateNum(Tcl_Interp *interp,
104
+ const char *option, const TkStateMap *mapPtr,
105
+ const char *strKey);
106
+ /* 22 */
107
+ EXTERN CONST86 char * TkFindStateString(const TkStateMap *mapPtr,
108
+ int numKey);
109
+ /* 23 */
110
+ EXTERN void TkFocusDeadWindow(TkWindow *winPtr);
111
+ /* 24 */
112
+ EXTERN int TkFocusFilterEvent(TkWindow *winPtr,
113
+ XEvent *eventPtr);
114
+ /* 25 */
115
+ EXTERN TkWindow * TkFocusKeyEvent(TkWindow *winPtr, XEvent *eventPtr);
116
+ /* 26 */
117
+ EXTERN void TkFontPkgInit(TkMainInfo *mainPtr);
118
+ /* 27 */
119
+ EXTERN void TkFontPkgFree(TkMainInfo *mainPtr);
120
+ /* 28 */
121
+ EXTERN void TkFreeBindingTags(TkWindow *winPtr);
122
+ /* 29 */
123
+ EXTERN void TkpFreeCursor(TkCursor *cursorPtr);
124
+ /* 30 */
125
+ EXTERN char * TkGetBitmapData(Tcl_Interp *interp,
126
+ const char *string, const char *fileName,
127
+ int *widthPtr, int *heightPtr, int *hotXPtr,
128
+ int *hotYPtr);
129
+ /* 31 */
130
+ EXTERN void TkGetButtPoints(double p1[], double p2[],
131
+ double width, int project, double m1[],
132
+ double m2[]);
133
+ /* 32 */
134
+ EXTERN TkCursor * TkGetCursorByName(Tcl_Interp *interp,
135
+ Tk_Window tkwin, Tk_Uid string);
136
+ /* 33 */
137
+ EXTERN const char * TkGetDefaultScreenName(Tcl_Interp *interp,
138
+ const char *screenName);
139
+ /* 34 */
140
+ EXTERN TkDisplay * TkGetDisplay(Display *display);
141
+ /* 35 */
142
+ EXTERN int TkGetDisplayOf(Tcl_Interp *interp, int objc,
143
+ Tcl_Obj *const objv[], Tk_Window *tkwinPtr);
144
+ /* 36 */
145
+ EXTERN TkWindow * TkGetFocusWin(TkWindow *winPtr);
146
+ /* 37 */
147
+ EXTERN int TkGetInterpNames(Tcl_Interp *interp, Tk_Window tkwin);
148
+ /* 38 */
149
+ EXTERN int TkGetMiterPoints(double p1[], double p2[],
150
+ double p3[], double width, double m1[],
151
+ double m2[]);
152
+ /* 39 */
153
+ EXTERN void TkGetPointerCoords(Tk_Window tkwin, int *xPtr,
154
+ int *yPtr);
155
+ /* 40 */
156
+ EXTERN void TkGetServerInfo(Tcl_Interp *interp, Tk_Window tkwin);
157
+ /* 41 */
158
+ EXTERN void TkGrabDeadWindow(TkWindow *winPtr);
159
+ /* 42 */
160
+ EXTERN int TkGrabState(TkWindow *winPtr);
161
+ /* 43 */
162
+ EXTERN void TkIncludePoint(Tk_Item *itemPtr, double *pointPtr);
163
+ /* 44 */
164
+ EXTERN void TkInOutEvents(XEvent *eventPtr, TkWindow *sourcePtr,
165
+ TkWindow *destPtr, int leaveType,
166
+ int enterType, Tcl_QueuePosition position);
167
+ /* 45 */
168
+ EXTERN void TkInstallFrameMenu(Tk_Window tkwin);
169
+ /* 46 */
170
+ EXTERN CONST86 char * TkKeysymToString(KeySym keysym);
171
+ /* 47 */
172
+ EXTERN int TkLineToArea(double end1Ptr[], double end2Ptr[],
173
+ double rectPtr[]);
174
+ /* 48 */
175
+ EXTERN double TkLineToPoint(double end1Ptr[], double end2Ptr[],
176
+ double pointPtr[]);
177
+ /* 49 */
178
+ EXTERN int TkMakeBezierCurve(Tk_Canvas canvas, double *pointPtr,
179
+ int numPoints, int numSteps,
180
+ XPoint xPoints[], double dblPoints[]);
181
+ /* 50 */
182
+ EXTERN void TkMakeBezierPostscript(Tcl_Interp *interp,
183
+ Tk_Canvas canvas, double *pointPtr,
184
+ int numPoints);
185
+ /* 51 */
186
+ EXTERN void TkOptionClassChanged(TkWindow *winPtr);
187
+ /* 52 */
188
+ EXTERN void TkOptionDeadWindow(TkWindow *winPtr);
189
+ /* 53 */
190
+ EXTERN int TkOvalToArea(double *ovalPtr, double *rectPtr);
191
+ /* 54 */
192
+ EXTERN double TkOvalToPoint(double ovalPtr[], double width,
193
+ int filled, double pointPtr[]);
194
+ /* 55 */
195
+ EXTERN int TkpChangeFocus(TkWindow *winPtr, int force);
196
+ /* 56 */
197
+ EXTERN void TkpCloseDisplay(TkDisplay *dispPtr);
198
+ /* 57 */
199
+ EXTERN void TkpClaimFocus(TkWindow *topLevelPtr, int force);
200
+ /* 58 */
201
+ EXTERN void TkpDisplayWarning(const char *msg, const char *title);
202
+ /* 59 */
203
+ EXTERN void TkpGetAppName(Tcl_Interp *interp, Tcl_DString *name);
204
+ /* 60 */
205
+ EXTERN TkWindow * TkpGetOtherWindow(TkWindow *winPtr);
206
+ /* 61 */
207
+ EXTERN TkWindow * TkpGetWrapperWindow(TkWindow *winPtr);
208
+ /* 62 */
209
+ EXTERN int TkpInit(Tcl_Interp *interp);
210
+ /* 63 */
211
+ EXTERN void TkpInitializeMenuBindings(Tcl_Interp *interp,
212
+ Tk_BindingTable bindingTable);
213
+ /* 64 */
214
+ EXTERN void TkpMakeContainer(Tk_Window tkwin);
215
+ /* 65 */
216
+ EXTERN void TkpMakeMenuWindow(Tk_Window tkwin, int transient);
217
+ /* 66 */
218
+ EXTERN Window TkpMakeWindow(TkWindow *winPtr, Window parent);
219
+ /* 67 */
220
+ EXTERN void TkpMenuNotifyToplevelCreate(Tcl_Interp *interp,
221
+ const char *menuName);
222
+ /* 68 */
223
+ EXTERN TkDisplay * TkpOpenDisplay(const char *display_name);
224
+ /* 69 */
225
+ EXTERN int TkPointerEvent(XEvent *eventPtr, TkWindow *winPtr);
226
+ /* 70 */
227
+ EXTERN int TkPolygonToArea(double *polyPtr, int numPoints,
228
+ double *rectPtr);
229
+ /* 71 */
230
+ EXTERN double TkPolygonToPoint(double *polyPtr, int numPoints,
231
+ double *pointPtr);
232
+ /* 72 */
233
+ EXTERN int TkPositionInTree(TkWindow *winPtr, TkWindow *treePtr);
234
+ /* 73 */
235
+ EXTERN void TkpRedirectKeyEvent(TkWindow *winPtr,
236
+ XEvent *eventPtr);
237
+ /* 74 */
238
+ EXTERN void TkpSetMainMenubar(Tcl_Interp *interp,
239
+ Tk_Window tkwin, const char *menuName);
240
+ /* 75 */
241
+ EXTERN int TkpUseWindow(Tcl_Interp *interp, Tk_Window tkwin,
242
+ const char *string);
243
+ /* Slot 76 is reserved */
244
+ /* 77 */
245
+ EXTERN void TkQueueEventForAllChildren(TkWindow *winPtr,
246
+ XEvent *eventPtr);
247
+ /* 78 */
248
+ EXTERN int TkReadBitmapFile(Display *display, Drawable d,
249
+ const char *filename,
250
+ unsigned int *width_return,
251
+ unsigned int *height_return,
252
+ Pixmap *bitmap_return, int *x_hot_return,
253
+ int *y_hot_return);
254
+ /* 79 */
255
+ EXTERN int TkScrollWindow(Tk_Window tkwin, GC gc, int x, int y,
256
+ int width, int height, int dx, int dy,
257
+ TkRegion damageRgn);
258
+ /* 80 */
259
+ EXTERN void TkSelDeadWindow(TkWindow *winPtr);
260
+ /* 81 */
261
+ EXTERN void TkSelEventProc(Tk_Window tkwin, XEvent *eventPtr);
262
+ /* 82 */
263
+ EXTERN void TkSelInit(Tk_Window tkwin);
264
+ /* 83 */
265
+ EXTERN void TkSelPropProc(XEvent *eventPtr);
266
+ /* Slot 84 is reserved */
267
+ /* 85 */
268
+ EXTERN void TkSetWindowMenuBar(Tcl_Interp *interp,
269
+ Tk_Window tkwin, const char *oldMenuName,
270
+ const char *menuName);
271
+ /* 86 */
272
+ EXTERN KeySym TkStringToKeysym(const char *name);
273
+ /* 87 */
274
+ EXTERN int TkThickPolyLineToArea(double *coordPtr,
275
+ int numPoints, double width, int capStyle,
276
+ int joinStyle, double *rectPtr);
277
+ /* 88 */
278
+ EXTERN void TkWmAddToColormapWindows(TkWindow *winPtr);
279
+ /* 89 */
280
+ EXTERN void TkWmDeadWindow(TkWindow *winPtr);
281
+ /* 90 */
282
+ EXTERN TkWindow * TkWmFocusToplevel(TkWindow *winPtr);
283
+ /* 91 */
284
+ EXTERN void TkWmMapWindow(TkWindow *winPtr);
285
+ /* 92 */
286
+ EXTERN void TkWmNewWindow(TkWindow *winPtr);
287
+ /* 93 */
288
+ EXTERN void TkWmProtocolEventProc(TkWindow *winPtr,
289
+ XEvent *evenvPtr);
290
+ /* 94 */
291
+ EXTERN void TkWmRemoveFromColormapWindows(TkWindow *winPtr);
292
+ /* 95 */
293
+ EXTERN void TkWmRestackToplevel(TkWindow *winPtr, int aboveBelow,
294
+ TkWindow *otherPtr);
295
+ /* 96 */
296
+ EXTERN void TkWmSetClass(TkWindow *winPtr);
297
+ /* 97 */
298
+ EXTERN void TkWmUnmapWindow(TkWindow *winPtr);
299
+ /* 98 */
300
+ EXTERN Tcl_Obj * TkDebugBitmap(Tk_Window tkwin, const char *name);
301
+ /* 99 */
302
+ EXTERN Tcl_Obj * TkDebugBorder(Tk_Window tkwin, const char *name);
303
+ /* 100 */
304
+ EXTERN Tcl_Obj * TkDebugCursor(Tk_Window tkwin, const char *name);
305
+ /* 101 */
306
+ EXTERN Tcl_Obj * TkDebugColor(Tk_Window tkwin, const char *name);
307
+ /* 102 */
308
+ EXTERN Tcl_Obj * TkDebugConfig(Tcl_Interp *interp,
309
+ Tk_OptionTable table);
310
+ /* 103 */
311
+ EXTERN Tcl_Obj * TkDebugFont(Tk_Window tkwin, const char *name);
312
+ /* 104 */
313
+ EXTERN int TkFindStateNumObj(Tcl_Interp *interp,
314
+ Tcl_Obj *optionPtr, const TkStateMap *mapPtr,
315
+ Tcl_Obj *keyPtr);
316
+ /* 105 */
317
+ EXTERN Tcl_HashTable * TkGetBitmapPredefTable(void);
318
+ /* 106 */
319
+ EXTERN TkDisplay * TkGetDisplayList(void);
320
+ /* 107 */
321
+ EXTERN TkMainInfo * TkGetMainInfoList(void);
322
+ /* 108 */
323
+ EXTERN int TkGetWindowFromObj(Tcl_Interp *interp,
324
+ Tk_Window tkwin, Tcl_Obj *objPtr,
325
+ Tk_Window *windowPtr);
326
+ /* 109 */
327
+ EXTERN CONST86 char * TkpGetString(TkWindow *winPtr, XEvent *eventPtr,
328
+ Tcl_DString *dsPtr);
329
+ /* 110 */
330
+ EXTERN void TkpGetSubFonts(Tcl_Interp *interp, Tk_Font tkfont);
331
+ /* 111 */
332
+ EXTERN Tcl_Obj * TkpGetSystemDefault(Tk_Window tkwin,
333
+ const char *dbName, const char *className);
334
+ /* 112 */
335
+ EXTERN void TkpMenuThreadInit(void);
336
+ /* 113 */
337
+ EXTERN int TkClipBox(TkRegion rgn, XRectangle *rect_return);
338
+ /* 114 */
339
+ EXTERN TkRegion TkCreateRegion(void);
340
+ /* 115 */
341
+ EXTERN int TkDestroyRegion(TkRegion rgn);
342
+ /* 116 */
343
+ EXTERN int TkIntersectRegion(TkRegion sra, TkRegion srcb,
344
+ TkRegion dr_return);
345
+ /* 117 */
346
+ EXTERN int TkRectInRegion(TkRegion rgn, int x, int y,
347
+ unsigned int width, unsigned int height);
348
+ /* 118 */
349
+ EXTERN int TkSetRegion(Display *display, GC gc, TkRegion rgn);
350
+ /* 119 */
351
+ EXTERN int TkUnionRectWithRegion(XRectangle *rect, TkRegion src,
352
+ TkRegion dr_return);
353
+ /* Slot 120 is reserved */
354
+ #ifdef MAC_OSX_TK /* AQUA */
355
+ /* 121 */
356
+ EXTERN Pixmap TkpCreateNativeBitmap(Display *display,
357
+ const void *source);
358
+ #endif /* AQUA */
359
+ #ifdef MAC_OSX_TK /* AQUA */
360
+ /* 122 */
361
+ EXTERN void TkpDefineNativeBitmaps(void);
362
+ #endif /* AQUA */
363
+ /* Slot 123 is reserved */
364
+ #ifdef MAC_OSX_TK /* AQUA */
365
+ /* 124 */
366
+ EXTERN Pixmap TkpGetNativeAppBitmap(Display *display,
367
+ const char *name, int *width, int *height);
368
+ #endif /* AQUA */
369
+ /* Slot 125 is reserved */
370
+ /* Slot 126 is reserved */
371
+ /* Slot 127 is reserved */
372
+ /* Slot 128 is reserved */
373
+ /* Slot 129 is reserved */
374
+ /* Slot 130 is reserved */
375
+ /* Slot 131 is reserved */
376
+ /* Slot 132 is reserved */
377
+ /* Slot 133 is reserved */
378
+ /* Slot 134 is reserved */
379
+ /* 135 */
380
+ EXTERN void TkpDrawHighlightBorder(Tk_Window tkwin, GC fgGC,
381
+ GC bgGC, int highlightWidth,
382
+ Drawable drawable);
383
+ /* 136 */
384
+ EXTERN void TkSetFocusWin(TkWindow *winPtr, int force);
385
+ /* 137 */
386
+ EXTERN void TkpSetKeycodeAndState(Tk_Window tkwin, KeySym keySym,
387
+ XEvent *eventPtr);
388
+ /* 138 */
389
+ EXTERN KeySym TkpGetKeySym(TkDisplay *dispPtr, XEvent *eventPtr);
390
+ /* 139 */
391
+ EXTERN void TkpInitKeymapInfo(TkDisplay *dispPtr);
392
+ /* 140 */
393
+ EXTERN TkRegion TkPhotoGetValidRegion(Tk_PhotoHandle handle);
394
+ /* 141 */
395
+ EXTERN TkWindow ** TkWmStackorderToplevel(TkWindow *parentPtr);
396
+ /* 142 */
397
+ EXTERN void TkFocusFree(TkMainInfo *mainPtr);
398
+ /* 143 */
399
+ EXTERN void TkClipCleanup(TkDisplay *dispPtr);
400
+ /* 144 */
401
+ EXTERN void TkGCCleanup(TkDisplay *dispPtr);
402
+ /* 145 */
403
+ EXTERN int TkSubtractRegion(TkRegion sra, TkRegion srcb,
404
+ TkRegion dr_return);
405
+ /* 146 */
406
+ EXTERN void TkStylePkgInit(TkMainInfo *mainPtr);
407
+ /* 147 */
408
+ EXTERN void TkStylePkgFree(TkMainInfo *mainPtr);
409
+ /* 148 */
410
+ EXTERN Tk_Window TkToplevelWindowForCommand(Tcl_Interp *interp,
411
+ const char *cmdName);
412
+ /* 149 */
413
+ EXTERN const Tk_OptionSpec * TkGetOptionSpec(const char *name,
414
+ Tk_OptionTable optionTable);
415
+ /* 150 */
416
+ EXTERN int TkMakeRawCurve(Tk_Canvas canvas, double *pointPtr,
417
+ int numPoints, int numSteps,
418
+ XPoint xPoints[], double dblPoints[]);
419
+ /* 151 */
420
+ EXTERN void TkMakeRawCurvePostscript(Tcl_Interp *interp,
421
+ Tk_Canvas canvas, double *pointPtr,
422
+ int numPoints);
423
+ /* 152 */
424
+ EXTERN void TkpDrawFrame(Tk_Window tkwin, Tk_3DBorder border,
425
+ int highlightWidth, int borderWidth,
426
+ int relief);
427
+ /* 153 */
428
+ EXTERN void TkCreateThreadExitHandler(Tcl_ExitProc *proc,
429
+ ClientData clientData);
430
+ /* 154 */
431
+ EXTERN void TkDeleteThreadExitHandler(Tcl_ExitProc *proc,
432
+ ClientData clientData);
433
+ /* Slot 155 is reserved */
434
+ /* 156 */
435
+ EXTERN int TkpTestembedCmd(ClientData clientData,
436
+ Tcl_Interp *interp, int objc,
437
+ Tcl_Obj *const objv[]);
438
+ /* 157 */
439
+ EXTERN int TkpTesttextCmd(ClientData dummy, Tcl_Interp *interp,
440
+ int objc, Tcl_Obj *const objv[]);
441
+ /* 158 */
442
+ EXTERN int TkSelGetSelection(Tcl_Interp *interp,
443
+ Tk_Window tkwin, Atom selection, Atom target,
444
+ Tk_GetSelProc *proc, ClientData clientData);
445
+ /* 159 */
446
+ EXTERN int TkTextGetIndex(Tcl_Interp *interp,
447
+ struct TkText *textPtr, const char *string,
448
+ struct TkTextIndex *indexPtr);
449
+ /* 160 */
450
+ EXTERN int TkTextIndexBackBytes(const struct TkText *textPtr,
451
+ const struct TkTextIndex *srcPtr, int count,
452
+ struct TkTextIndex *dstPtr);
453
+ /* 161 */
454
+ EXTERN int TkTextIndexForwBytes(const struct TkText *textPtr,
455
+ const struct TkTextIndex *srcPtr, int count,
456
+ struct TkTextIndex *dstPtr);
457
+ /* 162 */
458
+ EXTERN struct TkTextIndex * TkTextMakeByteIndex(TkTextBTree tree,
459
+ const struct TkText *textPtr, int lineIndex,
460
+ int byteIndex, struct TkTextIndex *indexPtr);
461
+ /* 163 */
462
+ EXTERN int TkTextPrintIndex(const struct TkText *textPtr,
463
+ const struct TkTextIndex *indexPtr,
464
+ char *string);
465
+ /* 164 */
466
+ EXTERN struct TkTextSegment * TkTextSetMark(struct TkText *textPtr,
467
+ const char *name,
468
+ struct TkTextIndex *indexPtr);
469
+ /* 165 */
470
+ EXTERN int TkTextXviewCmd(struct TkText *textPtr,
471
+ Tcl_Interp *interp, int objc,
472
+ Tcl_Obj *const objv[]);
473
+ /* 166 */
474
+ EXTERN void TkTextChanged(struct TkSharedText *sharedTextPtr,
475
+ struct TkText *textPtr,
476
+ const struct TkTextIndex *index1Ptr,
477
+ const struct TkTextIndex *index2Ptr);
478
+ /* 167 */
479
+ EXTERN int TkBTreeNumLines(TkTextBTree tree,
480
+ const struct TkText *textPtr);
481
+ /* 168 */
482
+ EXTERN void TkTextInsertDisplayProc(struct TkText *textPtr,
483
+ struct TkTextDispChunk *chunkPtr, int x,
484
+ int y, int height, int baseline,
485
+ Display *display, Drawable dst, int screenY);
486
+ /* 169 */
487
+ EXTERN int TkStateParseProc(ClientData clientData,
488
+ Tcl_Interp *interp, Tk_Window tkwin,
489
+ const char *value, char *widgRec, int offset);
490
+ /* 170 */
491
+ EXTERN CONST86 char * TkStatePrintProc(ClientData clientData,
492
+ Tk_Window tkwin, char *widgRec, int offset,
493
+ Tcl_FreeProc **freeProcPtr);
494
+ /* 171 */
495
+ EXTERN int TkCanvasDashParseProc(ClientData clientData,
496
+ Tcl_Interp *interp, Tk_Window tkwin,
497
+ const char *value, char *widgRec, int offset);
498
+ /* 172 */
499
+ EXTERN CONST86 char * TkCanvasDashPrintProc(ClientData clientData,
500
+ Tk_Window tkwin, char *widgRec, int offset,
501
+ Tcl_FreeProc **freeProcPtr);
502
+ /* 173 */
503
+ EXTERN int TkOffsetParseProc(ClientData clientData,
504
+ Tcl_Interp *interp, Tk_Window tkwin,
505
+ const char *value, char *widgRec, int offset);
506
+ /* 174 */
507
+ EXTERN CONST86 char * TkOffsetPrintProc(ClientData clientData,
508
+ Tk_Window tkwin, char *widgRec, int offset,
509
+ Tcl_FreeProc **freeProcPtr);
510
+ /* 175 */
511
+ EXTERN int TkPixelParseProc(ClientData clientData,
512
+ Tcl_Interp *interp, Tk_Window tkwin,
513
+ const char *value, char *widgRec, int offset);
514
+ /* 176 */
515
+ EXTERN CONST86 char * TkPixelPrintProc(ClientData clientData,
516
+ Tk_Window tkwin, char *widgRec, int offset,
517
+ Tcl_FreeProc **freeProcPtr);
518
+ /* 177 */
519
+ EXTERN int TkOrientParseProc(ClientData clientData,
520
+ Tcl_Interp *interp, Tk_Window tkwin,
521
+ const char *value, char *widgRec, int offset);
522
+ /* 178 */
523
+ EXTERN CONST86 char * TkOrientPrintProc(ClientData clientData,
524
+ Tk_Window tkwin, char *widgRec, int offset,
525
+ Tcl_FreeProc **freeProcPtr);
526
+ /* 179 */
527
+ EXTERN int TkSmoothParseProc(ClientData clientData,
528
+ Tcl_Interp *interp, Tk_Window tkwin,
529
+ const char *value, char *widgRec, int offset);
530
+ /* 180 */
531
+ EXTERN CONST86 char * TkSmoothPrintProc(ClientData clientData,
532
+ Tk_Window tkwin, char *widgRec, int offset,
533
+ Tcl_FreeProc **freeProcPtr);
534
+ /* 181 */
535
+ EXTERN void TkDrawAngledTextLayout(Display *display,
536
+ Drawable drawable, GC gc,
537
+ Tk_TextLayout layout, int x, int y,
538
+ double angle, int firstChar, int lastChar);
539
+ /* 182 */
540
+ EXTERN void TkUnderlineAngledTextLayout(Display *display,
541
+ Drawable drawable, GC gc,
542
+ Tk_TextLayout layout, int x, int y,
543
+ double angle, int underline);
544
+ /* 183 */
545
+ EXTERN int TkIntersectAngledTextLayout(Tk_TextLayout layout,
546
+ int x, int y, int width, int height,
547
+ double angle);
548
+ /* 184 */
549
+ EXTERN void TkDrawAngledChars(Display *display,
550
+ Drawable drawable, GC gc, Tk_Font tkfont,
551
+ const char *source, int numBytes, double x,
552
+ double y, double angle);
553
+ #ifdef MAC_OSX_TCL /* MACOSX */
554
+ /* 185 */
555
+ EXTERN void TkpRedrawWidget(Tk_Window tkwin);
556
+ #endif /* MACOSX */
557
+ #ifdef MAC_OSX_TCL /* MACOSX */
558
+ /* 186 */
559
+ EXTERN int TkpWillDrawWidget(Tk_Window tkwin);
560
+ #endif /* MACOSX */
561
+
562
+ typedef struct TkIntStubs {
563
+ int magic;
564
+ void *hooks;
565
+
566
+ TkWindow * (*tkAllocWindow) (TkDisplay *dispPtr, int screenNum, TkWindow *parentPtr); /* 0 */
567
+ void (*tkBezierPoints) (double control[], int numSteps, double *coordPtr); /* 1 */
568
+ void (*tkBezierScreenPoints) (Tk_Canvas canvas, double control[], int numSteps, XPoint *xPointPtr); /* 2 */
569
+ void (*reserved3)(void);
570
+ void (*tkBindEventProc) (TkWindow *winPtr, XEvent *eventPtr); /* 4 */
571
+ void (*tkBindFree) (TkMainInfo *mainPtr); /* 5 */
572
+ void (*tkBindInit) (TkMainInfo *mainPtr); /* 6 */
573
+ void (*tkChangeEventWindow) (XEvent *eventPtr, TkWindow *winPtr); /* 7 */
574
+ int (*tkClipInit) (Tcl_Interp *interp, TkDisplay *dispPtr); /* 8 */
575
+ void (*tkComputeAnchor) (Tk_Anchor anchor, Tk_Window tkwin, int padX, int padY, int innerWidth, int innerHeight, int *xPtr, int *yPtr); /* 9 */
576
+ void (*reserved10)(void);
577
+ void (*reserved11)(void);
578
+ TkCursor * (*tkCreateCursorFromData) (Tk_Window tkwin, const char *source, const char *mask, int width, int height, int xHot, int yHot, XColor fg, XColor bg); /* 12 */
579
+ int (*tkCreateFrame) (ClientData clientData, Tcl_Interp *interp, int argc, const char *const *argv, int toplevel, const char *appName); /* 13 */
580
+ Tk_Window (*tkCreateMainWindow) (Tcl_Interp *interp, const char *screenName, const char *baseName); /* 14 */
581
+ Time (*tkCurrentTime) (TkDisplay *dispPtr); /* 15 */
582
+ void (*tkDeleteAllImages) (TkMainInfo *mainPtr); /* 16 */
583
+ void (*tkDoConfigureNotify) (TkWindow *winPtr); /* 17 */
584
+ void (*tkDrawInsetFocusHighlight) (Tk_Window tkwin, GC gc, int width, Drawable drawable, int padding); /* 18 */
585
+ void (*tkEventDeadWindow) (TkWindow *winPtr); /* 19 */
586
+ void (*tkFillPolygon) (Tk_Canvas canvas, double *coordPtr, int numPoints, Display *display, Drawable drawable, GC gc, GC outlineGC); /* 20 */
587
+ int (*tkFindStateNum) (Tcl_Interp *interp, const char *option, const TkStateMap *mapPtr, const char *strKey); /* 21 */
588
+ CONST86 char * (*tkFindStateString) (const TkStateMap *mapPtr, int numKey); /* 22 */
589
+ void (*tkFocusDeadWindow) (TkWindow *winPtr); /* 23 */
590
+ int (*tkFocusFilterEvent) (TkWindow *winPtr, XEvent *eventPtr); /* 24 */
591
+ TkWindow * (*tkFocusKeyEvent) (TkWindow *winPtr, XEvent *eventPtr); /* 25 */
592
+ void (*tkFontPkgInit) (TkMainInfo *mainPtr); /* 26 */
593
+ void (*tkFontPkgFree) (TkMainInfo *mainPtr); /* 27 */
594
+ void (*tkFreeBindingTags) (TkWindow *winPtr); /* 28 */
595
+ void (*tkpFreeCursor) (TkCursor *cursorPtr); /* 29 */
596
+ char * (*tkGetBitmapData) (Tcl_Interp *interp, const char *string, const char *fileName, int *widthPtr, int *heightPtr, int *hotXPtr, int *hotYPtr); /* 30 */
597
+ void (*tkGetButtPoints) (double p1[], double p2[], double width, int project, double m1[], double m2[]); /* 31 */
598
+ TkCursor * (*tkGetCursorByName) (Tcl_Interp *interp, Tk_Window tkwin, Tk_Uid string); /* 32 */
599
+ const char * (*tkGetDefaultScreenName) (Tcl_Interp *interp, const char *screenName); /* 33 */
600
+ TkDisplay * (*tkGetDisplay) (Display *display); /* 34 */
601
+ int (*tkGetDisplayOf) (Tcl_Interp *interp, int objc, Tcl_Obj *const objv[], Tk_Window *tkwinPtr); /* 35 */
602
+ TkWindow * (*tkGetFocusWin) (TkWindow *winPtr); /* 36 */
603
+ int (*tkGetInterpNames) (Tcl_Interp *interp, Tk_Window tkwin); /* 37 */
604
+ int (*tkGetMiterPoints) (double p1[], double p2[], double p3[], double width, double m1[], double m2[]); /* 38 */
605
+ void (*tkGetPointerCoords) (Tk_Window tkwin, int *xPtr, int *yPtr); /* 39 */
606
+ void (*tkGetServerInfo) (Tcl_Interp *interp, Tk_Window tkwin); /* 40 */
607
+ void (*tkGrabDeadWindow) (TkWindow *winPtr); /* 41 */
608
+ int (*tkGrabState) (TkWindow *winPtr); /* 42 */
609
+ void (*tkIncludePoint) (Tk_Item *itemPtr, double *pointPtr); /* 43 */
610
+ void (*tkInOutEvents) (XEvent *eventPtr, TkWindow *sourcePtr, TkWindow *destPtr, int leaveType, int enterType, Tcl_QueuePosition position); /* 44 */
611
+ void (*tkInstallFrameMenu) (Tk_Window tkwin); /* 45 */
612
+ CONST86 char * (*tkKeysymToString) (KeySym keysym); /* 46 */
613
+ int (*tkLineToArea) (double end1Ptr[], double end2Ptr[], double rectPtr[]); /* 47 */
614
+ double (*tkLineToPoint) (double end1Ptr[], double end2Ptr[], double pointPtr[]); /* 48 */
615
+ int (*tkMakeBezierCurve) (Tk_Canvas canvas, double *pointPtr, int numPoints, int numSteps, XPoint xPoints[], double dblPoints[]); /* 49 */
616
+ void (*tkMakeBezierPostscript) (Tcl_Interp *interp, Tk_Canvas canvas, double *pointPtr, int numPoints); /* 50 */
617
+ void (*tkOptionClassChanged) (TkWindow *winPtr); /* 51 */
618
+ void (*tkOptionDeadWindow) (TkWindow *winPtr); /* 52 */
619
+ int (*tkOvalToArea) (double *ovalPtr, double *rectPtr); /* 53 */
620
+ double (*tkOvalToPoint) (double ovalPtr[], double width, int filled, double pointPtr[]); /* 54 */
621
+ int (*tkpChangeFocus) (TkWindow *winPtr, int force); /* 55 */
622
+ void (*tkpCloseDisplay) (TkDisplay *dispPtr); /* 56 */
623
+ void (*tkpClaimFocus) (TkWindow *topLevelPtr, int force); /* 57 */
624
+ void (*tkpDisplayWarning) (const char *msg, const char *title); /* 58 */
625
+ void (*tkpGetAppName) (Tcl_Interp *interp, Tcl_DString *name); /* 59 */
626
+ TkWindow * (*tkpGetOtherWindow) (TkWindow *winPtr); /* 60 */
627
+ TkWindow * (*tkpGetWrapperWindow) (TkWindow *winPtr); /* 61 */
628
+ int (*tkpInit) (Tcl_Interp *interp); /* 62 */
629
+ void (*tkpInitializeMenuBindings) (Tcl_Interp *interp, Tk_BindingTable bindingTable); /* 63 */
630
+ void (*tkpMakeContainer) (Tk_Window tkwin); /* 64 */
631
+ void (*tkpMakeMenuWindow) (Tk_Window tkwin, int transient); /* 65 */
632
+ Window (*tkpMakeWindow) (TkWindow *winPtr, Window parent); /* 66 */
633
+ void (*tkpMenuNotifyToplevelCreate) (Tcl_Interp *interp, const char *menuName); /* 67 */
634
+ TkDisplay * (*tkpOpenDisplay) (const char *display_name); /* 68 */
635
+ int (*tkPointerEvent) (XEvent *eventPtr, TkWindow *winPtr); /* 69 */
636
+ int (*tkPolygonToArea) (double *polyPtr, int numPoints, double *rectPtr); /* 70 */
637
+ double (*tkPolygonToPoint) (double *polyPtr, int numPoints, double *pointPtr); /* 71 */
638
+ int (*tkPositionInTree) (TkWindow *winPtr, TkWindow *treePtr); /* 72 */
639
+ void (*tkpRedirectKeyEvent) (TkWindow *winPtr, XEvent *eventPtr); /* 73 */
640
+ void (*tkpSetMainMenubar) (Tcl_Interp *interp, Tk_Window tkwin, const char *menuName); /* 74 */
641
+ int (*tkpUseWindow) (Tcl_Interp *interp, Tk_Window tkwin, const char *string); /* 75 */
642
+ void (*reserved76)(void);
643
+ void (*tkQueueEventForAllChildren) (TkWindow *winPtr, XEvent *eventPtr); /* 77 */
644
+ int (*tkReadBitmapFile) (Display *display, Drawable d, const char *filename, unsigned int *width_return, unsigned int *height_return, Pixmap *bitmap_return, int *x_hot_return, int *y_hot_return); /* 78 */
645
+ int (*tkScrollWindow) (Tk_Window tkwin, GC gc, int x, int y, int width, int height, int dx, int dy, TkRegion damageRgn); /* 79 */
646
+ void (*tkSelDeadWindow) (TkWindow *winPtr); /* 80 */
647
+ void (*tkSelEventProc) (Tk_Window tkwin, XEvent *eventPtr); /* 81 */
648
+ void (*tkSelInit) (Tk_Window tkwin); /* 82 */
649
+ void (*tkSelPropProc) (XEvent *eventPtr); /* 83 */
650
+ void (*reserved84)(void);
651
+ void (*tkSetWindowMenuBar) (Tcl_Interp *interp, Tk_Window tkwin, const char *oldMenuName, const char *menuName); /* 85 */
652
+ KeySym (*tkStringToKeysym) (const char *name); /* 86 */
653
+ int (*tkThickPolyLineToArea) (double *coordPtr, int numPoints, double width, int capStyle, int joinStyle, double *rectPtr); /* 87 */
654
+ void (*tkWmAddToColormapWindows) (TkWindow *winPtr); /* 88 */
655
+ void (*tkWmDeadWindow) (TkWindow *winPtr); /* 89 */
656
+ TkWindow * (*tkWmFocusToplevel) (TkWindow *winPtr); /* 90 */
657
+ void (*tkWmMapWindow) (TkWindow *winPtr); /* 91 */
658
+ void (*tkWmNewWindow) (TkWindow *winPtr); /* 92 */
659
+ void (*tkWmProtocolEventProc) (TkWindow *winPtr, XEvent *evenvPtr); /* 93 */
660
+ void (*tkWmRemoveFromColormapWindows) (TkWindow *winPtr); /* 94 */
661
+ void (*tkWmRestackToplevel) (TkWindow *winPtr, int aboveBelow, TkWindow *otherPtr); /* 95 */
662
+ void (*tkWmSetClass) (TkWindow *winPtr); /* 96 */
663
+ void (*tkWmUnmapWindow) (TkWindow *winPtr); /* 97 */
664
+ Tcl_Obj * (*tkDebugBitmap) (Tk_Window tkwin, const char *name); /* 98 */
665
+ Tcl_Obj * (*tkDebugBorder) (Tk_Window tkwin, const char *name); /* 99 */
666
+ Tcl_Obj * (*tkDebugCursor) (Tk_Window tkwin, const char *name); /* 100 */
667
+ Tcl_Obj * (*tkDebugColor) (Tk_Window tkwin, const char *name); /* 101 */
668
+ Tcl_Obj * (*tkDebugConfig) (Tcl_Interp *interp, Tk_OptionTable table); /* 102 */
669
+ Tcl_Obj * (*tkDebugFont) (Tk_Window tkwin, const char *name); /* 103 */
670
+ int (*tkFindStateNumObj) (Tcl_Interp *interp, Tcl_Obj *optionPtr, const TkStateMap *mapPtr, Tcl_Obj *keyPtr); /* 104 */
671
+ Tcl_HashTable * (*tkGetBitmapPredefTable) (void); /* 105 */
672
+ TkDisplay * (*tkGetDisplayList) (void); /* 106 */
673
+ TkMainInfo * (*tkGetMainInfoList) (void); /* 107 */
674
+ int (*tkGetWindowFromObj) (Tcl_Interp *interp, Tk_Window tkwin, Tcl_Obj *objPtr, Tk_Window *windowPtr); /* 108 */
675
+ CONST86 char * (*tkpGetString) (TkWindow *winPtr, XEvent *eventPtr, Tcl_DString *dsPtr); /* 109 */
676
+ void (*tkpGetSubFonts) (Tcl_Interp *interp, Tk_Font tkfont); /* 110 */
677
+ Tcl_Obj * (*tkpGetSystemDefault) (Tk_Window tkwin, const char *dbName, const char *className); /* 111 */
678
+ void (*tkpMenuThreadInit) (void); /* 112 */
679
+ int (*tkClipBox) (TkRegion rgn, XRectangle *rect_return); /* 113 */
680
+ TkRegion (*tkCreateRegion) (void); /* 114 */
681
+ int (*tkDestroyRegion) (TkRegion rgn); /* 115 */
682
+ int (*tkIntersectRegion) (TkRegion sra, TkRegion srcb, TkRegion dr_return); /* 116 */
683
+ int (*tkRectInRegion) (TkRegion rgn, int x, int y, unsigned int width, unsigned int height); /* 117 */
684
+ int (*tkSetRegion) (Display *display, GC gc, TkRegion rgn); /* 118 */
685
+ int (*tkUnionRectWithRegion) (XRectangle *rect, TkRegion src, TkRegion dr_return); /* 119 */
686
+ void (*reserved120)(void);
687
+ #if !(defined(_WIN32) || defined(MAC_OSX_TK)) /* X11 */
688
+ void (*reserved121)(void);
689
+ #endif /* X11 */
690
+ #if defined(_WIN32) /* WIN */
691
+ void (*reserved121)(void);
692
+ #endif /* WIN */
693
+ #ifdef MAC_OSX_TK /* AQUA */
694
+ void (*reserved121)(void); /* Dummy entry for stubs table backwards compatibility */
695
+ Pixmap (*tkpCreateNativeBitmap) (Display *display, const void *source); /* 121 */
696
+ #endif /* AQUA */
697
+ #if !(defined(_WIN32) || defined(MAC_OSX_TK)) /* X11 */
698
+ void (*reserved122)(void);
699
+ #endif /* X11 */
700
+ #if defined(_WIN32) /* WIN */
701
+ void (*reserved122)(void);
702
+ #endif /* WIN */
703
+ #ifdef MAC_OSX_TK /* AQUA */
704
+ void (*reserved122)(void); /* Dummy entry for stubs table backwards compatibility */
705
+ void (*tkpDefineNativeBitmaps) (void); /* 122 */
706
+ #endif /* AQUA */
707
+ void (*reserved123)(void);
708
+ #if !(defined(_WIN32) || defined(MAC_OSX_TK)) /* X11 */
709
+ void (*reserved124)(void);
710
+ #endif /* X11 */
711
+ #if defined(_WIN32) /* WIN */
712
+ void (*reserved124)(void);
713
+ #endif /* WIN */
714
+ #ifdef MAC_OSX_TK /* AQUA */
715
+ void (*reserved124)(void); /* Dummy entry for stubs table backwards compatibility */
716
+ Pixmap (*tkpGetNativeAppBitmap) (Display *display, const char *name, int *width, int *height); /* 124 */
717
+ #endif /* AQUA */
718
+ void (*reserved125)(void);
719
+ void (*reserved126)(void);
720
+ void (*reserved127)(void);
721
+ void (*reserved128)(void);
722
+ void (*reserved129)(void);
723
+ void (*reserved130)(void);
724
+ void (*reserved131)(void);
725
+ void (*reserved132)(void);
726
+ void (*reserved133)(void);
727
+ void (*reserved134)(void);
728
+ void (*tkpDrawHighlightBorder) (Tk_Window tkwin, GC fgGC, GC bgGC, int highlightWidth, Drawable drawable); /* 135 */
729
+ void (*tkSetFocusWin) (TkWindow *winPtr, int force); /* 136 */
730
+ void (*tkpSetKeycodeAndState) (Tk_Window tkwin, KeySym keySym, XEvent *eventPtr); /* 137 */
731
+ KeySym (*tkpGetKeySym) (TkDisplay *dispPtr, XEvent *eventPtr); /* 138 */
732
+ void (*tkpInitKeymapInfo) (TkDisplay *dispPtr); /* 139 */
733
+ TkRegion (*tkPhotoGetValidRegion) (Tk_PhotoHandle handle); /* 140 */
734
+ TkWindow ** (*tkWmStackorderToplevel) (TkWindow *parentPtr); /* 141 */
735
+ void (*tkFocusFree) (TkMainInfo *mainPtr); /* 142 */
736
+ void (*tkClipCleanup) (TkDisplay *dispPtr); /* 143 */
737
+ void (*tkGCCleanup) (TkDisplay *dispPtr); /* 144 */
738
+ int (*tkSubtractRegion) (TkRegion sra, TkRegion srcb, TkRegion dr_return); /* 145 */
739
+ void (*tkStylePkgInit) (TkMainInfo *mainPtr); /* 146 */
740
+ void (*tkStylePkgFree) (TkMainInfo *mainPtr); /* 147 */
741
+ Tk_Window (*tkToplevelWindowForCommand) (Tcl_Interp *interp, const char *cmdName); /* 148 */
742
+ const Tk_OptionSpec * (*tkGetOptionSpec) (const char *name, Tk_OptionTable optionTable); /* 149 */
743
+ int (*tkMakeRawCurve) (Tk_Canvas canvas, double *pointPtr, int numPoints, int numSteps, XPoint xPoints[], double dblPoints[]); /* 150 */
744
+ void (*tkMakeRawCurvePostscript) (Tcl_Interp *interp, Tk_Canvas canvas, double *pointPtr, int numPoints); /* 151 */
745
+ void (*tkpDrawFrame) (Tk_Window tkwin, Tk_3DBorder border, int highlightWidth, int borderWidth, int relief); /* 152 */
746
+ void (*tkCreateThreadExitHandler) (Tcl_ExitProc *proc, ClientData clientData); /* 153 */
747
+ void (*tkDeleteThreadExitHandler) (Tcl_ExitProc *proc, ClientData clientData); /* 154 */
748
+ void (*reserved155)(void);
749
+ int (*tkpTestembedCmd) (ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 156 */
750
+ int (*tkpTesttextCmd) (ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 157 */
751
+ int (*tkSelGetSelection) (Tcl_Interp *interp, Tk_Window tkwin, Atom selection, Atom target, Tk_GetSelProc *proc, ClientData clientData); /* 158 */
752
+ int (*tkTextGetIndex) (Tcl_Interp *interp, struct TkText *textPtr, const char *string, struct TkTextIndex *indexPtr); /* 159 */
753
+ int (*tkTextIndexBackBytes) (const struct TkText *textPtr, const struct TkTextIndex *srcPtr, int count, struct TkTextIndex *dstPtr); /* 160 */
754
+ int (*tkTextIndexForwBytes) (const struct TkText *textPtr, const struct TkTextIndex *srcPtr, int count, struct TkTextIndex *dstPtr); /* 161 */
755
+ struct TkTextIndex * (*tkTextMakeByteIndex) (TkTextBTree tree, const struct TkText *textPtr, int lineIndex, int byteIndex, struct TkTextIndex *indexPtr); /* 162 */
756
+ int (*tkTextPrintIndex) (const struct TkText *textPtr, const struct TkTextIndex *indexPtr, char *string); /* 163 */
757
+ struct TkTextSegment * (*tkTextSetMark) (struct TkText *textPtr, const char *name, struct TkTextIndex *indexPtr); /* 164 */
758
+ int (*tkTextXviewCmd) (struct TkText *textPtr, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); /* 165 */
759
+ void (*tkTextChanged) (struct TkSharedText *sharedTextPtr, struct TkText *textPtr, const struct TkTextIndex *index1Ptr, const struct TkTextIndex *index2Ptr); /* 166 */
760
+ int (*tkBTreeNumLines) (TkTextBTree tree, const struct TkText *textPtr); /* 167 */
761
+ void (*tkTextInsertDisplayProc) (struct TkText *textPtr, struct TkTextDispChunk *chunkPtr, int x, int y, int height, int baseline, Display *display, Drawable dst, int screenY); /* 168 */
762
+ int (*tkStateParseProc) (ClientData clientData, Tcl_Interp *interp, Tk_Window tkwin, const char *value, char *widgRec, int offset); /* 169 */
763
+ CONST86 char * (*tkStatePrintProc) (ClientData clientData, Tk_Window tkwin, char *widgRec, int offset, Tcl_FreeProc **freeProcPtr); /* 170 */
764
+ int (*tkCanvasDashParseProc) (ClientData clientData, Tcl_Interp *interp, Tk_Window tkwin, const char *value, char *widgRec, int offset); /* 171 */
765
+ CONST86 char * (*tkCanvasDashPrintProc) (ClientData clientData, Tk_Window tkwin, char *widgRec, int offset, Tcl_FreeProc **freeProcPtr); /* 172 */
766
+ int (*tkOffsetParseProc) (ClientData clientData, Tcl_Interp *interp, Tk_Window tkwin, const char *value, char *widgRec, int offset); /* 173 */
767
+ CONST86 char * (*tkOffsetPrintProc) (ClientData clientData, Tk_Window tkwin, char *widgRec, int offset, Tcl_FreeProc **freeProcPtr); /* 174 */
768
+ int (*tkPixelParseProc) (ClientData clientData, Tcl_Interp *interp, Tk_Window tkwin, const char *value, char *widgRec, int offset); /* 175 */
769
+ CONST86 char * (*tkPixelPrintProc) (ClientData clientData, Tk_Window tkwin, char *widgRec, int offset, Tcl_FreeProc **freeProcPtr); /* 176 */
770
+ int (*tkOrientParseProc) (ClientData clientData, Tcl_Interp *interp, Tk_Window tkwin, const char *value, char *widgRec, int offset); /* 177 */
771
+ CONST86 char * (*tkOrientPrintProc) (ClientData clientData, Tk_Window tkwin, char *widgRec, int offset, Tcl_FreeProc **freeProcPtr); /* 178 */
772
+ int (*tkSmoothParseProc) (ClientData clientData, Tcl_Interp *interp, Tk_Window tkwin, const char *value, char *widgRec, int offset); /* 179 */
773
+ CONST86 char * (*tkSmoothPrintProc) (ClientData clientData, Tk_Window tkwin, char *widgRec, int offset, Tcl_FreeProc **freeProcPtr); /* 180 */
774
+ void (*tkDrawAngledTextLayout) (Display *display, Drawable drawable, GC gc, Tk_TextLayout layout, int x, int y, double angle, int firstChar, int lastChar); /* 181 */
775
+ void (*tkUnderlineAngledTextLayout) (Display *display, Drawable drawable, GC gc, Tk_TextLayout layout, int x, int y, double angle, int underline); /* 182 */
776
+ int (*tkIntersectAngledTextLayout) (Tk_TextLayout layout, int x, int y, int width, int height, double angle); /* 183 */
777
+ void (*tkDrawAngledChars) (Display *display, Drawable drawable, GC gc, Tk_Font tkfont, const char *source, int numBytes, double x, double y, double angle); /* 184 */
778
+ #if !defined(_WIN32) && !defined(MAC_OSX_TCL) /* UNIX */
779
+ void (*reserved185)(void);
780
+ #endif /* UNIX */
781
+ #if defined(_WIN32) /* WIN */
782
+ void (*reserved185)(void);
783
+ #endif /* WIN */
784
+ #ifdef MAC_OSX_TCL /* MACOSX */
785
+ void (*tkpRedrawWidget) (Tk_Window tkwin); /* 185 */
786
+ #endif /* MACOSX */
787
+ #if !defined(_WIN32) && !defined(MAC_OSX_TCL) /* UNIX */
788
+ void (*reserved186)(void);
789
+ #endif /* UNIX */
790
+ #if defined(_WIN32) /* WIN */
791
+ void (*reserved186)(void);
792
+ #endif /* WIN */
793
+ #ifdef MAC_OSX_TCL /* MACOSX */
794
+ int (*tkpWillDrawWidget) (Tk_Window tkwin); /* 186 */
795
+ #endif /* MACOSX */
796
+ } TkIntStubs;
797
+
798
+ extern const TkIntStubs *tkIntStubsPtr;
799
+
800
+ #ifdef __cplusplus
801
+ }
802
+ #endif
803
+
804
+ #if defined(USE_TK_STUBS)
805
+
806
+ /*
807
+ * Inline function declarations:
808
+ */
809
+
810
+ #define TkAllocWindow \
811
+ (tkIntStubsPtr->tkAllocWindow) /* 0 */
812
+ #define TkBezierPoints \
813
+ (tkIntStubsPtr->tkBezierPoints) /* 1 */
814
+ #define TkBezierScreenPoints \
815
+ (tkIntStubsPtr->tkBezierScreenPoints) /* 2 */
816
+ /* Slot 3 is reserved */
817
+ #define TkBindEventProc \
818
+ (tkIntStubsPtr->tkBindEventProc) /* 4 */
819
+ #define TkBindFree \
820
+ (tkIntStubsPtr->tkBindFree) /* 5 */
821
+ #define TkBindInit \
822
+ (tkIntStubsPtr->tkBindInit) /* 6 */
823
+ #define TkChangeEventWindow \
824
+ (tkIntStubsPtr->tkChangeEventWindow) /* 7 */
825
+ #define TkClipInit \
826
+ (tkIntStubsPtr->tkClipInit) /* 8 */
827
+ #define TkComputeAnchor \
828
+ (tkIntStubsPtr->tkComputeAnchor) /* 9 */
829
+ /* Slot 10 is reserved */
830
+ /* Slot 11 is reserved */
831
+ #define TkCreateCursorFromData \
832
+ (tkIntStubsPtr->tkCreateCursorFromData) /* 12 */
833
+ #define TkCreateFrame \
834
+ (tkIntStubsPtr->tkCreateFrame) /* 13 */
835
+ #define TkCreateMainWindow \
836
+ (tkIntStubsPtr->tkCreateMainWindow) /* 14 */
837
+ #define TkCurrentTime \
838
+ (tkIntStubsPtr->tkCurrentTime) /* 15 */
839
+ #define TkDeleteAllImages \
840
+ (tkIntStubsPtr->tkDeleteAllImages) /* 16 */
841
+ #define TkDoConfigureNotify \
842
+ (tkIntStubsPtr->tkDoConfigureNotify) /* 17 */
843
+ #define TkDrawInsetFocusHighlight \
844
+ (tkIntStubsPtr->tkDrawInsetFocusHighlight) /* 18 */
845
+ #define TkEventDeadWindow \
846
+ (tkIntStubsPtr->tkEventDeadWindow) /* 19 */
847
+ #define TkFillPolygon \
848
+ (tkIntStubsPtr->tkFillPolygon) /* 20 */
849
+ #define TkFindStateNum \
850
+ (tkIntStubsPtr->tkFindStateNum) /* 21 */
851
+ #define TkFindStateString \
852
+ (tkIntStubsPtr->tkFindStateString) /* 22 */
853
+ #define TkFocusDeadWindow \
854
+ (tkIntStubsPtr->tkFocusDeadWindow) /* 23 */
855
+ #define TkFocusFilterEvent \
856
+ (tkIntStubsPtr->tkFocusFilterEvent) /* 24 */
857
+ #define TkFocusKeyEvent \
858
+ (tkIntStubsPtr->tkFocusKeyEvent) /* 25 */
859
+ #define TkFontPkgInit \
860
+ (tkIntStubsPtr->tkFontPkgInit) /* 26 */
861
+ #define TkFontPkgFree \
862
+ (tkIntStubsPtr->tkFontPkgFree) /* 27 */
863
+ #define TkFreeBindingTags \
864
+ (tkIntStubsPtr->tkFreeBindingTags) /* 28 */
865
+ #define TkpFreeCursor \
866
+ (tkIntStubsPtr->tkpFreeCursor) /* 29 */
867
+ #define TkGetBitmapData \
868
+ (tkIntStubsPtr->tkGetBitmapData) /* 30 */
869
+ #define TkGetButtPoints \
870
+ (tkIntStubsPtr->tkGetButtPoints) /* 31 */
871
+ #define TkGetCursorByName \
872
+ (tkIntStubsPtr->tkGetCursorByName) /* 32 */
873
+ #define TkGetDefaultScreenName \
874
+ (tkIntStubsPtr->tkGetDefaultScreenName) /* 33 */
875
+ #define TkGetDisplay \
876
+ (tkIntStubsPtr->tkGetDisplay) /* 34 */
877
+ #define TkGetDisplayOf \
878
+ (tkIntStubsPtr->tkGetDisplayOf) /* 35 */
879
+ #define TkGetFocusWin \
880
+ (tkIntStubsPtr->tkGetFocusWin) /* 36 */
881
+ #define TkGetInterpNames \
882
+ (tkIntStubsPtr->tkGetInterpNames) /* 37 */
883
+ #define TkGetMiterPoints \
884
+ (tkIntStubsPtr->tkGetMiterPoints) /* 38 */
885
+ #define TkGetPointerCoords \
886
+ (tkIntStubsPtr->tkGetPointerCoords) /* 39 */
887
+ #define TkGetServerInfo \
888
+ (tkIntStubsPtr->tkGetServerInfo) /* 40 */
889
+ #define TkGrabDeadWindow \
890
+ (tkIntStubsPtr->tkGrabDeadWindow) /* 41 */
891
+ #define TkGrabState \
892
+ (tkIntStubsPtr->tkGrabState) /* 42 */
893
+ #define TkIncludePoint \
894
+ (tkIntStubsPtr->tkIncludePoint) /* 43 */
895
+ #define TkInOutEvents \
896
+ (tkIntStubsPtr->tkInOutEvents) /* 44 */
897
+ #define TkInstallFrameMenu \
898
+ (tkIntStubsPtr->tkInstallFrameMenu) /* 45 */
899
+ #define TkKeysymToString \
900
+ (tkIntStubsPtr->tkKeysymToString) /* 46 */
901
+ #define TkLineToArea \
902
+ (tkIntStubsPtr->tkLineToArea) /* 47 */
903
+ #define TkLineToPoint \
904
+ (tkIntStubsPtr->tkLineToPoint) /* 48 */
905
+ #define TkMakeBezierCurve \
906
+ (tkIntStubsPtr->tkMakeBezierCurve) /* 49 */
907
+ #define TkMakeBezierPostscript \
908
+ (tkIntStubsPtr->tkMakeBezierPostscript) /* 50 */
909
+ #define TkOptionClassChanged \
910
+ (tkIntStubsPtr->tkOptionClassChanged) /* 51 */
911
+ #define TkOptionDeadWindow \
912
+ (tkIntStubsPtr->tkOptionDeadWindow) /* 52 */
913
+ #define TkOvalToArea \
914
+ (tkIntStubsPtr->tkOvalToArea) /* 53 */
915
+ #define TkOvalToPoint \
916
+ (tkIntStubsPtr->tkOvalToPoint) /* 54 */
917
+ #define TkpChangeFocus \
918
+ (tkIntStubsPtr->tkpChangeFocus) /* 55 */
919
+ #define TkpCloseDisplay \
920
+ (tkIntStubsPtr->tkpCloseDisplay) /* 56 */
921
+ #define TkpClaimFocus \
922
+ (tkIntStubsPtr->tkpClaimFocus) /* 57 */
923
+ #define TkpDisplayWarning \
924
+ (tkIntStubsPtr->tkpDisplayWarning) /* 58 */
925
+ #define TkpGetAppName \
926
+ (tkIntStubsPtr->tkpGetAppName) /* 59 */
927
+ #define TkpGetOtherWindow \
928
+ (tkIntStubsPtr->tkpGetOtherWindow) /* 60 */
929
+ #define TkpGetWrapperWindow \
930
+ (tkIntStubsPtr->tkpGetWrapperWindow) /* 61 */
931
+ #define TkpInit \
932
+ (tkIntStubsPtr->tkpInit) /* 62 */
933
+ #define TkpInitializeMenuBindings \
934
+ (tkIntStubsPtr->tkpInitializeMenuBindings) /* 63 */
935
+ #define TkpMakeContainer \
936
+ (tkIntStubsPtr->tkpMakeContainer) /* 64 */
937
+ #define TkpMakeMenuWindow \
938
+ (tkIntStubsPtr->tkpMakeMenuWindow) /* 65 */
939
+ #define TkpMakeWindow \
940
+ (tkIntStubsPtr->tkpMakeWindow) /* 66 */
941
+ #define TkpMenuNotifyToplevelCreate \
942
+ (tkIntStubsPtr->tkpMenuNotifyToplevelCreate) /* 67 */
943
+ #define TkpOpenDisplay \
944
+ (tkIntStubsPtr->tkpOpenDisplay) /* 68 */
945
+ #define TkPointerEvent \
946
+ (tkIntStubsPtr->tkPointerEvent) /* 69 */
947
+ #define TkPolygonToArea \
948
+ (tkIntStubsPtr->tkPolygonToArea) /* 70 */
949
+ #define TkPolygonToPoint \
950
+ (tkIntStubsPtr->tkPolygonToPoint) /* 71 */
951
+ #define TkPositionInTree \
952
+ (tkIntStubsPtr->tkPositionInTree) /* 72 */
953
+ #define TkpRedirectKeyEvent \
954
+ (tkIntStubsPtr->tkpRedirectKeyEvent) /* 73 */
955
+ #define TkpSetMainMenubar \
956
+ (tkIntStubsPtr->tkpSetMainMenubar) /* 74 */
957
+ #define TkpUseWindow \
958
+ (tkIntStubsPtr->tkpUseWindow) /* 75 */
959
+ /* Slot 76 is reserved */
960
+ #define TkQueueEventForAllChildren \
961
+ (tkIntStubsPtr->tkQueueEventForAllChildren) /* 77 */
962
+ #define TkReadBitmapFile \
963
+ (tkIntStubsPtr->tkReadBitmapFile) /* 78 */
964
+ #define TkScrollWindow \
965
+ (tkIntStubsPtr->tkScrollWindow) /* 79 */
966
+ #define TkSelDeadWindow \
967
+ (tkIntStubsPtr->tkSelDeadWindow) /* 80 */
968
+ #define TkSelEventProc \
969
+ (tkIntStubsPtr->tkSelEventProc) /* 81 */
970
+ #define TkSelInit \
971
+ (tkIntStubsPtr->tkSelInit) /* 82 */
972
+ #define TkSelPropProc \
973
+ (tkIntStubsPtr->tkSelPropProc) /* 83 */
974
+ /* Slot 84 is reserved */
975
+ #define TkSetWindowMenuBar \
976
+ (tkIntStubsPtr->tkSetWindowMenuBar) /* 85 */
977
+ #define TkStringToKeysym \
978
+ (tkIntStubsPtr->tkStringToKeysym) /* 86 */
979
+ #define TkThickPolyLineToArea \
980
+ (tkIntStubsPtr->tkThickPolyLineToArea) /* 87 */
981
+ #define TkWmAddToColormapWindows \
982
+ (tkIntStubsPtr->tkWmAddToColormapWindows) /* 88 */
983
+ #define TkWmDeadWindow \
984
+ (tkIntStubsPtr->tkWmDeadWindow) /* 89 */
985
+ #define TkWmFocusToplevel \
986
+ (tkIntStubsPtr->tkWmFocusToplevel) /* 90 */
987
+ #define TkWmMapWindow \
988
+ (tkIntStubsPtr->tkWmMapWindow) /* 91 */
989
+ #define TkWmNewWindow \
990
+ (tkIntStubsPtr->tkWmNewWindow) /* 92 */
991
+ #define TkWmProtocolEventProc \
992
+ (tkIntStubsPtr->tkWmProtocolEventProc) /* 93 */
993
+ #define TkWmRemoveFromColormapWindows \
994
+ (tkIntStubsPtr->tkWmRemoveFromColormapWindows) /* 94 */
995
+ #define TkWmRestackToplevel \
996
+ (tkIntStubsPtr->tkWmRestackToplevel) /* 95 */
997
+ #define TkWmSetClass \
998
+ (tkIntStubsPtr->tkWmSetClass) /* 96 */
999
+ #define TkWmUnmapWindow \
1000
+ (tkIntStubsPtr->tkWmUnmapWindow) /* 97 */
1001
+ #define TkDebugBitmap \
1002
+ (tkIntStubsPtr->tkDebugBitmap) /* 98 */
1003
+ #define TkDebugBorder \
1004
+ (tkIntStubsPtr->tkDebugBorder) /* 99 */
1005
+ #define TkDebugCursor \
1006
+ (tkIntStubsPtr->tkDebugCursor) /* 100 */
1007
+ #define TkDebugColor \
1008
+ (tkIntStubsPtr->tkDebugColor) /* 101 */
1009
+ #define TkDebugConfig \
1010
+ (tkIntStubsPtr->tkDebugConfig) /* 102 */
1011
+ #define TkDebugFont \
1012
+ (tkIntStubsPtr->tkDebugFont) /* 103 */
1013
+ #define TkFindStateNumObj \
1014
+ (tkIntStubsPtr->tkFindStateNumObj) /* 104 */
1015
+ #define TkGetBitmapPredefTable \
1016
+ (tkIntStubsPtr->tkGetBitmapPredefTable) /* 105 */
1017
+ #define TkGetDisplayList \
1018
+ (tkIntStubsPtr->tkGetDisplayList) /* 106 */
1019
+ #define TkGetMainInfoList \
1020
+ (tkIntStubsPtr->tkGetMainInfoList) /* 107 */
1021
+ #define TkGetWindowFromObj \
1022
+ (tkIntStubsPtr->tkGetWindowFromObj) /* 108 */
1023
+ #define TkpGetString \
1024
+ (tkIntStubsPtr->tkpGetString) /* 109 */
1025
+ #define TkpGetSubFonts \
1026
+ (tkIntStubsPtr->tkpGetSubFonts) /* 110 */
1027
+ #define TkpGetSystemDefault \
1028
+ (tkIntStubsPtr->tkpGetSystemDefault) /* 111 */
1029
+ #define TkpMenuThreadInit \
1030
+ (tkIntStubsPtr->tkpMenuThreadInit) /* 112 */
1031
+ #define TkClipBox \
1032
+ (tkIntStubsPtr->tkClipBox) /* 113 */
1033
+ #define TkCreateRegion \
1034
+ (tkIntStubsPtr->tkCreateRegion) /* 114 */
1035
+ #define TkDestroyRegion \
1036
+ (tkIntStubsPtr->tkDestroyRegion) /* 115 */
1037
+ #define TkIntersectRegion \
1038
+ (tkIntStubsPtr->tkIntersectRegion) /* 116 */
1039
+ #define TkRectInRegion \
1040
+ (tkIntStubsPtr->tkRectInRegion) /* 117 */
1041
+ #define TkSetRegion \
1042
+ (tkIntStubsPtr->tkSetRegion) /* 118 */
1043
+ #define TkUnionRectWithRegion \
1044
+ (tkIntStubsPtr->tkUnionRectWithRegion) /* 119 */
1045
+ /* Slot 120 is reserved */
1046
+ #ifdef MAC_OSX_TK /* AQUA */
1047
+ #define TkpCreateNativeBitmap \
1048
+ (tkIntStubsPtr->tkpCreateNativeBitmap) /* 121 */
1049
+ #endif /* AQUA */
1050
+ #ifdef MAC_OSX_TK /* AQUA */
1051
+ #define TkpDefineNativeBitmaps \
1052
+ (tkIntStubsPtr->tkpDefineNativeBitmaps) /* 122 */
1053
+ #endif /* AQUA */
1054
+ /* Slot 123 is reserved */
1055
+ #ifdef MAC_OSX_TK /* AQUA */
1056
+ #define TkpGetNativeAppBitmap \
1057
+ (tkIntStubsPtr->tkpGetNativeAppBitmap) /* 124 */
1058
+ #endif /* AQUA */
1059
+ /* Slot 125 is reserved */
1060
+ /* Slot 126 is reserved */
1061
+ /* Slot 127 is reserved */
1062
+ /* Slot 128 is reserved */
1063
+ /* Slot 129 is reserved */
1064
+ /* Slot 130 is reserved */
1065
+ /* Slot 131 is reserved */
1066
+ /* Slot 132 is reserved */
1067
+ /* Slot 133 is reserved */
1068
+ /* Slot 134 is reserved */
1069
+ #define TkpDrawHighlightBorder \
1070
+ (tkIntStubsPtr->tkpDrawHighlightBorder) /* 135 */
1071
+ #define TkSetFocusWin \
1072
+ (tkIntStubsPtr->tkSetFocusWin) /* 136 */
1073
+ #define TkpSetKeycodeAndState \
1074
+ (tkIntStubsPtr->tkpSetKeycodeAndState) /* 137 */
1075
+ #define TkpGetKeySym \
1076
+ (tkIntStubsPtr->tkpGetKeySym) /* 138 */
1077
+ #define TkpInitKeymapInfo \
1078
+ (tkIntStubsPtr->tkpInitKeymapInfo) /* 139 */
1079
+ #define TkPhotoGetValidRegion \
1080
+ (tkIntStubsPtr->tkPhotoGetValidRegion) /* 140 */
1081
+ #define TkWmStackorderToplevel \
1082
+ (tkIntStubsPtr->tkWmStackorderToplevel) /* 141 */
1083
+ #define TkFocusFree \
1084
+ (tkIntStubsPtr->tkFocusFree) /* 142 */
1085
+ #define TkClipCleanup \
1086
+ (tkIntStubsPtr->tkClipCleanup) /* 143 */
1087
+ #define TkGCCleanup \
1088
+ (tkIntStubsPtr->tkGCCleanup) /* 144 */
1089
+ #define TkSubtractRegion \
1090
+ (tkIntStubsPtr->tkSubtractRegion) /* 145 */
1091
+ #define TkStylePkgInit \
1092
+ (tkIntStubsPtr->tkStylePkgInit) /* 146 */
1093
+ #define TkStylePkgFree \
1094
+ (tkIntStubsPtr->tkStylePkgFree) /* 147 */
1095
+ #define TkToplevelWindowForCommand \
1096
+ (tkIntStubsPtr->tkToplevelWindowForCommand) /* 148 */
1097
+ #define TkGetOptionSpec \
1098
+ (tkIntStubsPtr->tkGetOptionSpec) /* 149 */
1099
+ #define TkMakeRawCurve \
1100
+ (tkIntStubsPtr->tkMakeRawCurve) /* 150 */
1101
+ #define TkMakeRawCurvePostscript \
1102
+ (tkIntStubsPtr->tkMakeRawCurvePostscript) /* 151 */
1103
+ #define TkpDrawFrame \
1104
+ (tkIntStubsPtr->tkpDrawFrame) /* 152 */
1105
+ #define TkCreateThreadExitHandler \
1106
+ (tkIntStubsPtr->tkCreateThreadExitHandler) /* 153 */
1107
+ #define TkDeleteThreadExitHandler \
1108
+ (tkIntStubsPtr->tkDeleteThreadExitHandler) /* 154 */
1109
+ /* Slot 155 is reserved */
1110
+ #define TkpTestembedCmd \
1111
+ (tkIntStubsPtr->tkpTestembedCmd) /* 156 */
1112
+ #define TkpTesttextCmd \
1113
+ (tkIntStubsPtr->tkpTesttextCmd) /* 157 */
1114
+ #define TkSelGetSelection \
1115
+ (tkIntStubsPtr->tkSelGetSelection) /* 158 */
1116
+ #define TkTextGetIndex \
1117
+ (tkIntStubsPtr->tkTextGetIndex) /* 159 */
1118
+ #define TkTextIndexBackBytes \
1119
+ (tkIntStubsPtr->tkTextIndexBackBytes) /* 160 */
1120
+ #define TkTextIndexForwBytes \
1121
+ (tkIntStubsPtr->tkTextIndexForwBytes) /* 161 */
1122
+ #define TkTextMakeByteIndex \
1123
+ (tkIntStubsPtr->tkTextMakeByteIndex) /* 162 */
1124
+ #define TkTextPrintIndex \
1125
+ (tkIntStubsPtr->tkTextPrintIndex) /* 163 */
1126
+ #define TkTextSetMark \
1127
+ (tkIntStubsPtr->tkTextSetMark) /* 164 */
1128
+ #define TkTextXviewCmd \
1129
+ (tkIntStubsPtr->tkTextXviewCmd) /* 165 */
1130
+ #define TkTextChanged \
1131
+ (tkIntStubsPtr->tkTextChanged) /* 166 */
1132
+ #define TkBTreeNumLines \
1133
+ (tkIntStubsPtr->tkBTreeNumLines) /* 167 */
1134
+ #define TkTextInsertDisplayProc \
1135
+ (tkIntStubsPtr->tkTextInsertDisplayProc) /* 168 */
1136
+ #define TkStateParseProc \
1137
+ (tkIntStubsPtr->tkStateParseProc) /* 169 */
1138
+ #define TkStatePrintProc \
1139
+ (tkIntStubsPtr->tkStatePrintProc) /* 170 */
1140
+ #define TkCanvasDashParseProc \
1141
+ (tkIntStubsPtr->tkCanvasDashParseProc) /* 171 */
1142
+ #define TkCanvasDashPrintProc \
1143
+ (tkIntStubsPtr->tkCanvasDashPrintProc) /* 172 */
1144
+ #define TkOffsetParseProc \
1145
+ (tkIntStubsPtr->tkOffsetParseProc) /* 173 */
1146
+ #define TkOffsetPrintProc \
1147
+ (tkIntStubsPtr->tkOffsetPrintProc) /* 174 */
1148
+ #define TkPixelParseProc \
1149
+ (tkIntStubsPtr->tkPixelParseProc) /* 175 */
1150
+ #define TkPixelPrintProc \
1151
+ (tkIntStubsPtr->tkPixelPrintProc) /* 176 */
1152
+ #define TkOrientParseProc \
1153
+ (tkIntStubsPtr->tkOrientParseProc) /* 177 */
1154
+ #define TkOrientPrintProc \
1155
+ (tkIntStubsPtr->tkOrientPrintProc) /* 178 */
1156
+ #define TkSmoothParseProc \
1157
+ (tkIntStubsPtr->tkSmoothParseProc) /* 179 */
1158
+ #define TkSmoothPrintProc \
1159
+ (tkIntStubsPtr->tkSmoothPrintProc) /* 180 */
1160
+ #define TkDrawAngledTextLayout \
1161
+ (tkIntStubsPtr->tkDrawAngledTextLayout) /* 181 */
1162
+ #define TkUnderlineAngledTextLayout \
1163
+ (tkIntStubsPtr->tkUnderlineAngledTextLayout) /* 182 */
1164
+ #define TkIntersectAngledTextLayout \
1165
+ (tkIntStubsPtr->tkIntersectAngledTextLayout) /* 183 */
1166
+ #define TkDrawAngledChars \
1167
+ (tkIntStubsPtr->tkDrawAngledChars) /* 184 */
1168
+ #ifdef MAC_OSX_TCL /* MACOSX */
1169
+ #define TkpRedrawWidget \
1170
+ (tkIntStubsPtr->tkpRedrawWidget) /* 185 */
1171
+ #endif /* MACOSX */
1172
+ #ifdef MAC_OSX_TCL /* MACOSX */
1173
+ #define TkpWillDrawWidget \
1174
+ (tkIntStubsPtr->tkpWillDrawWidget) /* 186 */
1175
+ #endif /* MACOSX */
1176
+
1177
+ #endif /* defined(USE_TK_STUBS) */
1178
+
1179
+ /* !END!: Do not edit above this line. */
1180
+
1181
+ #undef TCL_STORAGE_CLASS
1182
+ #define TCL_STORAGE_CLASS DLLIMPORT
1183
+
1184
+ /*
1185
+ * On X11, these macros are just wrappers for the equivalent X Region calls.
1186
+ */
1187
+ #if !(defined(_WIN32) || defined(__CYGWIN__) || defined(MAC_OSX_TK)) /* X11 */
1188
+
1189
+ #undef TkClipBox
1190
+ #undef TkCreateRegion
1191
+ #undef TkDestroyRegion
1192
+ #undef TkIntersectRegion
1193
+ #undef TkRectInRegion
1194
+ #undef TkSetRegion
1195
+ #undef TkSubtractRegion
1196
+ #undef TkUnionRectWithRegion
1197
+ #undef TkpCmapStressed_
1198
+ #undef TkpSync_
1199
+ #undef TkUnixContainerId_
1200
+ #undef TkUnixDoOneXEvent_
1201
+ #undef TkUnixSetMenubar_
1202
+ #undef TkWmCleanup_
1203
+ #undef TkSendCleanup_
1204
+ #undef TkpTestsendCmd_
1205
+
1206
+ #define TkClipBox(rgn, rect) XClipBox((Region) rgn, rect)
1207
+ #define TkCreateRegion() (TkRegion) XCreateRegion()
1208
+ #define TkDestroyRegion(rgn) XDestroyRegion((Region) rgn)
1209
+ #define TkIntersectRegion(a, b, r) XIntersectRegion((Region) a, \
1210
+ (Region) b, (Region) r)
1211
+ #define TkRectInRegion(r, x, y, w, h) XRectInRegion((Region) r, x, y, w, h)
1212
+ #define TkSetRegion(d, gc, rgn) XSetRegion(d, gc, (Region) rgn)
1213
+ #define TkSubtractRegion(a, b, r) XSubtractRegion((Region) a, \
1214
+ (Region) b, (Region) r)
1215
+ #define TkUnionRectWithRegion(rect, src, ret) XUnionRectWithRegion(rect, \
1216
+ (Region) src, (Region) ret)
1217
+
1218
+ #endif /* UNIX */
1219
+
1220
+ #if !defined(MAC_OSX_TK)
1221
+ # undef TkpWillDrawWidget
1222
+ # undef TkpRedrawWidget
1223
+ # define TkpWillDrawWidget(w) 0
1224
+ # define TkpRedrawWidget(w)
1225
+ #endif
1226
+
1227
+ #endif /* _TKINTDECLS */
1228
+
my_container_sandbox/workspace/anaconda3/include/tkMacOSX.h ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * tkMacOSX.h --
3
+ *
4
+ * Declarations of Macintosh specific exported variables and procedures.
5
+ *
6
+ * Copyright (c) 1995-1997 Sun Microsystems, Inc.
7
+ * Copyright 2001-2009, Apple Inc.
8
+ * Copyright (c) 2005-2009 Daniel A. Steffen <das@users.sourceforge.net>
9
+ *
10
+ * See the file "license.terms" for information on usage and redistribution
11
+ * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
12
+ */
13
+
14
+ #ifndef _TKMAC
15
+ #define _TKMAC
16
+
17
+ #ifndef _TK
18
+ #include "tk.h"
19
+ #endif
20
+
21
+ /*
22
+ * Structures and function types for handling Netscape-type in process
23
+ * embedding where Tk does not control the top-level
24
+ */
25
+
26
+ typedef int (Tk_MacOSXEmbedRegisterWinProc) (long winID, Tk_Window window);
27
+ typedef void* (Tk_MacOSXEmbedGetGrafPortProc) (Tk_Window window);
28
+ typedef int (Tk_MacOSXEmbedMakeContainerExistProc) (Tk_Window window);
29
+ typedef void (Tk_MacOSXEmbedGetClipProc) (Tk_Window window, void *rgn);
30
+ typedef void (Tk_MacOSXEmbedGetOffsetInParentProc) (Tk_Window window, void *ulCorner);
31
+
32
+ #include "tkPlatDecls.h"
33
+
34
+ #endif /* _TKMAC */
my_container_sandbox/workspace/anaconda3/include/tkMacOSXConstants.h ADDED
@@ -0,0 +1,119 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * tkMacOSXConstants.h --
3
+ *
4
+ * Macros which map the names of NS constants used in the Tk code to
5
+ * the new name that Apple came up with for subsequent versions of the
6
+ * operating system. (Each new OS release seems to come with a new
7
+ * naming convention for the same old constants.)
8
+ *
9
+ * Copyright (c) 2017 Marc Culler
10
+ *
11
+ * See the file "license.terms" for information on usage and redistribution
12
+ * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
13
+ */
14
+
15
+ #ifndef _TKMACCONSTANTS
16
+ #define _TKMACCONSTANTS
17
+
18
+ #if MAC_OS_X_VERSION_MAX_ALLOWED < 1070
19
+ #define NSFullScreenWindowMask (1 << 14)
20
+ #endif
21
+
22
+ #if MAC_OS_X_VERSION_MAX_ALLOWED < 1090
23
+ typedef NSInteger NSModalResponse;
24
+ #endif
25
+
26
+ /*
27
+ * Let's raise a glass for the project manager who improves our lives by
28
+ * generating deprecation warnings about pointless changes of the names
29
+ * of constants.
30
+ */
31
+
32
+ #if MAC_OS_X_VERSION_MIN_REQUIRED >= 1090
33
+ #define kCTFontDefaultOrientation kCTFontOrientationDefault
34
+ #define kCTFontVerticalOrientation kCTFontOrientationVertical
35
+ #endif
36
+
37
+ #if MAC_OS_X_VERSION_MIN_REQUIRED >= 101000
38
+ #define NSOKButton NSModalResponseOK
39
+ #endif
40
+
41
+ #if MAC_OS_X_VERSION_MIN_REQUIRED >= 101100
42
+ #define kCTFontUserFixedPitchFontType kCTFontUIFontUserFixedPitch
43
+ #endif
44
+
45
+ #if MAC_OS_X_VERSION_MIN_REQUIRED >= 101200
46
+ #define NSAppKitDefined NSEventTypeAppKitDefined
47
+ #define NSApplicationDefined NSEventTypeApplicationDefined
48
+ #define NSApplicationActivatedEventType NSEventSubtypeApplicationActivated
49
+ #define NSApplicationDeactivatedEventType NSEventSubtypeApplicationDeactivated
50
+ #define NSWindowExposedEventType NSEventSubtypeWindowExposed
51
+ #define NSScreenChangedEventType NSEventSubtypeScreenChanged
52
+ #define NSWindowMovedEventType NSEventSubtypeWindowMoved
53
+ #define NSKeyUp NSEventTypeKeyUp
54
+ #define NSKeyDown NSEventTypeKeyDown
55
+ #define NSFlagsChanged NSEventTypeFlagsChanged
56
+ #define NSLeftMouseDown NSEventTypeLeftMouseDown
57
+ #define NSLeftMouseUp NSEventTypeLeftMouseUp
58
+ #define NSRightMouseDown NSEventTypeRightMouseDown
59
+ #define NSRightMouseUp NSEventTypeRightMouseUp
60
+ #define NSLeftMouseDragged NSEventTypeLeftMouseDragged
61
+ #define NSRightMouseDragged NSEventTypeRightMouseDragged
62
+ #define NSMouseMoved NSEventTypeMouseMoved
63
+ #define NSMouseEntered NSEventTypeMouseEntered
64
+ #define NSMouseExited NSEventTypeMouseExited
65
+ #define NSScrollWheel NSEventTypeScrollWheel
66
+ #define NSOtherMouseDown NSEventTypeOtherMouseDown
67
+ #define NSOtherMouseUp NSEventTypeOtherMouseUp
68
+ #define NSOtherMouseDragged NSEventTypeOtherMouseDragged
69
+ #define NSTabletPoint NSEventTypeTabletPoint
70
+ #define NSTabletProximity NSEventTypeTabletProximity
71
+ #define NSDeviceIndependentModifierFlagsMask NSEventModifierFlagDeviceIndependentFlagsMask
72
+ #define NSCommandKeyMask NSEventModifierFlagCommand
73
+ #define NSShiftKeyMask NSEventModifierFlagShift
74
+ #define NSAlphaShiftKeyMask NSEventModifierFlagCapsLock
75
+ #define NSAlternateKeyMask NSEventModifierFlagOption
76
+ #define NSControlKeyMask NSEventModifierFlagControl
77
+ #define NSNumericPadKeyMask NSEventModifierFlagNumericPad
78
+ #define NSFunctionKeyMask NSEventModifierFlagFunction
79
+ #define NSCursorUpdate NSEventTypeCursorUpdate
80
+ #define NSTexturedBackgroundWindowMask NSWindowStyleMaskTexturedBackground
81
+ #define NSCompositeCopy NSCompositingOperationCopy
82
+ #define NSWarningAlertStyle NSAlertStyleWarning
83
+ #define NSInformationalAlertStyle NSAlertStyleInformational
84
+ #define NSCriticalAlertStyle NSAlertStyleCritical
85
+ #define NSCenterTextAlignment NSTextAlignmentCenter
86
+ #define NSAnyEventMask NSEventMaskAny
87
+ #define NSApplicationDefinedMask NSEventMaskApplicationDefined
88
+ #define NSUtilityWindowMask NSWindowStyleMaskUtilityWindow
89
+ #define NSNonactivatingPanelMask NSWindowStyleMaskNonactivatingPanel
90
+ #define NSDocModalWindowMask NSWindowStyleMaskDocModalWindow
91
+ #define NSHUDWindowMask NSWindowStyleMaskHUDWindow
92
+ #define NSTitledWindowMask NSWindowStyleMaskTitled
93
+ #define NSClosableWindowMask NSWindowStyleMaskClosable
94
+ #define NSResizableWindowMask NSWindowStyleMaskResizable
95
+ #define NSUnifiedTitleAndToolbarWindowMask NSWindowStyleMaskUnifiedTitleAndToolbar
96
+ #define NSMiniaturizableWindowMask NSWindowStyleMaskMiniaturizable
97
+ #define NSBorderlessWindowMask NSWindowStyleMaskBorderless
98
+ #define NSFullScreenWindowMask NSWindowStyleMaskFullScreen
99
+ #endif
100
+
101
+ #if MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
102
+ #define NSStringPboardType NSPasteboardTypeString
103
+ #define NSOnState NSControlStateValueOn
104
+ #define NSOffState NSControlStateValueOff
105
+ #endif
106
+
107
+ #if MAC_OS_X_VERSION_MIN_REQUIRED >= 110000
108
+ #define NSWindowStyleMaskTexturedBackground 0
109
+ #endif
110
+
111
+ #if MAC_OS_X_VERSION_MIN_REQUIRED < 101000
112
+ #define GET_NSCONTEXT(context, flip) [NSGraphicsContext \
113
+ graphicsContextWithGraphicsPort:context flipped:flip]
114
+ #else
115
+ #define GET_NSCONTEXT(context, flip) [NSGraphicsContext \
116
+ graphicsContextWithCGContext:context flipped:NO]
117
+ #endif
118
+
119
+ #endif
my_container_sandbox/workspace/anaconda3/include/tkMacOSXEvent.h ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * tkMacOSXEvent.h --
3
+ *
4
+ * Declarations of Macintosh specific functions for implementing the
5
+ * Mac OS X Notifier.
6
+ *
7
+ * Copyright 2001-2009, Apple Inc.
8
+ * Copyright (c) 2005-2009 Daniel A. Steffen <das@users.sourceforge.net>
9
+ *
10
+ * See the file "license.terms" for information on usage and redistribution
11
+ * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
12
+ */
13
+
14
+ #ifndef _TKMACEVENT
15
+ #define _TKMACEVENT
16
+
17
+ #ifndef _TKMACINT
18
+ #include "tkMacOSXInt.h"
19
+ #endif
20
+
21
+ /*
22
+ * Currently nothing needs to be declared here.
23
+ */
24
+
25
+ #endif
my_container_sandbox/workspace/anaconda3/include/tkMacOSXFont.h ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * tkMacOSXFont.h --
3
+ *
4
+ * Contains the Macintosh implementation of the platform-independent
5
+ * font package interface.
6
+ *
7
+ * Copyright (c) 1990-1994 The Regents of the University of California.
8
+ * Copyright (c) 1994-1997 Sun Microsystems, Inc.
9
+ * Copyright 2001-2009, Apple Inc.
10
+ * Copyright (c) 2006-2009 Daniel A. Steffen <das@users.sourceforge.net>
11
+ *
12
+ * See the file "license.terms" for information on usage and redistribution
13
+ * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
14
+ */
15
+
16
+ #ifndef TKMACOSXFONT_H
17
+ #define TKMACOSXFONT_H 1
18
+
19
+ #include "tkFont.h"
20
+
21
+ #ifndef _TKMACINT
22
+ #include "tkMacOSXInt.h"
23
+ #endif
24
+
25
+ /*
26
+ * Function prototypes
27
+ */
28
+
29
+ MODULE_SCOPE Tcl_Obj * TkMacOSXFontDescriptionForNSFontAndNSFontAttributes(
30
+ NSFont *nsFont, NSDictionary *nsAttributes);
31
+
32
+ #endif /*TKMACOSXFONT_H*/
my_container_sandbox/workspace/anaconda3/include/tkMacOSXInt.h ADDED
@@ -0,0 +1,199 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * tkMacOSXInt.h --
3
+ *
4
+ * Declarations of Macintosh specific shared variables and procedures.
5
+ *
6
+ * Copyright (c) 1995-1997 Sun Microsystems, Inc.
7
+ * Copyright 2001-2009, Apple Inc.
8
+ * Copyright (c) 2005-2009 Daniel A. Steffen <das@users.sourceforge.net>
9
+ *
10
+ * See the file "license.terms" for information on usage and redistribution
11
+ * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
12
+ */
13
+
14
+ #ifndef _TKMACINT
15
+ #define _TKMACINT
16
+
17
+ #ifndef _TKINT
18
+ #include "tkInt.h"
19
+ #endif
20
+
21
+ /*
22
+ * Include platform specific public interfaces.
23
+ */
24
+
25
+ #ifndef _TKMAC
26
+ #include "tkMacOSX.h"
27
+ #import <Cocoa/Cocoa.h>
28
+ #endif
29
+
30
+ /*
31
+ * Define compatibility platform types used in the structures below so that
32
+ * this header can be included without pulling in the platform headers.
33
+ */
34
+
35
+ #ifndef _TKMACPRIV
36
+ # ifndef CGGEOMETRY_H_
37
+ # ifndef CGFLOAT_DEFINED
38
+ # if __LP64__
39
+ # define CGFloat double
40
+ # else
41
+ # define CGFloat float
42
+ # endif
43
+ # endif
44
+ # define CGSize struct {CGFloat width; CGFloat height;}
45
+ # endif
46
+ # ifndef CGCONTEXT_H_
47
+ # define CGContextRef void *
48
+ # endif
49
+ # ifndef CGCOLOR_H_
50
+ # define CGColorRef void *
51
+ # endif
52
+ # ifndef __HISHAPE__
53
+ # define HIShapeRef void *
54
+ # endif
55
+ # ifndef _APPKITDEFINES_H
56
+ # define NSView void *
57
+ # endif
58
+ #endif
59
+
60
+ struct TkWindowPrivate {
61
+ TkWindow *winPtr; /* Ptr to tk window or NULL if Pixmap */
62
+ NSView *view;
63
+ CGContextRef context;
64
+ int xOff; /* X offset from toplevel window */
65
+ int yOff; /* Y offset from toplevel window */
66
+ CGSize size;
67
+ HIShapeRef visRgn; /* Visible region of window */
68
+ HIShapeRef aboveVisRgn; /* Visible region of window & its children */
69
+ HIShapeRef drawRgn; /* Clipped drawing region */
70
+ int referenceCount; /* Don't delete toplevel until children are
71
+ * gone. */
72
+ struct TkWindowPrivate *toplevel;
73
+ /* Pointer to the toplevel datastruct. */
74
+ CGFloat fillRGBA[4]; /* Background used by the ttk FillElement */
75
+ int flags; /* Various state see defines below. */
76
+ };
77
+ typedef struct TkWindowPrivate MacDrawable;
78
+
79
+ /*
80
+ * Defines use for the flags field of the MacDrawable data structure.
81
+ */
82
+
83
+ #define TK_SCROLLBAR_GROW 0x01
84
+ #define TK_CLIP_INVALID 0x02
85
+ #define TK_HOST_EXISTS 0x04
86
+ #define TK_DRAWN_UNDER_MENU 0x08
87
+ #define TK_IS_PIXMAP 0x10
88
+ #define TK_IS_BW_PIXMAP 0x20
89
+ #define TK_DO_NOT_DRAW 0x40
90
+ #define TTK_HAS_CONTRASTING_BG 0x80
91
+
92
+ /*
93
+ * I am reserving TK_EMBEDDED = 0x100 in the MacDrawable flags
94
+ * This is defined in tk.h. We need to duplicate the TK_EMBEDDED flag in the
95
+ * TkWindow structure for the window, but in the MacWin. This way we can
96
+ * still tell what the correct port is after the TKWindow structure has been
97
+ * freed. This actually happens when you bind destroy of a toplevel to
98
+ * Destroy of a child.
99
+ */
100
+
101
+ /*
102
+ * This structure is for handling Netscape-type in process
103
+ * embedding where Tk does not control the top-level. It contains
104
+ * various functions that are needed by Mac specific routines, like
105
+ * TkMacOSXGetDrawablePort. The definitions of the function types
106
+ * are in tkMacOSX.h.
107
+ */
108
+
109
+ typedef struct {
110
+ Tk_MacOSXEmbedRegisterWinProc *registerWinProc;
111
+ Tk_MacOSXEmbedGetGrafPortProc *getPortProc;
112
+ Tk_MacOSXEmbedMakeContainerExistProc *containerExistProc;
113
+ Tk_MacOSXEmbedGetClipProc *getClipProc;
114
+ Tk_MacOSXEmbedGetOffsetInParentProc *getOffsetProc;
115
+ } TkMacOSXEmbedHandler;
116
+
117
+ MODULE_SCOPE TkMacOSXEmbedHandler *tkMacOSXEmbedHandler;
118
+
119
+ /*
120
+ * Undef compatibility platform types defined above.
121
+ */
122
+
123
+ #ifndef _TKMACPRIV
124
+ # ifndef CGGEOMETRY_H_
125
+ # ifndef CGFLOAT_DEFINED
126
+ # undef CGFloat
127
+ # endif
128
+ # undef CGSize
129
+ # endif
130
+ # ifndef CGCONTEXT_H_
131
+ # undef CGContextRef
132
+ # endif
133
+ # ifndef CGCOLOR_H_
134
+ # undef CGColorRef
135
+ # endif
136
+ # ifndef __HISHAPE__
137
+ # undef HIShapeRef
138
+ # endif
139
+ # ifndef _APPKITDEFINES_H
140
+ # undef NSView
141
+ # endif
142
+ #endif
143
+
144
+ /*
145
+ * Defines used for TkMacOSXInvalidateWindow
146
+ */
147
+
148
+ #define TK_WINDOW_ONLY 0
149
+ #define TK_PARENT_WINDOW 1
150
+
151
+ /*
152
+ * Accessor for the privatePtr flags field for the TK_HOST_EXISTS field
153
+ */
154
+
155
+ #define TkMacOSXHostToplevelExists(tkwin) \
156
+ (((TkWindow *) (tkwin))->privatePtr->toplevel->flags & TK_HOST_EXISTS)
157
+
158
+ /*
159
+ * Defines used for the flags argument to TkGenWMConfigureEvent.
160
+ */
161
+
162
+ #define TK_LOCATION_CHANGED 1
163
+ #define TK_SIZE_CHANGED 2
164
+ #define TK_BOTH_CHANGED 3
165
+ #define TK_MACOSX_HANDLE_EVENT_IMMEDIATELY 1024
166
+
167
+ /*
168
+ * Defines for tkTextDisp.c and tkFont.c
169
+ */
170
+
171
+ #define TK_LAYOUT_WITH_BASE_CHUNKS 1
172
+ #define TK_DRAW_IN_CONTEXT 1
173
+
174
+ /*
175
+ * Prototypes of internal procs not in the stubs table.
176
+ */
177
+
178
+ MODULE_SCOPE void TkMacOSXDefaultStartupScript(void);
179
+ MODULE_SCOPE void TkpClipDrawableToRect(Display *display, Drawable d, int x,
180
+ int y, int width, int height);
181
+ MODULE_SCOPE void TkpShiftButton(NSButton *button, NSPoint delta);
182
+ MODULE_SCOPE Bool TkTestLogDisplay(Drawable drawable);
183
+
184
+ /*
185
+ * Include the stubbed internal platform-specific API.
186
+ */
187
+
188
+ #include "tkIntPlatDecls.h"
189
+
190
+ #endif /* _TKMACINT */
191
+
192
+ /*
193
+ * Local Variables:
194
+ * mode: objc
195
+ * c-basic-offset: 4
196
+ * fill-column: 79
197
+ * coding: utf-8
198
+ * End:
199
+ */
my_container_sandbox/workspace/anaconda3/include/tkMacOSXKeysyms.h ADDED
@@ -0,0 +1,1308 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * tkMacOSXKeysyms.h --
3
+ *
4
+ * Contains data used for processing key events, some of which was
5
+ * moved from tkMacOSXKeyboard.c.
6
+ *
7
+ * Copyright (c) 1990-1994 The Regents of the University of California.
8
+ * Copyright (c) 1994-1997 Sun Microsystems, Inc.
9
+ * Copyright 2001-2009, Apple Inc.
10
+ * Copyright (c) 2006-2009 Daniel A. Steffen <das@users.sourceforge.net>
11
+ * Copyright (c) 2020 Marc Culler
12
+ *
13
+ * See the file "license.terms" for information on usage and redistribution
14
+ * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
15
+ */
16
+
17
+ #ifndef TKMACOSXKEYSYMS_H
18
+ #define TKMACOSXKEYSYMS_H 1
19
+
20
+ /*
21
+ * This table enumerates the keys on Mac keyboards which do not represent
22
+ * letters. This is static data -- these keys do not change when the keyboard
23
+ * layout changes. The unicode representation of a special key which is not a
24
+ * modifier and does not have an ASCII code point lies in the reserved range
25
+ * 0xF700 - 0xF8FF.
26
+ *
27
+ * The table includes every key listed in Apple's documentation of Function-Key
28
+ * Unicodes which is not marked as "Not on most Macintosh keyboards", as well
29
+ * as F20, which is reported to be usable in scripts even though it does not
30
+ * appear on any Macintosh keyboard.
31
+ */
32
+
33
+ typedef struct {
34
+ int virt; /* value of [NSEvent keyCode] */
35
+ KeySym keysym; /* X11 keysym */
36
+ KeyCode keychar; /* XEvent keycode & 0xFFFF */
37
+ } KeyInfo;
38
+
39
+ static const KeyInfo keyArray[] = {
40
+ {36, XK_Return, NSNewlineCharacter},
41
+ {48, XK_Tab, NSTabCharacter},
42
+ {51, XK_BackSpace, NSDeleteCharacter},
43
+ {52, XK_Return, NSNewlineCharacter}, /* Used on some Powerbooks */
44
+ {53, XK_Escape, 0x1B},
45
+ {54, XK_Meta_R, MOD_KEYCHAR},
46
+ {55, XK_Meta_L, MOD_KEYCHAR},
47
+ {56, XK_Shift_L, MOD_KEYCHAR},
48
+ {57, XK_Caps_Lock, MOD_KEYCHAR},
49
+ {58, XK_Alt_L, MOD_KEYCHAR},
50
+ {59, XK_Control_L, MOD_KEYCHAR},
51
+ {60, XK_Shift_R, MOD_KEYCHAR},
52
+ {61, XK_Alt_R, MOD_KEYCHAR},
53
+ {62, XK_Control_R, MOD_KEYCHAR},
54
+ {63, XK_Super_L, MOD_KEYCHAR},
55
+ {64, XK_F17, NSF17FunctionKey},
56
+ {65, XK_KP_Decimal, '.'},
57
+ {67, XK_KP_Multiply, '*'},
58
+ {69, XK_KP_Add, '+'},
59
+ {71, XK_Clear, NSClearLineFunctionKey}, /* Numlock on PC */
60
+ {75, XK_KP_Divide, '/'},
61
+ {76, XK_KP_Enter, NSEnterCharacter}, /* Fn Return */
62
+ {78, XK_KP_Subtract, '-'},
63
+ {79, XK_F18, NSF18FunctionKey},
64
+ {80, XK_F19, NSF19FunctionKey},
65
+ {81, XK_KP_Equal, '='},
66
+ {82, XK_KP_0, '0'},
67
+ {83, XK_KP_1, '1'},
68
+ {84, XK_KP_2, '2'},
69
+ {85, XK_KP_3, '3'},
70
+ {86, XK_KP_4, '4'},
71
+ {87, XK_KP_5, '5'},
72
+ {88, XK_KP_6, '6'},
73
+ {89, XK_KP_7, '7'},
74
+ {90, XK_F20, NSF20FunctionKey}, /* For scripting only */
75
+ {91, XK_KP_8, '8'},
76
+ {92, XK_KP_9, '9'},
77
+ {96, XK_F5, NSF5FunctionKey},
78
+ {97, XK_F6, NSF6FunctionKey},
79
+ {98, XK_F7, NSF7FunctionKey},
80
+ {99, XK_F3, NSF3FunctionKey},
81
+ {100, XK_F8, NSF8FunctionKey},
82
+ {101, XK_F9, NSF9FunctionKey},
83
+ {103, XK_F11, NSF11FunctionKey},
84
+ {105, XK_F13, NSF13FunctionKey},
85
+ {106, XK_F16, NSF16FunctionKey},
86
+ {107, XK_F14, NSF14FunctionKey},
87
+ {109, XK_F10, NSF10FunctionKey},
88
+ {110, XK_Menu, UNKNOWN_KEYCHAR},
89
+ {111, XK_F12, NSF12FunctionKey},
90
+ {113, XK_F15, NSF15FunctionKey},
91
+ {114, XK_Help, NSHelpFunctionKey},
92
+ {115, XK_Home, NSHomeFunctionKey}, /* Fn Left */
93
+ {116, XK_Page_Up, NSPageUpFunctionKey}, /* Fn Up */
94
+ {117, XK_Delete, NSDeleteFunctionKey}, /* Fn Delete */
95
+ {118, XK_F4, NSF4FunctionKey},
96
+ {119, XK_End, NSEndFunctionKey}, /* Fn Right */
97
+ {120, XK_F2, NSF2FunctionKey},
98
+ {121, XK_Page_Down, NSPageDownFunctionKey}, /* Fn Down */
99
+ {122, XK_F1, NSF1FunctionKey},
100
+ {123, XK_Left, NSLeftArrowFunctionKey},
101
+ {124, XK_Right, NSRightArrowFunctionKey},
102
+ {125, XK_Down, NSDownArrowFunctionKey},
103
+ {126, XK_Up, NSUpArrowFunctionKey},
104
+ {0, 0, 0}
105
+ };
106
+
107
+ /*
108
+ * X11 keysyms for modifier keys, in order. This list includes keys
109
+ * which do not appear on Apple keyboards, such as Shift_Lock and
110
+ * Super_R. While most systems don't provide events for the "fn"
111
+ * function key, Apple does. We map it to Super_L when processing a
112
+ * FlagsChanged NSEvent.
113
+ */
114
+
115
+ #define NUM_MOD_KEYCODES 14
116
+ static const KeyCode modKeyArray[NUM_MOD_KEYCODES] = {
117
+ XK_Shift_L,
118
+ XK_Shift_R,
119
+ XK_Control_L,
120
+ XK_Control_R,
121
+ XK_Caps_Lock,
122
+ XK_Shift_Lock,
123
+ XK_Meta_L,
124
+ XK_Meta_R,
125
+ XK_Alt_L,
126
+ XK_Alt_R,
127
+ XK_Super_L,
128
+ XK_Super_R,
129
+ XK_Hyper_L,
130
+ XK_Hyper_R,
131
+ };
132
+
133
+ /*
134
+ * This table pairs X11 Keysyms for alphanumeric characters with the
135
+ * unicode code point for that letter.
136
+ * The data comes from http://www.cl.cam.ac.uk/~mgk25/ucs/keysyms.txt
137
+ */
138
+
139
+ typedef struct KeysymInfo {
140
+ KeySym keysym;
141
+ KeyCode keycode;
142
+ } KeysymInfo;
143
+
144
+ const KeysymInfo keysymTable[] = {
145
+ {0x0020, 0x0020}, /* space */
146
+ {0x0021, 0x0021}, /* exclam */
147
+ {0x0022, 0x0022}, /* quotedbl */
148
+ {0x0023, 0x0023}, /* numbersign */
149
+ {0x0024, 0x0024}, /* dollar */
150
+ {0x0025, 0x0025}, /* percent */
151
+ {0x0026, 0x0026}, /* ampersand */
152
+ {0x0027, 0x0027}, /* apostrophe */
153
+ {0x0028, 0x0028}, /* parenleft */
154
+ {0x0029, 0x0029}, /* parenright */
155
+ {0x002a, 0x002a}, /* asterisk */
156
+ {0x002b, 0x002b}, /* plus */
157
+ {0x002c, 0x002c}, /* comma */
158
+ {0x002d, 0x002d}, /* minus */
159
+ {0x002e, 0x002e}, /* period */
160
+ {0x002f, 0x002f}, /* slash */
161
+ {0x0030, 0x0030}, /* 0 */
162
+ {0x0031, 0x0031}, /* 1 */
163
+ {0x0032, 0x0032}, /* 2 */
164
+ {0x0033, 0x0033}, /* 3 */
165
+ {0x0034, 0x0034}, /* 4 */
166
+ {0x0035, 0x0035}, /* 5 */
167
+ {0x0036, 0x0036}, /* 6 */
168
+ {0x0037, 0x0037}, /* 7 */
169
+ {0x0038, 0x0038}, /* 8 */
170
+ {0x0039, 0x0039}, /* 9 */
171
+ {0x003a, 0x003a}, /* colon */
172
+ {0x003b, 0x003b}, /* semicolon */
173
+ {0x003c, 0x003c}, /* less */
174
+ {0x003d, 0x003d}, /* equal */
175
+ {0x003e, 0x003e}, /* greater */
176
+ {0x003f, 0x003f}, /* question */
177
+ {0x0040, 0x0040}, /* at */
178
+ {0x0041, 0x0041}, /* A */
179
+ {0x0042, 0x0042}, /* B */
180
+ {0x0043, 0x0043}, /* C */
181
+ {0x0044, 0x0044}, /* D */
182
+ {0x0045, 0x0045}, /* E */
183
+ {0x0046, 0x0046}, /* F */
184
+ {0x0047, 0x0047}, /* G */
185
+ {0x0048, 0x0048}, /* H */
186
+ {0x0049, 0x0049}, /* I */
187
+ {0x004a, 0x004a}, /* J */
188
+ {0x004b, 0x004b}, /* K */
189
+ {0x004c, 0x004c}, /* L */
190
+ {0x004d, 0x004d}, /* M */
191
+ {0x004e, 0x004e}, /* N */
192
+ {0x004f, 0x004f}, /* O */
193
+ {0x0050, 0x0050}, /* P */
194
+ {0x0051, 0x0051}, /* Q */
195
+ {0x0052, 0x0052}, /* R */
196
+ {0x0053, 0x0053}, /* S */
197
+ {0x0054, 0x0054}, /* T */
198
+ {0x0055, 0x0055}, /* U */
199
+ {0x0056, 0x0056}, /* V */
200
+ {0x0057, 0x0057}, /* W */
201
+ {0x0058, 0x0058}, /* X */
202
+ {0x0059, 0x0059}, /* Y */
203
+ {0x005a, 0x005a}, /* Z */
204
+ {0x005b, 0x005b}, /* bracketleft */
205
+ {0x005c, 0x005c}, /* backslash */
206
+ {0x005d, 0x005d}, /* bracketright */
207
+ {0x005e, 0x005e}, /* asciicircum */
208
+ {0x005f, 0x005f}, /* underscore */
209
+ {0x0060, 0x0060}, /* grave */
210
+ {0x0061, 0x0061}, /* a */
211
+ {0x0062, 0x0062}, /* b */
212
+ {0x0063, 0x0063}, /* c */
213
+ {0x0064, 0x0064}, /* d */
214
+ {0x0065, 0x0065}, /* e */
215
+ {0x0066, 0x0066}, /* f */
216
+ {0x0067, 0x0067}, /* g */
217
+ {0x0068, 0x0068}, /* h */
218
+ {0x0069, 0x0069}, /* i */
219
+ {0x006a, 0x006a}, /* j */
220
+ {0x006b, 0x006b}, /* k */
221
+ {0x006c, 0x006c}, /* l */
222
+ {0x006d, 0x006d}, /* m */
223
+ {0x006e, 0x006e}, /* n */
224
+ {0x006f, 0x006f}, /* o */
225
+ {0x0070, 0x0070}, /* p */
226
+ {0x0071, 0x0071}, /* q */
227
+ {0x0072, 0x0072}, /* r */
228
+ {0x0073, 0x0073}, /* s */
229
+ {0x0074, 0x0074}, /* t */
230
+ {0x0075, 0x0075}, /* u */
231
+ {0x0076, 0x0076}, /* v */
232
+ {0x0077, 0x0077}, /* w */
233
+ {0x0078, 0x0078}, /* x */
234
+ {0x0079, 0x0079}, /* y */
235
+ {0x007a, 0x007a}, /* z */
236
+ {0x007b, 0x007b}, /* braceleft */
237
+ {0x007c, 0x007c}, /* bar */
238
+ {0x007d, 0x007d}, /* braceright */
239
+ {0x007e, 0x007e}, /* asciitilde */
240
+ {0x00a0, 0x00a0}, /* nobreakspace */
241
+ {0x00a1, 0x00a1}, /* exclamdown */
242
+ {0x00a2, 0x00a2}, /* cent */
243
+ {0x00a3, 0x00a3}, /* sterling */
244
+ {0x00a4, 0x00a4}, /* currency */
245
+ {0x00a5, 0x00a5}, /* yen */
246
+ {0x00a6, 0x00a6}, /* brokenbar */
247
+ {0x00a7, 0x00a7}, /* section */
248
+ {0x00a8, 0x00a8}, /* diaeresis */
249
+ {0x00a9, 0x00a9}, /* copyright */
250
+ {0x00aa, 0x00aa}, /* ordfeminine */
251
+ {0x00ab, 0x00ab}, /* guillemotleft */
252
+ {0x00ac, 0x00ac}, /* notsign */
253
+ {0x00ad, 0x00ad}, /* hyphen */
254
+ {0x00ae, 0x00ae}, /* registered */
255
+ {0x00af, 0x00af}, /* macron */
256
+ {0x00b0, 0x00b0}, /* degree */
257
+ {0x00b1, 0x00b1}, /* plusminus */
258
+ {0x00b2, 0x00b2}, /* twosuperior */
259
+ {0x00b3, 0x00b3}, /* threesuperior */
260
+ {0x00b4, 0x00b4}, /* acute */
261
+ {0x00b5, 0x00b5}, /* mu */
262
+ {0x00b6, 0x00b6}, /* paragraph */
263
+ {0x00b7, 0x00b7}, /* periodcentered */
264
+ {0x00b8, 0x00b8}, /* cedilla */
265
+ {0x00b9, 0x00b9}, /* onesuperior */
266
+ {0x00ba, 0x00ba}, /* masculine */
267
+ {0x00bb, 0x00bb}, /* guillemotright */
268
+ {0x00bc, 0x00bc}, /* onequarter */
269
+ {0x00bd, 0x00bd}, /* onehalf */
270
+ {0x00be, 0x00be}, /* threequarters */
271
+ {0x00bf, 0x00bf}, /* questiondown */
272
+ {0x00c0, 0x00c0}, /* Agrave */
273
+ {0x00c1, 0x00c1}, /* Aacute */
274
+ {0x00c2, 0x00c2}, /* Acircumflex */
275
+ {0x00c3, 0x00c3}, /* Atilde */
276
+ {0x00c4, 0x00c4}, /* Adiaeresis */
277
+ {0x00c5, 0x00c5}, /* Aring */
278
+ {0x00c6, 0x00c6}, /* AE */
279
+ {0x00c7, 0x00c7}, /* Ccedilla */
280
+ {0x00c8, 0x00c8}, /* Egrave */
281
+ {0x00c9, 0x00c9}, /* Eacute */
282
+ {0x00ca, 0x00ca}, /* Ecircumflex */
283
+ {0x00cb, 0x00cb}, /* Ediaeresis */
284
+ {0x00cc, 0x00cc}, /* Igrave */
285
+ {0x00cd, 0x00cd}, /* Iacute */
286
+ {0x00ce, 0x00ce}, /* Icircumflex */
287
+ {0x00cf, 0x00cf}, /* Idiaeresis */
288
+ {0x00d0, 0x00d0}, /* ETH */
289
+ {0x00d1, 0x00d1}, /* Ntilde */
290
+ {0x00d2, 0x00d2}, /* Ograve */
291
+ {0x00d3, 0x00d3}, /* Oacute */
292
+ {0x00d4, 0x00d4}, /* Ocircumflex */
293
+ {0x00d5, 0x00d5}, /* Otilde */
294
+ {0x00d6, 0x00d6}, /* Odiaeresis */
295
+ {0x00d7, 0x00d7}, /* multiply */
296
+ {0x00d8, 0x00d8}, /* Oslash */
297
+ {0x00d9, 0x00d9}, /* Ugrave */
298
+ {0x00da, 0x00da}, /* Uacute */
299
+ {0x00db, 0x00db}, /* Ucircumflex */
300
+ {0x00dc, 0x00dc}, /* Udiaeresis */
301
+ {0x00dd, 0x00dd}, /* Yacute */
302
+ {0x00de, 0x00de}, /* THORN */
303
+ {0x00df, 0x00df}, /* ssharp */
304
+ {0x00e0, 0x00e0}, /* agrave */
305
+ {0x00e1, 0x00e1}, /* aacute */
306
+ {0x00e2, 0x00e2}, /* acircumflex */
307
+ {0x00e3, 0x00e3}, /* atilde */
308
+ {0x00e4, 0x00e4}, /* adiaeresis */
309
+ {0x00e5, 0x00e5}, /* aring */
310
+ {0x00e6, 0x00e6}, /* ae */
311
+ {0x00e7, 0x00e7}, /* ccedilla */
312
+ {0x00e8, 0x00e8}, /* egrave */
313
+ {0x00e9, 0x00e9}, /* eacute */
314
+ {0x00ea, 0x00ea}, /* ecircumflex */
315
+ {0x00eb, 0x00eb}, /* ediaeresis */
316
+ {0x00ec, 0x00ec}, /* igrave */
317
+ {0x00ed, 0x00ed}, /* iacute */
318
+ {0x00ee, 0x00ee}, /* icircumflex */
319
+ {0x00ef, 0x00ef}, /* idiaeresis */
320
+ {0x00f0, 0x00f0}, /* eth */
321
+ {0x00f1, 0x00f1}, /* ntilde */
322
+ {0x00f2, 0x00f2}, /* ograve */
323
+ {0x00f3, 0x00f3}, /* oacute */
324
+ {0x00f4, 0x00f4}, /* ocircumflex */
325
+ {0x00f5, 0x00f5}, /* otilde */
326
+ {0x00f6, 0x00f6}, /* odiaeresis */
327
+ {0x00f7, 0x00f7}, /* division */
328
+ {0x00f8, 0x00f8}, /* oslash */
329
+ {0x00f9, 0x00f9}, /* ugrave */
330
+ {0x00fa, 0x00fa}, /* uacute */
331
+ {0x00fb, 0x00fb}, /* ucircumflex */
332
+ {0x00fc, 0x00fc}, /* udiaeresis */
333
+ {0x00fd, 0x00fd}, /* yacute */
334
+ {0x00fe, 0x00fe}, /* thorn */
335
+ {0x00ff, 0x00ff}, /* ydiaeresis */
336
+ {0x01a1, 0x0104}, /* Aogonek */
337
+ {0x01a2, 0x02d8}, /* breve */
338
+ {0x01a3, 0x0141}, /* Lstroke */
339
+ {0x01a5, 0x013d}, /* Lcaron */
340
+ {0x01a6, 0x015a}, /* Sacute */
341
+ {0x01a9, 0x0160}, /* Scaron */
342
+ {0x01aa, 0x015e}, /* Scedilla */
343
+ {0x01ab, 0x0164}, /* Tcaron */
344
+ {0x01ac, 0x0179}, /* Zacute */
345
+ {0x01ae, 0x017d}, /* Zcaron */
346
+ {0x01af, 0x017b}, /* Zabovedot */
347
+ {0x01b1, 0x0105}, /* aogonek */
348
+ {0x01b2, 0x02db}, /* ogonek */
349
+ {0x01b3, 0x0142}, /* lstroke */
350
+ {0x01b5, 0x013e}, /* lcaron */
351
+ {0x01b6, 0x015b}, /* sacute */
352
+ {0x01b7, 0x02c7}, /* caron */
353
+ {0x01b9, 0x0161}, /* scaron */
354
+ {0x01ba, 0x015f}, /* scedilla */
355
+ {0x01bb, 0x0165}, /* tcaron */
356
+ {0x01bc, 0x017a}, /* zacute */
357
+ {0x01bd, 0x02dd}, /* doubleacute */
358
+ {0x01be, 0x017e}, /* zcaron */
359
+ {0x01bf, 0x017c}, /* zabovedot */
360
+ {0x01c0, 0x0154}, /* Racute */
361
+ {0x01c3, 0x0102}, /* Abreve */
362
+ {0x01c5, 0x0139}, /* Lacute */
363
+ {0x01c6, 0x0106}, /* Cacute */
364
+ {0x01c8, 0x010c}, /* Ccaron */
365
+ {0x01ca, 0x0118}, /* Eogonek */
366
+ {0x01cc, 0x011a}, /* Ecaron */
367
+ {0x01cf, 0x010e}, /* Dcaron */
368
+ {0x01d0, 0x0110}, /* Dstroke */
369
+ {0x01d1, 0x0143}, /* Nacute */
370
+ {0x01d2, 0x0147}, /* Ncaron */
371
+ {0x01d5, 0x0150}, /* Odoubleacute */
372
+ {0x01d8, 0x0158}, /* Rcaron */
373
+ {0x01d9, 0x016e}, /* Uring */
374
+ {0x01db, 0x0170}, /* Udoubleacute */
375
+ {0x01de, 0x0162}, /* Tcedilla */
376
+ {0x01e0, 0x0155}, /* racute */
377
+ {0x01e3, 0x0103}, /* abreve */
378
+ {0x01e5, 0x013a}, /* lacute */
379
+ {0x01e6, 0x0107}, /* cacute */
380
+ {0x01e8, 0x010d}, /* ccaron */
381
+ {0x01ea, 0x0119}, /* eogonek */
382
+ {0x01ec, 0x011b}, /* ecaron */
383
+ {0x01ef, 0x010f}, /* dcaron */
384
+ {0x01f0, 0x0111}, /* dstroke */
385
+ {0x01f1, 0x0144}, /* nacute */
386
+ {0x01f2, 0x0148}, /* ncaron */
387
+ {0x01f5, 0x0151}, /* odoubleacute */
388
+ {0x01f8, 0x0159}, /* rcaron */
389
+ {0x01f9, 0x016f}, /* uring */
390
+ {0x01fb, 0x0171}, /* udoubleacute */
391
+ {0x01fe, 0x0163}, /* tcedilla */
392
+ {0x01ff, 0x02d9}, /* abovedot */
393
+ {0x02a1, 0x0126}, /* Hstroke */
394
+ {0x02a6, 0x0124}, /* Hcircumflex */
395
+ {0x02a9, 0x0130}, /* Iabovedot */
396
+ {0x02ab, 0x011e}, /* Gbreve */
397
+ {0x02ac, 0x0134}, /* Jcircumflex */
398
+ {0x02b1, 0x0127}, /* hstroke */
399
+ {0x02b6, 0x0125}, /* hcircumflex */
400
+ {0x02b9, 0x0131}, /* idotless */
401
+ {0x02bb, 0x011f}, /* gbreve */
402
+ {0x02bc, 0x0135}, /* jcircumflex */
403
+ {0x02c5, 0x010a}, /* Cabovedot */
404
+ {0x02c6, 0x0108}, /* Ccircumflex */
405
+ {0x02d5, 0x0120}, /* Gabovedot */
406
+ {0x02d8, 0x011c}, /* Gcircumflex */
407
+ {0x02dd, 0x016c}, /* Ubreve */
408
+ {0x02de, 0x015c}, /* Scircumflex */
409
+ {0x02e5, 0x010b}, /* cabovedot */
410
+ {0x02e6, 0x0109}, /* ccircumflex */
411
+ {0x02f5, 0x0121}, /* gabovedot */
412
+ {0x02f8, 0x011d}, /* gcircumflex */
413
+ {0x02fd, 0x016d}, /* ubreve */
414
+ {0x02fe, 0x015d}, /* scircumflex */
415
+ {0x03a2, 0x0138}, /* kra */
416
+ {0x03a3, 0x0156}, /* Rcedilla */
417
+ {0x03a5, 0x0128}, /* Itilde */
418
+ {0x03a6, 0x013b}, /* Lcedilla */
419
+ {0x03aa, 0x0112}, /* Emacron */
420
+ {0x03ab, 0x0122}, /* Gcedilla */
421
+ {0x03ac, 0x0166}, /* Tslash */
422
+ {0x03b3, 0x0157}, /* rcedilla */
423
+ {0x03b5, 0x0129}, /* itilde */
424
+ {0x03b6, 0x013c}, /* lcedilla */
425
+ {0x03ba, 0x0113}, /* emacron */
426
+ {0x03bb, 0x0123}, /* gcedilla */
427
+ {0x03bc, 0x0167}, /* tslash */
428
+ {0x03bd, 0x014a}, /* ENG */
429
+ {0x03bf, 0x014b}, /* eng */
430
+ {0x03c0, 0x0100}, /* Amacron */
431
+ {0x03c7, 0x012e}, /* Iogonek */
432
+ {0x03cc, 0x0116}, /* Eabovedot */
433
+ {0x03cf, 0x012a}, /* Imacron */
434
+ {0x03d1, 0x0145}, /* Ncedilla */
435
+ {0x03d2, 0x014c}, /* Omacron */
436
+ {0x03d3, 0x0136}, /* Kcedilla */
437
+ {0x03d9, 0x0172}, /* Uogonek */
438
+ {0x03dd, 0x0168}, /* Utilde */
439
+ {0x03de, 0x016a}, /* Umacron */
440
+ {0x03e0, 0x0101}, /* amacron */
441
+ {0x03e7, 0x012f}, /* iogonek */
442
+ {0x03ec, 0x0117}, /* eabovedot */
443
+ {0x03ef, 0x012b}, /* imacron */
444
+ {0x03f1, 0x0146}, /* ncedilla */
445
+ {0x03f2, 0x014d}, /* omacron */
446
+ {0x03f3, 0x0137}, /* kcedilla */
447
+ {0x03f9, 0x0173}, /* uogonek */
448
+ {0x03fd, 0x0169}, /* utilde */
449
+ {0x03fe, 0x016b}, /* umacron */
450
+ {0x047e, 0x203e}, /* overline */
451
+ {0x04a1, 0x3002}, /* kana_fullstop */
452
+ {0x04a2, 0x300c}, /* kana_openingbracket */
453
+ {0x04a3, 0x300d}, /* kana_closingbracket */
454
+ {0x04a4, 0x3001}, /* kana_comma */
455
+ {0x04a5, 0x30fb}, /* kana_conjunctive */
456
+ {0x04a6, 0x30f2}, /* kana_WO */
457
+ {0x04a7, 0x30a1}, /* kana_a */
458
+ {0x04a8, 0x30a3}, /* kana_i */
459
+ {0x04a9, 0x30a5}, /* kana_u */
460
+ {0x04aa, 0x30a7}, /* kana_e */
461
+ {0x04ab, 0x30a9}, /* kana_o */
462
+ {0x04ac, 0x30e3}, /* kana_ya */
463
+ {0x04ad, 0x30e5}, /* kana_yu */
464
+ {0x04ae, 0x30e7}, /* kana_yo */
465
+ {0x04af, 0x30c3}, /* kana_tsu */
466
+ {0x04b0, 0x30fc}, /* prolongedsound */
467
+ {0x04b1, 0x30a2}, /* kana_A */
468
+ {0x04b2, 0x30a4}, /* kana_I */
469
+ {0x04b3, 0x30a6}, /* kana_U */
470
+ {0x04b4, 0x30a8}, /* kana_E */
471
+ {0x04b5, 0x30aa}, /* kana_O */
472
+ {0x04b6, 0x30ab}, /* kana_KA */
473
+ {0x04b7, 0x30ad}, /* kana_KI */
474
+ {0x04b8, 0x30af}, /* kana_KU */
475
+ {0x04b9, 0x30b1}, /* kana_KE */
476
+ {0x04ba, 0x30b3}, /* kana_KO */
477
+ {0x04bb, 0x30b5}, /* kana_SA */
478
+ {0x04bc, 0x30b7}, /* kana_SHI */
479
+ {0x04bd, 0x30b9}, /* kana_SU */
480
+ {0x04be, 0x30bb}, /* kana_SE */
481
+ {0x04bf, 0x30bd}, /* kana_SO */
482
+ {0x04c0, 0x30bf}, /* kana_TA */
483
+ {0x04c1, 0x30c1}, /* kana_CHI */
484
+ {0x04c2, 0x30c4}, /* kana_TSU */
485
+ {0x04c3, 0x30c6}, /* kana_TE */
486
+ {0x04c4, 0x30c8}, /* kana_TO */
487
+ {0x04c5, 0x30ca}, /* kana_NA */
488
+ {0x04c6, 0x30cb}, /* kana_NI */
489
+ {0x04c7, 0x30cc}, /* kana_NU */
490
+ {0x04c8, 0x30cd}, /* kana_NE */
491
+ {0x04c9, 0x30ce}, /* kana_NO */
492
+ {0x04ca, 0x30cf}, /* kana_HA */
493
+ {0x04cb, 0x30d2}, /* kana_HI */
494
+ {0x04cc, 0x30d5}, /* kana_FU */
495
+ {0x04cd, 0x30d8}, /* kana_HE */
496
+ {0x04ce, 0x30db}, /* kana_HO */
497
+ {0x04cf, 0x30de}, /* kana_MA */
498
+ {0x04d0, 0x30df}, /* kana_MI */
499
+ {0x04d1, 0x30e0}, /* kana_MU */
500
+ {0x04d2, 0x30e1}, /* kana_ME */
501
+ {0x04d3, 0x30e2}, /* kana_MO */
502
+ {0x04d4, 0x30e4}, /* kana_YA */
503
+ {0x04d5, 0x30e6}, /* kana_YU */
504
+ {0x04d6, 0x30e8}, /* kana_YO */
505
+ {0x04d7, 0x30e9}, /* kana_RA */
506
+ {0x04d8, 0x30ea}, /* kana_RI */
507
+ {0x04d9, 0x30eb}, /* kana_RU */
508
+ {0x04da, 0x30ec}, /* kana_RE */
509
+ {0x04db, 0x30ed}, /* kana_RO */
510
+ {0x04dc, 0x30ef}, /* kana_WA */
511
+ {0x04dd, 0x30f3}, /* kana_N */
512
+ {0x04de, 0x309b}, /* voicedsound */
513
+ {0x04df, 0x309c}, /* semivoicedsound */
514
+ {0x05ac, 0x060c}, /* Arabic_comma */
515
+ {0x05bb, 0x061b}, /* Arabic_semicolon */
516
+ {0x05bf, 0x061f}, /* Arabic_question_mark */
517
+ {0x05c1, 0x0621}, /* Arabic_hamza */
518
+ {0x05c2, 0x0622}, /* Arabic_maddaonalef */
519
+ {0x05c3, 0x0623}, /* Arabic_hamzaonalef */
520
+ {0x05c4, 0x0624}, /* Arabic_hamzaonwaw */
521
+ {0x05c5, 0x0625}, /* Arabic_hamzaunderalef */
522
+ {0x05c6, 0x0626}, /* Arabic_hamzaonyeh */
523
+ {0x05c7, 0x0627}, /* Arabic_alef */
524
+ {0x05c8, 0x0628}, /* Arabic_beh */
525
+ {0x05c9, 0x0629}, /* Arabic_tehmarbuta */
526
+ {0x05ca, 0x062a}, /* Arabic_teh */
527
+ {0x05cb, 0x062b}, /* Arabic_theh */
528
+ {0x05cc, 0x062c}, /* Arabic_jeem */
529
+ {0x05cd, 0x062d}, /* Arabic_hah */
530
+ {0x05ce, 0x062e}, /* Arabic_khah */
531
+ {0x05cf, 0x062f}, /* Arabic_dal */
532
+ {0x05d0, 0x0630}, /* Arabic_thal */
533
+ {0x05d1, 0x0631}, /* Arabic_ra */
534
+ {0x05d2, 0x0632}, /* Arabic_zain */
535
+ {0x05d3, 0x0633}, /* Arabic_seen */
536
+ {0x05d4, 0x0634}, /* Arabic_sheen */
537
+ {0x05d5, 0x0635}, /* Arabic_sad */
538
+ {0x05d6, 0x0636}, /* Arabic_dad */
539
+ {0x05d7, 0x0637}, /* Arabic_tah */
540
+ {0x05d8, 0x0638}, /* Arabic_zah */
541
+ {0x05d9, 0x0639}, /* Arabic_ain */
542
+ {0x05da, 0x063a}, /* Arabic_ghain */
543
+ {0x05e0, 0x0640}, /* Arabic_tatweel */
544
+ {0x05e1, 0x0641}, /* Arabic_feh */
545
+ {0x05e2, 0x0642}, /* Arabic_qaf */
546
+ {0x05e3, 0x0643}, /* Arabic_kaf */
547
+ {0x05e4, 0x0644}, /* Arabic_lam */
548
+ {0x05e5, 0x0645}, /* Arabic_meem */
549
+ {0x05e6, 0x0646}, /* Arabic_noon */
550
+ {0x05e7, 0x0647}, /* Arabic_ha */
551
+ {0x05e8, 0x0648}, /* Arabic_waw */
552
+ {0x05e9, 0x0649}, /* Arabic_alefmaksura */
553
+ {0x05ea, 0x064a}, /* Arabic_yeh */
554
+ {0x05eb, 0x064b}, /* Arabic_fathatan */
555
+ {0x05ec, 0x064c}, /* Arabic_dammatan */
556
+ {0x05ed, 0x064d}, /* Arabic_kasratan */
557
+ {0x05ee, 0x064e}, /* Arabic_fatha */
558
+ {0x05ef, 0x064f}, /* Arabic_damma */
559
+ {0x05f0, 0x0650}, /* Arabic_kasra */
560
+ {0x05f1, 0x0651}, /* Arabic_shadda */
561
+ {0x05f2, 0x0652}, /* Arabic_sukun */
562
+ {0x06a1, 0x0452}, /* Serbian_dje */
563
+ {0x06a2, 0x0453}, /* Macedonia_gje */
564
+ {0x06a3, 0x0451}, /* Cyrillic_io */
565
+ {0x06a4, 0x0454}, /* Ukrainian_ie */
566
+ {0x06a5, 0x0455}, /* Macedonia_dse */
567
+ {0x06a6, 0x0456}, /* Ukrainian_i */
568
+ {0x06a7, 0x0457}, /* Ukrainian_yi */
569
+ {0x06a8, 0x0458}, /* Cyrillic_je */
570
+ {0x06a9, 0x0459}, /* Cyrillic_lje */
571
+ {0x06aa, 0x045a}, /* Cyrillic_nje */
572
+ {0x06ab, 0x045b}, /* Serbian_tshe */
573
+ {0x06ac, 0x045c}, /* Macedonia_kje */
574
+ {0x06ae, 0x045e}, /* Byelorussian_shortu */
575
+ {0x06af, 0x045f}, /* Cyrillic_dzhe */
576
+ {0x06b0, 0x2116}, /* numerosign */
577
+ {0x06b1, 0x0402}, /* Serbian_DJE */
578
+ {0x06b2, 0x0403}, /* Macedonia_GJE */
579
+ {0x06b3, 0x0401}, /* Cyrillic_IO */
580
+ {0x06b4, 0x0404}, /* Ukrainian_IE */
581
+ {0x06b5, 0x0405}, /* Macedonia_DSE */
582
+ {0x06b6, 0x0406}, /* Ukrainian_I */
583
+ {0x06b7, 0x0407}, /* Ukrainian_YI */
584
+ {0x06b8, 0x0408}, /* Cyrillic_JE */
585
+ {0x06b9, 0x0409}, /* Cyrillic_LJE */
586
+ {0x06ba, 0x040a}, /* Cyrillic_NJE */
587
+ {0x06bb, 0x040b}, /* Serbian_TSHE */
588
+ {0x06bc, 0x040c}, /* Macedonia_KJE */
589
+ {0x06be, 0x040e}, /* Byelorussian_SHORTU */
590
+ {0x06bf, 0x040f}, /* Cyrillic_DZHE */
591
+ {0x06c0, 0x044e}, /* Cyrillic_yu */
592
+ {0x06c1, 0x0430}, /* Cyrillic_a */
593
+ {0x06c2, 0x0431}, /* Cyrillic_be */
594
+ {0x06c3, 0x0446}, /* Cyrillic_tse */
595
+ {0x06c4, 0x0434}, /* Cyrillic_de */
596
+ {0x06c5, 0x0435}, /* Cyrillic_ie */
597
+ {0x06c6, 0x0444}, /* Cyrillic_ef */
598
+ {0x06c7, 0x0433}, /* Cyrillic_ghe */
599
+ {0x06c8, 0x0445}, /* Cyrillic_ha */
600
+ {0x06c9, 0x0438}, /* Cyrillic_i */
601
+ {0x06ca, 0x0439}, /* Cyrillic_shorti */
602
+ {0x06cb, 0x043a}, /* Cyrillic_ka */
603
+ {0x06cc, 0x043b}, /* Cyrillic_el */
604
+ {0x06cd, 0x043c}, /* Cyrillic_em */
605
+ {0x06ce, 0x043d}, /* Cyrillic_en */
606
+ {0x06cf, 0x043e}, /* Cyrillic_o */
607
+ {0x06d0, 0x043f}, /* Cyrillic_pe */
608
+ {0x06d1, 0x044f}, /* Cyrillic_ya */
609
+ {0x06d2, 0x0440}, /* Cyrillic_er */
610
+ {0x06d3, 0x0441}, /* Cyrillic_es */
611
+ {0x06d4, 0x0442}, /* Cyrillic_te */
612
+ {0x06d5, 0x0443}, /* Cyrillic_u */
613
+ {0x06d6, 0x0436}, /* Cyrillic_zhe */
614
+ {0x06d7, 0x0432}, /* Cyrillic_ve */
615
+ {0x06d8, 0x044c}, /* Cyrillic_softsign */
616
+ {0x06d9, 0x044b}, /* Cyrillic_yeru */
617
+ {0x06da, 0x0437}, /* Cyrillic_ze */
618
+ {0x06db, 0x0448}, /* Cyrillic_sha */
619
+ {0x06dc, 0x044d}, /* Cyrillic_e */
620
+ {0x06dd, 0x0449}, /* Cyrillic_shcha */
621
+ {0x06de, 0x0447}, /* Cyrillic_che */
622
+ {0x06df, 0x044a}, /* Cyrillic_hardsign */
623
+ {0x06e0, 0x042e}, /* Cyrillic_YU */
624
+ {0x06e1, 0x0410}, /* Cyrillic_A */
625
+ {0x06e2, 0x0411}, /* Cyrillic_BE */
626
+ {0x06e3, 0x0426}, /* Cyrillic_TSE */
627
+ {0x06e4, 0x0414}, /* Cyrillic_DE */
628
+ {0x06e5, 0x0415}, /* Cyrillic_IE */
629
+ {0x06e6, 0x0424}, /* Cyrillic_EF */
630
+ {0x06e7, 0x0413}, /* Cyrillic_GHE */
631
+ {0x06e8, 0x0425}, /* Cyrillic_HA */
632
+ {0x06e9, 0x0418}, /* Cyrillic_I */
633
+ {0x06ea, 0x0419}, /* Cyrillic_SHORTI */
634
+ {0x06eb, 0x041a}, /* Cyrillic_KA */
635
+ {0x06ec, 0x041b}, /* Cyrillic_EL */
636
+ {0x06ed, 0x041c}, /* Cyrillic_EM */
637
+ {0x06ee, 0x041d}, /* Cyrillic_EN */
638
+ {0x06ef, 0x041e}, /* Cyrillic_O */
639
+ {0x06f0, 0x041f}, /* Cyrillic_PE */
640
+ {0x06f1, 0x042f}, /* Cyrillic_YA */
641
+ {0x06f2, 0x0420}, /* Cyrillic_ER */
642
+ {0x06f3, 0x0421}, /* Cyrillic_ES */
643
+ {0x06f4, 0x0422}, /* Cyrillic_TE */
644
+ {0x06f5, 0x0423}, /* Cyrillic_U */
645
+ {0x06f6, 0x0416}, /* Cyrillic_ZHE */
646
+ {0x06f7, 0x0412}, /* Cyrillic_VE */
647
+ {0x06f8, 0x042c}, /* Cyrillic_SOFTSIGN */
648
+ {0x06f9, 0x042b}, /* Cyrillic_YERU */
649
+ {0x06fa, 0x0417}, /* Cyrillic_ZE */
650
+ {0x06fb, 0x0428}, /* Cyrillic_SHA */
651
+ {0x06fc, 0x042d}, /* Cyrillic_E */
652
+ {0x06fd, 0x0429}, /* Cyrillic_SHCHA */
653
+ {0x06fe, 0x0427}, /* Cyrillic_CHE */
654
+ {0x06ff, 0x042a}, /* Cyrillic_HARDSIGN */
655
+ {0x07a1, 0x0386}, /* Greek_ALPHAaccent */
656
+ {0x07a2, 0x0388}, /* Greek_EPSILONaccent */
657
+ {0x07a3, 0x0389}, /* Greek_ETAaccent */
658
+ {0x07a4, 0x038a}, /* Greek_IOTAaccent */
659
+ {0x07a5, 0x03aa}, /* Greek_IOTAdiaeresis */
660
+ {0x07a7, 0x038c}, /* Greek_OMICRONaccent */
661
+ {0x07a8, 0x038e}, /* Greek_UPSILONaccent */
662
+ {0x07a9, 0x03ab}, /* Greek_UPSILONdieresis */
663
+ {0x07ab, 0x038f}, /* Greek_OMEGAaccent */
664
+ {0x07ae, 0x0385}, /* Greek_accentdieresis */
665
+ {0x07af, 0x2015}, /* Greek_horizbar */
666
+ {0x07b1, 0x03ac}, /* Greek_alphaaccent */
667
+ {0x07b2, 0x03ad}, /* Greek_epsilonaccent */
668
+ {0x07b3, 0x03ae}, /* Greek_etaaccent */
669
+ {0x07b4, 0x03af}, /* Greek_iotaaccent */
670
+ {0x07b5, 0x03ca}, /* Greek_iotadieresis */
671
+ {0x07b6, 0x0390}, /* Greek_iotaaccentdieresis */
672
+ {0x07b7, 0x03cc}, /* Greek_omicronaccent */
673
+ {0x07b8, 0x03cd}, /* Greek_upsilonaccent */
674
+ {0x07b9, 0x03cb}, /* Greek_upsilondieresis */
675
+ {0x07ba, 0x03b0}, /* Greek_upsilonaccentdieresis */
676
+ {0x07bb, 0x03ce}, /* Greek_omegaaccent */
677
+ {0x07c1, 0x0391}, /* Greek_ALPHA */
678
+ {0x07c2, 0x0392}, /* Greek_BETA */
679
+ {0x07c3, 0x0393}, /* Greek_GAMMA */
680
+ {0x07c4, 0x0394}, /* Greek_DELTA */
681
+ {0x07c5, 0x0395}, /* Greek_EPSILON */
682
+ {0x07c6, 0x0396}, /* Greek_ZETA */
683
+ {0x07c7, 0x0397}, /* Greek_ETA */
684
+ {0x07c8, 0x0398}, /* Greek_THETA */
685
+ {0x07c9, 0x0399}, /* Greek_IOTA */
686
+ {0x07ca, 0x039a}, /* Greek_KAPPA */
687
+ {0x07cb, 0x039b}, /* Greek_LAMDA */
688
+ {0x07cc, 0x039c}, /* Greek_MU */
689
+ {0x07cd, 0x039d}, /* Greek_NU */
690
+ {0x07ce, 0x039e}, /* Greek_XI */
691
+ {0x07cf, 0x039f}, /* Greek_OMICRON */
692
+ {0x07d0, 0x03a0}, /* Greek_PI */
693
+ {0x07d1, 0x03a1}, /* Greek_RHO */
694
+ {0x07d2, 0x03a3}, /* Greek_SIGMA */
695
+ {0x07d4, 0x03a4}, /* Greek_TAU */
696
+ {0x07d5, 0x03a5}, /* Greek_UPSILON */
697
+ {0x07d6, 0x03a6}, /* Greek_PHI */
698
+ {0x07d7, 0x03a7}, /* Greek_CHI */
699
+ {0x07d8, 0x03a8}, /* Greek_PSI */
700
+ {0x07d9, 0x03a9}, /* Greek_OMEGA */
701
+ {0x07e1, 0x03b1}, /* Greek_alpha */
702
+ {0x07e2, 0x03b2}, /* Greek_beta */
703
+ {0x07e3, 0x03b3}, /* Greek_gamma */
704
+ {0x07e4, 0x03b4}, /* Greek_delta */
705
+ {0x07e5, 0x03b5}, /* Greek_epsilon */
706
+ {0x07e6, 0x03b6}, /* Greek_zeta */
707
+ {0x07e7, 0x03b7}, /* Greek_eta */
708
+ {0x07e8, 0x03b8}, /* Greek_theta */
709
+ {0x07e9, 0x03b9}, /* Greek_iota */
710
+ {0x07ea, 0x03ba}, /* Greek_kappa */
711
+ {0x07eb, 0x03bb}, /* Greek_lambda */
712
+ {0x07ec, 0x03bc}, /* Greek_mu */
713
+ {0x07ed, 0x03bd}, /* Greek_nu */
714
+ {0x07ee, 0x03be}, /* Greek_xi */
715
+ {0x07ef, 0x03bf}, /* Greek_omicron */
716
+ {0x07f0, 0x03c0}, /* Greek_pi */
717
+ {0x07f1, 0x03c1}, /* Greek_rho */
718
+ {0x07f2, 0x03c3}, /* Greek_sigma */
719
+ {0x07f3, 0x03c2}, /* Greek_finalsmallsigma */
720
+ {0x07f4, 0x03c4}, /* Greek_tau */
721
+ {0x07f5, 0x03c5}, /* Greek_upsilon */
722
+ {0x07f6, 0x03c6}, /* Greek_phi */
723
+ {0x07f7, 0x03c7}, /* Greek_chi */
724
+ {0x07f8, 0x03c8}, /* Greek_psi */
725
+ {0x07f9, 0x03c9}, /* Greek_omega */
726
+ {0x08a1, 0x23b7}, /* leftradical */
727
+ {0x08a4, 0x2320}, /* topintegral */
728
+ {0x08a5, 0x2321}, /* botintegral */
729
+ {0x08a7, 0x23a1}, /* topleftsqbracket */
730
+ {0x08a8, 0x23a3}, /* botleftsqbracket */
731
+ {0x08a9, 0x23a4}, /* toprightsqbracket */
732
+ {0x08aa, 0x23a6}, /* botrightsqbracket */
733
+ {0x08ab, 0x239b}, /* topleftparens */
734
+ {0x08ac, 0x239d}, /* botleftparens */
735
+ {0x08ad, 0x239e}, /* toprightparens */
736
+ {0x08ae, 0x23a0}, /* botrightparens */
737
+ {0x08af, 0x23a8}, /* leftmiddlecurlybrace */
738
+ {0x08b0, 0x23ac}, /* rightmiddlecurlybrace */
739
+ {0x08bc, 0x2264}, /* lessthanequal */
740
+ {0x08bd, 0x2260}, /* notequal */
741
+ {0x08be, 0x2265}, /* greaterthanequal */
742
+ {0x08bf, 0x222b}, /* integral */
743
+ {0x08c0, 0x2234}, /* therefore */
744
+ {0x08c1, 0x221d}, /* variation */
745
+ {0x08c2, 0x221e}, /* infinity */
746
+ {0x08c5, 0x2207}, /* nabla */
747
+ {0x08c8, 0x223c}, /* approximate */
748
+ {0x08c9, 0x2243}, /* similarequal */
749
+ {0x08cd, 0x21d4}, /* ifonlyif */
750
+ {0x08ce, 0x21d2}, /* implies */
751
+ {0x08cf, 0x2261}, /* identical */
752
+ {0x08d6, 0x221a}, /* radical */
753
+ {0x08da, 0x2282}, /* includedin */
754
+ {0x08db, 0x2283}, /* includes */
755
+ {0x08dc, 0x2229}, /* intersection */
756
+ {0x08dd, 0x222a}, /* union */
757
+ {0x08de, 0x2227}, /* logicaland */
758
+ {0x08df, 0x2228}, /* logicalor */
759
+ {0x08ef, 0x2202}, /* partialderivative */
760
+ {0x08f6, 0x0192}, /* function */
761
+ {0x08fb, 0x2190}, /* leftarrow */
762
+ {0x08fc, 0x2191}, /* uparrow */
763
+ {0x08fd, 0x2192}, /* rightarrow */
764
+ {0x08fe, 0x2193}, /* downarrow */
765
+ {0x09e0, 0x25c6}, /* soliddiamond */
766
+ {0x09e1, 0x2592}, /* checkerboard */
767
+ {0x09e2, 0x2409}, /* ht */
768
+ {0x09e3, 0x240c}, /* ff */
769
+ {0x09e4, 0x240d}, /* cr */
770
+ {0x09e5, 0x240a}, /* lf */
771
+ {0x09e8, 0x2424}, /* nl */
772
+ {0x09e9, 0x240b}, /* vt */
773
+ {0x09ea, 0x2518}, /* lowrightcorner */
774
+ {0x09eb, 0x2510}, /* uprightcorner */
775
+ {0x09ec, 0x250c}, /* upleftcorner */
776
+ {0x09ed, 0x2514}, /* lowleftcorner */
777
+ {0x09ee, 0x253c}, /* crossinglines */
778
+ {0x09ef, 0x23ba}, /* horizlinescan1 */
779
+ {0x09f0, 0x23bb}, /* horizlinescan3 */
780
+ {0x09f1, 0x2500}, /* horizlinescan5 */
781
+ {0x09f2, 0x23bc}, /* horizlinescan7 */
782
+ {0x09f3, 0x23bd}, /* horizlinescan9 */
783
+ {0x09f4, 0x251c}, /* leftt */
784
+ {0x09f5, 0x2524}, /* rightt */
785
+ {0x09f6, 0x2534}, /* bott */
786
+ {0x09f7, 0x252c}, /* topt */
787
+ {0x09f8, 0x2502}, /* vertbar */
788
+ {0x0aa1, 0x2003}, /* emspace */
789
+ {0x0aa2, 0x2002}, /* enspace */
790
+ {0x0aa3, 0x2004}, /* em3space */
791
+ {0x0aa4, 0x2005}, /* em4space */
792
+ {0x0aa5, 0x2007}, /* digitspace */
793
+ {0x0aa6, 0x2008}, /* punctspace */
794
+ {0x0aa7, 0x2009}, /* thinspace */
795
+ {0x0aa8, 0x200a}, /* hairspace */
796
+ {0x0aa9, 0x2014}, /* emdash */
797
+ {0x0aaa, 0x2013}, /* endash */
798
+ {0x0aae, 0x2026}, /* ellipsis */
799
+ {0x0aaf, 0x2025}, /* doubbaselinedot */
800
+ {0x0ab0, 0x2153}, /* onethird */
801
+ {0x0ab1, 0x2154}, /* twothirds */
802
+ {0x0ab2, 0x2155}, /* onefifth */
803
+ {0x0ab3, 0x2156}, /* twofifths */
804
+ {0x0ab4, 0x2157}, /* threefifths */
805
+ {0x0ab5, 0x2158}, /* fourfifths */
806
+ {0x0ab6, 0x2159}, /* onesixth */
807
+ {0x0ab7, 0x215a}, /* fivesixths */
808
+ {0x0ab8, 0x2105}, /* careof */
809
+ {0x0abb, 0x2012}, /* figdash */
810
+ {0x0ac3, 0x215b}, /* oneeighth */
811
+ {0x0ac4, 0x215c}, /* threeeighths */
812
+ {0x0ac5, 0x215d}, /* fiveeighths */
813
+ {0x0ac6, 0x215e}, /* seveneighths */
814
+ {0x0ac9, 0x2122}, /* trademark */
815
+ {0x0ad0, 0x2018}, /* leftsinglequotemark */
816
+ {0x0ad1, 0x2019}, /* rightsinglequotemark */
817
+ {0x0ad2, 0x201c}, /* leftdoublequotemark */
818
+ {0x0ad3, 0x201d}, /* rightdoublequotemark */
819
+ {0x0ad4, 0x211e}, /* prescription */
820
+ {0x0ad6, 0x2032}, /* minutes */
821
+ {0x0ad7, 0x2033}, /* seconds */
822
+ {0x0ad9, 0x271d}, /* latincross */
823
+ {0x0aec, 0x2663}, /* club */
824
+ {0x0aed, 0x2666}, /* diamond */
825
+ {0x0aee, 0x2665}, /* heart */
826
+ {0x0af0, 0x2720}, /* maltesecross */
827
+ {0x0af1, 0x2020}, /* dagger */
828
+ {0x0af2, 0x2021}, /* doubledagger */
829
+ {0x0af3, 0x2713}, /* checkmark */
830
+ {0x0af4, 0x2717}, /* ballotcross */
831
+ {0x0af5, 0x266f}, /* musicalsharp */
832
+ {0x0af6, 0x266d}, /* musicalflat */
833
+ {0x0af7, 0x2642}, /* malesymbol */
834
+ {0x0af8, 0x2640}, /* femalesymbol */
835
+ {0x0af9, 0x260e}, /* telephone */
836
+ {0x0afa, 0x2315}, /* telephonerecorder */
837
+ {0x0afb, 0x2117}, /* phonographcopyright */
838
+ {0x0afc, 0x2038}, /* caret */
839
+ {0x0afd, 0x201a}, /* singlelowquotemark */
840
+ {0x0afe, 0x201e}, /* doublelowquotemark */
841
+ {0x0bc2, 0x22a5}, /* downtack */
842
+ {0x0bc4, 0x230a}, /* downstile */
843
+ {0x0bca, 0x2218}, /* jot */
844
+ {0x0bcc, 0x2395}, /* quad */
845
+ {0x0bce, 0x22a4}, /* uptack */
846
+ {0x0bcf, 0x25cb}, /* circle */
847
+ {0x0bd3, 0x2308}, /* upstile */
848
+ {0x0bdc, 0x22a2}, /* lefttack */
849
+ {0x0bfc, 0x22a3}, /* righttack */
850
+ {0x0cdf, 0x2017}, /* hebrew_doublelowline */
851
+ {0x0ce0, 0x05d0}, /* hebrew_aleph */
852
+ {0x0ce1, 0x05d1}, /* hebrew_bet */
853
+ {0x0ce2, 0x05d2}, /* hebrew_gimel */
854
+ {0x0ce3, 0x05d3}, /* hebrew_dalet */
855
+ {0x0ce4, 0x05d4}, /* hebrew_he */
856
+ {0x0ce5, 0x05d5}, /* hebrew_waw */
857
+ {0x0ce6, 0x05d6}, /* hebrew_zain */
858
+ {0x0ce7, 0x05d7}, /* hebrew_chet */
859
+ {0x0ce8, 0x05d8}, /* hebrew_tet */
860
+ {0x0ce9, 0x05d9}, /* hebrew_yod */
861
+ {0x0cea, 0x05da}, /* hebrew_finalkaph */
862
+ {0x0ceb, 0x05db}, /* hebrew_kaph */
863
+ {0x0cec, 0x05dc}, /* hebrew_lamed */
864
+ {0x0ced, 0x05dd}, /* hebrew_finalmem */
865
+ {0x0cee, 0x05de}, /* hebrew_mem */
866
+ {0x0cef, 0x05df}, /* hebrew_finalnun */
867
+ {0x0cf0, 0x05e0}, /* hebrew_nun */
868
+ {0x0cf1, 0x05e1}, /* hebrew_samech */
869
+ {0x0cf2, 0x05e2}, /* hebrew_ayin */
870
+ {0x0cf3, 0x05e3}, /* hebrew_finalpe */
871
+ {0x0cf4, 0x05e4}, /* hebrew_pe */
872
+ {0x0cf5, 0x05e5}, /* hebrew_finalzade */
873
+ {0x0cf6, 0x05e6}, /* hebrew_zade */
874
+ {0x0cf7, 0x05e7}, /* hebrew_qoph */
875
+ {0x0cf8, 0x05e8}, /* hebrew_resh */
876
+ {0x0cf9, 0x05e9}, /* hebrew_shin */
877
+ {0x0cfa, 0x05ea}, /* hebrew_taw */
878
+ {0x0da1, 0x0e01}, /* Thai_kokai */
879
+ {0x0da2, 0x0e02}, /* Thai_khokhai */
880
+ {0x0da3, 0x0e03}, /* Thai_khokhuat */
881
+ {0x0da4, 0x0e04}, /* Thai_khokhwai */
882
+ {0x0da5, 0x0e05}, /* Thai_khokhon */
883
+ {0x0da6, 0x0e06}, /* Thai_khorakhang */
884
+ {0x0da7, 0x0e07}, /* Thai_ngongu */
885
+ {0x0da8, 0x0e08}, /* Thai_chochan */
886
+ {0x0da9, 0x0e09}, /* Thai_choching */
887
+ {0x0daa, 0x0e0a}, /* Thai_chochang */
888
+ {0x0dab, 0x0e0b}, /* Thai_soso */
889
+ {0x0dac, 0x0e0c}, /* Thai_chochoe */
890
+ {0x0dad, 0x0e0d}, /* Thai_yoying */
891
+ {0x0dae, 0x0e0e}, /* Thai_dochada */
892
+ {0x0daf, 0x0e0f}, /* Thai_topatak */
893
+ {0x0db0, 0x0e10}, /* Thai_thothan */
894
+ {0x0db1, 0x0e11}, /* Thai_thonangmontho */
895
+ {0x0db2, 0x0e12}, /* Thai_thophuthao */
896
+ {0x0db3, 0x0e13}, /* Thai_nonen */
897
+ {0x0db4, 0x0e14}, /* Thai_dodek */
898
+ {0x0db5, 0x0e15}, /* Thai_totao */
899
+ {0x0db6, 0x0e16}, /* Thai_thothung */
900
+ {0x0db7, 0x0e17}, /* Thai_thothahan */
901
+ {0x0db8, 0x0e18}, /* Thai_thothong */
902
+ {0x0db9, 0x0e19}, /* Thai_nonu */
903
+ {0x0dba, 0x0e1a}, /* Thai_bobaimai */
904
+ {0x0dbb, 0x0e1b}, /* Thai_popla */
905
+ {0x0dbc, 0x0e1c}, /* Thai_phophung */
906
+ {0x0dbd, 0x0e1d}, /* Thai_fofa */
907
+ {0x0dbe, 0x0e1e}, /* Thai_phophan */
908
+ {0x0dbf, 0x0e1f}, /* Thai_fofan */
909
+ {0x0dc0, 0x0e20}, /* Thai_phosamphao */
910
+ {0x0dc1, 0x0e21}, /* Thai_moma */
911
+ {0x0dc2, 0x0e22}, /* Thai_yoyak */
912
+ {0x0dc3, 0x0e23}, /* Thai_rorua */
913
+ {0x0dc4, 0x0e24}, /* Thai_ru */
914
+ {0x0dc5, 0x0e25}, /* Thai_loling */
915
+ {0x0dc6, 0x0e26}, /* Thai_lu */
916
+ {0x0dc7, 0x0e27}, /* Thai_wowaen */
917
+ {0x0dc8, 0x0e28}, /* Thai_sosala */
918
+ {0x0dc9, 0x0e29}, /* Thai_sorusi */
919
+ {0x0dca, 0x0e2a}, /* Thai_sosua */
920
+ {0x0dcb, 0x0e2b}, /* Thai_hohip */
921
+ {0x0dcc, 0x0e2c}, /* Thai_lochula */
922
+ {0x0dcd, 0x0e2d}, /* Thai_oang */
923
+ {0x0dce, 0x0e2e}, /* Thai_honokhuk */
924
+ {0x0dcf, 0x0e2f}, /* Thai_paiyannoi */
925
+ {0x0dd0, 0x0e30}, /* Thai_saraa */
926
+ {0x0dd1, 0x0e31}, /* Thai_maihanakat */
927
+ {0x0dd2, 0x0e32}, /* Thai_saraaa */
928
+ {0x0dd3, 0x0e33}, /* Thai_saraam */
929
+ {0x0dd4, 0x0e34}, /* Thai_sarai */
930
+ {0x0dd5, 0x0e35}, /* Thai_saraii */
931
+ {0x0dd6, 0x0e36}, /* Thai_saraue */
932
+ {0x0dd7, 0x0e37}, /* Thai_sarauee */
933
+ {0x0dd8, 0x0e38}, /* Thai_sarau */
934
+ {0x0dd9, 0x0e39}, /* Thai_sarauu */
935
+ {0x0dda, 0x0e3a}, /* Thai_phinthu */
936
+ {0x0ddf, 0x0e3f}, /* Thai_baht */
937
+ {0x0de0, 0x0e40}, /* Thai_sarae */
938
+ {0x0de1, 0x0e41}, /* Thai_saraae */
939
+ {0x0de2, 0x0e42}, /* Thai_sarao */
940
+ {0x0de3, 0x0e43}, /* Thai_saraaimaimuan */
941
+ {0x0de4, 0x0e44}, /* Thai_saraaimaimalai */
942
+ {0x0de5, 0x0e45}, /* Thai_lakkhangyao */
943
+ {0x0de6, 0x0e46}, /* Thai_maiyamok */
944
+ {0x0de7, 0x0e47}, /* Thai_maitaikhu */
945
+ {0x0de8, 0x0e48}, /* Thai_maiek */
946
+ {0x0de9, 0x0e49}, /* Thai_maitho */
947
+ {0x0dea, 0x0e4a}, /* Thai_maitri */
948
+ {0x0deb, 0x0e4b}, /* Thai_maichattawa */
949
+ {0x0dec, 0x0e4c}, /* Thai_thanthakhat */
950
+ {0x0ded, 0x0e4d}, /* Thai_nikhahit */
951
+ {0x0df0, 0x0e50}, /* Thai_leksun */
952
+ {0x0df1, 0x0e51}, /* Thai_leknung */
953
+ {0x0df2, 0x0e52}, /* Thai_leksong */
954
+ {0x0df3, 0x0e53}, /* Thai_leksam */
955
+ {0x0df4, 0x0e54}, /* Thai_leksi */
956
+ {0x0df5, 0x0e55}, /* Thai_lekha */
957
+ {0x0df6, 0x0e56}, /* Thai_lekhok */
958
+ {0x0df7, 0x0e57}, /* Thai_lekchet */
959
+ {0x0df8, 0x0e58}, /* Thai_lekpaet */
960
+ {0x0df9, 0x0e59}, /* Thai_lekkao */
961
+ {0x13bc, 0x0152}, /* OE */
962
+ {0x13bd, 0x0153}, /* oe */
963
+ {0x13be, 0x0178}, /* Ydiaeresis */
964
+ {0x20a0, 0x20a0}, /* EcuSign */
965
+ {0x20a1, 0x20a1}, /* ColonSign */
966
+ {0x20a2, 0x20a2}, /* CruzeiroSign */
967
+ {0x20a3, 0x20a3}, /* FFrancSign */
968
+ {0x20a4, 0x20a4}, /* LiraSign */
969
+ {0x20a5, 0x20a5}, /* MillSign */
970
+ {0x20a6, 0x20a6}, /* NairaSign */
971
+ {0x20a7, 0x20a7}, /* PesetaSign */
972
+ {0x20a8, 0x20a8}, /* RupeeSign */
973
+ {0x20a9, 0x20a9}, /* WonSign */
974
+ {0x20aa, 0x20aa}, /* NewSheqelSign */
975
+ {0x20ab, 0x20ab}, /* DongSign */
976
+ {0x20ac, 0x20ac}, /* EuroSign */
977
+ {0x06ad, 0x0491}, /* Ukrainian_ghe_with_upturn */
978
+ {0x06bd, 0x0490}, /* Ukrainian_GHE_WITH_UPTURN */
979
+ {0x14a2, 0x0587}, /* Armenian_ligature_ew */
980
+ {0x14a3, 0x0589}, /* Armenian_verjaket */
981
+ {0x14aa, 0x055d}, /* Armenian_but */
982
+ {0x14ad, 0x058a}, /* Armenian_yentamna */
983
+ {0x14af, 0x055c}, /* Armenian_amanak */
984
+ {0x14b0, 0x055b}, /* Armenian_shesht */
985
+ {0x14b1, 0x055e}, /* Armenian_paruyk */
986
+ {0x14b2, 0x0531}, /* Armenian_AYB */
987
+ {0x14b3, 0x0561}, /* Armenian_ayb */
988
+ {0x14b4, 0x0532}, /* Armenian_BEN */
989
+ {0x14b5, 0x0562}, /* Armenian_ben */
990
+ {0x14b6, 0x0533}, /* Armenian_GIM */
991
+ {0x14b7, 0x0563}, /* Armenian_gim */
992
+ {0x14b8, 0x0534}, /* Armenian_DA */
993
+ {0x14b9, 0x0564}, /* Armenian_da */
994
+ {0x14ba, 0x0535}, /* Armenian_YECH */
995
+ {0x14bb, 0x0565}, /* Armenian_yech */
996
+ {0x14bc, 0x0536}, /* Armenian_ZA */
997
+ {0x14bd, 0x0566}, /* Armenian_za */
998
+ {0x14be, 0x0537}, /* Armenian_E */
999
+ {0x14bf, 0x0567}, /* Armenian_e */
1000
+ {0x14c0, 0x0538}, /* Armenian_AT */
1001
+ {0x14c1, 0x0568}, /* Armenian_at */
1002
+ {0x14c2, 0x0539}, /* Armenian_TO */
1003
+ {0x14c3, 0x0569}, /* Armenian_to */
1004
+ {0x14c4, 0x053a}, /* Armenian_ZHE */
1005
+ {0x14c5, 0x056a}, /* Armenian_zhe */
1006
+ {0x14c6, 0x053b}, /* Armenian_INI */
1007
+ {0x14c7, 0x056b}, /* Armenian_ini */
1008
+ {0x14c8, 0x053c}, /* Armenian_LYUN */
1009
+ {0x14c9, 0x056c}, /* Armenian_lyun */
1010
+ {0x14ca, 0x053d}, /* Armenian_KHE */
1011
+ {0x14cb, 0x056d}, /* Armenian_khe */
1012
+ {0x14cc, 0x053e}, /* Armenian_TSA */
1013
+ {0x14cd, 0x056e}, /* Armenian_tsa */
1014
+ {0x14ce, 0x053f}, /* Armenian_KEN */
1015
+ {0x14cf, 0x056f}, /* Armenian_ken */
1016
+ {0x14d0, 0x0540}, /* Armenian_HO */
1017
+ {0x14d1, 0x0570}, /* Armenian_ho */
1018
+ {0x14d2, 0x0541}, /* Armenian_DZA */
1019
+ {0x14d3, 0x0571}, /* Armenian_dza */
1020
+ {0x14d4, 0x0542}, /* Armenian_GHAT */
1021
+ {0x14d5, 0x0572}, /* Armenian_ghat */
1022
+ {0x14d6, 0x0543}, /* Armenian_TCHE */
1023
+ {0x14d7, 0x0573}, /* Armenian_tche */
1024
+ {0x14d8, 0x0544}, /* Armenian_MEN */
1025
+ {0x14d9, 0x0574}, /* Armenian_men */
1026
+ {0x14da, 0x0545}, /* Armenian_HI */
1027
+ {0x14db, 0x0575}, /* Armenian_hi */
1028
+ {0x14dc, 0x0546}, /* Armenian_NU */
1029
+ {0x14dd, 0x0576}, /* Armenian_nu */
1030
+ {0x14de, 0x0547}, /* Armenian_SHA */
1031
+ {0x14df, 0x0577}, /* Armenian_sha */
1032
+ {0x14e0, 0x0548}, /* Armenian_VO */
1033
+ {0x14e1, 0x0578}, /* Armenian_vo */
1034
+ {0x14e2, 0x0549}, /* Armenian_CHA */
1035
+ {0x14e3, 0x0579}, /* Armenian_cha */
1036
+ {0x14e4, 0x054a}, /* Armenian_PE */
1037
+ {0x14e5, 0x057a}, /* Armenian_pe */
1038
+ {0x14e6, 0x054b}, /* Armenian_JE */
1039
+ {0x14e7, 0x057b}, /* Armenian_je */
1040
+ {0x14e8, 0x054c}, /* Armenian_RA */
1041
+ {0x14e9, 0x057c}, /* Armenian_ra */
1042
+ {0x14ea, 0x054d}, /* Armenian_SE */
1043
+ {0x14eb, 0x057d}, /* Armenian_se */
1044
+ {0x14ec, 0x054e}, /* Armenian_VEV */
1045
+ {0x14ed, 0x057e}, /* Armenian_vev */
1046
+ {0x14ee, 0x054f}, /* Armenian_TYUN */
1047
+ {0x14ef, 0x057f}, /* Armenian_tyun */
1048
+ {0x14f0, 0x0550}, /* Armenian_RE */
1049
+ {0x14f1, 0x0580}, /* Armenian_re */
1050
+ {0x14f2, 0x0551}, /* Armenian_TSO */
1051
+ {0x14f3, 0x0581}, /* Armenian_tso */
1052
+ {0x14f4, 0x0552}, /* Armenian_VYUN */
1053
+ {0x14f5, 0x0582}, /* Armenian_vyun */
1054
+ {0x14f6, 0x0553}, /* Armenian_PYUR */
1055
+ {0x14f7, 0x0583}, /* Armenian_pyur */
1056
+ {0x14f8, 0x0554}, /* Armenian_KE */
1057
+ {0x14f9, 0x0584}, /* Armenian_ke */
1058
+ {0x14fa, 0x0555}, /* Armenian_O */
1059
+ {0x14fb, 0x0585}, /* Armenian_o */
1060
+ {0x14fc, 0x0556}, /* Armenian_FE */
1061
+ {0x14fd, 0x0586}, /* Armenian_fe */
1062
+ {0x14fe, 0x055a}, /* Armenian_apostrophe */
1063
+ {0x15d0, 0x10d0}, /* Georgian_an */
1064
+ {0x15d1, 0x10d1}, /* Georgian_ban */
1065
+ {0x15d2, 0x10d2}, /* Georgian_gan */
1066
+ {0x15d3, 0x10d3}, /* Georgian_don */
1067
+ {0x15d4, 0x10d4}, /* Georgian_en */
1068
+ {0x15d5, 0x10d5}, /* Georgian_vin */
1069
+ {0x15d6, 0x10d6}, /* Georgian_zen */
1070
+ {0x15d7, 0x10d7}, /* Georgian_tan */
1071
+ {0x15d8, 0x10d8}, /* Georgian_in */
1072
+ {0x15d9, 0x10d9}, /* Georgian_kan */
1073
+ {0x15da, 0x10da}, /* Georgian_las */
1074
+ {0x15db, 0x10db}, /* Georgian_man */
1075
+ {0x15dc, 0x10dc}, /* Georgian_nar */
1076
+ {0x15dd, 0x10dd}, /* Georgian_on */
1077
+ {0x15de, 0x10de}, /* Georgian_par */
1078
+ {0x15df, 0x10df}, /* Georgian_zhar */
1079
+ {0x15e0, 0x10e0}, /* Georgian_rae */
1080
+ {0x15e1, 0x10e1}, /* Georgian_san */
1081
+ {0x15e2, 0x10e2}, /* Georgian_tar */
1082
+ {0x15e3, 0x10e3}, /* Georgian_un */
1083
+ {0x15e4, 0x10e4}, /* Georgian_phar */
1084
+ {0x15e5, 0x10e5}, /* Georgian_khar */
1085
+ {0x15e6, 0x10e6}, /* Georgian_ghan */
1086
+ {0x15e7, 0x10e7}, /* Georgian_qar */
1087
+ {0x15e8, 0x10e8}, /* Georgian_shin */
1088
+ {0x15e9, 0x10e9}, /* Georgian_chin */
1089
+ {0x15ea, 0x10ea}, /* Georgian_can */
1090
+ {0x15eb, 0x10eb}, /* Georgian_jil */
1091
+ {0x15ec, 0x10ec}, /* Georgian_cil */
1092
+ {0x15ed, 0x10ed}, /* Georgian_char */
1093
+ {0x15ee, 0x10ee}, /* Georgian_xan */
1094
+ {0x15ef, 0x10ef}, /* Georgian_jhan */
1095
+ {0x15f0, 0x10f0}, /* Georgian_hae */
1096
+ {0x15f1, 0x10f1}, /* Georgian_he */
1097
+ {0x15f2, 0x10f2}, /* Georgian_hie */
1098
+ {0x15f3, 0x10f3}, /* Georgian_we */
1099
+ {0x15f4, 0x10f4}, /* Georgian_har */
1100
+ {0x15f5, 0x10f5}, /* Georgian_hoe */
1101
+ {0x15f6, 0x10f6}, /* Georgian_fi */
1102
+ {0x12a1, 0x1e02}, /* Babovedot */
1103
+ {0x12a2, 0x1e03}, /* babovedot */
1104
+ {0x12a6, 0x1e0a}, /* Dabovedot */
1105
+ {0x12a8, 0x1e80}, /* Wgrave */
1106
+ {0x12aa, 0x1e82}, /* Wacute */
1107
+ {0x12ab, 0x1e0b}, /* dabovedot */
1108
+ {0x12ac, 0x1ef2}, /* Ygrave */
1109
+ {0x12b0, 0x1e1e}, /* Fabovedot */
1110
+ {0x12b1, 0x1e1f}, /* fabovedot */
1111
+ {0x12b4, 0x1e40}, /* Mabovedot */
1112
+ {0x12b5, 0x1e41}, /* mabovedot */
1113
+ {0x12b7, 0x1e56}, /* Pabovedot */
1114
+ {0x12b8, 0x1e81}, /* wgrave */
1115
+ {0x12b9, 0x1e57}, /* pabovedot */
1116
+ {0x12ba, 0x1e83}, /* wacute */
1117
+ {0x12bb, 0x1e60}, /* Sabovedot */
1118
+ {0x12bc, 0x1ef3}, /* ygrave */
1119
+ {0x12bd, 0x1e84}, /* Wdiaeresis */
1120
+ {0x12be, 0x1e85}, /* wdiaeresis */
1121
+ {0x12bf, 0x1e61}, /* sabovedot */
1122
+ {0x12d0, 0x0174}, /* Wcircumflex */
1123
+ {0x12d7, 0x1e6a}, /* Tabovedot */
1124
+ {0x12de, 0x0176}, /* Ycircumflex */
1125
+ {0x12f0, 0x0175}, /* wcircumflex */
1126
+ {0x12f7, 0x1e6b}, /* tabovedot */
1127
+ {0x12fe, 0x0177}, /* ycircumflex */
1128
+ {0x0590, 0x06f0}, /* Farsi_0 */
1129
+ {0x0591, 0x06f1}, /* Farsi_1 */
1130
+ {0x0592, 0x06f2}, /* Farsi_2 */
1131
+ {0x0593, 0x06f3}, /* Farsi_3 */
1132
+ {0x0594, 0x06f4}, /* Farsi_4 */
1133
+ {0x0595, 0x06f5}, /* Farsi_5 */
1134
+ {0x0596, 0x06f6}, /* Farsi_6 */
1135
+ {0x0597, 0x06f7}, /* Farsi_7 */
1136
+ {0x0598, 0x06f8}, /* Farsi_8 */
1137
+ {0x0599, 0x06f9}, /* Farsi_9 */
1138
+ {0x05a5, 0x066a}, /* Arabic_percent */
1139
+ {0x05a6, 0x0670}, /* Arabic_superscript_alef */
1140
+ {0x05a7, 0x0679}, /* Arabic_tteh */
1141
+ {0x05a8, 0x067e}, /* Arabic_peh */
1142
+ {0x05a9, 0x0686}, /* Arabic_tcheh */
1143
+ {0x05aa, 0x0688}, /* Arabic_ddal */
1144
+ {0x05ab, 0x0691}, /* Arabic_rreh */
1145
+ {0x05ae, 0x06d4}, /* Arabic_fullstop */
1146
+ {0x05b0, 0x0660}, /* Arabic_0 */
1147
+ {0x05b1, 0x0661}, /* Arabic_1 */
1148
+ {0x05b2, 0x0662}, /* Arabic_2 */
1149
+ {0x05b3, 0x0663}, /* Arabic_3 */
1150
+ {0x05b4, 0x0664}, /* Arabic_4 */
1151
+ {0x05b5, 0x0665}, /* Arabic_5 */
1152
+ {0x05b6, 0x0666}, /* Arabic_6 */
1153
+ {0x05b7, 0x0667}, /* Arabic_7 */
1154
+ {0x05b8, 0x0668}, /* Arabic_8 */
1155
+ {0x05b9, 0x0669}, /* Arabic_9 */
1156
+ {0x05f3, 0x0653}, /* Arabic_madda_above */
1157
+ {0x05f4, 0x0654}, /* Arabic_hamza_above */
1158
+ {0x05f5, 0x0655}, /* Arabic_hamza_below */
1159
+ {0x05f6, 0x0698}, /* Arabic_jeh */
1160
+ {0x05f7, 0x06a4}, /* Arabic_veh */
1161
+ {0x05f8, 0x06a9}, /* Arabic_keheh */
1162
+ {0x05f9, 0x06af}, /* Arabic_gaf */
1163
+ {0x05fa, 0x06ba}, /* Arabic_noon_ghunna */
1164
+ {0x05fb, 0x06be}, /* Arabic_heh_doachashmee */
1165
+ {0x05fc, 0x06cc}, /* Farsi_yeh */
1166
+ {0x05fd, 0x06d2}, /* Arabic_yeh_baree */
1167
+ {0x05fe, 0x06c1}, /* Arabic_heh_goal */
1168
+ {0x0680, 0x0492}, /* Cyrillic_GHE_bar */
1169
+ {0x0681, 0x0496}, /* Cyrillic_ZHE_descender */
1170
+ {0x0682, 0x049a}, /* Cyrillic_KA_descender */
1171
+ {0x0683, 0x049c}, /* Cyrillic_KA_vertstroke */
1172
+ {0x0684, 0x04a2}, /* Cyrillic_EN_descender */
1173
+ {0x0685, 0x04ae}, /* Cyrillic_U_straight */
1174
+ {0x0686, 0x04b0}, /* Cyrillic_U_straight_bar */
1175
+ {0x0687, 0x04b2}, /* Cyrillic_HA_descender */
1176
+ {0x0688, 0x04b6}, /* Cyrillic_CHE_descender */
1177
+ {0x0689, 0x04b8}, /* Cyrillic_CHE_vertstroke */
1178
+ {0x068a, 0x04ba}, /* Cyrillic_SHHA */
1179
+ {0x068c, 0x04d8}, /* Cyrillic_SCHWA */
1180
+ {0x068d, 0x04e2}, /* Cyrillic_I_macron */
1181
+ {0x068e, 0x04e8}, /* Cyrillic_O_bar */
1182
+ {0x068f, 0x04ee}, /* Cyrillic_U_macron */
1183
+ {0x0690, 0x0493}, /* Cyrillic_ghe_bar */
1184
+ {0x0691, 0x0497}, /* Cyrillic_zhe_descender */
1185
+ {0x0692, 0x049b}, /* Cyrillic_ka_descender */
1186
+ {0x0693, 0x049d}, /* Cyrillic_ka_vertstroke */
1187
+ {0x0694, 0x04a3}, /* Cyrillic_en_descender */
1188
+ {0x0695, 0x04af}, /* Cyrillic_u_straight */
1189
+ {0x0696, 0x04b1}, /* Cyrillic_u_straight_bar */
1190
+ {0x0697, 0x04b3}, /* Cyrillic_ha_descender */
1191
+ {0x0698, 0x04b7}, /* Cyrillic_che_descender */
1192
+ {0x0699, 0x04b9}, /* Cyrillic_che_vertstroke */
1193
+ {0x069a, 0x04bb}, /* Cyrillic_shha */
1194
+ {0x069c, 0x04d9}, /* Cyrillic_schwa */
1195
+ {0x069d, 0x04e3}, /* Cyrillic_i_macron */
1196
+ {0x069e, 0x04e9}, /* Cyrillic_o_bar */
1197
+ {0x069f, 0x04ef}, /* Cyrillic_u_macron */
1198
+ {0x16a3, 0x1e8a}, /* Xabovedot */
1199
+ {0x16a6, 0x012c}, /* Ibreve */
1200
+ {0x16a9, 0x01b5}, /* Zstroke */
1201
+ {0x16aa, 0x01e6}, /* Gcaron */
1202
+ {0x16af, 0x019f}, /* Obarred */
1203
+ {0x16b3, 0x1e8b}, /* xabovedot */
1204
+ {0x16b6, 0x012d}, /* ibreve */
1205
+ {0x16b9, 0x01b6}, /* zstroke */
1206
+ {0x16ba, 0x01e7}, /* gcaron */
1207
+ {0x16bd, 0x01d2}, /* ocaron */
1208
+ {0x16bf, 0x0275}, /* obarred */
1209
+ {0x16c6, 0x018f}, /* SCHWA */
1210
+ {0x16f6, 0x0259}, /* schwa */
1211
+ {0x16d1, 0x1e36}, /* Lbelowdot */
1212
+ {0x16e1, 0x1e37}, /* lbelowdot */
1213
+ {0x1ea0, 0x1ea0}, /* Abelowdot */
1214
+ {0x1ea1, 0x1ea1}, /* abelowdot */
1215
+ {0x1ea2, 0x1ea2}, /* Ahook */
1216
+ {0x1ea3, 0x1ea3}, /* ahook */
1217
+ {0x1ea4, 0x1ea4}, /* Acircumflexacute */
1218
+ {0x1ea5, 0x1ea5}, /* acircumflexacute */
1219
+ {0x1ea6, 0x1ea6}, /* Acircumflexgrave */
1220
+ {0x1ea7, 0x1ea7}, /* acircumflexgrave */
1221
+ {0x1ea8, 0x1ea8}, /* Acircumflexhook */
1222
+ {0x1ea9, 0x1ea9}, /* acircumflexhook */
1223
+ {0x1eaa, 0x1eaa}, /* Acircumflextilde */
1224
+ {0x1eab, 0x1eab}, /* acircumflextilde */
1225
+ {0x1eac, 0x1eac}, /* Acircumflexbelowdot */
1226
+ {0x1ead, 0x1ead}, /* acircumflexbelowdot */
1227
+ {0x1eae, 0x1eae}, /* Abreveacute */
1228
+ {0x1eaf, 0x1eaf}, /* abreveacute */
1229
+ {0x1eb0, 0x1eb0}, /* Abrevegrave */
1230
+ {0x1eb1, 0x1eb1}, /* abrevegrave */
1231
+ {0x1eb2, 0x1eb2}, /* Abrevehook */
1232
+ {0x1eb3, 0x1eb3}, /* abrevehook */
1233
+ {0x1eb4, 0x1eb4}, /* Abrevetilde */
1234
+ {0x1eb5, 0x1eb5}, /* abrevetilde */
1235
+ {0x1eb6, 0x1eb6}, /* Abrevebelowdot */
1236
+ {0x1eb7, 0x1eb7}, /* abrevebelowdot */
1237
+ {0x1eb8, 0x1eb8}, /* Ebelowdot */
1238
+ {0x1eb9, 0x1eb9}, /* ebelowdot */
1239
+ {0x1eba, 0x1eba}, /* Ehook */
1240
+ {0x1ebb, 0x1ebb}, /* ehook */
1241
+ {0x1ebc, 0x1ebc}, /* Etilde */
1242
+ {0x1ebd, 0x1ebd}, /* etilde */
1243
+ {0x1ebe, 0x1ebe}, /* Ecircumflexacute */
1244
+ {0x1ebf, 0x1ebf}, /* ecircumflexacute */
1245
+ {0x1ec0, 0x1ec0}, /* Ecircumflexgrave */
1246
+ {0x1ec1, 0x1ec1}, /* ecircumflexgrave */
1247
+ {0x1ec2, 0x1ec2}, /* Ecircumflexhook */
1248
+ {0x1ec3, 0x1ec3}, /* ecircumflexhook */
1249
+ {0x1ec4, 0x1ec4}, /* Ecircumflextilde */
1250
+ {0x1ec5, 0x1ec5}, /* ecircumflextilde */
1251
+ {0x1ec6, 0x1ec6}, /* Ecircumflexbelowdot */
1252
+ {0x1ec7, 0x1ec7}, /* ecircumflexbelowdot */
1253
+ {0x1ec8, 0x1ec8}, /* Ihook */
1254
+ {0x1ec9, 0x1ec9}, /* ihook */
1255
+ {0x1eca, 0x1eca}, /* Ibelowdot */
1256
+ {0x1ecb, 0x1ecb}, /* ibelowdot */
1257
+ {0x1ecc, 0x1ecc}, /* Obelowdot */
1258
+ {0x1ecd, 0x1ecd}, /* obelowdot */
1259
+ {0x1ece, 0x1ece}, /* Ohook */
1260
+ {0x1ecf, 0x1ecf}, /* ohook */
1261
+ {0x1ed0, 0x1ed0}, /* Ocircumflexacute */
1262
+ {0x1ed1, 0x1ed1}, /* ocircumflexacute */
1263
+ {0x1ed2, 0x1ed2}, /* Ocircumflexgrave */
1264
+ {0x1ed3, 0x1ed3}, /* ocircumflexgrave */
1265
+ {0x1ed4, 0x1ed4}, /* Ocircumflexhook */
1266
+ {0x1ed5, 0x1ed5}, /* ocircumflexhook */
1267
+ {0x1ed6, 0x1ed6}, /* Ocircumflextilde */
1268
+ {0x1ed7, 0x1ed7}, /* ocircumflextilde */
1269
+ {0x1ed8, 0x1ed8}, /* Ocircumflexbelowdot */
1270
+ {0x1ed9, 0x1ed9}, /* ocircumflexbelowdot */
1271
+ {0x1eda, 0x1eda}, /* Ohornacute */
1272
+ {0x1edb, 0x1edb}, /* ohornacute */
1273
+ {0x1edc, 0x1edc}, /* Ohorngrave */
1274
+ {0x1edd, 0x1edd}, /* ohorngrave */
1275
+ {0x1ede, 0x1ede}, /* Ohornhook */
1276
+ {0x1edf, 0x1edf}, /* ohornhook */
1277
+ {0x1ee0, 0x1ee0}, /* Ohorntilde */
1278
+ {0x1ee1, 0x1ee1}, /* ohorntilde */
1279
+ {0x1ee2, 0x1ee2}, /* Ohornbelowdot */
1280
+ {0x1ee3, 0x1ee3}, /* ohornbelowdot */
1281
+ {0x1ee4, 0x1ee4}, /* Ubelowdot */
1282
+ {0x1ee5, 0x1ee5}, /* ubelowdot */
1283
+ {0x1ee6, 0x1ee6}, /* Uhook */
1284
+ {0x1ee7, 0x1ee7}, /* uhook */
1285
+ {0x1ee8, 0x1ee8}, /* Uhornacute */
1286
+ {0x1ee9, 0x1ee9}, /* uhornacute */
1287
+ {0x1eea, 0x1eea}, /* Uhorngrave */
1288
+ {0x1eeb, 0x1eeb}, /* uhorngrave */
1289
+ {0x1eec, 0x1eec}, /* Uhornhook */
1290
+ {0x1eed, 0x1eed}, /* uhornhook */
1291
+ {0x1eee, 0x1eee}, /* Uhorntilde */
1292
+ {0x1eef, 0x1eef}, /* uhorntilde */
1293
+ {0x1ef0, 0x1ef0}, /* Uhornbelowdot */
1294
+ {0x1ef1, 0x1ef1}, /* uhornbelowdot */
1295
+ {0x1ef4, 0x1ef4}, /* Ybelowdot */
1296
+ {0x1ef5, 0x1ef5}, /* ybelowdot */
1297
+ {0x1ef6, 0x1ef6}, /* Yhook */
1298
+ {0x1ef7, 0x1ef7}, /* yhook */
1299
+ {0x1ef8, 0x1ef8}, /* Ytilde */
1300
+ {0x1ef9, 0x1ef9}, /* ytilde */
1301
+ {0x1efa, 0x01a0}, /* Ohorn */
1302
+ {0x1efb, 0x01a1}, /* ohorn */
1303
+ {0x1efc, 0x01af}, /* Uhorn */
1304
+ {0x1efd, 0x01b0}, /* uhorn */
1305
+ {0, 0}
1306
+ };
1307
+
1308
+ #endif