aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaroly Lorentey2004-07-03 17:01:39 +0000
committerKaroly Lorentey2004-07-03 17:01:39 +0000
commit76e9cc50019f98e12f342574ba0de1eca6631767 (patch)
tree4d42c708429ab4b564466937f9c235dba2f763fb
parent69deab57ea8ab5e3bc1cfb80027341aa0451362b (diff)
parent1e118124a8e4f8e0a0d4ceb7940b11087e3b94e2 (diff)
downloademacs-76e9cc50019f98e12f342574ba0de1eca6631767.tar.gz
emacs-76e9cc50019f98e12f342574ba0de1eca6631767.zip
Merged in changes from CVS trunk.
Patches applied: * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-427 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-428 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-429 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-430 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-431 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-432 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-433 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-434 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-435 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-436 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-204
-rw-r--r--admin/ChangeLog4
-rw-r--r--admin/FOR-RELEASE34
-rw-r--r--etc/NEWS25
-rw-r--r--leim/ChangeLog10
-rw-r--r--leim/Makefile.in6
-rw-r--r--leim/quail/greek.el2
-rw-r--r--lisp/ChangeLog233
-rw-r--r--lisp/emacs-lisp/pp.el1
-rw-r--r--lisp/font-lock.el2
-rw-r--r--lisp/gnus/ChangeLog7
-rw-r--r--lisp/gnus/nnimap.el6
-rw-r--r--lisp/gnus/nntp.el9
-rw-r--r--lisp/isearch.el91
-rw-r--r--lisp/pcvs-defs.el1
-rw-r--r--lisp/pcvs.el6
-rw-r--r--lisp/progmodes/ada-xref.el7
-rw-r--r--lisp/progmodes/gdb-ui.el24
-rw-r--r--lisp/replace.el56
-rw-r--r--lisp/url/ChangeLog1124
-rw-r--r--lisp/vc-arch.el3
-rw-r--r--lisp/vc-rcs.el12
-rw-r--r--lispref/ChangeLog5
-rw-r--r--lispref/searching.texi7
-rw-r--r--man/ChangeLog18
-rw-r--r--man/calendar.texi2
-rw-r--r--man/ediff.texi12
-rw-r--r--man/eshell.texi2
-rw-r--r--man/eudc.texi2
-rw-r--r--man/faq.texi4
-rw-r--r--man/flymake.texi2
-rw-r--r--man/makefile.w32-in1
-rw-r--r--man/pcl-cvs.texi11
-rw-r--r--man/search.texi43
-rw-r--r--man/ses.texi16
-rw-r--r--man/viper.texi24
-rw-r--r--src/ChangeLog101
-rw-r--r--src/Makefile.in2
-rw-r--r--src/fontset.c1
-rw-r--r--src/gtkutil.c52
-rw-r--r--src/image.c25
-rw-r--r--src/lisp.h1
-rw-r--r--src/macterm.c108
-rw-r--r--src/search.c23
-rw-r--r--src/syntax.c2
-rw-r--r--src/w32select.c6
-rw-r--r--src/xfaces.c6
46 files changed, 1781 insertions, 358 deletions
diff --git a/admin/ChangeLog b/admin/ChangeLog
index 56bdd5d83ee..b164f414a88 100644
--- a/admin/ChangeLog
+++ b/admin/ChangeLog
@@ -1,3 +1,7 @@
12004-06-28 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
2
3 * FOR-RELEASE: Removed entry about GTK and monochrome displays (done).
4
12002-06-26 Eli Zaretskii <eliz@is.elta.co.il> 52002-06-26 Eli Zaretskii <eliz@is.elta.co.il>
2 6
3 * FOR-RELEASE: Moved here from the etc directory. 7 * FOR-RELEASE: Moved here from the etc directory.
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE
index 2bf27858bcc..2d5738a8683 100644
--- a/admin/FOR-RELEASE
+++ b/admin/FOR-RELEASE
@@ -1,8 +1,6 @@
1Tasks needed before the next release. 1Tasks needed before the next release.
2 2
3** Test the mbox branch of Rmail. 3* DOCUMENTATION
4
5** Install the mbox branch of Rmail.
6 4
7** Finish updating the Emacs Lisp manual. 5** Finish updating the Emacs Lisp manual.
8 6
@@ -16,9 +14,35 @@ Tasks needed before the next release.
16 14
17** Update man/info.texi. 15** Update man/info.texi.
18 16
17
18* NEW FEATURES
19
20** Test the mbox branch of Rmail.
21
22** Install the mbox branch of Rmail.
23
24** Update Gnus.
25
26** Face remapping.
27
28
29* FATAL ERRORS
30
31** Investigate face cache related crash.
32
33Indications: Face cache seems to have been cleared, but
34redisplay uses an invalidated face_id with FACE_FROM_ID
35which then returns a NULL pointer. Said to happen with
36isearch faces.
37
38
39* GTK RELATED BUGS
40
19** Make geometry specifications work correctly for GTK. 41** Make geometry specifications work correctly for GTK.
20 42
21** Make GTK scrollbars behave like others w.r.t. overscrolling. 43** Make GTK scrollbars behave like others w.r.t. overscrolling.
22 44
23** Make GTK toolbar look OK on monochrome displays. 45
24 46Local variables:
47mode: outline
48end:
diff --git a/etc/NEWS b/etc/NEWS
index 011af4ab00f..ba9eb3121e6 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -925,10 +925,11 @@ a match if part of it has a read-only property.
925`replace-regexp' allow \,expr to be used in a replacement string, 925`replace-regexp' allow \,expr to be used in a replacement string,
926where expr is an arbitrary Lisp expression evaluated at replacement 926where expr is an arbitrary Lisp expression evaluated at replacement
927time. In many cases, this will be more convenient than using 927time. In many cases, this will be more convenient than using
928`query-replace-regexp-eval'. All regular expression replacement 928`query-replace-regexp-eval'. `\#' in a replacement string now refers
929commands now allow `\?' in the replacement string to specify a 929to the count of replacements already made by the replacement command.
930position where the replacement string can be edited for each 930All regular expression replacement commands now allow `\?' in the
931replacement. 931replacement string to specify a position where the replacement string
932can be edited for each replacement.
932 933
933+++ 934+++
934** Emacs normally highlights mouse sensitive text whenever the mouse 935** Emacs normally highlights mouse sensitive text whenever the mouse
@@ -1087,6 +1088,16 @@ command `isearch-yank-word-or-char'. To restore the old behavior,
1087bind C-w to `isearch-yank-word' in `isearch-mode-map'. 1088bind C-w to `isearch-yank-word' in `isearch-mode-map'.
1088 1089
1089+++ 1090+++
1091** C-M-w deletes and C-M-y grabs a character in isearch mode.
1092Another method to grab a character is to enter the minibuffer by `M-e'
1093and to type `C-f' at the end of the search string in the minibuffer.
1094
1095+++
1096** M-% and C-M-% typed in isearch mode invoke `query-replace' and
1097`query-replace-regexp' with the current search string inserted
1098in the minibuffer as initial input for the string to replace.
1099
1100+++
1090** Yanking text now discards certain text properties that can 1101** Yanking text now discards certain text properties that can
1091be inconvenient when you did not expect them. The variable 1102be inconvenient when you did not expect them. The variable
1092`yank-excluded-properties' specifies which ones. Insertion 1103`yank-excluded-properties' specifies which ones. Insertion
@@ -1928,6 +1939,12 @@ to view diffs or log entries directly from vc-annotate-mode:
1928between the local version of the file and yesterday's head revision 1939between the local version of the file and yesterday's head revision
1929in the repository. 1940in the repository.
1930 1941
1942+++
1943** In pcl-cvs mode, there is a new `d r' command to view the changes
1944anyone has committed to the repository since you last executed
1945"checkout", "update" or "commit". That means using cvs diff options
1946-rBASE -rHEAD.
1947
1931 1948
1932* New modes and packages in Emacs 21.4 1949* New modes and packages in Emacs 21.4
1933 1950
diff --git a/leim/ChangeLog b/leim/ChangeLog
index 33440199708..146bc897098 100644
--- a/leim/ChangeLog
+++ b/leim/ChangeLog
@@ -1,3 +1,13 @@
12004-07-01 David Kastrup <dak@gnu.org>
2
3 * quail/greek.el ("((") ("))"): add quotation mark shorthands.
4
52004-06-30 Andreas Schwab <schwab@suse.de>
6
7 * Makefile.in (${CHINESE-TIT:.elc=.el}): Depend on changed.tit to
8 serialize parallel builds.
9 (${MISC:.elc=.el}): Depend on changed.misc.
10
12004-06-05 Kenichi Handa <handa@m17n.org> 112004-06-05 Kenichi Handa <handa@m17n.org>
2 12
3 * Makefile.in (leim-list.el): Depend on leim-ext.el. Append the 13 * Makefile.in (leim-list.el): Depend on leim-ext.el. Append the
diff --git a/leim/Makefile.in b/leim/Makefile.in
index 1c13ff0613b..daa5b550cf2 100644
--- a/leim/Makefile.in
+++ b/leim/Makefile.in
@@ -174,6 +174,9 @@ TIT-SOURCES= \
174 ${srcdir}/CXTERM-DIC/TONEPY.tit \ 174 ${srcdir}/CXTERM-DIC/TONEPY.tit \
175 ${srcdir}/CXTERM-DIC/ZOZY.tit 175 ${srcdir}/CXTERM-DIC/ZOZY.tit
176 176
177${CHINESE-TIT:.elc=.el}: changed.tit
178 @true
179
177changed.tit: ${TIT-SOURCES} 180changed.tit: ${TIT-SOURCES}
178 ${RUN-EMACS} -l ${buildlisppath}/international/titdic-cnv \ 181 ${RUN-EMACS} -l ${buildlisppath}/international/titdic-cnv \
179 -f batch-titdic-convert -dir quail ${srcdir}/CXTERM-DIC; \ 182 -f batch-titdic-convert -dir quail ${srcdir}/CXTERM-DIC; \
@@ -187,6 +190,9 @@ MISC-SOURCES= \
187 ${srcdir}/MISC-DIC/pinyin.map \ 190 ${srcdir}/MISC-DIC/pinyin.map \
188 ${srcdir}/MISC-DIC/ziranma.cin 191 ${srcdir}/MISC-DIC/ziranma.cin
189 192
193${MISC:.elc=.el}: changed.misc
194 @true
195
190changed.misc: ${MISC-SOURCES} 196changed.misc: ${MISC-SOURCES}
191 ${RUN-EMACS} -l ${buildlisppath}/international/titdic-cnv \ 197 ${RUN-EMACS} -l ${buildlisppath}/international/titdic-cnv \
192 -f batch-miscdic-convert -dir quail ${srcdir}/MISC-DIC; \ 198 -f batch-miscdic-convert -dir quail ${srcdir}/MISC-DIC; \
diff --git a/leim/quail/greek.el b/leim/quail/greek.el
index a0c75df5d4b..2055962c722 100644
--- a/leim/quail/greek.el
+++ b/leim/quail/greek.el
@@ -485,6 +485,8 @@ nil t t nil nil nil nil nil nil nil t)
485 ("\"" ?,A((B) ; dialytika 485 ("\"" ?,A((B) ; dialytika
486 ("|" ?$,1&Z(B) ; ypogegrammeni 486 ("|" ?$,1&Z(B) ; ypogegrammeni
487 ("''" ?$,1q}(B) ; koronis 487 ("''" ?$,1q}(B) ; koronis
488 ("((" ?,A+(B) ; #x00ab
489 ("))" ?,A;(B) ; #x00bb
488 490
489 ("A" ?$,1&q(B) 491 ("A" ?$,1&q(B)
490 ("B" ?$,1&r(B) 492 ("B" ?$,1&r(B)
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 4bd9e5b7189..c273d6956c9 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,50 @@
12004-07-02 Andre Spiegel <spiegel@gnu.org>
2
3 * vc-rcs.el (vc-rcs-checkout-model): Look at the version headers
4 only if vc-consult-headers is non-nil.
5
62004-07-02 Juri Linkov <juri@jurta.org>
7
8 * pcvs.el (cvs-mode-diff-repository): New command.
9
10 * pcvs-defs.el (cvs-mode-diff-map): Bind r to cvs-mode-diff-repository.
11
122004-07-01 Juri Linkov <juri@jurta.org>
13
14 * isearch.el (isearch-mode-map): Bind C-M-w to isearch-del-char,
15 C-M-y to isearch-yank-char. Bind M-% to isearch-query-replace,
16 C-M-% to isearch-query-replace-regexp.
17 (minibuffer-local-isearch-map): Add arrow key bindings.
18 Bind C-f to isearch-yank-char-in-minibuffer.
19 (isearch-forward): Doc fix.
20 (isearch-edit-string): Doc fix.
21 (isearch-query-replace, isearch-query-replace-regexp): New funs.
22 (isearch-del-char): Add optional arg. Set isearch-yank-flag to t.
23 (isearch-yank-char): Add optional arg.
24 (isearch-yank-char-in-minibuffer): New fun.
25
26 * replace.el (query-replace-interactive): Change type from boolean
27 to choice. Add value `initial'.
28 (query-replace-read-args): Handle value `initial' of
29 query-replace-interactive.
30
312004-06-29 Kim F. Storm <storm@cua.dk>
32
33 * progmodes/gdb-ui.el (breakpoint-enabled-bitmap-face)
34 (breakpoint-disabled-bitmap-face): Add :group 'gud.
35
36 * progmodes/ada-xref.el (ada-tight-gvd-integration):
37 Add :group 'ada.
38
39 * vc-arch.el (vc-arch-mode-line-rewrite): Add :group 'vc.
40
412004-06-29 Juri Linkov <juri@jurta.org>
42
43 * replace.el (query-replace-read-args): Swallow a space after
44 everything except )]" which in most cases means after a symbol.
45
46 * emacs-lisp/pp.el (pp-buffer): Add autoload.
47
12004-06-26 David Kastrup <dak@gnu.org> 482004-06-26 David Kastrup <dak@gnu.org>
2 49
3 * replace.el (perform-replace): Highlight the match even in 50 * replace.el (perform-replace): Highlight the match even in
@@ -18,7 +65,7 @@
18 65
192004-06-26 Nick Roberts <nickrob@gnu.org> 662004-06-26 Nick Roberts <nickrob@gnu.org>
20 67
21 * progmodes/gdb-ui.el (gdb-toggle-breakpoint) 68 * progmodes/gdb-ui.el (gdb-toggle-breakpoint)
22 (gdb-goto-breakpoint): Fix breakage. 69 (gdb-goto-breakpoint): Fix breakage.
23 70
242004-06-26 Eli Zaretskii <eliz@gnu.org> 712004-06-26 Eli Zaretskii <eliz@gnu.org>
@@ -55,12 +102,11 @@
55 (replace-regexp): Explain `\,', `\#' and `\?'. 102 (replace-regexp): Explain `\,', `\#' and `\?'.
56 (replace-match-data): New function for thorough reuse/destruction 103 (replace-match-data): New function for thorough reuse/destruction
57 of old match-data. 104 of old match-data.
58 (replace-match-maybe-edit): Function for implementing `\?' 105 (replace-match-maybe-edit): Function for implementing `\?' editing.
59 editing.
60 (perform-replace): Fix maintaining of the match stack including 106 (perform-replace): Fix maintaining of the match stack including
61 already matched regions, implement `\?', fix various problems 107 already matched regions, implement `\?', fix various problems
62 with regions while editing and other stuff. 108 with regions while editing and other stuff.
63 (replace-highlight): Simplified. 109 (replace-highlight): Simplify.
64 110
652004-06-24 Daniel Pfeiffer <occitan@esperanto.org> 1112004-06-24 Daniel Pfeiffer <occitan@esperanto.org>
66 112
@@ -87,8 +133,7 @@
87 133
882004-06-21 Juanma Barranquero <lektu@terra.es> 1342004-06-21 Juanma Barranquero <lektu@terra.es>
89 135
90 * image.el (image-library-alist): Rewrite docstring in active 136 * image.el (image-library-alist): Rewrite docstring in active voice.
91 voice.
92 137
932004-06-20 Richard M. Stallman <rms@gnu.org> 1382004-06-20 Richard M. Stallman <rms@gnu.org>
94 139
@@ -115,8 +160,8 @@
115 160
1162004-06-18 Luc Teirlinck <teirllm@auburn.edu> 1612004-06-18 Luc Teirlinck <teirllm@auburn.edu>
117 162
118 * autorevert.el (global-auto-revert-non-file-buffers): Update 163 * autorevert.el (global-auto-revert-non-file-buffers):
119 docstring. 164 Update docstring.
120 165
1212004-06-19 Daniel Pfeiffer <occitan@esperanto.org> 1662004-06-19 Daniel Pfeiffer <occitan@esperanto.org>
122 167
@@ -137,7 +182,7 @@
137 escaped character is n or t. 182 escaped character is n or t.
138 (query-replace-regexp): Add \, and \# interpretation to 183 (query-replace-regexp): Add \, and \# interpretation to
139 interactive call and document it. 184 interactive call and document it.
140 (query-replace-regexp-eval, replace-match-string-symbols): add \# 185 (query-replace-regexp-eval, replace-match-string-symbols): Add \#
141 as shortkey for replace-count. 186 as shortkey for replace-count.
142 (replace-quote): New function for doubling backslashes. 187 (replace-quote): New function for doubling backslashes.
143 188
@@ -167,8 +212,8 @@
167 * dired-aux.el (dired-do-redisplay, dired-maybe-insert-subdir): 212 * dired-aux.el (dired-do-redisplay, dired-maybe-insert-subdir):
168 Add hyperlink to emacs-xtra manual to docstring. 213 Add hyperlink to emacs-xtra manual to docstring.
169 214
170 * autorevert.el (global-auto-revert-non-file-buffers): Add 215 * autorevert.el (global-auto-revert-non-file-buffers):
171 hyperlink to emacs-xtra manual to docstring, as well as an 216 Add hyperlink to emacs-xtra manual to docstring, as well as an
172 info-link. 217 info-link.
173 218
1742004-06-14 Juanma Barranquero <lektu@terra.es> 2192004-06-14 Juanma Barranquero <lektu@terra.es>
@@ -187,8 +232,7 @@
187 * international/code-pages.el (windows-1256, cp1125): Fix tables 232 * international/code-pages.el (windows-1256, cp1125): Fix tables
188 for several characters. 233 for several characters.
189 234
190 * international/utf-8.el (ccl-encode-mule-utf-8): Fix previous 235 * international/utf-8.el (ccl-encode-mule-utf-8): Fix previous change.
191 change.
192 236
1932004-06-13 Richard M. Stallman <rms@gnu.org> 2372004-06-13 Richard M. Stallman <rms@gnu.org>
194 238
@@ -234,14 +278,13 @@
234 278
2352004-06-13 Kenichi Handa <handa@m17n.org> 2792004-06-13 Kenichi Handa <handa@m17n.org>
236 280
237 * international/utf-8.el (ccl-decode-mule-utf-8): Fix previous 281 * international/utf-8.el (ccl-decode-mule-utf-8): Fix previous change.
238 change.
239 (ccl-untranslated-to-ucs): Fix typo. 282 (ccl-untranslated-to-ucs): Fix typo.
240 283
2412004-06-12 Karl Chen <quarl@hkn.eecs.berkeley.edu> (tiny change) 2842004-06-12 Karl Chen <quarl@hkn.eecs.berkeley.edu> (tiny change)
242 285
243 * progmodes/python.el (python-open-block-statement-p): Fix 286 * progmodes/python.el (python-open-block-statement-p):
244 indentation after a block opening that contains a comment. 287 Fix indentation after a block opening that contains a comment.
245 288
2462004-06-12 J,Ai(Br,At(Bme Marant <jerome@marant.org> (tiny change) 2892004-06-12 J,Ai(Br,At(Bme Marant <jerome@marant.org> (tiny change)
247 290
@@ -257,11 +300,10 @@
257 300
2582004-06-12 Kenichi Handa <handa@m17n.org> 3012004-06-12 Kenichi Handa <handa@m17n.org>
259 302
260 * international/mule-cmds.el (set-language-environment): Load 303 * international/mule-cmds.el (set-language-environment):
261 subst tables if necessary. 304 Load subst tables if necessary.
262 305
263 * international/mule.el (decode-char): Load subst tables if 306 * international/mule.el (decode-char): Load subst tables if necessary.
264 necessary.
265 (encode-char): Likewise. 307 (encode-char): Likewise.
266 308
267 * international/utf-16.el (utf-16-decode-ucs): Handle a surrogate 309 * international/utf-16.el (utf-16-decode-ucs): Handle a surrogate
@@ -277,18 +319,17 @@
277 (utf-16-decode-to-ucs): Handle pre-read character. 319 (utf-16-decode-to-ucs): Handle pre-read character.
278 (utf-16le-encode-loop): Handle surrogate pair. 320 (utf-16le-encode-loop): Handle surrogate pair.
279 (utf-16be-encode-loop): Likewise. 321 (utf-16be-encode-loop): Likewise.
280 (ccl-encode-mule-utf-16le-with-signature): Adjusted for the change 322 (ccl-encode-mule-utf-16le-with-signature): Adjust for the change
281 of utf-16le-encode-loop. 323 of utf-16le-encode-loop.
282 (ccl-encode-mule-utf-16be-with-signature): Adjusted for the change 324 (ccl-encode-mule-utf-16be-with-signature): Adjust for the change
283 of utf-16be-encode-loop. 325 of utf-16be-encode-loop.
284 (mule-utf-16-post-read-conversion): Call 326 (mule-utf-16-post-read-conversion):
285 utf-8-post-read-conversion at first. 327 Call utf-8-post-read-conversion at first.
286 (mule-utf-16[{le|be}], mule-utf-16{le|be}-with-signature): Include 328 (mule-utf-16[{le|be}], mule-utf-16{le|be}-with-signature):
287 CJK charsets in safe-charsets if utf-translate-cjk-mode is on. 329 Include CJK charsets in safe-charsets if utf-translate-cjk-mode is on.
288 Add post-read-conversion and pre-write-conversion. 330 Add post-read-conversion and pre-write-conversion.
289 331
290 * international/utf-8.el (utf-translate-cjk-charsets): New 332 * international/utf-8.el (utf-translate-cjk-charsets): New variable.
291 variable.
292 (utf-translate-cjk-unicode-range): New variable. 333 (utf-translate-cjk-unicode-range): New variable.
293 (utf-translate-cjk-load-tables): New function. 334 (utf-translate-cjk-load-tables): New function.
294 (utf-lookup-subst-table-for-decode): New function. 335 (utf-lookup-subst-table-for-decode): New function.
@@ -303,10 +344,10 @@
303 (ccl-untranslated-to-ucs): Handle 2-byte encoding. Set r1 to the 344 (ccl-untranslated-to-ucs): Handle 2-byte encoding. Set r1 to the
304 length of encoding. Don't return r0. 345 length of encoding. Don't return r0.
305 (utf-8-compose): New arg hash-table. Handle 2-byte encoding. 346 (utf-8-compose): New arg hash-table. Handle 2-byte encoding.
306 (utf-8-post-read-conversion): Narrow to region properly. If 347 (utf-8-post-read-conversion): Narrow to region properly.
307 utf-translate-cjk-mode is on, load tables if necessary. Call 348 If utf-translate-cjk-mode is on, load tables if necessary.
308 utf-8-compose with hash-table arg if necessary. Call 349 Call utf-8-compose with hash-table arg if necessary.
309 XXX-compose-region instead of XXX-post-read-convesion. 350 Call XXX-compose-region instead of XXX-post-read-convesion.
310 (utf-8-pre-write-conversion): New function. 351 (utf-8-pre-write-conversion): New function.
311 (mule-utf-8): Include CJK charsets in safe-charsets if 352 (mule-utf-8): Include CJK charsets in safe-charsets if
312 utf-translate-cjk-mode is on. Add pre-write-conversion. 353 utf-translate-cjk-mode is on. Add pre-write-conversion.
@@ -314,8 +355,8 @@
314 * international/characters.el: Temporarily set 355 * international/characters.el: Temporarily set
315 utf-translate-cjk-mode to nil. 356 utf-translate-cjk-mode to nil.
316 357
317 * language/devan-util.el (devanagari-compose-region): Add 358 * language/devan-util.el (devanagari-compose-region):
318 autoload cookie. 359 Add autoload cookie.
319 360
320 * international/ccl.el (ccl-dump-call): Fix printing the 361 * international/ccl.el (ccl-dump-call): Fix printing the
321 subroutine name. 362 subroutine name.
@@ -325,13 +366,12 @@
325 * dired.el (dired-revert): If buffer is marked unmodified before 366 * dired.el (dired-revert): If buffer is marked unmodified before
326 reverting, keep it marked unmodified. 367 reverting, keep it marked unmodified.
327 Adapt to new conventions for commenting out code. 368 Adapt to new conventions for commenting out code.
328 (dired-make-relative): Adapt to new conventions for commenting out 369 (dired-make-relative): Adapt to new conventions for commenting out code.
329 code.
330 370
3312004-06-10 Miles Bader <miles@gnu.ai.mit.edu> 3712004-06-10 Miles Bader <miles@gnu.ai.mit.edu>
332 372
333 * eshell/esh-module.el (eshell-load-defgroups): Bind 373 * eshell/esh-module.el (eshell-load-defgroups):
334 `vc-handled-backends' to nil when opening files. 374 Bind `vc-handled-backends' to nil when opening files.
335 375
3362004-06-11 Juanma Barranquero <lektu@terra.es> 3762004-06-11 Juanma Barranquero <lektu@terra.es>
337 377
@@ -414,15 +454,15 @@
414 or incorrect, autoloads. 454 or incorrect, autoloads.
415 455
416 * dired-aux.el (dired-kill-tree): Do not kill DIRNAME, even if it 456 * dired-aux.el (dired-kill-tree): Do not kill DIRNAME, even if it
417 does not end in a slash. Add optional argument KILL-ROOT. Update 457 does not end in a slash. Add optional argument KILL-ROOT.
418 docstring. 458 Update docstring.
419 (dired-do-touch, dired-clean-directory, dired-run-shell-command) 459 (dired-do-touch, dired-clean-directory, dired-run-shell-command)
420 (dired-query): Add autoloads. 460 (dired-query): Add autoloads.
421 461
4222004-06-08 Daniel Pfeiffer <occitan@esperanto.org> 4622004-06-08 Daniel Pfeiffer <occitan@esperanto.org>
423 463
424 * progmodes/compile.el (compilation-set-window-height): Rearrange 464 * progmodes/compile.el (compilation-set-window-height):
425 the save-* functions because a buffer can have several current 465 Rearrange the save-* functions because a buffer can have several current
426 point in different windows. 466 point in different windows.
427 (compilation-error-regexp-alist-alist): Recognize {standard input} 467 (compilation-error-regexp-alist-alist): Recognize {standard input}
428 GNU messages (for gcc --pipe) and more kinds of Oracle messages. 468 GNU messages (for gcc --pipe) and more kinds of Oracle messages.
@@ -462,8 +502,7 @@
462 502
463 * format.el (format-insert-annotations) 503 * format.el (format-insert-annotations)
464 (format-annotate-location): Doc fixes. 504 (format-annotate-location): Doc fixes.
465 (format-subtract-regions): Make arguments match their use in 505 (format-subtract-regions): Make arguments match their use in docstring.
466 docstring.
467 506
468 * simple.el (kill-region): Doc fix. 507 * simple.el (kill-region): Doc fix.
469 508
@@ -549,8 +588,7 @@
549 Handle `dired-subdir-switches'. 588 Handle `dired-subdir-switches'.
550 (dired-hide-subdir, dired-hide-all): Do not mark buffer modified. 589 (dired-hide-subdir, dired-hide-all): Do not mark buffer modified.
551 590
552 * dired.el (dired-subdir-switches, dired-switches-alist): 591 * dired.el (dired-subdir-switches, dired-switches-alist): New vars.
553 New vars.
554 (dired-insert-old-subdirs): Do not repeatedly delete and reinsert 592 (dired-insert-old-subdirs): Do not repeatedly delete and reinsert
555 subdirs if -R switch is used for a subdir. 593 subdirs if -R switch is used for a subdir.
556 (dired-mode): Set `dired-switches-alist'. 594 (dired-mode): Set `dired-switches-alist'.
@@ -583,7 +621,7 @@
583 621
5842004-06-04 Mario Lang <mlang@delysid.org> 6222004-06-04 Mario Lang <mlang@delysid.org>
585 623
586 * battery.el (battery-linux-proc-acpi): mA was hardcored, but some 624 * battery.el (battery-linux-proc-acpi): `mA' was hardcored, but some
587 systems appear to use mW, make the code handle this. Fix a 625 systems appear to use mW, make the code handle this. Fix a
588 division-by-zero bug while at it, and handle kernels with 626 division-by-zero bug while at it, and handle kernels with
589 a slightly different layout in /proc/acpi. 627 a slightly different layout in /proc/acpi.
@@ -593,7 +631,7 @@
593 * vc-svn.el (vc-svn-checkin): Use 'nconc' instead of 'list*', 631 * vc-svn.el (vc-svn-checkin): Use 'nconc' instead of 'list*',
594 because the latter is a CL-ism. This fixes the bug reported by 632 because the latter is a CL-ism. This fixes the bug reported by
595 Shawn Boyette <mdxi@collapsar.net> in 633 Shawn Boyette <mdxi@collapsar.net> in
596 http://lists.gnu.org/archive/html/emacs-devel/2004-05/msg00442.html. 634 http://lists.gnu.org/archive/html/emacs-devel/2004-05/msg00442.html.
597 635
5982004-06-04 Miles Bader <miles@gnu.org> 6362004-06-04 Miles Bader <miles@gnu.org>
599 637
@@ -630,8 +668,8 @@
630 668
631 * subr.el (read-number): Use canonical format for default in prompt. 669 * subr.el (read-number): Use canonical format for default in prompt.
632 670
633 * minibuf-eldef.el (minibuffer-default-in-prompt-regexps): Add 671 * minibuf-eldef.el (minibuffer-default-in-prompt-regexps):
634 regexp for " [...]" style defaults. 672 Add regexp for " [...]" style defaults.
635 673
6362004-06-02 Romain Francoise <romain@orebokech.com> 6742004-06-02 Romain Francoise <romain@orebokech.com>
637 675
@@ -654,14 +692,28 @@
654 empty docstring. 692 empty docstring.
655 693
656 * international/mule.el (register-char-codings): Make alias for 694 * international/mule.el (register-char-codings): Make alias for
657 `ignore'. Move docstring to obsolescence info and remove 695 `ignore'. Move docstring to obsolescence info and remove redundancy.
658 redundancy.
659 696
6602004-06-02 Kim F. Storm <storm@cua.dk> 6972004-06-02 Kim F. Storm <storm@cua.dk>
661 698
662 * frame.el (blink-cursor-start): Turn cursor off initially so blink 699 * frame.el (blink-cursor-start): Turn cursor off initially so blink
663 starts after blink-cursor-delay rather than 2*blink-cursor-delay. 700 starts after blink-cursor-delay rather than 2*blink-cursor-delay.
664 701
7022004-06-01 Stefan Monnier <monnier@iro.umontreal.ca>
703
704 * comint.el (comint-replace-by-expanded-history-before-point):
705 Obey `start' as the docstring says.
706 (comint-send-input, comint-snapshot-last-prompt, comint-output-filter)
707 (comint-update-fence): Prevent font-lock from running unnecessarily.
708 (comint-dynamic-list-completions): Use with-current-buffer.
709
7102004-06-01 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
711
712 * textmodes/bibtex.el (bibtex-format-entry): Fix regexps.
713 (bibtex-parse-strings): Bugfix, use assoc instead of assoc-string.
714 (bibtex-entry-update): Handle alternatives and optional fields.
715 (bibtex-parse-entry): Bugfix, handle empty key.
716
6652004-05-31 Stefan Monnier <monnier@iro.umontreal.ca> 7172004-05-31 Stefan Monnier <monnier@iro.umontreal.ca>
666 718
667 * vc-arch.el (vc-arch-state): Don't assume the file exists. 719 * vc-arch.el (vc-arch-state): Don't assume the file exists.
@@ -2746,26 +2798,6 @@
2746 2798
27472004-04-16 Stefan Monnier <monnier@iro.umontreal.ca> 27992004-04-16 Stefan Monnier <monnier@iro.umontreal.ca>
2748 2800
2749 * url/url-util.el (url-debug): Use with-current-buffer.
2750
2751 * url/url-nfs.el (url-nfs-file-attributes): Add id-format parameter.
2752 (url-nfs-create-wrapper): Use new backquote syntax.
2753
2754 * url/url-https.el (url-https-file-attributes): Add id-format param.
2755
2756 * url/url-http.el (url-http-head-file-attributes)
2757 (url-http-file-attributes): Add id-format parameter.
2758
2759 * url/url-handlers.el: Use new find-file-hook.
2760 (url-file-attributes): Add id-format parameter.
2761
2762 * url/url-file.el (url-file-create-wrapper): Use new backquote syntax.
2763 (url-file-file-attributes): Add id-format parameter.
2764
2765 * url/url-dav.el: Use with-current-buffer.
2766 (url-dav-process-response): Fix regexps and spurious quote.
2767 (url-dav-file-attributes): Add id-format param.
2768
2769 * diff-mode.el (diff-end-of-hunk): Be more careful with unified hunks. 2801 * diff-mode.el (diff-end-of-hunk): Be more careful with unified hunks.
2770 2802
27712004-04-16 Andre Spiegel <spiegel@gnu.org> 28032004-04-16 Andre Spiegel <spiegel@gnu.org>
@@ -2938,14 +2970,6 @@
2938 * progmodes/compile.el (compile-goto-error): Select the buffer/window 2970 * progmodes/compile.el (compile-goto-error): Select the buffer/window
2939 corresponding to the event. 2971 corresponding to the event.
2940 2972
2941 * url/url.el (url-retrieve): Use with-current-buffer.
2942
2943 * url/url-http.el (url-http-parse-headers, url-http-file-exists-p):
2944 Remove unused var `version'.
2945
2946 * url/url-handlers.el (url-handler-mode): New minor mode.
2947 (url-setup-file-name-handlers): Remove.
2948
29492004-04-12 Joe Buehler <jbuehler@hekiman.com> 29732004-04-12 Joe Buehler <jbuehler@hekiman.com>
2950 2974
2951 * loadup.el: Add cygwin to system-type list, for unexec() support. 2975 * loadup.el: Add cygwin to system-type list, for unexec() support.
@@ -2962,9 +2986,6 @@
2962 2986
2963 * help.el (describe-mode): Doc fix. 2987 * help.el (describe-mode): Doc fix.
2964 2988
2965 * url/url-cookie.el (url-cookie-handle-set-cookie): Replace calls
2966 to obsolete `assoc-ignore-case' with calls to `assoc-string'.
2967
29682004-04-12 Stefan Monnier <monnier@iro.umontreal.ca> 29892004-04-12 Stefan Monnier <monnier@iro.umontreal.ca>
2969 2990
2970 * progmodes/compile.el (compilation-mode-font-lock-keywords): Fix test 2991 * progmodes/compile.el (compilation-mode-font-lock-keywords): Fix test
@@ -2984,42 +3005,6 @@
2984 3005
29852004-04-11 Dave Love <fx@gnu.org> 30062004-04-11 Dave Love <fx@gnu.org>
2986 3007
2987 * url/url-mailto.el (url-mailto):
2988 * url/url-history.el (url-history-setup-save-timer):
2989 * url/url-cookie.el (url-cookie-setup-save-timer): Avoid warnings.
2990
2991 * url/url-file.el (url-file-build-filename): Don't use
2992 directory-sep-char.
2993
2994 * url/url-auth.el (url-register-auth-scheme): Fix `format' call.
2995
2996 * url/url-about.el (url-scheme-registry): Defvar.
2997 (url-about): Use text/plain.
2998
2999 * url/url-vars.el (cl): Don't require.
3000 (url): Add :version.
3001 (url-bug-address): Use bug-gnu-emacs.
3002
3003 * url/url-util.el (url-hexify-string): Don't give multibyte error
3004 for char <16.
3005 (mail-header-extract): Autoload.
3006
3007 * url/url-parse.el: Doc fixes.
3008
3009 * url/url-ldap.el (ldap): Require.
3010 (url-ldap): Fix `format' call.
3011 (url-ldap-certificate-formatter): Avoid warning.
3012
3013 * url/url-https.el (url-https-create-secure-wrapper): Use modern
3014 backquotes.
3015
3016 * url/url-dav.el (url-dav-rename-file): Fix args of `signal'.
3017 (url-intersection): New.
3018 (url-dav-supported-p): Use it.
3019 (url-dav-save-resource): Declare url-http-response-status special.
3020
3021 * url/url-cache.el (url-util): Require.
3022
3023 * emacs-lisp/bytecomp.el (byte-compile-cond): Fix last change. 3008 * emacs-lisp/bytecomp.el (byte-compile-cond): Fix last change.
3024 3009
3025 * progmodes/python.el: New file. 3010 * progmodes/python.el: New file.
@@ -3066,9 +3051,6 @@
3066 3051
3067 * emacs-lisp/bytecomp.el (byte-compile-version): Variable removed. 3052 * emacs-lisp/bytecomp.el (byte-compile-version): Variable removed.
3068 (byte-compile-insert-header): Don't use `byte-compile-version'. 3053 (byte-compile-insert-header): Don't use `byte-compile-version'.
3069 * url/url-vars.el (url-version): Use the constant string "Emacs"
3070 instead of calculating something from the RCS `State' keyword
3071 [the latter is almost entirely useless anyway].
3072 * forms.el (forms-version): Variable removed. 3054 * forms.el (forms-version): Variable removed.
3073 (forms-mode): Don't use `forms-version'. 3055 (forms-mode): Don't use `forms-version'.
3074 * recentf.el (recentf-version): Variable removed. 3056 * recentf.el (recentf-version): Variable removed.
@@ -3318,10 +3300,7 @@
3318 3300
33192004-04-03 Stefan Monnier <monnier@iro.umontreal.ca> 33012004-04-03 Stefan Monnier <monnier@iro.umontreal.ca>
3320 3302
3321 * url: Import the URL package from its repository. 3303 * url/: New dir. Import the URL package from its repository.
3322
3323 * url/url-methods.el:
3324 * url/url-parse.el: Don't require url-auto.
3325 3304
33262004-04-03 Andreas Schwab <schwab@suse.de> 33052004-04-03 Andreas Schwab <schwab@suse.de>
3327 3306
diff --git a/lisp/emacs-lisp/pp.el b/lisp/emacs-lisp/pp.el
index 61d31921e57..93e30fb0f55 100644
--- a/lisp/emacs-lisp/pp.el
+++ b/lisp/emacs-lisp/pp.el
@@ -54,6 +54,7 @@ to make output that `read' can handle, whenever this is possible."
54 (buffer-string)) 54 (buffer-string))
55 (kill-buffer (current-buffer))))) 55 (kill-buffer (current-buffer)))))
56 56
57;;;###autoload
57(defun pp-buffer () 58(defun pp-buffer ()
58 "Prettify the current buffer with printed representation of a Lisp object." 59 "Prettify the current buffer with printed representation of a Lisp object."
59 (goto-char (point-min)) 60 (goto-char (point-min))
diff --git a/lisp/font-lock.el b/lisp/font-lock.el
index 061ab23872b..238d0c4fdf7 100644
--- a/lisp/font-lock.el
+++ b/lisp/font-lock.el
@@ -1257,7 +1257,7 @@ START should be at the beginning of a line."
1257 font-lock-syntactic-keywords))) 1257 font-lock-syntactic-keywords)))
1258 ;; Get down to business. 1258 ;; Get down to business.
1259 (let ((case-fold-search font-lock-keywords-case-fold-search) 1259 (let ((case-fold-search font-lock-keywords-case-fold-search)
1260 (keywords (cdr font-lock-syntactic-keywords)) 1260 (keywords (cddr font-lock-syntactic-keywords))
1261 keyword matcher highlights) 1261 keyword matcher highlights)
1262 (while keywords 1262 (while keywords
1263 ;; Find an occurrence of `matcher' from `start' to `end'. 1263 ;; Find an occurrence of `matcher' from `start' to `end'.
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 78c9f15f912..8169b014e16 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,10 @@
12004-06-29 Kim F. Storm <storm@cua.dk>
2
3 * nntp.el (nntp-authinfo-file): Add :group 'nntp.
4
5 * nnimap.el (nnimap-authinfo-file, nnimap-prune-cache):
6 Add :group 'nnimap.
7
12004-05-18 Stefan Monnier <monnier@iro.umontreal.ca> 82004-05-18 Stefan Monnier <monnier@iro.umontreal.ca>
2 9
3 * mm-view.el (mm-insert-inline): Make it work in read-only buffer. 10 * mm-view.el (mm-insert-inline): Make it work in read-only buffer.
diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el
index a7cf82317b5..ec9d42ee042 100644
--- a/lisp/gnus/nnimap.el
+++ b/lisp/gnus/nnimap.el
@@ -271,11 +271,13 @@ use this to make replies go directly to the group.")
271 (string :format "Login: %v")) 271 (string :format "Login: %v"))
272 (cons :format "%v" 272 (cons :format "%v"
273 (const :format "" "password") 273 (const :format "" "password")
274 (string :format "Password: %v"))))))) 274 (string :format "Password: %v"))))))
275 :group 'nnimap)
275 276
276(defcustom nnimap-prune-cache t 277(defcustom nnimap-prune-cache t
277 "If non-nil, nnimap check whether articles still exist on server before using data stored in NOV cache." 278 "If non-nil, nnimap check whether articles still exist on server before using data stored in NOV cache."
278 :type 'boolean) 279 :type 'boolean
280 :group 'nnimap)
279 281
280(defvar nnimap-request-list-method 'imap-mailbox-list 282(defvar nnimap-request-list-method 'imap-mailbox-list
281 "Method to use to request a list of all folders from the server. 283 "Method to use to request a list of all folders from the server.
diff --git a/lisp/gnus/nntp.el b/lisp/gnus/nntp.el
index 8791c652a45..5722ba8456a 100644
--- a/lisp/gnus/nntp.el
+++ b/lisp/gnus/nntp.el
@@ -174,7 +174,8 @@ server there that you can connect to. See also
174 (string :format "Login: %v")) 174 (string :format "Login: %v"))
175 (cons :format "%v" 175 (cons :format "%v"
176 (const :format "" "password") 176 (const :format "" "password")
177 (string :format "Password: %v"))))))) 177 (string :format "Password: %v"))))))
178 :group 'nntp)
178 179
179 180
180 181
@@ -223,7 +224,7 @@ noticing asynchronous data.")
223(defvar nntp-async-timer nil) 224(defvar nntp-async-timer nil)
224(defvar nntp-async-process-list nil) 225(defvar nntp-async-process-list nil)
225 226
226(defvar nntp-ssl-program 227(defvar nntp-ssl-program
227 "openssl s_client -quiet -ssl3 -connect %s:%p" 228 "openssl s_client -quiet -ssl3 -connect %s:%p"
228"A string containing commands for SSL connections. 229"A string containing commands for SSL connections.
229Within a string, %s is replaced with the server address and %p with 230Within a string, %s is replaced with the server address and %p with
@@ -928,10 +929,10 @@ password contained in '~/.nntp-authinfo'."
928 929
929(defun nntp-open-ssl-stream (buffer) 930(defun nntp-open-ssl-stream (buffer)
930 (let* ((process-connection-type nil) 931 (let* ((process-connection-type nil)
931 (proc (start-process "nntpd" buffer 932 (proc (start-process "nntpd" buffer
932 shell-file-name 933 shell-file-name
933 shell-command-switch 934 shell-command-switch
934 (format-spec nntp-ssl-program 935 (format-spec nntp-ssl-program
935 (format-spec-make 936 (format-spec-make
936 ?s nntp-address 937 ?s nntp-address
937 ?p nntp-port-number))))) 938 ?p nntp-port-number)))))
diff --git a/lisp/isearch.el b/lisp/isearch.el
index 3898aa13f61..d30c7c6cc66 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -294,8 +294,10 @@ Default value, nil, means edit the string instead."
294 (define-key map " " 'isearch-whitespace-chars) 294 (define-key map " " 'isearch-whitespace-chars)
295 (define-key map [?\S-\ ] 'isearch-whitespace-chars) 295 (define-key map [?\S-\ ] 'isearch-whitespace-chars)
296 296
297 (define-key map "\C-w" 'isearch-yank-word-or-char) 297 (define-key map "\C-w" 'isearch-yank-word-or-char)
298 (define-key map "\C-y" 'isearch-yank-line) 298 (define-key map "\M-\C-w" 'isearch-del-char)
299 (define-key map "\M-\C-y" 'isearch-yank-char)
300 (define-key map "\C-y" 'isearch-yank-line)
299 301
300 ;; Define keys for regexp chars * ? |. 302 ;; Define keys for regexp chars * ? |.
301 ;; Nothing special for + because it matches at least once. 303 ;; Nothing special for + because it matches at least once.
@@ -336,18 +338,27 @@ Default value, nil, means edit the string instead."
336 (define-key map "\M-r" 'isearch-toggle-regexp) 338 (define-key map "\M-r" 'isearch-toggle-regexp)
337 (define-key map "\M-e" 'isearch-edit-string) 339 (define-key map "\M-e" 'isearch-edit-string)
338 340
341 (define-key map (kbd "M-%") 'isearch-query-replace)
342 (define-key map (kbd "C-M-%") 'isearch-query-replace-regexp)
343
339 map) 344 map)
340 "Keymap for `isearch-mode'.") 345 "Keymap for `isearch-mode'.")
341 346
342(defvar minibuffer-local-isearch-map 347(defvar minibuffer-local-isearch-map
343 (let ((map (make-sparse-keymap))) 348 (let ((map (make-sparse-keymap)))
344 (set-keymap-parent map minibuffer-local-map) 349 (set-keymap-parent map minibuffer-local-map)
345 (define-key map "\r" 'isearch-nonincremental-exit-minibuffer) 350 (define-key map "\r" 'isearch-nonincremental-exit-minibuffer)
346 (define-key map "\M-n" 'isearch-ring-advance-edit) 351 (define-key map "\M-n" 'isearch-ring-advance-edit)
347 (define-key map "\M-p" 'isearch-ring-retreat-edit) 352 (define-key map [next] 'isearch-ring-advance-edit)
353 (define-key map [down] 'isearch-ring-advance-edit)
354 (define-key map "\M-p" 'isearch-ring-retreat-edit)
355 (define-key map [prior] 'isearch-ring-retreat-edit)
356 (define-key map [up] 'isearch-ring-retreat-edit)
348 (define-key map "\M-\t" 'isearch-complete-edit) 357 (define-key map "\M-\t" 'isearch-complete-edit)
349 (define-key map "\C-s" 'isearch-forward-exit-minibuffer) 358 (define-key map "\C-s" 'isearch-forward-exit-minibuffer)
350 (define-key map "\C-r" 'isearch-reverse-exit-minibuffer) 359 (define-key map "\C-r" 'isearch-reverse-exit-minibuffer)
360 (define-key map "\C-f" 'isearch-yank-char-in-minibuffer)
361 (define-key map [right] 'isearch-yank-char-in-minibuffer)
351 map) 362 map)
352 "Keymap for editing isearch strings in the minibuffer.") 363 "Keymap for editing isearch strings in the minibuffer.")
353 364
@@ -449,14 +460,14 @@ As you type characters, they add to the search string and are found.
449The following non-printing keys are bound in `isearch-mode-map'. 460The following non-printing keys are bound in `isearch-mode-map'.
450 461
451Type \\[isearch-delete-char] to cancel last input item from end of search string. 462Type \\[isearch-delete-char] to cancel last input item from end of search string.
452Type \\[isearch-del-char] to cancel last character from end of search string.
453Type \\[isearch-exit] to exit, leaving point at location found. 463Type \\[isearch-exit] to exit, leaving point at location found.
454Type LFD (C-j) to match end of line. 464Type LFD (C-j) to match end of line.
455Type \\[isearch-repeat-forward] to search again forward,\ 465Type \\[isearch-repeat-forward] to search again forward,\
456 \\[isearch-repeat-backward] to search again backward. 466 \\[isearch-repeat-backward] to search again backward.
457Type \\[isearch-yank-char] to yank character from buffer onto end of search\ 467Type \\[isearch-yank-word-or-char] to yank word from buffer onto end of search\
458 string and search for it. 468 string and search for it.
459Type \\[isearch-yank-word] to yank word from buffer onto end of search\ 469Type \\[isearch-del-char] to delete character from end of search string.
470Type \\[isearch-yank-char] to yank char from buffer onto end of search\
460 string and search for it. 471 string and search for it.
461Type \\[isearch-yank-line] to yank rest of line onto end of search string\ 472Type \\[isearch-yank-line] to yank rest of line onto end of search string\
462 and search for it. 473 and search for it.
@@ -792,7 +803,7 @@ The following additional command keys are active while editing.
792\\[isearch-ring-retreat-edit] to replace the search string with the previous item in the search ring. 803\\[isearch-ring-retreat-edit] to replace the search string with the previous item in the search ring.
793\\[isearch-complete-edit] to complete the search string using the search ring. 804\\[isearch-complete-edit] to complete the search string using the search ring.
794\\<isearch-mode-map> 805\\<isearch-mode-map>
795If first char entered is \\[isearch-yank-word], then do word search instead." 806If first char entered is \\[isearch-yank-word-or-char], then do word search instead."
796 807
797 ;; This code is very hairy for several reasons, explained in the code. 808 ;; This code is very hairy for several reasons, explained in the code.
798 ;; Mainly, isearch-mode must be terminated while editing and then restarted. 809 ;; Mainly, isearch-mode must be terminated while editing and then restarted.
@@ -1048,6 +1059,31 @@ Use `isearch-exit' to quit without signaling."
1048 (sit-for 1) 1059 (sit-for 1)
1049 (isearch-update)) 1060 (isearch-update))
1050 1061
1062(defun isearch-query-replace ()
1063 "Start query-replace with string to replace from last search string."
1064 (interactive)
1065 (let ((query-replace-interactive 'initial)
1066 (case-fold-search isearch-case-fold-search))
1067 ;; Put search string into the right ring
1068 (setq isearch-regexp nil)
1069 (isearch-done)
1070 (isearch-clean-overlays)
1071 (and isearch-forward isearch-other-end (goto-char isearch-other-end))
1072 (call-interactively 'query-replace)))
1073
1074(defun isearch-query-replace-regexp ()
1075 "Start query-replace-regexp with string to replace from last search string."
1076 (interactive)
1077 (let ((query-replace-interactive 'initial)
1078 (case-fold-search isearch-case-fold-search))
1079 ;; Put search string into the right ring
1080 (setq isearch-regexp t)
1081 (isearch-done)
1082 (isearch-clean-overlays)
1083 (and isearch-forward isearch-other-end (goto-char isearch-other-end))
1084 (call-interactively 'query-replace-regexp)))
1085
1086
1051(defun isearch-delete-char () 1087(defun isearch-delete-char ()
1052 "Discard last input item and move point back. 1088 "Discard last input item and move point back.
1053If no previous match was done, just beep." 1089If no previous match was done, just beep."
@@ -1057,15 +1093,17 @@ If no previous match was done, just beep."
1057 (isearch-pop-state)) 1093 (isearch-pop-state))
1058 (isearch-update)) 1094 (isearch-update))
1059 1095
1060(defun isearch-del-char () 1096(defun isearch-del-char (&optional arg)
1061 "Discard last character and move point back. 1097 "Delete character from end of search string and search again.
1062If there is no previous character, just beep." 1098If search string is empty, just beep."
1063 (interactive) 1099 (interactive "p")
1064 (if (equal isearch-string "") 1100 (if (= 0 (length isearch-string))
1065 (ding) 1101 (ding)
1066 (setq isearch-string (substring isearch-string 0 -1) 1102 (setq isearch-string (substring isearch-string 0 (- (or arg 1)))
1067 isearch-message (mapconcat 'isearch-text-char-description 1103 isearch-message (mapconcat 'isearch-text-char-description
1068 isearch-string ""))) 1104 isearch-string "")
1105 ;; Don't move cursor in reverse search.
1106 isearch-yank-flag t))
1069 (isearch-search-and-update)) 1107 (isearch-search-and-update))
1070 1108
1071(defun isearch-yank-string (string) 1109(defun isearch-yank-string (string)
@@ -1127,10 +1165,21 @@ might return the position of the end of the line."
1127 (goto-char isearch-other-end)) 1165 (goto-char isearch-other-end))
1128 (buffer-substring-no-properties (point) (funcall jumpform))))) 1166 (buffer-substring-no-properties (point) (funcall jumpform)))))
1129 1167
1130(defun isearch-yank-char () 1168(defun isearch-yank-char-in-minibuffer (&optional arg)
1169 "Pull next character from buffer into end of search string in minibuffer."
1170 (interactive "p")
1171 (if (eobp)
1172 (insert
1173 (save-excursion
1174 (set-buffer (cadr (buffer-list)))
1175 (buffer-substring-no-properties
1176 (point) (progn (forward-char arg) (point)))))
1177 (forward-char arg)))
1178
1179(defun isearch-yank-char (&optional arg)
1131 "Pull next character from buffer into search string." 1180 "Pull next character from buffer into search string."
1132 (interactive) 1181 (interactive "p")
1133 (isearch-yank-internal (lambda () (forward-char 1) (point)))) 1182 (isearch-yank-internal (lambda () (forward-char arg) (point))))
1134 1183
1135(defun isearch-yank-word-or-char () 1184(defun isearch-yank-word-or-char ()
1136 "Pull next character or word from buffer into search string." 1185 "Pull next character or word from buffer into search string."
diff --git a/lisp/pcvs-defs.el b/lisp/pcvs-defs.el
index 6fea0052a7d..16e2ff82553 100644
--- a/lisp/pcvs-defs.el
+++ b/lisp/pcvs-defs.el
@@ -305,6 +305,7 @@ This variable is buffer local and only used in the *cvs* buffer.")
305 ("d" "diff" . cvs-mode-diff) 305 ("d" "diff" . cvs-mode-diff)
306 ("b" "backup" . cvs-mode-diff-backup) 306 ("b" "backup" . cvs-mode-diff-backup)
307 ("h" "head" . cvs-mode-diff-head) 307 ("h" "head" . cvs-mode-diff-head)
308 ("r" "repository" . cvs-mode-diff-repository)
308 ("y" "yesterday" . cvs-mode-diff-yesterday) 309 ("y" "yesterday" . cvs-mode-diff-yesterday)
309 ("v" "vendor" . cvs-mode-diff-vendor)) 310 ("v" "vendor" . cvs-mode-diff-vendor))
310 "Keymap for diff-related operations in `cvs-mode'." 311 "Keymap for diff-related operations in `cvs-mode'."
diff --git a/lisp/pcvs.el b/lisp/pcvs.el
index 73f7106d0e8..120acbbc2bc 100644
--- a/lisp/pcvs.el
+++ b/lisp/pcvs.el
@@ -1565,6 +1565,12 @@ See ``cvs-mode-diff'' for more info."
1565 (interactive (list (cvs-flags-query 'cvs-diff-flags "cvs diff flags"))) 1565 (interactive (list (cvs-flags-query 'cvs-diff-flags "cvs diff flags")))
1566 (cvs-mode-diff-1 (cons "-rHEAD" flags))) 1566 (cvs-mode-diff-1 (cons "-rHEAD" flags)))
1567 1567
1568(defun-cvs-mode (cvs-mode-diff-repository . SIMPLE) (flags)
1569 "Diff the files for changes in the repository since last co/update/commit.
1570See ``cvs-mode-diff'' for more info."
1571 (interactive (list (cvs-flags-query 'cvs-diff-flags "cvs diff flags")))
1572 (cvs-mode-diff-1 (cons "-rBASE" (cons "-rHEAD" flags))))
1573
1568(defun-cvs-mode (cvs-mode-diff-yesterday . SIMPLE) (flags) 1574(defun-cvs-mode (cvs-mode-diff-yesterday . SIMPLE) (flags)
1569 "Diff the selected files against yesterday's head of the current branch. 1575 "Diff the selected files against yesterday's head of the current branch.
1570See ``cvs-mode-diff'' for more info." 1576See ``cvs-mode-diff'' for more info."
diff --git a/lisp/progmodes/ada-xref.el b/lisp/progmodes/ada-xref.el
index c7b5717a1bb..c9bfbd76c23 100644
--- a/lisp/progmodes/ada-xref.el
+++ b/lisp/progmodes/ada-xref.el
@@ -143,7 +143,8 @@ Otherwise, ask the user for the name of the project file to use."
143 143
144(defcustom ada-tight-gvd-integration nil 144(defcustom ada-tight-gvd-integration nil
145 "*If non-nil, a new Emacs frame will be swallowed in GVD when debugging. 145 "*If non-nil, a new Emacs frame will be swallowed in GVD when debugging.
146If GVD is not the debugger used, nothing happens.") 146If GVD is not the debugger used, nothing happens."
147 :type 'boolean :group 'ada)
147 148
148(defcustom ada-xref-search-with-egrep t 149(defcustom ada-xref-search-with-egrep t
149 "*If non-nil, use egrep to find the possible declarations for an entity. 150 "*If non-nil, use egrep to find the possible declarations for an entity.
@@ -506,12 +507,12 @@ All the directories are returned as absolute directories."
506 (equal ada-prj-default-project-file 507 (equal ada-prj-default-project-file
507 (car x)) 508 (car x))
508 )))) 509 ))))
509 510
510 ;; Parses all the known project files, and insert at 511 ;; Parses all the known project files, and insert at
511 ;; least the default one (in case 512 ;; least the default one (in case
512 ;; ada-xref-project-files is nil) 513 ;; ada-xref-project-files is nil)
513 (or ada-xref-project-files '(nil)))))) 514 (or ada-xref-project-files '(nil))))))
514 515
515 (easy-menu-add-item ada-mode-menu '() submenu))) 516 (easy-menu-add-item ada-mode-menu '() submenu)))
516 517
517 518
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el
index 25863d1aba3..1e2ef00580e 100644
--- a/lisp/progmodes/gdb-ui.el
+++ b/lisp/progmodes/gdb-ui.el
@@ -39,7 +39,7 @@
39;; Kingdon and uses GDB's annotation interface. You don't need to know about 39;; Kingdon and uses GDB's annotation interface. You don't need to know about
40;; annotations to use this mode as a debugger, but if you are interested 40;; annotations to use this mode as a debugger, but if you are interested
41;; developing the mode itself, then see the Annotations section in the GDB 41;; developing the mode itself, then see the Annotations section in the GDB
42;; info manual. 42;; info manual.
43;; 43;;
44;; GDB developers plan to make the annotation interface obsolete. A new 44;; GDB developers plan to make the annotation interface obsolete. A new
45;; interface called GDB/MI (machine interface) has been designed to replace 45;; interface called GDB/MI (machine interface) has been designed to replace
@@ -70,7 +70,7 @@
70(defvar gdb-variables '() 70(defvar gdb-variables '()
71 "A list of variables that are local to the GUD buffer.") 71 "A list of variables that are local to the GUD buffer.")
72(defvar gdb-server-prefix nil) 72(defvar gdb-server-prefix nil)
73 73
74;;;###autoload 74;;;###autoload
75(defun gdba (command-line) 75(defun gdba (command-line)
76 "Run gdb on program FILE in buffer *gud-FILE*. 76 "Run gdb on program FILE in buffer *gud-FILE*.
@@ -227,7 +227,7 @@ speedbar."
227 (if (string-equal expr (car var)) (throw 'already-watched nil))) 227 (if (string-equal expr (car var)) (throw 'already-watched nil)))
228 (set-text-properties 0 (length expr) nil expr) 228 (set-text-properties 0 (length expr) nil expr)
229 (gdb-enqueue-input 229 (gdb-enqueue-input
230 (list 230 (list
231 (if (eq gud-minor-mode 'gdba) 231 (if (eq gud-minor-mode 'gdba)
232 (concat "server interpreter mi \"-var-create - * " expr "\"\n") 232 (concat "server interpreter mi \"-var-create - * " expr "\"\n")
233 (concat"-var-create - * " expr "\n")) 233 (concat"-var-create - * " expr "\n"))
@@ -326,7 +326,7 @@ speedbar."
326 (if (not (member 'gdb-var-update gdb-pending-triggers)) 326 (if (not (member 'gdb-var-update gdb-pending-triggers))
327 (progn 327 (progn
328 (gdb-enqueue-input 328 (gdb-enqueue-input
329 (list 329 (list
330 (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba)) 330 (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba))
331 "server interpreter mi \"-var-update *\"\n" 331 "server interpreter mi \"-var-update *\"\n"
332 "-var-update *\n") 332 "-var-update *\n")
@@ -362,7 +362,7 @@ speedbar."
362 (varnum (cadr var))) 362 (varnum (cadr var)))
363 (unless (string-match "\\." varnum) 363 (unless (string-match "\\." varnum)
364 (gdb-enqueue-input 364 (gdb-enqueue-input
365 (list 365 (list
366 (if (with-current-buffer gud-comint-buffer 366 (if (with-current-buffer gud-comint-buffer
367 (eq gud-minor-mode 'gdba)) 367 (eq gud-minor-mode 'gdba))
368 (concat "server interpreter mi \"-var-delete " varnum "\"\n") 368 (concat "server interpreter mi \"-var-delete " varnum "\"\n")
@@ -486,7 +486,7 @@ The key should be one of the cars in `gdb-buffer-rules-assoc'."
486 (set (make-local-variable 'gdb-buffer-type) key) 486 (set (make-local-variable 'gdb-buffer-type) key)
487 (if (cdr (cdr rules)) 487 (if (cdr (cdr rules))
488 (funcall (car (cdr (cdr rules))))) 488 (funcall (car (cdr (cdr rules)))))
489 (set (make-local-variable 'gud-minor-mode) 489 (set (make-local-variable 'gud-minor-mode)
490 (with-current-buffer gud-comint-buffer gud-minor-mode)) 490 (with-current-buffer gud-comint-buffer gud-minor-mode))
491 (set (make-local-variable 'tool-bar-map) gud-tool-bar-map) 491 (set (make-local-variable 'tool-bar-map) gud-tool-bar-map)
492 new)))) 492 new))))
@@ -1076,13 +1076,15 @@ static char *magick[] = {
1076 '((t 1076 '((t
1077 :inherit fringe 1077 :inherit fringe
1078 :foreground "red")) 1078 :foreground "red"))
1079 "Face for enabled breakpoint icon in fringe.") 1079 "Face for enabled breakpoint icon in fringe."
1080 :group 'gud)
1080 1081
1081(defface breakpoint-disabled-bitmap-face 1082(defface breakpoint-disabled-bitmap-face
1082 '((t 1083 '((t
1083 :inherit fringe 1084 :inherit fringe
1084 :foreground "grey60")) 1085 :foreground "grey60"))
1085 "Face for disabled breakpoint icon in fringe.") 1086 "Face for disabled breakpoint icon in fringe."
1087 :group 'gud)
1086 1088
1087 1089
1088;;-put breakpoint icons in relevant margins (even those set in the GUD buffer) 1090;;-put breakpoint icons in relevant margins (even those set in the GUD buffer)
@@ -1837,7 +1839,7 @@ BUFFER nil or omitted means use the current buffer."
1837 (save-current-buffer 1839 (save-current-buffer
1838 (setq left-margin-width 2) 1840 (setq left-margin-width 2)
1839 (if (get-buffer-window (current-buffer) 'visible) 1841 (if (get-buffer-window (current-buffer) 'visible)
1840 (set-window-margins 1842 (set-window-margins
1841 (get-buffer-window (current-buffer) 'visible) 1843 (get-buffer-window (current-buffer) 'visible)
1842 left-margin-width right-margin-width)))) 1844 left-margin-width right-margin-width))))
1843 (put-image 1845 (put-image
@@ -1864,7 +1866,7 @@ BUFFER nil or omitted means use the current buffer."
1864 (save-current-buffer 1866 (save-current-buffer
1865 (setq left-margin-width 2) 1867 (setq left-margin-width 2)
1866 (if (get-buffer-window (current-buffer) 'visible) 1868 (if (get-buffer-window (current-buffer) 'visible)
1867 (set-window-margins 1869 (set-window-margins
1868 (get-buffer-window (current-buffer) 'visible) 1870 (get-buffer-window (current-buffer) 'visible)
1869 left-margin-width right-margin-width)))) 1871 left-margin-width right-margin-width))))
1870 (gdb-put-string (if enabled "B" "b") (1+ start))))) 1872 (gdb-put-string (if enabled "B" "b") (1+ start)))))
@@ -1876,7 +1878,7 @@ BUFFER nil or omitted means use the current buffer."
1876 (when remove-margin 1878 (when remove-margin
1877 (setq left-margin-width 0) 1879 (setq left-margin-width 0)
1878 (if (get-buffer-window (current-buffer) 'visible) 1880 (if (get-buffer-window (current-buffer) 'visible)
1879 (set-window-margins 1881 (set-window-margins
1880 (get-buffer-window (current-buffer) 'visible) 1882 (get-buffer-window (current-buffer) 'visible)
1881 left-margin-width right-margin-width)))) 1883 left-margin-width right-margin-width))))
1882 1884
diff --git a/lisp/replace.el b/lisp/replace.el
index c68a420db7a..cac4470c9cd 100644
--- a/lisp/replace.el
+++ b/lisp/replace.el
@@ -38,8 +38,12 @@
38 38
39(defcustom query-replace-interactive nil 39(defcustom query-replace-interactive nil
40 "Non-nil means `query-replace' uses the last search string. 40 "Non-nil means `query-replace' uses the last search string.
41That becomes the \"string to replace\"." 41That becomes the \"string to replace\".
42 :type 'boolean 42If value is `initial', the last search string is inserted into
43the minibuffer as an initial value for \"string to replace\"."
44 :type '(choice (const :tag "Off" nil)
45 (const :tag "Initial content" initial)
46 (other :tag "Use default value" t))
43 :group 'matching) 47 :group 'matching)
44 48
45(defcustom query-replace-from-history-variable 'query-replace-history 49(defcustom query-replace-from-history-variable 'query-replace-history
@@ -70,16 +74,20 @@ strings or patterns."
70 (unless noerror 74 (unless noerror
71 (barf-if-buffer-read-only)) 75 (barf-if-buffer-read-only))
72 (let (from to) 76 (let (from to)
73 (if query-replace-interactive 77 (if (and query-replace-interactive
74 (setq from (car (if regexp-flag regexp-search-ring search-ring))) 78 (not (eq query-replace-interactive 'initial)))
79 (setq from (car (if regexp-flag regexp-search-ring search-ring)))
75 ;; The save-excursion here is in case the user marks and copies 80 ;; The save-excursion here is in case the user marks and copies
76 ;; a region in order to specify the minibuffer input. 81 ;; a region in order to specify the minibuffer input.
77 ;; That should not clobber the region for the query-replace itself. 82 ;; That should not clobber the region for the query-replace itself.
78 (save-excursion 83 (save-excursion
79 (setq from (read-from-minibuffer (format "%s: " string) 84 (setq from (read-from-minibuffer
80 nil nil nil 85 (format "%s: " string)
81 query-replace-from-history-variable 86 (if (eq query-replace-interactive 'initial)
82 nil t))) 87 (car (if regexp-flag regexp-search-ring search-ring)))
88 nil nil
89 query-replace-from-history-variable
90 nil t)))
83 ;; Warn if user types \n or \t, but don't reject the input. 91 ;; Warn if user types \n or \t, but don't reject the input.
84 (and regexp-flag 92 (and regexp-flag
85 (string-match "\\(\\`\\|[^\\]\\)\\(\\\\\\\\\\)*\\(\\\\[nt]\\)" from) 93 (string-match "\\(\\`\\|[^\\]\\)\\(\\\\\\\\\\)*\\(\\\\[nt]\\)" from)
@@ -92,9 +100,10 @@ strings or patterns."
92 (sit-for 2)))) 100 (sit-for 2))))
93 101
94 (save-excursion 102 (save-excursion
95 (setq to (read-from-minibuffer (format "%s %s with: " string from) 103 (setq to (read-from-minibuffer
96 nil nil nil 104 (format "%s %s with: " string from)
97 query-replace-to-history-variable from t))) 105 nil nil nil
106 query-replace-to-history-variable from t)))
98 (when (and regexp-flag 107 (when (and regexp-flag
99 (string-match "\\(\\`\\|[^\\]\\)\\(\\\\\\\\\\)*\\\\[,#]" to)) 108 (string-match "\\(\\`\\|[^\\]\\)\\(\\\\\\\\\\)*\\\\[,#]" to))
100 (let (pos list char) 109 (let (pos list char)
@@ -109,23 +118,18 @@ strings or patterns."
109 ((eq char ?\,) 118 ((eq char ?\,)
110 (setq pos (read-from-string to)) 119 (setq pos (read-from-string to))
111 (push `(replace-quote ,(car pos)) list) 120 (push `(replace-quote ,(car pos)) list)
112 (let ((end 121 (setq to (substring
113 ;; Swallow a space after a symbol 122 to (+ (cdr pos)
114 ;; if there is a space. 123 ;; Swallow a space after a symbol
115 (if (and (or (symbolp (car pos)) 124 ;; if there is a space.
116 ;; Swallow a space after 'foo 125 (if (string-match
117 ;; but not after (quote foo). 126 "^[^])\"] "
118 (and (eq (car-safe (car pos)) 'quote) 127 (substring to (1- (cdr pos))))
119 (= ?\( (aref to-string 0)))) 128 1 0))))))
120 (equal " " (substring to-string (cdr pos)
121 (1+ (cdr pos)))))
122 (1+ (cdr pos))
123 (cdr pos))))
124 (setq to (substring to end)))))
125 (string-match "\\(\\`\\|[^\\]\\)\\(\\\\\\\\\\)*\\\\[,#]" to))) 129 (string-match "\\(\\`\\|[^\\]\\)\\(\\\\\\\\\\)*\\\\[,#]" to)))
126 (setq to (nreverse (delete "" (cons to list))))) 130 (setq to (nreverse (delete "" (cons to list)))))
127 (replace-match-string-symbols to) 131 (replace-match-string-symbols to)
128 (setq to (cons 'replace-eval-replacement 132 (setq to (cons 'replace-eval-replacement
129 (if (> (length to) 1) 133 (if (> (length to) 1)
130 (cons 'concat to) 134 (cons 'concat to)
131 (car to))))) 135 (car to)))))
@@ -1397,7 +1401,7 @@ make, or the user didn't cancel the call."
1397 ((eq def 'act-and-exit) 1401 ((eq def 'act-and-exit)
1398 (or replaced 1402 (or replaced
1399 (setq noedit 1403 (setq noedit
1400 (replace-match-maybe-edit 1404 (replace-match-maybe-edit
1401 next-replacement nocasify literal 1405 next-replacement nocasify literal
1402 noedit real-match-data) 1406 noedit real-match-data)
1403 replace-count (1+ replace-count))) 1407 replace-count (1+ replace-count)))
diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog
new file mode 100644
index 00000000000..e19df5d2ef6
--- /dev/null
+++ b/lisp/url/ChangeLog
@@ -0,0 +1,1124 @@
12004-04-16 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * url-util.el (url-debug): Use with-current-buffer.
4
5 * url-nfs.el (url-nfs-file-attributes): Add id-format parameter.
6 (url-nfs-create-wrapper): Use new backquote syntax.
7
8 * url-https.el (url-https-file-attributes): Add id-format param.
9
10 * url-http.el (url-http-head-file-attributes)
11 (url-http-file-attributes): Add id-format parameter.
12
13 * url-handlers.el: Use new find-file-hook.
14 (url-file-attributes): Add id-format parameter.
15
16 * url-file.el (url-file-create-wrapper): Use new backquote syntax.
17 (url-file-file-attributes): Add id-format parameter.
18
19 * url-dav.el: Use with-current-buffer.
20 (url-dav-process-response): Fix regexps and spurious quote.
21 (url-dav-file-attributes): Add id-format param.
22
232004-04-12 Stefan Monnier <monnier@iro.umontreal.ca>
24
25 * url.el (url-retrieve): Use with-current-buffer.
26
27 * url-http.el (url-http-parse-headers, url-http-file-exists-p):
28 Remove unused var `version'.
29
30 * url-handlers.el (url-handler-mode): New minor mode.
31 (url-setup-file-name-handlers): Remove.
32
332004-04-12 John Paul Wallington <jpw@gnu.org>
34
35 * url-cookie.el (url-cookie-handle-set-cookie): Replace calls
36 to obsolete `assoc-ignore-case' with calls to `assoc-string'.
37
382004-04-11 Dave Love <fx@gnu.org>
39
40 * url-mailto.el (url-mailto):
41 * url-history.el (url-history-setup-save-timer):
42 * url-cookie.el (url-cookie-setup-save-timer): Avoid warnings.
43
44 * url-file.el (url-file-build-filename): Don't use
45 directory-sep-char.
46
47 * url-auth.el (url-register-auth-scheme): Fix `format' call.
48
49 * url-about.el (url-scheme-registry): Defvar.
50 (url-about): Use text/plain.
51
52 * url-vars.el (cl): Don't require.
53 (url): Add :version.
54 (url-bug-address): Use bug-gnu-emacs.
55
56 * url-util.el (url-hexify-string): Don't give multibyte error
57 for char <16.
58 (mail-header-extract): Autoload.
59
60 * url-parse.el: Doc fixes.
61
62 * url-ldap.el (ldap): Require.
63 (url-ldap): Fix `format' call.
64 (url-ldap-certificate-formatter): Avoid warning.
65
66 * url-https.el (url-https-create-secure-wrapper): Use modern backquotes.
67
68 * url-dav.el (url-dav-rename-file): Fix args of `signal'.
69 (url-intersection): New.
70 (url-dav-supported-p): Use it.
71 (url-dav-save-resource): Declare url-http-response-status special.
72
73 * url-cache.el (url-util): Require.
74
752004-04-10 Miles Bader <miles@gnu.org>
76
77 RCS keyword removal (only non-comment changes are enumerated here):
78
79 * url-vars.el (url-version): Use the constant string "Emacs"
80 instead of calculating something from the RCS `State' keyword
81 [the latter is almost entirely useless anyway].
82
832004-04-03 Stefan Monnier <monnier@iro.umontreal.ca>
84
85 * url-methods.el:
86 * url-parse.el: Don't require url-auto.
87
882004-04-03 Stefan Monnier <monnier@iro.umontreal.ca>
89
90 * url: Imported the URL package from its own CVS repository into Emacs.
91
92===========================================================================
93===========================================================================
94 Copy of the ChangeLog file from URL's own CVS repository:
95===========================================================================
96===========================================================================
97
982003-07-16 Dave Love <fx@gnu.org>
99
100 * lisp/url.el (url-retrieve-synchronously): Revert last change.
101 Should be revisited.
102
1032003-06-26 Sam Steingold <sds@gnu.org>
104
105 * lisp/url-handlers.el (url-handlers-create-wrapper): Do not call
106 method on invalid urls.
107
1082003-05-29 Dave Love <fx@gnu.org>
109
110 * lisp/url.el (url-retrieve-synchronously): Use sleep-for, not
111 sit-for. From monnier@gnu.org.
112
1132002-11-04 Walter C. Pelissero <walter@pelissero.org>
114
115 * lisp/url-methods.el (url-scheme-register-proxy): Make sure to convert
116 port numbers to integers when creating the URL objects for proxies.
117
1182002-10-29 William M. Perry <wmperry@gnu.org>
119
120 * lisp/url-http.el (url-http-parse-headers): When doing a
121 redirect, some broken software (sourceforge) sends a redirect to
122 '/', which is blatantly illegal (see section 14.30 of the HTTP/1.1
123 specification). I wish we could deal with such lame software
124 appropriately (spank the authors), but this is the web, so we have
125 to kow-tow to the servers.
126
1272002-10-27 William M. Perry <wmperry@gnu.org>
128
129 * lisp/url-http.el (url-http-create-request): If we are talking to
130 the default port for a the selected protocol, do NOT send the port
131 in the HOST header. This fixes the login page at sourceforge.
132
1332002-09-17 William M. Perry <wmperry@gnu.org>
134
135 * lisp/url-http.el (url-http-handle-cookies): New function to deal
136 with cookie headers.
137 (url-http-parse-headers): Call `url-http-handle-cookies' here so
138 that cookie additions and deletions get handled immediately.
139 This is so that sites that set cookies while doing redirects
140 (my.yahoo.com, outlook web access, etc) work. This should also
141 fix sites that delete cookies on invalid access or other error
142 pages the user might not actually see.
143 (url-http-parse-headers): Silently convert non-HEAD and non-GET
144 methods to GET in redirects. Too many web sites do this now, and
145 it is just likely to confuse users.
146
1472002-05-17 Dave Love <fx@gnu.org>
148
149 * texi/url.txi: Start making it vaguely useful.
150
151 * texi/Makefile.in (install): Cope with Debian install-info.
152 From Kai.Grossjohann@CS.Uni-Dortmund.DE (Kai Großjohann).
153
1542002-04-22 Dave Love <fx@gnu.org>
155
156 * lisp/url-misc.el (man): Autoload to avoid warning.
157 (url-man): Don't require man here.
158 (url-data): Generalize in line with the RFC.
159
160 * lisp/url-gw.el (url-open-stream): Remove obsolete `tcp' case.
161
162 * lisp/url-vars.el: Doc fixes.
163 (url-mime-charset-string): New function.
164 (url-mime-charset-string): Use it to set the variable.
165 (url-set-mime-charset-string): New function.
166 (set-language-environment-hook): Use it.
167 (url-vars-unload-hook): New function.
168
169 * lisp/url-cookie.el (url-header-comparison): Delete.
170 (url-cookie-handle-set-cookie): Use assoc-ignore-case to avoid assoc*.
171 (url-cookie-save-interval): Make value agree with doc.
172
173 * lisp/url.el: Doc fixes.
174 (url-mm-callback): Don't call mm-destroy-parts immediately for
175 external viewing -- set up a process sentinel.
176
1772002-02-02 William M. Perry <wmperry@gnu.org>
178
179 * lisp/Makefile.in (SOURCES): Remove mule-sysdp.el from the build rules.
180
1812001-12-12 William M. Perry <wmperry@gnu.org>
182
183 * lisp/url-vars.el (url-nonrelative-link): Patch from Stefan
184 Monnier to use ` instead of ^ to match the relative link.
185
1862001-12-10 William M. Perry <wmperry@gnu.org>
187
188 * lisp/url-dav.el (url-dav-file-attributes): Fix bad call to
189 plist-get (reversed args).
190
191 * lisp/url-file.el (url-file-build-filename): Make sure that we
192 have a parsed URL in this function.
193
1942002-01-22 Dave Love <fx@gnu.org>
195
196 * lisp/url-cache.el (url-cache-file-writable-p): Doc fix.
197
198 * lisp/url-imap.el (url-imap): Maybe disable multibyte.
199 Bind coding-system-for-read. Require mm-util.
200
201 * lisp/url.el (url-do-setup): Use (featurep 'xemacs).
202
203 * lisp/mule-sysdp.el: Removed (obsolete).
204
2052001-12-09 William M. Perry <wmperry@gnu.org>
206
207 * lisp/url-dav.el (url-dav-delete-something): Utility macro to
208 remove an arbitrary resource.
209 (url-dav-delete-directory): Use it.
210 (url-dav-delete-file): Ditto.
211 (url-dav-make-directory): New function.
212 (url-dav-rename-file): New function.
213 (url-dav-register-handler): New function to easily register a
214 WebDAV-specific file-name-handler operation.
215 (url-dav-file-name-all-completions, url-dav-file-name-completion):
216 New functions that allow file-name completion for WebDAV resources.
217
2182001-12-08 William M. Perry <wmperry@gnu.org>
219
220 * lisp/url-dav.el (url-dav-directory-files): New function to
221 mimic `directory-files' for WebDAV.
222 (url-dav-delete-directory): New function to mimic
223 `delete-directory' for WebDAV.
224
2252001-12-06 William M. Perry <wmperry@gnu.org>
226
227 * lisp/url-dav.el (url-dav-process-DAV:locktoken): Parse the
228 DAV:locktoken hrefs into a usable format.
229 (url-dav-process-response): Use an unwind-protect to make sure
230 that we clean up the buffer, even if there is a parsing error.
231 (url-dav-request): New function to act as the main entry point for
232 making DAV requests. Takes care of building the XML document with
233 appropriate namespaces, depth, etc, and parses the results.
234 (url-dav-get-properties): Use new url-dav-request function.
235 This is now just a thin wrapper around that to use PROPFIND and set any
236 extra properties we are looking for.
237 (url-dav-unlock-resource): New function to release a lock given a
238 URL and a lock-token.
239 (url-dav-process-DAV:getlastmodified)
240 (url-dav-process-DAV:creationdate)
241 (url-dav-process-DAV:iscollection)
242 (url-dav-process-DAV:ishidden): Fix typos! Its url-dav-*, not
243 url-dave-*!
244 (url-dav-active-locks): New function to get a list of all the
245 active locks for a resource.
246 (url-dav-save-resource): New function to actually save a resource
247 using the PUT method. I can now successfully save files to an
248 HTTP server with some manual steps from a lisp-interaction buffer.
249
250 * lisp/url-http.el (url-http-wait-for-headers-change-function):
251 Special case the 204/205 response codes. Some servers do not
252 send back a 0 content-length for these, and we would hang.
253 (url-http-parse-headers): Mark 204/205 response codes as
254 'successful' so that the callbacks get activated.
255 (url-http-options): Fix unbound variable usage.
256
257 * lisp/url-dav.el: Added full copyright information.
258 (url-dav-process-response): Make sure that we create a DAV:status
259 property when parsing a singleton response.
260 (url-dav-file-attributes): If the properties returned did not have
261 a succesful HTTP response code, then ignore them and use the
262 HEAD-based attributes.
263
264 * lisp/vc-dav.el: Added full copyright information.
265
266 * lisp/url-dav.el (url-dav-process-supportedlock-property):
267 Deal with text nodes in DAV:supportedlock nodes.
268 (url-dav-file-attributes-mode-string): This now gets the entire
269 property list instead of just the DAV:supportedlock node.
270 (url-dav-file-attributes): Make sure to pass the whole list in.
271 (url-dav-file-attributes-mode-string): Now properly sets do 'd' mode.
272 (url-dav-file-attributes-mode-string): Now uses the Apache mod_dav
273 'executable' bit to set the 'x' mode. See `mod_dav's custom
274 properties' at http://www.webdav.org/mod_dav/ for more details.
275 (url-dav-find-parser): New function to find the proper parser for
276 a node-type. Looks for
277 url-dav-process-XXX (url-dav-process-DAV:prop), otherwise falls
278 back to using url-dav-node-text. Caches the results on the nodes
279 symbol name.
280 (url-dav-dispatch-node): Utility routine to call a nodes handler easily.
281 (url-dav-process-*): Rename most of the handlers and made them
282 use url-dav-dispatch-node where appropriate.
283 (url-dav-process-DAV:prop): Instead of using the dav-data-type
284 property to dispatch the node, now uses dav-dispatch-node so that
285 it is easy to add parsers for special nodes.
286 (url-dav-process-DAV:depth, url-dav-process-DAV:resourcetype)
287 (url-dav-process-DAV:locktype, url-dav-process-DAV:lockscope)
288 (url-dav-process-DAV:getcontentlength)
289 (url-dave-process-DAV:getlastmodified)
290 (url-dave-process-DAV:creationdate)
291 (url-dave-process-DAV:iscollection)
292 (url-dave-process-DAV:ishidden): Aliases for the generic
293 url-dav-process-foo-property routines.
294 (url-dav-process-DAV:activelock)
295 (url-dav-process-DAV:lockdiscovery): Can now correctly parse
296 DAV:lockdiscovery nodes, so that we can find out who has a
297 resource locked and properly parse the reponse to a LOCK request.
298 (url-dav-process-DAV:status): Now parses ou the numeric status
299 from the HTTP response line.
300 (url-dav-process-response): New function to handle all the
301 parsing of an XML response from WebDAV. This handles all the
302 logic of checking the response content-type to make sure it is
303 XML, parses the tree, and interprets the tree.
304 (url-dav-process-response): Make sure that all responses look
305 like a DAV:multistatus response, even if we get a singleton
306 response back. This will just make the upper layer logic simpler.
307 (url-dav-get-properties): New optional argument NAMESPACES that
308 specifies what namespaces to use in the XML request.
309 (url-dav-get-properties): Got rid of the D: namespace in
310 requests. It doesn't save that much space. Just use DAV:
311 (url-dav-lock-identifier): New variable that should hold a URI
312 pointing to contact information for the user. This will be used
313 as the contents of the DAV:owner/DAV:href tag to identify the
314 owner of a LOCK when requesting it. This will be shown to other
315 users when the DAV:lockdiscovery property is requested, so make
316 sure you are comfortable with it leaking to the outside world.
317 (url-dav-lock-resource): New function to LOCK a dav resource.
318
3192001-12-05 William M. Perry <wmperry@gnu.org>
320
321 * lisp/url-dav.el (url-dav-get-properties): New argument
322 ATTRIBUTES that allows you to ask for specific properties instead
323 of getting all properties via DAV:allprop.
324
325 * lisp/url-http.el (url-http-real-basic-auth-storage):
326 New variable for normal HTTP basic authentication.
327 (url-http-proxy-basic-auth-storage): New variable for HTTP proxy
328 basic authentication.
329 (url-http-handle-authentication): Follow new semantics for
330 url-basic-auth-storage.
331
332 * lisp/url-auth.el (url-basic-auth-storage): Change meaning of
333 this variable. It is now a symbol pointing to where we really
334 want to store the authorization information. This fixes proxy
335 auth and normal basic auth because of some local bindings that were
336 making it impossible to store the credentials in the global binding.
337 (url-basic-auth): Make sure we dereference url-basic-auth-storage
338 everywhere.
339
340 * lisp/url-util.el (url-debug): Add new types 'dav and
341 'retrieval to the customization list.
342
343 * lisp/url.el (url-retrieve-synchronously): Put in some debugging
344 statements.
345
346 * lisp/url-http.el (url-http-head-file-attributes): Rename old
347 url-http-file-attributes so that we can have a smarter one that
348 tries WebDAV first, then HEAD.
349 (url-http-file-attributes): New smart version that tries WebDAV first.
350 (url-http-options): New function that returns information gleaned
351 from an OPTIONS request for a URL. Returns a property list
352 returning the methods supported for the resource, what DAV and
353 DASL levels are supported, p3p information, and whether
354 byte-ranges are supported or not.
355 (url-http-wait-for-headers-change-function): If we got a 0-byte
356 content-length, activate the callback immediately.
357 (url-http-wait-for-headers-change-function): For content-length
358 responses with actual body-data in the chunk we are handling, call
359 url-http-content-length-after-change-function with the remaining
360 data. Otherwise we can deadlock if the headers and the entire
361 body exist arrive in one chunk.
362
363 * lisp/url-dav.el: New file to contain the WebDAV
364 (http://www.webdav.org/) implementation.
365 (url-dav-supported-p): Cheap way to figure out whether we will be
366 able to do DAV at all. We rely on the XML parser expanding
367 namespaces for us, and currently you need a patched version of
368 xml.el to do this. Patch sent to author for consideration.
369 (url-dav-file-attributes): Much more complete version of
370 `file-attributes' using the WebDAV PROPFIND method. Now correctly
371 finds out whether something is a directory (a WebDAV collection),
372 the last modification time, and permissions (based on the
373 DAV:supportedlock information).
374 (url-dav-get-properties): Generic interface to get WebDAV
375 properties for a URL. Can specify an optional `depth' parameter
376 to tell the web server how many directory (collection) levels to
377 recurse when retrieving the property lists. Returns an assoc
378 list keyed off of the resource, the cdr of which is a property list.
379 (url-dav-datatype-attribute): We support the XML-Data note
380 (http://www.w3.org/TR/1998/NOTE-XML-data) to figure out what the
381 datatypes of attributes are. Currently only date, dateTime, int,
382 number, float, boolean, and uri are supported.
383
3842001-12-04 William M. Perry <wmperry@gnu.org>
385
386 * lisp/url-handlers.el (file-name-absolute-p): New hooked
387 version. If the filename matches our regexp, then it is always
388 absolute, so just return `t'.
389 (expand-file-name): New hooked version. If the fragment is an
390 absolute file or URL, then expand it relative to '/'.
391 (url-handler-regexp): New regexp for specific schemes that we
392 want the file-name-handlers to work off of.
393 (url-setup-file-name-handlers): Use it when installing the handlers.
394
395 * lisp/url-http.el (url-http-find-free-connection): Better logging
396 about whether we are reusing an existing connection or not.
397
398 * lisp/url-methods.el (url-scheme-register-proxy): Fix bad call
399 to string-match instead of match-string (and with reversed
400 arguments even).
401
402 * lisp/url-http.el (url-http-debug): Change to now use the
403 generic url-debug function to do the actual logging. Still a
404 separate function so that we can do our magic on the network
405 connection if the user quits while we are downloading.
406
407 * lisp/url-handlers.el (url-file-handler): Now logs the result of
408 the hooked or real call.
409
410 * lisp/url-util.el (url-debug): New function for generic debug logging.
411
4122001-11-28 William M. Perry <wmperry@gnu.org>
413
414 * lisp/url-imap.el (url-imap-open-host): Use backquote.
415 (url-imap): Now switches to 'login as the imap authenticator if
416 the URL provides a username and password.
417
418 * lisp/url-handlers.el (url-setup-file-name-handlers): Use cl &
419 push to replace some strange logic in here.
420 (url-run-real-handler): New function to run the real hooks in
421 case we get a false positive or an operation that we do not
422 support. The old way disabled _ALL_ file-name-handlers when
423 we hit something we didn't understand - this disables JUST us.
424 (url-file-handler): Remove the logic about removing the leading
425 '/' off of the first argument... it may not be safe to always
426 assume that the first argument is the one we are acting on -
427 `default' is the second argument for expand-file-name for example.
428 (url-setup-file-name-handlers): Use url-nonrelative-link
429 directly. This means that you must type in the URL directly
430 without prefixing it with a '/'.
431
432 (gnus-cache-articles-in-group "nnml+mail:comp.emacs-devel")
433
434 Ends up calling (expand-file-name "nnml+mail:comp.emacs-devel" ...)
435 which activates us (because 'nnml+mail' _is_ a valid scheme name
436 for a URI). We get thoroughly confused and end up returning
437 `nil' when we shouldn't.
438
4392001-11-26 William M. Perry <wmperry@gnu.org>
440
441 * lisp/url-handlers.el (file-writable-p): Add NULL handler for
442 this so that visiting a URL directly will work.
443 (file-symlink-p): Ditto.
444 (url-insert-file-contents): If `visit' is non-nil then make sure
445 we set buffer-file-name. After these changes you can visit
446 http://www.gnu.org/ directly from the minibuffer.
447 (url-insert-file-contents): When inserting the file contents,
448 use a save-excursion so that we behave just like the original.
449
4502001-11-25 William M. Perry <wmperry@gnu.org>
451
452 * lisp/url-util.el (url-hexify-string): Fix bad use of mapconcat.
453
4542001-11-24 William M. Perry <wmperry@gnu.org>
455
456 * lisp/url-about.el (url-about): New loader scheme to handle
457 about:foo URLs. Automatically tries to find a `url-about-foo'
458 function to display the actual data.
459 (url-about-protocols): Implement about:protocols
460
461 * lisp/url-http.el (url-http): Make sure that we signal an error
462 when we cannot open a network connection for whatever reason.
463 Before, it would just silently clean up after itself and the user
464 got absolutely no indication that an error had occured. If the
465 error should truly be ignored, the caller should do that for us.
466 (url-http-chunked-encoding-after-change-function): Doh! Need to
467 user marker-position in some log messages now that
468 url-http-chunked-start is a marker.
469
4702001-11-22 William M. Perry <wmperry@gnu.org>
471
472 * lisp/url-https.el: Fixed definition of url-https - was using the
473 wrong signature. Too much cut & paste.
474 (url-https-create-secure-wrapper): Fix so that url-https works
475 at all. Was not taking a null `method' into account when calling
476 the wrapped function so url-https tried to call url-http-nil. *sigh*
477
478 * lisp/url-http.el
479 (url-http-chunked-encoding-after-change-function): Add some
480 feedback when not debugging about what content-type and chunk # we
481 are reading.
482 (url-http-chunked-encoding-after-change-function): Use a marker
483 for url-http-chunked-start so that we can safely delete the
484 chunk-tokens instead of just marking them as invisible.
485 (url-http-chunked-encoding-after-change-function): Actually delete
486 the chunk-tokens. Now that we are not run from 'real'
487 after-change functions, this is safe, and the right thing to do.
488 Otherwise the HTML parser still saw them and inferred all sorts of
489 bad things about the document (ie: nothing had a title!)
490
4912001-11-21 William M. Perry <wmperry@gnu.org>
492
493 * lisp/url-http.el (url-http-debug): Document this variable.
494 People other than I might want to use it.
495 (url-http-debug): Put some code in here to check quit-flag
496 directly. When the chunked encoding went into a tight spin, your
497 Emacs would be wedged forever. This short-circuits all the
498 after-change functions and signals an error.
499 (url-http-debug): If url-http-debug is non-nil and non-t, then log
500 the debug messages using `message' as well as sending them to the
501 buffer.
502 (url-http-chunked-encoding-after-change-function): Got rid of the
503 no-initial-crlf. Had an epiphany and I can just infer this from
504 url-http-chunked-counter being 0.
505 (url-http-chunked-encoding-after-change-function): Move the debug
506 statement about reading chunk #foo into the loop so that each
507 chunk will have a log message associated with it.
508 (url-http-chunked-encoding-after-change-function): Make sure to
509 set read-next-chunk to nil when the regular expression match fails
510 to fire. Otherwise we could loop forever.
511 (url-http-chunked-encoding-after-change-function): Tweak the
512 regular expression to be a little less greedy when looking for a chunk.
513 (url-http-wait-for-headers-change-function): Remove the last
514 argument when calling
515 url-http-chunked-encoding-after-change-function. It is no longer
516 needed. I should use my brain sometime.
517
518 * lisp/url-vars.el (and): Fix feature test for xemacs and
519 coding-system-list behaviour.
520
521 * lisp/url-http.el
522 (url-http-chunked-encoding-after-change-function): Add optional
523 no-initial-crlf flag that modifies the regular expression.
524 This is only set from url-http-wait-for-headers-change-function so that
525 the initial CRLF in the HTTP headers is not swallowed.
526 (url-http-chunked-encoding-after-change-function): Fix a few
527 off-by-one errors by using (match-end 0) instead of 1.
528 (url-http-chunked-encoding-after-change-function): Add a few
529 url-http-debug calls to help track down problems in the chunked
530 encoding.
531 (url-http-chunked-encoding-after-change-function): The chunk
532 reading in here is now in a while loop so that if Emacs feeds us a
533 chunk of data that happens to contain more than one 'chunk'
534 delimiter, we behave correctly.
535 (url-http-wait-for-headers-change-function): Make sure that we
536 pass no-initial-crlf to
537 url-http-chunked-encoding-after-change-function when passing
538 initial data to the decoder.
539 (url-http-generic-filter): url-http-debug statement so we can tell
540 when/where our after-change-functions are being called.
541
5422001-10-11 Dave Love <fx@gnu.org>
543
544 * lisp/url-handlers.el: Doc fixes.
545 (string-match): Use (featurep 'xemacs).
546
547 * lisp/url-methods.el (url-scheme-get-property): Avoid `mapc'.
548
549 * lisp/url-proxy.el (url-find-proxy-for-url): Avoid `pop'.
550
551 * lisp/url-vars.el (url-running-xemacs): Delete.
552 (url-gateway-unplugged): New variable.
553
554 * lisp/url-gw.el (url-open-stream): Use url-gateway-unplugged.
555 Comment out OS/2 stuff.
556
5572001-10-05 Dave Love <fx@gnu.org>
558
559 * lisp/url-mailto.el (url-mailto): Don't send auto-generated mail
560 without confirmation.
561
5622001-10-02 Dave Love <fx@gnu.org>
563
564 * lisp/url-http.el (url-http-create-request): Check cache for
565 proxy-obj, if defined, rather than url.
566 (url-http): Use dolist, not mapc (runtime cl dependency).
567
568 * lisp/url-methods.el: Maybe require cl at runtime.
569 (url-scheme-register-proxy): Fix fetching from environment.
570 Don't concat a number.
571
5722001-10-01 Dave Love <fx@gnu.org>
573
574 * lisp/url-parse.el: Use modern backquote syntax.
575
576 * lisp/url-vars.el (url-uncompressor-alist): Add bzip2.
577 (url-mail-command): Prefer compose-mail.
578 (tcp-binary-process-input-services): Comment out.
579 (url-working-buffer): New constant.
580
581 * lisp/url-util.el (url-extract-mime-headers): New function.
582
583 * lisp/url-mailto.el (url-mailto): Set source-url. Don't add
584 User-Agent.
585
5862001-09-20 Dave Love <fx@gnu.org>
587
588 * lisp/url-http.el (url-http-create-request): Don't concat a number.
589
5902001-06-05 Dave Love <fx@gnu.org>
591
592 * lisp/url.el (url-do-setup): Doc fix. Don't try to frob
593 tcp-binary-process-input-services. Remove function wrapper for lambda.
594 (url-retrieve): Barf with sensible message if url-type is null.
595
596 * lisp/url-http.el (url-http): Don't try to set process
597 coding-system here -- done in url-gw.
598
599 * lisp/url-gw.el (url-gw-inhibit-code-conversion): Remove.
600 (url-open-stream): Bind coding-system-for{read,write} when setting
601 up the connexion. Don't call url-gw-inhibit-code-conversion.
602
6032001-05-24 William M. Perry <wmperry@gnu.org>
604
605 * lisp/url.el (url-retrieve-synchronously): Avoid accept-process-output
606 in url-retrieve-synchronously.
607
6082001-05-23 William M. Perry <wmperry@gnu.org>
609
610 * lisp/url.el (url-retrieve-synchronously): Don't put a timeout on
611 accept-process-output. This is evidently causing hangs in Emacs
612 21 when viewing complex pages with images or stylesheets.
613 www.yahoo.com is now viewable.
614
615 * lisp/url-gw.el (url-open-stream): Avoid using mule-sysdp
616 (mule-inhibit-code-conversion) and just have a local function that
617 does this minimal cruft.
618 (url-gw-inhibit-code-conversion): New function to turn off code
619 conversion in a process.
620
6212001-05-22 William M. Perry <wmperry@gnu.org>
622
623 * lisp/url.el (url-retrieve-synchronously): Use lexical-let so
624 that we can allow multiple asynch retrievals to happen at once.
625 (url-retrieve-synchronously): Use a much smaller timeout when
626 doing the accept-process-output. This gets rid of the long delays
627 if you are on a fast net connection and retrieve small documents
628 that finish asynchronously before the first accept-process-output
629 can be run. All hail broadband and 100Mb in the house!
630 (url-retrieve-synchronously): Add documentation for this function.
631 (url-retrieve): Ditto.
632 (url-mm-url): Ditto.
633
634 * lisp/url-vars.el: Replaced `HTTP/1.0' with just `HTTP' in some
635 documentation strings. Ok, so I'm anal.
636
637 * lisp/url-methods.el (url-scheme-methods): Add default methods
638 for file-directory-p and file-truename.
639
6402001-05-22 Dave Love <fx@gnu.org>
641
642 * lisp/url-auth.el (url-warn): Autoload.
643
644 * lisp/url-proxy.el (url-warn): Autoload.
645
646 * lisp/url-nfs.el: Fix `file-truname' typo.
647
648 * lisp/url-news.el: Require cl when compiling.
649 (url-warn, gnus-group-read-ephemeral-group): Autoload.
650 (url-nntp-default-port, url-news-default-port, url-nntp): Delete.
651 (url-news-fetch-newsgroup): Declare gnus-group-buffer special.
652
653 * lisp/url-util.el (mule-decode-string): Don't autoload.
654 (url-hexify-string): Just barf on multibyte characters.
655 (url-generate-unique-filename): New function.
656
657 * lisp/url-file.el (url-file): Use url-generate-unique-filename,
658 not mm-generate-unique-filename.
659
660 * lisp/url-http.el: Declare things special in various places.
661 (url-http-activate-callback): Don't set
662 url-http-real-after-change-function.
663
6642001-05-22 William M. Perry <wmperry@gnu.org>
665
666 * lisp/url-http.el (url-http-attempt-keepalives): New variable to
667 control whether we try to do keep-alives for our connections.
668 (url-http-version): New variable to control whether we advertise
669 ourselves as an HTTP/1.1 client or not. This can be useful for
670 avoiding chunked encoding, and other 1.1 features we may not have
671 fully implemented yet.
672 (url-http-create-request): Honor the new variables.
673
6742001-05-21 Dave Love <fx@gnu.org>
675
676 * lisp/url-vars.el (mm-mime-mule-charset-alist): Don't readjust it
677 in XEmacs.
678 (url-mime-charset-string): Don't reverse the list before sorting.
679
6802001-05-17 William M. Perry <wmperry@gnu.org>
681
682 * lisp/url-http.el (url-http-generic-filter): Avoid using
683 after-change-functions natively. There are just too many ways
684 that this screws up in Emacs 21. Use a filter function on the
685 process instead, and call the hook on
686 url-http-after-change-function manually. [Actually, it will work
687 in Emacs 21, but one problem that has been fixed in Emacs 21
688 exists in Emacs 20. -- fx]
689
690 * lisp/url-vars.el (url-mime-charset-string): sort-coding-systems
691 does not exist on older versions of Emacs, or any version of
692 XEmacs. Do not call it unless it is bound.
693
6942001-05-17 Dave Love <fx@gnu.org>
695
696 * lisp/url-http.el (url-http-create-request): Fix non-GET requests.
697
6982001-05-16 Dave Love <fx@gnu.org>
699
700 * lisp/url-vars.el: Doc fixes. Require mm-util.
701 (url-mime-charset-string): New variable.
702
703 * lisp/url-http.el: Doc fixes.
704 (url-http-create-request): Rearrange how we assemble the request.
705 Avoid generating bogus requests with an empty real-fname.
706 (url-http-handle-authentication): Declare status and success special.
707 (url-http): Call mm-disable-multibyte. Set process buffer's
708 coding systems to binary.
709
710 * lisp/url-misc.el (url-data): Call mm-disable-multibyte.
711
712 * lisp/url-file.el: Don't require mule-sysdp. Fix `file-truname' typo.
713 (url-file-find-possibly-compressed-file): Doc fix.
714 (url-file): Bind coding-system-for-read. Call mm-disable-multibyte.
715
716 * lisp/url-cache.el: Don't require mule-sysdp.
717 (url-store-in-cache): Avoid mule-write-region-no-coding-system.
718
719 * lisp/url.el: Don't require mule-sysdp.
720 (url-retrieve): Only set text properties if url is a string.
721
7222001-05-14 Dave Love <fx@gnu.org>
723
724 * lisp/url-http.el (url-http-create-request):
725 Declare proxy-object, proxy-info special.
726 (url-http-handle-authentication): Declare success special.
727
7282001-05-12 Dave Love <fx@gnu.org>
729
730 * lisp/url-http.el: Revert last change.
731
7322001-05-10 Dave Love <fx@gnu.org>
733
734 * lisp/url-http.el (url-http-generic-after-change-function):
735 Make it permanent-local.
736
7372001-05-05 Dave Love <fx@gnu.org>
738
739 * lisp/url-http.el: Autoload some functions.
740 (cl): Require when compiling.
741 (url-http-extra-headers): Defvar when compiling.
742 (url-http): Treat after-change-functions as a local hook.
743
744 * lisp/url-history.el (url-parse): Require.
745 (url-do-setup): Autoload.
746
747 * lisp/url-gw.el: Require url-vars. Autoload some functions.
748
749 * lisp/url-file.el: Require mailcap. Require cl when compiling.
750 Use (featurep 'xemacs).
751 (url-file-build-filename): Bind pos-index.
752 (url-file): Call url-find-file-dired, not url-dired-find-file.
753
754 * lisp/url-dired.el: Add copyright notice. Autoload some functions.
755 (url-dired-minor-mode-map): Use (featurep 'xemacs).
756 (url-dired-find-file-mouse): Use mouse-set-point, not event-point.
757 (url-find-file-dired): Rename from one version of url-dired-find-file.
758
759 * lisp/url-cid.el: Don't require widget. Require mm-decode
760 unconditionally.
761
762 * lisp/url-util.el: Autoload mule-decode-string,
763 timezone-parse-date, timezone-make-date-arpa-standard.
764 (url-unreserved-chars): Fix list per RFC 2396.
765 (url-hexify-string): Maybe string-make-unibyte.
766
767 * lisp/url-news.el: Require nntp.
768
769 * lisp/url-imap.el: Require cl when compiling. Require nnimap
770 unconditionally.
771
7722001-05-04 Dave Love <fx@gnu.org>
773
774 * lisp/url-handlers.el (url-file-local-copy): Use make-temp-file,
775 not non-existent mailcap-generate-unique-filename.
776
777 * lisp/url-privacy.el: Require url-vars. Require cl when compiling.
778
779 * lisp/url-parse.el: Require url-vars.
780 Autoload url-scheme-get-property.
781
782 * lisp/url-nfs.el: Require cl when compiling. Test for XEmacs
783 with featurep.
784
785 * lisp/url-mailto.el: Require cl when compiling.
786
787 * lisp/url-cookie.el (url-cookie-handle-set-cookie):
788 Call url-parse-args, not url-util-parse-args.
789
790 * lisp/url-cache.el (url-cache-expired): Remove bogus `return'.
791
7922001-04-09 Dave Love <fx@gnu.org>
793
794 * lisp/mule-sysdp.el (mule-detect-coding-version)
795 (mule-code-convert-region, mule-inhibit-code-conversion)
796 (mule-write-region-no-coding-system, mule-encode-string)
797 (mule-decode-string, mule-truncate-string)
798 (mule-find-charset-region, mule-coding-system-name)
799 (mule-find-coding-system, mule-make-iso-character): Grok Mule 5.0.
800 [There must be a better way.]
801 (mule-coding-system-p, string-width): Use defalias.
802
8032001-01-03 Sam Steingold <sds@gnu.org>
804
805 * lisp/url-http.el (url-http-wait-for-headers-change-function):
806 set `url-http-end-of-headers' to 0 for HTTP 0.9
807
8082001-01-02 Sam Steingold <sds@gnu.org>
809
810 * lisp/url-auth.el (provide): `url-auth', not `urlauth'
811
8122000-12-22 Dave Love <fx@gnu.org>
813
814 * lisp/url-history.el (url): Don't require (to avoid recursion).
815 (cl): Require when compiling.
816
817 * lisp/url-http.el (url-auth): Require.
818 (url-http-handle-authentication): Fix typo.
819
820 * lisp/url-cookie.el (url-cookie-setup-save-timer): Fix typo.
821
8222000-12-20 Dave Love <fx@gnu.org>
823
824 * lisp/url.el: Require mm-decode, mm-view when compiling.
825 <not (fboundp 'puthash)>: Define puthash and
826 autoload other has functions rather than using cl-...hash.
827 (url-warn): Define.
828
829 * lisp/url-ns.el, lisp/url-methods.el, lisp/url-http.el:
830 Avoid cl-...hash functions.
831
832 * lisp/url-history.el: Avoid cl-...hash functions.
833 (url): Require.
834
835 * lisp/url-gw.el, lisp/url-cookie.el: Require cl only when compiling.
836
8372000-10-03 William M. Perry <wmperry@aventail.com>
838
839 * lisp/url-util.el (url-get-url-at-point): Guard against 'url'
840 getting set to nil due to bad string matching. Subsequent matches
841 would then choke because we passed string-match a nil.
842
843 * lisp/url-http.el (url-http-parse-headers): Need to make the
844 connection as 'free' when we get a 304 response (found in cache),
845 or when a keep-alive conneection timed out, it would re-parse the
846 headers and dispatch to the callback again. Eek.
847
8482000-10-02 William M. Perry <wmperry@aventail.com>
849
850 * lisp/url-http.el (url-http-chunked-encoding-after-change-function):
851 implement chunked transfer-coding.
852 (url-http-create-request): We can now advertise ourselves as a 1.1
853 compliant browser!
854
8552000-07-28 Sam Steingold <sds@gnu.org>
856
857 * lisp/url-methods.el (url-scheme-default-loader): `callback' and
858 `cbargs' are optional args (for calling from w3).
859 (url-scheme-register-proxy): Typos fixes: `url-match' replaced
860 with `string-match' and `protocol' with `scheme'.
861
8622000-07-18 Sam Steingold <sds@gnu.org>
863
864 * lisp/url-handlers.el (require 'url): For url-retrieve-synchronously.
865 * lisp/url-history.el (url-history-save-interval): Avoid circularity.
866
8672000-07-10 William M. Perry <wmperry@aventail.com>
868
869 * lisp/mule-sysdp.el (mule-make-iso-character): If we are not in
870 mule, and the character requested is > 255, then return "~"
871 instead of letting whoever call us signal an error when they try
872 to insert the character.
873 (mule-make-iso-character): Also wrap the whole thing in a
874 condition case and return "~" on error, in case make-char bombs on us.
875
876 * lisp/url-cid.el (url-cid): Fix stupid mistake in the loader
877 for cid parts.
878
879 * lisp/url-util.el (url-display-percentage): New routine that uses
880 the progress bar under XEmacs if available. Looks very sexy under
881 XEmacs/GTK hacked to use the GNOME statusbar.
882
883 * lisp/url-http.el
884 (url-http-content-length-after-change-function): Use new function
885 url-display-percentage instead of url-lazy-message.
886
8872000-01-27 William M. Perry <wmperry@aventail.com>
888
889 * lisp/url-file.el (url-file-build-filename): Work around for
890 differences in ange-ftp / efs handling of port numbers other than 21.
891
8921999-12-24 William M. Perry <wmperry@aventail.com>
893
894 * lisp/url-irc.el: Added pointer to draft specification for the
895 IRC URL so people don't think I'm crazy.
896
897 * configure.in: Checks to make sure that Gnus was found, since we
898 HAVE to have it now. Removed conditional compilation of url-cid.el
899
9001999-12-16 Eric Marsden <emarsden@mail.dotcom.fr>
901
902 * lisp/url-util.el (url-get-url-at-point): Allow URLs wrapped in
903 () to have periods at the end of the chunk.
904
9051999-12-14 William M. Perry <wmperry@aventail.com>
906
907 * lisp/url-misc.el (url-man): Implement `man' URL types.
908 (url-info): Autoload.
909 (url-man): Ditto.
910 (url-rlogin): Ditto.
911 (url-telnet): Ditto.
912 (url-tn3270): Ditto.
913 (url-generic-emulator-loader): Ditto.
914
915 * lisp/url-https.el (url-https-create-secure-wrapper): New macro
916 to wrap arbitrary `http' methods with the appropriate magic to
917 turn SSL on.
918 (file-exists-p): Use it.
919 (file-readable-p): Use it.
920 (file-attributes): Use it.
921
922 * lisp/url-news.el (url-news-fetch-newsgroup): When building the
923 server spec for Gnus, make sure we set
924 nntp-open-connection-function directly, so that other news-related
925 functions above us can set it.
926 (url-snews): Implement `snews' URLs using `nntp-open-ssl-stream'.
927 (url-nntp): Autoload.
928 (url-snews): Ditto.
929 (url-news): Ditto.
930
9311999-12-12 William M. Perry <wmperry@aventail.com>
932
933 * lisp/url-http.el (url-http-parse-response): New function to
934 parse just the HTTP response code out of the buffer, without
935 taking any other actions.
936 (url-http-wait-for-headers-change-function): Use it here when we
937 know we have an HTTP/1.x response.
938 (url-http-wait-for-headers-change-function): Special case a
939 response code of '304' or there could be some delays waiting for
940 keep-alives to time out on cached documents with no known
941 content-length on the server.
942
9431999-12-11 William M. Perry <wmperry@aventail.com>
944
945 * aclocal.m4 (AC_CHECK_CUSTOMLOADS): Don't use $(EMACS) in here -
946 the Makefile does that for us. We just need to provide what files
947 to load/functions to run.
948
949 * lisp/url-imap.el (url-imap-open-host): Need to bind
950 nnimap-server-buffer or `nnimap-open-server' chokes trying to use
951 the current buffer as the IMAP server buffer, which fails miserably.
952
9531999-12-11 Simon Josefsson <jas@pdc.kth.se>
954
955 * lisp/url-imap.el: Initial (rough) implementation for IMAP urls.
956
9571999-12-11 William M. Perry <wmperry@aventail.com>
958
959 * lisp/url-file.el (url-file-asynch-callback): Make the checks for
960 ange-ftp vs. efs calling semantics consistent, so that if someone
961 has NEITHER of them loaded, everything should still work.
962
963 * lisp/url-handlers.el (url-copy-file): Autoload.
964 (url-file-local-copy): Ditto.
965 (url-insert-file-contents): Ditto.
966 (url-setup-file-name-handlers): Ditto.
967
9681999-12-10 William M. Perry <wmperry@aventail.com>
969
970 * lisp/url-http.el (mail-parse): Since we use functions from here,
971 we should require it, eh?
972
9731999-12-10 01:57:01 Shenghuo ZHU <zsh@cs.rochester.edu>
974
975 * lisp/url-cookie.el (url-cookie-multiple-line): One line cookie
976 if nil.
977 (url-cookie-generate-header-lines): Use it.
978
9791999-12-06 William M. Perry <wmperry@aventail.com>
980
981 * lisp/mule-sysdp.el (mule-code-convert-region): Deal with Mule
982 4.1 gracefully
983
984 * lisp/url-news.el: Reimplemented news and nntp URL support.
985 No longer bothers to check for outdated Gnus versions, since this
986 will not work without them anyway.
987
9881999-12-05 Dave Love <fx@gnu.org>
989
990 * lisp/url-methods.el, lisp/url-proxy.el, lisp/url-util.el,
991 lisp/url.el:
992 Require url-parse.
993
9941999-12-05 William M. Perry <wmperry@aventail.com>
995
996 * lisp/url-http.el (url-http-find-free-connection): Spit out a
997 message when we have to contact a host so the user always gets
998 at least some feedback.
999
1000 * lisp/url-expand.el (url-expander-remove-relative-links): Moved and
1001 renamed function.
1002 (url-default-expander): Use it.
1003
1004 * lisp/url-file.el (url-file-asynch-callback): Deal with just efs-auto
1005 as well as efs.
1006 (url-file): Add default content-type of application/octet-stream if
1007 none known.
1008 (url-file): Correct bad call to url-host-is-local-p
1009
1010 * lisp/url-handlers.el (url-insert-file-contents): Emacs doesn't
1011 like buffer-substring with nil arguments.
1012 (url-copy-file): Use mm-destroy-parts instead of just killing
1013 the buffer. Use defined interfaces when available!
1014 (url-insert-file-contents): Ditto.
1015
1016 * lisp/url-http.el (url-http-create-request): Lots of changes to
1017 get proxying working.
1018
1019 * lisp/url-methods.el (url-scheme-register-proxy): New function to
1020 find and register a proxy for a specific scheme.
1021 (url-scheme-get-property): Use it when we load a URL scheme for
1022 the first time.
1023
1024 * lisp/url-util.el (url-get-url-at-point): Re-integrated
1025
10261999-12-04 William M. Perry <wmperry@aventail.com>
1027
1028 * lisp/url-file.el (url-file): Signal an error if
1029 url-file-build-filename could not find the filename.
1030
10311999-12-01 William M. Perry <wmperry@aventail.com>
1032
1033 * lisp/url.el (url-retrieve): Use url-history-update-url instead
1034 of manipulating the hash table directly.
1035
1036 * lisp/url-history.el (url-completion-function): New function to
1037 use for reading a URL with completion.
1038 (url-history-update-url): New function to hide the hashtable
1039 implementation from people inserting things into the history.
1040
10411999-11-30 William M. Perry <wmperry@aventail.com>
1042
1043 * lisp/url-proxy.el (url-proxy): Minor tweaks to get proxy support
1044 working.
1045
1046 * lisp/url-parse.el (url-generic-parse-url): Fix bad call to
1047 url-parse-args, which had changed the type of arguments it expects.
1048
1049 * lisp/url-handlers.el (url-insert-file-contents): Ditto.
1050 (url-copy-file): Ditto.
1051
1052 * lisp/url.el (url-mm-callback): Use mm-destroy-parts instead of
1053 just killing the buffer. Use defined interfaces when available!
1054
1055 * aclocal.m4 (AC_EMACS_LISP): Correctly redirect things out to
1056 AC_FD_CC so they show up in config.log
1057 (AC_EMACS_CHECK_LIB): Duh, fixed stupid mistake that would make
1058 this always return 't' instead of 'yes' on successfully finding
1059 the library.
1060
1061 * lisp/url-http.el (url-http-parse-headers): Add some
1062 DAV-specific error codes.
1063
1064 * lisp/url.el (url-retrieve): Allow pre-parsed URLs to be passed in.
1065 (url-retrieve-synchronously): Duh, make this function actually
1066 work again. Numerous problems with it, including variable name
1067 collisions - I love dynamically scoped lisps!
1068
1069 * lisp/url-nfs.el (url-nfs-create-wrapper): New function to create
1070 wrappers onto the appropriate file-based URLs for file-name-handlers.
1071
1072 * lisp/url-ftp.el: Moved the FTP stuff into it's own file - it
1073 might get messy with file-name-handlers and things.
1074
1075 * lisp/url-http.el (url-http-clean-headers): Fix problem when
1076 using 'HEAD' requests. Thou shalt not change the length of the
1077 region during an after-change-function.
1078
1079 * lisp/url-methods.el (url-scheme-methods): New variable that
1080 holds a list of the methods/variables we look for in a URL scheme.
1081 (url-scheme-get-property): Use it.
1082
10831999-11-29 William M. Perry <wmperry@aventail.com>
1084
1085 * lisp/url-http.el (url-http-file-attributes): Reimplement.
1086 (url-http-file-exists-p): Ditto.
1087
1088 * lisp/url-nfs.el: Reimplemented the `nfs' URL scheme.
1089
1090 * lisp/url-file.el (url-file-create-wrapper): New macro to create
1091 file-name-handler stubs for all the FTP/FILE stuff.
1092
1093 * lisp/url-handlers.el: New file to handle file-name-handler-alist
1094 cruft. Generic interface on top of functions that each URL
1095 loader provides, if capable.
1096
10971999-11-27 William M. Perry <wmperry@aventail.com>
1098
1099 * lisp/url-https.el: Implemented HTTPS support.
1100
11011999-11-26 William M. Perry <wmperry@aventail.com>
1102
1103 * url-privacy.el (url-setup-privacy-info): Don't rely on
1104 device-type being defined. Not going to bother redistributing
1105 devices.el for just one function.
1106
1107 * url-methods.el (url-scheme-get-property): Emacs does not have
1108 the 3rd-argument to plist-get to specify the default. *sigh*
1109
1110 * url-dired.el (add-minor-mode): Add definition for Emacs.
1111
1112 * url-http.el (url-http-generic-after-change-function):
1113 New function, since Emacs does not allow you to change the
1114 after-change-functions variable from within a function run by
1115 said hook. This just hands it off to the REAL function.
1116 Side-effect is that this now works on Emacs at all. :)
1117
1118 * Initial checkin of rewritten URL library.
1119
1120Local variables:
1121coding: utf-8
1122End:
1123
1124;; arch-tag: ac117078-3091-4533-be93-098162ac2926
diff --git a/lisp/vc-arch.el b/lisp/vc-arch.el
index a439174556e..5f24599241c 100644
--- a/lisp/vc-arch.el
+++ b/lisp/vc-arch.el
@@ -309,7 +309,8 @@ Return non-nil if FILE is unchanged."
309(defcustom vc-arch-mode-line-rewrite 309(defcustom vc-arch-mode-line-rewrite
310 '(("\\`.*--\\(.*--.*\\)--\\(v?\\).*-\\([0-9]+\\)\\'" . "\\2\\3[\\1]")) 310 '(("\\`.*--\\(.*--.*\\)--\\(v?\\).*-\\([0-9]+\\)\\'" . "\\2\\3[\\1]"))
311 "Rewrite rules to shorten Arch's revision names on the mode-line." 311 "Rewrite rules to shorten Arch's revision names on the mode-line."
312 :type '(repeat (cons regexp string))) 312 :type '(repeat (cons regexp string))
313 :group 'vc)
313 314
314(defun vc-arch-mode-line-string (file) 315(defun vc-arch-mode-line-string (file)
315 "Return string for placement in modeline by `vc-mode-line' for FILE." 316 "Return string for placement in modeline by `vc-mode-line' for FILE."
diff --git a/lisp/vc-rcs.el b/lisp/vc-rcs.el
index 9b405246c29..5d020e93b6d 100644
--- a/lisp/vc-rcs.el
+++ b/lisp/vc-rcs.el
@@ -198,10 +198,14 @@ When VERSION is given, perform check for that version."
198 198
199(defun vc-rcs-checkout-model (file) 199(defun vc-rcs-checkout-model (file)
200 "RCS-specific version of `vc-checkout-model'." 200 "RCS-specific version of `vc-checkout-model'."
201 (vc-rcs-consult-headers file) 201 (let (result)
202 (or (vc-file-getprop file 'vc-checkout-model) 202 (when vc-consult-headers
203 (progn (vc-rcs-fetch-master-state file) 203 (vc-file-setprop file 'vc-checkout-model nil)
204 (vc-file-getprop file 'vc-checkout-model)))) 204 (vc-rcs-consult-headers file)
205 (setq result (vc-file-getprop file 'vc-checkout-model)))
206 (or result
207 (progn (vc-rcs-fetch-master-state file)
208 (vc-file-getprop file 'vc-checkout-model)))))
205 209
206(defun vc-rcs-workfile-unchanged-p (file) 210(defun vc-rcs-workfile-unchanged-p (file)
207 "RCS-specific implementation of vc-workfile-unchanged-p." 211 "RCS-specific implementation of vc-workfile-unchanged-p."
diff --git a/lispref/ChangeLog b/lispref/ChangeLog
index 970ecc4d494..ff73949f771 100644
--- a/lispref/ChangeLog
+++ b/lispref/ChangeLog
@@ -1,3 +1,8 @@
12004-07-02 David Kastrup <dak@gnu.org>
2
3 * searching.texi (Entire Match Data): Add explanation about new
4 match-data behavior when @var{integers} is non-nil.
5
12004-06-24 Richard M. Stallman <rms@gnu.org> 62004-06-24 Richard M. Stallman <rms@gnu.org>
2 7
3 * commands.texi (Misc Events): Describe usr1-signal, usr2-signal event. 8 * commands.texi (Misc Events): Describe usr1-signal, usr2-signal event.
diff --git a/lispref/searching.texi b/lispref/searching.texi
index d18587ccecb..4a2703fd640 100644
--- a/lispref/searching.texi
+++ b/lispref/searching.texi
@@ -1459,8 +1459,11 @@ corresponds to @code{(match-end @var{n})}.
1459All the elements are markers or @code{nil} if matching was done on a 1459All the elements are markers or @code{nil} if matching was done on a
1460buffer and all are integers or @code{nil} if matching was done on a 1460buffer and all are integers or @code{nil} if matching was done on a
1461string with @code{string-match}. If @var{integers} is 1461string with @code{string-match}. If @var{integers} is
1462non-@code{nil}, then all elements are integers or @code{nil}, even if 1462non-@code{nil}, then the elements are integers or @code{nil}, even if
1463matching was done on a buffer. Also, @code{match-beginning} and 1463matching was done on a buffer. In that case, the buffer itself is
1464appended as an additional element at the end of the list
1465to facilitate complete restoration of the match data. Also,
1466@code{match-beginning} and
1464@code{match-end} always return integers or @code{nil}. 1467@code{match-end} always return integers or @code{nil}.
1465 1468
1466If @var{reuse} is non-@code{nil}, it should be a list. In that case, 1469If @var{reuse} is non-@code{nil}, it should be a list. In that case,
diff --git a/man/ChangeLog b/man/ChangeLog
index 7d61928a29b..5473f8ff834 100644
--- a/man/ChangeLog
+++ b/man/ChangeLog
@@ -1,3 +1,21 @@
12004-07-02 Juri Linkov <juri@jurta.org>
2
3 * pcl-cvs.texi (Viewing differences): Add `d r'.
4
52004-07-01 Juri Linkov <juri@jurta.org>
6
7 * search.texi (Incremental Search): Add C-M-w, C-M-y, M-%, C-M-%, M-e.
8 (Regexp Search): Add M-r.
9
102004-06-30 Luc Teirlinck <teirllm@auburn.edu>
11
12 * makefile.w32-in (EMACSSOURCES): Remove emacs-xtra.
13
142004-06-29 Jesper Harder <harder@ifa.au.dk>
15
16 * ses.texi, viper.texi, search.texi, flymake.texi, faq.texi:
17 * eshell.texi, ediff.texi, calendar.texi: Markup fixes.
18
12004-06-25 Richard M. Stallman <rms@gnu.org> 192004-06-25 Richard M. Stallman <rms@gnu.org>
2 20
3 * search.texi (Regexp Replace): Rewrite description of \# \, and \?. 21 * search.texi (Regexp Replace): Rewrite description of \# \, and \?.
diff --git a/man/calendar.texi b/man/calendar.texi
index 3d3f84b4ba3..9e3d3cf9f41 100644
--- a/man/calendar.texi
+++ b/man/calendar.texi
@@ -1332,7 +1332,7 @@ begins with a recognizable time of day, Emacs can warn you several
1332minutes beforehand that that appointment is pending. Emacs alerts you 1332minutes beforehand that that appointment is pending. Emacs alerts you
1333to the appointment by displaying a message in your chosen format, as 1333to the appointment by displaying a message in your chosen format, as
1334specified by the variable @code{appt-display-format}. If the value 1334specified by the variable @code{appt-display-format}. If the value
1335of @code{appt-audible} is non-nil, an audible reminder is also given. 1335of @code{appt-audible} is non-@code{nil}, an audible reminder is also given.
1336 1336
1337@findex appt-activate 1337@findex appt-activate
1338 To enable appointment notification, call the function 1338 To enable appointment notification, call the function
diff --git a/man/ediff.texi b/man/ediff.texi
index b1447386b0c..954efe4e027 100644
--- a/man/ediff.texi
+++ b/man/ediff.texi
@@ -1067,7 +1067,7 @@ the only such group-level operation is the creation of a multi-file patch.
1067@vindex ediff-autostore-merges 1067@vindex ediff-autostore-merges
1068For group sessions created to merge files, Ediff can store all merges 1068For group sessions created to merge files, Ediff can store all merges
1069automatically in a directory. The user is asked to specify such directory 1069automatically in a directory. The user is asked to specify such directory
1070if the value of @code{ediff-autostore-merges} is non-nil. If the value is 1070if the value of @code{ediff-autostore-merges} is non-@code{nil}. If the value is
1071@code{nil}, nothing is done to the merge buffers---it will be the user's 1071@code{nil}, nothing is done to the merge buffers---it will be the user's
1072responsibility to save them. If the value is @code{t}, the user will be 1072responsibility to save them. If the value is @code{t}, the user will be
1073asked where to save the merge buffers in all merge jobs, even those that do 1073asked where to save the merge buffers in all merge jobs, even those that do
@@ -2338,11 +2338,11 @@ The second of the data buffers being compared.
2338@item ediff-buffer-C 2338@item ediff-buffer-C
2339In three-way comparisons, this is the third buffer being compared. 2339In three-way comparisons, this is the third buffer being compared.
2340In merging, this is the merge buffer. 2340In merging, this is the merge buffer.
2341In two-way comparison, this variable is nil. 2341In two-way comparison, this variable is @code{nil}.
2342 2342
2343@item ediff-window-A 2343@item ediff-window-A
2344The window displaying buffer A. If buffer A is not visible, this variable 2344The window displaying buffer A. If buffer A is not visible, this variable
2345is nil or it may be a dead window. 2345is @code{nil} or it may be a dead window.
2346 2346
2347@item ediff-window-B 2347@item ediff-window-B
2348The window displaying buffer B. 2348The window displaying buffer B.
@@ -2351,9 +2351,9 @@ The window displaying buffer B.
2351The window displaying buffer C, if any. 2351The window displaying buffer C, if any.
2352 2352
2353@item ediff-control-frame 2353@item ediff-control-frame
2354A dedicated frame displaying the control buffer, if it exists. 2354A dedicated frame displaying the control buffer, if it exists. It is
2355It is non-nil only if Ediff uses the multiframe display, i.e., when the 2355non-@code{nil} only if Ediff uses the multiframe display, i.e., when
2356control buffer is in its own frame. 2356the control buffer is in its own frame.
2357@end table 2357@end table
2358 2358
2359@node Credits, Index, Customization, Top 2359@node Credits, Index, Customization, Top
diff --git a/man/eshell.texi b/man/eshell.texi
index c909b6ebb46..fafc60ed186 100644
--- a/man/eshell.texi
+++ b/man/eshell.texi
@@ -846,7 +846,7 @@ At the moment, this is not supported.
846@item Error if a glob doesn't expand due to a predicate 846@item Error if a glob doesn't expand due to a predicate
847 847
848An error should be generated only if @code{eshell-error-if-no-glob} is 848An error should be generated only if @code{eshell-error-if-no-glob} is
849non-nil. 849non-@code{nil}.
850 850
851@item @samp{(+ RET SPC TAB} does not cause @code{indent-according-to-mode} to occur 851@item @samp{(+ RET SPC TAB} does not cause @code{indent-according-to-mode} to occur
852 852
diff --git a/man/eudc.texi b/man/eudc.texi
index aaf130eb489..b5ff83be14a 100644
--- a/man/eudc.texi
+++ b/man/eudc.texi
@@ -475,7 +475,7 @@ An alist specifying methods to display attribute values. Each member of
475the list is of the form @code{(@var{name} . @var{func})} where 475the list is of the form @code{(@var{name} . @var{func})} where
476@var{name} is a lowercased string naming a directory attribute 476@var{name} is a lowercased string naming a directory attribute
477(translated according to @code{eudc-user-attribute-names-alist} if 477(translated according to @code{eudc-user-attribute-names-alist} if
478@code{eudc-use-raw-directory-names} is non-nil) and @var{func} a 478@code{eudc-use-raw-directory-names} is non-@code{nil}) and @var{func} a
479function that will be passed the corresponding attribute values for 479function that will be passed the corresponding attribute values for
480display. 480display.
481@end defvar 481@end defvar
diff --git a/man/faq.texi b/man/faq.texi
index 7c13dc16e7b..fc0afd85620 100644
--- a/man/faq.texi
+++ b/man/faq.texi
@@ -2367,7 +2367,7 @@ file, will bind the sequence @kbd{C-x g} to @code{goto-line}:
2367 2367
2368Each menu title (e.g., @samp{File}, @samp{Edit}, @samp{Buffers}) 2368Each menu title (e.g., @samp{File}, @samp{Edit}, @samp{Buffers})
2369represents a local or global keymap. Selecting a menu title with the 2369represents a local or global keymap. Selecting a menu title with the
2370mouse displays that keymap's non-nil contents in the form of a menu. 2370mouse displays that keymap's non-@code{nil} contents in the form of a menu.
2371 2371
2372So to add a menu option to an existing menu, all you have to do is add a 2372So to add a menu option to an existing menu, all you have to do is add a
2373new definition to the appropriate keymap. Adding a @samp{Forward Word} 2373new definition to the appropriate keymap. Adding a @samp{Forward Word}
@@ -3173,7 +3173,7 @@ Obviously, there is a potential for Trojan horses to exploit this
3173feature. 3173feature.
3174 3174
3175Emacs 18 allowed this feature by default; users could disable it by 3175Emacs 18 allowed this feature by default; users could disable it by
3176setting the variable @code{inhibit-local-variables} to a non-nil value. 3176setting the variable @code{inhibit-local-variables} to a non-@code{nil} value.
3177 3177
3178As of Emacs 19, Emacs has a list of local variables that create a 3178As of Emacs 19, Emacs has a list of local variables that create a
3179security risk. If a file tries to set one of them, it asks the user to 3179security risk. If a file tries to set one of them, it asks the user to
diff --git a/man/flymake.texi b/man/flymake.texi
index e710b903361..c505be21b6e 100644
--- a/man/flymake.texi
+++ b/man/flymake.texi
@@ -542,7 +542,7 @@ lines in the buffer using the accumulated error information.
542 542
543Syntax check is considered possible if there's an entry in 543Syntax check is considered possible if there's an entry in
544@code{flymake-allowed-file-name-masks} matching buffer's filename and 544@code{flymake-allowed-file-name-masks} matching buffer's filename and
545its @code{init-function} returns non-nil value. 545its @code{init-function} returns non-@code{nil} value.
546 546
547Two syntax check modes are distinguished: 547Two syntax check modes are distinguished:
548 548
diff --git a/man/makefile.w32-in b/man/makefile.w32-in
index 45f890fd07a..d5efdc1e361 100644
--- a/man/makefile.w32-in
+++ b/man/makefile.w32-in
@@ -67,7 +67,6 @@ ENVADD = $(srcdir)\..\nt\envadd.bat "TEXINPUTS=$(srcdir);$(TEXINPUTS)" \
67 67
68EMACSSOURCES= \ 68EMACSSOURCES= \
69 $(srcdir)/emacs.texi \ 69 $(srcdir)/emacs.texi \
70 $(srcdir)/emacs-xtra.texi \
71 $(srcdir)/doclicense.texi \ 70 $(srcdir)/doclicense.texi \
72 $(srcdir)/screen.texi \ 71 $(srcdir)/screen.texi \
73 $(srcdir)/commands.texi \ 72 $(srcdir)/commands.texi \
diff --git a/man/pcl-cvs.texi b/man/pcl-cvs.texi
index 2bd6703dac6..a99cd39a8d9 100644
--- a/man/pcl-cvs.texi
+++ b/man/pcl-cvs.texi
@@ -1025,11 +1025,15 @@ This runs @code{cvs-mode-ignore}.
1025@kindex =@r{--run @samp{cvs diff}} 1025@kindex =@r{--run @samp{cvs diff}}
1026@kindex db@r{--diff against base version} 1026@kindex db@r{--diff against base version}
1027@kindex dh@r{--diff against head of repository} 1027@kindex dh@r{--diff against head of repository}
1028@kindex dr@r{--diff between base and head of repository}
1028@kindex dv@r{--diff against vendor branch} 1029@kindex dv@r{--diff against vendor branch}
1030@kindex dy@r{--diff against yesterday's head}
1029@findex cvs-mode-diff 1031@findex cvs-mode-diff
1030@findex cvs-mode-diff-backup 1032@findex cvs-mode-diff-backup
1031@findex cvs-mode-diff-head 1033@findex cvs-mode-diff-head
1034@findex cvs-mode-diff-repository
1032@findex cvs-mode-diff-vendor 1035@findex cvs-mode-diff-vendor
1036@findex cvs-mode-diff-yesterday
1033@vindex cvs-invert-ignore-marks@r{ (variable)} 1037@vindex cvs-invert-ignore-marks@r{ (variable)}
1034 1038
1035@table @kbd 1039@table @kbd
@@ -1053,6 +1057,13 @@ Display a @samp{cvs diff} between the selected files and the head
1053revision in the repository (the most recent version on the current 1057revision in the repository (the most recent version on the current
1054branch) (@code{cvs-mode-diff-head}).@refill 1058branch) (@code{cvs-mode-diff-head}).@refill
1055 1059
1060@item d r
1061Display a @samp{cvs diff} between the base revision of the selected
1062files and the head revision in the repository. This displays the
1063changes anyone has committed to the repository since you last executed
1064"checkout", "update" or "commit".
1065(@code{cvs-mode-diff-repository}).@refill
1066
1056@item d v 1067@item d v
1057Display a @samp{cvs diff} between the selected files and the head 1068Display a @samp{cvs diff} between the selected files and the head
1058revision of the vendor branch in the repository. 1069revision of the vendor branch in the repository.
diff --git a/man/search.texi b/man/search.texi
index 4577ac4b33e..f07976f9aa2 100644
--- a/man/search.texi
+++ b/man/search.texi
@@ -78,7 +78,7 @@ would exit the search and then move to the beginning of the line.
78@key{RET} is necessary only if the next command you want to type is a 78@key{RET} is necessary only if the next command you want to type is a
79printing character, @key{DEL}, @key{RET}, or another character that is 79printing character, @key{DEL}, @key{RET}, or another character that is
80special within searches (@kbd{C-q}, @kbd{C-w}, @kbd{C-r}, @kbd{C-s}, 80special within searches (@kbd{C-q}, @kbd{C-w}, @kbd{C-r}, @kbd{C-s},
81@kbd{C-y}, @kbd{M-y}, @kbd{M-r}, @kbd{M-s}, and some other 81@kbd{C-y}, @kbd{M-y}, @kbd{M-r}, @kbd{M-c}, @kbd{M-e}, and some other
82meta-characters). 82meta-characters).
83 83
84 Sometimes you search for @samp{FOO} and find one, but not the one you 84 Sometimes you search for @samp{FOO} and find one, but not the one you
@@ -95,7 +95,9 @@ incremental search, and the second @kbd{C-s} means ``search again.''
95 To reuse earlier search strings, use the @dfn{search ring}. The 95 To reuse earlier search strings, use the @dfn{search ring}. The
96commands @kbd{M-p} and @kbd{M-n} move through the ring to pick a search 96commands @kbd{M-p} and @kbd{M-n} move through the ring to pick a search
97string to reuse. These commands leave the selected search ring element 97string to reuse. These commands leave the selected search ring element
98in the minibuffer, where you can edit it. Type @kbd{C-s} or @kbd{C-r} 98in the minibuffer, where you can edit it. To edit the current search
99string in the minibuffer without replacing it with items from the
100search ring, type @kbd{M-e}. Type @kbd{C-s} or @kbd{C-r}
99to terminate editing the string and search for it. 101to terminate editing the string and search for it.
100 102
101 If your string is not found at all, the echo area says @samp{Failing 103 If your string is not found at all, the echo area says @samp{Failing
@@ -181,7 +183,7 @@ a key runs a command (@code{isearch-backward}) to search backward. A
181backward search finds matches that are entirely before the starting 183backward search finds matches that are entirely before the starting
182point, just as a forward search finds matches that begin after it. 184point, just as a forward search finds matches that begin after it.
183 185
184 The characters @kbd{C-y} and @kbd{C-w} can be used in incremental 186 The characters @kbd{C-w} and @kbd{C-y} can be used in incremental
185search to grab text from the buffer into the search string. This 187search to grab text from the buffer into the search string. This
186makes it convenient to search for another occurrence of text at point. 188makes it convenient to search for another occurrence of text at point.
187@kbd{C-w} copies the character or word after point as part of the 189@kbd{C-w} copies the character or word after point as part of the
@@ -195,6 +197,14 @@ current line into the search string. Both @kbd{C-y} and @kbd{C-w}
195convert the text they copy to lower case if the search is currently 197convert the text they copy to lower case if the search is currently
196not case-sensitive; this is so the search remains case-insensitive. 198not case-sensitive; this is so the search remains case-insensitive.
197 199
200 @kbd{C-M-w} and @kbd{C-M-y} modify the search string by only one
201character at a time: @kbd{C-M-w} deletes the last character from the
202search string and @kbd{C-M-y} copies the character after point to the
203end of the search string. An alternative method to add the character
204after point into the search string is to enter the minibuffer by
205@kbd{M-e} and to type @kbd{C-f} at the end of the search string in the
206minibuffer.
207
198 The character @kbd{M-y} copies text from the kill ring into the search 208 The character @kbd{M-y} copies text from the kill ring into the search
199string. It uses the same text that @kbd{C-y} as a command would yank. 209string. It uses the same text that @kbd{C-y} as a command would yank.
200@kbd{Mouse-2} in the echo area does the same. 210@kbd{Mouse-2} in the echo area does the same.
@@ -205,6 +215,11 @@ string. It uses the same text that @kbd{C-y} as a command would yank.
205there. In Transient Mark mode, incremental search sets the mark without 215there. In Transient Mark mode, incremental search sets the mark without
206activating it, and does so only if the mark is not already active. 216activating it, and does so only if the mark is not already active.
207 217
218 @kbd{M-%} or @kbd{C-M-%} exits the incremental search and starts an
219interactive command @code{query-replace} or @code{query-replace-regexp}
220with the last search string inserted in the minibuffer as initial input
221for the string to replace.
222
208@cindex lazy search highlighting 223@cindex lazy search highlighting
209@vindex isearch-lazy-highlight 224@vindex isearch-lazy-highlight
210 When you pause for a little while during incremental search, it 225 When you pause for a little while during incremental search, it
@@ -231,18 +246,18 @@ of bindings, look at the documentation of @code{isearch-mode} with
231 246
232 Vertical scrolling during incremental search can be enabled by 247 Vertical scrolling during incremental search can be enabled by
233setting the customizable variable @code{isearch-allow-scroll} to a 248setting the customizable variable @code{isearch-allow-scroll} to a
234non-nil value. 249non-@code{nil} value.
235 250
236 You can then use the vertical scroll-bar or certain keyboard 251 You can then use the vertical scroll-bar or certain keyboard
237commands such as @kbd{@key{PRIOR}} (@code{scroll-down}), 252commands such as @kbd{@key{PRIOR}} (@code{scroll-down}),
238@kbd{@key{NEXT}} (@code{scroll-up}) and @kbd{C-l} (@code{recenter}) 253@kbd{@key{NEXT}} (@code{scroll-up}) and @kbd{C-l} (@code{recenter})
239within the search, thus letting you see more of the text near the 254within the search, thus letting you see more of the text near the
240current match. You must run these commands via their key sequences to 255current match. You must run these commands via their key sequences to
241stay in the search - typing M-x @var{comand-name} will always 256stay in the search---typing M-x @var{comand-name} will always
242terminate a search. 257terminate a search.
243 258
244 You can give prefix arguments to these commands in the usual way. 259 You can give prefix arguments to these commands in the usual way.
245The current match cannot be scrolled out of the window - this is 260The current match cannot be scrolled out of the window---this is
246intentional. 261intentional.
247 262
248 Several other commands, such as @kbd{C-x 2} 263 Several other commands, such as @kbd{C-x 2}
@@ -371,14 +386,16 @@ nonincremental ways to search for a match for a regexp.
371@kindex C-M-r 386@kindex C-M-r
372@findex isearch-backward-regexp 387@findex isearch-backward-regexp
373 Incremental search for a regexp is done by typing @kbd{C-M-s} 388 Incremental search for a regexp is done by typing @kbd{C-M-s}
374(@code{isearch-forward-regexp}), or by invoking @kbd{C-s} with a 389(@code{isearch-forward-regexp}), by invoking @kbd{C-s} with a
375prefix argument (whose value does not matter). This command reads a 390prefix argument (whose value does not matter), or by typing @kbd{M-r}
391within a forward incremental search. This command reads a
376search string incrementally just like @kbd{C-s}, but it treats the 392search string incrementally just like @kbd{C-s}, but it treats the
377search string as a regexp rather than looking for an exact match 393search string as a regexp rather than looking for an exact match
378against the text in the buffer. Each time you add text to the search 394against the text in the buffer. Each time you add text to the search
379string, you make the regexp longer, and the new regexp is searched 395string, you make the regexp longer, and the new regexp is searched
380for. To search backward for a regexp, use @kbd{C-M-r} 396for. To search backward for a regexp, use @kbd{C-M-r}
381(@code{isearch-backward-regexp}), or @kbd{C-r} with a prefix argument. 397(@code{isearch-backward-regexp}), @kbd{C-r} with a prefix argument,
398or @kbd{M-r} within a backward incremental search.
382 399
383 All of the control characters that do special things within an 400 All of the control characters that do special things within an
384ordinary incremental search have the same function in incremental regexp 401ordinary incremental search have the same function in incremental regexp
@@ -847,7 +864,7 @@ history matching commands (@pxref{Minibuffer History}).
847@vindex isearch-allow-scroll 864@vindex isearch-allow-scroll
848 865
849Scrolling, etc., during incremental search is enabled by setting the 866Scrolling, etc., during incremental search is enabled by setting the
850customizable variable @code{isearch-allow-scroll} to a non-nil value. 867customizable variable @code{isearch-allow-scroll} to a non-@code{nil} value.
851 868
852@c See Subject: Info file: How do I get an itemized list without blank lines? 869@c See Subject: Info file: How do I get an itemized list without blank lines?
853@c Date: Sat, 12 Apr 2003 09:45:31 +0000 in gnu.emacs.help 870@c Date: Sat, 12 Apr 2003 09:45:31 +0000 in gnu.emacs.help
@@ -893,7 +910,7 @@ For example:
893 910
894You should only thus configure commands which are ``safe'': i.e., they 911You should only thus configure commands which are ``safe'': i.e., they
895won't leave emacs in an inconsistent state when executed within a 912won't leave emacs in an inconsistent state when executed within a
896search - that is to say, the following things may be changed by a 913search---that is to say, the following things may be changed by a
897command only temporarily, and must be restored before the command 914command only temporarily, and must be restored before the command
898finishes: 915finishes:
899 916
@@ -913,7 +930,7 @@ not itself attempt an incremental search. It may, however, change the
913window's size, or create or delete other windows and frames. 930window's size, or create or delete other windows and frames.
914 931
915Note that an attempt by a command to scroll the text 932Note that an attempt by a command to scroll the text
916@emph{horizontally} won't work, although it will do no harm - any such 933@emph{horizontally} won't work, although it will do no harm---any such
917scrolling will be overriden and nullified by the display code. 934scrolling will be overriden and nullified by the display code.
918 935
919@node Replace, Other Repeating Search, Configuring Scrolling, Search 936@node Replace, Other Repeating Search, Configuring Scrolling, Search
@@ -925,7 +942,7 @@ scrolling will be overriden and nullified by the display code.
925 942
926 Global search-and-replace operations are not needed often in Emacs, 943 Global search-and-replace operations are not needed often in Emacs,
927but they are available. In addition to the simple @kbd{M-x 944but they are available. In addition to the simple @kbd{M-x
928replace-string} command which is like that found in most editors, 945replace-string} command which replaces all occurrences,
929there is a @kbd{M-x query-replace} command which finds each occurrence 946there is a @kbd{M-x query-replace} command which finds each occurrence
930of the pattern and asks you whether to replace it. 947of the pattern and asks you whether to replace it.
931 948
diff --git a/man/ses.texi b/man/ses.texi
index 8e0086ac54b..b648f6eef9a 100644
--- a/man/ses.texi
+++ b/man/ses.texi
@@ -251,8 +251,8 @@ one-argument function (a symbol or a lambda), whose result is a string
251(right-aligned) or list of one string (left-aligned). While typing in 251(right-aligned) or list of one string (left-aligned). While typing in
252a lambda, you can use @kbd{M-TAB} to complete the names of symbols. 252a lambda, you can use @kbd{M-TAB} to complete the names of symbols.
253 253
254Each cell has a printer. If nil, the column-printer for the cell's 254Each cell has a printer. If @code{nil}, the column-printer for the cell's
255column is used. If that is also nil, the default-printer for the 255column is used. If that is also @code{nil}, the default-printer for the
256spreadsheet is used. 256spreadsheet is used.
257 257
258@table @kbd 258@table @kbd
@@ -273,7 +273,7 @@ spreadsheet, plus the standard printers.
273 273
274The standard printers are suitable only for cells, not columns or 274The standard printers are suitable only for cells, not columns or
275default, because they format the value using the column-printer (or 275default, because they format the value using the column-printer (or
276default-printer if nil) and then center the result: 276default-printer if @code{nil}) and then center the result:
277 277
278@table @code 278@table @code
279@item ses-center 279@item ses-center
@@ -296,7 +296,7 @@ Centering with tildes (~) and spill-over.
296@node Clearing cells, Copy/cut/paste, Printer functions, The Basics 296@node Clearing cells, Copy/cut/paste, Printer functions, The Basics
297@section Clearing cells 297@section Clearing cells
298 298
299These commands set both formula and printer to nil: 299These commands set both formula and printer to @code{nil}:
300 300
301@table @kbd 301@table @kbd
302@item DEL 302@item DEL
@@ -331,7 +331,7 @@ Mark a region and copy it to kill ring and secondary clipboard
331@item C-w 331@item C-w
332@itemx [cut] 332@itemx [cut]
333@itemx [S-delete] 333@itemx [S-delete]
334The cut functions do not actually delete rows or columns - they copy 334The cut functions do not actually delete rows or columns---they copy
335and then clear (@code{ses-kill-override}). 335and then clear (@code{ses-kill-override}).
336 336
337@item C-y 337@item C-y
@@ -537,7 +537,7 @@ are some useful functions to call from your formulas:
537 537
538@table @code 538@table @code
539@item (ses-delete-blanks &rest @var{args}) 539@item (ses-delete-blanks &rest @var{args})
540Returns a list from which all blank cells (value is either nil or 540Returns a list from which all blank cells (value is either @code{nil} or
541'*skip*) have been deleted. 541'*skip*) have been deleted.
542 542
543@item (ses+ &rest @var{args}) 543@item (ses+ &rest @var{args})
@@ -561,10 +561,10 @@ producing a value: the print cell is filled with hash marks (#).
561@end itemize 561@end itemize
562 562
563If the result from the printer function is too wide for the cell and 563If the result from the printer function is too wide for the cell and
564the following cell is nil, the result will spill over into the 564the following cell is @code{nil}, the result will spill over into the
565following cell. Very wide results can spill over several cells. If 565following cell. Very wide results can spill over several cells. If
566the result is too wide for the available space (up to the end of the 566the result is too wide for the available space (up to the end of the
567row or the next non-nil cell), the result is truncated if the cell's 567row or the next non-@code{nil} cell), the result is truncated if the cell's
568value is a string, or replaced with hash marks otherwise. 568value is a string, or replaced with hash marks otherwise.
569 569
570SES could get confused by printer results that contain newlines or 570SES could get confused by printer results that contain newlines or
diff --git a/man/viper.texi b/man/viper.texi
index 5d4329730dc..654f6c9355f 100644
--- a/man/viper.texi
+++ b/man/viper.texi
@@ -1312,7 +1312,7 @@ These two keys invoke many important Emacs functions. For example, if you
1312hit @kbd{C-x} followed by @kbd{2}, then the current window will be split 1312hit @kbd{C-x} followed by @kbd{2}, then the current window will be split
1313into 2. Except for novice users, @kbd{C-c} is also set to execute an Emacs 1313into 2. Except for novice users, @kbd{C-c} is also set to execute an Emacs
1314command from the current major mode. @key{ESC} will do the same, if you 1314command from the current major mode. @key{ESC} will do the same, if you
1315configure @key{ESC} as Meta by setting @code{viper-no-multiple-ESC} to nil 1315configure @key{ESC} as Meta by setting @code{viper-no-multiple-ESC} to @code{nil}
1316in @file{.viper}. @xref{Customization}. @kbd{C-\} in Insert, Replace, or Vi 1316in @file{.viper}. @xref{Customization}. @kbd{C-\} in Insert, Replace, or Vi
1317states will make Emacs think @kbd{Meta} has been hit.@refill 1317states will make Emacs think @kbd{Meta} has been hit.@refill
1318@item \ 1318@item \
@@ -1742,7 +1742,7 @@ executed. Otherwise, it is processed as an ordinary sequence of typed keys.
1742 1742
1743Setting this variable too high may slow down your typing. Setting it too 1743Setting this variable too high may slow down your typing. Setting it too
1744low may make it hard to type macros quickly enough. 1744low may make it hard to type macros quickly enough.
1745@item viper-translate-all-ESC-keysequences t on tty, nil on windowing display 1745@item viper-translate-all-ESC-keysequences @code{t} on tty, @code{nil} on windowing display
1746Normally, Viper lets Emacs translate only those ESC key sequences that are 1746Normally, Viper lets Emacs translate only those ESC key sequences that are
1747defined in the low-level key-translation-map or function-key-map, such as those 1747defined in the low-level key-translation-map or function-key-map, such as those
1748emitted by the arrow and function keys. Other sequences, e.g., @kbd{\\e/}, are 1748emitted by the arrow and function keys. Other sequences, e.g., @kbd{\\e/}, are
@@ -1753,7 +1753,7 @@ The default is to translate all sequences only when using a dumb terminal.
1753This permits you to use @kbd{ESC} as a meta key in insert mode. For instance, 1753This permits you to use @kbd{ESC} as a meta key in insert mode. For instance,
1754hitting @kbd{ESC x} fast would have the effect of typing @kbd{M-x}. 1754hitting @kbd{ESC x} fast would have the effect of typing @kbd{M-x}.
1755If your dumb terminal is not so dumb and understands the meta key, then you 1755If your dumb terminal is not so dumb and understands the meta key, then you
1756probably will be better off setting this variable to nil. Try and see which 1756probably will be better off setting this variable to @code{nil}. Try and see which
1757way suits you best. 1757way suits you best.
1758@item viper-ex-style-motion t 1758@item viper-ex-style-motion t
1759Set this to @code{nil}, if you want @kbd{l,h} to cross 1759Set this to @code{nil}, if you want @kbd{l,h} to cross
@@ -1764,8 +1764,8 @@ Set this to @code{nil}, if you want
1764at the beginning of a line in Insert state, @key{X} and @key{x} to delete 1764at the beginning of a line in Insert state, @key{X} and @key{x} to delete
1765characters across lines in Vi command state, etc. 1765characters across lines in Vi command state, etc.
1766@item viper-ESC-moves-cursor-back t 1766@item viper-ESC-moves-cursor-back t
1767It t, cursor moves back 1 character when switching from insert state to vi 1767It @code{t}, cursor moves back 1 character when switching from insert state to vi
1768state. If nil, the cursor stays where it was before the switch. 1768state. If @code{nil}, the cursor stays where it was before the switch.
1769@item viper-always t 1769@item viper-always t
1770@code{t} means: leave it to Viper to decide when a buffer must be brought 1770@code{t} means: leave it to Viper to decide when a buffer must be brought
1771up in Vi state, 1771up in Vi state,
@@ -1873,17 +1873,17 @@ If set to a valid color, this will be the cursor color when Viper is in
1873insert state. 1873insert state.
1874@item viper-replace-region-end-delimiter "$" 1874@item viper-replace-region-end-delimiter "$"
1875A string used to mark the end of replacement regions. It is used only on 1875A string used to mark the end of replacement regions. It is used only on
1876TTYs or if @code{viper-use-replace-region-delimiters} is non-nil. 1876TTYs or if @code{viper-use-replace-region-delimiters} is non-@code{nil}.
1877@item viper-replace-region-start-delimiter "" 1877@item viper-replace-region-start-delimiter ""
1878A string used to mark the beginning of replacement regions. It is used 1878A string used to mark the beginning of replacement regions. It is used
1879only on TTYs or if @code{viper-use-replace-region-delimiters} is non-nil. 1879only on TTYs or if @code{viper-use-replace-region-delimiters} is non-@code{nil}.
1880@item viper-use-replace-region-delimiters 1880@item viper-use-replace-region-delimiters
1881If non-nil, Viper will always use @code{viper-replace-region-end-delimiter} and 1881If non-@code{nil}, Viper will always use @code{viper-replace-region-end-delimiter} and
1882@code{viper-replace-region-start-delimiter} to delimit replacement regions, 1882@code{viper-replace-region-start-delimiter} to delimit replacement regions,
1883even on color displays (where this is unnecessary). By default, this 1883even on color displays (where this is unnecessary). By default, this
1884variable is non-nil only on TTYs or monochrome displays. 1884variable is non-@code{nil} only on TTYs or monochrome displays.
1885@item viper-allow-multiline-replace-regions t 1885@item viper-allow-multiline-replace-regions t
1886If non-nil, multi-line text replacement regions, such as those produced by 1886If non-@code{nil}, multi-line text replacement regions, such as those produced by
1887commands @kbd{c55w}, @kbd{3C}, etc., will stay around until the user exits 1887commands @kbd{c55w}, @kbd{3C}, etc., will stay around until the user exits
1888the replacement mode. In this variable is set to @code{nil}, Viper will 1888the replacement mode. In this variable is set to @code{nil}, Viper will
1889emulate the standard Vi behavior, which supports only intra-line 1889emulate the standard Vi behavior, which supports only intra-line
@@ -2390,7 +2390,7 @@ can unbind `/' and `:' in @code{viper-dired-modifier-map} (for Dired) or in
2390 2390
2391To unbind the macros `//' and `///' for a major mode where you feel they 2391To unbind the macros `//' and `///' for a major mode where you feel they
2392are undesirable, execute @code{viper-set-emacs-state-searchstyle-macros} with a 2392are undesirable, execute @code{viper-set-emacs-state-searchstyle-macros} with a
2393non-nil argument. This can be done either interactively, by supplying a 2393non-@code{nil} argument. This can be done either interactively, by supplying a
2394prefix argument, or by placing 2394prefix argument, or by placing
2395@example 2395@example
2396(viper-set-emacs-state-searchstyle-macros 'undefine) 2396(viper-set-emacs-state-searchstyle-macros 'undefine)
@@ -3360,7 +3360,7 @@ this function.
3360Find the next bracket/parenthesis/brace and go to its match. 3360Find the next bracket/parenthesis/brace and go to its match.
3361By default, Viper ignores brackets/parentheses/braces that occur inside 3361By default, Viper ignores brackets/parentheses/braces that occur inside
3362parentheses. You can change this by setting 3362parentheses. You can change this by setting
3363@code{viper-parse-sexp-ignore-comments} to nil in your @file{.viper} file. 3363@code{viper-parse-sexp-ignore-comments} to @code{nil} in your @file{.viper} file.
3364This option can also be toggled interactively if you quickly hit @kbd{%%%}. 3364This option can also be toggled interactively if you quickly hit @kbd{%%%}.
3365 3365
3366This latter feature is implemented as a vi-style keyboard macro. If you 3366This latter feature is implemented as a vi-style keyboard macro. If you
diff --git a/src/ChangeLog b/src/ChangeLog
index 383f479aabd..a1fa10e753c 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,68 @@
12004-07-01 Kenichi Handa <handa@m17n.org>
2
3 * w32select.c (Fw32_set_clipboard_data): Update `nbytes' correctly
4 after getting a new string by pre-write-conversion.
5
62004-06-30 Stefan <monnier@iro.umontreal.ca>
7
8 * xterm.c (x_detect_focus_change): Remove unused var `nr_events'.
9 (x_calc_absolute_position): Remove unused var `child'.
10
11 * xfaces.c (x_supports_face_attributes_p)
12 (Fdisplay_supports_face_attributes_p): YAILOM.
13 (tty_supports_face_attributes_p): Remove unused var `i'.
14
15 * syntax.c (skip_chars): Remove unused labels fwd_unibyte_ok and
16 back_unibyte_ok.
17
18 * search.c (match_limit, Fmatch_data, Fset_match_data): YAILOM.
19
20 * fontset.c (Fset_fontset_font): Remove unused vars `family' and `registry'.
21
22 * Makefile.in (${etc}DOC): Fix file name of make-docfile.
23
242004-06-30 Andreas Schwab <schwab@suse.de>
25
26 * image.c (CHECK_LIB_AVAILABLE): Add third parameter LIBRARIES.
27 (Finit_image_library): Pass LIBRARIES through to
28 CHECK_LIB_AVAILABLE. Declare parameters. Doc fix.
29 (lookup_image_type): Pass Qnil as second argument to
30 Finit_image_library.
31
32 * lisp.h: Declare Finit_image_library.
33
342004-06-29 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
35
36 * macterm.c (do_window_activate, do_window_deactivate): Remove.
37 (XTread_socket): Send mouse button events to the toolbox
38 dispatcher even when the mouse is grabbed. Don't process window
39 activate events for non-Emacs windows. Replace function calls to
40 do_window_activate and do_window_deactivate with their contents.
41 Reset mouse grabbing status when a window is deactivated.
42
432004-06-29 Steven Tamm <steventamm@mac.com>
44
45 * macterm.c (mac_get_emulated_btn)
46 (mac_event_to_emacs_modifiers): Fix emulated mouse button
47 support to correctly mask out modifiers.
48
492004-06-29 David Kastrup <dak@gnu.org>
50
51 * search.c (Fset_match_data): Allow buffer before end of list
52 which can happen if set-match-data is using a pre-consed list.
53
542004-06-28 Steven Tamm <steventamm@mac.com>
55
56 * macterm.c (XTread_socket): Correctly set the frame position
57 after the window is moved.
58
592004-06-28 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
60
61 * gtkutil.c (xg_get_image_for_pixmap): Call g_object_unref on
62 gpix and gmask just before return to avoid memory leak.
63 (xg_get_image_for_pixmap): Add workaround for monochrome displays
64 so insensitive and activated icons look ok.
65
12004-06-27 Jason Rumney <jasonr@gnu.org> 662004-06-27 Jason Rumney <jasonr@gnu.org>
2 67
3 * w32fns.c (file_dialog_callback): Disable edit control if set 68 * w32fns.c (file_dialog_callback): Disable edit control if set
@@ -28,8 +93,7 @@
28 a buffer, add the buffer as last element to the match data. 93 a buffer, add the buffer as last element to the match data.
29 (Fset_match_data): If an additional element of the match-data is a 94 (Fset_match_data): If an additional element of the match-data is a
30 buffer, restore it to last_thing_searched. 95 buffer, restore it to last_thing_searched.
31 (save_search_regs): Save last_thing_searched as part of the match 96 (save_search_regs): Save last_thing_searched as part of the match data.
32 data.
33 (restore_match_data): Restore it again. 97 (restore_match_data): Restore it again.
34 98
352004-06-23 Luc Teirlinck <teirllm@auburn.edu> 992004-06-23 Luc Teirlinck <teirllm@auburn.edu>
@@ -155,7 +219,7 @@
1552004-06-14 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> 2192004-06-14 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
156 220
157 * gtkutil.c (xg_get_image_for_pixmap): New function. 221 * gtkutil.c (xg_get_image_for_pixmap): New function.
158 (xg_get_gdk_pixmap_and_mask): Removed. 222 (xg_get_gdk_pixmap_and_mask): Remove.
159 (update_frame_tool_bar): Call xg_get_image_for_pixmap instead of 223 (update_frame_tool_bar): Call xg_get_image_for_pixmap instead of
160 xg_get_gdk_pixmap_and_mask. 224 xg_get_gdk_pixmap_and_mask.
161 225
@@ -176,8 +240,7 @@
176 list of possible filenames. 240 list of possible filenames.
177 (init_xpm_functions, init_png_functions, init_jpeg_functions) 241 (init_xpm_functions, init_png_functions, init_jpeg_functions)
178 (init_tiff_functions, init_gif_functions): Use `w32_delayed_load'. 242 (init_tiff_functions, init_gif_functions): Use `w32_delayed_load'.
179 (CHECK_LIB_AVAILABLE): Call `define_image_library' with new 243 (CHECK_LIB_AVAILABLE): Call `define_image_library' with new argument.
180 argument.
181 (Finit_image_library): New function, extracted from `init_image'. 244 (Finit_image_library): New function, extracted from `init_image'.
182 Try to initialize an image library on demand and cache whether we 245 Try to initialize an image library on demand and cache whether we
183 were successful or not. 246 were successful or not.
@@ -301,7 +364,7 @@
301 (merge_face_ref, face_at_buffer_position, face_at_string_position): 364 (merge_face_ref, face_at_buffer_position, face_at_string_position):
302 Use `merge_named_face'. 365 Use `merge_named_face'.
303 (merge_face_inheritance): Function removed. 366 (merge_face_inheritance): Function removed.
304 (merge_face_ref): Renamed from `merge_face_vector_with_property'. 367 (merge_face_ref): Rename from `merge_face_vector_with_property'.
305 Add new `err_msgs' and `named_merge_points' args. Return error 368 Add new `err_msgs' and `named_merge_points' args. Return error
306 status. Only print error messages if ERR_MSGS is true. Don't try to 369 status. Only print error messages if ERR_MSGS is true. Don't try to
307 do :inherit attribute validation. 370 do :inherit attribute validation.
@@ -361,8 +424,8 @@
361 424
362 * xfaces.c (x_supports_face_attributes_p): Make this function 425 * xfaces.c (x_supports_face_attributes_p): Make this function
363 conditional on HAVE_WINDOW_SYSTEM. 426 conditional on HAVE_WINDOW_SYSTEM.
364 (Fdisplay_supports_face_attributes_p) [HAVE_WINDOW_SYSTEM]: Don't 427 (Fdisplay_supports_face_attributes_p) [HAVE_WINDOW_SYSTEM]:
365 call x_supports_face_attributes_p if it was not compiled in. 428 Don't call x_supports_face_attributes_p if it was not compiled in.
366 429
3672004-06-04 Miles Bader <miles@gnu.org> 4302004-06-04 Miles Bader <miles@gnu.org>
368 431
@@ -393,6 +456,8 @@
393 456
3942004-06-01 Stefan Monnier <monnier@iro.umontreal.ca> 4572004-06-01 Stefan Monnier <monnier@iro.umontreal.ca>
395 458
459 * eval.c (Fcondition_case): Fix usage. Simplify.
460
396 * mem-limits.h (EXCEEDS_LISP_PTR) [USE_LSB_TAG]: Never true. 461 * mem-limits.h (EXCEEDS_LISP_PTR) [USE_LSB_TAG]: Never true.
397 462
3982004-05-29 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 4632004-05-29 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
@@ -401,8 +466,7 @@
401 [MAC_OSX]: Don't include QuickTime/QuickTime.h. 466 [MAC_OSX]: Don't include QuickTime/QuickTime.h.
402 [!MAC_OSX]: Don't include alloca.h, Windows.h, Gestalt.h, or 467 [!MAC_OSX]: Don't include alloca.h, Windows.h, Gestalt.h, or
403 TextUtils.h. 468 TextUtils.h.
404 (Fx_create_frame): Sync with xfns.c. Initialize cursor 469 (Fx_create_frame): Sync with xfns.c. Initialize cursor descriptors.
405 descriptors.
406 (Fx_display_mm_height, Fx_display_mm_width): Calculate length from 470 (Fx_display_mm_height, Fx_display_mm_width): Calculate length from
407 display height/width. 471 display height/width.
408 (compute_tip_xy, Vx_max_tooltip_size): Declare. 472 (compute_tip_xy, Vx_max_tooltip_size): Declare.
@@ -413,8 +477,7 @@
413 477
414 * macgui.h [!MAC_OSX]: Include Gestalt.h. 478 * macgui.h [!MAC_OSX]: Include Gestalt.h.
415 (Cursor, No_Cursor): New defines. 479 (Cursor, No_Cursor): New defines.
416 [!TARGET_API_MAC_CARBON] (SetPortWindowPort): New compatibility 480 [!TARGET_API_MAC_CARBON] (SetPortWindowPort): New compatibility macro.
417 macro.
418 [!TARGET_API_MAC_CARBON] (arrow_cursor): Declare. 481 [!TARGET_API_MAC_CARBON] (arrow_cursor): Declare.
419 482
420 * macmenu.c (mac_menu_show, mac_dialog): Use SetPortWindowPort. 483 * macmenu.c (mac_menu_show, mac_dialog): Use SetPortWindowPort.
@@ -442,11 +505,9 @@
442 (x_scroll_bar_handle_click): Set `(PORTION . WHOLE)' part in a 505 (x_scroll_bar_handle_click): Set `(PORTION . WHOLE)' part in a
443 scroll-bar click event. 506 scroll-bar click event.
444 (mac_define_frame_cursor): Change the pointer shape. 507 (mac_define_frame_cursor): Change the pointer shape.
445 (x_free_frame_resources): Reset tip_window to NULL when it is 508 (x_free_frame_resources): Reset tip_window to NULL when it is disposed.
446 disposed.
447 [!TARGET_API_MAC_CARBON] (arrow_cursor): New variable. 509 [!TARGET_API_MAC_CARBON] (arrow_cursor): New variable.
448 [!TARGET_API_MAC_CARBON] (do_init_managers): Initialize 510 [!TARGET_API_MAC_CARBON] (do_init_managers): Initialize arrow_cursor.
449 arrow_cursor.
450 (do_window_update): Don't do anything if the updated window is the 511 (do_window_update): Don't do anything if the updated window is the
451 tooltip window. 512 tooltip window.
452 (do_mouse_moved): Handle mouse movement events here (previously in 513 (do_mouse_moved): Handle mouse movement events here (previously in
@@ -454,8 +515,8 @@
454 dpyinfo->mouse_face_hidden is set. 515 dpyinfo->mouse_face_hidden is set.
455 (do_os_event, do_events): Remove (now in XTread_socket). 516 (do_os_event, do_events): Remove (now in XTread_socket).
456 (XTread_socket): Immediately return if interrupt_input_blocked. 517 (XTread_socket): Immediately return if interrupt_input_blocked.
457 Loop until all the events in the queue are processed. Rearrange 518 Loop until all the events in the queue are processed.
458 codes for mouse grabbing. Add tooltip support. Include the 519 Rearrange codes for mouse grabbing. Add tooltip support. Include the
459 contents of do_os_event and do_events. Remove mouse movement 520 contents of do_os_event and do_events. Remove mouse movement
460 handling (now in do_mouse_moved). Add the case where 521 handling (now in do_mouse_moved). Add the case where
461 Vmouse_highlight has an integer value. 522 Vmouse_highlight has an integer value.
@@ -464,8 +525,8 @@
464 excess initializations. 525 excess initializations.
465 (make_mac_terminal_frame): Previous initializations in 526 (make_mac_terminal_frame): Previous initializations in
466 make_mac_frame are moved here. 527 make_mac_frame are moved here.
467 (mac_initialize_display_info): Initialize 528 (mac_initialize_display_info):
468 dpyinfo->mouse_face_overlay and dpyinfo->mouse_face_hidden. 529 Initialize dpyinfo->mouse_face_overlay and dpyinfo->mouse_face_hidden.
469 530
470 * xdisp.c [MAC_OS] (No_Cursor): Remove variable. 531 * xdisp.c [MAC_OS] (No_Cursor): Remove variable.
471 (define_frame_cursor1): Don't treat HAVE_CARBON as a special case. 532 (define_frame_cursor1): Don't treat HAVE_CARBON as a special case.
diff --git a/src/Makefile.in b/src/Makefile.in
index 0d75221acfa..f473888cc5d 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -928,7 +928,7 @@ emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp}
928 for the first time, this prevents any variation between configurations 928 for the first time, this prevents any variation between configurations
929 in the contents of the DOC file. 929 in the contents of the DOC file.
930 Likewise for ${SOME_MACHINE_LISP}. */ 930 Likewise for ${SOME_MACHINE_LISP}. */
931${etc}DOC: ${libsrc}make-docfile ${obj} ${shortlisp} ${SOME_MACHINE_LISP} 931${etc}DOC: ${libsrc}make-docfile${EXEEXT} ${obj} ${shortlisp} ${SOME_MACHINE_LISP}
932 -rm -f ${etc}DOC 932 -rm -f ${etc}DOC
933 ${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC 933 ${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
934 ${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp} 934 ${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp}
diff --git a/src/fontset.c b/src/fontset.c
index aae6b9296ae..e99cc0ff6a3 100644
--- a/src/fontset.c
+++ b/src/fontset.c
@@ -1,4 +1,5 @@
1/* Fontset handler. 1/* Fontset handler.
2 Copyright (C) 2004 Free Software Foundation, Inc.
2 Copyright (C) 1995, 1997, 2000 Electrotechnical Laboratory, JAPAN. 3 Copyright (C) 1995, 1997, 2000 Electrotechnical Laboratory, JAPAN.
3 Licensed to the Free Software Foundation. 4 Licensed to the Free Software Foundation.
4 5
diff --git a/src/gtkutil.c b/src/gtkutil.c
index 84aa9f46d4d..3ffba0ba745 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -248,8 +248,46 @@ xg_get_image_for_pixmap (f, img, widget, old_widget)
248{ 248{
249 GdkPixmap *gpix; 249 GdkPixmap *gpix;
250 GdkPixmap *gmask; 250 GdkPixmap *gmask;
251 GdkDisplay *gdpy = gdk_x11_lookup_xdisplay (FRAME_X_DISPLAY (f)); 251 GdkDisplay *gdpy;
252
253 /* If we are on a one bit display, let GTK do all the image handling.
254 This seems to be the only way to make insensitive and activated icons
255 look good. */
256 if (x_screen_planes (f) == 1)
257 {
258 Lisp_Object specified_file = Qnil;
259 Lisp_Object tail;
260 extern Lisp_Object QCfile;
261
262 for (tail = XCDR (img->spec);
263 NILP (specified_file) && CONSP (tail) && CONSP (XCDR (tail));
264 tail = XCDR (XCDR (tail)))
265 if (EQ (XCAR (tail), QCfile))
266 specified_file = XCAR (XCDR (tail));
267
268 if (STRINGP (specified_file))
269 {
270
271 Lisp_Object file = Qnil;
272 struct gcpro gcpro1;
273 GCPRO1 (file);
252 274
275 file = x_find_image_file (specified_file);
276 /* We already loaded the image once before calling this
277 function, so this should not fail. */
278 xassert (STRINGP (file) != 0);
279
280 if (! old_widget)
281 old_widget = GTK_IMAGE (gtk_image_new_from_file (SDATA (file)));
282 else
283 gtk_image_set_from_file (old_widget, SDATA (file));
284
285 UNGCPRO;
286 return GTK_WIDGET (old_widget);
287 }
288 }
289
290 gdpy = gdk_x11_lookup_xdisplay (FRAME_X_DISPLAY (f));
253 gpix = gdk_pixmap_foreign_new_for_display (gdpy, img->pixmap); 291 gpix = gdk_pixmap_foreign_new_for_display (gdpy, img->pixmap);
254 gmask = img->mask ? gdk_pixmap_foreign_new_for_display (gdpy, img->mask) : 0; 292 gmask = img->mask ? gdk_pixmap_foreign_new_for_display (gdpy, img->mask) : 0;
255 293
@@ -262,6 +300,12 @@ xg_get_image_for_pixmap (f, img, widget, old_widget)
262 } 300 }
263 else 301 else
264 { 302 {
303 /* This is a workaround to make icons look good on pseudo color
304 displays. Apparently GTK expects the images to have an alpha
305 channel. If they don't, insensitive and activated icons will
306 look bad. This workaround does not work on monochrome displays,
307 and is not needed on true color/static color displays (i.e.
308 16 bits and higher). */
265 int x, y, width, height, rowstride, mask_rowstride; 309 int x, y, width, height, rowstride, mask_rowstride;
266 GdkPixbuf *icon_buf, *tmp_buf; 310 GdkPixbuf *icon_buf, *tmp_buf;
267 guchar *pixels; 311 guchar *pixels;
@@ -308,12 +352,9 @@ xg_get_image_for_pixmap (f, img, widget, old_widget)
308 } 352 }
309 } 353 }
310 354
311 g_object_unref (G_OBJECT (gmask));
312 g_object_unref (G_OBJECT (mask_buf)); 355 g_object_unref (G_OBJECT (mask_buf));
313 } 356 }
314 357
315 g_object_unref (G_OBJECT (gpix));
316
317 if (! old_widget) 358 if (! old_widget)
318 old_widget = GTK_IMAGE (gtk_image_new_from_pixbuf (icon_buf)); 359 old_widget = GTK_IMAGE (gtk_image_new_from_pixbuf (icon_buf));
319 else 360 else
@@ -322,6 +363,9 @@ xg_get_image_for_pixmap (f, img, widget, old_widget)
322 g_object_unref (G_OBJECT (icon_buf)); 363 g_object_unref (G_OBJECT (icon_buf));
323 } 364 }
324 365
366 g_object_unref (G_OBJECT (gpix));
367 if (gmask) g_object_unref (G_OBJECT (gmask));
368
325 return GTK_WIDGET (old_widget); 369 return GTK_WIDGET (old_widget);
326} 370}
327 371
diff --git a/src/image.c b/src/image.c
index 438e132807f..4ab672ca58e 100644
--- a/src/image.c
+++ b/src/image.c
@@ -675,7 +675,7 @@ define_image_type (type, loaded)
675 success = Qt; 675 success = Qt;
676 } 676 }
677 677
678 CACHE_IMAGE_TYPE(*type->type, success); 678 CACHE_IMAGE_TYPE (*type->type, success);
679 return success; 679 return success;
680} 680}
681 681
@@ -690,7 +690,7 @@ lookup_image_type (symbol)
690 struct image_type *type; 690 struct image_type *type;
691 691
692 /* We must initialize the image-type if it hasn't been already. */ 692 /* We must initialize the image-type if it hasn't been already. */
693 if (NILP (Finit_image_library (symbol))) 693 if (NILP (Finit_image_library (symbol, Qnil)))
694 return 0; /* unimplemented */ 694 return 0; /* unimplemented */
695 695
696 for (type = image_types; type; type = type->next) 696 for (type = image_types; type; type = type->next)
@@ -7927,10 +7927,10 @@ DEFUN ("lookup-image", Flookup_image, Slookup_image, 1, 1, 0, "")
7927#ifdef HAVE_NTGUI 7927#ifdef HAVE_NTGUI
7928/* Image types that rely on external libraries are loaded dynamically 7928/* Image types that rely on external libraries are loaded dynamically
7929 if the library is available. */ 7929 if the library is available. */
7930#define CHECK_LIB_AVAILABLE(image_type, init_lib_fn) \ 7930#define CHECK_LIB_AVAILABLE(image_type, init_lib_fn, libraries) \
7931 define_image_type (image_type, init_lib_fn (libraries)) 7931 define_image_type (image_type, init_lib_fn (libraries))
7932#else 7932#else
7933#define CHECK_LIB_AVAILABLE(image_type, init_lib_fn) \ 7933#define CHECK_LIB_AVAILABLE(image_type, init_lib_fn, libraries) \
7934 define_image_type (image_type, TRUE) 7934 define_image_type (image_type, TRUE)
7935#endif /* HAVE_NTGUI */ 7935#endif /* HAVE_NTGUI */
7936 7936
@@ -7940,8 +7940,9 @@ Return non-nil if TYPE is a supported image type.
7940 7940
7941Image types pbm and xbm are prebuilt; other types are loaded here. 7941Image types pbm and xbm are prebuilt; other types are loaded here.
7942Libraries to load are specified in alist LIBRARIES (usually, the value 7942Libraries to load are specified in alist LIBRARIES (usually, the value
7943of `image-library-alist', which see. */) 7943of `image-library-alist', which see). */)
7944 (type, libraries) 7944 (type, libraries)
7945 Lisp_Object type, libraries;
7945{ 7946{
7946 Lisp_Object tested; 7947 Lisp_Object tested;
7947 7948
@@ -7952,36 +7953,36 @@ of `image-library-alist', which see. */)
7952 7953
7953#if defined (HAVE_XPM) || defined (MAC_OS) 7954#if defined (HAVE_XPM) || defined (MAC_OS)
7954 if (EQ (type, Qxpm)) 7955 if (EQ (type, Qxpm))
7955 return CHECK_LIB_AVAILABLE(&xpm_type, init_xpm_functions); 7956 return CHECK_LIB_AVAILABLE (&xpm_type, init_xpm_functions, libraries);
7956#endif 7957#endif
7957 7958
7958#if defined (HAVE_JPEG) || defined (MAC_OS) 7959#if defined (HAVE_JPEG) || defined (MAC_OS)
7959 if (EQ (type, Qjpeg)) 7960 if (EQ (type, Qjpeg))
7960 return CHECK_LIB_AVAILABLE(&jpeg_type, init_jpeg_functions); 7961 return CHECK_LIB_AVAILABLE (&jpeg_type, init_jpeg_functions, libraries);
7961#endif 7962#endif
7962 7963
7963#if defined (HAVE_TIFF) || defined (MAC_OS) 7964#if defined (HAVE_TIFF) || defined (MAC_OS)
7964 if (EQ (type, Qtiff)) 7965 if (EQ (type, Qtiff))
7965 return CHECK_LIB_AVAILABLE(&tiff_type, init_tiff_functions); 7966 return CHECK_LIB_AVAILABLE (&tiff_type, init_tiff_functions, libraries);
7966#endif 7967#endif
7967 7968
7968#if defined (HAVE_GIF) || defined (MAC_OS) 7969#if defined (HAVE_GIF) || defined (MAC_OS)
7969 if (EQ (type, Qgif)) 7970 if (EQ (type, Qgif))
7970 return CHECK_LIB_AVAILABLE(&gif_type, init_gif_functions); 7971 return CHECK_LIB_AVAILABLE (&gif_type, init_gif_functions, libraries);
7971#endif 7972#endif
7972 7973
7973#if defined (HAVE_PNG) || defined (MAC_OS) 7974#if defined (HAVE_PNG) || defined (MAC_OS)
7974 if (EQ (type, Qpng)) 7975 if (EQ (type, Qpng))
7975 return CHECK_LIB_AVAILABLE(&png_type, init_png_functions); 7976 return CHECK_LIB_AVAILABLE (&png_type, init_png_functions, libraries);
7976#endif 7977#endif
7977 7978
7978#ifdef HAVE_GHOSTSCRIPT 7979#ifdef HAVE_GHOSTSCRIPT
7979 if (EQ (type, Qpostscript)) 7980 if (EQ (type, Qpostscript))
7980 return CHECK_LIB_AVAILABLE(&gs_type, init_gs_functions); 7981 return CHECK_LIB_AVAILABLE (&gs_type, init_gs_functions, libraries);
7981#endif 7982#endif
7982 7983
7983 /* If the type is not recognized, avoid testing it ever again. */ 7984 /* If the type is not recognized, avoid testing it ever again. */
7984 CACHE_IMAGE_TYPE(type, Qnil); 7985 CACHE_IMAGE_TYPE (type, Qnil);
7985 return Qnil; 7986 return Qnil;
7986} 7987}
7987 7988
diff --git a/src/lisp.h b/src/lisp.h
index 44fe5affa57..deb8d6414a2 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -2332,6 +2332,7 @@ extern void init_fringe P_ ((void));
2332extern void init_fringe_once P_ ((void)); 2332extern void init_fringe_once P_ ((void));
2333 2333
2334/* Defined in image.c */ 2334/* Defined in image.c */
2335EXFUN (Finit_image_library, 2);
2335extern void syms_of_image P_ ((void)); 2336extern void syms_of_image P_ ((void));
2336extern void init_image P_ ((void)); 2337extern void init_image P_ ((void));
2337 2338
diff --git a/src/macterm.c b/src/macterm.c
index 2af910c5003..43a04dc65ec 100644
--- a/src/macterm.c
+++ b/src/macterm.c
@@ -7018,7 +7018,7 @@ mac_get_emulated_btn ( UInt32 modifiers )
7018 int result = 0; 7018 int result = 0;
7019 if (!NILP (Vmac_emulate_three_button_mouse)) { 7019 if (!NILP (Vmac_emulate_three_button_mouse)) {
7020 int cmdIs3 = !EQ (Vmac_emulate_three_button_mouse, Qreverse); 7020 int cmdIs3 = !EQ (Vmac_emulate_three_button_mouse, Qreverse);
7021 if (modifiers & controlKey) 7021 if (modifiers & cmdKey)
7022 result = cmdIs3 ? 2 : 1; 7022 result = cmdIs3 ? 2 : 1;
7023 else if (modifiers & optionKey) 7023 else if (modifiers & optionKey)
7024 result = cmdIs3 ? 1 : 2; 7024 result = cmdIs3 ? 1 : 2;
@@ -7038,7 +7038,7 @@ mac_event_to_emacs_modifiers (EventRef eventRef)
7038 if (!NILP (Vmac_emulate_three_button_mouse) && 7038 if (!NILP (Vmac_emulate_three_button_mouse) &&
7039 GetEventClass(eventRef) == kEventClassMouse) 7039 GetEventClass(eventRef) == kEventClassMouse)
7040 { 7040 {
7041 mods &= ~(optionKey & cmdKey); 7041 mods &= ~(optionKey | cmdKey);
7042 } 7042 }
7043 return mac_to_emacs_modifiers (mods); 7043 return mac_to_emacs_modifiers (mods);
7044} 7044}
@@ -7237,40 +7237,6 @@ is_emacs_window (WindowPtr win)
7237} 7237}
7238 7238
7239static void 7239static void
7240do_window_activate (WindowPtr win)
7241{
7242 struct frame *f;
7243
7244 if (is_emacs_window (win))
7245 {
7246 f = mac_window_to_frame (win);
7247
7248 if (f)
7249 {
7250 x_new_focus_frame (FRAME_MAC_DISPLAY_INFO (f), f);
7251 activate_scroll_bars (f);
7252 }
7253 }
7254}
7255
7256static void
7257do_window_deactivate (WindowPtr win)
7258{
7259 struct frame *f;
7260
7261 if (is_emacs_window (win))
7262 {
7263 f = mac_window_to_frame (win);
7264
7265 if (f == FRAME_MAC_DISPLAY_INFO (f)->x_focus_frame)
7266 {
7267 x_new_focus_frame (FRAME_MAC_DISPLAY_INFO (f), 0);
7268 deactivate_scroll_bars (f);
7269 }
7270 }
7271}
7272
7273static void
7274do_app_resume () 7240do_app_resume ()
7275{ 7241{
7276 WindowPtr wp; 7242 WindowPtr wp;
@@ -8084,6 +8050,25 @@ XTread_socket (sd, expected, hold_quit)
8084 if (!mac_convert_event_ref (eventRef, &er)) 8050 if (!mac_convert_event_ref (eventRef, &er))
8085 switch (GetEventClass (eventRef)) 8051 switch (GetEventClass (eventRef))
8086 { 8052 {
8053 case kEventClassWindow:
8054 if (GetEventKind (eventRef) == kEventWindowBoundsChanged)
8055 {
8056 WindowPtr window_ptr;
8057 GetEventParameter(eventRef, kEventParamDirectObject,
8058 typeWindowRef, NULL, sizeof(WindowPtr),
8059 NULL, &window_ptr);
8060 f = mac_window_to_frame (window_ptr);
8061 if (f && !f->async_iconified)
8062 {
8063 int x, y;
8064
8065 x_real_positions (f, &x, &y);
8066 f->left_pos = x;
8067 f->top_pos = y;
8068 }
8069 SendEventToEventTarget (eventRef, toolbox_dispatcher);
8070 }
8071 break;
8087 case kEventClassMouse: 8072 case kEventClassMouse:
8088 if (GetEventKind (eventRef) == kEventMouseWheelMoved) 8073 if (GetEventKind (eventRef) == kEventMouseWheelMoved)
8089 { 8074 {
@@ -8135,6 +8120,14 @@ XTread_socket (sd, expected, hold_quit)
8135 SInt16 part_code; 8120 SInt16 part_code;
8136 int tool_bar_p = 0; 8121 int tool_bar_p = 0;
8137 8122
8123#if USE_CARBON_EVENTS
8124 /* This is needed to send mouse events like aqua window
8125 buttons to the correct handler. */
8126 if (SendEventToEventTarget (eventRef, toolbox_dispatcher)
8127 != eventNotHandledErr)
8128 break;
8129#endif
8130
8138 if (dpyinfo->grabbed && last_mouse_frame 8131 if (dpyinfo->grabbed && last_mouse_frame
8139 && FRAME_LIVE_P (last_mouse_frame)) 8132 && FRAME_LIVE_P (last_mouse_frame))
8140 { 8133 {
@@ -8150,16 +8143,9 @@ XTread_socket (sd, expected, hold_quit)
8150 window_ptr = FrontWindow (); 8143 window_ptr = FrontWindow ();
8151 } 8144 }
8152 8145
8153#if USE_CARBON_EVENTS
8154 /* This is needed to send mouse events like aqua
8155 window buttons to the correct handler. */
8156 if (SendEventToEventTarget (eventRef, toolbox_dispatcher)
8157 != eventNotHandledErr)
8158 break;
8159
8160 if (!is_emacs_window (window_ptr)) 8146 if (!is_emacs_window (window_ptr))
8161 break; 8147 break;
8162#endif 8148
8163 part_code = FindWindow (er.where, &window_ptr); 8149 part_code = FindWindow (er.where, &window_ptr);
8164 } 8150 }
8165 8151
@@ -8306,6 +8292,18 @@ XTread_socket (sd, expected, hold_quit)
8306#else /* not TARGET_API_MAC_CARBON */ 8292#else /* not TARGET_API_MAC_CARBON */
8307 DragWindow (window_ptr, er.where, &qd.screenBits.bounds); 8293 DragWindow (window_ptr, er.where, &qd.screenBits.bounds);
8308#endif /* not TARGET_API_MAC_CARBON */ 8294#endif /* not TARGET_API_MAC_CARBON */
8295 /* Update the frame parameters. */
8296 {
8297 struct frame *f = mac_window_to_frame (window_ptr);
8298 if (f && !f->async_iconified)
8299 {
8300 int x, y;
8301
8302 x_real_positions (f, &x, &y);
8303 f->left_pos = x;
8304 f->top_pos = y;
8305 }
8306 }
8309 break; 8307 break;
8310 8308
8311 case inGoAway: 8309 case inGoAway:
@@ -8393,24 +8391,38 @@ XTread_socket (sd, expected, hold_quit)
8393 break; 8391 break;
8394 } 8392 }
8395 8393
8394 if (!is_emacs_window (window_ptr))
8395 break;
8396
8397 f = mac_window_to_frame (window_ptr);
8398
8396 if ((er.modifiers & activeFlag) != 0) 8399 if ((er.modifiers & activeFlag) != 0)
8397 { 8400 {
8401 /* A window has been activated */
8398 Point mouse_loc = er.where; 8402 Point mouse_loc = er.where;
8399 8403
8400 do_window_activate (window_ptr); 8404 x_new_focus_frame (dpyinfo, f);
8405 activate_scroll_bars (f);
8401 8406
8402 SetPortWindowPort (window_ptr); 8407 SetPortWindowPort (window_ptr);
8403 GlobalToLocal (&mouse_loc); 8408 GlobalToLocal (&mouse_loc);
8404 /* activateEvt counts as mouse movement, 8409 /* Window-activated event counts as mouse movement,
8405 so update things that depend on mouse position. */ 8410 so update things that depend on mouse position. */
8406 note_mouse_movement (mac_window_to_frame (window_ptr), 8411 note_mouse_movement (mac_window_to_frame (window_ptr),
8407 &mouse_loc); 8412 &mouse_loc);
8408 } 8413 }
8409 else 8414 else
8410 { 8415 {
8411 do_window_deactivate (window_ptr); 8416 /* A window has been deactivated */
8417 dpyinfo->grabbed = 0;
8418
8419 if (f == dpyinfo->x_focus_frame)
8420 {
8421 x_new_focus_frame (dpyinfo, 0);
8422 deactivate_scroll_bars (f);
8423 }
8424
8412 8425
8413 f = mac_window_to_frame (window_ptr);
8414 if (f == dpyinfo->mouse_face_mouse_frame) 8426 if (f == dpyinfo->mouse_face_mouse_frame)
8415 { 8427 {
8416 /* If we move outside the frame, then we're 8428 /* If we move outside the frame, then we're
diff --git a/src/search.c b/src/search.c
index dc1ca91e38f..169baf05d55 100644
--- a/src/search.c
+++ b/src/search.c
@@ -1,5 +1,6 @@
1/* String search routines for GNU Emacs. 1/* String search routines for GNU Emacs.
2 Copyright (C) 1985, 86,87,93,94,97,98, 1999 Free Software Foundation, Inc. 2 Copyright (C) 1985, 86,87,93,94,97,98, 1999, 2004
3 Free Software Foundation, Inc.
3 4
4This file is part of GNU Emacs. 5This file is part of GNU Emacs.
5 6
@@ -2628,7 +2629,7 @@ match_limit (num, beginningp)
2628 CHECK_NUMBER (num); 2629 CHECK_NUMBER (num);
2629 n = XINT (num); 2630 n = XINT (num);
2630 if (n < 0) 2631 if (n < 0)
2631 args_out_of_range (num, 0); 2632 args_out_of_range (num, make_number (0));
2632 if (search_regs.num_regs <= 0) 2633 if (search_regs.num_regs <= 0)
2633 error ("No match data, because no search succeeded"); 2634 error ("No match data, because no search succeeded");
2634 if (n >= search_regs.num_regs 2635 if (n >= search_regs.num_regs
@@ -2728,10 +2729,9 @@ Return value is undefined if the last search failed. */)
2728 data[2 * i] = data [2 * i + 1] = Qnil; 2729 data[2 * i] = data [2 * i + 1] = Qnil;
2729 } 2730 }
2730 2731
2731 if (BUFFERP(last_thing_searched) 2732 if (BUFFERP (last_thing_searched) && !NILP (integers))
2732 && ! NILP (integers))
2733 { 2733 {
2734 XSETBUFFER(data[len], last_thing_searched); 2734 data[len] = last_thing_searched;
2735 len++; 2735 len++;
2736 } 2736 }
2737 2737
@@ -2808,9 +2808,16 @@ LIST should have been created by calling `match-data' previously. */)
2808 search_regs.num_regs = length; 2808 search_regs.num_regs = length;
2809 } 2809 }
2810 2810
2811 for (i = 0; i < length; i++) 2811 for (i = 0;; i++)
2812 { 2812 {
2813 marker = Fcar (list); 2813 marker = Fcar (list);
2814 if (BUFFERP (marker))
2815 {
2816 last_thing_searched = marker;
2817 break;
2818 }
2819 if (i >= length)
2820 break;
2814 if (NILP (marker)) 2821 if (NILP (marker))
2815 { 2822 {
2816 search_regs.start[i] = -1; 2823 search_regs.start[i] = -1;
@@ -2847,10 +2854,6 @@ LIST should have been created by calling `match-data' previously. */)
2847 search_regs.start[i] = -1; 2854 search_regs.start[i] = -1;
2848 } 2855 }
2849 2856
2850 if (CONSP(list) && BUFFERP(XCAR(list))) {
2851 XSETBUFFER(last_thing_searched, XCAR(list));
2852 }
2853
2854 return Qnil; 2857 return Qnil;
2855} 2858}
2856 2859
diff --git a/src/syntax.c b/src/syntax.c
index 302250c39a4..83763061d82 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -1734,7 +1734,6 @@ skip_chars (forwardp, syntaxp, string, lim, handle_iso_classes)
1734 if (!fastmap[*p]) 1734 if (!fastmap[*p])
1735 break; 1735 break;
1736 1736
1737 fwd_unibyte_ok:
1738 p++, pos++; 1737 p++, pos++;
1739 } 1738 }
1740 } 1739 }
@@ -1808,7 +1807,6 @@ skip_chars (forwardp, syntaxp, string, lim, handle_iso_classes)
1808 if (!fastmap[p[-1]]) 1807 if (!fastmap[p[-1]])
1809 break; 1808 break;
1810 1809
1811 back_unibyte_ok:
1812 p--, pos--; 1810 p--, pos--;
1813 } 1811 }
1814 } 1812 }
diff --git a/src/w32select.c b/src/w32select.c
index 0c8849c7be6..20f7cfc457f 100644
--- a/src/w32select.c
+++ b/src/w32select.c
@@ -130,6 +130,8 @@ DEFUN ("w32-set-clipboard-data", Fw32_set_clipboard_data,
130 130
131 BLOCK_INPUT; 131 BLOCK_INPUT;
132 132
133 /* Include the terminating NULL character in the source of
134 conversion. */
133 nbytes = SBYTES (string) + 1; 135 nbytes = SBYTES (string) + 1;
134 src = SDATA (string); 136 src = SDATA (string);
135 dst = src; 137 dst = src;
@@ -208,7 +210,9 @@ DEFUN ("w32-set-clipboard-data", Fw32_set_clipboard_data,
208 { 210 {
209 string = run_pre_post_conversion_on_str (string, &coding, 1); 211 string = run_pre_post_conversion_on_str (string, &coding, 1);
210 src = SDATA (string); 212 src = SDATA (string);
211 nbytes = SBYTES (string); 213 /* Include the terminating NULL character in the source of
214 conversion. */
215 nbytes = SBYTES (string) + 1;
212 } 216 }
213 coding.src_multibyte = 1; 217 coding.src_multibyte = 1;
214 coding.dst_multibyte = 0; 218 coding.dst_multibyte = 0;
diff --git a/src/xfaces.c b/src/xfaces.c
index a5d5c97a332..ce40e053b20 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -5851,7 +5851,7 @@ x_supports_face_attributes_p (f, attrs, def_face)
5851 face = FACE_FROM_ID (f, lookup_face (f, merged_attrs, 0, 0)); 5851 face = FACE_FROM_ID (f, lookup_face (f, merged_attrs, 0, 0));
5852 5852
5853 if (! face) 5853 if (! face)
5854 signal_error ("cannot make face", 0); 5854 error ("cannot make face");
5855 5855
5856 /* If the font is the same, then not supported. */ 5856 /* If the font is the same, then not supported. */
5857 if (face->font == def_face->font) 5857 if (face->font == def_face->font)
@@ -5886,7 +5886,7 @@ tty_supports_face_attributes_p (f, attrs, def_face)
5886 Lisp_Object *attrs; 5886 Lisp_Object *attrs;
5887 struct face *def_face; 5887 struct face *def_face;
5888{ 5888{
5889 int weight, i; 5889 int weight;
5890 Lisp_Object val, fg, bg; 5890 Lisp_Object val, fg, bg;
5891 XColor fg_tty_color, fg_std_color; 5891 XColor fg_tty_color, fg_std_color;
5892 XColor bg_tty_color, bg_std_color; 5892 XColor bg_tty_color, bg_std_color;
@@ -6108,7 +6108,7 @@ face for italic. */)
6108 if (def_face == NULL) 6108 if (def_face == NULL)
6109 { 6109 {
6110 if (! realize_basic_faces (f)) 6110 if (! realize_basic_faces (f))
6111 signal_error ("Cannot realize default face", 0); 6111 error ("Cannot realize default face");
6112 def_face = FACE_FROM_ID (f, DEFAULT_FACE_ID); 6112 def_face = FACE_FROM_ID (f, DEFAULT_FACE_ID);
6113 } 6113 }
6114 6114