Subject: bug#8747: 23.3.50; [PATCH] Fix a bug in url-cookie

From: Leo <[email-masked]>
Date: Sat, 28 May 2011 03:46:46 +0800

I intend to install the following patch to fix a bug introduced in
revno: 78016 (2007-06-12).

In r78016, :named was not supplied to defstruct which resulted in no
url-cookie-p defined, which in turn lead to no cookies saved to
url-cookie-file. So there is little compatibility to maintain now that 4
years has passed ;)

Leo

diff --git a/lisp/url/url-cookie.el b/lisp/url/url-cookie.el
index 7fdd8b17..78afa163 100644
--- a/lisp/url/url-cookie.el
+++ b/lisp/url/url-cookie.el
@@ -35,17 +35,13 @@ (defgroup url-cookie nil
   :group 'url)
 
 ;; A cookie is stored internally as a vector of 7 slots
-;; [ cookie NAME VALUE EXPIRES LOCALPART DOMAIN SECURE ]
+;; [ url-cookie NAME VALUE EXPIRES LOCALPART DOMAIN SECURE ]
 
 (defstruct (url-cookie
             (:constructor url-cookie-create)
             (:copier nil)
-            ;; For compatibility with a previous version which did not use
-            ;; defstruct, and also in order to make sure that the printed
-            ;; representation does not depend on CL internals, we use an
-            ;; explicitly managed tag.
-            (:type vector))
-  (tag 'cookie :read-only t)
+            (:type vector)
+            :named)
   name value expires localpart domain secure)
 
 (defvar url-cookie-storage nil         "Where cookies are stored.")
@@ -77,8 +73,6 @@ (defun url-cookie-parse-file (&optional fname)
   ;; It's completely normal for the cookies file not to exist yet.
   (load (or fname url-cookie-file) t t))
 
-(declare-function url-cookie-p "url-cookie" t t) ; defstruct
-
 (defun url-cookie-clean-up (&optional secure)
   (let ((var (if secure 'url-cookie-secure-storage 'url-cookie-storage))
 	new new-cookies)