<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://blog.gmane.org/gmane.emacs.erc.general">
    <title>gmane.emacs.erc.general</title>
    <link>http://blog.gmane.org/gmane.emacs.erc.general</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.emacs.erc.general/1365"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.emacs.erc.general/1364"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.emacs.erc.general/1363"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.emacs.erc.general/1362"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.emacs.erc.general/1361"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.emacs.erc.general/1360"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.emacs.erc.general/1359"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.emacs.erc.general/1358"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.emacs.erc.general/1357"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.emacs.erc.general/1356"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.emacs.erc.general/1355"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.emacs.erc.general/1354"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.emacs.erc.general/1353"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.emacs.erc.general/1352"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.emacs.erc.general/1351"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.emacs.erc.general/1350"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.emacs.erc.general/1349"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.emacs.erc.general/1348"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.emacs.erc.general/1347"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.emacs.erc.general/1346"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.emacs.erc.general/1365">
    <title>patch for rudybot &lt; at &gt; #emacs</title>
    <link>http://permalink.gmane.org/gmane.emacs.erc.general/1365</link>
    <description>&lt;pre&gt;
Hi!

I want to ignore certain users only in certain channels.  Yes, it's
specifically targetting rudybot in #emacs.  (rudybot is useful in
#scheme, but it's a PITA in #emacs).

So here is a "patch":

------------------------------------------------------------------------
(defcustom erc-ignore-per-channel-alist nil
  "*A-List of regexps matching user identifiers to ignore, for each channel.

Some users are obnoxious only in some channels (eg. rudybot on #emacs).

A user identifier has the form \"nick!login&amp;lt; at &amp;gt;host\".  If an
identifier matches, the message from the person will not be
processed."
  :group 'erc-ignore
  :type '(repeat (cons string regexp)))

(defcustom erc-ignore-per-channel-reply-alist nil
  "*A-List of regexps matching user identifiers to ignore completely, for each channel.

Some users are obnoxious only in some channels (eg. rudybot on #emacs).


This differs from `erc-ignore-list' in that it also ignores any
messages directed at the user.

A user identifier has the form \"nick!login&amp;lt; at &amp;gt;host\".

If an identifier matches, or a message is addressed to a nick
whose identifier matches, the message will not be processed.

CAVEAT: ERC doesn't know about the user and host of anyone who
was already in the channel when you joined, but never said
anything, so it won't be able to match the user and host of those
people.  You can update the ERC internal info using /WHO *."
  :group 'erc-ignore
  :type '(repeat (cons string regexp)))

;; ;; Note: it would be better to have  per-server-per-channel variables…
;; (make-variable-buffer-local 'erc-ignore-per-channel-list) ; in server buffers.
;; (make-variable-buffer-local 'erc-ignore-per-channel-reply-list) ; in server buffers.


(defun erc-ignored-user-in-channel-p (msg tgt spec)
  "Return non-nil if SPEC matches something in `erc-ignore-list'.

Takes a full SPEC of a user in the form \"nick!login&amp;lt; at &amp;gt;host\", and
matches against all the regexp's in `erc-ignore-list'.  If any
match, returns that regexp."
  (loop
     for (channel . regexp) in (erc-with-server-buffer erc-ignore-per-channel-alist)
     thereis (and (string= channel tgt)
                  (string-match regexp spec))))


(defun erc-ignored-reply-p (msg tgt proc)
  ;; FIXME: this docstring needs fixing -- Lawrence 2004-01-08
  "Return non-nil if MSG matches something in `erc-ignore-reply-list'.

Takes a message MSG to a channel and returns non-nil if the addressed
user matches any regexp in `erc-ignore-reply-list'."
  (let ((target-nick (erc-message-target msg)))
    (if (not target-nick)
        nil
        (erc-with-buffer (tgt proc)
          (let ((user (erc-get-server-user target-nick)))
            (when user
              (let ((spec (erc-user-spec user)))
                (or (erc-list-match erc-ignore-reply-list spec)
                    (loop
                       for (channel . regexp) in (erc-with-server-buffer erc-ignore-per-channel-reply-alist)
                         do (message "channel = %S; tgt = %S; regexp = %S; spec = %S" channel tgt regexp spec)
                       thereis (and (string= channel tgt)
                                    (string-match regexp spec)))))))))))


(define-erc-response-handler (PRIVMSG NOTICE)
    "Handle private messages, including messages in channels." nil
    (let ((sender-spec (erc-response.sender parsed))
          (cmd (erc-response.command parsed))
          (tgt (car (erc-response.command-args parsed)))
          (msg (erc-response.contents parsed)))
      (if (or (erc-ignored-user-p                    sender-spec)
              (erc-ignored-user-in-channel-p msg tgt sender-spec)
              (erc-ignored-reply-p           msg tgt proc))
          (when erc-minibuffer-ignored
            (message "Ignored %s from %s to %s" cmd sender-spec tgt))
          (let* ((sndr (erc-parse-user sender-spec))
                 (nick (nth 0 sndr))
                 (login (nth 1 sndr))
                 (host (nth 2 sndr))
                 (msgp (string= cmd "PRIVMSG"))
                 (noticep (string= cmd "NOTICE"))
                 ;; S.B. downcase *both* tgt and current nick
                 (privp (erc-current-nick-p tgt))
                 s buffer
                 fnick)
            (setf (erc-response.contents parsed) msg)
            (setq buffer (erc-get-buffer (if privp nick tgt) proc))
            (when buffer
              (with-current-buffer buffer
                ;; update the chat partner info.  Add to the list if private
                ;; 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)
                (let ((cdata (erc-get-channel-user nick)))
                  (setq fnick (funcall erc-format-nick-function
                                       (car cdata) (cdr cdata))))))
            (cond
              ((erc-is-message-ctcp-p msg)
               (setq s (if msgp
                           (erc-process-ctcp-query proc parsed nick login host)
                           (erc-process-ctcp-reply proc parsed nick login host
                                                   (match-string 1 msg)))))
              (t
               (setcar erc-server-last-peers nick)
               (setq s (erc-format-privmessage
                        (or fnick nick) msg
                        ;; If buffer is a query buffer,
                        ;; format the nick as for a channel.
                        (and (not (and buffer
                                       (erc-query-buffer-p buffer)
                                       erc-format-query-as-channel-p))
                             privp)
                        msgp))))
            (when s
              (if (and noticep privp)
                  (progn
                    (run-hook-with-args 'erc-echo-notice-always-hook
                                        s parsed buffer nick)
                    (run-hook-with-args-until-success
                     'erc-echo-notice-hook s parsed buffer nick))
                  (erc-display-message parsed nil buffer s)))
            (when (string= cmd "PRIVMSG")
              (erc-auto-query proc parsed))))))
------------------------------------------------------------------------

&lt;/pre&gt;</description>
    <dc:creator>Pascal J. Bourguignon</dc:creator>
    <dc:date>2012-05-20T12:44:06</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.emacs.erc.general/1364">
    <title>Re: /list produces incomplete output: analysis andworkaround</title>
    <link>http://permalink.gmane.org/gmane.emacs.erc.general/1364</link>
    <description>&lt;pre&gt;
Ok I'll do so.


Question still is, which one would it be...  :)

Well, I'd tend to propose my original patch for two reasons:

1. erc-sever-322 will still run (which it did before) so it does change
   the overall behavior less.  (Even tough I'm still not sure what the
   idea behind erc-sever-322 actually is.)

2. If erc-list is not loaded, the default handling via
   erc-server-322-message suffers from the same problem, which is fixed
   by my path, too.

So, if nobody objects I'll post my path to emacs-devel sometime the next
days.

cheers
sascha
&lt;/pre&gt;</description>
    <dc:creator>Sascha Wilde</dc:creator>
    <dc:date>2012-05-17T13:44:56</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.emacs.erc.general/1363">
    <title>Re: /list produces incomplete output: analysis andworkaround</title>
    <link>http://permalink.gmane.org/gmane.emacs.erc.general/1363</link>
    <description>&lt;pre&gt;It would be a good idea to pick a solution and send the patch to the
emacs-devel&amp;lt; at &amp;gt;gnu.org list, since the primary place to maintain ERC is in the
Emacs source tree.  Cc: me for a +1 on the patch.  The one that has the
potential to break the least amount of code is probably better.

On Wed, May 16, 2012 at 2:48 PM, Sascha Wilde &amp;lt;wilde&amp;lt; at &amp;gt;sha-bang.de&amp;gt; wrote:




&lt;/pre&gt;</description>
    <dc:creator>Michael Olson</dc:creator>
    <dc:date>2012-05-17T00:55:45</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.emacs.erc.general/1362">
    <title>Re: /list produces incomplete output: analysis andworkaround</title>
    <link>http://permalink.gmane.org/gmane.emacs.erc.general/1362</link>
    <description>&lt;pre&gt;
Anyway, I'd think either solution would be an improvement, as both fix
the annoying bug of omitted channels in /list output.  I'd be really
grateful if one solution could be committed.

cheers
sascha
&lt;/pre&gt;</description>
    <dc:creator>Sascha Wilde</dc:creator>
    <dc:date>2012-05-16T21:48:53</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.emacs.erc.general/1361">
    <title>Re: /list produces incomplete output: analysis andworkaround</title>
    <link>http://permalink.gmane.org/gmane.emacs.erc.general/1361</link>
    <description>&lt;pre&gt;
Seems not letting another hook run is exactly what is intended.  Like
you I'm skeptical.
&lt;/pre&gt;</description>
    <dc:creator>Aaron S. Hawley</dc:creator>
    <dc:date>2012-05-16T12:45:50</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.emacs.erc.general/1360">
    <title>Re: /list produces incomplete output: analysis andworkaround</title>
    <link>http://permalink.gmane.org/gmane.emacs.erc.general/1360</link>
    <description>&lt;pre&gt;
I thought of that, too.  But this change would change the semantics
further (not sure whether this would be intended): as
erc-list-handle-322 ends with:

  ;; Don't let another hook run.
  t)

erc-server-322 wouldn't be run at all...

I have no idea if that would be good or bad as I don't really understand
what the rational of erc-server-322 is anyway?!

cheers
sascha
&lt;/pre&gt;</description>
    <dc:creator>Sascha Wilde</dc:creator>
    <dc:date>2012-05-16T07:53:35</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.emacs.erc.general/1359">
    <title>Re: /list produces incomplete output: analysis andworkaround</title>
    <link>http://permalink.gmane.org/gmane.emacs.erc.general/1359</link>
    <description>&lt;pre&gt;
One wonders how many other handlers also return non-nill, but should return nil.

The other option is making sure the handlers of erc-list.el get first
priority by not appending them with third argument to `add-hook'.

--- erc-list.el2012-04-02 19:37:14.000000000 -0400
+++ erc-list.el2012-05-15 13:33:13.460361100 -0400
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -58,8 +58,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
   ((erc-with-all-buffers-of-server nil
      #'erc-open-server-buffer-p
      (remove-hook 'erc-server-322-functions 'erc-list-handle-322 t))
-   (add-hook 'erc-server-321-functions 'erc-server-321-message t)
-   (add-hook 'erc-server-322-functions 'erc-server-322-message t)))
+   (add-hook 'erc-server-321-functions 'erc-server-321-message)
+   (add-hook 'erc-server-322-functions 'erc-server-322-message)))

 ;; Format a record for display.
 (defun erc-list-make-string (channel users topic)
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -174,7 +174,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 (defun erc-list-install-322-handler (server-buffer)
   (with-current-buffer server-buffer
     ;; Arrange for 322 responses to insert into our buffer.
-    (add-hook 'erc-server-322-functions 'erc-list-handle-322 t t)
+    (add-hook 'erc-server-322-functions 'erc-list-handle-322 nil t)
     ;; Arrange for 323 (end of list) to end this.
     (erc-once-with-server-event
      323
&lt;/pre&gt;</description>
    <dc:creator>Aaron S. Hawley</dc:creator>
    <dc:date>2012-05-15T17:48:33</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.emacs.erc.general/1358">
    <title>erc-cmd-LIST always sends an option</title>
    <link>http://permalink.gmane.org/gmane.emacs.erc.general/1358</link>
    <description>&lt;pre&gt;Hi *,

erc-cmd-LIST always sends LIST with an option.  If the user did not
specify an option an empty option is send.  To my understanding this is
standard conferment (though ugly).  But at least one widely used ircd
get confused by this behavior, see:
https://github.com/inspircd/inspircd/issues/120

So I propose the following patch:

--- erc-list.el Mon May 14 22:39:14 2012 +0200
+++ erc-list.el Tue May 15 18:10:26 2012 +0200
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -209,8 +209,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
      321
      (list 'progn
         (list 'erc-list-install-322-handler (current-buffer)))))
-  (erc-server-send (concat "LIST :" (or (and line (substring line 1))
-                                    ""))))
+  (erc-server-send (concat "LIST" (or (and line 
+                                         (&amp;gt; (length (substring line 1)) 0)
+                                          (concat " :" (substring line 1)))
+                                     ""))))
 (put 'erc-cmd-LIST 'do-not-parse-args t)


This is erc v5.3 from GNU Emacs HEAD.

cheers
sascha
&lt;/pre&gt;</description>
    <dc:creator>Sascha Wilde</dc:creator>
    <dc:date>2012-05-15T16:15:28</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.emacs.erc.general/1357">
    <title>/list produces incomplete output: analysis andworkaround</title>
    <link>http://permalink.gmane.org/gmane.emacs.erc.general/1357</link>
    <description>&lt;pre&gt;Hi *,

I discovered, that erc /list does not display all channels the server
announces: it turns out that visited and even channels already parted
are omitted.

The reason is, that the function to display the channels is added as
hook to erc-server-322-functions after erc-server-322.  But
erc-server-322 returns a non-NIL value when erc-update-channel-topic
succeeds on a channel -- which in turn leads to the following hook
functions not being called.

I'm not deep enough into the code to call it a solution -- but the
following simple workaround (which simply makes sure that erc-server-322
always returns NIL) seems to work:

--- erc-backend.el           2012-05-14    03:00:11.666556805 +0200
+++ erc-backend.el_patched   2012-05-15    17:48:13.064059897 +0200
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1696,7 +1696,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
     (multiple-value-bind (channel num-users)
         (values-list (cdr (erc-response.command-args parsed)))
       (add-to-list 'erc-channel-list (list channel))
-      (erc-update-channel-topic channel topic))))
+      (erc-update-channel-topic channel topic)))
+  nil)
 
 (defun erc-server-322-message (proc parsed)
   "Display a message for the 322 event."

cheers
sascha
&lt;/pre&gt;</description>
    <dc:creator>Sascha Wilde</dc:creator>
    <dc:date>2012-05-15T15:59:16</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.emacs.erc.general/1356">
    <title>handle urls like urlview</title>
    <link>http://permalink.gmane.org/gmane.emacs.erc.general/1356</link>
    <description>&lt;pre&gt;I want view the last 5 links in this buffer on another window and choose which to open
with firefox.

Can anyone help me complete this function, I'm don't know lisp and also
a Emacs newbie...

(defun my-urlview ()
  (interactive)
  (set-buffer (get-buffer-create "*urlview*"))
  (buffer-disable-undo)
  (erase-buffer)
  ...
  ...
  (switch-to-buffer-other-window "*urlview*")
  (local-set-key (kbd "q") (lambda ()
                             (interactive)
                             (bury-buffer)
                             (unless (null (cdr (window-list))) ; only one window
                               (delete-window)))))
&lt;/pre&gt;</description>
    <dc:creator>jary_p</dc:creator>
    <dc:date>2012-04-14T08:08:38</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.emacs.erc.general/1355">
    <title>Re: Make server response timestamp formatcustomizable (patch)</title>
    <link>http://permalink.gmane.org/gmane.emacs.erc.general/1355</link>
    <description>&lt;pre&gt;The patch looks good to me.

On Fri, Feb 10, 2012 at 6:20 AM, Teemu Likonen &amp;lt;tlikonen&amp;lt; at &amp;gt;iki.fi&amp;gt; wrote:



&lt;/pre&gt;</description>
    <dc:creator>Michael Olson</dc:creator>
    <dc:date>2012-02-10T15:45:18</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.emacs.erc.general/1354">
    <title>Make server response timestamp format customizable(patch)</title>
    <link>http://permalink.gmane.org/gmane.emacs.erc.general/1354</link>
    <description>&lt;pre&gt;ERC displays various server response messages with timestamps. The
timestamp formats that are hard-coded to ERC code have some unnecessary
variation. Also, it's sometimes even unclear what is the day component
and what is the month component (due to YY/MM or MM/YY differences).

I suggest making those server response timestamp formats customizable
and having the default value in international "%Y-%m-%d %T" format (as
parsed by `format-time-string' function).

This message includes a patch that fully implements this (I believe).

I have also filed this to Emacs bug tracking system:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10779

_______________________________________________
Erc-discuss mailing list
Erc-discuss&amp;lt; at &amp;gt;gnu.org
https://lists.gnu.org/mailman/listinfo/erc-discuss
&lt;/pre&gt;</description>
    <dc:creator>Teemu Likonen</dc:creator>
    <dc:date>2012-02-10T14:20:36</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.emacs.erc.general/1353">
    <title>getting new-window/query indication in "ERC messagesto you" window?</title>
    <link>http://permalink.gmane.org/gmane.emacs.erc.general/1353</link>
    <description>&lt;pre&gt;Hello,

Thank you for tending ERC.
I am a happy user, with one niggling request:

Is there a way to make it so when someone does the equivalent
of "/q &amp;lt;my_nick&amp;gt;" (which creates a new window for me), that I also
get some sort of notification in my "ERC messages to you" window?

I've had a few queries like that that I've missed, because while
I take care to keep the "ERC messages to you" window visible,
there may be many other sub-windows that are hidden.

Jim
&lt;/pre&gt;</description>
    <dc:creator>Jim Meyering</dc:creator>
    <dc:date>2012-02-03T14:10:00</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.emacs.erc.general/1352">
    <title>Re: [PATCH 2/2] response handlers needed for SASLPLAIN authentication</title>
    <link>http://permalink.gmane.org/gmane.emacs.erc.general/1352</link>
    <description>&lt;pre&gt;
If you're in the US, it may be very quick, with the FSF's new
all-electronic submission process.
&lt;/pre&gt;</description>
    <dc:creator>Jim Meyering</dc:creator>
    <dc:date>2012-02-03T09:00:23</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.emacs.erc.general/1351">
    <title>Re: [PATCH 2/2] response handlers needed for SASLPLAIN authentication</title>
    <link>http://permalink.gmane.org/gmane.emacs.erc.general/1351</link>
    <description>&lt;pre&gt;
This is a good point.

I've pushed my branch: https://github.com/joseph-gay/erc-sasl
If I should have forked emacsmirror/erc instead, let me know.


_______________________________________________
Erc-discuss mailing list
Erc-discuss&amp;lt; at &amp;gt;gnu.org
https://lists.gnu.org/mailman/listinfo/erc-discuss
&lt;/pre&gt;</description>
    <dc:creator>Joseph Gay</dc:creator>
    <dc:date>2012-02-03T08:25:18</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.emacs.erc.general/1350">
    <title>Re: [PATCH 2/2] response handlers needed for SASLPLAIN authentication</title>
    <link>http://permalink.gmane.org/gmane.emacs.erc.general/1350</link>
    <description>&lt;pre&gt;
---8&amp;lt;---[snipped 5 lines]---8&amp;lt;---

Which can take some time...plus with the current feature-freeze it'll
take some until your changes actually get applied (no clue while there's
no -dev or -experimental branch for the time until the release. patches
must be piling up…).

Do you keep your stuff somewhere publicly accessible? I've been waiting
to access freenode from my TOR server for some time, I'd like to pull :)
And I don't think there's any harm informing the list that a new version
is available.

&lt;/pre&gt;</description>
    <dc:creator>Philipp Haselwarter</dc:creator>
    <dc:date>2012-02-02T20:32:44</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.emacs.erc.general/1349">
    <title>Re: [PATCH 2/2] response handlers needed for SASLPLAIN authentication</title>
    <link>http://permalink.gmane.org/gmane.emacs.erc.general/1349</link>
    <description>&lt;pre&gt;I've made another revision this morning. Users may not want SASL enabled
for every server, so I changed the conditional in erc-login to call a
new predicate erc-sasl-use-sasl-p, which looks for a match to
erc-session-server in a new var erc-sasl-server-regexp-list. The list is
empty by default, and the commentary now indicates that it should be
populated with desired regexp(s). I suppose I shouldn't bother
re-submitting patch files until I can assign copyright.
&lt;/pre&gt;</description>
    <dc:creator>Joseph Gay</dc:creator>
    <dc:date>2012-02-02T19:13:24</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.emacs.erc.general/1348">
    <title>Re: [PATCH 2/2] response handlers needed for SASLPLAIN authentication</title>
    <link>http://permalink.gmane.org/gmane.emacs.erc.general/1348</link>
    <description>&lt;pre&gt;Seems OK.  A few things:

 - Adjust copyright notice to:

Copyright (C) 2012 Free Software Foundation, Inc.

 - I think we have some standard boilerplate line which goes at the end of
all files, might want to look into that.

 - Send the patch to the emacs-devel list as well, and Cc me, since that
version is considered canonical at the moment.  It's more than 12 lines, so
you'll need to tell them that a copyright assignment is necessary.
 Luckily, this can now be scanned instead of snail-mailed to the FSF; they
should give you details.

On Wed, Feb 1, 2012 at 12:45 AM, Joseph Gay &amp;lt;gilleylen&amp;lt; at &amp;gt;gmail.com&amp;gt; wrote:




&lt;/pre&gt;</description>
    <dc:creator>Michael Olson</dc:creator>
    <dc:date>2012-02-01T17:23:41</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.emacs.erc.general/1347">
    <title>[PATCH 1/2] modifying erc-login to conditionally sendappropriate CAP request for SASL</title>
    <link>http://permalink.gmane.org/gmane.emacs.erc.general/1347</link>
    <description>&lt;pre&gt;Hello. What precedes is a set of response handlers to implement SASL
PLAIN authentication. If there's a way around the small modification to
erc-login, it's likely preferable.

If this is useful / acceptable, I can request papers to fill out for
contributing or contribute by whatever method is most appropriate.
---
 erc.el |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/erc.el b/erc.el
index 6e37f36..83caa43 100644
--- a/erc.el
+++ b/erc.el
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -5634,6 +5634,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; user input."
   (if erc-session-password
       (erc-server-send (format "PASS %s" erc-session-password))
     (message "Logging in without password"))
+  (when (and (boundp 'erc-sasl-use-sasl) erc-sasl-use-sasl)
+    (erc-server-send "CAP REQ :sasl"))
   (erc-server-send (format "NICK %s" (erc-current-nick)))
   (erc-server-send
    (format "USER %s %s %s :%s"
&lt;/pre&gt;</description>
    <dc:creator>Joseph Gay</dc:creator>
    <dc:date>2012-02-01T08:56:56</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.emacs.erc.general/1346">
    <title>[PATCH 2/2] response handlers needed for SASL PLAINauthentication</title>
    <link>http://permalink.gmane.org/gmane.emacs.erc.general/1346</link>
    <description>&lt;pre&gt;
---
 erc-sasl.el |   67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 67 insertions(+), 0 deletions(-)
 create mode 100644 erc-sasl.el

diff --git a/erc-sasl.el b/erc-sasl.el
new file mode 100644
index 0000000..002be15
--- /dev/null
+++ b/erc-sasl.el
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -0,0 +1,67 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
+;; erc-sasl.el -- handle SASL PLAIN authentication
+
+;; Copyright (C) 2001, 2002, 2003, 2004, 2006,
+;;   2007, 2008, 2009 Free Software Foundation, Inc.
+
+;; Author: Joseph Gay &amp;lt;joseph.gay&amp;lt; at &amp;gt;psy.ai&amp;gt;
+;; Keywords: comm
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see &amp;lt;http://www.gnu.org/licenses/&amp;gt;.
+
+;;; Commentary:
+
+;; This file implements SASL PLAIN authentication
+;; To activate:
+;;
+;; (require 'erc-sasl)
+;;
+;; To disable:
+;; (setq erc-sasl-use-sasl nil)
+;;
+;; NOTE: requires passing a password initially to (erc) and variants
+
+;;; Code:
+
+(defvar erc-sasl-use-sasl t
+  "Set to nil to disable SASL auth")
+
+(define-erc-response-handler (CAP)
+  "Client capability framework is used to request SASL auth, need
+  to wait for ACK to begin" nil
+  (let ((msg (erc-response.contents parsed)))
+    (when (string-match " *sasl" msg)
+      (erc-server-send "AUTHENTICATE PLAIN")
+      ;; now wait for AUTHENTICATE +
+      )))
+
+(define-erc-response-handler (AUTHENTICATE)
+  "Handling empty server response indicating ready to receive authentication." nil
+  (if erc-session-password
+      (let ((msg (erc-response.contents parsed)))
+        (when (string= "+" msg)
+          ;; plain auth
+          (erc-server-send (format "AUTHENTICATE %s"
+                                   (base64-encode-string
+                                    (concat "\0" (erc-current-nick) "\0" erc-session-password) t)))))
+    (progn 
+      (erc-display-messaged parsed 'error (if erc-server-connected 'active proc)
+                            "You must set a password in order to use SASL authentication.")
+      ;; aborting SASL auth
+      (erc-server-send (erc-server-send "AUTHENTICATE *")))))
+
+(define-erc-response-handler (903)
+  "Handling a successful SASL authentication." nil
+  (erc-server-send "CAP END"))
&lt;/pre&gt;</description>
    <dc:creator>Joseph Gay</dc:creator>
    <dc:date>2012-02-01T08:45:12</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.emacs.erc.general/1345">
    <title>Re: &lt;space&gt; to scroll to next page?</title>
    <link>http://permalink.gmane.org/gmane.emacs.erc.general/1345</link>
    <description>&lt;pre&gt;
[scrolling text in erc with &amp;lt;space&amp;gt;]


Ah, this is what i wanted to write.
Just didn't now how to say it in emacs lisp ;)

thanks a lot to you and Giorgos.
Robert
&lt;/pre&gt;</description>
    <dc:creator>Robert Epprecht</dc:creator>
    <dc:date>2011-11-27T05:10:36</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.emacs.erc.general">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.emacs.erc.general</link>
  </textinput>
</rdf:RDF>

