Function: progress-reporter-echo-area

progress-reporter-echo-area is a byte-compiled function defined in subr.el.gz.

Signature

(progress-reporter-echo-area REPORTER STATE UPDATE-TEXT)

Documentation

Progress reporter echo area update function.

REPORTER, STATE, and UPDATE-TEXT are the same as in progress-reporter-update-functions.

Do not emit a message if the reporter context is async and the echo area is busy with something else.

Source Code

;; Defined in /usr/src/emacs/lisp/subr.el.gz
(defun progress-reporter-echo-area (reporter state update-text)
  "Progress reporter echo area update function.
REPORTER, STATE, and UPDATE-TEXT are the same as in
`progress-reporter-update-functions'.

Do not emit a message if the reporter context is `async' and the echo
area is busy with something else."
  (let ((text (progress-reporter-text reporter)))
    (unless (and (eq (progress-reporter-context reporter) 'async)
                 (current-message)
                 (not (string-prefix-p text (current-message))))
      (setq update-text (if update-text (format " %s" update-text) ""))
      (pcase state
        ((pred floatp)
         (if (plusp state)
             (message "%s%d%%%s" text (* state 100.0) update-text)
           (message "%s%s" text update-text)))
        ((pred integerp)
         (let ((message-log-max nil)
               (pulse-char
                (aref progress-reporter--pulse-characters
                      (mod state (length progress-reporter--pulse-characters)))))
           (message "%s %s%s" text pulse-char update-text)))
        ('done
         (message "%sdone" text))))))