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.
