emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 3e67708: Add a function to delete URL cookies


From: Lars Ingebrigtsen
Subject: [Emacs-diffs] master 3e67708: Add a function to delete URL cookies
Date: Sun, 21 Feb 2016 05:58:05 +0000

branch: master
commit 3e67708d7239cde24b0988d4d1288bc75585cfea
Author: Lars Ingebrigtsen <address@hidden>
Commit: Lars Ingebrigtsen <address@hidden>

    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.
---
 doc/misc/url.texi      |    6 ++++++
 etc/NEWS               |    5 +++++
 lisp/url/url-cookie.el |   13 +++++++++++++
 3 files changed, 24 insertions(+), 0 deletions(-)

diff --git a/doc/misc/url.texi b/doc/misc/url.texi
index c468599..14a4c96 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
 @kbd{C-k} (@code{url-cookie-delete}) command.
 @end defun
 
address@hidden url-cookie-delete-cookies &optional regexp
+This function takes a regular expression as its parameters and deletes
+all cookies from that domain.  If @var{regexp} is @code{nil}, delete
+all cookies.
address@hidden defun
+
 @defopt url-cookie-file
 The file in which cookies are stored, defaulting to @file{cookies} in
 the directory specified by @code{url-configuration-directory}.
diff --git a/etc/NEWS b/etc/NEWS
index 9f0fb8d..bad9519 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1040,6 +1040,11 @@ we should not be queried about things like TLS 
certificate validity.
 plist will contain a :peer element that has the output of
 `gnutls-peer-status' (if Emacs is built with GnuTLS support).
 
++++
+*** The new function `url-cookie-delete-cookie' can be used to
+programmatically delete all cookies, or cookies from a specific
+domain.
+
 ** Tramp
 
 +++
diff --git a/lisp/url/url-cookie.el b/lisp/url/url-cookie.el
index 4c7366a..a4b7a58 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."
                                          url-cookie-save-interval
                                          #'url-cookie-write-file))))
 
+(defun url-cookie-delete-cookies (&optional regexp)
+  "Delete all cookies from the cookie store where the domain matches REGEXP.
+If REGEXP is nil, all cookies are deleted."
+  (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)))
+          (setq cookies (delq elem cookies))))
+      (set variable cookies)))
+  (setq url-cookies-changed-since-last-save t)
+  (url-cookie-write-file))
+
 ;;; Mode for listing and editing cookies.
 
 (defun url-cookie-list ()



reply via email to

[Prev in Thread] Current Thread [Next in Thread]