Function: magit-process-set-mode-line-error-status
magit-process-set-mode-line-error-status is a byte-compiled function
defined in magit-process.el.
Signature
(magit-process-set-mode-line-error-status &optional ERROR STR)
Documentation
Apply an error face to the string set by magit-process-set-mode-line.
If ERROR is supplied, include it in the mode-line-process tooltip.
If STR is supplied, it replaces the mode-line-process text.
Source Code
;; Defined in ~/.emacs.d/elpa/magit-20260411.1452/magit-process.el
(defun magit-process-set-mode-line-error-status (&optional error str)
"Apply an error face to the string set by `magit-process-set-mode-line'.
If ERROR is supplied, include it in the `mode-line-process' tooltip.
If STR is supplied, it replaces the `mode-line-process' text."
(setq str (or str (magit-repository-local-get 'mode-line-process)))
(when str
(setq error (format "%smouse-1: Show process buffer"
(if (stringp error)
(concat error "\n\n")
"")))
(setq str (concat " " (propertize
(substring-no-properties str 1)
'mouse-face 'highlight
'keymap magit-mode-line-process-map
'help-echo error
'font-lock-face 'magit-mode-line-process-error)))
(magit-repository-local-set 'mode-line-process str)
(dolist (buf (magit-mode-get-buffers))
(with-current-buffer buf
(setq mode-line-process str)))
(force-mode-line-update t)
;; We remove any error status from the mode line when a magit
;; buffer is refreshed (see `magit-refresh-buffer'), but we must
;; ensure that we ignore any refreshes during the remainder of the
;; current command -- otherwise a newly-set error status would be
;; removed before it was seen. We set a flag which prevents the
;; status from being removed prior to the next command, so that
;; the error status is guaranteed to remain visible until then.
(let ((repokey (magit-repository-local-repository)))
;; The following closure captures the repokey value, and is
;; added to `pre-command-hook'.
(cl-labels ((enable-magit-process-unset-mode-line ()
;; Remove ourself from the hook variable, so
;; that we only run once.
(remove-hook 'pre-command-hook
#'enable-magit-process-unset-mode-line)
;; Clear the inhibit flag for the repository in
;; which we set it.
(magit-repository-local-set
'inhibit-magit-process-unset-mode-line nil repokey)))
;; Set the inhibit flag until the next command is invoked.
(magit-repository-local-set
'inhibit-magit-process-unset-mode-line t repokey)
(add-hook 'pre-command-hook
#'enable-magit-process-unset-mode-line)))))