CVS update by aidan packages/xemacs-packages/erc ...
[email protected] 15 Sep 2009 07:15:52 -0000
| Newsgroups | gmane.emacs.xemacs.cvs |
|---|---|
| Message-ID | <[email protected]> |
User: aidan Date: 09/09/15 09:15:52 Modified: packages/xemacs-packages/erc ChangeLog erc-log.el Log: Don't leak memory in XEmacs with huge log files, ERC. Revision Changes Path 1.43 +11 -0 XEmacs/packages/xemacs-packages/erc/ChangeLog Index: ChangeLog =================================================================== RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/erc/ChangeLog,v retrieving revision 1.42 retrieving revision 1.43 diff -u -p -r1.42 -r1.43 --- ChangeLog 2008/07/23 18:09:47 1.42 +++ ChangeLog 2009/09/15 07:15:49 1.43 @@ -1,3 +1,14 @@ +2009-07-22 Aidan Kehoe <[email protected]> + + * erc-log.el (erc-log-setup-logging): + Don't insert the entire log file into the buffer if + erc-truncate-buffer is in erc-insert-post-hook (even though most + of the buffer is later deleted in this case); avoids XEmacs + keeping lots of memory around needlessly when log files are huge + but buffer sizes are tiny. GNU Emacs doesn't do this, but it + should be a win there too, there's no need to create a 100 MB + buffer needlessly. + 2008-07-23 Norbert Koch <[email protected]> * Makefile (VERSION): XEmacs package 0.22 released. 1.11 +11 -3 XEmacs/packages/xemacs-packages/erc/erc-log.el Index: erc-log.el =================================================================== RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/erc/erc-log.el,v retrieving revision 1.10 retrieving revision 1.11 diff -u -p -r1.10 -r1.11 --- erc-log.el 2008/07/23 07:23:12 1.10 +++ erc-log.el 2009/09/15 07:15:49 1.11 @@ -230,9 +230,17 @@ This function is destined to be run from (set (make-local-variable 'write-file-hooks) '(erc-save-buffer-in-logs)))) (when erc-log-insert-log-on-open - (ignore-errors (insert-file-contents (erc-current-logfile)) - (move-marker erc-last-saved-position - (1- (point-max))))))) + (let* ((log-file (erc-current-logfile)) + (log-file-size (nth 7 (file-attributes log-file))) + (start (if (and log-file-size + (memq 'erc-truncate-buffer + erc-insert-post-hook)) + (- log-file-size erc-max-buffer-size) + 0))) + (ignore-errors (insert-file-contents log-file nil start + log-file-size)) + (move-marker erc-last-saved-position + (1- (point-max))))))) ;;; Append, so that 'erc-initialize-log-marker keeps running first. (add-hook 'erc-connect-pre-hook 'erc-log-setup-logging 'append)