changeset 56308:1d6828002ca9

*** empty log message ***
author Stefan Monnier <monnier@iro.umontreal.ca>
date Thu, 01 Jul 2004 12:29:28 +0000
parents 2c4f93ea1faf
children e4e13934a595
files lisp/url/ChangeLog
diffstat 1 files changed, 1154 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/url/ChangeLog	Thu Jul 01 12:29:28 2004 +0000
@@ -0,0 +1,1154 @@
+2004-04-16  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* url-util.el (url-debug): Use with-current-buffer.
+
+	* url-nfs.el (url-nfs-file-attributes): Add id-format parameter.
+	(url-nfs-create-wrapper): Use new backquote syntax.
+
+	* url-https.el (url-https-file-attributes): Add id-format param.
+
+	* url-http.el (url-http-head-file-attributes)
+	(url-http-file-attributes): Add id-format parameter.
+
+	* url-handlers.el: Use new find-file-hook.
+	(url-file-attributes): Add id-format parameter.
+
+	* url-file.el (url-file-create-wrapper): Use new backquote syntax.
+	(url-file-file-attributes): Add id-format parameter.
+
+	* url-dav.el: Use with-current-buffer.
+	(url-dav-process-response): Fix regexps and spurious quote.
+	(url-dav-file-attributes): Add id-format param.
+
+2004-04-12  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* url.el (url-retrieve): Use with-current-buffer.
+
+	* url-http.el (url-http-parse-headers, url-http-file-exists-p):
+	Remove unused var `version'.
+
+	* url-handlers.el (url-handler-mode): New minor mode.
+	(url-setup-file-name-handlers): Remove.
+
+2004-04-12  John Paul Wallington  <jpw@gnu.org>
+
+	* url-cookie.el (url-cookie-handle-set-cookie): Replace calls
+	to obsolete `assoc-ignore-case' with calls to `assoc-string'.
+
+2004-04-11  Dave Love  <fx@gnu.org>
+
+	* url-mailto.el (url-mailto):
+	* url-history.el (url-history-setup-save-timer):
+	* url-cookie.el (url-cookie-setup-save-timer): Avoid warnings.
+
+	* url-file.el (url-file-build-filename): Don't use
+	directory-sep-char.
+
+	* url-auth.el (url-register-auth-scheme): Fix `format' call.
+
+	* url-about.el (url-scheme-registry): Defvar.
+	(url-about): Use text/plain.
+
+	* url-vars.el (cl): Don't require.
+	(url): Add :version.
+	(url-bug-address): Use bug-gnu-emacs.
+
+	* url-util.el (url-hexify-string): Don't give multibyte error
+	for char <16.
+	(mail-header-extract): Autoload.
+
+	* url-parse.el: Doc fixes.
+
+	* url-ldap.el (ldap): Require.
+	(url-ldap): Fix `format' call.
+	(url-ldap-certificate-formatter): Avoid warning.
+
+	* url-https.el (url-https-create-secure-wrapper): Use modern
+	backquotes.
+
+	* url-dav.el (url-dav-rename-file): Fix args of `signal'.
+	(url-intersection): New.
+	(url-dav-supported-p): Use it.
+	(url-dav-save-resource): Declare url-http-response-status special.
+
+	* url-cache.el (url-util): Require.
+
+2004-04-10  Miles Bader  <miles@gnu.org>
+
+	RCS keyword removal (only non-comment changes are enumerated here):
+
+	* url-vars.el (url-version): Use the constant string "Emacs"
+	instead of calculating something from the RCS `State' keyword
+	[the latter is almost entirely useless anyway].
+
+2004-04-03  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* url-methods.el:
+	* url-parse.el: Don't require url-auto.
+
+2004-04-03  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* url: Imported the URL package from its own CVS repository into Emacs.
+
+===========================================================================
+===========================================================================
+	Copy of the ChangeLog file from URL's own CVS repository:
+===========================================================================
+===========================================================================
+
+2003-07-16  Dave Love  <fx@gnu.org>
+
+	* lisp/url.el (url-retrieve-synchronously): Revert last change.
+	Should be revisited.
+
+2003-06-26  Sam Steingold  <sds@gnu.org>
+
+	* lisp/url-handlers.el (url-handlers-create-wrapper): Do not call
+	method on invalid urls.
+
+2003-05-29  Dave Love  <fx@gnu.org>
+
+	* lisp/url.el (url-retrieve-synchronously): Use sleep-for, not
+	sit-for.  From monnier@gnu.org.
+
+2002-11-04  Walter C. Pelissero <walter@pelissero.org>
+
+	* lisp/url-methods.el (url-scheme-register-proxy): Make sure to
+	convert port numbers to integers when creating the URL objects for
+	proxies.
+
+2002-10-29  William M. Perry  <wmperry@gnu.org>
+
+	* lisp/url-http.el (url-http-parse-headers): When doing a
+	redirect, some broken software (sourceforge) sends a redirect to
+	'/', which is blatantly illegal (see section 14.30 of the HTTP/1.1
+	specification).  I wish we could deal with such lame software
+	appropriately (spank the authors), but this is the web, so we have
+	to kow-tow to the servers.
+
+2002-10-27  William M. Perry  <wmperry@gnu.org>
+
+	* lisp/url-http.el (url-http-create-request): If we are talking to
+	the default port for a the selected protocol, do NOT send the port
+	in the HOST header.  This fixes the login page at sourceforge.
+
+2002-09-17  William M. Perry  <wmperry@gnu.org>
+
+	* lisp/url-http.el (url-http-handle-cookies): New function to deal
+	with cookie headers.
+	(url-http-parse-headers): Call `url-http-handle-cookies' here so
+	that cookie additions and deletions get handled immediately.  This
+	is so that sites that set cookies while doing redirects
+	(my.yahoo.com, outlook web access, etc) work.  This should also
+	fix sites that delete cookies on invalid access or other error
+	pages the user might not actually see.
+	(url-http-parse-headers): Silently convert non-HEAD and non-GET
+	methods to GET in redirects.  Too many web sites do this now, and
+	it is just likely to confuse users.
+
+2002-05-17  Dave Love  <fx@gnu.org>
+
+	* texi/url.txi: Start making it vaguely useful.
+
+	* texi/Makefile.in (install): Cope with Debian install-info.
+	From Kai.Grossjohann@CS.Uni-Dortmund.DE (Kai Großjohann).
+
+2002-04-22  Dave Love  <fx@gnu.org>
+
+	* lisp/url-misc.el (man): Autoload to avoid warning.
+	(url-man): Don't require man here.
+	(url-data): Generalize in line with the RFC.
+
+	* lisp/url-gw.el (url-open-stream): Remove obsolete `tcp' case.
+
+	* lisp/url-vars.el: Doc fixes.
+	(url-mime-charset-string): New function.
+	(url-mime-charset-string): Use it to set the variable.
+	(url-set-mime-charset-string): New function.
+	(set-language-environment-hook): Use it.
+	(url-vars-unload-hook): New function.
+
+	* lisp/url-cookie.el (url-header-comparison): Deleted.
+	(url-cookie-handle-set-cookie): Use assoc-ignore-case to avoid
+	assoc*.
+	(url-cookie-save-interval): Make value agree with doc.
+
+	* lisp/url.el: Doc fixes.
+	(url-mm-callback): Don't call mm-destroy-parts immediately for
+	external viewing -- set up a process sentinel.
+
+2002-02-02  William M. Perry  <wmperry@gnu.org>
+
+	* lisp/Makefile.in (SOURCES): Remove mule-sysdp.el from the build
+	rules.
+
+2001-12-12  William M. Perry  <wmperry@gnu.org>
+
+	* lisp/url-vars.el (url-nonrelative-link): Patch from Stefan
+	Monnier to use ` instead of ^ to match the relative link.
+
+2001-12-10  William M. Perry  <wmperry@gnu.org>
+
+	* lisp/url-dav.el (url-dav-file-attributes): Fix bad call to
+	plist-get (reversed args).
+
+	* lisp/url-file.el (url-file-build-filename): Make sure that we
+	have a parsed URL in this function.
+
+2002-01-22  Dave Love  <fx@gnu.org>
+
+	* lisp/url-cache.el (url-cache-file-writable-p): Doc fix.
+
+	* lisp/url-imap.el (url-imap): Maybe disable multibyte.  Bind
+	coding-system-for-read.  Require mm-util.
+
+	* lisp/url.el (url-do-setup): Use (featurep 'xemacs).
+
+	* lisp/mule-sysdp.el: Removed (obsolete).
+
+2001-12-09  William M. Perry  <wmperry@gnu.org>
+
+	* lisp/url-dav.el (url-dav-delete-something): Utility macro to
+	remove an arbitrary resource.
+	(url-dav-delete-directory): Use it.
+	(url-dav-delete-file): Ditto.
+	(url-dav-make-directory): New function.
+	(url-dav-rename-file): New function.
+	(url-dav-register-handler): New function to easily register a
+	WebDAV-specific file-name-handler operation.
+	(url-dav-file-name-all-completions, url-dav-file-name-completion):
+	New functions that allow file-name completion for WebDAV
+	resources.
+
+2001-12-08  William M. Perry  <wmperry@gnu.org>
+
+	* lisp/url-dav.el (url-dav-directory-files): New function to
+	mimic `directory-files' for WebDAV.
+	(url-dav-delete-directory): New function to mimic
+	`delete-directory' for WebDAV.
+
+2001-12-06  William M. Perry  <wmperry@gnu.org>
+
+	* lisp/url-dav.el (url-dav-process-DAV:locktoken): Parse the
+	DAV:locktoken hrefs into a usable format.
+	(url-dav-process-response): Use an unwind-protect to make sure
+	that we clean up the buffer, even if there is a parsing error.
+	(url-dav-request): New function to act as the main entry point for
+	making DAV requests.  Takes care of building the XML document with
+	appropriate namespaces, depth, etc, and parses the results.
+	(url-dav-get-properties): Use new url-dav-request function.  This
+	is now just a thin wrapper around that to use PROPFIND and set any
+	extra properties we are looking for.
+	(url-dav-unlock-resource): New function to release a lock given a
+	URL and a lock-token.
+	(url-dav-process-DAV:getlastmodified)
+	(url-dav-process-DAV:creationdate)
+	(url-dav-process-DAV:iscollection)
+	(url-dav-process-DAV:ishidden): Fix typos!  Its url-dav-*, not
+	url-dave-*!
+	(url-dav-active-locks): New function to get a list of all the
+	active locks for a resource.
+	(url-dav-save-resource): New function to actually save a resource
+	using the PUT method.  I can now successfully save files to an
+	HTTP server with some manual steps from a lisp-interaction
+	buffer.
+
+	* lisp/url-http.el (url-http-wait-for-headers-change-function):
+	Special case the 204/205 response codes.  Some servers do not
+	send back a 0 content-length for these, and we would hang.
+	(url-http-parse-headers): Mark 204/205 response codes as
+	'successful' so that the callbacks get activated.
+	(url-http-options): Fix unbound variable usage.
+
+	* lisp/url-dav.el: Added full copyright information.
+	(url-dav-process-response): Make sure that we create a DAV:status
+	property when parsing a singleton response.
+	(url-dav-file-attributes): If the properties returned did not have
+	a succesful HTTP response code, then ignore them and use the
+	HEAD-based attributes.
+
+	* lisp/vc-dav.el: Added full copyright information.
+
+	* lisp/url-dav.el (url-dav-process-supportedlock-property): Deal
+	with text nodes in DAV:supportedlock nodes.
+	(url-dav-file-attributes-mode-string): This now gets the entire
+	property list instead of just the DAV:supportedlock node.
+	(url-dav-file-attributes): Make sure to pass the whole list in.
+	(url-dav-file-attributes-mode-string): Now properly sets do 'd'
+	mode.
+	(url-dav-file-attributes-mode-string): Now uses the Apache mod_dav
+	'executable' bit to set the 'x' mode.  See `mod_dav's custom
+	properties' at http://www.webdav.org/mod_dav/ for more details.
+	(url-dav-find-parser): New function to find the proper parser for
+	a node-type.  Looks for
+	url-dav-process-XXX (url-dav-process-DAV:prop), otherwise falls
+	back to using url-dav-node-text.  Caches the results on the nodes
+	symbol name.
+	(url-dav-dispatch-node): Utility routine to call a nodes handler
+	easily.
+	(url-dav-process-*): Renamed most of the handlers and made them
+	use url-dav-dispatch-node where appropriate.
+	(url-dav-process-DAV:prop): Instead of using the dav-data-type
+	property to dispatch the node, now uses dav-dispatch-node so that
+	it is easy to add parsers for special nodes.
+	(url-dav-process-DAV:depth, url-dav-process-DAV:resourcetype)
+	(url-dav-process-DAV:locktype, url-dav-process-DAV:lockscope)
+	(url-dav-process-DAV:getcontentlength)
+	(url-dave-process-DAV:getlastmodified)
+	(url-dave-process-DAV:creationdate)
+	(url-dave-process-DAV:iscollection)
+	(url-dave-process-DAV:ishidden): Aliases for the generic
+	url-dav-process-foo-property routines.
+	(url-dav-process-DAV:activelock)
+	(url-dav-process-DAV:lockdiscovery): Can now correctly parse
+	DAV:lockdiscovery nodes, so that we can find out who has a
+	resource locked and properly parse the reponse to a LOCK request.
+	(url-dav-process-DAV:status): Now parses ou the numeric status
+	from the HTTP response line.
+	(url-dav-process-response): New function to handle all the
+	parsing of an XML response from WebDAV.  This handles all the
+	logic of checking the response content-type to make sure it is
+	XML, parses the tree, and interprets the tree.
+	(url-dav-process-response): Make sure that all responses look
+	like a DAV:multistatus response, even if we get a singleton
+	response back.  This will just make the upper layer logic
+	simpler.
+	(url-dav-get-properties): New optional argument NAMESPACES that
+	specifies what namespaces to use in the XML request.
+	(url-dav-get-properties): Got rid of the D: namespace in
+	requests.  It doesn't save that much space.  Just use DAV:
+	(url-dav-lock-identifier): New variable that should hold a URI
+	pointing to contact information for the user.  This will be used
+	as the contents of the DAV:owner/DAV:href tag to identify the
+	owner of a LOCK when requesting it.  This will be shown to other
+	users when the DAV:lockdiscovery property is requested, so make
+	sure you are comfortable with it leaking to the outside world.
+	(url-dav-lock-resource): New function to LOCK a dav resource.
+
+2001-12-05  William M. Perry  <wmperry@gnu.org>
+
+	* lisp/url-dav.el (url-dav-get-properties): New argument
+	ATTRIBUTES that allows you to ask for specific properties instead
+	of getting all properties via DAV:allprop.
+
+	* lisp/url-http.el (url-http-real-basic-auth-storage): New
+	variable for normal HTTP basic authentication.
+	(url-http-proxy-basic-auth-storage): New variable for HTTP proxy
+	basic authentication.
+	(url-http-handle-authentication): Follow new semantics for
+	url-basic-auth-storage.
+
+	* lisp/url-auth.el (url-basic-auth-storage): Changed meaning of
+	this variable.  It is now a symbol pointing to where we really
+	want to store the authorization information.  This fixes proxy
+	auth and normal basic auth because of some local bindings that
+	were making it impossible to store the credentials in the global
+	binding.
+	(url-basic-auth): Make sure we dereference url-basic-auth-storage
+	everywhere.
+
+	* lisp/url-util.el (url-debug): Added new types 'dav and
+	'retrieval to the customization list.
+
+	* lisp/url.el (url-retrieve-synchronously): Put in some debugging
+	statements.
+
+	* lisp/url-http.el (url-http-head-file-attributes): Renamed old
+	url-http-file-attributes so that we can have a smarter one that
+	tries WebDAV first, then HEAD.
+	(url-http-file-attributes): New smart version that tries WebDAV
+	first.
+	(url-http-options): New function that returns information gleaned
+	from an OPTIONS request for a URL.  Returns a property list
+	returning the methods supported for the resource, what DAV and
+	DASL levels are supported, p3p information, and whether
+	byte-ranges are supported or not.
+	(url-http-wait-for-headers-change-function): If we got a 0-byte
+	content-length, activate the callback immediately.
+	(url-http-wait-for-headers-change-function): For content-length
+	responses with actual body-data in the chunk we are handling, call
+	url-http-content-length-after-change-function with the remaining
+	data.  Otherwise we can deadlock if the headers and the entire
+	body exist arrive in one chunk.
+
+	* lisp/url-dav.el: New file to contain the WebDAV
+	(http://www.webdav.org/) implementation.
+	(url-dav-supported-p): Cheap way to figure out whether we will be
+	able to do DAV at all.  We rely on the XML parser expanding
+	namespaces for us, and currently you need a patched version of
+	xml.el to do this.  Patch sent to author for consideration.
+	(url-dav-file-attributes): Much more complete version of
+	`file-attributes' using the WebDAV PROPFIND method.  Now correctly
+	finds out whether something is a directory (a WebDAV collection),
+	the last modification time, and permissions (based on the
+	DAV:supportedlock information).
+	(url-dav-get-properties): Generic interface to get WebDAV
+	properties for a URL.  Can specify an optional `depth' parameter
+	to tell the web server how many directory (collection) levels to
+	recurse when retrieving the property lists.  Returns an assoc
+	list keyed off of the resource, the cdr of which is a property
+	list.
+	(url-dav-datatype-attribute): We support the XML-Data note
+	(http://www.w3.org/TR/1998/NOTE-XML-data) to figure out what the
+	datatypes of attributes are.  Currently only date, dateTime, int,
+	number, float, boolean, and uri are supported.
+
+2001-12-04  William M. Perry  <wmperry@gnu.org>
+
+	* lisp/url-handlers.el (file-name-absolute-p): New hooked
+	version.  If the filename matches our regexp, then it is always
+	absolute, so just return `t'.
+	(expand-file-name): New hooked version.  If the fragment is an
+	absolute file or URL, then expand it relative to '/'.
+	(url-handler-regexp): New regexp for specific schemes that we
+	want the file-name-handlers to work off of.
+	(url-setup-file-name-handlers): Use it when installing the
+	handlers.
+
+	* lisp/url-http.el (url-http-find-free-connection): Better logging
+	about whether we are reusing an existing connection or not.
+
+	* lisp/url-methods.el (url-scheme-register-proxy): Fixed bad call
+	to string-match instead of match-string (and with reversed
+	arguments even).
+
+	* lisp/url-http.el (url-http-debug): Changed to now use the
+	generic url-debug function to do the actual logging.  Still a
+	separate function so that we can do our magic on the network
+	connection if the user quits while we are downloading.
+
+	* lisp/url-handlers.el (url-file-handler): Now logs the result of
+	the hooked or real call.
+
+	* lisp/url-util.el (url-debug): New function for generic debug
+	logging.
+
+2001-11-28  William M. Perry  <wmperry@gnu.org>
+
+	* lisp/url-imap.el (url-imap-open-host): Use backquote.
+	(url-imap): Now switches to 'login as the imap authenticator if
+	the URL provides a username and password.
+
+	* lisp/url-handlers.el (url-setup-file-name-handlers): Use cl &
+	push to replace some strange logic in here.
+	(url-run-real-handler): New function to run the real hooks in
+	case we get a false positive or an operation that we do not
+	support.  The old way disabled _ALL_ file-name-handlers when
+	we hit something we didn't understand - this disables JUST us.
+	(url-file-handler): Removed the logic about removing the leading
+	'/' off of the first argument... it may not be safe to always
+	assume that the first argument is the one we are acting on -
+	`default' is the second argument for expand-file-name for
+	example.
+	(url-setup-file-name-handlers): Use url-nonrelative-link
+	directly.  This means that you must type in the URL directly
+	without prefixing it with a '/'.
+
+	(gnus-cache-articles-in-group "nnml+mail:comp.emacs-devel")
+
+	Ends up calling (expand-file-name "nnml+mail:comp.emacs-devel" ...)
+	which activates us (because 'nnml+mail' _is_ a valid scheme name
+	for a URI).  We get thoroughly confused and end up returning
+	`nil' when we shouldn't.
+
+2001-11-26  William M. Perry  <wmperry@gnu.org>
+
+	* lisp/url-handlers.el (file-writable-p): Add NULL handler for
+	this so that visiting a URL directly will work.
+	(file-symlink-p): Ditto.
+	(url-insert-file-contents): If `visit' is non-nil then make sure
+	we set buffer-file-name.  After these changes you can visit
+	http://www.gnu.org/ directly from the minibuffer.
+	(url-insert-file-contents): When inserting the file contents,
+	use a save-excursion so that we behave just like the original.
+
+2001-11-25  William M. Perry  <wmperry@gnu.org>
+
+	* lisp/url-util.el (url-hexify-string): Fixed bad use of
+	mapconcat.
+
+2001-11-24  William M. Perry  <wmperry@gnu.org>
+
+	* lisp/url-about.el (url-about): New loader scheme to handle
+	about:foo URLs.  Automatically tries to find a `url-about-foo'
+	function to display the actual data.
+	(url-about-protocols): Implement about:protocols
+
+	* lisp/url-http.el (url-http): Make sure that we signal an error
+	when we cannot open a network connection for whatever reason.
+	Before, it would just silently clean up after itself and the user
+	got absolutely no indication that an error had occured.  If the
+	error should truly be ignored, the caller should do that for us.
+	(url-http-chunked-encoding-after-change-function): Doh!  Need to
+	user marker-position in some log messages now that
+	url-http-chunked-start is a marker.
+
+2001-11-22  William M. Perry  <wmperry@gnu.org>
+
+	* lisp/url-https.el: Fixed definition of url-https - was using the
+	wrong signature.  Too much cut & paste.
+	(url-https-create-secure-wrapper): Fixed so that url-https works
+	at all.  Was not taking a null `method' into account when calling
+	the wrapped function so url-https tried to call url-http-nil.
+	*sigh*
+
+	* lisp/url-http.el
+	(url-http-chunked-encoding-after-change-function): Added some
+	feedback when not debugging about what content-type and chunk # we
+	are reading.
+	(url-http-chunked-encoding-after-change-function): Use a marker
+	for url-http-chunked-start so that we can safely delete the
+	chunk-tokens instead of just marking them as invisible.
+	(url-http-chunked-encoding-after-change-function): Actually delete
+	the chunk-tokens.  Now that we are not run from 'real'
+	after-change functions, this is safe, and the right thing to do.
+	Otherwise the HTML parser still saw them and inferred all sorts of
+	bad things about the document (ie: nothing had a title!)
+
+2001-11-21  William M. Perry  <wmperry@gnu.org>
+
+	* lisp/url-http.el (url-http-debug): Document this variable.
+	People other than I might want to use it.
+	(url-http-debug): Put some code in here to check quit-flag
+	directly.  When the chunked encoding went into a tight spin, your
+	Emacs would be wedged forever.  This short-circuits all the
+	after-change functions and signals an error.
+	(url-http-debug): If url-http-debug is non-nil and non-t, then log
+	the debug messages using `message' as well as sending them to the
+	buffer.
+	(url-http-chunked-encoding-after-change-function): Got rid of the
+	no-initial-crlf.  Had an epiphany and I can just infer this from
+	url-http-chunked-counter being 0.
+	(url-http-chunked-encoding-after-change-function): Moved the debug
+	statement about reading chunk #foo into the loop so that each
+	chunk will have a log message associated with it.
+	(url-http-chunked-encoding-after-change-function): Make sure to
+	set read-next-chunk to nil when the regular expression match fails
+	to fire.  Otherwise we could loop forever.
+	(url-http-chunked-encoding-after-change-function): Tweaked the
+	regular expression to be a little less greedy when looking for a
+	chunk.
+	(url-http-wait-for-headers-change-function): Remove the last
+	argument when calling
+	url-http-chunked-encoding-after-change-function.  It is no longer
+	needed.  I should use my brain sometime.
+
+	* lisp/url-vars.el (and): Fixed feature test for xemacs and
+	coding-system-list behaviour.
+
+	* lisp/url-http.el
+	(url-http-chunked-encoding-after-change-function): Added optional
+	no-initial-crlf flag that modifies the regular expression.  This
+	is only set from url-http-wait-for-headers-change-function so that
+	the initial CRLF in the HTTP headers is not swallowed.
+	(url-http-chunked-encoding-after-change-function): Fixed a few
+	off-by-one errors by using (match-end 0) instead of 1.
+	(url-http-chunked-encoding-after-change-function): Added a few
+	url-http-debug calls to help track down problems in the chunked
+	encoding.
+	(url-http-chunked-encoding-after-change-function): The chunk
+	reading in here is now in a while loop so that if Emacs feeds us a
+	chunk of data that happens to contain more than one 'chunk'
+	delimiter, we behave correctly.
+	(url-http-wait-for-headers-change-function): Make sure that we
+	pass no-initial-crlf to
+	url-http-chunked-encoding-after-change-function when passing
+	initial data to the decoder.
+	(url-http-generic-filter): url-http-debug statement so we can tell
+	when/where our after-change-functions are being called.
+
+2001-10-11  Dave Love  <fx@gnu.org>
+
+	* lisp/url-handlers.el: Doc fixes.
+	(string-match): Use (featurep 'xemacs).
+
+	* lisp/url-methods.el (url-scheme-get-property): Avoid `mapc'.
+
+	* lisp/url-proxy.el (url-find-proxy-for-url): Avoid `pop'.
+
+	* lisp/url-vars.el (url-running-xemacs): Delete.
+	(url-gateway-unplugged): New variable.
+
+	* lisp/url-gw.el (url-open-stream): Use url-gateway-unplugged.
+	Comment out OS/2 stuff.
+
+2001-10-05  Dave Love  <fx@gnu.org>
+
+	* lisp/url-mailto.el (url-mailto): Don't send auto-generated mail
+	without confirmation.
+
+2001-10-02  Dave Love  <fx@gnu.org>
+
+	* lisp/url-http.el (url-http-create-request): Check cache for
+	proxy-obj, if defined, rather than url.
+	(url-http): Use dolist, not mapc (runtime cl dependency).
+
+	* lisp/url-methods.el: Maybe require cl at runtime.
+	(url-scheme-register-proxy): Fix fetching from environment.  Don't
+	concat a number.
+
+2001-10-01  Dave Love  <fx@gnu.org>
+
+	* lisp/url-parse.el: Use modern backquote syntax.
+
+	* lisp/url-vars.el (url-uncompressor-alist): Add bzip2.
+	(url-mail-command): Prefer compose-mail.
+	(tcp-binary-process-input-services): Comment out.
+	(url-working-buffer): New constant.
+
+	* lisp/url-util.el (url-extract-mime-headers): New function.
+
+	* lisp/url-mailto.el (url-mailto): Set source-url.  Don't add
+	User-Agent.
+
+2001-09-20  Dave Love  <fx@gnu.org>
+
+	* lisp/url-http.el (url-http-create-request): Don't concat a
+	number.
+
+2001-06-05  Dave Love  <fx@gnu.org>
+
+	* lisp/url.el (url-do-setup): Doc fix.  Don't try to frob
+	tcp-binary-process-input-services.  Remove function wrapper for
+	lambda.
+	(url-retrieve): Barf with sensible message if url-type is null.
+
+	* lisp/url-http.el (url-http): Don't try to set process
+	coding-system here -- done in url-gw.
+
+	* lisp/url-gw.el (url-gw-inhibit-code-conversion): Remove.
+	(url-open-stream): Bind coding-system-for{read,write} when setting
+	up the connexion.  Don't call url-gw-inhibit-code-conversion.
+
+2001-05-23  William M. Perry  <wmperry@gnu.org>
+
+	* lisp/url.el (url-retrieve-synchronously): Don't put a timeout on
+	accept-process-output.  This is evidently causing hangs in Emacs
+	21 when viewing complex pages with images or stylesheets.
+	www.yahoo.com is now viewable.
+
+	* lisp/url-gw.el (url-open-stream): Avoid using mule-sysdp
+	(mule-inhibit-code-conversion) and just have a local function that
+	does this minimal cruft.
+	(url-gw-inhibit-code-conversion): New function to turn off code
+	conversion in a process.
+
+2001-05-22  William M. Perry  <wmperry@gnu.org>
+
+	* lisp/url.el (url-retrieve-synchronously): Use lexical-let so
+	that we can allow multiple asynch retrievals to happen at once.
+	(url-retrieve-synchronously): Use a much smaller timeout when
+	doing the accept-process-output.  This gets rid of the long delays
+	if you are on a fast net connection and retrieve small documents
+	that finish asynchronously before the first accept-process-output
+	can be run.  All hail broadband and 100Mb in the house!
+	(url-retrieve-synchronously): Added documentation for this function.
+	(url-retrieve): Ditto.
+	(url-mm-url): Ditto.
+
+	* lisp/url-vars.el: Replaced `HTTP/1.0' with just `HTTP' in some
+	documentation strings.  Ok, so I'm anal.
+
+	* lisp/url-methods.el (url-scheme-methods): Add default methods
+	for file-directory-p and file-truename.
+
+2001-05-22  Dave Love  <fx@gnu.org>
+
+	* lisp/url-auth.el (url-warn): Autoload.
+
+	* lisp/url-proxy.el (url-warn): Autoload.
+
+	* lisp/url-nfs.el: Fix `file-truname' typo.
+
+	* lisp/url-news.el: Require cl when compiling.
+	(url-warn, gnus-group-read-ephemeral-group):  Autoload.
+	(url-nntp-default-port, url-news-default-port, url-nntp): Deleted.
+	(url-news-fetch-newsgroup): Declare gnus-group-buffer special.
+
+	* lisp/url-util.el (mule-decode-string): Don't autoload.
+	(url-hexify-string): Just barf on multibyte characters.
+	(url-generate-unique-filename): New function.
+
+	* lisp/url-file.el (url-file): Use url-generate-unique-filename,
+	not mm-generate-unique-filename.
+
+	* lisp/url-http.el: Declare things special in various places.
+	(url-http-activate-callback): Don't set
+	url-http-real-after-change-function.
+
+2001-05-22  William M. Perry  <wmperry@gnu.org>
+
+	* lisp/url-http.el (url-http-attempt-keepalives): New variable to
+	control whether we try to do keep-alives for our connections.
+	(url-http-version): New variable to control whether we advertise
+	ourselves as an HTTP/1.1 client or not.  This can be useful for
+	avoiding chunked encoding, and other 1.1 features we may not have
+	fully implemented yet.
+	(url-http-create-request): Honor the new variables.
+
+2001-05-21  Dave Love  <fx@gnu.org>
+
+	* lisp/url-vars.el (mm-mime-mule-charset-alist): Don't readjust it
+	in XEmacs.
+	(url-mime-charset-string): Don't reverse the list before sorting.
+
+2001-05-17  William M. Perry  <wmperry@gnu.org>
+
+	* lisp/url-http.el (url-http-generic-filter): Avoid using
+	after-change-functions natively.  There are just too many ways
+	that this screws up in Emacs 21.  Use a filter function on the
+	process instead, and call the hook on
+	url-http-after-change-function manually.  [Actually, it will work
+	in Emacs 21, but one problem that has been fixed in Emacs 21
+	exists in Emacs 20.  -- fx]
+
+	* lisp/url-vars.el (url-mime-charset-string): sort-coding-systems
+	does not exist on older versions of Emacs, or any version of
+	XEmacs.  Do not call it unless it is bound.
+
+2001-05-17  Dave Love  <fx@gnu.org>
+
+	* lisp/url-http.el (url-http-create-request): Fix non-GET requests.
+
+2001-05-16  Dave Love  <fx@gnu.org>
+
+	* lisp/url-vars.el: Doc fixes.  Require mm-util.
+	(url-mime-charset-string): New variable.
+
+	* lisp/url-http.el: Doc fixes.
+	(url-http-create-request): Rearrange how we assemble the request.
+	Avoid generating bogus requests with an empty real-fname.
+	(url-http-handle-authentication): Declare status and success
+	special.
+	(url-http): Call mm-disable-multibyte.  Set process buffer's
+	coding systems to binary.
+
+	* lisp/url-misc.el (url-data): Call mm-disable-multibyte.
+
+	* lisp/url-file.el: Don't require mule-sysdp.  Fix `file-truname'
+	typo.
+	(url-file-find-possibly-compressed-file): Doc fix.
+	(url-file): Bind coding-system-for-read.  Call
+	mm-disable-multibyte.
+
+	* lisp/url-cache.el: Don't require mule-sysdp.
+	(url-store-in-cache): Avoid mule-write-region-no-coding-system.
+
+	* lisp/url.el: Don't require mule-sysdp.
+	(url-retrieve): Only set text properties if url is a string.
+
+2001-05-14  Dave Love  <fx@gnu.org>
+
+	* lisp/url-http.el (url-http-create-request): Declare
+	proxy-object, proxy-info special.
+	(url-http-handle-authentication): Declare success special.
+
+2001-05-12  Dave Love  <fx@gnu.org>
+
+	* lisp/url-http.el: Revert last change.
+
+2001-05-10  Dave Love  <fx@gnu.org>
+
+	* lisp/url-http.el (url-http-generic-after-change-function): Make
+	it permanent-local.
+
+2001-05-05  Dave Love  <fx@gnu.org>
+
+	* lisp/url-http.el: Autoload some functions.
+	(cl): Require when compiling.
+	(url-http-extra-headers): Defvar when compiling.
+	(url-http): Treat after-change-functions as a local hook.
+
+	* lisp/url-history.el (url-parse): Require.
+	(url-do-setup): Autoload.
+
+	* lisp/url-gw.el: Require url-vars.  Autoload some functions.
+
+	* lisp/url-file.el: Require mailcap.  Require cl when compiling.
+	Use (featurep 'xemacs).
+	(url-file-build-filename): Bind pos-index.
+	(url-file): Call url-find-file-dired, not url-dired-find-file.
+
+	* lisp/url-dired.el: Add copyright notice.  Autoload some
+	functions.
+	(url-dired-minor-mode-map): Use (featurep 'xemacs).
+	(url-dired-find-file-mouse): Use mouse-set-point, not event-point.
+	(url-find-file-dired): Renamed from one version of
+	url-dired-find-file.
+
+	* lisp/url-cid.el: Don't require widget.  Require mm-decode
+	unconditionally.
+
+	* lisp/url-util.el: Autoload mule-decode-string,
+	timezone-parse-date, timezone-make-date-arpa-standard.
+	(url-unreserved-chars): Fix list per RFC 2396.
+	(url-hexify-string): Maybe string-make-unibyte.
+
+	* lisp/url-news.el: Require nntp.
+
+	* lisp/url-imap.el: Require cl when compiling.  Require nnimap
+	unconditionally.
+
+2001-05-04  Dave Love  <fx@gnu.org>
+
+	* lisp/url-handlers.el (url-file-local-copy): Use make-temp-file,
+	not non-existent mailcap-generate-unique-filename.
+
+	* lisp/url-privacy.el: Require url-vars.  Require cl when
+	compiling.
+
+	* lisp/url-parse.el: Require url-vars.  Autoload
+	url-scheme-get-property.
+
+	* lisp/url-nfs.el: Require cl when compiling.  Test for XEmacs
+	with featurep.
+
+	* lisp/url-mailto.el: Require cl when compiling.
+
+	* lisp/url-cookie.el (url-cookie-handle-set-cookie): Call
+	url-parse-args, not url-util-parse-args.
+
+	* lisp/url-cache.el (url-cache-expired): Remove bogus `return'.
+
+2001-04-09  Dave Love  <fx@gnu.org>
+
+	* lisp/mule-sysdp.el (mule-detect-coding-version)
+	(mule-code-convert-region, mule-inhibit-code-conversion)
+	(mule-write-region-no-coding-system, mule-encode-string)
+	(mule-decode-string, mule-truncate-string)
+	(mule-find-charset-region, mule-coding-system-name)
+	(mule-find-coding-system, mule-make-iso-character): Grok Mule 5.0.
+	[There must be a better way.]
+	(mule-coding-system-p, string-width): Use defalias.
+
+2001-01-03  Sam Steingold  <sds@gnu.org>
+
+	* lisp/url-http.el (url-http-wait-for-headers-change-function):
+	set `url-http-end-of-headers' to 0 for HTTP 0.9
+
+2001-01-02  Sam Steingold  <sds@gnu.org>
+
+	* lisp/url-auth.el (provide): `url-auth', not `urlauth'
+
+2000-12-22  Dave Love  <fx@gnu.org>
+
+	* lisp/url-history.el (url): Don't require (to avoid recursion).
+	(cl): Require when compiling.
+
+	* lisp/url-http.el (url-auth): Require.
+	(url-http-handle-authentication): Fix typo.
+
+	* lisp/url-cookie.el (url-cookie-setup-save-timer): Fix typo.
+
+2000-12-20  Dave Love  <fx@gnu.org>
+
+	* lisp/url.el: Require mm-decode, mm-view when compiling.
+	<not (fboundp 'puthash)>: Define puthash and
+	autoload other has functions rather than using cl-...hash.
+	(url-warn): Define.
+
+	* lisp/url-ns.el, lisp/url-methods.el, lisp/url-http.el:  Avoid
+	cl-...hash functions.
+
+	* lisp/url-history.el: Avoid cl-...hash functions.
+	(url): Require.
+
+	* lisp/url-gw.el, lisp/url-cookie.el:  Require cl only when
+	compiling.
+
+2000-10-03  William M. Perry  <wmperry@aventail.com>
+
+	* lisp/url-util.el (url-get-url-at-point): guard against 'url'
+	getting set to nil due to bad string matching.  Subsequent matches
+	would then choke because we passed string-match a nil.
+
+	* lisp/url-http.el (url-http-parse-headers): Need to make the
+	connection as 'free' when we get a 304 response (found in cache),
+	or when a keep-alive conneection timed out, it would re-parse the
+	headers and dispatch to the callback again.  Eek.
+
+2000-10-02  William M. Perry  <wmperry@aventail.com>
+
+	* lisp/url-http.el (url-http-chunked-encoding-after-change-function):
+	implemented chunked transfer-coding.
+	(url-http-create-request): We can now advertise ourselves as a 1.1
+	compliant browser!
+
+2000-07-28  Sam Steingold  <sds@gnu.org>
+
+	* lisp/url-methods.el (url-scheme-default-loader): `callback' and
+	`cbargs' are optional args (for calling from w3).
+	(url-scheme-register-proxy): typos fixes: `url-match' replaced
+	with `string-match' and `protocol' with `scheme'.
+
+2000-07-18  Sam Steingold  <sds@gnu.org>
+
+	* lisp/url-handlers.el (require 'url): For
+	`url-retrieve-synchronously'.
+	* lisp/url-history.el (url-history-save-interval): Avoid
+	circularity.
+
+2000-07-10  William M. Perry  <wmperry@aventail.com>
+
+	* lisp/mule-sysdp.el (mule-make-iso-character): If we are not in
+	mule, and the character requested is > 255, then return "~"
+	instead of letting whoever call us signal an error when they try
+	to insert the character.
+	(mule-make-iso-character): Also wrap the whole thing in a
+	condition case and return "~" on error, in case make-char bombs on
+	us.
+
+	* lisp/url-cid.el (url-cid): Fixed stupid mistake in the loader
+	for cid parts.
+
+	* lisp/url-util.el (url-display-percentage): New routine that uses
+	the progress bar under XEmacs if available.  Looks very sexy under
+	XEmacs/GTK hacked to use the GNOME statusbar.
+
+	* lisp/url-http.el
+	(url-http-content-length-after-change-function): Use new function
+	url-display-percentage instead of url-lazy-message.
+
+2000-01-27  William M. Perry  <wmperry@aventail.com>
+
+	* lisp/url-file.el (url-file-build-filename): Work around for
+	differences in ange-ftp / efs handling of port numbers other than
+	21.
+
+1999-12-24  William M. Perry  <wmperry@aventail.com>
+
+	* lisp/url-irc.el: Added pointer to draft specification for the
+	IRC URL so people don't think I'm crazy.
+
+	* configure.in: Checks to make sure that Gnus was found, since we
+	HAVE to have it now.  Removed conditional compilation of
+	url-cid.el
+
+1999-12-16  Eric Marsden <emarsden@mail.dotcom.fr>
+
+	* lisp/url-util.el (url-get-url-at-point): Allow URLs wrapped in
+	() to have periods at the end of the chunk.
+
+1999-12-14  William M. Perry  <wmperry@aventail.com>
+
+	* lisp/url-misc.el (url-man): Implemented `man' URL types.
+	(url-info): Autoload.
+	(url-man): Ditto.
+	(url-rlogin): Ditto.
+	(url-telnet): Ditto.
+	(url-tn3270): Ditto.
+	(url-generic-emulator-loader): Ditto.
+
+	* lisp/url-https.el (url-https-create-secure-wrapper): New macro
+	to wrap arbitrary `http' methods with the appropriate magic to
+	turn SSL on.
+	(file-exists-p): Use it.
+	(file-readable-p): Use it.
+	(file-attributes): Use it.
+
+	* lisp/url-news.el (url-news-fetch-newsgroup): When building the
+	server spec for Gnus, make sure we set
+	nntp-open-connection-function directly, so that other news-related
+	functions above us can set it.
+	(url-snews): Implement `snews' URLs using `nntp-open-ssl-stream'.
+	(url-nntp): Autoload.
+	(url-snews): Ditto.
+	(url-news): Ditto.
+
+1999-12-12  William M. Perry  <wmperry@aventail.com>
+
+	* lisp/url-http.el (url-http-parse-response): New function to
+	parse just the HTTP response code out of the buffer, without
+	taking any other actions.
+	(url-http-wait-for-headers-change-function): Use it here when we
+	know we have an HTTP/1.x response.
+	(url-http-wait-for-headers-change-function): Special case a
+	response code of '304' or there could be some delays waiting for
+	keep-alives to time out on cached documents with no known
+	content-length on the server.
+
+1999-12-11  William M. Perry  <wmperry@aventail.com>
+
+	* aclocal.m4 (AC_CHECK_CUSTOMLOADS): Don't use $(EMACS) in here -
+	the Makefile does that for us.  We just need to provide what files
+	to load/functions to run.
+
+	* lisp/url-imap.el (url-imap-open-host): Need to bind
+	nnimap-server-buffer or `nnimap-open-server' chokes trying to use
+	the current buffer as the IMAP server buffer, which fails
+	miserably.
+
+1999-12-11  Simon Josefsson <jas@pdc.kth.se>
+
+	* lisp/url-imap.el: Initial (rough) implementation for IMAP urls.
+
+1999-12-11  William M. Perry  <wmperry@aventail.com>
+
+	* lisp/url-file.el (url-file-asynch-callback): Make the checks for
+	ange-ftp vs. efs calling semantics consistent, so that if someone
+	has NEITHER of them loaded, everything should still work.
+
+	* lisp/url-handlers.el (url-copy-file): Autoload.
+	(url-file-local-copy): Ditto.
+	(url-insert-file-contents): Ditto.
+	(url-setup-file-name-handlers): Ditto.
+
+1999-12-10  William M. Perry  <wmperry@aventail.com>
+
+	* lisp/url-http.el (mail-parse): Since we use functions from here,
+	we should require it, eh?
+
+1999-12-10 01:57:01  Shenghuo ZHU  <zsh@cs.rochester.edu>
+
+	* lisp/url-cookie.el (url-cookie-multiple-line): One line cookie
+	if nil.
+	(url-cookie-generate-header-lines): Use it.
+
+1999-12-06  William M. Perry  <wmperry@aventail.com>
+
+	* lisp/mule-sysdp.el (mule-code-convert-region): Deal with Mule
+	4.1 gracefully
+
+	* lisp/url-news.el: Reimplemented news and nntp URL support.  No
+	longer bothers to check for outdated Gnus versions, since this
+	will not work without them anyway.
+
+1999-12-05  Dave Love  <fx@gnu.org>
+
+	* lisp/url-methods.el, lisp/url-proxy.el, lisp/url-util.el,
+	lisp/url.el:
+	Require url-parse.
+
+1999-12-05  William M. Perry  <wmperry@aventail.com>
+
+	* lisp/url-http.el (url-http-find-free-connection): Spit out a
+	message when we have to contact a host so the user always gets
+	at least some feedback.
+
+	* lisp/url-expand.el (url-expander-remove-relative-links): Moved and
+	renamed function.
+	(url-default-expander): Use it.
+
+	* lisp/url-file.el (url-file-asynch-callback): Deal with just efs-auto as
+	well as efs.
+	(url-file): Add default content-type of application/octet-stream if none
+	known.
+	(url-file): Corrected bad call to url-host-is-local-p
+
+	* lisp/url-handlers.el (url-insert-file-contents): Emacs doesn't
+	like buffer-substring with nil arguments.
+	(url-copy-file): Use mm-destroy-parts instead of just killing
+	the buffer.  Use defined interfaces when available!
+	(url-insert-file-contents): Ditto.
+
+	* lisp/url-http.el (url-http-create-request): Lots of changes to
+	get proxying working.
+
+	* lisp/url-methods.el (url-scheme-register-proxy): New function to
+	find and register a proxy for a specific scheme.
+	(url-scheme-get-property): Use it when we load a URL scheme for
+	the first time.
+
+	* lisp/url-util.el (url-get-url-at-point): Re-integrated
+
+1999-12-04  William M. Perry  <wmperry@aventail.com>
+
+	* lisp/url-file.el (url-file): Signal an error if
+	url-file-build-filename could not find the filename.
+
+1999-12-01  William M. Perry  <wmperry@aventail.com>
+
+	* lisp/url.el (url-retrieve): Use url-history-update-url instead
+	of manipulating the hash table directly.
+
+	* lisp/url-history.el (url-completion-function): New function to
+	use for reading a URL with completion.
+	(url-history-update-url): New function to hide the hashtable
+	implementation from people inserting things into the history.
+
+1999-11-30  William M. Perry  <wmperry@aventail.com>
+
+	* lisp/url-proxy.el (url-proxy): Minor tweaks to get proxy support
+	working.
+
+	* lisp/url-parse.el (url-generic-parse-url): Fix bad call to
+	url-parse-args, which had changed the type of arguments it
+	expects.
+
+	* lisp/url-handlers.el (url-insert-file-contents): Ditto.
+	(url-copy-file): Ditto.
+
+	* lisp/url.el (url-mm-callback): Use mm-destroy-parts instead of
+	just killing the buffer.  Use defined interfaces when available!
+
+	* aclocal.m4 (AC_EMACS_LISP): Correctly redirect things out to
+	AC_FD_CC so they show up in config.log
+	(AC_EMACS_CHECK_LIB): Duh, fixed stupid mistake that would make
+	this always return 't' instead of 'yes' on successfully finding
+	the library.
+
+	* lisp/url-http.el (url-http-parse-headers): Added some
+	DAV-specific error codes.
+
+	* lisp/url.el (url-retrieve): Allow pre-parsed URLs to be passed
+	in.
+	(url-retrieve-synchronously): Duh, make this function actually
+	work again.  Numerous problems with it, including variable name
+	collisions - I love dynamically scoped lisps!
+
+	* lisp/url-nfs.el (url-nfs-create-wrapper): New function to create
+	wrappers onto the appropriate file-based URLs for
+	file-name-handlers.
+
+	* lisp/url-ftp.el: Moved the FTP stuff into it's own file - it
+	might get messy with file-name-handlers and things.
+
+	* lisp/url-http.el (url-http-clean-headers): Fix problem when
+	using 'HEAD' requests.  Thou shalt not change the length of the
+	region during an after-change-function.
+
+	* lisp/url-methods.el (url-scheme-methods): New variable that
+	holds a list of the methods/variables we look for in a URL
+	scheme.
+	(url-scheme-get-property): Use it.
+
+1999-11-29  William M. Perry  <wmperry@aventail.com>
+
+	* lisp/url-http.el (url-http-file-attributes): Reimplemented.
+	(url-http-file-exists-p): Ditto.
+
+	* lisp/url-nfs.el: Reimplemented the `nfs' URL scheme.
+
+	* lisp/url-file.el (url-file-create-wrapper): New macro to create
+	file-name-handler stubs for all the FTP/FILE stuff.
+
+	* lisp/url-handlers.el: New file to handle file-name-handler-alist
+	cruft.  Generic interface on top of functions that each URL
+	loader provides, if capable.
+
+1999-11-27  William M. Perry  <wmperry@aventail.com>
+
+	* lisp/url-https.el: Implemented HTTPS support.
+
+1999-11-26  William M. Perry  <wmperry@aventail.com>
+
+	* url-privacy.el (url-setup-privacy-info): Don't rely on
+	device-type being defined.  Not going to bother redistributing
+	devices.el for just one function.
+
+	* url-methods.el (url-scheme-get-property): Emacs does not have
+	the 3rd-argument to plist-get to specify the default.  *sigh*
+
+	* url-dired.el (add-minor-mode): Added definition for Emacs.
+
+	* url-http.el (url-http-generic-after-change-function): New
+	function, since Emacs does not allow you to change the
+	after-change-functions variable from within a function run by
+	said hook.  This just hands it off to the REAL function.
+	Side-effect is that this now works on Emacs at all. :)
+
+	* Initial checkin of rewritten URL library.
+
+Local variables:
+coding: utf-8
+End: