summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGeoff Voelker <voelker@cs.washington.edu>1996-05-03 18:50:05 +0000
committerGeoff Voelker <voelker@cs.washington.edu>1996-05-03 18:50:05 +0000
commit467bc6ee2a9c80bae91f75fd6666087da102186d (patch)
treea4ab0f6b50dc035c249392d2641823bd082cf900 /src
parent47ce42ee219a7a5abb07ec4f2abb7a4963387de7 (diff)
downloademacs-467bc6ee2a9c80bae91f75fd6666087da102186d.tar.gz
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.
Diffstat (limited to 'src')
-rw-r--r--src/s/ms-w32.h195
1 files changed, 108 insertions, 87 deletions
diff --git a/src/s/ms-w32.h b/src/s/ms-w32.h
index 10122c54780..6162745a28d 100644
--- a/src/s/ms-w32.h
+++ b/src/s/ms-w32.h
@@ -56,8 +56,6 @@ Boston, MA 02111-1307, USA. */
#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 @@ Boston, MA 02111-1307, USA. */
*/
#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 @@ void gettimeofday (struct timeval *, struct timezone *);
/* #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 @@ void gettimeofday (struct timeval *, struct timezone *);
/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 @@ void gettimeofday (struct timeval *, struct timezone *);
(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 @@ void gettimeofday (struct timeval *, struct timezone *);
/* 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 @@ void gettimeofday (struct timeval *, struct timezone *);
#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 @@ void gettimeofday (struct timeval *, struct timezone *);
#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). */
-
-#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). */
+/* 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
+
+/* 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 <direct.h>
+#include <io.h>
+#include <stdio.h>
+#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 @@ void gettimeofday (struct timeval *, struct timezone *);
#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 <malloc.h>
-/* 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 <sys/stat.h>
-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 @@ struct nt_stat
/* For proper declaration of environ. */
#include <stdlib.h>
+#include <string.h>
/* Emacs takes care of ensuring that these are defined. */
#ifdef max