Subject: Re: bug#1173: Acknowledgement (gnus/imap.el should quote quotes in password)

From: Ted Zlatanov <[email-masked]>
Date: Thu, 16 Oct 2008 11:16:00 -0500

The following message is a courtesy copy of an article
that has been posted to gnu.emacs.bug as well.

On Wed, 15 Oct 2008 15:00:22 -0400 "Aaron D. Ball" <[email-masked]> wrote: 

ADB> Looks like all I needed was to specify that the replacement is
ADB> literal. This patch let me read my mail for real.

ADB> --- lisp/gnus/imap.el~  2008-01-06 20:22:42.000000000 -0500
ADB> +++ lisp/gnus/imap.el   2008-10-15 14:58:40.890800000 -0400
ADB> @@ -922,7 +922,7 @@
ADB>                           (lambda (user passwd)
ADB>                             (imap-ok-p (imap-send-command-wait
ADB>                                         (concat "LOGIN \"" user "\" \""
ADB> -                                               passwd "\""))))))
ADB> + (replace-regexp-in-string "\"" "\\\"" passwd t t) "\""))))))

ADB>  (defun imap-anonymous-p (buffer)
ADB>    t)

Aaron,

the latest CVS Gnus and Emacs have:

(defun imap-quote-specials (string)
  (with-temp-buffer
    (insert string)
    (goto-char (point-min))
    (while (re-search-forward "[\\\"]" nil t)
      (forward-char -1)
      (insert "\\")
      (forward-char 1))
    (buffer-string)))

(it gets called for user name, password, etc. and escapes backslash as
well)

I think that will solve your problem, if you can use a more recent Emacs
or Gnus.

Thanks
Ted