mirror of
https://github.com/Gator96100/ProxSpace.git
synced 2025-08-19 21:03:25 -07:00
Updated msys2 to msys2-base-x86_64-20200903
This commit is contained in:
parent
5bc8dbdc75
commit
2307d54cb1
18501 changed files with 1684082 additions and 720361 deletions
335
msys2/usr/include/tcl8.6/generic/fakemysql.h
Normal file
335
msys2/usr/include/tcl8.6/generic/fakemysql.h
Normal file
|
@ -0,0 +1,335 @@
|
|||
/*
|
||||
* fakemysql.h --
|
||||
*
|
||||
* Fake definitions of the MySQL API sufficient to build tdbc::mysql
|
||||
* without having an MySQL installation on the build system. This file
|
||||
* comprises only data type, constant and function definitions.
|
||||
*
|
||||
* The programmers of this file believe that it contains material not
|
||||
* subject to copyright under the doctrines of scenes a faire and
|
||||
* of merger of idea and expression. Accordingly, this file is in the
|
||||
* public domain.
|
||||
*
|
||||
*-----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef FAKEMYSQL_H_INCLUDED
|
||||
#define FAKEMYSQL_H_INCLUDED
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
#ifndef MODULE_SCOPE
|
||||
#define MODULE_SCOPE extern
|
||||
#endif
|
||||
|
||||
MODULE_SCOPE Tcl_LoadHandle MysqlInitStubs(Tcl_Interp*);
|
||||
|
||||
#ifdef _WIN32
|
||||
#define STDCALL __stdcall
|
||||
#else
|
||||
#define STDCALL /* nothing */
|
||||
#endif
|
||||
|
||||
enum enum_field_types {
|
||||
MYSQL_TYPE_DECIMAL=0,
|
||||
MYSQL_TYPE_TINY=1,
|
||||
MYSQL_TYPE_SHORT=2,
|
||||
MYSQL_TYPE_LONG=3,
|
||||
MYSQL_TYPE_FLOAT=4,
|
||||
MYSQL_TYPE_DOUBLE=5,
|
||||
MYSQL_TYPE_NULL=6,
|
||||
MYSQL_TYPE_TIMESTAMP=7,
|
||||
MYSQL_TYPE_LONGLONG=8,
|
||||
MYSQL_TYPE_INT24=9,
|
||||
MYSQL_TYPE_DATE=10,
|
||||
MYSQL_TYPE_TIME=11,
|
||||
MYSQL_TYPE_DATETIME=12,
|
||||
MYSQL_TYPE_YEAR=13,
|
||||
MYSQL_TYPE_NEWDATE=14,
|
||||
MYSQL_TYPE_VARCHAR=15,
|
||||
MYSQL_TYPE_BIT=16,
|
||||
MYSQL_TYPE_NEWDECIMAL=246,
|
||||
MYSQL_TYPE_ENUM=247,
|
||||
MYSQL_TYPE_SET=248,
|
||||
MYSQL_TYPE_TINY_BLOB=249,
|
||||
MYSQL_TYPE_MEDIUM_BLOB=250,
|
||||
MYSQL_TYPE_LONG_BLOB=251,
|
||||
MYSQL_TYPE_BLOB=252,
|
||||
MYSQL_TYPE_VAR_STRING=253,
|
||||
MYSQL_TYPE_STRING=254,
|
||||
MYSQL_TYPE_GEOMETRY=255
|
||||
};
|
||||
|
||||
enum mysql_option {
|
||||
MYSQL_SET_CHARSET_NAME=7,
|
||||
};
|
||||
|
||||
enum mysql_status {
|
||||
MYSQL_STATUS_READY=0,
|
||||
};
|
||||
|
||||
#define CLIENT_COMPRESS 32
|
||||
#define CLIENT_INTERACTIVE 1024
|
||||
#define MYSQL_DATA_TRUNCATED 101
|
||||
#define MYSQL_ERRMSG_SIZE 512
|
||||
#define MYSQL_NO_DATA 100
|
||||
#define SCRAMBLE_LENGTH 20
|
||||
#define SQLSTATE_LENGTH 5
|
||||
|
||||
typedef struct st_list LIST;
|
||||
typedef struct st_mem_root MEM_ROOT;
|
||||
typedef struct st_mysql MYSQL;
|
||||
typedef struct st_mysql_bind MYSQL_BIND;
|
||||
typedef struct st_mysql_field MYSQL_FIELD;
|
||||
typedef struct st_mysql_res MYSQL_RES;
|
||||
typedef char** MYSQL_ROW;
|
||||
typedef struct st_mysql_stmt MYSQL_STMT;
|
||||
typedef char my_bool;
|
||||
#ifndef Socket_defined
|
||||
typedef int my_socket;
|
||||
#define INVALID_SOCKET -1
|
||||
#endif
|
||||
typedef Tcl_WideUInt my_ulonglong;
|
||||
typedef struct st_net NET;
|
||||
typedef struct st_used_mem USED_MEM;
|
||||
typedef struct st_vio Vio;
|
||||
|
||||
struct st_mem_root {
|
||||
USED_MEM *free;
|
||||
USED_MEM *used;
|
||||
USED_MEM *pre_alloc;
|
||||
size_t min_malloc;
|
||||
size_t block_size;
|
||||
unsigned int block_num;
|
||||
unsigned int first_block_usage;
|
||||
void (*error_handler)(void);
|
||||
};
|
||||
|
||||
struct st_mysql_options {
|
||||
unsigned int connect_timeout;
|
||||
unsigned int read_timeout;
|
||||
unsigned int write_timeout;
|
||||
unsigned int port;
|
||||
unsigned int protocol;
|
||||
unsigned long client_flag;
|
||||
char *host;
|
||||
char *user;
|
||||
char *password;
|
||||
char *unix_socket;
|
||||
char *db;
|
||||
struct st_dynamic_array *init_commands;
|
||||
char *my_cnf_file;
|
||||
char *my_cnf_group;
|
||||
char *charset_dir;
|
||||
char *charset_name;
|
||||
char *ssl_key;
|
||||
char *ssl_cert;
|
||||
char *ssl_ca;
|
||||
char *ssl_capath;
|
||||
char *ssl_cipher;
|
||||
char *shared_memory_base_name;
|
||||
unsigned long max_allowed_packet;
|
||||
my_bool use_ssl;
|
||||
my_bool compress,named_pipe;
|
||||
my_bool rpl_probe;
|
||||
my_bool rpl_parse;
|
||||
my_bool no_master_reads;
|
||||
#if !defined(CHECK_EMBEDDED_DIFFERENCES) || defined(EMBEDDED_LIBRARY)
|
||||
my_bool separate_thread;
|
||||
#endif
|
||||
enum mysql_option methods_to_use;
|
||||
char *client_ip;
|
||||
my_bool secure_auth;
|
||||
my_bool report_data_truncation;
|
||||
int (*local_infile_init)(void **, const char *, void *);
|
||||
int (*local_infile_read)(void *, char *, unsigned int);
|
||||
void (*local_infile_end)(void *);
|
||||
int (*local_infile_error)(void *, char *, unsigned int);
|
||||
void *local_infile_userdata;
|
||||
void *extension;
|
||||
};
|
||||
|
||||
struct st_net {
|
||||
#if !defined(CHECK_EMBEDDED_DIFFERENCES) || !defined(EMBEDDED_LIBRARY)
|
||||
Vio *vio;
|
||||
unsigned char *buff;
|
||||
unsigned char *buff_end;
|
||||
unsigned char *write_pos;
|
||||
unsigned char *read_pos;
|
||||
my_socket fd;
|
||||
unsigned long remain_in_buf;
|
||||
unsigned long length;
|
||||
unsigned long buf_length;
|
||||
unsigned long where_b;
|
||||
unsigned long max_packet;
|
||||
unsigned long max_packet_size;
|
||||
unsigned int pkt_nr;
|
||||
unsigned int compress_pkt_nr;
|
||||
unsigned int write_timeout;
|
||||
unsigned int read_timeout;
|
||||
unsigned int retry_count;
|
||||
int fcntl;
|
||||
unsigned int *return_status;
|
||||
unsigned char reading_or_writing;
|
||||
char save_char;
|
||||
my_bool unused0;
|
||||
my_bool unused;
|
||||
my_bool compress;
|
||||
my_bool unused1;
|
||||
#endif
|
||||
unsigned char *query_cache_query;
|
||||
unsigned int last_errno;
|
||||
unsigned char error;
|
||||
my_bool unused2;
|
||||
my_bool return_errno;
|
||||
char last_error[MYSQL_ERRMSG_SIZE];
|
||||
char sqlstate[SQLSTATE_LENGTH+1];
|
||||
void *extension;
|
||||
#if defined(MYSQL_SERVER) && !defined(EMBEDDED_LIBRARY)
|
||||
my_bool skip_big_packet;
|
||||
#endif
|
||||
};
|
||||
|
||||
/*
|
||||
* st_mysql differs between 5.0 and 5.1, but the 5.0 version is a
|
||||
* strict subset, we don't use any of the 5.1 fields, and we don't
|
||||
* ever allocate the structure ourselves.
|
||||
*/
|
||||
|
||||
struct st_mysql {
|
||||
NET net;
|
||||
unsigned char *connector_fd;
|
||||
char *host;
|
||||
char *user;
|
||||
char *passwd;
|
||||
char *unix_socket;
|
||||
char *server_version;
|
||||
char *host_info;
|
||||
char *info;
|
||||
char *db;
|
||||
struct charset_info_st *charset;
|
||||
MYSQL_FIELD *fields;
|
||||
MEM_ROOT field_alloc;
|
||||
my_ulonglong affected_rows;
|
||||
my_ulonglong insert_id;
|
||||
my_ulonglong extra_info;
|
||||
unsigned long thread_id;
|
||||
unsigned long packet_length;
|
||||
unsigned int port;
|
||||
unsigned long client_flag;
|
||||
unsigned long server_capabilities;
|
||||
unsigned int protocol_version;
|
||||
unsigned int field_count;
|
||||
unsigned int server_status;
|
||||
unsigned int server_language;
|
||||
unsigned int warning_count;
|
||||
struct st_mysql_options options;
|
||||
enum mysql_status status;
|
||||
my_bool free_me;
|
||||
my_bool reconnect;
|
||||
char scramble[SCRAMBLE_LENGTH+1];
|
||||
my_bool rpl_pivot;
|
||||
struct st_mysql *master;
|
||||
struct st_mysql *next_slave;
|
||||
struct st_mysql* last_used_slave;
|
||||
struct st_mysql* last_used_con;
|
||||
LIST *stmts;
|
||||
const struct st_mysql_methods *methods;
|
||||
void *thd;
|
||||
my_bool *unbuffered_fetch_owner;
|
||||
char *info_buffer;
|
||||
};
|
||||
|
||||
/*
|
||||
* There are different version of the MYSQL_BIND structure before and after
|
||||
* MySQL 5.1. We go after the fields of the structure using accessor functions
|
||||
* so that the code in this file is compatible with both versions.
|
||||
*/
|
||||
|
||||
struct st_mysql_bind_51 { /* Post-5.1 */
|
||||
unsigned long* length;
|
||||
my_bool* is_null;
|
||||
void* buffer;
|
||||
my_bool* error;
|
||||
unsigned char* row_ptr;
|
||||
void (*store_param_func)(NET* net, MYSQL_BIND* param);
|
||||
void (*fetch_result)(MYSQL_BIND*, MYSQL_FIELD*, unsigned char**);
|
||||
void (*skip_result)(MYSQL_BIND*, MYSQL_FIELD*, unsigned char**);
|
||||
unsigned long buffer_length;
|
||||
unsigned long offset;
|
||||
unsigned long length_value;
|
||||
unsigned int param_number;
|
||||
unsigned int pack_length;
|
||||
enum enum_field_types buffer_type;
|
||||
my_bool error_value;
|
||||
my_bool is_unsigned;
|
||||
my_bool long_data_used;
|
||||
my_bool is_null_value;
|
||||
void* extension;
|
||||
};
|
||||
|
||||
struct st_mysql_bind_50 { /* Pre-5.1 */
|
||||
unsigned long* length;
|
||||
my_bool* is_null;
|
||||
void* buffer;
|
||||
my_bool* error;
|
||||
enum enum_field_types buffer_type;
|
||||
unsigned long buffer_length;
|
||||
unsigned char* row_ptr;
|
||||
unsigned long offset;
|
||||
unsigned long length_value;
|
||||
unsigned int param_number;
|
||||
unsigned int pack_length;
|
||||
my_bool error_value;
|
||||
my_bool is_unsigned;
|
||||
my_bool long_data_used;
|
||||
my_bool is_null_value;
|
||||
void (*store_param_func)(NET* net, MYSQL_BIND* param);
|
||||
void (*fetch_result)(MYSQL_BIND*, MYSQL_FIELD*, unsigned char**);
|
||||
void (*skip_result)(MYSQL_BIND*, MYSQL_FIELD*, unsigned char**);
|
||||
};
|
||||
|
||||
/*
|
||||
* There are also different versions of the MYSQL_FIELD structure; fortunately,
|
||||
* the 5.1 version is a strict extension of the 5.0 version.
|
||||
*/
|
||||
|
||||
struct st_mysql_field {
|
||||
char* name;
|
||||
char *org_name;
|
||||
char* table;
|
||||
char* org_table;
|
||||
char* db;
|
||||
char* catalog;
|
||||
char* def;
|
||||
unsigned long length;
|
||||
unsigned long max_length;
|
||||
unsigned int name_length;
|
||||
unsigned int org_name_length;
|
||||
unsigned int table_length;
|
||||
unsigned int org_table_length;
|
||||
unsigned int db_length;
|
||||
unsigned int catalog_length;
|
||||
unsigned int def_length;
|
||||
unsigned int flags;
|
||||
unsigned int decimals;
|
||||
unsigned int charsetnr;
|
||||
enum enum_field_types type;
|
||||
};
|
||||
struct st_mysql_field_50 {
|
||||
struct st_mysql_field field;
|
||||
};
|
||||
struct st_mysql_field_51 {
|
||||
struct st_mysql_field field;
|
||||
void* extension;
|
||||
};
|
||||
#define NOT_NULL_FLAG 1
|
||||
|
||||
#define IS_NUM(t) ((t) <= MYSQL_TYPE_INT24 || (t) == MYSQL_TYPE_YEAR || (t) == MYSQL_TYPE_NEWDECIMAL)
|
||||
|
||||
#define mysql_library_init mysql_server_init
|
||||
#define mysql_library_end mysql_server_end
|
||||
|
||||
#include "mysqlStubs.h"
|
||||
|
||||
#endif /* not FAKEMYSQL_H_INCLUDED */
|
46
msys2/usr/include/tcl8.6/generic/fakepq.h
Normal file
46
msys2/usr/include/tcl8.6/generic/fakepq.h
Normal file
|
@ -0,0 +1,46 @@
|
|||
/*
|
||||
* fakepq.h --
|
||||
*
|
||||
* Minimal replacement for 'pq-fe.h' in the PostgreSQL client
|
||||
* without having a PostgreSQL installation on the build system.
|
||||
* This file comprises only data type, constant and function definitions.
|
||||
*
|
||||
* The programmers of this file believe that it contains material not
|
||||
* subject to copyright under the doctrines of scenes a faire and
|
||||
* of merger of idea and expression. Accordingly, this file is in the
|
||||
* public domain.
|
||||
*
|
||||
*-----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef FAKEPQ_H_INCLUDED
|
||||
#define FAKEPQ_H_INCLUDED
|
||||
|
||||
#ifndef MODULE_SCOPE
|
||||
#define MODULE_SCOPE extern
|
||||
#endif
|
||||
|
||||
MODULE_SCOPE Tcl_LoadHandle PostgresqlInitStubs(Tcl_Interp*);
|
||||
|
||||
typedef enum {
|
||||
CONNECTION_OK=0,
|
||||
} ConnStatusType;
|
||||
typedef enum {
|
||||
PGRES_EMPTY_QUERY=0,
|
||||
PGRES_BAD_RESPONSE=5,
|
||||
PGRES_NONFATAL_ERROR=6,
|
||||
PGRES_FATAL_ERROR=7,
|
||||
} ExecStatusType;
|
||||
typedef unsigned int Oid;
|
||||
typedef struct pg_conn PGconn;
|
||||
typedef struct pg_result PGresult;
|
||||
typedef void (*PQnoticeProcessor)(void*, const PGresult*);
|
||||
|
||||
#define PG_DIAG_SQLSTATE 'C'
|
||||
#define PG_DIAG_MESSAGE_PRIMARY 'M'
|
||||
|
||||
#include "pqStubs.h"
|
||||
|
||||
MODULE_SCOPE const pqStubDefs* pqStubs;
|
||||
|
||||
#endif
|
282
msys2/usr/include/tcl8.6/generic/fakesql.h
Normal file
282
msys2/usr/include/tcl8.6/generic/fakesql.h
Normal file
|
@ -0,0 +1,282 @@
|
|||
/*
|
||||
* fakesql.h --
|
||||
*
|
||||
* Include file that defines the subset of SQL/CLI that TDBC
|
||||
* uses, so that tdbc::odbc can build without an explicit ODBC
|
||||
* dependency. It comprises only data type, constant and
|
||||
* function declarations.
|
||||
*
|
||||
* The programmers of this file believe that it contains material not
|
||||
* subject to copyright under the doctrines of scenes a faire and
|
||||
* of merger of idea and expression. Accordingly, this file is in the
|
||||
* public domain.
|
||||
*
|
||||
*-----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef FAKESQL_H_INCLUDED
|
||||
#define FAKESQL_H_INCLUDED
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
#ifndef MODULE_SCOPE
|
||||
#define MODULE_SCOPE extern
|
||||
#endif
|
||||
|
||||
/* Limits */
|
||||
|
||||
#define SQL_MAX_DSN_LENGTH 32
|
||||
#define SQL_MAX_MESSAGE_LENGTH 512
|
||||
|
||||
/* Fundamental data types */
|
||||
|
||||
#ifndef _WIN32
|
||||
typedef int BOOL;
|
||||
typedef unsigned int DWORD;
|
||||
typedef void* HANDLE;
|
||||
typedef HANDLE HWND;
|
||||
typedef unsigned short WCHAR;
|
||||
typedef char* LPSTR;
|
||||
typedef WCHAR* LPWSTR;
|
||||
typedef const char* LPCSTR;
|
||||
typedef const WCHAR* LPCWSTR;
|
||||
typedef unsigned short WORD;
|
||||
#endif
|
||||
typedef void* PVOID;
|
||||
typedef short RETCODE;
|
||||
typedef long SDWORD;
|
||||
typedef short SWORD;
|
||||
typedef unsigned short USHORT;
|
||||
typedef USHORT UWORD;
|
||||
|
||||
/* ODBC data types */
|
||||
|
||||
typedef Tcl_WideInt SQLBIGINT;
|
||||
typedef unsigned char SQLCHAR;
|
||||
typedef double SQLDOUBLE;
|
||||
typedef void* SQLHANDLE;
|
||||
typedef SDWORD SQLINTEGER;
|
||||
typedef PVOID SQLPOINTER;
|
||||
typedef SWORD SQLSMALLINT;
|
||||
typedef Tcl_WideUInt SQLUBIGINT;
|
||||
typedef unsigned char SQLUCHAR;
|
||||
typedef unsigned int SQLUINTEGER;
|
||||
typedef UWORD SQLUSMALLINT;
|
||||
typedef WCHAR SQLWCHAR;
|
||||
|
||||
typedef SQLSMALLINT SQLRETURN;
|
||||
|
||||
/* TODO - Check how the SQLLEN and SQLULEN types are handled on
|
||||
* 64-bit Unix. */
|
||||
|
||||
#if defined(__WIN64)
|
||||
typedef Tcl_WideInt SQLLEN;
|
||||
typedef Tcl_WideUInt SQLULEN;
|
||||
#else
|
||||
typedef SQLINTEGER SQLLEN;
|
||||
typedef SQLUINTEGER SQLULEN;
|
||||
#endif
|
||||
|
||||
/* Handle types */
|
||||
|
||||
typedef SQLHANDLE SQLHENV;
|
||||
typedef SQLHANDLE SQLHDBC;
|
||||
typedef SQLHANDLE SQLHSTMT;
|
||||
typedef HWND SQLHWND;
|
||||
|
||||
#define SQL_HANDLE_DBC 2
|
||||
#define SQL_HANDLE_ENV 1
|
||||
#define SQL_HANDLE_STMT 3
|
||||
|
||||
/* Null handles */
|
||||
|
||||
#define SQL_NULL_HANDLE ((SQLHANDLE) 0)
|
||||
#define SQL_NULL_HENV ((SQLHENV) 0)
|
||||
#define SQL_NULL_HDBC ((SQLHDBC) 0)
|
||||
#define SQL_NULL_HSTMT ((SQLHSTMT) 0)
|
||||
|
||||
/* SQL data types */
|
||||
|
||||
enum _SQL_DATATYPE {
|
||||
SQL_BIGINT = -5,
|
||||
SQL_BINARY = -2,
|
||||
SQL_BIT = -7,
|
||||
SQL_CHAR = 1,
|
||||
SQL_DATE = 9,
|
||||
SQL_DECIMAL = 3,
|
||||
SQL_DOUBLE = 8,
|
||||
SQL_FLOAT = 6,
|
||||
SQL_INTEGER = 4,
|
||||
SQL_LONGVARBINARY = -4,
|
||||
SQL_LONGVARCHAR = -1,
|
||||
SQL_NUMERIC = 2,
|
||||
SQL_REAL = 7,
|
||||
SQL_SMALLINT = 5,
|
||||
SQL_TIME = 10,
|
||||
SQL_TIMESTAMP = 11,
|
||||
SQL_TINYINT = -6,
|
||||
SQL_VARBINARY = -3,
|
||||
SQL_VARCHAR = 12,
|
||||
SQL_WCHAR = -8,
|
||||
SQL_WVARCHAR = -9,
|
||||
SQL_WLONGVARCHAR = -10,
|
||||
};
|
||||
|
||||
/* C data types */
|
||||
|
||||
#define SQL_SIGNED_OFFSET (-20)
|
||||
|
||||
#define SQL_C_BINARY SQL_BINARY
|
||||
#define SQL_C_CHAR SQL_CHAR
|
||||
#define SQL_C_DOUBLE SQL_DOUBLE
|
||||
#define SQL_C_LONG SQL_INTEGER
|
||||
#define SQL_C_SBIGINT SQL_BIGINT + SQL_SIGNED_OFFSET
|
||||
#define SQL_C_SLONG SQL_INTEGER + SQL_SIGNED_OFFSET
|
||||
#define SQL_C_WCHAR SQL_WCHAR
|
||||
|
||||
/* Parameter transmission diretions */
|
||||
|
||||
#define SQL_PARAM_INPUT 1
|
||||
|
||||
/* Status returns */
|
||||
|
||||
#define SQL_ERROR (-1)
|
||||
#define SQL_NO_DATA 100
|
||||
#define SQL_NO_TOTAL (-4)
|
||||
#define SQL_SUCCESS 0
|
||||
#define SQL_SUCCESS_WITH_INFO 1
|
||||
#define SQL_SUCCEEDED(rc) (((rc)&(~1))==0)
|
||||
|
||||
/* Diagnostic fields */
|
||||
|
||||
enum _SQL_DIAG {
|
||||
SQL_DIAG_SQLSTATE = 4,
|
||||
};
|
||||
|
||||
/* Transaction isolation levels */
|
||||
|
||||
#define SQL_TXN_READ_COMMITTED 2
|
||||
#define SQL_TXN_READ_UNCOMMITTED 1
|
||||
#define SQL_TXN_REPEATABLE_READ 4
|
||||
#define SQL_TXN_SERIALIZABLE 8
|
||||
|
||||
/* Access modes */
|
||||
|
||||
#define SQL_MODE_READ_ONLY 1UL
|
||||
#define SQL_MODE_READ_WRITE 0UL
|
||||
|
||||
/* ODBC properties */
|
||||
|
||||
#define SQL_ACCESS_MODE 101
|
||||
#define SQL_AUTOCOMMIT 102
|
||||
#define SQL_TXN_ISOLATION 108
|
||||
|
||||
/* ODBC attributes */
|
||||
|
||||
#define SQL_ATTR_ACCESS_MODE SQL_ACCESS_MODE
|
||||
#define SQL_ATTR_CONNECTION_TIMEOUT 113
|
||||
#define SQL_ATTR_ODBC_VERSION 200
|
||||
#define SQL_ATTR_TXN_ISOLATION SQL_TXN_ISOLATION
|
||||
#define SQL_ATTR_AUTOCOMMIT SQL_AUTOCOMMIT
|
||||
|
||||
/* Nullable? */
|
||||
|
||||
#define SQL_NULLABLE_UNKNOWN 2
|
||||
|
||||
/* Placeholder for length of missing data */
|
||||
|
||||
#define SQL_NULL_DATA (-1)
|
||||
|
||||
/* ODBC versions */
|
||||
|
||||
#define SQL_OV_ODBC3 3UL
|
||||
#define SQL_ODBC_VER 10
|
||||
|
||||
/* SQLDriverConnect flags */
|
||||
|
||||
#define SQL_DRIVER_COMPLETE_REQUIRED 3
|
||||
#define SQL_DRIVER_NOPROMPT 0
|
||||
|
||||
/* SQLGetTypeInfo flags */
|
||||
|
||||
#define SQL_ALL_TYPES 0
|
||||
|
||||
/* Transaction actions */
|
||||
|
||||
#define SQL_COMMIT 0
|
||||
#define SQL_ROLLBACK 1
|
||||
|
||||
/* Data source fetch flags */
|
||||
|
||||
#define SQL_FETCH_FIRST 2
|
||||
#define SQL_FETCH_FIRST_SYSTEM 32
|
||||
#define SQL_FETCH_FIRST_USER 31
|
||||
#define SQL_FETCH_NEXT 1
|
||||
|
||||
/* ODBCINST actions */
|
||||
|
||||
#define ODBC_ADD_DSN 1
|
||||
#define ODBC_CONFIG_DSN 2
|
||||
#define ODBC_REMOVE_DSN 3
|
||||
#define ODBC_ADD_SYS_DSN 4
|
||||
#define ODBC_CONFIG_SYS_DSN 5
|
||||
#define ODBC_REMOVE_SYS_DSN 6
|
||||
|
||||
/* ODBCINST errors */
|
||||
|
||||
#define ODBC_ERROR_GENERAL_ERR 1
|
||||
#define ODBC_ERROR_INVALID_BUFF_LEN 2
|
||||
#define ODBC_ERROR_INVALID_HWND 3
|
||||
#define ODBC_ERROR_INVALID_STR 4
|
||||
#define ODBC_ERROR_INVALID_REQUEST_TYPE 5
|
||||
#define ODBC_ERROR_COMPONENT_NOT_FOUND 6
|
||||
#define ODBC_ERROR_INVALID_NAME 7
|
||||
#define ODBC_ERROR_INVALID_KEYWORD_VALUE 8
|
||||
#define ODBC_ERROR_INVALID_DSN 9
|
||||
#define ODBC_ERROR_INVALID_INF 10
|
||||
#define ODBC_ERROR_REQUEST_FAILED 11
|
||||
#define ODBC_ERROR_INVALID_PATH 12
|
||||
#define ODBC_ERROR_LOAD_LIB_FAILED 13
|
||||
#define ODBC_ERROR_INVALID_PARAM_SEQUENCE 14
|
||||
#define ODBC_ERROR_INVALID_LOG_FILE 15
|
||||
#define ODBC_ERROR_USER_CANCELED 16
|
||||
#define ODBC_ERROR_USAGE_UPDATE_FAILED 17
|
||||
#define ODBC_ERROR_CREATE_DSN_FAILED 18
|
||||
#define ODBC_ERROR_WRITING_SYSINFO_FAILED 19
|
||||
#define ODBC_ERROR_REMOVE_DSN_FAILED 20
|
||||
#define ODBC_ERROR_OUT_OF_MEM 21
|
||||
#define ODBC_ERROR_OUTPUT_STRING_TRUNCATED 22
|
||||
|
||||
/* ODBC client library entry points */
|
||||
|
||||
#ifdef _WIN32
|
||||
#define SQL_API __stdcall
|
||||
#define INSTAPI __stdcall
|
||||
#else
|
||||
#define SQL_API /* nothing */
|
||||
#define INSTAPI /* nothing */
|
||||
#endif
|
||||
|
||||
#include "odbcStubs.h"
|
||||
MODULE_SCOPE const odbcStubDefs* odbcStubs;
|
||||
|
||||
/*
|
||||
* Additional entry points in ODBCINST - all of these are optional
|
||||
* and resolved with Tcl_FindSymbol, not directly in Tcl_LoadLibrary.
|
||||
*/
|
||||
|
||||
MODULE_SCOPE BOOL (INSTAPI* SQLConfigDataSourceW)(HWND, WORD, LPCWSTR,
|
||||
LPCWSTR);
|
||||
MODULE_SCOPE BOOL (INSTAPI* SQLConfigDataSource)(HWND, WORD, LPCSTR, LPCSTR);
|
||||
MODULE_SCOPE BOOL (INSTAPI* SQLInstallerErrorW)(WORD, DWORD*, LPWSTR, WORD,
|
||||
WORD*);
|
||||
MODULE_SCOPE BOOL (INSTAPI* SQLInstallerError)(WORD, DWORD*, LPSTR, WORD,
|
||||
WORD*);
|
||||
|
||||
/*
|
||||
* Function that initialises the stubs
|
||||
*/
|
||||
|
||||
MODULE_SCOPE Tcl_LoadHandle OdbcInitStubs(Tcl_Interp*, Tcl_LoadHandle*);
|
||||
|
||||
#endif
|
194
msys2/usr/include/tcl8.6/generic/itcl.h
Normal file
194
msys2/usr/include/tcl8.6/generic/itcl.h
Normal file
|
@ -0,0 +1,194 @@
|
|||
/*
|
||||
* itcl.h --
|
||||
*
|
||||
* This file contains definitions for the C-implemeted part of a Itcl
|
||||
* this version of [incr Tcl] (Itcl) is a completely new implementation
|
||||
* based on TclOO extension of Tcl 8.5
|
||||
* It tries to provide the same interfaces as the original implementation
|
||||
* of Michael J. McLennan
|
||||
* Some small pieces of code are taken from that implementation
|
||||
*
|
||||
* Copyright (c) 2007 by Arnulf P. Wiedemann
|
||||
*
|
||||
* See the file "license.terms" for information on usage and redistribution of
|
||||
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
*/
|
||||
|
||||
/*
|
||||
* ------------------------------------------------------------------------
|
||||
* PACKAGE: [incr Tcl]
|
||||
* DESCRIPTION: Object-Oriented Extensions to Tcl
|
||||
*
|
||||
* [incr Tcl] provides object-oriented extensions to Tcl, much as
|
||||
* C++ provides object-oriented extensions to C. It provides a means
|
||||
* of encapsulating related procedures together with their shared data
|
||||
* in a local namespace that is hidden from the outside world. It
|
||||
* promotes code re-use through inheritance. More than anything else,
|
||||
* it encourages better organization of Tcl applications through the
|
||||
* object-oriented paradigm, leading to code that is easier to
|
||||
* understand and maintain.
|
||||
*
|
||||
* ADDING [incr Tcl] TO A Tcl-BASED APPLICATION:
|
||||
*
|
||||
* To add [incr Tcl] facilities to a Tcl application, modify the
|
||||
* Tcl_AppInit() routine as follows:
|
||||
*
|
||||
* 1) Include this header file near the top of the file containing
|
||||
* Tcl_AppInit():
|
||||
*
|
||||
* #include "itcl.h"
|
||||
*
|
||||
* 2) Within the body of Tcl_AppInit(), add the following lines:
|
||||
*
|
||||
* if (Itcl_Init(interp) == TCL_ERROR) {
|
||||
* return TCL_ERROR;
|
||||
* }
|
||||
*
|
||||
* 3) Link your application with libitcl.a
|
||||
*
|
||||
* NOTE: An example file "tclAppInit.c" containing the changes shown
|
||||
* above is included in this distribution.
|
||||
*
|
||||
*---------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef ITCL_H_INCLUDED
|
||||
#define ITCL_H_INCLUDED
|
||||
|
||||
#include <tcl.h>
|
||||
|
||||
#if (TCL_MAJOR_VERSION == 8) && (TCL_MINOR_VERSION < 6)
|
||||
# error Itcl 4 build requires tcl.h from Tcl 8.6 or later
|
||||
#endif
|
||||
|
||||
/*
|
||||
* For C++ compilers, use extern "C"
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifndef TCL_ALPHA_RELEASE
|
||||
# define TCL_ALPHA_RELEASE 0
|
||||
#endif
|
||||
#ifndef TCL_BETA_RELEASE
|
||||
# define TCL_BETA_RELEASE 1
|
||||
#endif
|
||||
#ifndef TCL_FINAL_RELEASE
|
||||
# define TCL_FINAL_RELEASE 2
|
||||
#endif
|
||||
|
||||
#define ITCL_MAJOR_VERSION 4
|
||||
#define ITCL_MINOR_VERSION 2
|
||||
#define ITCL_RELEASE_LEVEL TCL_FINAL_RELEASE
|
||||
#define ITCL_RELEASE_SERIAL 0
|
||||
|
||||
#define ITCL_VERSION "4.2"
|
||||
#define ITCL_PATCH_LEVEL "4.2.0"
|
||||
|
||||
|
||||
/*
|
||||
* A special definition used to allow this header file to be included from
|
||||
* windows resource files so that they can obtain version information.
|
||||
* RC_INVOKED is defined by default by the windows RC tool.
|
||||
*
|
||||
* Resource compilers don't like all the C stuff, like typedefs and function
|
||||
* declarations, that occur below, so block them out.
|
||||
*/
|
||||
|
||||
#ifndef RC_INVOKED
|
||||
|
||||
#define ITCL_NAMESPACE "::itcl"
|
||||
|
||||
#ifndef ITCLAPI
|
||||
# if defined(BUILD_itcl)
|
||||
# define ITCLAPI MODULE_SCOPE
|
||||
# else
|
||||
# define ITCLAPI extern
|
||||
# undef USE_ITCL_STUBS
|
||||
# define USE_ITCL_STUBS 1
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(BUILD_itcl) && !defined(STATIC_BUILD)
|
||||
# define ITCL_EXTERN extern DLLEXPORT
|
||||
#else
|
||||
# define ITCL_EXTERN extern
|
||||
#endif
|
||||
|
||||
ITCL_EXTERN int Itcl_Init(Tcl_Interp *interp);
|
||||
ITCL_EXTERN int Itcl_SafeInit(Tcl_Interp *interp);
|
||||
|
||||
/*
|
||||
* Protection levels:
|
||||
*
|
||||
* ITCL_PUBLIC - accessible from any namespace
|
||||
* ITCL_PROTECTED - accessible from namespace that imports in "protected" mode
|
||||
* ITCL_PRIVATE - accessible only within the namespace that contains it
|
||||
*/
|
||||
#define ITCL_PUBLIC 1
|
||||
#define ITCL_PROTECTED 2
|
||||
#define ITCL_PRIVATE 3
|
||||
#define ITCL_DEFAULT_PROTECT 4
|
||||
|
||||
/*
|
||||
* Generic stack.
|
||||
*/
|
||||
typedef struct Itcl_Stack {
|
||||
ClientData *values; /* values on stack */
|
||||
int len; /* number of values on stack */
|
||||
int max; /* maximum size of stack */
|
||||
ClientData space[5]; /* initial space for stack data */
|
||||
} Itcl_Stack;
|
||||
|
||||
#define Itcl_GetStackSize(stackPtr) ((stackPtr)->len)
|
||||
|
||||
/*
|
||||
* Generic linked list.
|
||||
*/
|
||||
struct Itcl_List;
|
||||
typedef struct Itcl_ListElem {
|
||||
struct Itcl_List* owner; /* list containing this element */
|
||||
ClientData value; /* value associated with this element */
|
||||
struct Itcl_ListElem *prev; /* previous element in linked list */
|
||||
struct Itcl_ListElem *next; /* next element in linked list */
|
||||
} Itcl_ListElem;
|
||||
|
||||
typedef struct Itcl_List {
|
||||
int validate; /* validation stamp */
|
||||
int num; /* number of elements */
|
||||
struct Itcl_ListElem *head; /* previous element in linked list */
|
||||
struct Itcl_ListElem *tail; /* next element in linked list */
|
||||
} Itcl_List;
|
||||
|
||||
#define Itcl_FirstListElem(listPtr) ((listPtr)->head)
|
||||
#define Itcl_LastListElem(listPtr) ((listPtr)->tail)
|
||||
#define Itcl_NextListElem(elemPtr) ((elemPtr)->next)
|
||||
#define Itcl_PrevListElem(elemPtr) ((elemPtr)->prev)
|
||||
#define Itcl_GetListLength(listPtr) ((listPtr)->num)
|
||||
#define Itcl_GetListValue(elemPtr) ((elemPtr)->value)
|
||||
|
||||
/*
|
||||
* Token representing the state of an interpreter.
|
||||
*/
|
||||
typedef struct Itcl_InterpState_ *Itcl_InterpState;
|
||||
|
||||
|
||||
/*
|
||||
* Include all the public API, generated from itcl.decls.
|
||||
*/
|
||||
|
||||
#include "itclDecls.h"
|
||||
|
||||
#endif /* RC_INVOKED */
|
||||
|
||||
/*
|
||||
* end block for C++
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* ITCL_H_INCLUDED */
|
33
msys2/usr/include/tcl8.6/generic/itcl2TclOO.h
Normal file
33
msys2/usr/include/tcl8.6/generic/itcl2TclOO.h
Normal file
|
@ -0,0 +1,33 @@
|
|||
|
||||
#ifndef _TCLINT
|
||||
typedef void (ProcErrorProc)(Tcl_Interp *interp, Tcl_Obj *procNameObj);
|
||||
#endif
|
||||
|
||||
#ifndef TCL_OO_INTERNAL_H
|
||||
typedef int (TclOO_PreCallProc)(ClientData clientData, Tcl_Interp *interp,
|
||||
Tcl_ObjectContext context, Tcl_CallFrame *framePtr, int *isFinished);
|
||||
typedef int (TclOO_PostCallProc)(ClientData clientData, Tcl_Interp *interp,
|
||||
Tcl_ObjectContext context, Tcl_Namespace *namespacePtr, int result);
|
||||
#endif
|
||||
|
||||
MODULE_SCOPE int Itcl_NRRunCallbacks(Tcl_Interp *interp, void *rootPtr);
|
||||
MODULE_SCOPE void * Itcl_GetCurrentCallbackPtr(Tcl_Interp *interp);
|
||||
MODULE_SCOPE Tcl_Method Itcl_NewProcClassMethod(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, ClientData *clientData2);
|
||||
MODULE_SCOPE Tcl_Method Itcl_NewProcMethod(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, ClientData *clientData2);
|
||||
MODULE_SCOPE int Itcl_PublicObjectCmd(ClientData clientData, Tcl_Interp *interp,
|
||||
Tcl_Class clsPtr, int objc, Tcl_Obj *const *objv);
|
||||
MODULE_SCOPE Tcl_Method Itcl_NewForwardClassMethod(Tcl_Interp *interp,
|
||||
Tcl_Class clsPtr, int flags, Tcl_Obj *nameObj, Tcl_Obj *prefixObj);
|
||||
MODULE_SCOPE int Itcl_SelfCmd(ClientData clientData, Tcl_Interp *interp,
|
||||
int objc, Tcl_Obj *const *objv);
|
||||
MODULE_SCOPE int Itcl_IsMethodCallFrame(Tcl_Interp *interp);
|
||||
MODULE_SCOPE int Itcl_InvokeEnsembleMethod(Tcl_Interp *interp, Tcl_Namespace *nsPtr,
|
||||
Tcl_Obj *namePtr, Tcl_Proc *procPtr, int objc, Tcl_Obj *const *objv);
|
||||
MODULE_SCOPE int Itcl_InvokeProcedureMethod(ClientData clientData, Tcl_Interp *interp,
|
||||
int objc, Tcl_Obj *const *objv);
|
211
msys2/usr/include/tcl8.6/generic/itclDecls.h
Normal file
211
msys2/usr/include/tcl8.6/generic/itclDecls.h
Normal file
|
@ -0,0 +1,211 @@
|
|||
/*
|
||||
* This file is (mostly) automatically generated from itcl.decls.
|
||||
*/
|
||||
|
||||
#ifndef _ITCLDECLS
|
||||
#define _ITCLDECLS
|
||||
|
||||
#if defined(USE_ITCL_STUBS)
|
||||
|
||||
ITCLAPI const char *Itcl_InitStubs(
|
||||
Tcl_Interp *, const char *version, int exact);
|
||||
#else
|
||||
|
||||
#define Itcl_InitStubs(interp, version, exact) Tcl_PkgRequireEx(interp,"itcl",version,exact,NULL)
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/* !BEGIN!: Do not edit below this line. */
|
||||
|
||||
#define ITCL_STUBS_EPOCH 0
|
||||
#define ITCL_STUBS_REVISION 152
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Exported function declarations:
|
||||
*/
|
||||
|
||||
/* Slot 0 is reserved */
|
||||
/* Slot 1 is reserved */
|
||||
/* 2 */
|
||||
ITCLAPI int Itcl_RegisterC(Tcl_Interp *interp, const char *name,
|
||||
Tcl_CmdProc *proc, ClientData clientData,
|
||||
Tcl_CmdDeleteProc *deleteProc);
|
||||
/* 3 */
|
||||
ITCLAPI int Itcl_RegisterObjC(Tcl_Interp *interp,
|
||||
const char *name, Tcl_ObjCmdProc *proc,
|
||||
ClientData clientData,
|
||||
Tcl_CmdDeleteProc *deleteProc);
|
||||
/* 4 */
|
||||
ITCLAPI int Itcl_FindC(Tcl_Interp *interp, const char *name,
|
||||
Tcl_CmdProc **argProcPtr,
|
||||
Tcl_ObjCmdProc **objProcPtr,
|
||||
ClientData *cDataPtr);
|
||||
/* 5 */
|
||||
ITCLAPI void Itcl_InitStack(Itcl_Stack *stack);
|
||||
/* 6 */
|
||||
ITCLAPI void Itcl_DeleteStack(Itcl_Stack *stack);
|
||||
/* 7 */
|
||||
ITCLAPI void Itcl_PushStack(ClientData cdata, Itcl_Stack *stack);
|
||||
/* 8 */
|
||||
ITCLAPI ClientData Itcl_PopStack(Itcl_Stack *stack);
|
||||
/* 9 */
|
||||
ITCLAPI ClientData Itcl_PeekStack(Itcl_Stack *stack);
|
||||
/* 10 */
|
||||
ITCLAPI ClientData Itcl_GetStackValue(Itcl_Stack *stack, int pos);
|
||||
/* 11 */
|
||||
ITCLAPI void Itcl_InitList(Itcl_List *listPtr);
|
||||
/* 12 */
|
||||
ITCLAPI void Itcl_DeleteList(Itcl_List *listPtr);
|
||||
/* 13 */
|
||||
ITCLAPI Itcl_ListElem * Itcl_CreateListElem(Itcl_List *listPtr);
|
||||
/* 14 */
|
||||
ITCLAPI Itcl_ListElem * Itcl_DeleteListElem(Itcl_ListElem *elemPtr);
|
||||
/* 15 */
|
||||
ITCLAPI Itcl_ListElem * Itcl_InsertList(Itcl_List *listPtr, ClientData val);
|
||||
/* 16 */
|
||||
ITCLAPI Itcl_ListElem * Itcl_InsertListElem(Itcl_ListElem *pos,
|
||||
ClientData val);
|
||||
/* 17 */
|
||||
ITCLAPI Itcl_ListElem * Itcl_AppendList(Itcl_List *listPtr, ClientData val);
|
||||
/* 18 */
|
||||
ITCLAPI Itcl_ListElem * Itcl_AppendListElem(Itcl_ListElem *pos,
|
||||
ClientData val);
|
||||
/* 19 */
|
||||
ITCLAPI void Itcl_SetListValue(Itcl_ListElem *elemPtr,
|
||||
ClientData val);
|
||||
/* 20 */
|
||||
ITCLAPI void Itcl_EventuallyFree(ClientData cdata,
|
||||
Tcl_FreeProc *fproc);
|
||||
/* 21 */
|
||||
ITCLAPI void Itcl_PreserveData(ClientData cdata);
|
||||
/* 22 */
|
||||
ITCLAPI void Itcl_ReleaseData(ClientData cdata);
|
||||
/* 23 */
|
||||
ITCLAPI Itcl_InterpState Itcl_SaveInterpState(Tcl_Interp *interp, int status);
|
||||
/* 24 */
|
||||
ITCLAPI int Itcl_RestoreInterpState(Tcl_Interp *interp,
|
||||
Itcl_InterpState state);
|
||||
/* 25 */
|
||||
ITCLAPI void Itcl_DiscardInterpState(Itcl_InterpState state);
|
||||
/* 26 */
|
||||
ITCLAPI void * Itcl_Alloc(size_t size);
|
||||
/* 27 */
|
||||
ITCLAPI void Itcl_Free(void *ptr);
|
||||
|
||||
typedef struct {
|
||||
const struct ItclIntStubs *itclIntStubs;
|
||||
} ItclStubHooks;
|
||||
|
||||
typedef struct ItclStubs {
|
||||
int magic;
|
||||
int epoch;
|
||||
int revision;
|
||||
const ItclStubHooks *hooks;
|
||||
|
||||
void (*reserved0)(void);
|
||||
void (*reserved1)(void);
|
||||
int (*itcl_RegisterC) (Tcl_Interp *interp, const char *name, Tcl_CmdProc *proc, ClientData clientData, Tcl_CmdDeleteProc *deleteProc); /* 2 */
|
||||
int (*itcl_RegisterObjC) (Tcl_Interp *interp, const char *name, Tcl_ObjCmdProc *proc, ClientData clientData, Tcl_CmdDeleteProc *deleteProc); /* 3 */
|
||||
int (*itcl_FindC) (Tcl_Interp *interp, const char *name, Tcl_CmdProc **argProcPtr, Tcl_ObjCmdProc **objProcPtr, ClientData *cDataPtr); /* 4 */
|
||||
void (*itcl_InitStack) (Itcl_Stack *stack); /* 5 */
|
||||
void (*itcl_DeleteStack) (Itcl_Stack *stack); /* 6 */
|
||||
void (*itcl_PushStack) (ClientData cdata, Itcl_Stack *stack); /* 7 */
|
||||
ClientData (*itcl_PopStack) (Itcl_Stack *stack); /* 8 */
|
||||
ClientData (*itcl_PeekStack) (Itcl_Stack *stack); /* 9 */
|
||||
ClientData (*itcl_GetStackValue) (Itcl_Stack *stack, int pos); /* 10 */
|
||||
void (*itcl_InitList) (Itcl_List *listPtr); /* 11 */
|
||||
void (*itcl_DeleteList) (Itcl_List *listPtr); /* 12 */
|
||||
Itcl_ListElem * (*itcl_CreateListElem) (Itcl_List *listPtr); /* 13 */
|
||||
Itcl_ListElem * (*itcl_DeleteListElem) (Itcl_ListElem *elemPtr); /* 14 */
|
||||
Itcl_ListElem * (*itcl_InsertList) (Itcl_List *listPtr, ClientData val); /* 15 */
|
||||
Itcl_ListElem * (*itcl_InsertListElem) (Itcl_ListElem *pos, ClientData val); /* 16 */
|
||||
Itcl_ListElem * (*itcl_AppendList) (Itcl_List *listPtr, ClientData val); /* 17 */
|
||||
Itcl_ListElem * (*itcl_AppendListElem) (Itcl_ListElem *pos, ClientData val); /* 18 */
|
||||
void (*itcl_SetListValue) (Itcl_ListElem *elemPtr, ClientData val); /* 19 */
|
||||
void (*itcl_EventuallyFree) (ClientData cdata, Tcl_FreeProc *fproc); /* 20 */
|
||||
void (*itcl_PreserveData) (ClientData cdata); /* 21 */
|
||||
void (*itcl_ReleaseData) (ClientData cdata); /* 22 */
|
||||
Itcl_InterpState (*itcl_SaveInterpState) (Tcl_Interp *interp, int status); /* 23 */
|
||||
int (*itcl_RestoreInterpState) (Tcl_Interp *interp, Itcl_InterpState state); /* 24 */
|
||||
void (*itcl_DiscardInterpState) (Itcl_InterpState state); /* 25 */
|
||||
void * (*itcl_Alloc) (size_t size); /* 26 */
|
||||
void (*itcl_Free) (void *ptr); /* 27 */
|
||||
} ItclStubs;
|
||||
|
||||
extern const ItclStubs *itclStubsPtr;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_ITCL_STUBS)
|
||||
|
||||
/*
|
||||
* Inline function declarations:
|
||||
*/
|
||||
|
||||
/* Slot 0 is reserved */
|
||||
/* Slot 1 is reserved */
|
||||
#define Itcl_RegisterC \
|
||||
(itclStubsPtr->itcl_RegisterC) /* 2 */
|
||||
#define Itcl_RegisterObjC \
|
||||
(itclStubsPtr->itcl_RegisterObjC) /* 3 */
|
||||
#define Itcl_FindC \
|
||||
(itclStubsPtr->itcl_FindC) /* 4 */
|
||||
#define Itcl_InitStack \
|
||||
(itclStubsPtr->itcl_InitStack) /* 5 */
|
||||
#define Itcl_DeleteStack \
|
||||
(itclStubsPtr->itcl_DeleteStack) /* 6 */
|
||||
#define Itcl_PushStack \
|
||||
(itclStubsPtr->itcl_PushStack) /* 7 */
|
||||
#define Itcl_PopStack \
|
||||
(itclStubsPtr->itcl_PopStack) /* 8 */
|
||||
#define Itcl_PeekStack \
|
||||
(itclStubsPtr->itcl_PeekStack) /* 9 */
|
||||
#define Itcl_GetStackValue \
|
||||
(itclStubsPtr->itcl_GetStackValue) /* 10 */
|
||||
#define Itcl_InitList \
|
||||
(itclStubsPtr->itcl_InitList) /* 11 */
|
||||
#define Itcl_DeleteList \
|
||||
(itclStubsPtr->itcl_DeleteList) /* 12 */
|
||||
#define Itcl_CreateListElem \
|
||||
(itclStubsPtr->itcl_CreateListElem) /* 13 */
|
||||
#define Itcl_DeleteListElem \
|
||||
(itclStubsPtr->itcl_DeleteListElem) /* 14 */
|
||||
#define Itcl_InsertList \
|
||||
(itclStubsPtr->itcl_InsertList) /* 15 */
|
||||
#define Itcl_InsertListElem \
|
||||
(itclStubsPtr->itcl_InsertListElem) /* 16 */
|
||||
#define Itcl_AppendList \
|
||||
(itclStubsPtr->itcl_AppendList) /* 17 */
|
||||
#define Itcl_AppendListElem \
|
||||
(itclStubsPtr->itcl_AppendListElem) /* 18 */
|
||||
#define Itcl_SetListValue \
|
||||
(itclStubsPtr->itcl_SetListValue) /* 19 */
|
||||
#define Itcl_EventuallyFree \
|
||||
(itclStubsPtr->itcl_EventuallyFree) /* 20 */
|
||||
#define Itcl_PreserveData \
|
||||
(itclStubsPtr->itcl_PreserveData) /* 21 */
|
||||
#define Itcl_ReleaseData \
|
||||
(itclStubsPtr->itcl_ReleaseData) /* 22 */
|
||||
#define Itcl_SaveInterpState \
|
||||
(itclStubsPtr->itcl_SaveInterpState) /* 23 */
|
||||
#define Itcl_RestoreInterpState \
|
||||
(itclStubsPtr->itcl_RestoreInterpState) /* 24 */
|
||||
#define Itcl_DiscardInterpState \
|
||||
(itclStubsPtr->itcl_DiscardInterpState) /* 25 */
|
||||
#define Itcl_Alloc \
|
||||
(itclStubsPtr->itcl_Alloc) /* 26 */
|
||||
#define Itcl_Free \
|
||||
(itclStubsPtr->itcl_Free) /* 27 */
|
||||
|
||||
#endif /* defined(USE_ITCL_STUBS) */
|
||||
|
||||
/* !END!: Do not edit above this line. */
|
||||
|
||||
#endif /* _ITCLDECLS */
|
830
msys2/usr/include/tcl8.6/generic/itclInt.h
Normal file
830
msys2/usr/include/tcl8.6/generic/itclInt.h
Normal file
|
@ -0,0 +1,830 @@
|
|||
/*
|
||||
* itclInt.h --
|
||||
*
|
||||
* This file contains internal definitions for the C-implemented part of a
|
||||
* Itcl
|
||||
*
|
||||
* Copyright (c) 2007 by Arnulf P. Wiedemann
|
||||
*
|
||||
* See the file "license.terms" for information on usage and redistribution of
|
||||
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#ifdef HAVE_STDINT_H
|
||||
#include <stdint.h>
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Used to tag functions that are only to be visible within the module being
|
||||
* built and not outside it (where this is supported by the linker).
|
||||
*/
|
||||
|
||||
#ifndef MODULE_SCOPE
|
||||
# ifdef __cplusplus
|
||||
# define MODULE_SCOPE extern "C"
|
||||
# else
|
||||
# define MODULE_SCOPE extern
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
#include <tclOO.h>
|
||||
#include "itcl.h"
|
||||
#include "itclMigrate2TclCore.h"
|
||||
#include "itclTclIntStubsFcn.h"
|
||||
|
||||
/*
|
||||
* Utility macros: STRINGIFY takes an argument and wraps it in "" (double
|
||||
* quotation marks).
|
||||
*/
|
||||
|
||||
#ifndef STRINGIFY
|
||||
# define STRINGIFY(x) STRINGIFY1(x)
|
||||
# define STRINGIFY1(x) #x
|
||||
#endif
|
||||
|
||||
/*
|
||||
* MSVC 8.0 started to mark many standard C library functions depreciated
|
||||
* including the *printf family and others. Tell it to shut up.
|
||||
* (_MSC_VER is 1200 for VC6, 1300 or 1310 for vc7.net, 1400 for 8.0)
|
||||
*/
|
||||
#if defined(_MSC_VER)
|
||||
# pragma warning(disable:4244)
|
||||
# if _MSC_VER >= 1400
|
||||
# pragma warning(disable:4267)
|
||||
# pragma warning(disable:4996)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Since the Tcl/Tk distribution doesn't perform any asserts,
|
||||
* dynamic loading can fail to find the __assert function.
|
||||
* As a workaround, we'll include our own.
|
||||
*/
|
||||
|
||||
#undef assert
|
||||
#if defined(NDEBUG) && !defined(DEBUG)
|
||||
#define assert(EX) ((void)0)
|
||||
#else /* !NDEBUG || DEBUG */
|
||||
#define assert(EX) (void)((EX) || (Itcl_Assert(STRINGIFY(EX), __FILE__, __LINE__), 0))
|
||||
#endif
|
||||
|
||||
#define ITCL_INTERP_DATA "itcl_data"
|
||||
#define ITCL_TK_VERSION "8.6"
|
||||
|
||||
/*
|
||||
* Convenience macros for iterating through hash tables. FOREACH_HASH_DECLS
|
||||
* sets up the declarations needed for the main macro, FOREACH_HASH, which
|
||||
* does the actual iteration. FOREACH_HASH_VALUE is a restricted version that
|
||||
* only iterates over values.
|
||||
*/
|
||||
|
||||
#define FOREACH_HASH_DECLS \
|
||||
Tcl_HashEntry *hPtr;Tcl_HashSearch search
|
||||
#define FOREACH_HASH(key,val,tablePtr) \
|
||||
for(hPtr=Tcl_FirstHashEntry((tablePtr),&search); hPtr!=NULL ? \
|
||||
(*(void **)&(key)=Tcl_GetHashKey((tablePtr),hPtr),\
|
||||
*(void **)&(val)=Tcl_GetHashValue(hPtr),1):0; hPtr=Tcl_NextHashEntry(&search))
|
||||
#define FOREACH_HASH_VALUE(val,tablePtr) \
|
||||
for(hPtr=Tcl_FirstHashEntry((tablePtr),&search); hPtr!=NULL ? \
|
||||
(*(void **)&(val)=Tcl_GetHashValue(hPtr),1):0;hPtr=Tcl_NextHashEntry(&search))
|
||||
|
||||
/*
|
||||
* What sort of size of things we like to allocate.
|
||||
*/
|
||||
|
||||
#define ALLOC_CHUNK 8
|
||||
|
||||
#define ITCL_INT_NAMESPACE ITCL_NAMESPACE"::internal"
|
||||
#define ITCL_INTDICTS_NAMESPACE ITCL_INT_NAMESPACE"::dicts"
|
||||
#define ITCL_VARIABLES_NAMESPACE ITCL_INT_NAMESPACE"::variables"
|
||||
#define ITCL_COMMANDS_NAMESPACE ITCL_INT_NAMESPACE"::commands"
|
||||
|
||||
typedef struct ItclFoundation {
|
||||
Itcl_Stack methodCallStack;
|
||||
Tcl_Command dispatchCommand;
|
||||
} ItclFoundation;
|
||||
|
||||
typedef struct ItclArgList {
|
||||
struct ItclArgList *nextPtr; /* pointer to next argument */
|
||||
Tcl_Obj *namePtr; /* name of the argument */
|
||||
Tcl_Obj *defaultValuePtr; /* default value or NULL if none */
|
||||
} ItclArgList;
|
||||
|
||||
/*
|
||||
* Common info for managing all known objects.
|
||||
* Each interpreter has one of these data structures stored as
|
||||
* clientData in the "itcl" namespace. It is also accessible
|
||||
* as associated data via the key ITCL_INTERP_DATA.
|
||||
*/
|
||||
struct ItclClass;
|
||||
struct ItclObject;
|
||||
struct ItclMemberFunc;
|
||||
struct EnsembleInfo;
|
||||
struct ItclDelegatedOption;
|
||||
struct ItclDelegatedFunction;
|
||||
|
||||
typedef struct ItclObjectInfo {
|
||||
Tcl_Interp *interp; /* interpreter that manages this info */
|
||||
Tcl_HashTable objects; /* list of all known objects key is
|
||||
* ioPtr */
|
||||
Tcl_HashTable objectCmds; /* list of known objects using accessCmd */
|
||||
Tcl_HashTable unused5; /* list of known objects using namePtr */
|
||||
Tcl_HashTable classes; /* list of all known classes,
|
||||
* key is iclsPtr */
|
||||
Tcl_HashTable nameClasses; /* maps from fullNamePtr to iclsPtr */
|
||||
Tcl_HashTable namespaceClasses; /* maps from nsPtr to iclsPtr */
|
||||
Tcl_HashTable procMethods; /* maps from procPtr to mFunc */
|
||||
Tcl_HashTable instances; /* maps from instanceNumber to ioPtr */
|
||||
Tcl_HashTable unused8; /* maps from ioPtr to instanceNumber */
|
||||
Tcl_HashTable frameContext; /* maps frame to context stack */
|
||||
Tcl_HashTable classTypes; /* maps from class type i.e. "widget"
|
||||
* to define value i.e. ITCL_WIDGET */
|
||||
int protection; /* protection level currently in effect */
|
||||
int useOldResolvers; /* whether to use the "old" style
|
||||
* resolvers or the CallFrame resolvers */
|
||||
Itcl_Stack clsStack; /* stack of class definitions currently
|
||||
* being parsed */
|
||||
Itcl_Stack unused; /* Removed */
|
||||
Itcl_Stack unused6; /* obsolete field */
|
||||
struct ItclObject *currIoPtr; /* object currently being constructed
|
||||
* set only during calling of constructors
|
||||
* otherwise NULL */
|
||||
Tcl_ObjectMetadataType *class_meta_type;
|
||||
/* type for getting the Itcl class info
|
||||
* from a TclOO Tcl_Object */
|
||||
const Tcl_ObjectMetadataType *object_meta_type;
|
||||
/* type for getting the Itcl object info
|
||||
* from a TclOO Tcl_Object */
|
||||
Tcl_Object clazzObjectPtr; /* the root object of Itcl */
|
||||
Tcl_Class clazzClassPtr; /* the root class of Itcl */
|
||||
struct EnsembleInfo *ensembleInfo;
|
||||
struct ItclClass *currContextIclsPtr;
|
||||
/* context class for delegated option
|
||||
* handling */
|
||||
int currClassFlags; /* flags for the class just in creation */
|
||||
int buildingWidget; /* set if in construction of a widget */
|
||||
int unparsedObjc; /* number options not parsed by
|
||||
ItclExtendedConfigure/-Cget function */
|
||||
Tcl_Obj **unparsedObjv; /* options not parsed by
|
||||
ItclExtendedConfigure/-Cget function */
|
||||
int functionFlags; /* used for creating of ItclMemberCode */
|
||||
int unused7;
|
||||
struct ItclDelegatedOption *currIdoPtr;
|
||||
/* the current delegated option info */
|
||||
int inOptionHandling; /* used to indicate for type/widget ...
|
||||
* that there is an option processing
|
||||
* and methods are allowed to be called */
|
||||
/* these are the Tcl_Obj Ptrs for the clazz unknown procedure */
|
||||
/* need to store them to be able to free them at the end */
|
||||
int itclWidgetInitted; /* set to 1 if itclWidget.tcl has already
|
||||
* been called
|
||||
*/
|
||||
int itclHullCmdsInitted; /* set to 1 if itclHullCmds.tcl has already
|
||||
* been called
|
||||
*/
|
||||
Tcl_Obj *unused2;
|
||||
Tcl_Obj *unused3;
|
||||
Tcl_Obj *unused4;
|
||||
Tcl_Obj *infoVarsPtr;
|
||||
Tcl_Obj *unused9;
|
||||
Tcl_Obj *infoVars4Ptr;
|
||||
Tcl_Obj *typeDestructorArgumentPtr;
|
||||
struct ItclObject *lastIoPtr; /* last object constructed */
|
||||
Tcl_Command infoCmd;
|
||||
} ItclObjectInfo;
|
||||
|
||||
typedef struct EnsembleInfo {
|
||||
Tcl_HashTable ensembles; /* list of all known ensembles */
|
||||
Tcl_HashTable subEnsembles; /* list of all known subensembles */
|
||||
int numEnsembles;
|
||||
Tcl_Namespace *ensembleNsPtr;
|
||||
} EnsembleInfo;
|
||||
/*
|
||||
* Representation for each [incr Tcl] class.
|
||||
*/
|
||||
#define ITCL_CLASS 0x1
|
||||
#define ITCL_TYPE 0x2
|
||||
#define ITCL_WIDGET 0x4
|
||||
#define ITCL_WIDGETADAPTOR 0x8
|
||||
#define ITCL_ECLASS 0x10
|
||||
#define ITCL_NWIDGET 0x20
|
||||
#define ITCL_WIDGET_FRAME 0x40
|
||||
#define ITCL_WIDGET_LABEL_FRAME 0x80
|
||||
#define ITCL_WIDGET_TOPLEVEL 0x100
|
||||
#define ITCL_WIDGET_TTK_FRAME 0x200
|
||||
#define ITCL_WIDGET_TTK_LABEL_FRAME 0x400
|
||||
#define ITCL_WIDGET_TTK_TOPLEVEL 0x800
|
||||
#define ITCL_CLASS_IS_DELETED 0x1000
|
||||
#define ITCL_CLASS_IS_DESTROYED 0x2000
|
||||
#define ITCL_CLASS_NS_IS_DESTROYED 0x4000
|
||||
#define ITCL_CLASS_IS_RENAMED 0x8000 /* unused */
|
||||
#define ITCL_CLASS_IS_FREED 0x10000
|
||||
#define ITCL_CLASS_DERIVED_RELEASED 0x20000
|
||||
#define ITCL_CLASS_NS_TEARDOWN 0x40000
|
||||
#define ITCL_CLASS_NO_VARNS_DELETE 0x80000
|
||||
#define ITCL_CLASS_SHOULD_VARNS_DELETE 0x100000
|
||||
#define ITCL_CLASS_DESTRUCTOR_CALLED 0x400000
|
||||
|
||||
|
||||
typedef struct ItclClass {
|
||||
Tcl_Obj *namePtr; /* class name */
|
||||
Tcl_Obj *fullNamePtr; /* fully qualified class name */
|
||||
Tcl_Interp *interp; /* interpreter that manages this info */
|
||||
Tcl_Namespace *nsPtr; /* namespace representing class scope */
|
||||
Tcl_Command accessCmd; /* access command for creating instances */
|
||||
Tcl_Command thisCmd; /* needed for deletion of class */
|
||||
|
||||
struct ItclObjectInfo *infoPtr;
|
||||
/* info about all known objects
|
||||
* and other stuff like stacks */
|
||||
Itcl_List bases; /* list of base classes */
|
||||
Itcl_List derived; /* list of all derived classes */
|
||||
Tcl_HashTable heritage; /* table of all base classes. Look up
|
||||
* by pointer to class definition. This
|
||||
* provides fast lookup for inheritance
|
||||
* tests. */
|
||||
Tcl_Obj *initCode; /* initialization code for new objs */
|
||||
Tcl_HashTable variables; /* definitions for all data members
|
||||
in this class. Look up simple string
|
||||
names and get back ItclVariable* ptrs */
|
||||
Tcl_HashTable options; /* definitions for all option members
|
||||
in this class. Look up simple string
|
||||
names and get back ItclOption* ptrs */
|
||||
Tcl_HashTable components; /* definitions for all component members
|
||||
in this class. Look up simple string
|
||||
names and get back ItclComponent* ptrs */
|
||||
Tcl_HashTable functions; /* definitions for all member functions
|
||||
in this class. Look up simple string
|
||||
names and get back ItclMemberFunc* ptrs */
|
||||
Tcl_HashTable delegatedOptions; /* definitions for all delegated options
|
||||
in this class. Look up simple string
|
||||
names and get back
|
||||
ItclDelegatedOption * ptrs */
|
||||
Tcl_HashTable delegatedFunctions; /* definitions for all delegated methods
|
||||
or procs in this class. Look up simple
|
||||
string names and get back
|
||||
ItclDelegatedFunction * ptrs */
|
||||
Tcl_HashTable methodVariables; /* definitions for all methodvariable members
|
||||
in this class. Look up simple string
|
||||
names and get back
|
||||
ItclMethodVariable* ptrs */
|
||||
int numInstanceVars; /* number of instance vars in variables
|
||||
table */
|
||||
Tcl_HashTable classCommons; /* used for storing variable namespace
|
||||
* string for Tcl_Resolve */
|
||||
Tcl_HashTable resolveVars; /* all possible names for variables in
|
||||
* this class (e.g., x, foo::x, etc.) */
|
||||
Tcl_HashTable resolveCmds; /* all possible names for functions in
|
||||
* this class (e.g., x, foo::x, etc.) */
|
||||
Tcl_HashTable contextCache; /* cache for function contexts */
|
||||
struct ItclMemberFunc *unused2;
|
||||
/* the class constructor or NULL */
|
||||
struct ItclMemberFunc *unused3;
|
||||
/* the class destructor or NULL */
|
||||
struct ItclMemberFunc *unused1;
|
||||
Tcl_Resolve *resolvePtr;
|
||||
Tcl_Obj *widgetClassPtr; /* class name for widget if class is a
|
||||
* ::itcl::widget */
|
||||
Tcl_Obj *hullTypePtr; /* hulltype name for widget if class is a
|
||||
* ::itcl::widget */
|
||||
Tcl_Object oPtr; /* TclOO class object */
|
||||
Tcl_Class clsPtr; /* TclOO class */
|
||||
int numCommons; /* number of commons in this class */
|
||||
int numVariables; /* number of variables in this class */
|
||||
int numOptions; /* number of options in this class */
|
||||
int unique; /* unique number for #auto generation */
|
||||
int flags; /* maintains class status */
|
||||
int callRefCount; /* prevent deleting of class if refcount>1 */
|
||||
Tcl_Obj *typeConstructorPtr; /* initialization for types */
|
||||
int destructorHasBeenCalled; /* prevent multiple invocations of destrcutor */
|
||||
int refCount;
|
||||
} ItclClass;
|
||||
|
||||
typedef struct ItclHierIter {
|
||||
ItclClass *current; /* current position in hierarchy */
|
||||
Itcl_Stack stack; /* stack used for traversal */
|
||||
} ItclHierIter;
|
||||
|
||||
#define ITCL_OBJECT_IS_DELETED 0x01
|
||||
#define ITCL_OBJECT_IS_DESTRUCTED 0x02
|
||||
#define ITCL_OBJECT_IS_DESTROYED 0x04
|
||||
#define ITCL_OBJECT_IS_RENAMED 0x08
|
||||
#define ITCL_OBJECT_CLASS_DESTRUCTED 0x10
|
||||
#define ITCL_TCLOO_OBJECT_IS_DELETED 0x20
|
||||
#define ITCL_OBJECT_DESTRUCT_ERROR 0x40
|
||||
#define ITCL_OBJECT_SHOULD_VARNS_DELETE 0x80
|
||||
#define ITCL_OBJECT_ROOT_METHOD 0x8000
|
||||
|
||||
/*
|
||||
* Representation for each [incr Tcl] object.
|
||||
*/
|
||||
typedef struct ItclObject {
|
||||
ItclClass *iclsPtr; /* most-specific class */
|
||||
Tcl_Command accessCmd; /* object access command */
|
||||
|
||||
Tcl_HashTable* constructed; /* temp storage used during construction */
|
||||
Tcl_HashTable* destructed; /* temp storage used during destruction */
|
||||
Tcl_HashTable objectVariables;
|
||||
/* used for storing Tcl_Var entries for
|
||||
* variable resolving, key is ivPtr of
|
||||
* variable, value is varPtr */
|
||||
Tcl_HashTable objectOptions; /* definitions for all option members
|
||||
in this object. Look up option namePtr
|
||||
names and get back ItclOption* ptrs */
|
||||
Tcl_HashTable objectComponents; /* definitions for all component members
|
||||
in this object. Look up component namePtr
|
||||
names and get back ItclComponent* ptrs */
|
||||
Tcl_HashTable objectMethodVariables;
|
||||
/* definitions for all methodvariable members
|
||||
in this object. Look up methodvariable
|
||||
namePtr names and get back
|
||||
ItclMethodVariable* ptrs */
|
||||
Tcl_HashTable objectDelegatedOptions;
|
||||
/* definitions for all delegated option
|
||||
members in this object. Look up option
|
||||
namePtr names and get back
|
||||
ItclOption* ptrs */
|
||||
Tcl_HashTable objectDelegatedFunctions;
|
||||
/* definitions for all delegated function
|
||||
members in this object. Look up function
|
||||
namePtr names and get back
|
||||
ItclMemberFunc * ptrs */
|
||||
Tcl_HashTable contextCache; /* cache for function contexts */
|
||||
Tcl_Obj *namePtr;
|
||||
Tcl_Obj *origNamePtr; /* the original name before any rename */
|
||||
Tcl_Obj *createNamePtr; /* the temp name before any rename
|
||||
* mostly used for widgetadaptor
|
||||
* because that hijackes the name
|
||||
* often when installing the hull */
|
||||
Tcl_Interp *interp;
|
||||
ItclObjectInfo *infoPtr;
|
||||
Tcl_Obj *varNsNamePtr;
|
||||
Tcl_Object oPtr; /* the TclOO object */
|
||||
Tcl_Resolve *resolvePtr;
|
||||
int flags;
|
||||
int callRefCount; /* prevent deleting of object if refcount > 1 */
|
||||
Tcl_Obj *hullWindowNamePtr; /* the window path name for the hull
|
||||
* (before renaming in installhull) */
|
||||
int destructorHasBeenCalled; /* is set when the destructor is called
|
||||
* to avoid callin destructor twice */
|
||||
int noComponentTrace; /* don't call component traces if
|
||||
* setting components in DelegationInstall */
|
||||
int hadConstructorError; /* needed for multiple calls of CallItclObjectCmd */
|
||||
} ItclObject;
|
||||
|
||||
#define ITCL_IGNORE_ERRS 0x002 /* useful for construction/destruction */
|
||||
|
||||
typedef struct ItclResolveInfo {
|
||||
int flags;
|
||||
ItclClass *iclsPtr;
|
||||
ItclObject *ioPtr;
|
||||
} ItclResolveInfo;
|
||||
|
||||
#define ITCL_RESOLVE_CLASS 0x01
|
||||
#define ITCL_RESOLVE_OBJECT 0x02
|
||||
|
||||
/*
|
||||
* Implementation for any code body in an [incr Tcl] class.
|
||||
*/
|
||||
typedef struct ItclMemberCode {
|
||||
int flags; /* flags describing implementation */
|
||||
int argcount; /* number of args in arglist */
|
||||
int maxargcount; /* max number of args in arglist */
|
||||
Tcl_Obj *usagePtr; /* usage string for error messages */
|
||||
Tcl_Obj *argumentPtr; /* the function arguments */
|
||||
Tcl_Obj *bodyPtr; /* the function body */
|
||||
ItclArgList *argListPtr; /* the parsed arguments */
|
||||
union {
|
||||
Tcl_CmdProc *argCmd; /* (argc,argv) C implementation */
|
||||
Tcl_ObjCmdProc *objCmd; /* (objc,objv) C implementation */
|
||||
} cfunc;
|
||||
ClientData clientData; /* client data for C implementations */
|
||||
} ItclMemberCode;
|
||||
|
||||
/*
|
||||
* Flag bits for ItclMemberCode:
|
||||
*/
|
||||
#define ITCL_IMPLEMENT_NONE 0x001 /* no implementation */
|
||||
#define ITCL_IMPLEMENT_TCL 0x002 /* Tcl implementation */
|
||||
#define ITCL_IMPLEMENT_ARGCMD 0x004 /* (argc,argv) C implementation */
|
||||
#define ITCL_IMPLEMENT_OBJCMD 0x008 /* (objc,objv) C implementation */
|
||||
#define ITCL_IMPLEMENT_C 0x00c /* either kind of C implementation */
|
||||
|
||||
#define Itcl_IsMemberCodeImplemented(mcode) \
|
||||
(((mcode)->flags & ITCL_IMPLEMENT_NONE) == 0)
|
||||
|
||||
/*
|
||||
* Flag bits for ItclMember: functions and variables
|
||||
*/
|
||||
#define ITCL_COMMON 0x010 /* non-zero => is a "proc" or common
|
||||
* variable */
|
||||
|
||||
/*
|
||||
* Flag bits for ItclMember: functions
|
||||
*/
|
||||
#define ITCL_CONSTRUCTOR 0x020 /* non-zero => is a constructor */
|
||||
#define ITCL_DESTRUCTOR 0x040 /* non-zero => is a destructor */
|
||||
#define ITCL_ARG_SPEC 0x080 /* non-zero => has an argument spec */
|
||||
#define ITCL_BODY_SPEC 0x100 /* non-zero => has an body spec */
|
||||
#define ITCL_BUILTIN 0x400 /* non-zero => built-in method */
|
||||
#define ITCL_COMPONENT 0x800 /* non-zero => component */
|
||||
#define ITCL_TYPE_METHOD 0x1000 /* non-zero => typemethod */
|
||||
#define ITCL_METHOD 0x2000 /* non-zero => method */
|
||||
|
||||
/*
|
||||
* Flag bits for ItclMember: variables
|
||||
*/
|
||||
#define ITCL_THIS_VAR 0x20 /* non-zero => built-in "this" variable */
|
||||
#define ITCL_OPTIONS_VAR 0x40 /* non-zero => built-in "itcl_options"
|
||||
* variable */
|
||||
#define ITCL_TYPE_VAR 0x80 /* non-zero => built-in "type" variable */
|
||||
/* no longer used ??? */
|
||||
#define ITCL_SELF_VAR 0x100 /* non-zero => built-in "self" variable */
|
||||
#define ITCL_SELFNS_VAR 0x200 /* non-zero => built-in "selfns"
|
||||
* variable */
|
||||
#define ITCL_WIN_VAR 0x400 /* non-zero => built-in "win" variable */
|
||||
#define ITCL_COMPONENT_VAR 0x800 /* non-zero => component variable */
|
||||
#define ITCL_HULL_VAR 0x1000 /* non-zero => built-in "itcl_hull"
|
||||
* variable */
|
||||
#define ITCL_OPTION_READONLY 0x2000 /* non-zero => readonly */
|
||||
#define ITCL_VARIABLE 0x4000 /* non-zero => normal variable */
|
||||
#define ITCL_TYPE_VARIABLE 0x8000 /* non-zero => typevariable */
|
||||
#define ITCL_OPTION_INITTED 0x10000 /* non-zero => option has been initialized */
|
||||
#define ITCL_OPTION_COMP_VAR 0x20000 /* variable to collect option components of extendedclass */
|
||||
|
||||
/*
|
||||
* Instance components.
|
||||
*/
|
||||
struct ItclVariable;
|
||||
typedef struct ItclComponent {
|
||||
Tcl_Obj *namePtr; /* member name */
|
||||
struct ItclVariable *ivPtr; /* variable for this component */
|
||||
int flags;
|
||||
int haveKeptOptions;
|
||||
Tcl_HashTable keptOptions; /* table of options to keep */
|
||||
} ItclComponent;
|
||||
|
||||
#define ITCL_COMPONENT_INHERIT 0x01
|
||||
#define ITCL_COMPONENT_PUBLIC 0x02
|
||||
|
||||
typedef struct ItclDelegatedFunction {
|
||||
Tcl_Obj *namePtr;
|
||||
ItclComponent *icPtr;
|
||||
Tcl_Obj *asPtr;
|
||||
Tcl_Obj *usingPtr;
|
||||
Tcl_HashTable exceptions;
|
||||
int flags;
|
||||
} ItclDelegatedFunction;
|
||||
|
||||
/*
|
||||
* Representation of member functions in an [incr Tcl] class.
|
||||
*/
|
||||
typedef struct ItclMemberFunc {
|
||||
Tcl_Obj* namePtr; /* member name */
|
||||
Tcl_Obj* fullNamePtr; /* member name with "class::" qualifier */
|
||||
ItclClass* iclsPtr; /* class containing this member */
|
||||
int protection; /* protection level */
|
||||
int flags; /* flags describing member (see above) */
|
||||
ItclObjectInfo *infoPtr;
|
||||
ItclMemberCode *codePtr; /* code associated with member */
|
||||
Tcl_Command accessCmd; /* Tcl command installed for this function */
|
||||
int argcount; /* number of args in arglist */
|
||||
int maxargcount; /* max number of args in arglist */
|
||||
Tcl_Obj *usagePtr; /* usage string for error messages */
|
||||
Tcl_Obj *argumentPtr; /* the function arguments */
|
||||
Tcl_Obj *builtinArgumentPtr; /* the function arguments for builtin functions */
|
||||
Tcl_Obj *origArgsPtr; /* the argument string of the original definition */
|
||||
Tcl_Obj *bodyPtr; /* the function body */
|
||||
ItclArgList *argListPtr; /* the parsed arguments */
|
||||
ItclClass *declaringClassPtr; /* the class which declared the method/proc */
|
||||
ClientData tmPtr; /* TclOO methodPtr */
|
||||
ItclDelegatedFunction *idmPtr;
|
||||
/* if the function is delegated != NULL */
|
||||
} ItclMemberFunc;
|
||||
|
||||
/*
|
||||
* Instance variables.
|
||||
*/
|
||||
typedef struct ItclVariable {
|
||||
Tcl_Obj *namePtr; /* member name */
|
||||
Tcl_Obj *fullNamePtr; /* member name with "class::" qualifier */
|
||||
ItclClass *iclsPtr; /* class containing this member */
|
||||
ItclObjectInfo *infoPtr;
|
||||
ItclMemberCode *codePtr; /* code associated with member */
|
||||
Tcl_Obj *init; /* initial value */
|
||||
Tcl_Obj *arrayInitPtr; /* initial value if variable should be array */
|
||||
int protection; /* protection level */
|
||||
int flags; /* flags describing member (see below) */
|
||||
int initted; /* is set when first time initted, to check
|
||||
* for example itcl_hull var, which can be only
|
||||
* initialized once */
|
||||
} ItclVariable;
|
||||
|
||||
|
||||
struct ItclOption;
|
||||
|
||||
typedef struct ItclDelegatedOption {
|
||||
Tcl_Obj *namePtr;
|
||||
Tcl_Obj *resourceNamePtr;
|
||||
Tcl_Obj *classNamePtr;
|
||||
struct ItclOption *ioptPtr; /* the option name or null for "*" */
|
||||
ItclComponent *icPtr; /* the component where the delegation goes
|
||||
* to */
|
||||
Tcl_Obj *asPtr;
|
||||
Tcl_HashTable exceptions; /* exceptions from delegation */
|
||||
} ItclDelegatedOption;
|
||||
|
||||
/*
|
||||
* Instance options.
|
||||
*/
|
||||
typedef struct ItclOption {
|
||||
/* within a class hierarchy there must be only
|
||||
* one option with the same name !! */
|
||||
Tcl_Obj *namePtr; /* member name */
|
||||
Tcl_Obj *fullNamePtr; /* member name with "class::" qualifier */
|
||||
Tcl_Obj *resourceNamePtr;
|
||||
Tcl_Obj *classNamePtr;
|
||||
ItclClass *iclsPtr; /* class containing this member */
|
||||
int protection; /* protection level */
|
||||
int flags; /* flags describing member (see below) */
|
||||
ItclMemberCode *codePtr; /* code associated with member */
|
||||
Tcl_Obj *defaultValuePtr; /* initial value */
|
||||
Tcl_Obj *cgetMethodPtr;
|
||||
Tcl_Obj *cgetMethodVarPtr;
|
||||
Tcl_Obj *configureMethodPtr;
|
||||
Tcl_Obj *configureMethodVarPtr;
|
||||
Tcl_Obj *validateMethodPtr;
|
||||
Tcl_Obj *validateMethodVarPtr;
|
||||
ItclDelegatedOption *idoPtr;
|
||||
/* if the option is delegated != NULL */
|
||||
} ItclOption;
|
||||
|
||||
/*
|
||||
* Instance methodvariables.
|
||||
*/
|
||||
typedef struct ItclMethodVariable {
|
||||
Tcl_Obj *namePtr; /* member name */
|
||||
Tcl_Obj *fullNamePtr; /* member name with "class::" qualifier */
|
||||
ItclClass *iclsPtr; /* class containing this member */
|
||||
int protection; /* protection level */
|
||||
int flags; /* flags describing member (see below) */
|
||||
Tcl_Obj *defaultValuePtr;
|
||||
Tcl_Obj *callbackPtr;
|
||||
} ItclMethodVariable;
|
||||
|
||||
#define VAR_TYPE_VARIABLE 1
|
||||
#define VAR_TYPE_COMMON 2
|
||||
|
||||
#define CMD_TYPE_METHOD 1
|
||||
#define CMD_TYPE_PROC 2
|
||||
|
||||
typedef struct ItclClassCmdInfo {
|
||||
int type;
|
||||
int protection;
|
||||
int cmdNum;
|
||||
Tcl_Namespace *nsPtr;
|
||||
Tcl_Namespace *declaringNsPtr;
|
||||
} ItclClassCmdInfo;
|
||||
|
||||
/*
|
||||
* Instance variable lookup entry.
|
||||
*/
|
||||
typedef struct ItclVarLookup {
|
||||
ItclVariable* ivPtr; /* variable definition */
|
||||
int usage; /* number of uses for this record */
|
||||
int accessible; /* non-zero => accessible from class with
|
||||
* this lookup record in its resolveVars */
|
||||
char *leastQualName; /* simplist name for this variable, with
|
||||
* the fewest qualifiers. This string is
|
||||
* taken from the resolveVars table, so
|
||||
* it shouldn't be freed. */
|
||||
int varNum;
|
||||
Tcl_Var varPtr;
|
||||
} ItclVarLookup;
|
||||
|
||||
/*
|
||||
* Instance command lookup entry.
|
||||
*/
|
||||
typedef struct ItclCmdLookup {
|
||||
ItclMemberFunc* imPtr; /* function definition */
|
||||
int cmdNum;
|
||||
ItclClassCmdInfo *classCmdInfoPtr;
|
||||
Tcl_Command cmdPtr;
|
||||
} ItclCmdLookup;
|
||||
|
||||
typedef struct ItclCallContext {
|
||||
int objectFlags;
|
||||
Tcl_Namespace *nsPtr;
|
||||
ItclObject *ioPtr;
|
||||
ItclMemberFunc *imPtr;
|
||||
int refCount;
|
||||
} ItclCallContext;
|
||||
|
||||
/*
|
||||
* The macro below is used to modify a "char" value (e.g. by casting
|
||||
* it to an unsigned character) so that it can be used safely with
|
||||
* macros such as isspace.
|
||||
*/
|
||||
|
||||
#define UCHAR(c) ((unsigned char) (c))
|
||||
/*
|
||||
* Macros used to cast between pointers and integers (e.g. when storing an int
|
||||
* in ClientData), on 64-bit architectures they avoid gcc warning about "cast
|
||||
* to/from pointer from/to integer of different size".
|
||||
*/
|
||||
|
||||
#if !defined(INT2PTR) && !defined(PTR2INT)
|
||||
# if defined(HAVE_INTPTR_T) || defined(intptr_t)
|
||||
# define INT2PTR(p) ((void*)(intptr_t)(p))
|
||||
# define PTR2INT(p) ((int)(intptr_t)(p))
|
||||
# else
|
||||
# define INT2PTR(p) ((void*)(p))
|
||||
# define PTR2INT(p) ((int)(p))
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef ITCL_DEBUG
|
||||
MODULE_SCOPE int _itcl_debug_level;
|
||||
MODULE_SCOPE void ItclShowArgs(int level, const char *str, int objc,
|
||||
Tcl_Obj * const* objv);
|
||||
#else
|
||||
#define ItclShowArgs(a,b,c,d)
|
||||
#endif
|
||||
|
||||
MODULE_SCOPE Tcl_ObjCmdProc ItclCallCCommand;
|
||||
MODULE_SCOPE Tcl_ObjCmdProc ItclObjectUnknownCommand;
|
||||
MODULE_SCOPE int ItclCheckCallProc(ClientData clientData, Tcl_Interp *interp,
|
||||
Tcl_ObjectContext contextPtr, Tcl_CallFrame *framePtr, int *isFinished);
|
||||
|
||||
MODULE_SCOPE void ItclPreserveClass(ItclClass *iclsPtr);
|
||||
MODULE_SCOPE void ItclReleaseClass(ClientData iclsPtr);
|
||||
|
||||
MODULE_SCOPE ItclFoundation *ItclGetFoundation(Tcl_Interp *interp);
|
||||
MODULE_SCOPE Tcl_ObjCmdProc ItclClassCommandDispatcher;
|
||||
MODULE_SCOPE Tcl_Command Itcl_CmdAliasProc(Tcl_Interp *interp,
|
||||
Tcl_Namespace *nsPtr, const char *cmdName, ClientData clientData);
|
||||
MODULE_SCOPE Tcl_Var Itcl_VarAliasProc(Tcl_Interp *interp,
|
||||
Tcl_Namespace *nsPtr, const char *VarName, ClientData clientData);
|
||||
MODULE_SCOPE int ItclIsClass(Tcl_Interp *interp, Tcl_Command cmd);
|
||||
MODULE_SCOPE int ItclCheckCallMethod(ClientData clientData, Tcl_Interp *interp,
|
||||
Tcl_ObjectContext contextPtr, Tcl_CallFrame *framePtr, int *isFinished);
|
||||
MODULE_SCOPE int ItclAfterCallMethod(ClientData clientData, Tcl_Interp *interp,
|
||||
Tcl_ObjectContext contextPtr, Tcl_Namespace *nsPtr, int result);
|
||||
MODULE_SCOPE void ItclReportObjectUsage(Tcl_Interp *interp,
|
||||
ItclObject *contextIoPtr, Tcl_Namespace *callerNsPtr,
|
||||
Tcl_Namespace *contextNsPtr);
|
||||
MODULE_SCOPE int ItclMapMethodNameProc(Tcl_Interp *interp, Tcl_Object oPtr,
|
||||
Tcl_Class *startClsPtr, Tcl_Obj *methodObj);
|
||||
MODULE_SCOPE int ItclCreateArgList(Tcl_Interp *interp, const char *str,
|
||||
int *argcPtr, int *maxArgcPtr, Tcl_Obj **usagePtr,
|
||||
ItclArgList **arglistPtrPtr, ItclMemberFunc *imPtr,
|
||||
const char *commandName);
|
||||
MODULE_SCOPE int ItclObjectCmd(ClientData clientData, Tcl_Interp *interp,
|
||||
Tcl_Object oPtr, Tcl_Class clsPtr, int objc, Tcl_Obj *const *objv);
|
||||
MODULE_SCOPE int ItclCreateObject (Tcl_Interp *interp, const char* name,
|
||||
ItclClass *iclsPtr, int objc, Tcl_Obj *const objv[]);
|
||||
MODULE_SCOPE void ItclDeleteObjectVariablesNamespace(Tcl_Interp *interp,
|
||||
ItclObject *ioPtr);
|
||||
MODULE_SCOPE void ItclDeleteClassVariablesNamespace(Tcl_Interp *interp,
|
||||
ItclClass *iclsPtr);
|
||||
MODULE_SCOPE int ItclInfoInit(Tcl_Interp *interp, ItclObjectInfo *infoPtr);
|
||||
|
||||
MODULE_SCOPE Tcl_HashEntry *ItclResolveVarEntry(
|
||||
ItclClass* iclsPtr, const char *varName);
|
||||
|
||||
struct Tcl_ResolvedVarInfo;
|
||||
MODULE_SCOPE int Itcl_ClassCmdResolver(Tcl_Interp *interp, const char* name,
|
||||
Tcl_Namespace *nsPtr, int flags, Tcl_Command *rPtr);
|
||||
MODULE_SCOPE int Itcl_ClassVarResolver(Tcl_Interp *interp, const char* name,
|
||||
Tcl_Namespace *nsPtr, int flags, Tcl_Var *rPtr);
|
||||
MODULE_SCOPE int Itcl_ClassCompiledVarResolver(Tcl_Interp *interp,
|
||||
const char* name, int length, Tcl_Namespace *nsPtr,
|
||||
struct Tcl_ResolvedVarInfo **rPtr);
|
||||
MODULE_SCOPE int Itcl_ClassCmdResolver2(Tcl_Interp *interp, const char* name,
|
||||
Tcl_Namespace *nsPtr, int flags, Tcl_Command *rPtr);
|
||||
MODULE_SCOPE int Itcl_ClassVarResolver2(Tcl_Interp *interp, const char* name,
|
||||
Tcl_Namespace *nsPtr, int flags, Tcl_Var *rPtr);
|
||||
MODULE_SCOPE int Itcl_ClassCompiledVarResolver2(Tcl_Interp *interp,
|
||||
const char* name, int length, Tcl_Namespace *nsPtr,
|
||||
struct Tcl_ResolvedVarInfo **rPtr);
|
||||
MODULE_SCOPE int ItclSetParserResolver(Tcl_Namespace *nsPtr);
|
||||
MODULE_SCOPE void ItclProcErrorProc(Tcl_Interp *interp, Tcl_Obj *procNameObj);
|
||||
MODULE_SCOPE int Itcl_CreateOption (Tcl_Interp *interp, ItclClass *iclsPtr,
|
||||
ItclOption *ioptPtr);
|
||||
MODULE_SCOPE int ItclCreateMethodVariable(Tcl_Interp *interp,
|
||||
ItclVariable *ivPtr, Tcl_Obj* defaultPtr, Tcl_Obj* callbackPtr,
|
||||
ItclMethodVariable** imvPtrPtr);
|
||||
MODULE_SCOPE int DelegationInstall(Tcl_Interp *interp, ItclObject *ioPtr,
|
||||
ItclClass *iclsPtr);
|
||||
MODULE_SCOPE ItclClass *ItclNamespace2Class(Tcl_Namespace *nsPtr);
|
||||
MODULE_SCOPE const char* ItclGetCommonInstanceVar(Tcl_Interp *interp,
|
||||
const char *name, const char *name2, ItclObject *contextIoPtr,
|
||||
ItclClass *contextIclsPtr);
|
||||
MODULE_SCOPE int ItclCreateMethod(Tcl_Interp* interp, ItclClass *iclsPtr,
|
||||
Tcl_Obj *namePtr, const char* arglist, const char* body,
|
||||
ItclMemberFunc **imPtrPtr);
|
||||
MODULE_SCOPE int Itcl_WidgetParseInit(Tcl_Interp *interp,
|
||||
ItclObjectInfo *infoPtr);
|
||||
MODULE_SCOPE void ItclDeleteObjectMetadata(ClientData clientData);
|
||||
MODULE_SCOPE void ItclDeleteClassMetadata(ClientData clientData);
|
||||
MODULE_SCOPE void ItclDeleteArgList(ItclArgList *arglistPtr);
|
||||
MODULE_SCOPE int Itcl_ClassOptionCmd(ClientData clientData, Tcl_Interp *interp,
|
||||
int objc, Tcl_Obj *const objv[]);
|
||||
MODULE_SCOPE int DelegatedOptionsInstall(Tcl_Interp *interp,
|
||||
ItclClass *iclsPtr);
|
||||
MODULE_SCOPE int Itcl_HandleDelegateOptionCmd(Tcl_Interp *interp,
|
||||
ItclObject *ioPtr, ItclClass *iclsPtr, ItclDelegatedOption **idoPtrPtr,
|
||||
int objc, Tcl_Obj *const objv[]);
|
||||
MODULE_SCOPE int Itcl_HandleDelegateMethodCmd(Tcl_Interp *interp,
|
||||
ItclObject *ioPtr, ItclClass *iclsPtr,
|
||||
ItclDelegatedFunction **idmPtrPtr, int objc, Tcl_Obj *const objv[]);
|
||||
MODULE_SCOPE int DelegateFunction(Tcl_Interp *interp, ItclObject *ioPtr,
|
||||
ItclClass *iclsPtr, Tcl_Obj *componentNamePtr,
|
||||
ItclDelegatedFunction *idmPtr);
|
||||
MODULE_SCOPE int ItclInitObjectMethodVariables(Tcl_Interp *interp,
|
||||
ItclObject *ioPtr, ItclClass *iclsPtr, const char *name);
|
||||
MODULE_SCOPE int InitTclOOFunctionPointers(Tcl_Interp *interp);
|
||||
MODULE_SCOPE ItclOption* ItclNewOption(Tcl_Interp *interp, ItclObject *ioPtr,
|
||||
ItclClass *iclsPtr, Tcl_Obj *namePtr, const char *resourceName,
|
||||
const char *className, char *init, ItclMemberCode *mCodePtr);
|
||||
MODULE_SCOPE int ItclParseOption(ItclObjectInfo *infoPtr, Tcl_Interp *interp,
|
||||
int objc, Tcl_Obj *const objv[], ItclClass *iclsPtr,
|
||||
ItclObject *ioPtr, ItclOption **ioptPtrPtr);
|
||||
MODULE_SCOPE void ItclDestroyClassNamesp(ClientData cdata);
|
||||
MODULE_SCOPE int ExpandDelegateAs(Tcl_Interp *interp, ItclObject *ioPtr,
|
||||
ItclClass *iclsPtr, ItclDelegatedFunction *idmPtr,
|
||||
const char *funcName, Tcl_Obj *listPtr);
|
||||
MODULE_SCOPE int ItclCheckForInitializedComponents(Tcl_Interp *interp,
|
||||
ItclClass *iclsPtr, ItclObject *ioPtr);
|
||||
MODULE_SCOPE int ItclCreateDelegatedFunction(Tcl_Interp *interp,
|
||||
ItclClass *iclsPtr, Tcl_Obj *methodNamePtr, ItclComponent *icPtr,
|
||||
Tcl_Obj *targetPtr, Tcl_Obj *usingPtr, Tcl_Obj *exceptionsPtr,
|
||||
ItclDelegatedFunction **idmPtrPtr);
|
||||
MODULE_SCOPE void ItclDeleteDelegatedOption(char *cdata);
|
||||
MODULE_SCOPE void Itcl_FinishList();
|
||||
MODULE_SCOPE void ItclDeleteDelegatedFunction(ItclDelegatedFunction *idmPtr);
|
||||
MODULE_SCOPE void ItclFinishEnsemble(ItclObjectInfo *infoPtr);
|
||||
MODULE_SCOPE int Itcl_EnsembleDeleteCmd(ClientData clientData,
|
||||
Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);
|
||||
MODULE_SCOPE int ItclAddClassesDictInfo(Tcl_Interp *interp, ItclClass *iclsPtr);
|
||||
MODULE_SCOPE int ItclDeleteClassesDictInfo(Tcl_Interp *interp,
|
||||
ItclClass *iclsPtr);
|
||||
MODULE_SCOPE int ItclAddObjectsDictInfo(Tcl_Interp *interp, ItclObject *ioPtr);
|
||||
MODULE_SCOPE int ItclDeleteObjectsDictInfo(Tcl_Interp *interp,
|
||||
ItclObject *ioPtr);
|
||||
MODULE_SCOPE int ItclAddOptionDictInfo(Tcl_Interp *interp, ItclClass *iclsPtr,
|
||||
ItclOption *ioptPtr);
|
||||
MODULE_SCOPE int ItclAddDelegatedOptionDictInfo(Tcl_Interp *interp,
|
||||
ItclClass *iclsPtr, ItclDelegatedOption *idoPtr);
|
||||
MODULE_SCOPE int ItclAddClassComponentDictInfo(Tcl_Interp *interp,
|
||||
ItclClass *iclsPtr, ItclComponent *icPtr);
|
||||
MODULE_SCOPE int ItclAddClassVariableDictInfo(Tcl_Interp *interp,
|
||||
ItclClass *iclsPtr, ItclVariable *ivPtr);
|
||||
MODULE_SCOPE int ItclAddClassFunctionDictInfo(Tcl_Interp *interp,
|
||||
ItclClass *iclsPtr, ItclMemberFunc *imPtr);
|
||||
MODULE_SCOPE int ItclAddClassDelegatedFunctionDictInfo(Tcl_Interp *interp,
|
||||
ItclClass *iclsPtr, ItclDelegatedFunction *idmPtr);
|
||||
MODULE_SCOPE int ItclClassCreateObject(ClientData clientData, Tcl_Interp *interp,
|
||||
int objc, Tcl_Obj *const objv[]);
|
||||
|
||||
MODULE_SCOPE void ItclRestoreInfoVars(ClientData clientData);
|
||||
|
||||
MODULE_SCOPE Tcl_ObjCmdProc Itcl_BiMyProcCmd;
|
||||
MODULE_SCOPE Tcl_ObjCmdProc Itcl_BiInstallComponentCmd;
|
||||
MODULE_SCOPE Tcl_ObjCmdProc Itcl_BiCallInstanceCmd;
|
||||
MODULE_SCOPE Tcl_ObjCmdProc Itcl_BiGetInstanceVarCmd;
|
||||
MODULE_SCOPE Tcl_ObjCmdProc Itcl_BiMyTypeMethodCmd;
|
||||
MODULE_SCOPE Tcl_ObjCmdProc Itcl_BiMyMethodCmd;
|
||||
MODULE_SCOPE Tcl_ObjCmdProc Itcl_BiMyTypeVarCmd;
|
||||
MODULE_SCOPE Tcl_ObjCmdProc Itcl_BiMyVarCmd;
|
||||
MODULE_SCOPE Tcl_ObjCmdProc Itcl_BiItclHullCmd;
|
||||
MODULE_SCOPE Tcl_ObjCmdProc Itcl_ThisCmd;
|
||||
MODULE_SCOPE Tcl_ObjCmdProc Itcl_ExtendedClassCmd;
|
||||
MODULE_SCOPE Tcl_ObjCmdProc Itcl_TypeClassCmd;
|
||||
MODULE_SCOPE Tcl_ObjCmdProc Itcl_AddObjectOptionCmd;
|
||||
MODULE_SCOPE Tcl_ObjCmdProc Itcl_AddDelegatedOptionCmd;
|
||||
MODULE_SCOPE Tcl_ObjCmdProc Itcl_AddDelegatedFunctionCmd;
|
||||
MODULE_SCOPE Tcl_ObjCmdProc Itcl_SetComponentCmd;
|
||||
MODULE_SCOPE Tcl_ObjCmdProc Itcl_ClassHullTypeCmd;
|
||||
MODULE_SCOPE Tcl_ObjCmdProc Itcl_ClassWidgetClassCmd;
|
||||
|
||||
typedef int (ItclRootMethodProc)(ItclObject *ioPtr, Tcl_Interp *interp,
|
||||
int objc, Tcl_Obj *const objv[]);
|
||||
|
||||
MODULE_SCOPE const Tcl_MethodType itclRootMethodType;
|
||||
MODULE_SCOPE ItclRootMethodProc ItclUnknownGuts;
|
||||
MODULE_SCOPE ItclRootMethodProc ItclConstructGuts;
|
||||
MODULE_SCOPE ItclRootMethodProc ItclInfoGuts;
|
||||
|
||||
#include "itcl2TclOO.h"
|
||||
|
||||
/*
|
||||
* Include all the private API, generated from itcl.decls.
|
||||
*/
|
||||
|
||||
#include "itclIntDecls.h"
|
1046
msys2/usr/include/tcl8.6/generic/itclIntDecls.h
Normal file
1046
msys2/usr/include/tcl8.6/generic/itclIntDecls.h
Normal file
File diff suppressed because it is too large
Load diff
83
msys2/usr/include/tcl8.6/generic/itclMigrate2TclCore.h
Normal file
83
msys2/usr/include/tcl8.6/generic/itclMigrate2TclCore.h
Normal file
|
@ -0,0 +1,83 @@
|
|||
#ifndef ITCL_USE_MODIFIED_TCL_H
|
||||
/* this is just to provide the definition. This struct is only used if
|
||||
* infoPtr->useOldResolvers == 0 which is not the default
|
||||
*/
|
||||
#define FRAME_HAS_RESOLVER 0x100
|
||||
typedef Tcl_Command (Tcl_CmdAliasProc)(Tcl_Interp *interp,
|
||||
Tcl_Namespace *nsPtr, const char *cmdName,
|
||||
ClientData clientData);
|
||||
typedef Tcl_Var (Tcl_VarAliasProc)(Tcl_Interp *interp,
|
||||
Tcl_Namespace *nsPtr, const char *varName,
|
||||
ClientData clientData);
|
||||
|
||||
#ifndef _TCL_RESOLVE_DEFINED
|
||||
typedef struct Tcl_Resolve {
|
||||
Tcl_VarAliasProc *varProcPtr;
|
||||
Tcl_CmdAliasProc *cmdProcPtr;
|
||||
ClientData clientData;
|
||||
} Tcl_Resolve;
|
||||
#define _TCL_RESOLVE_DEFINED 1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef _TCLINT
|
||||
struct Tcl_ResolvedVarInfo;
|
||||
|
||||
typedef Tcl_Var (Tcl_ResolveRuntimeVarProc)(Tcl_Interp *interp,
|
||||
struct Tcl_ResolvedVarInfo *vinfoPtr);
|
||||
|
||||
typedef void (Tcl_ResolveVarDeleteProc)(struct Tcl_ResolvedVarInfo *vinfoPtr);
|
||||
|
||||
/*
|
||||
* The following structure encapsulates the routines needed to resolve a
|
||||
* variable reference at runtime. Any variable specific state will typically
|
||||
* be appended to this structure.
|
||||
*/
|
||||
|
||||
typedef struct Tcl_ResolvedVarInfo {
|
||||
Tcl_ResolveRuntimeVarProc *fetchProc;
|
||||
Tcl_ResolveVarDeleteProc *deleteProc;
|
||||
} Tcl_ResolvedVarInfo;
|
||||
|
||||
typedef int (Tcl_ResolveCompiledVarProc) (Tcl_Interp *interp,
|
||||
const char *name, int length, Tcl_Namespace *context,
|
||||
Tcl_ResolvedVarInfo **rPtr);
|
||||
|
||||
typedef int (Tcl_ResolveVarProc) (Tcl_Interp *interp, const char *name,
|
||||
Tcl_Namespace *context, int flags, Tcl_Var *rPtr);
|
||||
|
||||
typedef int (Tcl_ResolveCmdProc) (Tcl_Interp *interp, const char *name,
|
||||
Tcl_Namespace *context, int flags, Tcl_Command *rPtr);
|
||||
|
||||
typedef struct Tcl_ResolverInfo {
|
||||
Tcl_ResolveCmdProc *cmdResProc;
|
||||
/* Procedure handling command name
|
||||
* resolution. */
|
||||
Tcl_ResolveVarProc *varResProc;
|
||||
/* Procedure handling variable name resolution
|
||||
* for variables that can only be handled at
|
||||
* runtime. */
|
||||
Tcl_ResolveCompiledVarProc *compiledVarResProc;
|
||||
/* Procedure handling variable name resolution
|
||||
* at compile time. */
|
||||
} Tcl_ResolverInfo;
|
||||
#endif
|
||||
|
||||
|
||||
/* here come the definitions for code which should be migrated to Tcl core */
|
||||
/* these functions DO NOT exist and are not published */
|
||||
#ifndef _TCL_PROC_DEFINED
|
||||
typedef struct Tcl_Proc_ *Tcl_Proc;
|
||||
#define _TCL_PROC_DEFINED 1
|
||||
#endif
|
||||
|
||||
MODULE_SCOPE Tcl_Var Tcl_NewNamespaceVar(Tcl_Interp *interp, Tcl_Namespace *nsPtr,
|
||||
const char *varName);
|
||||
MODULE_SCOPE void Itcl_PreserveVar(Tcl_Var var);
|
||||
MODULE_SCOPE void Itcl_ReleaseVar(Tcl_Var var);
|
||||
MODULE_SCOPE int Itcl_IsCallFrameArgument(Tcl_Interp *interp, const char *name);
|
||||
MODULE_SCOPE int Itcl_GetCallVarFrameObjc(Tcl_Interp *interp);
|
||||
MODULE_SCOPE Tcl_Obj * const * Itcl_GetCallVarFrameObjv(Tcl_Interp *interp);
|
||||
#define Tcl_SetNamespaceResolver _Tcl_SetNamespaceResolver
|
||||
MODULE_SCOPE int _Tcl_SetNamespaceResolver(Tcl_Namespace *nsPtr,
|
||||
struct Tcl_Resolve *resolvePtr);
|
38
msys2/usr/include/tcl8.6/generic/itclTclIntStubsFcn.h
Normal file
38
msys2/usr/include/tcl8.6/generic/itclTclIntStubsFcn.h
Normal file
|
@ -0,0 +1,38 @@
|
|||
/* these functions are Tcl internal stubs so make an Itcl_* wrapper */
|
||||
MODULE_SCOPE void Itcl_GetVariableFullName (Tcl_Interp * interp,
|
||||
Tcl_Var variable, Tcl_Obj * objPtr);
|
||||
MODULE_SCOPE Tcl_Var Itcl_FindNamespaceVar (Tcl_Interp * interp,
|
||||
const char * name, Tcl_Namespace * contextNsPtr, int flags);
|
||||
MODULE_SCOPE void Itcl_SetNamespaceResolvers (Tcl_Namespace * namespacePtr,
|
||||
Tcl_ResolveCmdProc * cmdProc, Tcl_ResolveVarProc * varProc,
|
||||
Tcl_ResolveCompiledVarProc * compiledVarProc);
|
||||
|
||||
#ifndef _TCL_PROC_DEFINED
|
||||
typedef struct Tcl_Proc_ *Tcl_Proc;
|
||||
#define _TCL_PROC_DEFINED 1
|
||||
#endif
|
||||
#ifndef _TCL_RESOLVE_DEFINED
|
||||
struct Tcl_Resolve;
|
||||
#endif
|
||||
|
||||
#define Tcl_GetOriginalCommand _Tcl_GetOriginalCommand
|
||||
#define Tcl_CreateProc _Tcl_CreateProc
|
||||
#define Tcl_ProcDeleteProc _Tcl_ProcDeleteProc
|
||||
#define Tcl_GetObjInterpProc _Tcl_GetObjInterpProc
|
||||
|
||||
MODULE_SCOPE Tcl_Command _Tcl_GetOriginalCommand(Tcl_Command command);
|
||||
MODULE_SCOPE int _Tcl_CreateProc(Tcl_Interp *interp, Tcl_Namespace *nsPtr,
|
||||
const char *procName, Tcl_Obj *argsPtr, Tcl_Obj *bodyPtr,
|
||||
Tcl_Proc *procPtrPtr);
|
||||
MODULE_SCOPE void _Tcl_ProcDeleteProc(ClientData clientData);
|
||||
MODULE_SCOPE Tcl_ObjCmdProc *_Tcl_GetObjInterpProc(void);
|
||||
MODULE_SCOPE int Tcl_RenameCommand(Tcl_Interp *interp, const char *oldName,
|
||||
const char *newName);
|
||||
MODULE_SCOPE Tcl_HashTable *Itcl_GetNamespaceChildTable(Tcl_Namespace *nsPtr);
|
||||
MODULE_SCOPE Tcl_HashTable *Itcl_GetNamespaceCommandTable(Tcl_Namespace *nsPtr);
|
||||
MODULE_SCOPE int Itcl_InitRewriteEnsemble(Tcl_Interp *interp, int numRemoved,
|
||||
int numInserted, int objc, Tcl_Obj *const *objv);
|
||||
MODULE_SCOPE void Itcl_ResetRewriteEnsemble(Tcl_Interp *interp,
|
||||
int isRootEnsemble);
|
||||
|
||||
|
101
msys2/usr/include/tcl8.6/generic/mysqlStubs.h
Normal file
101
msys2/usr/include/tcl8.6/generic/mysqlStubs.h
Normal file
|
@ -0,0 +1,101 @@
|
|||
/*
|
||||
*-----------------------------------------------------------------------------
|
||||
*
|
||||
* ../generic/mysqlStubs.h --
|
||||
*
|
||||
* Stubs for procedures in mysqlStubDefs.txt
|
||||
*
|
||||
* Generated by genExtStubs.tcl: DO NOT EDIT
|
||||
* 2017-05-26 05:57:32Z
|
||||
*
|
||||
*-----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
typedef struct mysqlStubDefs {
|
||||
|
||||
/* Functions from libraries: mysqlclient_r mysqlclient mysql */
|
||||
|
||||
int (STDCALL*mysql_server_initPtr)(int, char**, char**);
|
||||
void (STDCALL*mysql_server_endPtr)(void);
|
||||
my_ulonglong (STDCALL*mysql_affected_rowsPtr)(MYSQL*);
|
||||
my_bool (STDCALL*mysql_autocommitPtr)(MYSQL*, my_bool);
|
||||
my_bool (STDCALL*mysql_change_userPtr)(MYSQL*, const char*, const char*, const char*);
|
||||
my_bool (STDCALL*mysql_closePtr)(MYSQL*);
|
||||
my_bool (STDCALL*mysql_commitPtr)(MYSQL*);
|
||||
unsigned int (STDCALL*mysql_errnoPtr)(MYSQL*);
|
||||
const char* (STDCALL*mysql_errorPtr)(MYSQL*);
|
||||
MYSQL_FIELD* (STDCALL*mysql_fetch_fieldsPtr)(MYSQL_RES*);
|
||||
unsigned long* (STDCALL*mysql_fetch_lengthsPtr)(MYSQL_RES*);
|
||||
MYSQL_ROW (STDCALL*mysql_fetch_rowPtr)(MYSQL_RES*);
|
||||
unsigned int (STDCALL*mysql_field_countPtr)(MYSQL*);
|
||||
void (STDCALL*mysql_free_resultPtr)(MYSQL_RES*);
|
||||
unsigned long (STDCALL*mysql_get_client_versionPtr)(void);
|
||||
MYSQL* (STDCALL*mysql_initPtr)(MYSQL*);
|
||||
MYSQL_RES* (STDCALL*mysql_list_fieldsPtr)(MYSQL*, const char*, const char*);
|
||||
MYSQL_RES* (STDCALL*mysql_list_tablesPtr)(MYSQL*, const char*);
|
||||
unsigned int (STDCALL*mysql_num_fieldsPtr)(MYSQL_RES*);
|
||||
int (STDCALL*mysql_optionsPtr)(MYSQL*, enum mysql_option, const void*);
|
||||
int (STDCALL*mysql_queryPtr)(MYSQL*, const char*);
|
||||
MYSQL* (STDCALL*mysql_real_connectPtr)(MYSQL*, const char*, const char*, const char*, const char*, unsigned int, const char*, unsigned long);
|
||||
my_bool (STDCALL*mysql_rollbackPtr)(MYSQL*);
|
||||
int (STDCALL*mysql_select_dbPtr)(MYSQL*, const char*);
|
||||
const char* (STDCALL*mysql_sqlstatePtr)(MYSQL*);
|
||||
my_bool (STDCALL*mysql_ssl_setPtr)(MYSQL*, const char*, const char*, const char*, const char*, const char*);
|
||||
my_ulonglong (STDCALL*mysql_stmt_affected_rowsPtr)(MYSQL_STMT*);
|
||||
my_bool (STDCALL*mysql_stmt_bind_paramPtr)(MYSQL_STMT*, MYSQL_BIND*);
|
||||
my_bool (STDCALL*mysql_stmt_bind_resultPtr)(MYSQL_STMT*, MYSQL_BIND*);
|
||||
my_bool (STDCALL*mysql_stmt_closePtr)(MYSQL_STMT*);
|
||||
unsigned int (STDCALL*mysql_stmt_errnoPtr)(MYSQL_STMT*);
|
||||
const char* (STDCALL*mysql_stmt_errorPtr)(MYSQL_STMT*);
|
||||
int (STDCALL*mysql_stmt_executePtr)(MYSQL_STMT*);
|
||||
int (STDCALL*mysql_stmt_fetchPtr)(MYSQL_STMT*);
|
||||
int (STDCALL*mysql_stmt_fetch_columnPtr)(MYSQL_STMT*, MYSQL_BIND*, unsigned int, unsigned long);
|
||||
MYSQL_STMT* (STDCALL*mysql_stmt_initPtr)(MYSQL*);
|
||||
int (STDCALL*mysql_stmt_preparePtr)(MYSQL_STMT*, const char*, unsigned long);
|
||||
MYSQL_RES* (STDCALL*mysql_stmt_result_metadataPtr)(MYSQL_STMT*);
|
||||
const char* (STDCALL*mysql_stmt_sqlstatePtr)(MYSQL_STMT*);
|
||||
int (STDCALL*mysql_stmt_store_resultPtr)(MYSQL_STMT*);
|
||||
MYSQL_RES* (STDCALL*mysql_store_resultPtr)(MYSQL*);
|
||||
} mysqlStubDefs;
|
||||
#define mysql_server_init (mysqlStubs->mysql_server_initPtr)
|
||||
#define mysql_server_end (mysqlStubs->mysql_server_endPtr)
|
||||
#define mysql_affected_rows (mysqlStubs->mysql_affected_rowsPtr)
|
||||
#define mysql_autocommit (mysqlStubs->mysql_autocommitPtr)
|
||||
#define mysql_change_user (mysqlStubs->mysql_change_userPtr)
|
||||
#define mysql_close (mysqlStubs->mysql_closePtr)
|
||||
#define mysql_commit (mysqlStubs->mysql_commitPtr)
|
||||
#define mysql_errno (mysqlStubs->mysql_errnoPtr)
|
||||
#define mysql_error (mysqlStubs->mysql_errorPtr)
|
||||
#define mysql_fetch_fields (mysqlStubs->mysql_fetch_fieldsPtr)
|
||||
#define mysql_fetch_lengths (mysqlStubs->mysql_fetch_lengthsPtr)
|
||||
#define mysql_fetch_row (mysqlStubs->mysql_fetch_rowPtr)
|
||||
#define mysql_field_count (mysqlStubs->mysql_field_countPtr)
|
||||
#define mysql_free_result (mysqlStubs->mysql_free_resultPtr)
|
||||
#define mysql_get_client_version (mysqlStubs->mysql_get_client_versionPtr)
|
||||
#define mysql_init (mysqlStubs->mysql_initPtr)
|
||||
#define mysql_list_fields (mysqlStubs->mysql_list_fieldsPtr)
|
||||
#define mysql_list_tables (mysqlStubs->mysql_list_tablesPtr)
|
||||
#define mysql_num_fields (mysqlStubs->mysql_num_fieldsPtr)
|
||||
#define mysql_options (mysqlStubs->mysql_optionsPtr)
|
||||
#define mysql_query (mysqlStubs->mysql_queryPtr)
|
||||
#define mysql_real_connect (mysqlStubs->mysql_real_connectPtr)
|
||||
#define mysql_rollback (mysqlStubs->mysql_rollbackPtr)
|
||||
#define mysql_select_db (mysqlStubs->mysql_select_dbPtr)
|
||||
#define mysql_sqlstate (mysqlStubs->mysql_sqlstatePtr)
|
||||
#define mysql_ssl_set (mysqlStubs->mysql_ssl_setPtr)
|
||||
#define mysql_stmt_affected_rows (mysqlStubs->mysql_stmt_affected_rowsPtr)
|
||||
#define mysql_stmt_bind_param (mysqlStubs->mysql_stmt_bind_paramPtr)
|
||||
#define mysql_stmt_bind_result (mysqlStubs->mysql_stmt_bind_resultPtr)
|
||||
#define mysql_stmt_close (mysqlStubs->mysql_stmt_closePtr)
|
||||
#define mysql_stmt_errno (mysqlStubs->mysql_stmt_errnoPtr)
|
||||
#define mysql_stmt_error (mysqlStubs->mysql_stmt_errorPtr)
|
||||
#define mysql_stmt_execute (mysqlStubs->mysql_stmt_executePtr)
|
||||
#define mysql_stmt_fetch (mysqlStubs->mysql_stmt_fetchPtr)
|
||||
#define mysql_stmt_fetch_column (mysqlStubs->mysql_stmt_fetch_columnPtr)
|
||||
#define mysql_stmt_init (mysqlStubs->mysql_stmt_initPtr)
|
||||
#define mysql_stmt_prepare (mysqlStubs->mysql_stmt_preparePtr)
|
||||
#define mysql_stmt_result_metadata (mysqlStubs->mysql_stmt_result_metadataPtr)
|
||||
#define mysql_stmt_sqlstate (mysqlStubs->mysql_stmt_sqlstatePtr)
|
||||
#define mysql_stmt_store_result (mysqlStubs->mysql_stmt_store_resultPtr)
|
||||
#define mysql_store_result (mysqlStubs->mysql_store_resultPtr)
|
||||
MODULE_SCOPE const mysqlStubDefs *mysqlStubs;
|
78
msys2/usr/include/tcl8.6/generic/odbcStubs.h
Normal file
78
msys2/usr/include/tcl8.6/generic/odbcStubs.h
Normal file
|
@ -0,0 +1,78 @@
|
|||
/*
|
||||
*-----------------------------------------------------------------------------
|
||||
*
|
||||
* odbcStubs.h --
|
||||
*
|
||||
* Stubs for procedures in odbcStubDefs.txt
|
||||
*
|
||||
* Generated by genExtStubs.tcl: DO NOT EDIT
|
||||
* 2018-05-12 16:18:48Z
|
||||
*
|
||||
*-----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
typedef struct odbcStubDefs {
|
||||
SQLRETURN (SQL_API*SQLAllocHandlePtr)(SQLSMALLINT,SQLHANDLE,SQLHANDLE*);
|
||||
SQLRETURN (SQL_API*SQLBindParameterPtr)(SQLHSTMT,SQLUSMALLINT,SQLSMALLINT,SQLSMALLINT,SQLSMALLINT,SQLULEN,SQLSMALLINT,SQLPOINTER,SQLLEN,SQLLEN*);
|
||||
SQLRETURN (SQL_API*SQLCloseCursorPtr)(SQLHSTMT);
|
||||
SQLRETURN (SQL_API*SQLColumnsWPtr)(SQLHSTMT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT ,SQLWCHAR*,SQLSMALLINT );
|
||||
SQLRETURN (SQL_API*SQLDataSourcesWPtr)(SQLHENV,SQLUSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*);
|
||||
SQLRETURN (SQL_API*SQLDescribeColWPtr)(SQLHSTMT,SQLUSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*,SQLSMALLINT*,SQLULEN*,SQLSMALLINT*,SQLSMALLINT*);
|
||||
SQLRETURN (SQL_API*SQLDescribeParamPtr)(SQLHSTMT,SQLUSMALLINT,SQLSMALLINT*,SQLULEN*,SQLSMALLINT*,SQLSMALLINT*);
|
||||
SQLRETURN (SQL_API*SQLDisconnectPtr)(SQLHDBC);
|
||||
SQLRETURN (SQL_API*SQLDriverConnectWPtr)(SQLHDBC,SQLHWND,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*,SQLUSMALLINT);
|
||||
SQLRETURN (SQL_API*SQLDriversWPtr)(SQLHENV,SQLUSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*);
|
||||
SQLRETURN (SQL_API*SQLEndTranPtr)(SQLSMALLINT,SQLHANDLE,SQLSMALLINT);
|
||||
SQLRETURN (SQL_API*SQLExecutePtr)(SQLHSTMT);
|
||||
SQLRETURN (SQL_API*SQLFetchPtr)(SQLHSTMT);
|
||||
SQLRETURN (SQL_API*SQLForeignKeysWPtr)(SQLHSTMT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT);
|
||||
SQLRETURN (SQL_API*SQLFreeHandlePtr)(SQLSMALLINT,SQLHANDLE);
|
||||
SQLRETURN (SQL_API*SQLGetConnectAttrPtr)(SQLHDBC,SQLINTEGER,SQLPOINTER,SQLINTEGER,SQLINTEGER*);
|
||||
SQLRETURN (SQL_API*SQLGetDataPtr)(SQLHSTMT,SQLUSMALLINT,SQLSMALLINT,SQLPOINTER,SQLLEN,SQLLEN*);
|
||||
SQLRETURN (SQL_API*SQLGetDiagFieldAPtr)(SQLSMALLINT,SQLHANDLE,SQLSMALLINT,SQLSMALLINT,SQLPOINTER,SQLSMALLINT,SQLSMALLINT*);
|
||||
SQLRETURN (SQL_API*SQLGetDiagRecWPtr)(SQLSMALLINT,SQLHANDLE,SQLSMALLINT,SQLWCHAR*,SQLINTEGER*,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*);
|
||||
SQLRETURN (SQL_API*SQLGetInfoWPtr)(SQLHANDLE,SQLUSMALLINT,SQLPOINTER,SQLSMALLINT,SQLSMALLINT*);
|
||||
SQLRETURN (SQL_API*SQLGetTypeInfoPtr)(SQLHSTMT,SQLSMALLINT);
|
||||
SQLRETURN (SQL_API*SQLMoreResultsPtr)(SQLHSTMT);
|
||||
SQLRETURN (SQL_API*SQLNumParamsPtr)(SQLHSTMT,SQLSMALLINT*);
|
||||
SQLRETURN (SQL_API*SQLNumResultColsPtr)(SQLHSTMT,SQLSMALLINT*);
|
||||
SQLRETURN (SQL_API*SQLPrepareWPtr)(SQLHSTMT,SQLWCHAR*,SQLINTEGER);
|
||||
SQLRETURN (SQL_API*SQLPrimaryKeysWPtr)(SQLHSTMT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT);
|
||||
SQLRETURN (SQL_API*SQLRowCountPtr)(SQLHSTMT,SQLLEN*);
|
||||
SQLRETURN (SQL_API*SQLSetConnectAttrPtr)(SQLHDBC,SQLINTEGER,SQLPOINTER,SQLINTEGER);
|
||||
SQLRETURN (SQL_API*SQLSetConnectOptionPtr)(SQLHDBC,SQLUSMALLINT,SQLULEN);
|
||||
SQLRETURN (SQL_API*SQLSetEnvAttrPtr)(SQLHENV,SQLINTEGER,SQLPOINTER,SQLINTEGER);
|
||||
SQLRETURN (SQL_API*SQLTablesWPtr)(SQLHSTMT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT);
|
||||
} odbcStubDefs;
|
||||
#define SQLAllocHandle (odbcStubs->SQLAllocHandlePtr)
|
||||
#define SQLBindParameter (odbcStubs->SQLBindParameterPtr)
|
||||
#define SQLCloseCursor (odbcStubs->SQLCloseCursorPtr)
|
||||
#define SQLColumnsW (odbcStubs->SQLColumnsWPtr)
|
||||
#define SQLDataSourcesW (odbcStubs->SQLDataSourcesWPtr)
|
||||
#define SQLDescribeColW (odbcStubs->SQLDescribeColWPtr)
|
||||
#define SQLDescribeParam (odbcStubs->SQLDescribeParamPtr)
|
||||
#define SQLDisconnect (odbcStubs->SQLDisconnectPtr)
|
||||
#define SQLDriverConnectW (odbcStubs->SQLDriverConnectWPtr)
|
||||
#define SQLDriversW (odbcStubs->SQLDriversWPtr)
|
||||
#define SQLEndTran (odbcStubs->SQLEndTranPtr)
|
||||
#define SQLExecute (odbcStubs->SQLExecutePtr)
|
||||
#define SQLFetch (odbcStubs->SQLFetchPtr)
|
||||
#define SQLForeignKeysW (odbcStubs->SQLForeignKeysWPtr)
|
||||
#define SQLFreeHandle (odbcStubs->SQLFreeHandlePtr)
|
||||
#define SQLGetConnectAttr (odbcStubs->SQLGetConnectAttrPtr)
|
||||
#define SQLGetData (odbcStubs->SQLGetDataPtr)
|
||||
#define SQLGetDiagFieldA (odbcStubs->SQLGetDiagFieldAPtr)
|
||||
#define SQLGetDiagRecW (odbcStubs->SQLGetDiagRecWPtr)
|
||||
#define SQLGetInfoW (odbcStubs->SQLGetInfoWPtr)
|
||||
#define SQLGetTypeInfo (odbcStubs->SQLGetTypeInfoPtr)
|
||||
#define SQLMoreResults (odbcStubs->SQLMoreResultsPtr)
|
||||
#define SQLNumParams (odbcStubs->SQLNumParamsPtr)
|
||||
#define SQLNumResultCols (odbcStubs->SQLNumResultColsPtr)
|
||||
#define SQLPrepareW (odbcStubs->SQLPrepareWPtr)
|
||||
#define SQLPrimaryKeysW (odbcStubs->SQLPrimaryKeysWPtr)
|
||||
#define SQLRowCount (odbcStubs->SQLRowCountPtr)
|
||||
#define SQLSetConnectAttr (odbcStubs->SQLSetConnectAttrPtr)
|
||||
#define SQLSetConnectOption (odbcStubs->SQLSetConnectOptionPtr)
|
||||
#define SQLSetEnvAttr (odbcStubs->SQLSetEnvAttrPtr)
|
||||
#define SQLTablesW (odbcStubs->SQLTablesWPtr)
|
||||
MODULE_SCOPE const odbcStubDefs *odbcStubs;
|
85
msys2/usr/include/tcl8.6/generic/pqStubs.h
Normal file
85
msys2/usr/include/tcl8.6/generic/pqStubs.h
Normal file
|
@ -0,0 +1,85 @@
|
|||
/*
|
||||
*-----------------------------------------------------------------------------
|
||||
*
|
||||
* ../generic/pqStubs.h --
|
||||
*
|
||||
* Stubs for procedures in pqStubDefs.txt
|
||||
*
|
||||
* Generated by genExtStubs.tcl: DO NOT EDIT
|
||||
* 2015-06-26 12:55:15Z
|
||||
*
|
||||
*-----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
typedef struct pqStubDefs {
|
||||
|
||||
/* Functions from libraries: pq */
|
||||
|
||||
const char* (*pg_encoding_to_charPtr)(int);
|
||||
void (*PQclearPtr)(PGresult*);
|
||||
int (*PQclientEncodingPtr)(const PGconn*);
|
||||
char* (*PQcmdTuplesPtr)(PGresult*);
|
||||
PGconn* (*PQconnectdbPtr)(const char*);
|
||||
char* (*PQerrorMessagePtr)(const PGconn*);
|
||||
PGresult* (*PQdescribePreparedPtr)(PGconn*, const char*);
|
||||
PGresult* (*PQexecPtr)(PGconn*, const char*);
|
||||
PGresult* (*PQexecPreparedPtr)(PGconn*, const char*, int, const char *const*, const int*, const int*, int);
|
||||
char* (*PQdbPtr)(const PGconn *);
|
||||
void (*PQfinishPtr)(PGconn*);
|
||||
char* (*PQfnamePtr)(PGresult*, int);
|
||||
int (*PQfnumberPtr)(const PGresult*, const char*);
|
||||
Oid (*PQftypePtr)(const PGresult*, int);
|
||||
int (*PQgetisnullPtr)(const PGresult*, int, int);
|
||||
int (*PQgetlengthPtr)(const PGresult*, int, int);
|
||||
char* (*PQgetvaluePtr)(const PGresult*, int, int);
|
||||
char* (*PQhostPtr)(const PGconn*);
|
||||
int (*PQnfieldsPtr)(const PGresult*);
|
||||
int (*PQnparamsPtr)(const PGresult*);
|
||||
int (*PQntuplesPtr)(const PGresult*);
|
||||
char* (*PQoptionsPtr)(const PGconn*);
|
||||
Oid (*PQparamtypePtr)(const PGresult*, int);
|
||||
char* (*PQpassPtr)(const PGconn*);
|
||||
char* (*PQportPtr)(const PGconn*);
|
||||
PGresult* (*PQpreparePtr)(PGconn*, const char*, const char*, int, const Oid*);
|
||||
char* (*PQresultErrorFieldPtr)(const PGresult*, int);
|
||||
ExecStatusType (*PQresultStatusPtr)(const PGresult*);
|
||||
int (*PQsetClientEncodingPtr)(PGconn*, const char*);
|
||||
PQnoticeProcessor (*PQsetNoticeProcessorPtr)(PGconn*, PQnoticeProcessor, void*);
|
||||
ConnStatusType (*PQstatusPtr)(PGconn*);
|
||||
char* (*PQuserPtr)(const PGconn*);
|
||||
char* (*PQttyPtr)(const PGconn*);
|
||||
} pqStubDefs;
|
||||
#define pg_encoding_to_char (pqStubs->pg_encoding_to_charPtr)
|
||||
#define PQclear (pqStubs->PQclearPtr)
|
||||
#define PQclientEncoding (pqStubs->PQclientEncodingPtr)
|
||||
#define PQcmdTuples (pqStubs->PQcmdTuplesPtr)
|
||||
#define PQconnectdb (pqStubs->PQconnectdbPtr)
|
||||
#define PQerrorMessage (pqStubs->PQerrorMessagePtr)
|
||||
#define PQdescribePrepared (pqStubs->PQdescribePreparedPtr)
|
||||
#define PQexec (pqStubs->PQexecPtr)
|
||||
#define PQexecPrepared (pqStubs->PQexecPreparedPtr)
|
||||
#define PQdb (pqStubs->PQdbPtr)
|
||||
#define PQfinish (pqStubs->PQfinishPtr)
|
||||
#define PQfname (pqStubs->PQfnamePtr)
|
||||
#define PQfnumber (pqStubs->PQfnumberPtr)
|
||||
#define PQftype (pqStubs->PQftypePtr)
|
||||
#define PQgetisnull (pqStubs->PQgetisnullPtr)
|
||||
#define PQgetlength (pqStubs->PQgetlengthPtr)
|
||||
#define PQgetvalue (pqStubs->PQgetvaluePtr)
|
||||
#define PQhost (pqStubs->PQhostPtr)
|
||||
#define PQnfields (pqStubs->PQnfieldsPtr)
|
||||
#define PQnparams (pqStubs->PQnparamsPtr)
|
||||
#define PQntuples (pqStubs->PQntuplesPtr)
|
||||
#define PQoptions (pqStubs->PQoptionsPtr)
|
||||
#define PQparamtype (pqStubs->PQparamtypePtr)
|
||||
#define PQpass (pqStubs->PQpassPtr)
|
||||
#define PQport (pqStubs->PQportPtr)
|
||||
#define PQprepare (pqStubs->PQpreparePtr)
|
||||
#define PQresultErrorField (pqStubs->PQresultErrorFieldPtr)
|
||||
#define PQresultStatus (pqStubs->PQresultStatusPtr)
|
||||
#define PQsetClientEncoding (pqStubs->PQsetClientEncodingPtr)
|
||||
#define PQsetNoticeProcessor (pqStubs->PQsetNoticeProcessorPtr)
|
||||
#define PQstatus (pqStubs->PQstatusPtr)
|
||||
#define PQuser (pqStubs->PQuserPtr)
|
||||
#define PQtty (pqStubs->PQttyPtr)
|
||||
MODULE_SCOPE const pqStubDefs *pqStubs;
|
155
msys2/usr/include/tcl8.6/generic/regcustom.h
Normal file
155
msys2/usr/include/tcl8.6/generic/regcustom.h
Normal file
|
@ -0,0 +1,155 @@
|
|||
/*
|
||||
* Copyright (c) 1998, 1999 Henry Spencer. All rights reserved.
|
||||
*
|
||||
* Development of this software was funded, in part, by Cray Research Inc.,
|
||||
* UUNET Communications Services Inc., Sun Microsystems Inc., and Scriptics
|
||||
* Corporation, none of whom are responsible for the results. The author
|
||||
* thanks all of them.
|
||||
*
|
||||
* Redistribution and use in source and binary forms - with or without
|
||||
* modification - are permitted for any purpose, provided that redistributions
|
||||
* in source form retain this entire copyright notice and indicate the origin
|
||||
* and nature of any modifications.
|
||||
*
|
||||
* I'd appreciate being given credit for this package in the documentation of
|
||||
* software which uses it, but that is not a requirement.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* HENRY SPENCER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Headers if any.
|
||||
*/
|
||||
|
||||
#include "regex.h"
|
||||
|
||||
/*
|
||||
* Overrides for regguts.h definitions, if any.
|
||||
*/
|
||||
|
||||
#define FUNCPTR(name, args) (*name)args
|
||||
#define MALLOC(n) VS(attemptckalloc(n))
|
||||
#define FREE(p) ckfree(VS(p))
|
||||
#define REALLOC(p,n) VS(attemptckrealloc(VS(p),n))
|
||||
|
||||
/*
|
||||
* Do not insert extras between the "begin" and "end" lines - this chunk is
|
||||
* automatically extracted to be fitted into regex.h.
|
||||
*/
|
||||
|
||||
/* --- begin --- */
|
||||
/* Ensure certain things don't sneak in from system headers. */
|
||||
#ifdef __REG_WIDE_T
|
||||
#undef __REG_WIDE_T
|
||||
#endif
|
||||
#ifdef __REG_WIDE_COMPILE
|
||||
#undef __REG_WIDE_COMPILE
|
||||
#endif
|
||||
#ifdef __REG_WIDE_EXEC
|
||||
#undef __REG_WIDE_EXEC
|
||||
#endif
|
||||
#ifdef __REG_REGOFF_T
|
||||
#undef __REG_REGOFF_T
|
||||
#endif
|
||||
#ifdef __REG_NOFRONT
|
||||
#undef __REG_NOFRONT
|
||||
#endif
|
||||
#ifdef __REG_NOCHAR
|
||||
#undef __REG_NOCHAR
|
||||
#endif
|
||||
/* Interface types */
|
||||
#define __REG_WIDE_T Tcl_UniChar
|
||||
#define __REG_REGOFF_T long /* Not really right, but good enough... */
|
||||
/* Names and declarations */
|
||||
#define __REG_WIDE_COMPILE TclReComp
|
||||
#define __REG_WIDE_EXEC TclReExec
|
||||
#define __REG_NOFRONT /* Don't want regcomp() and regexec() */
|
||||
#define __REG_NOCHAR /* Or the char versions */
|
||||
#define regfree TclReFree
|
||||
#define regerror TclReError
|
||||
/* --- end --- */
|
||||
|
||||
/*
|
||||
* Internal character type and related.
|
||||
*/
|
||||
|
||||
typedef Tcl_UniChar chr; /* The type itself. */
|
||||
typedef int pchr; /* What it promotes to. */
|
||||
typedef unsigned uchr; /* Unsigned type that will hold a chr. */
|
||||
typedef int celt; /* Type to hold chr, or NOCELT */
|
||||
#define NOCELT (-1) /* Celt value which is not valid chr */
|
||||
#define CHR(c) (UCHAR(c)) /* Turn char literal into chr literal */
|
||||
#define DIGITVAL(c) ((c)-'0') /* Turn chr digit into its value */
|
||||
#if TCL_UTF_MAX > 4
|
||||
#define CHRBITS 32 /* Bits in a chr; must not use sizeof */
|
||||
#define CHR_MIN 0x00000000 /* Smallest and largest chr; the value */
|
||||
#define CHR_MAX 0xffffffff /* CHR_MAX-CHR_MIN+1 should fit in uchr */
|
||||
#else
|
||||
#define CHRBITS 16 /* Bits in a chr; must not use sizeof */
|
||||
#define CHR_MIN 0x0000 /* Smallest and largest chr; the value */
|
||||
#define CHR_MAX 0xffff /* CHR_MAX-CHR_MIN+1 should fit in uchr */
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Functions operating on chr.
|
||||
*/
|
||||
|
||||
#define iscalnum(x) Tcl_UniCharIsAlnum(x)
|
||||
#define iscalpha(x) Tcl_UniCharIsAlpha(x)
|
||||
#define iscdigit(x) Tcl_UniCharIsDigit(x)
|
||||
#define iscspace(x) Tcl_UniCharIsSpace(x)
|
||||
|
||||
/*
|
||||
* Name the external functions.
|
||||
*/
|
||||
|
||||
#define compile TclReComp
|
||||
#define exec TclReExec
|
||||
|
||||
/*
|
||||
& Enable/disable debugging code (by whether REG_DEBUG is defined or not).
|
||||
*/
|
||||
|
||||
#if 0 /* No debug unless requested by makefile. */
|
||||
#define REG_DEBUG /* */
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Method of allocating a local workspace. We used a thread-specific data
|
||||
* space to store this because the regular expression engine is never
|
||||
* reentered from the same thread; it doesn't make any callbacks.
|
||||
*/
|
||||
|
||||
#if 1
|
||||
#define AllocVars(vPtr) \
|
||||
static Tcl_ThreadDataKey varsKey; \
|
||||
struct vars *vPtr = (struct vars *) \
|
||||
Tcl_GetThreadData(&varsKey, sizeof(struct vars))
|
||||
#else
|
||||
/*
|
||||
* This strategy for allocating workspace is "more proper" in some sense, but
|
||||
* quite a bit slower. Using TSD (as above) leads to code that is quite a bit
|
||||
* faster in practice (measured!)
|
||||
*/
|
||||
#define AllocVars(vPtr) \
|
||||
struct vars *vPtr = (struct vars *) MALLOC(sizeof(struct vars))
|
||||
#define FreeVars(vPtr) \
|
||||
FREE(vPtr)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Local Variables:
|
||||
* mode: c
|
||||
* c-basic-offset: 4
|
||||
* fill-column: 78
|
||||
* End:
|
||||
*/
|
20
msys2/usr/include/tcl8.6/generic/regerrs.h
Normal file
20
msys2/usr/include/tcl8.6/generic/regerrs.h
Normal file
|
@ -0,0 +1,20 @@
|
|||
{ REG_OKAY, "REG_OKAY", "no errors detected" },
|
||||
{ REG_NOMATCH, "REG_NOMATCH", "failed to match" },
|
||||
{ REG_BADPAT, "REG_BADPAT", "invalid regexp (reg version 0.8)" },
|
||||
{ REG_ECOLLATE, "REG_ECOLLATE", "invalid collating element" },
|
||||
{ REG_ECTYPE, "REG_ECTYPE", "invalid character class" },
|
||||
{ REG_EESCAPE, "REG_EESCAPE", "invalid escape \\ sequence" },
|
||||
{ REG_ESUBREG, "REG_ESUBREG", "invalid backreference number" },
|
||||
{ REG_EBRACK, "REG_EBRACK", "brackets [] not balanced" },
|
||||
{ REG_EPAREN, "REG_EPAREN", "parentheses () not balanced" },
|
||||
{ REG_EBRACE, "REG_EBRACE", "braces {} not balanced" },
|
||||
{ REG_BADBR, "REG_BADBR", "invalid repetition count(s)" },
|
||||
{ REG_ERANGE, "REG_ERANGE", "invalid character range" },
|
||||
{ REG_ESPACE, "REG_ESPACE", "out of memory" },
|
||||
{ REG_BADRPT, "REG_BADRPT", "quantifier operand invalid" },
|
||||
{ REG_ASSERT, "REG_ASSERT", "\"can't happen\" -- you found a bug" },
|
||||
{ REG_INVARG, "REG_INVARG", "invalid argument to regex function" },
|
||||
{ REG_MIXED, "REG_MIXED", "character widths of regex and string differ" },
|
||||
{ REG_BADOPT, "REG_BADOPT", "invalid embedded option" },
|
||||
{ REG_ETOOBIG, "REG_ETOOBIG", "regular expression is too complex" },
|
||||
{ REG_ECOLORS, "REG_ECOLORS", "too many colors" },
|
305
msys2/usr/include/tcl8.6/generic/regex.h
Normal file
305
msys2/usr/include/tcl8.6/generic/regex.h
Normal file
|
@ -0,0 +1,305 @@
|
|||
#ifndef _REGEX_H_
|
||||
#define _REGEX_H_ /* never again */
|
||||
|
||||
#include "tclInt.h"
|
||||
|
||||
/*
|
||||
* regular expressions
|
||||
*
|
||||
* Copyright (c) 1998, 1999 Henry Spencer. All rights reserved.
|
||||
*
|
||||
* Development of this software was funded, in part, by Cray Research Inc.,
|
||||
* UUNET Communications Services Inc., Sun Microsystems Inc., and Scriptics
|
||||
* Corporation, none of whom are responsible for the results. The author
|
||||
* thanks all of them.
|
||||
*
|
||||
* Redistribution and use in source and binary forms -- with or without
|
||||
* modification -- are permitted for any purpose, provided that
|
||||
* redistributions in source form retain this entire copyright notice and
|
||||
* indicate the origin and nature of any modifications.
|
||||
*
|
||||
* I'd appreciate being given credit for this package in the documentation of
|
||||
* software which uses it, but that is not a requirement.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* HENRY SPENCER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*
|
||||
* Prototypes etc. marked with "^" within comments get gathered up (and
|
||||
* possibly edited) by the regfwd program and inserted near the bottom of this
|
||||
* file.
|
||||
*
|
||||
* We offer the option of declaring one wide-character version of the RE
|
||||
* functions as well as the char versions. To do that, define __REG_WIDE_T to
|
||||
* the type of wide characters (unfortunately, there is no consensus that
|
||||
* wchar_t is suitable) and __REG_WIDE_COMPILE and __REG_WIDE_EXEC to the
|
||||
* names to be used for the compile and execute functions (suggestion:
|
||||
* re_Xcomp and re_Xexec, where X is a letter suggestive of the wide type,
|
||||
* e.g. re_ucomp and re_uexec for Unicode). For cranky old compilers, it may
|
||||
* be necessary to do something like:
|
||||
* #define __REG_WIDE_COMPILE(a,b,c,d) re_Xcomp(a,b,c,d)
|
||||
* #define __REG_WIDE_EXEC(a,b,c,d,e,f,g) re_Xexec(a,b,c,d,e,f,g)
|
||||
* rather than just #defining the names as parameterless macros.
|
||||
*
|
||||
* For some specialized purposes, it may be desirable to suppress the
|
||||
* declarations of the "front end" functions, regcomp() and regexec(), or of
|
||||
* the char versions of the compile and execute functions. To suppress the
|
||||
* front-end functions, define __REG_NOFRONT. To suppress the char versions,
|
||||
* define __REG_NOCHAR.
|
||||
*
|
||||
* The right place to do those defines (and some others you may want, see
|
||||
* below) would be <sys/types.h>. If you don't have control of that file, the
|
||||
* right place to add your own defines to this file is marked below. This is
|
||||
* normally done automatically, by the makefile and regmkhdr, based on the
|
||||
* contents of regcustom.h.
|
||||
*/
|
||||
|
||||
/*
|
||||
* voodoo for C++
|
||||
*/
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Add your own defines, if needed, here.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Location where a chunk of regcustom.h is automatically spliced into this
|
||||
* file (working from its prototype, regproto.h).
|
||||
*/
|
||||
|
||||
/* --- begin --- */
|
||||
/* ensure certain things don't sneak in from system headers */
|
||||
#ifdef __REG_WIDE_T
|
||||
#undef __REG_WIDE_T
|
||||
#endif
|
||||
#ifdef __REG_WIDE_COMPILE
|
||||
#undef __REG_WIDE_COMPILE
|
||||
#endif
|
||||
#ifdef __REG_WIDE_EXEC
|
||||
#undef __REG_WIDE_EXEC
|
||||
#endif
|
||||
#ifdef __REG_REGOFF_T
|
||||
#undef __REG_REGOFF_T
|
||||
#endif
|
||||
#ifdef __REG_NOFRONT
|
||||
#undef __REG_NOFRONT
|
||||
#endif
|
||||
#ifdef __REG_NOCHAR
|
||||
#undef __REG_NOCHAR
|
||||
#endif
|
||||
/* interface types */
|
||||
#define __REG_WIDE_T Tcl_UniChar
|
||||
#define __REG_REGOFF_T long /* not really right, but good enough... */
|
||||
/* names and declarations */
|
||||
#define __REG_WIDE_COMPILE TclReComp
|
||||
#define __REG_WIDE_EXEC TclReExec
|
||||
#define __REG_NOFRONT /* don't want regcomp() and regexec() */
|
||||
#define __REG_NOCHAR /* or the char versions */
|
||||
#define regfree TclReFree
|
||||
#define regerror TclReError
|
||||
/* --- end --- */
|
||||
|
||||
/*
|
||||
* interface types etc.
|
||||
*/
|
||||
|
||||
/*
|
||||
* regoff_t has to be large enough to hold either off_t or ssize_t, and must
|
||||
* be signed; it's only a guess that long is suitable, so we offer
|
||||
* <sys/types.h> an override.
|
||||
*/
|
||||
#ifdef __REG_REGOFF_T
|
||||
typedef __REG_REGOFF_T regoff_t;
|
||||
#else
|
||||
typedef long regoff_t;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* other interface types
|
||||
*/
|
||||
|
||||
/* the biggie, a compiled RE (or rather, a front end to same) */
|
||||
typedef struct {
|
||||
int re_magic; /* magic number */
|
||||
size_t re_nsub; /* number of subexpressions */
|
||||
long re_info; /* information about RE */
|
||||
#define REG_UBACKREF 000001
|
||||
#define REG_ULOOKAHEAD 000002
|
||||
#define REG_UBOUNDS 000004
|
||||
#define REG_UBRACES 000010
|
||||
#define REG_UBSALNUM 000020
|
||||
#define REG_UPBOTCH 000040
|
||||
#define REG_UBBS 000100
|
||||
#define REG_UNONPOSIX 000200
|
||||
#define REG_UUNSPEC 000400
|
||||
#define REG_UUNPORT 001000
|
||||
#define REG_ULOCALE 002000
|
||||
#define REG_UEMPTYMATCH 004000
|
||||
#define REG_UIMPOSSIBLE 010000
|
||||
#define REG_USHORTEST 020000
|
||||
int re_csize; /* sizeof(character) */
|
||||
char *re_endp; /* backward compatibility kludge */
|
||||
/* the rest is opaque pointers to hidden innards */
|
||||
char *re_guts; /* `char *' is more portable than `void *' */
|
||||
char *re_fns;
|
||||
} regex_t;
|
||||
|
||||
/* result reporting (may acquire more fields later) */
|
||||
typedef struct {
|
||||
regoff_t rm_so; /* start of substring */
|
||||
regoff_t rm_eo; /* end of substring */
|
||||
} regmatch_t;
|
||||
|
||||
/* supplementary control and reporting */
|
||||
typedef struct {
|
||||
regmatch_t rm_extend; /* see REG_EXPECT */
|
||||
} rm_detail_t;
|
||||
|
||||
/*
|
||||
* compilation
|
||||
^ #ifndef __REG_NOCHAR
|
||||
^ int re_comp(regex_t *, const char *, size_t, int);
|
||||
^ #endif
|
||||
^ #ifndef __REG_NOFRONT
|
||||
^ int regcomp(regex_t *, const char *, int);
|
||||
^ #endif
|
||||
^ #ifdef __REG_WIDE_T
|
||||
^ int __REG_WIDE_COMPILE(regex_t *, const __REG_WIDE_T *, size_t, int);
|
||||
^ #endif
|
||||
*/
|
||||
#define REG_BASIC 000000 /* BREs (convenience) */
|
||||
#define REG_EXTENDED 000001 /* EREs */
|
||||
#define REG_ADVF 000002 /* advanced features in EREs */
|
||||
#define REG_ADVANCED 000003 /* AREs (which are also EREs) */
|
||||
#define REG_QUOTE 000004 /* no special characters, none */
|
||||
#define REG_NOSPEC REG_QUOTE /* historical synonym */
|
||||
#define REG_ICASE 000010 /* ignore case */
|
||||
#define REG_NOSUB 000020 /* don't care about subexpressions */
|
||||
#define REG_EXPANDED 000040 /* expanded format, white space & comments */
|
||||
#define REG_NLSTOP 000100 /* \n doesn't match . or [^ ] */
|
||||
#define REG_NLANCH 000200 /* ^ matches after \n, $ before */
|
||||
#define REG_NEWLINE 000300 /* newlines are line terminators */
|
||||
#define REG_PEND 000400 /* ugh -- backward-compatibility hack */
|
||||
#define REG_EXPECT 001000 /* report details on partial/limited matches */
|
||||
#define REG_BOSONLY 002000 /* temporary kludge for BOS-only matches */
|
||||
#define REG_DUMP 004000 /* none of your business :-) */
|
||||
#define REG_FAKE 010000 /* none of your business :-) */
|
||||
#define REG_PROGRESS 020000 /* none of your business :-) */
|
||||
|
||||
/*
|
||||
* execution
|
||||
^ #ifndef __REG_NOCHAR
|
||||
^ int re_exec(regex_t *, const char *, size_t,
|
||||
^ rm_detail_t *, size_t, regmatch_t [], int);
|
||||
^ #endif
|
||||
^ #ifndef __REG_NOFRONT
|
||||
^ int regexec(regex_t *, const char *, size_t, regmatch_t [], int);
|
||||
^ #endif
|
||||
^ #ifdef __REG_WIDE_T
|
||||
^ int __REG_WIDE_EXEC(regex_t *, const __REG_WIDE_T *, size_t,
|
||||
^ rm_detail_t *, size_t, regmatch_t [], int);
|
||||
^ #endif
|
||||
*/
|
||||
#define REG_NOTBOL 0001 /* BOS is not BOL */
|
||||
#define REG_NOTEOL 0002 /* EOS is not EOL */
|
||||
#define REG_STARTEND 0004 /* backward compatibility kludge */
|
||||
#define REG_FTRACE 0010 /* none of your business */
|
||||
#define REG_MTRACE 0020 /* none of your business */
|
||||
#define REG_SMALL 0040 /* none of your business */
|
||||
|
||||
/*
|
||||
* misc generics (may be more functions here eventually)
|
||||
^ void regfree(regex_t *);
|
||||
*/
|
||||
|
||||
/*
|
||||
* error reporting
|
||||
* Be careful if modifying the list of error codes -- the table used by
|
||||
* regerror() is generated automatically from this file!
|
||||
*
|
||||
* Note that there is no wide-char variant of regerror at this time; what kind
|
||||
* of character is used for error reports is independent of what kind is used
|
||||
* in matching.
|
||||
*
|
||||
^ extern size_t regerror(int, char *, size_t);
|
||||
*/
|
||||
#define REG_OKAY 0 /* no errors detected */
|
||||
#define REG_NOMATCH 1 /* failed to match */
|
||||
#define REG_BADPAT 2 /* invalid regexp */
|
||||
#define REG_ECOLLATE 3 /* invalid collating element */
|
||||
#define REG_ECTYPE 4 /* invalid character class */
|
||||
#define REG_EESCAPE 5 /* invalid escape \ sequence */
|
||||
#define REG_ESUBREG 6 /* invalid backreference number */
|
||||
#define REG_EBRACK 7 /* brackets [] not balanced */
|
||||
#define REG_EPAREN 8 /* parentheses () not balanced */
|
||||
#define REG_EBRACE 9 /* braces {} not balanced */
|
||||
#define REG_BADBR 10 /* invalid repetition count(s) */
|
||||
#define REG_ERANGE 11 /* invalid character range */
|
||||
#define REG_ESPACE 12 /* out of memory */
|
||||
#define REG_BADRPT 13 /* quantifier operand invalid */
|
||||
#define REG_ASSERT 15 /* "can't happen" -- you found a bug */
|
||||
#define REG_INVARG 16 /* invalid argument to regex function */
|
||||
#define REG_MIXED 17 /* character widths of regex and string differ */
|
||||
#define REG_BADOPT 18 /* invalid embedded option */
|
||||
#define REG_ETOOBIG 19 /* regular expression is too complex */
|
||||
#define REG_ECOLORS 20 /* too many colors */
|
||||
/* two specials for debugging and testing */
|
||||
#define REG_ATOI 101 /* convert error-code name to number */
|
||||
#define REG_ITOA 102 /* convert error-code number to name */
|
||||
|
||||
/*
|
||||
* the prototypes, as possibly munched by regfwd
|
||||
*/
|
||||
/* =====^!^===== begin forwards =====^!^===== */
|
||||
/* automatically gathered by fwd; do not hand-edit */
|
||||
/* === regproto.h === */
|
||||
#ifndef __REG_NOCHAR
|
||||
int re_comp(regex_t *, const char *, size_t, int);
|
||||
#endif
|
||||
#ifndef __REG_NOFRONT
|
||||
int regcomp(regex_t *, const char *, int);
|
||||
#endif
|
||||
#ifdef __REG_WIDE_T
|
||||
MODULE_SCOPE int __REG_WIDE_COMPILE(regex_t *, const __REG_WIDE_T *, size_t, int);
|
||||
#endif
|
||||
#ifndef __REG_NOCHAR
|
||||
int re_exec(regex_t *, const char *, size_t, rm_detail_t *, size_t, regmatch_t [], int);
|
||||
#endif
|
||||
#ifndef __REG_NOFRONT
|
||||
int regexec(regex_t *, const char *, size_t, regmatch_t [], int);
|
||||
#endif
|
||||
#ifdef __REG_WIDE_T
|
||||
MODULE_SCOPE int __REG_WIDE_EXEC(regex_t *, const __REG_WIDE_T *, size_t, rm_detail_t *, size_t, regmatch_t [], int);
|
||||
#endif
|
||||
MODULE_SCOPE void regfree(regex_t *);
|
||||
MODULE_SCOPE size_t regerror(int, char *, size_t);
|
||||
/* automatically gathered by fwd; do not hand-edit */
|
||||
/* =====^!^===== end forwards =====^!^===== */
|
||||
|
||||
/*
|
||||
* more C++ voodoo
|
||||
*/
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Local Variables:
|
||||
* mode: c
|
||||
* c-basic-offset: 4
|
||||
* fill-column: 78
|
||||
* End:
|
||||
*/
|
453
msys2/usr/include/tcl8.6/generic/regguts.h
Normal file
453
msys2/usr/include/tcl8.6/generic/regguts.h
Normal file
|
@ -0,0 +1,453 @@
|
|||
/*
|
||||
* Internal interface definitions, etc., for the reg package
|
||||
*
|
||||
* Copyright (c) 1998, 1999 Henry Spencer. All rights reserved.
|
||||
*
|
||||
* Development of this software was funded, in part, by Cray Research Inc.,
|
||||
* UUNET Communications Services Inc., Sun Microsystems Inc., and Scriptics
|
||||
* Corporation, none of whom are responsible for the results. The author
|
||||
* thanks all of them.
|
||||
*
|
||||
* Redistribution and use in source and binary forms -- with or without
|
||||
* modification -- are permitted for any purpose, provided that
|
||||
* redistributions in source form retain this entire copyright notice and
|
||||
* indicate the origin and nature of any modifications.
|
||||
*
|
||||
* I'd appreciate being given credit for this package in the documentation of
|
||||
* software which uses it, but that is not a requirement.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* HENRY SPENCER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Environmental customization. It should not (I hope) be necessary to alter
|
||||
* the file you are now reading -- regcustom.h should handle it all, given
|
||||
* care here and elsewhere.
|
||||
*/
|
||||
#include "regcustom.h"
|
||||
|
||||
/*
|
||||
* Things that regcustom.h might override.
|
||||
*/
|
||||
|
||||
/* assertions */
|
||||
#ifndef assert
|
||||
#ifndef REG_DEBUG
|
||||
#ifndef NDEBUG
|
||||
#define NDEBUG /* no assertions */
|
||||
#endif
|
||||
#endif /* !REG_DEBUG */
|
||||
#include <assert.h>
|
||||
#endif
|
||||
|
||||
/* voids */
|
||||
#ifndef VOID
|
||||
#define VOID void /* for function return values */
|
||||
#endif
|
||||
#ifndef DISCARD
|
||||
#define DISCARD void /* for throwing values away */
|
||||
#endif
|
||||
#ifndef PVOID
|
||||
#define PVOID void * /* generic pointer */
|
||||
#endif
|
||||
#ifndef VS
|
||||
#define VS(x) ((void*)(x)) /* cast something to generic ptr */
|
||||
#endif
|
||||
#ifndef NOPARMS
|
||||
#define NOPARMS void /* for empty parm lists */
|
||||
#endif
|
||||
|
||||
/* function-pointer declarator */
|
||||
#ifndef FUNCPTR
|
||||
#if __STDC__ >= 1
|
||||
#define FUNCPTR(name, args) (*name)args
|
||||
#else
|
||||
#define FUNCPTR(name, args) (*name)()
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* memory allocation */
|
||||
#ifndef MALLOC
|
||||
#define MALLOC(n) malloc(n)
|
||||
#endif
|
||||
#ifndef REALLOC
|
||||
#define REALLOC(p, n) realloc(VS(p), n)
|
||||
#endif
|
||||
#ifndef FREE
|
||||
#define FREE(p) free(VS(p))
|
||||
#endif
|
||||
|
||||
/* want size of a char in bits, and max value in bounded quantifiers */
|
||||
#ifndef _POSIX2_RE_DUP_MAX
|
||||
#define _POSIX2_RE_DUP_MAX 255 /* normally from <limits.h> */
|
||||
#endif
|
||||
|
||||
/*
|
||||
* misc
|
||||
*/
|
||||
|
||||
#define NOTREACHED 0
|
||||
#define xxx 1
|
||||
|
||||
#define DUPMAX _POSIX2_RE_DUP_MAX
|
||||
#define DUPINF (DUPMAX+1)
|
||||
|
||||
#define REMAGIC 0xfed7 /* magic number for main struct */
|
||||
|
||||
/*
|
||||
* debugging facilities
|
||||
*/
|
||||
#ifdef REG_DEBUG
|
||||
/* FDEBUG does finite-state tracing */
|
||||
#define FDEBUG(arglist) { if (v->eflags®_FTRACE) printf arglist; }
|
||||
/* MDEBUG does higher-level tracing */
|
||||
#define MDEBUG(arglist) { if (v->eflags®_MTRACE) printf arglist; }
|
||||
#else
|
||||
#define FDEBUG(arglist) {}
|
||||
#define MDEBUG(arglist) {}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* bitmap manipulation
|
||||
*/
|
||||
#define UBITS (CHAR_BIT * sizeof(unsigned))
|
||||
#define BSET(uv, sn) ((uv)[(sn)/UBITS] |= (unsigned)1 << ((sn)%UBITS))
|
||||
#define ISBSET(uv, sn) ((uv)[(sn)/UBITS] & ((unsigned)1 << ((sn)%UBITS)))
|
||||
|
||||
/*
|
||||
* We dissect a chr into byts for colormap table indexing. Here we define a
|
||||
* byt, which will be the same as a byte on most machines... The exact size of
|
||||
* a byt is not critical, but about 8 bits is good, and extraction of 8-bit
|
||||
* chunks is sometimes especially fast.
|
||||
*/
|
||||
|
||||
#ifndef BYTBITS
|
||||
#define BYTBITS 8 /* bits in a byt */
|
||||
#endif
|
||||
#define BYTTAB (1<<BYTBITS) /* size of table with one entry per byt value */
|
||||
#define BYTMASK (BYTTAB-1) /* bit mask for byt */
|
||||
#define NBYTS ((CHRBITS+BYTBITS-1)/BYTBITS)
|
||||
/* the definition of GETCOLOR(), below, assumes NBYTS <= 4 */
|
||||
|
||||
/*
|
||||
* As soon as possible, we map chrs into equivalence classes -- "colors" --
|
||||
* which are of much more manageable number.
|
||||
*/
|
||||
|
||||
typedef short color; /* colors of characters */
|
||||
typedef int pcolor; /* what color promotes to */
|
||||
#define MAX_COLOR SHRT_MAX /* max color value */
|
||||
#define COLORLESS (-1) /* impossible color */
|
||||
#define WHITE 0 /* default color, parent of all others */
|
||||
|
||||
/*
|
||||
* A colormap is a tree -- more precisely, a DAG -- indexed at each level by a
|
||||
* byt of the chr, to map the chr to a color efficiently. Because lower
|
||||
* sections of the tree can be shared, it can exploit the usual sparseness of
|
||||
* such a mapping table. The tree is always NBYTS levels deep (in the past it
|
||||
* was shallower during construction but was "filled" to full depth at the end
|
||||
* of that); areas that are unaltered as yet point to "fill blocks" which are
|
||||
* entirely WHITE in color.
|
||||
*/
|
||||
|
||||
/* the tree itself */
|
||||
struct colors {
|
||||
color ccolor[BYTTAB];
|
||||
};
|
||||
struct ptrs {
|
||||
union tree *pptr[BYTTAB];
|
||||
};
|
||||
union tree {
|
||||
struct colors colors;
|
||||
struct ptrs ptrs;
|
||||
};
|
||||
#define tcolor colors.ccolor
|
||||
#define tptr ptrs.pptr
|
||||
|
||||
/* Internal per-color descriptor structure for the color machinery */
|
||||
struct colordesc {
|
||||
uchr nchrs; /* number of chars of this color */
|
||||
color sub; /* open subcolor (if any); free chain ptr */
|
||||
#define NOSUB COLORLESS
|
||||
struct arc *arcs; /* color chain */
|
||||
int flags;
|
||||
#define FREECOL 01 /* currently free */
|
||||
#define PSEUDO 02 /* pseudocolor, no real chars */
|
||||
#define UNUSEDCOLOR(cd) ((cd)->flags&FREECOL)
|
||||
union tree *block; /* block of solid color, if any */
|
||||
};
|
||||
|
||||
/*
|
||||
* The color map itself
|
||||
*
|
||||
* Much of the data in the colormap struct is only used at compile time.
|
||||
* However, the bulk of the space usage is in the "tree" structure, so it's
|
||||
* not clear that there's much point in converting the rest to a more compact
|
||||
* form when compilation is finished.
|
||||
*/
|
||||
struct colormap {
|
||||
int magic;
|
||||
#define CMMAGIC 0x876
|
||||
struct vars *v; /* for compile error reporting */
|
||||
size_t ncds; /* number of colordescs */
|
||||
size_t max; /* highest in use */
|
||||
color free; /* beginning of free chain (if non-0) */
|
||||
struct colordesc *cd;
|
||||
#define CDEND(cm) (&(cm)->cd[(cm)->max + 1])
|
||||
#define NINLINECDS ((size_t)10)
|
||||
struct colordesc cdspace[NINLINECDS];
|
||||
union tree tree[NBYTS]; /* tree top, plus fill blocks */
|
||||
};
|
||||
|
||||
/* optimization magic to do fast chr->color mapping */
|
||||
#define B0(c) ((c) & BYTMASK)
|
||||
#define B1(c) (((c)>>BYTBITS) & BYTMASK)
|
||||
#define B2(c) (((c)>>(2*BYTBITS)) & BYTMASK)
|
||||
#define B3(c) (((c)>>(3*BYTBITS)) & BYTMASK)
|
||||
#if NBYTS == 1
|
||||
#define GETCOLOR(cm, c) ((cm)->tree->tcolor[B0(c)])
|
||||
#endif
|
||||
/* beware, for NBYTS>1, GETCOLOR() is unsafe -- 2nd arg used repeatedly */
|
||||
#if NBYTS == 2
|
||||
#define GETCOLOR(cm, c) ((cm)->tree->tptr[B1(c)]->tcolor[B0(c)])
|
||||
#endif
|
||||
#if NBYTS == 4
|
||||
#define GETCOLOR(cm, c) ((cm)->tree->tptr[B3(c)]->tptr[B2(c)]->tptr[B1(c)]->tcolor[B0(c)])
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Interface definitions for locale-interface functions in locale.c.
|
||||
*/
|
||||
|
||||
/* Representation of a set of characters. */
|
||||
struct cvec {
|
||||
int nchrs; /* number of chrs */
|
||||
int chrspace; /* number of chrs possible */
|
||||
chr *chrs; /* pointer to vector of chrs */
|
||||
int nranges; /* number of ranges (chr pairs) */
|
||||
int rangespace; /* number of chrs possible */
|
||||
chr *ranges; /* pointer to vector of chr pairs */
|
||||
};
|
||||
|
||||
/*
|
||||
* definitions for non-deterministic finite autmaton (NFA) internal
|
||||
* representation
|
||||
*
|
||||
* Having a "from" pointer within each arc may seem redundant, but it saves a
|
||||
* lot of hassle.
|
||||
*/
|
||||
|
||||
struct state;
|
||||
|
||||
struct arc {
|
||||
int type; /* 0 if free, else an NFA arc type code */
|
||||
color co;
|
||||
struct state *from; /* where it's from (and contained within) */
|
||||
struct state *to; /* where it's to */
|
||||
struct arc *outchain; /* link in *from's outs chain or free chain */
|
||||
struct arc *outchainRev; /* back-link in *from's outs chain */
|
||||
#define freechain outchain /* we do not maintain "freechainRev" */
|
||||
struct arc *inchain; /* *to's ins chain */
|
||||
struct arc *inchainRev; /* back-link in *to's ins chain */
|
||||
struct arc *colorchain; /* color's arc chain */
|
||||
struct arc *colorchainRev; /* back-link in color's arc chain */
|
||||
};
|
||||
|
||||
struct arcbatch { /* for bulk allocation of arcs */
|
||||
struct arcbatch *next;
|
||||
#define ABSIZE 10
|
||||
struct arc a[ABSIZE];
|
||||
};
|
||||
|
||||
struct state {
|
||||
int no;
|
||||
#define FREESTATE (-1)
|
||||
char flag; /* marks special states */
|
||||
int nins; /* number of inarcs */
|
||||
struct arc *ins; /* chain of inarcs */
|
||||
int nouts; /* number of outarcs */
|
||||
struct arc *outs; /* chain of outarcs */
|
||||
struct arc *free; /* chain of free arcs */
|
||||
struct state *tmp; /* temporary for traversal algorithms */
|
||||
struct state *next; /* chain for traversing all */
|
||||
struct state *prev; /* back chain */
|
||||
struct arcbatch oas; /* first arcbatch, avoid malloc in easy case */
|
||||
int noas; /* number of arcs used in first arcbatch */
|
||||
};
|
||||
|
||||
struct nfa {
|
||||
struct state *pre; /* pre-initial state */
|
||||
struct state *init; /* initial state */
|
||||
struct state *final; /* final state */
|
||||
struct state *post; /* post-final state */
|
||||
int nstates; /* for numbering states */
|
||||
struct state *states; /* state-chain header */
|
||||
struct state *slast; /* tail of the chain */
|
||||
struct state *free; /* free list */
|
||||
struct colormap *cm; /* the color map */
|
||||
color bos[2]; /* colors, if any, assigned to BOS and BOL */
|
||||
color eos[2]; /* colors, if any, assigned to EOS and EOL */
|
||||
struct vars *v; /* simplifies compile error reporting */
|
||||
struct nfa *parent; /* parent NFA, if any */
|
||||
};
|
||||
|
||||
/*
|
||||
* definitions for compacted NFA
|
||||
*
|
||||
* The main space savings in a compacted NFA is from making the arcs as small
|
||||
* as possible. We store only the transition color and next-state number for
|
||||
* each arc. The list of out arcs for each state is an array beginning at
|
||||
* cnfa.states[statenumber], and terminated by a dummy carc struct with
|
||||
* co == COLORLESS.
|
||||
*
|
||||
* The non-dummy carc structs are of two types: plain arcs and LACON arcs.
|
||||
* Plain arcs just store the transition color number as "co". LACON arcs
|
||||
* store the lookahead constraint number plus cnfa.ncolors as "co". LACON
|
||||
* arcs can be distinguished from plain by testing for co >= cnfa.ncolors.
|
||||
*/
|
||||
|
||||
struct carc {
|
||||
color co; /* COLORLESS is list terminator */
|
||||
int to; /* next-state number */
|
||||
};
|
||||
|
||||
struct cnfa {
|
||||
int nstates; /* number of states */
|
||||
int ncolors; /* number of colors */
|
||||
int flags;
|
||||
#define HASLACONS 01 /* uses lookahead constraints */
|
||||
int pre; /* setup state number */
|
||||
int post; /* teardown state number */
|
||||
color bos[2]; /* colors, if any, assigned to BOS and BOL */
|
||||
color eos[2]; /* colors, if any, assigned to EOS and EOL */
|
||||
char *stflags; /* vector of per-state flags bytes */
|
||||
#define CNFA_NOPROGRESS 01 /* flag bit for a no-progress state */
|
||||
struct carc **states; /* vector of pointers to outarc lists */
|
||||
/* states[n] are pointers into a single malloc'd array of arcs */
|
||||
struct carc *arcs; /* the area for the lists */
|
||||
};
|
||||
#define ZAPCNFA(cnfa) ((cnfa).nstates = 0)
|
||||
#define NULLCNFA(cnfa) ((cnfa).nstates == 0)
|
||||
|
||||
/*
|
||||
* This symbol limits the transient heap space used by the regex compiler,
|
||||
* and thereby also the maximum complexity of NFAs that we'll deal with.
|
||||
* Currently we only count NFA states and arcs against this; the other
|
||||
* transient data is generally not large enough to notice compared to those.
|
||||
* Note that we do not charge anything for the final output data structures
|
||||
* (the compacted NFA and the colormap).
|
||||
*/
|
||||
#ifndef REG_MAX_COMPILE_SPACE
|
||||
#define REG_MAX_COMPILE_SPACE \
|
||||
(100000 * sizeof(struct state) + 100000 * sizeof(struct arcbatch))
|
||||
#endif
|
||||
|
||||
/*
|
||||
* subexpression tree
|
||||
*
|
||||
* "op" is one of:
|
||||
* '=' plain regex without interesting substructure (implemented as DFA)
|
||||
* 'b' back-reference (has no substructure either)
|
||||
* '(' capture node: captures the match of its single child
|
||||
* '.' concatenation: matches a match for left, then a match for right
|
||||
* '|' alternation: matches a match for left or a match for right
|
||||
* '*' iteration: matches some number of matches of its single child
|
||||
*
|
||||
* Note: the right child of an alternation must be another alternation or
|
||||
* NULL; hence, an N-way branch requires N alternation nodes, not N-1 as you
|
||||
* might expect. This could stand to be changed. Actually I'd rather see
|
||||
* a single alternation node with N children, but that will take revising
|
||||
* the representation of struct subre.
|
||||
*
|
||||
* Note: when a backref is directly quantified, we stick the min/max counts
|
||||
* into the backref rather than plastering an iteration node on top. This is
|
||||
* for efficiency: there is no need to search for possible division points.
|
||||
*/
|
||||
|
||||
struct subre {
|
||||
char op; /* see type codes above */
|
||||
char flags;
|
||||
#define LONGER 01 /* prefers longer match */
|
||||
#define SHORTER 02 /* prefers shorter match */
|
||||
#define MIXED 04 /* mixed preference below */
|
||||
#define CAP 010 /* capturing parens below */
|
||||
#define BACKR 020 /* back reference below */
|
||||
#define INUSE 0100 /* in use in final tree */
|
||||
#define NOPROP 03 /* bits which may not propagate up */
|
||||
#define LMIX(f) ((f)<<2) /* LONGER -> MIXED */
|
||||
#define SMIX(f) ((f)<<1) /* SHORTER -> MIXED */
|
||||
#define UP(f) (((f)&~NOPROP) | (LMIX(f) & SMIX(f) & MIXED))
|
||||
#define MESSY(f) ((f)&(MIXED|CAP|BACKR))
|
||||
#define PREF(f) ((f)&NOPROP)
|
||||
#define PREF2(f1, f2) ((PREF(f1) != 0) ? PREF(f1) : PREF(f2))
|
||||
#define COMBINE(f1, f2) (UP((f1)|(f2)) | PREF2(f1, f2))
|
||||
short id; /* ID of subre (1..ntree-1) */
|
||||
int subno; /* subexpression number (for 'b' and '(') */
|
||||
short min; /* min repetitions for iteration or backref */
|
||||
short max; /* max repetitions for iteration or backref */
|
||||
struct subre *left; /* left child, if any (also freelist chain) */
|
||||
struct subre *right; /* right child, if any */
|
||||
struct state *begin; /* outarcs from here... */
|
||||
struct state *end; /* ...ending in inarcs here */
|
||||
struct cnfa cnfa; /* compacted NFA, if any */
|
||||
struct subre *chain; /* for bookkeeping and error cleanup */
|
||||
};
|
||||
|
||||
/*
|
||||
* table of function pointers for generic manipulation functions. A regex_t's
|
||||
* re_fns points to one of these.
|
||||
*/
|
||||
|
||||
struct fns {
|
||||
void FUNCPTR(free, (regex_t *));
|
||||
};
|
||||
|
||||
/*
|
||||
* the insides of a regex_t, hidden behind a void *
|
||||
*/
|
||||
|
||||
struct guts {
|
||||
int magic;
|
||||
#define GUTSMAGIC 0xfed9
|
||||
int cflags; /* copy of compile flags */
|
||||
long info; /* copy of re_info */
|
||||
size_t nsub; /* copy of re_nsub */
|
||||
struct subre *tree;
|
||||
struct cnfa search; /* for fast preliminary search */
|
||||
int ntree; /* number of subre's, plus one */
|
||||
struct colormap cmap;
|
||||
int FUNCPTR(compare, (const chr *, const chr *, size_t));
|
||||
struct subre *lacons; /* lookahead-constraint vector */
|
||||
int nlacons; /* size of lacons */
|
||||
};
|
||||
|
||||
/*
|
||||
* Magic for allocating a variable workspace. This default version is
|
||||
* stack-hungry.
|
||||
*/
|
||||
|
||||
#ifndef AllocVars
|
||||
#define AllocVars(vPtr) \
|
||||
struct vars var; \
|
||||
struct vars *vPtr = &var
|
||||
#endif
|
||||
#ifndef FreeVars
|
||||
#define FreeVars(vPtr) ((void) 0)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Local Variables:
|
||||
* mode: c
|
||||
* c-basic-offset: 4
|
||||
* fill-column: 78
|
||||
* End:
|
||||
*/
|
2662
msys2/usr/include/tcl8.6/generic/tcl.h
Normal file
2662
msys2/usr/include/tcl8.6/generic/tcl.h
Normal file
File diff suppressed because it is too large
Load diff
1932
msys2/usr/include/tcl8.6/generic/tclCompile.h
Normal file
1932
msys2/usr/include/tcl8.6/generic/tclCompile.h
Normal file
File diff suppressed because it is too large
Load diff
3975
msys2/usr/include/tcl8.6/generic/tclDecls.h
Normal file
3975
msys2/usr/include/tcl8.6/generic/tclDecls.h
Normal file
File diff suppressed because it is too large
Load diff
74
msys2/usr/include/tcl8.6/generic/tclFileSystem.h
Normal file
74
msys2/usr/include/tcl8.6/generic/tclFileSystem.h
Normal file
|
@ -0,0 +1,74 @@
|
|||
/*
|
||||
* tclFileSystem.h --
|
||||
*
|
||||
* This file contains the common defintions and prototypes for use by
|
||||
* Tcl's filesystem and path handling layers.
|
||||
*
|
||||
* Copyright (c) 2003 Vince Darley.
|
||||
*
|
||||
* See the file "license.terms" for information on usage and redistribution of
|
||||
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
*/
|
||||
|
||||
#ifndef _TCLFILESYSTEM
|
||||
#define _TCLFILESYSTEM
|
||||
|
||||
#include "tcl.h"
|
||||
|
||||
/*
|
||||
* The internal TclFS API provides routines for handling and manipulating
|
||||
* paths efficiently, taking direct advantage of the "path" Tcl_Obj type.
|
||||
*
|
||||
* These functions are not exported at all at present.
|
||||
*/
|
||||
|
||||
MODULE_SCOPE int TclFSCwdPointerEquals(Tcl_Obj **pathPtrPtr);
|
||||
MODULE_SCOPE int TclFSNormalizeToUniquePath(Tcl_Interp *interp,
|
||||
Tcl_Obj *pathPtr, int startAt);
|
||||
MODULE_SCOPE Tcl_Obj * TclFSMakePathRelative(Tcl_Interp *interp,
|
||||
Tcl_Obj *pathPtr, Tcl_Obj *cwdPtr);
|
||||
MODULE_SCOPE int TclFSEnsureEpochOk(Tcl_Obj *pathPtr,
|
||||
const Tcl_Filesystem **fsPtrPtr);
|
||||
MODULE_SCOPE void TclFSSetPathDetails(Tcl_Obj *pathPtr,
|
||||
const Tcl_Filesystem *fsPtr, ClientData clientData);
|
||||
MODULE_SCOPE Tcl_Obj * TclFSNormalizeAbsolutePath(Tcl_Interp *interp,
|
||||
Tcl_Obj *pathPtr);
|
||||
MODULE_SCOPE size_t TclFSEpoch(void);
|
||||
|
||||
/*
|
||||
* Private shared variables for use by tclIOUtil.c and tclPathObj.c
|
||||
*/
|
||||
|
||||
MODULE_SCOPE const Tcl_Filesystem tclNativeFilesystem;
|
||||
|
||||
/*
|
||||
* Private shared functions for use by tclIOUtil.c, tclPathObj.c and
|
||||
* tclFileName.c, and any platform-specific filesystem code.
|
||||
*/
|
||||
|
||||
MODULE_SCOPE Tcl_PathType TclFSGetPathType(Tcl_Obj *pathPtr,
|
||||
const Tcl_Filesystem **filesystemPtrPtr,
|
||||
int *driveNameLengthPtr);
|
||||
MODULE_SCOPE Tcl_PathType TclFSNonnativePathType(const char *pathPtr,
|
||||
int pathLen, const Tcl_Filesystem **filesystemPtrPtr,
|
||||
int *driveNameLengthPtr, Tcl_Obj **driveNameRef);
|
||||
MODULE_SCOPE Tcl_PathType TclGetPathType(Tcl_Obj *pathPtr,
|
||||
const Tcl_Filesystem **filesystemPtrPtr,
|
||||
int *driveNameLengthPtr, Tcl_Obj **driveNameRef);
|
||||
MODULE_SCOPE int TclFSEpochOk(size_t filesystemEpoch);
|
||||
MODULE_SCOPE int TclFSCwdIsNative(void);
|
||||
MODULE_SCOPE Tcl_Obj * TclWinVolumeRelativeNormalize(Tcl_Interp *interp,
|
||||
const char *path, Tcl_Obj **useThisCwdPtr);
|
||||
|
||||
MODULE_SCOPE Tcl_FSPathInFilesystemProc TclNativePathInFilesystem;
|
||||
MODULE_SCOPE Tcl_FSCreateInternalRepProc TclNativeCreateNativeRep;
|
||||
|
||||
#endif /* _TCLFILESYSTEM */
|
||||
|
||||
/*
|
||||
* Local Variables:
|
||||
* mode: c
|
||||
* c-basic-offset: 4
|
||||
* fill-column: 78
|
||||
* End:
|
||||
*/
|
297
msys2/usr/include/tcl8.6/generic/tclIO.h
Normal file
297
msys2/usr/include/tcl8.6/generic/tclIO.h
Normal file
|
@ -0,0 +1,297 @@
|
|||
/*
|
||||
* tclIO.h --
|
||||
*
|
||||
* This file provides the generic portions (those that are the same on
|
||||
* all platforms and for all channel types) of Tcl's IO facilities.
|
||||
*
|
||||
* Copyright (c) 1998-2000 Ajuba Solutions
|
||||
* Copyright (c) 1995-1997 Sun Microsystems, Inc.
|
||||
*
|
||||
* See the file "license.terms" for information on usage and redistribution of
|
||||
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Make sure that both EAGAIN and EWOULDBLOCK are defined. This does not
|
||||
* compile on systems where neither is defined. We want both defined so that
|
||||
* we can test safely for both. In the code we still have to test for both
|
||||
* because there may be systems on which both are defined and have different
|
||||
* values.
|
||||
*/
|
||||
|
||||
#if ((!defined(EWOULDBLOCK)) && (defined(EAGAIN)))
|
||||
# define EWOULDBLOCK EAGAIN
|
||||
#endif
|
||||
#if ((!defined(EAGAIN)) && (defined(EWOULDBLOCK)))
|
||||
# define EAGAIN EWOULDBLOCK
|
||||
#endif
|
||||
#if ((!defined(EAGAIN)) && (!defined(EWOULDBLOCK)))
|
||||
#error one of EWOULDBLOCK or EAGAIN must be defined
|
||||
#endif
|
||||
|
||||
/*
|
||||
* struct ChannelBuffer:
|
||||
*
|
||||
* Buffers data being sent to or from a channel.
|
||||
*/
|
||||
|
||||
typedef struct ChannelBuffer {
|
||||
int refCount; /* Current uses count */
|
||||
int nextAdded; /* The next position into which a character
|
||||
* will be put in the buffer. */
|
||||
int nextRemoved; /* Position of next byte to be removed from
|
||||
* the buffer. */
|
||||
int bufLength; /* How big is the buffer? */
|
||||
struct ChannelBuffer *nextPtr;
|
||||
/* Next buffer in chain. */
|
||||
char buf[1]; /* Placeholder for real buffer. The real
|
||||
* buffer occuppies this space + bufSize-1
|
||||
* bytes. This must be the last field in the
|
||||
* structure. */
|
||||
} ChannelBuffer;
|
||||
|
||||
#define CHANNELBUFFER_HEADER_SIZE TclOffset(ChannelBuffer, buf)
|
||||
|
||||
/*
|
||||
* How much extra space to allocate in buffer to hold bytes from previous
|
||||
* buffer (when converting to UTF-8) or to hold bytes that will go to next
|
||||
* buffer (when converting from UTF-8).
|
||||
*/
|
||||
|
||||
#define BUFFER_PADDING 16
|
||||
|
||||
/*
|
||||
* The following defines the *default* buffer size for channels.
|
||||
*/
|
||||
|
||||
#define CHANNELBUFFER_DEFAULT_SIZE (1024 * 4)
|
||||
|
||||
/*
|
||||
* The following structure describes the information saved from a call to
|
||||
* "fileevent". This is used later when the event being waited for to invoke
|
||||
* the saved script in the interpreter designed in this record.
|
||||
*/
|
||||
|
||||
typedef struct EventScriptRecord {
|
||||
struct Channel *chanPtr; /* The channel for which this script is
|
||||
* registered. This is used only when an error
|
||||
* occurs during evaluation of the script, to
|
||||
* delete the handler. */
|
||||
Tcl_Obj *scriptPtr; /* Script to invoke. */
|
||||
Tcl_Interp *interp; /* In what interpreter to invoke script? */
|
||||
int mask; /* Events must overlap current mask for the
|
||||
* stored script to be invoked. */
|
||||
struct EventScriptRecord *nextPtr;
|
||||
/* Next in chain of records. */
|
||||
} EventScriptRecord;
|
||||
|
||||
/*
|
||||
* struct Channel:
|
||||
*
|
||||
* One of these structures is allocated for each open channel. It contains
|
||||
* data specific to the channel but which belongs to the generic part of the
|
||||
* Tcl channel mechanism, and it points at an instance specific (and type
|
||||
* specific) instance data, and at a channel type structure.
|
||||
*/
|
||||
|
||||
typedef struct Channel {
|
||||
struct ChannelState *state; /* Split out state information */
|
||||
ClientData instanceData; /* Instance-specific data provided by creator
|
||||
* of channel. */
|
||||
const Tcl_ChannelType *typePtr; /* Pointer to channel type structure. */
|
||||
struct Channel *downChanPtr;/* Refers to channel this one was stacked
|
||||
* upon. This reference is NULL for normal
|
||||
* channels. See Tcl_StackChannel. */
|
||||
struct Channel *upChanPtr; /* Refers to the channel above stacked this
|
||||
* one. NULL for the top most channel. */
|
||||
|
||||
/*
|
||||
* Intermediate buffers to hold pre-read data for consumption by a newly
|
||||
* stacked transformation. See 'Tcl_StackChannel'.
|
||||
*/
|
||||
|
||||
ChannelBuffer *inQueueHead; /* Points at first buffer in input queue. */
|
||||
ChannelBuffer *inQueueTail; /* Points at last buffer in input queue. */
|
||||
|
||||
int refCount;
|
||||
} Channel;
|
||||
|
||||
/*
|
||||
* struct ChannelState:
|
||||
*
|
||||
* One of these structures is allocated for each open channel. It contains
|
||||
* data specific to the channel but which belongs to the generic part of the
|
||||
* Tcl channel mechanism, and it points at an instance specific (and type
|
||||
* specific) instance data, and at a channel type structure.
|
||||
*/
|
||||
|
||||
typedef struct ChannelState {
|
||||
char *channelName; /* The name of the channel instance in Tcl
|
||||
* commands. Storage is owned by the generic
|
||||
* IO code, is dynamically allocated. */
|
||||
int flags; /* ORed combination of the flags defined
|
||||
* below. */
|
||||
Tcl_Encoding encoding; /* Encoding to apply when reading or writing
|
||||
* data on this channel. NULL means no
|
||||
* encoding is applied to data. */
|
||||
Tcl_EncodingState inputEncodingState;
|
||||
/* Current encoding state, used when
|
||||
* converting input data bytes to UTF-8. */
|
||||
int inputEncodingFlags; /* Encoding flags to pass to conversion
|
||||
* routine when converting input data bytes to
|
||||
* UTF-8. May be TCL_ENCODING_START before
|
||||
* converting first byte and TCL_ENCODING_END
|
||||
* when EOF is seen. */
|
||||
Tcl_EncodingState outputEncodingState;
|
||||
/* Current encoding state, used when
|
||||
* converting UTF-8 to output data bytes. */
|
||||
int outputEncodingFlags; /* Encoding flags to pass to conversion
|
||||
* routine when converting UTF-8 to output
|
||||
* data bytes. May be TCL_ENCODING_START
|
||||
* before converting first byte and
|
||||
* TCL_ENCODING_END when EOF is seen. */
|
||||
TclEolTranslation inputTranslation;
|
||||
/* What translation to apply for end of line
|
||||
* sequences on input? */
|
||||
TclEolTranslation outputTranslation;
|
||||
/* What translation to use for generating end
|
||||
* of line sequences in output? */
|
||||
int inEofChar; /* If nonzero, use this as a signal of EOF on
|
||||
* input. */
|
||||
int outEofChar; /* If nonzero, append this to the channel when
|
||||
* it is closed if it is open for writing. */
|
||||
int unreportedError; /* Non-zero if an error report was deferred
|
||||
* because it happened in the background. The
|
||||
* value is the POSIX error code. */
|
||||
int refCount; /* How many interpreters hold references to
|
||||
* this IO channel? */
|
||||
struct CloseCallback *closeCbPtr;
|
||||
/* Callbacks registered to be called when the
|
||||
* channel is closed. */
|
||||
char *outputStage; /* Temporary staging buffer used when
|
||||
* translating EOL before converting from
|
||||
* UTF-8 to external form. */
|
||||
ChannelBuffer *curOutPtr; /* Current output buffer being filled. */
|
||||
ChannelBuffer *outQueueHead;/* Points at first buffer in output queue. */
|
||||
ChannelBuffer *outQueueTail;/* Points at last buffer in output queue. */
|
||||
ChannelBuffer *saveInBufPtr;/* Buffer saved for input queue - eliminates
|
||||
* need to allocate a new buffer for "gets"
|
||||
* that crosses buffer boundaries. */
|
||||
ChannelBuffer *inQueueHead; /* Points at first buffer in input queue. */
|
||||
ChannelBuffer *inQueueTail; /* Points at last buffer in input queue. */
|
||||
struct ChannelHandler *chPtr;/* List of channel handlers registered for
|
||||
* this channel. */
|
||||
int interestMask; /* Mask of all events this channel has
|
||||
* handlers for. */
|
||||
EventScriptRecord *scriptRecordPtr;
|
||||
/* Chain of all scripts registered for event
|
||||
* handlers ("fileevent") on this channel. */
|
||||
int bufSize; /* What size buffers to allocate? */
|
||||
Tcl_TimerToken timer; /* Handle to wakeup timer for this channel. */
|
||||
struct CopyState *csPtrR; /* State of background copy for which channel
|
||||
* is input, or NULL. */
|
||||
struct CopyState *csPtrW; /* State of background copy for which channel
|
||||
* is output, or NULL. */
|
||||
Channel *topChanPtr; /* Refers to topmost channel in a stack. Never
|
||||
* NULL. */
|
||||
Channel *bottomChanPtr; /* Refers to bottommost channel in a stack.
|
||||
* This channel can be relied on to live as
|
||||
* long as the channel state. Never NULL. */
|
||||
struct ChannelState *nextCSPtr;
|
||||
/* Next in list of channels currently open. */
|
||||
Tcl_ThreadId managingThread;/* TIP #10: Id of the thread managing this
|
||||
* stack of channels. */
|
||||
|
||||
/*
|
||||
* TIP #219 ... Info for the I/O system ...
|
||||
* Error message set by channel drivers, for the propagation of arbitrary
|
||||
* Tcl errors. This information, if present (chanMsg not NULL), takes
|
||||
* precedence over a posix error code returned by a channel operation.
|
||||
*/
|
||||
|
||||
Tcl_Obj* chanMsg;
|
||||
Tcl_Obj* unreportedMsg; /* Non-NULL if an error report was deferred
|
||||
* because it happened in the background. The
|
||||
* value is the chanMg, if any. #219's
|
||||
* companion to 'unreportedError'. */
|
||||
int epoch; /* Used to test validity of stored channelname
|
||||
* lookup results. */
|
||||
} ChannelState;
|
||||
|
||||
/*
|
||||
* Values for the flags field in Channel. Any ORed combination of the
|
||||
* following flags can be stored in the field. These flags record various
|
||||
* options and state bits about the channel. In addition to the flags below,
|
||||
* the channel can also have TCL_READABLE (1<<1) and TCL_WRITABLE (1<<2) set.
|
||||
*/
|
||||
|
||||
#define CHANNEL_NONBLOCKING (1<<3) /* Channel is currently in nonblocking
|
||||
* mode. */
|
||||
#define CHANNEL_LINEBUFFERED (1<<4) /* Output to the channel must be
|
||||
* flushed after every newline. */
|
||||
#define CHANNEL_UNBUFFERED (1<<5) /* Output to the channel must always
|
||||
* be flushed immediately. */
|
||||
#define BG_FLUSH_SCHEDULED (1<<7) /* A background flush of the queued
|
||||
* output buffers has been
|
||||
* scheduled. */
|
||||
#define CHANNEL_CLOSED (1<<8) /* Channel has been closed. No further
|
||||
* Tcl-level IO on the channel is
|
||||
* allowed. */
|
||||
#define CHANNEL_EOF (1<<9) /* EOF occurred on this channel. This
|
||||
* bit is cleared before every input
|
||||
* operation. */
|
||||
#define CHANNEL_STICKY_EOF (1<<10) /* EOF occurred on this channel
|
||||
* because we saw the input
|
||||
* eofChar. This bit prevents clearing
|
||||
* of the EOF bit before every input
|
||||
* operation. */
|
||||
#define CHANNEL_BLOCKED (1<<11) /* EWOULDBLOCK or EAGAIN occurred on
|
||||
* this channel. This bit is cleared
|
||||
* before every input or output
|
||||
* operation. */
|
||||
#define INPUT_SAW_CR (1<<12) /* Channel is in CRLF eol input
|
||||
* translation mode and the last byte
|
||||
* seen was a "\r". */
|
||||
#define CHANNEL_DEAD (1<<13) /* The channel has been closed by the
|
||||
* exit handler (on exit) but not
|
||||
* deallocated. When any IO operation
|
||||
* sees this flag on a channel, it
|
||||
* does not call driver level
|
||||
* functions to avoid referring to
|
||||
* deallocated data. */
|
||||
#define CHANNEL_NEED_MORE_DATA (1<<14) /* The last input operation failed
|
||||
* because there was not enough data
|
||||
* to complete the operation. This
|
||||
* flag is set when gets fails to get
|
||||
* a complete line or when read fails
|
||||
* to get a complete character. When
|
||||
* set, file events will not be
|
||||
* delivered for buffered data until
|
||||
* the state of the channel
|
||||
* changes. */
|
||||
#define CHANNEL_RAW_MODE (1<<16) /* When set, notes that the Raw API is
|
||||
* being used. */
|
||||
|
||||
#define CHANNEL_INCLOSE (1<<19) /* Channel is currently being closed.
|
||||
* Its structures are still live and
|
||||
* usable, but it may not be closed
|
||||
* again from within the close
|
||||
* handler. */
|
||||
#define CHANNEL_CLOSEDWRITE (1<<21) /* Channel write side has been closed.
|
||||
* No further Tcl-level write IO on
|
||||
* the channel is allowed. */
|
||||
|
||||
/*
|
||||
* The length of time to wait between synthetic timer events. Must be zero or
|
||||
* bad things tend to happen.
|
||||
*/
|
||||
|
||||
#define SYNTHETIC_EVENT_TIME 0
|
||||
|
||||
/*
|
||||
* Local Variables:
|
||||
* mode: c
|
||||
* c-basic-offset: 4
|
||||
* fill-column: 78
|
||||
* End:
|
||||
*/
|
4946
msys2/usr/include/tcl8.6/generic/tclInt.h
Normal file
4946
msys2/usr/include/tcl8.6/generic/tclInt.h
Normal file
File diff suppressed because it is too large
Load diff
1414
msys2/usr/include/tcl8.6/generic/tclIntDecls.h
Normal file
1414
msys2/usr/include/tcl8.6/generic/tclIntDecls.h
Normal file
File diff suppressed because it is too large
Load diff
562
msys2/usr/include/tcl8.6/generic/tclIntPlatDecls.h
Normal file
562
msys2/usr/include/tcl8.6/generic/tclIntPlatDecls.h
Normal file
|
@ -0,0 +1,562 @@
|
|||
/*
|
||||
* tclIntPlatDecls.h --
|
||||
*
|
||||
* This file contains the declarations for all platform dependent
|
||||
* unsupported functions that are exported by the Tcl library. These
|
||||
* interfaces are not guaranteed to remain the same between
|
||||
* versions. Use at your own risk.
|
||||
*
|
||||
* Copyright (c) 1998-1999 by Scriptics Corporation.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef _TCLINTPLATDECLS
|
||||
#define _TCLINTPLATDECLS
|
||||
|
||||
#undef TCL_STORAGE_CLASS
|
||||
#ifdef BUILD_tcl
|
||||
# define TCL_STORAGE_CLASS DLLEXPORT
|
||||
#else
|
||||
# ifdef USE_TCL_STUBS
|
||||
# define TCL_STORAGE_CLASS
|
||||
# else
|
||||
# define TCL_STORAGE_CLASS DLLIMPORT
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* WARNING: This file is automatically generated by the tools/genStubs.tcl
|
||||
* script. Any modifications to the function declarations below should be made
|
||||
* in the generic/tclInt.decls script.
|
||||
*/
|
||||
|
||||
/* !BEGIN!: Do not edit below this line. */
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Exported function declarations:
|
||||
*/
|
||||
|
||||
#if !defined(_WIN32) && !defined(MAC_OSX_TCL) /* UNIX */
|
||||
/* 0 */
|
||||
EXTERN void TclGetAndDetachPids(Tcl_Interp *interp,
|
||||
Tcl_Channel chan);
|
||||
/* 1 */
|
||||
EXTERN int TclpCloseFile(TclFile file);
|
||||
/* 2 */
|
||||
EXTERN Tcl_Channel TclpCreateCommandChannel(TclFile readFile,
|
||||
TclFile writeFile, TclFile errorFile,
|
||||
int numPids, Tcl_Pid *pidPtr);
|
||||
/* 3 */
|
||||
EXTERN int TclpCreatePipe(TclFile *readPipe, TclFile *writePipe);
|
||||
/* 4 */
|
||||
EXTERN int TclpCreateProcess(Tcl_Interp *interp, int argc,
|
||||
const char **argv, TclFile inputFile,
|
||||
TclFile outputFile, TclFile errorFile,
|
||||
Tcl_Pid *pidPtr);
|
||||
/* Slot 5 is reserved */
|
||||
/* 6 */
|
||||
EXTERN TclFile TclpMakeFile(Tcl_Channel channel, int direction);
|
||||
/* 7 */
|
||||
EXTERN TclFile TclpOpenFile(const char *fname, int mode);
|
||||
/* 8 */
|
||||
EXTERN int TclUnixWaitForFile(int fd, int mask, int timeout);
|
||||
/* 9 */
|
||||
EXTERN TclFile TclpCreateTempFile(const char *contents);
|
||||
/* 10 */
|
||||
EXTERN Tcl_DirEntry * TclpReaddir(TclDIR *dir);
|
||||
/* 11 */
|
||||
EXTERN struct tm * TclpLocaltime_unix(const time_t *clock);
|
||||
/* 12 */
|
||||
EXTERN struct tm * TclpGmtime_unix(const time_t *clock);
|
||||
/* 13 */
|
||||
EXTERN char * TclpInetNtoa(struct in_addr addr);
|
||||
/* 14 */
|
||||
EXTERN int TclUnixCopyFile(const char *src, const char *dst,
|
||||
const Tcl_StatBuf *statBufPtr,
|
||||
int dontCopyAtts);
|
||||
/* Slot 15 is reserved */
|
||||
/* Slot 16 is reserved */
|
||||
/* Slot 17 is reserved */
|
||||
/* Slot 18 is reserved */
|
||||
/* Slot 19 is reserved */
|
||||
/* Slot 20 is reserved */
|
||||
/* Slot 21 is reserved */
|
||||
/* Slot 22 is reserved */
|
||||
/* Slot 23 is reserved */
|
||||
/* Slot 24 is reserved */
|
||||
/* Slot 25 is reserved */
|
||||
/* Slot 26 is reserved */
|
||||
/* Slot 27 is reserved */
|
||||
/* Slot 28 is reserved */
|
||||
/* 29 */
|
||||
EXTERN int TclWinCPUID(unsigned int index, unsigned int *regs);
|
||||
/* 30 */
|
||||
EXTERN int TclUnixOpenTemporaryFile(Tcl_Obj *dirObj,
|
||||
Tcl_Obj *basenameObj, Tcl_Obj *extensionObj,
|
||||
Tcl_Obj *resultingNameObj);
|
||||
#endif /* UNIX */
|
||||
#if defined(_WIN32) /* WIN */
|
||||
/* 0 */
|
||||
EXTERN void TclWinConvertError(DWORD errCode);
|
||||
/* 1 */
|
||||
EXTERN void TclWinConvertWSAError(DWORD errCode);
|
||||
/* 2 */
|
||||
EXTERN struct servent * TclWinGetServByName(const char *nm,
|
||||
const char *proto);
|
||||
/* 3 */
|
||||
EXTERN int TclWinGetSockOpt(SOCKET s, int level, int optname,
|
||||
char *optval, int *optlen);
|
||||
/* 4 */
|
||||
EXTERN HINSTANCE TclWinGetTclInstance(void);
|
||||
/* 5 */
|
||||
EXTERN int TclUnixWaitForFile(int fd, int mask, int timeout);
|
||||
/* 6 */
|
||||
EXTERN unsigned short TclWinNToHS(unsigned short ns);
|
||||
/* 7 */
|
||||
EXTERN int TclWinSetSockOpt(SOCKET s, int level, int optname,
|
||||
const char *optval, int optlen);
|
||||
/* 8 */
|
||||
EXTERN int TclpGetPid(Tcl_Pid pid);
|
||||
/* 9 */
|
||||
EXTERN int TclWinGetPlatformId(void);
|
||||
/* 10 */
|
||||
EXTERN Tcl_DirEntry * TclpReaddir(TclDIR *dir);
|
||||
/* 11 */
|
||||
EXTERN void TclGetAndDetachPids(Tcl_Interp *interp,
|
||||
Tcl_Channel chan);
|
||||
/* 12 */
|
||||
EXTERN int TclpCloseFile(TclFile file);
|
||||
/* 13 */
|
||||
EXTERN Tcl_Channel TclpCreateCommandChannel(TclFile readFile,
|
||||
TclFile writeFile, TclFile errorFile,
|
||||
int numPids, Tcl_Pid *pidPtr);
|
||||
/* 14 */
|
||||
EXTERN int TclpCreatePipe(TclFile *readPipe, TclFile *writePipe);
|
||||
/* 15 */
|
||||
EXTERN int TclpCreateProcess(Tcl_Interp *interp, int argc,
|
||||
const char **argv, TclFile inputFile,
|
||||
TclFile outputFile, TclFile errorFile,
|
||||
Tcl_Pid *pidPtr);
|
||||
/* 16 */
|
||||
EXTERN int TclpIsAtty(int fd);
|
||||
/* 17 */
|
||||
EXTERN int TclUnixCopyFile(const char *src, const char *dst,
|
||||
const Tcl_StatBuf *statBufPtr,
|
||||
int dontCopyAtts);
|
||||
/* 18 */
|
||||
EXTERN TclFile TclpMakeFile(Tcl_Channel channel, int direction);
|
||||
/* 19 */
|
||||
EXTERN TclFile TclpOpenFile(const char *fname, int mode);
|
||||
/* 20 */
|
||||
EXTERN void TclWinAddProcess(HANDLE hProcess, DWORD id);
|
||||
/* 21 */
|
||||
EXTERN char * TclpInetNtoa(struct in_addr addr);
|
||||
/* 22 */
|
||||
EXTERN TclFile TclpCreateTempFile(const char *contents);
|
||||
/* Slot 23 is reserved */
|
||||
/* 24 */
|
||||
EXTERN char * TclWinNoBackslash(char *path);
|
||||
/* Slot 25 is reserved */
|
||||
/* 26 */
|
||||
EXTERN void TclWinSetInterfaces(int wide);
|
||||
/* 27 */
|
||||
EXTERN void TclWinFlushDirtyChannels(void);
|
||||
/* 28 */
|
||||
EXTERN void TclWinResetInterfaces(void);
|
||||
/* 29 */
|
||||
EXTERN int TclWinCPUID(unsigned int index, unsigned int *regs);
|
||||
/* 30 */
|
||||
EXTERN int TclUnixOpenTemporaryFile(Tcl_Obj *dirObj,
|
||||
Tcl_Obj *basenameObj, Tcl_Obj *extensionObj,
|
||||
Tcl_Obj *resultingNameObj);
|
||||
#endif /* WIN */
|
||||
#ifdef MAC_OSX_TCL /* MACOSX */
|
||||
/* 0 */
|
||||
EXTERN void TclGetAndDetachPids(Tcl_Interp *interp,
|
||||
Tcl_Channel chan);
|
||||
/* 1 */
|
||||
EXTERN int TclpCloseFile(TclFile file);
|
||||
/* 2 */
|
||||
EXTERN Tcl_Channel TclpCreateCommandChannel(TclFile readFile,
|
||||
TclFile writeFile, TclFile errorFile,
|
||||
int numPids, Tcl_Pid *pidPtr);
|
||||
/* 3 */
|
||||
EXTERN int TclpCreatePipe(TclFile *readPipe, TclFile *writePipe);
|
||||
/* 4 */
|
||||
EXTERN int TclpCreateProcess(Tcl_Interp *interp, int argc,
|
||||
const char **argv, TclFile inputFile,
|
||||
TclFile outputFile, TclFile errorFile,
|
||||
Tcl_Pid *pidPtr);
|
||||
/* Slot 5 is reserved */
|
||||
/* 6 */
|
||||
EXTERN TclFile TclpMakeFile(Tcl_Channel channel, int direction);
|
||||
/* 7 */
|
||||
EXTERN TclFile TclpOpenFile(const char *fname, int mode);
|
||||
/* 8 */
|
||||
EXTERN int TclUnixWaitForFile(int fd, int mask, int timeout);
|
||||
/* 9 */
|
||||
EXTERN TclFile TclpCreateTempFile(const char *contents);
|
||||
/* 10 */
|
||||
EXTERN Tcl_DirEntry * TclpReaddir(TclDIR *dir);
|
||||
/* 11 */
|
||||
EXTERN struct tm * TclpLocaltime_unix(const time_t *clock);
|
||||
/* 12 */
|
||||
EXTERN struct tm * TclpGmtime_unix(const time_t *clock);
|
||||
/* 13 */
|
||||
EXTERN char * TclpInetNtoa(struct in_addr addr);
|
||||
/* 14 */
|
||||
EXTERN int TclUnixCopyFile(const char *src, const char *dst,
|
||||
const Tcl_StatBuf *statBufPtr,
|
||||
int dontCopyAtts);
|
||||
/* 15 */
|
||||
EXTERN int TclMacOSXGetFileAttribute(Tcl_Interp *interp,
|
||||
int objIndex, Tcl_Obj *fileName,
|
||||
Tcl_Obj **attributePtrPtr);
|
||||
/* 16 */
|
||||
EXTERN int TclMacOSXSetFileAttribute(Tcl_Interp *interp,
|
||||
int objIndex, Tcl_Obj *fileName,
|
||||
Tcl_Obj *attributePtr);
|
||||
/* 17 */
|
||||
EXTERN int TclMacOSXCopyFileAttributes(const char *src,
|
||||
const char *dst,
|
||||
const Tcl_StatBuf *statBufPtr);
|
||||
/* 18 */
|
||||
EXTERN int TclMacOSXMatchType(Tcl_Interp *interp,
|
||||
const char *pathName, const char *fileName,
|
||||
Tcl_StatBuf *statBufPtr,
|
||||
Tcl_GlobTypeData *types);
|
||||
/* 19 */
|
||||
EXTERN void TclMacOSXNotifierAddRunLoopMode(
|
||||
const void *runLoopMode);
|
||||
/* Slot 20 is reserved */
|
||||
/* Slot 21 is reserved */
|
||||
/* Slot 22 is reserved */
|
||||
/* Slot 23 is reserved */
|
||||
/* Slot 24 is reserved */
|
||||
/* Slot 25 is reserved */
|
||||
/* Slot 26 is reserved */
|
||||
/* Slot 27 is reserved */
|
||||
/* Slot 28 is reserved */
|
||||
/* 29 */
|
||||
EXTERN int TclWinCPUID(unsigned int index, unsigned int *regs);
|
||||
/* 30 */
|
||||
EXTERN int TclUnixOpenTemporaryFile(Tcl_Obj *dirObj,
|
||||
Tcl_Obj *basenameObj, Tcl_Obj *extensionObj,
|
||||
Tcl_Obj *resultingNameObj);
|
||||
#endif /* MACOSX */
|
||||
|
||||
typedef struct TclIntPlatStubs {
|
||||
int magic;
|
||||
void *hooks;
|
||||
|
||||
#if !defined(_WIN32) && !defined(MAC_OSX_TCL) /* UNIX */
|
||||
void (*tclGetAndDetachPids) (Tcl_Interp *interp, Tcl_Channel chan); /* 0 */
|
||||
int (*tclpCloseFile) (TclFile file); /* 1 */
|
||||
Tcl_Channel (*tclpCreateCommandChannel) (TclFile readFile, TclFile writeFile, TclFile errorFile, int numPids, Tcl_Pid *pidPtr); /* 2 */
|
||||
int (*tclpCreatePipe) (TclFile *readPipe, TclFile *writePipe); /* 3 */
|
||||
int (*tclpCreateProcess) (Tcl_Interp *interp, int argc, const char **argv, TclFile inputFile, TclFile outputFile, TclFile errorFile, Tcl_Pid *pidPtr); /* 4 */
|
||||
void (*reserved5)(void);
|
||||
TclFile (*tclpMakeFile) (Tcl_Channel channel, int direction); /* 6 */
|
||||
TclFile (*tclpOpenFile) (const char *fname, int mode); /* 7 */
|
||||
int (*tclUnixWaitForFile) (int fd, int mask, int timeout); /* 8 */
|
||||
TclFile (*tclpCreateTempFile) (const char *contents); /* 9 */
|
||||
Tcl_DirEntry * (*tclpReaddir) (TclDIR *dir); /* 10 */
|
||||
struct tm * (*tclpLocaltime_unix) (const time_t *clock); /* 11 */
|
||||
struct tm * (*tclpGmtime_unix) (const time_t *clock); /* 12 */
|
||||
char * (*tclpInetNtoa) (struct in_addr addr); /* 13 */
|
||||
int (*tclUnixCopyFile) (const char *src, const char *dst, const Tcl_StatBuf *statBufPtr, int dontCopyAtts); /* 14 */
|
||||
void (*reserved15)(void);
|
||||
void (*reserved16)(void);
|
||||
void (*reserved17)(void);
|
||||
void (*reserved18)(void);
|
||||
void (*reserved19)(void);
|
||||
void (*reserved20)(void);
|
||||
void (*reserved21)(void);
|
||||
void (*reserved22)(void);
|
||||
void (*reserved23)(void);
|
||||
void (*reserved24)(void);
|
||||
void (*reserved25)(void);
|
||||
void (*reserved26)(void);
|
||||
void (*reserved27)(void);
|
||||
void (*reserved28)(void);
|
||||
int (*tclWinCPUID) (unsigned int index, unsigned int *regs); /* 29 */
|
||||
int (*tclUnixOpenTemporaryFile) (Tcl_Obj *dirObj, Tcl_Obj *basenameObj, Tcl_Obj *extensionObj, Tcl_Obj *resultingNameObj); /* 30 */
|
||||
#endif /* UNIX */
|
||||
#if defined(_WIN32) /* WIN */
|
||||
void (*tclWinConvertError) (DWORD errCode); /* 0 */
|
||||
void (*tclWinConvertWSAError) (DWORD errCode); /* 1 */
|
||||
struct servent * (*tclWinGetServByName) (const char *nm, const char *proto); /* 2 */
|
||||
int (*tclWinGetSockOpt) (SOCKET s, int level, int optname, char *optval, int *optlen); /* 3 */
|
||||
HINSTANCE (*tclWinGetTclInstance) (void); /* 4 */
|
||||
int (*tclUnixWaitForFile) (int fd, int mask, int timeout); /* 5 */
|
||||
unsigned short (*tclWinNToHS) (unsigned short ns); /* 6 */
|
||||
int (*tclWinSetSockOpt) (SOCKET s, int level, int optname, const char *optval, int optlen); /* 7 */
|
||||
int (*tclpGetPid) (Tcl_Pid pid); /* 8 */
|
||||
int (*tclWinGetPlatformId) (void); /* 9 */
|
||||
Tcl_DirEntry * (*tclpReaddir) (TclDIR *dir); /* 10 */
|
||||
void (*tclGetAndDetachPids) (Tcl_Interp *interp, Tcl_Channel chan); /* 11 */
|
||||
int (*tclpCloseFile) (TclFile file); /* 12 */
|
||||
Tcl_Channel (*tclpCreateCommandChannel) (TclFile readFile, TclFile writeFile, TclFile errorFile, int numPids, Tcl_Pid *pidPtr); /* 13 */
|
||||
int (*tclpCreatePipe) (TclFile *readPipe, TclFile *writePipe); /* 14 */
|
||||
int (*tclpCreateProcess) (Tcl_Interp *interp, int argc, const char **argv, TclFile inputFile, TclFile outputFile, TclFile errorFile, Tcl_Pid *pidPtr); /* 15 */
|
||||
int (*tclpIsAtty) (int fd); /* 16 */
|
||||
int (*tclUnixCopyFile) (const char *src, const char *dst, const Tcl_StatBuf *statBufPtr, int dontCopyAtts); /* 17 */
|
||||
TclFile (*tclpMakeFile) (Tcl_Channel channel, int direction); /* 18 */
|
||||
TclFile (*tclpOpenFile) (const char *fname, int mode); /* 19 */
|
||||
void (*tclWinAddProcess) (HANDLE hProcess, DWORD id); /* 20 */
|
||||
char * (*tclpInetNtoa) (struct in_addr addr); /* 21 */
|
||||
TclFile (*tclpCreateTempFile) (const char *contents); /* 22 */
|
||||
void (*reserved23)(void);
|
||||
char * (*tclWinNoBackslash) (char *path); /* 24 */
|
||||
void (*reserved25)(void);
|
||||
void (*tclWinSetInterfaces) (int wide); /* 26 */
|
||||
void (*tclWinFlushDirtyChannels) (void); /* 27 */
|
||||
void (*tclWinResetInterfaces) (void); /* 28 */
|
||||
int (*tclWinCPUID) (unsigned int index, unsigned int *regs); /* 29 */
|
||||
int (*tclUnixOpenTemporaryFile) (Tcl_Obj *dirObj, Tcl_Obj *basenameObj, Tcl_Obj *extensionObj, Tcl_Obj *resultingNameObj); /* 30 */
|
||||
#endif /* WIN */
|
||||
#ifdef MAC_OSX_TCL /* MACOSX */
|
||||
void (*tclGetAndDetachPids) (Tcl_Interp *interp, Tcl_Channel chan); /* 0 */
|
||||
int (*tclpCloseFile) (TclFile file); /* 1 */
|
||||
Tcl_Channel (*tclpCreateCommandChannel) (TclFile readFile, TclFile writeFile, TclFile errorFile, int numPids, Tcl_Pid *pidPtr); /* 2 */
|
||||
int (*tclpCreatePipe) (TclFile *readPipe, TclFile *writePipe); /* 3 */
|
||||
int (*tclpCreateProcess) (Tcl_Interp *interp, int argc, const char **argv, TclFile inputFile, TclFile outputFile, TclFile errorFile, Tcl_Pid *pidPtr); /* 4 */
|
||||
void (*reserved5)(void);
|
||||
TclFile (*tclpMakeFile) (Tcl_Channel channel, int direction); /* 6 */
|
||||
TclFile (*tclpOpenFile) (const char *fname, int mode); /* 7 */
|
||||
int (*tclUnixWaitForFile) (int fd, int mask, int timeout); /* 8 */
|
||||
TclFile (*tclpCreateTempFile) (const char *contents); /* 9 */
|
||||
Tcl_DirEntry * (*tclpReaddir) (TclDIR *dir); /* 10 */
|
||||
struct tm * (*tclpLocaltime_unix) (const time_t *clock); /* 11 */
|
||||
struct tm * (*tclpGmtime_unix) (const time_t *clock); /* 12 */
|
||||
char * (*tclpInetNtoa) (struct in_addr addr); /* 13 */
|
||||
int (*tclUnixCopyFile) (const char *src, const char *dst, const Tcl_StatBuf *statBufPtr, int dontCopyAtts); /* 14 */
|
||||
int (*tclMacOSXGetFileAttribute) (Tcl_Interp *interp, int objIndex, Tcl_Obj *fileName, Tcl_Obj **attributePtrPtr); /* 15 */
|
||||
int (*tclMacOSXSetFileAttribute) (Tcl_Interp *interp, int objIndex, Tcl_Obj *fileName, Tcl_Obj *attributePtr); /* 16 */
|
||||
int (*tclMacOSXCopyFileAttributes) (const char *src, const char *dst, const Tcl_StatBuf *statBufPtr); /* 17 */
|
||||
int (*tclMacOSXMatchType) (Tcl_Interp *interp, const char *pathName, const char *fileName, Tcl_StatBuf *statBufPtr, Tcl_GlobTypeData *types); /* 18 */
|
||||
void (*tclMacOSXNotifierAddRunLoopMode) (const void *runLoopMode); /* 19 */
|
||||
void (*reserved20)(void);
|
||||
void (*reserved21)(void);
|
||||
void (*reserved22)(void);
|
||||
void (*reserved23)(void);
|
||||
void (*reserved24)(void);
|
||||
void (*reserved25)(void);
|
||||
void (*reserved26)(void);
|
||||
void (*reserved27)(void);
|
||||
void (*reserved28)(void);
|
||||
int (*tclWinCPUID) (unsigned int index, unsigned int *regs); /* 29 */
|
||||
int (*tclUnixOpenTemporaryFile) (Tcl_Obj *dirObj, Tcl_Obj *basenameObj, Tcl_Obj *extensionObj, Tcl_Obj *resultingNameObj); /* 30 */
|
||||
#endif /* MACOSX */
|
||||
} TclIntPlatStubs;
|
||||
|
||||
extern const TclIntPlatStubs *tclIntPlatStubsPtr;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_TCL_STUBS)
|
||||
|
||||
/*
|
||||
* Inline function declarations:
|
||||
*/
|
||||
|
||||
#if !defined(_WIN32) && !defined(MAC_OSX_TCL) /* UNIX */
|
||||
#define TclGetAndDetachPids \
|
||||
(tclIntPlatStubsPtr->tclGetAndDetachPids) /* 0 */
|
||||
#define TclpCloseFile \
|
||||
(tclIntPlatStubsPtr->tclpCloseFile) /* 1 */
|
||||
#define TclpCreateCommandChannel \
|
||||
(tclIntPlatStubsPtr->tclpCreateCommandChannel) /* 2 */
|
||||
#define TclpCreatePipe \
|
||||
(tclIntPlatStubsPtr->tclpCreatePipe) /* 3 */
|
||||
#define TclpCreateProcess \
|
||||
(tclIntPlatStubsPtr->tclpCreateProcess) /* 4 */
|
||||
/* Slot 5 is reserved */
|
||||
#define TclpMakeFile \
|
||||
(tclIntPlatStubsPtr->tclpMakeFile) /* 6 */
|
||||
#define TclpOpenFile \
|
||||
(tclIntPlatStubsPtr->tclpOpenFile) /* 7 */
|
||||
#define TclUnixWaitForFile \
|
||||
(tclIntPlatStubsPtr->tclUnixWaitForFile) /* 8 */
|
||||
#define TclpCreateTempFile \
|
||||
(tclIntPlatStubsPtr->tclpCreateTempFile) /* 9 */
|
||||
#define TclpReaddir \
|
||||
(tclIntPlatStubsPtr->tclpReaddir) /* 10 */
|
||||
#define TclpLocaltime_unix \
|
||||
(tclIntPlatStubsPtr->tclpLocaltime_unix) /* 11 */
|
||||
#define TclpGmtime_unix \
|
||||
(tclIntPlatStubsPtr->tclpGmtime_unix) /* 12 */
|
||||
#define TclpInetNtoa \
|
||||
(tclIntPlatStubsPtr->tclpInetNtoa) /* 13 */
|
||||
#define TclUnixCopyFile \
|
||||
(tclIntPlatStubsPtr->tclUnixCopyFile) /* 14 */
|
||||
/* Slot 15 is reserved */
|
||||
/* Slot 16 is reserved */
|
||||
/* Slot 17 is reserved */
|
||||
/* Slot 18 is reserved */
|
||||
/* Slot 19 is reserved */
|
||||
/* Slot 20 is reserved */
|
||||
/* Slot 21 is reserved */
|
||||
/* Slot 22 is reserved */
|
||||
/* Slot 23 is reserved */
|
||||
/* Slot 24 is reserved */
|
||||
/* Slot 25 is reserved */
|
||||
/* Slot 26 is reserved */
|
||||
/* Slot 27 is reserved */
|
||||
/* Slot 28 is reserved */
|
||||
#define TclWinCPUID \
|
||||
(tclIntPlatStubsPtr->tclWinCPUID) /* 29 */
|
||||
#define TclUnixOpenTemporaryFile \
|
||||
(tclIntPlatStubsPtr->tclUnixOpenTemporaryFile) /* 30 */
|
||||
#endif /* UNIX */
|
||||
#if defined(_WIN32) /* WIN */
|
||||
#define TclWinConvertError \
|
||||
(tclIntPlatStubsPtr->tclWinConvertError) /* 0 */
|
||||
#define TclWinConvertWSAError \
|
||||
(tclIntPlatStubsPtr->tclWinConvertWSAError) /* 1 */
|
||||
#define TclWinGetServByName \
|
||||
(tclIntPlatStubsPtr->tclWinGetServByName) /* 2 */
|
||||
#define TclWinGetSockOpt \
|
||||
(tclIntPlatStubsPtr->tclWinGetSockOpt) /* 3 */
|
||||
#define TclWinGetTclInstance \
|
||||
(tclIntPlatStubsPtr->tclWinGetTclInstance) /* 4 */
|
||||
#define TclUnixWaitForFile \
|
||||
(tclIntPlatStubsPtr->tclUnixWaitForFile) /* 5 */
|
||||
#define TclWinNToHS \
|
||||
(tclIntPlatStubsPtr->tclWinNToHS) /* 6 */
|
||||
#define TclWinSetSockOpt \
|
||||
(tclIntPlatStubsPtr->tclWinSetSockOpt) /* 7 */
|
||||
#define TclpGetPid \
|
||||
(tclIntPlatStubsPtr->tclpGetPid) /* 8 */
|
||||
#define TclWinGetPlatformId \
|
||||
(tclIntPlatStubsPtr->tclWinGetPlatformId) /* 9 */
|
||||
#define TclpReaddir \
|
||||
(tclIntPlatStubsPtr->tclpReaddir) /* 10 */
|
||||
#define TclGetAndDetachPids \
|
||||
(tclIntPlatStubsPtr->tclGetAndDetachPids) /* 11 */
|
||||
#define TclpCloseFile \
|
||||
(tclIntPlatStubsPtr->tclpCloseFile) /* 12 */
|
||||
#define TclpCreateCommandChannel \
|
||||
(tclIntPlatStubsPtr->tclpCreateCommandChannel) /* 13 */
|
||||
#define TclpCreatePipe \
|
||||
(tclIntPlatStubsPtr->tclpCreatePipe) /* 14 */
|
||||
#define TclpCreateProcess \
|
||||
(tclIntPlatStubsPtr->tclpCreateProcess) /* 15 */
|
||||
#define TclpIsAtty \
|
||||
(tclIntPlatStubsPtr->tclpIsAtty) /* 16 */
|
||||
#define TclUnixCopyFile \
|
||||
(tclIntPlatStubsPtr->tclUnixCopyFile) /* 17 */
|
||||
#define TclpMakeFile \
|
||||
(tclIntPlatStubsPtr->tclpMakeFile) /* 18 */
|
||||
#define TclpOpenFile \
|
||||
(tclIntPlatStubsPtr->tclpOpenFile) /* 19 */
|
||||
#define TclWinAddProcess \
|
||||
(tclIntPlatStubsPtr->tclWinAddProcess) /* 20 */
|
||||
#define TclpInetNtoa \
|
||||
(tclIntPlatStubsPtr->tclpInetNtoa) /* 21 */
|
||||
#define TclpCreateTempFile \
|
||||
(tclIntPlatStubsPtr->tclpCreateTempFile) /* 22 */
|
||||
/* Slot 23 is reserved */
|
||||
#define TclWinNoBackslash \
|
||||
(tclIntPlatStubsPtr->tclWinNoBackslash) /* 24 */
|
||||
/* Slot 25 is reserved */
|
||||
#define TclWinSetInterfaces \
|
||||
(tclIntPlatStubsPtr->tclWinSetInterfaces) /* 26 */
|
||||
#define TclWinFlushDirtyChannels \
|
||||
(tclIntPlatStubsPtr->tclWinFlushDirtyChannels) /* 27 */
|
||||
#define TclWinResetInterfaces \
|
||||
(tclIntPlatStubsPtr->tclWinResetInterfaces) /* 28 */
|
||||
#define TclWinCPUID \
|
||||
(tclIntPlatStubsPtr->tclWinCPUID) /* 29 */
|
||||
#define TclUnixOpenTemporaryFile \
|
||||
(tclIntPlatStubsPtr->tclUnixOpenTemporaryFile) /* 30 */
|
||||
#endif /* WIN */
|
||||
#ifdef MAC_OSX_TCL /* MACOSX */
|
||||
#define TclGetAndDetachPids \
|
||||
(tclIntPlatStubsPtr->tclGetAndDetachPids) /* 0 */
|
||||
#define TclpCloseFile \
|
||||
(tclIntPlatStubsPtr->tclpCloseFile) /* 1 */
|
||||
#define TclpCreateCommandChannel \
|
||||
(tclIntPlatStubsPtr->tclpCreateCommandChannel) /* 2 */
|
||||
#define TclpCreatePipe \
|
||||
(tclIntPlatStubsPtr->tclpCreatePipe) /* 3 */
|
||||
#define TclpCreateProcess \
|
||||
(tclIntPlatStubsPtr->tclpCreateProcess) /* 4 */
|
||||
/* Slot 5 is reserved */
|
||||
#define TclpMakeFile \
|
||||
(tclIntPlatStubsPtr->tclpMakeFile) /* 6 */
|
||||
#define TclpOpenFile \
|
||||
(tclIntPlatStubsPtr->tclpOpenFile) /* 7 */
|
||||
#define TclUnixWaitForFile \
|
||||
(tclIntPlatStubsPtr->tclUnixWaitForFile) /* 8 */
|
||||
#define TclpCreateTempFile \
|
||||
(tclIntPlatStubsPtr->tclpCreateTempFile) /* 9 */
|
||||
#define TclpReaddir \
|
||||
(tclIntPlatStubsPtr->tclpReaddir) /* 10 */
|
||||
#define TclpLocaltime_unix \
|
||||
(tclIntPlatStubsPtr->tclpLocaltime_unix) /* 11 */
|
||||
#define TclpGmtime_unix \
|
||||
(tclIntPlatStubsPtr->tclpGmtime_unix) /* 12 */
|
||||
#define TclpInetNtoa \
|
||||
(tclIntPlatStubsPtr->tclpInetNtoa) /* 13 */
|
||||
#define TclUnixCopyFile \
|
||||
(tclIntPlatStubsPtr->tclUnixCopyFile) /* 14 */
|
||||
#define TclMacOSXGetFileAttribute \
|
||||
(tclIntPlatStubsPtr->tclMacOSXGetFileAttribute) /* 15 */
|
||||
#define TclMacOSXSetFileAttribute \
|
||||
(tclIntPlatStubsPtr->tclMacOSXSetFileAttribute) /* 16 */
|
||||
#define TclMacOSXCopyFileAttributes \
|
||||
(tclIntPlatStubsPtr->tclMacOSXCopyFileAttributes) /* 17 */
|
||||
#define TclMacOSXMatchType \
|
||||
(tclIntPlatStubsPtr->tclMacOSXMatchType) /* 18 */
|
||||
#define TclMacOSXNotifierAddRunLoopMode \
|
||||
(tclIntPlatStubsPtr->tclMacOSXNotifierAddRunLoopMode) /* 19 */
|
||||
/* Slot 20 is reserved */
|
||||
/* Slot 21 is reserved */
|
||||
/* Slot 22 is reserved */
|
||||
/* Slot 23 is reserved */
|
||||
/* Slot 24 is reserved */
|
||||
/* Slot 25 is reserved */
|
||||
/* Slot 26 is reserved */
|
||||
/* Slot 27 is reserved */
|
||||
/* Slot 28 is reserved */
|
||||
#define TclWinCPUID \
|
||||
(tclIntPlatStubsPtr->tclWinCPUID) /* 29 */
|
||||
#define TclUnixOpenTemporaryFile \
|
||||
(tclIntPlatStubsPtr->tclUnixOpenTemporaryFile) /* 30 */
|
||||
#endif /* MACOSX */
|
||||
|
||||
#endif /* defined(USE_TCL_STUBS) */
|
||||
|
||||
/* !END!: Do not edit above this line. */
|
||||
|
||||
#undef TCL_STORAGE_CLASS
|
||||
#define TCL_STORAGE_CLASS DLLIMPORT
|
||||
#undef TclpLocaltime_unix
|
||||
#undef TclpGmtime_unix
|
||||
#undef TclWinConvertWSAError
|
||||
#define TclWinConvertWSAError TclWinConvertError
|
||||
#undef TclpInetNtoa
|
||||
#define TclpInetNtoa inet_ntoa
|
||||
|
||||
#if defined(_WIN32)
|
||||
# undef TclWinNToHS
|
||||
# undef TclWinGetServByName
|
||||
# undef TclWinGetSockOpt
|
||||
# undef TclWinSetSockOpt
|
||||
# define TclWinNToHS ntohs
|
||||
# define TclWinGetServByName getservbyname
|
||||
# define TclWinGetSockOpt getsockopt
|
||||
# define TclWinSetSockOpt setsockopt
|
||||
#else
|
||||
# undef TclpGetPid
|
||||
# define TclpGetPid(pid) ((unsigned long) (pid))
|
||||
#endif
|
||||
|
||||
#endif /* _TCLINTPLATDECLS */
|
147
msys2/usr/include/tcl8.6/generic/tclOO.h
Normal file
147
msys2/usr/include/tcl8.6/generic/tclOO.h
Normal file
|
@ -0,0 +1,147 @@
|
|||
/*
|
||||
* tclOO.h --
|
||||
*
|
||||
* This file contains the public API definitions and some of the function
|
||||
* declarations for the object-system (NB: not Tcl_Obj, but ::oo).
|
||||
*
|
||||
* Copyright (c) 2006-2010 by Donal K. Fellows
|
||||
*
|
||||
* See the file "license.terms" for information on usage and redistribution of
|
||||
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
*/
|
||||
|
||||
#ifndef TCLOO_H_INCLUDED
|
||||
#define TCLOO_H_INCLUDED
|
||||
|
||||
/*
|
||||
* Be careful when it comes to versioning; need to make sure that the
|
||||
* standalone TclOO version matches. Also make sure that this matches the
|
||||
* version in the files:
|
||||
*
|
||||
* tests/oo.test
|
||||
* tests/ooNext2.test
|
||||
* unix/tclooConfig.sh
|
||||
* win/tclooConfig.sh
|
||||
*/
|
||||
|
||||
#define TCLOO_VERSION "1.1.0"
|
||||
#define TCLOO_PATCHLEVEL TCLOO_VERSION
|
||||
|
||||
#include "tcl.h"
|
||||
|
||||
/*
|
||||
* For C++ compilers, use extern "C"
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
extern const char *TclOOInitializeStubs(
|
||||
Tcl_Interp *, const char *version);
|
||||
#define Tcl_OOInitStubs(interp) \
|
||||
TclOOInitializeStubs((interp), TCLOO_VERSION)
|
||||
#ifndef USE_TCL_STUBS
|
||||
# define TclOOInitializeStubs(interp, version) (TCLOO_PATCHLEVEL)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* These are opaque types.
|
||||
*/
|
||||
|
||||
typedef struct Tcl_Class_ *Tcl_Class;
|
||||
typedef struct Tcl_Method_ *Tcl_Method;
|
||||
typedef struct Tcl_Object_ *Tcl_Object;
|
||||
typedef struct Tcl_ObjectContext_ *Tcl_ObjectContext;
|
||||
|
||||
/*
|
||||
* Public datatypes for callbacks and structures used in the TIP#257 (OO)
|
||||
* implementation. These are used to implement custom types of method calls
|
||||
* and to allow the attachment of arbitrary data to objects and classes.
|
||||
*/
|
||||
|
||||
typedef int (Tcl_MethodCallProc)(ClientData clientData, Tcl_Interp *interp,
|
||||
Tcl_ObjectContext objectContext, int objc, Tcl_Obj *const *objv);
|
||||
typedef void (Tcl_MethodDeleteProc)(ClientData clientData);
|
||||
typedef int (Tcl_CloneProc)(Tcl_Interp *interp, ClientData oldClientData,
|
||||
ClientData *newClientData);
|
||||
typedef void (Tcl_ObjectMetadataDeleteProc)(ClientData clientData);
|
||||
typedef int (Tcl_ObjectMapMethodNameProc)(Tcl_Interp *interp,
|
||||
Tcl_Object object, Tcl_Class *startClsPtr, Tcl_Obj *methodNameObj);
|
||||
|
||||
/*
|
||||
* The type of a method implementation. This describes how to call the method
|
||||
* implementation, how to delete it (when the object or class is deleted) and
|
||||
* how to create a clone of it (when the object or class is copied).
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
int version; /* Structure version field. Always to be equal
|
||||
* to TCL_OO_METHOD_VERSION_CURRENT in
|
||||
* declarations. */
|
||||
const char *name; /* Name of this type of method, mostly for
|
||||
* debugging purposes. */
|
||||
Tcl_MethodCallProc *callProc;
|
||||
/* How to invoke this method. */
|
||||
Tcl_MethodDeleteProc *deleteProc;
|
||||
/* How to delete this method's type-specific
|
||||
* data, or NULL if the type-specific data
|
||||
* does not need deleting. */
|
||||
Tcl_CloneProc *cloneProc; /* How to copy this method's type-specific
|
||||
* data, or NULL if the type-specific data can
|
||||
* be copied directly. */
|
||||
} Tcl_MethodType;
|
||||
|
||||
/*
|
||||
* The correct value for the version field of the Tcl_MethodType structure.
|
||||
* This allows new versions of the structure to be introduced without breaking
|
||||
* binary compatability.
|
||||
*/
|
||||
|
||||
#define TCL_OO_METHOD_VERSION_CURRENT 1
|
||||
|
||||
/*
|
||||
* The type of some object (or class) metadata. This describes how to delete
|
||||
* the metadata (when the object or class is deleted) and how to create a
|
||||
* clone of it (when the object or class is copied).
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
int version; /* Structure version field. Always to be equal
|
||||
* to TCL_OO_METADATA_VERSION_CURRENT in
|
||||
* declarations. */
|
||||
const char *name;
|
||||
Tcl_ObjectMetadataDeleteProc *deleteProc;
|
||||
/* How to delete the metadata. This must not
|
||||
* be NULL. */
|
||||
Tcl_CloneProc *cloneProc; /* How to copy the metadata, or NULL if the
|
||||
* type-specific data can be copied
|
||||
* directly. */
|
||||
} Tcl_ObjectMetadataType;
|
||||
|
||||
/*
|
||||
* The correct value for the version field of the Tcl_ObjectMetadataType
|
||||
* structure. This allows new versions of the structure to be introduced
|
||||
* without breaking binary compatability.
|
||||
*/
|
||||
|
||||
#define TCL_OO_METADATA_VERSION_CURRENT 1
|
||||
|
||||
/*
|
||||
* Include all the public API, generated from tclOO.decls.
|
||||
*/
|
||||
|
||||
#include "tclOODecls.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Local Variables:
|
||||
* mode: c
|
||||
* c-basic-offset: 4
|
||||
* fill-column: 78
|
||||
* End:
|
||||
*/
|
234
msys2/usr/include/tcl8.6/generic/tclOODecls.h
Normal file
234
msys2/usr/include/tcl8.6/generic/tclOODecls.h
Normal file
|
@ -0,0 +1,234 @@
|
|||
/*
|
||||
* This file is (mostly) automatically generated from tclOO.decls.
|
||||
*/
|
||||
|
||||
#ifndef _TCLOODECLS
|
||||
#define _TCLOODECLS
|
||||
|
||||
#ifndef TCLAPI
|
||||
# ifdef BUILD_tcl
|
||||
# define TCLAPI extern DLLEXPORT
|
||||
# else
|
||||
# define TCLAPI extern DLLIMPORT
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef USE_TCL_STUBS
|
||||
# undef USE_TCLOO_STUBS
|
||||
# define USE_TCLOO_STUBS
|
||||
#endif
|
||||
|
||||
/* !BEGIN!: Do not edit below this line. */
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Exported function declarations:
|
||||
*/
|
||||
|
||||
/* 0 */
|
||||
TCLAPI Tcl_Object Tcl_CopyObjectInstance(Tcl_Interp *interp,
|
||||
Tcl_Object sourceObject,
|
||||
const char *targetName,
|
||||
const char *targetNamespaceName);
|
||||
/* 1 */
|
||||
TCLAPI Tcl_Object Tcl_GetClassAsObject(Tcl_Class clazz);
|
||||
/* 2 */
|
||||
TCLAPI Tcl_Class Tcl_GetObjectAsClass(Tcl_Object object);
|
||||
/* 3 */
|
||||
TCLAPI Tcl_Command Tcl_GetObjectCommand(Tcl_Object object);
|
||||
/* 4 */
|
||||
TCLAPI Tcl_Object Tcl_GetObjectFromObj(Tcl_Interp *interp,
|
||||
Tcl_Obj *objPtr);
|
||||
/* 5 */
|
||||
TCLAPI Tcl_Namespace * Tcl_GetObjectNamespace(Tcl_Object object);
|
||||
/* 6 */
|
||||
TCLAPI Tcl_Class Tcl_MethodDeclarerClass(Tcl_Method method);
|
||||
/* 7 */
|
||||
TCLAPI Tcl_Object Tcl_MethodDeclarerObject(Tcl_Method method);
|
||||
/* 8 */
|
||||
TCLAPI int Tcl_MethodIsPublic(Tcl_Method method);
|
||||
/* 9 */
|
||||
TCLAPI int Tcl_MethodIsType(Tcl_Method method,
|
||||
const Tcl_MethodType *typePtr,
|
||||
ClientData *clientDataPtr);
|
||||
/* 10 */
|
||||
TCLAPI Tcl_Obj * Tcl_MethodName(Tcl_Method method);
|
||||
/* 11 */
|
||||
TCLAPI Tcl_Method Tcl_NewInstanceMethod(Tcl_Interp *interp,
|
||||
Tcl_Object object, Tcl_Obj *nameObj,
|
||||
int isPublic, const Tcl_MethodType *typePtr,
|
||||
ClientData clientData);
|
||||
/* 12 */
|
||||
TCLAPI Tcl_Method Tcl_NewMethod(Tcl_Interp *interp, Tcl_Class cls,
|
||||
Tcl_Obj *nameObj, int isPublic,
|
||||
const Tcl_MethodType *typePtr,
|
||||
ClientData clientData);
|
||||
/* 13 */
|
||||
TCLAPI Tcl_Object Tcl_NewObjectInstance(Tcl_Interp *interp,
|
||||
Tcl_Class cls, const char *nameStr,
|
||||
const char *nsNameStr, int objc,
|
||||
Tcl_Obj *const *objv, int skip);
|
||||
/* 14 */
|
||||
TCLAPI int Tcl_ObjectDeleted(Tcl_Object object);
|
||||
/* 15 */
|
||||
TCLAPI int Tcl_ObjectContextIsFiltering(
|
||||
Tcl_ObjectContext context);
|
||||
/* 16 */
|
||||
TCLAPI Tcl_Method Tcl_ObjectContextMethod(Tcl_ObjectContext context);
|
||||
/* 17 */
|
||||
TCLAPI Tcl_Object Tcl_ObjectContextObject(Tcl_ObjectContext context);
|
||||
/* 18 */
|
||||
TCLAPI int Tcl_ObjectContextSkippedArgs(
|
||||
Tcl_ObjectContext context);
|
||||
/* 19 */
|
||||
TCLAPI ClientData Tcl_ClassGetMetadata(Tcl_Class clazz,
|
||||
const Tcl_ObjectMetadataType *typePtr);
|
||||
/* 20 */
|
||||
TCLAPI void Tcl_ClassSetMetadata(Tcl_Class clazz,
|
||||
const Tcl_ObjectMetadataType *typePtr,
|
||||
ClientData metadata);
|
||||
/* 21 */
|
||||
TCLAPI ClientData Tcl_ObjectGetMetadata(Tcl_Object object,
|
||||
const Tcl_ObjectMetadataType *typePtr);
|
||||
/* 22 */
|
||||
TCLAPI void Tcl_ObjectSetMetadata(Tcl_Object object,
|
||||
const Tcl_ObjectMetadataType *typePtr,
|
||||
ClientData metadata);
|
||||
/* 23 */
|
||||
TCLAPI int Tcl_ObjectContextInvokeNext(Tcl_Interp *interp,
|
||||
Tcl_ObjectContext context, int objc,
|
||||
Tcl_Obj *const *objv, int skip);
|
||||
/* 24 */
|
||||
TCLAPI Tcl_ObjectMapMethodNameProc * Tcl_ObjectGetMethodNameMapper(
|
||||
Tcl_Object object);
|
||||
/* 25 */
|
||||
TCLAPI void Tcl_ObjectSetMethodNameMapper(Tcl_Object object,
|
||||
Tcl_ObjectMapMethodNameProc *mapMethodNameProc);
|
||||
/* 26 */
|
||||
TCLAPI void Tcl_ClassSetConstructor(Tcl_Interp *interp,
|
||||
Tcl_Class clazz, Tcl_Method method);
|
||||
/* 27 */
|
||||
TCLAPI void Tcl_ClassSetDestructor(Tcl_Interp *interp,
|
||||
Tcl_Class clazz, Tcl_Method method);
|
||||
/* 28 */
|
||||
TCLAPI Tcl_Obj * Tcl_GetObjectName(Tcl_Interp *interp,
|
||||
Tcl_Object object);
|
||||
|
||||
typedef struct {
|
||||
const struct TclOOIntStubs *tclOOIntStubs;
|
||||
} TclOOStubHooks;
|
||||
|
||||
typedef struct TclOOStubs {
|
||||
int magic;
|
||||
const TclOOStubHooks *hooks;
|
||||
|
||||
Tcl_Object (*tcl_CopyObjectInstance) (Tcl_Interp *interp, Tcl_Object sourceObject, const char *targetName, const char *targetNamespaceName); /* 0 */
|
||||
Tcl_Object (*tcl_GetClassAsObject) (Tcl_Class clazz); /* 1 */
|
||||
Tcl_Class (*tcl_GetObjectAsClass) (Tcl_Object object); /* 2 */
|
||||
Tcl_Command (*tcl_GetObjectCommand) (Tcl_Object object); /* 3 */
|
||||
Tcl_Object (*tcl_GetObjectFromObj) (Tcl_Interp *interp, Tcl_Obj *objPtr); /* 4 */
|
||||
Tcl_Namespace * (*tcl_GetObjectNamespace) (Tcl_Object object); /* 5 */
|
||||
Tcl_Class (*tcl_MethodDeclarerClass) (Tcl_Method method); /* 6 */
|
||||
Tcl_Object (*tcl_MethodDeclarerObject) (Tcl_Method method); /* 7 */
|
||||
int (*tcl_MethodIsPublic) (Tcl_Method method); /* 8 */
|
||||
int (*tcl_MethodIsType) (Tcl_Method method, const Tcl_MethodType *typePtr, ClientData *clientDataPtr); /* 9 */
|
||||
Tcl_Obj * (*tcl_MethodName) (Tcl_Method method); /* 10 */
|
||||
Tcl_Method (*tcl_NewInstanceMethod) (Tcl_Interp *interp, Tcl_Object object, Tcl_Obj *nameObj, int isPublic, const Tcl_MethodType *typePtr, ClientData clientData); /* 11 */
|
||||
Tcl_Method (*tcl_NewMethod) (Tcl_Interp *interp, Tcl_Class cls, Tcl_Obj *nameObj, int isPublic, const Tcl_MethodType *typePtr, ClientData clientData); /* 12 */
|
||||
Tcl_Object (*tcl_NewObjectInstance) (Tcl_Interp *interp, Tcl_Class cls, const char *nameStr, const char *nsNameStr, int objc, Tcl_Obj *const *objv, int skip); /* 13 */
|
||||
int (*tcl_ObjectDeleted) (Tcl_Object object); /* 14 */
|
||||
int (*tcl_ObjectContextIsFiltering) (Tcl_ObjectContext context); /* 15 */
|
||||
Tcl_Method (*tcl_ObjectContextMethod) (Tcl_ObjectContext context); /* 16 */
|
||||
Tcl_Object (*tcl_ObjectContextObject) (Tcl_ObjectContext context); /* 17 */
|
||||
int (*tcl_ObjectContextSkippedArgs) (Tcl_ObjectContext context); /* 18 */
|
||||
ClientData (*tcl_ClassGetMetadata) (Tcl_Class clazz, const Tcl_ObjectMetadataType *typePtr); /* 19 */
|
||||
void (*tcl_ClassSetMetadata) (Tcl_Class clazz, const Tcl_ObjectMetadataType *typePtr, ClientData metadata); /* 20 */
|
||||
ClientData (*tcl_ObjectGetMetadata) (Tcl_Object object, const Tcl_ObjectMetadataType *typePtr); /* 21 */
|
||||
void (*tcl_ObjectSetMetadata) (Tcl_Object object, const Tcl_ObjectMetadataType *typePtr, ClientData metadata); /* 22 */
|
||||
int (*tcl_ObjectContextInvokeNext) (Tcl_Interp *interp, Tcl_ObjectContext context, int objc, Tcl_Obj *const *objv, int skip); /* 23 */
|
||||
Tcl_ObjectMapMethodNameProc * (*tcl_ObjectGetMethodNameMapper) (Tcl_Object object); /* 24 */
|
||||
void (*tcl_ObjectSetMethodNameMapper) (Tcl_Object object, Tcl_ObjectMapMethodNameProc *mapMethodNameProc); /* 25 */
|
||||
void (*tcl_ClassSetConstructor) (Tcl_Interp *interp, Tcl_Class clazz, Tcl_Method method); /* 26 */
|
||||
void (*tcl_ClassSetDestructor) (Tcl_Interp *interp, Tcl_Class clazz, Tcl_Method method); /* 27 */
|
||||
Tcl_Obj * (*tcl_GetObjectName) (Tcl_Interp *interp, Tcl_Object object); /* 28 */
|
||||
} TclOOStubs;
|
||||
|
||||
extern const TclOOStubs *tclOOStubsPtr;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_TCLOO_STUBS)
|
||||
|
||||
/*
|
||||
* Inline function declarations:
|
||||
*/
|
||||
|
||||
#define Tcl_CopyObjectInstance \
|
||||
(tclOOStubsPtr->tcl_CopyObjectInstance) /* 0 */
|
||||
#define Tcl_GetClassAsObject \
|
||||
(tclOOStubsPtr->tcl_GetClassAsObject) /* 1 */
|
||||
#define Tcl_GetObjectAsClass \
|
||||
(tclOOStubsPtr->tcl_GetObjectAsClass) /* 2 */
|
||||
#define Tcl_GetObjectCommand \
|
||||
(tclOOStubsPtr->tcl_GetObjectCommand) /* 3 */
|
||||
#define Tcl_GetObjectFromObj \
|
||||
(tclOOStubsPtr->tcl_GetObjectFromObj) /* 4 */
|
||||
#define Tcl_GetObjectNamespace \
|
||||
(tclOOStubsPtr->tcl_GetObjectNamespace) /* 5 */
|
||||
#define Tcl_MethodDeclarerClass \
|
||||
(tclOOStubsPtr->tcl_MethodDeclarerClass) /* 6 */
|
||||
#define Tcl_MethodDeclarerObject \
|
||||
(tclOOStubsPtr->tcl_MethodDeclarerObject) /* 7 */
|
||||
#define Tcl_MethodIsPublic \
|
||||
(tclOOStubsPtr->tcl_MethodIsPublic) /* 8 */
|
||||
#define Tcl_MethodIsType \
|
||||
(tclOOStubsPtr->tcl_MethodIsType) /* 9 */
|
||||
#define Tcl_MethodName \
|
||||
(tclOOStubsPtr->tcl_MethodName) /* 10 */
|
||||
#define Tcl_NewInstanceMethod \
|
||||
(tclOOStubsPtr->tcl_NewInstanceMethod) /* 11 */
|
||||
#define Tcl_NewMethod \
|
||||
(tclOOStubsPtr->tcl_NewMethod) /* 12 */
|
||||
#define Tcl_NewObjectInstance \
|
||||
(tclOOStubsPtr->tcl_NewObjectInstance) /* 13 */
|
||||
#define Tcl_ObjectDeleted \
|
||||
(tclOOStubsPtr->tcl_ObjectDeleted) /* 14 */
|
||||
#define Tcl_ObjectContextIsFiltering \
|
||||
(tclOOStubsPtr->tcl_ObjectContextIsFiltering) /* 15 */
|
||||
#define Tcl_ObjectContextMethod \
|
||||
(tclOOStubsPtr->tcl_ObjectContextMethod) /* 16 */
|
||||
#define Tcl_ObjectContextObject \
|
||||
(tclOOStubsPtr->tcl_ObjectContextObject) /* 17 */
|
||||
#define Tcl_ObjectContextSkippedArgs \
|
||||
(tclOOStubsPtr->tcl_ObjectContextSkippedArgs) /* 18 */
|
||||
#define Tcl_ClassGetMetadata \
|
||||
(tclOOStubsPtr->tcl_ClassGetMetadata) /* 19 */
|
||||
#define Tcl_ClassSetMetadata \
|
||||
(tclOOStubsPtr->tcl_ClassSetMetadata) /* 20 */
|
||||
#define Tcl_ObjectGetMetadata \
|
||||
(tclOOStubsPtr->tcl_ObjectGetMetadata) /* 21 */
|
||||
#define Tcl_ObjectSetMetadata \
|
||||
(tclOOStubsPtr->tcl_ObjectSetMetadata) /* 22 */
|
||||
#define Tcl_ObjectContextInvokeNext \
|
||||
(tclOOStubsPtr->tcl_ObjectContextInvokeNext) /* 23 */
|
||||
#define Tcl_ObjectGetMethodNameMapper \
|
||||
(tclOOStubsPtr->tcl_ObjectGetMethodNameMapper) /* 24 */
|
||||
#define Tcl_ObjectSetMethodNameMapper \
|
||||
(tclOOStubsPtr->tcl_ObjectSetMethodNameMapper) /* 25 */
|
||||
#define Tcl_ClassSetConstructor \
|
||||
(tclOOStubsPtr->tcl_ClassSetConstructor) /* 26 */
|
||||
#define Tcl_ClassSetDestructor \
|
||||
(tclOOStubsPtr->tcl_ClassSetDestructor) /* 27 */
|
||||
#define Tcl_GetObjectName \
|
||||
(tclOOStubsPtr->tcl_GetObjectName) /* 28 */
|
||||
|
||||
#endif /* defined(USE_TCLOO_STUBS) */
|
||||
|
||||
/* !END!: Do not edit above this line. */
|
||||
|
||||
#endif /* _TCLOODECLS */
|
607
msys2/usr/include/tcl8.6/generic/tclOOInt.h
Normal file
607
msys2/usr/include/tcl8.6/generic/tclOOInt.h
Normal file
|
@ -0,0 +1,607 @@
|
|||
/*
|
||||
* tclOOInt.h --
|
||||
*
|
||||
* This file contains the structure definitions and some of the function
|
||||
* declarations for the object-system (NB: not Tcl_Obj, but ::oo).
|
||||
*
|
||||
* Copyright (c) 2006-2012 by Donal K. Fellows
|
||||
*
|
||||
* See the file "license.terms" for information on usage and redistribution of
|
||||
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
*/
|
||||
|
||||
#ifndef TCL_OO_INTERNAL_H
|
||||
#define TCL_OO_INTERNAL_H 1
|
||||
|
||||
#include "tclInt.h"
|
||||
#include "tclOO.h"
|
||||
|
||||
/*
|
||||
* Hack to make things work with Objective C. Note that ObjC isn't really
|
||||
* supported, but we don't want to to be actively hostile to it. [Bug 2163447]
|
||||
*/
|
||||
|
||||
#ifdef __OBJC__
|
||||
#define Class TclOOClass
|
||||
#define Object TclOOObject
|
||||
#endif /* __OBJC__ */
|
||||
|
||||
/*
|
||||
* Forward declarations.
|
||||
*/
|
||||
|
||||
struct CallChain;
|
||||
struct Class;
|
||||
struct Foundation;
|
||||
struct Object;
|
||||
|
||||
/*
|
||||
* The data that needs to be stored per method. This record is used to collect
|
||||
* information about all sorts of methods, including forwards, constructors
|
||||
* and destructors.
|
||||
*/
|
||||
|
||||
typedef struct Method {
|
||||
const Tcl_MethodType *typePtr;
|
||||
/* The type of method. If NULL, this is a
|
||||
* special flag record which is just used for
|
||||
* the setting of the flags field. */
|
||||
int refCount;
|
||||
ClientData clientData; /* Type-specific data. */
|
||||
Tcl_Obj *namePtr; /* Name of the method. */
|
||||
struct Object *declaringObjectPtr;
|
||||
/* The object that declares this method, or
|
||||
* NULL if it was declared by a class. */
|
||||
struct Class *declaringClassPtr;
|
||||
/* The class that declares this method, or
|
||||
* NULL if it was declared directly on an
|
||||
* object. */
|
||||
int flags; /* Assorted flags. Includes whether this
|
||||
* method is public/exported or not. */
|
||||
} Method;
|
||||
|
||||
/*
|
||||
* Pre- and post-call callbacks, to allow procedure-like methods to be fine
|
||||
* tuned in their behaviour.
|
||||
*/
|
||||
|
||||
typedef int (TclOO_PreCallProc)(ClientData clientData, Tcl_Interp *interp,
|
||||
Tcl_ObjectContext context, Tcl_CallFrame *framePtr, int *isFinished);
|
||||
typedef int (TclOO_PostCallProc)(ClientData clientData, Tcl_Interp *interp,
|
||||
Tcl_ObjectContext context, Tcl_Namespace *namespacePtr, int result);
|
||||
typedef void (TclOO_PmCDDeleteProc)(ClientData clientData);
|
||||
typedef ClientData (TclOO_PmCDCloneProc)(ClientData clientData);
|
||||
|
||||
/*
|
||||
* Procedure-like methods have the following extra information.
|
||||
*/
|
||||
|
||||
typedef struct ProcedureMethod {
|
||||
int version; /* Version of this structure. Currently must
|
||||
* be 0. */
|
||||
Proc *procPtr; /* Core of the implementation of the method;
|
||||
* includes the argument definition and the
|
||||
* body bytecodes. */
|
||||
int flags; /* Flags to control features. */
|
||||
int refCount;
|
||||
ClientData clientData;
|
||||
TclOO_PmCDDeleteProc *deleteClientdataProc;
|
||||
TclOO_PmCDCloneProc *cloneClientdataProc;
|
||||
ProcErrorProc *errProc; /* Replacement error handler. */
|
||||
TclOO_PreCallProc *preCallProc;
|
||||
/* Callback to allow for additional setup
|
||||
* before the method executes. */
|
||||
TclOO_PostCallProc *postCallProc;
|
||||
/* Callback to allow for additional cleanup
|
||||
* after the method executes. */
|
||||
GetFrameInfoValueProc *gfivProc;
|
||||
/* Callback to allow for fine tuning of how
|
||||
* the method reports itself. */
|
||||
} ProcedureMethod;
|
||||
|
||||
#define TCLOO_PROCEDURE_METHOD_VERSION 0
|
||||
|
||||
/*
|
||||
* Flags for use in a ProcedureMethod.
|
||||
*
|
||||
* When the USE_DECLARER_NS flag is set, the method will use the namespace of
|
||||
* the object or class that declared it (or the clone of it, if it was from
|
||||
* such that the implementation of the method came to the particular use)
|
||||
* instead of the namespace of the object on which the method was invoked.
|
||||
* This flag must be distinct from all others that are associated with
|
||||
* methods.
|
||||
*/
|
||||
|
||||
#define USE_DECLARER_NS 0x80
|
||||
|
||||
/*
|
||||
* Forwarded methods have the following extra information.
|
||||
*/
|
||||
|
||||
typedef struct ForwardMethod {
|
||||
Tcl_Obj *prefixObj; /* The list of values to use to replace the
|
||||
* object and method name with. Will be a
|
||||
* non-empty list. */
|
||||
} ForwardMethod;
|
||||
|
||||
/*
|
||||
* Helper definitions that declare a "list" array. The two varieties are
|
||||
* either optimized for simplicity (in the case that the whole array is
|
||||
* typically assigned at once) or efficiency (in the case that the array is
|
||||
* expected to be expanded over time). These lists are designed to be iterated
|
||||
* over with the help of the FOREACH macro (see later in this file).
|
||||
*
|
||||
* The "num" field always counts the number of listType_t elements used in the
|
||||
* "list" field. When a "size" field exists, it describes how many elements
|
||||
* are present in the list; when absent, exactly "num" elements are present.
|
||||
*/
|
||||
|
||||
#define LIST_STATIC(listType_t) \
|
||||
struct { int num; listType_t *list; }
|
||||
#define LIST_DYNAMIC(listType_t) \
|
||||
struct { int num, size; listType_t *list; }
|
||||
|
||||
/*
|
||||
* Now, the definition of what an object actually is.
|
||||
*/
|
||||
|
||||
typedef struct Object {
|
||||
struct Foundation *fPtr; /* The basis for the object system. Putting
|
||||
* this here allows the avoidance of quite a
|
||||
* lot of hash lookups on the critical path
|
||||
* for object invocation and creation. */
|
||||
Tcl_Namespace *namespacePtr;/* This object's namespace. */
|
||||
Tcl_Command command; /* Reference to this object's public
|
||||
* command. */
|
||||
Tcl_Command myCommand; /* Reference to this object's internal
|
||||
* command. */
|
||||
struct Class *selfCls; /* This object's class. */
|
||||
Tcl_HashTable *methodsPtr; /* Object-local Tcl_Obj (method name) to
|
||||
* Method* mapping. */
|
||||
LIST_STATIC(struct Class *) mixins;
|
||||
/* Classes mixed into this object. */
|
||||
LIST_STATIC(Tcl_Obj *) filters;
|
||||
/* List of filter names. */
|
||||
struct Class *classPtr; /* This is non-NULL for all classes, and NULL
|
||||
* for everything else. It points to the class
|
||||
* structure. */
|
||||
int refCount; /* Number of strong references to this object.
|
||||
* Note that there may be many more weak
|
||||
* references; this mechanism exists to
|
||||
* avoid Tcl_Preserve. */
|
||||
int flags;
|
||||
int creationEpoch; /* Unique value to make comparisons of objects
|
||||
* easier. */
|
||||
int epoch; /* Per-object epoch, incremented when the way
|
||||
* an object should resolve call chains is
|
||||
* changed. */
|
||||
Tcl_HashTable *metadataPtr; /* Mapping from pointers to metadata type to
|
||||
* the ClientData values that are the values
|
||||
* of each piece of attached metadata. This
|
||||
* field starts out as NULL and is only
|
||||
* allocated if metadata is attached. */
|
||||
Tcl_Obj *cachedNameObj; /* Cache of the name of the object. */
|
||||
Tcl_HashTable *chainCache; /* Place to keep unused contexts. This table
|
||||
* is indexed by method name as Tcl_Obj. */
|
||||
Tcl_ObjectMapMethodNameProc *mapMethodNameProc;
|
||||
/* Function to allow remapping of method
|
||||
* names. For itcl-ng. */
|
||||
LIST_STATIC(Tcl_Obj *) variables;
|
||||
} Object;
|
||||
|
||||
#define OBJECT_DESTRUCTING 1 /* Indicates that an object is being or has
|
||||
* been destroyed */
|
||||
#define DESTRUCTOR_CALLED 2 /* Indicates that evaluation of destructor script for the
|
||||
object has began */
|
||||
#define OO_UNUSED_4 4 /* No longer used. */
|
||||
#define ROOT_OBJECT 0x1000 /* Flag to say that this object is the root of
|
||||
* the class hierarchy and should be treated
|
||||
* specially during teardown. */
|
||||
#define FILTER_HANDLING 0x2000 /* Flag set when the object is processing a
|
||||
* filter; when set, filters are *not*
|
||||
* processed on the object, preventing nasty
|
||||
* recursive filtering problems. */
|
||||
#define USE_CLASS_CACHE 0x4000 /* Flag set to say that the object is a pure
|
||||
* instance of the class, and has had nothing
|
||||
* added that changes the dispatch chain (i.e.
|
||||
* no methods, mixins, or filters. */
|
||||
#define ROOT_CLASS 0x8000 /* Flag to say that this object is the root
|
||||
* class of classes, and should be treated
|
||||
* specially during teardown (and in a few
|
||||
* other spots). */
|
||||
#define FORCE_UNKNOWN 0x10000 /* States that we are *really* looking up the
|
||||
* unknown method handler at that point. */
|
||||
#define DONT_DELETE 0x20000 /* Inhibit deletion of this object. */
|
||||
|
||||
/*
|
||||
* And the definition of a class. Note that every class also has an associated
|
||||
* object, through which it is manipulated.
|
||||
*/
|
||||
|
||||
typedef struct Class {
|
||||
Object *thisPtr; /* Reference to the object associated with
|
||||
* this class. */
|
||||
int flags; /* Assorted flags. */
|
||||
LIST_STATIC(struct Class *) superclasses;
|
||||
/* List of superclasses, used for generation
|
||||
* of method call chains. */
|
||||
LIST_DYNAMIC(struct Class *) subclasses;
|
||||
/* List of subclasses, used to ensure deletion
|
||||
* of dependent entities happens properly when
|
||||
* the class itself is deleted. */
|
||||
LIST_DYNAMIC(Object *) instances;
|
||||
/* List of instances, used to ensure deletion
|
||||
* of dependent entities happens properly when
|
||||
* the class itself is deleted. */
|
||||
LIST_STATIC(Tcl_Obj *) filters;
|
||||
/* List of filter names, used for generation
|
||||
* of method call chains. */
|
||||
LIST_STATIC(struct Class *) mixins;
|
||||
/* List of mixin classes, used for generation
|
||||
* of method call chains. */
|
||||
LIST_DYNAMIC(struct Class *) mixinSubs;
|
||||
/* List of classes that this class is mixed
|
||||
* into, used to ensure deletion of dependent
|
||||
* entities happens properly when the class
|
||||
* itself is deleted. */
|
||||
Tcl_HashTable classMethods; /* Hash table of all methods. Hash maps from
|
||||
* the (Tcl_Obj*) method name to the (Method*)
|
||||
* method record. */
|
||||
Method *constructorPtr; /* Method record of the class constructor (if
|
||||
* any). */
|
||||
Method *destructorPtr; /* Method record of the class destructor (if
|
||||
* any). */
|
||||
Tcl_HashTable *metadataPtr; /* Mapping from pointers to metadata type to
|
||||
* the ClientData values that are the values
|
||||
* of each piece of attached metadata. This
|
||||
* field starts out as NULL and is only
|
||||
* allocated if metadata is attached. */
|
||||
struct CallChain *constructorChainPtr;
|
||||
struct CallChain *destructorChainPtr;
|
||||
Tcl_HashTable *classChainCache;
|
||||
/* Places where call chains are stored. For
|
||||
* constructors, the class chain is always
|
||||
* used. For destructors and ordinary methods,
|
||||
* the class chain is only used when the
|
||||
* object doesn't override with its own mixins
|
||||
* (and filters and method implementations for
|
||||
* when getting method chains). */
|
||||
LIST_STATIC(Tcl_Obj *) variables;
|
||||
} Class;
|
||||
|
||||
/*
|
||||
* The foundation of the object system within an interpreter contains
|
||||
* references to the key classes and namespaces, together with a few other
|
||||
* useful bits and pieces. Probably ought to eventually go in the Interp
|
||||
* structure itself.
|
||||
*/
|
||||
|
||||
typedef struct ThreadLocalData {
|
||||
int nsCount; /* Master epoch counter is used for keeping
|
||||
* the values used in Tcl_Obj internal
|
||||
* representations sane. Must be thread-local
|
||||
* because Tcl_Objs can cross interpreter
|
||||
* boundaries within a thread (objects don't
|
||||
* generally cross threads). */
|
||||
} ThreadLocalData;
|
||||
|
||||
typedef struct Foundation {
|
||||
Tcl_Interp *interp;
|
||||
Class *objectCls; /* The root of the object system. */
|
||||
Class *classCls; /* The class of all classes. */
|
||||
Tcl_Namespace *ooNs; /* Master ::oo namespace. */
|
||||
Tcl_Namespace *defineNs; /* Namespace containing special commands for
|
||||
* manipulating objects and classes. The
|
||||
* "oo::define" command acts as a special kind
|
||||
* of ensemble for this namespace. */
|
||||
Tcl_Namespace *objdefNs; /* Namespace containing special commands for
|
||||
* manipulating objects and classes. The
|
||||
* "oo::objdefine" command acts as a special
|
||||
* kind of ensemble for this namespace. */
|
||||
Tcl_Namespace *helpersNs; /* Namespace containing the commands that are
|
||||
* only valid when executing inside a
|
||||
* procedural method. */
|
||||
int epoch; /* Used to invalidate method chains when the
|
||||
* class structure changes. */
|
||||
ThreadLocalData *tsdPtr; /* Counter so we can allocate a unique
|
||||
* namespace to each object. */
|
||||
Tcl_Obj *unknownMethodNameObj;
|
||||
/* Shared object containing the name of the
|
||||
* unknown method handler method. */
|
||||
Tcl_Obj *constructorName; /* Shared object containing the "name" of a
|
||||
* constructor. */
|
||||
Tcl_Obj *destructorName; /* Shared object containing the "name" of a
|
||||
* destructor. */
|
||||
Tcl_Obj *clonedName; /* Shared object containing the name of a
|
||||
* "<cloned>" pseudo-constructor. */
|
||||
Tcl_Obj *defineName; /* Fully qualified name of oo::define. */
|
||||
} Foundation;
|
||||
|
||||
/*
|
||||
* A call context structure is built when a method is called. It contains the
|
||||
* chain of method implementations that are to be invoked by a particular
|
||||
* call, and the process of calling walks the chain, with the [next] command
|
||||
* proceeding to the next entry in the chain.
|
||||
*/
|
||||
|
||||
#define CALL_CHAIN_STATIC_SIZE 4
|
||||
|
||||
struct MInvoke {
|
||||
Method *mPtr; /* Reference to the method implementation
|
||||
* record. */
|
||||
int isFilter; /* Whether this is a filter invocation. */
|
||||
Class *filterDeclarer; /* What class decided to add the filter; if
|
||||
* NULL, it was added by the object. */
|
||||
};
|
||||
|
||||
typedef struct CallChain {
|
||||
int objectCreationEpoch; /* The object's creation epoch. Note that the
|
||||
* object reference is not stored in the call
|
||||
* chain; it is in the call context. */
|
||||
int objectEpoch; /* Local (object structure) epoch counter
|
||||
* snapshot. */
|
||||
int epoch; /* Global (class structure) epoch counter
|
||||
* snapshot. */
|
||||
int flags; /* Assorted flags, see below. */
|
||||
int refCount; /* Reference count. */
|
||||
int numChain; /* Size of the call chain. */
|
||||
struct MInvoke *chain; /* Array of call chain entries. May point to
|
||||
* staticChain if the number of entries is
|
||||
* small. */
|
||||
struct MInvoke staticChain[CALL_CHAIN_STATIC_SIZE];
|
||||
} CallChain;
|
||||
|
||||
typedef struct CallContext {
|
||||
Object *oPtr; /* The object associated with this call. */
|
||||
int index; /* Index into the call chain of the currently
|
||||
* executing method implementation. */
|
||||
int skip; /* Current number of arguments to skip; can
|
||||
* vary depending on whether it is a direct
|
||||
* method call or a continuation via the
|
||||
* [next] command. */
|
||||
CallChain *callPtr; /* The actual call chain. */
|
||||
} CallContext;
|
||||
|
||||
/*
|
||||
* Bits for the 'flags' field of the call chain.
|
||||
*/
|
||||
|
||||
#define PUBLIC_METHOD 0x01 /* This is a public (exported) method. */
|
||||
#define PRIVATE_METHOD 0x02 /* This is a private (class's direct instances
|
||||
* only) method. */
|
||||
#define OO_UNKNOWN_METHOD 0x04 /* This is an unknown method. */
|
||||
#define CONSTRUCTOR 0x08 /* This is a constructor. */
|
||||
#define DESTRUCTOR 0x10 /* This is a destructor. */
|
||||
|
||||
/*
|
||||
* Structure containing definition information about basic class methods.
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
const char *name; /* Name of the method in question. */
|
||||
int isPublic; /* Whether the method is public by default. */
|
||||
Tcl_MethodType definition; /* How to call the method. */
|
||||
} DeclaredClassMethod;
|
||||
|
||||
/*
|
||||
*----------------------------------------------------------------
|
||||
* Commands relating to OO support.
|
||||
*----------------------------------------------------------------
|
||||
*/
|
||||
|
||||
MODULE_SCOPE int TclOOInit(Tcl_Interp *interp);
|
||||
MODULE_SCOPE int TclOODefineObjCmd(ClientData clientData,
|
||||
Tcl_Interp *interp, int objc,
|
||||
Tcl_Obj *const *objv);
|
||||
MODULE_SCOPE int TclOOObjDefObjCmd(ClientData clientData,
|
||||
Tcl_Interp *interp, int objc,
|
||||
Tcl_Obj *const *objv);
|
||||
MODULE_SCOPE int TclOODefineConstructorObjCmd(ClientData clientData,
|
||||
Tcl_Interp *interp, int objc,
|
||||
Tcl_Obj *const *objv);
|
||||
MODULE_SCOPE int TclOODefineDeleteMethodObjCmd(ClientData clientData,
|
||||
Tcl_Interp *interp, int objc,
|
||||
Tcl_Obj *const *objv);
|
||||
MODULE_SCOPE int TclOODefineDestructorObjCmd(ClientData clientData,
|
||||
Tcl_Interp *interp, int objc,
|
||||
Tcl_Obj *const *objv);
|
||||
MODULE_SCOPE int TclOODefineExportObjCmd(ClientData clientData,
|
||||
Tcl_Interp *interp, int objc,
|
||||
Tcl_Obj *const *objv);
|
||||
MODULE_SCOPE int TclOODefineForwardObjCmd(ClientData clientData,
|
||||
Tcl_Interp *interp, int objc,
|
||||
Tcl_Obj *const *objv);
|
||||
MODULE_SCOPE int TclOODefineMethodObjCmd(ClientData clientData,
|
||||
Tcl_Interp *interp, int objc,
|
||||
Tcl_Obj *const *objv);
|
||||
MODULE_SCOPE int TclOODefineRenameMethodObjCmd(ClientData clientData,
|
||||
Tcl_Interp *interp, int objc,
|
||||
Tcl_Obj *const *objv);
|
||||
MODULE_SCOPE int TclOODefineUnexportObjCmd(ClientData clientData,
|
||||
Tcl_Interp *interp, int objc,
|
||||
Tcl_Obj *const *objv);
|
||||
MODULE_SCOPE int TclOODefineClassObjCmd(ClientData clientData,
|
||||
Tcl_Interp *interp, int objc,
|
||||
Tcl_Obj *const *objv);
|
||||
MODULE_SCOPE int TclOODefineSelfObjCmd(ClientData clientData,
|
||||
Tcl_Interp *interp, int objc,
|
||||
Tcl_Obj *const *objv);
|
||||
MODULE_SCOPE int TclOOUnknownDefinition(ClientData clientData,
|
||||
Tcl_Interp *interp, int objc,
|
||||
Tcl_Obj *const *objv);
|
||||
MODULE_SCOPE int TclOOCopyObjectCmd(ClientData clientData,
|
||||
Tcl_Interp *interp, int objc,
|
||||
Tcl_Obj *const *objv);
|
||||
MODULE_SCOPE int TclOONextObjCmd(ClientData clientData,
|
||||
Tcl_Interp *interp, int objc,
|
||||
Tcl_Obj *const *objv);
|
||||
MODULE_SCOPE int TclOONextToObjCmd(ClientData clientData,
|
||||
Tcl_Interp *interp, int objc,
|
||||
Tcl_Obj *const *objv);
|
||||
MODULE_SCOPE int TclOOSelfObjCmd(ClientData clientData,
|
||||
Tcl_Interp *interp, int objc,
|
||||
Tcl_Obj *const *objv);
|
||||
|
||||
/*
|
||||
* Method implementations (in tclOOBasic.c).
|
||||
*/
|
||||
|
||||
MODULE_SCOPE int TclOO_Class_Constructor(ClientData clientData,
|
||||
Tcl_Interp *interp, Tcl_ObjectContext context,
|
||||
int objc, Tcl_Obj *const *objv);
|
||||
MODULE_SCOPE int TclOO_Class_Create(ClientData clientData,
|
||||
Tcl_Interp *interp, Tcl_ObjectContext context,
|
||||
int objc, Tcl_Obj *const *objv);
|
||||
MODULE_SCOPE int TclOO_Class_CreateNs(ClientData clientData,
|
||||
Tcl_Interp *interp, Tcl_ObjectContext context,
|
||||
int objc, Tcl_Obj *const *objv);
|
||||
MODULE_SCOPE int TclOO_Class_New(ClientData clientData,
|
||||
Tcl_Interp *interp, Tcl_ObjectContext context,
|
||||
int objc, Tcl_Obj *const *objv);
|
||||
MODULE_SCOPE int TclOO_Object_Destroy(ClientData clientData,
|
||||
Tcl_Interp *interp, Tcl_ObjectContext context,
|
||||
int objc, Tcl_Obj *const *objv);
|
||||
MODULE_SCOPE int TclOO_Object_Eval(ClientData clientData,
|
||||
Tcl_Interp *interp, Tcl_ObjectContext context,
|
||||
int objc, Tcl_Obj *const *objv);
|
||||
MODULE_SCOPE int TclOO_Object_LinkVar(ClientData clientData,
|
||||
Tcl_Interp *interp, Tcl_ObjectContext context,
|
||||
int objc, Tcl_Obj *const *objv);
|
||||
MODULE_SCOPE int TclOO_Object_Unknown(ClientData clientData,
|
||||
Tcl_Interp *interp, Tcl_ObjectContext context,
|
||||
int objc, Tcl_Obj *const *objv);
|
||||
MODULE_SCOPE int TclOO_Object_VarName(ClientData clientData,
|
||||
Tcl_Interp *interp, Tcl_ObjectContext context,
|
||||
int objc, Tcl_Obj *const *objv);
|
||||
|
||||
/*
|
||||
* Private definitions, some of which perhaps ought to be exposed properly or
|
||||
* maybe just put in the internal stubs table.
|
||||
*/
|
||||
|
||||
MODULE_SCOPE void TclOOAddToInstances(Object *oPtr, Class *clsPtr);
|
||||
MODULE_SCOPE void TclOOAddToMixinSubs(Class *subPtr, Class *mixinPtr);
|
||||
MODULE_SCOPE void TclOOAddToSubclasses(Class *subPtr, Class *superPtr);
|
||||
MODULE_SCOPE Class * TclOOAllocClass(Tcl_Interp *interp,
|
||||
Object *useThisObj);
|
||||
MODULE_SCOPE int TclNRNewObjectInstance(Tcl_Interp *interp,
|
||||
Tcl_Class cls, const char *nameStr,
|
||||
const char *nsNameStr, int objc,
|
||||
Tcl_Obj *const *objv, int skip,
|
||||
Tcl_Object *objectPtr);
|
||||
MODULE_SCOPE Object * TclNewObjectInstanceCommon(Tcl_Interp *interp,
|
||||
Class *classPtr,
|
||||
const char *nameStr,
|
||||
const char *nsNameStr);
|
||||
MODULE_SCOPE int TclOODecrRefCount(Object *oPtr);
|
||||
MODULE_SCOPE int TclOOObjectDestroyed(Object *oPtr);
|
||||
MODULE_SCOPE int TclOODefineSlots(Foundation *fPtr);
|
||||
MODULE_SCOPE void TclOODeleteChain(CallChain *callPtr);
|
||||
MODULE_SCOPE void TclOODeleteChainCache(Tcl_HashTable *tablePtr);
|
||||
MODULE_SCOPE void TclOODeleteContext(CallContext *contextPtr);
|
||||
MODULE_SCOPE void TclOODeleteDescendants(Tcl_Interp *interp,
|
||||
Object *oPtr);
|
||||
MODULE_SCOPE void TclOODelMethodRef(Method *method);
|
||||
MODULE_SCOPE CallContext *TclOOGetCallContext(Object *oPtr,
|
||||
Tcl_Obj *methodNameObj, int flags,
|
||||
Tcl_Obj *cacheInThisObj);
|
||||
MODULE_SCOPE CallChain *TclOOGetStereotypeCallChain(Class *clsPtr,
|
||||
Tcl_Obj *methodNameObj, int flags);
|
||||
MODULE_SCOPE Foundation *TclOOGetFoundation(Tcl_Interp *interp);
|
||||
MODULE_SCOPE Tcl_Obj * TclOOGetFwdFromMethod(Method *mPtr);
|
||||
MODULE_SCOPE Proc * TclOOGetProcFromMethod(Method *mPtr);
|
||||
MODULE_SCOPE Tcl_Obj * TclOOGetMethodBody(Method *mPtr);
|
||||
MODULE_SCOPE int TclOOGetSortedClassMethodList(Class *clsPtr,
|
||||
int flags, const char ***stringsPtr);
|
||||
MODULE_SCOPE int TclOOGetSortedMethodList(Object *oPtr, int flags,
|
||||
const char ***stringsPtr);
|
||||
MODULE_SCOPE int TclOOInit(Tcl_Interp *interp);
|
||||
MODULE_SCOPE void TclOOInitInfo(Tcl_Interp *interp);
|
||||
MODULE_SCOPE int TclOOInvokeContext(ClientData clientData,
|
||||
Tcl_Interp *interp, int objc,
|
||||
Tcl_Obj *const objv[]);
|
||||
MODULE_SCOPE int TclNRObjectContextInvokeNext(Tcl_Interp *interp,
|
||||
Tcl_ObjectContext context, int objc,
|
||||
Tcl_Obj *const *objv, int skip);
|
||||
MODULE_SCOPE void TclOONewBasicMethod(Tcl_Interp *interp, Class *clsPtr,
|
||||
const DeclaredClassMethod *dcm);
|
||||
MODULE_SCOPE Tcl_Obj * TclOOObjectName(Tcl_Interp *interp, Object *oPtr);
|
||||
MODULE_SCOPE void TclOOReleaseClassContents(Tcl_Interp *interp,
|
||||
Object *oPtr);
|
||||
MODULE_SCOPE int TclOORemoveFromInstances(Object *oPtr, Class *clsPtr);
|
||||
MODULE_SCOPE int TclOORemoveFromMixins(Class *mixinPtr, Object *oPtr);
|
||||
MODULE_SCOPE int TclOORemoveFromMixinSubs(Class *subPtr,
|
||||
Class *mixinPtr);
|
||||
MODULE_SCOPE int TclOORemoveFromSubclasses(Class *subPtr,
|
||||
Class *superPtr);
|
||||
MODULE_SCOPE Tcl_Obj * TclOORenderCallChain(Tcl_Interp *interp,
|
||||
CallChain *callPtr);
|
||||
MODULE_SCOPE void TclOOStashContext(Tcl_Obj *objPtr,
|
||||
CallContext *contextPtr);
|
||||
MODULE_SCOPE void TclOOSetupVariableResolver(Tcl_Namespace *nsPtr);
|
||||
|
||||
/*
|
||||
* Include all the private API, generated from tclOO.decls.
|
||||
*/
|
||||
|
||||
#include "tclOOIntDecls.h"
|
||||
|
||||
/*
|
||||
* Alternatives to Tcl_Preserve/Tcl_EventuallyFree/Tcl_Release.
|
||||
*/
|
||||
|
||||
#define AddRef(ptr) ((ptr)->refCount++)
|
||||
|
||||
/*
|
||||
* A convenience macro for iterating through the lists used in the internal
|
||||
* memory management of objects.
|
||||
* REQUIRES DECLARATION: int i;
|
||||
*/
|
||||
|
||||
#define FOREACH(var,ary) \
|
||||
for(i=0 ; i<(ary).num; i++) if ((ary).list[i] == NULL) { \
|
||||
continue; \
|
||||
} else if (var = (ary).list[i], 1)
|
||||
|
||||
/*
|
||||
* Convenience macros for iterating through hash tables. FOREACH_HASH_DECLS
|
||||
* sets up the declarations needed for the main macro, FOREACH_HASH, which
|
||||
* does the actual iteration. FOREACH_HASH_VALUE is a restricted version that
|
||||
* only iterates over values.
|
||||
*/
|
||||
|
||||
#define FOREACH_HASH_DECLS \
|
||||
Tcl_HashEntry *hPtr;Tcl_HashSearch search
|
||||
#define FOREACH_HASH(key,val,tablePtr) \
|
||||
for(hPtr=Tcl_FirstHashEntry((tablePtr),&search); hPtr!=NULL ? \
|
||||
((key)=(void *)Tcl_GetHashKey((tablePtr),hPtr),\
|
||||
(val)=Tcl_GetHashValue(hPtr),1):0; hPtr=Tcl_NextHashEntry(&search))
|
||||
#define FOREACH_HASH_VALUE(val,tablePtr) \
|
||||
for(hPtr=Tcl_FirstHashEntry((tablePtr),&search); hPtr!=NULL ? \
|
||||
((val)=Tcl_GetHashValue(hPtr),1):0;hPtr=Tcl_NextHashEntry(&search))
|
||||
|
||||
/*
|
||||
* Convenience macro for duplicating a list. Needs no external declaration,
|
||||
* but all arguments are used multiple times and so must have no side effects.
|
||||
*/
|
||||
|
||||
#undef DUPLICATE /* prevent possible conflict with definition in WINAPI nb30.h */
|
||||
#define DUPLICATE(target,source,type) \
|
||||
do { \
|
||||
size_t len = sizeof(type) * ((target).num=(source).num);\
|
||||
if (len != 0) { \
|
||||
memcpy(((target).list=(type*)ckalloc(len)), (source).list, len); \
|
||||
} else { \
|
||||
(target).list = NULL; \
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
#endif /* TCL_OO_INTERNAL_H */
|
||||
|
||||
/*
|
||||
* Local Variables:
|
||||
* mode: c
|
||||
* c-basic-offset: 4
|
||||
* fill-column: 78
|
||||
* End:
|
||||
*/
|
166
msys2/usr/include/tcl8.6/generic/tclOOIntDecls.h
Normal file
166
msys2/usr/include/tcl8.6/generic/tclOOIntDecls.h
Normal file
|
@ -0,0 +1,166 @@
|
|||
/*
|
||||
* This file is (mostly) automatically generated from tclOO.decls.
|
||||
*/
|
||||
|
||||
#ifndef _TCLOOINTDECLS
|
||||
#define _TCLOOINTDECLS
|
||||
|
||||
/* !BEGIN!: Do not edit below this line. */
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Exported function declarations:
|
||||
*/
|
||||
|
||||
/* 0 */
|
||||
TCLAPI Tcl_Object TclOOGetDefineCmdContext(Tcl_Interp *interp);
|
||||
/* 1 */
|
||||
TCLAPI 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);
|
||||
/* 2 */
|
||||
TCLAPI 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);
|
||||
/* 3 */
|
||||
TCLAPI Method * TclOONewProcInstanceMethod(Tcl_Interp *interp,
|
||||
Object *oPtr, int flags, Tcl_Obj *nameObj,
|
||||
Tcl_Obj *argsObj, Tcl_Obj *bodyObj,
|
||||
ProcedureMethod **pmPtrPtr);
|
||||
/* 4 */
|
||||
TCLAPI Method * TclOONewProcMethod(Tcl_Interp *interp, Class *clsPtr,
|
||||
int flags, Tcl_Obj *nameObj,
|
||||
Tcl_Obj *argsObj, Tcl_Obj *bodyObj,
|
||||
ProcedureMethod **pmPtrPtr);
|
||||
/* 5 */
|
||||
TCLAPI int TclOOObjectCmdCore(Object *oPtr, Tcl_Interp *interp,
|
||||
int objc, Tcl_Obj *const *objv,
|
||||
int publicOnly, Class *startCls);
|
||||
/* 6 */
|
||||
TCLAPI int TclOOIsReachable(Class *targetPtr, Class *startPtr);
|
||||
/* 7 */
|
||||
TCLAPI Method * TclOONewForwardMethod(Tcl_Interp *interp,
|
||||
Class *clsPtr, int isPublic,
|
||||
Tcl_Obj *nameObj, Tcl_Obj *prefixObj);
|
||||
/* 8 */
|
||||
TCLAPI Method * TclOONewForwardInstanceMethod(Tcl_Interp *interp,
|
||||
Object *oPtr, int isPublic, Tcl_Obj *nameObj,
|
||||
Tcl_Obj *prefixObj);
|
||||
/* 9 */
|
||||
TCLAPI 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);
|
||||
/* 10 */
|
||||
TCLAPI 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);
|
||||
/* 11 */
|
||||
TCLAPI int TclOOInvokeObject(Tcl_Interp *interp,
|
||||
Tcl_Object object, Tcl_Class startCls,
|
||||
int publicPrivate, int objc,
|
||||
Tcl_Obj *const *objv);
|
||||
/* 12 */
|
||||
TCLAPI void TclOOObjectSetFilters(Object *oPtr, int numFilters,
|
||||
Tcl_Obj *const *filters);
|
||||
/* 13 */
|
||||
TCLAPI void TclOOClassSetFilters(Tcl_Interp *interp,
|
||||
Class *classPtr, int numFilters,
|
||||
Tcl_Obj *const *filters);
|
||||
/* 14 */
|
||||
TCLAPI void TclOOObjectSetMixins(Object *oPtr, int numMixins,
|
||||
Class *const *mixins);
|
||||
/* 15 */
|
||||
TCLAPI void TclOOClassSetMixins(Tcl_Interp *interp,
|
||||
Class *classPtr, int numMixins,
|
||||
Class *const *mixins);
|
||||
|
||||
typedef struct TclOOIntStubs {
|
||||
int magic;
|
||||
void *hooks;
|
||||
|
||||
Tcl_Object (*tclOOGetDefineCmdContext) (Tcl_Interp *interp); /* 0 */
|
||||
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 */
|
||||
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 */
|
||||
Method * (*tclOONewProcInstanceMethod) (Tcl_Interp *interp, Object *oPtr, int flags, Tcl_Obj *nameObj, Tcl_Obj *argsObj, Tcl_Obj *bodyObj, ProcedureMethod **pmPtrPtr); /* 3 */
|
||||
Method * (*tclOONewProcMethod) (Tcl_Interp *interp, Class *clsPtr, int flags, Tcl_Obj *nameObj, Tcl_Obj *argsObj, Tcl_Obj *bodyObj, ProcedureMethod **pmPtrPtr); /* 4 */
|
||||
int (*tclOOObjectCmdCore) (Object *oPtr, Tcl_Interp *interp, int objc, Tcl_Obj *const *objv, int publicOnly, Class *startCls); /* 5 */
|
||||
int (*tclOOIsReachable) (Class *targetPtr, Class *startPtr); /* 6 */
|
||||
Method * (*tclOONewForwardMethod) (Tcl_Interp *interp, Class *clsPtr, int isPublic, Tcl_Obj *nameObj, Tcl_Obj *prefixObj); /* 7 */
|
||||
Method * (*tclOONewForwardInstanceMethod) (Tcl_Interp *interp, Object *oPtr, int isPublic, Tcl_Obj *nameObj, Tcl_Obj *prefixObj); /* 8 */
|
||||
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 */
|
||||
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 */
|
||||
int (*tclOOInvokeObject) (Tcl_Interp *interp, Tcl_Object object, Tcl_Class startCls, int publicPrivate, int objc, Tcl_Obj *const *objv); /* 11 */
|
||||
void (*tclOOObjectSetFilters) (Object *oPtr, int numFilters, Tcl_Obj *const *filters); /* 12 */
|
||||
void (*tclOOClassSetFilters) (Tcl_Interp *interp, Class *classPtr, int numFilters, Tcl_Obj *const *filters); /* 13 */
|
||||
void (*tclOOObjectSetMixins) (Object *oPtr, int numMixins, Class *const *mixins); /* 14 */
|
||||
void (*tclOOClassSetMixins) (Tcl_Interp *interp, Class *classPtr, int numMixins, Class *const *mixins); /* 15 */
|
||||
} TclOOIntStubs;
|
||||
|
||||
extern const TclOOIntStubs *tclOOIntStubsPtr;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_TCLOO_STUBS)
|
||||
|
||||
/*
|
||||
* Inline function declarations:
|
||||
*/
|
||||
|
||||
#define TclOOGetDefineCmdContext \
|
||||
(tclOOIntStubsPtr->tclOOGetDefineCmdContext) /* 0 */
|
||||
#define TclOOMakeProcInstanceMethod \
|
||||
(tclOOIntStubsPtr->tclOOMakeProcInstanceMethod) /* 1 */
|
||||
#define TclOOMakeProcMethod \
|
||||
(tclOOIntStubsPtr->tclOOMakeProcMethod) /* 2 */
|
||||
#define TclOONewProcInstanceMethod \
|
||||
(tclOOIntStubsPtr->tclOONewProcInstanceMethod) /* 3 */
|
||||
#define TclOONewProcMethod \
|
||||
(tclOOIntStubsPtr->tclOONewProcMethod) /* 4 */
|
||||
#define TclOOObjectCmdCore \
|
||||
(tclOOIntStubsPtr->tclOOObjectCmdCore) /* 5 */
|
||||
#define TclOOIsReachable \
|
||||
(tclOOIntStubsPtr->tclOOIsReachable) /* 6 */
|
||||
#define TclOONewForwardMethod \
|
||||
(tclOOIntStubsPtr->tclOONewForwardMethod) /* 7 */
|
||||
#define TclOONewForwardInstanceMethod \
|
||||
(tclOOIntStubsPtr->tclOONewForwardInstanceMethod) /* 8 */
|
||||
#define TclOONewProcInstanceMethodEx \
|
||||
(tclOOIntStubsPtr->tclOONewProcInstanceMethodEx) /* 9 */
|
||||
#define TclOONewProcMethodEx \
|
||||
(tclOOIntStubsPtr->tclOONewProcMethodEx) /* 10 */
|
||||
#define TclOOInvokeObject \
|
||||
(tclOOIntStubsPtr->tclOOInvokeObject) /* 11 */
|
||||
#define TclOOObjectSetFilters \
|
||||
(tclOOIntStubsPtr->tclOOObjectSetFilters) /* 12 */
|
||||
#define TclOOClassSetFilters \
|
||||
(tclOOIntStubsPtr->tclOOClassSetFilters) /* 13 */
|
||||
#define TclOOObjectSetMixins \
|
||||
(tclOOIntStubsPtr->tclOOObjectSetMixins) /* 14 */
|
||||
#define TclOOClassSetMixins \
|
||||
(tclOOIntStubsPtr->tclOOClassSetMixins) /* 15 */
|
||||
|
||||
#endif /* defined(USE_TCLOO_STUBS) */
|
||||
|
||||
/* !END!: Do not edit above this line. */
|
||||
|
||||
#endif /* _TCLOOINTDECLS */
|
17
msys2/usr/include/tcl8.6/generic/tclParse.h
Normal file
17
msys2/usr/include/tcl8.6/generic/tclParse.h
Normal file
|
@ -0,0 +1,17 @@
|
|||
/*
|
||||
* Minimal set of shared macro definitions and declarations so that multiple
|
||||
* source files can make use of the parsing table in tclParse.c
|
||||
*/
|
||||
|
||||
#define TYPE_NORMAL 0
|
||||
#define TYPE_SPACE 0x1
|
||||
#define TYPE_COMMAND_END 0x2
|
||||
#define TYPE_SUBS 0x4
|
||||
#define TYPE_QUOTE 0x8
|
||||
#define TYPE_CLOSE_PAREN 0x10
|
||||
#define TYPE_CLOSE_BRACK 0x20
|
||||
#define TYPE_BRACE 0x40
|
||||
|
||||
#define CHAR_TYPE(c) (tclCharTypeTable+128)[(unsigned char)(c)]
|
||||
|
||||
MODULE_SCOPE const char tclCharTypeTable[];
|
122
msys2/usr/include/tcl8.6/generic/tclPlatDecls.h
Normal file
122
msys2/usr/include/tcl8.6/generic/tclPlatDecls.h
Normal file
|
@ -0,0 +1,122 @@
|
|||
/*
|
||||
* tclPlatDecls.h --
|
||||
*
|
||||
* Declarations of platform specific Tcl APIs.
|
||||
*
|
||||
* Copyright (c) 1998-1999 by Scriptics Corporation.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef _TCLPLATDECLS
|
||||
#define _TCLPLATDECLS
|
||||
|
||||
#undef TCL_STORAGE_CLASS
|
||||
#ifdef BUILD_tcl
|
||||
# define TCL_STORAGE_CLASS DLLEXPORT
|
||||
#else
|
||||
# ifdef USE_TCL_STUBS
|
||||
# define TCL_STORAGE_CLASS
|
||||
# else
|
||||
# define TCL_STORAGE_CLASS DLLIMPORT
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* WARNING: This file is automatically generated by the tools/genStubs.tcl
|
||||
* script. Any modifications to the function declarations below should be made
|
||||
* in the generic/tcl.decls script.
|
||||
*/
|
||||
|
||||
/*
|
||||
* TCHAR is needed here for win32, so if it is not defined yet do it here.
|
||||
* This way, we don't need to include <tchar.h> just for one define.
|
||||
*/
|
||||
#if defined(_WIN32) && !defined(_TCHAR_DEFINED)
|
||||
# if defined(_UNICODE)
|
||||
typedef wchar_t TCHAR;
|
||||
# else
|
||||
typedef char TCHAR;
|
||||
# endif
|
||||
# define _TCHAR_DEFINED
|
||||
#endif
|
||||
|
||||
/* !BEGIN!: Do not edit below this line. */
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Exported function declarations:
|
||||
*/
|
||||
|
||||
#if defined(_WIN32) /* WIN */
|
||||
/* 0 */
|
||||
EXTERN TCHAR * Tcl_WinUtfToTChar(const char *str, int len,
|
||||
Tcl_DString *dsPtr);
|
||||
/* 1 */
|
||||
EXTERN char * Tcl_WinTCharToUtf(const TCHAR *str, int len,
|
||||
Tcl_DString *dsPtr);
|
||||
#endif /* WIN */
|
||||
#ifdef MAC_OSX_TCL /* MACOSX */
|
||||
/* 0 */
|
||||
EXTERN int Tcl_MacOSXOpenBundleResources(Tcl_Interp *interp,
|
||||
const char *bundleName, int hasResourceFile,
|
||||
int maxPathLen, char *libraryPath);
|
||||
/* 1 */
|
||||
EXTERN int Tcl_MacOSXOpenVersionedBundleResources(
|
||||
Tcl_Interp *interp, const char *bundleName,
|
||||
const char *bundleVersion,
|
||||
int hasResourceFile, int maxPathLen,
|
||||
char *libraryPath);
|
||||
#endif /* MACOSX */
|
||||
|
||||
typedef struct TclPlatStubs {
|
||||
int magic;
|
||||
void *hooks;
|
||||
|
||||
#if defined(_WIN32) /* WIN */
|
||||
TCHAR * (*tcl_WinUtfToTChar) (const char *str, int len, Tcl_DString *dsPtr); /* 0 */
|
||||
char * (*tcl_WinTCharToUtf) (const TCHAR *str, int len, Tcl_DString *dsPtr); /* 1 */
|
||||
#endif /* WIN */
|
||||
#ifdef MAC_OSX_TCL /* MACOSX */
|
||||
int (*tcl_MacOSXOpenBundleResources) (Tcl_Interp *interp, const char *bundleName, int hasResourceFile, int maxPathLen, char *libraryPath); /* 0 */
|
||||
int (*tcl_MacOSXOpenVersionedBundleResources) (Tcl_Interp *interp, const char *bundleName, const char *bundleVersion, int hasResourceFile, int maxPathLen, char *libraryPath); /* 1 */
|
||||
#endif /* MACOSX */
|
||||
} TclPlatStubs;
|
||||
|
||||
extern const TclPlatStubs *tclPlatStubsPtr;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_TCL_STUBS)
|
||||
|
||||
/*
|
||||
* Inline function declarations:
|
||||
*/
|
||||
|
||||
#if defined(_WIN32) /* WIN */
|
||||
#define Tcl_WinUtfToTChar \
|
||||
(tclPlatStubsPtr->tcl_WinUtfToTChar) /* 0 */
|
||||
#define Tcl_WinTCharToUtf \
|
||||
(tclPlatStubsPtr->tcl_WinTCharToUtf) /* 1 */
|
||||
#endif /* WIN */
|
||||
#ifdef MAC_OSX_TCL /* MACOSX */
|
||||
#define Tcl_MacOSXOpenBundleResources \
|
||||
(tclPlatStubsPtr->tcl_MacOSXOpenBundleResources) /* 0 */
|
||||
#define Tcl_MacOSXOpenVersionedBundleResources \
|
||||
(tclPlatStubsPtr->tcl_MacOSXOpenVersionedBundleResources) /* 1 */
|
||||
#endif /* MACOSX */
|
||||
|
||||
#endif /* defined(USE_TCL_STUBS) */
|
||||
|
||||
/* !END!: Do not edit above this line. */
|
||||
|
||||
#undef TCL_STORAGE_CLASS
|
||||
#define TCL_STORAGE_CLASS DLLIMPORT
|
||||
|
||||
#endif /* _TCLPLATDECLS */
|
||||
|
||||
|
46
msys2/usr/include/tcl8.6/generic/tclPort.h
Normal file
46
msys2/usr/include/tcl8.6/generic/tclPort.h
Normal file
|
@ -0,0 +1,46 @@
|
|||
/*
|
||||
* tclPort.h --
|
||||
*
|
||||
* This header file handles porting issues that occur because
|
||||
* of differences between systems. It reads in platform specific
|
||||
* portability files.
|
||||
*
|
||||
* Copyright (c) 1994-1995 Sun Microsystems, Inc.
|
||||
*
|
||||
* See the file "license.terms" for information on usage and redistribution
|
||||
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
*/
|
||||
|
||||
#ifndef _TCLPORT
|
||||
#define _TCLPORT
|
||||
|
||||
#ifdef HAVE_TCL_CONFIG_H
|
||||
#include "tclConfig.h"
|
||||
#endif
|
||||
#if defined(_WIN32)
|
||||
# include "tclWinPort.h"
|
||||
#else
|
||||
# include "tclUnixPort.h"
|
||||
#endif
|
||||
#include "tcl.h"
|
||||
|
||||
#if !defined(LLONG_MIN)
|
||||
# ifdef TCL_WIDE_INT_IS_LONG
|
||||
# define LLONG_MIN LONG_MIN
|
||||
# else
|
||||
# ifdef LLONG_BIT
|
||||
# define LLONG_MIN ((Tcl_WideInt)(Tcl_LongAsWide(1)<<(LLONG_BIT-1)))
|
||||
# else
|
||||
/* Assume we're on a system with a 64-bit 'long long' type */
|
||||
# define LLONG_MIN ((Tcl_WideInt)(Tcl_LongAsWide(1)<<63))
|
||||
# endif
|
||||
# endif
|
||||
/* Assume that if LLONG_MIN is undefined, then so is LLONG_MAX */
|
||||
# define LLONG_MAX (~LLONG_MIN)
|
||||
#endif
|
||||
|
||||
#define UWIDE_MAX ((Tcl_WideUInt)-1)
|
||||
#define WIDE_MAX ((Tcl_WideInt)(UWIDE_MAX >> 1))
|
||||
#define WIDE_MIN ((Tcl_WideInt)((Tcl_WideUInt)WIDE_MAX+1))
|
||||
|
||||
#endif /* _TCLPORT */
|
52
msys2/usr/include/tcl8.6/generic/tclRegexp.h
Normal file
52
msys2/usr/include/tcl8.6/generic/tclRegexp.h
Normal file
|
@ -0,0 +1,52 @@
|
|||
/*
|
||||
* tclRegexp.h --
|
||||
*
|
||||
* This file contains definitions used internally by Henry Spencer's
|
||||
* regular expression code.
|
||||
*
|
||||
* Copyright (c) 1998 by Sun Microsystems, Inc.
|
||||
* Copyright (c) 1998-1999 by Scriptics Corporation.
|
||||
*
|
||||
* See the file "license.terms" for information on usage and redistribution of
|
||||
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
*/
|
||||
|
||||
#ifndef _TCLREGEXP
|
||||
#define _TCLREGEXP
|
||||
|
||||
#include "regex.h"
|
||||
|
||||
/*
|
||||
* The TclRegexp structure encapsulates a compiled regex_t, the flags that
|
||||
* were used to compile it, and an array of pointers that are used to indicate
|
||||
* subexpressions after a call to Tcl_RegExpExec. Note that the string and
|
||||
* objPtr are mutually exclusive. These values are needed by Tcl_RegExpRange
|
||||
* in order to return pointers into the original string.
|
||||
*/
|
||||
|
||||
typedef struct TclRegexp {
|
||||
int flags; /* Regexp compile flags. */
|
||||
regex_t re; /* Compiled re, includes number of
|
||||
* subexpressions. */
|
||||
const char *string; /* Last string passed to Tcl_RegExpExec. */
|
||||
Tcl_Obj *objPtr; /* Last object passed to Tcl_RegExpExecObj. */
|
||||
Tcl_Obj *globObjPtr; /* Glob pattern rep of RE or NULL if none. */
|
||||
regmatch_t *matches; /* Array of indices into the Tcl_UniChar
|
||||
* representation of the last string matched
|
||||
* with this regexp to indicate the location
|
||||
* of subexpressions. */
|
||||
rm_detail_t details; /* Detailed information on match (currently
|
||||
* used only for REG_EXPECT). */
|
||||
int refCount; /* Count of number of references to this
|
||||
* compiled regexp. */
|
||||
} TclRegexp;
|
||||
|
||||
#endif /* _TCLREGEXP */
|
||||
|
||||
/*
|
||||
* Local Variables:
|
||||
* mode: c
|
||||
* c-basic-offset: 4
|
||||
* fill-column: 78
|
||||
* End:
|
||||
*/
|
97
msys2/usr/include/tcl8.6/generic/tclStringRep.h
Normal file
97
msys2/usr/include/tcl8.6/generic/tclStringRep.h
Normal file
|
@ -0,0 +1,97 @@
|
|||
/*
|
||||
* tclStringRep.h --
|
||||
*
|
||||
* This file contains the definition of the Unicode string internal
|
||||
* representation and macros to access it.
|
||||
*
|
||||
* A Unicode string is an internationalized string. Conceptually, a
|
||||
* Unicode string is an array of 16-bit quantities organized as a
|
||||
* sequence of properly formed UTF-8 characters. There is a one-to-one
|
||||
* map between Unicode and UTF characters. Because Unicode characters
|
||||
* have a fixed width, operations such as indexing operate on Unicode
|
||||
* data. The String object is optimized for the case where each UTF char
|
||||
* in a string is only one byte. In this case, we store the value of
|
||||
* numChars, but we don't store the Unicode data (unless Tcl_GetUnicode
|
||||
* is explicitly called).
|
||||
*
|
||||
* The String object type stores one or both formats. The default
|
||||
* behavior is to store UTF. Once Unicode is calculated by a function, it
|
||||
* is stored in the internal rep for future access (without an additional
|
||||
* O(n) cost).
|
||||
*
|
||||
* To allow many appends to be done to an object without constantly
|
||||
* reallocating the space for the string or Unicode representation, we
|
||||
* allocate double the space for the string or Unicode and use the
|
||||
* internal representation to keep track of how much space is used vs.
|
||||
* allocated.
|
||||
*
|
||||
* Copyright (c) 1995-1997 Sun Microsystems, Inc.
|
||||
* Copyright (c) 1999 by Scriptics Corporation.
|
||||
*
|
||||
* See the file "license.terms" for information on usage and redistribution of
|
||||
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
*/
|
||||
|
||||
/*
|
||||
* The following structure is the internal rep for a String object. It keeps
|
||||
* track of how much memory has been used and how much has been allocated for
|
||||
* the Unicode and UTF string to enable growing and shrinking of the UTF and
|
||||
* Unicode reps of the String object with fewer mallocs. To optimize string
|
||||
* length and indexing operations, this structure also stores the number of
|
||||
* characters (same of UTF and Unicode!) once that value has been computed.
|
||||
*
|
||||
* Under normal configurations, what Tcl calls "Unicode" is actually UTF-16
|
||||
* restricted to the Basic Multilingual Plane (i.e. U+00000 to U+0FFFF). This
|
||||
* can be officially modified by altering the definition of Tcl_UniChar in
|
||||
* tcl.h, but do not do that unless you are sure what you're doing!
|
||||
*/
|
||||
|
||||
typedef struct String {
|
||||
int numChars; /* The number of chars in the string. -1 means
|
||||
* this value has not been calculated. >= 0
|
||||
* means that there is a valid Unicode rep, or
|
||||
* that the number of UTF bytes == the number
|
||||
* of chars. */
|
||||
int allocated; /* The amount of space actually allocated for
|
||||
* the UTF string (minus 1 byte for the
|
||||
* termination char). */
|
||||
int maxChars; /* Max number of chars that can fit in the
|
||||
* space allocated for the unicode array. */
|
||||
int hasUnicode; /* Boolean determining whether the string has
|
||||
* a Unicode representation. */
|
||||
Tcl_UniChar unicode[1]; /* The array of Unicode chars. The actual size
|
||||
* of this field depends on the 'maxChars'
|
||||
* field above. */
|
||||
} String;
|
||||
|
||||
#define STRING_MAXCHARS \
|
||||
(int)(((size_t)UINT_MAX - sizeof(String))/sizeof(Tcl_UniChar))
|
||||
#define STRING_SIZE(numChars) \
|
||||
(sizeof(String) + ((numChars) * sizeof(Tcl_UniChar)))
|
||||
#define stringCheckLimits(numChars) \
|
||||
do { \
|
||||
if ((numChars) < 0 || (numChars) > STRING_MAXCHARS) { \
|
||||
Tcl_Panic("max length for a Tcl unicode value (%d chars) exceeded", \
|
||||
STRING_MAXCHARS); \
|
||||
} \
|
||||
} while (0)
|
||||
#define stringAttemptAlloc(numChars) \
|
||||
(String *) attemptckalloc((unsigned) STRING_SIZE(numChars))
|
||||
#define stringAlloc(numChars) \
|
||||
(String *) ckalloc((unsigned) STRING_SIZE(numChars))
|
||||
#define stringRealloc(ptr, numChars) \
|
||||
(String *) ckrealloc((ptr), (unsigned) STRING_SIZE(numChars))
|
||||
#define stringAttemptRealloc(ptr, numChars) \
|
||||
(String *) attemptckrealloc((ptr), (unsigned) STRING_SIZE(numChars))
|
||||
#define GET_STRING(objPtr) \
|
||||
((String *) (objPtr)->internalRep.twoPtrValue.ptr1)
|
||||
#define SET_STRING(objPtr, stringPtr) \
|
||||
((objPtr)->internalRep.twoPtrValue.ptr1 = (void *) (stringPtr))
|
||||
|
||||
/*
|
||||
* Local Variables:
|
||||
* mode: c
|
||||
* c-basic-offset: 4
|
||||
* fill-column: 78
|
||||
* End:
|
||||
*/
|
43
msys2/usr/include/tcl8.6/generic/tclStringTrim.h
Normal file
43
msys2/usr/include/tcl8.6/generic/tclStringTrim.h
Normal file
|
@ -0,0 +1,43 @@
|
|||
/*
|
||||
* tclStringTrim.h --
|
||||
*
|
||||
* This file contains the definition of what characters are to be trimmed
|
||||
* from a string by [string trim] by default. It's only needed by Tcl's
|
||||
* implementation; it does not form a public or private API at all.
|
||||
*
|
||||
* Copyright (c) 1987-1993 The Regents of the University of California.
|
||||
* Copyright (c) 1994-1997 Sun Microsystems, Inc.
|
||||
* Copyright (c) 1998-2000 Scriptics Corporation.
|
||||
* Copyright (c) 2002 ActiveState Corporation.
|
||||
* Copyright (c) 2003-2013 Donal K. Fellows.
|
||||
*
|
||||
* See the file "license.terms" for information on usage and redistribution of
|
||||
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
*/
|
||||
|
||||
#ifndef TCL_STRING_TRIM_H
|
||||
#define TCL_STRING_TRIM_H
|
||||
|
||||
/*
|
||||
* Default set of characters to trim in [string trim] and friends. This is a
|
||||
* UTF-8 literal string containing all Unicode space characters. [TIP #413]
|
||||
*/
|
||||
|
||||
MODULE_SCOPE const char tclDefaultTrimSet[];
|
||||
|
||||
/*
|
||||
* The whitespace trimming set used when [concat]enating. This is a subset of
|
||||
* the above, and deliberately so.
|
||||
*/
|
||||
|
||||
#define CONCAT_TRIM_SET " \f\v\r\t\n"
|
||||
|
||||
#endif /* TCL_STRING_TRIM_H */
|
||||
|
||||
/*
|
||||
* Local Variables:
|
||||
* mode: c
|
||||
* c-basic-offset: 4
|
||||
* fill-column: 78
|
||||
* End:
|
||||
*/
|
36
msys2/usr/include/tcl8.6/generic/tclThread.h
Normal file
36
msys2/usr/include/tcl8.6/generic/tclThread.h
Normal file
|
@ -0,0 +1,36 @@
|
|||
/*
|
||||
* --------------------------------------------------------------------------
|
||||
* tclthread.h --
|
||||
*
|
||||
* Global header file for the thread extension.
|
||||
*
|
||||
* Copyright (c) 2002 ActiveState Corporation.
|
||||
* Copyright (c) 2002 by Zoran Vasiljevic.
|
||||
*
|
||||
* See the file "license.terms" for information on usage and redistribution
|
||||
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
* ---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/*
|
||||
* Thread extension version numbers are not stored here
|
||||
* because this isn't a public export file.
|
||||
*/
|
||||
|
||||
#ifndef _TCL_THREAD_H_
|
||||
#define _TCL_THREAD_H_
|
||||
|
||||
#include <tcl.h>
|
||||
|
||||
/*
|
||||
* Exported from threadCmd.c file.
|
||||
*/
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
DLLEXPORT int Thread_Init(Tcl_Interp *interp);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _TCL_THREAD_H_ */
|
1122
msys2/usr/include/tcl8.6/generic/tclTomMath.h
Normal file
1122
msys2/usr/include/tcl8.6/generic/tclTomMath.h
Normal file
File diff suppressed because it is too large
Load diff
660
msys2/usr/include/tcl8.6/generic/tclTomMathDecls.h
Normal file
660
msys2/usr/include/tcl8.6/generic/tclTomMathDecls.h
Normal file
|
@ -0,0 +1,660 @@
|
|||
/*
|
||||
*----------------------------------------------------------------------
|
||||
*
|
||||
* tclTomMathDecls.h --
|
||||
*
|
||||
* This file contains the declarations for the 'libtommath'
|
||||
* functions that are exported by the Tcl library.
|
||||
*
|
||||
* Copyright (c) 2005 by Kevin B. Kenny. All rights reserved.
|
||||
*
|
||||
* See the file "license.terms" for information on usage and redistribution
|
||||
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
*/
|
||||
|
||||
#ifndef _TCLTOMMATHDECLS
|
||||
#define _TCLTOMMATHDECLS
|
||||
|
||||
#include "tcl.h"
|
||||
#ifndef BN_H_
|
||||
#include "tclTomMath.h"
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Define the version of the Stubs table that's exported for tommath
|
||||
*/
|
||||
|
||||
#define TCLTOMMATH_EPOCH 0
|
||||
#define TCLTOMMATH_REVISION 0
|
||||
|
||||
#define Tcl_TomMath_InitStubs(interp,version) \
|
||||
(TclTomMathInitializeStubs((interp),(version),\
|
||||
TCLTOMMATH_EPOCH,TCLTOMMATH_REVISION))
|
||||
|
||||
/* Define custom memory allocation for libtommath */
|
||||
|
||||
/* MODULE_SCOPE void* TclBNAlloc( size_t ); */
|
||||
#define TclBNAlloc(s) ((void*)ckalloc((size_t)(s)))
|
||||
/* MODULE_SCOPE void* TclBNCalloc( size_t, size_t ); */
|
||||
#define TclBNCalloc(m,s) memset(ckalloc((size_t)(m)*(size_t)(s)),0,(size_t)(m)*(size_t)(s))
|
||||
/* MODULE_SCOPE void* TclBNRealloc( void*, size_t ); */
|
||||
#define TclBNRealloc(x,s) ((void*)ckrealloc((char*)(x),(size_t)(s)))
|
||||
/* MODULE_SCOPE void TclBNFree( void* ); */
|
||||
#define TclBNFree(x) (ckfree((char*)(x)))
|
||||
|
||||
#define MP_MALLOC(size) TclBNAlloc(size)
|
||||
#define MP_CALLOC(nmemb, size) TclBNCalloc(nmemb, size)
|
||||
#define MP_REALLOC(mem, oldsize, newsize) TclBNRealloc(mem, newsize)
|
||||
#define MP_FREE(mem, size) TclBNFree(mem)
|
||||
|
||||
|
||||
/* Rename the global symbols in libtommath to avoid linkage conflicts */
|
||||
|
||||
#define bn_reverse TclBN_reverse
|
||||
#define mp_add TclBN_mp_add
|
||||
#define mp_add_d TclBN_mp_add_d
|
||||
#define mp_and TclBN_mp_and
|
||||
#define mp_clamp TclBN_mp_clamp
|
||||
#define mp_clear TclBN_mp_clear
|
||||
#define mp_clear_multi TclBN_mp_clear_multi
|
||||
#define mp_cmp TclBN_mp_cmp
|
||||
#define mp_cmp_d TclBN_mp_cmp_d
|
||||
#define mp_cmp_mag TclBN_mp_cmp_mag
|
||||
#define mp_cnt_lsb TclBN_mp_cnt_lsb
|
||||
#define mp_copy TclBN_mp_copy
|
||||
#define mp_count_bits TclBN_mp_count_bits
|
||||
#define mp_div TclBN_mp_div
|
||||
#define mp_div_2 TclBN_mp_div_2
|
||||
#define mp_div_2d TclBN_mp_div_2d
|
||||
#define mp_div_3 TclBN_mp_div_3
|
||||
#define mp_div_d TclBN_mp_div_d
|
||||
#define mp_exch TclBN_mp_exch
|
||||
#define mp_expt_d TclBN_mp_expt_d
|
||||
#define mp_expt_d_ex TclBN_mp_expt_d_ex
|
||||
#define mp_expt_u32 TclBN_mp_expt_d
|
||||
#define mp_grow TclBN_mp_grow
|
||||
#define mp_init TclBN_mp_init
|
||||
#define mp_init_copy TclBN_mp_init_copy
|
||||
#define mp_init_multi TclBN_mp_init_multi
|
||||
#define mp_init_set TclBN_mp_init_set
|
||||
#define mp_init_set_int TclBN_mp_init_set_int
|
||||
#define mp_init_size TclBN_mp_init_size
|
||||
#define mp_lshd TclBN_mp_lshd
|
||||
#define mp_mod TclBN_mp_mod
|
||||
#define mp_mod_2d TclBN_mp_mod_2d
|
||||
#define mp_mul TclBN_mp_mul
|
||||
#define mp_mul_2 TclBN_mp_mul_2
|
||||
#define mp_mul_2d TclBN_mp_mul_2d
|
||||
#define mp_mul_d TclBN_mp_mul_d
|
||||
#define mp_neg TclBN_mp_neg
|
||||
#define mp_or TclBN_mp_or
|
||||
#define mp_radix_size TclBN_mp_radix_size
|
||||
#define mp_read_radix TclBN_mp_read_radix
|
||||
#define mp_rshd TclBN_mp_rshd
|
||||
#define mp_set TclBN_mp_set
|
||||
#define mp_set_int(a,b) (TclBN_mp_set_int(a,(unsigned int)(b)),MP_OKAY)
|
||||
#define mp_set_long(a,b) (TclBN_mp_set_int(a,b),MP_OKAY)
|
||||
#define mp_set_ul(a,b) (void)TclBN_mp_set_int(a,b)
|
||||
#define mp_set_ull TclBN_mp_set_ull
|
||||
#define mp_set_u64 TclBN_mp_set_ull
|
||||
#define mp_shrink TclBN_mp_shrink
|
||||
#define mp_sqr TclBN_mp_sqr
|
||||
#define mp_sqrt TclBN_mp_sqrt
|
||||
#define mp_sub TclBN_mp_sub
|
||||
#define mp_sub_d TclBN_mp_sub_d
|
||||
#define mp_signed_rsh TclBN_mp_signed_rsh
|
||||
#define mp_tc_and TclBN_mp_and
|
||||
#define mp_tc_div_2d TclBN_mp_signed_rsh
|
||||
#define mp_tc_or TclBN_mp_or
|
||||
#define mp_tc_xor TclBN_mp_xor
|
||||
#define mp_to_unsigned_bin TclBN_mp_to_unsigned_bin
|
||||
#define mp_to_unsigned_bin_n TclBN_mp_to_unsigned_bin_n
|
||||
#define mp_toradix_n TclBN_mp_toradix_n
|
||||
#define mp_to_radix TclBN_mp_to_radix
|
||||
#define mp_to_ubin TclBN_mp_to_ubin
|
||||
#define mp_ubin_size TclBN_mp_unsigned_bin_size
|
||||
#define mp_unsigned_bin_size(a) ((int)TclBN_mp_unsigned_bin_size(a))
|
||||
#define mp_xor TclBN_mp_xor
|
||||
#define mp_zero TclBN_mp_zero
|
||||
#define s_mp_add TclBN_s_mp_add
|
||||
#define s_mp_balance_mul TclBN_mp_balance_mul
|
||||
#define s_mp_karatsuba_mul TclBN_mp_karatsuba_mul
|
||||
#define s_mp_karatsuba_sqr TclBN_mp_karatsuba_sqr
|
||||
#define s_mp_mul_digs TclBN_s_mp_mul_digs
|
||||
#define s_mp_mul_digs_fast TclBN_fast_s_mp_mul_digs
|
||||
#define s_mp_reverse TclBN_s_mp_reverse
|
||||
#define s_mp_sqr TclBN_s_mp_sqr
|
||||
#define s_mp_sqr_fast TclBN_fast_s_mp_sqr
|
||||
#define s_mp_sub TclBN_s_mp_sub
|
||||
#define s_mp_toom_mul TclBN_mp_toom_mul
|
||||
#define s_mp_toom_sqr TclBN_mp_toom_sqr
|
||||
|
||||
#undef TCL_STORAGE_CLASS
|
||||
#ifdef BUILD_tcl
|
||||
# define TCL_STORAGE_CLASS DLLEXPORT
|
||||
#else
|
||||
# ifdef USE_TCL_STUBS
|
||||
# define TCL_STORAGE_CLASS
|
||||
# else
|
||||
# define TCL_STORAGE_CLASS DLLIMPORT
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* WARNING: This file is automatically generated by the tools/genStubs.tcl
|
||||
* script. Any modifications to the function declarations below should be made
|
||||
* in the generic/tclInt.decls script.
|
||||
*/
|
||||
|
||||
/* !BEGIN!: Do not edit below this line. */
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Exported function declarations:
|
||||
*/
|
||||
|
||||
/* 0 */
|
||||
EXTERN int TclBN_epoch(void);
|
||||
/* 1 */
|
||||
EXTERN int TclBN_revision(void);
|
||||
/* 2 */
|
||||
EXTERN mp_err TclBN_mp_add(const mp_int *a, const mp_int *b,
|
||||
mp_int *c);
|
||||
/* 3 */
|
||||
EXTERN mp_err TclBN_mp_add_d(const mp_int *a, mp_digit b,
|
||||
mp_int *c);
|
||||
/* 4 */
|
||||
EXTERN mp_err TclBN_mp_and(const mp_int *a, const mp_int *b,
|
||||
mp_int *c);
|
||||
/* 5 */
|
||||
EXTERN void TclBN_mp_clamp(mp_int *a);
|
||||
/* 6 */
|
||||
EXTERN void TclBN_mp_clear(mp_int *a);
|
||||
/* 7 */
|
||||
EXTERN void TclBN_mp_clear_multi(mp_int *a, ...);
|
||||
/* 8 */
|
||||
EXTERN mp_ord TclBN_mp_cmp(const mp_int *a, const mp_int *b);
|
||||
/* 9 */
|
||||
EXTERN mp_ord TclBN_mp_cmp_d(const mp_int *a, mp_digit b);
|
||||
/* 10 */
|
||||
EXTERN mp_ord TclBN_mp_cmp_mag(const mp_int *a, const mp_int *b);
|
||||
/* 11 */
|
||||
EXTERN mp_err TclBN_mp_copy(const mp_int *a, mp_int *b);
|
||||
/* 12 */
|
||||
EXTERN int TclBN_mp_count_bits(const mp_int *a);
|
||||
/* 13 */
|
||||
EXTERN mp_err TclBN_mp_div(const mp_int *a, const mp_int *b,
|
||||
mp_int *q, mp_int *r);
|
||||
/* 14 */
|
||||
EXTERN mp_err TclBN_mp_div_d(const mp_int *a, mp_digit b,
|
||||
mp_int *q, mp_digit *r);
|
||||
/* 15 */
|
||||
EXTERN mp_err TclBN_mp_div_2(const mp_int *a, mp_int *q);
|
||||
/* 16 */
|
||||
EXTERN mp_err TclBN_mp_div_2d(const mp_int *a, int b, mp_int *q,
|
||||
mp_int *r);
|
||||
/* 17 */
|
||||
EXTERN mp_err TclBN_mp_div_3(const mp_int *a, mp_int *q,
|
||||
mp_digit *r);
|
||||
/* 18 */
|
||||
EXTERN void TclBN_mp_exch(mp_int *a, mp_int *b);
|
||||
/* 19 */
|
||||
EXTERN mp_err TclBN_mp_expt_d(const mp_int *a, unsigned int b,
|
||||
mp_int *c);
|
||||
/* 20 */
|
||||
EXTERN mp_err TclBN_mp_grow(mp_int *a, int size);
|
||||
/* 21 */
|
||||
EXTERN mp_err TclBN_mp_init(mp_int *a);
|
||||
/* 22 */
|
||||
EXTERN mp_err TclBN_mp_init_copy(mp_int *a, const mp_int *b);
|
||||
/* 23 */
|
||||
EXTERN mp_err TclBN_mp_init_multi(mp_int *a, ...);
|
||||
/* 24 */
|
||||
EXTERN mp_err TclBN_mp_init_set(mp_int *a, mp_digit b);
|
||||
/* 25 */
|
||||
EXTERN mp_err TclBN_mp_init_size(mp_int *a, int size);
|
||||
/* 26 */
|
||||
EXTERN mp_err TclBN_mp_lshd(mp_int *a, int shift);
|
||||
/* 27 */
|
||||
EXTERN mp_err TclBN_mp_mod(const mp_int *a, const mp_int *b,
|
||||
mp_int *r);
|
||||
/* 28 */
|
||||
EXTERN mp_err TclBN_mp_mod_2d(const mp_int *a, int b, mp_int *r);
|
||||
/* 29 */
|
||||
EXTERN mp_err TclBN_mp_mul(const mp_int *a, const mp_int *b,
|
||||
mp_int *p);
|
||||
/* 30 */
|
||||
EXTERN mp_err TclBN_mp_mul_d(const mp_int *a, mp_digit b,
|
||||
mp_int *p);
|
||||
/* 31 */
|
||||
EXTERN mp_err TclBN_mp_mul_2(const mp_int *a, mp_int *p);
|
||||
/* 32 */
|
||||
EXTERN mp_err TclBN_mp_mul_2d(const mp_int *a, int d, mp_int *p);
|
||||
/* 33 */
|
||||
EXTERN mp_err TclBN_mp_neg(const mp_int *a, mp_int *b);
|
||||
/* 34 */
|
||||
EXTERN mp_err TclBN_mp_or(const mp_int *a, const mp_int *b,
|
||||
mp_int *c);
|
||||
/* 35 */
|
||||
EXTERN mp_err TclBN_mp_radix_size(const mp_int *a, int radix,
|
||||
int *size);
|
||||
/* 36 */
|
||||
EXTERN mp_err TclBN_mp_read_radix(mp_int *a, const char *str,
|
||||
int radix);
|
||||
/* 37 */
|
||||
EXTERN void TclBN_mp_rshd(mp_int *a, int shift);
|
||||
/* 38 */
|
||||
EXTERN mp_err TclBN_mp_shrink(mp_int *a);
|
||||
/* 39 */
|
||||
EXTERN void TclBN_mp_set(mp_int *a, mp_digit b);
|
||||
/* 40 */
|
||||
EXTERN mp_err TclBN_mp_sqr(const mp_int *a, mp_int *b);
|
||||
/* 41 */
|
||||
EXTERN mp_err TclBN_mp_sqrt(const mp_int *a, mp_int *b);
|
||||
/* 42 */
|
||||
EXTERN mp_err TclBN_mp_sub(const mp_int *a, const mp_int *b,
|
||||
mp_int *c);
|
||||
/* 43 */
|
||||
EXTERN mp_err TclBN_mp_sub_d(const mp_int *a, mp_digit b,
|
||||
mp_int *c);
|
||||
/* 44 */
|
||||
EXTERN mp_err TclBN_mp_to_unsigned_bin(const mp_int *a,
|
||||
unsigned char *b);
|
||||
/* 45 */
|
||||
EXTERN mp_err TclBN_mp_to_unsigned_bin_n(const mp_int *a,
|
||||
unsigned char *b, unsigned long *outlen);
|
||||
/* 46 */
|
||||
EXTERN mp_err TclBN_mp_toradix_n(const mp_int *a, char *str,
|
||||
int radix, int maxlen);
|
||||
/* 47 */
|
||||
EXTERN size_t TclBN_mp_unsigned_bin_size(const mp_int *a);
|
||||
/* 48 */
|
||||
EXTERN mp_err TclBN_mp_xor(const mp_int *a, const mp_int *b,
|
||||
mp_int *c);
|
||||
/* 49 */
|
||||
EXTERN void TclBN_mp_zero(mp_int *a);
|
||||
/* 50 */
|
||||
EXTERN void TclBN_reverse(unsigned char *s, int len);
|
||||
/* 51 */
|
||||
EXTERN mp_err TclBN_fast_s_mp_mul_digs(const mp_int *a,
|
||||
const mp_int *b, mp_int *c, int digs);
|
||||
/* 52 */
|
||||
EXTERN mp_err TclBN_fast_s_mp_sqr(const mp_int *a, mp_int *b);
|
||||
/* 53 */
|
||||
EXTERN mp_err TclBN_mp_karatsuba_mul(const mp_int *a,
|
||||
const mp_int *b, mp_int *c);
|
||||
/* 54 */
|
||||
EXTERN mp_err TclBN_mp_karatsuba_sqr(const mp_int *a, mp_int *b);
|
||||
/* 55 */
|
||||
EXTERN mp_err TclBN_mp_toom_mul(const mp_int *a, const mp_int *b,
|
||||
mp_int *c);
|
||||
/* 56 */
|
||||
EXTERN mp_err TclBN_mp_toom_sqr(const mp_int *a, mp_int *b);
|
||||
/* 57 */
|
||||
EXTERN mp_err TclBN_s_mp_add(const mp_int *a, const mp_int *b,
|
||||
mp_int *c);
|
||||
/* 58 */
|
||||
EXTERN mp_err TclBN_s_mp_mul_digs(const mp_int *a, const mp_int *b,
|
||||
mp_int *c, int digs);
|
||||
/* 59 */
|
||||
EXTERN mp_err TclBN_s_mp_sqr(const mp_int *a, mp_int *b);
|
||||
/* 60 */
|
||||
EXTERN mp_err TclBN_s_mp_sub(const mp_int *a, const mp_int *b,
|
||||
mp_int *c);
|
||||
/* 61 */
|
||||
EXTERN mp_err TclBN_mp_init_set_int(mp_int *a, unsigned long i);
|
||||
/* 62 */
|
||||
EXTERN mp_err TclBN_mp_set_int(mp_int *a, unsigned long i);
|
||||
/* 63 */
|
||||
EXTERN int TclBN_mp_cnt_lsb(const mp_int *a);
|
||||
/* 64 */
|
||||
EXTERN int TclBNInitBignumFromLong(mp_int *bignum, long initVal);
|
||||
/* 65 */
|
||||
EXTERN int TclBNInitBignumFromWideInt(mp_int *bignum,
|
||||
Tcl_WideInt initVal);
|
||||
/* 66 */
|
||||
EXTERN int TclBNInitBignumFromWideUInt(mp_int *bignum,
|
||||
Tcl_WideUInt initVal);
|
||||
/* 67 */
|
||||
EXTERN mp_err TclBN_mp_expt_d_ex(const mp_int *a, mp_digit b,
|
||||
mp_int *c, int fast);
|
||||
/* 68 */
|
||||
EXTERN void TclBN_mp_set_ull(mp_int *a, Tcl_WideUInt i);
|
||||
/* Slot 69 is reserved */
|
||||
/* Slot 70 is reserved */
|
||||
/* Slot 71 is reserved */
|
||||
/* Slot 72 is reserved */
|
||||
/* 73 */
|
||||
EXTERN mp_err TclBN_mp_tc_and(const mp_int *a, const mp_int *b,
|
||||
mp_int *c);
|
||||
/* 74 */
|
||||
EXTERN mp_err TclBN_mp_tc_or(const mp_int *a, const mp_int *b,
|
||||
mp_int *c);
|
||||
/* 75 */
|
||||
EXTERN mp_err TclBN_mp_tc_xor(const mp_int *a, const mp_int *b,
|
||||
mp_int *c);
|
||||
/* 76 */
|
||||
EXTERN mp_err TclBN_mp_signed_rsh(const mp_int *a, int b,
|
||||
mp_int *c);
|
||||
/* Slot 77 is reserved */
|
||||
/* 78 */
|
||||
EXTERN int TclBN_mp_to_ubin(const mp_int *a, unsigned char *buf,
|
||||
size_t maxlen, size_t *written);
|
||||
/* Slot 79 is reserved */
|
||||
/* 80 */
|
||||
EXTERN int TclBN_mp_to_radix(const mp_int *a, char *str,
|
||||
size_t maxlen, size_t *written, int radix);
|
||||
|
||||
typedef struct TclTomMathStubs {
|
||||
int magic;
|
||||
void *hooks;
|
||||
|
||||
int (*tclBN_epoch) (void); /* 0 */
|
||||
int (*tclBN_revision) (void); /* 1 */
|
||||
mp_err (*tclBN_mp_add) (const mp_int *a, const mp_int *b, mp_int *c); /* 2 */
|
||||
mp_err (*tclBN_mp_add_d) (const mp_int *a, mp_digit b, mp_int *c); /* 3 */
|
||||
mp_err (*tclBN_mp_and) (const mp_int *a, const mp_int *b, mp_int *c); /* 4 */
|
||||
void (*tclBN_mp_clamp) (mp_int *a); /* 5 */
|
||||
void (*tclBN_mp_clear) (mp_int *a); /* 6 */
|
||||
void (*tclBN_mp_clear_multi) (mp_int *a, ...); /* 7 */
|
||||
mp_ord (*tclBN_mp_cmp) (const mp_int *a, const mp_int *b); /* 8 */
|
||||
mp_ord (*tclBN_mp_cmp_d) (const mp_int *a, mp_digit b); /* 9 */
|
||||
mp_ord (*tclBN_mp_cmp_mag) (const mp_int *a, const mp_int *b); /* 10 */
|
||||
mp_err (*tclBN_mp_copy) (const mp_int *a, mp_int *b); /* 11 */
|
||||
int (*tclBN_mp_count_bits) (const mp_int *a); /* 12 */
|
||||
mp_err (*tclBN_mp_div) (const mp_int *a, const mp_int *b, mp_int *q, mp_int *r); /* 13 */
|
||||
mp_err (*tclBN_mp_div_d) (const mp_int *a, mp_digit b, mp_int *q, mp_digit *r); /* 14 */
|
||||
mp_err (*tclBN_mp_div_2) (const mp_int *a, mp_int *q); /* 15 */
|
||||
mp_err (*tclBN_mp_div_2d) (const mp_int *a, int b, mp_int *q, mp_int *r); /* 16 */
|
||||
mp_err (*tclBN_mp_div_3) (const mp_int *a, mp_int *q, mp_digit *r); /* 17 */
|
||||
void (*tclBN_mp_exch) (mp_int *a, mp_int *b); /* 18 */
|
||||
mp_err (*tclBN_mp_expt_d) (const mp_int *a, unsigned int b, mp_int *c); /* 19 */
|
||||
mp_err (*tclBN_mp_grow) (mp_int *a, int size); /* 20 */
|
||||
mp_err (*tclBN_mp_init) (mp_int *a); /* 21 */
|
||||
mp_err (*tclBN_mp_init_copy) (mp_int *a, const mp_int *b); /* 22 */
|
||||
mp_err (*tclBN_mp_init_multi) (mp_int *a, ...); /* 23 */
|
||||
mp_err (*tclBN_mp_init_set) (mp_int *a, mp_digit b); /* 24 */
|
||||
mp_err (*tclBN_mp_init_size) (mp_int *a, int size); /* 25 */
|
||||
mp_err (*tclBN_mp_lshd) (mp_int *a, int shift); /* 26 */
|
||||
mp_err (*tclBN_mp_mod) (const mp_int *a, const mp_int *b, mp_int *r); /* 27 */
|
||||
mp_err (*tclBN_mp_mod_2d) (const mp_int *a, int b, mp_int *r); /* 28 */
|
||||
mp_err (*tclBN_mp_mul) (const mp_int *a, const mp_int *b, mp_int *p); /* 29 */
|
||||
mp_err (*tclBN_mp_mul_d) (const mp_int *a, mp_digit b, mp_int *p); /* 30 */
|
||||
mp_err (*tclBN_mp_mul_2) (const mp_int *a, mp_int *p); /* 31 */
|
||||
mp_err (*tclBN_mp_mul_2d) (const mp_int *a, int d, mp_int *p); /* 32 */
|
||||
mp_err (*tclBN_mp_neg) (const mp_int *a, mp_int *b); /* 33 */
|
||||
mp_err (*tclBN_mp_or) (const mp_int *a, const mp_int *b, mp_int *c); /* 34 */
|
||||
mp_err (*tclBN_mp_radix_size) (const mp_int *a, int radix, int *size); /* 35 */
|
||||
mp_err (*tclBN_mp_read_radix) (mp_int *a, const char *str, int radix); /* 36 */
|
||||
void (*tclBN_mp_rshd) (mp_int *a, int shift); /* 37 */
|
||||
mp_err (*tclBN_mp_shrink) (mp_int *a); /* 38 */
|
||||
void (*tclBN_mp_set) (mp_int *a, mp_digit b); /* 39 */
|
||||
mp_err (*tclBN_mp_sqr) (const mp_int *a, mp_int *b); /* 40 */
|
||||
mp_err (*tclBN_mp_sqrt) (const mp_int *a, mp_int *b); /* 41 */
|
||||
mp_err (*tclBN_mp_sub) (const mp_int *a, const mp_int *b, mp_int *c); /* 42 */
|
||||
mp_err (*tclBN_mp_sub_d) (const mp_int *a, mp_digit b, mp_int *c); /* 43 */
|
||||
mp_err (*tclBN_mp_to_unsigned_bin) (const mp_int *a, unsigned char *b); /* 44 */
|
||||
mp_err (*tclBN_mp_to_unsigned_bin_n) (const mp_int *a, unsigned char *b, unsigned long *outlen); /* 45 */
|
||||
mp_err (*tclBN_mp_toradix_n) (const mp_int *a, char *str, int radix, int maxlen); /* 46 */
|
||||
size_t (*tclBN_mp_unsigned_bin_size) (const mp_int *a); /* 47 */
|
||||
mp_err (*tclBN_mp_xor) (const mp_int *a, const mp_int *b, mp_int *c); /* 48 */
|
||||
void (*tclBN_mp_zero) (mp_int *a); /* 49 */
|
||||
void (*tclBN_reverse) (unsigned char *s, int len); /* 50 */
|
||||
mp_err (*tclBN_fast_s_mp_mul_digs) (const mp_int *a, const mp_int *b, mp_int *c, int digs); /* 51 */
|
||||
mp_err (*tclBN_fast_s_mp_sqr) (const mp_int *a, mp_int *b); /* 52 */
|
||||
mp_err (*tclBN_mp_karatsuba_mul) (const mp_int *a, const mp_int *b, mp_int *c); /* 53 */
|
||||
mp_err (*tclBN_mp_karatsuba_sqr) (const mp_int *a, mp_int *b); /* 54 */
|
||||
mp_err (*tclBN_mp_toom_mul) (const mp_int *a, const mp_int *b, mp_int *c); /* 55 */
|
||||
mp_err (*tclBN_mp_toom_sqr) (const mp_int *a, mp_int *b); /* 56 */
|
||||
mp_err (*tclBN_s_mp_add) (const mp_int *a, const mp_int *b, mp_int *c); /* 57 */
|
||||
mp_err (*tclBN_s_mp_mul_digs) (const mp_int *a, const mp_int *b, mp_int *c, int digs); /* 58 */
|
||||
mp_err (*tclBN_s_mp_sqr) (const mp_int *a, mp_int *b); /* 59 */
|
||||
mp_err (*tclBN_s_mp_sub) (const mp_int *a, const mp_int *b, mp_int *c); /* 60 */
|
||||
mp_err (*tclBN_mp_init_set_int) (mp_int *a, unsigned long i); /* 61 */
|
||||
mp_err (*tclBN_mp_set_int) (mp_int *a, unsigned long i); /* 62 */
|
||||
int (*tclBN_mp_cnt_lsb) (const mp_int *a); /* 63 */
|
||||
int (*tclBNInitBignumFromLong) (mp_int *bignum, long initVal); /* 64 */
|
||||
int (*tclBNInitBignumFromWideInt) (mp_int *bignum, Tcl_WideInt initVal); /* 65 */
|
||||
int (*tclBNInitBignumFromWideUInt) (mp_int *bignum, Tcl_WideUInt initVal); /* 66 */
|
||||
mp_err (*tclBN_mp_expt_d_ex) (const mp_int *a, mp_digit b, mp_int *c, int fast); /* 67 */
|
||||
void (*tclBN_mp_set_ull) (mp_int *a, Tcl_WideUInt i); /* 68 */
|
||||
void (*reserved69)(void);
|
||||
void (*reserved70)(void);
|
||||
void (*reserved71)(void);
|
||||
void (*reserved72)(void);
|
||||
mp_err (*tclBN_mp_tc_and) (const mp_int *a, const mp_int *b, mp_int *c); /* 73 */
|
||||
mp_err (*tclBN_mp_tc_or) (const mp_int *a, const mp_int *b, mp_int *c); /* 74 */
|
||||
mp_err (*tclBN_mp_tc_xor) (const mp_int *a, const mp_int *b, mp_int *c); /* 75 */
|
||||
mp_err (*tclBN_mp_signed_rsh) (const mp_int *a, int b, mp_int *c); /* 76 */
|
||||
void (*reserved77)(void);
|
||||
int (*tclBN_mp_to_ubin) (const mp_int *a, unsigned char *buf, size_t maxlen, size_t *written); /* 78 */
|
||||
void (*reserved79)(void);
|
||||
int (*tclBN_mp_to_radix) (const mp_int *a, char *str, size_t maxlen, size_t *written, int radix); /* 80 */
|
||||
} TclTomMathStubs;
|
||||
|
||||
extern const TclTomMathStubs *tclTomMathStubsPtr;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_TCL_STUBS)
|
||||
|
||||
/*
|
||||
* Inline function declarations:
|
||||
*/
|
||||
|
||||
#define TclBN_epoch \
|
||||
(tclTomMathStubsPtr->tclBN_epoch) /* 0 */
|
||||
#define TclBN_revision \
|
||||
(tclTomMathStubsPtr->tclBN_revision) /* 1 */
|
||||
#define TclBN_mp_add \
|
||||
(tclTomMathStubsPtr->tclBN_mp_add) /* 2 */
|
||||
#define TclBN_mp_add_d \
|
||||
(tclTomMathStubsPtr->tclBN_mp_add_d) /* 3 */
|
||||
#define TclBN_mp_and \
|
||||
(tclTomMathStubsPtr->tclBN_mp_and) /* 4 */
|
||||
#define TclBN_mp_clamp \
|
||||
(tclTomMathStubsPtr->tclBN_mp_clamp) /* 5 */
|
||||
#define TclBN_mp_clear \
|
||||
(tclTomMathStubsPtr->tclBN_mp_clear) /* 6 */
|
||||
#define TclBN_mp_clear_multi \
|
||||
(tclTomMathStubsPtr->tclBN_mp_clear_multi) /* 7 */
|
||||
#define TclBN_mp_cmp \
|
||||
(tclTomMathStubsPtr->tclBN_mp_cmp) /* 8 */
|
||||
#define TclBN_mp_cmp_d \
|
||||
(tclTomMathStubsPtr->tclBN_mp_cmp_d) /* 9 */
|
||||
#define TclBN_mp_cmp_mag \
|
||||
(tclTomMathStubsPtr->tclBN_mp_cmp_mag) /* 10 */
|
||||
#define TclBN_mp_copy \
|
||||
(tclTomMathStubsPtr->tclBN_mp_copy) /* 11 */
|
||||
#define TclBN_mp_count_bits \
|
||||
(tclTomMathStubsPtr->tclBN_mp_count_bits) /* 12 */
|
||||
#define TclBN_mp_div \
|
||||
(tclTomMathStubsPtr->tclBN_mp_div) /* 13 */
|
||||
#define TclBN_mp_div_d \
|
||||
(tclTomMathStubsPtr->tclBN_mp_div_d) /* 14 */
|
||||
#define TclBN_mp_div_2 \
|
||||
(tclTomMathStubsPtr->tclBN_mp_div_2) /* 15 */
|
||||
#define TclBN_mp_div_2d \
|
||||
(tclTomMathStubsPtr->tclBN_mp_div_2d) /* 16 */
|
||||
#define TclBN_mp_div_3 \
|
||||
(tclTomMathStubsPtr->tclBN_mp_div_3) /* 17 */
|
||||
#define TclBN_mp_exch \
|
||||
(tclTomMathStubsPtr->tclBN_mp_exch) /* 18 */
|
||||
#define TclBN_mp_expt_d \
|
||||
(tclTomMathStubsPtr->tclBN_mp_expt_d) /* 19 */
|
||||
#define TclBN_mp_grow \
|
||||
(tclTomMathStubsPtr->tclBN_mp_grow) /* 20 */
|
||||
#define TclBN_mp_init \
|
||||
(tclTomMathStubsPtr->tclBN_mp_init) /* 21 */
|
||||
#define TclBN_mp_init_copy \
|
||||
(tclTomMathStubsPtr->tclBN_mp_init_copy) /* 22 */
|
||||
#define TclBN_mp_init_multi \
|
||||
(tclTomMathStubsPtr->tclBN_mp_init_multi) /* 23 */
|
||||
#define TclBN_mp_init_set \
|
||||
(tclTomMathStubsPtr->tclBN_mp_init_set) /* 24 */
|
||||
#define TclBN_mp_init_size \
|
||||
(tclTomMathStubsPtr->tclBN_mp_init_size) /* 25 */
|
||||
#define TclBN_mp_lshd \
|
||||
(tclTomMathStubsPtr->tclBN_mp_lshd) /* 26 */
|
||||
#define TclBN_mp_mod \
|
||||
(tclTomMathStubsPtr->tclBN_mp_mod) /* 27 */
|
||||
#define TclBN_mp_mod_2d \
|
||||
(tclTomMathStubsPtr->tclBN_mp_mod_2d) /* 28 */
|
||||
#define TclBN_mp_mul \
|
||||
(tclTomMathStubsPtr->tclBN_mp_mul) /* 29 */
|
||||
#define TclBN_mp_mul_d \
|
||||
(tclTomMathStubsPtr->tclBN_mp_mul_d) /* 30 */
|
||||
#define TclBN_mp_mul_2 \
|
||||
(tclTomMathStubsPtr->tclBN_mp_mul_2) /* 31 */
|
||||
#define TclBN_mp_mul_2d \
|
||||
(tclTomMathStubsPtr->tclBN_mp_mul_2d) /* 32 */
|
||||
#define TclBN_mp_neg \
|
||||
(tclTomMathStubsPtr->tclBN_mp_neg) /* 33 */
|
||||
#define TclBN_mp_or \
|
||||
(tclTomMathStubsPtr->tclBN_mp_or) /* 34 */
|
||||
#define TclBN_mp_radix_size \
|
||||
(tclTomMathStubsPtr->tclBN_mp_radix_size) /* 35 */
|
||||
#define TclBN_mp_read_radix \
|
||||
(tclTomMathStubsPtr->tclBN_mp_read_radix) /* 36 */
|
||||
#define TclBN_mp_rshd \
|
||||
(tclTomMathStubsPtr->tclBN_mp_rshd) /* 37 */
|
||||
#define TclBN_mp_shrink \
|
||||
(tclTomMathStubsPtr->tclBN_mp_shrink) /* 38 */
|
||||
#define TclBN_mp_set \
|
||||
(tclTomMathStubsPtr->tclBN_mp_set) /* 39 */
|
||||
#define TclBN_mp_sqr \
|
||||
(tclTomMathStubsPtr->tclBN_mp_sqr) /* 40 */
|
||||
#define TclBN_mp_sqrt \
|
||||
(tclTomMathStubsPtr->tclBN_mp_sqrt) /* 41 */
|
||||
#define TclBN_mp_sub \
|
||||
(tclTomMathStubsPtr->tclBN_mp_sub) /* 42 */
|
||||
#define TclBN_mp_sub_d \
|
||||
(tclTomMathStubsPtr->tclBN_mp_sub_d) /* 43 */
|
||||
#define TclBN_mp_to_unsigned_bin \
|
||||
(tclTomMathStubsPtr->tclBN_mp_to_unsigned_bin) /* 44 */
|
||||
#define TclBN_mp_to_unsigned_bin_n \
|
||||
(tclTomMathStubsPtr->tclBN_mp_to_unsigned_bin_n) /* 45 */
|
||||
#define TclBN_mp_toradix_n \
|
||||
(tclTomMathStubsPtr->tclBN_mp_toradix_n) /* 46 */
|
||||
#define TclBN_mp_unsigned_bin_size \
|
||||
(tclTomMathStubsPtr->tclBN_mp_unsigned_bin_size) /* 47 */
|
||||
#define TclBN_mp_xor \
|
||||
(tclTomMathStubsPtr->tclBN_mp_xor) /* 48 */
|
||||
#define TclBN_mp_zero \
|
||||
(tclTomMathStubsPtr->tclBN_mp_zero) /* 49 */
|
||||
#define TclBN_reverse \
|
||||
(tclTomMathStubsPtr->tclBN_reverse) /* 50 */
|
||||
#define TclBN_fast_s_mp_mul_digs \
|
||||
(tclTomMathStubsPtr->tclBN_fast_s_mp_mul_digs) /* 51 */
|
||||
#define TclBN_fast_s_mp_sqr \
|
||||
(tclTomMathStubsPtr->tclBN_fast_s_mp_sqr) /* 52 */
|
||||
#define TclBN_mp_karatsuba_mul \
|
||||
(tclTomMathStubsPtr->tclBN_mp_karatsuba_mul) /* 53 */
|
||||
#define TclBN_mp_karatsuba_sqr \
|
||||
(tclTomMathStubsPtr->tclBN_mp_karatsuba_sqr) /* 54 */
|
||||
#define TclBN_mp_toom_mul \
|
||||
(tclTomMathStubsPtr->tclBN_mp_toom_mul) /* 55 */
|
||||
#define TclBN_mp_toom_sqr \
|
||||
(tclTomMathStubsPtr->tclBN_mp_toom_sqr) /* 56 */
|
||||
#define TclBN_s_mp_add \
|
||||
(tclTomMathStubsPtr->tclBN_s_mp_add) /* 57 */
|
||||
#define TclBN_s_mp_mul_digs \
|
||||
(tclTomMathStubsPtr->tclBN_s_mp_mul_digs) /* 58 */
|
||||
#define TclBN_s_mp_sqr \
|
||||
(tclTomMathStubsPtr->tclBN_s_mp_sqr) /* 59 */
|
||||
#define TclBN_s_mp_sub \
|
||||
(tclTomMathStubsPtr->tclBN_s_mp_sub) /* 60 */
|
||||
#define TclBN_mp_init_set_int \
|
||||
(tclTomMathStubsPtr->tclBN_mp_init_set_int) /* 61 */
|
||||
#define TclBN_mp_set_int \
|
||||
(tclTomMathStubsPtr->tclBN_mp_set_int) /* 62 */
|
||||
#define TclBN_mp_cnt_lsb \
|
||||
(tclTomMathStubsPtr->tclBN_mp_cnt_lsb) /* 63 */
|
||||
#define TclBNInitBignumFromLong \
|
||||
(tclTomMathStubsPtr->tclBNInitBignumFromLong) /* 64 */
|
||||
#define TclBNInitBignumFromWideInt \
|
||||
(tclTomMathStubsPtr->tclBNInitBignumFromWideInt) /* 65 */
|
||||
#define TclBNInitBignumFromWideUInt \
|
||||
(tclTomMathStubsPtr->tclBNInitBignumFromWideUInt) /* 66 */
|
||||
#define TclBN_mp_expt_d_ex \
|
||||
(tclTomMathStubsPtr->tclBN_mp_expt_d_ex) /* 67 */
|
||||
#define TclBN_mp_set_ull \
|
||||
(tclTomMathStubsPtr->tclBN_mp_set_ull) /* 68 */
|
||||
/* Slot 69 is reserved */
|
||||
/* Slot 70 is reserved */
|
||||
/* Slot 71 is reserved */
|
||||
/* Slot 72 is reserved */
|
||||
#define TclBN_mp_tc_and \
|
||||
(tclTomMathStubsPtr->tclBN_mp_tc_and) /* 73 */
|
||||
#define TclBN_mp_tc_or \
|
||||
(tclTomMathStubsPtr->tclBN_mp_tc_or) /* 74 */
|
||||
#define TclBN_mp_tc_xor \
|
||||
(tclTomMathStubsPtr->tclBN_mp_tc_xor) /* 75 */
|
||||
#define TclBN_mp_signed_rsh \
|
||||
(tclTomMathStubsPtr->tclBN_mp_signed_rsh) /* 76 */
|
||||
/* Slot 77 is reserved */
|
||||
#define TclBN_mp_to_ubin \
|
||||
(tclTomMathStubsPtr->tclBN_mp_to_ubin) /* 78 */
|
||||
/* Slot 79 is reserved */
|
||||
#define TclBN_mp_to_radix \
|
||||
(tclTomMathStubsPtr->tclBN_mp_to_radix) /* 80 */
|
||||
|
||||
#endif /* defined(USE_TCL_STUBS) */
|
||||
|
||||
/* !END!: Do not edit above this line. */
|
||||
|
||||
#undef TCL_STORAGE_CLASS
|
||||
#define TCL_STORAGE_CLASS DLLIMPORT
|
||||
|
||||
#ifdef USE_TCL_STUBS
|
||||
#undef TclBNInitBignumFromLong
|
||||
#define TclBNInitBignumFromLong(a,b) \
|
||||
do { \
|
||||
(a)->dp = NULL; \
|
||||
(void)tclTomMathStubsPtr->tclBNInitBignumFromLong((a),(b)); \
|
||||
if ((a)->dp == NULL) { \
|
||||
Tcl_Panic("initialization failure in TclBNInitBignumFromLong"); \
|
||||
} \
|
||||
} while (0)
|
||||
#undef TclBNInitBignumFromWideInt
|
||||
#define TclBNInitBignumFromWideInt(a,b) \
|
||||
do { \
|
||||
(a)->dp = NULL; \
|
||||
(void)tclTomMathStubsPtr->tclBNInitBignumFromWideInt((a),(b)); \
|
||||
if ((a)->dp == NULL) { \
|
||||
Tcl_Panic("initialization failure in TclBNInitBignumFromWideInt"); \
|
||||
} \
|
||||
} while (0)
|
||||
#undef TclBNInitBignumFromWideUInt
|
||||
#define TclBNInitBignumFromWideUInt(a,b) \
|
||||
do { \
|
||||
(a)->dp = NULL; \
|
||||
(void)tclTomMathStubsPtr->tclBNInitBignumFromWideUInt((a),(b)); \
|
||||
if ((a)->dp == NULL) { \
|
||||
Tcl_Panic("initialization failure in TclBNInitBignumFromWideUInt"); \
|
||||
} \
|
||||
} while (0)
|
||||
#define mp_init_i32(a,b) (((a)->dp=NULL,tclTomMathStubsPtr->tclBNInitBignumFromLong((a),(int32_t)(b)),(a)->dp)?MP_OKAY:MP_ERR)
|
||||
#define mp_init_l(a,b) (((a)->dp=NULL,tclTomMathStubsPtr->tclBNInitBignumFromLong((a),(b)),(a)->dp)?MP_OKAY:MP_ERR)
|
||||
#define mp_init_ll(a,b) (((a)->dp=NULL,tclTomMathStubsPtr->tclBNInitBignumFromWideInt((a),(b)),(a)->dp)?MP_OKAY:MP_ERR)
|
||||
#define mp_init_i64(a,b) (((a)->dp=NULL,tclTomMathStubsPtr->tclBNInitBignumFromWideInt((a),(b)),(a)->dp)?MP_OKAY:MP_ERR)
|
||||
#define mp_init_u32(a,b) (((a)->dp=NULL,tclTomMathStubsPtr->tclBNInitBignumFromWideUInt((a),(uint32_t)(b)),(a)->dp)?MP_OKAY:MP_ERR)
|
||||
#define mp_init_ul(a,b) (((a)->dp=NULL,tclTomMathStubsPtr->tclBNInitBignumFromWideUInt((a),(unsigned long)(b)),(a)->dp)?MP_OKAY:MP_ERR)
|
||||
#define mp_init_ull(a,b) (((a)->dp=NULL,tclTomMathStubsPtr->tclBNInitBignumFromWideUInt((a),(b)),(a)->dp)?MP_OKAY:MP_ERR)
|
||||
#define mp_init_u64(a,b) (((a)->dp=NULL,tclTomMathStubsPtr->tclBNInitBignumFromWideUInt((a),(b)),(a)->dp)?MP_OKAY:MP_ERR)
|
||||
#else
|
||||
#define mp_init_i32(a,b) (((a)->dp=NULL,(TclBNInitBignumFromLong)((a),(int32_t)(b)),(a)->dp)?MP_OKAY:MP_ERR)
|
||||
#define mp_init_l(a,b) (((a)->dp=NULL,(TclBNInitBignumFromLong)((a),(b)),(a)->dp)?MP_OKAY:MP_ERR)
|
||||
#define mp_init_ll(a,b) (((a)->dp=NULL,(TclBNInitBignumFromWideInt)((a),(b)),(a)->dp)?MP_OKAY:MP_ERR)
|
||||
#define mp_init_i64(a,b) (((a)->dp=NULL,(TclBNInitBignumFromWideInt)((a),(b)),(a)->dp)?MP_OKAY:MP_ERR)
|
||||
#define mp_init_u32(a,b) (((a)->dp=NULL,(TclBNInitBignumFromWideUInt)((a),(uint32_t)(b)),(a)->dp)?MP_OKAY:MP_ERR)
|
||||
#define mp_init_ul(a,b) (((a)->dp=NULL,(TclBNInitBignumFromWideUInt)((a),(unsigned long)(b)),(a)->dp)?MP_OKAY:MP_ERR)
|
||||
#define mp_init_ull(a,b) (((a)->dp=NULL,(TclBNInitBignumFromWideUInt)((a),(b)),(a)->dp)?MP_OKAY:MP_ERR)
|
||||
#define mp_init_u64(a,b) (((a)->dp=NULL,(TclBNInitBignumFromWideUInt)((a),(b)),(a)->dp)?MP_OKAY:MP_ERR)
|
||||
#endif /* USE_TCL_STUBS */
|
||||
#endif /* _TCLINTDECLS */
|
3
msys2/usr/include/tcl8.6/generic/tclTomMathInt.h
Normal file
3
msys2/usr/include/tcl8.6/generic/tclTomMathInt.h
Normal file
|
@ -0,0 +1,3 @@
|
|||
#include "tclInt.h"
|
||||
#include "tclTomMath.h"
|
||||
#include "tommath_class.h"
|
80
msys2/usr/include/tcl8.6/generic/tdbc.h
Normal file
80
msys2/usr/include/tcl8.6/generic/tdbc.h
Normal file
|
@ -0,0 +1,80 @@
|
|||
/*
|
||||
* tdbc.h --
|
||||
*
|
||||
* Declarations of the public API for Tcl DataBase Connectivity (TDBC)
|
||||
*
|
||||
* Copyright (c) 2006 by Kevin B. Kenny
|
||||
*
|
||||
* See the file "license.terms" for information on usage and redistribution of
|
||||
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
*
|
||||
* RCS: @(#) $Id$
|
||||
*
|
||||
*-----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef TDBC_H_INCLUDED
|
||||
#define TDBC_H_INCLUDED 1
|
||||
|
||||
#include <tcl.h>
|
||||
|
||||
#ifndef TDBCAPI
|
||||
# if defined(BUILD_tdbc)
|
||||
# define TDBCAPI MODULE_SCOPE
|
||||
# else
|
||||
# define TDBCAPI extern
|
||||
# undef USE_TDBC_STUBS
|
||||
# define USE_TDBC_STUBS 1
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if defined(BUILD_tdbc)
|
||||
DLLEXPORT int Tdbc_Init(Tcl_Interp *interp);
|
||||
#elif defined(STATIC_BUILD)
|
||||
extern int Tdbc_Init(Tcl_Interp* interp);
|
||||
#else
|
||||
DLLIMPORT int Tdbc_Init(Tcl_Interp* interp);
|
||||
#endif
|
||||
|
||||
#define Tdbc_InitStubs(interp) TdbcInitializeStubs(interp, \
|
||||
TDBC_VERSION, TDBC_STUBS_EPOCH, TDBC_STUBS_REVISION)
|
||||
#if defined(USE_TDBC_STUBS)
|
||||
TDBCAPI const char* TdbcInitializeStubs(
|
||||
Tcl_Interp* interp, const char* version, int epoch, int revision);
|
||||
#else
|
||||
# define TdbcInitializeStubs(interp, version, epoch, revision) \
|
||||
(Tcl_PkgRequire(interp, "tdbc", version))
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* TDBC_VERSION and TDBC_PATCHLEVEL here must match the ones that
|
||||
* appear near the top of configure.ac.
|
||||
*/
|
||||
|
||||
#define TDBC_VERSION "1.1.1"
|
||||
#define TDBC_PATCHLEVEL "1.1.1"
|
||||
|
||||
/*
|
||||
* Include the Stubs declarations for the public API, generated from
|
||||
* tdbc.decls.
|
||||
*/
|
||||
|
||||
#include "tdbcDecls.h"
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Local Variables:
|
||||
* mode: c
|
||||
* c-basic-offset: 4
|
||||
* fill-column: 78
|
||||
* End:
|
||||
*/
|
70
msys2/usr/include/tcl8.6/generic/tdbcDecls.h
Normal file
70
msys2/usr/include/tcl8.6/generic/tdbcDecls.h
Normal file
|
@ -0,0 +1,70 @@
|
|||
/*
|
||||
* tdbcDecls.h --
|
||||
*
|
||||
* Exported Stubs declarations for Tcl DataBaseConnectivity (TDBC).
|
||||
*
|
||||
* This file is (mostly) generated automatically from tdbc.decls
|
||||
*
|
||||
* Copyright (c) 2008 by Kevin B. Kenny.
|
||||
*
|
||||
* See the file "license.terms" for information on usage and redistribution of
|
||||
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
*
|
||||
* RCS: @(#) $Id$
|
||||
*
|
||||
*/
|
||||
|
||||
/* !BEGIN!: Do not edit below this line. */
|
||||
|
||||
#define TDBC_STUBS_EPOCH 0
|
||||
#define TDBC_STUBS_REVISION 3
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Exported function declarations:
|
||||
*/
|
||||
|
||||
/* 0 */
|
||||
TDBCAPI int Tdbc_Init_ (Tcl_Interp* interp);
|
||||
/* 1 */
|
||||
TDBCAPI Tcl_Obj* Tdbc_TokenizeSql (Tcl_Interp* interp,
|
||||
const char* statement);
|
||||
/* 2 */
|
||||
TDBCAPI const char* Tdbc_MapSqlState (const char* sqlstate);
|
||||
|
||||
typedef struct TdbcStubs {
|
||||
int magic;
|
||||
int epoch;
|
||||
int revision;
|
||||
void *hooks;
|
||||
|
||||
int (*tdbc_Init_) (Tcl_Interp* interp); /* 0 */
|
||||
Tcl_Obj* (*tdbc_TokenizeSql) (Tcl_Interp* interp, const char* statement); /* 1 */
|
||||
const char* (*tdbc_MapSqlState) (const char* sqlstate); /* 2 */
|
||||
} TdbcStubs;
|
||||
|
||||
extern const TdbcStubs *tdbcStubsPtr;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_TDBC_STUBS)
|
||||
|
||||
/*
|
||||
* Inline function declarations:
|
||||
*/
|
||||
|
||||
#define Tdbc_Init_ \
|
||||
(tdbcStubsPtr->tdbc_Init_) /* 0 */
|
||||
#define Tdbc_TokenizeSql \
|
||||
(tdbcStubsPtr->tdbc_TokenizeSql) /* 1 */
|
||||
#define Tdbc_MapSqlState \
|
||||
(tdbcStubsPtr->tdbc_MapSqlState) /* 2 */
|
||||
|
||||
#endif /* defined(USE_TDBC_STUBS) */
|
||||
|
||||
/* !END!: Do not edit above this line. */
|
40
msys2/usr/include/tcl8.6/generic/tdbcInt.h
Normal file
40
msys2/usr/include/tcl8.6/generic/tdbcInt.h
Normal file
|
@ -0,0 +1,40 @@
|
|||
/*
|
||||
* tdbcInt.h --
|
||||
*
|
||||
* Declarations of the public API for Tcl DataBase Connectivity (TDBC)
|
||||
*
|
||||
* Copyright (c) 2006 by Kevin B. Kenny
|
||||
*
|
||||
* See the file "license.terms" for information on usage and redistribution of
|
||||
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
*
|
||||
* RCS: @(#) $Id$
|
||||
*
|
||||
*-----------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef TDBCINT_H_INCLUDED
|
||||
#define TDBCINT_H_INCLUDED 1
|
||||
|
||||
#include "tdbc.h"
|
||||
|
||||
/*
|
||||
* Used to tag functions that are only to be visible within the module being
|
||||
* built and not outside it (where this is supported by the linker).
|
||||
*/
|
||||
|
||||
#ifndef MODULE_SCOPE
|
||||
# ifdef __cplusplus
|
||||
# define MODULE_SCOPE extern "C"
|
||||
# else
|
||||
# define MODULE_SCOPE extern
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Linkage to procedures not exported from this module
|
||||
*/
|
||||
|
||||
MODULE_SCOPE int TdbcTokenizeObjCmd(ClientData clientData, Tcl_Interp* interp,
|
||||
int objc, Tcl_Obj *const objv[]);
|
||||
|
||||
#endif
|
1
msys2/usr/include/tcl8.6/generic/tommath.h
Normal file
1
msys2/usr/include/tcl8.6/generic/tommath.h
Normal file
|
@ -0,0 +1 @@
|
|||
#include "tclTomMathInt.h"
|
736
msys2/usr/include/tcl8.6/unix/tclUnixPort.h
Normal file
736
msys2/usr/include/tcl8.6/unix/tclUnixPort.h
Normal file
|
@ -0,0 +1,736 @@
|
|||
/*
|
||||
* tclUnixPort.h --
|
||||
*
|
||||
* This header file handles porting issues that occur because of
|
||||
* differences between systems. It reads in UNIX-related header files and
|
||||
* sets up UNIX-related macros for Tcl's UNIX core. It should be the only
|
||||
* file that contains #ifdefs to handle different flavors of UNIX. This
|
||||
* file sets up the union of all UNIX-related things needed by any of the
|
||||
* Tcl core files. This file depends on configuration #defines such as
|
||||
* NO_DIRENT_H that are set up by the "configure" script.
|
||||
*
|
||||
* Much of the material in this file was originally contributed by Karl
|
||||
* Lehenbauer, Mark Diekhans and Peter da Silva.
|
||||
*
|
||||
* Copyright (c) 1991-1994 The Regents of the University of California.
|
||||
* Copyright (c) 1994-1997 Sun Microsystems, Inc.
|
||||
*
|
||||
* See the file "license.terms" for information on usage and redistribution of
|
||||
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
*/
|
||||
|
||||
#ifndef _TCLUNIXPORT
|
||||
#define _TCLUNIXPORT
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------------------
|
||||
* The following sets of #includes and #ifdefs are required to get Tcl to
|
||||
* compile under the various flavors of unix.
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#ifdef HAVE_NET_ERRNO_H
|
||||
# include <net/errno.h>
|
||||
#endif
|
||||
#include <pwd.h>
|
||||
#include <signal.h>
|
||||
#ifdef HAVE_SYS_PARAM_H
|
||||
# include <sys/param.h>
|
||||
#endif
|
||||
#include <sys/types.h>
|
||||
#ifdef USE_DIRENT2_H
|
||||
# include "../compat/dirent2.h"
|
||||
#else
|
||||
#ifdef NO_DIRENT_H
|
||||
# include "../compat/dirent.h"
|
||||
#else
|
||||
# include <dirent.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------------------
|
||||
* Parameterize for 64-bit filesystem support.
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifdef HAVE_STRUCT_DIRENT64
|
||||
typedef struct dirent64 Tcl_DirEntry;
|
||||
# define TclOSreaddir readdir64
|
||||
#else
|
||||
typedef struct dirent Tcl_DirEntry;
|
||||
# define TclOSreaddir readdir
|
||||
#endif
|
||||
#ifdef HAVE_DIR64
|
||||
typedef DIR64 TclDIR;
|
||||
# define TclOSopendir opendir64
|
||||
# define TclOSrewinddir rewinddir64
|
||||
# define TclOSclosedir closedir64
|
||||
#else
|
||||
typedef DIR TclDIR;
|
||||
# define TclOSopendir opendir
|
||||
# define TclOSrewinddir rewinddir
|
||||
# define TclOSclosedir closedir
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_TYPE_OFF64_T
|
||||
typedef off64_t Tcl_SeekOffset;
|
||||
# define TclOSseek lseek64
|
||||
# define TclOSopen open64
|
||||
#else
|
||||
typedef off_t Tcl_SeekOffset;
|
||||
# define TclOSseek lseek
|
||||
# define TclOSopen open
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
|
||||
/* Make some symbols available without including <windows.h> */
|
||||
# define DWORD unsigned int
|
||||
# define CP_UTF8 65001
|
||||
# define GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS 0x00000004
|
||||
# define HANDLE void *
|
||||
# define HINSTANCE void *
|
||||
# define SOCKET unsigned int
|
||||
# define WSAEWOULDBLOCK 10035
|
||||
typedef unsigned short WCHAR;
|
||||
__declspec(dllimport) extern __stdcall int GetModuleHandleExW(unsigned int, const char *, void *);
|
||||
__declspec(dllimport) extern __stdcall int GetModuleFileNameW(void *, const char *, int);
|
||||
__declspec(dllimport) extern __stdcall int WideCharToMultiByte(int, int, const void *, int,
|
||||
char *, int, const char *, void *);
|
||||
__declspec(dllimport) extern __stdcall int MultiByteToWideChar(int, int, const char *, int,
|
||||
WCHAR *, int);
|
||||
__declspec(dllimport) extern __stdcall void OutputDebugStringW(const WCHAR *);
|
||||
__declspec(dllimport) extern __stdcall int IsDebuggerPresent();
|
||||
__declspec(dllimport) extern __stdcall int GetLastError();
|
||||
__declspec(dllimport) extern __stdcall int GetFileAttributesW(const WCHAR *);
|
||||
__declspec(dllimport) extern __stdcall int SetFileAttributesW(const WCHAR *, int);
|
||||
|
||||
__declspec(dllimport) extern int cygwin_conv_path(int, const void *, void *, int);
|
||||
/* On Cygwin, the environment is imported from the Cygwin DLL. */
|
||||
#ifndef __x86_64__
|
||||
# define environ __cygwin_environ
|
||||
extern char **__cygwin_environ;
|
||||
#endif
|
||||
# define timezone _timezone
|
||||
extern int TclOSstat(const char *name, void *statBuf);
|
||||
extern int TclOSlstat(const char *name, void *statBuf);
|
||||
#elif defined(HAVE_STRUCT_STAT64) && !defined(__APPLE__)
|
||||
# define TclOSstat stat64
|
||||
# define TclOSlstat lstat64
|
||||
#else
|
||||
# define TclOSstat stat
|
||||
# define TclOSlstat lstat
|
||||
#endif
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------------------
|
||||
* Miscellaneous includes that might be missing.
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#include <sys/file.h>
|
||||
#ifdef HAVE_SYS_SELECT_H
|
||||
# include <sys/select.h>
|
||||
#endif
|
||||
#include <sys/stat.h>
|
||||
#ifdef TIME_WITH_SYS_TIME
|
||||
# include <sys/time.h>
|
||||
# include <time.h>
|
||||
#else
|
||||
#ifdef HAVE_SYS_TIME_H
|
||||
# include <sys/time.h>
|
||||
#else
|
||||
# include <time.h>
|
||||
#endif
|
||||
#endif
|
||||
#ifndef NO_SYS_WAIT_H
|
||||
# include <sys/wait.h>
|
||||
#endif
|
||||
#ifdef HAVE_INTTYPES_H
|
||||
# include <inttypes.h>
|
||||
#endif
|
||||
#include <limits.h>
|
||||
#ifdef HAVE_STDINT_H
|
||||
# include <stdint.h>
|
||||
#endif
|
||||
#ifdef HAVE_UNISTD_H
|
||||
# include <unistd.h>
|
||||
#else
|
||||
# include "../compat/unistd.h"
|
||||
#endif
|
||||
|
||||
extern int TclUnixSetBlockingMode(int fd, int mode);
|
||||
|
||||
#include <utime.h>
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------------------
|
||||
* Socket support stuff: This likely needs more work to parameterize for each
|
||||
* system.
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#include <sys/socket.h> /* struct sockaddr, SOCK_STREAM, ... */
|
||||
#ifndef NO_UNAME
|
||||
# include <sys/utsname.h> /* uname system call. */
|
||||
#endif
|
||||
#include <netinet/in.h> /* struct in_addr, struct sockaddr_in */
|
||||
#include <arpa/inet.h> /* inet_ntoa() */
|
||||
#include <netdb.h> /* getaddrinfo() */
|
||||
#ifdef NEED_FAKE_RFC2553
|
||||
# include "../compat/fake-rfc2553.h"
|
||||
#endif
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------------------
|
||||
* Some platforms (e.g. SunOS) don't define FLT_MAX and FLT_MIN, so we look
|
||||
* for an alternative definition. If no other alternative is available we use
|
||||
* a reasonable guess.
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef NO_FLOAT_H
|
||||
# include <float.h>
|
||||
#else
|
||||
#ifndef NO_VALUES_H
|
||||
# include <values.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef FLT_MAX
|
||||
# ifdef MAXFLOAT
|
||||
# define FLT_MAX MAXFLOAT
|
||||
# else
|
||||
# define FLT_MAX 3.402823466E+38F
|
||||
# endif
|
||||
#endif
|
||||
#ifndef FLT_MIN
|
||||
# ifdef MINFLOAT
|
||||
# define FLT_MIN MINFLOAT
|
||||
# else
|
||||
# define FLT_MIN 1.175494351E-38F
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------------------
|
||||
* NeXT doesn't define O_NONBLOCK, so #define it here if necessary.
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef O_NONBLOCK
|
||||
# define O_NONBLOCK 0x80
|
||||
#endif
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------------------
|
||||
* The type of the status returned by wait varies from UNIX system to UNIX
|
||||
* system. The macro below defines it:
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifdef _AIX
|
||||
# define WAIT_STATUS_TYPE pid_t
|
||||
#else
|
||||
#ifndef NO_UNION_WAIT
|
||||
# define WAIT_STATUS_TYPE union wait
|
||||
#else
|
||||
# define WAIT_STATUS_TYPE int
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------------------
|
||||
* Supply definitions for macros to query wait status, if not already defined
|
||||
* in header files above.
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef WIFEXITED
|
||||
# define WIFEXITED(stat) (((*((int *) &(stat))) & 0xff) == 0)
|
||||
#endif
|
||||
|
||||
#ifndef WEXITSTATUS
|
||||
# define WEXITSTATUS(stat) (((*((int *) &(stat))) >> 8) & 0xff)
|
||||
#endif
|
||||
|
||||
#ifndef WIFSIGNALED
|
||||
# define WIFSIGNALED(stat) \
|
||||
(((*((int *) &(stat)))) && ((*((int *) &(stat))) \
|
||||
== ((*((int *) &(stat))) & 0x00ff)))
|
||||
#endif
|
||||
|
||||
#ifndef WTERMSIG
|
||||
# define WTERMSIG(stat) ((*((int *) &(stat))) & 0x7f)
|
||||
#endif
|
||||
|
||||
#ifndef WIFSTOPPED
|
||||
# define WIFSTOPPED(stat) (((*((int *) &(stat))) & 0xff) == 0177)
|
||||
#endif
|
||||
|
||||
#ifndef WSTOPSIG
|
||||
# define WSTOPSIG(stat) (((*((int *) &(stat))) >> 8) & 0xff)
|
||||
#endif
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------------------
|
||||
* Define constants for waitpid() system call if they aren't defined by a
|
||||
* system header file.
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef WNOHANG
|
||||
# define WNOHANG 1
|
||||
#endif
|
||||
#ifndef WUNTRACED
|
||||
# define WUNTRACED 2
|
||||
#endif
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------------------
|
||||
* Supply macros for seek offsets, if they're not already provided by an
|
||||
* include file.
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef SEEK_SET
|
||||
# define SEEK_SET 0
|
||||
#endif
|
||||
#ifndef SEEK_CUR
|
||||
# define SEEK_CUR 1
|
||||
#endif
|
||||
#ifndef SEEK_END
|
||||
# define SEEK_END 2
|
||||
#endif
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------------------
|
||||
* The stuff below is needed by the "time" command. If this system has no
|
||||
* gettimeofday call, then must use times() instead.
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifdef NO_GETTOD
|
||||
# include <sys/times.h>
|
||||
#else
|
||||
# ifdef HAVE_BSDGETTIMEOFDAY
|
||||
# define gettimeofday BSDgettimeofday
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef GETTOD_NOT_DECLARED
|
||||
extern int gettimeofday(struct timeval *tp,
|
||||
struct timezone *tzp);
|
||||
#endif
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------------------
|
||||
* Define access mode constants if they aren't already defined.
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef F_OK
|
||||
# define F_OK 00
|
||||
#endif
|
||||
#ifndef X_OK
|
||||
# define X_OK 01
|
||||
#endif
|
||||
#ifndef W_OK
|
||||
# define W_OK 02
|
||||
#endif
|
||||
#ifndef R_OK
|
||||
# define R_OK 04
|
||||
#endif
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------------------
|
||||
* Define FD_CLOEEXEC (the close-on-exec flag bit) if it isn't already
|
||||
* defined.
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef FD_CLOEXEC
|
||||
# define FD_CLOEXEC 1
|
||||
#endif
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------------------
|
||||
* On systems without symbolic links (i.e. S_IFLNK isn't defined) define
|
||||
* "lstat" to use "stat" instead.
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef S_IFLNK
|
||||
# undef TclOSlstat
|
||||
# define lstat stat
|
||||
# define lstat64 stat64
|
||||
# define TclOSlstat TclOSstat
|
||||
#endif
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------------------
|
||||
* Define macros to query file type bits, if they're not already defined.
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef S_ISREG
|
||||
# ifdef S_IFREG
|
||||
# define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
|
||||
# else
|
||||
# define S_ISREG(m) 0
|
||||
# endif
|
||||
#endif /* !S_ISREG */
|
||||
#ifndef S_ISDIR
|
||||
# ifdef S_IFDIR
|
||||
# define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
|
||||
# else
|
||||
# define S_ISDIR(m) 0
|
||||
# endif
|
||||
#endif /* !S_ISDIR */
|
||||
#ifndef S_ISCHR
|
||||
# ifdef S_IFCHR
|
||||
# define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
|
||||
# else
|
||||
# define S_ISCHR(m) 0
|
||||
# endif
|
||||
#endif /* !S_ISCHR */
|
||||
|
||||
#ifndef S_ISBLK
|
||||
# ifdef S_IFBLK
|
||||
# define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
|
||||
# else
|
||||
# define S_ISBLK(m) 0
|
||||
# endif
|
||||
#endif /* !S_ISBLK */
|
||||
|
||||
#ifndef S_ISFIFO
|
||||
# ifdef S_IFIFO
|
||||
# define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
|
||||
# else
|
||||
# define S_ISFIFO(m) 0
|
||||
# endif
|
||||
#endif /* !S_ISFIFO */
|
||||
|
||||
#ifndef S_ISLNK
|
||||
# ifdef S_IFLNK
|
||||
# define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
|
||||
# else
|
||||
# define S_ISLNK(m) 0
|
||||
# endif
|
||||
#endif /* !S_ISLNK */
|
||||
|
||||
#ifndef S_ISSOCK
|
||||
# ifdef S_IFSOCK
|
||||
# define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)
|
||||
# else
|
||||
# define S_ISSOCK(m) 0
|
||||
# endif
|
||||
#endif /* !S_ISSOCK */
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------------------
|
||||
* Make sure that MAXPATHLEN and MAXNAMLEN are defined.
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef MAXPATHLEN
|
||||
# ifdef PATH_MAX
|
||||
# define MAXPATHLEN PATH_MAX
|
||||
# else
|
||||
# define MAXPATHLEN 2048
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef MAXNAMLEN
|
||||
# ifdef NAME_MAX
|
||||
# define MAXNAMLEN NAME_MAX
|
||||
# else
|
||||
# define MAXNAMLEN 255
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------------------
|
||||
* The following macro defines the type of the mask arguments to select:
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef NO_FD_SET
|
||||
# define SELECT_MASK fd_set
|
||||
#else /* NO_FD_SET */
|
||||
# ifndef _AIX
|
||||
typedef long fd_mask;
|
||||
# endif /* !AIX */
|
||||
# if defined(_IBMR2)
|
||||
# define SELECT_MASK void
|
||||
# else /* !defined(_IBMR2) */
|
||||
# define SELECT_MASK int
|
||||
# endif /* defined(_IBMR2) */
|
||||
#endif /* !NO_FD_SET */
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------------------
|
||||
* Define "NBBY" (number of bits per byte) if it's not already defined.
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef NBBY
|
||||
# define NBBY 8
|
||||
#endif
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------------------
|
||||
* The following macro defines the number of fd_masks in an fd_set:
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef FD_SETSIZE
|
||||
# ifdef OPEN_MAX
|
||||
# define FD_SETSIZE OPEN_MAX
|
||||
# else
|
||||
# define FD_SETSIZE 256
|
||||
# endif
|
||||
#endif /* FD_SETSIZE */
|
||||
|
||||
#ifndef howmany
|
||||
# define howmany(x, y) (((x)+((y)-1))/(y))
|
||||
#endif /* !defined(howmany) */
|
||||
|
||||
#ifndef NFDBITS
|
||||
# define NFDBITS NBBY*sizeof(fd_mask)
|
||||
#endif /* NFDBITS */
|
||||
|
||||
#define MASK_SIZE howmany(FD_SETSIZE, NFDBITS)
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------------------
|
||||
* Not all systems declare the errno variable in errno.h. so this file does it
|
||||
* explicitly. The list of system error messages also isn't generally declared
|
||||
* in a header file anywhere.
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifdef NO_ERRNO
|
||||
extern int errno;
|
||||
#endif /* NO_ERRNO */
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------------------
|
||||
* Not all systems declare all the errors that Tcl uses! Provide some
|
||||
* work-arounds...
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef EOVERFLOW
|
||||
# ifdef EFBIG
|
||||
# define EOVERFLOW EFBIG
|
||||
# else /* !EFBIG */
|
||||
# define EOVERFLOW EINVAL
|
||||
# endif /* EFBIG */
|
||||
#endif /* EOVERFLOW */
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------------------
|
||||
* Variables provided by the C library:
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#if defined(__APPLE__) && defined(__DYNAMIC__)
|
||||
# include <crt_externs.h>
|
||||
# define environ (*_NSGetEnviron())
|
||||
# define USE_PUTENV 1
|
||||
#else
|
||||
# if defined(_sgi) || defined(__sgi)
|
||||
# define environ _environ
|
||||
# endif
|
||||
extern char ** environ;
|
||||
#endif
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------------------
|
||||
* Darwin specifc configure overrides.
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifdef __APPLE__
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------------------
|
||||
* Support for fat compiles: configure runs only once for multiple architectures
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
# if defined(__LP64__) && defined (NO_COREFOUNDATION_64)
|
||||
# undef HAVE_COREFOUNDATION
|
||||
# endif /* __LP64__ && NO_COREFOUNDATION_64 */
|
||||
# include <sys/cdefs.h>
|
||||
# ifdef __DARWIN_UNIX03
|
||||
# if __DARWIN_UNIX03
|
||||
# undef HAVE_PUTENV_THAT_COPIES
|
||||
# else
|
||||
# define HAVE_PUTENV_THAT_COPIES 1
|
||||
# endif
|
||||
# endif /* __DARWIN_UNIX03 */
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------------------
|
||||
* Include AvailabilityMacros.h here (when available) to ensure any symbolic
|
||||
* MAC_OS_X_VERSION_* constants passed on the command line are translated.
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
# ifdef HAVE_AVAILABILITYMACROS_H
|
||||
# include <AvailabilityMacros.h>
|
||||
# endif
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------------------
|
||||
* Support for weak import.
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
# ifdef HAVE_WEAK_IMPORT
|
||||
# if !defined(HAVE_AVAILABILITYMACROS_H) || !defined(MAC_OS_X_VERSION_MIN_REQUIRED)
|
||||
# undef HAVE_WEAK_IMPORT
|
||||
# else
|
||||
# ifndef WEAK_IMPORT_ATTRIBUTE
|
||||
# define WEAK_IMPORT_ATTRIBUTE __attribute__((weak_import))
|
||||
# endif
|
||||
# endif
|
||||
# endif /* HAVE_WEAK_IMPORT */
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------------------
|
||||
* Support for MAC_OS_X_VERSION_MAX_ALLOWED define from AvailabilityMacros.h:
|
||||
* only use API available in the indicated OS version or earlier.
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
# ifdef MAC_OS_X_VERSION_MAX_ALLOWED
|
||||
# if MAC_OS_X_VERSION_MAX_ALLOWED < 1050 && defined(__LP64__)
|
||||
# undef HAVE_COREFOUNDATION
|
||||
# endif
|
||||
# if MAC_OS_X_VERSION_MAX_ALLOWED < 1040
|
||||
# undef HAVE_OSSPINLOCKLOCK
|
||||
# undef HAVE_PTHREAD_ATFORK
|
||||
# undef HAVE_COPYFILE
|
||||
# endif
|
||||
# if MAC_OS_X_VERSION_MAX_ALLOWED < 1030
|
||||
# ifdef TCL_THREADS
|
||||
/* prior to 10.3, realpath is not threadsafe, c.f. bug 711232 */
|
||||
# define NO_REALPATH 1
|
||||
# endif
|
||||
# undef HAVE_LANGINFO
|
||||
# endif
|
||||
# endif /* MAC_OS_X_VERSION_MAX_ALLOWED */
|
||||
# if defined(HAVE_COREFOUNDATION) && defined(__LP64__) && \
|
||||
defined(HAVE_WEAK_IMPORT) && MAC_OS_X_VERSION_MIN_REQUIRED < 1050
|
||||
# warning "Weak import of 64-bit CoreFoundation is not supported, will not run on Mac OS X < 10.5."
|
||||
# endif
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------------------
|
||||
* At present, using vfork() instead of fork() causes execve() to fail
|
||||
* intermittently on Darwin x86_64. rdar://4685553
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
# if defined(__x86_64__) && !defined(FIXED_RDAR_4685553)
|
||||
# undef USE_VFORK
|
||||
# endif /* __x86_64__ */
|
||||
/* Workaround problems with vfork() when building with llvm-gcc-4.2 */
|
||||
# if defined (__llvm__) && \
|
||||
(__GNUC__ > 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ > 2 || \
|
||||
(__GNUC_MINOR__ == 2 && __GNUC_PATCHLEVEL__ > 0))))
|
||||
# undef USE_VFORK
|
||||
# endif /* __llvm__ */
|
||||
#endif /* __APPLE__ */
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------------------
|
||||
* The following macros and declarations represent the interface between
|
||||
* generic and unix-specific parts of Tcl. Some of the macros may override
|
||||
* functions declared in tclInt.h.
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/*
|
||||
* The default platform eol translation on Unix is TCL_TRANSLATE_LF.
|
||||
*/
|
||||
|
||||
#ifdef DJGPP
|
||||
#define TCL_PLATFORM_TRANSLATION TCL_TRANSLATE_CRLF
|
||||
typedef int socklen_t;
|
||||
#else
|
||||
#define TCL_PLATFORM_TRANSLATION TCL_TRANSLATE_LF
|
||||
#endif
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------------------
|
||||
* The following macros have trivial definitions, allowing generic code to
|
||||
* address platform-specific issues.
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#define TclpReleaseFile(file) /* Nothing. */
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------------------
|
||||
* The following defines wrap the system memory allocation routines.
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#define TclpSysAlloc(size, isBin) malloc((size_t)(size))
|
||||
#define TclpSysFree(ptr) free((char *)(ptr))
|
||||
#define TclpSysRealloc(ptr, size) realloc((char *)(ptr), (size_t)(size))
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------------------
|
||||
* The following macros and declaration wrap the C runtime library functions.
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#define TclpExit exit
|
||||
|
||||
#ifdef TCL_THREADS
|
||||
# include <pthread.h>
|
||||
#endif /* TCL_THREADS */
|
||||
|
||||
/* FIXME - Hyper-enormous platform assumption! */
|
||||
#ifndef AF_INET6
|
||||
# define AF_INET6 10
|
||||
#endif
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------------------
|
||||
* Set of MT-safe implementations of some known-to-be-MT-unsafe library calls.
|
||||
* Instead of returning pointers to the static storage, those return pointers
|
||||
* to the TSD data.
|
||||
*---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#include <pwd.h>
|
||||
#include <grp.h>
|
||||
|
||||
extern struct passwd * TclpGetPwNam(const char *name);
|
||||
extern struct group * TclpGetGrNam(const char *name);
|
||||
extern struct passwd * TclpGetPwUid(uid_t uid);
|
||||
extern struct group * TclpGetGrGid(gid_t gid);
|
||||
extern struct hostent * TclpGetHostByName(const char *name);
|
||||
extern struct hostent * TclpGetHostByAddr(const char *addr,
|
||||
int length, int type);
|
||||
extern void *TclpMakeTcpClientChannelMode(
|
||||
void *tcpSocket, int mode);
|
||||
|
||||
#endif /* _TCLUNIXPORT */
|
||||
|
||||
/*
|
||||
* Local Variables:
|
||||
* mode: c
|
||||
* c-basic-offset: 4
|
||||
* fill-column: 78
|
||||
* End:
|
||||
*/
|
19
msys2/usr/include/tcl8.6/unix/tclUnixThrd.h
Normal file
19
msys2/usr/include/tcl8.6/unix/tclUnixThrd.h
Normal file
|
@ -0,0 +1,19 @@
|
|||
/*
|
||||
* tclUnixThrd.h --
|
||||
*
|
||||
* This header file defines things for thread support.
|
||||
*
|
||||
* Copyright (c) 1998 Sun Microsystems, Inc.
|
||||
*
|
||||
* See the file "license.terms" for information on usage and redistribution
|
||||
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
*/
|
||||
|
||||
#ifndef _TCLUNIXTHRD
|
||||
#define _TCLUNIXTHRD
|
||||
|
||||
#ifdef TCL_THREADS
|
||||
|
||||
|
||||
#endif /* TCL_THREADS */
|
||||
#endif /* _TCLUNIXTHRD */
|
Loading…
Add table
Add a link
Reference in a new issue