Function: erc-stamp--display-prompt-in-left-margin
erc-stamp--display-prompt-in-left-margin is a byte-compiled function
defined in erc-stamp.el.gz.
Signature
(erc-stamp--display-prompt-in-left-margin)
Documentation
Show prompt in the left margin with padding.
Source Code
;; Defined in /usr/src/emacs/lisp/erc/erc-stamp.el.gz
(defun erc-stamp--display-prompt-in-left-margin ()
"Show prompt in the left margin with padding."
(when (or (not erc-stamp--last-prompt) (functionp erc-prompt)
(> (string-width erc-stamp--last-prompt) left-margin-width))
(let ((s (buffer-substring erc-insert-marker (1- erc-input-marker))))
;; Prevent #("abc" n m (display ((...) #("abc" p q (display...))))
(remove-text-properties 0 (length s) '(display nil) s)
(when (and erc-stamp--last-prompt
(>= (string-width erc-stamp--last-prompt) left-margin-width))
(let ((sm (truncate-string-to-width s (1- left-margin-width) 0 nil t)))
;; This papers over a subtle off-by-1 bug here.
(unless (equal sm s)
(setq s (concat sm (substring s -1))))))
(setq erc-stamp--last-prompt (string-pad s left-margin-width nil t))))
(put-text-property erc-insert-marker (1- erc-input-marker)
'display `((margin left-margin) ,erc-stamp--last-prompt))
erc-stamp--last-prompt)