Function: ert--force-message-log-buffer-truncation

ert--force-message-log-buffer-truncation is a byte-compiled function defined in ert.el.gz.

Signature

(ert--force-message-log-buffer-truncation)

Documentation

Immediately truncate *Messages* buffer according to message-log-max.

This can be useful after reducing the value of message-log-max.

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/ert.el.gz
(defun ert--force-message-log-buffer-truncation ()
  "Immediately truncate *Messages* buffer according to `message-log-max'.

This can be useful after reducing the value of `message-log-max'."
  (with-current-buffer (messages-buffer)
    ;; This is a reimplementation of this part of message_dolog() in xdisp.c:
    ;; if (FIXNATP (Vmessage_log_max))
    ;;   {
    ;;     scan_newline (Z, Z_BYTE, BEG, BEG_BYTE,
    ;;                   -XFIXNAT (Vmessage_log_max) - 1, false);
    ;;     del_range_both (BEG, BEG_BYTE, PT, PT_BYTE, false);
    ;;   }
    (when (natnump message-log-max)
      (let ((begin (point-min))
            (end (save-excursion
                   (goto-char (point-max))
                   (forward-line (- message-log-max))
                   (point)))
            (inhibit-read-only t))
        (delete-region begin end)))))