Add files using upload-large-folder tool
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .gitattributes +53 -0
- my_container_sandbox/workspace/anaconda3/include/cudnn.h +78 -0
- my_container_sandbox/workspace/anaconda3/include/cudnn_adv_infer.h +658 -0
- my_container_sandbox/workspace/anaconda3/include/cudnn_adv_infer_v8.h +658 -0
- my_container_sandbox/workspace/anaconda3/include/cudnn_adv_train_v8.h +540 -0
- my_container_sandbox/workspace/anaconda3/include/cudnn_backend.h +608 -0
- my_container_sandbox/workspace/anaconda3/include/cudnn_cnn_train.h +219 -0
- my_container_sandbox/workspace/anaconda3/include/cudnn_cnn_train_v8.h +219 -0
- my_container_sandbox/workspace/anaconda3/include/cudnn_v8.h +78 -0
- my_container_sandbox/workspace/anaconda3/include/cudnn_version_v8.h +109 -0
- my_container_sandbox/workspace/anaconda3/include/curses.h +0 -0
- my_container_sandbox/workspace/anaconda3/include/cursesp.h +271 -0
- my_container_sandbox/workspace/anaconda3/include/cursslk.h +240 -0
- my_container_sandbox/workspace/anaconda3/include/fakemysql.h +335 -0
- my_container_sandbox/workspace/anaconda3/include/fakepq.h +46 -0
- my_container_sandbox/workspace/anaconda3/include/fakesql.h +282 -0
- my_container_sandbox/workspace/anaconda3/include/ffitarget.h +162 -0
- my_container_sandbox/workspace/anaconda3/include/form.h +460 -0
- my_container_sandbox/workspace/anaconda3/include/itcl2TclOO.h +33 -0
- my_container_sandbox/workspace/anaconda3/include/itclDecls.h +211 -0
- my_container_sandbox/workspace/anaconda3/include/itclInt.h +843 -0
- my_container_sandbox/workspace/anaconda3/include/itclIntDecls.h +1046 -0
- my_container_sandbox/workspace/anaconda3/include/lzma.h +328 -0
- my_container_sandbox/workspace/anaconda3/include/menu.h +281 -0
- my_container_sandbox/workspace/anaconda3/include/mysqlStubs.h +101 -0
- my_container_sandbox/workspace/anaconda3/include/ncurses.h +0 -0
- my_container_sandbox/workspace/anaconda3/include/odbcStubs.h +78 -0
- my_container_sandbox/workspace/anaconda3/include/sqlite3.h +0 -0
- my_container_sandbox/workspace/anaconda3/include/tcl.h +2639 -0
- my_container_sandbox/workspace/anaconda3/include/tclIntPlatDecls.h +600 -0
- my_container_sandbox/workspace/anaconda3/include/tclOO.h +147 -0
- my_container_sandbox/workspace/anaconda3/include/tclOOInt.h +607 -0
- my_container_sandbox/workspace/anaconda3/include/tclOOIntDecls.h +166 -0
- my_container_sandbox/workspace/anaconda3/include/tclPort.h +46 -0
- my_container_sandbox/workspace/anaconda3/include/tclThread.h +36 -0
- my_container_sandbox/workspace/anaconda3/include/tdbcDecls.h +70 -0
- my_container_sandbox/workspace/anaconda3/include/tdbcInt.h +40 -0
- my_container_sandbox/workspace/anaconda3/include/tk.h +1635 -0
- my_container_sandbox/workspace/anaconda3/include/tk3d.h +85 -0
- my_container_sandbox/workspace/anaconda3/include/tkArray.h +610 -0
- my_container_sandbox/workspace/anaconda3/include/tkColor.h +75 -0
- my_container_sandbox/workspace/anaconda3/include/tkDecls.h +1759 -0
- my_container_sandbox/workspace/anaconda3/include/tkEntry.h +298 -0
- my_container_sandbox/workspace/anaconda3/include/tkIntDecls.h +1228 -0
- my_container_sandbox/workspace/anaconda3/include/tkMacOSX.h +34 -0
- my_container_sandbox/workspace/anaconda3/include/tkMacOSXConstants.h +119 -0
- my_container_sandbox/workspace/anaconda3/include/tkMacOSXEvent.h +25 -0
- my_container_sandbox/workspace/anaconda3/include/tkMacOSXFont.h +32 -0
- my_container_sandbox/workspace/anaconda3/include/tkMacOSXInt.h +199 -0
- 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
|