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).
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>
* 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
if needed (bug#18510). Remove call to erc-modified-channels-object
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>
@ -360,9 +454,9 @@
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.
(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
itself was in quotes.
@ -625,4 +719,3 @@ See ChangeLog.08 for earlier changes.
;; coding: utf-8
;; add-log-time-zone-rule: t
;; End:

View file

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

View file

@ -67,7 +67,8 @@ variable.")
(defun erc-input-ring-setup ()
"Do the setup required so that we can use comint style input rings.
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))
(defun erc-add-to-input-ring (s)

View file

@ -147,10 +147,11 @@ the minibuffer."
:group 'erc-stamp
:type 'string)
(defcustom erc-timestamp-intangible t
(defcustom erc-timestamp-intangible nil
"Whether the timestamps should be intangible, i.e. prevent the point
from entering them and instead jump over them."
:group 'erc-stamp
:version "25.1"
:type 'boolean)
(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)))
strings)))
(newobject (erc-modified-channels-object strings)))
(unless (equal oldobject newobject)
(unless (equal-including-properties oldobject newobject)
(setq erc-modified-channels-object newobject)
(force-mode-line-update t)))))

File diff suppressed because it is too large Load diff