Re: branch-1_4 maketemp cleanup
Eric Blake <[email protected]>
| Newsgroups | gmane.comp.gnu.m4.patches |
|---|---|
| Message-ID | <[email protected]> |
Eric Blake <ebb9 <at> byu.net> writes: > >>> Would it make sense to also implement a mkdtemp macro for head? > > > > Sure, that seems like a great idea to me. > > Done: And cleaned up a bit, now that gnulib provides a tempname module. 2006-10-27 Eric Blake <[email protected]> * ltdl/m4/gnulib-cache.m4: Augment with 'gnulib-tool --import tempname'. * modules/m4.c (m4_make_temp): Use it. * tests/builtins.at (mkstemp, mkdtemp): Update message wording. Index: ltdl/m4/gnulib-cache.m4 =================================================================== RCS file: /sources/m4/m4/ltdl/m4/gnulib-cache.m4,v retrieving revision 1.16 diff -u -r1.16 gnulib-cache.m4 --- ltdl/m4/gnulib-cache.m4 26 Oct 2006 23:19:12 -0000 1.16 +++ ltdl/m4/gnulib-cache.m4 27 Oct 2006 15:14:03 -0000 @@ -15,11 +15,11 @@ # Specification in the form of a command-line invocation: -# gnulib-tool --import --dir=. --lib=libgnu --source-base=gnu --m4- base=ltdl/m4 --doc-base=doc --aux-dir=ltdl/config --libtool --macro-prefix=M4 assert avltree-list binary-io clean-temp cloexec close-stream closeout configmake dirname error exit fdl filenamecat fopen-safer free gendocs gettext gnupload mkstemp obstack progname regex regexprops-generic stdbool stdlib-safer strnlen strtol unlocked-io verror xalloc xalloc-die xstrndup xstrtol xvasprintf +# gnulib-tool --import --dir=. --lib=libgnu --source-base=gnu --m4- base=ltdl/m4 --doc-base=doc --aux-dir=ltdl/config --libtool --macro-prefix=M4 assert avltree-list binary-io clean-temp cloexec close-stream closeout configmake dirname error exit fdl filenamecat fopen-safer free gendocs gettext gnupload mkstemp obstack progname regex regexprops-generic stdbool stdlib-safer strnlen strtol tempname unlocked-io verror xalloc xalloc-die xstrndup xstrtol xvasprintf # Specification in the form of a few gnulib-tool.m4 macro invocations: gl_LOCAL_DIR([]) -gl_MODULES([assert avltree-list binary-io clean-temp cloexec close-stream closeout configmake dirname error exit fdl filenamecat fopen-safer free gendocs gettext gnupload mkstemp obstack progname regex regexprops-generic stdbool stdlib-safer strnlen strtol unlocked-io verror xalloc xalloc-die xstrndup xstrtol xvasprintf]) +gl_MODULES([assert avltree-list binary-io clean-temp cloexec close-stream closeout configmake dirname error exit fdl filenamecat fopen-safer free gendocs gettext gnupload mkstemp obstack progname regex regexprops-generic stdbool stdlib-safer strnlen strtol tempname unlocked-io verror xalloc xalloc-die xstrndup xstrtol xvasprintf]) gl_AVOID([]) gl_SOURCE_BASE([gnu]) gl_M4_BASE([ltdl/m4]) Index: modules/m4.c =================================================================== RCS file: /sources/m4/m4/modules/m4.c,v retrieving revision 1.87 diff -u -r1.87 m4.c --- modules/m4.c 25 Oct 2006 23:19:19 -0000 1.87 +++ modules/m4.c 27 Oct 2006 15:14:03 -0000 @@ -23,6 +23,7 @@ #include <errno.h> #include "stdlib--.h" +#include "tempname.h" #include "unistd--.h" #if HAVE_SYS_WAIT_H @@ -708,18 +709,15 @@ /* Make the temporary object. */ errno = 0; - if (dir) - fd = mkdtemp (obstack_base (obs)) ? 0 : -1; - else - fd = mkstemp_safer (obstack_base (obs)); + fd = gen_tempname (obstack_base (obs), dir ? GT_DIR : GT_FILE); if (fd < 0) { /* This use of _() will need to change if xgettext ever changes its undocumented behavior of parsing both string options. */ m4_error (context, 0, errno, - _(dir ? "%s: cannot create directory `%s'" - : "%s: cannot create file `%s'"), + _(dir ? "%s: cannot create directory from template `%s'" + : "%s: cannot create file from template `%s'"), macro, name); obstack_free (obs, obstack_finish (obs)); } Index: tests/builtins.at =================================================================== RCS file: /sources/m4/m4/tests/builtins.at,v retrieving revision 1.28 diff -u -r1.28 builtins.at --- tests/builtins.at 26 Oct 2006 23:19:12 -0000 1.28 +++ tests/builtins.at 27 Oct 2006 15:14:03 -0000 @@ -515,7 +515,7 @@ [[mkdtemp(`no_such_dir/m4-fooXXXXXX') ]]) AT_CHECK_M4([in], [1], [[ -]], [[m4:in:1: mkdtemp: cannot create directory `no_such_dir/m4-fooXXXXXX': No such file or directory +]], [[m4:in:1: mkdtemp: cannot create directory from template `no_such_dir/m4- fooXXXXXX': No such file or directory ]]) dnl Check that umask has an effect @@ -541,7 +541,7 @@ [[mkstemp(`no_such_dir/m4-fooXXXXXX') ]]) AT_CHECK_M4([in], [1], [[ -]], [[m4:in:1: mkstemp: cannot create file `no_such_dir/m4-fooXXXXXX': No such file or directory +]], [[m4:in:1: mkstemp: cannot create file from template `no_such_dir/m4- fooXXXXXX': No such file or directory ]]) dnl Check that umask has an effect