/* System description file for Windows NT.
- Copyright (C) 1993, 1994, 1995, 2001, 2002, 2003, 2004,
- 2005, 2006, 2007 Free Software Foundation, Inc.
+
+Copyright (C) 1993, 1994, 1995, 2001, 2002, 2003, 2004, 2005, 2006,
+ 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
This file is part of GNU Emacs.
-GNU Emacs is free software; you can redistribute it and/or modify
+GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 3, or (at your option)
-any later version.
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
-along with GNU Emacs; see the file COPYING. If not, write to
-the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA. */
-
-/*
- * Define symbols to identify the version of Unix this is.
- * Define all the symbols that apply correctly.
- */
-
-/* #define UNIPLUS */
-/* #define USG5 */
-/* #define USG */
-/* #define HPUX */
-/* #define UMAX */
-/* #define BSD4_1 */
-/* #define BSD4_2 */
-/* #define BSD4_3 */
-/* #define BSD_SYSTEM */
-/* #define VMS */
+along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Define symbols to identify the version of Unix this is.
+ Define all the symbols that apply correctly. */
+
#ifndef WINDOWSNT
#define WINDOWSNT
#endif
#endif
/* If you are compiling with a non-C calling convention but need to
- declare vararg routines differently, put it here */
+ declare vararg routines differently, put it here. */
#define _VARARGS_ __cdecl
/* If you are providing a function to something that will call the
function back (like a signal handler and signal, or main) its calling
- convention must be whatever standard the libraries expect */
+ convention must be whatever standard the libraries expect. */
#define _CALLBACK_ __cdecl
/* SYSTEM_TYPE should indicate the kind of system you are using.
- It sets the Lisp variable system-type. */
-
+ It sets the Lisp variable system-type. */
#define SYSTEM_TYPE "windows-nt"
#define SYMS_SYSTEM syms_of_ntterm ()
#define NO_MATHERR 1
-/* NOMULTIPLEJOBS should be defined if your system's shell
- does not have "job control" (the ability to stop a program,
- run some other program, then continue the first one). */
-
-/* #define NOMULTIPLEJOBS 1 */
-
-/* Emacs can read input using SIGIO and buffering characters itself,
- or using CBREAK mode and making C-g cause SIGINT.
- The choice is controlled by the variable interrupt_input.
-
- Define INTERRUPT_INPUT to make interrupt_input = 1 the default (use SIGIO)
-
- Emacs uses the presence or absence of the SIGIO macro to indicate
- whether or not signal-driven I/O is possible. It uses
- INTERRUPT_INPUT to decide whether to use it by default.
-
- SIGIO can be used only on systems that implement it (4.2 and 4.3).
- CBREAK mode has two disadvantages
- 1) At least in 4.2, it is impossible to handle the Meta key properly.
- I hear that in system V this problem does not exist.
- 2) Control-G causes output to be discarded.
- I do not know whether this can be fixed in system V.
-
- Another method of doing input is planned but not implemented.
- It would have Emacs fork off a separate process
- to read the input and send it to the true Emacs process
- through a pipe. */
-
-/* #define INTERRUPT_INPUT 1 */
-
/* Letter to use in finding device name of first pty,
- if system supports pty's. 'a' means it is /dev/ptya0 */
-
+ if system supports pty's. 'a' means it is /dev/ptya0 */
#define FIRST_PTY_LETTER 'a'
-/*
- * Define HAVE_TERMIOS if the system provides POSIX-style
- * functions and macros for terminal control.
- *
- * Define HAVE_TERMIO if the system provides sysV-style ioctls
- * for terminal control.
- *
- * Do not define both. HAVE_TERMIOS is preferred, if it is
- * supported on your system.
- */
-
-/* #define HAVE_TERMIOS 1 */
-/* #define HAVE_TERMIO 1 */
-
-/*
- * Define HAVE_TIMEVAL if the system supports the BSD style clock values.
- * Look in <sys/time.h> for a timeval structure.
- */
-
+/* Define HAVE_TIMEVAL if the system supports the BSD style clock values.
+ Look in <sys/time.h> for a timeval structure. */
#define HAVE_TIMEVAL 1
-/*
- * Define HAVE_SELECT if the system supports the `select' system call.
- */
-
-/* #define HAVE_SELECT 1 */
-
-/*
- * Define HAVE_PTYS if the system supports pty devices.
- */
-
-/* #define HAVE_PTYS 1 */
-
-/*
- * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
- * The 4.2 opendir, etc., library functions.
- */
-
-/* #define NONSYSTEM_DIR_LIBRARY */
-
-/* NT supports Winsock which is close enough (with some hacks) */
-
+/* NT supports Winsock which is close enough (with some hacks). */
#define HAVE_SOCKETS 1
/* But our select implementation doesn't allow us to make non-blocking
connects. So until that is fixed, this is necessary: */
-
#define BROKEN_NON_BLOCKING_CONNECT 1
/* And the select implementation does 1-byte read-ahead waiting
for received packets, so datagrams are broken too. */
-
#define BROKEN_DATAGRAM_SOCKETS 1
-/* Define this symbol if your system has the functions bcopy, etc. */
-
-#define BSTRING
-#define bzero(b, l) memset(b, 0, l)
-#define bcopy(s, d, l) memmove(d, s, l)
-#define bcmp(a, b, l) memcmp(a, b, l)
-
-/* bcopy (aka memmove aka memcpy at least on x86) under MSVC is quite safe */
-#define GAP_USE_BCOPY 1
-#define BCOPY_UPWARD_SAFE 1
-#define BCOPY_DOWNWARD_SAFE 1
-
-/* subprocesses should be defined if you want to
- have code for asynchronous subprocesses
- (as used in M-x compile and M-x shell).
- This is generally OS dependent, and not supported
- under most USG systems. */
-
-#define subprocesses 1
-
/* If your system uses COFF (Common Object File Format) then define the
- preprocessor symbol "COFF". */
-
+ preprocessor symbol "COFF". */
#define COFF 1
-/* define MAIL_USE_FLOCK if the mailer uses flock
- to interlock access to /usr/spool/mail/$USER.
- The alternative is that a lock file named
- /usr/spool/mail/$USER.lock. */
-
-/* #define MAIL_USE_FLOCK */
#define MAIL_USE_POP 1
#define MAIL_USE_SYSTEM_LOCK 1
-/* Define CLASH_DETECTION if you want lock files to be written
- so that Emacs can tell instantly when you try to modify
- a file that someone else has modified in his Emacs. */
-
-/* #define CLASH_DETECTION 1 */
-
-/* Define this if your operating system declares signal handlers to
- have a type other than the usual. `The usual' is `void' for ANSI C
- systems (i.e. when the __STDC__ macro is defined), and `int' for
- pre-ANSI systems. If you're using GCC on an older system, __STDC__
- will be defined, but the system's include files will still say that
- signal returns int or whatever; in situations like that, define
- this to be what the system's include files want. */
-/* #define SIGTYPE int */
-
/* If the character used to separate elements of the executable path
is not ':', #define this to be the appropriate character constant. */
#define SEPCHAR ';'
/* ============================================================ */
-/* Here, add any special hacks needed
- to make Emacs work on this system. For example,
- you might define certain system call names that don't
- exist on your system, or that do different things on
- your system and must be used only through an encapsulation
- (Which you should place, by convention, in sysdep.c). */
+/* Here, add any special hacks needed to make Emacs work on this
+ system. For example, you might define certain system call names
+ that don't exist on your system, or that do different things on
+ your system and must be used only through an encapsulation (which
+ you should place, by convention, in sysdep.c). */
-/* Define this to be the separator between path elements */
-#define DIRECTORY_SEP XINT (Vdirectory_sep_char)
-
-/* Define this to be the separator between devices and paths */
+/* Define this to be the separator between devices and paths. */
#define DEVICE_SEP ':'
/* We'll support either convention on NT. */
#define IS_DIRECTORY_SEP(_c_) ((_c_) == '/' || (_c_) == '\\')
#define IS_ANY_SEP(_c_) (IS_DIRECTORY_SEP (_c_) || IS_DEVICE_SEP (_c_))
-/* The null device on Windows NT. */
+#include <sys/types.h>
+struct sigaction {
+ int sa_flags;
+ void (*sa_handler)(int);
+ sigset_t sa_mask;
+};
+#define SIG_BLOCK 1
+#define SIG_SETMASK 2
+#define SIG_UNBLOCK 3
+
+/* The null device on Windows NT. */
#define NULL_DEVICE "NUL:"
#ifndef MAXPATHLEN
#define HAVE_RANDOM 1
#undef HAVE_SYSINFO
#undef HAVE_LRAND48
-#define HAVE_BCOPY 1
-#define HAVE_BCMP 1
+#define HAVE_MEMCMP 1
+#define HAVE_MEMCPY 1
+#define HAVE_MEMMOVE 1
+#define HAVE_MEMSET 1
#define HAVE_LOGB 1
#define HAVE_FREXP 1
#define HAVE_FMOD 1
#define HAVE_MOUSE 1
#define HAVE_H_ERRNO 1
-#define MULTI_KBOARD 1
-
#ifdef HAVE_NTGUI
#define HAVE_WINDOW_SYSTEM 1
-#define HAVE_FACES 1
#define HAVE_MENUS 1
#endif
#define MODE_LINE_BINARY_TEXT(_b_) (NILP ((_b_)->buffer_file_type) ? "T" : "B")
-/* get some redefinitions in place */
+/* Get some redefinitions in place. */
#ifdef emacs
-/* calls that are emulated or shadowed */
+/* Calls that are emulated or shadowed. */
#undef access
#define access sys_access
#undef chdir
#undef write
#define write sys_write
-/* subprocess calls that are emulated */
+/* Subprocess calls that are emulated. */
#define spawnve sys_spawnve
#define wait sys_wait
#define kill sys_kill
#define signal sys_signal
+/* termcap.c calls that are emulated. */
+#define tputs sys_tputs
+#define tgetstr sys_tgetstr
+
+/* cm.c calls that are emulated. */
+#define chcheckmagic sys_chcheckmagic
+#define cmcostinit sys_cmcostinit
+#define cmgoto sys_cmgoto
+#define cmputc sys_cmputc
+#define Wcm_clear sys_Wcm_clear
+
#endif /* emacs */
-/* map to MSVC names */
+/* Map to MSVC names. */
#define execlp _execlp
#define execvp _execvp
-#define fcloseall _fcloseall
#define fdopen _fdopen
-#define fgetchar _fgetchar
#ifndef fileno
#define fileno _fileno
#endif
-#define flushall _flushall
-#define fputchar _fputchar
#define fsync _commit
#define ftruncate _chsize
-#define getw _getw
#define getpid _getpid
#ifdef _MSC_VER
typedef int pid_t;
#define lseek _lseek
#define popen _popen
#define pclose _pclose
-#define putw _putw
#define umask _umask
#define utimbuf _utimbuf
#define index strchr
#define utime _utime
#endif
-/* this is hacky, but is necessary to avoid warnings about macro
- redefinitions using the SDK compilers */
+/* 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__
#undef MUST_UNDEF__STDC__
#endif
-/* Defines that we need that aren't in the standard signal.h */
+/* Defines that we need that aren't in the standard signal.h. */
#define SIGHUP 1 /* Hang up */
#define SIGQUIT 3 /* Quit process */
#define SIGTRAP 5 /* Trace trap */
#include <sys/stat.h>
-/* Define for those source files that do not include enough NT
- system files. */
+/* Define for those source files that do not include enough NT system files. */
#ifndef NULL
#ifdef __cplusplus
#define NULL 0
removed. Also, obviously, all files that define initialized data
must include config.h to pick up this pragma. */
-/* Names must be < 8 bytes */
+/* Names must be < 8 bytes. */
#ifdef _MSC_VER
#pragma data_seg("EMDATA")
#pragma bss_seg("EMBSS")