Mercurial > hg > xemacs-beta
diff lisp/w3/url-vars.el @ 14:9ee227acff29 r19-15b90
Import from CVS: tag r19-15b90
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:48:42 +0200 |
parents | |
children | 0293115a14e9 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lisp/w3/url-vars.el Mon Aug 13 08:48:42 2007 +0200 @@ -0,0 +1,558 @@ +;;; url-vars.el --- Variables for Uniform Resource Locator tool +;; Author: wmperry +;; Created: 1996/12/30 14:25:24 +;; Version: 1.19 +;; Keywords: comm, data, processes, hypermedia + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; Copyright (c) 1993-1996 by William M. Perry (wmperry@cs.indiana.edu) +;;; Copyright (c) 1996 Free Software Foundation, Inc. +;;; +;;; This file is not part of GNU Emacs, but the same permissions apply. +;;; +;;; GNU Emacs is free software; you can redistribute it and/or modify +;;; it under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 2, or (at your option) +;;; any later version. +;;; +;;; GNU Emacs is distributed in the hope that it will be useful, +;;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Emacs; see the file COPYING. If not, write to the +;;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, +;;; Boston, MA 02111-1307, USA. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(defconst url-version (let ((x "Exp")) + (if (string-match "State: \\([^ \t\n]+\\)" x) + (substring x (match-beginning 1) (match-end 1)) + x)) + "Version # of URL package.") + +(defvar url-current-can-be-cached t + "*Whether the current URL can be cached.") + +(defvar url-current-object nil + "A parsed representation of the current url") + +(defvar url-current-callback-func nil + "*The callback function for the current buffer.") + +(defvar url-current-callback-data nil + "*The data to be passed to the callback function. This should be a list, +each item in the list will be an argument to the url-current-callback-func.") + +(mapcar 'make-variable-buffer-local '( + url-current-callback-data + url-current-callback-func + url-current-can-be-cached + url-current-content-length + url-current-file + url-current-isindex + url-current-mime-encoding + url-current-mime-headers + url-current-mime-type + url-current-mime-viewer + url-current-object + url-current-port + url-current-referer + url-current-server + url-current-type + url-current-user + )) + +(defvar url-default-retrieval-proc 'url-default-callback + "*The default action to take when an asynchronous retrieval completes.") + +(defvar url-honor-refresh-requests t + "*Whether to do automatic page reloads at the request of the document +author or the server via the `Refresh' header in an HTTP/1.0 response. +If nil, no refresh requests will be honored. +If t, all refresh requests will be honored. +If non-nil and not t, the user will be asked for each refresh request.") + +(defvar url-emacs-minor-version + (if (boundp 'emacs-minor-version) + (symbol-value 'emacs-minor-version) + (if (string-match "^[0-9]+\\.\\([0-9]+\\)" emacs-version) + (string-to-int + (substring emacs-version + (match-beginning 1) (match-end 1))) + 0)) + "What minor version of emacs we are using.") + +(defvar url-inhibit-mime-parsing nil + "Whether to parse out (and delete) the MIME headers from a message.") + +(defvar url-automatic-caching nil + "*If non-nil, all documents will be automatically cached to the local +disk.") + +(defvar url-cache-expired + (function (lambda (t1 t2) (>= (- (car t2) (car t1)) 5))) + "*A function (`funcall'able) that takes two times as its arguments, and +returns non-nil if the second time is 'too old' when compared to the first +time.") + +(defvar url-check-md5s nil + "*Whether to check md5s of retrieved documents or not.") + +(defvar url-expected-md5 nil "What md5 we expect to see.") + +(defvar url-broken-resolution nil + "*Whether to use [ange|efs]-ftp-nslookup-host.") + +(defvar url-bug-address "wmperry@cs.indiana.edu" "Where to send bug reports.") + +(defvar url-cookie-confirmation nil + "*If non-nil, confirmation by the user is required before accepting any +HTTP cookies.") + +(defvar url-personal-mail-address nil + "*Your full email address. This is what is sent to HTTP/1.0 servers as +the FROM field. If not set when url-do-setup is run, it defaults to +the value of url-pgp/pem-entity.") + +(defvar url-directory-index-file "index.html" + "*The filename to look for when indexing a directory. If this file +exists, and is readable, then it will be viewed instead of +automatically creating the directory listing.") + +(defvar url-pgp/pem-entity nil + "*The users PGP/PEM id - usually their email address.") + +(defvar url-privacy-level 'none + "*How private you want your requests to be. +HTTP/1.0 has header fields for various information about the user, including +operating system information, email addresses, the last page you visited, etc. +This variable controls how much of this information is sent. + +This should a symbol or a list. +Valid values if a symbol are: +none -- Send all information +low -- Don't send the last location +high -- Don't send the email address or last location +paranoid -- Don't send anything + +If a list, this should be a list of symbols of what NOT to send. +Valid symbols are: +email -- the email address +os -- the operating system info +lastloc -- the last location +agent -- Do not send the User-Agent string +cookie -- never accept HTTP cookies + +Samples: + +(setq url-privacy-level 'high) +(setq url-privacy-level '(email lastloc)) ;; equivalent to 'high +(setq url-privacy-level '(os)) + +::NOTE:: +This variable controls several other variables and is _NOT_ automatically +updated. Call the function `url-setup-privacy-info' after modifying this +variable. +") + +(defvar url-uudecode-program "uudecode" "*The UUdecode executable.") + +(defvar url-uuencode-program "uuencode" "*The UUencode executable.") + +(defvar url-history-list nil "List of urls visited this session.") + +(defvar url-inhibit-uncompression nil "Do not do decompression if non-nil.") + +(defvar url-keep-history nil + "*Controls whether to keep a list of all the URLS being visited. If +non-nil, url will keep track of all the URLS visited. +If eq to `t', then the list is saved to disk at the end of each emacs +session.") + +(defvar url-uncompressor-alist '((".z" . "x-gzip") + (".gz" . "x-gzip") + (".uue" . "x-uuencoded") + (".hqx" . "x-hqx") + (".Z" . "x-compress")) + "*An assoc list of file extensions and the appropriate +content-transfer-encodings for each.") + +(defvar url-xterm-command "xterm -title %s -ut -e %s %s %s" + "*Command used to start an xterm window.") + +(defvar url-tn3270-emulator "tn3270" + "The client to run in a subprocess to connect to a tn3270 machine.") + +(defvar url-use-transparent nil + "*Whether to use the transparent package by Brian Tompsett instead of +the builtin telnet functions. Using transparent allows you to have full +vt100 emulation in the telnet and tn3270 links.") + +(defvar url-mail-command 'url-mail + "*This function will be called whenever url needs to send mail. It should +enter a mail-mode-like buffer in the current window. +The commands mail-to and mail-subject should still work in this +buffer, and it should use mail-header-separator if possible.") + +(defvar url-local-exec-path nil + "*A list of possible locations for x-exec scripts.") + +(defvar url-proxy-services nil + "*An assoc list of access types and servers that gateway them. +Looks like ((\"http\" . \"url://for/proxy/server/\") ....) This is set up +from the ACCESS_proxy environment variables in url-do-setup.") + +(defvar url-global-history-file nil + "*The global history file used by both Mosaic/X and the url package. +This file contains a list of all the URLs you have visited. This file +is parsed at startup and used to provide URL completion.") + +(defvar url-global-history-save-interval 3600 + "*The number of seconds between automatic saves of the history list. +Default is 1 hour. Note that if you change this variable after `url-do-setup' +has been run, you need to run the `url-setup-save-timer' function manually.") + +(defvar url-global-history-timer nil) + +(defvar url-passwd-entry-func nil + "*This is a symbol indicating which function to call to read in a +password. It will be set up depending on whether you are running EFS +or ange-ftp at startup if it is nil. This function should accept the +prompt string as its first argument, and the default value as its +second argument.") + +(defvar url-gopher-labels + '(("0" . "(TXT)") + ("1" . "(DIR)") + ("2" . "(CSO)") + ("3" . "(ERR)") + ("4" . "(MAC)") + ("5" . "(PCB)") + ("6" . "(UUX)") + ("7" . "(???)") + ("8" . "(TEL)") + ("T" . "(TN3)") + ("9" . "(BIN)") + ("g" . "(GIF)") + ("I" . "(IMG)") + ("h" . "(WWW)") + ("s" . "(SND)")) + "*An assoc list of gopher types and how to describe them in the gopher +menus. These can be any string, but HTML/HTML+ entities should be +used when necessary, or it could disrupt formatting of the document +later on. It is also a good idea to make sure all the strings are the +same length after entity references are removed, on a strictly +stylistic level.") + +(defvar url-gopher-icons + '( + ("0" . "&text.document;") + ("1" . "&folder;") + ("2" . "&index;") + ("3" . "&stop;") + ("4" . "&binhex.document;") + ("5" . "&binhex.document;") + ("6" . "&uuencoded.document;") + ("7" . "&index;") + ("8" . "&telnet;") + ("T" . "&tn3270;") + ("9" . "&binary.document;") + ("g" . "ℑ") + ("I" . "ℑ") + ("s" . "&audio;")) + "*An assoc list of gopher types and the graphic entity references to +show when possible.") + +(defvar url-standalone-mode nil "*Rely solely on the cache?") +(defvar url-multiple-p t + "*If non-nil, multiple queries are possible through ` *URL-<i>*' buffers") +(defvar url-default-working-buffer " *URL*" " The default buffer to do all of the processing in.") +(defvar url-working-buffer url-default-working-buffer " The buffer to do all of the processing in. + (It defaults to `url-default-working-buffer' and is bound to ` *URL-<i>*' buffers + when used for multiple requests, cf. `url-multiple-p')") +(defvar url-current-annotation nil "URL of document we are annotating...") +(defvar url-current-referer nil "Referer of this page.") +(defvar url-current-content-length nil "Current content length.") +(defvar url-current-file nil "Filename of current document.") +(defvar url-current-isindex nil "Is the current document a searchable index?") +(defvar url-current-mime-encoding nil "MIME encoding of current document.") +(defvar url-current-mime-headers nil "An alist of MIME headers.") +(defvar url-current-mime-type nil "MIME type of current document.") +(defvar url-current-mime-viewer nil "How to view the current MIME doc.") +(defvar url-current-nntp-server nil "What nntp server currently opened.") +(defvar url-current-passwd-count 0 "How many times password has failed.") +(defvar url-current-port nil "Port # of the current document.") +(defvar url-current-server nil "Server of the current document.") +(defvar url-current-user nil "Username for ftp login.") +(defvar url-current-type nil "We currently in http or file mode?") +(defvar url-gopher-types "0123456789+gIThws:;<" + "A string containing character representations of all the gopher types.") +(defvar url-mime-separator-chars (mapcar 'identity + (concat "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz" + "0123456789'()+_,-./=?")) + "Characters allowable in a MIME multipart separator.") + +(defvar url-bad-port-list + '("25" "119" "19") + "*List of ports to warn the user about connecting to. Defaults to just +the mail, chargen, and NNTP ports so you cannot be tricked into sending +fake mail or forging messages by a malicious HTML document.") + +(defvar url-be-anal-about-file-attributes nil + "*Whether to use HTTP/1.0 to figure out file attributes +or just guess based on file extension, etc.") + +(defvar url-be-asynchronous nil + "*Controls whether document retrievals over HTTP should be done in +the background. This allows you to keep working in other windows +while large downloads occur.") +(make-variable-buffer-local 'url-be-asynchronous) + +(defvar url-request-data nil "Any data to send with the next request.") + +(defvar url-request-extra-headers nil + "A list of extra headers to send with the next request. Should be +an assoc list of headers/contents.") + +(defvar url-request-method nil "The method to use for the next request.") + +(defvar url-mime-encoding-string nil + "String to send to the server in the Accept-encoding: field in HTTP/1.0 +requests. This is created automatically from mm-content-transfer-encodings.") + +(defvar url-mime-language-string "*" + "String to send to the server in the Accept-language: field in +HTTP/1.0 requests.") + +(defvar url-mime-accept-string nil + "String to send to the server in the Accept: field in HTTP/1.0 requests. +This is created automatically from url-mime-viewers, after the mailcap file +has been parsed.") + +(defvar url-history-changed-since-last-save nil + "Whether the history list has changed since the last save operation.") + +(defvar url-proxy-basic-authentication nil + "Internal structure - do not modify!") + +(defvar url-registered-protocols nil + "Internal structure - do not modify! See `url-register-protocol'") + +(defvar url-package-version "Unknown" "Version # of package using URL.") + +(defvar url-package-name "Unknown" "Version # of package using URL.") + +(defvar url-system-type nil "What type of system we are on.") +(defvar url-os-type nil "What OS we are on.") + +(defvar url-max-password-attempts 5 + "*Maximum number of times a password will be prompted for when a +protected document is denied by the server.") + +(defvar url-wais-to-mime + '( + ("WSRC" . "application/x-wais-source") ; A database description + ("TEXT" . "text/plain") ; plain text + ) + "An assoc list of wais doctypes and their corresponding MIME +content-types.") + +(defvar url-waisq-prog "waisq" + "*Name of the waisq executable on this system. This should be the +waisq program from think.com's wais8-b5.1 distribution.") + +(defvar url-wais-gateway-server "www.ncsa.uiuc.edu" + "*The machine name where the WAIS gateway lives.") + +(defvar url-wais-gateway-port "8001" + "*The port # of the WAIS gateway.") + +(defvar url-temporary-directory "/tmp" "*Where temporary files go.") + +(defvar url-show-status t + "*Whether to show a running total of bytes transferred. Can cause a +large hit if using a remote X display over a slow link, or a terminal +with a slow modem.") + +(defvar url-using-proxy nil + "Either nil or the fully qualified proxy URL in use, e.g. +http://www.domain.com/") + +(defvar url-news-server nil + "*The default news server to get newsgroups/articles from if no server +is specified in the URL. Defaults to the environment variable NNTPSERVER +or \"news\" if NNTPSERVER is undefined.") + +(defvar url-gopher-to-mime + '((?0 . "text/plain") ; It's a file + (?1 . "www/gopher") ; Gopher directory + (?2 . "www/gopher-cso-search") ; CSO search + (?3 . "text/plain") ; Error + (?4 . "application/mac-binhex40") ; Binhexed macintosh file + (?5 . "application/pc-binhex40") ; DOS binary archive of some sort + (?6 . "archive/x-uuencode") ; Unix uuencoded file + (?7 . "www/gopher-search") ; Gopher search! + (?9 . "application/octet-stream") ; Binary file! + (?g . "image/gif") ; Gif file + (?I . "image/gif") ; Some sort of image + (?h . "text/html") ; HTML source + (?s . "audio/basic") ; Sound file + ) + "*An assoc list of gopher types and their corresponding MIME types.") + +(defvar url-use-hypertext-gopher t + "*Controls how gopher documents are retrieved. +If non-nil, the gopher pages will be converted into HTML and parsed +just like any other page. If nil, the requests will be passed off to +the gopher.el package by Scott Snyder. Using the gopher.el package +will lose the gopher+ support, and inlined searching.") + +(defvar url-global-history-hash-table nil + "Hash table for global history completion.") + +(defvar url-nonrelative-link + "^\\([-a-zA-Z0-9+.]+:\\)" + "A regular expression that will match an absolute URL.") + +(defvar url-configuration-directory nil + "*Where the URL configuration files can be found.") + +(defvar url-confirmation-func 'y-or-n-p + "*What function to use for asking yes or no functions. Possible +values are 'yes-or-no-p or 'y-or-n-p, or any function that takes a +single argument (the prompt), and returns t only if a positive answer +is gotten.") + +(defvar url-connection-retries 5 + "*# of times to try for a connection before bailing. +If for some reason url-open-stream cannot make a connection to a host +right away, it will sit for 1 second, then try again, up to this many +tries.") + +(defvar url-find-this-link nil "Link to go to within a document.") + +(defvar url-show-http2-transfer t + "*Whether to show the total # of bytes, size of file, and percentage +transferred when retrieving a document over HTTP/1.0 and it returns a +valid content-length header. This can mess up some people behind +gateways.") + +(defvar url-gateway-method 'native + "*The type of gateway support to use. +Should be a symbol specifying how we are to get a connection off of the +local machine. + +Currently supported methods: +'program :: Run a program in a subprocess to connect + (examples are itelnet, an expect script, etc) +'native :: Use the native open-network-stream in emacs +'tcp :: Use the excellent tcp.el package from gnus. + This simply does a (require 'tcp), then sets + url-gateway-method to be 'native.") + +(defvar url-gateway-shell-is-telnet nil + "*Whether the login shell of the remote host is telnet.") + +(defvar url-gateway-program-interactive nil + "*Whether url needs to hand-hold the login program on the remote machine.") + +(defvar url-gateway-handholding-login-regexp "ogin:" + "*Regexp for when to send the username to the remote process.") + +(defvar url-gateway-handholding-password-regexp "ord:" + "*Regexp for when to send the password to the remote process.") + +(defvar url-gateway-host-prompt-pattern "^[^#$%>;]*[#$%>;] *" + "*Regexp used to detect when the login is finished on the remote host.") + +(defvar url-gateway-telnet-ready-regexp "Escape character is .*" + "*A regular expression that signifies url-gateway-telnet-program is +ready to accept input.") + +(defvar url-local-rlogin-prog "rlogin" + "*Program for local telnet connections.") + +(defvar url-remote-rlogin-prog "rlogin" + "*Program for remote telnet connections.") + +(defvar url-local-telnet-prog "telnet" + "*Program for local telnet connections.") + +(defvar url-remote-telnet-prog "telnet" + "*Program for remote telnet connections.") + +(defvar url-running-xemacs (string-match "XEmacs" emacs-version) + "*In XEmacs?.") + +(defvar url-gateway-telnet-program "itelnet" + "*Program to run in a subprocess when using gateway-method 'program.") + +(defvar url-gateway-local-host-regexp nil + "*If a host being connected to matches this regexp then the +connection is done natively, otherwise the process is started on +`url-gateway-host' instead.") + +(defvar url-use-hypertext-dired t + "*How to format directory listings. + +If value is non-nil, use directory-files to list them out and +transform them into a hypertext document, then pass it through the +parse like any other document. + +If value nil, just pass the directory off to dired using find-file.") + +(defconst monthabbrev-alist + '(("Jan" . 1) ("Feb" . 2) ("Mar" . 3) ("Apr" . 4) ("May" . 5) ("Jun" . 6) + ("Jul" . 7) ("Aug" . 8) ("Sep" . 9) ("Oct" . 10) ("Nov" . 11) ("Dec" . 12))) + +(defvar url-default-ports '(("http" . "80") + ("gopher" . "70") + ("telnet" . "23") + ("news" . "119") + ("https" . "443") + ("shttp" . "80")) + "An assoc list of protocols and default port #s") + +(defvar url-setup-done nil "*Has setup configuration been done?") + +(defvar url-source nil + "*Whether to force a sourcing of the next buffer. This forces local +files to be read into a buffer, no matter what. Gets around the +optimization that if you are passing it to a viewer, just make a +symbolic link, which looses if you want the source for inlined +images/etc.") + +(defconst weekday-alist + '(("Sunday" . 0) ("Monday" . 1) ("Tuesday" . 2) ("Wednesday" . 3) + ("Thursday" . 4) ("Friday" . 5) ("Saturday" . 6) + ("Tues" . 2) ("Thurs" . 4) + ("Sun" . 0) ("Mon" . 1) ("Tue" . 2) ("Wed" . 3) + ("Thu" . 4) ("Fri" . 5) ("Sat" . 6))) + +(defconst monthabbrev-alist + '(("Jan" . 1) ("Feb" . 2) ("Mar" . 3) ("Apr" . 4) ("May" . 5) ("Jun" . 6) + ("Jul" . 7) ("Aug" . 8) ("Sep" . 9) ("Oct" . 10) ("Nov" . 11) ("Dec" . 12)) + ) + +(defvar url-lazy-message-time 0) + +(defvar url-extensions-header "Security/Digest Security/SSL") + +(defvar url-mailserver-syntax-table + (copy-syntax-table emacs-lisp-mode-syntax-table) + "*A syntax table for parsing the mailserver URL") + +(modify-syntax-entry ?' "\"" url-mailserver-syntax-table) +(modify-syntax-entry ?` "\"" url-mailserver-syntax-table) +(modify-syntax-entry ?< "(>" url-mailserver-syntax-table) +(modify-syntax-entry ?> ")<" url-mailserver-syntax-table) +(modify-syntax-entry ?/ " " url-mailserver-syntax-table) + +;;; Make OS/2 happy - yeeks +(defvar tcp-binary-process-input-services nil + "*Make OS/2 happy with our CRLF pairs...") + +(provide 'url-vars)