]> git.eshelyaron.com Git - emacs.git/commitdiff
Sync from upstream ERC
authorMichael Olson <mwolson@gnu.org>
Thu, 29 Nov 2007 22:36:38 +0000 (22:36 +0000)
committerMichael Olson <mwolson@gnu.org>
Thu, 29 Nov 2007 22:36:38 +0000 (22:36 +0000)
 - Parse 307 (nick has identified) responses.
 - Only activate some things if the connection has been established.

lisp/erc/ChangeLog
lisp/erc/erc-autoaway.el
lisp/erc/erc-backend.el
lisp/erc/erc-netsplit.el
lisp/erc/erc-notify.el
lisp/erc/erc-track.el
lisp/erc/erc.el

index b7f40c39411c3d324557740cfe6c85f5962c92b1..232e004602fb854ed700f3a2a4075fa5f5fbe5c4 100644 (file)
@@ -1,3 +1,8 @@
+2007-11-29  Giorgos Keramidas  <keramida@ceid.upatras.gr>
+
+       * erc-backend.el, erc.el:
+       Parse 307 (nick has identified) responses.
+
 2007-11-15  Juanma Barranquero  <lekktu@gmail.com>
 
        * erc.el (erc-open):
@@ -5,6 +10,17 @@
        * erc-log.el (log):
        * erc-match.el (erc-log-matches): Fix typos in docstrings.
 
+2007-11-11  Michael Olson  <mwolson@gnu.org>
+
+       * erc-autoaway.el (erc-autoaway-possibly-set-away):
+       * erc-netsplit.el (erc-netsplit-timer):
+       * erc-notify.el (erc-notify-timer):
+       * erc-track.el (erc-user-is-active): Only run if we have
+       successfully established a connection to the server and have
+       logged in.  I suspect that sending messages too soon may make some
+       IRC servers not respond well, particularly when the network
+       connection is iffy or subject to traffic-shaping.
+
 2007-11-01  Michael Olson  <mwolson@gnu.org>
 
        * erc-compat.el (erc-set-write-file-functions): New compatibility
index c70beb112e2871a6ea8665ce56a60e3c7be443be..4c841387d7f8401267cd21de2cfd4a5506772137 100644 (file)
@@ -248,7 +248,8 @@ exceeds `erc-autoaway-idle-seconds'."
   ;; A test for (erc-server-process-alive) is not necessary, because
   ;; this function is called from `erc-timer-hook', which is called
   ;; whenever the server sends something to the client.
-  (when (and erc-auto-set-away
+  (when (and erc-server-connected
+            erc-auto-set-away
             (not erc-autoaway-caused-away)
             (erc-autoaway-some-open-server-buffer))
     (let ((idle-time (erc-time-diff erc-autoaway-last-sent-time
index 5b4e79fda327758b74be1c73af3b395f478953cc..338696f37d6a7f80032aa17073e571aa23f5c83d 100644 (file)
@@ -1564,6 +1564,16 @@ See `erc-display-server-message'." nil
   (erc-display-message parsed 'notice 'active
                        's306 ?m (erc-response.contents parsed)))
 
+(define-erc-response-handler (307)
+  "Display nick-identified message." nil
+  (multiple-value-bind (nick user message)
+      (cdr (erc-response.command-args parsed))
+    (erc-display-message
+     parsed 'notice 'active 's307
+     ?n nick
+     ?m (mapconcat 'identity (cddr (erc-response.command-args parsed))
+                   " "))))
+
 (define-erc-response-handler (311 314)
   "WHOIS/WHOWAS notices." nil
   (let ((fname (erc-response.contents parsed))
index 83bc0dffc0c076dbb96cb3e373d74670c88b3aa2..b20b7ad738b17c87c7cf75770777d57f2199e478 100644 (file)
@@ -173,13 +173,14 @@ join from that split has been detected or not.")
 
 (defun erc-netsplit-timer (now)
   "Clean cruft from `erc-netsplit-list' older than 10 minutes."
-  (dolist (elt erc-netsplit-list)
-    (when (> (erc-time-diff (cadr elt) now) 600)
-      (when erc-netsplit-debug
-       (erc-display-message
-        nil 'notice (current-buffer)
-        (concat "Netsplit: Removing " (car elt))))
-      (setq erc-netsplit-list (delq elt erc-netsplit-list)))))
+  (when erc-server-connected
+    (dolist (elt erc-netsplit-list)
+      (when (> (erc-time-diff (cadr elt) now) 600)
+       (when erc-netsplit-debug
+         (erc-display-message
+          nil 'notice (current-buffer)
+          (concat "Netsplit: Removing " (car elt))))
+       (setq erc-netsplit-list (delq elt erc-netsplit-list))))))
 
 ;;;###autoload
 (defun erc-cmd-WHOLEFT ()
index 9216631a9b42783d7bf960f756a5a7924aaa9bc0..34556a00d6c9ea131606e379539b9601822db1a6 100644 (file)
@@ -111,7 +111,8 @@ changes."
 ;;;; Timer handler
 
 (defun erc-notify-timer (now)
-  (when (and erc-notify-list
+  (when (and erc-server-connected
+            erc-notify-list
             (> (erc-time-diff
                 erc-last-ison-time now)
                erc-notify-interval))
index ad3eaf73a4b1d253f2c6b8162663ebc9d4fb2bb3..15de2094214486e211694fd67967132fd27d6e2e 100644 (file)
@@ -665,8 +665,9 @@ only consider active buffers visible.")
 
 (defun erc-user-is-active (&rest ignore)
   "Set `erc-buffer-activity'."
-  (setq erc-buffer-activity (erc-current-time))
-  (erc-track-modified-channels))
+  (when erc-server-connected
+    (setq erc-buffer-activity (erc-current-time))
+    (erc-track-modified-channels)))
 
 (defun erc-track-get-buffer-window (buffer frame-param)
   (if (eq frame-param 'selected-visible)
index 497b6ffd39642e7cd543110d70c8591d81e25360..ac9c3f6df9bf90b53edff213b9b903e41f5ec112 100644 (file)
@@ -6205,6 +6205,7 @@ All windows are opened in the current frame."
    (s303   . "Is online: %n")
    (s305   . "%m")
    (s306   . "%m")
+   (s307   . "%n %m")
    (s311   . "%n is %f (%u@%h)")
    (s312   . "%n is/was on server %s (%c)")
    (s313   . "%n is an IRC operator")