diff --git a/config.h.cmake b/config.h.cmake index 3bed93bc..df1f6404 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -52,6 +52,9 @@ #cmakedefine HAVE_UTMP_H 1 #cmakedefine HAVE_UTMPX_H 1 #cmakedefine HAVE_VSNPRINTF 1 +#cmakedefine HAVE_STRERROR 1 +#cmakedefine HAVE_STRERROR_PROTO 1 +#cmakedefine HAVE_FDOPEN_PROTO 1 #cmakedefine SCANDIR_NEEDS_CONST 1 // only for Linux diff --git a/ktalkd/ConfigureChecks.cmake b/ktalkd/ConfigureChecks.cmake index 923854b0..d10b5ea4 100644 --- a/ktalkd/ConfigureChecks.cmake +++ b/ktalkd/ConfigureChecks.cmake @@ -17,6 +17,9 @@ check_include_file( utmp.h HAVE_UTMP_H ) check_include_file( utmpx.h HAVE_UTMPX_H ) check_function_exists( vsnprintf HAVE_VSNPRINTF ) +check_function_exists( strerror HAVE_STRERROR ) +check_symbol_exists( strerror "string.h" HAVE_STRERROR_PROTO ) +check_symbol_exists( fdopen "stdio.h" HAVE_FDOPEN_PROTO ) if( ${CMAKE_SYSTEM_NAME} STREQUAL "Linux" ) set( PROC_FIND_USER 1 CACHE INTERNAL "" FORCE ) diff --git a/ktalkd/mail.local/mail.local.c b/ktalkd/mail.local/mail.local.c index 9c90d272..c88351dd 100644 --- a/ktalkd/mail.local/mail.local.c +++ b/ktalkd/mail.local/mail.local.c @@ -232,8 +232,11 @@ static char copyright[] = # define _BSD_VA_LIST_ va_list #endif -#if !defined(BSD4_4) && !defined(linux) && !defined(_UNIXWARE) +#ifndef HAVE_STRERROR_PROTO extern char *strerror __P((int)); +#endif + +#ifndef HAVE_FDOPEN_PROTO extern FILE *fdopen __P((int, const char *)); #endif @@ -831,7 +834,7 @@ e_to_sys(num) } } -#if !defined(BSD4_4) && !defined(__osf__) && !defined(__GLIBC__) +#ifndef HAVE_STRERROR char * strerror(eno)