emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs-25 df441b3: Fix OS X specific settings in tramp-test


From: Michael Albinus
Subject: [Emacs-diffs] emacs-25 df441b3: Fix OS X specific settings in tramp-tests
Date: Thu, 31 Mar 2016 09:45:52 +0000

branch: emacs-25
commit df441b362c25c4ad59ea3d83137328d0d4098eaf
Author: Michael Albinus <address@hidden>
Commit: Michael Albinus <address@hidden>

    Fix OS X specific settings in tramp-tests
    
    * lisp/net/tramp-sh.el (tramp-maybe-open-connection): Use it.
    
    * lisp/net/tramp.el (tramp-get-local-locale): New defun.
    
    * test/automated/tramp-tests.el (tramp--test-darwin-p): Remove.
    (tramp--test-utf8): Improve settings of coding systems.
    Do not use `tramp--test-darwin-p' anymore.  (Bug#22145)
---
 lisp/net/tramp-sh.el          |    4 ++--
 lisp/net/tramp.el             |   20 ++++++++++++++++++++
 test/automated/tramp-tests.el |   22 ++++++++--------------
 3 files changed, 30 insertions(+), 16 deletions(-)

diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index 9fa4610..5b90832 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -2865,7 +2865,7 @@ This is like `dired-recursive-delete-directory' for Tramp 
files."
          (narrow-to-region (point) (point))
          ;; We cannot use `insert-buffer-substring' because the Tramp
          ;; buffer changes its contents before insertion due to calling
-         ;; `expand-file' and alike.
+         ;; `expand-file-name' and alike.
          (insert
           (with-current-buffer (tramp-get-buffer v)
             (buffer-string)))
@@ -4865,7 +4865,7 @@ connection if a previous connection has died for some 
reason."
              (when (and p (processp p))
                (delete-process p))
              (setenv "TERM" tramp-terminal-type)
-             (setenv "LC_ALL" "en_US.utf8")
+             (setenv "LC_ALL" (tramp-get-local-locale vec))
              (if (stringp tramp-histfile-override)
                  (setenv "HISTFILE" tramp-histfile-override)
                (if tramp-histfile-override
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 4396216..19dced6 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -3939,6 +3939,26 @@ This is used internally by `tramp-file-mode-from-int'."
       (tramp-compat-funcall 'group-gid)
     (nth 3 (tramp-compat-file-attributes "~/" id-format))))
 
+(defun tramp-get-local-locale (&optional vec)
+  ;; We use key nil for local connection properties.
+  (with-tramp-connection-property nil "locale"
+    (let ((candidates '("en_US.utf8" "C.utf8" "en_US.UTF-8"))
+         locale)
+      (with-temp-buffer
+       (unless (or (memq system-type '(windows-nt))
+                    (not (zerop (tramp-call-process
+                                 nil "locale" nil t nil "-a"))))
+         (while candidates
+           (goto-char (point-min))
+           (if (string-match (format "^%s\r?$" (regexp-quote (car candidates)))
+                             (buffer-string))
+               (setq locale (car candidates)
+                     candidates nil)
+             (setq candidates (cdr candidates))))))
+      ;; Return value.
+      (when vec (tramp-message vec 7 "locale %s" (or locale "C")))
+      (or locale "C"))))
+
 ;;;###tramp-autoload
 (defun tramp-check-cached-permissions (vec access)
   "Check `file-attributes' caches for VEC.
diff --git a/test/automated/tramp-tests.el b/test/automated/tramp-tests.el
index d9563ec..a12ee38 100644
--- a/test/automated/tramp-tests.el
+++ b/test/automated/tramp-tests.el
@@ -1785,14 +1785,6 @@ Several special characters do not work properly there."
       (file-truename tramp-test-temporary-file-directory) nil
     (string-match "^HP-UX" (tramp-get-connection-property v "uname" ""))))
 
-(defun tramp--test-darwin-p ()
-  "Check, whether the remote host runs Mac OS X.
-Several special characters do not work properly there."
-  ;; We must refill the cache.  `file-truename' does it.
-  (with-parsed-tramp-file-name
-      (file-truename tramp-test-temporary-file-directory) nil
-    (string-match "^Darwin" (tramp-get-connection-property v "uname" ""))))
-
 (defun tramp--test-check-files (&rest files)
   "Run a simple but comprehensive test over every file in FILES."
   ;; We must use `file-truename' for the temporary directory, because
@@ -2041,15 +2033,17 @@ Use the `ls' command."
 
 (defun tramp--test-utf8 ()
   "Perform the test in `tramp-test32-utf8*'."
-  (let ((coding-system-for-read 'utf-8)
-       (coding-system-for-write 'utf-8)
-       (file-name-coding-system 'utf-8))
+  (let* ((utf8 (if (and (eq system-type 'darwin)
+                       (memq 'utf-8-hfs (coding-system-list)))
+                  'utf-8-hfs 'utf-8))
+        (coding-system-for-read utf8)
+        (coding-system-for-write utf8)
+        (file-name-coding-system utf8))
     (tramp--test-check-files
      (unless (tramp--test-hpux-p) "Γυρίστε το Γαλαξία με Ώτο Στοπ")
-     (unless (or (tramp--test-hpux-p) (tramp--test-darwin-p))
+     (unless (tramp--test-hpux-p)
        "أصبح بوسعك الآن تنزيل نسخة كاملة من موسوعة ويكيبيديا العربية لتصفحها 
بلا اتصال بالإنترنت")
-     (unless (tramp--test-darwin-p)
-       "银河系漫游指南系列")
+     "银河系漫游指南系列"
      "Автостопом по гала́ктике")))
 
 (ert-deftest tramp-test32-utf8 ()



reply via email to

[Prev in Thread] Current Thread [Next in Thread]