diff options
| author | Lars Ingebrigtsen | 2016-02-23 12:51:24 +1100 |
|---|---|---|
| committer | Lars Ingebrigtsen | 2016-02-23 12:51:24 +1100 |
| commit | dfcdc1cbed773041e907a389b8901ca845af49bb (patch) | |
| tree | f70889e1028b5d860b166fc86944116e09a148c1 | |
| parent | ad1879b7be9f641250e7616d4630eb29a3fa6a52 (diff) | |
| download | emacs-dfcdc1cbed773041e907a389b8901ca845af49bb.tar.gz emacs-dfcdc1cbed773041e907a389b8901ca845af49bb.zip | |
Allow deleting all non-matching cookies
* lisp/url/url-cookie.el (url-cookie-delete-cookies): Allow
keeping matching cookies (bug#22720).
| -rw-r--r-- | lisp/url/url-cookie.el | 13 |
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." | |||
| 353 | url-cookie-save-interval | 353 | url-cookie-save-interval |
| 354 | #'url-cookie-write-file)))) | 354 | #'url-cookie-write-file)))) |
| 355 | 355 | ||
| 356 | (defun url-cookie-delete-cookies (&optional regexp) | 356 | (defun url-cookie-delete-cookies (&optional regexp keep) |
| 357 | "Delete all cookies from the cookie store where the domain matches REGEXP. | 357 | "Delete all cookies from the cookie store where the domain matches REGEXP. |
| 358 | If REGEXP is nil, all cookies are deleted." | 358 | If REGEXP is nil, all cookies are deleted. If KEEP is non-nil, |
| 359 | instead delete all cookies that do not match REGEXP." | ||
| 359 | (dolist (variable '(url-cookie-secure-storage url-cookie-storage)) | 360 | (dolist (variable '(url-cookie-secure-storage url-cookie-storage)) |
| 360 | (let ((cookies (symbol-value variable))) | 361 | (let ((cookies (symbol-value variable))) |
| 361 | (dolist (elem cookies) | 362 | (dolist (elem cookies) |
| 362 | (when (or (null regexp) | 363 | (when (or (and (null keep) |
| 363 | (string-match regexp (car elem))) | 364 | (or (null regexp) |
| 365 | (string-match regexp (car elem)))) | ||
| 366 | (and keep | ||
| 367 | regexp | ||
| 368 | (not (string-match regexp (car elem))))) | ||
| 364 | (setq cookies (delq elem cookies)))) | 369 | (setq cookies (delq elem cookies)))) |
| 365 | (set variable cookies))) | 370 | (set variable cookies))) |
| 366 | (setq url-cookies-changed-since-last-save t) | 371 | (setq url-cookies-changed-since-last-save t) |