# HG changeset patch # User John W. Eaton # Date 1261804812 18000 # Node ID 0f312e11957e0fb81182a38c3f5713f685dcc9a6 # Parent 9b3a100922a6a2500251000c988035bf70e5972e use mkdir module from gnulib diff -r 9b3a100922a6 -r 0f312e11957e ChangeLog --- a/ChangeLog Fri Dec 25 22:26:19 2009 -0500 +++ b/ChangeLog Sat Dec 26 00:20:12 2009 -0500 @@ -1,3 +1,10 @@ +2009-12-25 John W. Eaton + + * bootstrap.conf (gnulib_modules): Include mkdir in the list. + * configure.ac: Don't check for mkdir. + Don't call OCTAVE_MKDIR_TAKES_ONE_ARG. + * acinclude.m4 (OCTAVE_MKDIR_TAKES_ONE_ARG): Delete. + 2009-12-25 John W. Eaton * bootstrap.conf (gnulib_modules): Include crypto/md5 in the list. diff -r 9b3a100922a6 -r 0f312e11957e acinclude.m4 --- a/acinclude.m4 Fri Dec 25 22:26:19 2009 -0500 +++ b/acinclude.m4 Sat Dec 26 00:20:12 2009 -0500 @@ -811,28 +811,6 @@ fi AC_LANG_POP(C++)]) dnl -dnl Determine if mkdir accepts only one argument instead dnl of the usual 2. -dnl -AC_DEFUN([OCTAVE_MKDIR_TAKES_ONE_ARG], [ -AC_LANG_PUSH(C++) -AC_CACHE_CHECK([if mkdir takes one argument], octave_cv_mkdir_takes_one_arg, -[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include -#ifdef HAVE_SYS_STAT_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif -#ifdef HAVE_DIRECT_H -# include -#endif]], [[mkdir ("foo", 0);]])], - octave_cv_mkdir_takes_one_arg=no, octave_cv_mkdir_takes_one_arg=yes)]) -AC_LANG_POP(C++) -if test $octave_cv_mkdir_takes_one_arg = yes ; then - AC_DEFINE(MKDIR_TAKES_ONE_ARG, 1, [Define if host mkdir takes a single argument.]) -fi -]) -dnl dnl Find find. dnl # Prefer GNU find if found. diff -r 9b3a100922a6 -r 0f312e11957e bootstrap.conf --- a/bootstrap.conf Fri Dec 25 22:26:19 2009 -0500 +++ b/bootstrap.conf Sat Dec 26 00:20:12 2009 -0500 @@ -18,9 +18,10 @@ # gnulib modules used by this package. gnulib_modules=" + crypto/md5 fnmatch glob - crypto/md5 + mkdir strftime " diff -r 9b3a100922a6 -r 0f312e11957e configure.ac --- a/configure.ac Fri Dec 25 22:26:19 2009 -0500 +++ b/configure.ac Sat Dec 26 00:20:12 2009 -0500 @@ -1435,7 +1435,7 @@ getegid geteuid getgid getgrent getgrgid getgrnam getpgrp getpid \ getppid getpwent getpwuid gettimeofday getuid getwd _kbhit kill \ lgamma lgammaf lgamma_r lgammaf_r link localtime_r log1p log1pf lstat \ - memmove mkdir mkfifo mkstemp on_exit pipe poll putenv raise readlink \ + memmove mkfifo mkstemp on_exit pipe poll putenv raise readlink \ realpath rename resolvepath rindex rmdir roundl select setgrent setlocale \ setpwent setvbuf sigaction siglongjmp sigpending sigprocmask sigsuspend \ snprintf stat strcasecmp strdup strerror stricmp strncasecmp \ @@ -1731,9 +1731,6 @@ AC_CHECK_MEMBERS(struct group.gr_passwd) -# mkdir takes a single argument on some systems. -OCTAVE_MKDIR_TAKES_ONE_ARG - octave_found_termlib=no for termlib in ncurses curses termcap terminfo termlib; do AC_CHECK_LIB(${termlib}, tputs, [ diff -r 9b3a100922a6 -r 0f312e11957e liboctave/ChangeLog --- a/liboctave/ChangeLog Fri Dec 25 22:26:19 2009 -0500 +++ b/liboctave/ChangeLog Sat Dec 26 00:20:12 2009 -0500 @@ -1,3 +1,10 @@ +2009-12-25 John W. Eaton + + * file-ops.cc (file_ops::mkdir): Assume we have an mkdir + function that takes two arguments. + * mkdir.c: Delete. + * Makefile.am (LIBOCTAVE_C_SOURCES): Remove mkdir.c from the list. + 2009-12-25 John W. Eaton * oct-md5.cc (oct_md5_result_to_str): New function. diff -r 9b3a100922a6 -r 0f312e11957e liboctave/Makefile.am --- a/liboctave/Makefile.am Fri Dec 25 22:26:19 2009 -0500 +++ b/liboctave/Makefile.am Sat Dec 26 00:20:12 2009 -0500 @@ -456,7 +456,6 @@ getopt1.c \ lo-cieee.c \ lo-cutils.c \ - mkdir.c \ oct-getopt.c \ randgamma.c \ randmtzig.c \ diff -r 9b3a100922a6 -r 0f312e11957e liboctave/file-ops.cc --- a/liboctave/file-ops.cc Fri Dec 25 22:26:19 2009 -0500 +++ b/liboctave/file-ops.cc Sat Dec 26 00:20:12 2009 -0500 @@ -108,22 +108,13 @@ int status = -1; -#if defined (HAVE_MKDIR) - -#if defined (MKDIR_TAKES_ONE_ARG) - status = ::mkdir (name.c_str ()); -#else status = ::mkdir (name.c_str (), mode); -#endif if (status < 0) { using namespace std; msg = ::strerror (errno); } -#else - msg = NOT_SUPPORTED ("mkdir"); -#endif return status; } diff -r 9b3a100922a6 -r 0f312e11957e liboctave/mkdir.c --- a/liboctave/mkdir.c Fri Dec 25 22:26:19 2009 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,106 +0,0 @@ -/* mkdir.c -- BSD compatible make directory function for System V - Copyright (C) 1988, 1990 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA. */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#ifndef HAVE_MKDIR - -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#include -#include -#ifndef errno -extern int errno; -#endif - -#ifdef STAT_MACROS_BROKEN -#undef S_ISDIR -#endif - -#if !defined(S_ISDIR) && defined(S_IFDIR) -#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) -#endif - -#include "safe-stat.h" - -/* mkdir adapted from GNU tar. */ - -/* Make directory DPATH, with permission mode DMODE. - - Written by Robert Rother, Mariah Corporation, August 1985 - (sdcsvax!rmr or rmr@uscd). If you want it, it's yours. - - Severely hacked over by John Gilmore to make a 4.2BSD compatible - subroutine. 11Mar86; hoptoad!gnu - - Modified by rmtodd@uokmax 6-28-87 -- when making an already existing dir, - subroutine didn't return EEXIST. It does now. */ - -int -mkdir (dpath, dmode) - char *dpath; - int dmode; -{ - int cpid, status; - struct stat statbuf; - - if (SAFE_STAT (dpath, &statbuf) == 0) - { - errno = EEXIST; /* stat worked, so it already exists. */ - return -1; - } - - /* If stat fails for a reason other than non-existence, return error. */ - if (errno != ENOENT) - return -1; - - cpid = fork (); - switch (cpid) - { - case -1: /* Cannot fork. */ - return -1; /* errno is already set. */ - - case 0: /* Child process. */ - /* Cheap hack to set mode of new directory. Since this child - process is going away anyway, we zap its umask. - This won't suffice to set SUID, SGID, etc. on this - directory, so the parent process calls chmod afterward. */ - status = umask (0); /* Get current umask. */ - umask (status | (0777 & ~dmode)); /* Set for mkdir. */ - execl ("/bin/mkdir", "mkdir", dpath, (char *) 0); - _exit (1); - - default: /* Parent process. */ - /* Wait for kid to finish. */ - while (wait (&status) != cpid) - /* Do nothing. */ ; - - if (status & 0xFFFF) - { - /* /bin/mkdir failed. */ - errno = EIO; - return -1; - } - return chmod (dpath, dmode); - } -} - -#endif