diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2017-08-19 17:15:52 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2017-08-19 17:17:09 -0700 |
commit | 83f0d60e498c9cab59e098af6d9c403631ad645c (patch) | |
tree | 38c3968b19d8eb83dc8c0b7c446330bd43383a42 /test/src | |
parent | 1c382c096b8b7d1fa995e6131b887d9128085c68 (diff) | |
download | emacs-83f0d60e498c9cab59e098af6d9c403631ad645c.tar.gz |
Don’t adjust CRLF in file names
* doc/misc/gnus.texi (Non-ASCII Group Names):
* etc/NEWS:
* test/lisp/net/tramp-tests.el (tramp--test-utf8):
Use utf-8-unix, not utf-8, for default-file-name-coding-system, so
that CRLF in file names is left alone.
* lisp/international/mule-cmds.el (set-default-coding-systems):
Do not alter CRLF in file name coding systems.
(prefer-coding-system): Ignore differences in CRLF processing when
checking whether we used the user-specified file name coding system.
* test/src/fileio-tests.el: New file.
Diffstat (limited to 'test/src')
-rw-r--r-- | test/src/fileio-tests.el | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/test/src/fileio-tests.el b/test/src/fileio-tests.el new file mode 100644 index 00000000000..75aca7d0ab8 --- /dev/null +++ b/test/src/fileio-tests.el @@ -0,0 +1,49 @@ +;;; unit tests for src/fileio.c -*- lexical-binding: t; -*- + +;; Copyright 2017 Free Software Foundation, Inc. + +;; This file is part of GNU Emacs. + +;; GNU Emacs is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. + +(require 'ert) + +(defun try-char (char link) + (let ((target (string char))) + (make-symbolic-link target link) + (let* ((read-link (file-symlink-p link)) + (failure (unless (string-equal target read-link) + (list 'string-equal target read-link)))) + (delete-file link) + failure))) + +(defun fileio-tests--symlink-failure () + (let* ((dir (make-temp-file "fileio" t)) + (link (expand-file-name "link" dir))) + (unwind-protect + (let ((failure + (let ((default-file-name-coding-system 'utf-8-unix)) + (try-char (unibyte-char-to-multibyte 128) link))) + (char 0)) + (while (and (not failure) (< char 300)) + (setq char (1+ char)) + (unless (= char ?~) + (setq failure (try-char char link)))) + failure) + (delete-directory dir t)))) + +(ert-deftest fileio-tests--odd-symlink-chars () + "Check that any non-NULL ASCII character can appear in a symlink. +Also check that an encoding error can appear in a symlink." + (should (equal nil (fileio-tests--symlink-failure)))) |