diff options
author | Matt Wette <mwette@alumni.caltech.edu> | 2020-03-22 09:12:37 -0700 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2020-03-22 18:00:06 +0100 |
commit | b62d849d369ad95572a6a83f243045a5b81c7d00 (patch) | |
tree | 4966e2702706a8ad1e6b16ec0dbee39fb571deb8 | |
parent | bef5e0b3938cc88e3a1a1ac590b009875cc38162 (diff) | |
download | guile-b62d849d369ad95572a6a83f243045a5b81c7d00.tar.gz |
Deprecate 'tmpnam' and add '--disable-tmpnam' configure option.
* configure.ac: Add '--disable-tmpnam'.
* libguile/posix.c (tmpnam): Conditionalize on 'SCM_ENABLE_DEPRECATED'
and 'ENABLE_TMPNAM'. Call 'scm_c_issue_deprecation_warning'.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r-- | configure.ac | 8 | ||||
-rw-r--r-- | libguile/posix.c | 11 |
2 files changed, 19 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac index 6198c7e6e..3e96094f6 100644 --- a/configure.ac +++ b/configure.ac @@ -166,6 +166,10 @@ AC_ARG_ENABLE(regex, [ --disable-regex omit regular expression interfaces],, enable_regex=yes) +AC_ARG_ENABLE(tmpnam, + AS_HELP_STRING([--disable-tmpnam],[omit POSIX tmpnam]),, + enable_tmpnam=yes) + AC_ARG_ENABLE([deprecated], AS_HELP_STRING([--disable-deprecated],[omit deprecated features])) @@ -909,6 +913,10 @@ if test "$enable_regex" = yes; then AC_DEFINE([ENABLE_REGEX], 1, [Define when regex support is enabled.]) fi +if test "$enable_tmpnam" = yes; then + AC_DEFINE([ENABLE_TMPNAM], 1, [Define when tmpnam support is enabled.]) +fi + AC_REPLACE_FUNCS([strerror memmove]) # Reasons for testing: diff --git a/libguile/posix.c b/libguile/posix.c index a1520abc4..9b9b47636 100644 --- a/libguile/posix.c +++ b/libguile/posix.c @@ -87,6 +87,10 @@ #include "vectors.h" #include "version.h" +#if (SCM_ENABLE_DEPRECATED == 1) +#include "deprecation.h" +#endif + #include "posix.h" #if HAVE_SYS_WAIT_H @@ -1588,6 +1592,8 @@ SCM_DEFINE (scm_environ, "environ", 0, 1, 0, } #undef FUNC_NAME +#if (SCM_ENABLE_DEPRECATED == 1) +#ifdef ENABLE_TMPNAM #ifdef L_tmpnam SCM_DEFINE (scm_tmpnam, "tmpnam", 0, 0, 0, @@ -1602,6 +1608,9 @@ SCM_DEFINE (scm_tmpnam, "tmpnam", 0, 0, 0, char name[L_tmpnam]; char *rv; + scm_c_issue_deprecation_warning + ("Use of tmpnam is deprecated. Use mkstemp! instead."); + SCM_SYSCALL (rv = tmpnam (name)); if (rv == NULL) /* not SCM_SYSERROR since errno probably not set. */ @@ -1611,6 +1620,8 @@ SCM_DEFINE (scm_tmpnam, "tmpnam", 0, 0, 0, #undef FUNC_NAME #endif +#endif +#endif SCM_DEFINE (scm_tmpfile, "tmpfile", 0, 0, 0, (void), |