X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fpty.in.h;h=d237a66aa7b422a4ba8ed6f6bd010eabc99e6857;hb=0874a5828bbb4784e9c9d54243b3c978e8e54ece;hp=8d80f8aacdc76dd9f5eb451a8558d456bbb8ef76;hpb=953fd38889e35a0ddbf8e9ada17f4fd001662003;p=gnulib.git diff --git a/lib/pty.in.h b/lib/pty.in.h index 8d80f8aac..d237a66aa 100644 --- a/lib/pty.in.h +++ b/lib/pty.in.h @@ -1,5 +1,5 @@ /* Substitute for and wrapper around . - Copyright (C) 2010 Free Software Foundation, Inc. + Copyright (C) 2010-2012 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -12,31 +12,44 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program; if not, see . */ -#ifndef _GL_PTY_H +#ifndef _@GUARD_PREFIX@_PTY_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif +@PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #if @HAVE_PTY_H@ # @INCLUDE_NEXT@ @NEXT_PTY_H@ #endif -#ifndef _GL_PTY_H -#define _GL_PTY_H +#ifndef _@GUARD_PREFIX@_PTY_H +#define _@GUARD_PREFIX@_PTY_H /* Some platforms declare this in a different header than glibc. */ #if @HAVE_UTIL_H@ # include #endif #if @HAVE_LIBUTIL_H@ +/* is a prerequisite of on FreeBSD 8.0. */ +# include # include #endif +/* Get 'struct termios' and 'struct winsize'. */ +#include +#if defined _AIX +# include +#endif +/* Mingw lacks 'struct termios' and 'struct winsize', but a forward + declaration of an opaque type is sufficient to allow compilation of + a stub openpty(). */ +struct termios; +struct winsize; + /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ @@ -44,24 +57,75 @@ /* Declare overridden functions. */ -#if 1 /* FIXME - split forkpty into separate module */ +#if @GNULIB_FORKPTY@ +/* Create pseudo tty master slave pair and set terminal attributes + according to TERMP and WINP. Fork a child process attached to the + slave end. Return a handle for the master end in *AMASTER, and + return the name of the slave end in NAME. */ +# if @REPLACE_FORKPTY@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef forkpty +# define forkpty rpl_forkpty +# endif +_GL_FUNCDECL_RPL (forkpty, int, + (int *amaster, char *name, + struct termios const *termp, struct winsize const *winp)); +_GL_CXXALIAS_RPL (forkpty, int, + (int *amaster, char *name, + struct termios const *termp, struct winsize const *winp)); +# else +# if !@HAVE_FORKPTY@ +_GL_FUNCDECL_SYS (forkpty, int, + (int *amaster, char *name, + struct termios const *termp, struct winsize const *winp)); +# endif +_GL_CXXALIAS_SYS (forkpty, int, + (int *amaster, char *name, + struct termios const *termp, struct winsize const *winp)); +# endif +_GL_CXXALIASWARN (forkpty); #elif defined GNULIB_POSIXCHECK # undef forkpty # if HAVE_RAW_DECL_FORKPTY _GL_WARN_ON_USE (forkpty, "forkpty is not declared consistently - " - "use gnulib module pty for portability"); + "use gnulib module forkpty for portability"); # endif #endif -#if 1 /* FIXME - split openpty into separate module */ +#if @GNULIB_OPENPTY@ +/* Create pseudo tty master slave pair and set terminal attributes + according to TERMP and WINP. Return handles for both ends in + *AMASTER and *ASLAVE, and return the name of the slave end in NAME. */ +# if @REPLACE_OPENPTY@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef openpty +# define openpty rpl_openpty +# endif +_GL_FUNCDECL_RPL (openpty, int, + (int *amaster, int *aslave, char *name, + struct termios const *termp, struct winsize const *winp)); +_GL_CXXALIAS_RPL (openpty, int, + (int *amaster, int *aslave, char *name, + struct termios const *termp, struct winsize const *winp)); +# else +# if !@HAVE_OPENPTY@ +_GL_FUNCDECL_SYS (openpty, int, + (int *amaster, int *aslave, char *name, + struct termios const *termp, struct winsize const *winp)); +# endif +_GL_CXXALIAS_SYS (openpty, int, + (int *amaster, int *aslave, char *name, + struct termios const *termp, struct winsize const *winp)); +# endif +_GL_CXXALIASWARN (openpty); #elif defined GNULIB_POSIXCHECK # undef openpty # if HAVE_RAW_DECL_OPENPTY _GL_WARN_ON_USE (openpty, "openpty is not declared consistently - " - "use gnulib module pty for portability"); + "use gnulib module openpty for portability"); # endif #endif -#endif /* _GL_PTY_H */ -#endif /* _GL_PTY_H */ +#endif /* _@GUARD_PREFIX@_PTY_H */ +#endif /* _@GUARD_PREFIX@_PTY_H */