Merge from emacs--rel--22
[bpt/emacs.git] / src / systty.h
index 4b8c226..dc1460a 100644 (file)
@@ -1,11 +1,12 @@
 /* systty.h - System-dependent definitions for terminals.
-   Copyright (C) 1993, 1994 Free Software Foundation, Inc.
+   Copyright (C) 1993, 1994, 2001, 2002, 2003, 2004,
+                 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
 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 2, or (at your option)
+the Free Software Foundation; either version 3, or (at your option)
 any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
@@ -15,42 +16,16 @@ 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., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA.  */
 
 #ifdef HAVE_TERMIOS
 #define HAVE_TCATTR
 #endif
 
-/* If we defined these before and we are about to redefine them,
-   prevent alarming warnings.  */
-#ifdef BSD_TERMIOS
-#undef NL0
-#undef NL1
-#undef CR0
-#undef CR1
-#undef CR2
-#undef CR3
-#undef TAB0
-#undef TAB1
-#undef TAB2
-#undef XTABS
-#undef BS0
-#undef BS1
-#undef FF0
-#undef FF1
-#undef ECHO
-#undef NOFLSH
-#undef TOSTOP
-#undef FLUSHO
-#undef PENDIN
-#endif
 \f
 /* Include the proper files.  */
 #ifdef HAVE_TERMIO
-#ifdef __DGUX
-#include <sys/ioctl.h>
-#endif
 #ifndef NO_TERMIO
 #include <termio.h>
 #endif /* not NO_TERMIO */
@@ -135,7 +110,7 @@ static struct sensemode {
 
 #ifdef NEED_BSDTTY
 #include <sys/bsdtty.h>
-#endif 
+#endif
 
 #if defined (HPUX) && defined (HAVE_PTYS)
 #include <sys/ptyio.h>
@@ -152,42 +127,16 @@ static struct sensemode {
 #ifdef SYSV_PTYS
 #include <sys/types.h>
 #include <sys/tty.h>
-#ifdef titan
-#include <sys/ttyhw.h>
-#include <sys/stream.h>
-#endif
-#ifndef NO_PTY_H
 #include <sys/pty.h>
 #endif
-#endif
-
-/* saka@pfu.fujitsu.co.JP writes:
-   FASYNC defined in this file. But, FASYNC don't working.
-   so no problem, because unrequest_sigio only need. */
-#if defined (pfa)
-#include <sys/file.h>
-#endif
 
 \f
 /* Special cases - inhibiting the use of certain features.  */
 
-#ifdef APOLLO
-#undef TIOCSTART
-#endif
-
-#ifdef XENIX
-#undef TIOCGETC  /* Avoid confusing some conditionals that test this.  */
-#endif
-
 #ifdef BROKEN_TIOCGETC
 #undef TIOCGETC  /* Avoid confusing some conditionals that test this.  */
 #endif
 
-/* UNIPLUS systems may have FIONREAD.  */
-#ifdef UNIPLUS
-#include <sys.ioctl.h>
-#endif
-
 /* Allow m- file to inhibit use of FIONREAD.  */
 #ifdef BROKEN_FIONREAD
 #undef FIONREAD
@@ -294,30 +243,11 @@ static struct sensemode {
 
 /* EMACS_GETPGRP (arg) returns the process group of the process.  */
 
-#ifdef __GNU_LIBRARY__
-/* GNU libc by default defines getpgrp with no args on all systems.  */
-#if __GLIBC__  >= 2
-/* glibc-2.1 adds the BSD compatibility getpgrp function
-   if you use __BSD_SOURCE, which Emacs does on GNU/Linux systems.  */
-#if __GLIBC_MINOR__ < 1 || ! defined (_BSD_SOURCE)
-#define GETPGRP_NO_ARG
-#endif
-#else /* __GLIBC__ < 2 */
-#define GETPGRP_NO_ARG
-#endif /* __GLIBC__ < 2 */
-#else /* not __GNU_LIBRARY__ */
-#if defined (USG) && !defined (GETPGRP_NEEDS_ARG)
-#  if !defined (GETPGRP_NO_ARG)
-#    define GETPGRP_NO_ARG
-#  endif
-#endif
-#endif /* not __GNU_LIBRARY__ */
-
-#if defined (GETPGRP_NO_ARG)
+#if defined (GETPGRP_VOID)
 #  define EMACS_GETPGRP(x) getpgrp()
 #else
 #  define EMACS_GETPGRP(x) getpgrp(x)
-#endif /* !GETPGRP_NO_ARG */
+#endif /* !GETPGRP_VOID */
 \f
 /* Manipulate a TTY's input/output processing parameters.  */
 
@@ -338,7 +268,7 @@ static struct sensemode {
    written before making the change.
    Return 0 if all went well, and -1 if anything failed.
 
-   EMACS_TTY_TABS_OK (struct emacs_tty *P) is false iff the kernel
+   EMACS_TTY_TABS_OK (struct emacs_tty *P) is false if the kernel
    expands tabs to spaces upon output; in that case, there is no
    advantage to using tabs over spaces.  */
 
@@ -392,6 +322,10 @@ struct emacs_tty {
    expression, so we moved them out to their own functions in sysdep.c.  */
 #define EMACS_GET_TTY(fd, p)        (emacs_get_tty ((fd), (p)))
 #define EMACS_SET_TTY(fd, p, waitp) (emacs_set_tty ((fd), (p), (waitp)))
+#ifdef P_  /* Unfortunately this file is sometimes included before lisp.h */
+extern int emacs_get_tty P_ ((int, struct emacs_tty *));
+extern int emacs_set_tty P_ ((int, struct emacs_tty *, int));
+#endif
 
 \f
 /* Define EMACS_TTY_TABS_OK.  */
@@ -425,3 +359,6 @@ struct emacs_tty {
 #endif /* not def VMS */
 #endif /* not def HAVE_TERMIO */
 #endif /* not def HAVE_TERMIOS */
+
+/* arch-tag: cf4b90bc-be41-401c-be98-40619178a712
+   (do not change this comment) */