X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fpty.in.h;h=bba4ba1a63241bec11e33f542beddc47c364fcce;hb=9be7a7f2520e9d3dd7ff625823b0ca77de1137e6;hp=8d80f8aacdc76dd9f5eb451a8558d456bbb8ef76;hpb=953fd38889e35a0ddbf8e9ada17f4fd001662003;p=gnulib.git diff --git a/lib/pty.in.h b/lib/pty.in.h index 8d80f8aac..bba4ba1a6 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-2011 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 @@ -15,28 +15,34 @@ along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -#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 + /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ @@ -44,24 +50,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 */