unistr/u8-chr, unistr/u8-strchr: use Boyer-Moore like algorithm.
[gnulib.git] / lib / pty.in.h
index 8d80f8a..af98dfe 100644 (file)
@@ -37,6 +37,9 @@
 # include <libutil.h>
 #endif
 
+/* Get 'struct termios' and 'struct winsize'.  */
+#include <termios.h>
+
 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
 
 /* The definition of _GL_WARN_ON_USE is copied here.  */
 
 /* 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