1/* 2 * tclPlatDecls.h -- 3 * 4 * Declarations of platform specific Tcl APIs. 5 * 6 * Copyright (c) 1998-1999 by Scriptics Corporation. 7 * All rights reserved. 8 * 9 * RCS: @(#) $Id: tclPlatDecls.h,v 1.18.2.5 2004/06/10 17:17:45 andreas_kupries Exp $ 10 */ 11 12#ifndef _TCLPLATDECLS 13#define _TCLPLATDECLS 14 15/* 16 * Pull in the typedef of TCHAR for windows. 17 */ 18#if defined(__CYGWIN__) 19 typedef char TCHAR; 20#elif defined(__WIN32__) && !defined(_TCHAR_DEFINED) 21# include <tchar.h> 22# ifndef _TCHAR_DEFINED 23 /* Borland seems to forget to set this. */ 24 typedef _TCHAR TCHAR; 25# define _TCHAR_DEFINED 26# endif 27# if defined(_MSC_VER) && defined(__STDC__) 28 /* MSVC++ misses this. */ 29 typedef _TCHAR TCHAR; 30# endif 31#endif 32 33/* !BEGIN!: Do not edit below this line. */ 34 35/* 36 * Exported function declarations: 37 */ 38 39#ifdef __WIN32__ 40/* 0 */ 41EXTERN TCHAR * Tcl_WinUtfToTChar _ANSI_ARGS_((CONST char * str, 42 int len, Tcl_DString * dsPtr)); 43/* 1 */ 44EXTERN char * Tcl_WinTCharToUtf _ANSI_ARGS_((CONST TCHAR * str, 45 int len, Tcl_DString * dsPtr)); 46#endif /* __WIN32__ */ 47#ifdef MAC_TCL 48/* 0 */ 49EXTERN void Tcl_MacSetEventProc _ANSI_ARGS_(( 50 Tcl_MacConvertEventPtr procPtr)); 51/* 1 */ 52EXTERN char * Tcl_MacConvertTextResource _ANSI_ARGS_(( 53 Handle resource)); 54/* 2 */ 55EXTERN int Tcl_MacEvalResource _ANSI_ARGS_((Tcl_Interp * interp, 56 CONST char * resourceName, 57 int resourceNumber, CONST char * fileName)); 58/* 3 */ 59EXTERN Handle Tcl_MacFindResource _ANSI_ARGS_((Tcl_Interp * interp, 60 long resourceType, CONST char * resourceName, 61 int resourceNumber, CONST char * resFileRef, 62 int * releaseIt)); 63/* 4 */ 64EXTERN int Tcl_GetOSTypeFromObj _ANSI_ARGS_(( 65 Tcl_Interp * interp, Tcl_Obj * objPtr, 66 OSType * osTypePtr)); 67/* 5 */ 68EXTERN void Tcl_SetOSTypeObj _ANSI_ARGS_((Tcl_Obj * objPtr, 69 OSType osType)); 70/* 6 */ 71EXTERN Tcl_Obj * Tcl_NewOSTypeObj _ANSI_ARGS_((OSType osType)); 72/* 7 */ 73EXTERN int strncasecmp _ANSI_ARGS_((CONST char * s1, 74 CONST char * s2, size_t n)); 75/* 8 */ 76EXTERN int strcasecmp _ANSI_ARGS_((CONST char * s1, 77 CONST char * s2)); 78#endif /* MAC_TCL */ 79#ifdef MAC_OSX_TCL 80/* 0 */ 81EXTERN int Tcl_MacOSXOpenBundleResources _ANSI_ARGS_(( 82 Tcl_Interp * interp, CONST char * bundleName, 83 int hasResourceFile, int maxPathLen, 84 char * libraryPath)); 85/* 1 */ 86EXTERN int Tcl_MacOSXOpenVersionedBundleResources _ANSI_ARGS_(( 87 Tcl_Interp * interp, CONST char * bundleName, 88 CONST char * bundleVersion, 89 int hasResourceFile, int maxPathLen, 90 char * libraryPath)); 91#endif /* MAC_OSX_TCL */ 92 93typedef struct TclPlatStubs { 94 int magic; 95 struct TclPlatStubHooks *hooks; 96 97#ifdef __WIN32__ 98 TCHAR * (*tcl_WinUtfToTChar) _ANSI_ARGS_((CONST char * str, int len, Tcl_DString * dsPtr)); /* 0 */ 99 char * (*tcl_WinTCharToUtf) _ANSI_ARGS_((CONST TCHAR * str, int len, Tcl_DString * dsPtr)); /* 1 */ 100#endif /* __WIN32__ */ 101#ifdef MAC_TCL 102 void (*tcl_MacSetEventProc) _ANSI_ARGS_((Tcl_MacConvertEventPtr procPtr)); /* 0 */ 103 char * (*tcl_MacConvertTextResource) _ANSI_ARGS_((Handle resource)); /* 1 */ 104 int (*tcl_MacEvalResource) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * resourceName, int resourceNumber, CONST char * fileName)); /* 2 */ 105 Handle (*tcl_MacFindResource) _ANSI_ARGS_((Tcl_Interp * interp, long resourceType, CONST char * resourceName, int resourceNumber, CONST char * resFileRef, int * releaseIt)); /* 3 */ 106 int (*tcl_GetOSTypeFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, OSType * osTypePtr)); /* 4 */ 107 void (*tcl_SetOSTypeObj) _ANSI_ARGS_((Tcl_Obj * objPtr, OSType osType)); /* 5 */ 108 Tcl_Obj * (*tcl_NewOSTypeObj) _ANSI_ARGS_((OSType osType)); /* 6 */ 109 int (*strncasecmp) _ANSI_ARGS_((CONST char * s1, CONST char * s2, size_t n)); /* 7 */ 110 int (*strcasecmp) _ANSI_ARGS_((CONST char * s1, CONST char * s2)); /* 8 */ 111#endif /* MAC_TCL */ 112#ifdef MAC_OSX_TCL 113 int (*tcl_MacOSXOpenBundleResources) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * bundleName, int hasResourceFile, int maxPathLen, char * libraryPath)); /* 0 */ 114 int (*tcl_MacOSXOpenVersionedBundleResources) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * bundleName, CONST char * bundleVersion, int hasResourceFile, int maxPathLen, char * libraryPath)); /* 1 */ 115#endif /* MAC_OSX_TCL */ 116} TclPlatStubs; 117 118#ifdef __cplusplus 119extern "C" { 120#endif 121extern TclPlatStubs *tclPlatStubsPtr; 122#ifdef __cplusplus 123} 124#endif 125 126#if defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) 127 128/* 129 * Inline function declarations: 130 */ 131 132#ifdef __WIN32__ 133#ifndef Tcl_WinUtfToTChar 134#define Tcl_WinUtfToTChar \ 135 (tclPlatStubsPtr->tcl_WinUtfToTChar) /* 0 */ 136#endif 137#ifndef Tcl_WinTCharToUtf 138#define Tcl_WinTCharToUtf \ 139 (tclPlatStubsPtr->tcl_WinTCharToUtf) /* 1 */ 140#endif 141#endif /* __WIN32__ */ 142#ifdef MAC_TCL 143#ifndef Tcl_MacSetEventProc 144#define Tcl_MacSetEventProc \ 145 (tclPlatStubsPtr->tcl_MacSetEventProc) /* 0 */ 146#endif 147#ifndef Tcl_MacConvertTextResource 148#define Tcl_MacConvertTextResource \ 149 (tclPlatStubsPtr->tcl_MacConvertTextResource) /* 1 */ 150#endif 151#ifndef Tcl_MacEvalResource 152#define Tcl_MacEvalResource \ 153 (tclPlatStubsPtr->tcl_MacEvalResource) /* 2 */ 154#endif 155#ifndef Tcl_MacFindResource 156#define Tcl_MacFindResource \ 157 (tclPlatStubsPtr->tcl_MacFindResource) /* 3 */ 158#endif 159#ifndef Tcl_GetOSTypeFromObj 160#define Tcl_GetOSTypeFromObj \ 161 (tclPlatStubsPtr->tcl_GetOSTypeFromObj) /* 4 */ 162#endif 163#ifndef Tcl_SetOSTypeObj 164#define Tcl_SetOSTypeObj \ 165 (tclPlatStubsPtr->tcl_SetOSTypeObj) /* 5 */ 166#endif 167#ifndef Tcl_NewOSTypeObj 168#define Tcl_NewOSTypeObj \ 169 (tclPlatStubsPtr->tcl_NewOSTypeObj) /* 6 */ 170#endif 171#ifndef strncasecmp 172#define strncasecmp \ 173 (tclPlatStubsPtr->strncasecmp) /* 7 */ 174#endif 175#ifndef strcasecmp 176#define strcasecmp \ 177 (tclPlatStubsPtr->strcasecmp) /* 8 */ 178#endif 179#endif /* MAC_TCL */ 180#ifdef MAC_OSX_TCL 181#ifndef Tcl_MacOSXOpenBundleResources 182#define Tcl_MacOSXOpenBundleResources \ 183 (tclPlatStubsPtr->tcl_MacOSXOpenBundleResources) /* 0 */ 184#endif 185#ifndef Tcl_MacOSXOpenVersionedBundleResources 186#define Tcl_MacOSXOpenVersionedBundleResources \ 187 (tclPlatStubsPtr->tcl_MacOSXOpenVersionedBundleResources) /* 1 */ 188#endif 189#endif /* MAC_OSX_TCL */ 190 191#endif /* defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) */ 192 193/* !END!: Do not edit above this line. */ 194 195#endif /* _TCLPLATDECLS */ 196 197 198