backport: erc bugfixes

This commit is contained in:
l3thal 2014-11-08 20:51:43 -05:00
parent 7d8205619a
commit d1036d288d
6 changed files with 2160 additions and 1976 deletions

View file

@ -1,17 +1,111 @@
2014-11-04 Stefan Monnier <monnier@iro.umontreal.ca> 2014-11-05 Stefan Monnier <monnier@iro.umontreal.ca>
* erc.el (erc-send-input): Bind `str' dynamically (bug#18936). * erc.el (erc-send-input): Bind `str' dynamically (bug#18936).
2014-10-29 Paul Eggert <eggert@cs.ucla.edu>
Simplify use of current-time and friends.
* erc-backend.el (TOPIC): Omit unnecessary call to current-time.
* erc.el (erc-emacs-time-to-erc-time): Simplify by using float-time.
(erc-current-time): Simplify by using erc-emacs-time-to-erc-time.
2014-10-20 Glenn Morris <rgm@gnu.org> 2014-10-20 Glenn Morris <rgm@gnu.org>
* Version 24.4 released. * Merge in all changes up to 24.4 release.
2014-09-24 Stefan Monnier <monnier@iro.umontreal.ca> 2014-10-15 Ivan Shmakov <ivan@siamics.net>
* erc-track.el (erc-modified-channels-display): Update mode line
more frequently (bug#18510).
2014-10-10 Kelvin White <kwhite@gnu.org>
* erc.el (erc-initialize-log-marker): Only initialize
erc-last-saved-position if not already a marker.
2014-10-04 Stefan Monnier <monnier@iro.umontreal.ca>
* erc.el (erc-channel-receive-names): Silence compiler warning.
(erc-format-@nick, erc-update-modes): Idem.
2014-10-03 Kelvin White <kwhite@gnu.org>
* erc.el (erc-rename-buffers): Use defcustom instead of defvar for
buffer renaming configuration option.
2014-10-02 Paul Eggert <eggert@cs.ucla.edu>
* erc.el (erc-nick-at-point): Fix format-string typo (Bug#17755).
2014-10-02 Kelvin White <kwhite@gnu.org>
* erc.el (erc-rename-buffer-p): When set to t buffers will be
renamed to the current irc network.
(erc-format-target-and/or-network): Use `erc-rename-buffer-p' when
renaming buffers.
* erc-ring.el (erc-input-ring-setup): Fixes Bug #18599
2014-09-30 Stefan Monnier <monnier@iro.umontreal.ca>
* erc-track.el (erc-modified-channels-display): Update all mode lines * erc-track.el (erc-modified-channels-display): Update all mode lines
if needed (bug#18510). Remove call to erc-modified-channels-object if needed (bug#18510). Remove call to erc-modified-channels-object
where we ignored the return value. where we ignored the return value.
(erc-modified-channels-update): Don't force-mode-line-update here any more. (erc-modified-channels-update): Don't force-mode-line-update here
any more.
2014-09-26 Kelvin White <kwhite@gnu.org>
* erc.el (erc-format-nick): Fix code regression - Bug #18551
2014-09-25 Kelvin White <kwhite@gnu.org>
* erc.el: Follow Emacs version instead of tracking it seperately.
(erc-quit/part-reason-default) : Clean up quit/part message
functions by abstracting repetitive code, change version string.
(erc-quit-reason-various, erc-quit-reason-normal, erc-quit-reason-zippy)
(erc-part-reason-normal, erc-part-reason-zippy, erc-part-reason-various)
(erc-cmd-SV, erc-ctcp-query-VERSION, erc-version, erc-version-string):
Change version string.
2014-08-13 Kelvin White <kwhite@gnu.org>
* erc.el (erc-send-input): Disable display commands in current buffer
(erc-format-target-and/or-network): Fix cases when buffer name is set
2014-08-12 Stefan Monnier <monnier@iro.umontreal.ca>
* erc-stamp.el (erc-timestamp-intangible): Disable by default because
`intangible' is evil.
2014-08-07 Kelvin White <kwhite@gnu.org>
* erc.el (erc-channel-receive-names): Fix variable names
(erc-format-target-and/or-network): Rename server-buffers to
network name if possible
2014-07-08 Stefan Monnier <monnier@iro.umontreal.ca>
* erc.el (erc-channel-receive-names): Reduce redundancy.
2014-06-19 Kelvin White <kwhite@gnu.org>
* erc-backend.el: Handle user modes in relevant server responses
* erc.el: Better user mode support.
(erc-channel-user): Add members for new modes.
(erc-channel-member-halfop-p, erc-channel-user-admin-p)
(erc-channel-user-owner-p): Use new struct members.
(erc-format-nick, erc-format-@nick): Display user modes as nick prefix.
(erc-nick-prefix-face, erc-my-nick-prefix-face): Add new faces
(erc-get-user-mode-prefix): Return symbol for mode prefix.
(erc-update-channel-member, erc-update-current-channel-member)
(erc-channel-receive-names): Update channel users.
(erc-nick-at-point): Return correct user info.
2014-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
* erc.el (erc-invite-only-mode, erc-toggle-channel-mode): Simplify.
(erc-load-script): Tighten a regexp.
2014-02-25 Julien Danjou <julien@danjou.info> 2014-02-25 Julien Danjou <julien@danjou.info>
@ -360,9 +454,9 @@
2011-11-28 Mike Kazantsev <mk.fraggod@gmail.com> (tiny change) 2011-11-28 Mike Kazantsev <mk.fraggod@gmail.com> (tiny change)
* erc-dcc.el (erc-dcc-ctcp-query-send-regexp): Updated regexp to * erc-dcc.el (erc-dcc-ctcp-query-send-regexp): Update regexp to
match quoted filenames with spaces inside. match quoted filenames with spaces inside.
(erc-dcc-handle-ctcp-send): Updated regexp match group numbers, (erc-dcc-handle-ctcp-send): Update regexp match group numbers,
added processing of escaped quotes and backslashes if filename added processing of escaped quotes and backslashes if filename
itself was in quotes. itself was in quotes.
@ -625,4 +719,3 @@ See ChangeLog.08 for earlier changes.
;; coding: utf-8 ;; coding: utf-8
;; add-log-time-zone-rule: t ;; add-log-time-zone-rule: t
;; End: ;; End:

View file

@ -679,7 +679,7 @@ Conditionally try to reconnect and take appropriate action."
(when (buffer-live-p buf) (when (buffer-live-p buf)
(with-current-buffer buf (with-current-buffer buf
(erc-log (format (erc-log (format
"SENTINEL: proc: %S status: %S event: %S (quitting: %S)" "SENTINEL: proc: %S status: %S event: %S (quitting: %S)"
cproc (process-status cproc) event erc-server-quitting)) cproc (process-status cproc) event erc-server-quitting))
(if (string-match "^open" event) (if (string-match "^open" event)
;; newly opened connection (no wait) ;; newly opened connection (no wait)
@ -1208,7 +1208,6 @@ add things to `%s' instead."
parsed 'notice 'active parsed 'notice 'active
'INVITE ?n nick ?u login ?h host ?c chnl))))) 'INVITE ?n nick ?u login ?h host ?c chnl)))))
(define-erc-response-handler (JOIN) (define-erc-response-handler (JOIN)
"Handle join messages." "Handle join messages."
nil nil
@ -1244,7 +1243,7 @@ add things to `%s' instead."
(erc-format-message (erc-format-message
'JOIN ?n nick ?u login ?h host ?c chnl)))))) 'JOIN ?n nick ?u login ?h host ?c chnl))))))
(when buffer (set-buffer buffer)) (when buffer (set-buffer buffer))
(erc-update-channel-member chnl nick nick t nil nil host login) (erc-update-channel-member chnl nick nick t nil nil nil nil nil host login)
;; on join, we want to stay in the new channel buffer ;; on join, we want to stay in the new channel buffer
;;(set-buffer ob) ;;(set-buffer ob)
(erc-display-message parsed nil buffer str)))))) (erc-display-message parsed nil buffer str))))))
@ -1413,7 +1412,7 @@ add things to `%s' instead."
;; message. We will accumulate private identities indefinitely ;; message. We will accumulate private identities indefinitely
;; at this point. ;; at this point.
(erc-update-channel-member (if privp nick tgt) nick nick (erc-update-channel-member (if privp nick tgt) nick nick
privp nil nil host login nil nil t) privp nil nil nil nil nil host login nil nil t)
(let ((cdata (erc-get-channel-user nick))) (let ((cdata (erc-get-channel-user nick)))
(setq fnick (funcall erc-format-nick-function (setq fnick (funcall erc-format-nick-function
(car cdata) (cdr cdata)))))) (car cdata) (cdr cdata))))))
@ -1466,11 +1465,10 @@ add things to `%s' instead."
"The channel topic has changed." nil "The channel topic has changed." nil
(let* ((ch (car (erc-response.command-args parsed))) (let* ((ch (car (erc-response.command-args parsed)))
(topic (erc-trim-string (erc-response.contents parsed))) (topic (erc-trim-string (erc-response.contents parsed)))
(time (format-time-string erc-server-timestamp-format (time (format-time-string erc-server-timestamp-format)))
(current-time))))
(pcase-let ((`(,nick ,login ,host) (pcase-let ((`(,nick ,login ,host)
(erc-parse-user (erc-response.sender parsed)))) (erc-parse-user (erc-response.sender parsed))))
(erc-update-channel-member ch nick nick nil nil nil host login) (erc-update-channel-member ch nick nick nil nil nil nil nil nil host login)
(erc-update-channel-topic ch (format "%s\C-o (%s, %s)" topic nick time)) (erc-update-channel-topic ch (format "%s\C-o (%s, %s)" topic nick time))
(erc-display-message parsed 'notice (erc-get-buffer ch proc) (erc-display-message parsed 'notice (erc-get-buffer ch proc)
'TOPIC ?n nick ?u login ?h host 'TOPIC ?n nick ?u login ?h host
@ -1800,8 +1798,7 @@ See `erc-display-server-message'." nil
(when (string-match "\\(^[0-9]+ \\)\\(.*\\)$" full-name) (when (string-match "\\(^[0-9]+ \\)\\(.*\\)$" full-name)
(setq hopcount (match-string 1 full-name)) (setq hopcount (match-string 1 full-name))
(setq full-name (match-string 2 full-name))) (setq full-name (match-string 2 full-name)))
(erc-update-channel-member channel nick nick nil nil nil host (erc-update-channel-member channel nick nick nil nil nil nil nil nil host user full-name)
user full-name)
(erc-display-message parsed 'notice 'active 's352 (erc-display-message parsed 'notice 'active 's352
?c channel ?n nick ?a away-flag ?c channel ?n nick ?a away-flag
?u user ?h host ?f full-name)))) ?u user ?h host ?f full-name))))

View file

@ -67,7 +67,8 @@ variable.")
(defun erc-input-ring-setup () (defun erc-input-ring-setup ()
"Do the setup required so that we can use comint style input rings. "Do the setup required so that we can use comint style input rings.
Call this function when setting up the mode." Call this function when setting up the mode."
(setq erc-input-ring (make-ring comint-input-ring-size)) (unless (ring-p erc-input-ring)
(setq erc-input-ring (make-ring comint-input-ring-size)))
(setq erc-input-ring-index nil)) (setq erc-input-ring-index nil))
(defun erc-add-to-input-ring (s) (defun erc-add-to-input-ring (s)

View file

@ -147,10 +147,11 @@ the minibuffer."
:group 'erc-stamp :group 'erc-stamp
:type 'string) :type 'string)
(defcustom erc-timestamp-intangible t (defcustom erc-timestamp-intangible nil
"Whether the timestamps should be intangible, i.e. prevent the point "Whether the timestamps should be intangible, i.e. prevent the point
from entering them and instead jump over them." from entering them and instead jump over them."
:group 'erc-stamp :group 'erc-stamp
:version "25.1"
:type 'boolean) :type 'boolean)
(defface erc-timestamp-face '((t :weight bold :foreground "green")) (defface erc-timestamp-face '((t :weight bold :foreground "green"))

View file

@ -858,7 +858,7 @@ Use `erc-make-mode-line-buffer-name' to create buttons."
faces (cdr faces))) faces (cdr faces)))
strings))) strings)))
(newobject (erc-modified-channels-object strings))) (newobject (erc-modified-channels-object strings)))
(unless (equal oldobject newobject) (unless (equal-including-properties oldobject newobject)
(setq erc-modified-channels-object newobject) (setq erc-modified-channels-object newobject)
(force-mode-line-update t))))) (force-mode-line-update t)))))

File diff suppressed because it is too large Load diff