Fixed the last change.
authorueno <ueno>
Thu, 8 Mar 2007 09:03:51 +0000 (09:03 +0000)
committerueno <ueno>
Thu, 8 Mar 2007 09:03:51 +0000 (09:03 +0000)
epg.el

diff --git a/epg.el b/epg.el
index d2bb20a..95e5abb 100644 (file)
--- a/epg.el
+++ b/epg.el
@@ -1711,7 +1711,7 @@ If MODE is t or 'secret, only secret keyring should be searched.
 Otherwise, only public keyring should be searched and the key
 signatures should be included."
   (let ((lines (epg--list-keys-1 context name mode))
-       keys cert pointer pointer-1)
+       keys cert pointer pointer-1 index string)
     (while lines
       (cond
        ((member (aref (car lines) 0) '("pub" "sec" "crt" "crs"))
@@ -1731,6 +1731,7 @@ signatures should be included."
         (cons (epg--make-sub-key-1 (car lines))
               (epg-key-sub-key-list (car keys)))))
        ((equal (aref (car lines) 0) "uid")
+       (setq string (aref (car lines) 9))
        (epg-key-set-user-id-list
         (car keys)
         (cons (epg-make-user-id
@@ -1740,9 +1741,12 @@ signatures should be included."
                (condition-case nil
                    (if cert
                        (epg-dn-from-string (aref (car lines) 9))
+                     (setq string (copy-sequence (aref (car lines) 9)))
+                     (while (string-match "\"" string index)
+                       (setq string (replace-match "\\\"" t t string)
+                             index (1+ (match-end 0))))
                      (epg--decode-coding-string
-                      (car (read-from-string (concat "\"" (aref (car lines) 9)
-                                                     "\"")))
+                      (car (read-from-string (concat "\"" string "\"")))
                       'utf-8))
                  (error (aref (car lines) 9))))
               (epg-key-user-id-list (car keys)))))