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.
 /* 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
 
 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,
 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
 
 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
 
 
 #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
 \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 */
 #ifndef NO_TERMIO
 #include <termio.h>
 #endif /* not NO_TERMIO */
@@ -135,7 +110,7 @@ static struct sensemode {
 
 #ifdef NEED_BSDTTY
 #include <sys/bsdtty.h>
 
 #ifdef NEED_BSDTTY
 #include <sys/bsdtty.h>
-#endif 
+#endif
 
 #if defined (HPUX) && defined (HAVE_PTYS)
 #include <sys/ptyio.h>
 
 #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 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
 #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.  */
 
 
 \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
 
 #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
 /* 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.  */
 
 
 /* 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)
 #  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.  */
 
 \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.
 
    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.  */
 
    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)))
    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.  */
 
 \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 */
 #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) */