diff options
Diffstat (limited to 'lisp/net/tramp.el')
-rw-r--r-- | lisp/net/tramp.el | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index 3b8510ede4..f03ec554b6 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -3747,6 +3747,26 @@ This is used internally by `tramp-file-mode-from-int'." (tramp-compat-funcall 'group-gid) (nth 3 (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. |