aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--admin/FOR-RELEASE20
-rw-r--r--etc/ChangeLog4
-rw-r--r--etc/NEWS27
-rw-r--r--etc/TODO3
-rw-r--r--etc/emacs.bash2
-rw-r--r--lib-src/ChangeLog10
-rw-r--r--lib-src/movemail.c17
-rw-r--r--lisp/ChangeLog122
-rw-r--r--lisp/calc/calc-embed.el15
-rw-r--r--lisp/calc/calc-lang.el29
-rw-r--r--lisp/case-table.el36
-rw-r--r--lisp/emacs-lisp/lisp-mode.el10
-rw-r--r--lisp/faces.el24
-rw-r--r--lisp/font-core.el8
-rw-r--r--lisp/gnus/ChangeLog5
-rw-r--r--lisp/gnus/gnus-art.el11
-rw-r--r--lisp/help-fns.el1
-rw-r--r--lisp/help.el20
-rw-r--r--lisp/hi-lock.el4
-rw-r--r--lisp/international/mule-cmds.el9
-rw-r--r--lisp/net/ldap.el4
-rw-r--r--lisp/progmodes/gdb-ui.el39
-rw-r--r--lisp/progmodes/gud.el14
-rw-r--r--lisp/textmodes/ispell.el5
-rw-r--r--lisp/textmodes/reftex.el5
-rw-r--r--lisp/x-dnd.el26
-rw-r--r--lispref/ChangeLog58
-rw-r--r--lispref/buffers.texi46
-rw-r--r--lispref/commands.texi2
-rw-r--r--lispref/edebug.texi4
-rw-r--r--lispref/files.texi21
-rw-r--r--lispref/frames.texi79
-rw-r--r--lispref/text.texi49
-rw-r--r--lispref/windows.texi50
-rw-r--r--mac/inc/config.h2
-rw-r--r--mac/inc/s-mac.h2
-rw-r--r--man/ChangeLog52
-rw-r--r--man/basic.texi2
-rw-r--r--man/buffers.texi66
-rw-r--r--man/cmdargs.texi7
-rw-r--r--man/dired.texi5
-rw-r--r--man/files.texi49
-rw-r--r--man/fixit.texi2
-rw-r--r--man/frames.texi168
-rw-r--r--man/text.texi36
-rw-r--r--man/windows.texi15
-rw-r--r--src/ChangeLog79
-rw-r--r--src/buffer.c1
-rw-r--r--src/casefiddle.c2
-rw-r--r--src/dispextern.h7
-rw-r--r--src/dispnew.c8
-rw-r--r--src/gtkutil.c2
-rw-r--r--src/insdel.c16
-rw-r--r--src/mac.c2
-rw-r--r--src/macfns.c4
-rw-r--r--src/macterm.c6
-rw-r--r--src/sysdep.c4
-rw-r--r--src/undo.c3
-rw-r--r--src/xdisp.c2
-rw-r--r--src/xfaces.c8
-rw-r--r--src/xfns.c10
-rw-r--r--src/xmenu.c17
-rw-r--r--src/xselect.c48
-rw-r--r--src/xterm.c14
64 files changed, 1002 insertions, 416 deletions
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE
index be844766439..facce8ec9a7 100644
--- a/admin/FOR-RELEASE
+++ b/admin/FOR-RELEASE
@@ -181,7 +181,7 @@ SECTION READERS
181man/abbrevs.texi 181man/abbrevs.texi
182man/anti.texi 182man/anti.texi
183man/basic.texi "Luc Teirlinck" 183man/basic.texi "Luc Teirlinck"
184man/buffers.texi "Luc Teirlinck" 184man/buffers.texi "Luc Teirlinck" Chong Yidong
185man/building.texi "Ted Zlatanov" <tzz@lifelogs.com> 185man/building.texi "Ted Zlatanov" <tzz@lifelogs.com>
186man/calendar.texi Joakim Verona <joakim@verona.se> 186man/calendar.texi Joakim Verona <joakim@verona.se>
187man/cmdargs.texi 187man/cmdargs.texi
@@ -191,9 +191,9 @@ man/dired.texi
191man/display.texi "Luc Teirlinck" 191man/display.texi "Luc Teirlinck"
192man/emacs.texi "Luc Teirlinck" 192man/emacs.texi "Luc Teirlinck"
193man/entering.texi "Luc Teirlinck" 193man/entering.texi "Luc Teirlinck"
194man/files.texi "Luc Teirlinck" 194man/files.texi "Luc Teirlinck" Chong Yidong
195man/fixit.texi "Luc Teirlinck" 195man/fixit.texi "Luc Teirlinck"
196man/frames.texi "Luc Teirlinck" 196man/frames.texi "Luc Teirlinck" Chong Yidong
197man/glossary.texi 197man/glossary.texi
198man/help.texi "Luc Teirlinck" 198man/help.texi "Luc Teirlinck"
199man/indent.texi "Luc Teirlinck" 199man/indent.texi "Luc Teirlinck"
@@ -215,9 +215,9 @@ man/rmail.texi
215man/screen.texi "Luc Teirlinck" 215man/screen.texi "Luc Teirlinck"
216man/search.texi "Luc Teirlinck" 216man/search.texi "Luc Teirlinck"
217man/sending.texi 217man/sending.texi
218man/text.texi "Luc Teirlinck" 218man/text.texi "Luc Teirlinck" Chong Yidong
219man/trouble.texi 219man/trouble.texi
220man/windows.texi "Luc Teirlinck" 220man/windows.texi "Luc Teirlinck" Chong Yidong
221man/xresources.texi 221man/xresources.texi
222 222
223** Check the Emacs Lisp manual. 223** Check the Emacs Lisp manual.
@@ -233,7 +233,7 @@ lispref/abbrevs.texi "Luc Teirlinck"
233lispref/advice.texi Joakim Verona <joakim@verona.se> 233lispref/advice.texi Joakim Verona <joakim@verona.se>
234lispref/anti.texi 234lispref/anti.texi
235lispref/backups.texi "Luc Teirlinck" 235lispref/backups.texi "Luc Teirlinck"
236lispref/buffers.texi "Luc Teirlinck" 236lispref/buffers.texi "Luc Teirlinck" Chong Yidong
237lispref/calendar.texi Joakim Verona <joakim@verona.se> 237lispref/calendar.texi Joakim Verona <joakim@verona.se>
238lispref/commands.texi "Luc Teirlinck" 238lispref/commands.texi "Luc Teirlinck"
239lispref/compile.texi "Luc Teirlinck" 239lispref/compile.texi "Luc Teirlinck"
@@ -245,8 +245,8 @@ lispref/edebug.texi
245lispref/elisp.texi "Luc Teirlinck" 245lispref/elisp.texi "Luc Teirlinck"
246lispref/errors.texi "Luc Teirlinck" 246lispref/errors.texi "Luc Teirlinck"
247lispref/eval.texi "Luc Teirlinck" 247lispref/eval.texi "Luc Teirlinck"
248lispref/files.texi "Luc Teirlinck" 248lispref/files.texi "Luc Teirlinck" Chong Yidong
249lispref/frames.texi "Luc Teirlinck" 249lispref/frames.texi "Luc Teirlinck" Chong Yidong
250lispref/functions.texi "Luc Teirlinck" 250lispref/functions.texi "Luc Teirlinck"
251lispref/hash.texi "Luc Teirlinck" 251lispref/hash.texi "Luc Teirlinck"
252lispref/help.texi "Luc Teirlinck" 252lispref/help.texi "Luc Teirlinck"
@@ -274,10 +274,10 @@ lispref/streams.texi "Luc Teirlinck"
274lispref/strings.texi "Luc Teirlinck" 274lispref/strings.texi "Luc Teirlinck"
275lispref/symbols.texi "Luc Teirlinck" 275lispref/symbols.texi "Luc Teirlinck"
276lispref/syntax.texi "Luc Teirlinck" 276lispref/syntax.texi "Luc Teirlinck"
277lispref/text.texi 277lispref/text.texi Chong Yidong
278lispref/tips.texi "Luc Teirlinck" 278lispref/tips.texi "Luc Teirlinck"
279lispref/variables.texi "Luc Teirlinck" 279lispref/variables.texi "Luc Teirlinck"
280lispref/windows.texi "Luc Teirlinck" 280lispref/windows.texi "Luc Teirlinck" Chong Yidong
281 281
282 282
283Local variables: 283Local variables:
diff --git a/etc/ChangeLog b/etc/ChangeLog
index 4a3c7039363..47f20d8f03f 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,7 @@
12005-02-05 Frederik Fouvry <fouvry@CoLi.Uni-SB.DE>
2
3 * emacs.bash: Update the name of the socket of the Emacs server.
4
12005-01-22 David Kastrup <dak@gnu.org> 52005-01-22 David Kastrup <dak@gnu.org>
2 6
3 * NEWS: Mention alias `find-grep' for `grep-find'. 7 * NEWS: Mention alias `find-grep' for `grep-find'.
diff --git a/etc/NEWS b/etc/NEWS
index 826deb99aaf..6d2beca689f 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -201,22 +201,23 @@ character is used every few digits, making it easier to see byte
201boundries etc. For more info, see the documentation of the variable 201boundries etc. For more info, see the documentation of the variable
202`calculator-radix-grouping-mode'. 202`calculator-radix-grouping-mode'.
203 203
204+++
204** You can now follow links by clicking Mouse-1 on the link. 205** You can now follow links by clicking Mouse-1 on the link.
205 206
206Traditionally, Emacs uses a Mouse-1 click to set point and a Mouse-2 207Traditionally, Emacs uses a Mouse-1 click to set point and a Mouse-2
207click to follow a link, whereas most other applications use a Mouse-1 208click to follow a link, whereas most other applications use a Mouse-1
208click for both purposes, depending on whether you click outside or 209click for both purposes, depending on whether you click outside or
209inside a link. With release 21.4, the behaviour of a Mouse-1 click 210inside a link. Now the behavior of a Mouse-1 click has been changed
210has been changed to match this context-sentitive dual behaviour. 211to match this context-sentitive dual behavior.
211 212
212Depending on the current mode, a Mouse-2 click in Emacs may do much 213Depending on the current mode, a Mouse-2 click in Emacs may do much
213more than just follow a link, so the new Mouse-1 behaviour is only 214more than just follow a link, so the new Mouse-1 behavior is only
214activated for modes which explicitly mark a clickable text as a "link" 215activated for modes which explicitly mark a clickable text as a "link"
215(see the new function `mouse-on-link-p' for details). The lisp 216(see the new function `mouse-on-link-p' for details). The Lisp
216packages that are included in release 21.4 have been adapted to do 217packages that are included in release 21.4 have been adapted to do
217this, but external packages may not yet support this. However, there 218this, but external packages may not yet support this. However, there
218is no risk in using such packages, as the worst thing that could 219is no risk in using such packages, as the worst thing that could
219happen is that you get the original Mouse-1 behaviour when you click 220happen is that you get the original Mouse-1 behavior when you click
220on a link, which typically means that you set point where you click. 221on a link, which typically means that you set point where you click.
221 222
222If you want to get the original Mouse-1 action also inside a link, you 223If you want to get the original Mouse-1 action also inside a link, you
@@ -227,7 +228,7 @@ you release it).
227Dragging the Mouse-1 inside a link still performs the original 228Dragging the Mouse-1 inside a link still performs the original
228drag-mouse-1 action, typically copy the text. 229drag-mouse-1 action, typically copy the text.
229 230
230You can customize the new Mouse-1 behaviour via the new user option 231You can customize the new Mouse-1 behavior via the new user option
231`mouse-1-click-follows-link'. 232`mouse-1-click-follows-link'.
232 233
233+++ 234+++
@@ -551,7 +552,7 @@ Instead, the newline now "overflows" into the right fringe, and the
551cursor will be displayed in the fringe when positioned on that newline. 552cursor will be displayed in the fringe when positioned on that newline.
552 553
553The new user option 'overflow-newline-into-fringe' may be set to nil to 554The new user option 'overflow-newline-into-fringe' may be set to nil to
554revert to the old behaviour of continuing such lines. 555revert to the old behavior of continuing such lines.
555 556
556+++ 557+++
557** The buffer boundaries (i.e. first and last line in the buffer) may 558** The buffer boundaries (i.e. first and last line in the buffer) may
@@ -1613,7 +1614,7 @@ directory listing into a buffer.
1613 1614
1614** Unexpected yanking of text due to accidental clicking on the mouse 1615** Unexpected yanking of text due to accidental clicking on the mouse
1615wheel button (typically mouse-2) during wheel scrolling is now avoided. 1616wheel button (typically mouse-2) during wheel scrolling is now avoided.
1616This behaviour can be customized via the mouse-wheel-click-event and 1617This behavior can be customized via the mouse-wheel-click-event and
1617mouse-wheel-inhibit-click-time variables. 1618mouse-wheel-inhibit-click-time variables.
1618 1619
1619+++ 1620+++
@@ -2445,7 +2446,7 @@ before calling it, if used while defining a macro.
2445 2446
2446In addition, when ending or calling a macro with C-x e, the macro can 2447In addition, when ending or calling a macro with C-x e, the macro can
2447be repeated immediately by typing just the `e'. You can customize 2448be repeated immediately by typing just the `e'. You can customize
2448this behaviour via the variable kmacro-call-repeat-key and 2449this behavior via the variable kmacro-call-repeat-key and
2449kmacro-call-repeat-with-arg. 2450kmacro-call-repeat-with-arg.
2450 2451
2451Keyboard macros can now be debugged and edited interactively. 2452Keyboard macros can now be debugged and edited interactively.
@@ -3227,7 +3228,7 @@ created and can be changed later by `set-process-filter-multibyte'.
3227buffer is multibyte, the output of the process is at first converted 3228buffer is multibyte, the output of the process is at first converted
3228to multibyte by `string-to-multibyte' then inserted in the buffer. 3229to multibyte by `string-to-multibyte' then inserted in the buffer.
3229Previously, it was converted to multibyte by `string-as-multibyte', 3230Previously, it was converted to multibyte by `string-as-multibyte',
3230which was not compatible with the behaviour of file reading. 3231which was not compatible with the behavior of file reading.
3231 3232
3232+++ 3233+++
3233** New function `string-to-multibyte' converts a unibyte string to a 3234** New function `string-to-multibyte' converts a unibyte string to a
@@ -3715,7 +3716,7 @@ elements with the following format:
3715The `insert-for-yank' function looks for a yank-handler property on 3716The `insert-for-yank' function looks for a yank-handler property on
3716the first character on its string argument (typically the first 3717the first character on its string argument (typically the first
3717element on the kill-ring). If a yank-handler property is found, 3718element on the kill-ring). If a yank-handler property is found,
3718the normal behaviour of `insert-for-yank' is modified in various ways: 3719the normal behavior of `insert-for-yank' is modified in various ways:
3719 3720
3720 When FUNCTION is present and non-nil, it is called instead of `insert' 3721 When FUNCTION is present and non-nil, it is called instead of `insert'
3721to insert the string. FUNCTION takes one argument--the object to insert. 3722to insert the string. FUNCTION takes one argument--the object to insert.
@@ -3803,7 +3804,7 @@ speech synthesis.
3803 3804
3804On some systems, when emacs reads the output from a subprocess, the 3805On some systems, when emacs reads the output from a subprocess, the
3805output data is read in very small blocks, potentially resulting in 3806output data is read in very small blocks, potentially resulting in
3806very poor performance. This behaviour can be remedied to some extent 3807very poor performance. This behavior can be remedied to some extent
3807by setting the new variable process-adaptive-read-buffering to a 3808by setting the new variable process-adaptive-read-buffering to a
3808non-nil value (the default), as it will automatically delay reading 3809non-nil value (the default), as it will automatically delay reading
3809from such processes, to allowing them to produce more output before 3810from such processes, to allowing them to produce more output before
@@ -4317,7 +4318,7 @@ By default `unify-8859-on-encoding-mode' is turned on.
4317If you want the old behavior, set selection-coding-system to 4318If you want the old behavior, set selection-coding-system to
4318compound-text, which may be significantly more efficient. Using 4319compound-text, which may be significantly more efficient. Using
4319compound-text-with-extensions seems to be necessary only for decoding 4320compound-text-with-extensions seems to be necessary only for decoding
4320text from applications under XFree86 4.2, whose behaviour is actually 4321text from applications under XFree86 4.2, whose behavior is actually
4321contrary to the compound text specification. 4322contrary to the compound text specification.
4322 4323
4323 4324
diff --git a/etc/TODO b/etc/TODO
index bca0f9a12cb..d37de9bc280 100644
--- a/etc/TODO
+++ b/etc/TODO
@@ -24,6 +24,9 @@ to the FSF.
24 It should not generate :require. Or :require in defcustom 24 It should not generate :require. Or :require in defcustom
25 should not be recorded in the user's custom-set-variables call. 25 should not be recorded in the user's custom-set-variables call.
26 26
27** The buttons at the top of a custom buffer should not omit
28 variables whose values are currently hidden.
29
27* Important features: 30* Important features:
28 31
29** Provide user-friendly ways to list all available font families, 32** Provide user-friendly ways to list all available font families,
diff --git a/etc/emacs.bash b/etc/emacs.bash
index 80930f80d77..c482e82b361 100644
--- a/etc/emacs.bash
+++ b/etc/emacs.bash
@@ -22,7 +22,7 @@ function edit ()
22 if [ -n "${windowsys:+set}" ]; then 22 if [ -n "${windowsys:+set}" ]; then
23 # Do not just test if these files are sockets. On some systems 23 # Do not just test if these files are sockets. On some systems
24 # ordinary files or fifos are used instead. Just see if they exist. 24 # ordinary files or fifos are used instead. Just see if they exist.
25 if [ -e "${HOME}/.emacs_server" -o -e "/tmp/esrv${UID}-"* ]; then 25 if [ -e "${HOME}/.emacs_server" -o -e "/tmp/emacs${UID}/server" ]; then
26 emacsclient "$@" 26 emacsclient "$@"
27 return $? 27 return $?
28 else 28 else
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog
index 503a8bead04..4ffa38482cf 100644
--- a/lib-src/ChangeLog
+++ b/lib-src/ChangeLog
@@ -1,3 +1,13 @@
12005-02-04 Andreas Schwab <schwab@suse.de>
2
3 * movemail.c (fatal): Accept third parameter and pass down to
4 error.
5 (pfatal_with_name): Pass error string as format parameter instead
6 of as part of format string.
7 (pfatal_and_delete): Likewise.
8 (main): Adjust call to fatal.
9 (xmalloc): Likewise.
10
12005-01-29 Richard M. Stallman <rms@gnu.org> 112005-01-29 Richard M. Stallman <rms@gnu.org>
2 12
3 * movemail.c (popmail): Don't use Errmsg as format string. 13 * movemail.c (popmail): Don't use Errmsg as format string.
diff --git a/lib-src/movemail.c b/lib-src/movemail.c
index 46c47a97bd6..e4243a1bd66 100644
--- a/lib-src/movemail.c
+++ b/lib-src/movemail.c
@@ -245,7 +245,7 @@ main (argc, argv)
245#endif 245#endif
246 246
247 if (*outname == 0) 247 if (*outname == 0)
248 fatal ("Destination file name is empty", 0); 248 fatal ("Destination file name is empty", 0, 0);
249 249
250 /* Check access to output file. */ 250 /* Check access to output file. */
251 if (access (outname, F_OK) == 0 && access (outname, W_OK) != 0) 251 if (access (outname, F_OK) == 0 && access (outname, W_OK) != 0)
@@ -601,12 +601,12 @@ mail_spool_name (inname)
601/* Print error message and exit. */ 601/* Print error message and exit. */
602 602
603void 603void
604fatal (s1, s2) 604fatal (s1, s2, s3)
605 char *s1, *s2; 605 char *s1, *s2, *s3;
606{ 606{
607 if (delete_lockname) 607 if (delete_lockname)
608 unlink (delete_lockname); 608 unlink (delete_lockname);
609 error (s1, s2, 0); 609 error (s1, s2, s3);
610 exit (EXIT_FAILURE); 610 exit (EXIT_FAILURE);
611} 611}
612 612
@@ -631,17 +631,16 @@ void
631pfatal_with_name (name) 631pfatal_with_name (name)
632 char *name; 632 char *name;
633{ 633{
634 char *s = concat ("", strerror (errno), " for %s"); 634 fatal ("%s for %s", strerror (errno), name);
635 fatal (s, name);
636} 635}
637 636
638void 637void
639pfatal_and_delete (name) 638pfatal_and_delete (name)
640 char *name; 639 char *name;
641{ 640{
642 char *s = concat ("", strerror (errno), " for %s"); 641 char *s = strerror (errno);
643 unlink (name); 642 unlink (name);
644 fatal (s, name); 643 fatal ("%s for %s", s, name);
645} 644}
646 645
647/* Return a newly-allocated string whose contents concatenate those of s1, s2, s3. */ 646/* Return a newly-allocated string whose contents concatenate those of s1, s2, s3. */
@@ -669,7 +668,7 @@ xmalloc (size)
669{ 668{
670 long *result = (long *) malloc (size); 669 long *result = (long *) malloc (size);
671 if (!result) 670 if (!result)
672 fatal ("virtual memory exhausted", 0); 671 fatal ("virtual memory exhausted", 0, 0);
673 return result; 672 return result;
674} 673}
675 674
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 5722db8f6b1..a38b40db6e1 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,107 @@
12005-02-05 Arne_J,Ax(Brgensen <arne@arnested.dk> (tiny change)
2
3 * net/ldap.el (ldap-search-internal): Support attributes with
4 optional descriptions separated by a semi-colon, as in
5 "userCertificate;binary".
6
72005-02-05 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
8
9 * x-dnd.el (x-dnd-handle-xdnd): Handle the case where the flags
10 isn't a cons (i.e. the version is 0).
11
122005-02-05 Eli Zaretskii <eliz@gnu.org>
13
14 * help.el (help-for-help): Doc fix.
15
162005-02-05 Nick Roberts <nickrob@snap.net.nz>
17
18 * progmodes/gdb-ui.el: Update copyright. Put GDB-Frames before
19 GDB-Windows on the menu-bar as this works better.
20
212005-02-04 Jay Belanger <belanger@truman.edu>
22
23 * calc/calc-embed.el (calc-embedded-update): Don't put in
24 unnecessary newlines. Adjust the end of formula marker.
25
26 * calc/calc-lang.el (math-latex-parse-frac): Don't use arguments.
27 (math-latex-parse-two-args): New function.
28
292005-02-03 Lute Kamstra <lute@gnu.org>
30
31 * help-fns.el (help-with-tutorial): Make sure that users cannot
32 remove the entire text of the tutorial by means of `undo'.
33
342005-02-03 Stefan Monnier <monnier@iro.umontreal.ca>
35
36 * textmodes/ispell.el (ispell-internal-change-dictionary): Fix problem
37 in recent changes, where the ispell process was repeatedly
38 killed & restarted.
39
40 * international/mule-cmds.el (set-locale-environment): Set file-name
41 coding system to utf-8 on Darwin systems.
42 (set-default-coding-systems): Don't set default-file-name-coding-system
43 on Darwin systems.
44
452005-02-03 Richard M. Stallman <rms@gnu.org>
46
47 * hi-lock.el (hi-lock-mode): Turning on Hi-Lock turns on Font-Lock.
48
492005-02-03 Matt Hodges <MPHodges@member.fsf.org>
50
51 * faces.el (list-faces-display): Add optional argument.
52
532005-02-02 Stefan Monnier <monnier@iro.umontreal.ca>
54
55 * font-core.el (font-lock-default-function): Handle the rare case where
56 only font-lock-keywords is set.
57
582005-02-02 Kenichi Handa <handa@m17n.org>
59
60 * international/characters.el: Cancel previous change for
61 I-WITH-DOT-ABOVE and DOTLESS-i.
62
63 * international/latin-5.el: Cancel previous change.
64
652005-02-02 Nick Roberts <nickrob@snap.net.nz>
66
67 * progmodes/gud.el: Correction to syntax in gud-menu-map.
68
692005-02-02 Kenichi Handa <handa@m17n.org>
70
71 * international/latin-5.el (tbl): Setup cases of I-WITH-DOT-ABOVE,
72 DOTLESS-i.
73
74 * international/characters.el: Setup cases of GREEK-FINAL-SIGMA,
75 Y-WITH-DIAERESIS, I-WITH-DOT-ABOVE, DOTLESS-i.
76
77 * case-table.el (get-upcase-table): New function.
78 (copy-case-table): Copy upcaes table too if non-nil.
79 (set-case-syntax-delims): Maintain upcase table too.
80 (set-case-syntax-pair): Likewise.
81 (set-upcase-syntax, set-downcase-syntax): New functions.
82 (set-case-syntax): Maintain upcase table too.
83
842005-02-02 Nick Roberts <nickrob@snap.net.nz>
85
86 * progmodes/gdb-ui.el: (gdb-goto-info): Delete.
87
88 * progmodes/gud.el (gud-goto-info): New function.
89 (gud-tool-bar-map): Use correct icon.
90
912005-02-01 Thien-Thi Nguyen <ttn@gnu.org>
92
93 * emacs-lisp/lisp-mode.el (lisp-indent-function): Fix bug:
94 When delegating, order args in the funcall correctly.
95
962005-02-01 Thien-Thi Nguyen <ttn@gnu.org>
97
98 * emacs-lisp/lisp-mode.el (lisp-indent-function): Doc fix.
99
1002005-02-01 Carsten Dominik <dominik@science.uva.nl>
101
102 * textmodes/reftex.el (reftex-access-scan-info): Error out in a
103 buffer not visiting a file.
104
12005-01-31 Jay Belanger <belanger@truman.edu> 1052005-01-31 Jay Belanger <belanger@truman.edu>
2 106
3 * calc/calc-embed.el (calc-embedded-find-bounds): Set the formula 107 * calc/calc-embed.el (calc-embedded-find-bounds): Set the formula
@@ -111,7 +215,7 @@
111 215
1122005-01-29 Richard M. Stallman <rms@gnu.org> 2162005-01-29 Richard M. Stallman <rms@gnu.org>
113 217
114 * ses.el (undo-more): defadvice deleted. 218 * ses.el (undo-more): Delete defadvice.
115 (ses-begin-change): Doc fix. 219 (ses-begin-change): Doc fix.
116 220
117 * dired.el (dired-mode-map): Remap `undo' and `advertised-undo' 221 * dired.el (dired-mode-map): Remap `undo' and `advertised-undo'
@@ -129,7 +233,7 @@
129 233
130 * simple.el (undo): Fix the test for continuing a series of undos. 234 * simple.el (undo): Fix the test for continuing a series of undos.
131 (undo-more): Set pending-undo-list to t when we reach end. 235 (undo-more): Set pending-undo-list to t when we reach end.
132 (pending-undo-list): defvar moved up. 236 (pending-undo-list): Move up defvar.
133 237
134 * wid-edit.el (widget-button-click): 238 * wid-edit.el (widget-button-click):
135 Shorten the range of the track-mouse binding. 239 Shorten the range of the track-mouse binding.
@@ -154,6 +258,20 @@
154 (gdb-assembler-custom): Update to recognise breakpoint information 258 (gdb-assembler-custom): Update to recognise breakpoint information
155 added on 2005-01-19. 259 added on 2005-01-19.
156 260
2612005-01-28 Stefan Monnier <monnier@iro.umontreal.ca>
262
263 * progmodes/scheme.el (scheme-mode-variables): Set comment-add.
264 (dsssl-mode): Use define-derived-mode.
265 (scheme-mode-initialize): Remove.
266 (scheme-mode): Use run-mode-hooks.
267
268 * cus-edit.el (customize-group-other-window)
269 (custom-buffer-create-other-window): Don't override special-display-*.
270 (custom-mode-map): Make it dense.
271
272 * emacs-lisp/lisp-mode.el (eval-defun-1): Make sure `defvar' always
273 sets the default value.
274
1572005-01-28 Eli Zaretskii <eliz@gnu.org> 2752005-01-28 Eli Zaretskii <eliz@gnu.org>
158 276
159 * descr-text.el: Add more keywords. 277 * descr-text.el: Add more keywords.
diff --git a/lisp/calc/calc-embed.el b/lisp/calc/calc-embed.el
index 4c6311c9a5b..e3b3b6b5b19 100644
--- a/lisp/calc/calc-embed.el
+++ b/lisp/calc/calc-embed.el
@@ -967,19 +967,24 @@ The command \\[yank] can retrieve it from there."
967 (calc-embedded-original-buffer t info) 967 (calc-embedded-original-buffer t info)
968 (or (equal str (aref info 6)) 968 (or (equal str (aref info 6))
969 (let ((delta (- (aref info 5) (aref info 3))) 969 (let ((delta (- (aref info 5) (aref info 3)))
970 (adjbot 0)
970 (buffer-read-only nil)) 971 (buffer-read-only nil))
971 (goto-char (aref info 2)) 972 (goto-char (aref info 2))
972 (delete-region (point) (aref info 3)) 973 (delete-region (point) (aref info 3))
973 (and (> (nth 1 entry) (1+ extra)) 974 (and (> (nth 1 entry) (1+ extra))
974 (aref info 7) 975 (aref info 7)
975 (progn 976 (progn
976 (aset info 7 nil)
977 (delete-horizontal-space) 977 (delete-horizontal-space)
978 (insert "\n\n") 978 (if (looking-at "\n")
979 (delete-horizontal-space) 979 ;; If there's a newline there, don't add one
980 (backward-char 1))) 980 (insert "\n")
981 (insert "\n\n")
982 (delete-horizontal-space)
983 (setq adjbot 1)
984; (setq delta (1+ delta))
985 (backward-char 1))))
981 (insert str) 986 (insert str)
982 (set-marker (aref info 3) (point)) 987 (set-marker (aref info 3) (+ (point) adjbot))
983 (set-marker (aref info 5) (+ (point) delta)) 988 (set-marker (aref info 5) (+ (point) delta))
984 (aset info 6 str)))))) 989 (aset info 6 str))))))
985 (if (eq (car-safe val) 'calcFunc-evalto) 990 (if (eq (car-safe val) 'calcFunc-evalto)
diff --git a/lisp/calc/calc-lang.el b/lisp/calc/calc-lang.el
index d91d78fc461..63d24bb76d5 100644
--- a/lisp/calc/calc-lang.el
+++ b/lisp/calc/calc-lang.el
@@ -469,12 +469,12 @@
469(put 'latex 'math-function-table 469(put 'latex 'math-function-table
470 (append 470 (append
471 (get 'tex 'math-function-table) 471 (get 'tex 'math-function-table)
472 '(( \\frac . (math-latex-parse-frac /)) 472 '(( \\frac . (math-latex-parse-frac))
473 ( \\tfrac . (math-latex-parse-frac /)) 473 ( \\tfrac . (math-latex-parse-frac))
474 ( \\dfrac . (math-latex-parse-frac /)) 474 ( \\dfrac . (math-latex-parse-frac))
475 ( \\binom . (math-latex-parse-frac calcFunc-choose)) 475 ( \\binom . (math-latex-parse-two-args calcFunc-choose))
476 ( \\tbinom . (math-latex-parse-frac calcFunc-choose)) 476 ( \\tbinom . (math-latex-parse-two-args calcFunc-choose))
477 ( \\dbinom . (math-latex-parse-frac calcFunc-choose)) 477 ( \\dbinom . (math-latex-parse-two-args calcFunc-choose))
478 ( \\phi . calcFunc-totient ) 478 ( \\phi . calcFunc-totient )
479 ( \\mu . calcFunc-moebius )))) 479 ( \\mu . calcFunc-moebius ))))
480 480
@@ -487,12 +487,23 @@
487 487
488(put 'latex 'math-complex-format 'i) 488(put 'latex 'math-complex-format 'i)
489 489
490
490(defun math-latex-parse-frac (f val) 491(defun math-latex-parse-frac (f val)
491 (let (numer denom) 492 (let (numer denom)
492 (setq args (math-read-expr-list)) 493 (setq numer (car (math-read-expr-list)))
494 (math-read-token)
495 (setq denom (math-read-factor))
496 (if (and (Math-num-integerp numer)
497 (Math-num-integerp denom))
498 (list 'frac numer denom)
499 (list '/ numer denom))))
500
501(defun math-latex-parse-two-args (f val)
502 (let (first second)
503 (setq first (car (math-read-expr-list)))
493 (math-read-token) 504 (math-read-token)
494 (setq margs (math-read-factor)) 505 (setq second (math-read-factor))
495 (list (nth 2 f) (car args) margs))) 506 (list (nth 2 f) first second)))
496 507
497(defun math-latex-print-frac (a fn) 508(defun math-latex-print-frac (a fn)
498 (list 'horiz (nth 1 fn) "{" (math-compose-expr (nth 1 a) -1) 509 (list 'horiz (nth 1 fn) "{" (math-compose-expr (nth 1 a) -1)
diff --git a/lisp/case-table.el b/lisp/case-table.el
index 747e90c28f5..c3da621a9dd 100644
--- a/lisp/case-table.el
+++ b/lisp/case-table.el
@@ -1,6 +1,6 @@
1;;; case-table.el --- code to extend the character set and support case tables 1;;; case-table.el --- code to extend the character set and support case tables
2 2
3;; Copyright (C) 1988, 1994 Free Software Foundation, Inc. 3;; Copyright (C) 1988, 1994, 2005 Free Software Foundation, Inc.
4 4
5;; Author: Howard Gayle 5;; Author: Howard Gayle
6;; Maintainer: FSF 6;; Maintainer: FSF
@@ -60,11 +60,26 @@
60 (describe-vector description) 60 (describe-vector description)
61 (help-mode))))) 61 (help-mode)))))
62 62
63(defun get-upcase-table (case-table)
64 "Return the upcase table of CASE-TABLE."
65 (or (char-table-extra-slot case-table 0)
66 ;; Setup all extra slots of CASE-TABLE by temporarily selecting
67 ;; it as the standard case table.
68 (let ((old (standard-case-table)))
69 (unwind-protect
70 (progn
71 (set-standard-case-table case-table)
72 (char-table-extra-slot case-table 0))
73 (or (eq case-table old)
74 (set-standard-case-table old))))))
75
63(defun copy-case-table (case-table) 76(defun copy-case-table (case-table)
64 (let ((copy (copy-sequence case-table))) 77 (let ((copy (copy-sequence case-table))
65 ;; Clear out the extra slots so that they will be 78 (up (char-table-extra-slot case-table 0)))
66 ;; recomputed from the main (downcase) table. 79 ;; Clear out the extra slots (except for upcase table) so that
67 (set-char-table-extra-slot copy 0 nil) 80 ;; they will be recomputed from the main (downcase) table.
81 (if up
82 (set-char-table-extra-slot copy 0 (copy-sequence up)))
68 (set-char-table-extra-slot copy 1 nil) 83 (set-char-table-extra-slot copy 1 nil)
69 (set-char-table-extra-slot copy 2 nil) 84 (set-char-table-extra-slot copy 2 nil)
70 copy)) 85 copy))
@@ -77,9 +92,11 @@ It also modifies `standard-syntax-table' to
77indicate left and right delimiters." 92indicate left and right delimiters."
78 (aset table l l) 93 (aset table l l)
79 (aset table r r) 94 (aset table r r)
95 (let ((up (get-upcase-table table)))
96 (aset up l l)
97 (aset up r r))
80 ;; Clear out the extra slots so that they will be 98 ;; Clear out the extra slots so that they will be
81 ;; recomputed from the main (downcase) table. 99 ;; recomputed from the main (downcase) table and upcase table.
82 (set-char-table-extra-slot table 0 nil)
83 (set-char-table-extra-slot table 1 nil) 100 (set-char-table-extra-slot table 1 nil)
84 (set-char-table-extra-slot table 2 nil) 101 (set-char-table-extra-slot table 2 nil)
85 (modify-syntax-entry l (concat "(" (char-to-string r) " ") 102 (modify-syntax-entry l (concat "(" (char-to-string r) " ")
@@ -110,9 +127,10 @@ that will be used as the downcase part of a case table.
110It also modifies `standard-syntax-table'. 127It also modifies `standard-syntax-table'.
111SYNTAX should be \" \", \"w\", \".\" or \"_\"." 128SYNTAX should be \" \", \"w\", \".\" or \"_\"."
112 (aset table c c) 129 (aset table c c)
130 (let ((up (get-upcase-table table)))
131 (aset up c c))
113 ;; Clear out the extra slots so that they will be 132 ;; Clear out the extra slots so that they will be
114 ;; recomputed from the main (downcase) table. 133 ;; recomputed from the main (downcase) table and upcase table.
115 (set-char-table-extra-slot table 0 nil)
116 (set-char-table-extra-slot table 1 nil) 134 (set-char-table-extra-slot table 1 nil)
117 (set-char-table-extra-slot table 2 nil) 135 (set-char-table-extra-slot table 2 nil)
118 (modify-syntax-entry c syntax (standard-syntax-table))) 136 (modify-syntax-entry c syntax (standard-syntax-table)))
diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el
index 86c3ac1bab4..6b5c0b1c0f1 100644
--- a/lisp/emacs-lisp/lisp-mode.el
+++ b/lisp/emacs-lisp/lisp-mode.el
@@ -881,11 +881,11 @@ which has a non-nil property `lisp-indent-function',
881that specifies how to do the indentation. The property value can be 881that specifies how to do the indentation. The property value can be
882* `defun', meaning indent `defun'-style; 882* `defun', meaning indent `defun'-style;
883* an integer N, meaning indent the first N arguments specially 883* an integer N, meaning indent the first N arguments specially
884like ordinary function arguments and then indent any further 884 like ordinary function arguments and then indent any further
885aruments like a body; 885 arguments like a body;
886* a function to call just as this function was called. 886* a function to call just as this function was called.
887If that function returns nil, that means it doesn't specify 887 If that function returns nil, that means it doesn't specify
888the indentation. 888 the indentation.
889 889
890This function also returns nil meaning don't specify the indentation." 890This function also returns nil meaning don't specify the indentation."
891 (let ((normal-indent (current-column))) 891 (let ((normal-indent (current-column)))
@@ -921,7 +921,7 @@ This function also returns nil meaning don't specify the indentation."
921 (lisp-indent-specform method state 921 (lisp-indent-specform method state
922 indent-point normal-indent)) 922 indent-point normal-indent))
923 (method 923 (method
924 (funcall method state indent-point))))))) 924 (funcall method indent-point state)))))))
925 925
926(defvar lisp-body-indent 2 926(defvar lisp-body-indent 2
927 "Number of columns to indent the second line of a `(def...)' form.") 927 "Number of columns to indent the second line of a `(def...)' form.")
diff --git a/lisp/faces.el b/lisp/faces.el
index 5efcc30cfea..0185541ecef 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -1143,15 +1143,26 @@ Value is a list (FACE NEW-VALUE) where FACE is the face read
1143;; conflict with Lucid, which uses that name differently. 1143;; conflict with Lucid, which uses that name differently.
1144 1144
1145(defvar help-xref-stack) 1145(defvar help-xref-stack)
1146(defun list-faces-display () 1146(defun list-faces-display (&optional regexp)
1147 "List all faces, using the same sample text in each. 1147 "List all faces, using the same sample text in each.
1148The sample text is a string that comes from the variable 1148The sample text is a string that comes from the variable
1149`list-faces-sample-text'." 1149`list-faces-sample-text'.
1150 (interactive) 1150
1151If REGEXP is non-nil, list only those faces with names matching
1152this regular expression. When called interactively with a prefix
1153arg, prompt for a regular expression."
1154 (interactive (list (and current-prefix-arg
1155 (read-string "List faces matching regexp: "))))
1151 (let ((faces (sort (face-list) #'string-lessp)) 1156 (let ((faces (sort (face-list) #'string-lessp))
1152 (face nil)
1153 (frame (selected-frame)) 1157 (frame (selected-frame))
1154 disp-frame window face-name) 1158 disp-frame window face-name)
1159 (when (> (length regexp) 0)
1160 (setq faces
1161 (delq nil
1162 (mapcar (lambda (f)
1163 (when (string-match regexp (symbol-name f))
1164 f))
1165 faces))))
1155 (with-output-to-temp-buffer "*Faces*" 1166 (with-output-to-temp-buffer "*Faces*"
1156 (save-excursion 1167 (save-excursion
1157 (set-buffer standard-output) 1168 (set-buffer standard-output)
@@ -1164,9 +1175,7 @@ The sample text is a string that comes from the variable
1164 "\\[help-follow] on a face name to customize it\n" 1175 "\\[help-follow] on a face name to customize it\n"
1165 "or on its sample text for a description of the face.\n\n"))) 1176 "or on its sample text for a description of the face.\n\n")))
1166 (setq help-xref-stack nil) 1177 (setq help-xref-stack nil)
1167 (while faces 1178 (dolist (face faces)
1168 (setq face (car faces))
1169 (setq faces (cdr faces))
1170 (setq face-name (symbol-name face)) 1179 (setq face-name (symbol-name face))
1171 (insert (format "%25s " face-name)) 1180 (insert (format "%25s " face-name))
1172 ;; Hyperlink to a customization buffer for the face. Using 1181 ;; Hyperlink to a customization buffer for the face. Using
@@ -1208,6 +1217,7 @@ The sample text is a string that comes from the variable
1208 (copy-face (car faces) (car faces) frame disp-frame) 1217 (copy-face (car faces) (car faces) frame disp-frame)
1209 (setq faces (cdr faces))))))) 1218 (setq faces (cdr faces)))))))
1210 1219
1220
1211(defun describe-face (face &optional frame) 1221(defun describe-face (face &optional frame)
1212 "Display the properties of face FACE on FRAME. 1222 "Display the properties of face FACE on FRAME.
1213Interactively, FACE defaults to the faces of the character after point 1223Interactively, FACE defaults to the faces of the character after point
diff --git a/lisp/font-core.el b/lisp/font-core.el
index ce4a35a0ec3..bbe1961e51e 100644
--- a/lisp/font-core.el
+++ b/lisp/font-core.el
@@ -1,7 +1,7 @@
1;;; font-core.el --- Core interface to font-lock 1;;; font-core.el --- Core interface to font-lock
2 2
3;; Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 1999, 2000, 2001, 02, 2003 3;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
4;; Free Software Foundation, Inc. 4;; 2002, 2003, 2005 Free Software Foundation, Inc.
5 5
6;; Maintainer: FSF 6;; Maintainer: FSF
7;; Keywords: languages, faces 7;; Keywords: languages, faces
@@ -202,6 +202,7 @@ this function onto `change-major-mode-hook'."
202 ;; Only do hard work if the mode has specified stuff in 202 ;; Only do hard work if the mode has specified stuff in
203 ;; `font-lock-defaults'. 203 ;; `font-lock-defaults'.
204 (when (or font-lock-defaults 204 (when (or font-lock-defaults
205 (and (boundp 'font-lock-keywords) font-lock-keywords)
205 (cdr (assq major-mode font-lock-defaults-alist))) 206 (cdr (assq major-mode font-lock-defaults-alist)))
206 (font-lock-mode-internal mode))) 207 (font-lock-mode-internal mode)))
207 208
@@ -295,6 +296,5 @@ means that Font Lock mode is turned on for buffers in C and C++ modes only."
295 296
296(provide 'font-core) 297(provide 'font-core)
297 298
299;; arch-tag: f8c286e1-02f7-41d9-b89b-1b67780aed71
298;;; font-core.el ends here 300;;; font-core.el ends here
299
300;;; arch-tag: f8c286e1-02f7-41d9-b89b-1b67780aed71
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index eb761d10b27..e0db7c194a7 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,8 @@
12005-02-03 Katsumi Yamaoka <yamaoka@jpl.org>
2
3 * gnus-art.el (gnus-mime-inline-part): Show the raw contents if a
4 prefix arg is neither nil nor a number, as info specifies.
5
12005-01-30 Stefan Monnier <monnier@iro.umontreal.ca> 62005-01-30 Stefan Monnier <monnier@iro.umontreal.ca>
2 7
3 * gnus-art.el (gnus-article-mode): Turn off the "\ " non-break space. 8 * gnus-art.el (gnus-article-mode): Turn off the "\ " non-break space.
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index 3f8e172c1a8..22d48c3eff0 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -4354,7 +4354,16 @@ are decompressed."
4354 (setq charset 4354 (setq charset
4355 (or (cdr (assq arg 4355 (or (cdr (assq arg
4356 gnus-summary-show-article-charset-alist)) 4356 gnus-summary-show-article-charset-alist))
4357 (mm-read-coding-system "Charset: "))))) 4357 (mm-read-coding-system "Charset: "))))
4358 (t
4359 (if (mm-handle-undisplayer handle)
4360 (mm-remove-part handle))
4361 (setq contents
4362 (if (fboundp 'string-to-multibyte)
4363 (string-to-multibyte contents)
4364 (mapconcat
4365 (lambda (ch) (mm-string-as-multibyte (char-to-string ch)))
4366 contents "")))))
4358 (forward-line 2) 4367 (forward-line 2)
4359 (mm-insert-inline handle 4368 (mm-insert-inline handle
4360 (if (and charset 4369 (if (and charset
diff --git a/lisp/help-fns.el b/lisp/help-fns.el
index 9acadaa2fa6..4bf0a4775a0 100644
--- a/lisp/help-fns.el
+++ b/lisp/help-fns.el
@@ -97,6 +97,7 @@ With ARG, you are asked to choose which language."
97 (forward-line 1) 97 (forward-line 1)
98 (newline (- n (/ n 2))))) 98 (newline (- n (/ n 2)))))
99 (goto-char (point-min)) 99 (goto-char (point-min))
100 (setq buffer-undo-list nil)
100 (set-buffer-modified-p nil)))) 101 (set-buffer-modified-p nil))))
101 102
102;;;###autoload 103;;;###autoload
diff --git a/lisp/help.el b/lisp/help.el
index f5831c9ab3f..5da7ef0c03a 100644
--- a/lisp/help.el
+++ b/lisp/help.el
@@ -186,7 +186,7 @@ If FUNCTION is nil, it applies `message', thus displaying the message."
186\(Use SPC or DEL to scroll through this text. Type \\<help-map>\\[help-quit] to exit the Help command.) 186\(Use SPC or DEL to scroll through this text. Type \\<help-map>\\[help-quit] to exit the Help command.)
187 187
188a command-apropos. Give a substring, and see a list of commands 188a command-apropos. Give a substring, and see a list of commands
189 (functions interactively callable) that contain 189 (functions that are interactively callable) that contain
190 that substring. See also the apropos command. 190 that substring. See also the apropos command.
191b describe-bindings. Display table of all key bindings. 191b describe-bindings. Display table of all key bindings.
192c describe-key-briefly. Type a command key sequence; 192c describe-key-briefly. Type a command key sequence;
@@ -194,24 +194,28 @@ c describe-key-briefly. Type a command key sequence;
194C describe-coding-system. This describes either a specific coding system 194C describe-coding-system. This describes either a specific coding system
195 (if you type its name) or the coding systems currently in use 195 (if you type its name) or the coding systems currently in use
196 (if you type just RET). 196 (if you type just RET).
197e view-echo-area-messages. Show the `*Messages*' buffer. 197e view-echo-area-messages. Show the buffer where the echo-area messages
198f describe-function. Type a function name and get documentation of it. 198 are stored.
199f describe-function. Type a function name and get its documentation.
199F Info-goto-emacs-command-node. Type a function name; 200F Info-goto-emacs-command-node. Type a function name;
200 it takes you to the Info node for that command. 201 it takes you to the on-line manual's section that describes
202 the command.
201h Display the HELLO file which illustrates various scripts. 203h Display the HELLO file which illustrates various scripts.
202i info. The info documentation reader. 204i info. The Info documentation reader: read on-line manuals.
203I describe-input-method. Describe a specific input method (if you type 205I describe-input-method. Describe a specific input method (if you type
204 its name) or the current input method (if you type just RET). 206 its name) or the current input method (if you type just RET).
205k describe-key. Type a command key sequence; 207k describe-key. Type a command key sequence;
206 it displays the full documentation. 208 it displays the full documentation for that key sequence.
207K Info-goto-emacs-key-command-node. Type a command key sequence; 209K Info-goto-emacs-key-command-node. Type a command key sequence;
208 it takes you to the Info node for the command bound to that key. 210 it takes you to the on-line manual's section that describes
211 the command bound to that key.
209l view-lossage. Show last 100 characters you typed. 212l view-lossage. Show last 100 characters you typed.
210L describe-language-environment. This describes either a 213L describe-language-environment. This describes either a
211 specific language environment (if you type its name) 214 specific language environment (if you type its name)
212 or the current language environment (if you type just RET). 215 or the current language environment (if you type just RET).
213m describe-mode. Print documentation of current minor modes, 216m describe-mode. Display documentation of current minor modes,
214 and the current major mode, including their special commands. 217 and the current major mode, including their special commands.
218n view-emacs-news. Display news of recent Emacs changes.
215p finder-by-keyword. Find packages matching a given topic keyword. 219p finder-by-keyword. Find packages matching a given topic keyword.
216s describe-syntax. Display contents of syntax table, plus explanations. 220s describe-syntax. Display contents of syntax table, plus explanations.
217S info-lookup-symbol. Display the definition of a specific symbol 221S info-lookup-symbol. Display the definition of a specific symbol
diff --git a/lisp/hi-lock.el b/lisp/hi-lock.el
index 99eeb698171..81c7296760f 100644
--- a/lisp/hi-lock.el
+++ b/lisp/hi-lock.el
@@ -294,6 +294,10 @@ is found. A mode is excluded if it's in the list `hi-lock-exclude-modes'."
294 (when (and (not hi-lock-mode-prev) hi-lock-mode) 294 (when (and (not hi-lock-mode-prev) hi-lock-mode)
295 (add-hook 'find-file-hooks 'hi-lock-find-file-hook) 295 (add-hook 'find-file-hooks 'hi-lock-find-file-hook)
296 (add-hook 'font-lock-mode-hook 'hi-lock-font-lock-hook) 296 (add-hook 'font-lock-mode-hook 'hi-lock-font-lock-hook)
297 (when (eq nil font-lock-defaults)
298 (setq font-lock-defaults '(nil)))
299 (unless font-lock-mode
300 (font-lock-mode 1))
297 (define-key-after menu-bar-edit-menu [hi-lock] 301 (define-key-after menu-bar-edit-menu [hi-lock]
298 (cons "Regexp Highlighting" hi-lock-menu)) 302 (cons "Regexp Highlighting" hi-lock-menu))
299 (dolist (buffer (buffer-list)) 303 (dolist (buffer (buffer-list))
diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el
index 5953d499755..acebb3b8d70 100644
--- a/lisp/international/mule-cmds.el
+++ b/lisp/international/mule-cmds.el
@@ -332,7 +332,8 @@ This also sets the following values:
332 (or (local-variable-p 'buffer-file-coding-system buffer) 332 (or (local-variable-p 'buffer-file-coding-system buffer)
333 (ucs-set-table-for-input buffer)))) 333 (ucs-set-table-for-input buffer))))
334 334
335 (if default-enable-multibyte-characters 335 (if (and default-enable-multibyte-characters (not (eq system-type 'darwin)))
336 ;; The file-name coding system on Darwin systems is always utf-8.
336 (setq default-file-name-coding-system coding-system)) 337 (setq default-file-name-coding-system coding-system))
337 ;; If coding-system is nil, honor that on MS-DOS as well, so 338 ;; If coding-system is nil, honor that on MS-DOS as well, so
338 ;; that they could reset the terminal coding system. 339 ;; that they could reset the terminal coding system.
@@ -1647,6 +1648,8 @@ The default status is as follows:
1647 1648
1648 (set-default-coding-systems nil) 1649 (set-default-coding-systems nil)
1649 (setq default-sendmail-coding-system 'iso-latin-1) 1650 (setq default-sendmail-coding-system 'iso-latin-1)
1651 ;; On Darwin systems, this should be utf-8, but when this file is loaded
1652 ;; utf-8 is not yet defined, so we set it in set-locale-environment instead.
1650 (setq default-file-name-coding-system 'iso-latin-1) 1653 (setq default-file-name-coding-system 'iso-latin-1)
1651 ;; Preserve eol-type from existing default-process-coding-systems. 1654 ;; Preserve eol-type from existing default-process-coding-systems.
1652 ;; On non-unix-like systems in particular, these may have been set 1655 ;; On non-unix-like systems in particular, these may have been set
@@ -2411,6 +2414,10 @@ system codeset `%s' for this locale." coding-system codeset))))))))
2411 (set-keyboard-coding-system code-page-coding) 2414 (set-keyboard-coding-system code-page-coding)
2412 (set-terminal-coding-system code-page-coding)))) 2415 (set-terminal-coding-system code-page-coding))))
2413 2416
2417 ;; On Darwin, file names are always encoded in utf-8, no matter the locale.
2418 (when (eq system-type 'darwin)
2419 (setq default-file-name-coding-system 'utf-8))
2420
2414 ;; Default to A4 paper if we're not in a C, POSIX or US locale. 2421 ;; Default to A4 paper if we're not in a C, POSIX or US locale.
2415 ;; (See comments in Flocale_info.) 2422 ;; (See comments in Flocale_info.)
2416 (let ((locale locale) 2423 (let ((locale locale)
diff --git a/lisp/net/ldap.el b/lisp/net/ldap.el
index f093fb1cbcc..16af42ffc27 100644
--- a/lisp/net/ldap.el
+++ b/lisp/net/ldap.el
@@ -579,9 +579,9 @@ an alist of attribute/value pairs."
579 (end-of-line) 579 (end-of-line)
580 (point)))) 580 (point))))
581 (forward-line 1) 581 (forward-line 1)
582 (while (looking-at "^\\(\\w*\\)[=:\t ]+\\(<[\t ]*file://\\)?\\(.*\\)$") 582 (while (looking-at "^\\(\\w*\\)\\(;\\w*\\)?[=:\t ]+\\(<[\t ]*file://\\)?\\(.*\\)$")
583 (setq name (match-string 1) 583 (setq name (match-string 1)
584 value (match-string 3)) 584 value (match-string 4))
585 ;; Need to handle file:///D:/... as generated by OpenLDAP 585 ;; Need to handle file:///D:/... as generated by OpenLDAP
586 ;; on DOS/Windows as local files. 586 ;; on DOS/Windows as local files.
587 (if (and (memq system-type '(windows-nt ms-dos)) 587 (if (and (memq system-type '(windows-nt ms-dos))
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el
index 54c43d1df36..9c15fc5be52 100644
--- a/lisp/progmodes/gdb-ui.el
+++ b/lisp/progmodes/gdb-ui.el
@@ -4,7 +4,7 @@
4;; Maintainer: FSF 4;; Maintainer: FSF
5;; Keywords: unix, tools 5;; Keywords: unix, tools
6 6
7;; Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. 7;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
8 8
9;; This file is part of GNU Emacs. 9;; This file is part of GNU Emacs.
10 10
@@ -289,13 +289,6 @@ detailed description of this mode.
289 `(lambda () (gdb-var-create-handler ,expr)))))) 289 `(lambda () (gdb-var-create-handler ,expr))))))
290 (select-window (get-buffer-window gud-comint-buffer 0))) 290 (select-window (get-buffer-window gud-comint-buffer 0)))
291 291
292(defun gdb-goto-info ()
293 "Go to Emacs info node: GDB Graphical Interface."
294 (interactive)
295 (select-frame (make-frame))
296 (require 'info)
297 (Info-goto-node "(emacs)GDB Graphical Interface"))
298
299(defconst gdb-var-create-regexp 292(defconst gdb-var-create-regexp
300 "name=\"\\(.*?\\)\",numchild=\"\\(.*?\\)\",type=\"\\(.*?\\)\"") 293 "name=\"\\(.*?\\)\",numchild=\"\\(.*?\\)\",type=\"\\(.*?\\)\"")
301 294
@@ -1897,18 +1890,6 @@ corresponding to the mode line clicked."
1897 1890
1898;;; Shared keymap initialization: 1891;;; Shared keymap initialization:
1899 1892
1900(let ((menu (make-sparse-keymap "GDB-Frames")))
1901 (define-key gud-menu-map [frames]
1902 `(menu-item "GDB-Frames" ,menu :visible (eq gud-minor-mode 'gdba)))
1903 (define-key menu [gdb] '("Gdb" . gdb-frame-gdb-buffer))
1904 (define-key menu [threads] '("Threads" . gdb-frame-threads-buffer))
1905 (define-key menu [memory] '("Memory" . gdb-frame-memory-buffer))
1906 (define-key menu [assembler] '("Machine" . gdb-frame-assembler-buffer))
1907 (define-key menu [registers] '("Registers" . gdb-frame-registers-buffer))
1908 (define-key menu [locals] '("Locals" . gdb-frame-locals-buffer))
1909 (define-key menu [frames] '("Stack" . gdb-frame-stack-buffer))
1910 (define-key menu [breakpoints] '("Breakpoints" . gdb-frame-breakpoints-buffer)))
1911
1912(let ((menu (make-sparse-keymap "GDB-Windows"))) 1893(let ((menu (make-sparse-keymap "GDB-Windows")))
1913 (define-key gud-menu-map [displays] 1894 (define-key gud-menu-map [displays]
1914 `(menu-item "GDB-Windows" ,menu :visible (eq gud-minor-mode 'gdba))) 1895 `(menu-item "GDB-Windows" ,menu :visible (eq gud-minor-mode 'gdba)))
@@ -1921,15 +1902,27 @@ corresponding to the mode line clicked."
1921 (define-key menu [frames] '("Stack" . gdb-display-stack-buffer)) 1902 (define-key menu [frames] '("Stack" . gdb-display-stack-buffer))
1922 (define-key menu [breakpoints] '("Breakpoints" . gdb-display-breakpoints-buffer))) 1903 (define-key menu [breakpoints] '("Breakpoints" . gdb-display-breakpoints-buffer)))
1923 1904
1905(let ((menu (make-sparse-keymap "GDB-Frames")))
1906 (define-key gud-menu-map [frames]
1907 `(menu-item "GDB-Frames" ,menu :visible (eq gud-minor-mode 'gdba)))
1908 (define-key menu [gdb] '("Gdb" . gdb-frame-gdb-buffer))
1909 (define-key menu [threads] '("Threads" . gdb-frame-threads-buffer))
1910 (define-key menu [memory] '("Memory" . gdb-frame-memory-buffer))
1911 (define-key menu [assembler] '("Machine" . gdb-frame-assembler-buffer))
1912 (define-key menu [registers] '("Registers" . gdb-frame-registers-buffer))
1913 (define-key menu [locals] '("Locals" . gdb-frame-locals-buffer))
1914 (define-key menu [frames] '("Stack" . gdb-frame-stack-buffer))
1915 (define-key menu [breakpoints] '("Breakpoints" . gdb-frame-breakpoints-buffer)))
1916
1924(let ((menu (make-sparse-keymap "GDB-UI"))) 1917(let ((menu (make-sparse-keymap "GDB-UI")))
1925 (define-key gud-menu-map [ui] 1918 (define-key gud-menu-map [ui]
1926 `(menu-item "GDB-UI" ,menu :visible (eq gud-minor-mode 'gdba))) 1919 `(menu-item "GDB-UI" ,menu :visible (eq gud-minor-mode 'gdba)))
1927 (define-key menu [gdb-restore-windows] 1920 (define-key menu [gdb-restore-windows]
1928 '("Restore window layout" . gdb-restore-windows)) 1921 '("Restore Window Layout" . gdb-restore-windows))
1929 (define-key menu [gdb-many-windows] 1922 (define-key menu [gdb-many-windows]
1930 (menu-bar-make-toggle gdb-many-windows gdb-many-windows 1923 (menu-bar-make-toggle gdb-many-windows gdb-many-windows
1931 "Display other windows" "Many Windows %s" 1924 "Display Other Windows" "Many windows %s"
1932 "Display locals, stack and breakpoint information"))) 1925 "Toggle display of locals, stack and breakpoint information")))
1933 1926
1934(defun gdb-frame-gdb-buffer () 1927(defun gdb-frame-gdb-buffer ()
1935 "Display GUD buffer in a new frame." 1928 "Display GUD buffer in a new frame."
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el
index 2a40ae1aab6..0988599ed54 100644
--- a/lisp/progmodes/gud.el
+++ b/lisp/progmodes/gud.el
@@ -91,9 +91,17 @@ If SOFT is non-nil, returns nil if the symbol doesn't already exist."
91 "Non-nil if debuggee is running. 91 "Non-nil if debuggee is running.
92Used to grey out relevant toolbar icons.") 92Used to grey out relevant toolbar icons.")
93 93
94(defun gud-goto-info ()
95 "Go to relevant Emacs info node."
96 (interactive)
97 (select-frame (make-frame))
98 (require 'info)
99 (if (memq gud-minor-mode '(gdbmi gdba))
100 (Info-goto-node "(emacs)GDB Graphical Interface")
101 (Info-goto-node "(emacs)Debuggers")))
102
94(easy-mmode-defmap gud-menu-map 103(easy-mmode-defmap gud-menu-map
95 '(([help] menu-item "Help" gdb-goto-info 104 '(([help] "Info" . gud-goto-info)
96 :enable (memq gud-minor-mode '(gdbmi gdba)))
97 ([refresh] "Refresh" . gud-refresh) 105 ([refresh] "Refresh" . gud-refresh)
98 ([run] menu-item "Run" gud-run 106 ([run] menu-item "Run" gud-run
99 :enable (and (not gud-running) 107 :enable (and (not gud-running)
@@ -172,7 +180,7 @@ Used to grey out relevant toolbar icons.")
172 (gud-nexti . "gud-ni") 180 (gud-nexti . "gud-ni")
173 (gud-up . "gud-up") 181 (gud-up . "gud-up")
174 (gud-down . "gud-down") 182 (gud-down . "gud-down")
175 (gdb-goto-info . "help")) 183 (gud-goto-info . "info"))
176 map) 184 map)
177 (tool-bar-local-item-from-menu 185 (tool-bar-local-item-from-menu
178 (car x) (cdr x) map gud-minor-mode-map))))) 186 (car x) (cdr x) map gud-minor-mode-map)))))
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index 3f3529f2aa5..c3b0f561cc2 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -1,6 +1,7 @@
1;;; ispell.el --- interface to International Ispell Versions 3.1 and 3.2 1;;; ispell.el --- interface to International Ispell Versions 3.1 and 3.2
2 2
3;; Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. 3;; Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005
4;; Free Software Foundation, Inc.
4 5
5;; Author: Ken Stevens <k.stevens@ieee.org> 6;; Author: Ken Stevens <k.stevens@ieee.org>
6;; Maintainer: Ken Stevens <k.stevens@ieee.org> 7;; Maintainer: Ken Stevens <k.stevens@ieee.org>
@@ -2419,7 +2420,7 @@ With prefix argument, set the default dictionary."
2419 "Update the dictionary actually used by Ispell. 2420 "Update the dictionary actually used by Ispell.
2420This may kill the Ispell process; if so, 2421This may kill the Ispell process; if so,
2421a new one will be started when needed." 2422a new one will be started when needed."
2422 (let ((dict (or ispell-local-dictionary ispell-dictionary "default"))) 2423 (let ((dict (or ispell-local-dictionary ispell-dictionary)))
2423 (unless (equal ispell-current-dictionary dict) 2424 (unless (equal ispell-current-dictionary dict)
2424 (setq ispell-current-dictionary dict) 2425 (setq ispell-current-dictionary dict)
2425 (ispell-kill-ispell t)))) 2426 (ispell-kill-ispell t))))
diff --git a/lisp/textmodes/reftex.el b/lisp/textmodes/reftex.el
index 318279b1377..49485c24725 100644
--- a/lisp/textmodes/reftex.el
+++ b/lisp/textmodes/reftex.el
@@ -1228,6 +1228,11 @@ This enforces rescanning the buffer on next use."
1228 ;; But, when RESCAN is -1, don't rescan even if docstruct is empty. 1228 ;; But, when RESCAN is -1, don't rescan even if docstruct is empty.
1229 ;; When FILE is non-nil, parse only from that file. 1229 ;; When FILE is non-nil, parse only from that file.
1230 1230
1231 ;; Error out in a buffer without a file.
1232 (if (and reftex-mode
1233 (not (buffer-file-name)))
1234 (error "RefTeX works only in buffers visiting a file."))
1235
1231 ;; Make sure we have the symbols tied 1236 ;; Make sure we have the symbols tied
1232 (if (eq reftex-docstruct-symbol nil) 1237 (if (eq reftex-docstruct-symbol nil)
1233 ;; Symbols are not yet tied: Tie them. 1238 ;; Symbols are not yet tied: Tie them.
diff --git a/lisp/x-dnd.el b/lisp/x-dnd.el
index f2b081fdcc5..a540c1b7af3 100644
--- a/lisp/x-dnd.el
+++ b/lisp/x-dnd.el
@@ -557,18 +557,20 @@ EVENT is the client message. FRAME is where the mouse is now.
557WINDOW is the window within FRAME where the mouse is now. 557WINDOW is the window within FRAME where the mouse is now.
558FORMAT is 32 (not used). MESSAGE is the data part of an XClientMessageEvent." 558FORMAT is 32 (not used). MESSAGE is the data part of an XClientMessageEvent."
559 (cond ((equal "XdndEnter" message) 559 (cond ((equal "XdndEnter" message)
560 (let ((version (ash (car (aref data 1)) -8)) 560 (let* ((flags (aref data 1))
561 (more-than-3 (cdr (aref data 1))) 561 (version (and (consp flags) (ash (car flags) -8)))
562 (dnd-source (aref data 0))) 562 (more-than-3 (and (consp flags) (cdr flags)))
563 (x-dnd-save-state 563 (dnd-source (aref data 0)))
564 window nil nil 564 (if version ;; If flags is bad, version will be nil.
565 (if (> more-than-3 0) 565 (x-dnd-save-state
566 (x-window-property "XdndTypeList" 566 window nil nil
567 frame "AnyPropertyType" 567 (if (> more-than-3 0)
568 dnd-source nil t) 568 (x-window-property "XdndTypeList"
569 (vector (x-get-atom-name (aref data 2)) 569 frame "AnyPropertyType"
570 (x-get-atom-name (aref data 3)) 570 dnd-source nil t)
571 (x-get-atom-name (aref data 4))))))) 571 (vector (x-get-atom-name (aref data 2))
572 (x-get-atom-name (aref data 3))
573 (x-get-atom-name (aref data 4))))))))
572 574
573 ((equal "XdndPosition" message) 575 ((equal "XdndPosition" message)
574 (let* ((x (car (aref data 2))) 576 (let* ((x (car (aref data 2)))
diff --git a/lispref/ChangeLog b/lispref/ChangeLog
index c327bfc9058..b74ef44b0aa 100644
--- a/lispref/ChangeLog
+++ b/lispref/ChangeLog
@@ -1,8 +1,62 @@
12005-01-31 Luc Teirlinck <teirllm@auburn.edu> 12005-02-05 Lute Kamstra <lute@gnu.org>
2
3 * text.texi (Maintaining Undo): Remove obsolete function.
4
52005-02-05 Eli Zaretskii <eliz@gnu.org>
6
7 * frames.texi (Color Names): Add pointer to the X docs about RGB
8 color specifications. Improve indexing
9 (Text Terminal Colors): Replace the description of RGB values by
10 an xref to "Color Names".
11
122005-02-03 Richard M. Stallman <rms@gnu.org>
13
14 * windows.texi (Basic Windows): Add cursor-in-non-selected-windows.
15 Clarify.
16 (Selecting Windows): Clarify save-selected-window.
17 (Cyclic Window Ordering): Clarify walk-windows.
18 (Window Point): Clarify.
19 (Window Start): Add comment to example.
20 (Resizing Windows): Add `interactive' specs in examples.
21 Document fit-window-to-buffer.
22
23 * text.texi (User-Level Deletion): just-one-space takes numeric arg.
24 (Undo, Maintaining Undo): Clarify last change.
25 (Sorting): In sort-numeric-fields, explain about octal and hex.
26 Mention sort-numeric-base.
27 (Format Properties): Add xref for hard newlines.
28
29 * frames.texi (Window Frame Parameters): Explain pixel=char on tty.
30 (Pop-Up Menus): Fix typo.
31 (Color Names): Explain all types of color names.
32 Explain color-values on B&W terminal.
33 (Text Terminal Colors): Explain "rgb values" are lists. Fix arg names.
34
35 * files.texi (File Locks): Not supported on MS systems.
36 (Testing Accessibility): Clarify.
37
38 * edebug.texi (Printing in Edebug): Fix edebug-print-circle.
39 (Coverage Testing): Fix typo.
40
41 * commands.texi (Misc Events): Remove stray space.
42
43 * buffers.texi (Buffer Names): Clarify generate-new-buffer-name.
44 (Modification Time): Clarify when visited-file-modtime returns 0.
45 (The Buffer List): Clarify bury-buffer.
46 (Killing Buffers): Clarify.
47 (Indirect Buffers): Add clone-indirect-buffer.
48
492005-02-02 Matt Hodges <MPHodges@member.fsf.org>
50
51 * edebug.texi (Printing in Edebug): Fix default value of
52 edebug-print-circle.
53 (Coverage Testing): Fix displayed frequency count data.
54
552005-02-02 Luc Teirlinck <teirllm@auburn.edu>
2 56
3 * text.texi (Maintaining Undo): Add `undo-outer-limit'. 57 * text.texi (Maintaining Undo): Add `undo-outer-limit'.
4 58
52005-02-01 Kim F. Storm <storm@cua.dk> 592005-02-02 Kim F. Storm <storm@cua.dk>
6 60
7 * text.texi (Undo) <buffer-undo-list>: Describe `apply' elements. 61 * text.texi (Undo) <buffer-undo-list>: Describe `apply' elements.
8 62
diff --git a/lispref/buffers.texi b/lispref/buffers.texi
index 42131766ec7..e0ef75ccae8 100644
--- a/lispref/buffers.texi
+++ b/lispref/buffers.texi
@@ -344,11 +344,11 @@ number inside of @samp{<@dots{}>}. It starts at 2 and keeps
344incrementing the number until it is not the name of an existing buffer. 344incrementing the number until it is not the name of an existing buffer.
345 345
346If the optional second argument @var{ignore} is non-@code{nil}, it 346If the optional second argument @var{ignore} is non-@code{nil}, it
347should be a string; it makes a difference if it is a name in the 347should be a string, a potential buffer name. It means to consider
348sequence of names to be tried. That name will be considered acceptable, 348that potential buffer acceptable, if it is tried, even it is the name
349if it is tried, even if a buffer with that name exists. Thus, if 349of an existing buffer (which would normally be rejected). Thus, if
350buffers named @samp{foo}, @samp{foo<2>}, @samp{foo<3>} and @samp{foo<4>} 350buffers named @samp{foo}, @samp{foo<2>}, @samp{foo<3>} and
351exist, 351@samp{foo<4>} exist,
352 352
353@example 353@example
354(generate-new-buffer-name "foo") 354(generate-new-buffer-name "foo")
@@ -629,16 +629,13 @@ modification time, as a list of the form @code{(@var{high} @var{low})}.
629(This is the same format that @code{file-attributes} uses to return 629(This is the same format that @code{file-attributes} uses to return
630time values; see @ref{File Attributes}.) 630time values; see @ref{File Attributes}.)
631 631
632The function returns zero if the buffer has no recorded last 632If the buffer has no recorded last modification time, this function
633modification time, which can happen, for instance, if the record has 633returns zero. This case occurs, for instance, if the buffer is not
634been explicitly cleared by @code{clear-visited-file-modtime} or if the 634visiting a file or if the time has been explicitly cleared by
635buffer is not visiting a file. Note, however, that 635@code{clear-visited-file-modtime}. Note, however, that
636@code{visited-file-modtime} can return a non-zero value for some 636@code{visited-file-modtime} returns a list for some non-file buffers
637buffers that are not visiting files, but are nevertheless closely 637too. For instance, in a Dired buffer listing a directory, it returns
638associated with a file. This happens, for instance, with dired 638the last modification time of that directory, as recorded by Dired.
639buffers listing a directory. For such buffers,
640@code{visited-file-modtime} returns the last modification time of that
641directory, as recorded by dired.
642 639
643For a new buffer visiting a not yet existing file, @var{high} is 640For a new buffer visiting a not yet existing file, @var{high} is
644@minus{}1 and @var{low} is 65535, that is, 641@minus{}1 and @var{low} is 65535, that is,
@@ -857,7 +854,8 @@ If no suitable buffer exists, the buffer @samp{*scratch*} is returned
857This function puts @var{buffer-or-name} at the end of the buffer list, 854This function puts @var{buffer-or-name} at the end of the buffer list,
858without changing the order of any of the other buffers on the list. 855without changing the order of any of the other buffers on the list.
859This buffer therefore becomes the least desirable candidate for 856This buffer therefore becomes the least desirable candidate for
860@code{other-buffer} to return. 857@code{other-buffer} to return. The argument can be either a buffer
858itself or the name of one.
861 859
862@code{bury-buffer} operates on each frame's @code{buffer-list} parameter 860@code{bury-buffer} operates on each frame's @code{buffer-list} parameter
863as well as the frame-independent Emacs buffer list; therefore, the 861as well as the frame-independent Emacs buffer list; therefore, the
@@ -949,8 +947,8 @@ Names}.
949@cindex killing buffers 947@cindex killing buffers
950@cindex buffers, killing 948@cindex buffers, killing
951 949
952 @dfn{Killing a buffer} makes its name unknown to Emacs and makes its 950 @dfn{Killing a buffer} makes its name unknown to Emacs and makes the
953text space available for other use. 951memory space it occupied available for other use.
954 952
955 The buffer object for the buffer that has been killed remains in 953 The buffer object for the buffer that has been killed remains in
956existence as long as anything refers to it, but it is specially marked 954existence as long as anything refers to it, but it is specially marked
@@ -1101,6 +1099,18 @@ non-@code{nil}, the initial state is copied from the actual base
1101buffer, not from @var{base-buffer}. 1099buffer, not from @var{base-buffer}.
1102@end deffn 1100@end deffn
1103 1101
1102@defun clone-indirect-buffer newname display-flag &optional norecord
1103This function creates and returns a new indirect buffer that shares
1104the current buffer's base buffer and copies the rest of the current
1105buffer's attributes. (If the current buffer is not indirect, it is
1106used as the base buffer.)
1107
1108If @var{display-flag} is non-@code{nil}, that means to display the new
1109buffer by calling @code{pop-to-buffer}. If @var{norecord} is
1110non-@code{nil}, that means not to put the new buffer to the front of
1111the buffer list.
1112@end defun
1113
1104@defun buffer-base-buffer &optional buffer 1114@defun buffer-base-buffer &optional buffer
1105This function returns the base buffer of @var{buffer}, which defaults 1115This function returns the base buffer of @var{buffer}, which defaults
1106to the current buffer. If @var{buffer} is not indirect, the value is 1116to the current buffer. If @var{buffer} is not indirect, the value is
diff --git a/lispref/commands.texi b/lispref/commands.texi
index 293d72783c5..ec3c972e28a 100644
--- a/lispref/commands.texi
+++ b/lispref/commands.texi
@@ -1554,7 +1554,7 @@ portion of buffer text which has a @code{help-echo} text property.
1554The generated event has this form: 1554The generated event has this form:
1555 1555
1556@example 1556@example
1557 (help-echo @var{frame} @var{help} @var{window} @var{object} @var{pos}) 1557(help-echo @var{frame} @var{help} @var{window} @var{object} @var{pos})
1558@end example 1558@end example
1559 1559
1560@noindent 1560@noindent
diff --git a/lispref/edebug.texi b/lispref/edebug.texi
index 9789835780b..bcd7eba5b6f 100644
--- a/lispref/edebug.texi
+++ b/lispref/edebug.texi
@@ -801,7 +801,7 @@ vectors.
801 801
802@defopt edebug-print-circle 802@defopt edebug-print-circle
803If non-@code{nil}, Edebug binds @code{print-circle} to this value while 803If non-@code{nil}, Edebug binds @code{print-circle} to this value while
804printing results. The default value is @code{nil}. 804printing results. The default value is @code{t}.
805@end defopt 805@end defopt
806 806
807 Other programs can also use custom printing; see @file{cust-print.el} 807 Other programs can also use custom printing; see @file{cust-print.el}
@@ -909,7 +909,7 @@ the breakpoint is reached, the frequency data looks like this:
909@example 909@example
910(defun fac (n) 910(defun fac (n)
911 (if (= n 0) (edebug)) 911 (if (= n 0) (edebug))
912;#6 1 0 =5 912;#6 1 = =5
913 (if (< 0 n) 913 (if (< 0 n)
914;#5 = 914;#5 =
915 (* n (fac (1- n))) 915 (* n (fac (1- n)))
diff --git a/lispref/files.texi b/lispref/files.texi
index 2e6a5bcee00..aa97ff83d30 100644
--- a/lispref/files.texi
+++ b/lispref/files.texi
@@ -646,9 +646,10 @@ with-temp-buffer,, The Current Buffer}.
646@section File Locks 646@section File Locks
647@cindex file locks 647@cindex file locks
648 648
649 When two users edit the same file at the same time, they are likely to 649 When two users edit the same file at the same time, they are likely
650interfere with each other. Emacs tries to prevent this situation from 650to interfere with each other. Emacs tries to prevent this situation
651arising by recording a @dfn{file lock} when a file is being modified. 651from arising by recording a @dfn{file lock} when a file is being
652modified. (File locks are not implemented on Microsoft systems.)
652Emacs can then detect the first attempt to modify a buffer visiting a 653Emacs can then detect the first attempt to modify a buffer visiting a
653file that is locked by another Emacs job, and ask the user what to do. 654file that is locked by another Emacs job, and ask the user what to do.
654The file lock is really a file, a symbolic link with a special name, 655The file lock is really a file, a symbolic link with a special name,
@@ -680,14 +681,15 @@ some other job.
680This function locks the file @var{filename}, if the current buffer is 681This function locks the file @var{filename}, if the current buffer is
681modified. The argument @var{filename} defaults to the current buffer's 682modified. The argument @var{filename} defaults to the current buffer's
682visited file. Nothing is done if the current buffer is not visiting a 683visited file. Nothing is done if the current buffer is not visiting a
683file, or is not modified. 684file, or is not modified, or if the system does not support locking.
684@end defun 685@end defun
685 686
686@defun unlock-buffer 687@defun unlock-buffer
687This function unlocks the file being visited in the current buffer, 688This function unlocks the file being visited in the current buffer,
688if the buffer is modified. If the buffer is not modified, then 689if the buffer is modified. If the buffer is not modified, then
689the file should not be locked, so this function does nothing. It also 690the file should not be locked, so this function does nothing. It also
690does nothing if the current buffer is not visiting a file. 691does nothing if the current buffer is not visiting a file, or if the
692system does not support locking.
691@end defun 693@end defun
692 694
693 File locking is not supported on some systems. On systems that do not 695 File locking is not supported on some systems. On systems that do not
@@ -834,10 +836,11 @@ a directory.
834@c Emacs 19 feature 836@c Emacs 19 feature
835@defun file-accessible-directory-p dirname 837@defun file-accessible-directory-p dirname
836This function returns @code{t} if you have permission to open existing 838This function returns @code{t} if you have permission to open existing
837files in the directory whose name as a file is @var{dirname}; otherwise 839files in the directory whose name as a file is @var{dirname};
838(or if there is no such directory), it returns @code{nil}. The value 840otherwise (or if there is no such directory), it returns @code{nil}.
839of @var{dirname} may be either a directory name or the file name of a 841The value of @var{dirname} may be either a directory name (such as
840file which is a directory. 842@file{/foo/}) or the file name of a file which is a directory
843(such as @file{/foo}, without the final slash).
841 844
842Example: after the following, 845Example: after the following,
843 846
diff --git a/lispref/frames.texi b/lispref/frames.texi
index 655232a8869..f50be70f473 100644
--- a/lispref/frames.texi
+++ b/lispref/frames.texi
@@ -310,12 +310,14 @@ The GNU Emacs Manual}.
310@node Window Frame Parameters 310@node Window Frame Parameters
311@subsection Window Frame Parameters 311@subsection Window Frame Parameters
312 312
313Just what parameters a frame has depends on what display mechanism it 313 Just what parameters a frame has depends on what display mechanism it
314uses. Here is a table of the parameters that have special meanings in a 314uses. Here is a table of the parameters that have special meanings in a
315window frame; of these, @code{name}, @code{title}, @code{height}, 315window frame; of these, @code{name}, @code{title}, @code{height},
316@code{width}, @code{buffer-list} and @code{buffer-predicate} provide 316@code{width}, @code{buffer-list} and @code{buffer-predicate} provide
317meaningful information in terminal frames, and @code{tty-color-mode} 317meaningful information in terminal frames, and @code{tty-color-mode}
318is meaningful @emph{only} in terminal frames. 318is meaningful @emph{only} in terminal frames. Frame parameter whose
319values measured in pixels, when used on text-only terminals, count
320characters or lines instead.
319 321
320@table @code 322@table @code
321@item display 323@item display
@@ -1407,7 +1409,7 @@ that it calls @code{x-popup-menu}. Therefore, if you try to implement a
1407submenu using @code{x-popup-menu}, it cannot work with the menu bar in 1409submenu using @code{x-popup-menu}, it cannot work with the menu bar in
1408an integrated fashion. This is why all menu bar submenus are 1410an integrated fashion. This is why all menu bar submenus are
1409implemented with menu keymaps within the parent menu, and never with 1411implemented with menu keymaps within the parent menu, and never with
1410@code{x-popup-menu}. @xref{Menu Bar}, 1412@code{x-popup-menu}. @xref{Menu Bar}.
1411 1413
1412 If you want a menu bar submenu to have contents that vary, you should 1414 If you want a menu bar submenu to have contents that vary, you should
1413still use a menu keymap to implement it. To make the contents vary, add 1415still use a menu keymap to implement it. To make the contents vary, add
@@ -1586,6 +1588,22 @@ but @code{t} on MS-Windows.
1586@node Color Names 1588@node Color Names
1587@section Color Names 1589@section Color Names
1588 1590
1591@cindex color names
1592@cindex specify color
1593@cindex numerical RGB color specification
1594 A color name is text (usually in a string) that specifies a color.
1595Symbolic names such as @samp{black}, @samp{white}, @samp{red}, etc.,
1596are allowed; use @kbd{M-x list-colors-display} to see a list of
1597defined names. You can also specify colors numerically in forms such
1598as @samp{#@var{rgb}} and @samp{RGB:@var{r}/@var{g}/@var{b}}, where
1599@var{r} specifies the red level, @var{g} specifies the green level,
1600and @var{b} specifies the blue level. You can use either one, two,
1601three, or four hex digits for @var{r}; then you must use the same
1602number of hex digits for all @var{g} and @var{b} as well, making
1603either 3, 6, 9 or 12 hex digits in all. (See the documentation of the
1604X Window System for more details about numerical RGB specification of
1605colors.)
1606
1589 These functions provide a way to determine which color names are 1607 These functions provide a way to determine which color names are
1590valid, and what they look like. In some cases, the value depends on the 1608valid, and what they look like. In some cases, the value depends on the
1591@dfn{selected frame}, as described below; see @ref{Input Focus}, for the 1609@dfn{selected frame}, as described below; see @ref{Input Focus}, for the
@@ -1644,12 +1662,14 @@ color name, this function returns @code{nil}.
1644 1662
1645@defun color-values color &optional frame 1663@defun color-values color &optional frame
1646@tindex color-values 1664@tindex color-values
1665@cindex rgb value
1647This function returns a value that describes what @var{color} should 1666This function returns a value that describes what @var{color} should
1648ideally look like on @var{frame}. If @var{color} is defined, the 1667ideally look like on @var{frame}. If @var{color} is defined, the
1649value is a list of three integers, which give the amount of red, the 1668value is a list of three integers, which give the amount of red, the
1650amount of green, and the amount of blue. Each integer ranges in 1669amount of green, and the amount of blue. Each integer ranges in
1651principle from 0 to 65535, but some displays may not use the full 1670principle from 0 to 65535, but some displays may not use the full
1652range. This kind of three-element list is called an @dfn{rgb value}. 1671range. This three-element list is called the @dfn{rgb values} of the
1672color.
1653 1673
1654If @var{color} is not defined, the value is @code{nil}. 1674If @var{color} is not defined, the value is @code{nil}.
1655 1675
@@ -1666,9 +1686,10 @@ If @var{color} is not defined, the value is @code{nil}.
1666 @result{} nil 1686 @result{} nil
1667@end example 1687@end example
1668 1688
1669The color values are returned for @var{frame}'s display. If @var{frame} 1689The color values are returned for @var{frame}'s display. If
1670is omitted or @code{nil}, the information is returned for the selected 1690@var{frame} is omitted or @code{nil}, the information is returned for
1671frame's display. 1691the selected frame's display. If the frame cannot display colors, the
1692value is @code{nil}.
1672 1693
1673@findex x-color-values 1694@findex x-color-values
1674This function used to be called @code{x-color-values}, 1695This function used to be called @code{x-color-values},
@@ -1690,37 +1711,34 @@ standard set of colors and will try to use them automatically.
1690 The functions described in this section control how terminal colors 1711 The functions described in this section control how terminal colors
1691are used by Emacs. 1712are used by Emacs.
1692 1713
1693@cindex rgb value 1714 Several of these functions use or return @dfn{rgb values}, described
1694 Several of these functions use or return @dfn{rgb values}. An rgb 1715in @ref{Color Names}.
1695value is a list of three integers, which give the amount of red, the
1696amount of green, and the amount of blue. Each integer ranges in
1697principle from 0 to 65535, but some displays may not use the full range. .
1698 1716
1699 These functions accept a display (either a frame or the name of a 1717 These functions accept a display (either a frame or the name of a
1700terminal) as an optional argument. We hope in the future to make Emacs 1718terminal) as an optional argument. We hope in the future to make Emacs
1701support more than one text-only terminal at one time; then this argument 1719support more than one text-only terminal at one time; then this argument
1702will specify which terminal to operate on (the default being the 1720will specify which terminal to operate on (the default being the
1703selected frame's terminal; @pxref{Input Focus}). At present, though, 1721selected frame's terminal; @pxref{Input Focus}). At present, though,
1704the @var{display} argument has no effect. 1722the @var{frame} argument has no effect.
1705 1723
1706@defun tty-color-define name number &optional rgb display 1724@defun tty-color-define name number &optional rgb frame
1707@tindex tty-color-define 1725@tindex tty-color-define
1708This function associates the color name @var{name} with 1726This function associates the color name @var{name} with
1709color number @var{number} on the terminal. 1727color number @var{number} on the terminal.
1710 1728
1711The optional argument @var{rgb}, if specified, is an rgb value; it says 1729The optional argument @var{rgb}, if specified, is an rgb value, a list
1712what the color actually looks like. If you do not specify @var{rgb}, 1730of three numbers that specify what what the color actually looks like.
1713then this color cannot be used by @code{tty-color-approximate} to 1731If you do not specify @var{rgb}, then this color cannot be used by
1714approximate other colors, because Emacs does not know what it looks 1732@code{tty-color-approximate} to approximate other colors, because
1715like. 1733Emacs will not know what it looks like.
1716@end defun 1734@end defun
1717 1735
1718@defun tty-color-clear &optional display 1736@defun tty-color-clear &optional frame
1719@tindex tty-color-clear 1737@tindex tty-color-clear
1720This function clears the table of defined colors for a text-only terminal. 1738This function clears the table of defined colors for a text-only terminal.
1721@end defun 1739@end defun
1722 1740
1723@defun tty-color-alist &optional display 1741@defun tty-color-alist &optional frame
1724@tindex tty-color-alist 1742@tindex tty-color-alist
1725This function returns an alist recording the known colors supported by a 1743This function returns an alist recording the known colors supported by a
1726text-only terminal. 1744text-only terminal.
@@ -1728,26 +1746,23 @@ text-only terminal.
1728Each element has the form @code{(@var{name} @var{number} . @var{rgb})} 1746Each element has the form @code{(@var{name} @var{number} . @var{rgb})}
1729or @code{(@var{name} @var{number})}. Here, @var{name} is the color 1747or @code{(@var{name} @var{number})}. Here, @var{name} is the color
1730name, @var{number} is the number used to specify it to the terminal. 1748name, @var{number} is the number used to specify it to the terminal.
1731If present, @var{rgb} is an rgb value that says what the color 1749If present, @var{rgb} is a list of three color values (for red, green,
1732actually looks like. 1750and blue) that says what the color actually looks like.
1733@end defun 1751@end defun
1734 1752
1735@defun tty-color-approximate rgb &optional display 1753@defun tty-color-approximate rgb &optional frame
1736@tindex tty-color-approximate 1754@tindex tty-color-approximate
1737This function finds the closest color, among the known colors supported 1755This function finds the closest color, among the known colors
1738for @var{display}, to that described by the rgb value @var{rgb}. 1756supported for @var{display}, to that described by the rgb value
1739The return value is an element of @code{tty-color-alist}. 1757@var{rgb} (a list of color values). The return value is an element of
1758@code{tty-color-alist}.
1740@end defun 1759@end defun
1741 1760
1742@defun tty-color-translate color &optional display 1761@defun tty-color-translate color &optional frame
1743@tindex tty-color-translate 1762@tindex tty-color-translate
1744This function finds the closest color to @var{color} among the known 1763This function finds the closest color to @var{color} among the known
1745colors supported for @var{display} and returns its index (an integer). 1764colors supported for @var{display} and returns its index (an integer).
1746If the name @var{color} is not defined, the value is @code{nil}. 1765If the name @var{color} is not defined, the value is @code{nil}.
1747
1748@var{color} can be an X-style @code{"#@var{xxxyyyzzz}"} specification
1749instead of an actual name. The format
1750@code{"RGB:@var{xx}/@var{yy}/@var{zz}"} is also supported.
1751@end defun 1766@end defun
1752 1767
1753@node Resources 1768@node Resources
diff --git a/lispref/text.texi b/lispref/text.texi
index 3d2fa870bac..0e636d4ba58 100644
--- a/lispref/text.texi
+++ b/lispref/text.texi
@@ -1,7 +1,7 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999,
4@c 2000, 2001, 2004 4@c 2000, 2001, 2004, 2005
5@c Free Software Foundation, Inc. 5@c Free Software Foundation, Inc.
6@c See the file elisp.texi for copying conditions. 6@c See the file elisp.texi for copying conditions.
7@setfilename ../info/text 7@setfilename ../info/text
@@ -720,10 +720,11 @@ This has too many spaces at the start of (this list)
720@end smallexample 720@end smallexample
721@end deffn 721@end deffn
722 722
723@deffn Command just-one-space 723@deffn Command just-one-space &optional n
724@comment !!SourceFile simple.el 724@comment !!SourceFile simple.el
725This command replaces any spaces and tabs around point with a single 725This command replaces any spaces and tabs around point with a single
726space. It returns @code{nil}. 726space, or @var{n} spaces if @var{n} is specified. It returns
727@code{nil}.
727@end deffn 728@end deffn
728 729
729@deffn Command delete-blank-lines 730@deffn Command delete-blank-lines
@@ -1218,7 +1219,8 @@ This kind of element records a change that can be undone by evaluating
1218and @var{end} is buffer positions of the range affected by this change 1219and @var{end} is buffer positions of the range affected by this change
1219and @var{delta} is an integer value which is the number of bytes added 1220and @var{delta} is an integer value which is the number of bytes added
1220or deleted in that range by this change. This kind of element 1221or deleted in that range by this change. This kind of element
1221supports undo in an active region 1222enables undo limited to a region to determine whether the element
1223pertains to that region.
1222 1224
1223@item (@var{marker} . @var{adjustment}) 1225@item (@var{marker} . @var{adjustment})
1224This kind of element records the fact that the marker @var{marker} was 1226This kind of element records the fact that the marker @var{marker} was
@@ -1303,7 +1305,6 @@ You cannot specify any other buffer.
1303@end deffn 1305@end deffn
1304 1306
1305@deffn Command buffer-disable-undo &optional buffer-or-name 1307@deffn Command buffer-disable-undo &optional buffer-or-name
1306@deffnx Command buffer-flush-undo &optional buffer-or-name
1307@cindex disable undo 1308@cindex disable undo
1308This function discards the undo list of @var{buffer-or-name}, and disables 1309This function discards the undo list of @var{buffer-or-name}, and disables
1309further recording of undo information. As a result, it is no longer 1310further recording of undo information. As a result, it is no longer
@@ -1312,9 +1313,6 @@ the undo list of @var{buffer-or-name} is already disabled, this function
1312has no effect. 1313has no effect.
1313 1314
1314This function returns @code{nil}. 1315This function returns @code{nil}.
1315
1316The name @code{buffer-flush-undo} is not considered obsolete, but the
1317preferred name is @code{buffer-disable-undo}.
1318@end deffn 1316@end deffn
1319 1317
1320 As editing continues, undo lists get longer and longer. To prevent 1318 As editing continues, undo lists get longer and longer. To prevent
@@ -1339,8 +1337,8 @@ change group is only discarded if it exceeds @code{undo-outer-limit}.
1339 1337
1340@defopt undo-outer-limit 1338@defopt undo-outer-limit
1341If at garbage collection time the undo info for the current command 1339If at garbage collection time the undo info for the current command
1342exceeds this limit, Emacs discards the info and prints a warning 1340exceeds this limit, Emacs discards the info and displays a warning.
1343message. This is a last ditch limit to prevent memory overflow. 1341This is a last ditch limit to prevent memory overflow.
1344@end defopt 1342@end defopt
1345 1343
1346@node Filling 1344@node Filling
@@ -1915,19 +1913,27 @@ is useful for sorting tables.
1915 1913
1916@deffn Command sort-numeric-fields field start end 1914@deffn Command sort-numeric-fields field start end
1917This command sorts lines in the region between @var{start} and 1915This command sorts lines in the region between @var{start} and
1918@var{end}, comparing them numerically by the @var{field}th field of each 1916@var{end}, comparing them numerically by the @var{field}th field of
1919line. The specified field must contain a number in each line of the 1917each line. Fields are separated by whitespace and numbered starting
1920region. Fields are separated by whitespace and numbered starting from 1918from 1. The specified field must contain a number in each line of the
19211. If @var{field} is negative, sorting is by the 1919region. Numbers starting with 0 are treated as octal, and numbers
1922@w{@minus{}@var{field}th} field from the end of the line. This command 1920starting with @samp{0x} are treated as hexadecimal.
1923is useful for sorting tables. 1921
1922If @var{field} is negative, sorting is by the
1923@w{@minus{}@var{field}th} field from the end of the line. This
1924command is useful for sorting tables.
1924@end deffn 1925@end deffn
1925 1926
1927@defopt sort-numeric-base
1928This variable specifies the default radix for
1929@code{sort-numeric-fields} to parse numbers.
1930@end defopt
1931
1926@deffn Command sort-columns reverse &optional beg end 1932@deffn Command sort-columns reverse &optional beg end
1927This command sorts the lines in the region between @var{beg} and 1933This command sorts the lines in the region between @var{beg} and
1928@var{end}, comparing them alphabetically by a certain range of columns. 1934@var{end}, comparing them alphabetically by a certain range of
1929The column positions of @var{beg} and @var{end} bound the range of 1935columns. The column positions of @var{beg} and @var{end} bound the
1930columns to sort on. 1936range of columns to sort on.
1931 1937
1932If @var{reverse} is non-@code{nil}, the sort is in reverse order. 1938If @var{reverse} is non-@code{nil}, the sort is in reverse order.
1933 1939
@@ -3119,8 +3125,9 @@ are used for representing formatted text. @xref{Filling}, and
3119@item hard 3125@item hard
3120If a newline character has this property, it is a ``hard'' newline. 3126If a newline character has this property, it is a ``hard'' newline.
3121The fill commands do not alter hard newlines and do not move words 3127The fill commands do not alter hard newlines and do not move words
3122across them. However, this property takes effect only if the variable 3128across them. However, this property takes effect only if the
3123@code{use-hard-newlines} is non-@code{nil}. 3129@code{use-hard-newlines} minor mode is enabled. @xref{Hard and Soft
3130Newlines,, Hard and Soft Newlines, emacs, The GNU Emacs Manual}.
3124 3131
3125@item right-margin 3132@item right-margin
3126This property specifies an extra right margin for filling this part of the 3133This property specifies an extra right margin for filling this part of the
diff --git a/lispref/windows.texi b/lispref/windows.texi
index 5041fb5b2df..671175a550d 100644
--- a/lispref/windows.texi
+++ b/lispref/windows.texi
@@ -53,11 +53,17 @@ multiple nonoverlapping Emacs windows.
53 53
54 In each frame, at any time, one and only one window is designated as 54 In each frame, at any time, one and only one window is designated as
55@dfn{selected within the frame}. The frame's cursor appears in that 55@dfn{selected within the frame}. The frame's cursor appears in that
56window. At any time, one frame is the selected frame; and the window 56window, but the other windows have ``non-selected'' cursors, normally
57selected within that frame is @dfn{the selected window}. The selected 57less visible. At any time, one frame is the selected frame; and the
58window's buffer is usually the current buffer (except when 58window selected within that frame is @dfn{the selected window}. The
59selected window's buffer is usually the current buffer (except when
59@code{set-buffer} has been used). @xref{Current Buffer}. 60@code{set-buffer} has been used). @xref{Current Buffer}.
60 61
62@defvar cursor-in-non-selected-windows
63If this variable is @code{nil}, Emacs displays only one cursor,
64in the selected window. Other windows have no cursor at all.
65@end defvar
66
61 For practical purposes, a window exists only while it is displayed in 67 For practical purposes, a window exists only while it is displayed in
62a frame. Once removed from the frame, the window is effectively deleted 68a frame. Once removed from the frame, the window is effectively deleted
63and should not be used, @emph{even though there may still be references 69and should not be used, @emph{even though there may still be references
@@ -455,10 +461,10 @@ The return value is @var{window}.
455@end defun 461@end defun
456 462
457@defmac save-selected-window forms@dots{} 463@defmac save-selected-window forms@dots{}
458This macro records the selected window, as well as the selected window 464This macro records the selected frame, as well as the selected window
459of each frame, executes @var{forms} in sequence, then restores the 465of each frame, executes @var{forms} in sequence, then restores the
460earlier selected windows. It returns the value of the last form in 466earlier selected frame and windows It returns the value of the last
461@var{forms}. 467form in @var{forms}.
462 468
463This macro does not save or restore anything about the sizes, 469This macro does not save or restore anything about the sizes,
464arrangement or contents of windows; therefore, if the @var{forms} 470arrangement or contents of windows; therefore, if the @var{forms}
@@ -648,8 +654,9 @@ In an interactive call, @var{count} is the numeric prefix argument.
648 654
649@c Emacs 19 feature 655@c Emacs 19 feature
650@defun walk-windows proc &optional minibuf all-frames 656@defun walk-windows proc &optional minibuf all-frames
651This function cycles through all windows, calling @code{proc} 657This function cycles through all windows. It calls the function
652once for each window with the window as its sole argument. 658@code{proc} once for each window, with the window as its sole
659argument.
653 660
654The optional arguments @var{minibuf} and @var{all-frames} specify the 661The optional arguments @var{minibuf} and @var{all-frames} specify the
655set of windows to include in the scan. See @code{next-window}, above, 662set of windows to include in the scan. See @code{next-window}, above,
@@ -1175,10 +1182,10 @@ the other windows are stored in those windows.
1175@item 1182@item
1176As long as the selected window displays the current buffer, the window's 1183As long as the selected window displays the current buffer, the window's
1177point and the buffer's point always move together; they remain equal. 1184point and the buffer's point always move together; they remain equal.
1185@end itemize
1178 1186
1179@item 1187@noindent
1180@xref{Positions}, for more details on buffer positions. 1188@xref{Positions}, for more details on buffer positions.
1181@end itemize
1182 1189
1183 As far as the user is concerned, point is where the cursor is, and 1190 As far as the user is concerned, point is where the cursor is, and
1184when the user switches to another buffer, the cursor jumps to the 1191when the user switches to another buffer, the cursor jumps to the
@@ -1356,6 +1363,7 @@ Here is an example:
1356 1363
1357@example 1364@example
1358@group 1365@group
1366;; @r{If point is off the screen now, recenter it now.}
1359(or (pos-visible-in-window-p 1367(or (pos-visible-in-window-p
1360 (point) (selected-window)) 1368 (point) (selected-window))
1361 (recenter 0)) 1369 (recenter 0))
@@ -1984,6 +1992,7 @@ It could be defined as follows:
1984@example 1992@example
1985@group 1993@group
1986(defun enlarge-window-horizontally (columns) 1994(defun enlarge-window-horizontally (columns)
1995 (interactive "p")
1987 (enlarge-window columns t)) 1996 (enlarge-window columns t))
1988@end group 1997@end group
1989@end example 1998@end example
@@ -2006,16 +2015,29 @@ It could be defined as follows:
2006@example 2015@example
2007@group 2016@group
2008(defun shrink-window-horizontally (columns) 2017(defun shrink-window-horizontally (columns)
2018 (interactive "p")
2009 (shrink-window columns t)) 2019 (shrink-window columns t))
2010@end group 2020@end group
2011@end example 2021@end example
2012@end deffn 2022@end deffn
2013 2023
2024@defun fit-window-to-buffer &optional window max-height min-height
2025This function makes @var{window} the right height to display its
2026contents exactly. If @var{window} is omitted or @code{nil}, it uses
2027the selected window.
2028
2029The argument @var{max-height} specifies the maximum height the window
2030is allowed to be; @code{nil} means use the frame height. The argument
2031@var{min-height} specifies the minimum height for the window;
2032@code{nil} means use @code{window-min-height}. All these height
2033values include the mode-line and/or header-line.
2034@end defun
2035
2014@deffn Command shrink-window-if-larger-than-buffer &optional window 2036@deffn Command shrink-window-if-larger-than-buffer &optional window
2015This command shrinks @var{window} to be as small as possible while still 2037This command shrinks @var{window} vertically to be as small as
2016showing the full contents of its buffer---but not less than 2038possible while still showing the full contents of its buffer---but not
2017@code{window-min-height} lines. If @var{window} is not given, 2039less than @code{window-min-height} lines. If @var{window} is not
2018it defaults to the selected window. 2040given, it defaults to the selected window.
2019 2041
2020However, the command does nothing if the window is already too small to 2042However, the command does nothing if the window is already too small to
2021display the whole text of the buffer, or if part of the contents are 2043display the whole text of the buffer, or if part of the contents are
diff --git a/mac/inc/config.h b/mac/inc/config.h
index 859ef017bc6..4f9d36c030c 100644
--- a/mac/inc/config.h
+++ b/mac/inc/config.h
@@ -1,4 +1,4 @@
1/* Handcrafted Emacs site configuration file for Mac OS. -*- C -*- */ 1/* Handcrafted Emacs site configuration file for Mac OS 9. -*- C -*- */
2 2
3/* GNU Emacs site configuration template file. -*- C -*- 3/* GNU Emacs site configuration template file. -*- C -*-
4 Copyright (C) 1988, 1993, 1994, 1999, 2000 Free Software Foundation, Inc. 4 Copyright (C) 1988, 1993, 1994, 1999, 2000 Free Software Foundation, Inc.
diff --git a/mac/inc/s-mac.h b/mac/inc/s-mac.h
index 2905692aac0..a9108a67ca5 100644
--- a/mac/inc/s-mac.h
+++ b/mac/inc/s-mac.h
@@ -1,4 +1,4 @@
1/* Handcrafted s-mac.h file for building GNU Emacs on the Macintosh. 1/* Handcrafted s-mac.h file for building GNU Emacs on Mac OS 9.
2 Copyright (C) 1999, 2000 Free Software Foundation, Inc. 2 Copyright (C) 1999, 2000 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
diff --git a/man/ChangeLog b/man/ChangeLog
index 2559bdfaa61..71185265be5 100644
--- a/man/ChangeLog
+++ b/man/ChangeLog
@@ -1,4 +1,54 @@
12005-01-31 Luc Teirlinck <teirllm@auburn.edu> 12005-02-05 Eli Zaretskii <eliz@gnu.org>
2
3 * frames.texi (Frame Parameters): Add an xref to the description
4 of list-colors-display. Add a pointer to the X docs about colors.
5
6 * cmdargs.texi (Colors): Mention 16-, 88- and 256-color modes.
7 Impove docs of list-colors-display.
8
92005-02-03 Lute Kamstra <lute@gnu.org>
10
11 * frames.texi (Frames, Drag and Drop): Fix typos.
12
132005-02-03 Richard M. Stallman <rms@gnu.org>
14
15 * windows.texi (Basic Window): Mention color-change in mode line.
16 (Change Window): Explain dragging vertical boundaries.
17
18 * text.texi (Sentences): Clarify.
19 (Paragraphs): Explain M-a and blank lines.
20 (Outline Mode): Clarify text and menu.
21 (Hard and Soft Newlines): Mention use-hard-newlines.
22
23 * frames.texi (Frames): Delete unnecessary mention of Windows.
24 (Mouse Commands): Likewise. Mention xterm mouse support.
25 (Clipboard): Clarify.
26 (Mouse References): Mention use of Mouse-1 for following links.
27 (Menu Mouse Clicks): Clarify.
28 (Mode Line Mouse): Clarify.
29 (Drag and Drop): Rewrite.
30
31 * fixit.texi (Spelling): Fix typo.
32
33 * files.texi (File Names): Clarify.
34 (Visiting): Update conditions for use of file dialog. Clarify.
35 (Saving): Doc d as answer in save-some-buffers.
36 (Remote Files): Clean up the text.
37
38 * dired.texi (Misc Dired Commands): Delete dired-marked-files.
39
40 * buffers.texi (Select Buffer): Doc next-buffer and prev-buffer.
41 (List Buffers): Clarify.
42 (Several Buffers): Doc T command.
43 (Buffer Convenience): Clarify menu.
44
45 * basic.texi (Undo): Clarify last change.
46
472005-02-02 Matt Hodges <MPHodges@member.fsf.org>
48
49 * fixit.texi (Spelling): Fix typo.
50
512005-02-01 Luc Teirlinck <teirllm@auburn.edu>
2 52
3 * basic.texi (Undo): Update description of `undo-outer-limit'. 53 * basic.texi (Undo): Update description of `undo-outer-limit'.
4 54
diff --git a/man/basic.texi b/man/basic.texi
index 29bf6d4e207..1598de2632a 100644
--- a/man/basic.texi
+++ b/man/basic.texi
@@ -400,7 +400,7 @@ value of @code{undo-strong-limit} is 30000.
400 Regardless of the values of those variables, the most recent change 400 Regardless of the values of those variables, the most recent change
401is never discarded unless it gets bigger than @code{undo-outer-limit} 401is never discarded unless it gets bigger than @code{undo-outer-limit}
402(normally 3,000,000). At that point, Emacs discards the undo data and 402(normally 3,000,000). At that point, Emacs discards the undo data and
403warns you about it. This is the only situation in which you can not 403warns you about it. This is the only situation in which you cannot
404undo the last command. If this happens, you can increase the value of 404undo the last command. If this happens, you can increase the value of
405@code{undo-outer-limit} to make it even less likely to happen in the 405@code{undo-outer-limit} to make it even less likely to happen in the
406future. But if you didn't expect the command to create such large 406future. But if you didn't expect the command to create such large
diff --git a/man/buffers.texi b/man/buffers.texi
index 558b636de60..97234966b4b 100644
--- a/man/buffers.texi
+++ b/man/buffers.texi
@@ -67,6 +67,10 @@ megabytes.
67@table @kbd 67@table @kbd
68@item C-x b @var{buffer} @key{RET} 68@item C-x b @var{buffer} @key{RET}
69Select or create a buffer named @var{buffer} (@code{switch-to-buffer}). 69Select or create a buffer named @var{buffer} (@code{switch-to-buffer}).
70@item C-x @key{LEFT}
71Select the previous buffer in the list of existing buffers.
72@item C-x @key{RIGHT}
73Select the next buffer in the list of existing buffers.
70@item C-x 4 b @var{buffer} @key{RET} 74@item C-x 4 b @var{buffer} @key{RET}
71Similar, but select @var{buffer} in another window 75Similar, but select @var{buffer} in another window
72(@code{switch-to-buffer-other-window}). 76(@code{switch-to-buffer-other-window}).
@@ -84,6 +88,16 @@ name you want (@pxref{Completion}). An empty argument to @kbd{C-x b}
84specifies the buffer that was current most recently among those not 88specifies the buffer that was current most recently among those not
85now displayed in any window. 89now displayed in any window.
86 90
91@kindex C-x @key{LEFT}
92@kindex C-x @key{RIGHT}
93@findex next-buffer
94@findex prev-buffer
95 For conveniently switching between a few buffers, use the commands
96@kbd{C-x @key{LEFT}} and @kbd{C-x @key{RIGHT}}. @kbd{C-x @key{RIGHT}}
97(@code{prev-buffer}) selects the previous buffer (following the order
98of most recent selection), while @kbd{C-x @key{LEFT}}
99(@code{next-buffer}) moves through buffers in the reverse direction.
100
87@kindex C-x 4 b 101@kindex C-x 4 b
88@findex switch-to-buffer-other-window 102@findex switch-to-buffer-other-window
89@vindex even-window-heights 103@vindex even-window-heights
@@ -141,9 +155,9 @@ List the existing buffers (@code{list-buffers}).
141@cindex listing current buffers 155@cindex listing current buffers
142@kindex C-x C-b 156@kindex C-x C-b
143@findex list-buffers 157@findex list-buffers
144 To display a list of all the buffers that exist, type @kbd{C-x C-b}. 158 To display a list of existing buffers, type @kbd{C-x C-b}. Each
145Each line in the list shows one buffer's name, major mode and visited 159line in the list shows one buffer's name, major mode and visited file.
146file. The buffers are listed in the order that they were current; the 160The buffers are listed in the order that they were current; the
147buffers that were current most recently come first. 161buffers that were current most recently come first.
148 162
149 @samp{*} in the first field of a line indicates the buffer is ``modified.'' 163 @samp{*} in the first field of a line indicates the buffer is ``modified.''
@@ -171,7 +185,7 @@ directory @file{~/cvs/emacs/src/}. You can list only buffers that are
171visiting files by giving the command a prefix; for instance, by typing 185visiting files by giving the command a prefix; for instance, by typing
172@kbd{C-u C-x C-b}. 186@kbd{C-u C-x C-b}.
173 187
174@code{list-buffers} omits buffers whose name begins with a blank, 188 @code{list-buffers} omits buffers whose names begin with a space,
175unless they visit files: such buffers are used internally by Emacs. 189unless they visit files: such buffers are used internally by Emacs.
176 190
177@need 2000 191@need 2000
@@ -332,8 +346,9 @@ Similar, but do it in another window.
332buffers@footnote{Buffers which don't visit files and whose names begin 346buffers@footnote{Buffers which don't visit files and whose names begin
333with a space are omitted: these are used internally by Emacs.} into the 347with a space are omitted: these are used internally by Emacs.} into the
334buffer @samp{*Buffer List*}, and selects that buffer in Buffer Menu 348buffer @samp{*Buffer List*}, and selects that buffer in Buffer Menu
335mode. The list in the @samp{*Buffer List*} buffer looks exactly as 349mode.
336described in @ref{List Buffers}. The buffer is read-only, and can be 350
351 The buffer is read-only, and can be
337changed only through the special commands described in this section. 352changed only through the special commands described in this section.
338The usual Emacs cursor motion commands can be used in the @samp{*Buffer 353The usual Emacs cursor motion commands can be used in the @samp{*Buffer
339List*} buffer. The following commands apply to the buffer described on 354List*} buffer. The following commands apply to the buffer described on
@@ -411,21 +426,32 @@ any buffers previously marked with the @kbd{m} command. If you have not
411marked any buffers, this command is equivalent to @kbd{1}. 426marked any buffers, this command is equivalent to @kbd{1}.
412@end table 427@end table
413 428
414 All that @code{buffer-menu} does directly is create and switch to a 429 There is also a command that affects the entire buffer list:
415suitable buffer, and turn on Buffer Menu mode. Everything else 430
431@table @kbd
432@item T
433Delete, or reinsert, lines for non-file buffers. This command toggles
434the inclusion of such buffers in the buffer list.
435@end table
436
437 What @code{buffer-menu} actually does is create and switch to a
438suitable buffer, and turn on Buffer Menu mode in it. Everything else
416described above is implemented by the special commands provided in 439described above is implemented by the special commands provided in
417Buffer Menu mode. One consequence of this is that you can switch from 440Buffer Menu mode. One consequence of this is that you can switch from
418the @samp{*Buffer List*} buffer to another Emacs buffer, and edit there. 441the @samp{*Buffer List*} buffer to another Emacs buffer, and edit
419You can reselect the @samp{*Buffer List*} buffer later, to perform the 442there. You can reselect the @samp{*Buffer List*} buffer later, to
420operations already requested, or you can kill it, or pay no further 443perform the operations already requested, or you can kill it, or pay
421attention to it. 444no further attention to it.
422 445
423 The only difference between @code{buffer-menu} and @code{list-buffers} 446 The list in the @samp{*Buffer List*} buffer looks exactly like the
424is that @code{buffer-menu} switches to the @samp{*Buffer List*} buffer 447buffer list described in @ref{List Buffers}, because they really are
425in the selected window; @code{list-buffers} displays it in another 448the same. The only difference between @code{buffer-menu} and
426window. If you run @code{list-buffers} (that is, type @kbd{C-x C-b}) 449@code{list-buffers} is that @code{buffer-menu} switches to the
427and select the buffer list manually, you can use all of the commands 450@samp{*Buffer List*} buffer in the selected window;
428described here. 451@code{list-buffers} displays the same buffer in another window. If
452you run @code{list-buffers} (that is, type @kbd{C-x C-b}) and select
453the buffer list manually, you can use all of the commands described
454here.
429 455
430 Normally, the buffer @samp{*Buffer List*} is not updated automatically when 456 Normally, the buffer @samp{*Buffer List*} is not updated automatically when
431buffers are created and killed; its contents are just text. If you have 457buffers are created and killed; its contents are just text. If you have
@@ -506,7 +532,7 @@ minibuffer.
506convenient to switch between buffers. 532convenient to switch between buffers.
507 533
508@menu 534@menu
509* Uniquify:: Buffer names can contain directory parts. 535* Uniquify:: Making buffer names unique with directory parts.
510* Iswitchb:: Switching between buffers with substrings. 536* Iswitchb:: Switching between buffers with substrings.
511* Buffer Menus:: Configurable buffer menu. 537* Buffer Menus:: Configurable buffer menu.
512@end menu 538@end menu
diff --git a/man/cmdargs.texi b/man/cmdargs.texi
index 960f2d0bd65..d131baa094a 100644
--- a/man/cmdargs.texi
+++ b/man/cmdargs.texi
@@ -874,6 +874,9 @@ displays the entire font @samp{6x13}.
874parts of the Emacs display. To find out what colors are available on 874parts of the Emacs display. To find out what colors are available on
875your system, type @kbd{M-x list-colors-display}, or press 875your system, type @kbd{M-x list-colors-display}, or press
876@kbd{C-Mouse-2} and select @samp{Display Colors} from the pop-up menu. 876@kbd{C-Mouse-2} and select @samp{Display Colors} from the pop-up menu.
877(A particular window system might support many more colors, but the
878list displayed by @code{list-colors-display} shows their portable
879subset that can be safely used on any display supported by Emacs.)
877If you do not specify colors, on windowed displays the default for the 880If you do not specify colors, on windowed displays the default for the
878background is white and the default for all other colors is black. On a 881background is white and the default for all other colors is black. On a
879monochrome display, the foreground is black, the background is white, 882monochrome display, the foreground is black, the background is white,
@@ -947,7 +950,9 @@ specified by the ANSI escape sequences for the 8 standard colors.
947Use color mode for @var{num} colors. If @var{num} is -1, turn off 950Use color mode for @var{num} colors. If @var{num} is -1, turn off
948color support (equivalent to @samp{never}); if it is 0, use the 951color support (equivalent to @samp{never}); if it is 0, use the
949default color support for this terminal (equivalent to @samp{auto}); 952default color support for this terminal (equivalent to @samp{auto});
950otherwise use an appropriate standard mode for @var{num} colors. If 953otherwise use an appropriate standard mode for @var{num} colors.
954Depending on your terminal's capabilities, Emacs might be able to turn
955on a color mode for 8, 16, 88, or 256 as the value of @var{num}. If
951there is no mode that supports @var{num} colors, Emacs acts as if 956there is no mode that supports @var{num} colors, Emacs acts as if
952@var{num} were 0, i.e.@: it uses the terminal's default color support 957@var{num} were 0, i.e.@: it uses the terminal's default color support
953mode. 958mode.
diff --git a/man/dired.texi b/man/dired.texi
index 464aa34c6c2..0390848faf6 100644
--- a/man/dired.texi
+++ b/man/dired.texi
@@ -1116,13 +1116,10 @@ marked file. As a special case, if no prefix argument is given and
1116point is on a directory headerline, @kbd{w} gives you the name of that 1116point is on a directory headerline, @kbd{w} gives you the name of that
1117directory without looking for marked files. 1117directory without looking for marked files.
1118 1118
1119@vindex dired-marked-files
1120The main purpose of the @kbd{w} command is so that you can yank the 1119The main purpose of the @kbd{w} command is so that you can yank the
1121file names into arguments for other Emacs commands. It also displays 1120file names into arguments for other Emacs commands. It also displays
1122what was pushed onto the kill ring, so you can use it to display the 1121what was pushed onto the kill ring, so you can use it to display the
1123list of currently marked files in the echo area. It also stores the 1122list of currently marked files in the echo area.
1124list of names in the variable @code{dired-marked-files}, for use in
1125Lisp expressions.
1126@end table 1123@end table
1127 1124
1128@ignore 1125@ignore
diff --git a/man/files.texi b/man/files.texi
index 2ab9d5aaaa6..df7809309e8 100644
--- a/man/files.texi
+++ b/man/files.texi
@@ -120,7 +120,7 @@ is not defined).
120only when done before Emacs is started. 120only when done before Emacs is started.
121 121
122@cindex home directory shorthand 122@cindex home directory shorthand
123 You can use the @file{~/} in a file name to mean your home directory, 123 You can use @file{~/} in a file name to mean your home directory,
124or @file{~@var{user-id}/} to mean the home directory of a user whose 124or @file{~@var{user-id}/} to mean the home directory of a user whose
125login name is @code{user-id}. (On DOS and Windows systems, where a user 125login name is @code{user-id}. (On DOS and Windows systems, where a user
126doesn't have a home directory, Emacs substitutes @file{~/} with the 126doesn't have a home directory, Emacs substitutes @file{~/} with the
@@ -208,11 +208,13 @@ While in the minibuffer, you can abort @kbd{C-x C-f} by typing
208about this, see @ref{Completion Options}. 208about this, see @ref{Completion Options}.
209 209
210@cindex file selection dialog 210@cindex file selection dialog
211 When Emacs is built with a suitable GUI toolkit, it pops up the 211 When Emacs is built with a suitable GUI toolkit, commands invoked
212standard File Selection dialog of that toolkit instead of prompting for 212with the mouse or the menu bar use the toolkit's standard File
213the file name in the minibuffer. On Unix and GNU/Linux platforms, Emacs 213Selection dialog instead of prompting for the file name in the
214does that when built with LessTif and Motif toolkits; on MS-Windows, the 214minibuffer. On Unix and GNU/Linux platforms, Emacs does that when
215GUI version does that by default. 215built with GTK, LessTif, and Motif toolkits; on MS-Windows, the GUI
216version does that by default. @xref{Dialog Boxes}, for info
217on customization of this.
216 218
217 Your confirmation that @kbd{C-x C-f} has completed successfully is the 219 Your confirmation that @kbd{C-x C-f} has completed successfully is the
218appearance of new text on the screen and a new buffer name in the mode 220appearance of new text on the screen and a new buffer name in the mode
@@ -253,10 +255,10 @@ carriage-return linefeed or just carriage-return if appropriate.
253@vindex find-file-run-dired 255@vindex find-file-run-dired
254 If the file you specify is actually a directory, @kbd{C-x C-f} invokes 256 If the file you specify is actually a directory, @kbd{C-x C-f} invokes
255Dired, the Emacs directory browser, so that you can ``edit'' the contents 257Dired, the Emacs directory browser, so that you can ``edit'' the contents
256of the directory (@pxref{Dired}). Dired is a convenient way to delete, 258of the directory (@pxref{Dired}). Dired is a convenient way to view, delete,
257look at, or operate on the files in the directory. However, if the 259or operate on the files in the directory. However, if the variable
258variable @code{find-file-run-dired} is @code{nil}, then it is an error 260@code{find-file-run-dired} is @code{nil}, then it is an error to try
259to try to visit a directory. 261to visit a directory.
260 262
261 Files which are actually collections of other files, or @dfn{file 263 Files which are actually collections of other files, or @dfn{file
262archives}, are visited in special modes which invoke a Dired-like 264archives}, are visited in special modes which invoke a Dired-like
@@ -407,6 +409,9 @@ about other buffers.
407View the buffer that you are currently being asked about. When you exit 409View the buffer that you are currently being asked about. When you exit
408View mode, you get back to @code{save-some-buffers}, which asks the 410View mode, you get back to @code{save-some-buffers}, which asks the
409question again. 411question again.
412@item d
413Diff the buffer against its corresponding file, so you can see
414what changes you would be saving.
410@item C-h 415@item C-h
411Display a help message about these options. 416Display a help message about these options.
412@end table 417@end table
@@ -3085,26 +3090,24 @@ syntax:
3085@end example 3090@end example
3086 3091
3087@noindent 3092@noindent
3088When you do this, Emacs may use the FTP program to access files on the 3093To carry out this request, Emacs uses either the FTP program or a
3089remote host, or Emacs may use a remote-login program (such as 3094remote-login program such as @command{ssh}, @command{rlogin}, or
3090@command{ssh}, @command{rlogin}, or @command{telnet}) to do this. 3095@command{telnet}. You can always specify in the file name which
3091 3096method to use---for example,
3092You can always specify in the file name which method should be used to
3093access the remote files, for example
3094@file{/ftp:@var{user}@@@var{host}:@var{filename}} uses FTP, whereas 3097@file{/ftp:@var{user}@@@var{host}:@var{filename}} uses FTP, whereas
3095@file{/ssh:@var{user}@@@var{host}:@var{filename}} uses @command{ssh}. 3098@file{/ssh:@var{user}@@@var{host}:@var{filename}} uses @command{ssh}.
3096When you don't specify a method in the file name, Emacs determines a 3099When you don't specify a method in the file name, Emacs chooses
3097default method according to the following rules: 3100the method as follows:
3098 3101
3099@enumerate 3102@enumerate
3100@item 3103@item
3101If the host name starts with @samp{ftp.} (with dot), then Emacs assumes 3104If the host name starts with @samp{ftp.} (with dot), then Emacs uses
3102the @command{ftp} method. 3105FTP.
3103@item 3106@item
3104If the user name is @samp{ftp} or @samp{anonymous}, then Emacs assumes 3107If the user name is @samp{ftp} or @samp{anonymous}, then Emacs uses
3105the @command{ftp} method. 3108FTP.
3106@item 3109@item
3107Otherwise, Emacs assumes the @command{ssh} method. 3110Otherwise, Emacs uses @command{ssh}.
3108@end enumerate 3111@end enumerate
3109 3112
3110@noindent 3113@noindent
diff --git a/man/fixit.texi b/man/fixit.texi
index 84121842b8c..04fa823e76e 100644
--- a/man/fixit.texi
+++ b/man/fixit.texi
@@ -159,7 +159,7 @@ checker program Ispell, which is not part of Emacs.
159@table @kbd 159@table @kbd
160@item M-x flyspell-mode 160@item M-x flyspell-mode
161Enable Flyspell mode, which highlights all misspelled words. 161Enable Flyspell mode, which highlights all misspelled words.
162@item M-x flyspell-progmode 162@item M-x flyspell-prog-mode
163Enable Flyspell mode for comments and strings only. 163Enable Flyspell mode for comments and strings only.
164@item M-$ 164@item M-$
165Check and correct spelling of the word at point (@code{ispell-word}). 165Check and correct spelling of the word at point (@code{ispell-word}).
diff --git a/man/frames.texi b/man/frames.texi
index 2d6c953d2e4..5c0c42b3d8b 100644
--- a/man/frames.texi
+++ b/man/frames.texi
@@ -29,10 +29,6 @@ frame.
29so that you can use many of the features described in this chapter. 29so that you can use many of the features described in this chapter.
30@xref{MS-DOS Input}, for more information. 30@xref{MS-DOS Input}, for more information.
31 31
32@cindex MS Windows
33 Emacs compiled for MS Windows mostly supports the same features as
34under X.
35
36@menu 32@menu
37* Mouse Commands:: Moving, cutting, and pasting, with the mouse. 33* Mouse Commands:: Moving, cutting, and pasting, with the mouse.
38* Secondary Selection:: Cutting without altering point and mark. 34* Secondary Selection:: Cutting without altering point and mark.
@@ -48,7 +44,7 @@ under X.
48* Frame Parameters:: Changing the colors and other modes of frames. 44* Frame Parameters:: Changing the colors and other modes of frames.
49* Scroll Bars:: How to enable and disable scroll bars; how to use them. 45* Scroll Bars:: How to enable and disable scroll bars; how to use them.
50* Wheeled Mice:: Using mouse wheels for scrolling. 46* Wheeled Mice:: Using mouse wheels for scrolling.
51* Drag and drop:: Using drag and drop to open files and insert text. 47* Drag and Drop:: Using drag and drop to open files and insert text.
52* Menu Bars:: Enabling and disabling the menu bar. 48* Menu Bars:: Enabling and disabling the menu bar.
53* Tool Bars:: Enabling and disabling the tool bar. 49* Tool Bars:: Enabling and disabling the tool bar.
54* Dialog Boxes:: Controlling use of dialog boxes. 50* Dialog Boxes:: Controlling use of dialog boxes.
@@ -64,7 +60,9 @@ under X.
64 60
65 The mouse commands for selecting and copying a region are mostly 61 The mouse commands for selecting and copying a region are mostly
66compatible with the @code{xterm} program. You can use the same mouse 62compatible with the @code{xterm} program. You can use the same mouse
67commands for copying between Emacs and other X client programs. 63commands for copying between Emacs and other window-based programs.
64Most of these commands also work in Emacs when you run it under an
65@code{xterm} terminal.
68 66
69@kindex DELETE @r{(and mouse selection)} 67@kindex DELETE @r{(and mouse selection)}
70 If you select a region with any of these mouse commands, and then 68 If you select a region with any of these mouse commands, and then
@@ -188,8 +186,6 @@ you want. Then yank it in Emacs with @kbd{C-y} or @kbd{Mouse-2}.
188system for X selections, use @kbd{C-x @key{RET} x} or @kbd{C-x 186system for X selections, use @kbd{C-x @key{RET} x} or @kbd{C-x
189@key{RET} X}. @xref{Specify Coding}. 187@key{RET} X}. @xref{Specify Coding}.
190 188
191 These cutting and pasting commands also work on MS-Windows.
192
193@cindex primary selection 189@cindex primary selection
194@cindex cut buffer 190@cindex cut buffer
195@cindex selection, primary 191@cindex selection, primary
@@ -270,7 +266,7 @@ that matters is which window you click on. @xref{Mouse Commands}.
270@cindex OpenWindows 266@cindex OpenWindows
271@cindex Gnome 267@cindex Gnome
272 268
273 As well as the primary and secondary selection types, X supports a 269 Apart from the primary and secondary selection types, X supports a
274@dfn{clipboard} selection type which is used by some applications, 270@dfn{clipboard} selection type which is used by some applications,
275particularly under OpenWindows and Gnome. 271particularly under OpenWindows and Gnome.
276 272
@@ -287,28 +283,42 @@ unlike most systems.
287 283
288@node Mouse References 284@node Mouse References
289@section Following References with the Mouse 285@section Following References with the Mouse
286@kindex Mouse-1 @r{(selection)}
290@kindex Mouse-2 @r{(selection)} 287@kindex Mouse-2 @r{(selection)}
291 288
292 Some Emacs buffers display lists of various sorts. These include 289 Some read-only Emacs buffers include references you can follow, or
293lists of files, of buffers, of possible completions, of matches for 290commands you can activate. These include names of files, of buffers,
294a pattern, and so on. 291of possible completions, of matches for a pattern, as well as the
295 292buttons in Help buffers and customization buffers. You can follow the
296 Since yanking text into these buffers is not very useful, most of them 293reference or activate the command by moving point to it and typing
297define @kbd{Mouse-2} specially, as a command to use or view the item you 294@key{RET}. You can also do this with the mouse, using either
298click on. 295@kbd{Mouse-1} or @kbd{Mouse-2}.
299 296
300 For example, if you click @kbd{Mouse-2} on a file name in a Dired 297 Since yanking text into a read-only buffer is not allowed, these
301buffer, you visit that file. If you click @kbd{Mouse-2} on an error 298buffers generally define @kbd{Mouse-2} to follow a reference or
302message in the @samp{*Compilation*} buffer, you go to the source code 299activate a command. For example, if you click @kbd{Mouse-2} on a file
303for that error message. If you click @kbd{Mouse-2} on a completion in 300name in a Dired buffer, you visit that file. If you click
304the @samp{*Completions*} buffer, you choose that completion. 301@kbd{Mouse-2} on an error message in the @samp{*Compilation*} buffer,
302you go to the source code for that error message. If you click
303@kbd{Mouse-2} on a completion in the @samp{*Completions*} buffer, you
304choose that completion.
305
306@vindex mouse-1-click-follows-link
307 However, most applications use @kbd{Mouse-1} to do this sort of
308thing, so Emacs implements this too. If you click @kbd{Mouse-1}
309quickly on a reference or button, it follows or activates. If you
310click slowly, it moves point as usual. Dragging, meaning moving the
311mouse while it is held down, also has its usual behavior of setting
312the region. The variable @code{mouse-1-click-follows-link} controls
313whether @kbd{Mouse-1} has this behavior.
305 314
306@vindex mouse-highlight 315@vindex mouse-highlight
307 You can usually tell when @kbd{Mouse-2} has this special sort of 316 You can usually tell when @kbd{Mouse-1} and @kbd{Mouse-2} have this
308meaning because the sensitive text highlights when you move the mouse 317special sort of meaning because the sensitive text highlights when you
309over it. The variable @code{mouse-highlight} controls whether to do 318move the mouse over it. The variable @code{mouse-highlight} controls
310this highlighting always (even when such text appears where the mouse 319whether to do this highlighting always (even when such text appears
311already is), never, or only immediately after you move the mouse. 320where the mouse already is), never, or only immediately after you move
321the mouse.
312 322
313@node Menu Mouse Clicks 323@node Menu Mouse Clicks
314@section Mouse Clicks for Menus 324@section Mouse Clicks for Menus
@@ -331,16 +341,17 @@ for editing formatted text. @xref{Formatted Text}.
331 341
332@item C-Mouse-3 342@item C-Mouse-3
333@kindex C-Mouse-3 343@kindex C-Mouse-3
334This menu is mode-specific. For most modes if Menu-bar mode is on, this 344This menu is mode-specific. For most modes if Menu-bar mode is on,
335menu has the same items as all the mode-specific menu-bar menus put 345this menu has the same items as all the mode-specific menu-bar menus
336together. Some modes may specify a different menu for this 346put together. Some modes may specify a different menu for this
337button.@footnote{Some systems use @kbd{Mouse-3} for a mode-specific 347button.@footnote{Some systems use @kbd{Mouse-3} for a mode-specific
338menu. We took a survey of users, and found they preferred to keep 348menu. We took a survey of users, and found they preferred to keep
339@kbd{Mouse-3} for selecting and killing regions. Hence the decision to 349@kbd{Mouse-3} for selecting and killing regions. Hence the decision
340use @kbd{C-Mouse-3} for this menu.} If Menu-bar mode is off, this menu 350to use @kbd{C-Mouse-3} for this menu. To use @kbd{Mouse-3} instead,
341contains all the items which would be present in the menu bar---not just 351do @code{(global-set-key [mouse-3] 'mouse-popup-menubar-stuff)}.} If
342the mode-specific ones---so that you can access them without having to 352Menu-bar mode is off, this menu contains all the items which would be
343display the menu bar. 353present in the menu bar---not just the mode-specific ones---so that
354you can access them without having to display the menu bar.
344 355
345@item S-Mouse-1 356@item S-Mouse-1
346This menu is for specifying the frame's principal font. 357This menu is for specifying the frame's principal font.
@@ -357,9 +368,9 @@ windows.
357@table @kbd 368@table @kbd
358@item Mouse-1 369@item Mouse-1
359@kindex Mouse-1 @r{(mode line)} 370@kindex Mouse-1 @r{(mode line)}
360@kbd{Mouse-1} on a mode line selects the window above. By dragging 371@kbd{Mouse-1} on a mode line selects the window it belongs to. By
361@kbd{Mouse-1} on the mode line, you can move it, thus changing the 372dragging @kbd{Mouse-1} on the mode line, you can move it, thus
362height of the windows above and below. 373changing the height of the windows above and below.
363 374
364@item Mouse-2 375@item Mouse-2
365@kindex Mouse-2 @r{(mode line)} 376@kindex Mouse-2 @r{(mode line)}
@@ -367,9 +378,9 @@ height of the windows above and below.
367 378
368@item Mouse-3 379@item Mouse-3
369@kindex Mouse-3 @r{(mode line)} 380@kindex Mouse-3 @r{(mode line)}
370@kbd{Mouse-3} on a mode line deletes the window above. If the frame has 381@kbd{Mouse-3} on a mode line deletes the window it belongs to. If the
371only one window, it buries the current buffer instead and switches to 382frame has only one window, it buries the current buffer instead, and
372another buffer. 383switches to another buffer.
373 384
374@item C-Mouse-2 385@item C-Mouse-2
375@kindex C-mouse-2 @r{(mode line)} 386@kindex C-mouse-2 @r{(mode line)}
@@ -639,7 +650,6 @@ whether that feature is also in use for the same buffer name.
639 650
640@node Frame Parameters 651@node Frame Parameters
641@section Setting Frame Parameters 652@section Setting Frame Parameters
642@cindex colors
643@cindex Auto-Raise mode 653@cindex Auto-Raise mode
644@cindex Auto-Lower mode 654@cindex Auto-Lower mode
645 655
@@ -653,10 +663,16 @@ window management behavior of the selected frame.
653@findex set-border-color 663@findex set-border-color
654@findex auto-raise-mode 664@findex auto-raise-mode
655@findex auto-lower-mode 665@findex auto-lower-mode
666@cindex colors
656@table @kbd 667@table @kbd
657@item M-x set-foreground-color @key{RET} @var{color} @key{RET} 668@item M-x set-foreground-color @key{RET} @var{color} @key{RET}
658Specify color @var{color} for the foreground of the selected frame. 669Specify color @var{color} for the foreground of the selected frame.
659(This also changes the foreground color of the default face.) 670(This also changes the foreground color of the default face.) You can
671specify @var{color} either by its symbolic name or by its RGB
672numerical specification@footnote{
673See the X Window System documentation for more details. On a typical
674GNU or Unix system, the command @kbd{man 7 X} or @kbd{man -s 7 X} will
675display the X manual page that explains how to specify colors.}.
660 676
661@item M-x set-background-color @key{RET} @var{color} @key{RET} 677@item M-x set-background-color @key{RET} @var{color} @key{RET}
662Specify color @var{color} for the background of the selected frame. 678Specify color @var{color} for the background of the selected frame.
@@ -674,7 +690,8 @@ Specify color @var{color} for the border of the selected frame.
674 690
675@item M-x list-colors-display 691@item M-x list-colors-display
676Display the defined color names and show what the colors look like. 692Display the defined color names and show what the colors look like.
677This command is somewhat slow. 693This command is somewhat slow. @xref{Colors, list-colors-display,
694Display available colors}.
678 695
679@item M-x auto-raise-mode 696@item M-x auto-raise-mode
680Toggle whether or not the selected frame should auto-raise. Auto-raise 697Toggle whether or not the selected frame should auto-raise. Auto-raise
@@ -798,19 +815,24 @@ generating appropriate events for Emacs.
798@code{mouse-wheel-scroll-amount} determine where and by how much 815@code{mouse-wheel-scroll-amount} determine where and by how much
799buffers are scrolled. 816buffers are scrolled.
800 817
801@node Drag and drop 818@node Drag and Drop
802@section Drag and drop in Emacs. 819@section Drag and Drop
803
804@cindex drag and drop 820@cindex drag and drop
805 Emacs supports drag and drop so that dropping of files and text is handled.
806Currently supported drag and drop protocols are XDND, Motif and the old
807KDE 1.x protocol. There is no drag support yet.
808When text is dropped on Emacs, Emacs inserts the text where it is dropped.
809When a file is dragged from a file manager to Emacs, Emacs opens that file.
810As a special case, if a file is dropped on a dired buffer the file is
811copied or moved (depends on exactly how it is dragged and the application
812it was dragged from) to the directory the dired buffer is displaying.
813 821
822 Emacs supports @dfn{drag and drop} using the mouse. For instance,
823dropping text onto an Emacs frame inserts the text where it is dropped.
824Dropping a file onto an Emacs frame visits that file. As a special
825case, dropping the file on a Dired buffer moves or copies the file
826(according to the conventions of the application it came from) into the
827directory displayed in that buffer.
828
829@vindex x-dnd-open-file-other-window
830 Dropping a file normally visits it in the window you drop it on. If
831you prefer to visit the file in a new window in such cases, customize
832the variable @code{x-dnd-open-file-other-window}.
833
834@ignore
835@c ??? To Lisp manual
814@vindex x-dnd-test-function 836@vindex x-dnd-test-function
815@vindex x-dnd-known-types 837@vindex x-dnd-known-types
816 When a user drags something from another application over Emacs, that other 838 When a user drags something from another application over Emacs, that other
@@ -822,26 +844,24 @@ which accepts drops if the type of the data to be dropped is present in
822@code{x-dnd-known-types} if you want Emacs to accept or reject drops based 844@code{x-dnd-known-types} if you want Emacs to accept or reject drops based
823on some other criteria. 845on some other criteria.
824 846
825@vindex x-dnd-open-file-other-window
826 A file is normally opened in the window it is dropped on, but if you
827prefer the file to be opened in a new window you can customize the variable
828@code{x-dnd-open-file-other-window}.
829
830@vindex x-dnd-types-alist 847@vindex x-dnd-types-alist
831 If you want to change the way Emacs handles drop of different types 848 If you want to change the way Emacs handles drop of different types
832or add a new type, you shall customize @code{x-dnd-types-alist}. This 849or add a new type, customize @code{x-dnd-types-alist}. This requires
833requires detailed knowledge of what types other applications use 850detailed knowledge of what types other applications use for drag and
834for drag and drop. 851drop.
835 852
836@vindex x-dnd-protocol-alist 853@vindex x-dnd-protocol-alist
837 When an URL is dropped on Emacs it may be a file, but it may also be 854 When an URL is dropped on Emacs it may be a file, but it may also be
838another URL type (ftp, http, etc.). Emacs first checks 855another URL type (ftp, http, etc.). Emacs first checks
839@code{x-dnd-protocol-alist} to determine what to do with the URL. If there 856@code{x-dnd-protocol-alist} to determine what to do with the URL. If
840is no match there and if @code{browse-url-browser-function} is an alist, 857there is no match there and if @code{browse-url-browser-function} is
841Emacs looks for a match there. If no match is found the text for the URL 858an alist, Emacs looks for a match there. If no match is found the
842is inserted. If you want to alter Emacs behaviour you can customize these 859text for the URL is inserted. If you want to alter Emacs behavior,
843variables. 860you can customize these variables.
861@end ignore
844 862
863 The drag and drop protocols XDND, Motif and the
864old KDE 1.x protocol are currently supported.
845 865
846@node Menu Bars 866@node Menu Bars
847@section Menu Bars 867@section Menu Bars
@@ -873,20 +893,20 @@ menus.
873@cindex mode, Tool Bar 893@cindex mode, Tool Bar
874@cindex icons, toolbar 894@cindex icons, toolbar
875 895
876The @dfn{tool bar} is a line (or multiple lines) of icons at the top 896 The @dfn{tool bar} is a line (or lines) of icons at the top of the
877of the Emacs window. You can click on these icons with the mouse 897Emacs window, just below the menu bar. You can click on these icons
878to do various jobs. 898with the mouse to do various jobs.
879 899
880The global tool bar contains general commands. Some major modes 900 The global tool bar contains general commands. Some major modes
881define their own tool bars to replace it. A few ``special'' modes 901define their own tool bars to replace it. A few ``special'' modes
882that are not designed for ordinary editing remove some items from the 902that are not designed for ordinary editing remove some items from the
883global tool bar. 903global tool bar.
884 904
885Tool bars work only on a graphical display. The tool bar uses colored 905 Tool bars work only on a graphical display. The tool bar uses colored
886XPM icons if Emacs was built with XPM support. Otherwise, the tool 906XPM icons if Emacs was built with XPM support. Otherwise, the tool
887bar uses monochrome icons (PBM or XBM format). 907bar uses monochrome icons (PBM or XBM format).
888 908
889You can turn display of tool bars on or off with @kbd{M-x 909 You can turn display of tool bars on or off with @kbd{M-x
890tool-bar-mode}. 910tool-bar-mode}.
891 911
892@node Dialog Boxes 912@node Dialog Boxes
diff --git a/man/text.texi b/man/text.texi
index a83e78cc211..8eaa6178a8d 100644
--- a/man/text.texi
+++ b/man/text.texi
@@ -185,9 +185,9 @@ Kill back to the beginning of the sentence (@code{backward-kill-sentence}).
185 The commands @kbd{M-a} and @kbd{M-e} (@code{backward-sentence} and 185 The commands @kbd{M-a} and @kbd{M-e} (@code{backward-sentence} and
186@code{forward-sentence}) move to the beginning and end of the current 186@code{forward-sentence}) move to the beginning and end of the current
187sentence, respectively. They were chosen to resemble @kbd{C-a} and 187sentence, respectively. They were chosen to resemble @kbd{C-a} and
188@kbd{C-e}, which move to the beginning and end of a line. Unlike them, 188@kbd{C-e}, which move to the beginning and end of a line. Unlike
189@kbd{M-a} and @kbd{M-e} if repeated or given numeric arguments move over 189them, @kbd{M-a} and @kbd{M-e} move over successive sentences if
190successive sentences. 190repeated.
191 191
192 Moving backward over a sentence places point just before the first 192 Moving backward over a sentence places point just before the first
193character of the sentence; moving forward places point right after the 193character of the sentence; moving forward places point right after the
@@ -238,11 +238,10 @@ set @code{sentence-end} to this value:
238@end example 238@end example
239 239
240@noindent 240@noindent
241You should also set the variable @code{sentence-end-double-space} to 241This is what setting the variable @code{sentence-end-double-space} to
242@code{nil} so that the fill commands expect and leave just one space at 242@code{nil} automatically does. But note that this makes it impossible
243the end of a sentence. Note that this makes it impossible to 243to distinguish between periods that end sentences and those that
244distinguish between periods that end sentences and those that indicate 244indicate abbreviations.
245abbreviations.
246 245
247@node Paragraphs 246@node Paragraphs
248@section Paragraphs 247@section Paragraphs
@@ -269,8 +268,8 @@ paragraph, while @kbd{M-@}} moves to the end of the current or next
269paragraph. Blank lines and text-formatter command lines separate 268paragraph. Blank lines and text-formatter command lines separate
270paragraphs and are not considered part of any paragraph. In Indented 269paragraphs and are not considered part of any paragraph. In Indented
271Text mode, but not in Text mode, an indented line also starts a new 270Text mode, but not in Text mode, an indented line also starts a new
272paragraph. (If a paragraph is preceded by a blank line, these 271paragraph. If there is a blank line before the paragraph, @kbd{M-@{}
273commands treat that blank line as the beginning of the paragraph.) 272moves to the blank line, because that is convenient in practice.
274 273
275 In major modes for programs, paragraphs begin and end only at blank 274 In major modes for programs, paragraphs begin and end only at blank
276lines. This makes the paragraph commands continue to be useful even 275lines. This makes the paragraph commands continue to be useful even
@@ -894,11 +893,11 @@ invisible so that you can see the outline structure. Type @kbd{M-x
894outline-mode} to switch to Outline mode as the major mode of the current 893outline-mode} to switch to Outline mode as the major mode of the current
895buffer. 894buffer.
896 895
897 When Outline mode makes a line invisible, the line does not appear on 896 When Outline mode makes a line invisible, the line does not appear
898the screen. The screen appears exactly as if the invisible line were 897on the screen. The screen appears exactly as if the invisible line
899deleted, except that an ellipsis (three periods in a row) appears at the 898were deleted, except that an ellipsis (three periods in a row) appears
900end of the previous visible line (only one ellipsis no matter how many 899at the end of the previous visible line. (Multiple consecutive
901invisible lines follow). 900invisible lines produce just one ellipsis.)
902 901
903 Editing commands that operate on lines, such as @kbd{C-n} and 902 Editing commands that operate on lines, such as @kbd{C-n} and
904@kbd{C-p}, treat the text of the invisible line as part of the previous 903@kbd{C-p}, treat the text of the invisible line as part of the previous
@@ -929,7 +928,7 @@ the hook @code{outline-mode-hook} (@pxref{Hooks}).
929 outlines. 928 outlines.
930* Visibility: Outline Visibility. Commands to control what is visible. 929* Visibility: Outline Visibility. Commands to control what is visible.
931* Views: Outline Views. Outlines and multiple views. 930* Views: Outline Views. Outlines and multiple views.
932* Foldout:: Folding editing. 931* Foldout:: Folding means zooming in on outlines.
933@end menu 932@end menu
934 933
935@node Outline Format 934@node Outline Format
@@ -1900,8 +1899,11 @@ for more information about text properties.
1900@cindex soft newline 1899@cindex soft newline
1901@cindex newlines, hard and soft 1900@cindex newlines, hard and soft
1902 1901
1902@cindex use-hard-newlines
1903 In formatted text, Emacs distinguishes between two different kinds of 1903 In formatted text, Emacs distinguishes between two different kinds of
1904newlines, @dfn{hard} newlines and @dfn{soft} newlines. 1904newlines, @dfn{hard} newlines and @dfn{soft} newlines. (You can enable
1905or disable this feature separately in any buffer with the command
1906@code{use-hard-newlines}.)
1905 1907
1906 Hard newlines are used to separate paragraphs, or items in a list, or 1908 Hard newlines are used to separate paragraphs, or items in a list, or
1907anywhere that there should always be a line break regardless of the 1909anywhere that there should always be a line break regardless of the
diff --git a/man/windows.texi b/man/windows.texi
index 8416c4be076..0d90a3b2e0c 100644
--- a/man/windows.texi
+++ b/man/windows.texi
@@ -60,8 +60,8 @@ only one mark position.
60 60
61 Each window has its own mode line, which displays the buffer name, 61 Each window has its own mode line, which displays the buffer name,
62modification status and major and minor modes of the buffer that is 62modification status and major and minor modes of the buffer that is
63displayed in the window. @xref{Mode Line}, for full details on the mode 63displayed in the window. The selected window's mode line appears in a
64line. 64different color. @xref{Mode Line}, for full details on the mode line.
65 65
66@iftex 66@iftex
67@break 67@break
@@ -322,9 +322,14 @@ except for the echo area.
322@kbd{Mouse-3}, and delete all the windows in a frame except one window 322@kbd{Mouse-3}, and delete all the windows in a frame except one window
323by clicking on that window's mode line with @kbd{Mouse-2}. 323by clicking on that window's mode line with @kbd{Mouse-2}.
324 324
325 The easiest way to adjust window heights is with a mouse. If you 325 You can also adjust window heights and widths with the mouse. If
326press @kbd{Mouse-1} on a mode line, you can drag that mode line up or 326you press @kbd{Mouse-1} on a mode line, you can drag that mode line up
327down, changing the heights of the windows above and below it. 327or down, changing the heights of the windows above and below it. If
328you press it on the divider between two consecutive mode lines, you
329can drag that divider right or left, changing the widths of the
330windows to either side. Note that changing heights and widths with
331the mouse never deletes windows, it just refuses to make any window
332smaller than it can be.
328 333
329@kindex C-x ^ 334@kindex C-x ^
330@findex enlarge-window 335@findex enlarge-window
diff --git a/src/ChangeLog b/src/ChangeLog
index 397a34f1be4..b15fba5254c 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,82 @@
12005-02-05 Andreas Schwab <schwab@suse.de>
2
3 * sysdep.c (sys_subshell): Properly terminate execlp argument
4 list.
5
62005-02-05 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
7
8 * xselect.c (Fx_send_client_event, x_handle_dnd_message): Handle
9 the longs in a XClientMessageEvent correctly when long is 64 bits.
10
112005-02-05 Eli Zaretskii <eliz@gnu.org>
12
13 * xfaces.c (face_color_supported_p): Use HAVE_WINDOW_SYSTEM
14 instead of HAVE_X_WINDOWS, for non-X windowed sessions.
15
162005-02-03 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
17
18 * xmenu.c (menubar_selection_callback): Force out GTK buffered
19 events so the menu event comes after them. This is to prevent sit-for
20 from exiting on buffered events directly after a menu selection,
21 lisp code for Help => About Emacs uses sit-for.
22
23 * gtkutil.c (create_menus): Connect selection-done event instead of
24 the deactivate event to deactivate_cb. This will make the last
25 leave event come before the call to deactivate_cb, so the leave
26 event does not make sit-for exit after a menu selection.
27
282005-02-03 Kim F. Storm <storm@cua.dk>
29
30 * dispnew.c (build_frame_matrix_from_leaf_window)
31 [!GLYPH_DEBUG]: Fix xassert.
32
33 * xfaces.c (x_free_gc) [!GLYPH_DEBUG]: Fix xassert.
34
35 * xfns.c (unwind_create_frame) [!GLYPH_DEBUG]: Fix xassert.
36
372005-02-03 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
38
39 * mac.c: Use MAC_OS_X_VERSION_MAX_ALLOWED to conditionalize by
40 the compiling OS version.
41
42 * macfns.c (x_create_tip_frame): Likewise.
43
44 * macterm.c (mac_draw_string_common, x_make_frame_visible):
45 Likewise.
46
472005-02-03 Richard M. Stallman <rms@gnu.org>
48
49 * xterm.c (x_error_quitter): On GCC 3 and up, specify noinline.
50
51 * xdisp.c (echo_area_display): Clear echo_message_buffer.
52
53 * buffer.c (Fbury_buffer): Doc fix.
54
552005-02-02 Steven Tamm <steventamm@mac.com>
56
57 * macfns.c (unwind_create_frame): Fixing compile error due to
58 xassert being uncondition, but predicate is.
59 * dispnew.c (update_window): Fixing compile error due to
60 xassert being uncondition, but predicate is.
61
622005-02-02 Miles Bader <miles@gnu.org>
63
64 * dispextern.h (xassert): Enable unconditionally.
65
662005-02-02 Kim F. Storm <storm@cua.dk>
67
68 * undo.c (Fprimitive_undo): Fix dummy apply undo entry.
69
702005-02-02 Kenichi Handa <handa@m17n.org>
71
72 * casefiddle.c (casify_object): Enable changing characters of
73 different byte length.
74 (casify_region): Fix loop condition, args to replace_range_2, and
75 update opoint_byte.
76
77 * insdel.c (replace_range_2): Fix bugs in adjusting markers and
78 point.
79
12005-02-01 Kim F. Storm <storm@cua.dk> 802005-02-01 Kim F. Storm <storm@cua.dk>
2 81
3 * xdisp.c (back_to_previous_visible_line_start): Reset iterator 82 * xdisp.c (back_to_previous_visible_line_start): Reset iterator
diff --git a/src/buffer.c b/src/buffer.c
index d869388ec72..153b0ca0bb2 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -1953,6 +1953,7 @@ DEFUN ("bury-buffer", Fbury_buffer, Sbury_buffer, 0, 1, "",
1953 doc: /* Put BUFFER at the end of the list of all buffers. 1953 doc: /* Put BUFFER at the end of the list of all buffers.
1954There it is the least likely candidate for `other-buffer' to return; 1954There it is the least likely candidate for `other-buffer' to return;
1955thus, the least likely buffer for \\[switch-to-buffer] to select by default. 1955thus, the least likely buffer for \\[switch-to-buffer] to select by default.
1956You can specify a buffer name as BUFFER, or an actual buffer object.
1956If BUFFER is nil or omitted, bury the current buffer. 1957If BUFFER is nil or omitted, bury the current buffer.
1957Also, if BUFFER is nil or omitted, remove the current buffer from the 1958Also, if BUFFER is nil or omitted, remove the current buffer from the
1958selected window if it is displayed there. */) 1959selected window if it is displayed there. */)
diff --git a/src/casefiddle.c b/src/casefiddle.c
index 297eb82c15b..889c3879cb4 100644
--- a/src/casefiddle.c
+++ b/src/casefiddle.c
@@ -1,5 +1,5 @@
1/* GNU Emacs case conversion functions. 1/* GNU Emacs case conversion functions.
2 Copyright (C) 1985,94,97,98,99, 2001, 2002, 2004 2 Copyright (C) 1985,94,97,98,99, 2001, 2002, 2004, 2005
3 Free Software Foundation, Inc. 3 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
diff --git a/src/dispextern.h b/src/dispextern.h
index 5edc213fba1..a438b305c35 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -1,5 +1,5 @@
1/* Interface definitions for display code. 1/* Interface definitions for display code.
2 Copyright (C) 1985,93,94,97,98,99, 2000,01,02,03, 2004 2 Copyright (C) 1985,93,94,97,98,99, 2000,01,02,03, 2004, 2005
3 Free Software Foundation, Inc. 3 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
@@ -123,12 +123,13 @@ enum window_part
123 123
124#if GLYPH_DEBUG 124#if GLYPH_DEBUG
125#define IF_DEBUG(X) X 125#define IF_DEBUG(X) X
126#define xassert(X) do {if (!(X)) abort ();} while (0)
127#else 126#else
128#define IF_DEBUG(X) (void) 0 127#define IF_DEBUG(X) (void) 0
129#define xassert(X) (void) 0
130#endif 128#endif
131 129
130/* Maybe move this inside the above `#ifdef GLYPH_DEBUG' for release. */
131#define xassert(X) do {if (!(X)) abort ();} while (0)
132
132/* Macro for displaying traces of redisplay. If Emacs was compiled 133/* Macro for displaying traces of redisplay. If Emacs was compiled
133 with GLYPH_DEBUG != 0, the variable trace_redisplay_p can be set to 134 with GLYPH_DEBUG != 0, the variable trace_redisplay_p can be set to
134 a non-zero value in debugging sessions to activate traces. */ 135 a non-zero value in debugging sessions to activate traces. */
diff --git a/src/dispnew.c b/src/dispnew.c
index c07a4cf8395..302095aa1e8 100644
--- a/src/dispnew.c
+++ b/src/dispnew.c
@@ -1,6 +1,6 @@
1/* Updating of data structures for redisplay. 1/* Updating of data structures for redisplay.
2 Copyright (C) 1985,86,87,88,93,94,95,97,98,1999,2000,01,02,03,04 2 Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1997, 1998, 1999,
3 Free Software Foundation, Inc. 3 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
@@ -2763,6 +2763,7 @@ build_frame_matrix_from_leaf_window (frame_matrix, w)
2763 SET_CHAR_GLYPH_FROM_GLYPH (*border, right_border_glyph); 2763 SET_CHAR_GLYPH_FROM_GLYPH (*border, right_border_glyph);
2764 } 2764 }
2765 2765
2766#if GLYPH_DEBUG
2766 /* Window row window_y must be a slice of frame row 2767 /* Window row window_y must be a slice of frame row
2767 frame_y. */ 2768 frame_y. */
2768 xassert (glyph_row_slice_p (window_row, frame_row)); 2769 xassert (glyph_row_slice_p (window_row, frame_row));
@@ -2770,7 +2771,6 @@ build_frame_matrix_from_leaf_window (frame_matrix, w)
2770 /* If rows are in sync, we don't have to copy glyphs because 2771 /* If rows are in sync, we don't have to copy glyphs because
2771 frame and window share glyphs. */ 2772 frame and window share glyphs. */
2772 2773
2773#if GLYPH_DEBUG
2774 strcpy (w->current_matrix->method, w->desired_matrix->method); 2774 strcpy (w->current_matrix->method, w->desired_matrix->method);
2775 add_window_display_history (w, w->current_matrix->method, 0); 2775 add_window_display_history (w, w->current_matrix->method, 0);
2776#endif 2776#endif
@@ -4051,11 +4051,11 @@ update_window (w, force_p)
4051 extern Lisp_Object do_mouse_tracking; 4051 extern Lisp_Object do_mouse_tracking;
4052#if GLYPH_DEBUG 4052#if GLYPH_DEBUG
4053 struct frame *f = XFRAME (WINDOW_FRAME (w)); 4053 struct frame *f = XFRAME (WINDOW_FRAME (w));
4054#endif
4055 4054
4056 /* Check that W's frame doesn't have glyph matrices. */ 4055 /* Check that W's frame doesn't have glyph matrices. */
4057 xassert (FRAME_WINDOW_P (f)); 4056 xassert (FRAME_WINDOW_P (f));
4058 xassert (updating_frame != NULL); 4057 xassert (updating_frame != NULL);
4058#endif
4059 4059
4060 /* Check pending input the first time so that we can quickly return. */ 4060 /* Check pending input the first time so that we can quickly return. */
4061 if (redisplay_dont_pause) 4061 if (redisplay_dont_pause)
diff --git a/src/gtkutil.c b/src/gtkutil.c
index aecc4e2eaea..6bf0c25f350 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -1905,7 +1905,7 @@ create_menus (data, f, select_cb, deactivate_cb, highlight_cb,
1905 1905
1906 if (deactivate_cb) 1906 if (deactivate_cb)
1907 g_signal_connect (G_OBJECT (wmenu), 1907 g_signal_connect (G_OBJECT (wmenu),
1908 "deactivate", deactivate_cb, 0); 1908 "selection-done", deactivate_cb, 0);
1909 1909
1910 g_signal_connect (G_OBJECT (wmenu), 1910 g_signal_connect (G_OBJECT (wmenu),
1911 "grab-notify", G_CALLBACK (menu_grab_callback), 0); 1911 "grab-notify", G_CALLBACK (menu_grab_callback), 0);
diff --git a/src/insdel.c b/src/insdel.c
index aec393692a2..c2ee9a94674 100644
--- a/src/insdel.c
+++ b/src/insdel.c
@@ -1,5 +1,5 @@
1/* Buffer insertion/deletion and gap motion for GNU Emacs. 1/* Buffer insertion/deletion and gap motion for GNU Emacs.
2 Copyright (C) 1985, 86,93,94,95,97,98, 1999, 2000, 01, 2003 2 Copyright (C) 1985, 86,93,94,95,97,98, 1999, 2000, 01, 2003, 2005
3 Free Software Foundation, Inc. 3 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
@@ -1778,17 +1778,21 @@ replace_range_2 (from, from_byte, to, to_byte, ins, inschars, insbytes, markers)
1778 1778
1779 /* Adjust markers for the deletion and the insertion. */ 1779 /* Adjust markers for the deletion and the insertion. */
1780 if (markers 1780 if (markers
1781 && ! (nchars_del == 1 && inschars == 1)) 1781 && ! (nchars_del == 1 && inschars == 1 && nbytes_del == insbytes))
1782 adjust_markers_for_replace (from, from_byte, nchars_del, nbytes_del, 1782 adjust_markers_for_replace (from, from_byte, nchars_del, nbytes_del,
1783 inschars, insbytes); 1783 inschars, insbytes);
1784 1784
1785 offset_intervals (current_buffer, from, inschars - nchars_del); 1785 offset_intervals (current_buffer, from, inschars - nchars_del);
1786 1786
1787 /* Relocate point as if it were a marker. */ 1787 /* Relocate point as if it were a marker. */
1788 if (from < PT && nchars_del != inschars) 1788 if (from < PT && (nchars_del != inschars || nbytes_del != insbytes))
1789 adjust_point ((from + inschars - (PT < to ? PT : to)), 1789 {
1790 (from_byte + insbytes 1790 if (PT < to)
1791 - (PT_BYTE < to_byte ? PT_BYTE : to_byte))); 1791 /* PT was within the deleted text. Move it to FROM. */
1792 adjust_point (from - PT, from_byte - PT_BYTE);
1793 else
1794 adjust_point (inschars - nchars_del, insbytes - nbytes_del);
1795 }
1792 1796
1793 if (insbytes == 0) 1797 if (insbytes == 0)
1794 evaporate_overlays (from); 1798 evaporate_overlays (from);
diff --git a/src/mac.c b/src/mac.c
index 99e0d44830b..cce1b858cb3 100644
--- a/src/mac.c
+++ b/src/mac.c
@@ -2858,7 +2858,7 @@ select_and_poll_event (n, rfds, wfds, efds, timeout)
2858 return r; 2858 return r;
2859} 2859}
2860 2860
2861#ifndef MAC_OS_X_VERSION_10_2 2861#if MAC_OS_X_VERSION_MAX_ALLOWED < 1020
2862#undef SELECT_INVALIDATE_CFSOCKET 2862#undef SELECT_INVALIDATE_CFSOCKET
2863#endif 2863#endif
2864 2864
diff --git a/src/macfns.c b/src/macfns.c
index 7254ac41752..e46b8469fe2 100644
--- a/src/macfns.c
+++ b/src/macfns.c
@@ -2527,9 +2527,11 @@ unwind_create_frame (frame)
2527 2527
2528 x_free_frame_resources (f); 2528 x_free_frame_resources (f);
2529 2529
2530#if GLYPH_DEBUG
2530 /* Check that reference counts are indeed correct. */ 2531 /* Check that reference counts are indeed correct. */
2531 xassert (dpyinfo->reference_count == dpyinfo_refcount); 2532 xassert (dpyinfo->reference_count == dpyinfo_refcount);
2532 xassert (dpyinfo->image_cache->refcount == image_cache_refcount); 2533 xassert (dpyinfo->image_cache->refcount == image_cache_refcount);
2534#endif
2533 return Qt; 2535 return Qt;
2534 } 2536 }
2535 2537
@@ -3880,7 +3882,7 @@ x_create_tip_frame (dpyinfo, parms, text)
3880 SetRect (&r, 0, 0, 1, 1); 3882 SetRect (&r, 0, 0, 1, 1);
3881#if TARGET_API_MAC_CARBON 3883#if TARGET_API_MAC_CARBON
3882 if (CreateNewWindow (kHelpWindowClass, 3884 if (CreateNewWindow (kHelpWindowClass,
3883#ifdef MAC_OS_X_VERSION_10_2 3885#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
3884 kWindowIgnoreClicksAttribute | 3886 kWindowIgnoreClicksAttribute |
3885#endif 3887#endif
3886 kWindowNoUpdatesAttribute | 3888 kWindowNoUpdatesAttribute |
diff --git a/src/macterm.c b/src/macterm.c
index 5a7db8e04e2..2ee881e8d49 100644
--- a/src/macterm.c
+++ b/src/macterm.c
@@ -731,7 +731,7 @@ mac_draw_string_common (display, w, gc, x, y, buf, nchars, mode,
731 int nchars, mode, bytes_per_char; 731 int nchars, mode, bytes_per_char;
732{ 732{
733 SetPortWindowPort (w); 733 SetPortWindowPort (w);
734#ifdef MAC_OS_X_VERSION_10_2 734#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
735 UInt32 textFlags, savedFlags; 735 UInt32 textFlags, savedFlags;
736 if (!NILP(Vmac_use_core_graphics)) { 736 if (!NILP(Vmac_use_core_graphics)) {
737 textFlags = kQDUseCGTextRendering; 737 textFlags = kQDUseCGTextRendering;
@@ -748,7 +748,7 @@ mac_draw_string_common (display, w, gc, x, y, buf, nchars, mode,
748 748
749 MoveTo (x, y); 749 MoveTo (x, y);
750 DrawText (buf, 0, nchars * bytes_per_char); 750 DrawText (buf, 0, nchars * bytes_per_char);
751#ifdef MAC_OS_X_VERSION_10_2 751#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
752 if (!NILP(Vmac_use_core_graphics)) 752 if (!NILP(Vmac_use_core_graphics))
753 SwapQDTextFlags(savedFlags); 753 SwapQDTextFlags(savedFlags);
754#endif 754#endif
@@ -5468,7 +5468,7 @@ x_make_frame_visible (f)
5468 else 5468 else
5469 RepositionWindow (FRAME_MAC_WINDOW (f), 5469 RepositionWindow (FRAME_MAC_WINDOW (f),
5470 FRAME_MAC_WINDOW (sf), 5470 FRAME_MAC_WINDOW (sf),
5471#ifdef MAC_OS_X_VERSION_10_2 5471#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
5472 kWindowCascadeStartAtParentWindowScreen 5472 kWindowCascadeStartAtParentWindowScreen
5473#else 5473#else
5474 kWindowCascadeOnParentWindowScreen 5474 kWindowCascadeOnParentWindowScreen
diff --git a/src/sysdep.c b/src/sysdep.c
index 1884c0ccffa..f1345e591ab 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -1,6 +1,6 @@
1/* Interfaces to system-dependent kernel and library entries. 1/* Interfaces to system-dependent kernel and library entries.
2 Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1999, 2000, 2001, 2 Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1999, 2000, 2001,
3 2003, 2004 Free Software Foundation, Inc. 3 2003, 2004, 2005 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
@@ -869,7 +869,7 @@ sys_subshell ()
869 if (pid == -1) 869 if (pid == -1)
870 write (1, "Can't execute subshell", 22); 870 write (1, "Can't execute subshell", 22);
871#else /* not WINDOWSNT */ 871#else /* not WINDOWSNT */
872 execlp (sh, sh, 0); 872 execlp (sh, sh, (char *) 0);
873 write (1, "Can't execute subshell", 22); 873 write (1, "Can't execute subshell", 22);
874 _exit (1); 874 _exit (1);
875#endif /* not WINDOWSNT */ 875#endif /* not WINDOWSNT */
diff --git a/src/undo.c b/src/undo.c
index ea4f35397a9..eaf312be676 100644
--- a/src/undo.c
+++ b/src/undo.c
@@ -560,12 +560,13 @@ Return what remains of the list. */)
560 } 560 }
561 cdr = Fcdr (cdr); 561 cdr = Fcdr (cdr);
562 apply1 (car, cdr); 562 apply1 (car, cdr);
563
563 /* Make sure this produces at least one undo entry, 564 /* Make sure this produces at least one undo entry,
564 so the test in `undo' for continuing an undo series 565 so the test in `undo' for continuing an undo series
565 will work right. */ 566 will work right. */
566 if (EQ (oldlist, current_buffer->undo_list)) 567 if (EQ (oldlist, current_buffer->undo_list))
567 current_buffer->undo_list 568 current_buffer->undo_list
568 = Fcons (list2 (Qcdr, Qnil), current_buffer->undo_list); 569 = Fcons (list3 (Qapply, Qcdr, Qnil), current_buffer->undo_list);
569 } 570 }
570 else if (STRINGP (car) && INTEGERP (cdr)) 571 else if (STRINGP (car) && INTEGERP (cdr))
571 { 572 {
diff --git a/src/xdisp.c b/src/xdisp.c
index 31a6074b61f..6ee9efafc62 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -8200,6 +8200,8 @@ echo_area_display (update_frame_p)
8200 8200
8201 /* Last displayed message is now the current message. */ 8201 /* Last displayed message is now the current message. */
8202 echo_area_buffer[1] = echo_area_buffer[0]; 8202 echo_area_buffer[1] = echo_area_buffer[0];
8203 /* Inform read_char that we're not echoing. */
8204 echo_message_buffer = Qnil;
8203 8205
8204 /* Prevent redisplay optimization in redisplay_internal by resetting 8206 /* Prevent redisplay optimization in redisplay_internal by resetting
8205 this_line_start_pos. This is done because the mini-buffer now 8207 this_line_start_pos. This is done because the mini-buffer now
diff --git a/src/xfaces.c b/src/xfaces.c
index a4920d893ee..29b342a8f1e 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -1,5 +1,5 @@
1/* xfaces.c -- "Face" primitives. 1/* xfaces.c -- "Face" primitives.
2 Copyright (C) 1993, 1994, 1998, 1999, 2000, 2001, 2002, 2003, 2004 2 Copyright (C) 1993, 1994, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
3 Free Software Foundation. 3 Free Software Foundation.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
@@ -738,7 +738,7 @@ x_free_gc (f, gc)
738 GC gc; 738 GC gc;
739{ 739{
740 BLOCK_INPUT; 740 BLOCK_INPUT;
741 xassert (--ngcs >= 0); 741 IF_DEBUG (xassert (--ngcs >= 0));
742 XFreeGC (FRAME_X_DISPLAY (f), gc); 742 XFreeGC (FRAME_X_DISPLAY (f), gc);
743 UNBLOCK_INPUT; 743 UNBLOCK_INPUT;
744} 744}
@@ -771,7 +771,7 @@ x_free_gc (f, gc)
771 GC gc; 771 GC gc;
772{ 772{
773 BLOCK_INPUT; 773 BLOCK_INPUT;
774 xassert (--ngcs >= 0); 774 IF_DEBUG (xassert (--ngcs >= 0));
775 xfree (gc); 775 xfree (gc);
776 UNBLOCK_INPUT; 776 UNBLOCK_INPUT;
777} 777}
@@ -1511,7 +1511,7 @@ face_color_supported_p (f, color_name, background_p)
1511 1511
1512 XSETFRAME (frame, f); 1512 XSETFRAME (frame, f);
1513 return 1513 return
1514#ifdef HAVE_X_WINDOWS 1514#ifdef HAVE_WINDOW_SYSTEM
1515 FRAME_WINDOW_P (f) 1515 FRAME_WINDOW_P (f)
1516 ? (!NILP (Fxw_display_color_p (frame)) 1516 ? (!NILP (Fxw_display_color_p (frame))
1517 || xstricmp (color_name, "black") == 0 1517 || xstricmp (color_name, "black") == 0
diff --git a/src/xfns.c b/src/xfns.c
index 2bb5fa31327..2732a1be051 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -1,6 +1,6 @@
1/* Functions for the X window system. 1/* Functions for the X window system.
2 Copyright (C) 1989, 92, 93, 94, 95, 96, 97, 98, 99, 2000,01,02,03,04 2 Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
3 Free Software Foundation. 3 2001, 2002, 2003, 2004, 2005 Free Software Foundation.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
@@ -2843,9 +2843,11 @@ unwind_create_frame (frame)
2843 2843
2844 x_free_frame_resources (f); 2844 x_free_frame_resources (f);
2845 2845
2846#if GLYPH_DEBUG
2846 /* Check that reference counts are indeed correct. */ 2847 /* Check that reference counts are indeed correct. */
2847 xassert (dpyinfo->reference_count == dpyinfo_refcount); 2848 xassert (dpyinfo->reference_count == dpyinfo_refcount);
2848 xassert (dpyinfo->image_cache->refcount == image_cache_refcount); 2849 xassert (dpyinfo->image_cache->refcount == image_cache_refcount);
2850#endif
2849 return Qt; 2851 return Qt;
2850 } 2852 }
2851 2853
@@ -4071,7 +4073,7 @@ Value is VALUE. */)
4071 4073
4072 if (! NILP (outer_p)) w = FRAME_OUTER_WINDOW (f); 4074 if (! NILP (outer_p)) w = FRAME_OUTER_WINDOW (f);
4073 else w = FRAME_X_WINDOW (f); 4075 else w = FRAME_X_WINDOW (f);
4074 4076
4075 XChangeProperty (FRAME_X_DISPLAY (f), w, 4077 XChangeProperty (FRAME_X_DISPLAY (f), w,
4076 prop_atom, target_type, element_format, PropModeReplace, 4078 prop_atom, target_type, element_format, PropModeReplace,
4077 data, nelements); 4079 data, nelements);
@@ -5240,7 +5242,7 @@ or directory must exist. ONLY-DIR-P is ignored." */)
5240 if (keysym == XK_g && (event.xkey.state & ControlMask) != 0) 5242 if (keysym == XK_g && (event.xkey.state & ControlMask) != 0)
5241 XtUnmanageChild (dialog); 5243 XtUnmanageChild (dialog);
5242 } 5244 }
5243 5245
5244 (void) x_dispatch_event (&event, FRAME_X_DISPLAY (f)); 5246 (void) x_dispatch_event (&event, FRAME_X_DISPLAY (f));
5245 } 5247 }
5246 5248
diff --git a/src/xmenu.c b/src/xmenu.c
index 850b8f4ddf4..e98ee7534a4 100644
--- a/src/xmenu.c
+++ b/src/xmenu.c
@@ -1445,9 +1445,9 @@ menu_highlight_callback (widget, id, call_data)
1445/* Find the menu selection and store it in the keyboard buffer. 1445/* Find the menu selection and store it in the keyboard buffer.
1446 F is the frame the menu is on. 1446 F is the frame the menu is on.
1447 MENU_BAR_ITEMS_USED is the length of VECTOR. 1447 MENU_BAR_ITEMS_USED is the length of VECTOR.
1448 VECTOR is an array of menu events for the whole menu. 1448 VECTOR is an array of menu events for the whole menu. */
1449 */ 1449
1450void 1450static void
1451find_and_call_menu_selection (f, menu_bar_items_used, vector, client_data) 1451find_and_call_menu_selection (f, menu_bar_items_used, vector, client_data)
1452 FRAME_PTR f; 1452 FRAME_PTR f;
1453 EMACS_INT menu_bar_items_used; 1453 EMACS_INT menu_bar_items_used;
@@ -1554,6 +1554,17 @@ menubar_selection_callback (widget, client_data)
1554 if (! cb_data || ! cb_data->cl_data || ! cb_data->cl_data->f) 1554 if (! cb_data || ! cb_data->cl_data || ! cb_data->cl_data->f)
1555 return; 1555 return;
1556 1556
1557 /* When a menu is popped down, X generates a focus event (i.e. focus
1558 goes back to the frame below the menu). Since GTK buffers events,
1559 we force it out here before the menu selection event. Otherwise
1560 sit-for will exit at once if the focus event follows the menu selection
1561 event. */
1562
1563 BLOCK_INPUT;
1564 while (gtk_events_pending ())
1565 gtk_main_iteration ();
1566 UNBLOCK_INPUT;
1567
1557 find_and_call_menu_selection (cb_data->cl_data->f, 1568 find_and_call_menu_selection (cb_data->cl_data->f,
1558 cb_data->cl_data->menu_bar_items_used, 1569 cb_data->cl_data->menu_bar_items_used,
1559 cb_data->cl_data->menu_bar_vector, 1570 cb_data->cl_data->menu_bar_vector,
diff --git a/src/xselect.c b/src/xselect.c
index 5dd63b9c735..daae84b276c 100644
--- a/src/xselect.c
+++ b/src/xselect.c
@@ -2536,7 +2536,7 @@ x_property_data_to_lisp (f, data, type, format, size)
2536 data, size*format/8, type, format); 2536 data, size*format/8, type, format);
2537} 2537}
2538 2538
2539/* Get the mouse position frame relative coordinates. */ 2539/* Get the mouse position in frame relative coordinates. */
2540 2540
2541static void 2541static void
2542mouse_position_for_drop (f, x, y) 2542mouse_position_for_drop (f, x, y)
@@ -2635,16 +2635,31 @@ x_handle_dnd_message (f, event, dpyinfo, bufp)
2635 Lisp_Object frame; 2635 Lisp_Object frame;
2636 unsigned long size = (8*sizeof (event->data))/event->format; 2636 unsigned long size = (8*sizeof (event->data))/event->format;
2637 int x, y; 2637 int x, y;
2638 unsigned char *data = (unsigned char *) event->data.b;
2639 int idata[5];
2638 2640
2639 XSETFRAME (frame, f); 2641 XSETFRAME (frame, f);
2640 2642
2643 /* On a 64 bit machine, the event->data.l array members are 64 bits (long),
2644 but the x_property_data_to_lisp (or rather selection_data_to_lisp_data)
2645 function expects them to be of size int (i.e. 32). So to be able to
2646 use that function, put the data in the form it expects if format is 32. */
2647
2648 if (event->format == 32 && event->format < BITS_PER_LONG)
2649 {
2650 int i;
2651 for (i = 0; i < 5; ++i) /* There are only 5 longs in a ClientMessage. */
2652 idata[i] = (int) event->data.l[i];
2653 data = (unsigned char *) idata;
2654 }
2655
2641 vec = Fmake_vector (make_number (4), Qnil); 2656 vec = Fmake_vector (make_number (4), Qnil);
2642 AREF (vec, 0) = SYMBOL_NAME (x_atom_to_symbol (FRAME_X_DISPLAY (f), 2657 AREF (vec, 0) = SYMBOL_NAME (x_atom_to_symbol (FRAME_X_DISPLAY (f),
2643 event->message_type)); 2658 event->message_type));
2644 AREF (vec, 1) = frame; 2659 AREF (vec, 1) = frame;
2645 AREF (vec, 2) = make_number (event->format); 2660 AREF (vec, 2) = make_number (event->format);
2646 AREF (vec, 3) = x_property_data_to_lisp (f, 2661 AREF (vec, 3) = x_property_data_to_lisp (f,
2647 event->data.b, 2662 data,
2648 event->message_type, 2663 event->message_type,
2649 event->format, 2664 event->format,
2650 size); 2665 size);
@@ -2697,6 +2712,8 @@ are ignored. */)
2697 struct frame *f = check_x_frame (from); 2712 struct frame *f = check_x_frame (from);
2698 int count; 2713 int count;
2699 int to_root; 2714 int to_root;
2715 int idata[5];
2716 void *data;
2700 2717
2701 CHECK_STRING (message_type); 2718 CHECK_STRING (message_type);
2702 CHECK_NUMBER (format); 2719 CHECK_NUMBER (format);
@@ -2756,10 +2773,31 @@ are ignored. */)
2756 when sending to the root window. */ 2773 when sending to the root window. */
2757 event.xclient.window = to_root ? FRAME_OUTER_WINDOW (f) : wdest; 2774 event.xclient.window = to_root ? FRAME_OUTER_WINDOW (f) : wdest;
2758 2775
2759 memset (event.xclient.data.b, 0, sizeof (event.xclient.data.b)); 2776
2760 x_fill_property_data (dpyinfo->display, values, event.xclient.data.b, 2777 if (event.xclient.format == 32 && event.xclient.format < BITS_PER_LONG)
2761 event.xclient.format); 2778 {
2779 /* x_fill_property_data expects data to hold 32 bit values when
2780 format == 32, but on a 64 bit machine long is 64 bits.
2781 event.xclient.l is an array of long, so we must compensate. */
2762 2782
2783 memset (idata, 0, sizeof (idata));
2784 data = idata;
2785 }
2786 else
2787 {
2788 memset (event.xclient.data.b, 0, sizeof (event.xclient.data.b));
2789 data = event.xclient.data.b;
2790 }
2791
2792 x_fill_property_data (dpyinfo->display, values, data, event.xclient.format);
2793
2794 if (data == idata)
2795 {
2796 int i;
2797 for (i = 0; i < 5; ++i) /* There are only 5 longs in a ClientMessage. */
2798 event.xclient.data.l[i] = (long) idata[i];
2799 }
2800
2763 /* If event mask is 0 the event is sent to the client that created 2801 /* If event mask is 0 the event is sent to the client that created
2764 the destination window. But if we are sending to the root window, 2802 the destination window. But if we are sending to the root window,
2765 there is no such client. Then we set the event mask to 0xffff. The 2803 there is no such client. Then we set the event mask to 0xffff. The
diff --git a/src/xterm.c b/src/xterm.c
index c54b96a19b7..137e0d2ae9e 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -7777,10 +7777,18 @@ x_error_handler (display, error)
7777 It kills all frames on the display that we got the error for. 7777 It kills all frames on the display that we got the error for.
7778 If that was the only one, it prints an error message and kills Emacs. */ 7778 If that was the only one, it prints an error message and kills Emacs. */
7779 7779
7780/* It is after x_error_handler so that it won't get inlined in 7780/* .gdbinit puts a breakpoint here, so make sure it is not inlined. */
7781 x_error_handler. */
7782 7781
7783static void 7782#if __GNUC__ >= 3 /* On GCC 3.0 we might get a warning. */
7783#define NO_INLINE __attribute__((noinline))
7784#else
7785#define NO_INLINE
7786#endif
7787
7788/* On older GCC versions, just putting x_error_quitter
7789 after x_error_handler prevents inlining into the former. */
7790
7791static void NO_INLINE
7784x_error_quitter (display, error) 7792x_error_quitter (display, error)
7785 Display *display; 7793 Display *display;
7786 XErrorEvent *error; 7794 XErrorEvent *error;