diff options
| -rw-r--r-- | src/fileio.c | 3 | ||||
| -rw-r--r-- | test/src/fileio-tests.el | 20 |
2 files changed, 12 insertions, 11 deletions
diff --git a/src/fileio.c b/src/fileio.c index d1a7f39ac95..968a55e5956 100644 --- a/src/fileio.c +++ b/src/fileio.c | |||
| @@ -2690,7 +2690,8 @@ file_name_absolute_p (char const *filename) | |||
| 2690 | { | 2690 | { |
| 2691 | return (IS_ABSOLUTE_FILE_NAME (filename) | 2691 | return (IS_ABSOLUTE_FILE_NAME (filename) |
| 2692 | || (filename[0] == '~' | 2692 | || (filename[0] == '~' |
| 2693 | && (!filename[1] || user_homedir (&filename[1])))); | 2693 | && (!filename[1] || IS_DIRECTORY_SEP (filename[1]) |
| 2694 | || user_homedir (&filename[1])))); | ||
| 2694 | } | 2695 | } |
| 2695 | 2696 | ||
| 2696 | DEFUN ("file-exists-p", Ffile_exists_p, Sfile_exists_p, 1, 1, 0, | 2697 | DEFUN ("file-exists-p", Ffile_exists_p, Sfile_exists_p, 1, 1, 0, |
diff --git a/test/src/fileio-tests.el b/test/src/fileio-tests.el index 09a5b147e1d..98d3d6be763 100644 --- a/test/src/fileio-tests.el +++ b/test/src/fileio-tests.el | |||
| @@ -137,13 +137,13 @@ Also check that an encoding error can appear in a symlink." | |||
| 137 | (should (and (file-name-absolute-p name) | 137 | (should (and (file-name-absolute-p name) |
| 138 | (not (eq (aref name 0) ?~)))))) | 138 | (not (eq (aref name 0) ?~)))))) |
| 139 | 139 | ||
| 140 | (ert-deftest fileio-tests--no-such-user () | 140 | (ert-deftest fileio-tests--file-name-absolute-p () |
| 141 | "Test file-name-absolute-p on ~nosuchuser." | 141 | "Test file-name-absolute-p." |
| 142 | (unless (user-full-name "nosuchuser") | 142 | (dolist (suffix '("" "/" "//" "/foo" "/foo/" "/foo//" "/foo/bar")) |
| 143 | (should (not (file-name-absolute-p "~nosuchuser"))) | 143 | (unless (string-equal suffix "") |
| 144 | (should (not (file-name-absolute-p "~nosuchuser/"))) | 144 | (should (file-name-absolute-p suffix))) |
| 145 | (should (not (file-name-absolute-p "~nosuchuser//"))) | 145 | (should (file-name-absolute-p (concat "~" suffix))) |
| 146 | (should (not (file-name-absolute-p "~nosuchuser/foo"))) | 146 | (when (user-full-name user-login-name) |
| 147 | (should (not (file-name-absolute-p "~nosuchuser/foo/"))) | 147 | (should (file-name-absolute-p (concat "~" user-login-name suffix)))) |
| 148 | (should (not (file-name-absolute-p "~nosuchuser/foo//"))) | 148 | (unless (user-full-name "nosuchuser") |
| 149 | (should (not (file-name-absolute-p "~nosuchuser/foo/bar"))))) | 149 | (should (not (file-name-absolute-p (concat "~nosuchuser" suffix))))))) |