> Exactly the problem. We have an application that must run continuously
> for *months* while still displaying output to the buffer (thus we
> can't completely turn off output), yet not eventually die because
> a buffer fills up.
> - Dan
Try this (assuming you use the Franz ACL/Emacs interface):
(defvar max-acl-buffer-size 1000000
"Maximal number of output bytes saved in the ACL buffer.")
(defadvice fi::subprocess-filter (before restrict-acl-buffer-size act pre com)
"Restrict the buffer size of the ACL buffer to about `max-acl-buffer-size'."
(let ((buffer (process-buffer (ad-get-arg 0))))
(cond ((and buffer (eq buffer (get-buffer fi:common-lisp-buffer-name)))
(save-excursion
(set-buffer buffer)
(if (> (point-max) max-acl-buffer-size)
(delete-region
1 (- (point-max)
(truncate (* 0.9 max-acl-buffer-size))))))))))
Enjoy,
Hans
------------------------------------------------------------------------------
Hans Chalupsky USC Information Sciences Institute
<isi.edu at hans> 4676 Admiralty Way
(310) 822-1511 Ext.745 Marina del Rey, CA 90292
------------------------------------------------------------------------------