# HG changeset patch # User vimboss # Date 1172591308 0 # Node ID 17b9587ff6d5beef34d98043ca5f3111e5d29e4d # Parent 21ce954cbdcac9dea2aa826ff40adc2fb2184600 updated for version 7.0-202 diff --git a/src/Makefile b/src/Makefile --- a/src/Makefile +++ b/src/Makefile @@ -201,6 +201,7 @@ #SunOS 4.1.x +X11 -GUI 5.1b (J) Bram Moolenaar #SunOS 4.1.3_U1 (sun4c) gcc +X11 +GUI Athena 5.0w (J) Darren Hiebert #SUPER-UX 6.2 (NEC SX-4) cc +X11R6 Motif,Athena4.6b (P) Lennart Schultz +#Tandem/NSK (c) Matthew Woehlke #Unisys 6035 cc +X11 Motif 5.3 (8) Glauber Ribeiro #ESIX V4.2 cc +X11 6.0 (a) Reinhard Wobst #Mac OS X 10.[23] gcc Carbon 6.2 (x) Bram Moolenaar @@ -251,6 +252,7 @@ # (a) See line with EXTRA_LIBS below. # (b) When using gcc with the Solaris linker, make sure you don't use GNU # strip, otherwise the binary may not run: "Cannot find ELF". +# (c) Add -lfloss to EXTRA_LIBS, see below. # (x) When you get warnings for precompiled header files, run # "sudo fixPrecomps". Also see CONF_OPT_DARWIN below. # }}} @@ -794,6 +796,9 @@ LINT_OPTIONS = -beprxzF ### (a) ESIX V4.2 (Reinhard Wobst) #EXTRA_LIBS = -lnsl -lsocket -lgen -lXIM -lXmu -lXext +### (c) Tandem/NSK (Matthew Woehlke) +#EXTRA_LIBS = -lfloss + ### If you want to use ncurses library instead of the automatically found one ### after changing this, you need to do "make reconfig". #CONF_TERM_LIB = --with-tlib=ncurses diff --git a/src/ex_cmds.c b/src/ex_cmds.c --- a/src/ex_cmds.c +++ b/src/ex_cmds.c @@ -1772,7 +1772,8 @@ write_viminfo(file, forceit) */ st_old.st_dev = st_old.st_ino = 0; st_old.st_mode = 0600; - if (mch_stat((char *)fname, &st_old) == 0 && getuid() + if (mch_stat((char *)fname, &st_old) == 0 + && getuid() != ROOT_UID && !(st_old.st_uid == getuid() ? (st_old.st_mode & 0200) : (st_old.st_gid == getgid() diff --git a/src/fileio.c b/src/fileio.c --- a/src/fileio.c +++ b/src/fileio.c @@ -1122,7 +1122,7 @@ retry: if (!skip_read) { #if SIZEOF_INT > 2 -# ifdef __TANDEM +# if defined(SSIZE_MAX) && (SSIZE_MAX < 0x10000L) size = SSIZE_MAX; /* use max I/O size, 52K */ # else size = 0x10000L; /* use buffer >= 64K */ diff --git a/src/main.c b/src/main.c --- a/src/main.c +++ b/src/main.c @@ -3280,7 +3280,7 @@ prepare_server(parmp) # ifdef FEAT_GUI (gui.in_use # ifdef UNIX - && getuid() != 0 + && getuid() != ROOT_UID # endif ) || # endif diff --git a/src/os_unix.c b/src/os_unix.c --- a/src/os_unix.c +++ b/src/os_unix.c @@ -25,7 +25,7 @@ * Don't use it for the Mac, it causes a warning for precompiled headers. * TODO: use a configure check for precompiled headers? */ -#ifndef __APPLE__ +#if !defined(__APPLE__) && !defined(__TANDEM) # define select select_declared_wrong #endif @@ -48,9 +48,11 @@ /* * Use this prototype for select, some include files have a wrong prototype */ -#undef select -#ifdef __BEOS__ -# define select beos_select +#ifndef __TANDEM +# undef select +# ifdef __BEOS__ +# define select beos_select +# endif #endif #if defined(HAVE_SELECT) @@ -4770,6 +4772,14 @@ RealWaitForChar(fd, msec, check_for_gpm) # else ret = select(maxfd + 1, &rfds, NULL, &efds, tvp); # endif +# ifdef __TANDEM + if (ret == -1 && errno == ENOTSUP) + { + FD_ZERO(&rfds); + FD_ZERO(&efds); + ret = 0; + } +#endif # ifdef FEAT_MZSCHEME if (ret == 0 && mzquantum_used) /* loop if MzThreads must be scheduled and timeout occured */ diff --git a/src/osdef1.h.in b/src/osdef1.h.in --- a/src/osdef1.h.in +++ b/src/osdef1.h.in @@ -98,7 +98,9 @@ extern int atol __ARGS((char *)); #ifndef USE_SYSTEM extern int fork __ARGS((void)); +# ifndef __TANDEM extern int execvp __ARGS((const char *, const char **)); +# endif extern int wait __ARGS((int *)); /* will this break things ...? */ extern int waitpid __ARGS((pid_t, int *, int)); #endif @@ -123,10 +125,12 @@ extern void longjmp __ARGS((jmp_buf, int extern int kill __ARGS((int, int)); +#ifndef __TANDEM extern int access __ARGS((char *, int)); +#endif extern int fsync __ARGS((int)); extern int fchown __ARGS((int, int, int)); -#if defined(HAVE_GETCWD) && !defined(sun) +#if defined(HAVE_GETCWD) && !defined(sun) && !defined(__TANDEM) extern char *getcwd __ARGS((char *, int)); #else extern char *getwd __ARGS((char *)); diff --git a/src/osdef2.h.in b/src/osdef2.h.in --- a/src/osdef2.h.in +++ b/src/osdef2.h.in @@ -11,13 +11,19 @@ extern char *getenv __ARGS((char *)); extern int setenv __ARGS((char *, char *, int)); extern int putenv __ARGS((const char *)); +#ifndef __TANDEM extern int gethostname __ARGS((char *, int)); +#endif extern void perror __ARGS((char *)); +#ifndef __TANDEM extern int sleep __ARGS((int)); +#endif extern int usleep __ARGS((unsigned int)); extern unsigned int alarm __ARGS((unsigned int)); +#ifndef __TANDEM extern int chdir __ARGS((char *)); +#endif extern int fchdir __ARGS((int)); #ifndef stat /* could be redefined to stat64() */ extern int stat __ARGS((const char *, struct stat *)); @@ -28,8 +34,10 @@ extern int lstat __ARGS((const char *, s extern int fstat __ARGS((int, struct stat *)); extern int open __ARGS((const char *, int, ...)); extern int close __ARGS((int)); +#ifndef __TANDEM extern int read __ARGS((int, char *, size_t)); extern int write __ARGS((int, char *, size_t)); +#endif extern int pipe __ARGS((int *)); extern off_t lseek __ARGS((int, off_t, int)); extern void sync __ARGS((void)); diff --git a/src/pty.c b/src/pty.c --- a/src/pty.c +++ b/src/pty.c @@ -330,7 +330,7 @@ OpenPTY(ttyn) if ((f = open("/dev/ptc", O_RDWR | O_NOCTTY | O_EXTRA)) < 0) return -1; strncpy(TtyName, ttyname(f), sizeof(TtyName)); - if (geteuid() && mch_access(TtyName, R_OK | W_OK)) + if (geteuid() != ROOT_UID && mch_access(TtyName, R_OK | W_OK)) { close(f); return -1; @@ -394,7 +394,7 @@ OpenPTY(ttyn) q[0] = *l; q[1] = *d; #ifndef MACOS - if (geteuid() && mch_access(TtyName, R_OK | W_OK)) + if (geteuid() != ROOT_UID && mch_access(TtyName, R_OK | W_OK)) { close(f); continue; diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -667,6 +667,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 202, +/**/ 201, /**/ 200, diff --git a/src/vim.h b/src/vim.h --- a/src/vim.h +++ b/src/vim.h @@ -50,6 +50,15 @@ # endif #endif +/* user ID of root is usually zero, but not for everybody */ +#ifdef __TANDEM +# define _TANDEM_SOURCE +# include +# define ROOT_UID 65535 +#else +# define ROOT_UID 0 +#endif + #ifdef __EMX__ /* hand-edited config.h for OS/2 with EMX */ # include "os_os2_cfg.h" #endif