summaryrefslogtreecommitdiff
path: root/lisp/url/url-cookie.el
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2016-02-23 12:51:24 +1100
committerLars Ingebrigtsen <larsi@gnus.org>2016-02-23 12:51:24 +1100
commitdfcdc1cbed773041e907a389b8901ca845af49bb (patch)
treef70889e1028b5d860b166fc86944116e09a148c1 /lisp/url/url-cookie.el
parentad1879b7be9f641250e7616d4630eb29a3fa6a52 (diff)
downloademacs-dfcdc1cbed773041e907a389b8901ca845af49bb.tar.gz
Allow deleting all non-matching cookies
* lisp/url/url-cookie.el (url-cookie-delete-cookies): Allow keeping matching cookies (bug#22720).
Diffstat (limited to 'lisp/url/url-cookie.el')
-rw-r--r--lisp/url/url-cookie.el13
1 files changed, 9 insertions, 4 deletions
diff --git a/lisp/url/url-cookie.el b/lisp/url/url-cookie.el
index a4b7a58fdf3..6848230c28f 100644
--- a/lisp/url/url-cookie.el
+++ b/lisp/url/url-cookie.el
@@ -353,14 +353,19 @@ to run the `url-cookie-setup-save-timer' function manually."
url-cookie-save-interval
#'url-cookie-write-file))))
-(defun url-cookie-delete-cookies (&optional regexp)
+(defun url-cookie-delete-cookies (&optional regexp keep)
"Delete all cookies from the cookie store where the domain matches REGEXP.
-If REGEXP is nil, all cookies are deleted."
+If REGEXP is nil, all cookies are deleted. If KEEP is non-nil,
+instead delete all cookies that do not match REGEXP."
(dolist (variable '(url-cookie-secure-storage url-cookie-storage))
(let ((cookies (symbol-value variable)))
(dolist (elem cookies)
- (when (or (null regexp)
- (string-match regexp (car elem)))
+ (when (or (and (null keep)
+ (or (null regexp)
+ (string-match regexp (car elem))))
+ (and keep
+ regexp
+ (not (string-match regexp (car elem)))))
(setq cookies (delq elem cookies))))
(set variable cookies)))
(setq url-cookies-changed-since-last-save t)