| /* vi:set ts=8 sts=4 sw=4: |
| * |
| * VIM - Vi IMproved by Bram Moolenaar |
| * |
| * Do ":help uganda" in Vim to read copying and usage conditions. |
| * Do ":help credits" in Vim to see a list of people who contributed. |
| */ |
| |
| /* Before Including the MacOS specific files, |
| * lets set the OPAQUE_TOOLBOX_STRUCTS to 0 so we |
| * can access the internal structures. |
| * (Until fully Carbon compliant) |
| * TODO: Can we remove this? (Dany) |
| */ |
| #if 0 |
| # define OPAQUE_TOOLBOX_STRUCTS 0 |
| #endif |
| |
| /* |
| * Macintosh machine-dependent things. |
| * |
| * Include the Mac header files, unless also compiling with X11 (the header |
| * files have many conflicts). |
| */ |
| #ifndef FEAT_X11 |
| # include <Quickdraw.h> /* Apple calls it QuickDraw.h... */ |
| # include <ToolUtils.h> |
| # include <LowMem.h> |
| # include <Scrap.h> |
| # include <Sound.h> |
| # include <TextUtils.h> |
| # include <Memory.h> |
| # include <OSUtils.h> |
| # include <Files.h> |
| # ifdef FEAT_MBYTE |
| # include <Script.h> |
| # endif |
| #endif |
| |
| /* |
| * Unix interface |
| */ |
| #if defined(__APPLE_CC__) /* for Project Builder and ... */ |
| # include <unistd.h> |
| /* Get stat.h or something similar. Comment: How come some OS get in in vim.h */ |
| # include <sys/stat.h> |
| /* && defined(HAVE_CURSE) */ |
| /* The curses.h from MacOS X provides by default some BACKWARD compatibilty |
| * definition which can cause us problem later on. So we undefine a few of them. */ |
| # include <curses.h> |
| # undef reg |
| # undef ospeed |
| /* OK defined to 0 in MacOS X 10.2 curses! Remove it, we define it to be 1. */ |
| # undef OK |
| #endif |
| #include <signal.h> |
| #include <errno.h> |
| #include <stdio.h> |
| #include <stdlib.h> |
| #include <time.h> |
| #include <dirent.h> |
| |
| /* |
| * MacOS specific #define |
| */ |
| |
| /* This will go away when CMD_KEY fully tested */ |
| #define USE_CMD_KEY |
| /* On MacOS X use the / not the : */ |
| /* TODO: Should file such as ~/.vimrc reside instead in |
| * ~/Library/Vim or ~/Library/Preferences/org.vim.vim/ ? (Dany) |
| */ |
| /* When compiled under MacOS X (including CARBON version) |
| * we use the Unix File path style. Also when UNIX is defined. */ |
| # define USE_UNIXFILENAME |
| |
| |
| /* |
| * Generic Vim #define |
| */ |
| |
| #define FEAT_SOURCE_FFS |
| #define FEAT_SOURCE_FF_MAC |
| |
| #define USE_EXE_NAME /* to find $VIM */ |
| #define CASE_INSENSITIVE_FILENAME /* ignore case when comparing file names */ |
| #define SPACE_IN_FILENAME |
| #define BREAKCHECK_SKIP 32 /* call mch_breakcheck() each time, it's |
| quite fast. Did I forgot to update the |
| comment */ |
| |
| |
| #define USE_FNAME_CASE /* make ":e os_Mac.c" open the file in its |
| original case, as "os_mac.c" */ |
| #define BINARY_FILE_IO |
| #define EOL_DEFAULT EOL_MAC |
| #ifndef MACOS_X_UNIX /* I hope that switching these two lines */ |
| # define USE_CR /* does what I want -- BNF */ |
| # define NO_CONSOLE /* don't include console mode */ |
| #endif |
| #define HAVE_AVAIL_MEM |
| |
| #ifndef HAVE_CONFIG_H |
| /* #define SYNC_DUP_CLOSE sync() a file with dup() and close() */ |
| # define HAVE_STRING_H |
| # define HAVE_STRCSPN |
| # define HAVE_MEMSET |
| # define USE_TMPNAM /* use tmpnam() instead of mktemp() */ |
| # define HAVE_FCNTL_H |
| # define HAVE_QSORT |
| # define HAVE_ST_MODE /* have stat.st_mode */ |
| # define HAVE_MATH_H |
| |
| # if defined(__DATE__) && defined(__TIME__) |
| # define HAVE_DATE_TIME |
| # endif |
| # define HAVE_STRFTIME |
| #endif |
| |
| /* |
| * Names for the EXRC, HELP and temporary files. |
| * Some of these may have been defined in the makefile. |
| */ |
| |
| #ifndef SYS_VIMRC_FILE |
| # define SYS_VIMRC_FILE "$VIM/vimrc" |
| #endif |
| #ifndef SYS_GVIMRC_FILE |
| # define SYS_GVIMRC_FILE "$VIM/gvimrc" |
| #endif |
| #ifndef SYS_MENU_FILE |
| # define SYS_MENU_FILE "$VIMRUNTIME/menu.vim" |
| #endif |
| #ifndef SYS_OPTWIN_FILE |
| # define SYS_OPTWIN_FILE "$VIMRUNTIME/optwin.vim" |
| #endif |
| #ifndef EVIM_FILE |
| # define EVIM_FILE "$VIMRUNTIME/evim.vim" |
| #endif |
| |
| #ifdef FEAT_GUI |
| # ifndef USR_GVIMRC_FILE |
| # define USR_GVIMRC_FILE "~/.gvimrc" |
| # endif |
| # ifndef GVIMRC_FILE |
| # define GVIMRC_FILE "_gvimrc" |
| # endif |
| #endif |
| #ifndef USR_VIMRC_FILE |
| # define USR_VIMRC_FILE "~/.vimrc" |
| #endif |
| |
| #ifndef USR_EXRC_FILE |
| # define USR_EXRC_FILE "~/.exrc" |
| #endif |
| |
| #ifndef VIMRC_FILE |
| # define VIMRC_FILE "_vimrc" |
| #endif |
| |
| #ifndef EXRC_FILE |
| # define EXRC_FILE "_exrc" |
| #endif |
| |
| #ifndef DFLT_HELPFILE |
| # define DFLT_HELPFILE "$VIMRUNTIME/doc/help.txt" |
| #endif |
| |
| #ifndef FILETYPE_FILE |
| # define FILETYPE_FILE "filetype.vim" |
| #endif |
| #ifndef FTPLUGIN_FILE |
| # define FTPLUGIN_FILE "ftplugin.vim" |
| #endif |
| #ifndef INDENT_FILE |
| # define INDENT_FILE "indent.vim" |
| #endif |
| #ifndef FTOFF_FILE |
| # define FTOFF_FILE "ftoff.vim" |
| #endif |
| #ifndef FTPLUGOF_FILE |
| # define FTPLUGOF_FILE "ftplugof.vim" |
| #endif |
| #ifndef INDOFF_FILE |
| # define INDOFF_FILE "indoff.vim" |
| #endif |
| |
| #ifndef SYNTAX_FNAME |
| # define SYNTAX_FNAME "$VIMRUNTIME/syntax/%s.vim" |
| #endif |
| |
| #ifdef FEAT_VIMINFO |
| # ifndef VIMINFO_FILE |
| # define VIMINFO_FILE "~/.viminfo" |
| # endif |
| #endif /* FEAT_VIMINFO */ |
| |
| #ifndef DFLT_BDIR |
| # define DFLT_BDIR "." /* default for 'backupdir' */ |
| #endif |
| |
| #ifndef DFLT_DIR |
| # define DFLT_DIR "." /* default for 'directory' */ |
| #endif |
| |
| #ifndef DFLT_VDIR |
| # define DFLT_VDIR "$VIM/vimfiles/view" /* default for 'viewdir' */ |
| #endif |
| |
| #define DFLT_ERRORFILE "errors.err" |
| |
| #ifndef DFLT_RUNTIMEPATH |
| # define DFLT_RUNTIMEPATH "~/.vim,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,~/.vim/after" |
| #endif |
| |
| /* |
| * Macintosh has plenty of memory, use large buffers |
| */ |
| #define CMDBUFFSIZE 1024 /* size of the command processing buffer */ |
| |
| #if !defined(MACOS_X_UNIX) |
| # define MAXPATHL 256 /* Limited by the Pascal Strings */ |
| # define BASENAMELEN (32-5-1) /* length of base of filename */ |
| #endif |
| |
| #ifndef DFLT_MAXMEM |
| # define DFLT_MAXMEM 512 /* use up to 512 Kbyte for buffer */ |
| #endif |
| |
| #ifndef DFLT_MAXMEMTOT |
| # define DFLT_MAXMEMTOT 2048 /* use up to 2048 Kbyte for Vim */ |
| #endif |
| |
| #define WILDCHAR_LIST "*?[{`$" |
| |
| /**************/ |
| #define mch_rename(src, dst) rename(src, dst) |
| #define mch_remove(x) unlink((char *)(x)) |
| #ifndef mch_getenv |
| # if defined(__MRC__) || defined(__SC__) |
| # define mch_getenv(name) ((char_u *)getenv((char *)(name))) |
| # define mch_setenv(name, val, x) setenv((name), (val)) |
| # elif defined(__APPLE_CC__) |
| # define mch_getenv(name) ((char_u *)getenv((char *)(name))) |
| /*# define mch_setenv(name, val, x) setenv((name), (val)) */ /* Obsoleted by Dany on Oct 30, 2001 */ |
| # define mch_setenv(name, val, x) setenv(name, val, x) |
| # else |
| /* vim_getenv() is in pty.c */ |
| # define USE_VIMPTY_GETENV |
| # define mch_getenv(x) vimpty_getenv(x) |
| # define mch_setenv(name, val, x) setenv(name, val, x) |
| # endif |
| #endif |
| |
| #ifndef HAVE_CONFIG_H |
| # ifdef __APPLE_CC__ |
| /* Assuming compiling for MacOS X */ |
| /* Trying to take advantage of the prebinding */ |
| # define HAVE_TGETENT |
| # define OSPEED_EXTERN |
| # define UP_BC_PC_EXTERN |
| # endif |
| #endif |
| |
| /* Some "prep work" definition to be able to compile the MacOS X |
| * version with os_unix.x instead of os_mac.c. Based on the result |
| * of ./configure for console MacOS X. |
| */ |
| |
| #ifdef MACOS_X_UNIX |
| # define SIGPROTOARG (int) |
| # define SIGDEFARG(s) (s) int s; |
| # define SIGDUMMYARG 0 |
| # undef HAVE_AVAIL_MEM |
| # ifndef HAVE_CONFIG_H |
| # define RETSIGTYPE void |
| # define SIGRETURN return |
| /*# define USE_SYSTEM */ /* Output ship do debugger :(, but ot compile */ |
| # define HAVE_SYS_WAIT_H 1 /* Attempt */ |
| # define HAVE_TERMIOS_H 1 |
| # define SYS_SELECT_WITH_SYS_TIME 1 |
| # define HAVE_SELECT 1 |
| # define HAVE_SYS_SELECT_H 1 |
| # define HAVE_PUTENV |
| # define HAVE_SETENV |
| # define HAVE_RENAME |
| # endif |
| # define mch_chdir(s) chdir(s) |
| #endif |
| |
| #if defined(MACOS_X) && !defined(HAVE_CONFIG_H) |
| # define HAVE_PUTENV |
| #endif |
| |
| /* A Mac constant causing big problem to syntax highlighting */ |
| #define UNKNOWN_CREATOR '\?\?\?\?' |
| |
| /* |
| * for debugging |
| */ |
| #ifdef MACOS_X |
| # ifdef _DEBUG |
| # define TRACE Trace |
| void Trace(char *fmt, ...); |
| # else |
| # define TRACE 1 ? (void)0 : printf |
| # endif |
| #endif |