X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/3580badc18f964f6ff5401a7280c7ef9c589e8b0..0cf79a3ba2bd3047e875a51edc6358955c0c3a49:/src/systty.h diff --git a/src/systty.h b/src/systty.h index 2171a96046..6d6a6f01ea 100644 --- a/src/systty.h +++ b/src/systty.h @@ -1,11 +1,12 @@ /* systty.h - System-dependent definitions for terminals. - Copyright (C) 1993 Free Software Foundation, Inc. + Copyright (C) 1993, 1994, 2002, 2003, 2004, + 2005, 2006 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 1, or (at your option) +the Free Software Foundation; either version 2, or (at your option) any later version. GNU Emacs is distributed in the hope that it will be useful, @@ -15,32 +16,44 @@ 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, 675 Mass Ave, Cambridge, MA 02139, USA. */ +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +Boston, MA 02110-1301, USA. */ #ifdef HAVE_TERMIOS #define HAVE_TCATTR #endif + /* Include the proper files. */ #ifdef HAVE_TERMIO #ifdef __DGUX #include #endif +#ifndef NO_TERMIO #include +#endif /* not NO_TERMIO */ +#ifndef INCLUDED_FCNTL +#define INCLUDED_FCNTL #include -#else +#endif +#else /* not HAVE_TERMIO */ #ifdef HAVE_TERMIOS #if defined(_AIX) && defined(_I386) #include /* termios.h needs to be before termio.h */ #include -#else +#else /* not (_AIX && _I386) */ +#ifndef NO_TERMIO #include +#endif #include -#endif /* _AIX && _I386 */ +#endif /* not (_AIX && _I386) */ +#define INCLUDED_FCNTL #include #else /* neither HAVE_TERMIO nor HAVE_TERMIOS */ #ifndef VMS +#ifndef DOS_NT #include +#endif /* not DOS_NT */ #else /* VMS */ #include static struct iosb @@ -53,15 +66,9 @@ static struct iosb extern int waiting_for_ast; extern int stop_input; -#if 0 /* VAX C doeasn't understand initializing declarations */ -extern int input_ef = 0; -extern int timer_ef = 0; -extern int process_ef = 0; -#else extern int input_ef; extern int timer_ef; extern int process_ef; -#endif extern int input_eflist; extern int timer_eflist; @@ -86,7 +93,12 @@ static struct sensemode { #endif /* not HAVE_TERMIOS */ #endif /* not HAVE_TERMIO */ -#ifdef AIX +#ifdef __GNU_LIBRARY__ +#include +#include +#endif + +#ifdef AIXHFT /* Get files for keyboard remapping */ #define HFNKEYS 2 #include @@ -101,19 +113,17 @@ static struct sensemode { #ifdef NEED_BSDTTY #include -#endif +#endif #if defined (HPUX) && defined (HAVE_PTYS) #include #endif - + #ifdef AIX #include -#include #endif /* AIX */ -#ifdef IRIX4 -/* Get _getpty prototype */ +#if (defined (POSIX) || defined (NEED_UNISTD_H)) && defined (HAVE_UNISTD_H) #include #endif @@ -162,7 +172,7 @@ static struct sensemode { #undef ASYNC #endif -/* Interupt input is not used if there is no FIONREAD. */ +/* Interrupt input is not used if there is no FIONREAD. */ #ifndef FIONREAD #undef SIGIO #endif @@ -238,7 +248,7 @@ static struct sensemode { #ifdef EMACS_HAVE_TTY_PGRP -#ifdef HAVE_TERMIOS +#if defined (HAVE_TERMIOS) && ! defined (BSD_TERMIOS) #define EMACS_GET_TTY_PGRP(fd, pgid) (*(pgid) = tcgetpgrp ((fd))) #define EMACS_SET_TTY_PGRP(fd, pgid) (tcsetpgrp ((fd), *(pgid))) @@ -260,6 +270,13 @@ static struct sensemode { #endif +/* EMACS_GETPGRP (arg) returns the process group of the process. */ + +#if defined (GETPGRP_VOID) +# define EMACS_GETPGRP(x) getpgrp() +#else +# define EMACS_GETPGRP(x) getpgrp(x) +#endif /* !GETPGRP_VOID */ /* Manipulate a TTY's input/output processing parameters. */ @@ -274,11 +291,10 @@ static struct sensemode { of the tty on FD in *P. Return zero if all's well, or -1 if we ran into an error we couldn't deal with. - EMACS_SET_TTY (int FD, struct emacs_tty *P, int waitp) + EMACS_SET_TTY (int FD, struct emacs_tty *P, int flushp) sets the parameters of the tty on FD according to the contents of - *P. If waitp is non-zero, we wait for all queued output to be - written before making the change; otherwise, we forget any queued - input and make the change immediately. + *P. If flushp is non-zero, we discard queued input to be + 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 @@ -304,7 +320,11 @@ struct emacs_tty { #ifdef VMS struct sensemode main; #else +#ifdef DOS_NT + int main; +#else /* not DOS_NT */ struct sgttyb main; +#endif /* not DOS_NT */ #endif #endif #endif @@ -331,13 +351,21 @@ 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 /* Define EMACS_TTY_TABS_OK. */ #ifdef HAVE_TERMIOS +#ifdef TABDLY #define EMACS_TTY_TABS_OK(p) (((p)->main.c_oflag & TABDLY) != TAB3) +#else +#define EMACS_TTY_TABS_OK(p) 1 +#endif #else /* not def HAVE_TERMIOS */ #ifdef HAVE_TERMIO @@ -351,8 +379,15 @@ struct emacs_tty { #else +#ifdef DOS_NT +#define EMACS_TTY_TABS_OK(p) 0 +#else /* not DOS_NT */ #define EMACS_TTY_TABS_OK(p) (((p)->main.sg_flags & XTABS) != XTABS) +#endif /* not DOS_NT */ #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) */