diff options
| author | Paul Eggert | 2019-07-24 11:28:48 -0700 |
|---|---|---|
| committer | Paul Eggert | 2019-07-24 12:11:32 -0700 |
| commit | 50126f2049a03d2910412572c98bafbc26f3db31 (patch) | |
| tree | f10373da4a557b21d25324fa8b555b338c992ec0 /src | |
| parent | f2cc674ebcac8eb38ce09287fd76e3608cd3b5c3 (diff) | |
| download | emacs-50126f2049a03d2910412572c98bafbc26f3db31.tar.gz emacs-50126f2049a03d2910412572c98bafbc26f3db31.zip | |
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.
Diffstat (limited to 'src')
| -rw-r--r-- | src/fileio.c | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/src/fileio.c b/src/fileio.c index 4c7625cad4a..e4269b96a37 100644 --- a/src/fileio.c +++ b/src/fileio.c | |||
| @@ -1778,20 +1778,18 @@ get_homedir (void) | |||
| 1778 | static char * | 1778 | static char * |
| 1779 | search_embedded_absfilename (char *nm, char *endp) | 1779 | search_embedded_absfilename (char *nm, char *endp) |
| 1780 | { | 1780 | { |
| 1781 | char *p, *s; | 1781 | char *p = nm + 1; |
| 1782 | 1782 | #ifdef DOUBLE_SLASH_IS_DISTINCT_ROOT | |
| 1783 | for (p = nm + 1; p < endp; p++) | 1783 | p += (IS_DIRECTORY_SEP (p[-1]) && IS_DIRECTORY_SEP (p[0]) |
| 1784 | && !IS_DIRECTORY_SEP (p[1])); | ||
| 1785 | #endif | ||
| 1786 | for (; p < endp; p++) | ||
| 1784 | { | 1787 | { |
| 1785 | if (IS_DIRECTORY_SEP (p[-1]) | 1788 | if (IS_DIRECTORY_SEP (p[-1]) && file_name_absolute_p (p)) |
| 1786 | && file_name_absolute_p (p) | ||
| 1787 | #if defined (WINDOWSNT) || defined (CYGWIN) | ||
| 1788 | /* // at start of file name is meaningful in Apollo, | ||
| 1789 | WindowsNT and Cygwin systems. */ | ||
| 1790 | && !(IS_DIRECTORY_SEP (p[0]) && p - 1 == nm) | ||
| 1791 | #endif /* not (WINDOWSNT || CYGWIN) */ | ||
| 1792 | ) | ||
| 1793 | { | 1789 | { |
| 1794 | for (s = p; *s && !IS_DIRECTORY_SEP (*s); s++); | 1790 | char *s; |
| 1791 | for (s = p; *s && !IS_DIRECTORY_SEP (*s); s++) | ||
| 1792 | continue; | ||
| 1795 | if (p[0] == '~' && s > p + 1) /* We've got "/~something/". */ | 1793 | if (p[0] == '~' && s > p + 1) /* We've got "/~something/". */ |
| 1796 | { | 1794 | { |
| 1797 | USE_SAFE_ALLOCA; | 1795 | USE_SAFE_ALLOCA; |