;;; erc-log.el --- Logging facilities for ERC.
-;; Copyright (C) 2003-2012 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2016 Free Software Foundation, Inc.
;; Author: Lawrence Mitchell <wence@gmx.li>
-;; Maintainer: FSF
+;; Maintainer: emacs-devel@gnu.org
;; Keywords: IRC, chat, client, Internet, logging
;; Created 2003-04-26
;;; Code:
(require 'erc)
-(eval-when-compile
- (require 'erc-networks)
- (require 'cl))
+(eval-when-compile (require 'erc-networks))
(defgroup erc-log nil
"Logging facilities for ERC."
custom function which returns the directory part and set
`erc-log-channels-directory' to its name."
:group 'erc-log
- :type '(choice (const :tag "Long style" erc-generate-log-file-name-long)
- (const :tag "Long, but with network name rather than server"
+ :type '(choice (const :tag "#channel!nick@server:port.txt"
+ erc-generate-log-file-name-long)
+ (const :tag "#channel!nick@network.txt"
erc-generate-log-file-name-network)
- (const :tag "Short" erc-generate-log-file-name-short)
- (const :tag "With date" erc-generate-log-file-name-with-date)
+ (const :tag "#channel.txt" erc-generate-log-file-name-short)
+ (const :tag "#channel@date.txt"
+ erc-generate-log-file-name-with-date)
(function :tag "Other function")))
(defcustom erc-truncate-buffer-on-save nil
This should ideally, be a \"catch-all\" coding system, like
`emacs-mule', or `iso-2022-7bit'."
+ :type 'coding-system
:group 'erc-log)
(defcustom erc-log-filter-function nil
(setq buffer-file-name nil)
(erc-set-write-file-functions '(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))))))))
+ (ignore-errors
+ (save-excursion
+ (goto-char (point-min))
+ (insert-file-contents (erc-current-logfile)))
+ (move-marker erc-last-saved-position
+ (1- (point-max))))))))
(defun erc-log-disable-logging (buffer)
"Disable logging in BUFFER."
;; we need a make-safe-file-name function.
(convert-standard-filename file)))
+(declare-function erc-network-name "erc-networks" ())
+
(defun erc-generate-log-file-name-network (buffer target nick server port)
"Generates a log-file name using the network name rather than server name.
This results in a file name of the form #channel!nick@network.txt.
file t 'nomessage))))
(let ((coding-system-for-write coding-system))
(write-region start end file t 'nomessage))))
- (if (and erc-truncate-buffer-on-save (interactive-p))
+ (if (and erc-truncate-buffer-on-save
+ (called-interactively-p 'interactive))
(progn
(let ((inhibit-read-only t)) (erase-buffer))
(move-marker erc-last-saved-position (point-max))