Function: erc-truncate-buffer-to-size
erc-truncate-buffer-to-size is an autoloaded and byte-compiled
function defined in erc-truncate.el.gz.
Signature
(erc-truncate-buffer-to-size SIZE &optional BUFFER)
Documentation
Truncate BUFFER or the current buffer to SIZE.
Log the deleted region when the log module is active and
erc-logging-enabled returns non-nil.
Note that prior to ERC 5.6, whenever erc-log.el happened to be
loaded and the option erc-enable-logging was left at its
default value, this function would cause logging to commence
regardless of whether erc-log-mode(var)/erc-log-mode(fun) was enabled or log was
present in erc-modules.
Source Code
;; Defined in /usr/src/emacs/lisp/erc/erc-truncate.el.gz
;;;###autoload
(defun erc-truncate-buffer-to-size (size &optional buffer)
"Truncate BUFFER or the current buffer to SIZE.
Log the deleted region when the `log' module is active and
`erc-logging-enabled' returns non-nil.
Note that prior to ERC 5.6, whenever erc-log.el happened to be
loaded and the option `erc-enable-logging' was left at its
default value, this function would cause logging to commence
regardless of whether `erc-log-mode' was enabled or `log' was
present in `erc-modules'."
;; If buffer is non-nil, but get-buffer does not return anything,
;; then this is a bug. If buffer is a buffer name, get the buffer
;; object. If buffer is nil, use the current buffer.
(if (not buffer)
(setq buffer (current-buffer))
(unless (get-buffer buffer)
(error "erc-truncate-buffer-to-size: %S is not a buffer" buffer)))
(when (and (> (buffer-size buffer) (+ size erc-truncate-padding-size))
(not (buffer-local-value 'erc--inhibit-clear-p buffer)))
(with-current-buffer buffer
(let ((wc (and (get-buffer-window) (current-window-configuration))))
(save-excursion
;; Widen to preserve pre-5.5 behavior.
(save-restriction
(widen)
(let ((beg (point-min-marker))
(end (goto-char (- erc-insert-marker size))))
;; Truncate at message boundary (formerly line boundary
;; before 5.6).
(goto-char (or (erc--get-inserted-msg-beg end) (pos-bol)))
(setq end (point-marker))
(with-silent-modifications
(let ((erc--inhibit-clear-p t))
(funcall erc--clear-function beg end)))
(set-marker beg nil)
(set-marker end nil))))
(when wc
(set-window-configuration wc))))))