From: Michael Albinus Date: Wed, 28 Apr 2021 17:29:36 +0000 (+0200) Subject: Fix gio warning in Tramp X-Git-Tag: emacs-28.0.90~2678 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=0c7f1e2e42d6bf9f95e88c02d4e1ed9cb40693d8;p=emacs.git Fix gio warning in Tramp * lisp/net/tramp-sh.el (tramp-sh-gio-monitor-process-filter): Improve handling of gio warning. (Bug#48067) --- diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el index dde92d87a08..4a3072ee346 100644 --- a/lisp/net/tramp-sh.el +++ b/lisp/net/tramp-sh.el @@ -3730,31 +3730,29 @@ Fall back to normal file name handler if no Tramp handler exists." ;; Determine monitor name. (unless (tramp-connection-property-p proc "gio-file-monitor") - (cond - ;; We have seen this on cygwin gio and on emba. Let's make some assumptions. - ((string-match - "Can't find module 'help' specified in GIO_USE_FILE_MONITOR" string) - (cond - ((getenv "EMACS_EMBA_CI") - (tramp-set-connection-property - proc "gio-file-monitor" 'GInotifyFileMonitor)) - ((eq system-type 'cygwin) - (tramp-set-connection-property - proc "gio-file-monitor" 'GPollFileMonitor)) - (t (tramp-error proc 'file-error "Cannot determine gio monitor")))) - ;; TODO: What happens, if several monitor names are reported? - ((string-match "\ + (tramp-set-connection-property + proc "gio-file-monitor" + (cond + ;; We have seen this on cygwin gio and on emba. Let's make + ;; some assumptions. + ((string-match + "Can't find module 'help' specified in GIO_USE_FILE_MONITOR" string) + (cond + ((getenv "EMACS_EMBA_CI") 'GInotifyFileMonitor) + ((eq system-type 'cygwin) 'GPollFileMonitor) + (t tramp-cache-undefined))) + ;; TODO: What happens, if several monitor names are reported? + ((string-match "\ Supported arguments for GIO_USE_FILE_MONITOR environment variable: \\s-*\\([[:alpha:]]+\\) - 20" string) - (tramp-set-connection-property - proc "gio-file-monitor" (intern - (format "G%sFileMonitor" (capitalize (match-string 1 string)))))) - (t (throw 'doesnt-work nil))) - (setq string (replace-match "" nil nil string))) + (format "G%sFileMonitor" (capitalize (match-string 1 string))))) + (t (throw 'doesnt-work nil)))) + (setq string (substring string (match-end 0)))) ;; Delete empty lines. - (setq string (tramp-compat-string-replace "\n\n" "\n" string)) + (setq string (tramp-compat-string-replace "\n\n" "\n" string) + string (replace-regexp-in-string "^\n" "" string)) (while (string-match (eval-when-compile