X-Git-Url: http://cgit.sxemacs.org/?p=riece;a=blobdiff_plain;f=lisp%2Friece-shrink-buffer.el;h=69d4a0711165fe811238dd549d38c551d59d94d0;hp=020d06faddfd91730868e64fcd7a5a313cef920e;hb=1b7833a4f7d31dd541ad8b73316494cca4ebbd0c;hpb=9723b1418cef84832254cc9cd62154feceb964dc diff --git a/lisp/riece-shrink-buffer.el b/lisp/riece-shrink-buffer.el index 020d06f..69d4a07 100644 --- a/lisp/riece-shrink-buffer.el +++ b/lisp/riece-shrink-buffer.el @@ -19,8 +19,8 @@ ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. ;;; Commentary: @@ -29,6 +29,7 @@ ;;; Code: (require 'riece-globals) +(require 'derived) (defgroup riece-shrink-buffer nil "Free old IRC messages to save memory usage." @@ -56,23 +57,18 @@ (defconst riece-shrink-buffer-description "Free old IRC messages to save memory usage.") -(defvar riece-shrink-buffer-enabled nil) - (defun riece-shrink-buffer-idle-timer () (let ((buffers riece-buffer-list)) (while buffers - (if (and riece-shrink-buffer-enabled + (if (and (get 'riece-shrink-buffer 'riece-addon-enabled) (buffer-live-p (car buffers)) - (eq (derived-mode-class - (with-current-buffer (car buffers) - major-mode)) - 'riece-dialogue-mode)) + (with-current-buffer (car buffers) + (riece-derived-mode-p 'riece-dialogue-mode))) (riece-shrink-buffer (car buffers))) (setq buffers (cdr buffers))))) (defun riece-shrink-buffer (buffer) - (save-excursion - (set-buffer buffer) + (with-current-buffer buffer (goto-char (point-min)) (while (> (buffer-size) riece-max-buffer-size) (let* ((inhibit-read-only t) @@ -114,12 +110,6 @@ (remove-hook 'riece-exit-hook 'riece-shrink-buffer-exit-hook)) -(defun riece-shrink-buffer-enable () - (setq riece-shrink-buffer-enabled t)) - -(defun riece-shrink-buffer-disable () - (setq riece-shrink-buffer-enabled nil)) - (provide 'riece-shrink-buffer) ;;; riece-shrink-buffer.el ends here