summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2023-01-21 21:13:20 +0100
committerBruno Haible <bruno@clisp.org>2023-01-21 21:13:20 +0100
commit9041103ed4a5bd4406d05cf12e46330b3dabb33c (patch)
tree262250837ca28be59f8f7893867997c4f105fe6b /modules
parent6470d1e832f629e9366a168382be66328968a706 (diff)
downloadgnulib-9041103ed4a5bd4406d05cf12e46330b3dabb33c.tar.gz
login_tty: Ensure declaration in <utmp.h>.
* tests/test-utmp-c++.cc: New file. * modules/utmp-c++-tests: New file. * tests/test-utmp.c: New file. * modules/utmp-tests: New file. * lib/login_tty.c: Include <utmp.h>. * m4/login_tty.m4: New file. (gl_FUNC_LOGIN_TTY): Moved here from m4/pty.m4. Set HAVE_LOGIN_TTY. * m4/pty.m4 (gl_FUNC_LOGIN_TTY): Moved to m4/login_tty.m4. * modules/login_tty (Files): Add m4/login_tty.m4. (Depends-on): Add utmp. Remove pty. Update condition. (configure.ac): Update condition. Invoke gl_UTMP_MODULE_INDICATOR instead of gl_PTY_MODULE_INDICATOR. (Include): List <utmp.h>. * doc/glibc-functions/login_tty.texi: Mark the include file diversity as fixed. * tests/test-login_tty.c: Include <utmp.h>. Don't declare login_tty here. * lib/utmp.in.h: New file. * m4/utmp_h.m4: New file. * modules/utmp: New file. * doc/glibc-headers/utmp.texi: New file. * doc/gnulib.texi (Glibc Header File Substitutes): Include it.
Diffstat (limited to 'modules')
-rw-r--r--modules/login_tty11
-rw-r--r--modules/utmp49
-rw-r--r--modules/utmp-c++-tests19
-rw-r--r--modules/utmp-tests11
4 files changed, 85 insertions, 5 deletions
diff --git a/modules/login_tty b/modules/login_tty
index aa46b7f8b0..7b09ec1bd2 100644
--- a/modules/login_tty
+++ b/modules/login_tty
@@ -4,17 +4,18 @@ standard input, standard output, standard error of the current process.
Files:
lib/login_tty.c
+m4/login_tty.m4
m4/pty.m4
Depends-on:
-pty
+utmp
sys_ioctl
-open [test $ac_cv_func_login_tty = no]
+open [test $HAVE_LOGIN_TTY = 0]
configure.ac:
gl_FUNC_LOGIN_TTY
-gl_CONDITIONAL([GL_COND_OBJ_LOGIN_TTY], [test $ac_cv_func_login_tty = no])
-gl_PTY_MODULE_INDICATOR([login_tty])
+gl_CONDITIONAL([GL_COND_OBJ_LOGIN_TTY], [test $HAVE_LOGIN_TTY = 0])
+gl_UTMP_MODULE_INDICATOR([login_tty])
Makefile.am:
if GL_COND_OBJ_LOGIN_TTY
@@ -22,7 +23,7 @@ lib_SOURCES += login_tty.c
endif
Include:
-extern int login_tty (int);
+<utmp.h>
Link:
$(PTY_LIB)
diff --git a/modules/utmp b/modules/utmp
new file mode 100644
index 0000000000..3a02f01364
--- /dev/null
+++ b/modules/utmp
@@ -0,0 +1,49 @@
+Description:
+A GNU-like <utmp.h>.
+
+Files:
+lib/utmp.in.h
+m4/utmp_h.m4
+
+Depends-on:
+gen-header
+include_next
+snippet/c++defs
+snippet/warn-on-use
+
+configure.ac:
+gl_UTMP_H
+gl_UTMP_H_REQUIRE_DEFAULTS
+AC_PROG_MKDIR_P
+
+Makefile.am:
+BUILT_SOURCES += utmp.h
+
+# We need the following in order to create <utmp.h> when the system
+# doesn't have one that works with the given compiler.
+utmp.h: utmp.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
+@NMD@ $(AM_V_GEN)$(MKDIR_P) '%reldir%'
+ $(gl_V_at)$(SED_HEADER_STDOUT) \
+ -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \
+ -e 's/@''HAVE_UTMP_H''@/$(HAVE_UTMP_H)/g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ -e 's|@''NEXT_UTMP_H''@|$(NEXT_UTMP_H)|g' \
+ -e 's/@''GNULIB_LOGIN_TTY''@/$(GNULIB_LOGIN_TTY)/g' \
+ -e 's|@''HAVE_LOGIN_TTY''@|$(HAVE_LOGIN_TTY)|g' \
+ -e 's|@''REPLACE_LOGIN_TTY''@|$(REPLACE_LOGIN_TTY)|g' \
+ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
+ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
+ $(srcdir)/utmp.in.h > $@-t
+ $(AM_V_at)mv $@-t $@
+MOSTLYCLEANFILES += utmp.h utmp.h-t
+
+Include:
+<utmp.h>
+
+License:
+LGPLv2+
+
+Maintainer:
+all
diff --git a/modules/utmp-c++-tests b/modules/utmp-c++-tests
new file mode 100644
index 0000000000..814dfc36db
--- /dev/null
+++ b/modules/utmp-c++-tests
@@ -0,0 +1,19 @@
+Files:
+tests/test-utmp-c++.cc
+tests/signature.h
+
+Status:
+c++-test
+
+Depends-on:
+ansi-c++-opt
+
+configure.ac:
+
+Makefile.am:
+if ANSICXX
+TESTS += test-utmp-c++
+check_PROGRAMS += test-utmp-c++
+test_utmp_c___SOURCES = test-utmp-c++.cc
+test_utmp_c___LDADD = $(LDADD) $(PTY_LIB)
+endif
diff --git a/modules/utmp-tests b/modules/utmp-tests
new file mode 100644
index 0000000000..4fa3d62aa8
--- /dev/null
+++ b/modules/utmp-tests
@@ -0,0 +1,11 @@
+Files:
+tests/test-utmp.c
+
+Depends-on:
+utmp-c++-tests
+
+configure.ac:
+
+Makefile.am:
+TESTS += test-utmp
+check_PROGRAMS += test-utmp