Show
Ignore:
Timestamp:
04/07/07 15:49:28 (2 years ago)
Author:
miyoshi
Message:

Sync up with Emacs CVS HEAD.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lisp/erc/erc-log.el

    r4190 r4200  
    8686 
    8787(require 'erc) 
    88 (eval-when-compile (require 'cl)) 
     88(eval-when-compile 
     89  (require 'erc-networks) 
     90  (require 'cl)) 
    8991 
    9092(defgroup erc-log nil 
     
    101103`erc-server-process'." 
    102104  :group 'erc-log 
    103   :type '(choice (const erc-generate-log-file-name-long) 
    104                  (const erc-generate-log-file-name-short) 
    105                  (const erc-generate-log-file-name-with-date) 
    106                  (symbol))) 
     105  :type '(choice (const :tag "Long style" erc-generate-log-file-name-long) 
     106                 (const :tag "Long, but with network name rather than server" 
     107                        erc-generate-log-file-name-network) 
     108                 (const :tag "Short" erc-generate-log-file-name-short) 
     109                 (const :tag "With date" erc-generate-log-file-name-with-date) 
     110                 (symbol :tag "Other function"))) 
    107111 
    108112(defcustom erc-truncate-buffer-on-save nil 
     
    198202      (lambda (buffer) 
    199203        (with-current-buffer buffer 
    200           (not erc-away))))" 
     204          (null (erc-away-time)))))" 
    201205  ;; enable 
    202206  ((when erc-log-write-after-insert 
     
    212216   (add-hook 'erc-connect-pre-hook 'erc-log-setup-logging 'append) 
    213217   (dolist (buffer (erc-buffer-list)) 
    214      (when (buffer-live-p buffer) 
    215        (with-current-buffer buffer (erc-log-setup-logging))))) 
     218     (erc-log-setup-logging buffer))) 
    216219  ;; disable 
    217220  ((remove-hook 'erc-insert-post-hook 'erc-save-buffer-in-logs) 
     
    224227   (remove-hook 'erc-connect-pre-hook 'erc-log-setup-logging) 
    225228   (dolist (buffer (erc-buffer-list)) 
    226      (when (buffer-live-p buffer) 
    227        (with-current-buffer buffer (erc-log-disable-logging)))))) 
     229     (erc-log-disable-logging buffer)))) 
    228230 
    229231(define-key erc-mode-map "\C-c\C-l" 'erc-save-buffer-in-logs) 
    230232 
    231233;;; functionality referenced from erc.el 
    232 (defun erc-log-setup-logging (
     234(defun erc-log-setup-logging (buffer
    233235  "Setup the buffer-local logging variables in the current buffer. 
    234 This function is destined to be run from `erc-connect-pre-hook'." 
    235   (when (erc-logging-enabled) 
    236     (auto-save-mode -1) 
    237     (setq buffer-file-name nil) 
    238     (set (make-local-variable 'write-file-functions) 
    239          '(erc-save-buffer-in-logs)) 
    240     (when erc-log-insert-log-on-open 
    241       (ignore-errors (insert-file-contents (erc-current-logfile)) 
    242                      (move-marker erc-last-saved-position 
    243                                   (1- (point-max))))))) 
    244  
    245 (defun erc-log-disable-logging () 
    246   "Disable logging in the current buffer." 
    247   (when (erc-logging-enabled) 
    248     (setq buffer-offer-save nil 
    249           erc-enable-logging nil))) 
     236This function is destined to be run from `erc-connect-pre-hook'. 
     237The current buffer is given by BUFFER." 
     238  (when (erc-logging-enabled buffer) 
     239    (with-current-buffer buffer 
     240      (auto-save-mode -1) 
     241      (setq buffer-file-name nil) 
     242      (cond ((boundp 'write-file-functions) 
     243             (set (make-local-variable 'write-file-functions) 
     244                  '(erc-save-buffer-in-logs))) 
     245            ((boundp 'local-write-file-hooks) 
     246             (setq local-write-file-hooks '(erc-save-buffer-in-logs))) 
     247            (t 
     248             (set (make-local-variable 'write-file-hooks) 
     249                  '(erc-save-buffer-in-logs)))) 
     250      (when erc-log-insert-log-on-open 
     251        (ignore-errors (insert-file-contents (erc-current-logfile)) 
     252                       (move-marker erc-last-saved-position 
     253                                    (1- (point-max)))))))) 
     254 
     255(defun erc-log-disable-logging (buffer) 
     256  "Disable logging in BUFFER." 
     257  (when (erc-logging-enabled buffer) 
     258    (with-current-buffer buffer 
     259      (setq buffer-offer-save nil 
     260            erc-enable-logging nil)))) 
    250261 
    251262(defun erc-log-all-but-server-buffers (buffer) 
     
    338349                                         ((numberp port) 
    339350                                          (number-to-string port))) ".txt"))) 
     351    ;; we need a make-safe-file-name function. 
     352    (convert-standard-filename file))) 
     353 
     354(defun erc-generate-log-file-name-network (buffer target nick server port) 
     355  "Generates a log-file name using the network name rather than server name. 
     356This results in a file name of the form #channel!nick@network.txt. 
     357This function is a possible value for `erc-generate-log-file-name-function'." 
     358  (require 'erc-networks) 
     359  (let ((file (concat 
     360               (if target (concat target "!")) 
     361               nick "@" 
     362               (or (with-current-buffer buffer (erc-network-name)) server) 
     363               ".txt"))) 
    340364    ;; we need a make-safe-file-name function. 
    341365    (convert-standard-filename file)))