Show
Ignore:
Timestamp:
08/10/06 11:19:54 (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

    r4111 r4140  
    7272 
    7373;;; TODO: 
    74 ;; * Erc needs a generalised make-safe-file-name function, so that 
    75 ;;   generated file names don't contain any invalid file characters. 
    7674;; 
    7775;; * Really, we need to lock the logfiles somehow, so that if a user 
     
    219217   (add-hook 'erc-part-hook 'erc-conditional-save-buffer) 
    220218   ;; append, so that 'erc-initialize-log-marker runs first 
    221    (add-hook 'erc-connect-pre-hook 'erc-log-setup-logging 'append)) 
     219   (add-hook 'erc-connect-pre-hook 'erc-log-setup-logging 'append) 
     220   (dolist (buffer (erc-buffer-list)) 
     221     (when (buffer-live-p buffer) 
     222       (with-current-buffer buffer (erc-log-setup-logging))))) 
    222223  ;; disable 
    223224  ((remove-hook 'erc-insert-post-hook 'erc-save-buffer-in-logs) 
     
    227228   (remove-hook 'erc-quit-hook 'erc-conditional-save-queries) 
    228229   (remove-hook 'erc-part-hook 'erc-conditional-save-buffer) 
    229    (remove-hook 'erc-connect-pre-hook 'erc-log-setup-logging))) 
     230   (remove-hook 'erc-connect-pre-hook 'erc-log-setup-logging) 
     231   (dolist (buffer (erc-buffer-list)) 
     232     (when (buffer-live-p buffer) 
     233       (with-current-buffer buffer (erc-log-disable-logging)))))) 
    230234 
    231235(define-key erc-mode-map "\C-c\C-l" 'erc-save-buffer-in-logs) 
     
    237241  (when (erc-logging-enabled) 
    238242    (auto-save-mode -1) 
    239     (setq buffer-offer-save t 
    240           buffer-file-name "") 
     243    (setq buffer-file-name nil) 
    241244    (set (make-local-variable 'write-file-functions) 
    242245         '(erc-save-buffer-in-logs)) 
     
    245248                     (move-marker erc-last-saved-position 
    246249                                  (1- (point-max))))))) 
     250 
     251(defun erc-log-disable-logging () 
     252  "Disable logging in the current buffer." 
     253  (when (erc-logging-enabled) 
     254    (setq buffer-offer-save nil 
     255          erc-enable-logging nil))) 
    247256 
    248257(defun erc-log-all-but-server-buffers (buffer) 
     
    283292         erc-enable-logging))) 
    284293 
     294(defun erc-log-standardize-name (filename) 
     295  "Make FILENAME safe to use as the name of an ERC log. 
     296This will not work with full paths, only names. 
     297 
     298Any unsafe characters in the name are replaced with \"!\".  The 
     299filename is downcased." 
     300  (downcase (erc-replace-regexp-in-string 
     301             "[/\\]" "!" (convert-standard-filename filename)))) 
     302 
    285303(defun erc-current-logfile (&optional buffer) 
    286304  "Return the logfile to use for BUFFER. 
     
    289307The result is converted to lowercase, as IRC is case-insensitive" 
    290308  (expand-file-name 
    291    (downcase (funcall erc-generate-log-file-name-function 
    292                       (or buffer (current-buffer)) 
    293                       (or (erc-default-target) (buffer-name buffer)) 
    294                       (erc-current-nick) 
    295                       erc-session-server erc-session-port)) 
     309   (erc-log-standardize-name 
     310    (funcall erc-generate-log-file-name-function 
     311             (or buffer (current-buffer)) 
     312             (or (erc-default-target) (buffer-name buffer)) 
     313             (erc-current-nick) 
     314             erc-session-server erc-session-port)) 
    296315   erc-log-channels-directory)) 
    297316