diff options
| author | Mattias EngdegÄrd | 2022-07-08 15:09:16 +0200 |
|---|---|---|
| committer | Mattias EngdegÄrd | 2022-07-08 15:13:21 +0200 |
| commit | 6791165b2a0e707f719efec08aad62cdf6ed8ad3 (patch) | |
| tree | d98f464114aa6b60c7fa8156e26e3edb9a019585 /test/src | |
| parent | 739e3dbe050468e1d9aa0a48bfc656ae20fd8f9d (diff) | |
| download | emacs-6791165b2a0e707f719efec08aad62cdf6ed8ad3.tar.gz emacs-6791165b2a0e707f719efec08aad62cdf6ed8ad3.zip | |
Fix file-name-case-insensitive-p in ffap (bug#56443)
Don't crash if the file name argument to file-name-case-insensitive-p,
after expansion, doesn't have a parent directory. This occurs
when calling ffap on something that looks like an email address.
* src/fileio.c (Ffile_name_case_insensitive_p): Return nil if no file
or parent directory could be found.
* test/src/fileio-tests.el (fileio-tests--identity-expand-handler)
(fileio--file-name-case-insensitive-p): New test.
Diffstat (limited to 'test/src')
| -rw-r--r-- | test/src/fileio-tests.el | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/test/src/fileio-tests.el b/test/src/fileio-tests.el index c137ce06f1a..08582c8a862 100644 --- a/test/src/fileio-tests.el +++ b/test/src/fileio-tests.el | |||
| @@ -201,4 +201,20 @@ Also check that an encoding error can appear in a symlink." | |||
| 201 | (insert-file-contents "/dev/urandom" nil nil 10) | 201 | (insert-file-contents "/dev/urandom" nil nil 10) |
| 202 | (should (= (buffer-size) 10)))) | 202 | (should (= (buffer-size) 10)))) |
| 203 | 203 | ||
| 204 | (defun fileio-tests--identity-expand-handler (_ file &rest _) | ||
| 205 | file) | ||
| 206 | (put 'fileio-tests--identity-expand-handler 'operations '(expand-file-name)) | ||
| 207 | |||
| 208 | (ert-deftest fileio--file-name-case-insensitive-p () | ||
| 209 | ;; Check that we at least don't crash if given nonexisting files | ||
| 210 | ;; without a directory (bug#56443). | ||
| 211 | |||
| 212 | ;; Use an identity file-name handler, as if called by `ffap'. | ||
| 213 | (let* ((file-name-handler-alist | ||
| 214 | '(("^mailto:" . fileio-tests--identity-expand-handler))) | ||
| 215 | (file "mailto:snowball@hell.com")) | ||
| 216 | ;; Check that `expand-file-name' is identity for this name. | ||
| 217 | (should (equal (expand-file-name file nil) file)) | ||
| 218 | (file-name-case-insensitive-p file))) | ||
| 219 | |||
| 204 | ;;; fileio-tests.el ends here | 220 | ;;; fileio-tests.el ends here |