aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Ingebrigtsen2016-02-21 16:57:04 +1100
committerLars Ingebrigtsen2016-02-21 16:57:04 +1100
commit3e67708d7239cde24b0988d4d1288bc75585cfea (patch)
treec0587e43e5e9058d006454480868b893b34a3e53
parent336dac5820083df3a6e9d4b4d06768b88ecb8690 (diff)
downloademacs-3e67708d7239cde24b0988d4d1288bc75585cfea.tar.gz
emacs-3e67708d7239cde24b0988d4d1288bc75585cfea.zip
Add a function to delete URL cookies
* doc/misc/url.texi (Cookies): Document url-cookie-delete-cookies. * lisp/url/url-cookie.el (url-cookie-delete-cookies): New function.
-rw-r--r--doc/misc/url.texi6
-rw-r--r--etc/NEWS5
-rw-r--r--lisp/url/url-cookie.el13
3 files changed, 24 insertions, 0 deletions
diff --git a/doc/misc/url.texi b/doc/misc/url.texi
index c46859968a2..14a4c96cc47 100644
--- a/doc/misc/url.texi
+++ b/doc/misc/url.texi
@@ -417,6 +417,12 @@ cookies, if there are any. You can remove a cookie using the
417@kbd{C-k} (@code{url-cookie-delete}) command. 417@kbd{C-k} (@code{url-cookie-delete}) command.
418@end defun 418@end defun
419 419
420@defun url-cookie-delete-cookies &optional regexp
421This function takes a regular expression as its parameters and deletes
422all cookies from that domain. If @var{regexp} is @code{nil}, delete
423all cookies.
424@end defun
425
420@defopt url-cookie-file 426@defopt url-cookie-file
421The file in which cookies are stored, defaulting to @file{cookies} in 427The file in which cookies are stored, defaulting to @file{cookies} in
422the directory specified by @code{url-configuration-directory}. 428the directory specified by @code{url-configuration-directory}.
diff --git a/etc/NEWS b/etc/NEWS
index 9f0fb8d6941..bad95191884 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1040,6 +1040,11 @@ we should not be queried about things like TLS certificate validity.
1040plist will contain a :peer element that has the output of 1040plist will contain a :peer element that has the output of
1041`gnutls-peer-status' (if Emacs is built with GnuTLS support). 1041`gnutls-peer-status' (if Emacs is built with GnuTLS support).
1042 1042
1043+++
1044*** The new function `url-cookie-delete-cookie' can be used to
1045programmatically delete all cookies, or cookies from a specific
1046domain.
1047
1043** Tramp 1048** Tramp
1044 1049
1045+++ 1050+++
diff --git a/lisp/url/url-cookie.el b/lisp/url/url-cookie.el
index 4c7366adc8e..a4b7a58fdf3 100644
--- a/lisp/url/url-cookie.el
+++ b/lisp/url/url-cookie.el
@@ -353,6 +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)
357 "Delete all cookies from the cookie store where the domain matches REGEXP.
358If REGEXP is nil, all cookies are deleted."
359 (dolist (variable '(url-cookie-secure-storage url-cookie-storage))
360 (let ((cookies (symbol-value variable)))
361 (dolist (elem cookies)
362 (when (or (null regexp)
363 (string-match regexp (car elem)))
364 (setq cookies (delq elem cookies))))
365 (set variable cookies)))
366 (setq url-cookies-changed-since-last-save t)
367 (url-cookie-write-file))
368
356;;; Mode for listing and editing cookies. 369;;; Mode for listing and editing cookies.
357 370
358(defun url-cookie-list () 371(defun url-cookie-list ()