⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tclmacport.h

📁 tcl是工具命令语言
💻 H
字号:
/* * tclMacPort.h -- * *	This header file handles porting issues that occur because of *	differences between the Mac and Unix. It should be the only *	file that contains #ifdefs to handle different flavors of OS. * * 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. * * RCS: @(#) $Id: tclMacPort.h,v 1.17 2003/03/03 20:22:44 das Exp $ */#ifndef _MACPORT#define _MACPORT#ifndef _TCLINT#   include "tclInt.h"#endif/* *--------------------------------------------------------------------------- * The following sets of #includes and #ifdefs are required to get Tcl to * compile on the macintosh. *--------------------------------------------------------------------------- */#include "tclErrno.h"#ifndef EOVERFLOW#   ifdef EFBIG#      define EOVERFLOW	EFBIG	/* The object couldn't fit in the datatype */#   else /* !EFBIG */#      define EOVERFLOW	EINVAL	/* Better than nothing! */#   endif /* EFBIG */#endif /* !EOVERFLOW */#include <float.h>#ifdef THINK_C	/*	 * The Symantic C code has not been tested	 * and probably will not work.	 */#   include <pascal.h>#   include <posix.h>#   include <string.h>#   include <fcntl.h>#   include <pwd.h>#   include <sys/param.h>#   include <sys/types.h>#   include <sys/stat.h>#   include <unistd.h>#elif defined(__MWERKS__)#   include <time.h>#   include <unistd.h>#   include <utime.h>#   include <fcntl.h>#   include <stat.h>#if __MSL__ < 0x6000#   define isatty(arg) 		1/*  * Defines used by access function.  This function is provided * by Mac Tcl as the function TclpAccess. */ #   define F_OK			0	/* test for existence of file */#   define X_OK			0x01	/* test for execute or search permission */#   define W_OK			0x02	/* test for write permission */#   define R_OK			0x04	/* test for read permission */#endif#endif	/* __MWERKS__ */#if defined(S_IFBLK) && !defined(S_ISLNK)#define S_ISLNK(m)	(((m)&(S_IFMT)) == (S_IFLNK))#endif/* * Many signals are not supported on the Mac and are thus not defined in * <signal.h>.  They are defined here so that Tcl will compile with less * modification.  */#ifndef SIGQUIT#define SIGQUIT 300#endif#ifndef SIGPIPE#define SIGPIPE 13#endif#ifndef SIGHUP#define SIGHUP  100#endif/* * waitpid doesn't work on a Mac - the following makes * Tcl compile without errors.  These would normally * be defined in sys/wait.h on UNIX systems. */#define WAIT_STATUS_TYPE 	int#define WNOHANG 		1#define WIFSTOPPED(stat) 	(1)#define WIFSIGNALED(stat) 	(1)#define WIFEXITED(stat) 	(1)#define WIFSTOPSIG(stat) 	(1)#define WIFTERMSIG(stat) 	(1)#define WIFEXITSTATUS(stat) 	(1)#define WEXITSTATUS(stat) 	(1)#define WTERMSIG(status) 	(1)#define WSTOPSIG(status) 	(1)#ifdef BUILD_tcl# undef TCL_STORAGE_CLASS# define TCL_STORAGE_CLASS DLLEXPORT#endif/* * Make sure that MAXPATHLEN is defined. */#ifndef MAXPATHLEN#   ifdef PATH_MAX#       define MAXPATHLEN PATH_MAX#   else#       define MAXPATHLEN 2048#   endif#endif/* * Define "NBBY" (number of bits per byte) if it's not already defined. */#ifndef NBBY#   define NBBY 8#endif/* * These functions always return dummy values on Mac. */#ifndef geteuid#   define geteuid() 1#endif#ifndef getpid#   define getpid() -1#endif/* * Variables provided by the C library. */ extern char **environ;/* *--------------------------------------------------------------------------- * The following macros and declarations represent the interface between  * generic and mac-specific parts of Tcl.  Some of the macros may override  * functions declared in tclInt.h. *--------------------------------------------------------------------------- *//* * The default platform eol translation on Mac is TCL_TRANSLATE_CR: */#define	TCL_PLATFORM_TRANSLATION	TCL_TRANSLATE_CR/* * Declare dynamic loading extension macro. */#define TCL_SHLIB_EXT ".shlb"/* * The following define is defined as a workaround on the mac.  It claims that * struct tm has the timezone string in it, which is not true.  However, * the code that works around this fact does not compile on the Mac, since * it relies on the fact that time.h has a "timezone" variable, which the * Metrowerks time.h does not have... *  * The Mac timezone stuff is implemented via the TclpGetTZName() routine in * tclMacTime.c *  */ #define HAVE_TM_ZONE   /* * If we're using the Metrowerks MSL, we need to convert time_t values from * the mac epoch to the msl epoch (== unix epoch) by adding the offset from * <time.mac.h> to mac time_t values, as MSL is using its epoch for file * access routines such as stat or utime */#ifdef __MSL__#include <time.mac.h>#ifdef _mac_msl_epoch_offset_#define tcl_mac_epoch_offset  _mac_msl_epoch_offset_#define TCL_MAC_USE_MSL_EPOCH  /* flag for TclDate.c */#else#define tcl_mac_epoch_offset 0L#endif#else#define tcl_mac_epoch_offset 0L#endif /* * The following macros have trivial definitions, allowing generic code to  * address platform-specific issues. */ #define TclpGetPid(pid)	    	((unsigned long) (pid))#define TclSetSystemEnv(a,b)#define tzset()char *TclpFindExecutable(const char *argv0);int TclpFindVariable(CONST char *name, int *lengthPtr);#define fopen(path, mode) TclMacFOpenHack(path, mode)#define readlink(fileName, buffer, size) TclMacReadlink(fileName, buffer, size)#ifdef TCL_TEST#define chmod(path, mode) TclMacChmod(path, mode)#endif/* * Prototypes needed for compatability *//* EXTERN int	strncasecmp _ANSI_ARGS_((CONST char *s1,			    CONST char *s2, size_t n)); *//* * These definitions force putenv & company to use the version * supplied with Tcl. */#ifndef putenv#   define unsetenv	TclUnsetEnv#   define putenv	Tcl_PutEnv#   define setenv	TclSetEnvvoid	TclSetEnv(CONST char *name, CONST char *value);/* int	Tcl_PutEnv(CONST char *string); */void	TclUnsetEnv(CONST char *name);#endif/* * Platform specific mutex definition used by memory allocators. * These are all no-ops on the Macintosh, since the threads are * all cooperative. */#ifdef TCL_THREADStypedef int TclpMutex;#define	TclpMutexInit(a)#define	TclpMutexLock(a)#define	TclpMutexUnlock(a)#elsetypedef int TclpMutex;#define	TclpMutexInit(a)#define	TclpMutexLock(a)#define	TclpMutexUnlock(a)#endif /* TCL_THREADS */typedef pascal void (*ExitToShellProcPtr)(void);#include "tclMac.h" // contains #include "tclPlatDecls.h"#include "tclIntPlatDecls.h"# undef TCL_STORAGE_CLASS# define TCL_STORAGE_CLASS DLLIMPORT#endif /* _MACPORT */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -