# HG changeset patch # User Geoff Voelker # Date 831149405 0 # Node ID bcc66f4bc5ff50b9758afdf3068d13a24f2e617f # Parent c1494aa589e824ec66695f21f37d7b45a1ecc92d Include string.h. (HAVE_FREXP, HAVE_FMOD): Macros removed. (struct timeval, struct timezone, gettimeofday): Declarations removed. (HAVE_SOCKETS, MAIL_USE_POP, MAIL_USE_SYSTEM_LOCK): Macros defined. (DIRECTORY_SEP): Use Vdirectory_sep_char. (EXEC_SUFFIXES): Add .cmd to list of suffixes. (EXEC_SUFFIXES): Add .cmd to list of suffixes. > (HAVE_SYS_TIMEB_H, HAVE_SYS_TIME_H, HAVE_UNISTD_H, STDC_HEADERS, TIME_WITH_SYS_TIME, HAVE_GETTIMEOFDAY, HAVE_CLOSEDIR, HAVE_LONG_FILE_NAMES, HAVE_BCOPY, HAVE_BCMP, HAVE_LOGB, HAVE_FREXP, HAVE_FMOD, HAVE_FTIME, HAVE_MKTIME, HAVE_H_ERRNO): New macros. (access, chdir, chmod, close, creat, ctime, dup, dup2, fopen, link, mkdir, mktemp, open, pipe, read, rename, rmdir, select, sleep, unlink, write, spawnve, wait, kill, signal): Macros redefined from win32_* to sys_*. [__STDC__]: Define when including direct.h, io.h, stdio.h. (struct nt_stat): Definition removed. (stat, st_dev, st_ino, st_mode, st_nlink, st_uid, st_gid, st_rdev, st_size, st_atime, st_mtime, st_ctime): Macros undefined. diff -r c1494aa589e8 -r bcc66f4bc5ff src/s/ms-w32.h --- a/src/s/ms-w32.h Fri May 03 18:49:20 1996 +0000 +++ b/src/s/ms-w32.h Fri May 03 18:50:05 1996 +0000 @@ -56,8 +56,6 @@ #define SYMS_SYSTEM syms_of_ntterm () #define NO_MATHERR -#define HAVE_FREXP -#define HAVE_FMOD /* NOMULTIPLEJOBS should be defined if your system's shell does not have "job control" (the ability to stop a program, @@ -114,19 +112,6 @@ */ #define HAVE_TIMEVAL -struct timeval - { - long tv_sec; /* seconds */ - long tv_usec; /* microseconds */ - }; -struct timezone - { - int tz_minuteswest; /* minutes west of Greenwich */ - int tz_dsttime; /* type of dst correction */ - }; - -void gettimeofday (struct timeval *, struct timezone *); - /* * Define HAVE_SELECT if the system supports the `select' system call. @@ -147,6 +132,10 @@ /* #define NONSYSTEM_DIR_LIBRARY */ +/* NT supports Winsock which is close enough (with some hacks) */ + +#define HAVE_SOCKETS + /* Define this symbol if your system has the functions bcopy, etc. */ #define BSTRING @@ -173,6 +162,8 @@ /usr/spool/mail/$USER.lock. */ /* #define MAIL_USE_FLOCK */ +#define MAIL_USE_POP +#define MAIL_USE_SYSTEM_LOCK /* Define CLASH_DETECTION if you want lock files to be written so that Emacs can tell instantly when you try to modify @@ -203,7 +194,7 @@ (Which you should place, by convention, in sysdep.c). */ /* Define this to be the separator between path elements */ -#define DIRECTORY_SEP '\\' +#define DIRECTORY_SEP XINT (Vdirectory_sep_char) /* Define this to be the separator between devices and paths */ #define DEVICE_SEP ':' @@ -214,7 +205,7 @@ /* The null device on Windows NT. */ #define NULL_DEVICE "NUL:" -#define EXEC_SUFFIXES ".exe:.com:.bat:" +#define EXEC_SUFFIXES ".exe:.com:.bat:.cmd:" #ifndef MAXPATHLEN #define MAXPATHLEN _MAX_PATH @@ -222,15 +213,35 @@ #define LISP_FLOAT_TYPE -#define HAVE_DUP2 1 -#define HAVE_RENAME 1 -#define HAVE_RMDIR 1 -#define HAVE_MKDIR 1 -#define HAVE_GETHOSTNAME 1 -#define HAVE_RANDOM 1 -#define USE_UTIME 1 -#define HAVE_MOUSE 1 -#define HAVE_TZNAME 1 +#define HAVE_SYS_TIMEB_H +#define HAVE_SYS_TIME_H +#define HAVE_UNISTD_H +#define STDC_HEADERS +#define TIME_WITH_SYS_TIME + +#define HAVE_GETTIMEOFDAY +#define HAVE_GETHOSTNAME +#define HAVE_DUP2 +#define HAVE_RENAME +#define HAVE_CLOSEDIR + +#define HAVE_TZNAME + +#define HAVE_LONG_FILE_NAMES + +#define HAVE_MKDIR +#define HAVE_RMDIR +#define HAVE_RANDOM +#define HAVE_BCOPY +#define HAVE_BCMP +#define HAVE_LOGB +#define HAVE_FREXP +#define HAVE_FMOD +#define HAVE_FTIME +#define HAVE_MKTIME + +#define HAVE_MOUSE +#define HAVE_H_ERRNO #ifdef HAVE_NTGUI #define HAVE_WINDOW_SYSTEM @@ -239,40 +250,73 @@ #define MODE_LINE_BINARY_TEXT(_b_) (NILP ((_b_)->buffer_file_type) ? "T" : "B") -/* These have to be defined because our compilers treat __STDC__ as being - defined (most of them anyway). */ +/* get some redefinitions in place */ + +/* IO calls that are emulated or shadowed */ +#define access sys_access +#define chdir sys_chdir +#define chmod sys_chmod +#define close sys_close +#define creat sys_creat +#define ctime sys_ctime +#define dup sys_dup +#define dup2 sys_dup2 +#define fopen sys_fopen +#define link sys_link +#define mkdir sys_mkdir +#define mktemp sys_mktemp +#define open sys_open +#define pipe sys_pipe +#define read sys_read +#define rename sys_rename +#define rmdir sys_rmdir +#define select sys_select +#define sleep sys_sleep +#define unlink sys_unlink +#define write sys_write -#define access _access -#define chdir _chdir -#define chmod _chmod -#define close _close -#define creat _creat -#define dup _dup -#define dup2 _dup2 -#define execlp _execlp -#define execvp _execvp -#define getpid _getpid -#define index strchr -#define isatty _isatty -#define link _link -#define lseek _lseek -#define mkdir _mkdir -#define mktemp _mktemp -#define open _open -#define pipe _pipe -#define read _read -#define rmdir _rmdir -#define sleep nt_sleep -#define unlink _unlink -#define umask _umask -#define utime _utime -#define write _write -#define _longjmp longjmp -#define spawnve win32_spawnve -#define wait win32_wait -#define signal win32_signal -#define rindex strrchr -#define ctime nt_ctime /* Place a wrapper around ctime (see nt.c). */ +/* this is hacky, but is necessary to avoid warnings about macro + redefinitions using the SDK compilers */ +#ifndef __STDC__ +#define __STDC__ 1 +#define MUST_UNDEF__STDC__ +#endif +#include +#include +#include +#ifdef MUST_UNDEF__STDC__ +#undef __STDC__ +#undef MUST_UNDEF__STDC__ +#endif + +/* subprocess calls that are emulated */ +#define spawnve sys_spawnve +#define wait sys_wait +#define kill sys_kill +#define signal sys_signal + +/* map to MSVC names */ +#define execlp _execlp +#define execvp _execvp +#define fcloseall _fcloseall +#define fdopen _fdopen +#define fgetchar _fgetchar +#define fileno _fileno +#define flushall _flushall +#define fputchar _fputchar +#define getw _getw +#define getpid _getpid +#define isatty _isatty +#define logb _logb +#define _longjmp longjmp +#define lseek _lseek +#define popen _popen +#define pclose _pclose +#define putw _putw +#define umask _umask +#define utime _utime +#define index strchr +#define rindex strrchr #ifdef HAVE_NTGUI #define abort win32_abort @@ -294,39 +338,15 @@ #define EMACS_CONFIGURATION get_emacs_configuration () #define EMACS_CONFIG_OPTIONS "NT" /* Not very meaningful yet. */ -/* Define this so that winsock.h definitions don't get included when windows.h - is... I don't know if they do the right thing for emacs. For this to - have proper effect, config.h must always be included before windows.h. */ +/* Define this so that winsock.h definitions don't get included with + windows.h. For this to have proper effect, config.h must always be + included before windows.h. */ #define _WINSOCKAPI_ 1 /* Defines size_t and alloca (). */ #include -/* We have to handle stat specially. However, #defining stat to - something else not only redefines uses of the function, but also - redefines uses of the type struct stat. What unfortunate parallel - naming. */ #include -struct nt_stat - { - struct _stat statbuf; - }; - -#ifdef stat -#undef stat -#endif -#define stat nt_stat -#define st_dev statbuf.st_dev -#define st_ino statbuf.st_ino -#define st_mode statbuf.st_mode -#define st_nlink statbuf.st_nlink -#define st_uid statbuf.st_uid -#define st_gid statbuf.st_gid -#define st_rdev statbuf.st_rdev -#define st_size statbuf.st_size -#define st_atime statbuf.st_atime -#define st_mtime statbuf.st_mtime -#define st_ctime statbuf.st_ctime /* Define for those source files that do not include enough NT system files. */ @@ -340,6 +360,7 @@ /* For proper declaration of environ. */ #include +#include /* Emacs takes care of ensuring that these are defined. */ #ifdef max