changeset 89952:6f6e9fe4658b

Revision: miles@gnu.org--gnu-2004/emacs--unicode--0--patch-22 Merge from emacs--cvs-trunk--0 Patches applied: * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-431 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-441 Update from CVS
author Miles Bader <miles@gnu.org>
date Tue, 06 Jul 2004 02:57:15 +0000
parents aafd98bcc2ac (current diff) ca58dab79be1 (diff)
children 029a652ac817
files ChangeLog Makefile.in etc/NEWS etc/TODO leim/ChangeLog leim/Makefile.in leim/quail/greek.el lisp/ChangeLog lisp/ibuffer.el lisp/international/mule.el lisp/isearch.el lisp/pcvs-defs.el lisp/pcvs.el lisp/progmodes/gdb-ui.el lisp/progmodes/grep.el lisp/progmodes/python.el lisp/replace.el lisp/textmodes/enriched.el lisp/vc-rcs.el lispref/ChangeLog lispref/files.texi lispref/frames.texi lispref/os.texi lispref/searching.texi man/ChangeLog man/makefile.w32-in man/pcl-cvs.texi man/search.texi src/ChangeLog src/Makefile.in src/eval.c src/fileio.c src/fontset.c src/image.c src/lisp.h src/macterm.c src/msdos.c src/search.c src/w32select.c src/xfaces.c src/xterm.c
diffstat 43 files changed, 1915 insertions(+), 393 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Wed Jun 30 06:14:40 2004 +0000
+++ b/ChangeLog	Tue Jul 06 02:57:15 2004 +0000
@@ -1,3 +1,7 @@
+2004-07-05  Andreas Schwab  <schwab@suse.de>
+
+	* Makefile.in (install-arch-indep): Remove .arch-inventory files.
+
 2004-06-21  Kenichi Handa  <handa@m17n.org>
 
 	* make-dist: Link leim-ext.el into tempdir.
--- a/Makefile.in	Wed Jun 30 06:14:40 2004 +0000
+++ b/Makefile.in	Tue Jul 06 02:57:15 2004 +0000
@@ -415,6 +415,7 @@
 		rm -rf $${subdir}/RCS ; \
 		rm -rf $${subdir}/CVS ; \
 		rm -f  $${subdir}/.cvsignore ; \
+		rm -f  $${subdir}/.arch-inventory ; \
 		rm -f  $${subdir}/\#* ; \
 		rm -f  $${subdir}/.\#* ; \
 		rm -f  $${subdir}/*~ ; \
--- a/etc/NEWS	Wed Jun 30 06:14:40 2004 +0000
+++ b/etc/NEWS	Tue Jul 06 02:57:15 2004 +0000
@@ -1000,10 +1000,11 @@
 `replace-regexp' allow \,expr to be used in a replacement string,
 where expr is an arbitrary Lisp expression evaluated at replacement
 time.  In many cases, this will be more convenient than using
-`query-replace-regexp-eval'.  All regular expression replacement
-commands now allow `\?' in the replacement string to specify a
-position where the replacement string can be edited for each
-replacement.
+`query-replace-regexp-eval'.  `\#' in a replacement string now refers
+to the count of replacements already made by the replacement command.
+All regular expression replacement commands now allow `\?' in the
+replacement string to specify a position where the replacement string
+can be edited for each replacement.
 
 +++
 ** Emacs normally highlights mouse sensitive text whenever the mouse
@@ -1162,6 +1163,16 @@
 bind C-w to `isearch-yank-word' in `isearch-mode-map'.
 
 +++
+** C-M-w deletes and C-M-y grabs a character in isearch mode.
+Another method to grab a character is to enter the minibuffer by `M-e'
+and to type `C-f' at the end of the search string in the minibuffer.
+
++++
+** M-% and C-M-% typed in isearch mode invoke `query-replace' and
+`query-replace-regexp' with the current search string inserted
+in the minibuffer as initial input for the string to replace.
+
++++
 ** Yanking text now discards certain text properties that can
 be inconvenient when you did not expect them.  The variable
 `yank-excluded-properties' specifies which ones.  Insertion
@@ -1910,6 +1921,8 @@
 
 ** Grep has been decoupled from compilation mode setup.
 
+*** There's a new separate package grep.el.
+
 *** Grep commands now have their own submenu and customization group.
 
 *** The new variables `grep-window-height', `grep-auto-highlight', and
@@ -2003,6 +2016,12 @@
 between the local version of the file and yesterday's head revision
 in the repository.
 
++++
+** In pcl-cvs mode, there is a new `d r' command to view the changes
+anyone has committed to the repository since you last executed
+"checkout", "update" or "commit".  That means using cvs diff options
+-rBASE -rHEAD.
+
 
 * New modes and packages in Emacs 21.4
 
@@ -2280,6 +2299,10 @@
 modification times.  Magic file name handlers can handle this
 operation.
 
+** file-remote-p now returns an identifier for the remote system,
+if the file is indeed remote.  (Before, the return value was t in
+this case.)
+
 ** The display space :width and :align-to text properties are now
 supported on text terminals.
 
--- a/etc/TODO	Wed Jun 30 06:14:40 2004 +0000
+++ b/etc/TODO	Tue Jul 06 02:57:15 2004 +0000
@@ -273,6 +273,28 @@
   the definition of `file-attributes' and `directory-files-and-attributes'
   and from the calls.
 
+** Re-design language environment handling so that Emacs can fit
+  better to a users locale (e.g. ja_JP.UTF-8).
+
+** Eliminate the current restriction on header printing by ps-print.
+  Currently, a header can contain only single 1-byte charset in
+  addition to ASCII.
+
+** In ps-print, provide an user friendly interface to specify fonts.
+
+** OpenType font support for various complex scripts (e.g. Devanagari).
+  As X protocal doesn't provide a way to access OpenType Layout Tables
+  in a OpenType font of a server side, we need a way to utilize local
+  fonts (perhaps by directly using the Freetype library or indirectly
+  via Xft library).
+
+** Enhance word boundary detection for such a script that doesn't use
+  space at word boundary (e.g. Thai).
+
+** Include a better Japanese input method in the distribution.
+  Currently, most Japanese users are using external packages
+  (e.g. tamago, anthy) or an input method via XIM.
+
 * Internal changes
 
 ** Replace gmalloc.c with the modified Doug Lea code from the current
--- a/leim/ChangeLog	Wed Jun 30 06:14:40 2004 +0000
+++ b/leim/ChangeLog	Tue Jul 06 02:57:15 2004 +0000
@@ -1,3 +1,13 @@
+2004-07-01  David Kastrup  <dak@gnu.org>
+
+	* quail/greek.el ("((") ("))"): add quotation mark shorthands.
+
+2004-06-30  Andreas Schwab  <schwab@suse.de>
+
+	* Makefile.in (${CHINESE-TIT:.elc=.el}): Depend on changed.tit to
+	serialize parallel builds.
+	(${MISC:.elc=.el}): Depend on changed.misc.
+
 2004-06-05  Kenichi Handa  <handa@m17n.org>
 
 	* Makefile.in (leim-list.el): Depend on leim-ext.el.  Append the
--- a/leim/Makefile.in	Wed Jun 30 06:14:40 2004 +0000
+++ b/leim/Makefile.in	Tue Jul 06 02:57:15 2004 +0000
@@ -174,6 +174,9 @@
 	${srcdir}/CXTERM-DIC/TONEPY.tit \
 	${srcdir}/CXTERM-DIC/ZOZY.tit
 
+${CHINESE-TIT:.elc=.el}: changed.tit
+	@true
+
 changed.tit: ${TIT-SOURCES}
 	${RUN-EMACS} -l ${buildlisppath}/international/titdic-cnv \
 	  -f batch-titdic-convert -dir quail ${srcdir}/CXTERM-DIC; \
@@ -187,6 +190,9 @@
 	${srcdir}/MISC-DIC/pinyin.map \
 	${srcdir}/MISC-DIC/ziranma.cin
 
+${MISC:.elc=.el}: changed.misc
+	@true
+
 changed.misc: ${MISC-SOURCES}
 	${RUN-EMACS} -l ${buildlisppath}/international/titdic-cnv \
 	  -f batch-miscdic-convert -dir quail ${srcdir}/MISC-DIC; \
--- a/leim/quail/greek.el	Wed Jun 30 06:14:40 2004 +0000
+++ b/leim/quail/greek.el	Tue Jul 06 02:57:15 2004 +0000
@@ -485,6 +485,8 @@
  ("\"" ?,A((B) ; dialytika
  ("|" ?$,1&Z(B) ; ypogegrammeni
  ("''" ?$,1q}(B) ; koronis
+ ("((" ?,A+(B) ; #x00ab
+ ("))" ?,A;(B) ; #x00bb
 
  ("A" ?$,1&q(B)
  ("B" ?$,1&r(B)
--- a/lisp/ChangeLog	Wed Jun 30 06:14:40 2004 +0000
+++ b/lisp/ChangeLog	Tue Jul 06 02:57:15 2004 +0000
@@ -1,3 +1,105 @@
+2004-07-05  Stefan  <monnier@iro.umontreal.ca>
+
+	* replace.el (query-replace-descr): New fun.
+	(query-replace-read-from, query-replace-read-args): Default to the
+	previous from&to.
+	(query-replace-read-to): Quote the `from' string when displaying it.
+	(query-replace-regexp-eval): Immediately check read-only status.
+	Use query-replace-read-from to get the \n checking.
+	Quote the `from' string when displaying it.
+	(map-query-replace-regexp, occur-read-primary-args):
+	Quote the `from' string when displaying it.
+
+	* isearch.el (isearch-query-replace): Pass the regexp-ness and
+	delimited-ness of the search to query-replace.
+
+	* replace.el (query-replace-read-from, query-replace-read-to):
+	New funs extracted from query-replace-read-args.
+	(query-replace-read-args): Use them.
+
+	* replace.el (query-replace-interactive, query-replace-read-args):
+	Remove the `initial' special value.
+	(query-replace-regexp-eval, map-query-replace-regexp): Simplify.
+	(occur-engine): Remove unused var `matchend'.
+
+	* isearch.el (isearch-query-replace, isearch-query-replace-regexp):
+	Use the search string without prompting.
+
+2004-07-05  Kenichi Handa  <handa@m17n.org>
+
+	* international/mule.el (decode-coding-inserted-region):
+	Set last-coding-system-used only when coding is nil.
+
+2004-07-03  Eli Zaretskii  <eliz@gnu.org>
+
+	* progmodes/grep.el (grep-compute-defaults, grep-command)
+	(grep-program, find-program, grep-find-use-xargs, grep-history)
+	(grep-find-history, grep-tag-default, grep-find-command)
+	(grep-regexp-alist, grep-process-setup, grep-compute-defaults):
+	Add autoload cookies, for unbundled packages that load `compile'
+	and expect all grep-related symbols to become defined.
+
+2004-07-03  KOSEKI Yoshinori  <kose@meadowy.org>
+
+	* iimage.el (turn-on-iimage-mode, iimage-mode): Add autoload cookies.
+	(iimage-mode-image-search-path): New user option to search the
+	image file.
+	(iimage-locate-file): New funcion.  Emacs21.3 or earlier does not
+	have locate-file.
+	(iimage-mode-buffer): Use it.
+
+2004-07-03  Nick Roberts  <nickrob@gnu.org>
+
+	* progmodes/gdb-ui.el (gdb-goto-breakpoint): String match more
+	carefully.
+	(gdb-delete-breakpoint, gdb-toggle-breakpoint): Handle gdbmi.
+
+2004-07-03  Juri Linkov  <juri@jurta.org>
+
+	* replace.el (query-replace-read-args): Swallow space after 'foo,
+	not after (quote foo).  Match space only immediately after symbol,
+	not anywhere in the whole string.
+
+2004-07-02  Richard M. Stallman  <rms@gnu.org>
+
+	* replace.el (query-replace-read-args): Swallow space after
+	symbols, not after closeparens.  But avoid error if string ends there.
+
+	* progmodes/python.el (python-beginning-of-statement):
+	Exit the loop if backward-up-list gets error.
+
+	* textmodes/enriched.el (enriched-encode): Bind inhibit-read-only.
+
+2004-07-02  Andre Spiegel  <spiegel@gnu.org>
+
+	* vc-rcs.el (vc-rcs-checkout-model): Look at the version headers
+	only if vc-consult-headers is non-nil.
+
+2004-07-02  Juri Linkov  <juri@jurta.org>
+
+	* pcvs.el (cvs-mode-diff-repository): New command.
+
+	* pcvs-defs.el (cvs-mode-diff-map): Bind r to cvs-mode-diff-repository.
+
+2004-07-01  Juri Linkov  <juri@jurta.org>
+
+	* isearch.el (isearch-mode-map): Bind C-M-w to isearch-del-char,
+	C-M-y to isearch-yank-char.  Bind M-% to isearch-query-replace,
+	C-M-% to isearch-query-replace-regexp.
+	(minibuffer-local-isearch-map): Add arrow key bindings.
+	Bind C-f to isearch-yank-char-in-minibuffer.
+	(isearch-forward): Doc fix.
+	(isearch-edit-string): Doc fix.
+	(isearch-query-replace, isearch-query-replace-regexp): New funs.
+	(isearch-del-char): Add optional arg.  Set isearch-yank-flag to t.
+	(isearch-yank-char): Add optional arg.
+	(isearch-yank-char-in-minibuffer): New fun.
+
+	* replace.el (query-replace-interactive): Change type from boolean
+	to choice.  Add value `initial'.
+	(query-replace-read-args): Handle value `initial' of
+	query-replace-interactive.
+
 2004-06-29  Kim F. Storm  <storm@cua.dk>
 
 	* progmodes/gdb-ui.el (breakpoint-enabled-bitmap-face)
@@ -15,6 +117,11 @@
 
 	* emacs-lisp/pp.el (pp-buffer): Add autoload.
 
+2004-06-28  Richard M. Stallman  <rms@gnu.org>
+
+	* font-lock.el (font-lock-fontify-syntactic-keywords-region):
+	More changes to go with previous change in font-lock.el.
+
 2004-06-26  David Kastrup  <dak@gnu.org>
 
 	* replace.el (perform-replace): Highlight the match even in
@@ -72,12 +179,11 @@
 	(replace-regexp): Explain `\,', `\#' and `\?'.
 	(replace-match-data): New function for thorough reuse/destruction
 	of old match-data.
-	(replace-match-maybe-edit): Function for implementing `\?'
-	editing.
+	(replace-match-maybe-edit): Function for implementing `\?' editing.
 	(perform-replace): Fix maintaining of the match stack including
 	already matched regions, implement `\?', fix various problems
 	with regions while editing and other stuff.
-	(replace-highlight): Simplified.
+	(replace-highlight): Simplify.
 
 2004-06-24  Daniel Pfeiffer  <occitan@esperanto.org>
 
@@ -104,8 +210,7 @@
 
 2004-06-21  Juanma Barranquero  <lektu@terra.es>
 
-	* image.el (image-library-alist): Rewrite docstring in active
-	voice.
+	* image.el (image-library-alist): Rewrite docstring in active voice.
 
 2004-06-20  Richard M. Stallman  <rms@gnu.org>
 
@@ -132,8 +237,8 @@
 
 2004-06-18  Luc Teirlinck  <teirllm@auburn.edu>
 
-	* autorevert.el (global-auto-revert-non-file-buffers): Update
-	docstring.
+	* autorevert.el (global-auto-revert-non-file-buffers):
+	Update docstring.
 
 2004-06-19  Daniel Pfeiffer  <occitan@esperanto.org>
 
@@ -154,7 +259,7 @@
 	escaped character is n or t.
 	(query-replace-regexp): Add \, and \# interpretation to
 	interactive call and document it.
-	(query-replace-regexp-eval, replace-match-string-symbols): add \#
+	(query-replace-regexp-eval, replace-match-string-symbols): Add \#
 	as shortkey for replace-count.
 	(replace-quote): New function for doubling backslashes.
 
@@ -184,8 +289,8 @@
 	* dired-aux.el (dired-do-redisplay, dired-maybe-insert-subdir):
 	Add hyperlink to emacs-xtra manual to docstring.
 
-	* autorevert.el (global-auto-revert-non-file-buffers): Add
-	hyperlink to emacs-xtra manual to docstring, as well as an
+	* autorevert.el (global-auto-revert-non-file-buffers):
+	Add hyperlink to emacs-xtra manual to docstring, as well as an
 	info-link.
 
 2004-06-14  Juanma Barranquero  <lektu@terra.es>
@@ -204,8 +309,7 @@
 	* international/code-pages.el (windows-1256, cp1125): Fix tables
 	for several characters.
 
-	* international/utf-8.el (ccl-encode-mule-utf-8): Fix previous
-	change.
+	* international/utf-8.el (ccl-encode-mule-utf-8): Fix previous change.
 
 2004-06-13  Richard M. Stallman  <rms@gnu.org>
 
@@ -251,14 +355,13 @@
 
 2004-06-13  Kenichi Handa  <handa@m17n.org>
 
-	* international/utf-8.el (ccl-decode-mule-utf-8): Fix previous
-	change.
+	* international/utf-8.el (ccl-decode-mule-utf-8): Fix previous change.
 	(ccl-untranslated-to-ucs): Fix typo.
 
 2004-06-12  Karl Chen  <quarl@hkn.eecs.berkeley.edu>  (tiny change)
 
-	* progmodes/python.el (python-open-block-statement-p): Fix
-	indentation after a block opening that contains a comment.
+	* progmodes/python.el (python-open-block-statement-p):
+	Fix indentation after a block opening that contains a comment.
 
 2004-06-12  J,Ai(Br,At(Bme Marant  <jerome@marant.org>  (tiny change)
 
@@ -274,11 +377,10 @@
 
 2004-06-12  Kenichi Handa  <handa@m17n.org>
 
-	* international/mule-cmds.el (set-language-environment): Load
-	subst tables if necessary.
-
-	* international/mule.el (decode-char): Load subst tables if
-	necessary.
+	* international/mule-cmds.el (set-language-environment):
+	Load subst tables if necessary.
+
+	* international/mule.el (decode-char): Load subst tables if necessary.
 	(encode-char): Likewise.
 
 	* international/utf-16.el (utf-16-decode-ucs): Handle a surrogate
@@ -294,18 +396,17 @@
 	(utf-16-decode-to-ucs): Handle pre-read character.
 	(utf-16le-encode-loop): Handle surrogate pair.
 	(utf-16be-encode-loop): Likewise.
-	(ccl-encode-mule-utf-16le-with-signature): Adjusted for the change
+	(ccl-encode-mule-utf-16le-with-signature): Adjust for the change
 	of utf-16le-encode-loop.
-	(ccl-encode-mule-utf-16be-with-signature): Adjusted for the change
+	(ccl-encode-mule-utf-16be-with-signature): Adjust for the change
 	of utf-16be-encode-loop.
-	(mule-utf-16-post-read-conversion): Call
-	utf-8-post-read-conversion at first.
-	(mule-utf-16[{le|be}], mule-utf-16{le|be}-with-signature): Include
-	CJK charsets in safe-charsets if utf-translate-cjk-mode is on.
+	(mule-utf-16-post-read-conversion):
+	Call utf-8-post-read-conversion at first.
+	(mule-utf-16[{le|be}], mule-utf-16{le|be}-with-signature):
+	Include CJK charsets in safe-charsets if utf-translate-cjk-mode is on.
 	Add post-read-conversion and pre-write-conversion.
 
-	* international/utf-8.el (utf-translate-cjk-charsets): New
-	variable.
+	* international/utf-8.el (utf-translate-cjk-charsets): New variable.
 	(utf-translate-cjk-unicode-range): New variable.
 	(utf-translate-cjk-load-tables): New function.
 	(utf-lookup-subst-table-for-decode): New function.
@@ -320,10 +421,10 @@
 	(ccl-untranslated-to-ucs): Handle 2-byte encoding.  Set r1 to the
 	length of encoding.  Don't return r0.
 	(utf-8-compose): New arg hash-table.  Handle 2-byte encoding.
-	(utf-8-post-read-conversion): Narrow to region properly.  If
-	utf-translate-cjk-mode is on, load tables if necessary.  Call
-	utf-8-compose with hash-table arg if necessary.  Call
-	XXX-compose-region instead of XXX-post-read-convesion.
+	(utf-8-post-read-conversion): Narrow to region properly.
+	If utf-translate-cjk-mode is on, load tables if necessary.
+	Call utf-8-compose with hash-table arg if necessary.
+	Call XXX-compose-region instead of XXX-post-read-convesion.
 	(utf-8-pre-write-conversion): New function.
 	(mule-utf-8): Include CJK charsets in safe-charsets if
 	utf-translate-cjk-mode is on.  Add pre-write-conversion.
@@ -331,8 +432,8 @@
 	* international/characters.el: Temporarily set
 	utf-translate-cjk-mode to nil.
 
-	* language/devan-util.el (devanagari-compose-region): Add
-	autoload cookie.
+	* language/devan-util.el (devanagari-compose-region):
+	Add autoload cookie.
 
 	* international/ccl.el (ccl-dump-call): Fix printing the
 	subroutine name.
@@ -342,13 +443,12 @@
 	* dired.el (dired-revert): If buffer is marked unmodified before
 	reverting, keep it marked unmodified.
 	Adapt to new conventions for commenting out code.
-	(dired-make-relative): Adapt to new conventions for commenting out
-	code.
+	(dired-make-relative): Adapt to new conventions for commenting out code.
 
 2004-06-10  Miles Bader  <miles@gnu.ai.mit.edu>
 
-	* eshell/esh-module.el (eshell-load-defgroups): Bind
-	`vc-handled-backends' to nil when opening files.
+	* eshell/esh-module.el (eshell-load-defgroups):
+	Bind `vc-handled-backends' to nil when opening files.
 
 2004-06-11  Juanma Barranquero  <lektu@terra.es>
 
@@ -431,15 +531,15 @@
 	or incorrect, autoloads.
 
 	* dired-aux.el (dired-kill-tree): Do not kill DIRNAME, even if it
-	does not end in a slash.  Add optional argument KILL-ROOT.  Update
-	docstring.
+	does not end in a slash.  Add optional argument KILL-ROOT.
+	Update docstring.
 	(dired-do-touch, dired-clean-directory, dired-run-shell-command)
 	(dired-query): Add autoloads.
 
 2004-06-08  Daniel Pfeiffer  <occitan@esperanto.org>
 
-	* progmodes/compile.el (compilation-set-window-height): Rearrange
-	the save-* functions because a buffer can have several current
+	* progmodes/compile.el (compilation-set-window-height):
+	Rearrange the save-* functions because a buffer can have several current
 	point in different windows.
 	(compilation-error-regexp-alist-alist): Recognize {standard input}
 	GNU messages (for gcc --pipe) and more kinds of Oracle messages.
@@ -479,8 +579,7 @@
 
 	* format.el (format-insert-annotations)
 	(format-annotate-location): Doc fixes.
-	(format-subtract-regions): Make arguments match their use in
-	docstring.
+	(format-subtract-regions): Make arguments match their use in docstring.
 
 	* simple.el (kill-region): Doc fix.
 
@@ -566,8 +665,7 @@
 	Handle `dired-subdir-switches'.
 	(dired-hide-subdir, dired-hide-all): Do not mark buffer modified.
 
-	* dired.el (dired-subdir-switches, dired-switches-alist):
-	New vars.
+	* dired.el (dired-subdir-switches, dired-switches-alist): New vars.
 	(dired-insert-old-subdirs): Do not repeatedly delete and reinsert
 	subdirs if -R switch is used for a subdir.
 	(dired-mode): Set `dired-switches-alist'.
@@ -600,7 +698,7 @@
 
 2004-06-04  Mario Lang  <mlang@delysid.org>
 
-	* battery.el (battery-linux-proc-acpi): mA was hardcored, but some
+	* battery.el (battery-linux-proc-acpi): `mA' was hardcored, but some
 	systems appear to use mW, make the code handle this.  Fix a
 	division-by-zero bug while at it, and handle kernels with
 	a slightly different layout in /proc/acpi.
@@ -610,7 +708,7 @@
 	* vc-svn.el (vc-svn-checkin): Use 'nconc' instead of 'list*',
 	because the latter is a CL-ism.  This fixes the bug reported by
 	Shawn Boyette <mdxi@collapsar.net> in
-        http://lists.gnu.org/archive/html/emacs-devel/2004-05/msg00442.html.
+	http://lists.gnu.org/archive/html/emacs-devel/2004-05/msg00442.html.
 
 2004-06-04  Miles Bader  <miles@gnu.org>
 
@@ -647,8 +745,8 @@
 
 	* subr.el (read-number): Use canonical format for default in prompt.
 
-	* minibuf-eldef.el (minibuffer-default-in-prompt-regexps): Add
-	regexp for " [...]" style defaults.
+	* minibuf-eldef.el (minibuffer-default-in-prompt-regexps):
+	Add regexp for " [...]" style defaults.
 
 2004-06-02  Romain Francoise  <romain@orebokech.com>
 
@@ -671,14 +769,28 @@
 	empty docstring.
 
 	* international/mule.el (register-char-codings): Make alias for
-	`ignore'.  Move docstring to obsolescence info and remove
-	redundancy.
+	`ignore'.  Move docstring to obsolescence info and remove redundancy.
 
 2004-06-02  Kim F. Storm  <storm@cua.dk>
 
 	* frame.el (blink-cursor-start): Turn cursor off initially so blink
 	starts after blink-cursor-delay rather than 2*blink-cursor-delay.
 
+2004-06-01  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* comint.el (comint-replace-by-expanded-history-before-point):
+	Obey `start' as the docstring says.
+	(comint-send-input, comint-snapshot-last-prompt, comint-output-filter)
+	(comint-update-fence): Prevent font-lock from running unnecessarily.
+	(comint-dynamic-list-completions): Use with-current-buffer.
+
+2004-06-01  Roland Winkler  <Roland.Winkler@physik.uni-erlangen.de>
+
+	* textmodes/bibtex.el (bibtex-format-entry): Fix regexps.
+	(bibtex-parse-strings): Bugfix, use assoc instead of assoc-string.
+	(bibtex-entry-update): Handle alternatives and optional fields.
+	(bibtex-parse-entry): Bugfix, handle empty key.
+
 2004-05-31  Stefan Monnier  <monnier@iro.umontreal.ca>
 
 	* vc-arch.el (vc-arch-state): Don't assume the file exists.
@@ -2763,26 +2875,6 @@
 
 2004-04-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-	* url/url-util.el (url-debug): Use with-current-buffer.
-
-	* url/url-nfs.el (url-nfs-file-attributes): Add id-format parameter.
-	(url-nfs-create-wrapper): Use new backquote syntax.
-
-	* url/url-https.el (url-https-file-attributes): Add id-format param.
-
-	* url/url-http.el (url-http-head-file-attributes)
-	(url-http-file-attributes): Add id-format parameter.
-
-	* url/url-handlers.el: Use new find-file-hook.
-	(url-file-attributes): Add id-format parameter.
-
-	* url/url-file.el (url-file-create-wrapper): Use new backquote syntax.
-	(url-file-file-attributes): Add id-format parameter.
-
-	* url/url-dav.el: Use with-current-buffer.
-	(url-dav-process-response): Fix regexps and spurious quote.
-	(url-dav-file-attributes): Add id-format param.
-
 	* diff-mode.el (diff-end-of-hunk): Be more careful with unified hunks.
 
 2004-04-16  Andre Spiegel  <spiegel@gnu.org>
@@ -2955,14 +3047,6 @@
 	* progmodes/compile.el (compile-goto-error): Select the buffer/window
 	corresponding to the event.
 
-	* url/url.el (url-retrieve): Use with-current-buffer.
-
-	* url/url-http.el (url-http-parse-headers, url-http-file-exists-p):
-	Remove unused var `version'.
-
-	* url/url-handlers.el (url-handler-mode): New minor mode.
-	(url-setup-file-name-handlers): Remove.
-
 2004-04-12  Joe Buehler  <jbuehler@hekiman.com>
 
 	* loadup.el: Add cygwin to system-type list, for unexec() support.
@@ -2979,9 +3063,6 @@
 
 	* help.el (describe-mode): Doc fix.
 
-	* url/url-cookie.el (url-cookie-handle-set-cookie): Replace calls
-	to obsolete `assoc-ignore-case' with calls to `assoc-string'.
-
 2004-04-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 
 	* progmodes/compile.el (compilation-mode-font-lock-keywords): Fix test
@@ -3001,42 +3082,6 @@
 
 2004-04-11  Dave Love  <fx@gnu.org>
 
-	* url/url-mailto.el (url-mailto):
-	* url/url-history.el (url-history-setup-save-timer):
-	* url/url-cookie.el (url-cookie-setup-save-timer): Avoid warnings.
-
-	* url/url-file.el (url-file-build-filename): Don't use
-	directory-sep-char.
-
-	* url/url-auth.el (url-register-auth-scheme): Fix `format' call.
-
-	* url/url-about.el (url-scheme-registry): Defvar.
-	(url-about): Use text/plain.
-
-	* url/url-vars.el (cl): Don't require.
-	(url): Add :version.
-	(url-bug-address): Use bug-gnu-emacs.
-
-	* url/url-util.el (url-hexify-string): Don't give multibyte error
-	for char <16.
-	(mail-header-extract): Autoload.
-
-	* url/url-parse.el: Doc fixes.
-
-	* url/url-ldap.el (ldap): Require.
-	(url-ldap): Fix `format' call.
-	(url-ldap-certificate-formatter): Avoid warning.
-
-	* url/url-https.el (url-https-create-secure-wrapper): Use modern
-	backquotes.
-
-	* url/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/url-cache.el (url-util): Require.
-
 	* emacs-lisp/bytecomp.el (byte-compile-cond): Fix last change.
 
 	* progmodes/python.el: New file.
@@ -3083,9 +3128,6 @@
 
 	* emacs-lisp/bytecomp.el (byte-compile-version): Variable removed.
 	(byte-compile-insert-header): Don't use `byte-compile-version'.
-	* url/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].
 	* forms.el (forms-version): Variable removed.
 	(forms-mode): Don't use `forms-version'.
 	* recentf.el (recentf-version): Variable removed.
@@ -3335,10 +3377,7 @@
 
 2004-04-03  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-	* url: Import the URL package from its repository.
-
-	* url/url-methods.el:
-	* url/url-parse.el: Don't require url-auto.
+	* url/: New dir.  Import the URL package from its repository.
 
 2004-04-03  Andreas Schwab  <schwab@suse.de>
 
--- a/lisp/ibuffer.el	Wed Jun 30 06:14:40 2004 +0000
+++ b/lisp/ibuffer.el	Tue Jul 06 02:57:15 2004 +0000
@@ -1,6 +1,6 @@
 ;;; ibuffer.el --- operate on buffers like dired
 
-;; Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
 
 ;; Author: Colin Walters <walters@verbum.org>
 ;; Maintainer: John Paul Wallington <jpw@gnu.org>
--- a/lisp/iimage.el	Wed Jun 30 06:14:40 2004 +0000
+++ b/lisp/iimage.el	Tue Jul 06 02:57:15 2004 +0000
@@ -25,12 +25,13 @@
 
 ;;; Commentary:
 
-;; Iimage is a minor mode that display a images, when image-filename
-;; exists in buffer.
+;; Iimage is a minor mode that displays images, when image-filename
+;; exists in the buffer.
 ;; http://www.netlaputa.ne.jp/~kose/Emacs/iimage.html
 ;;
 ;; Add to your `~/.emacs':
-;; (autoload 'iimage-mode "iimage" "SUpport Inline image minor mode." t)
+;; (autoload 'iimage-mode "iimage" "Support Inline image minor mode." t)
+;; (autoload 'turn-on-iimage-mode "iimage" "Turn on Inline image minor mode." t)
 ;;
 ;; ** Display images in *Info* buffer.
 ;;
@@ -50,7 +51,7 @@
 (eval-when-compile
   (require 'image-file))
 
-(defconst iimage-version "1.0")
+(defconst iimage-version "1.1")
 (defvar iimage-mode nil)
 (defvar iimage-mode-map nil)
 
@@ -89,6 +90,10 @@
      foo.JPG
 ")
 
+(defvar iimage-mode-image-search-path nil
+"*List of directories to search for image files for iimage-mode.")
+
+;;;###autoload
 (defun turn-on-iimage-mode ()
 "Unconditionally turn on iimage mode."
   (interactive)
@@ -99,6 +104,12 @@
   (interactive)
   (iimage-mode 0))
 
+;; Emacs21.3 or earlier does not heve locate-file.
+(if (fboundp 'locate-file)
+    (defalias 'iimage-locate-file 'locate-file)
+  (defun iimage-locate-file (filename path)
+    (locate-library filename t path)))
+
 (defun iimage-mode-buffer (arg)
 "Display/Undisplay Images.
 With numeric ARG, display the images if and only if ARG is positive."
@@ -113,8 +124,9 @@
       (dolist (pair iimage-mode-image-regex-alist)
 	(while (re-search-forward (car pair) nil t)
 	  (if (and (setq file (match-string (cdr pair)))
-		   (setq file (expand-file-name file default-directory))
-		   (file-exists-p file))
+		   (setq file (iimage-locate-file file
+				   (cons default-directory
+					 iimage-mode-image-search-path))))
 	      (if ing
 		  (add-text-properties (match-beginning 0) (match-end 0)
 				       (list 'display (create-image file)))
@@ -122,6 +134,7 @@
 					'(display)))))))
     (set-buffer-modified-p modp)))
 
+;;;###autoload
 (define-minor-mode iimage-mode
   "Toggle inline image minor mode."
   nil " iImg" iimage-mode-map
Binary file lisp/international/mule.el has changed
--- a/lisp/isearch.el	Wed Jun 30 06:14:40 2004 +0000
+++ b/lisp/isearch.el	Tue Jul 06 02:57:15 2004 +0000
@@ -1,7 +1,7 @@
 ;;; isearch.el --- incremental search minor mode
 
-;; Copyright (C) 1992, 93, 94, 95, 96, 97, 1999, 2000, 01, 2003, 2004
-;;   Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1999,
+;;   2000, 2001, 2003, 2004  Free Software Foundation, Inc.
 
 ;; Author: Daniel LaLiberte <liberte@cs.uiuc.edu>
 ;; Maintainer: FSF
@@ -59,7 +59,6 @@
 
 ;; TODO
 ;; - Integrate the emacs 19 generalized command history.
-;; - Think about incorporating query-replace.
 ;; - Hooks and options for failed search.
 
 ;;; Change Log:
@@ -290,8 +289,10 @@
     (define-key map " " 'isearch-whitespace-chars)
     (define-key map [?\S-\ ] 'isearch-whitespace-chars)
 
-    (define-key map "\C-w" 'isearch-yank-word-or-char)
-    (define-key map "\C-y" 'isearch-yank-line)
+    (define-key map    "\C-w" 'isearch-yank-word-or-char)
+    (define-key map "\M-\C-w" 'isearch-del-char)
+    (define-key map "\M-\C-y" 'isearch-yank-char)
+    (define-key map    "\C-y" 'isearch-yank-line)
 
     ;; Define keys for regexp chars * ? |.
     ;; Nothing special for + because it matches at least once.
@@ -332,18 +333,27 @@
     (define-key map "\M-r" 'isearch-toggle-regexp)
     (define-key map "\M-e" 'isearch-edit-string)
 
+    (define-key map [?\M-%] 'isearch-query-replace)
+    (define-key map [?\C-\M-%] 'isearch-query-replace-regexp)
+
     map)
   "Keymap for `isearch-mode'.")
 
 (defvar minibuffer-local-isearch-map
   (let ((map (make-sparse-keymap)))
     (set-keymap-parent map minibuffer-local-map)
-    (define-key map "\r" 'isearch-nonincremental-exit-minibuffer)
-    (define-key map "\M-n" 'isearch-ring-advance-edit)
-    (define-key map "\M-p" 'isearch-ring-retreat-edit)
+    (define-key map "\r"    'isearch-nonincremental-exit-minibuffer)
+    (define-key map "\M-n"  'isearch-ring-advance-edit)
+    (define-key map [next]  'isearch-ring-advance-edit)
+    (define-key map [down]  'isearch-ring-advance-edit)
+    (define-key map "\M-p"  'isearch-ring-retreat-edit)
+    (define-key map [prior] 'isearch-ring-retreat-edit)
+    (define-key map [up]    'isearch-ring-retreat-edit)
     (define-key map "\M-\t" 'isearch-complete-edit)
-    (define-key map "\C-s" 'isearch-forward-exit-minibuffer)
-    (define-key map "\C-r" 'isearch-reverse-exit-minibuffer)
+    (define-key map "\C-s"  'isearch-forward-exit-minibuffer)
+    (define-key map "\C-r"  'isearch-reverse-exit-minibuffer)
+    (define-key map "\C-f"  'isearch-yank-char-in-minibuffer)
+    (define-key map [right] 'isearch-yank-char-in-minibuffer)
     map)
   "Keymap for editing isearch strings in the minibuffer.")
 
@@ -445,14 +455,14 @@
 The following non-printing keys are bound in `isearch-mode-map'.
 
 Type \\[isearch-delete-char] to cancel last input item from end of search string.
-Type \\[isearch-del-char] to cancel last character from end of search string.
 Type \\[isearch-exit] to exit, leaving point at location found.
 Type LFD (C-j) to match end of line.
 Type \\[isearch-repeat-forward] to search again forward,\
  \\[isearch-repeat-backward] to search again backward.
-Type \\[isearch-yank-char] to yank character from buffer onto end of search\
+Type \\[isearch-yank-word-or-char] to yank word from buffer onto end of search\
  string and search for it.
-Type \\[isearch-yank-word] to yank word from buffer onto end of search\
+Type \\[isearch-del-char] to delete character from end of search string.
+Type \\[isearch-yank-char] to yank char from buffer onto end of search\
  string and search for it.
 Type \\[isearch-yank-line] to yank rest of line onto end of search string\
  and search for it.
@@ -788,7 +798,7 @@
 \\[isearch-ring-retreat-edit] to replace the search string with the previous item in the search ring.
 \\[isearch-complete-edit] to complete the search string using the search ring.
 \\<isearch-mode-map>
-If first char entered is \\[isearch-yank-word], then do word search instead."
+If first char entered is \\[isearch-yank-word-or-char], then do word search instead."
 
   ;; This code is very hairy for several reasons, explained in the code.
   ;; Mainly, isearch-mode must be terminated while editing and then restarted.
@@ -1044,6 +1054,32 @@
   (sit-for 1)
   (isearch-update))
 
+(defun isearch-query-replace ()
+  "Start query-replace with string to replace from last search string."
+  (interactive)
+  (barf-if-buffer-read-only)
+  (let ((case-fold-search isearch-case-fold-search))
+    (isearch-done)
+    (isearch-clean-overlays)
+    (and isearch-forward isearch-other-end (goto-char isearch-other-end))
+    (perform-replace
+     isearch-string
+     (query-replace-read-to isearch-string "Query replace" isearch-regexp)
+     t isearch-regexp isearch-word)))
+
+(defun isearch-query-replace-regexp ()
+  "Start query-replace-regexp with string to replace from last search string."
+  (interactive)
+  (let ((query-replace-interactive t)
+        (case-fold-search isearch-case-fold-search))
+    ;; Put search string into the right ring
+    (setq isearch-regexp t)
+    (isearch-done)
+    (isearch-clean-overlays)
+    (and isearch-forward isearch-other-end (goto-char isearch-other-end))
+    (call-interactively 'query-replace-regexp)))
+
+
 (defun isearch-delete-char ()
   "Discard last input item and move point back.
 If no previous match was done, just beep."
@@ -1053,15 +1089,17 @@
     (isearch-pop-state))
   (isearch-update))
 
-(defun isearch-del-char ()
-  "Discard last character and move point back.
-If there is no previous character, just beep."
-  (interactive)
-  (if (equal isearch-string "")
+(defun isearch-del-char (&optional arg)
+  "Delete character from end of search string and search again.
+If search string is empty, just beep."
+  (interactive "p")
+  (if (= 0 (length isearch-string))
       (ding)
-    (setq isearch-string (substring isearch-string 0 -1)
+    (setq isearch-string (substring isearch-string 0 (- (or arg 1)))
           isearch-message (mapconcat 'isearch-text-char-description
-                                     isearch-string "")))
+                                     isearch-string "")
+          ;; Don't move cursor in reverse search.
+          isearch-yank-flag t))
   (isearch-search-and-update))
 
 (defun isearch-yank-string (string)
@@ -1123,10 +1161,21 @@
 	  (goto-char isearch-other-end))
      (buffer-substring-no-properties (point) (funcall jumpform)))))
 
-(defun isearch-yank-char ()
+(defun isearch-yank-char-in-minibuffer (&optional arg)
+  "Pull next character from buffer into end of search string in minibuffer."
+  (interactive "p")
+  (if (eobp)
+      (insert
+       (save-excursion
+         (set-buffer (cadr (buffer-list)))
+         (buffer-substring-no-properties
+          (point) (progn (forward-char arg) (point)))))
+    (forward-char arg)))
+
+(defun isearch-yank-char (&optional arg)
   "Pull next character from buffer into search string."
-  (interactive)
-  (isearch-yank-internal (lambda () (forward-char 1) (point))))
+  (interactive "p")
+  (isearch-yank-internal (lambda () (forward-char arg) (point))))
 
 (defun isearch-yank-word-or-char ()
   "Pull next character or word from buffer into search string."
@@ -2327,5 +2376,5 @@
 	isearch-case-fold-search case-fold)
   (isearch-search))
 
-;;; arch-tag: 74850515-f7d8-43a6-8a2c-ca90a4c1e675
+;; arch-tag: 74850515-f7d8-43a6-8a2c-ca90a4c1e675
 ;;; isearch.el ends here
--- a/lisp/pcvs-defs.el	Wed Jun 30 06:14:40 2004 +0000
+++ b/lisp/pcvs-defs.el	Tue Jul 06 02:57:15 2004 +0000
@@ -305,6 +305,7 @@
     ("d" "diff" .	cvs-mode-diff)
     ("b" "backup" .	cvs-mode-diff-backup)
     ("h" "head" .	cvs-mode-diff-head)
+    ("r" "repository" .	cvs-mode-diff-repository)
     ("y" "yesterday" .	cvs-mode-diff-yesterday)
     ("v" "vendor" .	cvs-mode-diff-vendor))
   "Keymap for diff-related operations in `cvs-mode'."
--- a/lisp/pcvs.el	Wed Jun 30 06:14:40 2004 +0000
+++ b/lisp/pcvs.el	Tue Jul 06 02:57:15 2004 +0000
@@ -1565,6 +1565,12 @@
   (interactive (list (cvs-flags-query 'cvs-diff-flags "cvs diff flags")))
   (cvs-mode-diff-1 (cons "-rHEAD" flags)))
 
+(defun-cvs-mode (cvs-mode-diff-repository . SIMPLE) (flags)
+  "Diff the files for changes in the repository since last co/update/commit.
+See ``cvs-mode-diff'' for more info."
+  (interactive (list (cvs-flags-query 'cvs-diff-flags "cvs diff flags")))
+  (cvs-mode-diff-1 (cons "-rBASE" (cons "-rHEAD" flags))))
+
 (defun-cvs-mode (cvs-mode-diff-yesterday . SIMPLE) (flags)
   "Diff the selected files against yesterday's head of the current branch.
 See ``cvs-mode-diff'' for more info."
--- a/lisp/progmodes/gdb-ui.el	Wed Jun 30 06:14:40 2004 +0000
+++ b/lisp/progmodes/gdb-ui.el	Tue Jul 06 02:57:15 2004 +0000
@@ -1202,48 +1202,52 @@
   (interactive)
   (save-excursion
     (beginning-of-line 1)
-    (if (not (looking-at "\\([0-9]+\\).*point\\s-*\\S-*\\s-*\\(.\\)"))
-	(error "Not recognized as break/watchpoint line")
-      (gdb-enqueue-input
-       (list
-	(concat
-	 (if (eq ?y (char-after (match-beginning 2)))
-	     (concat gdb-server-prefix "disable ")
-	   (concat gdb-server-prefix "enable "))
-	 (match-string 1) "\n")
-	'ignore)))))
+    (if (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba))
+	    (looking-at "\\([0-9]+\\).*point\\s-*\\S-*\\s-*\\(.\\)")
+	  (looking-at
+      "\\([0-9]+\\)\\s-*\\S-*\\s-*\\S-*\\s-*\\(.\\)\\s-*\\S-*\\s-*\\S-*:[0-9]+"))
+	(gdb-enqueue-input
+	 (list
+	  (concat gdb-server-prefix
+		  (if (eq ?y (char-after (match-beginning 2)))
+		      "disable "
+		    "enable ")
+		  (match-string 1) "\n") 'ignore))
+      (error "Not recognized as break/watchpoint line"))))
 
 (defun gdb-delete-breakpoint ()
   "Delete the breakpoint at current line."
   (interactive)
   (beginning-of-line 1)
-  (if (not (looking-at "\\([0-9]+\\).*point\\s-*\\S-*\\s-*\\(.\\)"))
-      (error "Not recognized as break/watchpoint line")
-    (gdb-enqueue-input
-     (list (concat gdb-server-prefix "delete " (match-string 1) "\n") 'ignore))))
+  (if (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba))
+	  (looking-at "\\([0-9]+\\).*point\\s-*\\S-*\\s-*\\(.\\)")
+	(looking-at
+	 "\\([0-9]+\\)\\s-*\\S-*\\s-*\\S-*\\s-*.\\s-*\\S-*\\s-*\\S-*:[0-9]+"))
+      (gdb-enqueue-input
+       (list
+	(concat gdb-server-prefix "delete " (match-string 1) "\n") 'ignore))
+    (error "Not recognized as break/watchpoint line")))
 
 (defun gdb-goto-breakpoint ()
   "Display the breakpoint location specified at current line."
   (interactive)
   (save-excursion
     (beginning-of-line 1)
-    (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba))
-	(progn
-	  (re-search-forward "in\\s-+\\S-+\\s-+at\\s-+" nil t)
-	  (looking-at "\\(\\S-*\\):\\([0-9]+\\)"))
-    (looking-at
-     "[0-9]*\\s-*\\S-*\\s-*\\S-*\\s-*.\\s-*\\S-*\\s-*\\(\\S-*\\):\\([0-9]+\\)")))
-  (if (match-string 2)
-      (let ((line (match-string 2))
-	    (file (match-string 1)))
-	(save-selected-window
-	  (let* ((buf (find-file-noselect (if (file-exists-p file)
-					      file
-					    (expand-file-name file gdb-cdir))))
-		 (window (gdb-display-buffer buf)))
-		 (with-current-buffer buf
-		   (goto-line (string-to-number line))
-		   (set-window-point window (point))))))))
+    (if (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba))
+	    (looking-at ".*in\\s-+\\S-+\\s-+at\\s-+\\(\\S-*\\):\\([0-9]+\\)")
+	  (looking-at
+     "[0-9]+\\s-*\\S-*\\s-*\\S-*\\s-*.\\s-*\\S-*\\s-*\\(\\S-*\\):\\([0-9]+\\)"))
+	(let ((line (match-string 2))
+	      (file (match-string 1)))
+	  (save-selected-window
+	    (let* ((buf (find-file-noselect (if (file-exists-p file)
+						file
+					      (expand-file-name file gdb-cdir))))
+		   (window (gdb-display-buffer buf)))
+	      (with-current-buffer buf
+		(goto-line (string-to-number line))
+		(set-window-point window (point))))))
+      (error "Not recognized as break/watchpoint line"))))
 
 (defun gdb-mouse-goto-breakpoint (event)
   "Display the breakpoint location that you click on."
--- a/lisp/progmodes/grep.el	Wed Jun 30 06:14:40 2004 +0000
+++ b/lisp/progmodes/grep.el	Tue Jul 06 02:57:15 2004 +0000
@@ -74,6 +74,7 @@
   :version "21.4"
   :group 'grep)
 
+;;;###autoload
 (defcustom grep-command nil
   "The default grep command for \\[grep].
 If the grep program used supports an option to always include file names
@@ -100,6 +101,7 @@
 		 (other :tag "Not Set" auto-detect))
   :group 'grep)
 
+;;;###autoload
 (defcustom grep-find-command nil
   "The default find command for \\[grep-find].
 The default value of this variable is set up by `grep-compute-defaults';
@@ -223,6 +225,7 @@
 Notice that using \\[next-error] or \\[compile-goto-error] modifies
 `complation-last-buffer' rather than `grep-last-buffer'.")
 
+;;;###autoload
 (defvar grep-regexp-alist
   '(("^\\(.+?\\)[:( \t]+\
 \\([0-9]+\\)\\([.:]?\\)\\([0-9]+\\)?\
@@ -258,6 +261,7 @@
    "Additional things to highlight in grep output.
 This gets tacked on the end of the generated expressions.")
 
+;;;###autoload
 (defvar grep-program
   ;; Currently zgrep has trouble.  It runs egrep instead of grep,
   ;; and it doesn't pass along long options right.
@@ -272,10 +276,12 @@
   "The default grep program for `grep-command' and `grep-find-command'.
 This variable's value takes effect when `grep-compute-defaults' is called.")
 
+;;;###autoload
 (defvar find-program "find"
   "The default find program for `grep-find-command'.
 This variable's value takes effect when `grep-compute-defaults' is called.")
 
+;;;###autoload
 (defvar grep-find-use-xargs nil
   "Whether \\[grep-find] uses the `xargs' utility by default.
 
@@ -285,9 +291,12 @@
 This variable's value takes effect when `grep-compute-defaults' is called.")
 
 ;; History of grep commands.
+;;;###autoload
 (defvar grep-history nil)
+;;;###autoload
 (defvar grep-find-history nil)
 
+;;;###autoload
 (defun grep-process-setup ()
   "Setup compilation variables and buffer for `grep'.
 Set up `compilation-exit-message-function' and run `grep-setup-hook'."
@@ -303,6 +312,7 @@
 	   (cons msg code))))
   (run-hooks 'grep-setup-hook))
 
+;;;###autoload
 (defun grep-compute-defaults ()
   (unless (or (not grep-use-null-device) (eq grep-use-null-device t))
     (setq grep-use-null-device
@@ -448,6 +458,7 @@
        grep-regexp-alist))
 
 ;; This is a copy of find-tag-default from etags.el.
+;;;###autoload
 (defun grep-tag-default ()
   (save-excursion
     (while (looking-at "\\sw\\|\\s_")
--- a/lisp/progmodes/python.el	Wed Jun 30 06:14:40 2004 +0000
+++ b/lisp/progmodes/python.el	Tue Jul 06 02:57:15 2004 +0000
@@ -710,16 +710,17 @@
 expressions."
   (beginning-of-line)
   (python-beginning-of-string)
-  (while (python-continuation-line-p)
-    (beginning-of-line)
-    (if (python-backslash-continuation-line-p)
-	(while (python-backslash-continuation-line-p)
-	  (forward-line -1))
-      (python-beginning-of-string)
-      ;; Skip forward out of nested brackets.
-      (condition-case ()		; beware invalid syntax
-	  (progn (backward-up-list (syntax-ppss-depth (syntax-ppss))) t)
-	(error (end-of-line)))))
+  (catch 'foo
+    (while (python-continuation-line-p)
+      (beginning-of-line)
+      (if (python-backslash-continuation-line-p)
+	  (while (python-backslash-continuation-line-p)
+	    (forward-line -1))
+	(python-beginning-of-string)
+	;; Skip forward out of nested brackets.
+	(condition-case ()		; beware invalid syntax
+	    (progn (backward-up-list (syntax-ppss-depth (syntax-ppss))) t)
+	  (error (throw 'foo nil))))))
   (back-to-indentation))
 
 (defun python-end-of-statement ()
--- a/lisp/replace.el	Wed Jun 30 06:14:40 2004 +0000
+++ b/lisp/replace.el	Tue Jul 06 02:57:15 2004 +0000
@@ -1,7 +1,7 @@
 ;;; replace.el --- replace commands for Emacs
 
-;; Copyright (C) 1985, 86, 87, 92, 94, 96, 1997, 2000, 2001, 2002,
-;;   2003, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1987, 1992, 1994, 1996, 1997, 2000, 2001, 2002,
+;;   2003, 2004  Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
 
@@ -36,11 +36,9 @@
 
 (defvar query-replace-history nil)
 
-(defcustom query-replace-interactive nil
+(defvar query-replace-interactive nil
   "Non-nil means `query-replace' uses the last search string.
-That becomes the \"string to replace\"."
-  :type 'boolean
-  :group 'matching)
+That becomes the \"string to replace\".")
 
 (defcustom query-replace-from-history-variable 'query-replace-history
   "History list to use for the FROM argument of `query-replace' commands.
@@ -66,35 +64,56 @@
   :group 'matching
   :version "21.4")
 
-(defun query-replace-read-args (string regexp-flag &optional noerror)
-  (unless noerror
-    (barf-if-buffer-read-only))
-  (let (from to)
-    (if query-replace-interactive
-	(setq from (car (if regexp-flag regexp-search-ring search-ring)))
-      ;; The save-excursion here is in case the user marks and copies
-      ;; a region in order to specify the minibuffer input.
-      ;; That should not clobber the region for the query-replace itself.
-      (save-excursion
-	(setq from (read-from-minibuffer (format "%s: " string)
-					 nil nil nil
-					 query-replace-from-history-variable
-					 nil t)))
-      ;; Warn if user types \n or \t, but don't reject the input.
-      (and regexp-flag
-	   (string-match "\\(\\`\\|[^\\]\\)\\(\\\\\\\\\\)*\\(\\\\[nt]\\)" from)
-	   (let ((match (match-string 3 from)))
-	     (cond
-	      ((string= match "\\n")
-	       (message "Note: `\\n' here doesn't match a newline; to do that, type C-q C-j instead"))
-	      ((string= match "\\t")
-	       (message "Note: `\\t' here doesn't match a tab; to do that, just type TAB")))
-	     (sit-for 2))))
+(defun query-replace-descr (string)
+  (mapconcat 'isearch-text-char-description string ""))
 
-    (save-excursion
-      (setq to (read-from-minibuffer (format "%s %s with: " string from)
-				     nil nil nil
-				     query-replace-to-history-variable from t)))
+(defun query-replace-read-from (string regexp-flag)
+  "Query and return the `from' argument of a query-replace operation.
+The return value can also be a pair (FROM . TO) indicating that the user
+wants to replace FROM with TO."
+  (if query-replace-interactive
+      (car (if regexp-flag regexp-search-ring search-ring))
+    (let* ((lastfrom (car (symbol-value query-replace-from-history-variable)))
+	   (lastto (car (symbol-value query-replace-to-history-variable)))
+	   (from
+	    ;; The save-excursion here is in case the user marks and copies
+	    ;; a region in order to specify the minibuffer input.
+	    ;; That should not clobber the region for the query-replace itself.
+	    (save-excursion
+	      (when (equal lastfrom lastto)
+		;; Typically, this is because the two histlists are shared.
+		(setq lastfrom (cadr (symbol-value
+				      query-replace-from-history-variable))))
+	      (read-from-minibuffer
+	       (if (and lastto lastfrom)
+		   (format "%s (default %s -> %s): " string
+			   (query-replace-descr lastfrom)
+			   (query-replace-descr lastto))
+		 (format "%s: " string))
+	       nil nil nil
+	       query-replace-from-history-variable
+	       nil t))))
+      (if (and (zerop (length from)) lastto lastfrom)
+	  (cons lastfrom lastto)
+	;; Warn if user types \n or \t, but don't reject the input.
+	(and regexp-flag
+	     (string-match "\\(\\`\\|[^\\]\\)\\(\\\\\\\\\\)*\\(\\\\[nt]\\)" from)
+	     (let ((match (match-string 3 from)))
+	       (cond
+		((string= match "\\n")
+		 (message "Note: `\\n' here doesn't match a newline; to do that, type C-q C-j instead"))
+		((string= match "\\t")
+		 (message "Note: `\\t' here doesn't match a tab; to do that, just type TAB")))
+	       (sit-for 2)))
+	from))))
+
+(defun query-replace-read-to (from string regexp-flag)
+  "Query and return the `from' argument of a query-replace operation."
+  (let ((to (save-excursion
+	      (read-from-minibuffer
+	       (format "%s %s with: " string (query-replace-descr from))
+	       nil nil nil
+	       query-replace-to-history-variable from t))))
     (when (and regexp-flag
 	       (string-match "\\(\\`\\|[^\\]\\)\\(\\\\\\\\\\)*\\\\[,#]" to))
       (let (pos list char)
@@ -109,14 +128,19 @@
 		    ((eq char ?\,)
 		     (setq pos (read-from-string to))
 		     (push `(replace-quote ,(car pos)) list)
-		     (setq to (substring
-			       to (+ (cdr pos)
-				     ;; Swallow a space after a symbol
-				     ;; if there is a space.
-				     (if (string-match
-                                          "^[^])\"] "
-                                          (substring to (1- (cdr pos))))
-					 1 0))))))
+		     (let ((end
+			    ;; Swallow a space after a symbol
+			    ;; if there is a space.
+			    (if (and (or (symbolp (car pos))
+					 ;; Swallow a space after 'foo
+					 ;; but not after (quote foo).
+					 (and (eq (car-safe (car pos)) 'quote)
+					      (not (= ?\( (aref to 0)))))
+				     (eq (string-match " " to (cdr pos))
+					 (cdr pos)))
+				(1+ (cdr pos))
+			      (cdr pos))))
+		       (setq to (substring to end)))))
 	      (string-match "\\(\\`\\|[^\\]\\)\\(\\\\\\\\\\)*\\\\[,#]" to)))
 	(setq to (nreverse (delete "" (cons to list)))))
       (replace-match-string-symbols to)
@@ -124,6 +148,14 @@
 		     (if (> (length to) 1)
 			 (cons 'concat to)
 		       (car to)))))
+    to))
+
+(defun query-replace-read-args (string regexp-flag &optional noerror)
+  (unless noerror
+    (barf-if-buffer-read-only))
+  (let* ((from (query-replace-read-from string regexp-flag))
+	 (to (if (consp from) (prog1 (cdr from) (setq from (car from)))
+	       (query-replace-read-to from string regexp-flag))))
     (list from to current-prefix-arg)))
 
 (defun query-replace (from-string to-string &optional delimited start end)
@@ -199,7 +231,7 @@
 followed by a Lisp expression.  Each
 replacement evaluates that expression to compute the replacement
 string.  Inside of that expression, `\\&' is a string denoting the
-whole match as a sting, `\\N' for a partial match, `\\#&' and `\\#N'
+whole match as a string, `\\N' for a partial match, `\\#&' and `\\#N'
 for the whole or a partial match converted to a number with
 `string-to-number', and `\\#' itself for the number of replacements
 done so far (starting with zero).
@@ -255,16 +287,17 @@
 only matches that are surrounded by word boundaries.
 Fourth and fifth arg START and END specify the region to operate on."
   (interactive
-   (let (from to)
-     (if query-replace-interactive
-         (setq from (car regexp-search-ring))
-       (setq from (read-from-minibuffer "Query replace regexp: "
-                                        nil nil nil
-                                        query-replace-from-history-variable
-                                        nil t)))
-     (setq to (list (read-from-minibuffer
-                     (format "Query replace regexp %s with eval: " from)
-                     nil nil t query-replace-to-history-variable from t)))
+   (barf-if-buffer-read-only)
+   (let* ((from
+	   ;; Let-bind the history var to disable the "foo -> bar" default.
+	   ;; Maybe we shouldn't disable this default, but for now I'll
+	   ;; leave it off.  --Stef
+	   (let ((query-replace-to-history-variable nil))
+	     (query-replace-read-from "Query replace regexp" t)))
+	  (to (list (read-from-minibuffer
+		     (format "Query replace regexp %s with eval: "
+			     (query-replace-descr from))
+		     nil nil t query-replace-to-history-variable from t))))
      ;; We make TO a list because replace-match-string-symbols requires one,
      ;; and the user might enter a single token.
      (replace-match-string-symbols to)
@@ -297,17 +330,16 @@
 before rotating to the next.
 Fourth and fifth arg START and END specify the region to operate on."
   (interactive
-   (let (from to)
-     (setq from (if query-replace-interactive
+   (let* ((from (if query-replace-interactive
 		    (car regexp-search-ring)
 		  (read-from-minibuffer "Map query replace (regexp): "
 					nil nil nil
 					'query-replace-history nil t)))
-     (setq to (read-from-minibuffer
+	  (to (read-from-minibuffer
 	       (format "Query replace %s with (space-separated strings): "
-		       from)
+		       (query-replace-descr from))
 	       nil nil nil
-	       'query-replace-history from t))
+	       'query-replace-history from t)))
      (list from to
 	   (and current-prefix-arg
 		(prefix-numeric-value current-prefix-arg))
@@ -748,7 +780,7 @@
 		(read-from-minibuffer
 		 (if default
 		     (format "List lines matching regexp (default `%s'): "
-			     default)
+			     (query-replace-descr default))
 		   "List lines matching regexp: ")
 		 nil
 		 nil
@@ -911,7 +943,6 @@
 	  (let ((matches 0)	;; count of matched lines
 		(lines 1)	;; line count
 		(matchbeg 0)
-		(matchend 0)
 		(origpt nil)
 		(begpt nil)
 		(endpt nil)
@@ -931,8 +962,7 @@
 		  (setq origpt (point))
 		  (when (setq endpt (re-search-forward regexp nil t))
 		    (setq matches (1+ matches)) ;; increment match count
-		    (setq matchbeg (match-beginning 0)
-			  matchend (match-end 0))
+		    (setq matchbeg (match-beginning 0))
 		    (setq begpt (save-excursion
 				  (goto-char matchbeg)
 				  (line-beginning-position)))
@@ -1528,5 +1558,5 @@
 		      (if (facep 'query-replace)
 			  'query-replace 'region)))))
 
-;;; arch-tag: 16b4cd61-fd40-497b-b86f-b667c4cf88e4
+;; arch-tag: 16b4cd61-fd40-497b-b86f-b667c4cf88e4
 ;;; replace.el ends here
--- a/lisp/textmodes/enriched.el	Wed Jun 30 06:14:40 2004 +0000
+++ b/lisp/textmodes/enriched.el	Tue Jul 06 02:57:15 2004 +0000
@@ -282,33 +282,34 @@
 ;;;###autoload
 (defun enriched-encode (from to orig-buf)
   (if enriched-verbose (message "Enriched: encoding document..."))
-  (save-restriction
-    (narrow-to-region from to)
-    (delete-to-left-margin)
-    (unjustify-region)
-    (goto-char from)
-    (format-replace-strings '(("<" . "<<")))
-    (format-insert-annotations
-     (format-annotate-region from (point-max) enriched-translations
-			     'enriched-make-annotation enriched-ignore))
-    (goto-char from)
-    (insert (if (stringp enriched-initial-annotation)
-		enriched-initial-annotation
-	      (save-excursion
-		;; Eval this in the buffer we are annotating.  This
-		;; fixes a bug which was saving incorrect File-Width
-		;; information, since we were looking at local
-		;; variables in the wrong buffer.
-		(if orig-buf (set-buffer orig-buf))
-		(funcall enriched-initial-annotation))))
-    (enriched-map-property-regions 'hard
-      (lambda (v b e)
-	(if (and v (= ?\n (char-after b)))
-	    (progn (goto-char b) (insert "\n"))))
-      (point) nil)
-    (if enriched-verbose (message nil))
-    ;; Return new end.
-    (point-max)))
+  (let ((inhibit-read-only t))
+    (save-restriction
+      (narrow-to-region from to)
+      (delete-to-left-margin)
+      (unjustify-region)
+      (goto-char from)
+      (format-replace-strings '(("<" . "<<")))
+      (format-insert-annotations
+       (format-annotate-region from (point-max) enriched-translations
+			       'enriched-make-annotation enriched-ignore))
+      (goto-char from)
+      (insert (if (stringp enriched-initial-annotation)
+		  enriched-initial-annotation
+		(save-excursion
+		  ;; Eval this in the buffer we are annotating.  This
+		  ;; fixes a bug which was saving incorrect File-Width
+		  ;; information, since we were looking at local
+		  ;; variables in the wrong buffer.
+		  (if orig-buf (set-buffer orig-buf))
+		  (funcall enriched-initial-annotation))))
+      (enriched-map-property-regions 'hard
+	(lambda (v b e)
+	  (if (and v (= ?\n (char-after b)))
+	      (progn (goto-char b) (insert "\n"))))
+	(point) nil)
+      (if enriched-verbose (message nil))
+      ;; Return new end.
+      (point-max))))
 
 (defun enriched-make-annotation (internal-ann positive)
   "Format an annotation INTERNAL-ANN.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/url/ChangeLog	Tue Jul 06 02:57:15 2004 +0000
@@ -0,0 +1,1124 @@
+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): Delete.
+	(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-*): Rename 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): Change 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): Add 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): Rename 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): Fix bad call
+	to string-match instead of match-string (and with reversed
+	arguments even).
+
+	* lisp/url-http.el (url-http-debug): Change 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): Remove 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): Fix 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): Fix 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): Add 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): Move 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): Tweak 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): Fix feature test for xemacs and
+	coding-system-list behaviour.
+
+	* lisp/url-http.el
+	(url-http-chunked-encoding-after-change-function): Add 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): Fix a few
+	off-by-one errors by using (match-end 0) instead of 1.
+	(url-http-chunked-encoding-after-change-function): Add 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-24  William M. Perry  <wmperry@gnu.org>
+
+	* lisp/url.el (url-retrieve-synchronously): Avoid accept-process-output
+	in url-retrieve-synchronously.
+
+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): Add 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): Delete.
+	(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): Rename 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):
+	implement 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): Fix 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): Implement `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): Correct 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): Add 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): Reimplement.
+	(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): Add 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:
+
+;; arch-tag: ac117078-3091-4533-be93-098162ac2926
--- a/lisp/vc-rcs.el	Wed Jun 30 06:14:40 2004 +0000
+++ b/lisp/vc-rcs.el	Tue Jul 06 02:57:15 2004 +0000
@@ -5,7 +5,7 @@
 ;; Author:     FSF (see vc.el for full credits)
 ;; Maintainer: Andre Spiegel <spiegel@gnu.org>
 
-;; $Id: vc-rcs.el,v 1.38 2003/09/01 15:45:17 miles Exp $
+;; $Id$
 
 ;; This file is part of GNU Emacs.
 
@@ -198,10 +198,14 @@
 
 (defun vc-rcs-checkout-model (file)
   "RCS-specific version of `vc-checkout-model'."
-  (vc-rcs-consult-headers file)
-  (or (vc-file-getprop file 'vc-checkout-model)
-      (progn (vc-rcs-fetch-master-state file)
-	     (vc-file-getprop file 'vc-checkout-model))))
+  (let (result)
+    (when vc-consult-headers
+      (vc-file-setprop file 'vc-checkout-model nil)
+      (vc-rcs-consult-headers file)
+      (setq result (vc-file-getprop file 'vc-checkout-model)))
+    (or result
+        (progn (vc-rcs-fetch-master-state file)
+               (vc-file-getprop file 'vc-checkout-model)))))
 
 (defun vc-rcs-workfile-unchanged-p (file)
   "RCS-specific implementation of vc-workfile-unchanged-p."
--- a/lispref/ChangeLog	Wed Jun 30 06:14:40 2004 +0000
+++ b/lispref/ChangeLog	Tue Jul 06 02:57:15 2004 +0000
@@ -1,3 +1,32 @@
+2004-07-06  Thien-Thi Nguyen  <ttn@gnu.org>
+
+	* os.texi: Update copyright.
+	(Session Management): Grammar fix.
+	Clarify which Emacs does the restarting.
+	Use @samp for *scratch* buffer.
+
+2004-07-04  Alan Mackenzie  <acm@muc.de>
+
+	* frames.texi (Input Focus): Add documentation for
+	`select-frame-set-input-focus'.  Replace refs to non-existent
+	`switch-frame' with `select-frame'.  Minor corrections and tidying
+	up of text-only terminal stuff.
+
+2004-07-02  Richard M. Stallman  <rms@gnu.org>
+
+	* files.texi (Saving Buffers): Cleanup write-contents-function.
+	(Magic File Names): Cleanup file-remote-p.
+
+2004-07-02  Kai Grossjohann  <kai@emptydomain.de>
+
+	* files.texi (Magic File Names): `file-remote-p' returns an
+	identifier of the remote system, not just t.
+
+2004-07-02  David Kastrup  <dak@gnu.org>
+
+	* searching.texi (Entire Match Data): Add explanation about new
+	match-data behavior when @var{integers} is non-nil.
+
 2004-06-24  Richard M. Stallman  <rms@gnu.org>
 
 	* commands.texi (Misc Events): Describe usr1-signal, usr2-signal event.
--- a/lispref/files.texi	Wed Jun 30 06:14:40 2004 +0000
+++ b/lispref/files.texi	Tue Jul 06 02:57:15 2004 +0000
@@ -415,17 +415,17 @@
 
 @c Emacs 19 feature
 @defvar write-contents-functions
-This works just like @code{write-file-functions}, but it is intended for
-hooks that pertain to the contents of the file, as opposed to hooks that
-pertain to the file's name or location.  Such hooks are usually set up by
-major modes, as buffer-local bindings for this variable.  If any of the
-functions in this hook returns non-@code{nil}, the file is considered
-already written and the rest are not called and neither are the functions
-in @code{write-file-functions}.
-
-This variable automatically becomes buffer-local whenever it is set;
-switching to a new major mode always resets this variable, but
-calling @code{set-visited-file-name} does not.
+This works just like @code{write-file-functions}, but it is intended
+for hooks that pertain to the buffer's contents, not to the particular
+visited file or its location.  Such hooks are usually set up by major
+modes, as buffer-local bindings for this variable.  This variable
+automatically becomes buffer-local whenever it is set; switching to a
+new major mode always resets this variable, but calling
+@code{set-visited-file-name} does not.
+
+If any of the functions in this hook returns non-@code{nil}, the file
+is considered already written and the rest are not called and neither
+are the functions in @code{write-file-functions}.
 @end defvar
 
 @defopt before-save-hook
@@ -2646,7 +2646,22 @@
 @end defun
 
 @defun file-remote-p filename
-This function returns @code{t} if @var{filename} is a remote file.
+This function tests whether @var{filename} is a remote file.  If
+@var{filename} is local (not remote), the return value is @code{nil}.
+If @var{filename} is indeed remote, the return value is a string that
+identifies the remote system.
+
+This identifier string may include a host name, a user name, and
+characters designating the method used to access the remote system.
+For example, the remote identifier string for the filename
+@code{/ssh:user@@host:/some/file} is @code{/ssh:user@@host:}.
+
+If @code{file-remote-p} returns the same identifier for two different
+filenames, that means they are stored on the same file system and can
+be accessed locally with respect to each other.  This means, for
+example, that it is possible to start a remote process accessing both
+files at the same time.  Implementors of file handlers need to ensure
+this principle is valid.
 @end defun
 
 @defun unhandled-file-name-directory filename
--- a/lispref/frames.texi	Wed Jun 30 06:14:40 2004 +0000
+++ b/lispref/frames.texi	Tue Jul 06 02:57:15 2004 +0000
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2004
 @c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/frames
@@ -996,19 +996,28 @@
 Some window systems and window managers direct keyboard input to the
 window object that the mouse is in; others require explicit clicks or
 commands to @dfn{shift the focus} to various window objects.  Either
-way, Emacs automatically keeps track of which frame has the focus.
+way, Emacs automatically keeps track of which frame has the focus.  To
+switch to a different frame from a lisp function, call
+@code{select-frame-set-input-focus}.
 
 Lisp programs can also switch frames ``temporarily'' by calling the
 function @code{select-frame}.  This does not alter the window system's
 concept of focus; rather, it escapes from the window manager's control
 until that control is somehow reasserted.
 
-When using a text-only terminal, only the selected terminal frame is
-actually displayed on the terminal.  @code{switch-frame} is the only way
-to switch frames, and the change lasts until overridden by a subsequent
-call to @code{switch-frame}.  Each terminal screen except for the
-initial one has a number, and the number of the selected frame appears
-in the mode line before the buffer name (@pxref{Mode Line Variables}).
+When using a text-only terminal, only one frame can be displayed at a
+time on the terminal, so @code{select-frame} actually displays the
+newly selected frame.  This frame remains displayed until a subsequent
+call to @code{select-frame} or @code{select-frame-set-input-focus}.
+Each terminal frame has a number which appears in the mode line before
+the buffer name (@pxref{Mode Line Variables}).
+
+@defun select-frame-set-input-focus frame
+This function makes @var{frame} the selected frame, raises it (should
+it happen to be obscured by other frames) and tries to give it the X
+server's focus.  On a text-only terminal, the new frame gets displayed
+on the entire terminal screen.
+@end defun
 
 @c ??? This is not yet implemented properly.
 @defun select-frame frame
--- a/lispref/os.texi	Wed Jun 30 06:14:40 2004 +0000
+++ b/lispref/os.texi	Tue Jul 06 02:57:15 2004 +0000
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2004
 @c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/os
@@ -2062,16 +2062,16 @@
 @code{emacs-save-session-functions}.  Each function in this hook is
 called when the session manager tells Emacs that the window system is
 shutting down.  The functions are called with the current buffer set
-to a temporary buffer.  Each functions can use @code{insert} to add
+to a temporary buffer.  Each function can use @code{insert} to add
 Lisp code to this buffer.  At the end, Emacs saves the buffer in a
-file that Emacs will load in order to restart the saved session.
+file that another Emacs will later load in order to restart the saved session.
 
 If a function in @code{emacs-save-session-functions} returns
 non-@code{nil}, Emacs tells the session manager to cancel the
 shutdown.
 @end defvar
 
-Here is an example that just inserts some text into *scratch* when
+Here is an example that just inserts some text into @samp{*scratch*} when
 Emacs is restarted by the session manager.
 
 @example
--- a/lispref/searching.texi	Wed Jun 30 06:14:40 2004 +0000
+++ b/lispref/searching.texi	Tue Jul 06 02:57:15 2004 +0000
@@ -1459,8 +1459,11 @@
 All the elements are markers or @code{nil} if matching was done on a
 buffer and all are integers or @code{nil} if matching was done on a
 string with @code{string-match}.   If @var{integers} is
-non-@code{nil}, then all elements are integers or @code{nil}, even if
-matching was done on a buffer.  Also, @code{match-beginning} and
+non-@code{nil}, then the elements are integers or @code{nil}, even if
+matching was done on a buffer.  In that case, the buffer itself is
+appended as an additional element at the end of the list
+to facilitate complete restoration of the match data.  Also,
+@code{match-beginning} and
 @code{match-end} always return integers or @code{nil}.
 
 If @var{reuse} is non-@code{nil}, it should be a list.  In that case,
--- a/man/ChangeLog	Wed Jun 30 06:14:40 2004 +0000
+++ b/man/ChangeLog	Tue Jul 06 02:57:15 2004 +0000
@@ -1,3 +1,16 @@
+2004-07-02  Juri Linkov  <juri@jurta.org>
+
+	* pcl-cvs.texi (Viewing differences): Add `d r'.
+
+2004-07-01  Juri Linkov  <juri@jurta.org>
+
+	* search.texi (Incremental Search): Add C-M-w, C-M-y, M-%, C-M-%, M-e.
+	(Regexp Search): Add M-r.
+
+2004-06-30  Luc Teirlinck  <teirllm@auburn.edu>
+
+	* makefile.w32-in (EMACSSOURCES): Remove emacs-xtra.
+
 2004-06-29  Jesper Harder  <harder@ifa.au.dk>
 
 	* ses.texi, viper.texi, search.texi, flymake.texi, faq.texi:
--- a/man/makefile.w32-in	Wed Jun 30 06:14:40 2004 +0000
+++ b/man/makefile.w32-in	Tue Jul 06 02:57:15 2004 +0000
@@ -67,7 +67,6 @@
 
 EMACSSOURCES= \
 	$(srcdir)/emacs.texi \
-	$(srcdir)/emacs-xtra.texi \
 	$(srcdir)/doclicense.texi \
 	$(srcdir)/screen.texi \
 	$(srcdir)/commands.texi \
--- a/man/pcl-cvs.texi	Wed Jun 30 06:14:40 2004 +0000
+++ b/man/pcl-cvs.texi	Tue Jul 06 02:57:15 2004 +0000
@@ -1025,11 +1025,15 @@
 @kindex =@r{--run @samp{cvs diff}}
 @kindex db@r{--diff against base version}
 @kindex dh@r{--diff against head of repository}
+@kindex dr@r{--diff between base and head of repository}
 @kindex dv@r{--diff against vendor branch}
+@kindex dy@r{--diff against yesterday's head}
 @findex cvs-mode-diff
 @findex cvs-mode-diff-backup
 @findex cvs-mode-diff-head
+@findex cvs-mode-diff-repository
 @findex cvs-mode-diff-vendor
+@findex cvs-mode-diff-yesterday
 @vindex cvs-invert-ignore-marks@r{ (variable)}
 
 @table @kbd
@@ -1053,6 +1057,13 @@
 revision in the repository (the most recent version on the current
 branch) (@code{cvs-mode-diff-head}).@refill
 
+@item d r
+Display a @samp{cvs diff} between the base revision of the selected
+files and the head revision in the repository.  This displays the
+changes anyone has committed to the repository since you last executed
+"checkout", "update" or "commit".
+(@code{cvs-mode-diff-repository}).@refill
+
 @item d v
 Display a @samp{cvs diff} between the selected files and the head
 revision of the vendor branch in the repository.
--- a/man/search.texi	Wed Jun 30 06:14:40 2004 +0000
+++ b/man/search.texi	Tue Jul 06 02:57:15 2004 +0000
@@ -78,7 +78,7 @@
 @key{RET} is necessary only if the next command you want to type is a
 printing character, @key{DEL}, @key{RET}, or another character that is
 special within searches (@kbd{C-q}, @kbd{C-w}, @kbd{C-r}, @kbd{C-s},
-@kbd{C-y}, @kbd{M-y}, @kbd{M-r}, @kbd{M-s}, and some other
+@kbd{C-y}, @kbd{M-y}, @kbd{M-r}, @kbd{M-c}, @kbd{M-e}, and some other
 meta-characters).
 
   Sometimes you search for @samp{FOO} and find one, but not the one you
@@ -95,7 +95,9 @@
   To reuse earlier search strings, use the @dfn{search ring}.  The
 commands @kbd{M-p} and @kbd{M-n} move through the ring to pick a search
 string to reuse.  These commands leave the selected search ring element
-in the minibuffer, where you can edit it.  Type @kbd{C-s} or @kbd{C-r}
+in the minibuffer, where you can edit it.  To edit the current search
+string in the minibuffer without replacing it with items from the
+search ring, type @kbd{M-e}.  Type @kbd{C-s} or @kbd{C-r}
 to terminate editing the string and search for it.
 
   If your string is not found at all, the echo area says @samp{Failing
@@ -181,7 +183,7 @@
 backward search finds matches that are entirely before the starting
 point, just as a forward search finds matches that begin after it.
 
-  The characters @kbd{C-y} and @kbd{C-w} can be used in incremental
+  The characters @kbd{C-w} and @kbd{C-y} can be used in incremental
 search to grab text from the buffer into the search string.  This
 makes it convenient to search for another occurrence of text at point.
 @kbd{C-w} copies the character or word after point as part of the
@@ -195,6 +197,14 @@
 convert the text they copy to lower case if the search is currently
 not case-sensitive; this is so the search remains case-insensitive.
 
+  @kbd{C-M-w} and @kbd{C-M-y} modify the search string by only one
+character at a time: @kbd{C-M-w} deletes the last character from the
+search string and @kbd{C-M-y} copies the character after point to the
+end of the search string.  An alternative method to add the character
+after point into the search string is to enter the minibuffer by
+@kbd{M-e} and to type @kbd{C-f} at the end of the search string in the
+minibuffer.
+
   The character @kbd{M-y} copies text from the kill ring into the search
 string.  It uses the same text that @kbd{C-y} as a command would yank.
 @kbd{Mouse-2} in the echo area does the same.
@@ -205,6 +215,11 @@
 there.  In Transient Mark mode, incremental search sets the mark without
 activating it, and does so only if the mark is not already active.
 
+  @kbd{M-%} or @kbd{C-M-%} exits the incremental search and starts an
+interactive command @code{query-replace} or @code{query-replace-regexp}
+with the last search string inserted in the minibuffer as initial input
+for the string to replace.
+
 @cindex lazy search highlighting
 @vindex isearch-lazy-highlight
   When you pause for a little while during incremental search, it
@@ -371,14 +386,16 @@
 @kindex C-M-r
 @findex isearch-backward-regexp
   Incremental search for a regexp is done by typing @kbd{C-M-s}
-(@code{isearch-forward-regexp}), or by invoking @kbd{C-s} with a
-prefix argument (whose value does not matter).  This command reads a
+(@code{isearch-forward-regexp}), by invoking @kbd{C-s} with a
+prefix argument (whose value does not matter), or by typing @kbd{M-r}
+within a forward incremental search.  This command reads a
 search string incrementally just like @kbd{C-s}, but it treats the
 search string as a regexp rather than looking for an exact match
 against the text in the buffer.  Each time you add text to the search
 string, you make the regexp longer, and the new regexp is searched
 for.  To search backward for a regexp, use @kbd{C-M-r}
-(@code{isearch-backward-regexp}), or @kbd{C-r} with a prefix argument.
+(@code{isearch-backward-regexp}), @kbd{C-r} with a prefix argument,
+or @kbd{M-r} within a backward incremental search.
 
   All of the control characters that do special things within an
 ordinary incremental search have the same function in incremental regexp
@@ -925,7 +942,7 @@
 
   Global search-and-replace operations are not needed often in Emacs,
 but they are available.  In addition to the simple @kbd{M-x
-replace-string} command which is like that found in most editors,
+replace-string} command which replaces all occurrences,
 there is a @kbd{M-x query-replace} command which finds each occurrence
 of the pattern and asks you whether to replace it.
 
--- a/src/ChangeLog	Wed Jun 30 06:14:40 2004 +0000
+++ b/src/ChangeLog	Tue Jul 06 02:57:15 2004 +0000
@@ -1,11 +1,64 @@
+2004-07-06  John Paul Wallington  <jpw@gnu.org>
+
+	* eval.c (Fdefmacro): Signal an error if NAME is not a symbol.
+
+2004-07-05  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
+
+	* macterm.c (mac_initialize_display_info): Use CGGetActiveDisplayList
+	instead of CGMainDisplayID (only in OSX 10.2 and later).
+
+2004-07-04  John Paul Wallington  <jpw@gnu.org>
+
+	* fileio.c (read_file_name_completion_ignore_case): New variable.
+	(syms_of_fileio): Declare and initialise it.
+	(Fread_file_name): Bind `completion-ignore-case' to respect it.
+
+2004-07-03  Eli Zaretskii  <eliz@gnu.org>
+
+	* msdos.c (dos_rawgetc): Use make_number to produce Lisp objects
+	for event.x and event.y.
+
+2004-07-01  Kenichi Handa  <handa@m17n.org>
+
+	* w32select.c (Fw32_set_clipboard_data): Update `nbytes' correctly
+	after getting a new string by pre-write-conversion.
+
+2004-06-30  Stefan  <monnier@iro.umontreal.ca>
+
+	* xterm.c (x_detect_focus_change): Remove unused var `nr_events'.
+	(x_calc_absolute_position): Remove unused var `child'.
+
+	* xfaces.c (x_supports_face_attributes_p)
+	(Fdisplay_supports_face_attributes_p): YAILOM.
+	(tty_supports_face_attributes_p): Remove unused var `i'.
+
+	* syntax.c (skip_chars): Remove unused labels fwd_unibyte_ok and
+	back_unibyte_ok.
+
+	* search.c (match_limit, Fmatch_data, Fset_match_data): YAILOM.
+
+	* fontset.c (Fset_fontset_font): Remove unused vars `family' and `registry'.
+
+	* Makefile.in (${etc}DOC): Fix file name of make-docfile.
+
+2004-06-30  Andreas Schwab  <schwab@suse.de>
+
+	* image.c (CHECK_LIB_AVAILABLE): Add third parameter LIBRARIES.
+	(Finit_image_library): Pass LIBRARIES through to
+	CHECK_LIB_AVAILABLE.  Declare parameters.  Doc fix.
+	(lookup_image_type): Pass Qnil as second argument to
+	Finit_image_library.
+
+	* lisp.h: Declare Finit_image_library.
+
 2004-06-29  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
-        
-        * macterm.c (do_window_activate, do_window_deactivate): Remove.
-        (XTread_socket): Send mouse button events to the toolbox
-        dispatcher even when the mouse is grabbed.  Don't process window
-        activate events for non-Emacs windows.  Replace function calls to
-        do_window_activate and do_window_deactivate with their contents.
-        Reset mouse grabbing status when a window is deactivated.
+
+	* macterm.c (do_window_activate, do_window_deactivate): Remove.
+	(XTread_socket): Send mouse button events to the toolbox
+	dispatcher even when the mouse is grabbed.  Don't process window
+	activate events for non-Emacs windows.	Replace function calls to
+	do_window_activate and do_window_deactivate with their contents.
+	Reset mouse grabbing status when a window is deactivated.
 
 2004-06-29  Steven Tamm  <steventamm@mac.com>
 
@@ -60,8 +113,7 @@
 	a buffer, add the buffer as last element to the match data.
 	(Fset_match_data): If an additional element of the match-data is a
 	buffer, restore it to last_thing_searched.
-	(save_search_regs): Save last_thing_searched as part of the match
-	data.
+	(save_search_regs): Save last_thing_searched as part of the match data.
 	(restore_match_data): Restore it again.
 
 2004-06-23  Luc Teirlinck  <teirllm@auburn.edu>
@@ -187,7 +239,7 @@
 2004-06-14  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
 
 	* gtkutil.c (xg_get_image_for_pixmap): New function.
-	(xg_get_gdk_pixmap_and_mask): Removed.
+	(xg_get_gdk_pixmap_and_mask): Remove.
 	(update_frame_tool_bar): Call xg_get_image_for_pixmap instead of
 	xg_get_gdk_pixmap_and_mask.
 
@@ -208,8 +260,7 @@
 	list of possible filenames.
 	(init_xpm_functions, init_png_functions, init_jpeg_functions)
 	(init_tiff_functions, init_gif_functions): Use `w32_delayed_load'.
-	(CHECK_LIB_AVAILABLE): Call `define_image_library' with new
-	argument.
+	(CHECK_LIB_AVAILABLE): Call `define_image_library' with new argument.
 	(Finit_image_library): New function, extracted from `init_image'.
 	Try to initialize an image library on demand and cache whether we
 	were successful or not.
@@ -333,7 +384,7 @@
 	(merge_face_ref, face_at_buffer_position, face_at_string_position):
 	Use `merge_named_face'.
 	(merge_face_inheritance): Function removed.
-	(merge_face_ref): Renamed from `merge_face_vector_with_property'.
+	(merge_face_ref): Rename from `merge_face_vector_with_property'.
 	Add new `err_msgs' and `named_merge_points' args.  Return error
 	status.  Only print error messages if ERR_MSGS is true.  Don't try to
 	do :inherit attribute validation.
@@ -393,8 +444,8 @@
 
 	* xfaces.c (x_supports_face_attributes_p): Make this function
 	conditional on HAVE_WINDOW_SYSTEM.
-	(Fdisplay_supports_face_attributes_p) [HAVE_WINDOW_SYSTEM]: Don't
-	call x_supports_face_attributes_p if it was not compiled in.
+	(Fdisplay_supports_face_attributes_p) [HAVE_WINDOW_SYSTEM]:
+	Don't call x_supports_face_attributes_p if it was not compiled in.
 
 2004-06-04  Miles Bader  <miles@gnu.org>
 
@@ -425,6 +476,8 @@
 
 2004-06-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 
+	* eval.c (Fcondition_case): Fix usage.  Simplify.
+
 	* mem-limits.h (EXCEEDS_LISP_PTR) [USE_LSB_TAG]: Never true.
 
 2004-05-29  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
@@ -433,8 +486,7 @@
 	[MAC_OSX]: Don't include QuickTime/QuickTime.h.
 	[!MAC_OSX]: Don't include alloca.h, Windows.h, Gestalt.h, or
 	TextUtils.h.
-	(Fx_create_frame): Sync with xfns.c.  Initialize cursor
-	descriptors.
+	(Fx_create_frame): Sync with xfns.c.  Initialize cursor descriptors.
 	(Fx_display_mm_height, Fx_display_mm_width): Calculate length from
 	display height/width.
 	(compute_tip_xy, Vx_max_tooltip_size): Declare.
@@ -445,8 +497,7 @@
 
 	* macgui.h [!MAC_OSX]: Include Gestalt.h.
 	(Cursor, No_Cursor): New defines.
-	[!TARGET_API_MAC_CARBON] (SetPortWindowPort): New compatibility
-	macro.
+	[!TARGET_API_MAC_CARBON] (SetPortWindowPort): New compatibility macro.
 	[!TARGET_API_MAC_CARBON] (arrow_cursor): Declare.
 
 	* macmenu.c (mac_menu_show, mac_dialog): Use SetPortWindowPort.
@@ -474,11 +525,9 @@
 	(x_scroll_bar_handle_click): Set `(PORTION . WHOLE)' part in a
 	scroll-bar click event.
 	(mac_define_frame_cursor): Change the pointer shape.
-	(x_free_frame_resources): Reset tip_window to NULL when it is
-	disposed.
+	(x_free_frame_resources): Reset tip_window to NULL when it is disposed.
 	[!TARGET_API_MAC_CARBON] (arrow_cursor): New variable.
-	[!TARGET_API_MAC_CARBON] (do_init_managers): Initialize
-	arrow_cursor.
+	[!TARGET_API_MAC_CARBON] (do_init_managers): Initialize arrow_cursor.
 	(do_window_update): Don't do anything if the updated window is the
 	tooltip window.
 	(do_mouse_moved): Handle mouse movement events here (previously in
@@ -486,8 +535,8 @@
 	dpyinfo->mouse_face_hidden is set.
 	(do_os_event, do_events): Remove (now in XTread_socket).
 	(XTread_socket): Immediately return if interrupt_input_blocked.
-	Loop until all the events in the queue are processed.  Rearrange
-	codes for mouse grabbing.  Add tooltip support.  Include the
+	Loop until all the events in the queue are processed.
+	Rearrange codes for mouse grabbing.  Add tooltip support.  Include the
 	contents of do_os_event and do_events.  Remove mouse movement
 	handling (now in do_mouse_moved).  Add the case where
 	Vmouse_highlight has an integer value.
@@ -496,8 +545,8 @@
 	excess initializations.
 	(make_mac_terminal_frame): Previous initializations in
 	make_mac_frame are moved here.
-	(mac_initialize_display_info): Initialize
-	dpyinfo->mouse_face_overlay and dpyinfo->mouse_face_hidden.
+	(mac_initialize_display_info):
+	Initialize dpyinfo->mouse_face_overlay and dpyinfo->mouse_face_hidden.
 
 	* xdisp.c [MAC_OS] (No_Cursor): Remove variable.
 	(define_frame_cursor1): Don't treat HAVE_CARBON as a special case.
--- a/src/Makefile.in	Wed Jun 30 06:14:40 2004 +0000
+++ b/src/Makefile.in	Tue Jul 06 02:57:15 2004 +0000
@@ -910,7 +910,7 @@
    for the first time, this prevents any variation between configurations
    in the contents of the DOC file.
    Likewise for ${SOME_MACHINE_LISP}.  */
-${etc}DOC: ${libsrc}make-docfile ${obj} ${shortlisp} ${SOME_MACHINE_LISP}
+${etc}DOC: ${libsrc}make-docfile${EXEEXT} ${obj} ${shortlisp} ${SOME_MACHINE_LISP}
 	-rm -f ${etc}DOC
 	${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
 	${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp}
--- a/src/eval.c	Wed Jun 30 06:14:40 2004 +0000
+++ b/src/eval.c	Tue Jul 06 02:57:15 2004 +0000
@@ -657,6 +657,7 @@
   Lisp_Object lambda_list, doc, tail;
 
   fn_name = Fcar (args);
+  CHECK_SYMBOL (fn_name);
   lambda_list = Fcar (Fcdr (args));
   tail = Fcdr (Fcdr (args));
 
--- a/src/fileio.c	Wed Jun 30 06:14:40 2004 +0000
+++ b/src/fileio.c	Tue Jul 06 02:57:15 2004 +0000
@@ -206,6 +206,9 @@
 /* Current predicate used by read_file_name_internal.  */
 Lisp_Object Vread_file_name_predicate;
 
+/* Nonzero means completion ignores case when reading file name.  */
+int read_file_name_completion_ignore_case;
+
 /* Nonzero means, when reading a filename in the minibuffer,
  start out by inserting the default directory into the minibuffer. */
 int insert_default_directory;
@@ -6197,10 +6200,8 @@
     }
 
   count = SPECPDL_INDEX ();
-#if defined VMS || defined DOS_NT || defined MAC_OSX
-  specbind (intern ("completion-ignore-case"), Qt);
-#endif
-
+  specbind (intern ("completion-ignore-case"),
+	    read_file_name_completion_ignore_case ? Qt : Qnil);
   specbind (intern ("minibuffer-completing-file-name"), Qt);
   specbind (intern ("read-file-name-predicate"),
 	    (NILP (predicate) ? Qfile_exists_p : predicate));
@@ -6436,6 +6437,14 @@
 	       doc: /* Current predicate used by `read-file-name-internal'.  */);
   Vread_file_name_predicate = Qnil;
 
+  DEFVAR_BOOL ("read-file-name-completion-ignore-case", &read_file_name_completion_ignore_case,
+	       doc: /* *Non-nil means when reading a file name completion ignores case.  */);
+#if defined VMS || defined DOS_NT || defined MAC_OS
+  read_file_name_completion_ignore_case = 1;
+#else
+  read_file_name_completion_ignore_case = 0;
+#endif
+
   DEFVAR_BOOL ("insert-default-directory", &insert_default_directory,
 	       doc: /* *Non-nil means when reading a filename start with default dir in minibuffer.
 If the initial minibuffer contents are non-empty, you can usually
--- a/src/fontset.c	Wed Jun 30 06:14:40 2004 +0000
+++ b/src/fontset.c	Tue Jul 06 02:57:15 2004 +0000
@@ -1,4 +1,5 @@
 /* Fontset handler.
+   Copyright (C) 2004  Free Software Foundation, Inc.
    Copyright (C) 1995, 1997, 2000 Electrotechnical Laboratory, JAPAN.
      Licensed to the Free Software Foundation.
    Copyright (C) 2003
--- a/src/image.c	Wed Jun 30 06:14:40 2004 +0000
+++ b/src/image.c	Tue Jul 06 02:57:15 2004 +0000
@@ -675,7 +675,7 @@
       success = Qt;
     }
 
-  CACHE_IMAGE_TYPE(*type->type, success);
+  CACHE_IMAGE_TYPE (*type->type, success);
   return success;
 }
 
@@ -690,7 +690,7 @@
   struct image_type *type;
 
   /* We must initialize the image-type if it hasn't been already.  */
-  if (NILP (Finit_image_library (symbol)))
+  if (NILP (Finit_image_library (symbol, Qnil)))
     return 0;			/* unimplemented */
 
   for (type = image_types; type; type = type->next)
@@ -7927,10 +7927,10 @@
 #ifdef HAVE_NTGUI
 /* Image types that rely on external libraries are loaded dynamically
    if the library is available.  */
-#define CHECK_LIB_AVAILABLE(image_type, init_lib_fn) \
+#define CHECK_LIB_AVAILABLE(image_type, init_lib_fn, libraries) \
   define_image_type (image_type, init_lib_fn (libraries))
 #else
-#define CHECK_LIB_AVAILABLE(image_type, init_lib_fn) \
+#define CHECK_LIB_AVAILABLE(image_type, init_lib_fn, libraries) \
   define_image_type (image_type, TRUE)
 #endif /* HAVE_NTGUI */
 
@@ -7940,8 +7940,9 @@
 
 Image types pbm and xbm are prebuilt; other types are loaded here.
 Libraries to load are specified in alist LIBRARIES (usually, the value
-of `image-library-alist', which see.  */)
+of `image-library-alist', which see).  */)
   (type, libraries)
+  Lisp_Object type, libraries;
 {
   Lisp_Object tested;
 
@@ -7952,36 +7953,36 @@
 
 #if defined (HAVE_XPM) || defined (MAC_OS)
   if (EQ (type, Qxpm))
-    return CHECK_LIB_AVAILABLE(&xpm_type, init_xpm_functions);
+    return CHECK_LIB_AVAILABLE (&xpm_type, init_xpm_functions, libraries);
 #endif
 
 #if defined (HAVE_JPEG) || defined (MAC_OS)
   if (EQ (type, Qjpeg))
-    return CHECK_LIB_AVAILABLE(&jpeg_type, init_jpeg_functions);
+    return CHECK_LIB_AVAILABLE (&jpeg_type, init_jpeg_functions, libraries);
 #endif
 
 #if defined (HAVE_TIFF) || defined (MAC_OS)
   if (EQ (type, Qtiff))
-    return CHECK_LIB_AVAILABLE(&tiff_type, init_tiff_functions);
+    return CHECK_LIB_AVAILABLE (&tiff_type, init_tiff_functions, libraries);
 #endif
 
 #if defined (HAVE_GIF) || defined (MAC_OS)
   if (EQ (type, Qgif))
-    return CHECK_LIB_AVAILABLE(&gif_type, init_gif_functions);
+    return CHECK_LIB_AVAILABLE (&gif_type, init_gif_functions, libraries);
 #endif
 
 #if defined (HAVE_PNG) || defined (MAC_OS)
   if (EQ (type, Qpng))
-    return CHECK_LIB_AVAILABLE(&png_type, init_png_functions);
+    return CHECK_LIB_AVAILABLE (&png_type, init_png_functions, libraries);
 #endif
 
 #ifdef HAVE_GHOSTSCRIPT
   if (EQ (type, Qpostscript))
-    return CHECK_LIB_AVAILABLE(&gs_type, init_gs_functions);
+    return CHECK_LIB_AVAILABLE (&gs_type, init_gs_functions, libraries);
 #endif
 
   /* If the type is not recognized, avoid testing it ever again.  */
-  CACHE_IMAGE_TYPE(type, Qnil);
+  CACHE_IMAGE_TYPE (type, Qnil);
   return Qnil;
 }
 
--- a/src/lisp.h	Wed Jun 30 06:14:40 2004 +0000
+++ b/src/lisp.h	Tue Jul 06 02:57:15 2004 +0000
@@ -2348,6 +2348,7 @@
 extern void init_fringe_once P_ ((void));
 
 /* Defined in image.c */
+EXFUN (Finit_image_library, 2);
 extern void syms_of_image P_ ((void));
 extern void init_image P_ ((void));
 
--- a/src/macterm.c	Wed Jun 30 06:14:40 2004 +0000
+++ b/src/macterm.c	Tue Jul 06 02:57:15 2004 +0000
@@ -8854,8 +8854,21 @@
   dpyinfo->color_p = TestDeviceAttribute (main_device_handle, gdDevType);
 #ifdef MAC_OSX
   /* HasDepth returns true if it is possible to have a 32 bit display,
-     but this may not be what is actually used.  Mac OSX can do better.  */
-  dpyinfo->n_planes = CGDisplayBitsPerPixel (CGMainDisplayID ());
+     but this may not be what is actually used.  Mac OSX can do better.
+     CGMainDisplayID is only available on OSX 10.2 and higher, but the
+     header for CGGetActiveDisplayList says that the first display returned
+     is the active one, so we use that.  */
+  {
+    CGDirectDisplayID disp_id[1];
+    CGDisplayCount disp_count;
+    CGDisplayErr error_code;
+
+    error_code = CGGetActiveDisplayList (1, disp_id, &disp_count);
+    if (error_code != 0)
+      error ("No display found, CGGetActiveDisplayList error %d", error_code);
+
+    dpyinfo->n_planes = CGDisplayBitsPerPixel (disp_id[0]);
+  }
 #else
   for (dpyinfo->n_planes = 32; dpyinfo->n_planes > 0; dpyinfo->n_planes >>= 1)
     if (HasDepth (main_device_handle, dpyinfo->n_planes,
--- a/src/msdos.c	Wed Jun 30 06:14:40 2004 +0000
+++ b/src/msdos.c	Tue Jul 06 02:57:15 2004 +0000
@@ -3456,8 +3456,8 @@
 		event.code = button_num;
 		event.modifiers = dos_get_modifiers (0)
 		  | (press ? down_modifier : up_modifier);
-		event.x = x;
-		event.y = y;
+		event.x = make_number (x);
+		event.y = make_number (y);
 		event.frame_or_window = selected_frame;
 		event.arg = Qnil;
 		event.timestamp = event_timestamp ();
--- a/src/search.c	Wed Jun 30 06:14:40 2004 +0000
+++ b/src/search.c	Tue Jul 06 02:57:15 2004 +0000
@@ -1,5 +1,6 @@
 /* String search routines for GNU Emacs.
-   Copyright (C) 1985, 86,87,93,94,97,98, 1999 Free Software Foundation, Inc.
+   Copyright (C) 1985, 86,87,93,94,97,98, 1999, 2004
+             Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -2582,7 +2583,7 @@
   CHECK_NUMBER (num);
   n = XINT (num);
   if (n < 0)
-    args_out_of_range (num, 0);
+    args_out_of_range (num, make_number (0));
   if (search_regs.num_regs <= 0)
     error ("No match data, because no search succeeded");
   if (n >= search_regs.num_regs
@@ -2682,10 +2683,9 @@
 	data[2 * i] = data [2 * i + 1] = Qnil;
     }
 
-  if (BUFFERP(last_thing_searched)
-      && ! NILP (integers))
+  if (BUFFERP (last_thing_searched) && !NILP (integers))
     {
-      XSETBUFFER(data[len], last_thing_searched);
+      data[len] = last_thing_searched;
       len++;
     }
 
@@ -2765,9 +2765,9 @@
     for (i = 0;; i++)
       {
 	marker = Fcar (list);
-	if (BUFFERP(marker))
+	if (BUFFERP (marker))
 	  {
-	    XSETBUFFER(last_thing_searched, marker);
+	    last_thing_searched = marker;
 	    break;
 	  }
 	if (i >= length)
--- a/src/w32select.c	Wed Jun 30 06:14:40 2004 +0000
+++ b/src/w32select.c	Tue Jul 06 02:57:15 2004 +0000
@@ -130,6 +130,8 @@
 
   BLOCK_INPUT;
 
+  /* Include the terminating NULL character in the source of
+     conversion.  */
   nbytes = SBYTES (string) + 1;
   src = SDATA (string);
   dst = src;
--- a/src/xfaces.c	Wed Jun 30 06:14:40 2004 +0000
+++ b/src/xfaces.c	Tue Jul 06 02:57:15 2004 +0000
@@ -5986,7 +5986,7 @@
       face = FACE_FROM_ID (f, face_id);
 
       if (! face)
-	signal_error ("cannot make face", 0);
+	error ("cannot make face");
 
       /* If the font is the same, then not supported.  */
       if (face->font == def_face->font)
@@ -6021,7 +6021,7 @@
      Lisp_Object *attrs;
      struct face *def_face;
 {
-  int weight, i;
+  int weight;
   Lisp_Object val, fg, bg;
   XColor fg_tty_color, fg_std_color;
   XColor bg_tty_color, bg_std_color;
@@ -6243,7 +6243,7 @@
   if (def_face == NULL)
     {
       if (! realize_basic_faces (f))
-	signal_error ("Cannot realize default face", 0);
+	error ("Cannot realize default face");
       def_face = FACE_FROM_ID (f, DEFAULT_FACE_ID);
     }
 
--- a/src/xterm.c	Wed Jun 30 06:14:40 2004 +0000
+++ b/src/xterm.c	Tue Jul 06 02:57:15 2004 +0000
@@ -3265,7 +3265,6 @@
      struct input_event *bufp;
 {
   struct frame *frame;
-  int nr_events = 0;
 
   frame = x_any_window_to_frame (dpyinfo, event->xany.window);
   if (! frame)
@@ -8223,7 +8222,6 @@
 x_calc_absolute_position (f)
      struct frame *f;
 {
-  Window child;
   int win_x = 0, win_y = 0;
   int flags = f->size_hint_flags;