diff options
| author | Karoly Lorentey | 2006-10-14 16:56:21 +0000 |
|---|---|---|
| committer | Karoly Lorentey | 2006-10-14 16:56:21 +0000 |
| commit | 3f87f67ee215ffeecbd2f53bd7f342cdf03f47df (patch) | |
| tree | 16f2af9111af08a94d608d96a957f5c3ec5effcc /lisp/erc/erc-log.el | |
| parent | 350e4fb815d7413ef6d339dd664014706f742927 (diff) | |
| parent | 7a210b69c7f92650c524766d1b9d3f3eefdd67c7 (diff) | |
| download | emacs-3f87f67ee215ffeecbd2f53bd7f342cdf03f47df.tar.gz emacs-3f87f67ee215ffeecbd2f53bd7f342cdf03f47df.zip | |
Merged from emacs@sv.gnu.org
Patches applied:
* emacs@sv.gnu.org/emacs--devo--0--patch-371
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-372
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-373
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-374
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-375
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-376
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-377
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-378
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-379
Merge from erc--emacs--21
* emacs@sv.gnu.org/emacs--devo--0--patch-380
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-381
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-382
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-383
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-384
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-385
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-386
Update from erc--emacs--22
* emacs@sv.gnu.org/emacs--devo--0--patch-387
Fix ERC bug introduced in last patch
* emacs@sv.gnu.org/emacs--devo--0--patch-388
Update from erc--emacs--22
* emacs@sv.gnu.org/emacs--devo--0--patch-389
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-390
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-391
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-392
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-393
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-394
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-395
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-396
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-397
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-398
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-399
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-400
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-401
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-402
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-403
Rcirc update from Ryan Yeske
* emacs@sv.gnu.org/emacs--devo--0--patch-404
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-405
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-406
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-407
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-408
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-409
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-410
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-411
Miscellaneous tq-related fixes.
* emacs@sv.gnu.org/emacs--devo--0--patch-412
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-121
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-122
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-123
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-124
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-125
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-126
Merge from emacs--devo--0
* emacs@sv.gnu.org/gnus--rel--5.10--patch-127
Update from CVS
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-581
Diffstat (limited to 'lisp/erc/erc-log.el')
| -rw-r--r-- | lisp/erc/erc-log.el | 41 |
1 files changed, 30 insertions, 11 deletions
diff --git a/lisp/erc/erc-log.el b/lisp/erc/erc-log.el index b316a8588bd..2fe29e82fe5 100644 --- a/lisp/erc/erc-log.el +++ b/lisp/erc/erc-log.el | |||
| @@ -71,8 +71,6 @@ | |||
| 71 | ;; markers. | 71 | ;; markers. |
| 72 | 72 | ||
| 73 | ;;; TODO: | 73 | ;;; TODO: |
| 74 | ;; * Erc needs a generalised make-safe-file-name function, so that | ||
| 75 | ;; generated file names don't contain any invalid file characters. | ||
| 76 | ;; | 74 | ;; |
| 77 | ;; * Really, we need to lock the logfiles somehow, so that if a user | 75 | ;; * Really, we need to lock the logfiles somehow, so that if a user |
| 78 | ;; is running multiple emacsen and/or on the same channel as more | 76 | ;; is running multiple emacsen and/or on the same channel as more |
| @@ -218,7 +216,10 @@ also be a predicate function. To only log when you are not set away, use: | |||
| 218 | (add-hook 'erc-quit-hook 'erc-conditional-save-queries) | 216 | (add-hook 'erc-quit-hook 'erc-conditional-save-queries) |
| 219 | (add-hook 'erc-part-hook 'erc-conditional-save-buffer) | 217 | (add-hook 'erc-part-hook 'erc-conditional-save-buffer) |
| 220 | ;; append, so that 'erc-initialize-log-marker runs first | 218 | ;; 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))))) | ||
| 222 | ;; disable | 223 | ;; disable |
| 223 | ((remove-hook 'erc-insert-post-hook 'erc-save-buffer-in-logs) | 224 | ((remove-hook 'erc-insert-post-hook 'erc-save-buffer-in-logs) |
| 224 | (remove-hook 'erc-send-post-hook 'erc-save-buffer-in-logs) | 225 | (remove-hook 'erc-send-post-hook 'erc-save-buffer-in-logs) |
| @@ -226,7 +227,10 @@ also be a predicate function. To only log when you are not set away, use: | |||
| 226 | (remove-hook 'erc-kill-channel-hook 'erc-save-buffer-in-logs) | 227 | (remove-hook 'erc-kill-channel-hook 'erc-save-buffer-in-logs) |
| 227 | (remove-hook 'erc-quit-hook 'erc-conditional-save-queries) | 228 | (remove-hook 'erc-quit-hook 'erc-conditional-save-queries) |
| 228 | (remove-hook 'erc-part-hook 'erc-conditional-save-buffer) | 229 | (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)))))) | ||
| 230 | 234 | ||
| 231 | (define-key erc-mode-map "\C-c\C-l" 'erc-save-buffer-in-logs) | 235 | (define-key erc-mode-map "\C-c\C-l" 'erc-save-buffer-in-logs) |
| 232 | 236 | ||
| @@ -236,8 +240,7 @@ also be a predicate function. To only log when you are not set away, use: | |||
| 236 | This function is destined to be run from `erc-connect-pre-hook'." | 240 | This function is destined to be run from `erc-connect-pre-hook'." |
| 237 | (when (erc-logging-enabled) | 241 | (when (erc-logging-enabled) |
| 238 | (auto-save-mode -1) | 242 | (auto-save-mode -1) |
| 239 | (setq buffer-offer-save t | 243 | (setq buffer-file-name nil) |
| 240 | buffer-file-name "") | ||
| 241 | (set (make-local-variable 'write-file-functions) | 244 | (set (make-local-variable 'write-file-functions) |
| 242 | '(erc-save-buffer-in-logs)) | 245 | '(erc-save-buffer-in-logs)) |
| 243 | (when erc-log-insert-log-on-open | 246 | (when erc-log-insert-log-on-open |
| @@ -245,6 +248,12 @@ This function is destined to be run from `erc-connect-pre-hook'." | |||
| 245 | (move-marker erc-last-saved-position | 248 | (move-marker erc-last-saved-position |
| 246 | (1- (point-max))))))) | 249 | (1- (point-max))))))) |
| 247 | 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))) | ||
| 256 | |||
| 248 | (defun erc-log-all-but-server-buffers (buffer) | 257 | (defun erc-log-all-but-server-buffers (buffer) |
| 249 | "Returns t if logging should be enabled in BUFFER. | 258 | "Returns t if logging should be enabled in BUFFER. |
| 250 | Returns nil iff `erc-server-buffer-p' returns t." | 259 | Returns nil iff `erc-server-buffer-p' returns t." |
| @@ -282,17 +291,27 @@ is writeable (it will be created as necessary) and | |||
| 282 | (funcall erc-enable-logging (or buffer (current-buffer))) | 291 | (funcall erc-enable-logging (or buffer (current-buffer))) |
| 283 | erc-enable-logging))) | 292 | erc-enable-logging))) |
| 284 | 293 | ||
| 294 | (defun erc-log-standardize-name (filename) | ||
| 295 | "Make FILENAME safe to use as the name of an ERC log. | ||
| 296 | This will not work with full paths, only names. | ||
| 297 | |||
| 298 | Any unsafe characters in the name are replaced with \"!\". The | ||
| 299 | filename is downcased." | ||
| 300 | (downcase (erc-replace-regexp-in-string | ||
| 301 | "[/\\]" "!" (convert-standard-filename filename)))) | ||
| 302 | |||
| 285 | (defun erc-current-logfile (&optional buffer) | 303 | (defun erc-current-logfile (&optional buffer) |
| 286 | "Return the logfile to use for BUFFER. | 304 | "Return the logfile to use for BUFFER. |
| 287 | If BUFFER is nil, the value of `current-buffer' is used. | 305 | If BUFFER is nil, the value of `current-buffer' is used. |
| 288 | This is determined by `erc-generate-log-file-name-function'. | 306 | This is determined by `erc-generate-log-file-name-function'. |
| 289 | The result is converted to lowercase, as IRC is case-insensitive" | 307 | The result is converted to lowercase, as IRC is case-insensitive" |
| 290 | (expand-file-name | 308 | (expand-file-name |
| 291 | (downcase (funcall erc-generate-log-file-name-function | 309 | (erc-log-standardize-name |
| 292 | (or buffer (current-buffer)) | 310 | (funcall erc-generate-log-file-name-function |
| 293 | (or (erc-default-target) (buffer-name buffer)) | 311 | (or buffer (current-buffer)) |
| 294 | (erc-current-nick) | 312 | (or (erc-default-target) (buffer-name buffer)) |
| 295 | erc-session-server erc-session-port)) | 313 | (erc-current-nick) |
| 314 | erc-session-server erc-session-port)) | ||
| 296 | erc-log-channels-directory)) | 315 | erc-log-channels-directory)) |
| 297 | 316 | ||
| 298 | (defun erc-generate-log-file-name-with-date (buffer &rest ignore) | 317 | (defun erc-generate-log-file-name-with-date (buffer &rest ignore) |