;ELC   
;;; Compiled by aatharuv@cutter-john.mit.edu on Sun Jan  5 18:41:47 2003
;;; from file /afs/sipb.mit.edu/contrib/emacs/packages/url-cvs-20030105-src/lisp/url-cookie.el
;;; in Emacs version 21.1.1
;;; with bytecomp version 2.85
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.
(if (and (boundp 'emacs-version)
	 (< (aref emacs-version (1- (length emacs-version))) ?A)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`url-cookie.el' was compiled for Emacs 19.29 or later"))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(byte-code "\300\301!\210\300\302!\210\300\303!\207" [require timezone url-util url-parse] 2)
(defalias 'url-cookie-name #[(cookie) "\301H\207" [cookie 1] 2])
(put 'url-cookie-name 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'url-cookie-value #[(cookie) "\301H\207" [cookie 2] 2])
(put 'url-cookie-value 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'url-cookie-expires #[(cookie) "\301H\207" [cookie 3] 2])
(put 'url-cookie-expires 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'url-cookie-path #[(cookie) "\301H\207" [cookie 4] 2])
(put 'url-cookie-path 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'url-cookie-domain #[(cookie) "\301H\207" [cookie 5] 2])
(put 'url-cookie-domain 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'url-cookie-secure #[(cookie) "\301H\207" [cookie 6] 2])
(put 'url-cookie-secure 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'url-cookie-set-name #[(cookie val) "\302	I\207" [cookie val 1] 3])
(put 'url-cookie-set-name 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'url-cookie-set-value #[(cookie val) "\302	I\207" [cookie val 2] 3])
(put 'url-cookie-set-value 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'url-cookie-set-expires #[(cookie val) "\302	I\207" [cookie val 3] 3])
(put 'url-cookie-set-expires 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'url-cookie-set-path #[(cookie val) "\302	I\207" [cookie val 4] 3])
(put 'url-cookie-set-path 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'url-cookie-set-domain #[(cookie val) "\302	I\207" [cookie val 5] 3])
(put 'url-cookie-set-domain 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'url-cookie-set-secure #[(cookie val) "\302	I\207" [cookie val 6] 3])
(put 'url-cookie-set-secure 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'url-cookie-retrieve-arg #[(key args) "	>A@\207" [key args] 2])
(put 'url-cookie-retrieve-arg 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'url-cookie-create #[(&rest args) "\305\306\307\"\211\310\304I\210\311	\211	>A@*\211\312I\210*\313	\211	>A@*\211\314I\210*\315	\211	>A@*\211\316I\210*\317	\211	>A@*\211\320I\210*\321	\211	>A@*\211\322I\210*\323	\211	>A@*\211\324I\210*)\207" [retval args key val cookie make-vector 7 nil 0 :name 1 :value 2 :expires 3 :path 4 :domain 5 :secure 6] 4])
(put 'url-cookie-create 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'url-cookie-p #[(obj) "\301!\205 G\302U\205 \303H\304=\207" [obj vectorp 7 0 cookie] 2])
(custom-declare-group 'url-cookie nil "URL cookies" :prefix "url-" :prefix "url-cookie-" :group 'url)
#@27 Where cookies are stored.
(defvar url-cookie-storage nil (#$ . 3305))
#@34 Where secure cookies are stored.
(defvar url-cookie-secure-storage nil (#$ . 3381))
#@36 *Where cookies are stored on disk.
(custom-declare-variable 'url-cookie-file 'nil '(#$ . -3471) :type '(choice (const :tag "Default" :value nil) file) :group 'url-file :group 'url-cookie)
#@75 *If non-nil, confirmation by the user is required to accept HTTP cookies.
(custom-declare-variable 'url-cookie-confirmation 'nil '(#$ . -3665) :type 'boolean :group 'url-cookie)
#@230 *If nil, HTTP requests put all cookies for the server on one line.
Some web servers, such as http://www.hotmail.com/, only accept cookies
when they are on one line.  This is broken behaviour, but just try
telling Microsoft that.
(custom-declare-variable 'url-cookie-multiple-line 'nil '(#$ . -3850))
#@69 Whether the cookies list has changed since the last save operation.
(defvar url-cookies-changed-since-last-save nil (#$ . 4156))
(defalias 'url-cookie-parse-file #[(&optional fname) "\206 	\302\303\304\217\207" [fname url-cookie-file nil (load fname nil t) ((error (message "Could not load cookie file %s" fname)))] 3])
(defalias 'url-cookie-clean-up #[(&optional secure) "\203 \306\202	 \307\211J\310\310\310\310\f\310\n\203h \n@\nA\310A\203W @\fA\311\f!\203) \312\f!\204) \f\211\313H)\203) \fB\202) \203 \241\210\fB\202 	\fL.\207" [secure var val cur new cookies url-cookie-secure-storage url-cookie-storage nil url-cookie-p url-cookie-expired-p 3 cur-cookie new-cookies cookie] 3])
(defalias 'url-cookie-write-file #[(&optional fname) "\206 	\n\204\f \305\207\306!\204 \307\310\"\207\311 \210\311\312!\210\212\313\314!q\210\315 \210\316 \210\317\320\321\261\210\322p\"\210\323c\210\322\fp\"\210\324c\210\325!\210\326p!)\207" [fname url-cookie-file url-cookies-changed-since-last-save url-cookie-storage url-cookie-secure-storage nil file-writable-p message "Cookies file %s (see variable `url-cookie-file') is unwritable." url-cookie-clean-up t get-buffer-create " *cookies*" erase-buffer fundamental-mode ";; Emacs-W3 HTTP cookies file\n" ";; Automatically generated file!!! DO NOT EDIT!!!\n\n" "(setq url-cookie-storage\n '" pp ")\n(setq url-cookie-secure-storage\n '" ")\n" write-file kill-buffer] 3])
#@32 Stores a netscape-style cookie
(defalias 'url-cookie-store #[(name value &optional expires domain path secure) "\203 	\202	 \n\211\306\306\307\"\211\203;A\306\203g @A\211\310H)\232\203\" \211\311H)\232\203\" \211\312I\210*\211\313I\210*\314\202\" \f?\205&\315\316\317\320\321\322\257\f \323\324\306\"\211!\325\326I\210!\315  \211\" >A@*\211\311I\210*!\316  \211\" >A@*\211\313I\210*!\317  \211\" >A@*\211\312I\210*!\321  \211\" >A@*\211\310I\210*!\320  \211\" >A@*\211\327I\210*!\322  \211\" >A@*\211\330I\210*!*AB\241\202&\315\316\317\320\321\322\257\f \323\324\306\"\211!\325\326I\210!\315  \211\" >A@*\211\311I\210*!\316  \211\" >A@*\211\313I\210*!\317  \211\" >A@*\211\312I\210*!\321  \211\" >A@*\211\310I\210*!\320  \211\" >A@*\211\327I\210*!\322  \211\" >A@*\211\330I\210*!*\203\fDAB\241\202&\203\fDC\211\202&\fDC\211,\207" [secure url-cookie-secure-storage url-cookie-storage storage tmp cur nil assoc 4 1 3 2 t :name :value :expires :domain :path :secure make-vector 7 0 cookie 5 6 found-domain domain path name expires val value args retval key] 14 (#$ . 5623)])
(defalias 'url-cookie-expired-p #[(cookie) "\211\306H)\211\205 \307\310 !	\205 \307	!\n\205- \311\312\n\313H!\312\n\314H!\312\n\315H!#	\205C \311\312\313H!\312\314H!\312\315H!#	\205K \fZ	\204U \316\202\271 \315W\203` \316\202\271 \315V\203k \317\202\271 \320\n\306H!\320\306H!\312\314H!\321_\312\313H!\322_\\\312\315H!\315\\\\\312\314H!\321_\312\313H!\322_\\\312\315H!\315\\\\Z\313V,.\207" [cookie exp cur-date exp-date cur-greg exp-greg 3 timezone-parse-date current-time-string timezone-absolute-from-gregorian string-to-int 1 2 0 nil t timezone-parse-time 360 60 diff-in-days cur-time exp-time cur-norm exp-norm] 7])
#@72 Retrieves all the netscape-style cookies for a specified HOST and PATH
(defalias 'url-cookie-retrieve #[(host path &optional secure) "\203 \306	\n\"\202\f \n\307\310\211\211\211\203n @AA@\203 \311\312\313@!\314Q\"\203 \203 @A\315\313\211\316H)!P\311\"\203? \317!\204? \fB\202? \f.\207" [secure url-cookie-secure-storage url-cookie-storage path-regexp retval cur append t nil string-match "^.*" regexp-quote "$" "^" 4 url-cookie-expired-p cookies case-fold-search storage host cookie path] 7 (#$ . 7602)])
(defalias 'url-cookie-generate-header-lines #[(host path secure) "\306	\n#\307\307\307\205 \310\311\"\203a @A\312\313\211\314H)\211\315H)#\203M \316\fGG\\\317\\W\203M \f\320Q\202] \f\203Y \f\321Q\202] \322P\202 \f\203k \f\323P\202l \324,\207" [host path secure cookies retval cur url-cookie-retrieve nil sort #[(x y) "\211\303H)G\n\211\303H)GV\207" [x cookie y 4] 4] format "%s=%s" 1 2 80 4 "\nCookie: " "; " "Cookie: " "\n" "" chunk cookie url-cookie-multiple-line] 6])
#@124 A regular expression of top-level domains that only require two matching
'.'s in the domain name in order to set a cookie.
(defvar url-cookie-two-dot-domains (byte-code "\300\301\302\303\304\305\306\307\310\311\257\312#\313Q\207" ["\\.\\(" mapconcat identity "com" "edu" "net" "org" "gov" "mil" "int" "\\|" "\\)$"] 10) (#$ . 8675))
#@77 *A list of regular expressions matching URLs to always accept cookies from.
(custom-declare-variable 'url-cookie-trusted-urls 'nil '(#$ . -9014) :type '(repeat regexp) :group 'url-cookie)
#@76 *A list of regular expressions matching URLs to never accept cookies from.
(custom-declare-variable 'url-cookie-untrusted-urls 'nil '(#$ . -9208) :type '(repeat regexp) :group 'url-cookie)
(defalias 'url-cookie-host-can-set-p #[(host domain) "\306\307\310\311\312\313#\211\203 TT\202\n \312\"\203' \314\230\2032 \310\202E 	Y\203D \312\315!\316P\"\202E \307-\207" [domain mindots case-fold-search last tmp numdots 0 nil t 3 string-match "\\." 2 regexp-quote "$" url-cookie-two-dot-domains host] 5])
(defalias 'url-cookie-handle-set-cookie #[(str) "\306\307	\306\"\306\310\311\n\"\205 \306\310\312\n\"\243\206 \313H(\314\306!)*+,-\310\315\n\"\243.\310\316\n\"\243\206@ \317\320H!/\3210\n\203` \n@@\227\322\235\204Y \n@0B0\nA\211\204I .\203\217 \323\324.\"\203\217 \325\326.\"\327\325\330.\"\327\325\313.\"\327\325\331.\"\332\325\320.\"\333\260\n..\203\275 \323\334.\"\203\275 \325\326.\"\335\325\330.\"\335\325\313.\"\327\325\331.\"\336\325\337.\"\260	.+:\203\342 \323+@)\"\203\330 \340\225\340\224Z\211+\202\277 +\211A+\210\202\275 -:\203\323-@)\"\203\375 \340\225\340\224Z\211-\202\344 -\211A-\210\202\342 +\203\"-\203\"+-V\203\321-\202\"\321+-\203+\321\202\2211\341=\204?1<\203C\3421>\203C\321\202\2212\203V+\204V\343\213\203V\321\202\221\344\313H(\"\203\211\32130\205\2050\211A0@3\3453@3A.(/\f&\210\202c)\202\221\346\347\313H(#.\n\207" [url-cookies-changed-since-last-save str args case-fold-search secure url-current-object t url-parse-args assoc-ignore-case "secure" "domain" 3 url-view-url "expires" "path" file-name-directory 5 nil ("secure" "domain" "expires" "path") string-match "^[^,]+, +\\(..\\)-\\(...\\)-\\(..\\) +\\(..:..:..\\) +\\[*\\([^]]+\\)\\]*$" match-string 1 " " 2 4 " [" "]" "\\([0-9]+\\)-\\([A-Za-z]+\\)-\\([0-9]+\\)[ 	]+\\([0-9]+:[0-9]+:[0-9]+\\)\\(\\.[0-9]+\\)*[ 	]+\\([-+a-zA-Z0-9]+\\)" "-" ".00 " 6 0 paranoid cookies ((byte-code "\303\220\304\305\"\221\210	\306\307\n\310H\"!?\311\303!\203 \312\303!\210\207" [rest url-confirmation-func url-current-object "*Cookie Warning*" mapcar #[(x) "\301\302\303@A#!\207" [x princ format "%s - %s"] 5] format "Allow %s to set these cookies? " 3 get-buffer kill-buffer] 5)) url-cookie-host-can-set-p url-cookie-store message "%s tried to set a cookie for domain %s - rejected." domain current-url url-cookie-trusted-urls trusted url-cookie-untrusted-urls untrusted expires path rest url-privacy-level url-cookie-confirmation cur] 12])
(byte-code "\301B\302\301!\204\f \303\303\207" [current-load-list url-cookie-timer boundp nil] 2)
#@259 *The number of seconds between automatic saves of cookies.
Default is 1 hour.  Note that if you change this variable outside of
the `customize' interface after `url-do-setup' has been run, you need
to run the `url-cookie-setup-save-timer' function manually.
(custom-declare-variable 'url-cookie-save-interval '3600 '(#$ . -11842) :set #'(lambda (var val) (set-default var val) (and (featurep 'url) (fboundp 'url-cookie-setup-save-timer) (url-cookie-setup-save-timer))) :type 'integer :group 'url)
#@31 Reset the cookie saver timer.
(defalias 'url-cookie-setup-save-timer #[nil "\302\303!\203 \304\305\306\217\210\307	\2054 \310\311\312	\211$\211\207\313\314!\2033 \315\316\317\217\210\307	\2054 \314	\211\312#\211\207\307\207" [url-cookie-timer url-cookie-save-interval featurep itimer #1=#:G46601 (delete-itimer url-cookie-timer) ((error)) nil start-itimer "url-cookie-saver" url-cookie-write-file fboundp run-at-time #2=#:G46602 (cancel-timer url-cookie-timer) ((error))] 5 (#$ . 12345) nil])
(provide 'url-cookie)
