From bb3522608f97ac2450f5501164b11adda94e9b5f Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Wed, 11 Jul 2012 00:05:21 -0700 Subject: [PATCH] Assume mkdir, rmdir. --- ChangeLog | 4 +- admin/CPP-DEFINES | 2 - admin/ChangeLog | 5 +- configure.ac | 2 +- src/ChangeLog | 4 ++ src/sysdep.c | 126 ---------------------------------------------- 6 files changed, 10 insertions(+), 133 deletions(-) diff --git a/ChangeLog b/ChangeLog index af41ed6096..cb722a7348 100644 --- a/ChangeLog +++ b/ChangeLog @@ -7,8 +7,8 @@ 2012-07-11 Paul Eggert - Assume rename, strerror. - * configure.ac (rename, strerror): Remove check. + Assume mkdir, rename, rmdir, strerror. + * configure.ac (mkdir, rename, rmdir, strerror): Remove check. 2012-07-11 Glenn Morris diff --git a/admin/CPP-DEFINES b/admin/CPP-DEFINES index 7f4aa69989..5676225077 100644 --- a/admin/CPP-DEFINES +++ b/admin/CPP-DEFINES @@ -131,7 +131,6 @@ HAVE_LOGB HAVE_LONG_FILE_NAMES HAVE_LRAND48 HAVE_MENUS -HAVE_MKDIR HAVE_MKTIME HAVE_MOUSE HAVE_PSTAT_GETDYNAMIC @@ -139,7 +138,6 @@ HAVE_PWD_H HAVE_RANDOM HAVE_RES_INIT HAVE_RINT -HAVE_RMDIR HAVE_SELECT HAVE_SETLOCALE HAVE_SETPGID diff --git a/admin/ChangeLog b/admin/ChangeLog index c139e99f60..a09e067620 100644 --- a/admin/ChangeLog +++ b/admin/ChangeLog @@ -1,7 +1,8 @@ 2012-07-11 Paul Eggert - Assume perror, rename, strerror. - * CPP-DEFINES (HAVE_PERROR, HAVE_RENAME, HAVE_STRERROR, strerror): + Assume mkdir, perror, rename, rmdir, strerror. + * CPP-DEFINES (HAVE_MKDIR, HAVE_PERROR, HAVE_RENAME, HAVE_RMDIR) + (HAVE_STRERROR, strerror): Remove. 2012-07-10 Dmitry Antipov diff --git a/configure.ac b/configure.ac index 4c4c1ea901..c191caeea7 100644 --- a/configure.ac +++ b/configure.ac @@ -2708,7 +2708,7 @@ AC_SUBST(BLESSMAIL_TARGET) AC_CHECK_FUNCS(gethostname \ -closedir mkdir rmdir getrusage get_current_dir_name \ +closedir getrusage get_current_dir_name \ lrand48 logb frexp fmod cbrt setsid \ fpathconf select euidaccess getpagesize setlocale \ utimes getrlimit setrlimit setpgid getcwd shutdown getaddrinfo \ diff --git a/src/ChangeLog b/src/ChangeLog index 140cd54d8c..0dc0f01006 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -20,6 +20,10 @@ 2012-07-11 Paul Eggert + Assume mkdir, rmdir. + * sysdep.c (mkdir) [!HAVE_MKDIR]: Remove. + * sysdep.c (rmdir) [!HAVE_RMDIR]: Remove. + Assume rename. * sysdep.c (rename) [!HAVE_RENAME]: Remove. diff --git a/src/sysdep.c b/src/sysdep.c index 274e000e9f..7d0855b543 100644 --- a/src/sysdep.c +++ b/src/sysdep.c @@ -2074,132 +2074,6 @@ set_file_times (int fd, const char *filename, timespec[1] = mtime; return fdutimens (fd, filename, timespec); } - -/* mkdir and rmdir functions, for systems which don't have them. */ - -#ifndef HAVE_MKDIR -/* - * Written by Robert Rother, Mariah Corporation, August 1985. - * - * If you want it, it's yours. All I ask in return is that if you - * figure out how to do this in a Bourne Shell script you send me - * a copy. - * sdcsvax!rmr or rmr@uscd - * - * 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. - */ - -/* - * Make a directory. - */ -int -mkdir (char *dpath, int dmode) -{ - pid_t cpid; - int status, fd; - struct stat statbuf; - - if (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; - - synch_process_alive = 1; - switch (cpid = fork ()) - { - - case -1: /* Error in fork */ - return (-1); /* Errno is set already */ - - case 0: /* Child process */ - /* - * Cheap hack to set mode of new directory. Since this - * child process is going away anyway, we zap its umask. - * FIXME, this won't suffice to set SUID, SGID, etc. on this - * directory. Does anybody care? - */ - status = umask (0); /* Get current umask */ - status = umask (status | (0777 & ~dmode)); /* Set for mkdir */ - fd = emacs_open ("/dev/null", O_RDWR, 0); - if (fd >= 0) - { - dup2 (fd, 0); - dup2 (fd, 1); - dup2 (fd, 2); - } - execl ("/bin/mkdir", "mkdir", dpath, (char *) 0); - _exit (-1); /* Can't exec /bin/mkdir */ - - default: /* Parent process */ - wait_for_termination (cpid); - } - - if (synch_process_death != 0 || synch_process_retcode != 0 - || synch_process_termsig != 0) - { - errno = EIO; /* We don't know why, but */ - return -1; /* /bin/mkdir failed */ - } - - return 0; -} -#endif /* not HAVE_MKDIR */ - -#ifndef HAVE_RMDIR -int -rmdir (char *dpath) -{ - int cpid, status, fd; - struct stat statbuf; - - if (stat (dpath, &statbuf) != 0) - { - /* Stat just set errno. We don't have to */ - return -1; - } - - synch_process_alive = 1; - switch (cpid = fork ()) - { - - case -1: /* Error in fork */ - return (-1); /* Errno is set already */ - - case 0: /* Child process */ - fd = emacs_open ("/dev/null", O_RDWR, 0); - if (fd >= 0) - { - dup2 (fd, 0); - dup2 (fd, 1); - dup2 (fd, 2); - } - execl ("/bin/rmdir", "rmdir", dpath, (char *) 0); - _exit (-1); /* Can't exec /bin/rmdir */ - - default: /* Parent process */ - wait_for_termination (cpid); - } - - if (synch_process_death != 0 || synch_process_retcode != 0 - || synch_process_termsig != 0) - { - errno = EIO; /* We don't know why, but */ - return -1; /* /bin/rmdir failed */ - } - - return 0; -} -#endif /* !HAVE_RMDIR */ - #ifndef HAVE_STRSIGNAL char * -- 2.39.2