[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 50126f2: Port double-slash test to z/OS
From: |
Paul Eggert |
Subject: |
[Emacs-diffs] master 50126f2: Port double-slash test to z/OS |
Date: |
Wed, 24 Jul 2019 15:11:38 -0400 (EDT) |
branch: master
commit 50126f2049a03d2910412572c98bafbc26f3db31
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>
Port double-slash test to z/OS
* admin/merge-gnulib (GNULIB_MODULES): Add double-slash-root.
Emacs was already using this Gnulib module indirectly, so this
is merely noting that there is now a direct dependency.
* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
* src/fileio.c (search_embedded_absfilename):
Use DOUBLE_SLASH_IS_DISTINCT_ROOT instead of (WINDOWSNT || CYGWIN).
Simplify.
---
admin/merge-gnulib | 2 +-
lib/gnulib.mk.in | 1 +
m4/gnulib-comp.m4 | 2 ++
src/fileio.c | 22 ++++++++++------------
4 files changed, 14 insertions(+), 13 deletions(-)
diff --git a/admin/merge-gnulib b/admin/merge-gnulib
index 42e9c0c..50b0c76 100755
--- a/admin/merge-gnulib
+++ b/admin/merge-gnulib
@@ -31,7 +31,7 @@ GNULIB_MODULES='
careadlinkat close-stream copy-file-range
count-leading-zeros count-one-bits count-trailing-zeros
crypto/md5-buffer crypto/sha1-buffer crypto/sha256-buffer
crypto/sha512-buffer
- d-type diffseq dosname dtoastr dtotimespec dup2
+ d-type diffseq dosname double-slash-root dtoastr dtotimespec dup2
environ execinfo explicit_bzero faccessat
fcntl fcntl-h fdopendir
filemode filevercmp flexmember fpieee fstatat fsusage fsync
diff --git a/lib/gnulib.mk.in b/lib/gnulib.mk.in
index 85fdbd2..79580e9 100644
--- a/lib/gnulib.mk.in
+++ b/lib/gnulib.mk.in
@@ -86,6 +86,7 @@
# d-type \
# diffseq \
# dosname \
+# double-slash-root \
# dtoastr \
# dtotimespec \
# dup2 \
diff --git a/m4/gnulib-comp.m4 b/m4/gnulib-comp.m4
index d6b2009..77563ed 100644
--- a/m4/gnulib-comp.m4
+++ b/m4/gnulib-comp.m4
@@ -70,6 +70,7 @@ AC_DEFUN([gl_EARLY],
# Code from module dirent:
# Code from module dirfd:
# Code from module dosname:
+ # Code from module double-slash-root:
# Code from module dtoastr:
# Code from module dtotimespec:
# Code from module dup2:
@@ -227,6 +228,7 @@ AC_DEFUN([gl_INIT],
gl_SHA512
gl_CHECK_TYPE_STRUCT_DIRENT_D_TYPE
gl_DIRENT_H
+ gl_DOUBLE_SLASH_ROOT
gl_FUNC_DUP2
if test $HAVE_DUP2 = 0 || test $REPLACE_DUP2 = 1; then
AC_LIBOBJ([dup2])
diff --git a/src/fileio.c b/src/fileio.c
index 4c7625c..e4269b9 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -1778,20 +1778,18 @@ get_homedir (void)
static char *
search_embedded_absfilename (char *nm, char *endp)
{
- char *p, *s;
-
- for (p = nm + 1; p < endp; p++)
+ char *p = nm + 1;
+#ifdef DOUBLE_SLASH_IS_DISTINCT_ROOT
+ p += (IS_DIRECTORY_SEP (p[-1]) && IS_DIRECTORY_SEP (p[0])
+ && !IS_DIRECTORY_SEP (p[1]));
+#endif
+ for (; p < endp; p++)
{
- if (IS_DIRECTORY_SEP (p[-1])
- && file_name_absolute_p (p)
-#if defined (WINDOWSNT) || defined (CYGWIN)
- /* // at start of file name is meaningful in Apollo,
- WindowsNT and Cygwin systems. */
- && !(IS_DIRECTORY_SEP (p[0]) && p - 1 == nm)
-#endif /* not (WINDOWSNT || CYGWIN) */
- )
+ if (IS_DIRECTORY_SEP (p[-1]) && file_name_absolute_p (p))
{
- for (s = p; *s && !IS_DIRECTORY_SEP (*s); s++);
+ char *s;
+ for (s = p; *s && !IS_DIRECTORY_SEP (*s); s++)
+ continue;
if (p[0] == '~' && s > p + 1) /* We've got "/~something/". */
{
USE_SAFE_ALLOCA;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master 50126f2: Port double-slash test to z/OS,
Paul Eggert <=