aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--admin/FOR-RELEASE14
-rw-r--r--admin/notes/copyright79
-rw-r--r--etc/ChangeLog13
-rw-r--r--etc/Makefile2
-rw-r--r--etc/NEWS14
-rw-r--r--etc/PROBLEMS2
-rw-r--r--etc/Xkeymap.txt120
-rw-r--r--etc/emacs.csh15
-rw-r--r--etc/ms-7bkermit333
-rw-r--r--etc/ms-kermit4
-rw-r--r--etc/ulimit.hack59
-rw-r--r--lisp/ChangeLog333
-rw-r--r--lisp/ChangeLog.1023
-rw-r--r--lisp/ChangeLog.1142
-rw-r--r--lisp/ChangeLog.74
-rw-r--r--lisp/abbrev.el2
-rw-r--r--lisp/complete.el58
-rw-r--r--lisp/cus-edit.el8
-rw-r--r--lisp/diff-mode.el14
-rw-r--r--lisp/emacs-lisp/authors.el2
-rw-r--r--lisp/emacs-lisp/bytecomp.el6
-rw-r--r--lisp/emacs-lisp/edebug.el11
-rw-r--r--lisp/emacs-lisp/lisp-mode.el59
-rw-r--r--lisp/emacs-lisp/re-builder.el5
-rw-r--r--lisp/faces.el8
-rw-r--r--lisp/files.el9
-rw-r--r--lisp/gnus/ChangeLog6
-rw-r--r--lisp/gnus/ChangeLog.270
-rw-r--r--lisp/icomplete.el6
-rw-r--r--lisp/international/isearch-x.el9
-rw-r--r--lisp/isearch.el5
-rw-r--r--lisp/jit-lock.el4
-rw-r--r--lisp/mail/emacsbug.el6
-rw-r--r--lisp/mouse.el17
-rw-r--r--lisp/net/ange-ftp.el2
-rw-r--r--lisp/net/rcirc.el94
-rw-r--r--lisp/net/tramp-smb.el4
-rw-r--r--lisp/net/tramp.el16
-rw-r--r--lisp/pcomplete.el14
-rw-r--r--lisp/progmodes/cc-engine.el100
-rw-r--r--lisp/progmodes/cc-mode.el142
-rw-r--r--lisp/progmodes/cperl-mode.el4
-rw-r--r--lisp/progmodes/grep.el3
-rw-r--r--lisp/progmodes/gud.el5
-rw-r--r--lisp/progmodes/hideshow.el14
-rw-r--r--lisp/progmodes/idlw-help.el8
-rw-r--r--lisp/progmodes/python.el12
-rw-r--r--lisp/replace.el6
-rw-r--r--lisp/ses.el2
-rw-r--r--lisp/shell.el2
-rw-r--r--lisp/simple.el18
-rw-r--r--lisp/smerge-mode.el6
-rw-r--r--lisp/startup.el12
-rw-r--r--lisp/term/x-win.el23
-rw-r--r--lisp/textmodes/org.el7
-rw-r--r--lisp/type-break.el20
-rw-r--r--lisp/woman.el127
-rw-r--r--lispref/ChangeLog28
-rw-r--r--lispref/compile.texi13
-rw-r--r--lispref/display.texi27
-rw-r--r--lispref/markers.texi24
-rw-r--r--lispref/minibuf.texi11
-rw-r--r--lispref/modes.texi4
-rw-r--r--lispref/nonascii.texi7
-rw-r--r--lispref/sequences.texi8
-rw-r--r--lispref/strings.texi71
-rw-r--r--lispref/syntax.texi3
-rw-r--r--lispref/variables.texi19
-rw-r--r--man/ChangeLog15
-rw-r--r--man/custom.texi2
-rw-r--r--man/faq.texi33
-rw-r--r--man/gnus.texi12
-rw-r--r--nt/ChangeLog20
-rw-r--r--nt/INSTALL12
-rw-r--r--src/ChangeLog103
-rw-r--r--src/keyboard.c29
-rw-r--r--src/keymap.c2
-rw-r--r--src/macfns.c22
-rw-r--r--src/macterm.c41
-rw-r--r--src/macterm.h3
-rw-r--r--src/minibuf.c40
-rw-r--r--src/process.c16
-rw-r--r--src/sound.c22
-rw-r--r--src/window.c11
-rw-r--r--src/xdisp.c9
-rw-r--r--src/xselect.c13
-rw-r--r--src/xterm.c17
87 files changed, 2040 insertions, 600 deletions
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE
index 835fef666b6..39f14872dd0 100644
--- a/admin/FOR-RELEASE
+++ b/admin/FOR-RELEASE
@@ -40,7 +40,8 @@ Reminders sent out on 2006-06-08.
40and KDE projects, to use the new Emacs icons in etc/images/icons. 40and KDE projects, to use the new Emacs icons in etc/images/icons.
41 41
42* WINDOWS SUPPORT BUGS. 42* WINDOWS SUPPORT BUGS.
43These don't need to be fixed to start pretest, but we call the 43
44These don't need to be fixed before a release, but we call the
44attention of Windows users to fixing them. 45attention of Windows users to fixing them.
45 46
46** Drew Adams 12 Aug bug rpt: overlay display artifact: trace left behind 47** Drew Adams 12 Aug bug rpt: overlay display artifact: trace left behind
@@ -50,9 +51,7 @@ to the hack introduced on 2005-07-01 to fix some other Cleartype problem.
50** henman@it.to-be.co.jp 09 Aug 2006: ispell.el problem on Cygwin. 51** henman@it.to-be.co.jp 09 Aug 2006: ispell.el problem on Cygwin.
51 (Did we decide that is unreproducible?) 52 (Did we decide that is unreproducible?)
52 53
53** make-network-process :nowait t doesn't work for non-local targets 54** lennart.borgman@gmail.com, Feb 22: C-h k does not catch text properies keymaps
54 on Windows. This has been "fixed" for Emacs 22 by defining
55 BROKEN_NON_BLOCKING_CONNECT in ms-w32.h.
56 55
57 56
58* BUGS 57* BUGS
@@ -60,12 +59,7 @@ to the hack introduced on 2005-07-01 to fix some other Cleartype problem.
60** Fix up copyright confusions. 59** Fix up copyright confusions.
61 See end of admin/notes/copyright. 60 See end of admin/notes/copyright.
62 61
63** simon.marshall@misys.com, Jan 12: 62** david.hansen@gmx.net, Mar 7: shell.el patch to install
64 Font-lock decides function call is function declaration in C++
65
66** md5i@cs.cmu.edu, Feb 20: move-end-of-line in comint buffers
67
68** daniel@bigwalter.net, Feb 25: Echoing of keys and process I/O
69 63
70* DOCUMENTATION 64* DOCUMENTATION
71 65
diff --git a/admin/notes/copyright b/admin/notes/copyright
index 036efa6f006..63947d75df0 100644
--- a/admin/notes/copyright
+++ b/admin/notes/copyright
@@ -15,19 +15,26 @@ longer, eg the text "GNU Emacs is free software...".
15 15
16Summary for the impatient: 16Summary for the impatient:
17 17
181. Don't add a file to Emacs written by someone other than yourself 181. Don't add code to Emacs written by someone other than yourself
19without thinking about the legal aspect (make sure they have an 19without thinking about the legal aspect. Even if the changes are
20assignment, adjust the copyright statements in the file). NB the 20trivial, consider if they combine with previous changes by the same
21ChangeLog entry should be in the name of the author of the code, not 21author to make a non-trivial total. If so, make sure they have an
22the person who installs it. 22assignment. If adding a whole file adjust the copyright statements in
23 23the file.
242. With images, add the legal info to a README file in the directory 24
252. When installing code written by someone else, the ChangeLog entry
26should be in the name of the author of the code, not the person who
27installs it. I think it is helpful to put the author (if not yourself)
28in the CVS log as well; and to not install any of your own changes in
29the same commit.
30
313. With images, add the legal info to a README file in the directory
25containing the image. 32containing the image.
26 33
273. If you add a lot of text to a previously trivial file that had no 344. If you add a lot of text to a previously trivial file that had no
28legal notices, consider if you should add a copyright statement. 35legal notices, consider if you should add a copyright statement.
29 36
304. Please don't just add an FSF copyright without checking that is the 375. Please don't just add an FSF copyright without checking that is the
31right thing to do. 38right thing to do.
32 39
33 40
@@ -133,11 +140,15 @@ lispintro/install-sh
133src/m/news-r6.h 140src/m/news-r6.h
134 public domain, leave alone. 141 public domain, leave alone.
135 142
143etc/BABYL, ms-kermit
144 no notices (see below).
145
136etc/edt-user.doc 146etc/edt-user.doc
137 - update BOTH notices in this file 147 - update BOTH notices in this file
138 148
139etc/emacs.csh 149etc/emacs.csh
140 - keep simple license for this simple file 150 - written by Michael DeCorte, who has no assignment. But trivial
151 enough to not need license.
141 152
142etc/future-bug 153etc/future-bug
143 - doesn't need a humourless disclaimer, because Karl Fogel says we 154 - doesn't need a humourless disclaimer, because Karl Fogel says we
@@ -159,6 +170,12 @@ WHY-FREE
159 licenses that they have. They are distributed with Emacs but they 170 licenses that they have. They are distributed with Emacs but they
160 are not part of Emacs." 171 are not part of Emacs."
161 172
173etc/HELLO
174 standard notices. Just a note that although the file itself is not
175 really copyrightable, in the wider context of it being part of
176 Emacs (and written by those with assignments), a standard notice is
177 fine.
178
162etc/MAILINGLISTS 179etc/MAILINGLISTS
163 rms: simple license is fine for this file 180 rms: simple license is fine for this file
164 181
@@ -361,6 +378,20 @@ src/acldef.h, chpdef.h, ndir.h
361 378
362** Some notes on resolved issues, for historical information only 379** Some notes on resolved issues, for historical information only
363 380
381etc/TERMS
382rms: "surely written either by me or by ESR. (If you can figure out
383which year, I can probably tell you which.) Either way, we have papers
384for it." Present in Emacs-16.56 (15-jul-85).
385
386etc/ulimit.hack
387 Very obsolete file removed March 2007. Doesn't say who the author
388is, but web-search suggests Karl Kleinpaste, who has no Emacs
389assignment. Trivial anyway.
390http://groups.google.com/group/comp.unix.shell/browse_thread/thread/bf3df496994\
3919f1df/7e5922c67b3a98fb
392http://groups.google.com/group/comp.unix.questions/msg/cc7e49cacfd1ccb4
393 (original 1987 source)
394
364lisp/term/README 395lisp/term/README
365 - had no copyright notice till Feb 2007. ChangeLog.3 suggests it was 396 - had no copyright notice till Feb 2007. ChangeLog.3 suggests it was
366 written by Eric Raymond. When asked by rms on 14 Feb 2007 he said: 397 written by Eric Raymond. When asked by rms on 14 Feb 2007 he said:
@@ -381,11 +412,16 @@ lisp/term/README
381admin/check-doc-strings 412admin/check-doc-strings
382 File says it's in the public domain, but that might not make it so. 413 File says it's in the public domain, but that might not make it so.
383 414
415etc/BABYL
416 File written long ago by authors with no assignment. Keep them
417 without notices for now, try and contact authors if possible. Be
418 ready to remove these files if the authors ever object.
384 419
420etc/ms-kermit
385etc/e/eterm-color.ti 421etc/e/eterm-color.ti
386src/acldef.h, chpdef.h, ndir.h 422src/acldef.h, chpdef.h, ndir.h
387 On legal advice from Matt Norwood, the following comment was added 423 On legal advice from Matt Norwood, the following comment was added
388 to these files in Feb 2007: 424 to these files in Feb/Mar 2007:
389 425
390 The code here is forced by the interface, and is not subject to 426 The code here is forced by the interface, and is not subject to
391 copyright, constituting the only possible expression of the 427 copyright, constituting the only possible expression of the
@@ -396,6 +432,19 @@ src/acldef.h, chpdef.h, ndir.h
396 and possibly add a list of all authors who have changed these files. 432 and possibly add a list of all authors who have changed these files.
397 (details in email from Matt Norwood to rms, 2007/02/03). 433 (details in email from Matt Norwood to rms, 2007/02/03).
398 434
435etc/ms-7bkermit
436 Says it was written by Andy Lowry and Joel Spolsky. No entry for
437either in copyright.list. NB this file is not "constrained" like
438ms-kermit (rms: "We know it isn't. A comment at the front says it has
439other bindings which might be handy."). File removed March 2007.
440Re-add if clear up status at some point.
441
442etc/Xkeymap.txt
443 No info on author. File removed March 2007. rms: "It says it is
444RLK's way of remapping his keyboard, so it is not constrained. I think
445it was written by RLK. Let's delete it; if we contact RLK again, we
446can put it back."
447
399 448
400src/m/mips4.h, news-risc.h, pmax.h 449src/m/mips4.h, news-risc.h, pmax.h
401src/s/aix3-2.h, bsd386.h, hpux8.h, hpux9.h, irix4-0.h, irix5-0.h, 450src/s/aix3-2.h, bsd386.h, hpux8.h, hpux9.h, irix4-0.h, irix5-0.h,
@@ -493,11 +542,6 @@ Make sure that all files with non-standard copyrights or licenses are
493noted in this file. 542noted in this file.
494 543
495 544
496etc/BABYL
497 File says it was written in 1983 by Eugene Ciccarelli, who has no
498 assignment. RMS: "The lawyer said we can keep BABYL."
499
500
501REMOVED etc/gnu.xpm, nt/icons/emacs21.ico, nt/icons/sink.ico 545REMOVED etc/gnu.xpm, nt/icons/emacs21.ico, nt/icons/sink.ico
502 - Restore if find legal info. emacs21.ico is not due to Davenport. 546 - Restore if find legal info. emacs21.ico is not due to Davenport.
503 Voelker could not immediately recall anything, but will check and 547 Voelker could not immediately recall anything, but will check and
@@ -528,8 +572,7 @@ REMOVED src/unexhp9k800.c
528 572
529*** These are copyright issues still to be addressed: 573*** These are copyright issues still to be addressed:
530 574
531 575Do we need an assignment from Kevin Rodgers? (rms)
532etc/ms-kermit - no copyright, but ms-7bkermit has one
533 576
534 577
535 578
diff --git a/etc/ChangeLog b/etc/ChangeLog
index d3b8009cb17..4971acef730 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,14 @@
12007-03-11 Glenn Morris <rgm@gnu.org>
2
3 * ms-7bkermit, ulimit.hack, Xkeymap.txt: Remove files.
4
5 * Makefile (SOURCES): ulimit.hack is removed.
6
72007-03-04 David Kastrup <dak@gnu.org>
8
9 * NEWS (fontification): Mention that the new default for
10 jit-lock-stealth-time is now nil.
11
12007-03-01 Kim F. Storm <storm@cua.dk> 122007-03-01 Kim F. Storm <storm@cua.dk>
2 13
3 * ORDERS: Reformat text. 14 * ORDERS: Reformat text.
@@ -574,7 +585,7 @@
574 * NEWS.21, NEWS.20: ... new files for Emacs 21 and Emacs 20 news. 585 * NEWS.21, NEWS.20: ... new files for Emacs 21 and Emacs 20 news.
575 * ONEWS, ONEWS.1, ONEWS.2, ONEWS.3, ONEWS.4: Remove (rename) files ... 586 * ONEWS, ONEWS.1, ONEWS.2, ONEWS.3, ONEWS.4: Remove (rename) files ...
576 * NEWS.19, NEWS.18, NEWS.1-17: ... and organize news about older Emacs 587 * NEWS.19, NEWS.18, NEWS.1-17: ... and organize news about older Emacs
577 versions in separte files. Update copyright notices. 588 versions in separate files. Update copyright notices.
578 589
5792006-06-03 Eli Zaretskii <eliz@gnu.org> 5902006-06-03 Eli Zaretskii <eliz@gnu.org>
580 591
diff --git a/etc/Makefile b/etc/Makefile
index 4f036dfc575..a238bea1928 100644
--- a/etc/Makefile
+++ b/etc/Makefile
@@ -37,7 +37,7 @@ clean distclean maintainer-clean:
37 -rm -f DOC* core *.dvi *.log 37 -rm -f DOC* core *.dvi *.log
38 38
39SOURCES = [0-9A-QS-Z]* README *.[ch16] emacs.* etags.* ledit.l ms-* \ 39SOURCES = [0-9A-QS-Z]* README *.[ch16] emacs.* etags.* ledit.l ms-* \
40 spook-lines tasks.texi termcap.* ulimit.hack *.tex 40 spook-lines tasks.texi termcap.* *.tex
41 41
42unlock: 42unlock:
43 chmod u+w $(SOURCES) 43 chmod u+w $(SOURCES)
diff --git a/etc/NEWS b/etc/NEWS
index 8125667cd50..01b59074922 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1130,10 +1130,16 @@ cperl-mode and make-mode support this.
1130 1130
1131--- 1131---
1132*** The default settings for JIT stealth lock parameters are changed. 1132*** The default settings for JIT stealth lock parameters are changed.
1133The default value for the user option jit-lock-stealth-time is now 16 1133The default value for the user option jit-lock-stealth-time is now nil
1134instead of 3, and the default value of jit-lock-stealth-nice is now 1134instead of 3. This setting of jit-lock-stealth-time disables stealth
11350.5 instead of 0.125. The new defaults should lower the CPU usage 1135fontification: on today's machines, it may be a bug in font lock
1136when Emacs is fontifying in the background. 1136patterns if fontification otherwise noticeably degrades interactivity.
1137If you find movement in infrequently visited buffers sluggish (and the
1138major mode maintainer has no better idea), customizing
1139jit-lock-stealth-time to a non-nil value will let Emacs fontify
1140buffers in the background when it considers the system to be idle.
1141jit-lock-stealth-nice is now 0.5 instead of 0.125 which is supposed to
1142cause less load than the old defaults.
1137 1143
1138--- 1144---
1139*** jit-lock can now be delayed with `jit-lock-defer-time'. 1145*** jit-lock can now be delayed with `jit-lock-defer-time'.
diff --git a/etc/PROBLEMS b/etc/PROBLEMS
index 2d418b7b435..a68af366273 100644
--- a/etc/PROBLEMS
+++ b/etc/PROBLEMS
@@ -2399,6 +2399,8 @@ addition, the Cygwin GCC 3.4.4-2 has problems with generating debug
2399info. Cygwin users are advised not to use these versions of GCC for 2399info. Cygwin users are advised not to use these versions of GCC for
2400compiling Emacs. GCC versions 4.0.3 and 4.1.1 reportedly build a 2400compiling Emacs. GCC versions 4.0.3 and 4.1.1 reportedly build a
2401working Cygwin binary of Emacs, so we recommend these GCC versions. 2401working Cygwin binary of Emacs, so we recommend these GCC versions.
2402Note that these two versions of GCC, 4.0.3 and 4.1.1, are the _only_
2403versions known to succeed in building Emacs (as of v22.1).
2402 2404
2403*** Building the native MS-Windows port with Cygwin GCC can fail. 2405*** Building the native MS-Windows port with Cygwin GCC can fail.
2404 2406
diff --git a/etc/Xkeymap.txt b/etc/Xkeymap.txt
new file mode 100644
index 00000000000..e34d100fb2f
--- /dev/null
+++ b/etc/Xkeymap.txt
@@ -0,0 +1,120 @@
1# -*-Mode: Fundamental-*-
2# X keymap file for rlk with some emacsified bindings
3#
4# Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007
5# Free Software Foundation, Inc.
6# See the end of the file for license conditions.
7#
8# This file contains the default keyboard mapping. The first column contains a X keyboard code; the other
9# 16 columns contain the mapping of the keycode to a character string, with various combinations
10# of the SHIFT, LOCK, META, and CONTROL keys down. See the man page for "keycomp" for more information.
11#
12# Keycode constants for non-typewriter keys are found in <X/Xkeyboard.h>.
13#
14# It is easiest to edit this file with an EMACS window running across the entire width of the display, with
15# tab stop set to 4.
16#
17# E1=Find, E2=Insert Here, E3=Remove, E4=Select, E5=Prev Screen, E6=Next Screen
18# uns L S SL M ML MS MSL C CL CS CSL CM CML CMS CMSL
190212 0023, 0023, 0023, 0023, 0223, 0223, 0223, 0223, 0022, 0022, 0022, 0022, 0222, 0222, 0222, 0222, /* E1 */
200213 U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, /* E2 */
210214 0004, 0004, 0177, 0177, 0304, 0304, 0377, 0377, 0004, 0004, 0177, 0177, 0204, 0204, 0377, 0377 /* E3 */
220215 U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, /* E4 */
230216 0326, 0326, 0326, 0326, 0326, 0326, 0326, 0326, "\255\226" "\255\226" "\255\226" "\255\226" "\255\226" "\255\226" "\255\226" "\255\226" /* E5 */
240217 0026, 0026, 0026, 0026, 0026, 0026, 0026, 0026, 0226, 0226, 0226, 0226, 0226, 0226, 0226, 0226, /* E6 */
250247 0002, 0002, 0002, 0002, 0302, 0302, 0302, 0302, 0202, 0202, 0202, 0202, 0202, 0202, 0202, 0202, /* Left arrow */
260250 0006, 0006, 0006, 0006, 0306, 0306, 0306, 0306, 0206, 0206, 0206, 0206, 0206, 0206, 0206, 0206, /* Right arrow */
270251 0016, 0016, 0016, 0016, 0316, 0316, 0316, 0316, 0216, 0216, 0216, 0216, 0216, 0216, 0216, 0216, /* Down arrow */
280252 0020, 0020, 0020, 0020, 0320, 0320, 0320, 0320, 0220, 0220, 0220, 0220, 0220, 0220, 0220, 0220, /* Up arrow */
290222 0260, '0', 0260, '0', 0260, '0', 0260, '0', 0260, '0', 0260, '0', 0260, '0', 0260, '0', /* KP 0 */
300224 0256, '.', 0256, '.', 0256, '.', 0256, '.', 0256, '.', 0256, '.', 0256, '.', 0256, '.', /* KP . */
310225 '\n', '\n', '\n', '\n', 0312, 0312, 0312, 0312, 0212, 0212, 0212, 0212, 0212, 0212, 0212, 0212, /* KP Enter */
320226 0261, '1', 0261, '1', 0261, '1', 0261, '1', 0261, '1', 0261, '1', 0261, '1', 0261, '1', /* KP 1 */
330227 0262, '2', 0262, '2', 0262, '2', 0262, '2', 0262, '2', 0262, '2', 0262, '2', 0262, '2', /* KP 2 */
340230 0263, '3', 0263, '3', 0263, '3', 0263, '3', 0263, '3', 0263, '3', 0263, '3', 0263, '3', /* KP 3 */
350231 0264, '4', 0264, '4', 0264, '4', 0264, '4', 0264, '4', 0264, '4', 0264, '4', 0264, '4', /* KP 4 */
360232 0265, '5', 0265, '5', 0265, '5', 0265, '5', 0265, '5', 0265, '5', 0265, '5', 0265, '5', /* KP 5 */
370233 0266, '6', 0266, '6', 0266, '6', 0266, '6', 0266, '6', 0266, '6', 0266, '6', 0266, '6', /* KP 6 */
380234 0254, ',', 0254, ',', 0254, ',', 0254, ',', 0254, ',', 0254, ',', 0254, ',', 0254, ',', /* KP , */
390235 0267, '7', 0267, '7', 0267, '7', 0267, '7', 0267, '7', 0267, '7', 0267, '7', 0267, '7', /* KP 7 */
400236 0270, '8', 0270, '8', 0270, '8', 0270, '8', 0270, '8', 0270, '8', 0270, '8', 0270, '8', /* KP 8 */
410237 0271, '9', 0271, '9', 0271, '9', 0271, '9', 0271, '9', 0271, '9', 0271, '9', 0271, '9', /* KP 9 */
420240 0255, '-', 0255, '-', 0255, '-', 0255, '-', 0255, '-', 0255, '-', 0255, '-', 0255, '-', /* KP - */
430174 0010, 0010, 0010, 0010, 0010, 0010, 0010, 0010, 0010, 0010, 0010, 0010, 0010, 0010, 0010, 0010, /* F15/Help */
440175 0037, 0037, 0037, 0037, 0037, 0037, 0037, 0037, 0037, 0037, 0037, 0037, 0037, 0037, 0037, 0037, /* F16/(Un)Do */
450161 0033, 0033, 0033, 0033, 0033, 0033, 0033, 0033, 0033, 0033, 0033, 0033, 0033, 0033, 0033, 0033, /* F11/ESC */
460162 '\b', '\b', '\b', '\b', '\b', '\b', U, U, '\b', '\b', U, U, U, U, U, U, /* F12/BS */
470163 '\n', '\n', '\n', '\n', '\n', '\n', U, U, '\n', '\n', U, U, U, U, U, U, /* F13/LF */
480274 0177, 0177, 0177, 0177, 0377, 0377, 0377, 0377, 0030, 0030, 0177, 0177, 0377, 0377, 0377, 0377, /* back */
490275 '\r', '\r', '\r', '\r', 0215, 0215, 0215, 0215, '\r', '\r', U, U, U, U, U, U, /* Return */
500276 '\t', '\t', '\t', '\t', 0211, 0211, 0211, 0211, "\021\t" "\021\t" "\021\t" "\021\t" "\021\t" "\021\t" "\021\t" "\021\t" /* Tab */
510277 '`', '`', '~', '~', 0340, 0340, 0376, 0376, 0036, 0036, 0036, 0036, U, U, U, U, /* ` */
520300 '1', '1', '!', '!', 0261, 0261, 0241, 0241, '1', '1', '!', '!', U, U, U, U, /* 1 */
530301 'q', 'Q', 'Q', 'Q', 0361, 0361, 0321, 0321, 0021, 0021, 0021, 0021, 0221, 0221, 0221, 0221, /* q */
540302 'a', 'A', 'A', 'A', 0341, 0341, 0301, 0301, 0001, 0001, 0001, 0001, 0201, 0201, 0201, 0201, /* a */
550303 'z', 'Z', 'Z', 'Z', 0372, 0372, 0332, 0332, 0032, 0032, 0032, 0032, 0232, 0232, 0232, 0232, /* z */
560305 '2', '2', '@', '@', 0262, 0262, 0300, 0300, 0000, 0000, 0000, 0000, 0262, 0262, 0200, 0200, /* 2 */
570306 'w', 'W', 'W', 'W', 0367, 0367, 0327, 0327, 0027, 0027, 0027, 0027, 0227, 0227, 0227, 0227, /* w */
580307 's', 'S', 'S', 'S', 0363, 0363, 0323, 0323, 0023, 0023, 0023, 0023, 0223, 0223, 0223, 0223, /* s */
590310 'x', 'X', 'X', 'X', 0370, 0370, 0330, 0330, 0030, 0030, 0030, 0030, 0230, 0230, 0230, 0230, /* x */
600311 '<', '<', '>', '>', 0274, 0274, 0276, 0276, U, U, U, U, U, U, U, U, /* < */
610313 '3', '3', '#', '#', 0263, 0263, 0243, 0243, 0033, 0033, '#', '#', U, U, U, U, /* 3 */
620314 'e', 'E', 'E', 'E', 0345, 0345, 0305, 0305, 0005, 0005, 0005, 0005, 0205, 0205, 0205, 0205, /* e */
630315 'd', 'D', 'D', 'D', 0344, 0344, 0304, 0304, 0004, 0004, 0004, 0004, 0204, 0204, 0204, 0204, /* d */
640316 'c', 'C', 'C', 'C', 0343, 0343, 0303, 0303, 0003, 0003, 0003, 0003, 0203, 0203, 0203, 0203, /* c */
650320 '4', '4', '$', '$', 0264, 0264, 0244, 0244, 0034, 0034, '$', '$', U, U, U, U, /* 4 */
660321 'r', 'R', 'R', 'R', 0362, 0362, 0322, 0322, 0022, 0022, 0022, 0022, 0222, 0222, 0222, 0222, /* r */
670322 'f', 'F', 'F', 'F', 0346, 0346, 0306, 0306, 0006, 0006, 0006, 0006, 0206, 0206, 0206, 0206, /* f */
680323 'v', 'V', 'V', 'V', 0366, 0366, 0326, 0326, 0026, 0026, 0026, 0026, 0226, 0226, 0226, 0226, /* v */
690324 ' ', ' ', ' ', ' ', 0240, 0240, 0240, 0240, 0000, 0000, 0000, 0000, 0200, 0200, 0200, 0200, /* space */
700326 '5', '5', '%', '%', 0265, 0265, 0245, 0245, 0035, 0035, '%', '%', U, U, U, U, /* 5 */
710327 't', 'T', 'T', 'T', 0364, 0364, 0324, 0324, 0024, 0024, 0024, 0024, 0224, 0224, 0224, 0224, /* t */
720330 'g', 'G', 'G', 'G', 0347, 0347, 0307, 0307, 0007, 0007, 0007, 0007, 0207, 0207, 0207, 0207, /* g */
730331 'b', 'B', 'B', 'B', 0342, 0342, 0302, 0302, 0002, 0002, 0002, 0002, 0202, 0202, 0202, 0202, /* b */
740333 '6', '6', '^', '^', 0266, 0266, 0336, 0336, 0036, 0036, 0036, 0036, U, U, U, U, /* 6 */
750334 'y', 'Y', 'Y', 'Y', 0371, 0371, 0331, 0331, 0031, 0031, 0031, 0031, 0231, 0231, 0231, 0231, /* y */
760335 'h', 'H', 'H', 'H', 0350, 0350, 0310, 0310, 0010, 0010, 0010, 0010, 0210, 0210, 0210, 0210, /* h */
770336 'n', 'N', 'N', 'N', 0356, 0356, 0316, 0316, 0016, 0016, 0016, 0016, 0216, 0216, 0216, 0216, /* n */
780340 '7', '7', '&', '&', 0267, 0267, 0246, 0246, 0037, 0037, '&', '&', U, U, U, U, /* 7 */
790341 'u', 'U', 'U', 'U', 0365, 0365, 0325, 0325, 0025, 0025, 0025, 0025, 0225, 0225, 0225, 0225, /* u */
800342 'j', 'J', 'J', 'J', 0352, 0352, 0312, 0312, 0012, 0012, 0012, 0012, 0212, 0212, 0212, 0212, /* j */
810343 'm', 'M', 'M', 'M', 0355, 0355, 0315, 0315, 0015, 0015, 0015, 0015, 0215, 0215, 0215, 0215, /* m */
820345 '8', '8', '*', '*', 0270, 0270, 0252, 0252, 0177, 0177, '*', '*', U, U, U, U, /* 8 */
830346 'i', 'I', 'I', 'I', 0351, 0351, 0311, 0311, 0011, 0011, 0011, 0011, 0211, 0211, 0211, 0211, /* i */
840347 'k', 'K', 'K', 'K', 0353, 0353, 0313, 0313, 0013, 0013, 0013, 0013, 0213, 0213, 0213, 0213, /* k */
850350 ',', ',', '<', '<', 0254, 0254, 0274, 0274, U, U, U, U, U, U, U, U, /* , */
860352 '9', '9', '(', '(', 0271, 0271, 0250, 0250, '9', '9', '(', '(', U, U, U, U, /* 9 */
870353 'o', 'O', 'O', 'O', 0357, 0357, 0317, 0317, 0017, 0017, 0017, 0017, 0217, 0217, 0217, 0217, /* o */
880354 'l', 'L', 'L', 'L', 0354, 0354, 0314, 0314, 0014, 0014, 0014, 0014, 0214, 0214, 0214, 0214, /* l */
890355 '.', '.', '>', '>', 0256, 0256, 0276, 0276, U, U, U, U, U, U, U, U, /* . */
900357 '0', '0', ')', ')', 0260, 0260, 0251, 0251, '0', '0', ')', ')', U, U, U, U, /* 0 */
910360 'p', 'P', 'P', 'P', 0360, 0360, 0320, 0320, 0020, 0020, 0020, 0020, 0220, 0220, 0220, 0220, /* p */
920362 ';', ';', ':', ':', 0273, 0273, 0272, 0272, U, U, U, U, U, U, U, U, /* ; */
930363 '/', '/', '?', '?', 0257, 0257, 0277, 0277, 0037, 0037, 0037, 0037, 0237, 0237, 0237, 0237, /* / */
940365 '=', '=', '+', '+', 0275, 0275, 0253, 0253, U, U, U, U, U, U, U, U, /* = */
950366 ']', ']', '}', '}', 0335, 0335, 0376, 0376, 0035, 0035, 0035, 0035, 0335, 0335, 0335, 0335, /* ] */
960367 '\\', '\\', '|', '|', 0334, 0334, 0374, 0374, 0034, 0034, 0034, 0034, 0334, 0334, 0334, 0334, /* \ */
970371 '-', '-', '_', '_', 0255, 0255, 0337, 0337, 0037, 0037, 0037, 0037, 0337, 0337, 0337, 0337, /* - */
980372 '[', '[', '{', '{', 0333, 0333, 0373, 0373, 0033, 0033, 0033, 0033, 0333, 0333, 0333, 0333, /* [ */
990373 '\'', '\'', '"', '"', 0247, 0247, 0242, 0242, U, U, U, U, U, U, U, U, /* ' */
100#
101# local variables:
102# tab-width: 4
103# End:
104#
105# This document is free software; you can redistribute it and/or modify
106# it under the terms of the GNU General Public License as published by
107# the Free Software Foundation; either version 2, or (at your option)
108# any later version.
109#
110# This document is distributed in the hope that it will be useful,
111# but WITHOUT ANY WARRANTY; without even the implied warranty of
112# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
113# GNU General Public License for more details.
114#
115# You should have received a copy of the GNU General Public License
116# along with this document; see the file COPYING. If not, write to the
117# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
118# Boston, MA 02110-1301, USA.
119#
120# arch-tag: cbaa71af-719b-4647-a2c1-cd4d36a4fc64
diff --git a/etc/emacs.csh b/etc/emacs.csh
index 58c2bf03fa9..5f489333a8b 100644
--- a/etc/emacs.csh
+++ b/etc/emacs.csh
@@ -1,22 +1,7 @@
1### emacs.csh 1### emacs.csh
2 2
3## Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007
4## Free Software Foundation, Inc.
5
6## Author: Michael DeCorte 3## Author: Michael DeCorte
7 4
8## COPYING PERMISSIONS:
9
10## Permission is hereby granted, free of charge, to any person
11## obtaining a copy of this file, to deal in the file without
12## restriction, including without limitation the rights to use, copy,
13## modify, merge, publish, distribute, sublicense, and/or sell copies
14## of the file, and to permit persons to whom the file is furnished to
15## do so, subject to the following condition:
16##
17## The above copyright notice and this permission notice shall be
18## included in all copies or substantial portions of the file.
19
20### Commentary: 5### Commentary:
21 6
22## This defines a csh command named `edit' which resumes an 7## This defines a csh command named `edit' which resumes an
diff --git a/etc/ms-7bkermit b/etc/ms-7bkermit
new file mode 100644
index 00000000000..091264fee14
--- /dev/null
+++ b/etc/ms-7bkermit
@@ -0,0 +1,333 @@
1;;; Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007
2;;; Free Software Foundation, Inc.
3
4;;; This file is designed for 7-bit connections.
5;;; Use the file ms-kermit if you have an 8-bit connection.
6
7;;; This kermit script maps the IBM-PC keyboard for use with Gnu Emacs.
8;;; The ALT key is used to generate Meta characters and, in conjunction
9;;; with the CTRL key, Control-Meta characters. A few other useful
10;;; mappings are also performed.
11;;; Andy Lowry, May 1989
12
13;;; Exchange ESC and backquote... tilde stays put (shift-backquote)
14set key \27 `
15set key ` \27
16
17;;; BACKSPACE deletes backward one character
18set key scan \270 \127
19
20;;; The following mappings affect certain special keys... all the keys
21;;; are duplicated on the numeric keypad when NUM LOCK is off, but
22;;; the keypad versions are NOT mapped (string definition space too small
23;;; for that)
24
25;;; INSERT toggles overwrite mode
26set key scan \4434 \27xoverwrite-mode\13
27;;; HOME moves point to beginning of buffer
28set key scan \4423 \27<
29;;; PAGE-UP scrolls backward one screen
30set key scan \4425 \27v
31;;; DELETE deletes one character *forward*
32set key scan \4435 \4
33;;; END moves point to end of buffer
34set key scan \4431 \27>
35;;; PAGE-DOWN scrolls forward one screen
36set key scan \4433 \22
37;;; ARROW keys move in the appropriate directions
38set key scan \4424 \16
39set key scan \4427 \2
40set key scan \4432 \14
41set key scan \4429 \6
42
43;;; META versions of all the printing characters except uppercase
44;;; letters are generated by using the ALT key. The definition string
45;;; consists of an ESC character followed by the META-ized character.
46;;; The characters are listed roughly left-to-right and top-to-bottom
47;;; as they appear on the keyboard
48set key scan \2345 \27`
49set key scan \2424 \27\o61 ; need to use char code, since digit
50set key scan \2425 \27\o62 ; would not terminate '\27'
51set key scan \2426 \27\o63
52set key scan \2427 \27\o64
53set key scan \2428 \27\o65
54set key scan \2429 \27\o66
55set key scan \2430 \27\o67
56set key scan \2431 \27\o70
57set key scan \2432 \27\o71
58set key scan \2433 \27\o60
59set key scan \2434 \27\45
60set key scan \2435 \27=
61set key scan \2857 \27~
62set key scan \2936 \27!
63set key scan \2937 \27@
64set key scan \2938 \27#
65set key scan \2939 \27$
66set key scan \2940 \27%
67set key scan \2941 \27^
68set key scan \2942 \27&
69set key scan \2943 \27*
70set key scan \2944 \27(
71set key scan \2945 \27)
72set key scan \2946 \27_
73set key scan \2947 \27+
74set key scan \2469 \27\9
75set key scan \2320 \27q
76set key scan \2321 \27w
77set key scan \2322 \27e
78set key scan \2323 \27r
79set key scan \2324 \27t
80set key scan \2325 \27y
81set key scan \2326 \27u
82set key scan \2327 \27i
83set key scan \2328 \27o
84set key scan \2329 \27p
85set key scan \2330 \27[
86set key scan \2842 \27{
87set key scan \2331 \27]
88set key scan \2843 \27}
89set key scan \2347 \27\
90set key scan \2859 \27|
91set key scan \2334 \27a
92set key scan \2335 \27s
93set key scan \2336 \27d
94set key scan \2337 \27f
95set key scan \2338 \27g
96set key scan \2339 \27h
97set key scan \2340 \27j
98set key scan \2341 \27k
99set key scan \2342 \27l
100set key scan \2343 \27\59
101set key scan \2855 \27:
102set key scan \2344 \27'
103set key scan \2856 \27"
104set key scan \2348 \27z
105set key scan \2349 \27x
106set key scan \2350 \27c
107set key scan \2351 \27v
108set key scan \2352 \27b
109set key scan \2353 \27n
110set key scan \2354 \27m
111set key scan \2355 \27,
112set key scan \2867 \27<
113set key scan \2356 \27.
114set key scan \2868 \27>
115set key scan \2357 \27/
116set key scan \2869 \27?
117
118;;; CONTROL-META characters are generated by using both the CTRL and
119;;; ALT keys simultaneously. All the lowercase letters are included.
120;;; The definition string consists of an ESC character followed by
121;;; the control character corresponding to the letter.
122set key scan \3344 \27\17
123set key scan \3345 \27\23
124set key scan \3346 \27\5
125set key scan \3347 \27\18
126set key scan \3348 \27\20
127set key scan \3349 \27\25
128set key scan \3350 \27\21
129set key scan \3351 \27\9
130set key scan \3352 \27\15
131set key scan \3353 \27\16
132set key scan \3358 \27\1
133set key scan \3359 \27\19
134set key scan \3360 \27\4
135set key scan \3361 \27\6
136set key scan \3362 \27\7
137set key scan \3363 \27\8
138set key scan \3364 \27\10
139set key scan \3365 \27\11
140set key scan \3366 \27\12
141set key scan \3372 \27\26
142set key scan \3373 \27\24
143set key scan \3374 \27\3
144set key scan \3375 \27\22
145set key scan \3376 \27\2
146set key scan \3377 \27\14
147set key scan \3378 \27\13
148
149end of msiem2.ini
150------------------
151
152msiema.hlp
153-----------
154Date: Wed, 14 Sep 88 05:20:08 GMT
155From: spolsky@YALE.ARPA
156Subject: Using MS kermit 2.31 with emacs
157Keywords: MS-DOS Kermit 2.31, EMACS, Meta Key
158
159If you are using kermit (version 2.31 only) with emacs on a mainframe, the
160following file may help you. It assigns all the Alt-keys so that the Alt key
161may be used as a "Meta" shift, e.g. Alt-x produces M-x, etc. Note that it
162will distinguish correctly between upper and lower case and accepts all
163printables. (If anybody has the patience to do the Meta-Ctrl combinations,
164please post them!) This actually sends "escapes" so you don't need 8 bits.
165This file also sets up the cursor keys to behave as expected.
166
167On extended keyboards (the ones with a separate cursor pad, like PS/2s) you
168also get assignments for Page Up/Down, Home, End, Insert, Delete, etc.
169
170Please let me know if you find any problems with this.
171
172Joel Spolsky bitnet: spolsky@yalecs uucp: ...!yale!spolsky
173Yale University arpa: spolsky@yale.edu voicenet: 203-436-1483
174
175[Ed. - Thanks, Joel! Your key definitions file has been put in the kermit
176distribution area as msiema.ini ("ms" for MS-Kermit, "i" because it's an
177initialization file, "ema" for EMACS), along with this message as msiema.hlp.]
178
179end of msiema.hlp
180-----------------
181
182
183msiema.ini
184------------
185; Emacs keyboard layout for Kermit 2.31
186; by Joel Spolsky, Yale Univ. Save this in a file, then
187; initialize it by issuing the kermit command
188; take filename
189; It will set up the keyboard to allow ALT to be used
190; as a meta-key, and will allow cursor keys to be used
191; with emacs.
192
193; First, define all the ALT keys to send ESC+key
194; to simulate "meta"
195
196set key \2320 \27q ;; letters: unshifted
197set key \2321 \27w
198set key \2322 \27e
199set key \2323 \27r
200set key \2324 \27t
201set key \2325 \27y
202set key \2326 \27u
203set key \2327 \27i
204set key \2328 \27o
205set key \2329 \27p
206set key \2334 \27a
207set key \2335 \27s
208set key \2336 \27d
209set key \2337 \27f
210set key \2338 \27g
211set key \2339 \27h
212set key \2340 \27j
213set key \2341 \27k
214set key \2342 \27l
215set key \2348 \27z
216set key \2349 \27x
217set key \2350 \27c
218set key \2351 \27v
219set key \2352 \27b
220set key \2353 \27n
221set key \2354 \27m
222set key \2832 \27Q ;; letters: shifted
223set key \2833 \27W
224set key \2834 \27E
225set key \2835 \27R
226set key \2836 \27T
227set key \2837 \27Y
228set key \2838 \27U
229set key \2839 \27I
230set key \2840 \27O
231set key \2841 \27P
232set key \2846 \27A
233set key \2847 \27S
234set key \2848 \27D
235set key \2849 \27F
236set key \2850 \27G
237set key \2851 \27H
238set key \2852 \27J
239set key \2853 \27K
240set key \2854 \27L
241set key \2860 \27Z
242set key \2861 \27X
243set key \2862 \27C
244set key \2863 \27V
245set key \2864 \27B
246set key \2865 \27N
247set key \2866 \27M
248set key \2857 \27\126 ; ALT + ~ ;; special symbols begin here
249set key \2345 \27\96 ; ALT + `
250set key \2936 \27\33 ; ALT + !
251set key \2937 \27\64 ; ALT + @
252set key \2938 \27\35 ; ALT + #
253set key \2939 \27\36 ; ALT + $
254set key \2940 \27\37 ; ALT + %
255set key \2941 \27\94 ; ALT + ^
256set key \2942 \27\38 ; ALT + &
257set key \2943 \27\42 ; ALT + *
258set key \2944 \27\40 ; ALT + (
259set key \2945 \27\41 ; ALT + )
260set key \2946 \27\95 ; ALT + _
261set key \2947 \27\43 ; ALT + +
262set key \2842 \27\123 ; ALT + {
263set key \2843 \27\125 ; ALT + }
264set key \2330 \27\91 ; ALT + [
265set key \2331 \27\93 ; ALT + ]
266set key \2859 \27\124 ; ALT + :
267set key \2347 \27\92 ; ALT + \
268set key \2867 \27< ; ALT + <
269set key \2868 \27> ; ALT + >
270set key \2343 \27\59 ; ALT + ;
271set key \2855 \27\58 ; ALT + :
272set key \2344 \27\39 ; ALT + '
273set key \2856 \27\34 ; ALT + "
274set key \2355 \27\44 ; ALT + ,
275set key \2356 \27\46 ; ALT + .
276set key \2357 \27\47 ; ALT + /
277set key \2869 \27\63 ; ALT + ?
278set key \2424 \27\49 ;; numbers
279set key \2425 \27\50
280set key \2426 \27\51
281set key \2427 \27\52
282set key \2428 \27\53
283set key \2429 \27\54
284set key \2430 \27\55
285set key \2431 \27\56
286set key \2432 \27\57
287set key \2433 \27\48
288
289;; These 6 special keys for extended (PS/2) keyboards:
290set key \4434 \25 ;; Insert is like ^Y - yank from kill ring
291set key \4435 \23 ;; Delete is like ^W - kill to ring
292set key \4423 \1 ;; Home is ^A
293set key \4431 \5 ;; End is ^E
294set key \4425 \27V ;; Page up is Esc-V
295set key \4433 \22 ;; Page dn is ^v
296
297set key \328 \16 ;; up cursor is ^P
298set key \331 \2 ;; left cursor is ^B
299set key \333 \6 ;; right cursor is ^F
300set key \336 \14 ;; down cursor is ^N
301set key \4427 \2 ;; left cursor on extended kbd
302set key \4432 \14 ;; down cursor on extended kbd
303set key \4424 \16 ;; up cursor on extended kbd
304set key \4429 \6 ;; right cursor on extended kbd
305
306set key \5491 \27b ;; ctrl-left cursor is M-b
307set key \5492 \27f ;; ctrl-right cursor is M-f
308
309;; move kermit's screen scroll (playback) features to Alt- Home,End,PgUp,PgDn
310;; (this is an issue for extended keyboards only)
311
312set key \2455 \khomscn
313set key \2463 \kendscn
314set key \2457 \kupscn
315set key \2465 \kdnscn
316
317;;; COPYING PERMISSIONS:
318;;;
319;;; This document is free software; you can redistribute it and/or modify
320;;; it under the terms of the GNU General Public License as published by
321;;; the Free Software Foundation; either version 2 of the License, or
322;;; (at your option) any later version.
323;;;
324;;; This program is distributed in the hope that it will be useful,
325;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
326;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
327;;; GNU General Public License for more details.
328;;;
329;;; You should have received a copy of the GNU General Public License
330;;; along with this program; if not, write to the Free Software
331;;; Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
332
333;;; arch-tag: b066a884-e956-4f46-9d9c-13502f6cf7a6
diff --git a/etc/ms-kermit b/etc/ms-kermit
index e25c3dbe643..ba53add6a78 100644
--- a/etc/ms-kermit
+++ b/etc/ms-kermit
@@ -1,3 +1,7 @@
1;;; The code here is forced by the interface, and is not subject to
2;;; copyright, constituting the only possible expression of the algorithm
3;;; in this format.
4
1;;; This file is designed for an 8-bit connection. 5;;; This file is designed for an 8-bit connection.
2;;; Use the file ms-7bkermit if you have a 7-bit connection. 6;;; Use the file ms-7bkermit if you have a 7-bit connection.
3 7
diff --git a/etc/ulimit.hack b/etc/ulimit.hack
new file mode 100644
index 00000000000..674a9613b60
--- /dev/null
+++ b/etc/ulimit.hack
@@ -0,0 +1,59 @@
1#!/bin/sh
2#
3# ulimit.hack: Create an intermediate program for use in
4# between kernel initialization and init startup.
5# This is needed on a 3b system if the standard CDLIMIT is
6# so small that the dumped Emacs file cannot be written.
7# This program causes everyone to get a bigger CDLIMIT value
8# so that the dumped Emacs can be written out.
9#
10# Users of V.3.1 and later should not use this; see etc/MACHINES
11# and reconfig your kernel's CDLIMIT parameter instead.
12#
13# Caveat: Heaven help you if you screw this up. This puts
14# a new program in as /etc/init, which then execs the real init.
15#
16cat > ulimit.init.c << \EOF
17main(argc, argv)
18int argc;
19char *argv[];
20{
21 ulimit(2, 262144L); /* "2" is the "set" command. */
22 /* 262,144 allows for 128Mb files to be written. */
23 /* If that value isn't suitable, roll your own. */
24 execv("/etc/real.init", argv);
25}
26EOF
27#
28# Compile it and put it in place of the usual init program.
29#
30cc ulimit.init.c -o ulimit.init
31mv /etc/init /etc/real.init
32mv ulimit.init /etc/ulimit.init
33ln /etc/ulimit.init /etc/init
34mv ulimit.init.c /etc/ulimit.init.c # to keep src for this hack nearby.
35chmod 0754 /etc/init
36exit 0
37#
38# Upon system reboot, all processes will inherit the new large ulimit.
39
40# Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007
41# Free Software Foundation, Inc.
42
43# COPYING PERMISSIONS:
44#
45# This document is free software; you can redistribute it and/or modify
46# it under the terms of the GNU General Public License as published by
47# the Free Software Foundation; either version 2 of the License, or
48# (at your option) any later version.
49#
50# This program is distributed in the hope that it will be useful,
51# but WITHOUT ANY WARRANTY; without even the implied warranty of
52# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
53# GNU General Public License for more details.
54#
55# You should have received a copy of the GNU General Public License
56# along with this program; if not, write to the Free Software
57# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
58
59# arch-tag: 6f9a7072-9d07-4431-b0bb-e867648ad0b4
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 1c243b3c571..71ed26b632d 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,272 @@
12007-03-11 Richard Stallman <rms@gnu.org>
2
3 * emacs-lisp/bytecomp.el (byte-compile-warning-prefix):
4 Correctly compute line number.
5
62007-03-11 Guanpeng Xu <herberteuler@hotmail.com>
7
8 * type-break.el (type-break-get-previous-count):
9 Repeat previous change here.
10
112007-03-11 Dan Nicolaescu <dann@ics.uci.edu>
12
13 * progmodes/grep.el (grep-find-ignored-directories): Add .git and
14 .bzr to list.
15
162007-03-11 Andreas Schwab <schwab@suse.de>
17
18 * diff-mode.el (diff-apply-hunk): Use proper format string for
19 error.
20
212007-03-11 Stefan Monnier <monnier@iro.umontreal.ca>
22
23 * mail/emacsbug.el (report-emacs-bug): Don't hard code the "X" name.
24
252007-03-10 Chong Yidong <cyd@stupidchicken.com>
26
27 * faces.el (face-set-after-frame-default): Recalculate face
28 customizations after applying X resources.
29
302007-03-10 Ryan Yeske <rcyeske@gmail.com>
31
32 * net/rcirc.el (rcirc-timeout-seconds): New variable.
33 (rcirc-keepalive-seconds): Remove variable.
34 (rcirc-server-name, rcirc-timeout-timer, rcirc-connecting)
35 (rcirc-process, rcirc-user-disconnect): New variables.
36 (rcirc-connect): Initalize new variables.
37 (rcirc-keepalive): Don't send keepalive pings before connection
38 is completed.
39 (rcirc-sentinel): Do mark all channels with activity when
40 connection is dropped. Run hook with process buffer local.
41 (rcirc-reschedule-timeout, rcirc-delete-process): New functions.
42 (rcirc-buffer-process): Return value of rcirc-process if
43 rcirc-server-buffer is nil.
44 (rcirc-server-name): Return the reported server name.
45 (rcirc-update-prompt): Simplify computation of the server name.
46 (rcirc-format-response-string): Likewise.
47 (rcirc-handler-001): Mark server as connected, record the reported
48 server name, and schedule a timeout.
49 (rcirc-track-nick): Add a spec for the tty class.
50 (rcirc-user-non-nick): Remove function.
51 (rcirc-nick-prefix-chars): Add variable.
52 (rcirc-user-nick): Use above variable.
53
542007-03-10 Johan Bockg,be(Brd <bojohan@dd.chalmers.se>
55
56 * icomplete.el (icomplete-tidy, icomplete-exhibit):
57 Bind deactivate-mark to nil.
58
592007-03-10 Martin Rudalics <rudalics@gmx.at>
60
61 * complete.el (PC-do-completion): Bind dirlength to nil to avoid
62 that buffer contents get erased during completion.
63
642007-03-10 Glenn Morris <rgm@gnu.org>
65
66 * woman.el (woman-change-fonts): Add a hack to deal with
67 font-escape followed by "." at start of a line.
68 (woman2-IP): Add a hack to deal with consecutive requests.
69 (woman2-tagged-paragraph): Extend existing hack to handle "sp".
70
712007-03-10 Alan Mackenzie <acm@muc.de>
72
73 * progmodes/cc-mode.el (c-before-change): Wrap in save-match-data.
74
752007-03-09 Richard Stallman <rms@gnu.org>
76
77 * abbrev.el (abbrev): Add `provide'.
78
792007-03-09 Thien-Thi Nguyen <ttn@gnu.org>
80
81 * net/ange-ftp.el (ange-ftp-try-passive-mode): Doc fix.
82
832007-03-09 Martin Rudalics <rudalics@gmx.at>
84
85 * complete.el (PC-try-completion): New function.
86 (PC-do-completion, read-file-name-internal): Use it instead of
87 try-completion.
88
892007-03-08 Alan Mackenzie <acm@muc.de>
90
91 Remove stale tokens from `c-found-types' cache.
92
93 * progmodes/cc-mode.el (c-unfind-enclosing-token)
94 (c-unfind-coalesced-tokens, c-before-change): New functions.
95 (c-maybe-stale-found-type): New variable.
96
97 * progmodes/cc-engine.el (c-partial-ws-p, c-unfind-type)
98 (c-trim-found-types): New functions.
99
1002007-03-08 Stefan Monnier <monnier@iro.umontreal.ca>
101
102 * smerge-mode.el (smerge-remove-props): Don't mark the buffer modified.
103 (debug-ignored-errors): Add entry from smerge-match-conflict.
104
1052007-03-08 J.D. Smith <jdsmith@as.arizona.edu>
106
107 * progmodes/idlw-help.el (idlwave-do-context-help1): Don't visit
108 special help topics for keywords.
109 (idlwave-help-assistant-command): Include ".exe" for ms-dos
110 etc. Assistant command.
111
1122007-03-08 Chong Yidong <cyd@stupidchicken.com>
113
114 * replace.el (occur-engine): Move buffer-undo-list binding...
115 (occur-1): ...to here.
116
117 * complete.el (PC-bindings): Rebind M-TAB in read-expression-map.
118
119 * simple.el (minibuffer-completing-symbol): New var.
120 (eval-expression): Use it.
121 (completion-setup-function): Don't bind completion-base-size when
122 completing a symbol in the minibuffer.
123
1242007-03-08 Nick Roberts <nickrob@snap.net.nz>
125
126 * progmodes/gud.el (gdb): Pop up current GUD buffer if user
127 tries to start a second session in graphical mode.
128
1292007-03-07 Miles Bader <miles@gnu.org>
130
131 * international/isearch-x.el
132 (isearch-process-search-multibyte-characters):
133 Strip text-properties from PROMPT to avoid an error from read-string.
134
1352007-03-07 Kim F. Storm <storm@cua.dk>
136
137 * complete.el (PC-bindings): Remap lisp-complete-symbol to
138 PC-lisp-complete-symbol instead of binding M-TAB in global-map.
139
1402007-03-07 Micha,Ak(Bl Cadilhac <michael@cadilhac.name>
141
142 * complete.el (PC-do-completion): Delete duplicates in the list of
143 possible completions.
144
1452007-03-07 Glenn Morris <rgm@gnu.org>
146
147 * ses.el (ses-mode): Doc fix.
148
1492007-03-06 Kim F. Storm <storm@cua.dk>
150
151 * isearch.el (isearch-message-prefix): Undo 2007-03-01 change.
152
1532007-03-06 Kenichi Handa <handa@m17n.org>
154
155 * term/x-win.el (x-select-utf8-or-ctext): Improve the strategy.
156
1572007-03-06 Stefan Monnier <monnier@iro.umontreal.ca>
158
159 * simple.el (completion-setup-function): Improve last fix so it doesn't
160 set it to a relative directory name either.
161
1622007-03-05 Vinicius Jose Latorre <viniciusjl@ig.com.br>
163
164 * ps-print.el: Replace some (defvar VAR) by (defvar VAR nil).
165
1662007-03-05 Richard Stallman <rms@gnu.org>
167
168 * emacs-lisp/re-builder.el (reb-re-syntax): Fix custom type.
169
170 * files.el (find-file-noselect): No error if file no longer exists.
171 Display a message and avoid other questions.
172
1732007-03-05 Stefan Monnier <monnier@iro.umontreal.ca>
174
175 * pcomplete.el (pcomplete-show-completions): Improve last change, so
176 as not to use an invisible window and to create a window if none exist.
177
178 * progmodes/python.el (python-send-command): Restart proc if necessary.
179 (python-proc): Simplify.
180
1812007-03-05 David Hansen <david.hansen@gmx.net> (tiny change)
182
183 * pcomplete.el (pcomplete-show-completions): Search all frames for
184 completions buffer.
185
1862007-03-05 Chong Yidong <cyd@stupidchicken.com>
187
188 * cus-edit.el (customize-save-variable): Clear customized-value
189 property (saved values are now put in theme-value property).
190 (customize-set-variable): Doc fix.
191
192 * complete.el (PC-do-completion): If completion-ignore-case is
193 non-nil, replace field with completion string before exiting.
194
1952007-03-05 Michael Albinus <michael.albinus@gmx.de>
196
197 * net/tramp.el (tramp-make-temp-file): New parameter FILENAME.
198 Append its extension to the resulting temporary file name.
199 (tramp-handle-file-local-copy, tramp-handle-write-region): Apply it.
200
201 * net/tramp-smb.el (tramp-smb-handle-file-local-copy)
202 (tramp-smb-handle-write-region): Apply it.
203
2042007-03-05 Alin C. Soare <alinsoar@voila.fr> (tiny change)
205
206 * emacs-lisp/lisp-mode.el (calculate-lisp-indent):
207 Redo previous change.
208
2092007-03-04 Kevin Rodgers <kevin.d.rodgers@gmail.com>
210
211 * diff-mode.el (diff-mode): Doc fix.
212
2132007-03-05 Kenichi Handa <handa@m17n.org>
214
215 * international/characters.el: Set category `l' (latin)
216 for more characters.
217
2182007-03-04 Kim F. Storm <storm@cua.dk>
219
220 * emacs-lisp/authors.el (authors-aliases): Add alias.
221
2222007-03-04 Glenn Morris <rgm@gnu.org>
223
224 * progmodes/hideshow.el (hs-minor-mode): Turn mode off and show
225 all when switching major mode.
226 (hs-minor-mode, hs-c-start-regexp, hs-block-start-regexp)
227 (hs-block-start-mdata-select, hs-block-end-regexp)
228 (hs-forward-sexp-func, hs-adjust-block-beginning):
229 Do not make these variables permanent-local.
230
2312007-03-04 Richard Stallman <rms@gnu.org>
232
233 * progmodes/cperl-mode.el (cperl-mode):
234 Modify cperl-compilation-error-regexp-alist by appending.
235
236 * emacs-lisp/edebug.el (edebug-kill-buffer): New function.
237 (edebug-mode): Add the hook.
238 (edebug-recursive-edit): Remove the hook on exiting.
239
240 * type-break.el (type-break-get-previous-time):
241 Handle end-of-file errors specially
242 so they don't get reported wrong in .emacs.
243
244 * startup.el (fancy-splash-text): Clarify text.
245
246 * simple.el (beginning-of-buffer, end-of-buffer):
247 Avoid treating plain C-u like numeric arg.
248
249 * simple.el (completion-setup-function): Don't set
250 default-directory to nil.
251
252 * shell.el (shell-dirstack-query): Doc fix.
253
254 * mouse.el (mouse-drag-mode-line-1, mouse-drag-vertical-line):
255 Don't select the window -- pass it to primitives instead.
256
257 * faces.el (minibuffer-prompt): Use medium blue by default.
258
2592007-03-04 David Kastrup <dak@gnu.org>
260
261 * jit-lock.el (jit-lock-stealth-time): Change default to nil.
262 Preserve 16 as default value for "seconds" when customizing.
263
2642007-03-04 Carsten Dominik <dominik@science.uva.nl>
265
266 * textmodes/org.el (org-self-insert-command)
267 (orgtbl-self-insert-command, org-delete-char)
268 (org-delete-backward-char): Set the `flyspell-delayed' property.
269
12007-03-03 Chong Yidong <cyd@stupidchicken.com> 2702007-03-03 Chong Yidong <cyd@stupidchicken.com>
2 271
3 * international/mule.el (find-auto-coding): Don't search for 272 * international/mule.el (find-auto-coding): Don't search for
@@ -116,7 +385,8 @@
116 385
1172007-02-26 Andrey Zhdanov <susuman@hotmail.com> (tiny change) 3862007-02-26 Andrey Zhdanov <susuman@hotmail.com> (tiny change)
118 387
119 (gud-pdb-marker-regexp): Add optional <module> keyword for Python 2.5. 388 * progmodes/gud.el (gud-pdb-marker-regexp): Add optional <module>
389 keyword for Python 2.5.
120 390
1212007-02-26 Romain Francoise <romain@orebokech.com> 3912007-02-26 Romain Francoise <romain@orebokech.com>
122 392
@@ -154,32 +424,32 @@
154 (org-table-toggle-coordinate-overlays): New functions. 424 (org-table-toggle-coordinate-overlays): New functions.
155 (org-table-overlay-coordinates, org-table-coordinate-overlays): 425 (org-table-overlay-coordinates, org-table-coordinate-overlays):
156 New variables. 426 New variables.
157 (org-startup-with-deadline-check): Option removed. 427 (org-startup-with-deadline-check): Remove option.
158 (org-mode): Remove deadline check on startup. 428 (org-mode): Remove deadline check on startup.
159 (org-table-limit-column-width): Option removed. 429 (org-table-limit-column-width): Remove option.
160 (org-table-formula-numbers-only): Option removed. 430 (org-table-formula-numbers-only): Remove option.
161 (org-link-style, org-link-format): Options removed. 431 (org-link-style, org-link-format): Remove options.
162 (org-select-agenda-window, org-fit-agenda-window): Options removed. 432 (org-select-agenda-window, org-fit-agenda-window): Remove options.
163 (org-export-ascii-show-new-buffer) 433 (org-export-ascii-show-new-buffer)
164 (org-export-html-show-new-buffer): Options removed. 434 (org-export-html-show-new-buffer): Remove options.
165 (org-activate-links): Camel option removed. 435 (org-activate-links): Remove camel option.
166 (org-file-link-context-use-camel-case): Option removed. 436 (org-file-link-context-use-camel-case): Remove option.
167 (org-camel-regexp): Veriable removed. 437 (org-camel-regexp): Remove variable.
168 (org-activate-camels): Function removed. 438 (org-activate-camels): Remove function.
169 (org-store-link): Removed Camel stuff. 439 (org-store-link): Remove Camel stuff.
170 (org-make-org-heading-camel): Function removed. 440 (org-make-org-heading-camel): Remove function.
171 (org-open-at-point): Removed camel stuff. 441 (org-open-at-point): Remove camel stuff.
172 (org-link-search): Removed camel stuff. 442 (org-link-search): Remove camel stuff.
173 (org-camel-to-words): Function removed. 443 (org-camel-to-words): Function removed.
174 (org-get-agenda-file-buffer): Make sure we prepare the base 444 (org-get-agenda-file-buffer): Make sure we prepare the base
175 buffers, not any indirect buffers. 445 buffers, not any indirect buffers.
176 (org-sort-entries): Sort top-level when not on a headline, and no 446 (org-sort-entries): Sort top-level when not on a headline, and no
177 active region. 447 active region.
178 (org-in-regexp): New function. 448 (org-in-regexp): New function.
179 (org-search-not-self): Renamed from `org-search-not-link'. 449 (org-search-not-self): Rename from `org-search-not-link'.
180 (org-open-link-marker): New variable. 450 (org-open-link-marker): New variable.
181 (org-open-at-point): Set `org-open-link-marker'. 451 (org-open-at-point): Set `org-open-link-marker'.
182 (org-print-icalendar-entries): Fixed bug with excluding DONE 452 (org-print-icalendar-entries): Fixe bug with excluding DONE
183 entries from the exported list. 453 entries from the exported list.
184 (org-edit-formula-lisp-indent): New command. 454 (org-edit-formula-lisp-indent): New command.
185 (orgtbl-to-texinfo, orgtbl-to-html): New functions. 455 (orgtbl-to-texinfo, orgtbl-to-html): New functions.
@@ -195,7 +465,7 @@
195 (org-upgrade-old-links) 465 (org-upgrade-old-links)
196 (org-table-modify-formulas, org-table-replace-in-formulas) 466 (org-table-modify-formulas, org-table-replace-in-formulas)
197 (org-table-find-dataline) 467 (org-table-find-dataline)
198 (org-table-get-vertical-vector): Functions removed. 468 (org-table-get-vertical-vector): Remove functions.
199 (org-table-remove-rectangle-highlight) 469 (org-table-remove-rectangle-highlight)
200 (org-time-stamp-format, org-toggle-log-option) 470 (org-time-stamp-format, org-toggle-log-option)
201 (org-table-highlight-rectangle) 471 (org-table-highlight-rectangle)
@@ -228,17 +498,17 @@
228 (org-table-edit-scroll, org-table-edit-scroll-down) 498 (org-table-edit-scroll, org-table-edit-scroll-down)
229 (org-set-frame-title, org-show-reference) 499 (org-set-frame-title, org-show-reference)
230 (org-unhighlight-once, org-verify-change-for-undo): New functions. 500 (org-unhighlight-once, org-verify-change-for-undo): New functions.
231 (org-show-variable): Command removed. 501 (org-show-variable): Remove command.
232 (org-add-log-maybe): New arguments STATE, FINDPOS 502 (org-add-log-maybe): New arguments STATE, FINDPOS
233 (org-table-sort-lines): Rewritten from scratch. 503 (org-table-sort-lines): Rewrite from scratch.
234 (org-link-search): New argument AVOID-POS. 504 (org-link-search): New argument AVOID-POS.
235 (org-print-icalendar-entries): Argument CATEGORY removed. 505 (org-print-icalendar-entries): Remove argument CATEGORY.
236 (org-run-agenda-series): Argument WONDOW removed. 506 (org-run-agenda-series): Remove argument WONDOW.
237 (org-next-link, org-previous-link): New commands. 507 (org-next-link, org-previous-link): New commands.
238 (org-agenda-date-format): New option. 508 (org-agenda-date-format): New option.
239 (org-table-iterate): New command. 509 (org-table-iterate): New command.
240 (org-table-modify-formulas) 510 (org-table-modify-formulas)
241 (org-table-replace-in-formulas): Functions removed. 511 (org-table-replace-in-formulas): Remove functions.
242 (org-table-fix-formulas): New function. 512 (org-table-fix-formulas): New function.
243 (org-table-insert-column, org-table-delete-column) 513 (org-table-insert-column, org-table-delete-column)
244 (org-table-move-column): Use `org-table-fix-formulas'. 514 (org-table-move-column): Use `org-table-fix-formulas'.
@@ -259,8 +529,8 @@
259 (org-read-date): Accept "+N" as input for a date relative to the 529 (org-read-date): Accept "+N" as input for a date relative to the
260 current date. 530 current date.
261 (org-remove-subtree-entries-from-agenda): New function. 531 (org-remove-subtree-entries-from-agenda): New function.
262 (org-agenda-archive, org-agenda-kill): Use 532 (org-agenda-archive, org-agenda-kill):
263 `org-remove-subtree-entries-from-agenda'. 533 Use `org-remove-subtree-entries-from-agenda'.
264 (org-do-sort, org-sort-entries): New functions. 534 (org-do-sort, org-sort-entries): New functions.
265 (org-sort): New command. 535 (org-sort): New command.
266 (org-table-sort-lines): Use `org-do-sort'. 536 (org-table-sort-lines): Use `org-do-sort'.
@@ -268,7 +538,7 @@
268 (org-table-number-regexp): Require 0x... to identify as number 538 (org-table-number-regexp): Require 0x... to identify as number
269 in tables. 539 in tables.
270 (org-startup-options): New keywords for note taking. 540 (org-startup-options): New keywords for note taking.
271 (org-upgrade-old-links): Function removed. 541 (org-upgrade-old-links): Remove function.
272 (org-get-repeat): New function. 542 (org-get-repeat): New function.
273 (org-show-context): Also show siblings on current level. 543 (org-show-context): Also show siblings on current level.
274 (org-show-siblings): New function. 544 (org-show-siblings): New function.
@@ -397,7 +667,7 @@
397 * pgg-gpg.el (pgg-gpg-process-region): Make USE-AGENT nil 667 * pgg-gpg.el (pgg-gpg-process-region): Make USE-AGENT nil
398 if PASSPHRASE is given. 668 if PASSPHRASE is given.
399 669
4002007-02-17 Chris Moore <dooglus@gmail.com> 6702007-02-17 Chris Moore <dooglus@gmail.com>
401 671
402 * jka-cmpr-hook.el (jka-compr-compression-info-list): 672 * jka-cmpr-hook.el (jka-compr-compression-info-list):
403 Recognize backups of bz2 compressed files. 673 Recognize backups of bz2 compressed files.
@@ -1412,8 +1682,7 @@
1412 1682
14132007-01-03 Alan Mackenzie <acm@muc.de> 16832007-01-03 Alan Mackenzie <acm@muc.de>
1414 1684
1415 * progmode/cc-cmds.el (c-mask-paragraph): Fix yesterday's buggy 1685 * progmode/cc-cmds.el (c-mask-paragraph): Fix yesterday's buggy patch.
1416 patch.
1417 1686
14182007-01-03 Chris Moore <christopher.ian.moore@gmail.com> 16872007-01-03 Chris Moore <christopher.ian.moore@gmail.com>
1419 1688
@@ -15669,7 +15938,7 @@
15669 15938
15670 * progmodes/cc-defs.el (c-emacs-features): Don't assume point-min==1. 15939 * progmodes/cc-defs.el (c-emacs-features): Don't assume point-min==1.
15671 15940
156722005-12-06 Nozomu Ando <nand@mac.com> (tiny patch) 159412005-12-06 Nozomu Ando <nand@mac.com>
15673 15942
15674 * mail/smtpmail.el (smtpmail-try-auth-methods): Make password 15943 * mail/smtpmail.el (smtpmail-try-auth-methods): Make password
15675 prompts work for AUTH PLAIN. Also reported by Steve Allan 15944 prompts work for AUTH PLAIN. Also reported by Steve Allan
@@ -29217,7 +29486,7 @@
29217 * progmodes/python.el (python-close-block-statement-p) 29486 * progmodes/python.el (python-close-block-statement-p)
29218 (python-outdent-p, python-current-defun): Use symbol-end. 29487 (python-outdent-p, python-current-defun): Use symbol-end.
29219 29488
292202005-03-25 Karl Chen <quarl@cs.berkeley.edu> (tiny change) 294892005-03-25 Karl Chen <quarl@cs.berkeley.edu>
29221 29490
29222 * files.el (save-some-buffers): Doc fix. 29491 * files.el (save-some-buffers): Doc fix.
29223 29492
@@ -31902,7 +32171,7 @@
31902 * electric.el (Electric-pop-up-window): Use fit-window-to-buffer 32171 * electric.el (Electric-pop-up-window): Use fit-window-to-buffer
31903 instead of calculating the right size. 32172 instead of calculating the right size.
31904 32173
319052005-01-02 Karl Chen <quarl@cs.berkeley.edu> (tiny change) 321742005-01-02 Karl Chen <quarl@cs.berkeley.edu>
31906 32175
31907 * vc-svn.el (vc-svn-diff): Stay local if possible. 32176 * vc-svn.el (vc-svn-diff): Stay local if possible.
31908 32177
diff --git a/lisp/ChangeLog.10 b/lisp/ChangeLog.10
index d7264dfb0b8..d6d69c52924 100644
--- a/lisp/ChangeLog.10
+++ b/lisp/ChangeLog.10
@@ -2972,7 +2972,7 @@
2972 (rename-buffer): Use the `newname' arg as base. 2972 (rename-buffer): Use the `newname' arg as base.
2973 (create-file-buffer): Split the file name into base and dirname. 2973 (create-file-buffer): Split the file name into base and dirname.
2974 2974
29752003-05-09 Jesper Harder <harder@ifa.au.dk> (tiny change) 29752003-05-09 Jesper Harder <harder@ifa.au.dk>
2976 2976
2977 * mail/smtpmail.el (smtpmail-send-queued-mail): Don't use kill-line. 2977 * mail/smtpmail.el (smtpmail-send-queued-mail): Don't use kill-line.
2978 2978
@@ -3275,7 +3275,7 @@
3275 * filesets.el (filesets-data): Add another defvar. 3275 * filesets.el (filesets-data): Add another defvar.
3276 (filesets-verbosity): Doc fix. 3276 (filesets-verbosity): Doc fix.
3277 3277
32782003-05-02 Tak Ota <Takaaki.Ota@am.sony.com> (tiny change) 32782003-05-02 Tak Ota <Takaaki.Ota@am.sony.com>
3279 3279
3280 * recentf.el (recentf-cleanup): Swap tests for exclusion and 3280 * recentf.el (recentf-cleanup): Swap tests for exclusion and
3281 accessibility. 3281 accessibility.
@@ -3492,10 +3492,10 @@
3492 (Info-display-images-node): New functions for displaying images. 3492 (Info-display-images-node): New functions for displaying images.
3493 (Info-select-node): Call Info-display-images-node. 3493 (Info-select-node): Call Info-display-images-node.
3494 3494
34952003-04-25 Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net> 34952003-04-25 David Ponce <david.ponce@wanadoo.fr>
3496 3496
3497 * files.el (file-relative-name): Recognize "c:/foo" as absolute 3497 * files.el (file-relative-name): Recognize "c:/foo" as absolute
3498 file name. Tiny change from David PONCE <david.ponce@wanadoo.fr>. 3498 file name.
3499 3499
35002003-04-24 Sam Steingold <sds@gnu.org> 35002003-04-24 Sam Steingold <sds@gnu.org>
3501 3501
@@ -5595,7 +5595,7 @@
5595 beginning-of-defun to the non-existing command 5595 beginning-of-defun to the non-existing command
5596 sh-beginning-of-compound-command. 5596 sh-beginning-of-compound-command.
5597 5597
55982003-02-12 Karl Chen <quarl@hkn.eecs.berkeley.edu> (tiny change) 55982003-02-12 Karl Chen <quarl@hkn.eecs.berkeley.edu>
5599 5599
5600 * files.el (find-alternate-file): Check whether `dired-directory' 5600 * files.el (find-alternate-file): Check whether `dired-directory'
5601 is bound. 5601 is bound.
@@ -11971,7 +11971,7 @@
11971 * calendar/appt.el (appt-delete): Use substring-no-properties. 11971 * calendar/appt.el (appt-delete): Use substring-no-properties.
11972 (appt-make-list): Don't use prin1-to-string; use the string unchanged. 11972 (appt-make-list): Don't use prin1-to-string; use the string unchanged.
11973 11973
119742002-08-15 Jan Nieuwenhuizen <janneke@gnu.org> (tiny change) 119742002-08-15 Jan Nieuwenhuizen <janneke@gnu.org>
11975 11975
11976 * server.el (server-process-filter): Simplify code. 11976 * server.el (server-process-filter): Simplify code.
11977 (server-goto-line-column): New function. 11977 (server-goto-line-column): New function.
@@ -12378,7 +12378,7 @@
12378 * dired.el: Hide disabling of dired-find-alternate-file behind 12378 * dired.el: Hide disabling of dired-find-alternate-file behind
12379 autoload-cookie. 12379 autoload-cookie.
12380 12380
123812002-07-31 Tak Ota <Takaaki.Ota@am.sony.com> (tiny change) 123812002-07-31 Tak Ota <Takaaki.Ota@am.sony.com>
12382 12382
12383 * makefile.w32-in: Revert some changes from 2002-07-23 because they 12383 * makefile.w32-in: Revert some changes from 2002-07-23 because they
12384 don't work on MSVC/nmake builds. 12384 don't work on MSVC/nmake builds.
@@ -22919,13 +22919,14 @@
22919 * startup.el: Document command line option --no-window-system 22919 * startup.el: Document command line option --no-window-system
22920 instead of --no-windows. 22920 instead of --no-windows.
22921 22921
229222001-10-30 Stefan Monnier <monnier@cs.yale.edu> 229222001-10-30 David Ponce <david.ponce@wanadoo.fr>
22923
22924 * progmodes/autoconf.el (autoconf-mode): Fix comment-start-skip.
22925 22923
22926 * font-lock.el (java-font-lock-syntactic-face-function): New fun. 22924 * font-lock.el (java-font-lock-syntactic-face-function): New fun.
22927 (font-lock-defaults-alist): Use it. 22925 (font-lock-defaults-alist): Use it.
22928 From David Ponce <david.ponce@wanadoo.fr> 22926
229272001-10-30 Stefan Monnier <monnier@cs.yale.edu>
22928
22929 * progmodes/autoconf.el (autoconf-mode): Fix comment-start-skip.
22929 22930
22930 * progmodes/perl-mode.el (perl-indent-line): Use `eq' to compare 22931 * progmodes/perl-mode.el (perl-indent-line): Use `eq' to compare
22931 output of `char-after'. 22932 output of `char-after'.
diff --git a/lisp/ChangeLog.11 b/lisp/ChangeLog.11
index e9c752464f7..ac47f4eaeaa 100644
--- a/lisp/ChangeLog.11
+++ b/lisp/ChangeLog.11
@@ -4993,7 +4993,7 @@
4993 4993
4994 * international/latin1-disp.el (latin1-char-displayable-p): Likewise. 4994 * international/latin1-disp.el (latin1-char-displayable-p): Likewise.
4995 4995
49962004-08-21 Peter Seibel <peter@javamonkey.com> (tiny patch) 49962004-08-21 Peter Seibel <peter@javamonkey.com> (tiny change)
4997 4997
4998 * emacs-lisp/cl-indent.el (lisp-indent-defmethod): 4998 * emacs-lisp/cl-indent.el (lisp-indent-defmethod):
4999 Correct indentation of DEFMETHODS with non-standard method 4999 Correct indentation of DEFMETHODS with non-standard method
@@ -6043,12 +6043,12 @@
6043 * international/utf-8.el (ccl-decode-mule-utf-8): Fix previous change. 6043 * international/utf-8.el (ccl-decode-mule-utf-8): Fix previous change.
6044 (ccl-untranslated-to-ucs): Fix typo. 6044 (ccl-untranslated-to-ucs): Fix typo.
6045 6045
60462004-06-12 Karl Chen <quarl@hkn.eecs.berkeley.edu> (tiny change) 60462004-06-12 Karl Chen <quarl@hkn.eecs.berkeley.edu>
6047 6047
6048 * progmodes/python.el (python-open-block-statement-p): 6048 * progmodes/python.el (python-open-block-statement-p):
6049 Fix indentation after a block opening that contains a comment. 6049 Fix indentation after a block opening that contains a comment.
6050 6050
60512004-06-12 J,Ai(Br,At(Bme Marant <jerome@marant.org> (tiny change) 60512004-06-12 J,Ai(Br,At(Bme Marant <jerome@marant.org>
6052 6052
6053 * bindings.el (completion-ignored-extensions): Add file extensions 6053 * bindings.el (completion-ignored-extensions): Add file extensions
6054 of Python byte-compiled files. 6054 of Python byte-compiled files.
@@ -6982,7 +6982,7 @@
6982 (byte-goto-log-buffer): Delete. 6982 (byte-goto-log-buffer): Delete.
6983 (byte-compile-log-file): Call compilation-forget-errors. 6983 (byte-compile-log-file): Call compilation-forget-errors.
6984 6984
69852004-05-19 Takaaki Ota <Takaaki.Ota@am.sony.com> (tiny change) 69852004-05-19 Takaaki Ota <Takaaki.Ota@am.sony.com>
6986 6986
6987 * net/ldap.el (ldap-search-internal): Avoid mixing standard error 6987 * net/ldap.el (ldap-search-internal): Avoid mixing standard error
6988 output messages into the search result. 6988 output messages into the search result.
@@ -6996,7 +6996,7 @@
6996 6996
6997 * international/characters.el: Fix syntax (open/close) of CJK chars. 6997 * international/characters.el: Fix syntax (open/close) of CJK chars.
6998 6998
69992004-05-18 Karl Chen <quarl@hkn.eecs.berkeley.edu> (tiny change) 69992004-05-18 Karl Chen <quarl@hkn.eecs.berkeley.edu>
7000 7000
7001 * help-mode.el (help-go-back): Don't depend on position of back button. 7001 * help-mode.el (help-go-back): Don't depend on position of back button.
7002 7002
@@ -7121,7 +7121,7 @@
7121 * calendar/appt.el (appt-disp-window): 7121 * calendar/appt.el (appt-disp-window):
7122 Use `calendar-set-mode-line' for a centered mode-line. 7122 Use `calendar-set-mode-line' for a centered mode-line.
7123 7123
71242004-05-13 Takaaki Ota <Takaaki.Ota@am.sony.com> (tiny change) 71242004-05-13 Takaaki Ota <Takaaki.Ota@am.sony.com>
7125 7125
7126 * calendar/appt.el (appt-disp-window): Do not split window 7126 * calendar/appt.el (appt-disp-window): Do not split window
7127 excessively when `split-height-threshold' is low. 7127 excessively when `split-height-threshold' is low.
@@ -10484,12 +10484,12 @@
10484 * loadhist.el (unload-feature): Doc fix. Rename flist to 10484 * loadhist.el (unload-feature): Doc fix. Rename flist to
10485 unload-hook-features-list. 10485 unload-hook-features-list.
10486 10486
104872004-02-16 Jay Belanger <belanger@truman.edu> (tiny change) 104872004-02-16 Jay Belanger <belanger@truman.edu>
10488 10488
10489 * calc/calc-embed.el (calc-do-embedded-activate): Add autoload 10489 * calc/calc-embed.el (calc-do-embedded-activate): Add autoload
10490 cookie. Don't check if we are looking-at open-formula. 10490 cookie. Don't check if we are looking-at open-formula.
10491 10491
104922004-02-16 Jesper Harder <harder@ifa.au.dk> (tiny change) 104922004-02-16 Jesper Harder <harder@ifa.au.dk>
10493 10493
10494 * subr.el (match-string-no-properties): Use substring-no-properties. 10494 * subr.el (match-string-no-properties): Use substring-no-properties.
10495 10495
@@ -10564,7 +10564,7 @@
10564 * international/ccl.el (ccl-compile-write): Pass `left' to 10564 * international/ccl.el (ccl-compile-write): Pass `left' to
10565 ccl-embed-code to generate correct code of write-expr-register. 10565 ccl-embed-code to generate correct code of write-expr-register.
10566 10566
105672004-02-15 Dan Nicolaescu <dann@ics.uci.edu> (tiny change) 105672004-02-15 Dan Nicolaescu <dann@ics.uci.edu>
10568 10568
10569 * progmodes/grep.el (grep-compute-defaults): Fix typos. 10569 * progmodes/grep.el (grep-compute-defaults): Fix typos.
10570 10570
@@ -10766,7 +10766,7 @@
10766 * vc.el (with-vc-file): Fix unsafe uses of error. 10766 * vc.el (with-vc-file): Fix unsafe uses of error.
10767 (vc-cancel-version): Likewise. 10767 (vc-cancel-version): Likewise.
10768 10768
107692004-02-08 Jan Nieuwenhuizen <jan.nieuwenhuizen@aspiratie.nl> (tiny change) 107692004-02-08 Jan Nieuwenhuizen <jan.nieuwenhuizen@aspiratie.nl>
10770 10770
10771 * progmodes/gud.el (gud-jdb-marker-filter): Add period as optional 10771 * progmodes/gud.el (gud-jdb-marker-filter): Add period as optional
10772 thousands separator; fixes <class>:<line-number> regexp for 10772 thousands separator; fixes <class>:<line-number> regexp for
@@ -11113,7 +11113,7 @@
11113 11113
11114 * mail/smtpmail.el (smtpmail-send-data): Don't append spurious newline. 11114 * mail/smtpmail.el (smtpmail-send-data): Don't append spurious newline.
11115 11115
111162004-01-18 David Ponce <david@dponce.com> (tiny change) 111162004-01-18 David Ponce <david@dponce.com>
11117 11117
11118 * progmodes/which-func.el (which-function-mode): Don't cancel 11118 * progmodes/which-func.el (which-function-mode): Don't cancel
11119 which-func-update-timer if not set. 11119 which-func-update-timer if not set.
@@ -11322,7 +11322,7 @@
11322 11322
11323 * subr.el (functionp): Doc fix. 11323 * subr.el (functionp): Doc fix.
11324 11324
113252004-01-03 Jesper Harder <harder@ifa.au.dk> (tiny change) 113252004-01-03 Jesper Harder <harder@ifa.au.dk>
11326 11326
11327 * progmodes/idlwave.el (idlwave-make-tags): 11327 * progmodes/idlwave.el (idlwave-make-tags):
11328 * textmodes/flyspell.el (flyspell-large-region):. 11328 * textmodes/flyspell.el (flyspell-large-region):.
@@ -11525,7 +11525,7 @@
11525 (table--put-cell-indicator-property): Put yank-handler property 11525 (table--put-cell-indicator-property): Put yank-handler property
11526 that indicates the yank handler for the table cell. 11526 that indicates the yank handler for the table cell.
11527 11527
115282003-12-29 Jesper Harder <harder@ifa.au.dk> (tiny change) 115282003-12-29 Jesper Harder <harder@ifa.au.dk>
11529 11529
11530 * generic-x.el (etc-modules-conf-generic-mode): A more complete 11530 * generic-x.el (etc-modules-conf-generic-mode): A more complete
11531 set of keywords. 11531 set of keywords.
@@ -11583,7 +11583,7 @@
11583 (ido-file-name-all-completions1): Return empty list for 11583 (ido-file-name-all-completions1): Return empty list for
11584 non-readable directory. 11584 non-readable directory.
11585 (ido-exhibit): Print [Not readable] if directory is not readable. 11585 (ido-exhibit): Print [Not readable] if directory is not readable.
11586 (ido-expand-directory): New defun (based on tiny fix from Karl Chen). 11586 (ido-expand-directory): New defun (based on fix from Karl Chen).
11587 (ido-read-file-name, ido-file-internal, ido-read-directory-name): 11587 (ido-read-file-name, ido-file-internal, ido-read-directory-name):
11588 Use it. 11588 Use it.
11589 11589
@@ -11921,7 +11921,7 @@
11921 (breakpoint-enabled-icon, breakpoint-disabled-icon): Set :ascent 11921 (breakpoint-enabled-icon, breakpoint-disabled-icon): Set :ascent
11922 to 100 for icons to avoid increasing line height when shown. 11922 to 100 for icons to avoid increasing line height when shown.
11923 11923
119242003-11-17 Jesper Harder <harder@ifa.au.dk> (tiny change) 119242003-11-17 Jesper Harder <harder@ifa.au.dk>
11925 11925
11926 * newcomment.el (comment-normalize-vars): Initialize properly if 11926 * newcomment.el (comment-normalize-vars): Initialize properly if
11927 comment-start was nil. 11927 comment-start was nil.
@@ -11935,7 +11935,7 @@
11935 * international/latin1-disp.el (latin1-display-ucs-per-lynx): 11935 * international/latin1-disp.el (latin1-display-ucs-per-lynx):
11936 Fix docstring. 11936 Fix docstring.
11937 11937
119382003-11-17 Jesper Harder <harder@ifa.au.dk> (tiny change) 119382003-11-17 Jesper Harder <harder@ifa.au.dk>
11939 11939
11940 * international/latin1-disp.el (latin1-display): Fix docstring. 11940 * international/latin1-disp.el (latin1-display): Fix docstring.
11941 11941
@@ -12665,12 +12665,12 @@
12665 * language/chinese.el ("Chinese-GB", "Chinese-BIG5"): Set up for 12665 * language/chinese.el ("Chinese-GB", "Chinese-BIG5"): Set up for
12666 using a Chinese tutorial. 12666 using a Chinese tutorial.
12667 12667
126682003-09-28 Jesper Harder <harder@ifa.au.dk> (tiny change) 126682003-09-28 Jesper Harder <harder@ifa.au.dk>
12669 12669
12670 * mail/smtpmail.el (smtpmail-via-smtp): Don't insert a space 12670 * mail/smtpmail.el (smtpmail-via-smtp): Don't insert a space
12671 between "MAIL FROM:" and "RCPT TO:" and the following address. 12671 between "MAIL FROM:" and "RCPT TO:" and the following address.
12672 12672
126732003-09-28 Jesper Harder <harder@ifa.au.dk> (tiny change) 126732003-09-28 Jesper Harder <harder@ifa.au.dk>
12674 12674
12675 * textmodes/text-mode.el (paragraph-indent-minor-mode): Doc fix. 12675 * textmodes/text-mode.el (paragraph-indent-minor-mode): Doc fix.
12676 12676
@@ -13685,7 +13685,7 @@
13685 * international/fontset.el (setup-default-fontset): 13685 * international/fontset.el (setup-default-fontset):
13686 Change registry names of Akurti fonts. 13686 Change registry names of Akurti fonts.
13687 13687
136882003-07-29 Jesper Harder <harder@ifa.au.dk> (tiny change) 136882003-07-29 Jesper Harder <harder@ifa.au.dk>
13689 13689
13690 * comint.el (comint-read-noecho): Use `clear-string' instead of 13690 * comint.el (comint-read-noecho): Use `clear-string' instead of
13691 `fillarray'. 13691 `fillarray'.
@@ -13701,7 +13701,7 @@
13701 (menu): Add gdb-restore-windows to menu. Make gdba 13701 (menu): Add gdb-restore-windows to menu. Make gdba
13702 specific menus only visible from gdba. 13702 specific menus only visible from gdba.
13703 13703
137042003-07-28 Tak Ota <Takaaki.Ota@am.sony.com> (tiny change) 137042003-07-28 Tak Ota <Takaaki.Ota@am.sony.com>
13705 13705
13706 * progmodes/compile.el (compilation-environment): New user variable. 13706 * progmodes/compile.el (compilation-environment): New user variable.
13707 (compile-internal): Respect it. 13707 (compile-internal): Respect it.
@@ -13930,7 +13930,7 @@
13930 * desktop.el (desktop-buffer-dired-misc-data, desktop-buffer-dired): 13930 * desktop.el (desktop-buffer-dired-misc-data, desktop-buffer-dired):
13931 Handle `dired-directory' being a list. 13931 Handle `dired-directory' being a list.
13932 13932
139332003-07-13 Jesper Harder <harder@ifa.au.dk> (tiny change) 139332003-07-13 Jesper Harder <harder@ifa.au.dk>
13934 13934
13935 * mail/smtpmail.el (smtpmail-send-it): Create smtpmail-queue-dir if 13935 * mail/smtpmail.el (smtpmail-send-it): Create smtpmail-queue-dir if
13936 it doesn't exist. 13936 it doesn't exist.
diff --git a/lisp/ChangeLog.7 b/lisp/ChangeLog.7
index d9923a02016..57121a8f2ca 100644
--- a/lisp/ChangeLog.7
+++ b/lisp/ChangeLog.7
@@ -8260,7 +8260,7 @@
8260 8260
8261 * cal-tex.el (cal-tex-cursor-week-iso): Delete spurious %. 8261 * cal-tex.el (cal-tex-cursor-week-iso): Delete spurious %.
8262 8262
82631997-11-02 Kevin Rodgers <kevinr@airedale.ihs.com> 82631997-11-02 Kevin Rodgers <kevinr@ihs.com>
8264 8264
8265 * emacs-lisp/byte-opt.el (byte-optimize-concat): New function. 8265 * emacs-lisp/byte-opt.el (byte-optimize-concat): New function.
8266 8266
@@ -21588,7 +21588,7 @@
21588 21588
21589 * time-stamp.el (time-stamp-dd/mm/yyyy): New function. 21589 * time-stamp.el (time-stamp-dd/mm/yyyy): New function.
21590 21590
215911996-11-04 Kevin Rodgers <evinr@ihs.com> 215911996-11-04 Kevin Rodgers <kevinr@ihs.com>
21592 21592
21593 * compile.el (compile-highlight-display-limit): New variable. 21593 * compile.el (compile-highlight-display-limit): New variable.
21594 (compilation-handle-exit): Parse error messages here 21594 (compilation-handle-exit): Parse error messages here
diff --git a/lisp/abbrev.el b/lisp/abbrev.el
index 1363ccee561..83a3fbbe49d 100644
--- a/lisp/abbrev.el
+++ b/lisp/abbrev.el
@@ -363,5 +363,7 @@ A prefix argument means don't query; expand all abbrevs."
363 (if (or noquery (y-or-n-p (format "Expand `%s'? " string))) 363 (if (or noquery (y-or-n-p (format "Expand `%s'? " string)))
364 (expand-abbrev))))))) 364 (expand-abbrev)))))))
365 365
366(provide 'abbrev)
367
366;; arch-tag: dbd6f3ae-dfe3-40ba-b00f-f9e3ff960df5 368;; arch-tag: dbd6f3ae-dfe3-40ba-b00f-f9e3ff960df5
367;;; abbrev.el ends here 369;;; abbrev.el ends here
diff --git a/lisp/complete.el b/lisp/complete.el
index cc8f29356b6..ce5094d1aef 100644
--- a/lisp/complete.el
+++ b/lisp/complete.el
@@ -147,6 +147,8 @@ If nil, means use the colon-separated path in the variable $INCPATH instead."
147 (cond ((not bind) 147 (cond ((not bind)
148 ;; These bindings are the default bindings. It would be better to 148 ;; These bindings are the default bindings. It would be better to
149 ;; restore the previous bindings. 149 ;; restore the previous bindings.
150 (define-key read-expression-map "\e\t" 'lisp-complete-symbol)
151
150 (define-key completion-map "\t" 'minibuffer-complete) 152 (define-key completion-map "\t" 'minibuffer-complete)
151 (define-key completion-map " " 'minibuffer-complete-word) 153 (define-key completion-map " " 'minibuffer-complete-word)
152 (define-key completion-map "?" 'minibuffer-completion-help) 154 (define-key completion-map "?" 'minibuffer-completion-help)
@@ -157,8 +159,10 @@ If nil, means use the colon-separated path in the variable $INCPATH instead."
157 (define-key must-match-map "\n" 'minibuffer-complete-and-exit) 159 (define-key must-match-map "\n" 'minibuffer-complete-and-exit)
158 (define-key must-match-map "?" 'minibuffer-completion-help) 160 (define-key must-match-map "?" 'minibuffer-completion-help)
159 161
160 (define-key global-map "\e\t" 'complete-symbol)) 162 (define-key global-map [remap lisp-complete-symbol] nil))
161 (PC-default-bindings 163 (PC-default-bindings
164 (define-key read-expression-map "\e\t" 'PC-lisp-complete-symbol)
165
162 (define-key completion-map "\t" 'PC-complete) 166 (define-key completion-map "\t" 'PC-complete)
163 (define-key completion-map " " 'PC-complete-word) 167 (define-key completion-map " " 'PC-complete-word)
164 (define-key completion-map "?" 'PC-completion-help) 168 (define-key completion-map "?" 'PC-completion-help)
@@ -181,7 +185,7 @@ If nil, means use the colon-separated path in the variable $INCPATH instead."
181 (define-key must-match-map "\e\n" 'PC-complete-and-exit) 185 (define-key must-match-map "\e\n" 'PC-complete-and-exit)
182 (define-key must-match-map "\e?" 'PC-completion-help) 186 (define-key must-match-map "\e?" 'PC-completion-help)
183 187
184 (define-key global-map "\e\t" 'PC-lisp-complete-symbol))))) 188 (define-key global-map [remap lisp-complete-symbol] 'PC-lisp-complete-symbol)))))
185 189
186;;;###autoload 190;;;###autoload
187(define-minor-mode partial-completion-mode 191(define-minor-mode partial-completion-mode
@@ -383,6 +387,29 @@ of `minibuffer-completion-table' and the minibuffer contents.")
383 (let ((completion-ignore-case nil)) 387 (let ((completion-ignore-case nil))
384 (test-completion str table pred)))) 388 (test-completion str table pred))))
385 389
390;; The following function is an attempt to work around two problems:
391
392;; (1) When complete.el was written, (try-completion "" '(("") (""))) used to
393;; return the value "". With a change from 2002-07-07 it returns t which caused
394;; `PC-lisp-complete-symbol' to fail with a "Wrong type argument: sequencep, t"
395;; error. `PC-try-completion' returns STRING in this case.
396
397;; (2) (try-completion "" '((""))) returned t before the above-mentioned change.
398;; Since `PC-chop-word' operates on the return value of `try-completion' this
399;; case might have provoked a similar error as in (1). `PC-try-completion'
400;; returns "" instead. I don't know whether this is a real problem though.
401
402;; Since `PC-try-completion' is not a guaranteed to fix these bugs reliably, you
403;; should try to look at the following discussions when you encounter problems:
404;; - emacs-pretest-bug ("Partial Completion" starting 2007-02-23),
405;; - emacs-devel ("[address-of-OP: Partial completion]" starting 2007-02-24),
406;; - emacs-devel ("[address-of-OP: EVAL and mouse selection in *Completions*]"
407;; starting 2007-03-05).
408(defun PC-try-completion (string alist &optional predicate)
409 "Like `try-completion' but return STRING instead of t."
410 (let ((result (try-completion string alist predicate)))
411 (if (eq result t) string result)))
412
386(defun PC-do-completion (&optional mode beg end) 413(defun PC-do-completion (&optional mode beg end)
387 (or beg (setq beg (minibuffer-prompt-end))) 414 (or beg (setq beg (minibuffer-prompt-end)))
388 (or end (setq end (point-max))) 415 (or end (setq end (point-max)))
@@ -390,7 +417,10 @@ of `minibuffer-completion-table' and the minibuffer contents.")
390 (pred minibuffer-completion-predicate) 417 (pred minibuffer-completion-predicate)
391 (filename (funcall PC-completion-as-file-name-predicate)) 418 (filename (funcall PC-completion-as-file-name-predicate))
392 (dirname nil) ; non-nil only if a filename is being completed 419 (dirname nil) ; non-nil only if a filename is being completed
393 (dirlength 0) 420 ;; The following used to be "(dirlength 0)" which caused the erasure of
421 ;; the entire buffer text before `point' when inserting a completion
422 ;; into a buffer.
423 dirlength
394 (str (buffer-substring beg end)) 424 (str (buffer-substring beg end))
395 (incname (and filename (string-match "<\\([^\"<>]*\\)>?$" str))) 425 (incname (and filename (string-match "<\\([^\"<>]*\\)>?$" str)))
396 (ambig nil) 426 (ambig nil)
@@ -404,8 +434,15 @@ of `minibuffer-completion-table' and the minibuffer contents.")
404 434
405 ;; Check if buffer contents can already be considered complete 435 ;; Check if buffer contents can already be considered complete
406 (if (and (eq mode 'exit) 436 (if (and (eq mode 'exit)
407 (test-completion-ignore-case str table pred)) 437 (test-completion str table pred))
408 'complete 438 (progn
439 ;; If completion-ignore-case is non-nil, insert the
440 ;; completion string since that may have a different case.
441 (when completion-ignore-case
442 (setq str (PC-try-completion str table pred))
443 (delete-region beg end)
444 (insert str))
445 'complete)
409 446
410 ;; Do substitutions in directory names 447 ;; Do substitutions in directory names
411 (and filename 448 (and filename
@@ -553,6 +590,9 @@ of `minibuffer-completion-table' and the minibuffer contents.")
553 (setq poss (cons (car p) poss)))) 590 (setq poss (cons (car p) poss))))
554 (setq p (cdr p))))) 591 (setq p (cdr p)))))
555 592
593 ;; If table had duplicates, they can be here.
594 (delete-dups poss)
595
556 ;; Handle completion-ignored-extensions 596 ;; Handle completion-ignored-extensions
557 (and filename 597 (and filename
558 (not (eq mode 'help)) 598 (not (eq mode 'help))
@@ -623,8 +663,8 @@ of `minibuffer-completion-table' and the minibuffer contents.")
623 663
624 ;; Check if next few letters are the same in all cases 664 ;; Check if next few letters are the same in all cases
625 (if (and (not (eq mode 'help)) 665 (if (and (not (eq mode 'help))
626 (setq prefix (try-completion (PC-chunk-after basestr skip) 666 (setq prefix (PC-try-completion
627 poss))) 667 (PC-chunk-after basestr skip) poss)))
628 (let ((first t) i) 668 (let ((first t) i)
629 ;; Retain capitalization of user input even if 669 ;; Retain capitalization of user input even if
630 ;; completion-ignore-case is set. 670 ;; completion-ignore-case is set.
@@ -662,7 +702,7 @@ of `minibuffer-completion-table' and the minibuffer contents.")
662 (setq skip (concat skip 702 (setq skip (concat skip
663 (regexp-quote prefix) 703 (regexp-quote prefix)
664 PC-ndelims-regex) 704 PC-ndelims-regex)
665 prefix (try-completion 705 prefix (PC-try-completion
666 (PC-chunk-after 706 (PC-chunk-after
667 ;; not basestr, because that does 707 ;; not basestr, because that does
668 ;; not reflect insertions 708 ;; not reflect insertions
@@ -996,7 +1036,7 @@ absolute rather than relative to some directory on the SEARCH-PATH."
996 (cond 1036 (cond
997 ((not completion-table) nil) 1037 ((not completion-table) nil)
998 ((eq action 'lambda) (test-completion str2 completion-table nil)) 1038 ((eq action 'lambda) (test-completion str2 completion-table nil))
999 ((eq action nil) (try-completion str2 completion-table nil)) 1039 ((eq action nil) (PC-try-completion str2 completion-table nil))
1000 ((eq action t) (all-completions str2 completion-table nil))))) 1040 ((eq action t) (all-completions str2 completion-table nil)))))
1001 ad-do-it)) 1041 ad-do-it))
1002 1042
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el
index c49328ac40d..d8fdf966374 100644
--- a/lisp/cus-edit.el
+++ b/lisp/cus-edit.el
@@ -938,9 +938,6 @@ VALUE is a Lisp object.
938If VARIABLE has a `custom-set' property, that is used for setting 938If VARIABLE has a `custom-set' property, that is used for setting
939VARIABLE, otherwise `set-default' is used. 939VARIABLE, otherwise `set-default' is used.
940 940
941The `customized-value' property of the VARIABLE will be set to a list
942with a quoted VALUE as its sole list member.
943
944If VARIABLE has a `variable-interactive' property, that is used as if 941If VARIABLE has a `variable-interactive' property, that is used as if
945it were the arg to `interactive' (which see) to interactively read the value. 942it were the arg to `interactive' (which see) to interactively read the value.
946 943
@@ -971,9 +968,6 @@ Return VALUE.
971If VARIABLE has a `custom-set' property, that is used for setting 968If VARIABLE has a `custom-set' property, that is used for setting
972VARIABLE, otherwise `set-default' is used. 969VARIABLE, otherwise `set-default' is used.
973 970
974The `customized-value' property of the VARIABLE will be set to a list
975with a quoted VALUE as its sole list member.
976
977If VARIABLE has a `variable-interactive' property, that is used as if 971If VARIABLE has a `variable-interactive' property, that is used as if
978it were the arg to `interactive' (which see) to interactively read the value. 972it were the arg to `interactive' (which see) to interactively read the value.
979 973
@@ -993,6 +987,8 @@ If given a prefix (or a COMMENT argument), also prompt for a comment."
993 (comment 987 (comment
994 (put variable 'variable-comment comment) 988 (put variable 'variable-comment comment)
995 (put variable 'saved-variable-comment comment))) 989 (put variable 'saved-variable-comment comment)))
990 (put variable 'customized-value nil)
991 (put variable 'customized-variable-comment nil)
996 (custom-save-all) 992 (custom-save-all)
997 value) 993 value)
998 994
diff --git a/lisp/diff-mode.el b/lisp/diff-mode.el
index c4fac402dbf..543e1bd6a39 100644
--- a/lisp/diff-mode.el
+++ b/lisp/diff-mode.el
@@ -985,7 +985,9 @@ See `after-change-functions' for the meaning of BEG, END and LEN."
985(define-derived-mode diff-mode fundamental-mode "Diff" 985(define-derived-mode diff-mode fundamental-mode "Diff"
986 "Major mode for viewing/editing context diffs. 986 "Major mode for viewing/editing context diffs.
987Supports unified and context diffs as well as (to a lesser extent) 987Supports unified and context diffs as well as (to a lesser extent)
988normal diffs. 988normal diffs. If you edit the buffer manually, diff-mode will try
989to update the hunk headers for you on-the-fly.
990
989When the buffer is read-only, the ESC prefix is not necessary. 991When the buffer is read-only, the ESC prefix is not necessary.
990If you edit the buffer manually, diff-mode will try to update the hunk 992If you edit the buffer manually, diff-mode will try to update the hunk
991headers for you on-the-fly. 993headers for you on-the-fly.
@@ -993,7 +995,12 @@ headers for you on-the-fly.
993You can also switch between context diff and unified diff with \\[diff-context->unified], 995You can also switch between context diff and unified diff with \\[diff-context->unified],
994or vice versa with \\[diff-unified->context] and you can also reverse the direction of 996or vice versa with \\[diff-unified->context] and you can also reverse the direction of
995a diff with \\[diff-reverse-direction]. 997a diff with \\[diff-reverse-direction].
996\\{diff-mode-map}" 998
999When the buffer is read-only, the Meta- modifier is not necessary
1000to run the Diff mode commands:
1001
1002 \\{diff-mode-map}"
1003
997 (set (make-local-variable 'font-lock-defaults) diff-font-lock-defaults) 1004 (set (make-local-variable 'font-lock-defaults) diff-font-lock-defaults)
998 (set (make-local-variable 'outline-regexp) diff-outline-regexp) 1005 (set (make-local-variable 'outline-regexp) diff-outline-regexp)
999 (set (make-local-variable 'imenu-generic-expression) 1006 (set (make-local-variable 'imenu-generic-expression)
@@ -1368,7 +1375,8 @@ With a prefix argument, REVERSE the hunk."
1368 (yes-or-no-p (format "Really apply this hunk to %s? " 1375 (yes-or-no-p (format "Really apply this hunk to %s? "
1369 (file-name-nondirectory 1376 (file-name-nondirectory
1370 buffer-file-name))))))) 1377 buffer-file-name)))))))
1371 (error (substitute-command-keys 1378 (error "%s"
1379 (substitute-command-keys
1372 (format "Use %s\\[diff-apply-hunk] to apply it to the other file" 1380 (format "Use %s\\[diff-apply-hunk] to apply it to the other file"
1373 (if (not reverse) "\\[universal-argument] "))))) 1381 (if (not reverse) "\\[universal-argument] ")))))
1374 ((and switched 1382 ((and switched
diff --git a/lisp/emacs-lisp/authors.el b/lisp/emacs-lisp/authors.el
index 5f70773444d..d93d80e0c8e 100644
--- a/lisp/emacs-lisp/authors.el
+++ b/lisp/emacs-lisp/authors.el
@@ -70,6 +70,7 @@ files.")
70 ("Francesco Potort,Al(B" "Francesco Potorti" "Francesco Potorti`") 70 ("Francesco Potort,Al(B" "Francesco Potorti" "Francesco Potorti`")
71 ("Frederic Pierresteguy" "Fred Pierresteguy") 71 ("Frederic Pierresteguy" "Fred Pierresteguy")
72 ("Geoff Voelker" "voelker") 72 ("Geoff Voelker" "voelker")
73 ("Gerd M,Av(Bllmann" "Gerd Moellmann")
73 ("Hallvard B. Furuseth" "Hallvard B Furuseth") 74 ("Hallvard B. Furuseth" "Hallvard B Furuseth")
74 ("Hrvoje Nik,B9(Bi,Bf(B" "Hrvoje Niksic") 75 ("Hrvoje Nik,B9(Bi,Bf(B" "Hrvoje Niksic")
75 (nil "(afs@hplb.hpl.hp.com)") 76 (nil "(afs@hplb.hpl.hp.com)")
@@ -102,6 +103,7 @@ files.")
102 ("Kyle Jones" "Kyle E. Jones") 103 ("Kyle Jones" "Kyle E. Jones")
103 ("Marcus G. Daniels" "Marcus Daniels") 104 ("Marcus G. Daniels" "Marcus Daniels")
104 ("Mark D. Baushke" "Mark D Baushke") 105 ("Mark D. Baushke" "Mark D Baushke")
106 ("Agust,Am(Bn Mart,Am(Bn" "Agustin Martin")
105 ("Martin Lorentzon" "Martin Lorentzson") 107 ("Martin Lorentzon" "Martin Lorentzson")
106 ("Matt Swift" "Matthew Swift") 108 ("Matt Swift" "Matthew Swift")
107 ("Michael R. Mauger" "Michael Mauger") 109 ("Michael R. Mauger" "Michael Mauger")
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index d7d92677f72..15a82fc1b7c 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -972,8 +972,10 @@ Each function's symbol gets added to `byte-compile-noruntime-functions'."
972 (pos (if (and byte-compile-current-file 972 (pos (if (and byte-compile-current-file
973 (integerp byte-compile-read-position)) 973 (integerp byte-compile-read-position))
974 (with-current-buffer byte-compile-current-buffer 974 (with-current-buffer byte-compile-current-buffer
975 (format "%d:%d:" (count-lines (point-min) 975 (format "%d:%d:"
976 byte-compile-last-position) 976 (save-excursion
977 (goto-char byte-compile-last-position)
978 (1+ (count-lines (point-min) (point-at-bol))))
977 (save-excursion 979 (save-excursion
978 (goto-char byte-compile-last-position) 980 (goto-char byte-compile-last-position)
979 (1+ (current-column))))) 981 (1+ (current-column)))))
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el
index 5af676a5e86..2777ea775e9 100644
--- a/lisp/emacs-lisp/edebug.el
+++ b/lisp/emacs-lisp/edebug.el
@@ -2939,6 +2939,7 @@ MSG is printed after `::::} '."
2939 (edebug-overlay-arrow)) 2939 (edebug-overlay-arrow))
2940 (setq buffer-read-only edebug-buffer-read-only) 2940 (setq buffer-read-only edebug-buffer-read-only)
2941 (use-local-map edebug-outside-map) 2941 (use-local-map edebug-outside-map)
2942 (remove-hook 'kill-buffer-hook 'edebug-kill-buffer t)
2942 ) 2943 )
2943 ;; gotta have a buffer to let its buffer local variables be set 2944 ;; gotta have a buffer to let its buffer local variables be set
2944 (get-buffer-create " bogus edebug buffer")) 2945 (get-buffer-create " bogus edebug buffer"))
@@ -3942,8 +3943,18 @@ edebug-on-signal
3942edebug-unwrap-results 3943edebug-unwrap-results
3943edebug-global-break-condition 3944edebug-global-break-condition
3944" 3945"
3946 ;; If the user kills the buffer in which edebug is currently active,
3947 ;; exit to top level, because the edebug command loop can't usefully
3948 ;; continue running in such a case.
3949 (add-hook 'kill-buffer-hook 'edebug-kill-buffer nil t)
3945 (use-local-map edebug-mode-map)) 3950 (use-local-map edebug-mode-map))
3946 3951
3952(defun edebug-kill-buffer ()
3953 "Used on `kill-buffer-hook' when Edebug is operating in a buffer of Lisp code."
3954 (let (kill-buffer-hook)
3955 (kill-buffer (current-buffer)))
3956 (top-level))
3957
3947;;; edebug eval list mode 3958;;; edebug eval list mode
3948 3959
3949;; A list of expressions and their evaluations is displayed in *edebug*. 3960;; A list of expressions and their evaluations is displayed in *edebug*.
diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el
index 5576a4882b0..09cb8436c89 100644
--- a/lisp/emacs-lisp/lisp-mode.el
+++ b/lisp/emacs-lisp/lisp-mode.el
@@ -909,34 +909,47 @@ is the buffer position of the start of the containing expression."
909 (cond ((elt state 3) 909 (cond ((elt state 3)
910 ;; Inside a string, don't change indentation. 910 ;; Inside a string, don't change indentation.
911 nil) 911 nil)
912 ((save-excursion
913 ;; test whether current line begins with a constant
914 (goto-char indent-point)
915 (skip-chars-forward " \t")
916 (looking-at ":"))
917 (let ((desired-indent
918 (save-excursion
919 (goto-char (1+ containing-sexp))
920 (parse-partial-sexp (point) calculate-lisp-indent-last-sexp 0 t)
921 (point)))
922 (parse-sexp-ignore-comments t))
923 ;; Align a constant symbol under the last constant symbol
924 (goto-char calculate-lisp-indent-last-sexp)
925 (while (> (point) desired-indent)
926 (if (looking-at ":")
927 (setq desired-indent (point))
928 (backward-sexp 1))))
929 (current-column))
930 ((and (integerp lisp-indent-offset) containing-sexp) 912 ((and (integerp lisp-indent-offset) containing-sexp)
931 ;; Indent by constant offset 913 ;; Indent by constant offset
932 (goto-char containing-sexp) 914 (goto-char containing-sexp)
933 (+ (current-column) lisp-indent-offset)) 915 (+ (current-column) lisp-indent-offset))
916 ;; in this case calculate-lisp-indent-last-sexp is not nil
917 (calculate-lisp-indent-last-sexp
918 (or
919 ;; try to align the parameters of a known function
920 (and lisp-indent-function
921 (not retry)
922 (funcall lisp-indent-function indent-point state))
923 ;; If the function has no special alignment
924 ;; or it does not apply to this argument,
925 ;; try to align a constant-symbol under the last
926 ;; preceding constant symbol, if there is such one of
927 ;; the last 2 preceding symbols, in the previous
928 ;; uncommented line.
929 (and (save-excursion
930 (goto-char indent-point)
931 (skip-chars-forward " \t")
932 (looking-at ":"))
933 (> calculate-lisp-indent-last-sexp
934 (save-excursion
935 (goto-char (1+ containing-sexp))
936 (parse-partial-sexp (point) calculate-lisp-indent-last-sexp 0 t)
937 (point)))
938 (let ((parse-sexp-ignore-comments t)
939 indent)
940 (goto-char calculate-lisp-indent-last-sexp)
941 (or (and (looking-at ":")
942 (setq indent (current-column)))
943 (and (< (save-excursion (beginning-of-line) (point))
944 (prog2 (backward-sexp) (point)))
945 (looking-at ":")
946 (setq indent (current-column))))
947 indent))
948 ;; another symbols or constants not preceded by a constant
949 ;; as defined above.
950 normal-indent))
951 ;; in this case calculate-lisp-indent-last-sexp is nil
934 (desired-indent) 952 (desired-indent)
935 ((and (boundp 'lisp-indent-function)
936 lisp-indent-function
937 (not retry))
938 (or (funcall lisp-indent-function indent-point state)
939 normal-indent))
940 (t 953 (t
941 normal-indent)))))) 954 normal-indent))))))
942 955
diff --git a/lisp/emacs-lisp/re-builder.el b/lisp/emacs-lisp/re-builder.el
index 08897bec72c..dc4562ab9bb 100644
--- a/lisp/emacs-lisp/re-builder.el
+++ b/lisp/emacs-lisp/re-builder.el
@@ -130,14 +130,13 @@
130 130
131(defcustom reb-re-syntax 'read 131(defcustom reb-re-syntax 'read
132 "*Syntax for the REs in the RE Builder. 132 "*Syntax for the REs in the RE Builder.
133Can either be `read', `string', `sregex' or `lisp-re'." 133Can either be `read', `string', `sregex', `lisp-re', `rx'."
134 :group 're-builder 134 :group 're-builder
135 :type '(choice (const :tag "Read syntax" read) 135 :type '(choice (const :tag "Read syntax" read)
136 (const :tag "String syntax" string) 136 (const :tag "String syntax" string)
137 (const :tag "`sregex' syntax" sregex) 137 (const :tag "`sregex' syntax" sregex)
138 (const :tag "`lisp-re' syntax" lisp-re) 138 (const :tag "`lisp-re' syntax" lisp-re)
139 (const :tag "`rx' syntax" rx) 139 (const :tag "`rx' syntax" rx)))
140 (value: string)))
141 140
142(defcustom reb-auto-match-limit 200 141(defcustom reb-auto-match-limit 200
143 "*Positive integer limiting the matches for RE Builder auto updates. 142 "*Positive integer limiting the matches for RE Builder auto updates.
diff --git a/lisp/faces.el b/lisp/faces.el
index 75eb8cdb2c6..8e882e4927c 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -1849,7 +1849,11 @@ Initialize colors of certain faces from frame parameters."
1849 (face-spec-set face (face-user-default-spec face) frame) 1849 (face-spec-set face (face-user-default-spec face) frame)
1850 (internal-merge-in-global-face face frame) 1850 (internal-merge-in-global-face face frame)
1851 (if (memq window-system '(x w32 mac)) 1851 (if (memq window-system '(x w32 mac))
1852 (make-face-x-resource-internal face frame))) 1852 (make-face-x-resource-internal face frame))
1853 ;; If the user has customized the face, don't let X
1854 ;; resources override the customizations.
1855 (if (get face 'theme-face)
1856 (custom-theme-recalc-face face)))
1853 (error nil))) 1857 (error nil)))
1854 ;; Apply the attributes specified by frame parameters. This 1858 ;; Apply the attributes specified by frame parameters. This
1855 ;; rewrites parameters changed by make-face-x-resource-internal 1859 ;; rewrites parameters changed by make-face-x-resource-internal
@@ -2197,7 +2201,7 @@ created."
2197 ;; Don't use blue because many users of the MS-DOS port customize 2201 ;; Don't use blue because many users of the MS-DOS port customize
2198 ;; their foreground color to be blue. 2202 ;; their foreground color to be blue.
2199 (((type pc)) :foreground "magenta") 2203 (((type pc)) :foreground "magenta")
2200 (t :foreground "dark blue")) 2204 (t :foreground "medium blue"))
2201 "Face for minibuffer prompts. 2205 "Face for minibuffer prompts.
2202By default, Emacs automatically adds this face to the value of 2206By default, Emacs automatically adds this face to the value of
2203`minibuffer-prompt-properties', which is a list of text properties 2207`minibuffer-prompt-properties', which is a list of text properties
diff --git a/lisp/files.el b/lisp/files.el
index 719cda70739..02b50123a50 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -1474,11 +1474,12 @@ the various files."
1474 (error "Aborted")) 1474 (error "Aborted"))
1475 (if buf 1475 (if buf
1476 ;; We are using an existing buffer. 1476 ;; We are using an existing buffer.
1477 (progn 1477 (let (nonexistent)
1478 (or nowarn 1478 (or nowarn
1479 (verify-visited-file-modtime buf) 1479 (verify-visited-file-modtime buf)
1480 (cond ((not (file-exists-p filename)) 1480 (cond ((not (file-exists-p filename))
1481 (error "File %s no longer exists!" filename)) 1481 (setq nonexistent t)
1482 (message "File %s no longer exists!" filename))
1482 ;; Certain files should be reverted automatically 1483 ;; Certain files should be reverted automatically
1483 ;; if they have changed on disk and not in the buffer. 1484 ;; if they have changed on disk and not in the buffer.
1484 ((and (not (buffer-modified-p buf)) 1485 ((and (not (buffer-modified-p buf))
@@ -1515,7 +1516,8 @@ the various files."
1515 ;; writable and vice versa, but if the buffer agrees 1516 ;; writable and vice versa, but if the buffer agrees
1516 ;; with the new state of the file, that is ok too. 1517 ;; with the new state of the file, that is ok too.
1517 (let ((read-only (not (file-writable-p buffer-file-name)))) 1518 (let ((read-only (not (file-writable-p buffer-file-name))))
1518 (unless (or (eq read-only buffer-file-read-only) 1519 (unless (or nonexistent
1520 (eq read-only buffer-file-read-only)
1519 (eq read-only buffer-read-only)) 1521 (eq read-only buffer-read-only))
1520 (when (or nowarn 1522 (when (or nowarn
1521 (let ((question 1523 (let ((question
@@ -1528,6 +1530,7 @@ the various files."
1528 1530
1529 (when (and (not (eq (not (null rawfile)) 1531 (when (and (not (eq (not (null rawfile))
1530 (not (null find-file-literally)))) 1532 (not (null find-file-literally))))
1533 (not nonexistent)
1531 ;; It is confusing to ask whether to visit 1534 ;; It is confusing to ask whether to visit
1532 ;; non-literally if they have the file in 1535 ;; non-literally if they have the file in
1533 ;; hexl-mode. 1536 ;; hexl-mode.
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index d3354bd14eb..add0bb47c25 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -906,7 +906,7 @@
906 (spam-mark-junk-as-spam-routine): Use it. Allow to disable 906 (spam-mark-junk-as-spam-routine): Use it. Allow to disable
907 assigning the spam-mark to new messages. 907 assigning the spam-mark to new messages.
908 908
9092006-03-20 Adam Sj,Ax(Bgren <asjo@koldfront.dk> (tiny change) 9092006-03-20 Adam Sj,Ax(Bgren <asjo@koldfront.dk>
910 910
911 (spam-ham-copy-or-move-routine): Don't declare `todo' twice. 911 (spam-ham-copy-or-move-routine): Don't declare `todo' twice.
912 912
@@ -1590,7 +1590,7 @@
1590 * nnmail.el (nnmail-fancy-expiry-target): Protect against invalid 1590 * nnmail.el (nnmail-fancy-expiry-target): Protect against invalid
1591 date header. 1591 date header.
1592 1592
15932005-11-16 Boris Samorodov <bsam@ipt.ru> (tiny patch) 15932005-11-16 Boris Samorodov <bsam@ipt.ru> (tiny change)
1594 1594
1595 * imap.el (imap-kerberos4-open): Ignore SSL stuff. 1595 * imap.el (imap-kerberos4-open): Ignore SSL stuff.
1596 1596
@@ -2192,7 +2192,7 @@
2192 (gnus-decode-header-function, gnus-newsgroup-name): 2192 (gnus-decode-header-function, gnus-newsgroup-name):
2193 * spam-stat.el (gnus-original-article-buffer): Add defvars. 2193 * spam-stat.el (gnus-original-article-buffer): Add defvars.
2194 2194
21952005-08-22 Karl Chen <quarl@cs.berkeley.edu> (tiny change) 21952005-08-22 Karl Chen <quarl@cs.berkeley.edu>
2196 2196
2197 * gnus-art.el (gnus-treatment-function-alist): Move date-lapsed to 2197 * gnus-art.el (gnus-treatment-function-alist): Move date-lapsed to
2198 the end of the date treatments. 2198 the end of the date treatments.
diff --git a/lisp/gnus/ChangeLog.2 b/lisp/gnus/ChangeLog.2
index 69794a18fa4..4dac2ac55ea 100644
--- a/lisp/gnus/ChangeLog.2
+++ b/lisp/gnus/ChangeLog.2
@@ -76,10 +76,10 @@
76 76
77 * smime.el (smime-crl-check): Doc fix. 77 * smime.el (smime-crl-check): Doc fix.
78 78
792004-01-02 Edwin Steiner <edwin.steiner@gmx.net> 792004-01-02 Edwin Steiner <edwin.steiner@gmx.net> (tiny change)
80 80
81 * gnus-nocem.el (gnus-nocem-enter-article): Use the real group 81 * gnus-nocem.el (gnus-nocem-enter-article): Use the real group
82 hashtb (tiny patch). 82 hashtb.
83 83
842004-01-02 Michael Albinus <Michael.Albinus@alcatel.de> 842004-01-02 Michael Albinus <Michael.Albinus@alcatel.de>
85 85
@@ -463,12 +463,15 @@
463 * mml-smime.el (mml-smime-sign): Replace CRLF with LF in OpenSSL 463 * mml-smime.el (mml-smime-sign): Replace CRLF with LF in OpenSSL
464 output. Reported by Arne J,Ax(Brgensen <arne@arnested.dk>. 464 output. Reported by Arne J,Ax(Brgensen <arne@arnested.dk>.
465 465
4662003-12-07 Simon Josefsson <jas@extundo.com> 4662003-12-07 Lloyd Zusman <ljz@asfast.com> (tiny change)
467 467
468 * pgg-gpg.el (pgg-gpg-recipient-arg): Add. 468 * pgg-gpg.el (pgg-gpg-recipient-arg): Add.
469 (pgg-gpg-encrypt-region): Use it. Tiny patch from Lloyd Zusman 469 (pgg-gpg-encrypt-region): Use it.
470 <ljz@asfast.com>. 470
471 (pgg-gpg-recipient-argument): Doc fix. Renamed fro p-g-r-a. 4712003-12-07 Simon Josefsson <jas@extundo.com>
472
473 * pgg-gpg.el (pgg-gpg-recipient-argument): Doc fix.
474 Renamed from p-g-r-a.
472 (pgg-gpg-encrypt-region): Update. 475 (pgg-gpg-encrypt-region): Update.
473 476
4742003-12-07 Jesper Harder <harder@ifa.au.dk> 4772003-12-07 Jesper Harder <harder@ifa.au.dk>
@@ -907,10 +910,10 @@
907 * spam.el (spam-spamoracle): doc change, suggested by Jean-Marc 910 * spam.el (spam-spamoracle): doc change, suggested by Jean-Marc
908 Lasgouttes <Jean-Marc.Lasgouttes@inria.fr> 911 Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
909 912
9102003-11-04 Katsumi Yamaoka <yamaoka@jpl.org> 9132003-11-04 Norbert Koch <viteno@xemacs.org> (tiny change)
911 914
912 * gnus-score.el (gnus-decay-score): Protect against arithmetic 915 * gnus-score.el (gnus-decay-score): Protect against arithmetic
913 errors. Tiny patch from Norbert Koch <viteno@xemacs.org>. 916 errors.
914 917
9152003-10-31 Teodor Zlatanov <tzz@lifelogs.com> 9182003-10-31 Teodor Zlatanov <tzz@lifelogs.com>
916 919
@@ -927,12 +930,14 @@
927 (spam-spamoracle-learn-ham, spam-spamoracle-learn-spam): change 930 (spam-spamoracle-learn-ham, spam-spamoracle-learn-spam): change
928 spam-log-processing-to-registry invocations appropriately 931 spam-log-processing-to-registry invocations appropriately
929 932
9302003-10-31 Simon Josefsson <jas@extundo.com> 9332003-10-31 Derek Atkins <warlord@MIT.EDU> (tiny change)
931 934
932 * imap.el (imap-kerberos4-open): Ignore output from ATHENA imtest. 935 * imap.el (imap-kerberos4-open): Ignore output from ATHENA imtest.
933 Tiny patch from Derek Atkins <warlord@MIT.EDU>. 936
934 (imap-process-connection-type): Improve docstring. Suggested by 9372003-10-31 Simon Josefsson <jas@extundo.com>
935 Derek Atkins <warlord@MIT.EDU>. 938
939 * imap.el (imap-process-connection-type): Improve docstring.
940 Suggested by Derek Atkins <warlord@MIT.EDU>.
936 941
9372003-10-31 Teodor Zlatanov <tzz@lifelogs.com> 9422003-10-31 Teodor Zlatanov <tzz@lifelogs.com>
938 943
@@ -964,11 +969,14 @@
964 * message.el (message-forward-make-body-plain): Fix ARG=1 mode 969 * message.el (message-forward-make-body-plain): Fix ARG=1 mode
965 after separating m-f-m-b. 970 after separating m-f-m-b.
966 971
9672003-10-29 Simon Josefsson <jas@extundo.com> 9722003-10-29 Andre Srinivasan <andre@e2open.com> (tiny change)
968 973
969 * message.el (message-forward-make-body-plain): Remove ignored 974 * message.el (message-forward-make-body-plain): Remove ignored
970 headers. Tiny patch from Andre Srinivasan <andre@e2open.com>. 975 headers.
971 (message-forward-make-body-plain): Fix ARG=1. 976
9772003-10-29 Simon Josefsson <jas@extundo.com>
978
979 * message.el (message-forward-make-body-plain): Fix ARG=1.
972 980
9732003-10-28 Jesper Harder <harder@ifa.au.dk> 9812003-10-28 Jesper Harder <harder@ifa.au.dk>
974 982
@@ -1582,7 +1590,7 @@
1582 (mml-insert-mime-headers): Use it. Based on (tiny) patch from 1590 (mml-insert-mime-headers): Use it. Based on (tiny) patch from
1583 Lars Balker Rasmussen <lars@balker.org>. 1591 Lars Balker Rasmussen <lars@balker.org>.
1584 1592
15852003-08-30 Gaute Strokkenes <gs234@srcf.ucam.org> (tiny change) 15932003-08-30 Gaute B Strokkenes <gs234@srcf.ucam.org> (tiny change)
1586 1594
1587 * mail-source.el (mail-source-fetch-imap): Pass correct buffer to 1595 * mail-source.el (mail-source-fetch-imap): Pass correct buffer to
1588 imap-open, reverts 2003-03-17 change. Reverse remove before 1596 imap-open, reverts 2003-03-17 change. Reverse remove before
@@ -1656,13 +1664,12 @@
1656 * gnus-art.el (gnus-article-edit-done, gnus-article-edit-exit): 1664 * gnus-art.el (gnus-article-edit-done, gnus-article-edit-exit):
1657 Redisplay article after editing. 1665 Redisplay article after editing.
1658 1666
16592003-08-20 Simon Josefsson <jas@extundo.com> 16672003-08-20 Jari Aalto <jari.aalto@poboxes.com>
1660 1668
1661 * gnus.el (gnus-read-group): Added check to ask confirmation if 1669 * gnus.el (gnus-read-group): Added check to ask confirmation if
1662 Group name contains invalid character. You can use '/' in IMAP, 1670 Group name contains invalid character. You can use '/' in IMAP,
1663 but not in filenames. G m cannot know what the user is creating, 1671 but not in filenames. G m cannot know what the user is creating,
1664 so let user decide. See thread m2oeysiev3.fsf@naima.lensflare.org. 1672 so let user decide. See thread m2oeysiev3.fsf@naima.lensflare.org.
1665 Tiny patch from letters@hotpop.com (Jari Aalto+mail.linux).
1666 1673
16672003-08-13 Reiner Steib <Reiner.Steib@gmx.de> 16742003-08-13 Reiner Steib <Reiner.Steib@gmx.de>
1668 1675
@@ -1715,7 +1722,7 @@
1715 * gnus.el (gnus-refer-article-method): Ditto. 1722 * gnus.el (gnus-refer-article-method): Ditto.
1716 * message.el (message-courtesy-message): Ditto. 1723 * message.el (message-courtesy-message): Ditto.
1717 1724
17182003-08-06 Chunyu Wang <spr@db.cs.hit.edu.cn> (tiny patch) 17252003-08-06 Chunyu Wang <spr@db.cs.hit.edu.cn> (tiny change)
1719 1726
1720 * gnus-art.el (gnus-header-face-alist): Fix "Newsgroups" entry. 1727 * gnus-art.el (gnus-header-face-alist): Fix "Newsgroups" entry.
1721 1728
@@ -1754,11 +1761,10 @@
1754 * gnus-registry.el (gnus-registry-install): add an initial 1761 * gnus-registry.el (gnus-registry-install): add an initial
1755 registry read to the loading when gnus-registry-install is set 1762 registry read to the loading when gnus-registry-install is set
1756 1763
17572003-07-26 Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net> 17642003-07-26 Mark Thomas <swoon@bellatlantic.net> (tiny change)
1758 1765
1759 * flow-fill.el (fill-flowed): Empty lines separate paragraphs 1766 * flow-fill.el (fill-flowed): Empty lines separate paragraphs
1760 even if the preceding line ends with a soft break. Tiny patch 1767 even if the preceding line ends with a soft break.
1761 from Mark Thomas <swoon@bellatlantic.net>.
1762 1768
17632003-07-25 Teodor Zlatanov <tzz@lifelogs.com> 17692003-07-25 Teodor Zlatanov <tzz@lifelogs.com>
1764 1770
@@ -1843,7 +1849,7 @@
1843 * imap.el (imap-arrival-filter): Fix test for missing process 1849 * imap.el (imap-arrival-filter): Fix test for missing process
1844 buffer. 1850 buffer.
1845 1851
18462003-07-09 Gaute B Strokkenes <gs234@cam.ac.uk> (tiny patch). 18522003-07-09 Gaute B Strokkenes <gs234@cam.ac.uk> (tiny change)
1847 1853
1848 * imap.el (imap-wait-for-tag): Clarify comment. Use timeout zero 1854 * imap.el (imap-wait-for-tag): Clarify comment. Use timeout zero
1849 for second, after-process-has-died, accept-process-output. 1855 for second, after-process-has-died, accept-process-output.
@@ -1899,7 +1905,7 @@
1899 (message-canlock-generate) 1905 (message-canlock-generate)
1900 (message-generate-new-buffer-clone-locals): Docstring fixes. 1906 (message-generate-new-buffer-clone-locals): Docstring fixes.
1901 1907
19022003-07-07 Gaute B Strokkenes <gs234@cam.ac.uk> (tiny patch) 19082003-07-07 Gaute B Strokkenes <gs234@cam.ac.uk> (tiny change)
1903 1909
1904 * imap.el (imap-wait-for-tag): After the process has died, look 1910 * imap.el (imap-wait-for-tag): After the process has died, look
1905 for more output still pending. 1911 for more output still pending.
@@ -2421,11 +2427,10 @@
2421 (rfc2047-syntax-table): Fix building table to work in Emacs 22. 2427 (rfc2047-syntax-table): Fix building table to work in Emacs 22.
2422 (rfc2047-unfold-region): Delete unused var `leading'. 2428 (rfc2047-unfold-region): Delete unused var `leading'.
2423 2429
24242003-05-12 Simon Josefsson <jas@extundo.com> 24302003-05-12 Ville Skytt,Ad(B <scop@xemacs.org> (tiny change)
2425 2431
2426 * pgg.el (pgg-temp-buffer-show-function): Reuse existing visible 2432 * pgg.el (pgg-temp-buffer-show-function): Reuse existing visible
2427 output window if one is available. Tiny patch from Ville Skytt,Ad(B 2433 output window if one is available.
2428 <scop@xemacs.org>.
2429 2434
24302003-05-11 Lars Magne Ingebrigtsen <larsi@gnus.org> 24352003-05-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
2431 2436
@@ -4750,7 +4755,7 @@
4750 * gnus-start.el (gnus-get-unread-articles-in-group): Make sure 4755 * gnus-start.el (gnus-get-unread-articles-in-group): Make sure
4751 the entry for the group exists before we alter it. 4756 the entry for the group exists before we alter it.
4752 4757
47532003-02-22 David S Goldberg <david.goldberg6@verizon.net> (tiny change) 47582003-02-22 David S. Goldberg <david.goldberg6@verizon.net> (tiny change)
4754 4759
4755 * message.el (message-mode): MML tags separate paragraphs. 4760 * message.el (message-mode): MML tags separate paragraphs.
4756 4761
@@ -5037,7 +5042,7 @@
5037 code that only worked under Emacs. 5042 code that only worked under Emacs.
5038 5043
50392003-02-08 Satyaki Das <satyaki@chicory.stanford.edu> 50442003-02-08 Satyaki Das <satyaki@chicory.stanford.edu>
5040 5045
5041 * pgg-gpg.el (pgg-gpg-process-region): Don't blink. 5046 * pgg-gpg.el (pgg-gpg-process-region): Don't blink.
5042 5047
50432003-02-08 Jesper Harder <harder@ifa.au.dk> 50482003-02-08 Jesper Harder <harder@ifa.au.dk>
@@ -5372,11 +5377,10 @@
5372 5377
5373 * gnus.el: Oort Gnus v0.14 is released. 5378 * gnus.el: Oort Gnus v0.14 is released.
5374 5379
53752003-01-24 Kai Gro,A_(Bjohann <kai.grossjohann@uni-duisburg.de> 53802003-01-24 Mark Thomas <swoon@bellatlantic.net> (tiny change)
5376 5381
5377 * gnus-sum.el (gnus-summary-prepare-threads): Reset state for %B 5382 * gnus-sum.el (gnus-summary-prepare-threads): Reset state for %B
5378 before beginning. Tiny patch from Mark Thomas 5383 before beginning.
5379 <swoon@bellatlantic.net>.
5380 5384
53812003-01-24 Teodor Zlatanov <tzz@lifelogs.com> 53852003-01-24 Teodor Zlatanov <tzz@lifelogs.com>
5382 5386
@@ -13122,7 +13126,7 @@
13122 13126
13123 * nnfolder.el (nnfolder-marks-changed-p): Ditto. 13127 * nnfolder.el (nnfolder-marks-changed-p): Ditto.
13124 13128
131252001-10-20 David Z Maze <dmaze@MIT.EDU> 131292001-10-20 David Z. Maze <dmaze@MIT.EDU>
13126 13130
13127 * nnml.el (nnml-marks-changed-p): Use `equal' when comparing 13131 * nnml.el (nnml-marks-changed-p): Use `equal' when comparing
13128 conses. 13132 conses.
diff --git a/lisp/icomplete.el b/lisp/icomplete.el
index 3ee53a821bf..6599c1442bc 100644
--- a/lisp/icomplete.el
+++ b/lisp/icomplete.el
@@ -219,7 +219,8 @@ and `minibuffer-setup-hook'."
219 (when (and icomplete-mode icomplete-eoinput) 219 (when (and icomplete-mode icomplete-eoinput)
220 220
221 (unless (>= icomplete-eoinput (point-max)) 221 (unless (>= icomplete-eoinput (point-max))
222 (let ((buffer-undo-list t)) ; prevent entry 222 (let ((buffer-undo-list t) ; prevent entry
223 deactivate-mark)
223 (delete-region icomplete-eoinput (point-max)))) 224 (delete-region icomplete-eoinput (point-max))))
224 225
225 ;; Reestablish the safe value. 226 ;; Reestablish the safe value.
@@ -256,7 +257,8 @@ and `minibuffer-setup-hook'."
256 minibuffer-completion-table 257 minibuffer-completion-table
257 minibuffer-completion-predicate 258 minibuffer-completion-predicate
258 (not minibuffer-completion-confirm))))) 259 (not minibuffer-completion-confirm)))))
259 (buffer-undo-list t)) 260 (buffer-undo-list t)
261 deactivate-mark)
260 ;; Do nothing if while-no-input was aborted. 262 ;; Do nothing if while-no-input was aborted.
261 (if (consp text) (insert (car text)))))))) 263 (if (consp text) (insert (car text))))))))
262 264
diff --git a/lisp/international/isearch-x.el b/lisp/international/isearch-x.el
index 76a33d2569e..b75a7cdaab3 100644
--- a/lisp/international/isearch-x.el
+++ b/lisp/international/isearch-x.el
@@ -103,6 +103,15 @@
103 (prompt (isearch-message-prefix)) 103 (prompt (isearch-message-prefix))
104 (minibuffer-local-map isearch-minibuffer-local-map) 104 (minibuffer-local-map isearch-minibuffer-local-map)
105 str junk-hist) 105 str junk-hist)
106
107 ;; PROMPT contains text-properties from
108 ;; `minibuffer-prompt-properties', and some of these can screw up
109 ;; its use in `read-string' below (specifically, a read-only
110 ;; property will cause it to signal an error), so strip them here;
111 ;; read-string will add the same properties itself anyway.
112 ;;
113 (set-text-properties 0 (length prompt) nil prompt)
114
106 (if isearch-input-method-function 115 (if isearch-input-method-function
107 (let (;; Let input method work rather tersely. 116 (let (;; Let input method work rather tersely.
108 (input-method-verbose-flag nil)) 117 (input-method-verbose-flag nil))
diff --git a/lisp/isearch.el b/lisp/isearch.el
index 76f6115fc23..e9fca098c09 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -1953,9 +1953,8 @@ If there is no completion possible, say so and continue searching."
1953 (concat " [" current-input-method-title "]: ") 1953 (concat " [" current-input-method-title "]: ")
1954 ": ") 1954 ": ")
1955 ))) 1955 )))
1956 (apply 'propertize 1956 (propertize (concat (upcase (substring m 0 1)) (substring m 1))
1957 (concat (upcase (substring m 0 1)) (substring m 1)) 1957 'face 'minibuffer-prompt)))
1958 minibuffer-prompt-properties)))
1959 1958
1960(defun isearch-message-suffix (&optional c-q-hack ellipsis) 1959(defun isearch-message-suffix (&optional c-q-hack ellipsis)
1961 (concat (if c-q-hack "^Q" "") 1960 (concat (if c-q-hack "^Q" "")
diff --git a/lisp/jit-lock.el b/lisp/jit-lock.el
index 958bb679832..0471edb7891 100644
--- a/lisp/jit-lock.el
+++ b/lisp/jit-lock.el
@@ -74,14 +74,14 @@ This variable controls both display-time and stealth fontification."
74 :group 'jit-lock) 74 :group 'jit-lock)
75 75
76 76
77(defcustom jit-lock-stealth-time 16 77(defcustom jit-lock-stealth-time nil
78 "*Time in seconds to wait before beginning stealth fontification. 78 "*Time in seconds to wait before beginning stealth fontification.
79Stealth fontification occurs if there is no input within this time. 79Stealth fontification occurs if there is no input within this time.
80If nil, stealth fontification is never performed. 80If nil, stealth fontification is never performed.
81 81
82The value of this variable is used when JIT Lock mode is turned on." 82The value of this variable is used when JIT Lock mode is turned on."
83 :type '(choice (const :tag "never" nil) 83 :type '(choice (const :tag "never" nil)
84 (number :tag "seconds")) 84 (number :tag "seconds" :value 16))
85 :group 'jit-lock) 85 :group 'jit-lock)
86 86
87 87
diff --git a/lisp/mail/emacsbug.el b/lisp/mail/emacsbug.el
index c4592aca66c..7e091a1943f 100644
--- a/lisp/mail/emacsbug.el
+++ b/lisp/mail/emacsbug.el
@@ -139,7 +139,9 @@ usually do not have translators to read other languages for them.\n\n")
139 (insert "\n\nIn " (emacs-version) "\n") 139 (insert "\n\nIn " (emacs-version) "\n")
140 (if (fboundp 'x-server-vendor) 140 (if (fboundp 'x-server-vendor)
141 (condition-case nil 141 (condition-case nil
142 (insert "X server distributor `" (x-server-vendor) "', version " 142 ;; This is used not only for X11 but also W32 and others.
143 (insert "Windowing system distributor `" (x-server-vendor)
144 "', version "
143 (mapconcat 'number-to-string (x-server-version) ".") "\n") 145 (mapconcat 'number-to-string (x-server-version) ".") "\n")
144 (error t))) 146 (error t)))
145 (if (and system-configuration-options 147 (if (and system-configuration-options
@@ -281,5 +283,5 @@ and send the mail again using \\[mail-send-and-exit].")))
281 283
282(provide 'emacsbug) 284(provide 'emacsbug)
283 285
284;;; arch-tag: 248b6523-c3b5-4fec-9a3f-0411fafa7d49 286;; arch-tag: 248b6523-c3b5-4fec-9a3f-0411fafa7d49
285;;; emacsbug.el ends here 287;;; emacsbug.el ends here
diff --git a/lisp/mouse.el b/lisp/mouse.el
index ef0784d8973..94897f57e99 100644
--- a/lisp/mouse.el
+++ b/lisp/mouse.el
@@ -409,11 +409,6 @@ MODE-LINE-P non-nil means dragging a mode line; nil means a header line."
409 should-enlarge-minibuffer event mouse y top bot edges wconfig growth) 409 should-enlarge-minibuffer event mouse y top bot edges wconfig growth)
410 (track-mouse 410 (track-mouse
411 (progn 411 (progn
412 ;; enlarge-window only works on the selected window, so
413 ;; we must select the window where the start event originated.
414 ;; unwind-protect will restore the old selected window later.
415 (select-window start-event-window)
416
417 ;; if this is the bottommost ordinary window, then to 412 ;; if this is the bottommost ordinary window, then to
418 ;; move its modeline the minibuffer must be enlarged. 413 ;; move its modeline the minibuffer must be enlarged.
419 (setq should-enlarge-minibuffer 414 (setq should-enlarge-minibuffer
@@ -421,7 +416,7 @@ MODE-LINE-P non-nil means dragging a mode line; nil means a header line."
421 mode-line-p 416 mode-line-p
422 (not (one-window-p t)) 417 (not (one-window-p t))
423 (= (nth 1 (window-edges minibuffer)) 418 (= (nth 1 (window-edges minibuffer))
424 (nth 3 (window-edges))))) 419 (nth 3 (window-edges start-event-window)))))
425 420
426 ;; loop reading events and sampling the position of 421 ;; loop reading events and sampling the position of
427 ;; the mouse. 422 ;; the mouse.
@@ -459,7 +454,7 @@ MODE-LINE-P non-nil means dragging a mode line; nil means a header line."
459 454
460 (t 455 (t
461 (setq y (cdr (cdr mouse)) 456 (setq y (cdr (cdr mouse))
462 edges (window-edges) 457 edges (window-edges start-event-window)
463 top (nth 1 edges) 458 top (nth 1 edges)
464 bot (nth 3 edges)) 459 bot (nth 3 edges))
465 460
@@ -572,10 +567,6 @@ resized by dragging their header-line."
572 (error "Attempt to drag leftmost scrollbar"))) 567 (error "Attempt to drag leftmost scrollbar")))
573 (track-mouse 568 (track-mouse
574 (progn 569 (progn
575 ;; enlarge-window only works on the selected window, so
576 ;; we must select the window where the start event originated.
577 ;; unwind-protect will restore the old selected window later.
578 (select-window start-event-window)
579 ;; loop reading events and sampling the position of 570 ;; loop reading events and sampling the position of
580 ;; the mouse. 571 ;; the mouse.
581 (while (not done) 572 (while (not done)
@@ -611,9 +602,9 @@ resized by dragging their header-line."
611 ;; If the scroll bar is on the window's left, 602 ;; If the scroll bar is on the window's left,
612 ;; adjust the window on the left. 603 ;; adjust the window on the left.
613 (if (eq which-side 'right) 604 (if (eq which-side 'right)
614 (selected-window) 605 start-event-window
615 (mouse-drag-vertical-line-rightward-window 606 (mouse-drag-vertical-line-rightward-window
616 (selected-window))))) 607 start-event-window))))
617 (setq x (- (car (cdr mouse)) 608 (setq x (- (car (cdr mouse))
618 (if (eq which-side 'right) 0 2)) 609 (if (eq which-side 'right) 0 2))
619 edges (window-edges window) 610 edges (window-edges window)
diff --git a/lisp/net/ange-ftp.el b/lisp/net/ange-ftp.el
index 08efbb1e107..ec76279c642 100644
--- a/lisp/net/ange-ftp.el
+++ b/lisp/net/ange-ftp.el
@@ -1005,7 +1005,7 @@ Don't use any other value."
1005 (const :tag "Allow" 1))) 1005 (const :tag "Allow" 1)))
1006 1006
1007(defcustom ange-ftp-try-passive-mode nil 1007(defcustom ange-ftp-try-passive-mode nil
1008 "It t, try to use passive mode in ftp, if the client program supports it." 1008 "If t, try to use passive mode in ftp, if the client program supports it."
1009 :group 'ange-ftp 1009 :group 'ange-ftp
1010 :type 'boolean 1010 :type 'boolean
1011 :version "21.1") 1011 :version "21.1")
diff --git a/lisp/net/rcirc.el b/lisp/net/rcirc.el
index ac2c886a976..dc346695ce2 100644
--- a/lisp/net/rcirc.el
+++ b/lisp/net/rcirc.el
@@ -312,9 +312,8 @@ and the cdr part is used for encoding."
312 "List of urls seen in the current buffer.") 312 "List of urls seen in the current buffer.")
313(put 'rcirc-urls 'permanent-local t) 313(put 'rcirc-urls 'permanent-local t)
314 314
315(defvar rcirc-keepalive-seconds 60 315(defvar rcirc-timeout-seconds 60
316 "Number of seconds between keepalive pings. 316 "Kill connection after this many seconds if there is no activity.")
317If nil, do not send keepalive pings.")
318 317
319(defconst rcirc-id-string (concat "rcirc on GNU Emacs " emacs-version)) 318(defconst rcirc-id-string (concat "rcirc on GNU Emacs " emacs-version))
320 319
@@ -357,7 +356,12 @@ If ARG is non-nil, prompt for a server to connect to."
357(defvar rcirc-topic nil) 356(defvar rcirc-topic nil)
358(defvar rcirc-keepalive-timer nil) 357(defvar rcirc-keepalive-timer nil)
359(defvar rcirc-last-server-message-time nil) 358(defvar rcirc-last-server-message-time nil)
360(defvar rcirc-server nil) 359(defvar rcirc-server nil) ; server provided by server
360(defvar rcirc-server-name nil) ; server name given by 001 response
361(defvar rcirc-timeout-timer nil)
362(defvar rcirc-user-disconnect nil)
363(defvar rcirc-connecting nil)
364(defvar rcirc-process nil)
361 365
362;;;###autoload 366;;;###autoload
363(defun rcirc-connect (&optional server port nick user-name full-name startup-channels) 367(defun rcirc-connect (&optional server port nick user-name full-name startup-channels)
@@ -374,7 +378,7 @@ If ARG is non-nil, prompt for a server to connect to."
374 (user-name (or user-name rcirc-default-user-name)) 378 (user-name (or user-name rcirc-default-user-name))
375 (full-name (or full-name rcirc-default-user-full-name)) 379 (full-name (or full-name rcirc-default-user-full-name))
376 (startup-channels startup-channels) 380 (startup-channels startup-channels)
377 (process (open-network-stream server nil server port-number))) 381 (process (make-network-process :name server :host server :service port-number)))
378 ;; set up process 382 ;; set up process
379 (set-process-coding-system process 'raw-text 'raw-text) 383 (set-process-coding-system process 'raw-text 'raw-text)
380 (switch-to-buffer (rcirc-generate-new-buffer-name process nil)) 384 (switch-to-buffer (rcirc-generate-new-buffer-name process nil))
@@ -382,8 +386,12 @@ If ARG is non-nil, prompt for a server to connect to."
382 (rcirc-mode process nil) 386 (rcirc-mode process nil)
383 (set-process-sentinel process 'rcirc-sentinel) 387 (set-process-sentinel process 'rcirc-sentinel)
384 (set-process-filter process 'rcirc-filter) 388 (set-process-filter process 'rcirc-filter)
389 (make-local-variable 'rcirc-process)
390 (setq rcirc-process process)
385 (make-local-variable 'rcirc-server) 391 (make-local-variable 'rcirc-server)
386 (setq rcirc-server server) 392 (setq rcirc-server server)
393 (make-local-variable 'rcirc-server-name)
394 (setq rcirc-server-name server) ; update when we get 001 response
387 (make-local-variable 'rcirc-buffer-alist) 395 (make-local-variable 'rcirc-buffer-alist)
388 (setq rcirc-buffer-alist nil) 396 (setq rcirc-buffer-alist nil)
389 (make-local-variable 'rcirc-nick-table) 397 (make-local-variable 'rcirc-nick-table)
@@ -396,6 +404,12 @@ If ARG is non-nil, prompt for a server to connect to."
396 (setq rcirc-startup-channels startup-channels) 404 (setq rcirc-startup-channels startup-channels)
397 (make-local-variable 'rcirc-last-server-message-time) 405 (make-local-variable 'rcirc-last-server-message-time)
398 (setq rcirc-last-server-message-time (current-time)) 406 (setq rcirc-last-server-message-time (current-time))
407 (make-local-variable 'rcirc-timeout-timer)
408 (setq rcirc-timeout-timer nil)
409 (make-local-variable 'rcirc-user-disconnect)
410 (setq rcirc-user-disconnect nil)
411 (make-local-variable 'rcirc-connecting)
412 (setq rcirc-connecting t)
399 413
400 ;; identify 414 ;; identify
401 (rcirc-send-string process (concat "NICK " nick)) 415 (rcirc-send-string process (concat "NICK " nick))
@@ -404,10 +418,9 @@ If ARG is non-nil, prompt for a server to connect to."
404 full-name)) 418 full-name))
405 419
406 ;; setup ping timer if necessary 420 ;; setup ping timer if necessary
407 (when rcirc-keepalive-seconds 421 (unless rcirc-keepalive-timer
408 (unless rcirc-keepalive-timer 422 (setq rcirc-keepalive-timer
409 (setq rcirc-keepalive-timer 423 (run-at-time 0 (/ rcirc-timeout-seconds 2) 'rcirc-keepalive)))
410 (run-at-time 0 rcirc-keepalive-seconds 'rcirc-keepalive))))
411 424
412 (message "Connecting to %s...done" server) 425 (message "Connecting to %s...done" server)
413 426
@@ -430,12 +443,11 @@ Kill processes that have not received a server message since the
430last ping." 443last ping."
431 (if (rcirc-process-list) 444 (if (rcirc-process-list)
432 (mapc (lambda (process) 445 (mapc (lambda (process)
433 (with-rcirc-process-buffer process 446 (with-rcirc-process-buffer process
434 (if (> (cadr (time-since rcirc-last-server-message-time)) 447 (when (not rcirc-connecting)
435 rcirc-keepalive-seconds) 448 (rcirc-send-string process (concat "PING " (rcirc-server-name process))))))
436 (kill-process process)
437 (rcirc-send-string process (concat "PING " rcirc-server)))))
438 (rcirc-process-list)) 449 (rcirc-process-list))
450 ;; no processes, clean up timer
439 (cancel-timer rcirc-keepalive-timer) 451 (cancel-timer rcirc-keepalive-timer)
440 (setq rcirc-keepalive-timer nil))) 452 (setq rcirc-keepalive-timer nil)))
441 453
@@ -472,12 +484,12 @@ Functions are called with PROCESS and SENTINEL arguments.")
472 (format "%s: %s (%S)" 484 (format "%s: %s (%S)"
473 (process-name process) 485 (process-name process)
474 sentinel 486 sentinel
475 (process-status process)) t) 487 (process-status process)) (not rcirc-target))
476 ;; remove the prompt from buffers 488 ;; remove the prompt from buffers
477 (let ((inhibit-read-only t)) 489 (let ((inhibit-read-only t))
478 (delete-region rcirc-prompt-start-marker 490 (delete-region rcirc-prompt-start-marker
479 rcirc-prompt-end-marker))))) 491 rcirc-prompt-end-marker))))
480 (run-hook-with-args 'rcirc-sentinel-hooks process sentinel))) 492 (run-hook-with-args 'rcirc-sentinel-hooks process sentinel))))
481 493
482(defun rcirc-process-list () 494(defun rcirc-process-list ()
483 "Return a list of rcirc processes." 495 "Return a list of rcirc processes."
@@ -496,6 +508,7 @@ Function is called with PROCESS, COMMAND, SENDER, ARGS and LINE.")
496(defun rcirc-filter (process output) 508(defun rcirc-filter (process output)
497 "Called when PROCESS receives OUTPUT." 509 "Called when PROCESS receives OUTPUT."
498 (rcirc-debug process output) 510 (rcirc-debug process output)
511 (rcirc-reschedule-timeout process)
499 (with-rcirc-process-buffer process 512 (with-rcirc-process-buffer process
500 (setq rcirc-last-server-message-time (current-time)) 513 (setq rcirc-last-server-message-time (current-time))
501 (setq rcirc-process-output (concat rcirc-process-output output)) 514 (setq rcirc-process-output (concat rcirc-process-output output))
@@ -506,6 +519,19 @@ Function is called with PROCESS, COMMAND, SENDER, ARGS and LINE.")
506 (split-string rcirc-process-output "[\n\r]" t)) 519 (split-string rcirc-process-output "[\n\r]" t))
507 (setq rcirc-process-output nil)))) 520 (setq rcirc-process-output nil))))
508 521
522(defun rcirc-reschedule-timeout (process)
523 (with-rcirc-process-buffer process
524 (when (not rcirc-connecting)
525 (with-rcirc-process-buffer process
526 (when rcirc-timeout-timer (cancel-timer rcirc-timeout-timer))
527 (setq rcirc-timeout-timer (run-at-time rcirc-timeout-seconds nil
528 'rcirc-delete-process
529 process))))))
530
531(defun rcirc-delete-process (process)
532 (message "delete process %S" process)
533 (delete-process process))
534
509(defvar rcirc-trap-errors-flag t) 535(defvar rcirc-trap-errors-flag t)
510(defun rcirc-process-server-response (process text) 536(defun rcirc-process-server-response (process text)
511 (if rcirc-trap-errors-flag 537 (if rcirc-trap-errors-flag
@@ -557,15 +583,16 @@ Function is called with PROCESS, COMMAND, SENDER, ARGS and LINE.")
557(defun rcirc-buffer-process (&optional buffer) 583(defun rcirc-buffer-process (&optional buffer)
558 "Return the process associated with channel BUFFER. 584 "Return the process associated with channel BUFFER.
559With no argument or nil as argument, use the current buffer." 585With no argument or nil as argument, use the current buffer."
560 (get-buffer-process (if buffer 586 (or (get-buffer-process (if buffer
561 (with-current-buffer buffer 587 (with-current-buffer buffer
562 rcirc-server-buffer) 588 rcirc-server-buffer)
563 rcirc-server-buffer))) 589 rcirc-server-buffer))
590 rcirc-process))
564 591
565(defun rcirc-server-name (process) 592(defun rcirc-server-name (process)
566 "Return PROCESS server name, given by the 001 response." 593 "Return PROCESS server name, given by the 001 response."
567 (with-rcirc-process-buffer process 594 (with-rcirc-process-buffer process
568 (or rcirc-server rcirc-default-server))) 595 (or rcirc-server-name rcirc-default-server)))
569 596
570(defun rcirc-nick (process) 597(defun rcirc-nick (process)
571 "Return PROCESS nick." 598 "Return PROCESS nick."
@@ -790,7 +817,7 @@ If ALL is non-nil, update prompts in all IRC buffers."
790 (setq prompt 817 (setq prompt
791 (replace-regexp-in-string (car rep) (cdr rep) prompt))) 818 (replace-regexp-in-string (car rep) (cdr rep) prompt)))
792 (list (cons "%n" (rcirc-buffer-nick)) 819 (list (cons "%n" (rcirc-buffer-nick))
793 (cons "%s" (with-rcirc-server-buffer (or rcirc-server ""))) 820 (cons "%s" (with-rcirc-server-buffer rcirc-server-name))
794 (cons "%t" (or rcirc-target "")))) 821 (cons "%t" (or rcirc-target ""))))
795 (save-excursion 822 (save-excursion
796 (delete-region rcirc-prompt-start-marker rcirc-prompt-end-marker) 823 (delete-region rcirc-prompt-start-marker rcirc-prompt-end-marker)
@@ -1079,9 +1106,7 @@ is found by looking up RESPONSE in `rcirc-response-formats'."
1079 "%") 1106 "%")
1080 ((or (eq key ?n) (eq key ?N)) 1107 ((or (eq key ?n) (eq key ?N))
1081 ;; %n/%N -- nick 1108 ;; %n/%N -- nick
1082 (let ((nick (concat (if (string= (with-rcirc-process-buffer 1109 (let ((nick (concat (if (string= (rcirc-server-name process)
1083 process
1084 rcirc-server)
1085 sender) 1110 sender)
1086 "" 1111 ""
1087 sender) 1112 sender)
@@ -1302,19 +1327,15 @@ record activity."
1302 (rcirc-cmd-join channel process))))) 1327 (rcirc-cmd-join channel process)))))
1303 1328
1304;;; nick management 1329;;; nick management
1330(defvar rcirc-nick-prefix-chars "~&@%+")
1305(defun rcirc-user-nick (user) 1331(defun rcirc-user-nick (user)
1306 "Return the nick from USER. Remove any non-nick junk." 1332 "Return the nick from USER. Remove any non-nick junk."
1307 (save-match-data 1333 (save-match-data
1308 (if (string-match "^[@%+]?\\([^! ]+\\)!?" (or user "")) 1334 (if (string-match (concat "^[" rcirc-nick-prefix-chars
1335 "]?\\([^! ]+\\)!?") (or user ""))
1309 (match-string 1 user) 1336 (match-string 1 user)
1310 user))) 1337 user)))
1311 1338
1312(defun rcirc-user-non-nick (user)
1313 "Return the non-nick portion of USER."
1314 (if (string-match "^[@+]?[^! ]+!?\\(.*\\)" (or user ""))
1315 (match-string 1 user)
1316 user))
1317
1318(defun rcirc-nick-channels (process nick) 1339(defun rcirc-nick-channels (process nick)
1319 "Return list of channels for NICK." 1340 "Return list of channels for NICK."
1320 (with-rcirc-process-buffer process 1341 (with-rcirc-process-buffer process
@@ -2009,7 +2030,9 @@ in this buffer.")
2009 (rcirc-handler-generic process "001" sender args text) 2030 (rcirc-handler-generic process "001" sender args text)
2010 ;; set the real server name 2031 ;; set the real server name
2011 (with-rcirc-process-buffer process 2032 (with-rcirc-process-buffer process
2012 (setq rcirc-server sender) 2033 (setq rcirc-connecting nil)
2034 (rcirc-reschedule-timeout process)
2035 (setq rcirc-server-name sender)
2013 (setq rcirc-nick (car args)) 2036 (setq rcirc-nick (car args))
2014 (rcirc-update-prompt) 2037 (rcirc-update-prompt)
2015 (when rcirc-auto-authenticate-flag (rcirc-authenticate)) 2038 (when rcirc-auto-authenticate-flag (rcirc-authenticate))
@@ -2419,7 +2442,8 @@ Passwords are stored in `rcirc-authinfo' (which see)."
2419 :group 'rcirc-faces) 2442 :group 'rcirc-faces)
2420 2443
2421(defface rcirc-track-nick 2444(defface rcirc-track-nick
2422 '((t (:inverse-video t))) 2445 '((((type tty)) (:inherit default))
2446 (t (:inverse-video t)))
2423 "The face used in the mode-line when your nick is mentioned." 2447 "The face used in the mode-line when your nick is mentioned."
2424 :group 'rcirc-faces) 2448 :group 'rcirc-faces)
2425 2449
diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el
index dfe6216043e..5d5d441193d 100644
--- a/lisp/net/tramp-smb.el
+++ b/lisp/net/tramp-smb.el
@@ -384,7 +384,7 @@ KEEP-DATE is not handled in case NEWNAME resides on an SMB server."
384 (save-excursion 384 (save-excursion
385 (let ((share (tramp-smb-get-share localname)) 385 (let ((share (tramp-smb-get-share localname))
386 (file (tramp-smb-get-localname localname t)) 386 (file (tramp-smb-get-localname localname t))
387 (tmpfil (tramp-make-temp-file))) 387 (tmpfil (tramp-make-temp-file filename)))
388 (unless (file-exists-p filename) 388 (unless (file-exists-p filename)
389 (error "Cannot make local copy of non-existing file `%s'" filename)) 389 (error "Cannot make local copy of non-existing file `%s'" filename))
390 (tramp-message-for-buffer 390 (tramp-message-for-buffer
@@ -595,7 +595,7 @@ Catches errors for shares like \"C$/\", which are common in Microsoft Windows."
595 (curbuf (current-buffer)) 595 (curbuf (current-buffer))
596 tmpfil) 596 tmpfil)
597 ;; Write region into a tmp file. 597 ;; Write region into a tmp file.
598 (setq tmpfil (tramp-make-temp-file)) 598 (setq tmpfil (tramp-make-temp-file filename))
599 ;; We say `no-message' here because we don't want the visited file 599 ;; We say `no-message' here because we don't want the visited file
600 ;; modtime data to be clobbered from the temp file. We call 600 ;; modtime data to be clobbered from the temp file. We call
601 ;; `set-visited-file-modtime' ourselves later on. 601 ;; `set-visited-file-modtime' ourselves later on.
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 602c6d25eaa..7ff9b2d956b 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -3771,10 +3771,12 @@ This will break if COMMAND prints a newline, followed by the value of
3771 3771
3772;; File Editing. 3772;; File Editing.
3773 3773
3774(defsubst tramp-make-temp-file () 3774(defsubst tramp-make-temp-file (filename)
3775 (funcall (if (fboundp 'make-temp-file) 'make-temp-file 'make-temp-name) 3775 (concat
3776 (expand-file-name tramp-temp-name-prefix 3776 (funcall (if (fboundp 'make-temp-file) 'make-temp-file 'make-temp-name)
3777 (tramp-temporary-file-directory)))) 3777 (expand-file-name tramp-temp-name-prefix
3778 (tramp-temporary-file-directory)))
3779 (file-name-extension filename t)))
3778 3780
3779(defun tramp-handle-file-local-copy (filename) 3781(defun tramp-handle-file-local-copy (filename)
3780 "Like `file-local-copy' for tramp files." 3782 "Like `file-local-copy' for tramp files."
@@ -3794,7 +3796,7 @@ This will break if COMMAND prints a newline, followed by the value of
3794 (unless (file-exists-p filename) 3796 (unless (file-exists-p filename)
3795 (error "Cannot make local copy of non-existing file `%s'" 3797 (error "Cannot make local copy of non-existing file `%s'"
3796 filename)) 3798 filename))
3797 (setq tmpfil (tramp-make-temp-file)) 3799 (setq tmpfil (tramp-make-temp-file filename))
3798 3800
3799 (cond ((tramp-method-out-of-band-p multi-method method user host) 3801 (cond ((tramp-method-out-of-band-p multi-method method user host)
3800 ;; `copy-file' handles out-of-band methods 3802 ;; `copy-file' handles out-of-band methods
@@ -3846,7 +3848,7 @@ This will break if COMMAND prints a newline, followed by the value of
3846 (kill-buffer tmpbuf)) 3848 (kill-buffer tmpbuf))
3847 ;; If tramp-decoding-function is not defined for this 3849 ;; If tramp-decoding-function is not defined for this
3848 ;; method, we invoke tramp-decoding-command instead. 3850 ;; method, we invoke tramp-decoding-command instead.
3849 (let ((tmpfil2 (tramp-make-temp-file))) 3851 (let ((tmpfil2 (tramp-make-temp-file filename)))
3850 (write-region (point-min) (point-max) tmpfil2) 3852 (write-region (point-min) (point-max) tmpfil2)
3851 (tramp-message 3853 (tramp-message
3852 6 "Decoding remote file %s with command %s..." 3854 6 "Decoding remote file %s with command %s..."
@@ -4053,7 +4055,7 @@ Returns a file name in `tramp-auto-save-directory' for autosaving this file."
4053 ;; Write region into a tmp file. This isn't really needed if we 4055 ;; Write region into a tmp file. This isn't really needed if we
4054 ;; use an encoding function, but currently we use it always 4056 ;; use an encoding function, but currently we use it always
4055 ;; because this makes the logic simpler. 4057 ;; because this makes the logic simpler.
4056 (setq tmpfil (tramp-make-temp-file)) 4058 (setq tmpfil (tramp-make-temp-file filename))
4057 ;; Set current buffer. If connection wasn't open, `file-modes' has 4059 ;; Set current buffer. If connection wasn't open, `file-modes' has
4058 ;; changed it accidently. 4060 ;; changed it accidently.
4059 (set-buffer curbuf) 4061 (set-buffer curbuf)
diff --git a/lisp/pcomplete.el b/lisp/pcomplete.el
index 1ca617a08a5..c4840059f64 100644
--- a/lisp/pcomplete.el
+++ b/lisp/pcomplete.el
@@ -974,18 +974,20 @@ Typing SPC flushes the help buffer."
974 (while (with-current-buffer (get-buffer "*Completions*") 974 (while (with-current-buffer (get-buffer "*Completions*")
975 (setq event (pcomplete-read-event))) 975 (setq event (pcomplete-read-event)))
976 (cond 976 (cond
977 ((event-matches-key-specifier-p event ? ) 977 ((event-matches-key-specifier-p event ?\s)
978 (set-window-configuration pcomplete-last-window-config) 978 (set-window-configuration pcomplete-last-window-config)
979 (setq pcomplete-last-window-config nil) 979 (setq pcomplete-last-window-config nil)
980 (throw 'done nil)) 980 (throw 'done nil))
981 ((or (event-matches-key-specifier-p event 'tab) 981 ((or (event-matches-key-specifier-p event 'tab)
982 ;; Needed on a terminal 982 ;; Needed on a terminal
983 (event-matches-key-specifier-p event 9)) 983 (event-matches-key-specifier-p event 9))
984 (save-selected-window 984 (let ((win (or (get-buffer-window "*Completions*" 0)
985 (select-window (get-buffer-window "*Completions*")) 985 (display-buffer "*Completions*"
986 (if (pos-visible-in-window-p (point-max)) 986 'not-this-window))))
987 (goto-char (point-min)) 987 (with-selected-window win
988 (scroll-up))) 988 (if (pos-visible-in-window-p (point-max))
989 (goto-char (point-min))
990 (scroll-up))))
989 (message "")) 991 (message ""))
990 (t 992 (t
991 (setq unread-command-events (list event)) 993 (setq unread-command-events (list event))
diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el
index f69382c9d70..a901ee07454 100644
--- a/lisp/progmodes/cc-engine.el
+++ b/lisp/progmodes/cc-engine.el
@@ -1912,6 +1912,26 @@ comment at the start of cc-engine.el for more info."
1912 ))) 1912 )))
1913 1913
1914 1914
1915;; Other whitespace tools
1916(defun c-partial-ws-p (beg end)
1917 ;; Is the region (beg end) WS, and is there WS (or BOB/EOB) next to the
1918 ;; region? This is a "heuristic" function. .....
1919 ;;
1920 ;; The motivation for the second bit is to check whether the removal of this
1921 ;; space is to check whether removing this region would coalesce two
1922 ;; symbols.
1923 ;;
1924 ;; FIXME!!! This function doesn't check virtual semicolons in any way. Be
1925 ;; careful about using this function for, e.g. AWK. (2007/3/7)
1926 (save-excursion
1927 (let ((end+1 (min (1+ end) (point-max))))
1928 (or (progn (goto-char (max (point-min) (1- beg)))
1929 (c-skip-ws-forward end)
1930 (eq (point) end))
1931 (progn (goto-char beg)
1932 (c-skip-ws-forward end+1)
1933 (eq (point) end+1))))))
1934
1915;; A system for finding noteworthy parens before the point. 1935;; A system for finding noteworthy parens before the point.
1916 1936
1917(defvar c-state-cache nil) 1937(defvar c-state-cache nil)
@@ -2491,24 +2511,25 @@ comment at the start of cc-engine.el for more info."
2491 ;; Move to the beginning of the current token. Do not move if not 2511 ;; Move to the beginning of the current token. Do not move if not
2492 ;; in the middle of one. BACK-LIMIT may be used to bound the 2512 ;; in the middle of one. BACK-LIMIT may be used to bound the
2493 ;; backward search; if given it's assumed to be at the boundary 2513 ;; backward search; if given it's assumed to be at the boundary
2494 ;; between two tokens. 2514 ;; between two tokens. Return non-nil if the point is move, nil
2515 ;; otherwise.
2495 ;; 2516 ;;
2496 ;; This function might do hidden buffer changes. 2517 ;; This function might do hidden buffer changes.
2497 (if (looking-at "\\w\\|\\s_")
2498 (skip-syntax-backward "w_" back-limit)
2499 (let ((start (point))) 2518 (let ((start (point)))
2500 (when (< (skip-syntax-backward ".()" back-limit) 0) 2519 (if (looking-at "\\w\\|\\s_")
2501 (while (let ((pos (or (and (looking-at c-nonsymbol-token-regexp) 2520 (skip-syntax-backward "w_" back-limit)
2502 (match-end 0)) 2521 (when (< (skip-syntax-backward ".()" back-limit) 0)
2503 ;; `c-nonsymbol-token-regexp' should always match 2522 (while (let ((pos (or (and (looking-at c-nonsymbol-token-regexp)
2504 ;; since we've skipped backward over punctuator 2523 (match-end 0))
2505 ;; or paren syntax, but consume one char in case 2524 ;; `c-nonsymbol-token-regexp' should always match
2506 ;; it doesn't so that we don't leave point before 2525 ;; since we've skipped backward over punctuator
2507 ;; some earlier incorrect token. 2526 ;; or paren syntax, but consume one char in case
2508 (1+ (point))))) 2527 ;; it doesn't so that we don't leave point before
2509 (if (<= pos start) 2528 ;; some earlier incorrect token.
2510 (goto-char pos)) 2529 (1+ (point)))))
2511 (< pos start))))))) 2530 (if (<= pos start)
2531 (goto-char pos))))))
2532 (< (point) start)))
2512 2533
2513(defun c-end-of-current-token (&optional back-limit) 2534(defun c-end-of-current-token (&optional back-limit)
2514 ;; Move to the end of the current token. Do not move if not in the 2535 ;; Move to the end of the current token. Do not move if not in the
@@ -3957,6 +3978,9 @@ comment at the start of cc-engine.el for more info."
3957;; file, and we only use this as a last resort in ambiguous cases (see 3978;; file, and we only use this as a last resort in ambiguous cases (see
3958;; `c-forward-decl-or-cast-1'). 3979;; `c-forward-decl-or-cast-1').
3959;; 3980;;
3981;; Not every type need be in this cache. However, things which have
3982;; ceased to be types must be removed from it.
3983;;
3960;; Template types in C++ are added here too but with the template 3984;; Template types in C++ are added here too but with the template
3961;; arglist replaced with "<>" in references or "<" for the one in the 3985;; arglist replaced with "<>" in references or "<" for the one in the
3962;; primary type. E.g. the type "Foo<A,B>::Bar<C>" is stored as 3986;; primary type. E.g. the type "Foo<A,B>::Bar<C>" is stored as
@@ -3990,6 +4014,10 @@ comment at the start of cc-engine.el for more info."
3990 (unintern (substring type 0 -1) c-found-types) 4014 (unintern (substring type 0 -1) c-found-types)
3991 (intern type c-found-types)))) 4015 (intern type c-found-types))))
3992 4016
4017(defun c-unfind-type (name)
4018 ;; Remove the "NAME" from c-found-types, if present.
4019 (unintern name c-found-types))
4020
3993(defsubst c-check-type (from to) 4021(defsubst c-check-type (from to)
3994 ;; Return non-nil if the given region contains a type in 4022 ;; Return non-nil if the given region contains a type in
3995 ;; `c-found-types'. 4023 ;; `c-found-types'.
@@ -4008,6 +4036,48 @@ comment at the start of cc-engine.el for more info."
4008 c-found-types) 4036 c-found-types)
4009 (sort type-list 'string-lessp))) 4037 (sort type-list 'string-lessp)))
4010 4038
4039(defun c-trim-found-types (beg end old-len)
4040 ;; An after change function which, in conjunction with the info in
4041 ;; c-maybe-stale-found-type (set in c-before-change), removes a type
4042 ;; from `c-found-types', should this type have become stale. For
4043 ;; example, this happens to "foo" when "foo \n bar();" becomes
4044 ;; "foo(); \n bar();". Such stale types, if not removed, foul up
4045 ;; the fontification.
4046 ;;
4047 ;; Have we, perhaps, added non-ws characters to the front/back of a found
4048 ;; type?
4049 (when (> end beg)
4050 (save-excursion
4051 (when (< end (point-max))
4052 (goto-char end)
4053 (if (and (c-beginning-of-current-token) ; only moves when we started in the middle
4054 (progn (goto-char end)
4055 (c-end-of-current-token)))
4056 (c-unfind-type (buffer-substring-no-properties
4057 end (point)))))
4058 (when (> beg (point-min))
4059 (goto-char beg)
4060 (if (and (c-end-of-current-token) ; only moves when we started in the middle
4061 (progn (goto-char beg)
4062 (c-beginning-of-current-token)))
4063 (c-unfind-type (buffer-substring-no-properties
4064 (point) beg))))))
4065
4066 (if c-maybe-stale-found-type ; e.g. (c-decl-id-start "foo" 97 107 " (* ooka) " "o")
4067 (cond
4068 ;; Changing the amount of (already existing) whitespace - don't do anything.
4069 ((and (c-partial-ws-p beg end)
4070 (or (= beg end) ; removal of WS
4071 ; (string-match "\\s *\\'" (nth 5 c-maybe-stale-found-type))
4072 (string-match "^[ \t\n\r\f\v]*$" (nth 5 c-maybe-stale-found-type)))))
4073
4074 ;; The syntactic relationship which defined a "found type" has been
4075 ;; destroyed.
4076 ((eq (car c-maybe-stale-found-type) 'c-decl-id-start)
4077 (c-unfind-type (cadr c-maybe-stale-found-type)))
4078;; ((eq (car c-maybe-stale-found-type) 'c-decl-type-start) FIXME!!!
4079 )))
4080
4011 4081
4012;; Handling of small scale constructs like types and names. 4082;; Handling of small scale constructs like types and names.
4013 4083
diff --git a/lisp/progmodes/cc-mode.el b/lisp/progmodes/cc-mode.el
index e2891bde98d..1407b497305 100644
--- a/lisp/progmodes/cc-mode.el
+++ b/lisp/progmodes/cc-mode.el
@@ -412,8 +412,143 @@ preferably use the `c-mode-menu' language constant directly."
412;; temporary changes in some font lock support modes, causing extra 412;; temporary changes in some font lock support modes, causing extra
413;; unnecessary work and font lock glitches due to interactions between 413;; unnecessary work and font lock glitches due to interactions between
414;; various text properties. 414;; various text properties.
415 415;;
416(defun c-after-change (beg end len) 416;; (2007-02-12): The macro `combine-after-change-calls' ISN'T used any
417;; more.
418
419(defun c-unfind-enclosing-token (pos)
420 ;; If POS is wholly inside a token, remove that id from
421 ;; `c-found-types', should it be present. Return t if we were in an
422 ;; id, else nil.
423 (save-excursion
424 (let ((tok-beg (progn (goto-char pos)
425 (and (c-beginning-of-current-token) (point))))
426 (tok-end (progn (goto-char pos)
427 (and (c-end-of-current-token) (point)))))
428 (when (and tok-beg tok-end)
429 (c-unfind-type (buffer-substring-no-properties tok-beg tok-end))
430 t))))
431
432(defun c-unfind-coalesced-tokens (beg end)
433 ;; unless the non-empty region (beg end) is entirely WS and there's at
434 ;; least one character of WS just before or after this region, remove
435 ;; the tokens which touch the region from `c-found-types' should they
436 ;; be present.
437 (or (c-partial-ws-p beg end)
438 (save-excursion
439 (progn
440 (goto-char beg)
441 (or (eq beg (point-min))
442 (c-skip-ws-backward (1- beg))
443 (/= (point) beg)
444 (= (c-backward-token-2) 1)
445 (c-unfind-type (buffer-substring-no-properties
446 (point) beg)))
447 (goto-char end)
448 (or (eq end (point-max))
449 (c-skip-ws-forward (1+ end))
450 (/= (point) end)
451 (progn (forward-char) (c-end-of-current-token) nil)
452 (c-unfind-type (buffer-substring-no-properties
453 end (point))))))))
454
455;; c-maybe-stale-found-type records a place near the region being
456;; changed where an element of `found-types' might become stale. It
457;; is set in c-before-change and is either nil, or has the form:
458;;
459;; (c-decl-id-start "foo" 97 107 " (* ooka) " "o"), where
460;;
461;; o - `c-decl-id-start' is the c-type text property value at buffer
462;; pos 96.
463;;
464;; o - 97 107 is the region potentially containing the stale type -
465;; this is delimited by a non-nil c-type text property at 96 and
466;; either another one or a ";", "{", or "}" at 107.
467;;
468;; o - " (* ooka) " is the (before change) buffer portion containing
469;; the suspect type (here "ooka").
470;;
471;; o - "o" is the buffer contents which is about to be deleted. This
472;; would be the empty string for an insertion.
473(defvar c-maybe-stale-found-type nil)
474(make-variable-buffer-local 'c-maybe-stale-found-type)
475
476(defun c-before-change (beg end)
477 ;; Function to be put on `before-change-function'. Currently
478 ;; (2007-02) it is used only to remove stale entries from the
479 ;; `c-found-types' cache, and to record entries which a
480 ;; `c-after-change' function might confirm as stale.
481 ;;
482 ;; Note that this function must be FAST rather than accurate. Note
483 ;; also that it only has any effect when font locking is enabled.
484 ;; We exploit this by checking for font-lock-*-face instead of doing
485 ;; rigourous syntactic analysis.
486
487 ;; If either change boundary is wholly inside an identifier, delete
488 ;; it/them from the cache. Don't worry about being inside a string
489 ;; or a comment - "wrongly" removing a symbol from `c-found-types'
490 ;; isn't critical.
491 (setq c-maybe-stale-found-type nil)
492 (save-restriction
493 (save-match-data
494 (widen)
495 (save-excursion
496 ;; Are we inserting/deleting stuff in the middle of an identifier?
497 (c-unfind-enclosing-token beg)
498 (c-unfind-enclosing-token end)
499 ;; Are we coalescing two tokens together, e.g. "fo o" -> "foo"?
500 (when (< beg end)
501 (c-unfind-coalesced-tokens beg end))
502 ;; Are we (potentially) disrupting the syntactic context which
503 ;; makes a type a type? E.g. by inserting stuff after "foo" in
504 ;; "foo bar;", or before "foo" in "typedef foo *bar;"?
505 ;;
506 ;; We search for appropriate c-type properties "near" the change.
507 ;; First, find an appropriate boundary for this property search.
508 (let (lim
509 type type-pos
510 marked-id term-pos
511 (end1
512 (if (eq (get-text-property end 'face) 'font-lock-comment-face)
513 (previous-single-property-change end 'face)
514 end)))
515 (when (>= end1 beg) ; Don't hassle about changes entirely in comments.
516 ;; Find a limit for the search for a `c-type' property
517 (while
518 (and (/= (skip-chars-backward "^;{}") 0)
519 (> (point) (point-min))
520 (memq (c-get-char-property (1- (point)) 'face)
521 '(font-lock-comment-face font-lock-string-face))))
522 (setq lim (max (point-min) (1- (point))))
523
524 ;; Look for the latest `c-type' property before end1
525 (when (and (> end1 1)
526 (setq type-pos
527 (if (get-text-property (1- end1) 'c-type)
528 end1
529 (previous-single-property-change end1 'c-type nil lim))))
530 (setq type (get-text-property (max (1- type-pos) lim) 'c-type))
531
532 (when (memq type '(c-decl-id-start c-decl-type-start))
533 ;; Get the identifier, if any, that the property is on.
534 (goto-char (1- type-pos))
535 (setq marked-id
536 (when (looking-at "\\(\\sw\\|\\s_\\)")
537 (c-beginning-of-current-token)
538 (buffer-substring-no-properties (point) type-pos)))
539
540 (goto-char end1)
541 (skip-chars-forward "^;{}") ; FIXME!!! loop for comment, maybe
542 (setq lim (point))
543 (setq term-pos
544 (or (next-single-property-change end 'c-type nil lim) lim))
545 (setq c-maybe-stale-found-type
546 (list type marked-id
547 type-pos term-pos
548 (buffer-substring-no-properties type-pos term-pos)
549 (buffer-substring-no-properties beg end)))))))))))
550
551(defun c-after-change (beg end old-len)
417 ;; Function put on `after-change-functions' to adjust various caches 552 ;; Function put on `after-change-functions' to adjust various caches
418 ;; etc. Prefer speed to finesse here, since there will be an order 553 ;; etc. Prefer speed to finesse here, since there will be an order
419 ;; of magnitude more calls to this function than any of the 554 ;; of magnitude more calls to this function than any of the
@@ -441,6 +576,7 @@ preferably use the `c-mode-menu' language constant directly."
441 (when (> beg end) 576 (when (> beg end)
442 (setq beg end))) 577 (setq beg end)))
443 578
579 (c-trim-found-types beg end old-len) ; maybe we don't need all of these.
444 (c-invalidate-sws-region-after beg end) 580 (c-invalidate-sws-region-after beg end)
445 (c-invalidate-state-cache beg) 581 (c-invalidate-state-cache beg)
446 (c-invalidate-find-decl-cache beg) 582 (c-invalidate-find-decl-cache beg)
@@ -577,6 +713,8 @@ that requires a literal mode spec at compile time."
577 713
578 ;; Install the functions that ensure that various internal caches 714 ;; Install the functions that ensure that various internal caches
579 ;; don't become invalid due to buffer changes. 715 ;; don't become invalid due to buffer changes.
716 (make-local-hook 'before-change-functions)
717 (add-hook 'before-change-functions 'c-before-change nil t)
580 (make-local-hook 'after-change-functions) 718 (make-local-hook 'after-change-functions)
581 (add-hook 'after-change-functions 'c-after-change nil t)) 719 (add-hook 'after-change-functions 'c-after-change nil t))
582 720
diff --git a/lisp/progmodes/cperl-mode.el b/lisp/progmodes/cperl-mode.el
index 29f4cc372d3..0b8287503f8 100644
--- a/lisp/progmodes/cperl-mode.el
+++ b/lisp/progmodes/cperl-mode.el
@@ -1795,8 +1795,8 @@ or as help on variables `cperl-tips', `cperl-problems',
1795 ((boundp 'compilation-error-regexp-alist);; xmeacs 19.x 1795 ((boundp 'compilation-error-regexp-alist);; xmeacs 19.x
1796 (make-local-variable 'compilation-error-regexp-alist) 1796 (make-local-variable 'compilation-error-regexp-alist)
1797 (set 'compilation-error-regexp-alist 1797 (set 'compilation-error-regexp-alist
1798 (cons cperl-compilation-error-regexp-alist 1798 (append cperl-compilation-error-regexp-alist
1799 (symbol-value 'compilation-error-regexp-alist))))) 1799 (symbol-value 'compilation-error-regexp-alist)))))
1800 (make-local-variable 'font-lock-defaults) 1800 (make-local-variable 'font-lock-defaults)
1801 (setq font-lock-defaults 1801 (setq font-lock-defaults
1802 (cond 1802 (cond
diff --git a/lisp/progmodes/grep.el b/lisp/progmodes/grep.el
index a0dd83fb974..fe2bbdec14e 100644
--- a/lisp/progmodes/grep.el
+++ b/lisp/progmodes/grep.el
@@ -157,7 +157,8 @@ The following place holders should be present in the string:
157 :type 'alist 157 :type 'alist
158 :group 'grep) 158 :group 'grep)
159 159
160(defcustom grep-find-ignored-directories '("CVS" ".svn" "{arch}" ".hg" "_darcs") 160(defcustom grep-find-ignored-directories '("CVS" ".svn" "{arch}" ".hg" "_darcs"
161 ".git" ".bzr")
161 "*List of names of sub-directories which `rgrep' shall not recurse into." 162 "*List of names of sub-directories which `rgrep' shall not recurse into."
162 :type '(repeat string) 163 :type '(repeat string)
163 :group 'grep) 164 :group 'grep)
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el
index 1662af1c924..8db7c28219e 100644
--- a/lisp/progmodes/gud.el
+++ b/lisp/progmodes/gud.el
@@ -690,7 +690,10 @@ session."
690 (buffer-name gud-comint-buffer) 690 (buffer-name gud-comint-buffer)
691 (get-buffer-process gud-comint-buffer) 691 (get-buffer-process gud-comint-buffer)
692 (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba))) 692 (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba)))
693 (error "Multiple debugging requires restarting in text command mode")) 693 (let ((same-window-regexps))
694 (display-buffer gud-comint-buffer)
695 (error
696 "Multiple debugging requires restarting in text command mode")))
694 697
695 (gud-common-init command-line nil 'gud-gdb-marker-filter) 698 (gud-common-init command-line nil 'gud-gdb-marker-filter)
696 (set (make-local-variable 'gud-minor-mode) 'gdb) 699 (set (make-local-variable 'gud-minor-mode) 'gdb)
diff --git a/lisp/progmodes/hideshow.el b/lisp/progmodes/hideshow.el
index 35ab0362613..3bc1c55cc7d 100644
--- a/lisp/progmodes/hideshow.el
+++ b/lisp/progmodes/hideshow.el
@@ -906,11 +906,18 @@ Key bindings:
906 (if hs-minor-mode 906 (if hs-minor-mode
907 (progn 907 (progn
908 (hs-grok-mode-type) 908 (hs-grok-mode-type)
909 ;; Turn off this mode if we change major modes.
910 (add-hook 'change-major-mode-hook
911 (lambda () (hs-minor-mode -1))
912 nil t)
909 (easy-menu-add hs-minor-mode-menu) 913 (easy-menu-add hs-minor-mode-menu)
910 (set (make-local-variable 'line-move-ignore-invisible) t) 914 (set (make-local-variable 'line-move-ignore-invisible) t)
911 (add-to-invisibility-spec '(hs . t))) 915 (add-to-invisibility-spec '(hs . t)))
912 (easy-menu-remove hs-minor-mode-menu) 916 (easy-menu-remove hs-minor-mode-menu)
913 (remove-from-invisibility-spec '(hs . t))) 917 (remove-from-invisibility-spec '(hs . t))
918 ;; hs-show-all does nothing unless h-m-m is non-nil.
919 (let ((hs-minor-mode t))
920 (hs-show-all)))
914 (run-hooks 'hs-minor-mode-hook)) 921 (run-hooks 'hs-minor-mode-hook))
915 922
916;;--------------------------------------------------------------------------- 923;;---------------------------------------------------------------------------
@@ -945,7 +952,7 @@ Key bindings:
945(add-to-list 'minor-mode-map-alist (cons 'hs-minor-mode hs-minor-mode-map)) 952(add-to-list 'minor-mode-map-alist (cons 'hs-minor-mode hs-minor-mode-map))
946(add-to-list 'minor-mode-alist '(hs-minor-mode " hs") t) 953(add-to-list 'minor-mode-alist '(hs-minor-mode " hs") t)
947 954
948;; make some variables permanently buffer-local 955;; make some variables buffer-local
949(dolist (var '(hs-minor-mode 956(dolist (var '(hs-minor-mode
950 hs-c-start-regexp 957 hs-c-start-regexp
951 hs-block-start-regexp 958 hs-block-start-regexp
@@ -953,8 +960,7 @@ Key bindings:
953 hs-block-end-regexp 960 hs-block-end-regexp
954 hs-forward-sexp-func 961 hs-forward-sexp-func
955 hs-adjust-block-beginning)) 962 hs-adjust-block-beginning))
956 (make-variable-buffer-local var) 963 (make-variable-buffer-local var))
957 (put var 'permanent-local t))
958 964
959;;--------------------------------------------------------------------------- 965;;---------------------------------------------------------------------------
960;; that's it 966;; that's it
diff --git a/lisp/progmodes/idlw-help.el b/lisp/progmodes/idlw-help.el
index a9ceccac6a0..030b785acdf 100644
--- a/lisp/progmodes/idlw-help.el
+++ b/lisp/progmodes/idlw-help.el
@@ -386,8 +386,7 @@ It collects and prints the diagnostics messages."
386 (< beg (- end 4)))) 386 (< beg (- end 4))))
387 module keyword cw mod1 mod2 mod3) 387 module keyword cw mod1 mod2 mod3)
388 (if (or arg 388 (if (or arg
389 (and (not st-ass) 389 (and (not classtag)
390 (not classtag)
391 (not structtag) 390 (not structtag)
392 (not (member (string-to-char this-word) '(?! ?.))))) 391 (not (member (string-to-char this-word) '(?! ?.)))))
393 ;; Need the module information 392 ;; Need the module information
@@ -408,7 +407,8 @@ It collects and prints the diagnostics messages."
408 (arg (setq mod1 module)) 407 (arg (setq mod1 module))
409 408
410 ;; A special topic -- only system help 409 ;; A special topic -- only system help
411 (st-ass (setq mod1 (list (cdr st-ass)))) 410 ((and st-ass (not (memq cw '(function-keyword procedure-keyword))))
411 (setq mod1 (list (cdr st-ass))))
412 412
413 ;; A system variable -- only system help 413 ;; A system variable -- only system help
414 ((string-match 414 ((string-match
@@ -1226,7 +1226,7 @@ Useful when source code is displayed as help. See the option
1226;; we must pass the -profile argument as well. 1226;; we must pass the -profile argument as well.
1227(defvar idlwave-help-assistant-command 1227(defvar idlwave-help-assistant-command
1228 (if (memq system-type '(ms-dos windows-nt)) 1228 (if (memq system-type '(ms-dos windows-nt))
1229 "bin/bin.x86/idl_assistant" 1229 "bin/bin.x86/idl_assistant.exe"
1230 "bin/idl_assistant") 1230 "bin/idl_assistant")
1231 "The command, rooted at idlwave-system-directory, which invokes the 1231 "The command, rooted at idlwave-system-directory, which invokes the
1232IDL assistant.") 1232IDL assistant.")
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index 38e846aa2cc..6c37fb859e1 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -1383,11 +1383,11 @@ buffer for a list of commands.)"
1383COMMAND should be a single statement." 1383COMMAND should be a single statement."
1384 ;; (assert (not (string-match "\n" command))) 1384 ;; (assert (not (string-match "\n" command)))
1385 ;; (let ((end (marker-position (process-mark (python-proc))))) 1385 ;; (let ((end (marker-position (process-mark (python-proc)))))
1386 (with-current-buffer python-buffer (goto-char (point-max))) 1386 (with-current-buffer (process-buffer (python-proc))
1387 (goto-char (point-max))
1387 (compilation-forget-errors) 1388 (compilation-forget-errors)
1388 (python-send-string command) 1389 (python-send-string command)
1389 (with-current-buffer python-buffer 1390 (setq compilation-last-buffer (current-buffer)))
1390 (setq compilation-last-buffer (current-buffer)))
1391 ;; No idea what this is for but it breaks the call to 1391 ;; No idea what this is for but it breaks the call to
1392 ;; compilation-fake-loc in python-send-region. -- Stef 1392 ;; compilation-fake-loc in python-send-region. -- Stef
1393 ;; Must wait until this has completed before re-setting variables below. 1393 ;; Must wait until this has completed before re-setting variables below.
@@ -1517,9 +1517,9 @@ See variable `python-buffer'. Starts a new process if necessary."
1517 ;; isn't one for `python-buffer'. 1517 ;; isn't one for `python-buffer'.
1518 (unless (comint-check-proc python-buffer) 1518 (unless (comint-check-proc python-buffer)
1519 (run-python nil t)) 1519 (run-python nil t))
1520 (get-buffer-process (or (if (derived-mode-p 'inferior-python-mode) 1520 (get-buffer-process (if (derived-mode-p 'inferior-python-mode)
1521 (current-buffer) 1521 (current-buffer)
1522 python-buffer)))) 1522 python-buffer)))
1523 1523
1524(defun python-set-proc () 1524(defun python-set-proc ()
1525 "Set the default value of `python-buffer' to correspond to this buffer. 1525 "Set the default value of `python-buffer' to correspond to this buffer.
diff --git a/lisp/replace.el b/lisp/replace.el
index 5b970681ea7..9e45e3479c3 100644
--- a/lisp/replace.el
+++ b/lisp/replace.el
@@ -1049,7 +1049,9 @@ See also `multi-occur'."
1049 1049
1050 (with-current-buffer occur-buf 1050 (with-current-buffer occur-buf
1051 (occur-mode) 1051 (occur-mode)
1052 (let ((inhibit-read-only t)) 1052 (let ((inhibit-read-only t)
1053 ;; Don't generate undo entries for creation of the initial contents.
1054 (buffer-undo-list t))
1053 (erase-buffer) 1055 (erase-buffer)
1054 (let ((count (occur-engine 1056 (let ((count (occur-engine
1055 regexp active-bufs occur-buf 1057 regexp active-bufs occur-buf
@@ -1086,8 +1088,6 @@ See also `multi-occur'."
1086 title-face prefix-face match-face keep-props) 1088 title-face prefix-face match-face keep-props)
1087 (with-current-buffer out-buf 1089 (with-current-buffer out-buf
1088 (let ((globalcount 0) 1090 (let ((globalcount 0)
1089 ;; Don't generate undo entries for creation of the initial contents.
1090 (buffer-undo-list t)
1091 (coding nil)) 1091 (coding nil))
1092 ;; Map over all the buffers 1092 ;; Map over all the buffers
1093 (dolist (buf buffers) 1093 (dolist (buf buffers)
diff --git a/lisp/ses.el b/lisp/ses.el
index ab92434bedb..2eec1b68e47 100644
--- a/lisp/ses.el
+++ b/lisp/ses.el
@@ -1485,7 +1485,7 @@ overlay, remove special text properties."
1485;;;###autoload 1485;;;###autoload
1486(defun ses-mode () 1486(defun ses-mode ()
1487 "Major mode for Simple Emacs Spreadsheet. 1487 "Major mode for Simple Emacs Spreadsheet.
1488See \"ses-example.ses\" (in the etc data directory) for more info. 1488See \"ses-example.ses\" (in `data-directory') for more info.
1489 1489
1490Key definitions: 1490Key definitions:
1491\\{ses-mode-map} 1491\\{ses-mode-map}
diff --git a/lisp/shell.el b/lisp/shell.el
index 008cd93c47b..a218981256a 100644
--- a/lisp/shell.el
+++ b/lisp/shell.el
@@ -336,7 +336,7 @@ Thus, this does not include the shell's current directory.")
336 "Keep track of last directory for ksh `cd -' command.") 336 "Keep track of last directory for ksh `cd -' command.")
337 337
338(defvar shell-dirstack-query nil 338(defvar shell-dirstack-query nil
339 "Command used by `shell-resync-dir' to query the shell.") 339 "Command used by `shell-resync-dirs' to query the shell.")
340 340
341(defvar shell-mode-map nil) 341(defvar shell-mode-map nil)
342(cond ((not shell-mode-map) 342(cond ((not shell-mode-map)
diff --git a/lisp/simple.el b/lisp/simple.el
index 7d7cad5854a..a426aab909b 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -758,7 +758,7 @@ Don't use this command in Lisp programs!
758 (/ size 10)) 758 (/ size 10))
759 (/ (+ 10 (* size (prefix-numeric-value arg))) 10))) 759 (/ (+ 10 (* size (prefix-numeric-value arg))) 10)))
760 (point-min)))) 760 (point-min))))
761 (if arg (forward-line 1))) 761 (if (and arg (not (consp arg))) (forward-line 1)))
762 762
763(defun end-of-buffer (&optional arg) 763(defun end-of-buffer (&optional arg)
764 "Move point to the end of the buffer; leave mark at previous position. 764 "Move point to the end of the buffer; leave mark at previous position.
@@ -785,7 +785,7 @@ Don't use this command in Lisp programs!
785 (point-max)))) 785 (point-max))))
786 ;; If we went to a place in the middle of the buffer, 786 ;; If we went to a place in the middle of the buffer,
787 ;; adjust it to the beginning of a line. 787 ;; adjust it to the beginning of a line.
788 (cond (arg (forward-line 1)) 788 (cond ((and arg (not (consp arg))) (forward-line 1))
789 ((> (point) (window-end nil t)) 789 ((> (point) (window-end nil t))
790 ;; If the end of the buffer is not already on the screen, 790 ;; If the end of the buffer is not already on the screen,
791 ;; then scroll specially to put it near, but not at, the bottom. 791 ;; then scroll specially to put it near, but not at, the bottom.
@@ -1005,6 +1005,9 @@ in *Help* buffer. See also the command `describe-char'."
1005 1005
1006(defvar read-expression-history nil) 1006(defvar read-expression-history nil)
1007 1007
1008(defvar minibuffer-completing-symbol nil
1009 "Non-nil means completing a Lisp symbol in the minibuffer.")
1010
1008(defcustom eval-expression-print-level 4 1011(defcustom eval-expression-print-level 4
1009 "Value for `print-level' while printing value in `eval-expression'. 1012 "Value for `print-level' while printing value in `eval-expression'.
1010A value of nil means no limit." 1013A value of nil means no limit."
@@ -1056,9 +1059,10 @@ the echo area.
1056If `eval-expression-debug-on-error' is non-nil, which is the default, 1059If `eval-expression-debug-on-error' is non-nil, which is the default,
1057this command arranges for all errors to enter the debugger." 1060this command arranges for all errors to enter the debugger."
1058 (interactive 1061 (interactive
1059 (list (read-from-minibuffer "Eval: " 1062 (list (let ((minibuffer-completing-symbol t))
1060 nil read-expression-map t 1063 (read-from-minibuffer "Eval: "
1061 'read-expression-history) 1064 nil read-expression-map t
1065 'read-expression-history))
1062 current-prefix-arg)) 1066 current-prefix-arg))
1063 1067
1064 (if (null eval-expression-debug-on-error) 1068 (if (null eval-expression-debug-on-error)
@@ -5088,7 +5092,8 @@ of the minibuffer before point is always the common substring.)")
5088 ;; so it will get copied into the completion list buffer. 5092 ;; so it will get copied into the completion list buffer.
5089 (if minibuffer-completing-file-name 5093 (if minibuffer-completing-file-name
5090 (with-current-buffer mainbuf 5094 (with-current-buffer mainbuf
5091 (setq default-directory (file-name-directory mbuf-contents)))) 5095 (setq default-directory
5096 (file-name-directory (expand-file-name mbuf-contents)))))
5092 (with-current-buffer standard-output 5097 (with-current-buffer standard-output
5093 (completion-list-mode) 5098 (completion-list-mode)
5094 (set (make-local-variable 'completion-reference-buffer) mainbuf) 5099 (set (make-local-variable 'completion-reference-buffer) mainbuf)
@@ -5108,6 +5113,7 @@ of the minibuffer before point is always the common substring.)")
5108 (save-excursion 5113 (save-excursion
5109 (skip-chars-backward completion-root-regexp) 5114 (skip-chars-backward completion-root-regexp)
5110 (- (point) (minibuffer-prompt-end))))) 5115 (- (point) (minibuffer-prompt-end)))))
5116 (minibuffer-completing-symbol nil)
5111 ;; Otherwise, in minibuffer, the base size is 0. 5117 ;; Otherwise, in minibuffer, the base size is 0.
5112 ((minibufferp mainbuf) 0))) 5118 ((minibufferp mainbuf) 0)))
5113 (setq common-string-length 5119 (setq common-string-length
diff --git a/lisp/smerge-mode.el b/lisp/smerge-mode.el
index bda569a1e05..8e239ab5a26 100644
--- a/lisp/smerge-mode.el
+++ b/lisp/smerge-mode.el
@@ -345,7 +345,9 @@ according to `smerge-match-conflict'.")
345 ;; during font-locking so inhibit-modification-hooks is non-nil, so we 345 ;; during font-locking so inhibit-modification-hooks is non-nil, so we
346 ;; can't just modify the buffer and expect font-lock to be triggered as in: 346 ;; can't just modify the buffer and expect font-lock to be triggered as in:
347 ;; (put-text-property beg end 'smerge-force-highlighting nil) 347 ;; (put-text-property beg end 'smerge-force-highlighting nil)
348 (remove-text-properties beg end '(fontified nil))) 348 (let ((modified (buffer-modified-p)))
349 (remove-text-properties beg end '(fontified nil))
350 (restore-buffer-modified-p modified)))
349 351
350(defun smerge-popup-context-menu (event) 352(defun smerge-popup-context-menu (event)
351 "Pop up the Smerge mode context menu under mouse." 353 "Pop up the Smerge mode context menu under mouse."
@@ -558,6 +560,8 @@ An error is raised if not inside a conflict."
558 t) 560 t)
559 (search-failed (error "Point not in conflict region"))))) 561 (search-failed (error "Point not in conflict region")))))
560 562
563(add-to-list 'debug-ignored-errors "Point not in conflict region")
564
561(defun smerge-conflict-overlay (pos) 565(defun smerge-conflict-overlay (pos)
562 "Return the conflict overlay at POS if any." 566 "Return the conflict overlay at POS if any."
563 (let ((ols (overlays-at pos)) 567 (let ((ols (overlays-at pos))
diff --git a/lisp/startup.el b/lisp/startup.el
index 4b7868e215b..ccb1d29202c 100644
--- a/lisp/startup.el
+++ b/lisp/startup.el
@@ -1143,13 +1143,13 @@ regardless of the value of this variable."
1143 ;; If there is a specific tutorial for the current language 1143 ;; If there is a specific tutorial for the current language
1144 ;; environment and it is not English, append its title. 1144 ;; environment and it is not English, append its title.
1145 (concat 1145 (concat
1146 "Emacs Tutorial\tLearn how to use Emacs efficiently" 1146 "Emacs Tutorial\t\tLearn how to use Emacs efficiently"
1147 (if (string= en tut) 1147 (if (string= en tut)
1148 "" 1148 ""
1149 (concat " (" title ")")) 1149 (concat " (" title ")"))
1150 "\n"))) 1150 "\n")))
1151 :face variable-pitch "\ 1151 :face variable-pitch "\
1152Emacs FAQ\tFrequently asked questions and answers 1152Emacs FAQ\t\tFrequently asked questions and answers
1153View Emacs Manual\tView the Emacs manual using Info 1153View Emacs Manual\tView the Emacs manual using Info
1154Absence of Warranty\tGNU Emacs comes with " 1154Absence of Warranty\tGNU Emacs comes with "
1155 :face (variable-pitch :slant oblique) 1155 :face (variable-pitch :slant oblique)
@@ -1159,12 +1159,13 @@ Absence of Warranty\tGNU Emacs comes with "
1159Copying Conditions\tConditions for redistributing and changing Emacs 1159Copying Conditions\tConditions for redistributing and changing Emacs
1160Getting New Versions\tHow to obtain the latest version of Emacs 1160Getting New Versions\tHow to obtain the latest version of Emacs
1161More Manuals / Ordering Manuals Buying printed manuals from the FSF\n") 1161More Manuals / Ordering Manuals Buying printed manuals from the FSF\n")
1162 (:face (variable-pitch :weight bold) 1162 (:face variable-pitch
1163 "To quit a partially entered command, type " 1163 "To quit a partially entered command, type "
1164 :face default 1164 :face default
1165 "Control-g" 1165 "Control-g"
1166 :face variable-pitch 1166 :face variable-pitch
1167 "." 1167 ".\n"
1168 :face (variable-pitch :weight bold)
1168 "Useful File menu items:\n" 1169 "Useful File menu items:\n"
1169 :face variable-pitch 1170 :face variable-pitch
1170 "Exit Emacs\t\t(Or type " 1171 "Exit Emacs\t\t(Or type "
@@ -1299,8 +1300,7 @@ using the mouse.\n\n")
1299 :face 'variable-pitch 1300 :face 'variable-pitch
1300 "Type " 1301 "Type "
1301 :face 'default 1302 :face 'default
1302 (substitute-command-keys 1303 "Control-l"
1303 "\\[recenter]")
1304 :face 'variable-pitch 1304 :face 'variable-pitch
1305 " to begin editing" 1305 " to begin editing"
1306 (if (equal (buffer-name fancy-splash-outer-buffer) 1306 (if (equal (buffer-name fancy-splash-outer-buffer)
diff --git a/lisp/term/x-win.el b/lisp/term/x-win.el
index fd95be90bfd..c68e655a212 100644
--- a/lisp/term/x-win.el
+++ b/lisp/term/x-win.el
@@ -2199,11 +2199,12 @@ order until succeed.")
2199;; (1) If their lengthes are different, select the longer one. This 2199;; (1) If their lengthes are different, select the longer one. This
2200;; is because an X client may just cut off unsupported characters. 2200;; is because an X client may just cut off unsupported characters.
2201;; 2201;;
2202;; (2) Otherwise, if the Nth character of CTEXT is an ASCII 2202;; (2) Otherwise, if they are different at Nth character, and that
2203;; character that is different from the Nth character of UTF8, 2203;; of UTF8 is a Latin character and that of CTEXT belongs to a CJK
2204;; select UTF8. This is because an X client may replace unsupported 2204;; character set, select UTF8. Also select UTF8 if the Nth
2205;; characters with some ASCII character (typically ` ' or `?') in 2205;; character of UTF8 is non-ASCII where as that of CTEXT is ASCII.
2206;; CTEXT. 2206;; This is because an X client may replace unsupported characters
2207;; with some ASCII character (typically ` ' or `?') in CTEXT.
2207;; 2208;;
2208;; (3) Otherwise, select CTEXT. This is because legacy charsets are 2209;; (3) Otherwise, select CTEXT. This is because legacy charsets are
2209;; better for the current Emacs, especially when the selection owner 2210;; better for the current Emacs, especially when the selection owner
@@ -2218,10 +2219,16 @@ order until succeed.")
2218 (if (/= len-utf8 len-ctext) 2219 (if (/= len-utf8 len-ctext)
2219 (if (> len-utf8 len-ctext) utf8 ctext) 2220 (if (> len-utf8 len-ctext) utf8 ctext)
2220 (let ((result (compare-strings utf8 0 len-utf8 ctext 0 len-ctext))) 2221 (let ((result (compare-strings utf8 0 len-utf8 ctext 0 len-ctext)))
2221 (if (or (eq result t) 2222 (if (eq result t)
2222 (>= (aref ctext (1- (abs result))) 128))
2223 ctext 2223 ctext
2224 utf8))))) 2224 (let ((utf8-char (aref utf8 (1- (abs result))))
2225 (ctext-char (aref ctext (1- (abs result)))))
2226 (if (or (and (aref (char-category-set utf8-char) ?l)
2227 (aref (char-category-set ctext-char) ?C))
2228 (and (>= utf8-char 128)
2229 (< ctext-char 128)))
2230 utf8
2231 ctext)))))))
2225 2232
2226;; Get a selection value of type TYPE by calling x-get-selection with 2233;; Get a selection value of type TYPE by calling x-get-selection with
2227;; an appropiate DATA-TYPE argument decidd by `x-select-request-type'. 2234;; an appropiate DATA-TYPE argument decidd by `x-select-request-type'.
diff --git a/lisp/textmodes/org.el b/lisp/textmodes/org.el
index bba5832b0e6..5ada05d1e74 100644
--- a/lisp/textmodes/org.el
+++ b/lisp/textmodes/org.el
@@ -18767,6 +18767,13 @@ because, in this case the deletion might narrow the column."
18767(put 'org-delete-char 'delete-selection 'supersede) 18767(put 'org-delete-char 'delete-selection 'supersede)
18768(put 'org-delete-backward-char 'delete-selection 'supersede) 18768(put 'org-delete-backward-char 'delete-selection 'supersede)
18769 18769
18770;; Make `flyspell-mode' delay after some commands
18771(put 'org-self-insert-command 'flyspell-delayed t)
18772(put 'orgtbl-self-insert-command 'flyspell-delayed t)
18773(put 'org-delete-char 'flyspell-delayed t)
18774(put 'org-delete-backward-char 'flyspell-delayed t)
18775
18776
18770;; How to do this: Measure non-white length of current string 18777;; How to do this: Measure non-white length of current string
18771;; If equal to column width, we should realign. 18778;; If equal to column width, we should realign.
18772 18779
diff --git a/lisp/type-break.el b/lisp/type-break.el
index 361670dbe6c..e065e32df54 100644
--- a/lisp/type-break.el
+++ b/lisp/type-break.el
@@ -562,9 +562,12 @@ Returns nil if the file is missing or if the time breaks with the
562 (if file 562 (if file
563 (timep ;; returns expected format, else nil 563 (timep ;; returns expected format, else nil
564 (with-current-buffer (find-file-noselect file 'nowarn) 564 (with-current-buffer (find-file-noselect file 'nowarn)
565 (save-excursion 565 (condition-case nil
566 (goto-char (point-min)) 566 (save-excursion
567 (read (current-buffer)))))))) 567 (goto-char (point-min))
568 (read (current-buffer)))
569 (end-of-file
570 (error "End of file in `%s'" file))))))))
568 571
569(defun type-break-get-previous-count () 572(defun type-break-get-previous-count ()
570 "Get previous keystroke count from `type-break-file-name'. 573 "Get previous keystroke count from `type-break-file-name'.
@@ -576,10 +579,13 @@ integer."
576 (setq file 579 (setq file
577 (with-current-buffer 580 (with-current-buffer
578 (find-file-noselect file 'nowarn) 581 (find-file-noselect file 'nowarn)
579 (save-excursion 582 (condition-case nil
580 (goto-char (point-min)) 583 (save-excursion
581 (forward-line 1) 584 (goto-char (point-min))
582 (read (current-buffer))))))) 585 (forward-line 1)
586 (read (current-buffer)))
587 (end-of-file
588 (error "End of file in `%s'" file)))))))
583 file 589 file
584 0))) 590 0)))
585 591
diff --git a/lisp/woman.el b/lisp/woman.el
index 728bf347d9f..9c73a365b61 100644
--- a/lisp/woman.el
+++ b/lisp/woman.el
@@ -3284,7 +3284,7 @@ If optional arg CONCAT is non-nil then join arguments."
3284 ;; Find font requests, paragraph macros and font escapes: 3284 ;; Find font requests, paragraph macros and font escapes:
3285 (re-search-forward 3285 (re-search-forward
3286 "^[.'][ \t]*\\(\\(\\ft\\)\\|\\(.P\\)\\)\\|\\(\\\\f\\)" nil 1) 3286 "^[.'][ \t]*\\(\\(\\ft\\)\\|\\(.P\\)\\)\\|\\(\\\\f\\)" nil 1)
3287 (let (font beg notfont) 3287 (let (font beg notfont fescape)
3288 ;; Match font indicator and leave point at end of sequence: 3288 ;; Match font indicator and leave point at end of sequence:
3289 (cond ((match-string 2) 3289 (cond ((match-string 2)
3290 ;; .ft request found 3290 ;; .ft request found
@@ -3299,7 +3299,8 @@ If optional arg CONCAT is non-nil then join arguments."
3299 (setq font 'default)) 3299 (setq font 'default))
3300 ((match-string 4) 3300 ((match-string 4)
3301 ;; \f escape found 3301 ;; \f escape found
3302 (setq beg (match-beginning 0)) 3302 (setq beg (match-beginning 0)
3303 fescape t)
3303 (woman-match-name)) 3304 (woman-match-name))
3304 (t (setq notfont t))) 3305 (t (setq notfont t)))
3305 (if notfont 3306 (if notfont
@@ -3321,6 +3322,13 @@ If optional arg CONCAT is non-nil then join arguments."
3321 ;; Delete font control line or escape sequence: 3322 ;; Delete font control line or escape sequence:
3322 (cond (beg (delete-region beg (point)) 3323 (cond (beg (delete-region beg (point))
3323 (if (eq font 'previous) (setq font previous-font)))) 3324 (if (eq font 'previous) (setq font previous-font))))
3325 ;; Deal with things like \fB.cvsrc\fR at the start of a line.
3326 ;; After removing the font control codes, this would
3327 ;; otherwise match woman-request-regexp. The "\\&" which is
3328 ;; inserted to prevent this is removed by woman2-process-escapes.
3329 (and fescape
3330 (looking-at "^\\.")
3331 (insert "\\&"))
3324 (woman-set-face previous-pos (point) current-font) 3332 (woman-set-face previous-pos (point) current-font)
3325 (if beg 3333 (if beg
3326 ;; Explicit font control 3334 ;; Explicit font control
@@ -3665,39 +3673,39 @@ expression in parentheses. Leaves point after the value."
3665 (unwind-protect 3673 (unwind-protect
3666 (while 3674 (while
3667 ;; Find next control line: 3675 ;; Find next control line:
3668 (re-search-forward woman-request-regexp nil t) 3676 (re-search-forward woman-request-regexp nil t)
3669 (cond 3677 (cond
3670 ;; Construct woman function to call: 3678 ;; Construct woman function to call:
3671 ((setq fn (intern-soft 3679 ((setq fn (intern-soft
3672 (concat "woman2-" 3680 (concat "woman2-"
3673 (setq request (match-string 1))))) 3681 (setq request (match-string 1)))))
3674 ;; Delete request or macro name: 3682 ;; Delete request or macro name:
3675 (woman-delete-match 0)) 3683 (woman-delete-match 0))
3676 ;; Unrecognised request: 3684 ;; Unrecognised request:
3677 ((prog1 nil 3685 ((prog1 nil
3678 ;; (WoMan-warn ".%s request ignored!" request) 3686 ;; (WoMan-warn ".%s request ignored!" request)
3679 (WoMan-warn-ignored request "ignored!") 3687 (WoMan-warn-ignored request "ignored!")
3680 ;; (setq fn 'woman2-LP) 3688 ;; (setq fn 'woman2-LP)
3681 ;; AVOID LEAVING A BLANK LINE! 3689 ;; AVOID LEAVING A BLANK LINE!
3682 ;; (setq fn 'woman2-format-paragraphs) 3690 ;; (setq fn 'woman2-format-paragraphs)
3683 )) 3691 ))
3684 ;; .LP assumes it is at eol and leaves a (blank) line, 3692 ;; .LP assumes it is at eol and leaves a (blank) line,
3685 ;; so leave point at end of line before paragraph: 3693 ;; so leave point at end of line before paragraph:
3686 ((or (looking-at "[ \t]*$") ; no argument 3694 ((or (looking-at "[ \t]*$") ; no argument
3687 woman-ignore) ; ignore all 3695 woman-ignore) ; ignore all
3688 ;; (beginning-of-line) (kill-line) 3696 ;; (beginning-of-line) (kill-line)
3689 ;; AVOID LEAVING A BLANK LINE! 3697 ;; AVOID LEAVING A BLANK LINE!
3690 (beginning-of-line) (woman-delete-line 1)) 3698 (beginning-of-line) (woman-delete-line 1))
3691 (t (end-of-line) (insert ?\n)) 3699 (t (end-of-line) (insert ?\n))
3692 ) 3700 )
3693 (if (not (or fn 3701 (if (not (or fn
3694 (and (not (memq (following-char) '(?. ?'))) 3702 (and (not (memq (following-char) '(?. ?')))
3695 (setq fn 'woman2-format-paragraphs)))) 3703 (setq fn 'woman2-format-paragraphs))))
3696 () 3704 ()
3697 ;; Find next control line: 3705 ;; Find next control line:
3698 (set-marker to (woman-find-next-control-line)) 3706 (set-marker to (woman-find-next-control-line))
3699 ;; Call the appropriate function: 3707 ;; Call the appropriate function:
3700 (funcall fn to))) 3708 (funcall fn to)))
3701 (if (not (eobp)) ; This should not happen, but ... 3709 (if (not (eobp)) ; This should not happen, but ...
3702 (woman2-format-paragraphs (copy-marker (point-max) t) 3710 (woman2-format-paragraphs (copy-marker (point-max) t)
3703 woman-left-margin)) 3711 woman-left-margin))
@@ -4193,7 +4201,27 @@ If tag doesn't fit, place it on a separate line."
4193 (let ((i (woman2-get-prevailing-indent 'leave-eol))) 4201 (let ((i (woman2-get-prevailing-indent 'leave-eol)))
4194 (beginning-of-line) 4202 (beginning-of-line)
4195 (woman-leave-blank-lines) ; must be here, 4203 (woman-leave-blank-lines) ; must be here,
4196 (woman2-tagged-paragraph to i)))) 4204 ;;
4205 ;; The cvs.1 manpage contains some (possibly buggy) syntax that
4206 ;; confuses woman, although the man program displays it ok.
4207 ;; Most problems are caused by IP followed by another request on
4208 ;; the next line. Without the following hack, the second request
4209 ;; gets displayed raw in the output. Note that
4210 ;; woman2-tagged-paragraph also contains a hack for similar
4211 ;; issues (eg IP followed by SP).
4212 ;;
4213 ;; i) For IP followed by one or more IPs, we ignore all but the
4214 ;; last (mimic man). The hack in w-t-p would only work for two
4215 ;; consecutive IPs, and would use the first.
4216 ;; ii) For IP followed by SP followed by one or more requests,
4217 ;; do nothing. At least in cvs.1, there is usually another IP in
4218 ;; there somewhere.
4219 (unless (or (looking-at "^\\.IP")
4220 (and (looking-at "^\\.sp")
4221 (save-excursion
4222 (and (zerop (forward-line 1))
4223 (looking-at woman-request-regexp)))))
4224 (woman2-tagged-paragraph to i)))))
4197 4225
4198(defun woman-find-next-control-line-carefully () 4226(defun woman-find-next-control-line-carefully ()
4199 "Find and return start of next control line, even if already there!" 4227 "Find and return start of next control line, even if already there!"
@@ -4208,17 +4236,21 @@ Format paragraphs upto TO. Set prevailing indent to I."
4208 (if (not (looking-at "\\s *$")) ; non-empty tag 4236 (if (not (looking-at "\\s *$")) ; non-empty tag
4209 (setq woman-leave-blank-lines nil)) 4237 (setq woman-leave-blank-lines nil))
4210 4238
4211 ;; Temporary hack for bash.1 and groff_mmse.7 until code is revised 4239 ;; Temporary hack for bash.1, cvs.1 and groff_mmse.7 until code is revised
4212 ;; to process all requests uniformly: 4240 ;; to process all requests uniformly.
4213 (cond ((and (= (point) to) (looking-at "^[.'][ \t]*\\(PD\\|br\\|ta\\) *")) 4241 ;; This hack deals with IP requests followed by other requests (eg
4214 (if (string= (match-string 1) "br") 4242 ;; SP) on the very next line. We skip over the SP, otherwise it gets
4215 (woman-delete-line 1) 4243 ;; inserted raw in the rendered output.
4216 (woman-delete-match 0) 4244 (cond ((and (= (point) to)
4217 (if (string= (match-string 1) "ta") ; for GetInt.3 4245 (looking-at "^[.'][ \t]*\\(PD\\|br\\|ta\\|sp\\) *"))
4218 (woman2-ta to) 4246 (if (member (match-string 1) '("br" "sp"))
4219 (woman-set-interparagraph-distance))) 4247 (woman-delete-line 1)
4220 (set-marker to (woman-find-next-control-line-carefully)) 4248 (woman-delete-match 0)
4221 )) 4249 (if (string= (match-string 1) "ta") ; for GetInt.3
4250 (woman2-ta to)
4251 (woman-set-interparagraph-distance)))
4252 (set-marker to (woman-find-next-control-line-carefully))
4253 ))
4222 4254
4223 (let ((tag (point))) 4255 (let ((tag (point)))
4224 (woman-reset-nospace) 4256 (woman-reset-nospace)
@@ -4274,6 +4306,7 @@ Delete line from point and eol unless LEAVE-EOL is non-nil."
4274 (let ((i (woman-get-numeric-arg))) 4306 (let ((i (woman-get-numeric-arg)))
4275 (woman-delete-line) (or leave-eol (delete-char 1)) 4307 (woman-delete-line) (or leave-eol (delete-char 1))
4276 ;; i = 0 if the argument was not a number 4308 ;; i = 0 if the argument was not a number
4309 ;; FIXME should this be >= 0? How else to reset to 0 indent?
4277 (if (> i 0) (setq woman-prevailing-indent i)))) 4310 (if (> i 0) (setq woman-prevailing-indent i))))
4278 woman-prevailing-indent) 4311 woman-prevailing-indent)
4279 4312
diff --git a/lispref/ChangeLog b/lispref/ChangeLog
index bfae9080054..70a9843a3e1 100644
--- a/lispref/ChangeLog
+++ b/lispref/ChangeLog
@@ -1,3 +1,31 @@
12007-03-05 Richard Stallman <rms@gnu.org>
2
3 * variables.texi (File Local Variables): Update
4 enable-local-variables values.
5
62007-03-04 Richard Stallman <rms@gnu.org>
7
8 * syntax.texi (Control Parsing): Minor clarification.
9
10 * strings.texi (Formatting Strings): Clarify width, precision, flags.
11
12 * sequences.texi (Sequence Functions): Move string-bytes away,
13 add xref.
14
15 * nonascii.texi (Text Representations): Move string-bytes here.
16
17 * modes.texi (Major Mode Conventions): Fundamental mode is exception.
18
19 * minibuf.texi (Basic Completion): Minor clarification.
20
21 * markers.texi (The Mark): Clarify existence vs activation of mark.
22 Other cleanup.
23
24 * display.texi (Finding Overlays): Write better example.
25
26 * compile.texi (Eval During Compile): Clarify putting macros
27 in eval-when-compile.
28
12007-02-25 Vinicius Jose Latorre <viniciusjl@ig.com.br> 292007-02-25 Vinicius Jose Latorre <viniciusjl@ig.com.br>
2 30
3 * loading.texi (How Programs Do Loading): Fix anchor position at 31 * loading.texi (How Programs Do Loading): Fix anchor position at
diff --git a/lispref/compile.texi b/lispref/compile.texi
index 0d63887e1cc..4ed0eb8c1bf 100644
--- a/lispref/compile.texi
+++ b/lispref/compile.texi
@@ -454,11 +454,10 @@ used to load it for compiling, but not executing. For example,
454 (require 'my-macro-package)) ;; only macros needed from this 454 (require 'my-macro-package)) ;; only macros needed from this
455@end lisp 455@end lisp
456 456
457The same sort of thing goes for macros or @code{defalias}es defined 457The same sort of thing goes for macros and @code{defsubst} functions
458locally and only for use within the file. They can be defined while 458defined locally and only for use within the file. They are needed for
459compiling, but then not needed when executing. This is good for code 459compiling the file, but in most cases they are not needed for
460that's only a fallback for compatibility with other versions of Emacs. 460execution of the compiled file. For example,
461For example.
462 461
463@lisp 462@lisp
464(eval-when-compile 463(eval-when-compile
@@ -467,6 +466,10 @@ For example.
467 (compatibility code)))) 466 (compatibility code))))
468@end lisp 467@end lisp
469 468
469@noindent
470This is often good for code that's only a fallback for compatibility
471with other versions of Emacs.
472
470@strong{Common Lisp Note:} At top level, @code{eval-when-compile} is analogous to the Common 473@strong{Common Lisp Note:} At top level, @code{eval-when-compile} is analogous to the Common
471Lisp idiom @code{(eval-when (compile eval) @dots{})}. Elsewhere, the 474Lisp idiom @code{(eval-when (compile eval) @dots{})}. Elsewhere, the
472Common Lisp @samp{#.} reader macro (but not when interpreting) is closer 475Common Lisp @samp{#.} reader macro (but not when interpreting) is closer
diff --git a/lispref/display.texi b/lispref/display.texi
index 02491c422d9..f485829725a 100644
--- a/lispref/display.texi
+++ b/lispref/display.texi
@@ -1527,26 +1527,25 @@ end of an overlay, before @var{pos}. If there is none, it returns
1527@code{(point-min)}. 1527@code{(point-min)}.
1528@end defun 1528@end defun
1529 1529
1530 Here's a function which uses @code{next-overlay-change} to search 1530 As an example, here's a simplified (and inefficient) version of the
1531for the next character which gets a given property @code{prop} from 1531primitive function @code{next-single-char-property-change}
1532either its overlays or its text properties (@pxref{Property Search}): 1532(@pxref{Property Search}). It searches forward from position
1533@var{pos} for the next position where the value of a given property
1534@code{prop}, as obtained from either overlays or text properties,
1535changes.
1533 1536
1534@smallexample 1537@smallexample
1535(defun find-overlay-prop (prop) 1538(defun next-single-char-property-change (position prop)
1536 (save-excursion 1539 (save-excursion
1537 (while (and (not (eobp)) 1540 (goto-char position)
1538 (not (get-char-property (point) prop))) 1541 (let ((propval (get-char-property (point) prop)))
1539 (goto-char (min (next-overlay-change (point)) 1542 (while (and (not (eobp))
1540 (next-single-property-change (point) prop)))) 1543 (eq (get-char-property (point) prop) propval))
1544 (goto-char (min (next-overlay-change (point))
1545 (next-single-property-change (point) prop)))))
1541 (point))) 1546 (point)))
1542@end smallexample 1547@end smallexample
1543 1548
1544 Now you can search for a @code{happy} property like this:
1545
1546@smallexample
1547(find-overlay-prop 'happy)
1548@end smallexample
1549
1550@node Width 1549@node Width
1551@section Width 1550@section Width
1552 1551
diff --git a/lispref/markers.texi b/lispref/markers.texi
index e8e04479758..b955538fe03 100644
--- a/lispref/markers.texi
+++ b/lispref/markers.texi
@@ -410,10 +410,10 @@ values of point and the mark as arguments to the command in an
410interactive call, but permits other Lisp programs to specify arguments 410interactive call, but permits other Lisp programs to specify arguments
411explicitly. @xref{Interactive Codes}. 411explicitly. @xref{Interactive Codes}.
412 412
413 Each buffer has its own value of the mark that is independent of the 413 Each buffer has a marker which represents the value of the mark in
414value of the mark in other buffers. When a buffer is created, the mark 414that buffer, independent of any other buffer. When a buffer is newly
415exists but does not point anywhere. We consider this state as ``the 415created, this marker exists but does not point anywhere. That means
416absence of a mark in that buffer.'' 416the mark ``doesn't exist'' in that buffer as yet.
417 417
418 Once the mark ``exists'' in a buffer, it normally never ceases to 418 Once the mark ``exists'' in a buffer, it normally never ceases to
419exist. However, it may become @dfn{inactive}, if Transient Mark mode is 419exist. However, it may become @dfn{inactive}, if Transient Mark mode is
@@ -452,10 +452,10 @@ inactivity of the mark, and returns the mark position anyway (or
452@end defun 452@end defun
453 453
454@defun mark-marker 454@defun mark-marker
455This function returns the current buffer's mark. This is the very marker 455This function returns the marker that represents the current buffer's
456that records the mark location inside Emacs, not a copy. Therefore, 456mark. It is not a copy, it is the marker used internally. Therefore,
457changing this marker's position will directly affect the position of the mark. 457changing this marker's position will directly affect the buffer's
458Don't do it unless that is the effect you want. 458mark. Don't do that unless that is the effect you want.
459 459
460@example 460@example
461@group 461@group
@@ -472,10 +472,10 @@ Don't do it unless that is the effect you want.
472@end group 472@end group
473@end example 473@end example
474 474
475Like any marker, this marker can be set to point at any buffer you like. 475Like any marker, this marker can be set to point at any buffer you
476We don't recommend that you make it point at any buffer other than the 476like. If you make it point at any buffer other than the one of which
477one of which it is the mark. If you do, it will yield perfectly 477it is the mark, it will yield perfectly consistent, but rather odd,
478consistent, but rather odd, results. 478results. We recommend that you not do it!
479@end defun 479@end defun
480 480
481@ignore 481@ignore
diff --git a/lispref/minibuf.texi b/lispref/minibuf.texi
index de81e94e54e..1abbb148b85 100644
--- a/lispref/minibuf.texi
+++ b/lispref/minibuf.texi
@@ -629,12 +629,11 @@ match.
629If @var{collection} is an alist (@pxref{Association Lists}), the 629If @var{collection} is an alist (@pxref{Association Lists}), the
630permissible completions are the elements of the alist that are either 630permissible completions are the elements of the alist that are either
631strings, symbols, or conses whose @sc{car} is a string or symbol. 631strings, symbols, or conses whose @sc{car} is a string or symbol.
632Symbols are converted to strings using @code{symbol-name}. 632Symbols are converted to strings using @code{symbol-name}. Other
633Other elements of the alist are ignored. (Remember that in Emacs Lisp, 633elements of the alist are ignored. (Remember that in Emacs Lisp, the
634the elements of alists do not @emph{have} to be conses.) As all 634elements of alists do not @emph{have} to be conses.) In particular, a
635elements of the alist can be strings, this case actually includes 635list of strings or symbols is allowed, even though we usually do not
636lists of strings or symbols, even though we usually do not think of 636think of such lists as alists.
637such lists as alists.
638 637
639@cindex obarray in completion 638@cindex obarray in completion
640If @var{collection} is an obarray (@pxref{Creating Symbols}), the names 639If @var{collection} is an obarray (@pxref{Creating Symbols}), the names
diff --git a/lispref/modes.texi b/lispref/modes.texi
index cfa9e90d793..6eba02d5a0b 100644
--- a/lispref/modes.texi
+++ b/lispref/modes.texi
@@ -256,7 +256,9 @@ Fundamental mode. Rmail mode is a complicated and specialized mode.
256 The code for existing major modes follows various coding conventions, 256 The code for existing major modes follows various coding conventions,
257including conventions for local keymap and syntax table initialization, 257including conventions for local keymap and syntax table initialization,
258global names, and hooks. Please follow these conventions when you 258global names, and hooks. Please follow these conventions when you
259define a new major mode. 259define a new major mode. (Fundamental mode is an exception to many
260of these conventions, because its definition is to present the global
261state of Emacs.)
260 262
261 This list of conventions is only partial, because each major mode 263 This list of conventions is only partial, because each major mode
262should aim for consistency in general with other Emacs major modes. 264should aim for consistency in general with other Emacs major modes.
diff --git a/lispref/nonascii.texi b/lispref/nonascii.texi
index d733cc80860..3661079c56e 100644
--- a/lispref/nonascii.texi
+++ b/lispref/nonascii.texi
@@ -111,6 +111,13 @@ out of range, the value is @code{nil}.
111Return @code{t} if @var{string} is a multibyte string. 111Return @code{t} if @var{string} is a multibyte string.
112@end defun 112@end defun
113 113
114@defun string-bytes string
115@cindex string, number of bytes
116This function returns the number of bytes in @var{string}.
117If @var{string} is a multibyte string, this can be greater than
118@code{(length @var{string})}.
119@end defun
120
114@node Converting Representations 121@node Converting Representations
115@section Converting Text Representations 122@section Converting Text Representations
116 123
diff --git a/lispref/sequences.texi b/lispref/sequences.texi
index 8087b8051cb..ac5a16e261f 100644
--- a/lispref/sequences.texi
+++ b/lispref/sequences.texi
@@ -111,12 +111,8 @@ Emacs character code.
111@end example 111@end example
112@end defun 112@end defun
113 113
114@defun string-bytes string 114@noindent
115@cindex string, number of bytes 115See also @code{string-bytes}, in @ref{Text Representations}.
116This function returns the number of bytes in @var{string}.
117If @var{string} is a multibyte string, this is greater than
118@code{(length @var{string})}.
119@end defun
120 116
121@defun elt sequence index 117@defun elt sequence index
122@cindex elements of sequences 118@cindex elements of sequences
diff --git a/lispref/strings.texi b/lispref/strings.texi
index e1824518abd..23f679d5bb9 100644
--- a/lispref/strings.texi
+++ b/lispref/strings.texi
@@ -821,18 +821,19 @@ operation} error.
821 821
822@cindex field width 822@cindex field width
823@cindex padding 823@cindex padding
824 All the specification characters allow an optional ``width,'' which 824 A specification can have a @dfn{width}, which is a signed decimal
825is a digit-string between the @samp{%} and the character. If the 825number between the @samp{%} and the specification character. If the
826printed representation of the object contains fewer characters than 826printed representation of the object contains fewer characters than
827this width, then it is padded. The padding is on the left if the 827this width, @code{format} extends it with padding. The padding goes
828width is positive (or starts with zero) and on the right if the 828on the left if the width is positive (or starts with zero) and on the
829width is negative. The padding character is normally a space, but if 829right if the width is negative. The padding character is normally a
830the width starts with a zero, zeros are used for padding. Some of 830space, but it's @samp{0} if the width starts with a zero.
831these conventions are ignored for specification characters for which 831
832they do not make sense. That is, @samp{%s}, @samp{%S} and @samp{%c} 832 Some of these conventions are ignored for specification characters
833accept a width starting with 0, but still pad with @emph{spaces} on 833for which they do not make sense. That is, @samp{%s}, @samp{%S} and
834the left. Also, @samp{%%} accepts a width, but ignores it. Here are 834@samp{%c} accept a width starting with 0, but still pad with
835some examples of padding: 835@emph{spaces} on the left. Also, @samp{%%} accepts a width, but
836ignores it. Here are some examples of padding:
836 837
837@example 838@example
838(format "%06d is padded on the left with zeros" 123) 839(format "%06d is padded on the left with zeros" 123)
@@ -842,15 +843,16 @@ some examples of padding:
842 @result{} "123 is padded on the right" 843 @result{} "123 is padded on the right"
843@end example 844@end example
844 845
846@noindent
845If the width is too small, @code{format} does not truncate the 847If the width is too small, @code{format} does not truncate the
846object's printed representation. Thus, you can use a width to specify 848object's printed representation. Thus, you can use a width to specify
847a minimum spacing between columns with no risk of losing information. 849a minimum spacing between columns with no risk of losing information.
848 850
849 In the following three examples, @samp{%7s} specifies a minimum width 851 In the following three examples, @samp{%7s} specifies a minimum
850of 7. In the first case, the string inserted in place of @samp{%7s} has 852width of 7. In the first case, the string inserted in place of
851only 3 letters, so 4 blank spaces are inserted for padding. In the 853@samp{%7s} has only 3 letters, it needs 4 blank spaces as padding. In
852second case, the string @code{"specification"} is 13 letters wide but is 854the second case, the string @code{"specification"} is 13 letters wide
853not truncated. In the third case, the padding is on the right. 855but is not truncated. In the third case, the padding is on the right.
854 856
855@smallexample 857@smallexample
856@group 858@group
@@ -873,32 +875,35 @@ not truncated. In the third case, the padding is on the right.
873@end smallexample 875@end smallexample
874 876
875@cindex precision in format specifications 877@cindex precision in format specifications
876 All the specification characters allow an optional ``precision'' 878 All the specification characters allow an optional @dfn{precision}
877before the character (after the width, if present). The precision is 879before the character (after the width, if present). The precision is
878a decimal-point @samp{.} followed by a digit-string. For the 880a decimal-point @samp{.} followed by a digit-string. For the
879floating-point specifications (@samp{%e}, @samp{%f}, @samp{%g}), the 881floating-point specifications (@samp{%e}, @samp{%f}, @samp{%g}), the
880precision specifies how many decimal places to show; if zero, the 882precision specifies how many decimal places to show; if zero, the
881decimal-point itself is also omitted. For @samp{%s} and @samp{%S}, 883decimal-point itself is also omitted. For @samp{%s} and @samp{%S},
882the precision truncates the string to the given width, so 884the precision truncates the string to the given width, so @samp{%.3s}
883@samp{%.3s} shows only the first three characters of the 885shows only the first three characters of the representation for
884representation for @var{object}. Precision is ignored for other 886@var{object}. Precision has no effect for other specification
885specification characters. 887characters.
886 888
887@cindex flags in format specifications 889@cindex flags in format specifications
888Immediately after the @samp{%} and before the optional width and 890 Immediately after the @samp{%} and before the optional width and
889precision, you can put certain ``flag'' characters. 891precision, you can put certain ``flag'' characters.
890 892
891A space character inserts a space for positive numbers, a plus character 893 @samp{+} as a flag inserts a plus sign before a positive number, so
892inserts a plus sign (otherwise nothing is inserted for positive 894that it always has a sign. A space character as flag inserts a space
893numbers). These flags are ignored except for @samp{%d}, @samp{%e}, 895before a positive number. (Otherwise, positive numbers start with the
894@samp{%f}, @samp{%g}, and if both flags are present the space is 896first digit.) Either of these two flags ensures that positive numbers
895ignored. 897and negative numbers use the same number of columns. These flags are
896 898ignored except for @samp{%d}, @samp{%e}, @samp{%f}, @samp{%g}, and if
897The flag @samp{#} indicates ``alternate form.'' For @samp{%o} it 899both flags are used, the @samp{+} takes precedence.
898ensures that the result begins with a 0. For @samp{%x} and @samp{%X} 900
899the result is prefixed with @samp{0x} or @samp{0X}. For @samp{%e}, 901 The flag @samp{#} specifies an ``alternate form'' which depends on
900@samp{%f}, and @samp{%g} a decimal point is always shown even if the 902the format in use. For @samp{%o} it ensures that the result begins
901precision is zero. 903with a @samp{0}. For @samp{%x} and @samp{%X}, it prefixes the result
904with @samp{0x} or @samp{0X}. For @samp{%e}, @samp{%f}, and @samp{%g},
905the @samp{#} flag means include a decimal point even if the precision
906is zero.
902 907
903@node Case Conversion 908@node Case Conversion
904@comment node-name, next, previous, up 909@comment node-name, next, previous, up
diff --git a/lispref/syntax.texi b/lispref/syntax.texi
index 85dcb83bd50..47f09944880 100644
--- a/lispref/syntax.texi
+++ b/lispref/syntax.texi
@@ -873,7 +873,8 @@ can still override the syntax.)
873@defopt parse-sexp-ignore-comments 873@defopt parse-sexp-ignore-comments
874@cindex skipping comments 874@cindex skipping comments
875If the value is non-@code{nil}, then comments are treated as 875If the value is non-@code{nil}, then comments are treated as
876whitespace by the functions in this section and by @code{forward-sexp}. 876whitespace by the functions in this section and by @code{forward-sexp},
877@code{scan-lists} and @code{scan-sexps}.
877@end defopt 878@end defopt
878 879
879@vindex parse-sexp-lookup-properties 880@vindex parse-sexp-lookup-properties
diff --git a/lispref/variables.texi b/lispref/variables.texi
index 8d3e0bb5c25..56732d22db6 100644
--- a/lispref/variables.texi
+++ b/lispref/variables.texi
@@ -1654,10 +1654,21 @@ This section describes the functions and variables that affect
1654processing of file local variables. 1654processing of file local variables.
1655 1655
1656@defopt enable-local-variables 1656@defopt enable-local-variables
1657This variable controls whether to process file local variables. A 1657This variable controls whether to process file local variables.
1658value of @code{t} means to process them, querying the user if unsafe 1658The possible values are:
1659variables are encountered; @code{nil} means ignore them; anything else 1659
1660means to query the user for each file. The default value is @code{t}. 1660@table @asis
1661@item @code{t} (the default)
1662Set the safe variables, and query (once) about any unsafe variables.
1663@item @code{:safe}
1664Set only the safe variables and do not query.
1665@item @code{:all}
1666Set all the variables and do not query.
1667@item @code{nil}
1668Don't set any variables.
1669@item anything else
1670Query (once) about all the variables.
1671@end table
1661@end defopt 1672@end defopt
1662 1673
1663@defun hack-local-variables &optional mode-only 1674@defun hack-local-variables &optional mode-only
diff --git a/man/ChangeLog b/man/ChangeLog
index ad357f99680..7666c91261c 100644
--- a/man/ChangeLog
+++ b/man/ChangeLog
@@ -1,3 +1,18 @@
12007-03-11 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de>
2
3 * gnus.texi (Mail and Post): Update documentation for gnus-user-agent.
4 The variable now uses a list of symbols instead of just a symbol.
5 Reported by Christoph Conrad <christoph.conrad@gmx.de>.
6
72007-03-06 Romain Francoise <romain@orebokech.com>
8
9 * faq.texi (New in Emacs 22): Don't say "now" too much. Add MH-E to
10 new packages, and mention Gnus update.
11
122007-03-04 Richard Stallman <rms@gnu.org>
13
14 * custom.texi (Safe File Variables): Minor correction.
15
12007-02-27 Katsumi Yamaoka <yamaoka@jpl.org> 162007-02-27 Katsumi Yamaoka <yamaoka@jpl.org>
2 17
3 * gnus.texi (NNTP): Mention nntp-never-echoes-commands and 18 * gnus.texi (NNTP): Mention nntp-never-echoes-commands and
diff --git a/man/custom.texi b/man/custom.texi
index 40eefba1ba3..40a0f8d0b2c 100644
--- a/man/custom.texi
+++ b/man/custom.texi
@@ -1247,7 +1247,7 @@ processes @code{eval} variables. The three possibilities for the
1247variable's value are @code{t}, @code{nil}, and anything else, just as 1247variable's value are @code{t}, @code{nil}, and anything else, just as
1248for @code{enable-local-variables}. The default is @code{maybe}, which 1248for @code{enable-local-variables}. The default is @code{maybe}, which
1249is neither @code{t} nor @code{nil}, so normally Emacs does ask for 1249is neither @code{t} nor @code{nil}, so normally Emacs does ask for
1250confirmation about processes @code{eval} variables. 1250confirmation about processing @code{eval} variables.
1251 1251
1252@vindex safe-local-eval-forms 1252@vindex safe-local-eval-forms
1253 But there is an exception. The @code{safe-local-eval-forms} is a 1253 But there is an exception. The @code{safe-local-eval-forms} is a
diff --git a/man/faq.texi b/man/faq.texi
index b800ffac69a..a8feffa46e4 100644
--- a/man/faq.texi
+++ b/man/faq.texi
@@ -1147,39 +1147,40 @@ and on @code{xterm} with @kbd{emacs -nw}.
1147@cindex Recently introduced features 1147@cindex Recently introduced features
1148 1148
1149@cindex Default features 1149@cindex Default features
1150Font Lock mode, auto-compression mode, and file name shadow mode are now 1150Font Lock mode, auto-compression mode, and file name shadow mode are
1151enabled by default. On graphics displays it is now possible to follow 1151enabled by default. On graphics displays it is possible to follow links
1152links with @kbd{mouse-1}, and the modeline of the selected window is now 1152with @kbd{mouse-1}. The modeline of the selected window is now
1153highlighted. Window fringes are now customizable. The minibuffer 1153highlighted. Window fringes are customizable. The minibuffer prompt is
1154prompt is now displayed in a distinct face. 1154displayed in a distinct face.
1155 1155
1156Emacs now reads abbrev definitions automatically at startup. The 1156Emacs now reads abbrev definitions automatically at startup. The
1157maximum size of buffers has been doubled and is now 256M on 32-bit 1157maximum size of buffers has been doubled and is 256M on 32-bit machines.
1158machines. Grep mode is now separate from Compilation mode and has many 1158Grep mode is separate from Compilation mode and has many new specific
1159new specific options and commands. 1159options and commands.
1160 1160
1161The original Emacs macro system has been replaced by the new Kmacro 1161The original Emacs macro system has been replaced by the new Kmacro
1162package, which provides many new commands and features and a simple 1162package, which provides many new commands and features and a simple
1163interface that uses the function keys F3 and F4. Macros are now stored 1163interface that uses the function keys F3 and F4. Macros are stored
1164in a macro ring, and can be debugged and edited interactively. 1164in a macro ring, and can be debugged and edited interactively.
1165 1165
1166The GUD (Grand Unified Debugger) package can now be used with a full 1166The GUD (Grand Unified Debugger) package can now be used with a full
1167graphical user interface to the debugger which provides many features 1167graphical user interface to the debugger which provides many features
1168found in traditional development environments, making it easy to 1168found in traditional development environments, making it easy to
1169manipulate breakpoints, add watch points, display the call stack, etc. 1169manipulate breakpoints, add watch points, display the call stack, etc.
1170Breakpoints are now displayed in the source buffer. 1170Breakpoints are displayed in the source buffer.
1171 1171
1172@cindex GTK+ Toolkit 1172@cindex GTK+ Toolkit
1173@cindex Drag-and-drop 1173@cindex Drag-and-drop
1174@cindex Mouse wheel 1174@cindex Mouse wheel
1175Emacs can now be built with GTK+ widgets, and supports drag-and-drop 1175Emacs can be built with GTK+ widgets, and supports drag-and-drop
1176operation on X. Mouse wheel support is now enabled by default. 1176operation on X. Mouse wheel support is enabled by default.
1177 1177
1178@cindex New modes 1178@cindex New modes
1179Many new modes and packages have been included in Emacs, such as Calc, 1179Many new modes and packages have been included in Emacs, such as MH-E,
1180Tramp and URL, as well as IDO, CUA, rcirc, ERC, conf-mode, python-mode, 1180Calc, Tramp and URL, as well as IDO, CUA, rcirc, ERC, conf-mode,
1181table, tumme, SES, ruler, Flymake, Org, PGG, wdired, t-mouse, longlines, 1181python-mode, table, tumme, SES, ruler, Flymake, Org, PGG, wdired,
1182dns-mode, savehist, Password, Printing, Reveal, etc. 1182t-mouse, longlines, dns-mode, savehist, Password, Printing, Reveal, etc.
1183Gnus has been updated to version 5.11.
1183 1184
1184@cindex Multilingual Environment 1185@cindex Multilingual Environment
1185Leim is now part of Emacs. Unicode support has been much improved, and 1186Leim is now part of Emacs. Unicode support has been much improved, and
diff --git a/man/gnus.texi b/man/gnus.texi
index e2adfae2253..2ca1d225786 100644
--- a/man/gnus.texi
+++ b/man/gnus.texi
@@ -11799,12 +11799,12 @@ still a pain, though.
11799@cindex User-Agent 11799@cindex User-Agent
11800 11800
11801This variable controls which information should be exposed in the 11801This variable controls which information should be exposed in the
11802User-Agent header. It can be one of the symbols @code{gnus} (show only 11802User-Agent header. It can be a list of symbols or a string. Valid
11803Gnus version), @code{emacs-gnus} (show only Emacs and Gnus versions), 11803symbols are @code{gnus} (show Gnus version) and @code{emacs} (show Emacs
11804@code{emacs-gnus-config} (same as @code{emacs-gnus} plus system 11804version). In addition to the Emacs version, you can add @code{codename}
11805configuration), @code{emacs-gnus-type} (same as @code{emacs-gnus} plus 11805(show (S)XEmacs codename) or either @code{config} (show system
11806system type) or a custom string. If you set it to a string, be sure to 11806configuration) or @code{type} (show system type). If you set it to a
11807use a valid format, see RFC 2616. 11807string, be sure to use a valid format, see RFC 2616.
11808 11808
11809@end table 11809@end table
11810 11810
diff --git a/nt/ChangeLog b/nt/ChangeLog
index 5df79a70fc1..3d5383fdc28 100644
--- a/nt/ChangeLog
+++ b/nt/ChangeLog
@@ -1,7 +1,10 @@
12007-03-09 Richard Stallman <rms@gnu.org>
2
3 * INSTALL: Say explicitly this is not for Cygwin.
4
12007-03-03 Eli Zaretskii <eliz@gnu.org> 52007-03-03 Eli Zaretskii <eliz@gnu.org>
2 6
3 * INSTALL: Add URL of another site with detailed build 7 * INSTALL: Add URL of another site with detailed build instructions.
4 instructions.
5 8
62007-02-16 Glenn Morris <rgm@gnu.org> 92007-02-16 Glenn Morris <rgm@gnu.org>
7 10
@@ -9,8 +12,8 @@
9 * icons/gnu2b48t.ico, icons/gnu3b32.ico, icons/gnu3b32t.ico: 12 * icons/gnu2b48t.ico, icons/gnu3b32.ico, icons/gnu3b32t.ico:
10 * icons/gnu4g48.ico, icons/gnu4g48t.ico, icons/gnu5w32.ico: 13 * icons/gnu4g48.ico, icons/gnu4g48t.ico, icons/gnu5w32.ico:
11 * icons/gnu5w32t.ico, icons/gnu6w48.ico, icons/gnu6w48t.ico: 14 * icons/gnu5w32t.ico, icons/gnu6w48.ico, icons/gnu6w48t.ico:
12 * icons/gnu7.ico, icons/gnu8.ico, icons/gnu9.ico: Restore all but 15 * icons/gnu7.ico, icons/gnu8.ico, icons/gnu9.ico:
13 two of icons deleted in previous change. 16 Restore all but two of icons deleted in previous change.
14 17
152007-02-13 Chong Yidong <cyd@stupidchicken.com> 182007-02-13 Chong Yidong <cyd@stupidchicken.com>
16 19
@@ -21,8 +24,8 @@
21 * icons/gnu4g48.ico, icons/gnu6w48.ico, icons/gnu9.ico: 24 * icons/gnu4g48.ico, icons/gnu6w48.ico, icons/gnu9.ico:
22 * icons/gnu2b48t.ico, icons/gnu4g48t.ico: 25 * icons/gnu2b48t.ico, icons/gnu4g48t.ico:
23 * icons/gnu6w48t.ico, icons/gnu2a32.ico, icons/gnu3b32.ico: 26 * icons/gnu6w48t.ico, icons/gnu2a32.ico, icons/gnu3b32.ico:
24 * icons/gnu5w32.ico, icons/gnu7.ico, icons/sink.ico: Unused icons 27 * icons/gnu5w32.ico, icons/gnu7.ico, icons/sink.ico:
25 deleted. 28 Unused icons deleted.
26 29
272007-01-31 Juanma Barranquero <lekktu@gmail.com> 302007-01-31 Juanma Barranquero <lekktu@gmail.com>
28 31
@@ -40,7 +43,7 @@
40 43
41 * nmake.defs (TEMACS_EXTRA_LINK): Remove duplicated flags from 44 * nmake.defs (TEMACS_EXTRA_LINK): Remove duplicated flags from
42 DEBUG_LINK. 45 DEBUG_LINK.
43 (DEBUG_LINK): Remove -debugtype:both 46 (DEBUG_LINK): Remove -debugtype:both.
44 47
452006-12-27 Eli Zaretskii <eliz@gnu.org> 482006-12-27 Eli Zaretskii <eliz@gnu.org>
46 49
@@ -812,8 +815,7 @@
812 815
813 * install.bat: Pass on command line arguments to make. 816 * install.bat: Pass on command line arguments to make.
814 817
815 * makefile.nt (fast_install): Bring commands up-to-date, and fix 818 * makefile.nt (fast_install): Bring commands up-to-date, and fix typo.
816 typo.
817 819
8181999-11-21 Andrew Innes <andrewi@gnu.org> 8201999-11-21 Andrew Innes <andrewi@gnu.org>
819 821
diff --git a/nt/INSTALL b/nt/INSTALL
index cc677c3486d..dc88bfd9975 100644
--- a/nt/INSTALL
+++ b/nt/INSTALL
@@ -8,8 +8,11 @@
8* For the impatient 8* For the impatient
9 9
10 Here are the concise instructions for configuring and building the 10 Here are the concise instructions for configuring and building the
11 native Win32 binary of Emacs on Windows, for those who want to skip 11 native Windows binary of Emacs, for those who want to skip the
12 the complex explanations and ``just do it'': 12 complex explanations and ``just do it'':
13
14 Do not use this recipe with Cygwin. For building on Cygwin,
15 use the normal installation instructions, ../INSTALL.
13 16
14 1. Change to the `nt' directory (the directory of this file): 17 1. Change to the `nt' directory (the directory of this file):
15 18
@@ -75,6 +78,11 @@
75 78
76* Preliminaries 79* Preliminaries
77 80
81 If you want to build a Cygwin port of Emacs, use the instructions in
82 the INSTALL file in the main Emacs directory (the parent of this
83 directory). These instructions are for building a native Windows
84 binary of Emacs.
85
78 If you used WinZip to unpack the distribution, we suggest to 86 If you used WinZip to unpack the distribution, we suggest to
79 remove the files and unpack again with a different program! 87 remove the files and unpack again with a different program!
80 WinZip is known to create some subtle and hard to debug problems, 88 WinZip is known to create some subtle and hard to debug problems,
diff --git a/src/ChangeLog b/src/ChangeLog
index af6d98afb2a..2c241cd2a51 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,12 +1,90 @@
12007-03-11 Sam Steingold <sds@gnu.org>
2
3 * process.c (sigchld_handler): Sleep before wait3 to avoid a busyloop.
4
52007-03-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
6
7 * macfns.c (Fx_server_vendor): Change vendor string to "Apple Inc.".
8
92007-03-10 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
10
11 * macterm.c [USE_CARBON_EVENTS] (mac_handle_mouse_event): Ignore
12 mouse wheel movement on title bar or tool bar.
13
142007-03-10 Chong Yidong <cyd@stupidchicken.com>
15
16 * keyboard.c (help_form_saved_window_configs): New var.
17 (read_char_help_form_unwind): New function.
18 (read_char): Don't restore window configuration if a mouse click
19 arrives while the help form is being displayed.
20
212007-03-10 Kim F. Storm <storm@cua.dk>
22
23 * xdisp.c (redisplay_window): Don't automatically select a new window
24 start for a contination line during mouse-click.
25
262007-03-09 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
27
28 * xterm.c (handle_one_xevent): Ignore buttons > 3 for the tool bar.
29
302007-03-09 Juanma Barranquero <lekktu@gmail.com>
31
32 * keymap.c (Fdescribe_buffer_bindings): Check that BUFFER is valid.
33
342007-03-08 Richard Stallman <rms@gnu.org>
35
36 * keyboard.c (syms_of_keyboard): Doc fix.
37
382007-03-08 Chong Yidong <cyd@stupidchicken.com>
39
40 * minibuf.c (Ftry_completion): Don't short circuit if
41 completion-ignore-case is non-nil.
42
432007-03-07 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
44
45 * macfns.c (mac_set_scroll_bar_width, mac_frame_parm_handlers):
46 Undo 2006-03-06 changes.
47
48 * macterm.c (XTset_vertical_scroll_bar) [MAC_OSX]: Don't show scroll
49 bar if its width is smaller than that of Aqua small scroll bar.
50
512007-03-07 Stefan Monnier <monnier@iro.umontreal.ca>
52
53 * minibuf.c (read_minibuf): Bind inhibit-read-only a bit longer so as
54 to handle correctly prompts with read-only property.
55
562007-03-06 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
57
58 * sound.c (wav_play): Check header->data_length to see how much we
59 shall read.
60 (alsa_period_size): Convert ALSA period size in frames to bytes.
61 (alsa_write): Return if frames is zero.
62
632007-03-06 Kenichi Handa <handa@m17n.org>
64
65 * xselect.c (Vselection_coding_system): Documentation improved.
66
672007-03-05 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
68
69 * macterm.c (x_scroll_bar_create, XTread_socket): Replace #if
70 USE_TOOLKIT_SCROLL_BARS with #ifdef USE_TOOLKIT_SCROLL_BARS.
71 (x_set_window_size): Call SET_FRAME_GARBAGED. Clear window if
72 internal border width has changed.
73
74 * macterm.h (struct mac_output): New member `internal_border_width'.
75
762007-03-04 Richard Stallman <rms@gnu.org>
77
78 * window.c (Fdisplay_buffer): Doc fix.
79
12007-03-03 Glenn Morris <rgm@gnu.org> 802007-03-03 Glenn Morris <rgm@gnu.org>
2 81
3 * Makefile.in: Don't clear out LIB_X11_LIB, since XFT_LIBS does 82 * Makefile.in: Don't clear out LIB_X11_LIB, since XFT_LIBS does
4 not include -lX11 on Solaris. 83 not include -lX11 on Solaris.
5 84
62007-03-02 Stuart D. Herring <herring@lanl.gov> 852007-03-02 Stuart D. Herring <herring@lanl.gov>
7 86
8 * keymap.c (Fkey_binding): Don't consider two-element lists as 87 * keymap.c (Fkey_binding): Don't consider one-element lists as events.
9 events.
10 88
112007-03-01 Kenichi Handa <handa@m17n.org> 892007-03-01 Kenichi Handa <handa@m17n.org>
12 90
@@ -35,8 +113,8 @@
35 (x_scroll_bar_create, XTset_vertical_scroll_bar) 113 (x_scroll_bar_create, XTset_vertical_scroll_bar)
36 [USE_TOOLKIT_SCROLL_BARS]: Initialize bar->min_handle. 114 [USE_TOOLKIT_SCROLL_BARS]: Initialize bar->min_handle.
37 115
38 * macterm.h (struct scroll_bar) [USE_TOOLKIT_SCROLL_BARS]: New 116 * macterm.h (struct scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
39 member `min_handle'. 117 New member `min_handle'.
40 118
412007-02-23 Kim F. Storm <storm@cua.dk> 1192007-02-23 Kim F. Storm <storm@cua.dk>
42 120
@@ -59,11 +137,11 @@
59 (mac_flush_display_optional) [USE_CG_DRAWING]: New function. 137 (mac_flush_display_optional) [USE_CG_DRAWING]: New function.
60 (x_redisplay_interface) [USE_CG_DRAWING]: Set it as handler for 138 (x_redisplay_interface) [USE_CG_DRAWING]: Set it as handler for
61 flush_display_optional. 139 flush_display_optional.
62 [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_press): New 140 [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_press):
63 argument MOUSE_POS. All uses changed. Set bar->dragging to 141 New argument MOUSE_POS. All uses changed. Set bar->dragging to
64 negative integer if scroll bar handle is pressed. 142 negative integer if scroll bar handle is pressed.
65 [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_release): Negative 143 [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_release):
66 bar->dragging means scroll bar handle is not dragged. 144 Negative bar->dragging means scroll bar handle is not dragged.
67 [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_drag): Get initial 145 [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_drag): Get initial
68 offset of scroll bar handle from negative bar->dragging. 146 offset of scroll bar handle from negative bar->dragging.
69 (XTread_socket) [USE_TOOLKIT_SCROLL_BARS]: Modifiers for scroll 147 (XTread_socket) [USE_TOOLKIT_SCROLL_BARS]: Modifiers for scroll
@@ -98,8 +176,7 @@
98 176
99 * w32menu.c (current_popup_menu): Make available globally. 177 * w32menu.c (current_popup_menu): Make available globally.
100 (menubar_selection_callback): Free menu strings before pushing the 178 (menubar_selection_callback): Free menu strings before pushing the
101 menu event into the keyboard buffer. Remove 179 menu event into the keyboard buffer. Remove menu_command_in_progress.
102 menu_command_in_progress.
103 180
104 * w32fns.c (current_popup_menu): Use from w32menu.c. 181 * w32fns.c (current_popup_menu): Use from w32menu.c.
105 (w32_wnd_proc) [WM_EXITMENULOOP, WM_TIMER]: Use menubar_active 182 (w32_wnd_proc) [WM_EXITMENULOOP, WM_TIMER]: Use menubar_active
@@ -369,8 +446,8 @@
369 446
3702007-01-14 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 4472007-01-14 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
371 448
372 * macmenu.c (create_and_show_dialog) [TARGET_API_MAC_CARBON]: Use 449 * macmenu.c (create_and_show_dialog) [TARGET_API_MAC_CARBON]:
373 DisableControl for disabled items. Set default button to first 450 Use DisableControl for disabled items. Set default button to first
374 enabled one. Use icon of application in execution. 451 enabled one. Use icon of application in execution.
375 452
3762007-01-13 Eli Zaretskii <eliz@gnu.org> 4532007-01-13 Eli Zaretskii <eliz@gnu.org>
diff --git a/src/keyboard.c b/src/keyboard.c
index c7d25088313..e1e53010931 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -2450,6 +2450,17 @@ Lisp_Object print_help ();
2450static Lisp_Object kbd_buffer_get_event (); 2450static Lisp_Object kbd_buffer_get_event ();
2451static void record_char (); 2451static void record_char ();
2452 2452
2453static Lisp_Object help_form_saved_window_configs;
2454static Lisp_Object
2455read_char_help_form_unwind (arg)
2456{
2457 Lisp_Object window_config = XCAR (help_form_saved_window_configs);
2458 help_form_saved_window_configs = XCDR (help_form_saved_window_configs);
2459 if (!NILP (window_config))
2460 Fset_window_configuration (window_config);
2461 return Qnil;
2462}
2463
2453#ifdef MULTI_KBOARD 2464#ifdef MULTI_KBOARD
2454static jmp_buf wrong_kboard_jmpbuf; 2465static jmp_buf wrong_kboard_jmpbuf;
2455#endif 2466#endif
@@ -3319,8 +3330,10 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu, end_time)
3319 Lisp_Object tem0; 3330 Lisp_Object tem0;
3320 count = SPECPDL_INDEX (); 3331 count = SPECPDL_INDEX ();
3321 3332
3322 record_unwind_protect (Fset_window_configuration, 3333 help_form_saved_window_configs
3323 Fcurrent_window_configuration (Qnil)); 3334 = Fcons (Fcurrent_window_configuration (Qnil),
3335 help_form_saved_window_configs);
3336 record_unwind_protect (read_char_help_form_unwind, Qnil);
3324 3337
3325 tem0 = Feval (Vhelp_form); 3338 tem0 = Feval (Vhelp_form);
3326 if (STRINGP (tem0)) 3339 if (STRINGP (tem0))
@@ -3328,7 +3341,12 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu, end_time)
3328 3341
3329 cancel_echoing (); 3342 cancel_echoing ();
3330 do 3343 do
3331 c = read_char (0, 0, 0, Qnil, 0, NULL); 3344 {
3345 c = read_char (0, 0, 0, Qnil, 0, NULL);
3346 if (EVENT_HAS_PARAMETERS (c)
3347 && EQ (EVENT_HEAD_KIND (EVENT_HEAD (c)), Qmouse_click))
3348 XSETCAR (help_form_saved_window_configs, Qnil);
3349 }
3332 while (BUFFERP (c)); 3350 while (BUFFERP (c));
3333 /* Remove the help from the frame */ 3351 /* Remove the help from the frame */
3334 unbind_to (count, Qnil); 3352 unbind_to (count, Qnil);
@@ -11334,6 +11352,9 @@ syms_of_keyboard ()
11334 menu_bar_items_vector = Qnil; 11352 menu_bar_items_vector = Qnil;
11335 staticpro (&menu_bar_items_vector); 11353 staticpro (&menu_bar_items_vector);
11336 11354
11355 help_form_saved_window_configs = Qnil;
11356 staticpro (&help_form_saved_window_configs);
11357
11337 defsubr (&Scurrent_idle_time); 11358 defsubr (&Scurrent_idle_time);
11338 defsubr (&Sevent_convert_list); 11359 defsubr (&Sevent_convert_list);
11339 defsubr (&Sread_key_sequence); 11360 defsubr (&Sread_key_sequence);
@@ -11396,7 +11417,7 @@ An element of the form (t . EVENT) forces EVENT to be added to that list. */);
11396 DEFVAR_LISP ("unread-post-input-method-events", &Vunread_post_input_method_events, 11417 DEFVAR_LISP ("unread-post-input-method-events", &Vunread_post_input_method_events,
11397 doc: /* List of events to be processed as input by input methods. 11418 doc: /* List of events to be processed as input by input methods.
11398These events are processed before `unread-command-events' 11419These events are processed before `unread-command-events'
11399and actual keyboard input without given to `input-method-function'. */); 11420and actual keyboard input, but are not given to `input-method-function'. */);
11400 Vunread_post_input_method_events = Qnil; 11421 Vunread_post_input_method_events = Qnil;
11401 11422
11402 DEFVAR_LISP ("unread-input-method-events", &Vunread_input_method_events, 11423 DEFVAR_LISP ("unread-input-method-events", &Vunread_input_method_events,
diff --git a/src/keymap.c b/src/keymap.c
index abf934908cc..a612b0d5c6c 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -2989,6 +2989,8 @@ Keyboard translations:\n\n\
2989You type Translation\n\ 2989You type Translation\n\
2990-------- -----------\n"; 2990-------- -----------\n";
2991 2991
2992 CHECK_BUFFER (buffer);
2993
2992 shadow = Qnil; 2994 shadow = Qnil;
2993 GCPRO1 (shadow); 2995 GCPRO1 (shadow);
2994 2996
diff --git a/src/macfns.c b/src/macfns.c
index 072bc6f50b5..888c3bdf8e8 100644
--- a/src/macfns.c
+++ b/src/macfns.c
@@ -1909,24 +1909,6 @@ x_set_scroll_bar_default_width (f)
1909#endif /* not MAC_OSX */ 1909#endif /* not MAC_OSX */
1910} 1910}
1911 1911
1912void
1913mac_set_scroll_bar_width (f, arg, oldval)
1914 struct frame *f;
1915 Lisp_Object arg, oldval;
1916{
1917#ifdef MAC_OSX
1918 if (INTEGERP (arg) && XINT (arg) > 0)
1919 {
1920 if (XINT (arg) < (MAC_AQUA_SMALL_VERTICAL_SCROLL_BAR_WIDTH
1921 + MAC_AQUA_VERTICAL_SCROLL_BAR_WIDTH) / 2)
1922 XSETINT (arg, MAC_AQUA_SMALL_VERTICAL_SCROLL_BAR_WIDTH);
1923 else
1924 XSETINT (arg, MAC_AQUA_VERTICAL_SCROLL_BAR_WIDTH);
1925 }
1926#endif
1927 x_set_scroll_bar_width (f, arg, oldval);
1928}
1929
1930static void 1912static void
1931mac_set_font (f, arg, oldval) 1913mac_set_font (f, arg, oldval)
1932 struct frame *f; 1914 struct frame *f;
@@ -3052,7 +3034,7 @@ If omitted or nil, that stands for the selected frame's display. */)
3052 (display) 3034 (display)
3053 Lisp_Object display; 3035 Lisp_Object display;
3054{ 3036{
3055 return build_string ("Apple Computers"); 3037 return build_string ("Apple Inc.");
3056} 3038}
3057 3039
3058DEFUN ("x-server-version", Fx_server_version, Sx_server_version, 0, 1, 0, 3040DEFUN ("x-server-version", Fx_server_version, Sx_server_version, 0, 1, 0,
@@ -4677,7 +4659,7 @@ frame_parm_handler mac_frame_parm_handlers[] =
4677 x_set_menu_bar_lines, 4659 x_set_menu_bar_lines,
4678 x_set_mouse_color, 4660 x_set_mouse_color,
4679 x_explicitly_set_name, 4661 x_explicitly_set_name,
4680 mac_set_scroll_bar_width, 4662 x_set_scroll_bar_width,
4681 x_set_title, 4663 x_set_title,
4682 x_set_unsplittable, 4664 x_set_unsplittable,
4683 x_set_vertical_scroll_bars, 4665 x_set_vertical_scroll_bars,
diff --git a/src/macterm.c b/src/macterm.c
index 3a403c39c26..1fa3daace6f 100644
--- a/src/macterm.c
+++ b/src/macterm.c
@@ -4965,7 +4965,7 @@ x_scroll_bar_create (w, top, left, width, height, disp_top, disp_height)
4965#endif 4965#endif
4966#if TARGET_API_MAC_CARBON 4966#if TARGET_API_MAC_CARBON
4967 ch = NewControl (FRAME_MAC_WINDOW (f), &r, "\p", 4967 ch = NewControl (FRAME_MAC_WINDOW (f), &r, "\p",
4968#if USE_TOOLKIT_SCROLL_BARS 4968#ifdef USE_TOOLKIT_SCROLL_BARS
4969 false, 4969 false,
4970#else 4970#else
4971 width < disp_height, 4971 width < disp_height,
@@ -5219,7 +5219,11 @@ XTset_vertical_scroll_bar (w, portion, whole, position)
5219#ifdef USE_TOOLKIT_SCROLL_BARS 5219#ifdef USE_TOOLKIT_SCROLL_BARS
5220 if (NILP (bar->track_top)) 5220 if (NILP (bar->track_top))
5221 { 5221 {
5222 if (sb_width >= disp_height) 5222 if (sb_width >= disp_height
5223#ifdef MAC_OSX
5224 || sb_width < MAC_AQUA_SMALL_VERTICAL_SCROLL_BAR_WIDTH
5225#endif
5226 )
5223 { 5227 {
5224 XSETINT (bar->track_top, 0); 5228 XSETINT (bar->track_top, 0);
5225 XSETINT (bar->track_height, 0); 5229 XSETINT (bar->track_height, 0);
@@ -6242,6 +6246,16 @@ x_set_window_size (f, change_gravity, cols, rows)
6242#endif 6246#endif
6243 mac_handle_size_change (f, pixelwidth, pixelheight); 6247 mac_handle_size_change (f, pixelwidth, pixelheight);
6244 6248
6249 if (f->output_data.mac->internal_border_width
6250 != FRAME_INTERNAL_BORDER_WIDTH (f))
6251 {
6252 mac_clear_window (f);
6253 f->output_data.mac->internal_border_width
6254 = FRAME_INTERNAL_BORDER_WIDTH (f);
6255 }
6256
6257 SET_FRAME_GARBAGED (f);
6258
6245 UNBLOCK_INPUT; 6259 UNBLOCK_INPUT;
6246} 6260}
6247 6261
@@ -9995,23 +10009,30 @@ mac_handle_mouse_event (next_handler, event, data)
9995 if (err != noErr || axis != kEventMouseWheelAxisY) 10009 if (err != noErr || axis != kEventMouseWheelAxisY)
9996 break; 10010 break;
9997 10011
9998 err = GetEventParameter (event, kEventParamMouseWheelDelta,
9999 typeSInt32, NULL, sizeof (SInt32),
10000 NULL, &delta);
10001 if (err != noErr)
10002 break;
10003 err = GetEventParameter (event, kEventParamMouseLocation, 10012 err = GetEventParameter (event, kEventParamMouseLocation,
10004 typeQDPoint, NULL, sizeof (Point), 10013 typeQDPoint, NULL, sizeof (Point),
10005 NULL, &point); 10014 NULL, &point);
10006 if (err != noErr) 10015 if (err != noErr)
10007 break; 10016 break;
10017
10018 SetPortWindowPort (wp);
10019 GlobalToLocal (&point);
10020 if (point.h < 0 || point.v < 0
10021 || EQ (window_from_coordinates (f, point.h, point.v, 0, 0, 0, 1),
10022 f->tool_bar_window))
10023 break;
10024
10025 err = GetEventParameter (event, kEventParamMouseWheelDelta,
10026 typeSInt32, NULL, sizeof (SInt32),
10027 NULL, &delta);
10028 if (err != noErr)
10029 break;
10030
10008 read_socket_inev->kind = WHEEL_EVENT; 10031 read_socket_inev->kind = WHEEL_EVENT;
10009 read_socket_inev->code = 0; 10032 read_socket_inev->code = 0;
10010 read_socket_inev->modifiers = 10033 read_socket_inev->modifiers =
10011 (mac_event_to_emacs_modifiers (event) 10034 (mac_event_to_emacs_modifiers (event)
10012 | ((delta < 0) ? down_modifier : up_modifier)); 10035 | ((delta < 0) ? down_modifier : up_modifier));
10013 SetPortWindowPort (wp);
10014 GlobalToLocal (&point);
10015 XSETINT (read_socket_inev->x, point.h); 10036 XSETINT (read_socket_inev->x, point.h);
10016 XSETINT (read_socket_inev->y, point.v); 10037 XSETINT (read_socket_inev->y, point.v);
10017 XSETFRAME (read_socket_inev->frame_or_window, f); 10038 XSETFRAME (read_socket_inev->frame_or_window, f);
@@ -11042,7 +11063,7 @@ XTread_socket (sd, expected, hold_quit)
11042 else 11063 else
11043 { 11064 {
11044 /* A window has been deactivated */ 11065 /* A window has been deactivated */
11045#if USE_TOOLKIT_SCROLL_BARS 11066#ifdef USE_TOOLKIT_SCROLL_BARS
11046 if (dpyinfo->grabbed && tracked_scroll_bar) 11067 if (dpyinfo->grabbed && tracked_scroll_bar)
11047 { 11068 {
11048 struct input_event event; 11069 struct input_event event;
diff --git a/src/macterm.h b/src/macterm.h
index 3d0b41f6efe..b3826c5e7f7 100644
--- a/src/macterm.h
+++ b/src/macterm.h
@@ -327,6 +327,9 @@ struct mac_output
327 They are changed only when a different background is involved. */ 327 They are changed only when a different background is involved. */
328 unsigned long relief_background; 328 unsigned long relief_background;
329 329
330 /* Width of the internal border. */
331 int internal_border_width;
332
330 /* Hints for the size and the position of a window. */ 333 /* Hints for the size and the position of a window. */
331 XSizeHints *size_hints; 334 XSizeHints *size_hints;
332 335
diff --git a/src/minibuf.c b/src/minibuf.c
index 14f5eac846a..50f48c2344f 100644
--- a/src/minibuf.c
+++ b/src/minibuf.c
@@ -700,27 +700,27 @@ read_minibuf (map, initial, prompt, backup_n, expflag,
700 specbind (Qinhibit_read_only, Qt); 700 specbind (Qinhibit_read_only, Qt);
701 specbind (Qinhibit_modification_hooks, Qt); 701 specbind (Qinhibit_modification_hooks, Qt);
702 Ferase_buffer (); 702 Ferase_buffer ();
703
704 if (!NILP (current_buffer->enable_multibyte_characters)
705 && ! STRING_MULTIBYTE (minibuf_prompt))
706 minibuf_prompt = Fstring_make_multibyte (minibuf_prompt);
707
708 /* Insert the prompt, record where it ends. */
709 Finsert (1, &minibuf_prompt);
710 if (PT > BEG)
711 {
712 Fput_text_property (make_number (BEG), make_number (PT),
713 Qfront_sticky, Qt, Qnil);
714 Fput_text_property (make_number (BEG), make_number (PT),
715 Qrear_nonsticky, Qt, Qnil);
716 Fput_text_property (make_number (BEG), make_number (PT),
717 Qfield, Qt, Qnil);
718 Fadd_text_properties (make_number (BEG), make_number (PT),
719 Vminibuffer_prompt_properties, Qnil);
720 }
703 unbind_to (count1, Qnil); 721 unbind_to (count1, Qnil);
704 } 722 }
705 723
706 if (!NILP (current_buffer->enable_multibyte_characters)
707 && ! STRING_MULTIBYTE (minibuf_prompt))
708 minibuf_prompt = Fstring_make_multibyte (minibuf_prompt);
709
710 /* Insert the prompt, record where it ends. */
711 Finsert (1, &minibuf_prompt);
712 if (PT > BEG)
713 {
714 Fput_text_property (make_number (BEG), make_number (PT),
715 Qfront_sticky, Qt, Qnil);
716 Fput_text_property (make_number (BEG), make_number (PT),
717 Qrear_nonsticky, Qt, Qnil);
718 Fput_text_property (make_number (BEG), make_number (PT),
719 Qfield, Qt, Qnil);
720 Fadd_text_properties (make_number (BEG), make_number (PT),
721 Vminibuffer_prompt_properties, Qnil);
722 }
723
724 minibuf_prompt_width = (int) current_column (); /* iftc */ 724 minibuf_prompt_width = (int) current_column (); /* iftc */
725 725
726 /* Put in the initial input. */ 726 /* Put in the initial input. */
@@ -1483,6 +1483,10 @@ is used to further constrain the set of candidates. */)
1483 matchcount++; 1483 matchcount++;
1484 bestmatchsize = matchsize; 1484 bestmatchsize = matchsize;
1485 if (matchsize <= SCHARS (string) 1485 if (matchsize <= SCHARS (string)
1486 /* If completion-ignore-case is non-nil, don't
1487 short-circuit because we want to find the best
1488 possible match *including* case differences. */
1489 && !completion_ignore_case
1486 && matchcount > 1) 1490 && matchcount > 1)
1487 /* No need to look any further. */ 1491 /* No need to look any further. */
1488 break; 1492 break;
diff --git a/src/process.c b/src/process.c
index 4611ce2c05c..f3162c9d3e5 100644
--- a/src/process.c
+++ b/src/process.c
@@ -6401,12 +6401,16 @@ sigchld_handler (signo)
6401#define WUNTRACED 0 6401#define WUNTRACED 0
6402#endif /* no WUNTRACED */ 6402#endif /* no WUNTRACED */
6403 /* Keep trying to get a status until we get a definitive result. */ 6403 /* Keep trying to get a status until we get a definitive result. */
6404 do 6404 while (1) {
6405 { 6405 errno = 0;
6406 errno = 0; 6406 pid = wait3 (&w, WNOHANG | WUNTRACED, 0);
6407 pid = wait3 (&w, WNOHANG | WUNTRACED, 0); 6407 if (! (pid < 0 && errno == EINTR))
6408 } 6408 break;
6409 while (pid < 0 && errno == EINTR); 6409 /* avoid a busyloop: wait3 is a system call, so we do not want
6410 to prevent the kernel from actually sending SIGCHLD to emacs
6411 by asking for it all the time */
6412 sleep (1);
6413 }
6410 6414
6411 if (pid <= 0) 6415 if (pid <= 0)
6412 { 6416 {
diff --git a/src/sound.c b/src/sound.c
index 7fb79e64048..5a27e7a6232 100644
--- a/src/sound.c
+++ b/src/sound.c
@@ -621,12 +621,18 @@ wav_play (s, sd)
621 char *buffer; 621 char *buffer;
622 int nbytes; 622 int nbytes;
623 int blksize = sd->period_size ? sd->period_size (sd) : 2048; 623 int blksize = sd->period_size ? sd->period_size (sd) : 2048;
624 int data_left = header->data_length;
624 625
625 buffer = (char *) alloca (blksize); 626 buffer = (char *) alloca (blksize);
626 lseek (s->fd, sizeof *header, SEEK_SET); 627 lseek (s->fd, sizeof *header, SEEK_SET);
627 628 while (data_left > 0
628 while ((nbytes = emacs_read (s->fd, buffer, blksize)) > 0) 629 && (nbytes = emacs_read (s->fd, buffer, blksize)) > 0)
629 sd->write (sd, buffer, nbytes); 630 {
631 /* Don't play possible garbage at the end of file */
632 if (data_left < nbytes) nbytes = data_left;
633 data_left -= nbytes;
634 sd->write (sd, buffer, nbytes);
635 }
630 636
631 if (nbytes < 0) 637 if (nbytes < 0)
632 sound_perror ("Error reading sound file"); 638 sound_perror ("Error reading sound file");
@@ -986,7 +992,8 @@ alsa_period_size (sd)
986 struct sound_device *sd; 992 struct sound_device *sd;
987{ 993{
988 struct alsa_params *p = (struct alsa_params *) sd->data; 994 struct alsa_params *p = (struct alsa_params *) sd->data;
989 return p->period_size; 995 int fact = snd_pcm_format_size (sd->format, 1) * sd->channels;
996 return p->period_size * (fact > 0 ? fact : 1);
990} 997}
991 998
992static void 999static void
@@ -1209,9 +1216,10 @@ alsa_write (sd, buffer, nbytes)
1209 1216
1210 while (nwritten < nbytes) 1217 while (nwritten < nbytes)
1211 { 1218 {
1212 err = snd_pcm_writei (p->handle, 1219 snd_pcm_uframes_t frames = (nbytes - nwritten)/fact;
1213 buffer + nwritten, 1220 if (frames == 0) break;
1214 (nbytes - nwritten)/fact); 1221
1222 err = snd_pcm_writei (p->handle, buffer + nwritten, frames);
1215 if (err < 0) 1223 if (err < 0)
1216 { 1224 {
1217 if (err == -EPIPE) 1225 if (err == -EPIPE)
diff --git a/src/window.c b/src/window.c
index 8a25992d783..508ddadae9a 100644
--- a/src/window.c
+++ b/src/window.c
@@ -3612,11 +3612,12 @@ The variables `special-display-buffer-names',
3612`same-window-regexps' customize how certain buffer names are handled. 3612`same-window-regexps' customize how certain buffer names are handled.
3613The latter two take effect only if NOT-THIS-WINDOW is nil. 3613The latter two take effect only if NOT-THIS-WINDOW is nil.
3614 3614
3615If optional argument FRAME is `visible', search all visible frames. 3615If optional argument FRAME is `visible', check all visible frames
3616If FRAME is 0, search all visible and iconified frames. 3616for a window to use.
3617If FRAME is t, search all frames. 3617If FRAME is 0, check all visible and iconified frames.
3618If FRAME is a frame, search only that frame. 3618If FRAME is t, check all frames.
3619If FRAME is nil, search only the selected frame 3619If FRAME is a frame, check only that frame.
3620If FRAME is nil, check only the selected frame
3620 (actually the last nonminibuffer frame), 3621 (actually the last nonminibuffer frame),
3621 unless `pop-up-frames' or `display-buffer-reuse-frames' is non-nil, 3622 unless `pop-up-frames' or `display-buffer-reuse-frames' is non-nil,
3622 which means search visible and iconified frames. 3623 which means search visible and iconified frames.
diff --git a/src/xdisp.c b/src/xdisp.c
index cd4683a71b9..ee17abb7794 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -13283,8 +13283,15 @@ redisplay_window (window, just_this_one_p)
13283 13283
13284 /* If first window line is a continuation line, and window start 13284 /* If first window line is a continuation line, and window start
13285 is inside the modified region, but the first change is before 13285 is inside the modified region, but the first change is before
13286 current window start, we must select a new window start.*/ 13286 current window start, we must select a new window start.
13287
13288 However, if this is the result of a down-mouse event (e.g. by
13289 extending the mouse-drag-overlay), we don't want to select a
13290 new window start, since that would change the position under
13291 the mouse, resulting in an unwanted mouse-movement rather
13292 than a simple mouse-click. */
13287 if (NILP (w->start_at_line_beg) 13293 if (NILP (w->start_at_line_beg)
13294 && NILP (do_mouse_tracking)
13288 && CHARPOS (startp) > BEGV) 13295 && CHARPOS (startp) > BEGV)
13289 { 13296 {
13290 /* Make sure beg_unchanged and end_unchanged are up to date. 13297 /* Make sure beg_unchanged and end_unchanged are up to date.
diff --git a/src/xselect.c b/src/xselect.c
index 4f6959587fd..3fe109a5b85 100644
--- a/src/xselect.c
+++ b/src/xselect.c
@@ -2975,8 +2975,17 @@ it merely informs you that they have happened. */);
2975 2975
2976 DEFVAR_LISP ("selection-coding-system", &Vselection_coding_system, 2976 DEFVAR_LISP ("selection-coding-system", &Vselection_coding_system,
2977 doc: /* Coding system for communicating with other X clients. 2977 doc: /* Coding system for communicating with other X clients.
2978When sending or receiving text via selection and clipboard, the text is 2978
2979encoded or decoded by this coding system. 2979When sending text via selection and clipboard, if the requested
2980data-type is not "UTF8_STRING", the text is encoded by this coding
2981system.
2982
2983When receiving text, if the data-type of the received text is not
2984"UTF8_STRING", it is decoded by this coding system.
2985
2986See also the documentation of the variable `x-select-request-type' how
2987to control which data-type to request for receiving text.
2988
2980The default value is `compound-text-with-extensions'. */); 2989The default value is `compound-text-with-extensions'. */);
2981 Vselection_coding_system = intern ("compound-text-with-extensions"); 2990 Vselection_coding_system = intern ("compound-text-with-extensions");
2982 2991
diff --git a/src/xterm.c b/src/xterm.c
index 925b4e3bd1f..8b33bf00e54 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -5525,7 +5525,7 @@ x_scroll_bar_expose (bar, event)
5525 5525
5526 x_scroll_bar_set_handle (bar, XINT (bar->start), XINT (bar->end), 1); 5526 x_scroll_bar_set_handle (bar, XINT (bar->start), XINT (bar->end), 1);
5527 5527
5528 /* Switch to scroll bar foreground color. */ 5528 /* Switch to scroll bar foreground color. */
5529 if (f->output_data.x->scroll_bar_foreground_pixel != -1) 5529 if (f->output_data.x->scroll_bar_foreground_pixel != -1)
5530 XSetForeground (FRAME_X_DISPLAY (f), gc, 5530 XSetForeground (FRAME_X_DISPLAY (f), gc,
5531 f->output_data.x->scroll_bar_foreground_pixel); 5531 f->output_data.x->scroll_bar_foreground_pixel);
@@ -6979,15 +6979,16 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit)
6979 int y = event.xbutton.y; 6979 int y = event.xbutton.y;
6980 6980
6981 window = window_from_coordinates (f, x, y, 0, 0, 0, 1); 6981 window = window_from_coordinates (f, x, y, 0, 0, 0, 1);
6982 if (EQ (window, f->tool_bar_window)) 6982 tool_bar_p = EQ (window, f->tool_bar_window);
6983
6984 if (tool_bar_p && event.xbutton.button < 4)
6983 { 6985 {
6984 if (event.xbutton.type == ButtonPress) 6986 if (event.xbutton.type == ButtonPress)
6985 handle_tool_bar_click (f, x, y, 1, 0); 6987 handle_tool_bar_click (f, x, y, 1, 0);
6986 else 6988 else
6987 handle_tool_bar_click (f, x, y, 0, 6989 handle_tool_bar_click (f, x, y, 0,
6988 x_x_to_emacs_modifiers (dpyinfo, 6990 x_x_to_emacs_modifiers (dpyinfo,
6989 event.xbutton.state)); 6991 event.xbutton.state));
6990 tool_bar_p = 1;
6991 } 6992 }
6992 } 6993 }
6993 6994