summaryrefslogtreecommitdiff
path: root/lisp/url
diff options
context:
space:
mode:
authorGlenn Morris <rgm@gnu.org>2007-12-11 05:49:53 +0000
committerGlenn Morris <rgm@gnu.org>2007-12-11 05:49:53 +0000
commite6ed4935020f267cb05f065224eba69cb817c829 (patch)
treee6a02ff965cb5ca0bbb4d2679aada504ecc4b72a /lisp/url
parent38f584e90e8785a409d99d90f41ff357f7680ee1 (diff)
downloademacs-e6ed4935020f267cb05f065224eba69cb817c829.tar.gz
(url-cookie-write-file): Use url-make-private-file and with-temp-buffer.
Diffstat (limited to 'lisp/url')
-rw-r--r--lisp/url/url-cookie.el53
1 files changed, 25 insertions, 28 deletions
diff --git a/lisp/url/url-cookie.el b/lisp/url/url-cookie.el
index cdca65104ad..eea34042970 100644
--- a/lisp/url/url-cookie.el
+++ b/lisp/url/url-cookie.el
@@ -148,34 +148,31 @@ telling Microsoft that."
(set var new)))
(defun url-cookie-write-file (&optional fname)
- (setq fname (or fname url-cookie-file))
- (unless (file-directory-p (file-name-directory fname))
- (ignore-errors (make-directory (file-name-directory fname))))
- (cond
- ((not url-cookies-changed-since-last-save) nil)
- ((not (file-writable-p fname))
- (message "Cookies file %s (see variable `url-cookie-file') is unwritable." fname))
- (t
- (url-cookie-clean-up)
- (url-cookie-clean-up t)
- (with-current-buffer (get-buffer-create " *cookies*")
- (erase-buffer)
- (fundamental-mode)
- (insert ";; Emacs-W3 HTTP cookies file\n"
- ";; Automatically generated file!!! DO NOT EDIT!!!\n\n"
- "(setq url-cookie-storage\n '")
- (pp url-cookie-storage (current-buffer))
- (insert ")\n(setq url-cookie-secure-storage\n '")
- (pp url-cookie-secure-storage (current-buffer))
- (insert ")\n")
- (insert " \n;; Local Variables:\n"
- ";; version-control: never\n"
- ";; no-byte-compile: t\n"
- ";; End:\n")
- (set (make-local-variable 'version-control) 'never)
- (write-file fname)
- (setq url-cookies-changed-since-last-save nil)
- (kill-buffer (current-buffer))))))
+ (when url-cookies-changed-since-last-save
+ (or fname (setq fname (expand-file-name url-cookie-file)))
+ (if (condition-case nil
+ (progn
+ (url-make-private-file fname)
+ nil)
+ (error t))
+ (message "Error accessing cookie file `%s'" fname)
+ (url-cookie-clean-up)
+ (url-cookie-clean-up t)
+ (with-temp-buffer
+ (insert ";; Emacs-W3 HTTP cookies file\n"
+ ";; Automatically generated file!!! DO NOT EDIT!!!\n\n"
+ "(setq url-cookie-storage\n '")
+ (pp url-cookie-storage (current-buffer))
+ (insert ")\n(setq url-cookie-secure-storage\n '")
+ (pp url-cookie-secure-storage (current-buffer))
+ (insert ")\n")
+ (insert " \n;; Local Variables:\n"
+ ";; version-control: never\n"
+ ";; no-byte-compile: t\n"
+ ";; End:\n")
+ (set (make-local-variable 'version-control) 'never)
+ (write-file fname))
+ (setq url-cookies-changed-since-last-save nil))))
(defun url-cookie-store (name value &optional expires domain localpart secure)
"Store a netscape-style cookie."