From e63817acbe4d902235613e2d9563f9e2a39ab89d Mon Sep 17 00:00:00 2001 From: defanor Date: Sat, 3 Apr 2021 22:13:48 +0300 Subject: xmpp.el: truncate XMPP buffers --- emacs/xmpp.el | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/emacs/xmpp.el b/emacs/xmpp.el index 40b43af..803d64f 100644 --- a/emacs/xmpp.el +++ b/emacs/xmpp.el @@ -74,6 +74,9 @@ "A subprocess request queue.") (make-variable-buffer-local 'xmpp-request-queue) +(defvar xmpp-truncate-buffer-at 100000 + "The buffer size at which to truncate an XMPP-related buffer by + approximately halving it.") (defun xmpp-jid-to-bare (jid) (let* ((jid-list (reverse (string-to-list jid))) @@ -290,6 +293,12 @@ (defun xmpp-insert (args) (save-excursion + (when (and xmpp-truncate-buffer-at + (> xmpp-input-point xmpp-truncate-buffer-at)) + (goto-char (/ xmpp-truncate-buffer-at 2)) + (search-forward "\n") + (setq xmpp-input-point (- xmpp-input-point (1- (point)))) + (delete-region (point-min) (point))) (goto-char xmpp-input-point) (funcall 'insert args) (setq-local xmpp-input-point (point))) -- cgit v1.2.3