diff options
| author | Lars Ingebrigtsen | 2016-02-21 16:57:04 +1100 |
|---|---|---|
| committer | Lars Ingebrigtsen | 2016-02-21 16:57:04 +1100 |
| commit | 3e67708d7239cde24b0988d4d1288bc75585cfea (patch) | |
| tree | c0587e43e5e9058d006454480868b893b34a3e53 | |
| parent | 336dac5820083df3a6e9d4b4d06768b88ecb8690 (diff) | |
| download | emacs-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.texi | 6 | ||||
| -rw-r--r-- | etc/NEWS | 5 | ||||
| -rw-r--r-- | 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 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 | ||
| 421 | This function takes a regular expression as its parameters and deletes | ||
| 422 | all cookies from that domain. If @var{regexp} is @code{nil}, delete | ||
| 423 | all cookies. | ||
| 424 | @end defun | ||
| 425 | |||
| 420 | @defopt url-cookie-file | 426 | @defopt url-cookie-file |
| 421 | The file in which cookies are stored, defaulting to @file{cookies} in | 427 | The file in which cookies are stored, defaulting to @file{cookies} in |
| 422 | the directory specified by @code{url-configuration-directory}. | 428 | the directory specified by @code{url-configuration-directory}. |
| @@ -1040,6 +1040,11 @@ we should not be queried about things like TLS certificate validity. | |||
| 1040 | plist will contain a :peer element that has the output of | 1040 | plist 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 | ||
| 1045 | programmatically delete all cookies, or cookies from a specific | ||
| 1046 | domain. | ||
| 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. | ||
| 358 | If 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 () |