/* System description file for MS-DOS
- Copyright (C) 1993, 1996, 1997, 2001, 2002, 2003, 2004, 2005, 2006,
- 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright (C) 1993, 1996-1997, 2001-2011 Free Software Foundation, Inc.
This file is part of GNU Emacs.
/* Note: lots of stuff here was taken from s-msdos.h in demacs. */
-/*
- * Define symbols to identify the version of Unix this is.
- * Define all the symbols that apply correctly.
- */
-
+/* Define symbols to identify the version of Unix this is.
+ Define all the symbols that apply correctly. */
#ifndef MSDOS
#define MSDOS
#endif
#undef BSD_SYSTEM
/* 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 "ms-dos"
-#define SYMS_SYSTEM syms_of_dosfns();syms_of_msdos();syms_of_win16select()
-
-/* 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
-
-#define SYSV_SYSTEM_DIR
-
-/* Define this symbol if your system has the functions bcopy, etc. */
-
-#define BSTRING
-
-/* Define this is the compiler understands `volatile'. */
-#define HAVE_VOLATILE
-
-
-/* subprocesses should be defined if you want to
- have code for asynchronous subprocesses
- (as used in M-x compile and M-x shell).
+/* 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 the only system that needs this. */
-
#undef subprocesses
-/* If your system uses COFF (Common Object File Format) then define the
- preprocessor symbol "COFF". */
-
-#define COFF
-
-/* Here, on a separate page, 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, on a separate page, 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). */
\f
/* Avoid incompatibilities between gmalloc.c and system header files
in how to declare valloc. */
/* setjmp and longjmp can safely replace _setjmp and _longjmp,
but they will run slower. */
-
#define _setjmp setjmp
#define _longjmp longjmp
#define DATA_START (&etext + 1)
-#define TEXT_START &start
#define _NAIVE_DOS_REGS
-#define ORDINARY_LINK
-
/* command.com does not understand `...` so we define this. */
-#define LIB_GCC -Lgcc
#define SEPCHAR ';'
#define NULL_DEVICE "nul"
#define HAVE_INVERSE_HYPERBOLIC
#define FLOAT_CHECK_DOMAIN
+/* Start of gnulib-related stuff */
+
+/* lib/ftoastr.c wants strtold, but DJGPP only has _strtold. DJGPP >
+ 2.03 has it, but it also has _strtold as a stub that jumps to
+ strtold, so use _strtold in all versions. */
+#define strtold _strtold
+
+#if __DJGPP__ > 2 || __DJGPP_MINOR__ > 3
+# define HAVE_LSTAT 1
+#else
+# define lstat stat
+#endif
+
+/* End of gnulib-related stuff. */
+
/* When $TERM is "internal" then this is substituted: */
#define INTERNAL_TERMINAL "pc|bios|IBM PC with color display:\
:co#80:li#25:Co#16:pa#256:km:ms:cm=<CM>:cl=<CL>:ce=<CE>:\
:AB=<BG %d>:AF=<FG %d>:op=<DefC>:"
/* Define this to a function (Fdowncase, Fupcase) if your file system
- likes that */
+ likes that. */
#define FILE_SYSTEM_CASE Fmsdos_downcase_filename
-/* 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 MSDOG. */
#define IS_DIRECTORY_SEP(_c_) ((_c_) == '/' || (_c_) == '\\')
#define IS_ANY_SEP(_c_) (IS_DIRECTORY_SEP (_c_) || IS_DEVICE_SEP (_c_))
-/* bcopy under djgpp is quite safe */
-#define GAP_USE_BCOPY
-#define BCOPY_UPWARD_SAFE 1
-#define BCOPY_DOWNWARD_SAFE 1
/* Mode line description of a buffer's type. */
-#define MODE_LINE_BINARY_TEXT(buf) (NILP(buf->buffer_file_type) ? "T" : "B")
-
-/* Do we have POSIX signals? */
-#define POSIX_SIGNALS
+#define MODE_LINE_BINARY_TEXT(buf) (NILP(B_(buf,buffer_file_type)) ? "T" : "B")
/* We have (the code to control) a mouse. */
#define HAVE_MOUSE
-/* We canuse mouse menus. */
+/* We can use mouse menus. */
#define HAVE_MENUS
/* Define one of these for easier conditionals. */
commentary below, in the non-X branch. The 140KB number was
measured on GNU/Linux and on MS-WIndows. */
#define SYSTEM_PURESIZE_EXTRA (-170000+140000)
-#define LIBS_SYSTEM -lxext -lsys
#else
/* We need a little extra space, see ../../lisp/loadup.el.
As of 20091024, DOS-specific files use up 62KB of pure space. But
#endif
/* Tell the garbage collector that setjmp is known to save all
- registers relevant for conservative garbage collection in the
- jmp_buf. */
-
+ registers relevant for conservative garbage collection in the jmp_buf. */
#define GC_SETJMP_WORKS 1
#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS
-#define NO_REMAP
-
-/* arch-tag: d184f860-815d-4ff4-8187-d05c0f3c37d0
- (do not change this comment) */