diff options
| author | Stefan Monnier | 2007-06-12 18:24:25 +0000 |
|---|---|---|
| committer | Stefan Monnier | 2007-06-12 18:24:25 +0000 |
| commit | 495fa7db39d8b28633d410f994d9c583f407c8d3 (patch) | |
| tree | 0404684a6b5452b4209643ef850ec5f0db770bc6 | |
| parent | 9450aaa02b37474995c4650a515710be962c4968 (diff) | |
| download | emacs-495fa7db39d8b28633d410f994d9c583f407c8d3.tar.gz emacs-495fa7db39d8b28633d410f994d9c583f407c8d3.zip | |
(url-cookie-name, url-cookie-value, url-cookie-expires, url-cookie-localpart)
(url-cookie-domain, url-cookie-secure, url-cookie-set-name)
(url-cookie-set-value, url-cookie-set-expires, url-cookie-set-localpart)
(url-cookie-set-domain, url-cookie-set-secure, url-cookie-retrieve-arg)
(url-cookie-create, url-cookie-p): Remove.
(url-cookie): New struct.
(url-cookie-store): Use setf instead of url-cookie-set-*.
| -rw-r--r-- | lisp/url/ChangeLog | 11 | ||||
| -rw-r--r-- | lisp/url/url-cookie.el | 63 |
2 files changed, 27 insertions, 47 deletions
diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog index d9efd3a4540..8cfaa3c7954 100644 --- a/lisp/url/ChangeLog +++ b/lisp/url/ChangeLog | |||
| @@ -1,3 +1,14 @@ | |||
| 1 | 2007-06-12 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * url-cookie.el (url-cookie-name, url-cookie-value) | ||
| 4 | (url-cookie-expires, url-cookie-localpart, url-cookie-domain) | ||
| 5 | (url-cookie-secure, url-cookie-set-name, url-cookie-set-value) | ||
| 6 | (url-cookie-set-expires, url-cookie-set-localpart) | ||
| 7 | (url-cookie-set-domain, url-cookie-set-secure) | ||
| 8 | (url-cookie-retrieve-arg, url-cookie-create, url-cookie-p): Remove. | ||
| 9 | (url-cookie): New struct. | ||
| 10 | (url-cookie-store): Use setf instead of url-cookie-set-*. | ||
| 11 | |||
| 1 | 2007-05-29 Chong Yidong <cyd@stupidchicken.com> | 12 | 2007-05-29 Chong Yidong <cyd@stupidchicken.com> |
| 2 | 13 | ||
| 3 | * url-mailto.el (url-mailto): Insert body after | 14 | * url-mailto.el (url-mailto): Insert body after |
diff --git a/lisp/url/url-cookie.el b/lisp/url/url-cookie.el index 8d729c92369..44ef8aed779 100644 --- a/lisp/url/url-cookie.el +++ b/lisp/url/url-cookie.el | |||
| @@ -33,51 +33,6 @@ | |||
| 33 | 33 | ||
| 34 | ;; See http://home.netscape.com/newsref/std/cookie_spec.html for the | 34 | ;; See http://home.netscape.com/newsref/std/cookie_spec.html for the |
| 35 | ;; 'open standard' defining this crap. | 35 | ;; 'open standard' defining this crap. |
| 36 | ;; | ||
| 37 | ;; A cookie is stored internally as a vector of 7 slots | ||
| 38 | ;; [ cookie NAME VALUE EXPIRES LOCALPART DOMAIN SECURE ] | ||
| 39 | |||
| 40 | (defsubst url-cookie-name (cookie) (aref cookie 1)) | ||
| 41 | (defsubst url-cookie-value (cookie) (aref cookie 2)) | ||
| 42 | (defsubst url-cookie-expires (cookie) (aref cookie 3)) | ||
| 43 | (defsubst url-cookie-localpart (cookie) (aref cookie 4)) | ||
| 44 | (defsubst url-cookie-domain (cookie) (aref cookie 5)) | ||
| 45 | (defsubst url-cookie-secure (cookie) (aref cookie 6)) | ||
| 46 | |||
| 47 | (defsubst url-cookie-set-name (cookie val) (aset cookie 1 val)) | ||
| 48 | (defsubst url-cookie-set-value (cookie val) (aset cookie 2 val)) | ||
| 49 | (defsubst url-cookie-set-expires (cookie val) (aset cookie 3 val)) | ||
| 50 | (defsubst url-cookie-set-localpart (cookie val) (aset cookie 4 val)) | ||
| 51 | (defsubst url-cookie-set-domain (cookie val) (aset cookie 5 val)) | ||
| 52 | (defsubst url-cookie-set-secure (cookie val) (aset cookie 6 val)) | ||
| 53 | (defsubst url-cookie-retrieve-arg (key args) (nth 1 (memq key args))) | ||
| 54 | |||
| 55 | (defsubst url-cookie-create (&rest args) | ||
| 56 | "Create a cookie vector object from keyword-value pairs ARGS. | ||
| 57 | The keywords allowed are | ||
| 58 | :name NAME | ||
| 59 | :value VALUE | ||
| 60 | :expires TIME | ||
| 61 | :localpart LOCALPAR | ||
| 62 | :domain DOMAIN | ||
| 63 | :secure ??? | ||
| 64 | Could someone fill in more information?" | ||
| 65 | (let ((retval (make-vector 7 nil))) | ||
| 66 | (aset retval 0 'cookie) | ||
| 67 | (url-cookie-set-name retval (url-cookie-retrieve-arg :name args)) | ||
| 68 | (url-cookie-set-value retval (url-cookie-retrieve-arg :value args)) | ||
| 69 | (url-cookie-set-expires retval (url-cookie-retrieve-arg :expires args)) | ||
| 70 | (url-cookie-set-localpart retval (url-cookie-retrieve-arg :localpart args)) | ||
| 71 | (url-cookie-set-domain retval (url-cookie-retrieve-arg :domain args)) | ||
| 72 | (url-cookie-set-secure retval (url-cookie-retrieve-arg :secure args)) | ||
| 73 | retval)) | ||
| 74 | |||
| 75 | (defun url-cookie-p (obj) | ||
| 76 | "Return non-nil if OBJ is a cookie vector object. | ||
| 77 | These objects represent cookies in the URL package. | ||
| 78 | A cookie vector object is a vector of 7 slots: | ||
| 79 | [cookie NAME VALUE EXPIRES LOCALPART DOMAIN SECURE]." | ||
| 80 | (and (vectorp obj) (= (length obj) 7) (eq (aref obj 0) 'cookie))) | ||
| 81 | 36 | ||
| 82 | (defgroup url-cookie nil | 37 | (defgroup url-cookie nil |
| 83 | "URL cookies." | 38 | "URL cookies." |
| @@ -85,6 +40,20 @@ A cookie vector object is a vector of 7 slots: | |||
| 85 | :prefix "url-cookie-" | 40 | :prefix "url-cookie-" |
| 86 | :group 'url) | 41 | :group 'url) |
| 87 | 42 | ||
| 43 | ;; A cookie is stored internally as a vector of 7 slots | ||
| 44 | ;; [ cookie NAME VALUE EXPIRES LOCALPART DOMAIN SECURE ] | ||
| 45 | |||
| 46 | (defstruct (url-cookie | ||
| 47 | (:constructor url-cookie-create) | ||
| 48 | (:copier nil) | ||
| 49 | ;; For compatibility with a previous version which did not use | ||
| 50 | ;; defstruct, and also in order to make sure that the printed | ||
| 51 | ;; representation does not depend on CL internals, we use an | ||
| 52 | ;; explicitly managed tag. | ||
| 53 | (:type vector)) | ||
| 54 | (tag 'cookie :read-only t) | ||
| 55 | name value expires localpart domain secure) | ||
| 56 | |||
| 88 | (defvar url-cookie-storage nil "Where cookies are stored.") | 57 | (defvar url-cookie-storage nil "Where cookies are stored.") |
| 89 | (defvar url-cookie-secure-storage nil "Where secure cookies are stored.") | 58 | (defvar url-cookie-secure-storage nil "Where secure cookies are stored.") |
| 90 | (defcustom url-cookie-file nil | 59 | (defcustom url-cookie-file nil |
| @@ -199,8 +168,8 @@ telling Microsoft that." | |||
| 199 | (if (and (equal localpart (url-cookie-localpart cur)) | 168 | (if (and (equal localpart (url-cookie-localpart cur)) |
| 200 | (equal name (url-cookie-name cur))) | 169 | (equal name (url-cookie-name cur))) |
| 201 | (progn | 170 | (progn |
| 202 | (url-cookie-set-expires cur expires) | 171 | (setf (url-cookie-expires cur) expires) |
| 203 | (url-cookie-set-value cur value) | 172 | (setf (url-cookie-value cur) value) |
| 204 | (setq tmp t)))) | 173 | (setq tmp t)))) |
| 205 | (if (not tmp) | 174 | (if (not tmp) |
| 206 | ;; New cookie | 175 | ;; New cookie |