1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-06 14:30:50 -08:00

Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-11

Merge from emacs--cvs-trunk--0

Patches applied:

 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-69
 - miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-71
   Update from CVS

 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-72
   src/dispextern.h (xassert): Enable unconditionally.

 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-73
 - miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-81
   Update from CVS

 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-82
   Merge from gnus--rel--5.10

 * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-12
   Merge from emacs--cvs-trunk--0

 * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-13
   Update from CVS
This commit is contained in:
Miles Bader 2005-02-06 12:06:02 +00:00
commit a359f0e0ff
64 changed files with 1000 additions and 414 deletions

View file

@ -181,7 +181,7 @@ SECTION READERS
man/abbrevs.texi man/abbrevs.texi
man/anti.texi man/anti.texi
man/basic.texi "Luc Teirlinck" man/basic.texi "Luc Teirlinck"
man/buffers.texi "Luc Teirlinck" man/buffers.texi "Luc Teirlinck" Chong Yidong
man/building.texi "Ted Zlatanov" <tzz@lifelogs.com> man/building.texi "Ted Zlatanov" <tzz@lifelogs.com>
man/calendar.texi Joakim Verona <joakim@verona.se> man/calendar.texi Joakim Verona <joakim@verona.se>
man/cmdargs.texi man/cmdargs.texi
@ -191,9 +191,9 @@ man/dired.texi
man/display.texi "Luc Teirlinck" man/display.texi "Luc Teirlinck"
man/emacs.texi "Luc Teirlinck" man/emacs.texi "Luc Teirlinck"
man/entering.texi "Luc Teirlinck" man/entering.texi "Luc Teirlinck"
man/files.texi "Luc Teirlinck" man/files.texi "Luc Teirlinck" Chong Yidong
man/fixit.texi "Luc Teirlinck" man/fixit.texi "Luc Teirlinck"
man/frames.texi "Luc Teirlinck" man/frames.texi "Luc Teirlinck" Chong Yidong
man/glossary.texi man/glossary.texi
man/help.texi "Luc Teirlinck" man/help.texi "Luc Teirlinck"
man/indent.texi "Luc Teirlinck" man/indent.texi "Luc Teirlinck"
@ -215,9 +215,9 @@ man/rmail.texi
man/screen.texi "Luc Teirlinck" man/screen.texi "Luc Teirlinck"
man/search.texi "Luc Teirlinck" man/search.texi "Luc Teirlinck"
man/sending.texi man/sending.texi
man/text.texi "Luc Teirlinck" man/text.texi "Luc Teirlinck" Chong Yidong
man/trouble.texi man/trouble.texi
man/windows.texi "Luc Teirlinck" man/windows.texi "Luc Teirlinck" Chong Yidong
man/xresources.texi man/xresources.texi
** Check the Emacs Lisp manual. ** Check the Emacs Lisp manual.
@ -233,7 +233,7 @@ lispref/abbrevs.texi "Luc Teirlinck"
lispref/advice.texi Joakim Verona <joakim@verona.se> lispref/advice.texi Joakim Verona <joakim@verona.se>
lispref/anti.texi lispref/anti.texi
lispref/backups.texi "Luc Teirlinck" lispref/backups.texi "Luc Teirlinck"
lispref/buffers.texi "Luc Teirlinck" lispref/buffers.texi "Luc Teirlinck" Chong Yidong
lispref/calendar.texi Joakim Verona <joakim@verona.se> lispref/calendar.texi Joakim Verona <joakim@verona.se>
lispref/commands.texi "Luc Teirlinck" lispref/commands.texi "Luc Teirlinck"
lispref/compile.texi "Luc Teirlinck" lispref/compile.texi "Luc Teirlinck"
@ -245,8 +245,8 @@ lispref/edebug.texi
lispref/elisp.texi "Luc Teirlinck" lispref/elisp.texi "Luc Teirlinck"
lispref/errors.texi "Luc Teirlinck" lispref/errors.texi "Luc Teirlinck"
lispref/eval.texi "Luc Teirlinck" lispref/eval.texi "Luc Teirlinck"
lispref/files.texi "Luc Teirlinck" lispref/files.texi "Luc Teirlinck" Chong Yidong
lispref/frames.texi "Luc Teirlinck" lispref/frames.texi "Luc Teirlinck" Chong Yidong
lispref/functions.texi "Luc Teirlinck" lispref/functions.texi "Luc Teirlinck"
lispref/hash.texi "Luc Teirlinck" lispref/hash.texi "Luc Teirlinck"
lispref/help.texi "Luc Teirlinck" lispref/help.texi "Luc Teirlinck"
@ -274,10 +274,10 @@ lispref/streams.texi "Luc Teirlinck"
lispref/strings.texi "Luc Teirlinck" lispref/strings.texi "Luc Teirlinck"
lispref/symbols.texi "Luc Teirlinck" lispref/symbols.texi "Luc Teirlinck"
lispref/syntax.texi "Luc Teirlinck" lispref/syntax.texi "Luc Teirlinck"
lispref/text.texi lispref/text.texi Chong Yidong
lispref/tips.texi "Luc Teirlinck" lispref/tips.texi "Luc Teirlinck"
lispref/variables.texi "Luc Teirlinck" lispref/variables.texi "Luc Teirlinck"
lispref/windows.texi "Luc Teirlinck" lispref/windows.texi "Luc Teirlinck" Chong Yidong
Local variables: Local variables:

View file

@ -1,3 +1,7 @@
2005-02-05 Frederik Fouvry <fouvry@CoLi.Uni-SB.DE>
* emacs.bash: Update the name of the socket of the Emacs server.
2005-01-22 David Kastrup <dak@gnu.org> 2005-01-22 David Kastrup <dak@gnu.org>
* NEWS: Mention alias `find-grep' for `grep-find'. * NEWS: Mention alias `find-grep' for `grep-find'.

View file

@ -201,22 +201,23 @@ character is used every few digits, making it easier to see byte
boundries etc. For more info, see the documentation of the variable boundries etc. For more info, see the documentation of the variable
`calculator-radix-grouping-mode'. `calculator-radix-grouping-mode'.
+++
** You can now follow links by clicking Mouse-1 on the link. ** You can now follow links by clicking Mouse-1 on the link.
Traditionally, Emacs uses a Mouse-1 click to set point and a Mouse-2 Traditionally, Emacs uses a Mouse-1 click to set point and a Mouse-2
click to follow a link, whereas most other applications use a Mouse-1 click to follow a link, whereas most other applications use a Mouse-1
click for both purposes, depending on whether you click outside or click for both purposes, depending on whether you click outside or
inside a link. With release 21.4, the behaviour of a Mouse-1 click inside a link. Now the behavior of a Mouse-1 click has been changed
has been changed to match this context-sentitive dual behaviour. to match this context-sentitive dual behavior.
Depending on the current mode, a Mouse-2 click in Emacs may do much Depending on the current mode, a Mouse-2 click in Emacs may do much
more than just follow a link, so the new Mouse-1 behaviour is only more than just follow a link, so the new Mouse-1 behavior is only
activated for modes which explicitly mark a clickable text as a "link" activated for modes which explicitly mark a clickable text as a "link"
(see the new function `mouse-on-link-p' for details). The lisp (see the new function `mouse-on-link-p' for details). The Lisp
packages that are included in release 21.4 have been adapted to do packages that are included in release 21.4 have been adapted to do
this, but external packages may not yet support this. However, there this, but external packages may not yet support this. However, there
is no risk in using such packages, as the worst thing that could is no risk in using such packages, as the worst thing that could
happen is that you get the original Mouse-1 behaviour when you click happen is that you get the original Mouse-1 behavior when you click
on a link, which typically means that you set point where you click. on a link, which typically means that you set point where you click.
If you want to get the original Mouse-1 action also inside a link, you If you want to get the original Mouse-1 action also inside a link, you
@ -227,7 +228,7 @@ you release it).
Dragging the Mouse-1 inside a link still performs the original Dragging the Mouse-1 inside a link still performs the original
drag-mouse-1 action, typically copy the text. drag-mouse-1 action, typically copy the text.
You can customize the new Mouse-1 behaviour via the new user option You can customize the new Mouse-1 behavior via the new user option
`mouse-1-click-follows-link'. `mouse-1-click-follows-link'.
+++ +++
@ -551,7 +552,7 @@ Instead, the newline now "overflows" into the right fringe, and the
cursor will be displayed in the fringe when positioned on that newline. cursor will be displayed in the fringe when positioned on that newline.
The new user option 'overflow-newline-into-fringe' may be set to nil to The new user option 'overflow-newline-into-fringe' may be set to nil to
revert to the old behaviour of continuing such lines. revert to the old behavior of continuing such lines.
+++ +++
** The buffer boundaries (i.e. first and last line in the buffer) may ** The buffer boundaries (i.e. first and last line in the buffer) may
@ -1613,7 +1614,7 @@ directory listing into a buffer.
** Unexpected yanking of text due to accidental clicking on the mouse ** Unexpected yanking of text due to accidental clicking on the mouse
wheel button (typically mouse-2) during wheel scrolling is now avoided. wheel button (typically mouse-2) during wheel scrolling is now avoided.
This behaviour can be customized via the mouse-wheel-click-event and This behavior can be customized via the mouse-wheel-click-event and
mouse-wheel-inhibit-click-time variables. mouse-wheel-inhibit-click-time variables.
+++ +++
@ -2445,7 +2446,7 @@ before calling it, if used while defining a macro.
In addition, when ending or calling a macro with C-x e, the macro can In addition, when ending or calling a macro with C-x e, the macro can
be repeated immediately by typing just the `e'. You can customize be repeated immediately by typing just the `e'. You can customize
this behaviour via the variable kmacro-call-repeat-key and this behavior via the variable kmacro-call-repeat-key and
kmacro-call-repeat-with-arg. kmacro-call-repeat-with-arg.
Keyboard macros can now be debugged and edited interactively. Keyboard macros can now be debugged and edited interactively.
@ -3227,7 +3228,7 @@ created and can be changed later by `set-process-filter-multibyte'.
buffer is multibyte, the output of the process is at first converted buffer is multibyte, the output of the process is at first converted
to multibyte by `string-to-multibyte' then inserted in the buffer. to multibyte by `string-to-multibyte' then inserted in the buffer.
Previously, it was converted to multibyte by `string-as-multibyte', Previously, it was converted to multibyte by `string-as-multibyte',
which was not compatible with the behaviour of file reading. which was not compatible with the behavior of file reading.
+++ +++
** New function `string-to-multibyte' converts a unibyte string to a ** New function `string-to-multibyte' converts a unibyte string to a
@ -3715,7 +3716,7 @@ elements with the following format:
The `insert-for-yank' function looks for a yank-handler property on The `insert-for-yank' function looks for a yank-handler property on
the first character on its string argument (typically the first the first character on its string argument (typically the first
element on the kill-ring). If a yank-handler property is found, element on the kill-ring). If a yank-handler property is found,
the normal behaviour of `insert-for-yank' is modified in various ways: the normal behavior of `insert-for-yank' is modified in various ways:
When FUNCTION is present and non-nil, it is called instead of `insert' When FUNCTION is present and non-nil, it is called instead of `insert'
to insert the string. FUNCTION takes one argument--the object to insert. to insert the string. FUNCTION takes one argument--the object to insert.
@ -3803,7 +3804,7 @@ speech synthesis.
On some systems, when emacs reads the output from a subprocess, the On some systems, when emacs reads the output from a subprocess, the
output data is read in very small blocks, potentially resulting in output data is read in very small blocks, potentially resulting in
very poor performance. This behaviour can be remedied to some extent very poor performance. This behavior can be remedied to some extent
by setting the new variable process-adaptive-read-buffering to a by setting the new variable process-adaptive-read-buffering to a
non-nil value (the default), as it will automatically delay reading non-nil value (the default), as it will automatically delay reading
from such processes, to allowing them to produce more output before from such processes, to allowing them to produce more output before
@ -4317,7 +4318,7 @@ By default `unify-8859-on-encoding-mode' is turned on.
If you want the old behavior, set selection-coding-system to If you want the old behavior, set selection-coding-system to
compound-text, which may be significantly more efficient. Using compound-text, which may be significantly more efficient. Using
compound-text-with-extensions seems to be necessary only for decoding compound-text-with-extensions seems to be necessary only for decoding
text from applications under XFree86 4.2, whose behaviour is actually text from applications under XFree86 4.2, whose behavior is actually
contrary to the compound text specification. contrary to the compound text specification.

View file

@ -24,6 +24,9 @@ to the FSF.
It should not generate :require. Or :require in defcustom It should not generate :require. Or :require in defcustom
should not be recorded in the user's custom-set-variables call. should not be recorded in the user's custom-set-variables call.
** The buttons at the top of a custom buffer should not omit
variables whose values are currently hidden.
* Important features: * Important features:
** Provide user-friendly ways to list all available font families, ** Provide user-friendly ways to list all available font families,

View file

@ -22,7 +22,7 @@ function edit ()
if [ -n "${windowsys:+set}" ]; then if [ -n "${windowsys:+set}" ]; then
# Do not just test if these files are sockets. On some systems # Do not just test if these files are sockets. On some systems
# ordinary files or fifos are used instead. Just see if they exist. # ordinary files or fifos are used instead. Just see if they exist.
if [ -e "${HOME}/.emacs_server" -o -e "/tmp/esrv${UID}-"* ]; then if [ -e "${HOME}/.emacs_server" -o -e "/tmp/emacs${UID}/server" ]; then
emacsclient "$@" emacsclient "$@"
return $? return $?
else else

View file

@ -1,3 +1,13 @@
2005-02-04 Andreas Schwab <schwab@suse.de>
* movemail.c (fatal): Accept third parameter and pass down to
error.
(pfatal_with_name): Pass error string as format parameter instead
of as part of format string.
(pfatal_and_delete): Likewise.
(main): Adjust call to fatal.
(xmalloc): Likewise.
2005-01-29 Richard M. Stallman <rms@gnu.org> 2005-01-29 Richard M. Stallman <rms@gnu.org>
* movemail.c (popmail): Don't use Errmsg as format string. * movemail.c (popmail): Don't use Errmsg as format string.

View file

@ -245,7 +245,7 @@ main (argc, argv)
#endif #endif
if (*outname == 0) if (*outname == 0)
fatal ("Destination file name is empty", 0); fatal ("Destination file name is empty", 0, 0);
/* Check access to output file. */ /* Check access to output file. */
if (access (outname, F_OK) == 0 && access (outname, W_OK) != 0) if (access (outname, F_OK) == 0 && access (outname, W_OK) != 0)
@ -601,12 +601,12 @@ mail_spool_name (inname)
/* Print error message and exit. */ /* Print error message and exit. */
void void
fatal (s1, s2) fatal (s1, s2, s3)
char *s1, *s2; char *s1, *s2, *s3;
{ {
if (delete_lockname) if (delete_lockname)
unlink (delete_lockname); unlink (delete_lockname);
error (s1, s2, 0); error (s1, s2, s3);
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
@ -631,17 +631,16 @@ void
pfatal_with_name (name) pfatal_with_name (name)
char *name; char *name;
{ {
char *s = concat ("", strerror (errno), " for %s"); fatal ("%s for %s", strerror (errno), name);
fatal (s, name);
} }
void void
pfatal_and_delete (name) pfatal_and_delete (name)
char *name; char *name;
{ {
char *s = concat ("", strerror (errno), " for %s"); char *s = strerror (errno);
unlink (name); unlink (name);
fatal (s, name); fatal ("%s for %s", s, name);
} }
/* Return a newly-allocated string whose contents concatenate those of s1, s2, s3. */ /* Return a newly-allocated string whose contents concatenate those of s1, s2, s3. */
@ -669,7 +668,7 @@ xmalloc (size)
{ {
long *result = (long *) malloc (size); long *result = (long *) malloc (size);
if (!result) if (!result)
fatal ("virtual memory exhausted", 0); fatal ("virtual memory exhausted", 0, 0);
return result; return result;
} }

View file

@ -1,3 +1,107 @@
2005-02-05 Arne_J,Ax(Brgensen <arne@arnested.dk> (tiny change)
* net/ldap.el (ldap-search-internal): Support attributes with
optional descriptions separated by a semi-colon, as in
"userCertificate;binary".
2005-02-05 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
* x-dnd.el (x-dnd-handle-xdnd): Handle the case where the flags
isn't a cons (i.e. the version is 0).
2005-02-05 Eli Zaretskii <eliz@gnu.org>
* help.el (help-for-help): Doc fix.
2005-02-05 Nick Roberts <nickrob@snap.net.nz>
* progmodes/gdb-ui.el: Update copyright. Put GDB-Frames before
GDB-Windows on the menu-bar as this works better.
2005-02-04 Jay Belanger <belanger@truman.edu>
* calc/calc-embed.el (calc-embedded-update): Don't put in
unnecessary newlines. Adjust the end of formula marker.
* calc/calc-lang.el (math-latex-parse-frac): Don't use arguments.
(math-latex-parse-two-args): New function.
2005-02-03 Lute Kamstra <lute@gnu.org>
* help-fns.el (help-with-tutorial): Make sure that users cannot
remove the entire text of the tutorial by means of `undo'.
2005-02-03 Stefan Monnier <monnier@iro.umontreal.ca>
* textmodes/ispell.el (ispell-internal-change-dictionary): Fix problem
in recent changes, where the ispell process was repeatedly
killed & restarted.
* international/mule-cmds.el (set-locale-environment): Set file-name
coding system to utf-8 on Darwin systems.
(set-default-coding-systems): Don't set default-file-name-coding-system
on Darwin systems.
2005-02-03 Richard M. Stallman <rms@gnu.org>
* hi-lock.el (hi-lock-mode): Turning on Hi-Lock turns on Font-Lock.
2005-02-03 Matt Hodges <MPHodges@member.fsf.org>
* faces.el (list-faces-display): Add optional argument.
2005-02-02 Stefan Monnier <monnier@iro.umontreal.ca>
* font-core.el (font-lock-default-function): Handle the rare case where
only font-lock-keywords is set.
2005-02-02 Kenichi Handa <handa@m17n.org>
* international/characters.el: Cancel previous change for
I-WITH-DOT-ABOVE and DOTLESS-i.
* international/latin-5.el: Cancel previous change.
2005-02-02 Nick Roberts <nickrob@snap.net.nz>
* progmodes/gud.el: Correction to syntax in gud-menu-map.
2005-02-02 Kenichi Handa <handa@m17n.org>
* international/latin-5.el (tbl): Setup cases of I-WITH-DOT-ABOVE,
DOTLESS-i.
* international/characters.el: Setup cases of GREEK-FINAL-SIGMA,
Y-WITH-DIAERESIS, I-WITH-DOT-ABOVE, DOTLESS-i.
* case-table.el (get-upcase-table): New function.
(copy-case-table): Copy upcaes table too if non-nil.
(set-case-syntax-delims): Maintain upcase table too.
(set-case-syntax-pair): Likewise.
(set-upcase-syntax, set-downcase-syntax): New functions.
(set-case-syntax): Maintain upcase table too.
2005-02-02 Nick Roberts <nickrob@snap.net.nz>
* progmodes/gdb-ui.el: (gdb-goto-info): Delete.
* progmodes/gud.el (gud-goto-info): New function.
(gud-tool-bar-map): Use correct icon.
2005-02-01 Thien-Thi Nguyen <ttn@gnu.org>
* emacs-lisp/lisp-mode.el (lisp-indent-function): Fix bug:
When delegating, order args in the funcall correctly.
2005-02-01 Thien-Thi Nguyen <ttn@gnu.org>
* emacs-lisp/lisp-mode.el (lisp-indent-function): Doc fix.
2005-02-01 Carsten Dominik <dominik@science.uva.nl>
* textmodes/reftex.el (reftex-access-scan-info): Error out in a
buffer not visiting a file.
2005-01-31 Jay Belanger <belanger@truman.edu> 2005-01-31 Jay Belanger <belanger@truman.edu>
* calc/calc-embed.el (calc-embedded-find-bounds): Set the formula * calc/calc-embed.el (calc-embedded-find-bounds): Set the formula
@ -111,7 +215,7 @@
2005-01-29 Richard M. Stallman <rms@gnu.org> 2005-01-29 Richard M. Stallman <rms@gnu.org>
* ses.el (undo-more): defadvice deleted. * ses.el (undo-more): Delete defadvice.
(ses-begin-change): Doc fix. (ses-begin-change): Doc fix.
* dired.el (dired-mode-map): Remap `undo' and `advertised-undo' * dired.el (dired-mode-map): Remap `undo' and `advertised-undo'
@ -129,7 +233,7 @@
* simple.el (undo): Fix the test for continuing a series of undos. * simple.el (undo): Fix the test for continuing a series of undos.
(undo-more): Set pending-undo-list to t when we reach end. (undo-more): Set pending-undo-list to t when we reach end.
(pending-undo-list): defvar moved up. (pending-undo-list): Move up defvar.
* wid-edit.el (widget-button-click): * wid-edit.el (widget-button-click):
Shorten the range of the track-mouse binding. Shorten the range of the track-mouse binding.
@ -154,6 +258,20 @@
(gdb-assembler-custom): Update to recognise breakpoint information (gdb-assembler-custom): Update to recognise breakpoint information
added on 2005-01-19. added on 2005-01-19.
2005-01-28 Stefan Monnier <monnier@iro.umontreal.ca>
* progmodes/scheme.el (scheme-mode-variables): Set comment-add.
(dsssl-mode): Use define-derived-mode.
(scheme-mode-initialize): Remove.
(scheme-mode): Use run-mode-hooks.
* cus-edit.el (customize-group-other-window)
(custom-buffer-create-other-window): Don't override special-display-*.
(custom-mode-map): Make it dense.
* emacs-lisp/lisp-mode.el (eval-defun-1): Make sure `defvar' always
sets the default value.
2005-01-28 Eli Zaretskii <eliz@gnu.org> 2005-01-28 Eli Zaretskii <eliz@gnu.org>
* descr-text.el: Add more keywords. * descr-text.el: Add more keywords.

View file

@ -967,19 +967,24 @@ The command \\[yank] can retrieve it from there."
(calc-embedded-original-buffer t info) (calc-embedded-original-buffer t info)
(or (equal str (aref info 6)) (or (equal str (aref info 6))
(let ((delta (- (aref info 5) (aref info 3))) (let ((delta (- (aref info 5) (aref info 3)))
(adjbot 0)
(buffer-read-only nil)) (buffer-read-only nil))
(goto-char (aref info 2)) (goto-char (aref info 2))
(delete-region (point) (aref info 3)) (delete-region (point) (aref info 3))
(and (> (nth 1 entry) (1+ extra)) (and (> (nth 1 entry) (1+ extra))
(aref info 7) (aref info 7)
(progn (progn
(aset info 7 nil)
(delete-horizontal-space) (delete-horizontal-space)
(insert "\n\n") (if (looking-at "\n")
(delete-horizontal-space) ;; If there's a newline there, don't add one
(backward-char 1))) (insert "\n")
(insert "\n\n")
(delete-horizontal-space)
(setq adjbot 1)
; (setq delta (1+ delta))
(backward-char 1))))
(insert str) (insert str)
(set-marker (aref info 3) (point)) (set-marker (aref info 3) (+ (point) adjbot))
(set-marker (aref info 5) (+ (point) delta)) (set-marker (aref info 5) (+ (point) delta))
(aset info 6 str)))))) (aset info 6 str))))))
(if (eq (car-safe val) 'calcFunc-evalto) (if (eq (car-safe val) 'calcFunc-evalto)

View file

@ -469,12 +469,12 @@
(put 'latex 'math-function-table (put 'latex 'math-function-table
(append (append
(get 'tex 'math-function-table) (get 'tex 'math-function-table)
'(( \\frac . (math-latex-parse-frac /)) '(( \\frac . (math-latex-parse-frac))
( \\tfrac . (math-latex-parse-frac /)) ( \\tfrac . (math-latex-parse-frac))
( \\dfrac . (math-latex-parse-frac /)) ( \\dfrac . (math-latex-parse-frac))
( \\binom . (math-latex-parse-frac calcFunc-choose)) ( \\binom . (math-latex-parse-two-args calcFunc-choose))
( \\tbinom . (math-latex-parse-frac calcFunc-choose)) ( \\tbinom . (math-latex-parse-two-args calcFunc-choose))
( \\dbinom . (math-latex-parse-frac calcFunc-choose)) ( \\dbinom . (math-latex-parse-two-args calcFunc-choose))
( \\phi . calcFunc-totient ) ( \\phi . calcFunc-totient )
( \\mu . calcFunc-moebius )))) ( \\mu . calcFunc-moebius ))))
@ -487,12 +487,23 @@
(put 'latex 'math-complex-format 'i) (put 'latex 'math-complex-format 'i)
(defun math-latex-parse-frac (f val) (defun math-latex-parse-frac (f val)
(let (numer denom) (let (numer denom)
(setq args (math-read-expr-list)) (setq numer (car (math-read-expr-list)))
(math-read-token) (math-read-token)
(setq margs (math-read-factor)) (setq denom (math-read-factor))
(list (nth 2 f) (car args) margs))) (if (and (Math-num-integerp numer)
(Math-num-integerp denom))
(list 'frac numer denom)
(list '/ numer denom))))
(defun math-latex-parse-two-args (f val)
(let (first second)
(setq first (car (math-read-expr-list)))
(math-read-token)
(setq second (math-read-factor))
(list (nth 2 f) first second)))
(defun math-latex-print-frac (a fn) (defun math-latex-print-frac (a fn)
(list 'horiz (nth 1 fn) "{" (math-compose-expr (nth 1 a) -1) (list 'horiz (nth 1 fn) "{" (math-compose-expr (nth 1 a) -1)

View file

@ -1,6 +1,6 @@
;;; case-table.el --- code to extend the character set and support case tables ;;; case-table.el --- code to extend the character set and support case tables
;; Copyright (C) 1988, 1994 Free Software Foundation, Inc. ;; Copyright (C) 1988, 1994, 2005 Free Software Foundation, Inc.
;; Author: Howard Gayle ;; Author: Howard Gayle
;; Maintainer: FSF ;; Maintainer: FSF
@ -60,11 +60,26 @@
(describe-vector description) (describe-vector description)
(help-mode))))) (help-mode)))))
(defun get-upcase-table (case-table)
"Return the upcase table of CASE-TABLE."
(or (char-table-extra-slot case-table 0)
;; Setup all extra slots of CASE-TABLE by temporarily selecting
;; it as the standard case table.
(let ((old (standard-case-table)))
(unwind-protect
(progn
(set-standard-case-table case-table)
(char-table-extra-slot case-table 0))
(or (eq case-table old)
(set-standard-case-table old))))))
(defun copy-case-table (case-table) (defun copy-case-table (case-table)
(let ((copy (copy-sequence case-table))) (let ((copy (copy-sequence case-table))
;; Clear out the extra slots so that they will be (up (char-table-extra-slot case-table 0)))
;; recomputed from the main (downcase) table. ;; Clear out the extra slots (except for upcase table) so that
(set-char-table-extra-slot copy 0 nil) ;; they will be recomputed from the main (downcase) table.
(if up
(set-char-table-extra-slot copy 0 (copy-sequence up)))
(set-char-table-extra-slot copy 1 nil) (set-char-table-extra-slot copy 1 nil)
(set-char-table-extra-slot copy 2 nil) (set-char-table-extra-slot copy 2 nil)
copy)) copy))
@ -77,9 +92,11 @@ It also modifies `standard-syntax-table' to
indicate left and right delimiters." indicate left and right delimiters."
(aset table l l) (aset table l l)
(aset table r r) (aset table r r)
(let ((up (get-upcase-table table)))
(aset up l l)
(aset up r r))
;; Clear out the extra slots so that they will be ;; Clear out the extra slots so that they will be
;; recomputed from the main (downcase) table. ;; recomputed from the main (downcase) table and upcase table.
(set-char-table-extra-slot table 0 nil)
(set-char-table-extra-slot table 1 nil) (set-char-table-extra-slot table 1 nil)
(set-char-table-extra-slot table 2 nil) (set-char-table-extra-slot table 2 nil)
(modify-syntax-entry l (concat "(" (char-to-string r) " ") (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.
It also modifies `standard-syntax-table'. It also modifies `standard-syntax-table'.
SYNTAX should be \" \", \"w\", \".\" or \"_\"." SYNTAX should be \" \", \"w\", \".\" or \"_\"."
(aset table c c) (aset table c c)
(let ((up (get-upcase-table table)))
(aset up c c))
;; Clear out the extra slots so that they will be ;; Clear out the extra slots so that they will be
;; recomputed from the main (downcase) table. ;; recomputed from the main (downcase) table and upcase table.
(set-char-table-extra-slot table 0 nil)
(set-char-table-extra-slot table 1 nil) (set-char-table-extra-slot table 1 nil)
(set-char-table-extra-slot table 2 nil) (set-char-table-extra-slot table 2 nil)
(modify-syntax-entry c syntax (standard-syntax-table))) (modify-syntax-entry c syntax (standard-syntax-table)))

View file

@ -881,11 +881,11 @@ which has a non-nil property `lisp-indent-function',
that specifies how to do the indentation. The property value can be that specifies how to do the indentation. The property value can be
* `defun', meaning indent `defun'-style; * `defun', meaning indent `defun'-style;
* an integer N, meaning indent the first N arguments specially * an integer N, meaning indent the first N arguments specially
like ordinary function arguments and then indent any further like ordinary function arguments and then indent any further
aruments like a body; arguments like a body;
* a function to call just as this function was called. * a function to call just as this function was called.
If that function returns nil, that means it doesn't specify If that function returns nil, that means it doesn't specify
the indentation. the indentation.
This function also returns nil meaning don't specify the indentation." This function also returns nil meaning don't specify the indentation."
(let ((normal-indent (current-column))) (let ((normal-indent (current-column)))
@ -921,7 +921,7 @@ This function also returns nil meaning don't specify the indentation."
(lisp-indent-specform method state (lisp-indent-specform method state
indent-point normal-indent)) indent-point normal-indent))
(method (method
(funcall method state indent-point))))))) (funcall method indent-point state)))))))
(defvar lisp-body-indent 2 (defvar lisp-body-indent 2
"Number of columns to indent the second line of a `(def...)' form.") "Number of columns to indent the second line of a `(def...)' form.")

View file

@ -1143,15 +1143,26 @@ Value is a list (FACE NEW-VALUE) where FACE is the face read
;; conflict with Lucid, which uses that name differently. ;; conflict with Lucid, which uses that name differently.
(defvar help-xref-stack) (defvar help-xref-stack)
(defun list-faces-display () (defun list-faces-display (&optional regexp)
"List all faces, using the same sample text in each. "List all faces, using the same sample text in each.
The sample text is a string that comes from the variable The sample text is a string that comes from the variable
`list-faces-sample-text'." `list-faces-sample-text'.
(interactive)
If REGEXP is non-nil, list only those faces with names matching
this regular expression. When called interactively with a prefix
arg, prompt for a regular expression."
(interactive (list (and current-prefix-arg
(read-string "List faces matching regexp: "))))
(let ((faces (sort (face-list) #'string-lessp)) (let ((faces (sort (face-list) #'string-lessp))
(face nil)
(frame (selected-frame)) (frame (selected-frame))
disp-frame window face-name) disp-frame window face-name)
(when (> (length regexp) 0)
(setq faces
(delq nil
(mapcar (lambda (f)
(when (string-match regexp (symbol-name f))
f))
faces))))
(with-output-to-temp-buffer "*Faces*" (with-output-to-temp-buffer "*Faces*"
(save-excursion (save-excursion
(set-buffer standard-output) (set-buffer standard-output)
@ -1164,9 +1175,7 @@ The sample text is a string that comes from the variable
"\\[help-follow] on a face name to customize it\n" "\\[help-follow] on a face name to customize it\n"
"or on its sample text for a description of the face.\n\n"))) "or on its sample text for a description of the face.\n\n")))
(setq help-xref-stack nil) (setq help-xref-stack nil)
(while faces (dolist (face faces)
(setq face (car faces))
(setq faces (cdr faces))
(setq face-name (symbol-name face)) (setq face-name (symbol-name face))
(insert (format "%25s " face-name)) (insert (format "%25s " face-name))
;; Hyperlink to a customization buffer for the face. Using ;; Hyperlink to a customization buffer for the face. Using
@ -1208,6 +1217,7 @@ The sample text is a string that comes from the variable
(copy-face (car faces) (car faces) frame disp-frame) (copy-face (car faces) (car faces) frame disp-frame)
(setq faces (cdr faces))))))) (setq faces (cdr faces)))))))
(defun describe-face (face &optional frame) (defun describe-face (face &optional frame)
"Display the properties of face FACE on FRAME. "Display the properties of face FACE on FRAME.
Interactively, FACE defaults to the faces of the character after point Interactively, FACE defaults to the faces of the character after point

View file

@ -1,7 +1,7 @@
;;; font-core.el --- Core interface to font-lock ;;; font-core.el --- Core interface to font-lock
;; Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 1999, 2000, 2001, 02, 2003 ;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
;; Free Software Foundation, Inc. ;; 2002, 2003, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF ;; Maintainer: FSF
;; Keywords: languages, faces ;; Keywords: languages, faces
@ -202,6 +202,7 @@ this function onto `change-major-mode-hook'."
;; Only do hard work if the mode has specified stuff in ;; Only do hard work if the mode has specified stuff in
;; `font-lock-defaults'. ;; `font-lock-defaults'.
(when (or font-lock-defaults (when (or font-lock-defaults
(and (boundp 'font-lock-keywords) font-lock-keywords)
(cdr (assq major-mode font-lock-defaults-alist))) (cdr (assq major-mode font-lock-defaults-alist)))
(font-lock-mode-internal mode))) (font-lock-mode-internal mode)))
@ -295,6 +296,5 @@ means that Font Lock mode is turned on for buffers in C and C++ modes only."
(provide 'font-core) (provide 'font-core)
;; arch-tag: f8c286e1-02f7-41d9-b89b-1b67780aed71
;;; font-core.el ends here ;;; font-core.el ends here
;;; arch-tag: f8c286e1-02f7-41d9-b89b-1b67780aed71

View file

@ -1,3 +1,8 @@
2005-02-03 Katsumi Yamaoka <yamaoka@jpl.org>
* gnus-art.el (gnus-mime-inline-part): Show the raw contents if a
prefix arg is neither nil nor a number, as info specifies.
2005-01-30 Stefan Monnier <monnier@iro.umontreal.ca> 2005-01-30 Stefan Monnier <monnier@iro.umontreal.ca>
* gnus-art.el (gnus-article-mode): Turn off the "\ " non-break space. * gnus-art.el (gnus-article-mode): Turn off the "\ " non-break space.

View file

@ -4354,7 +4354,16 @@ are decompressed."
(setq charset (setq charset
(or (cdr (assq arg (or (cdr (assq arg
gnus-summary-show-article-charset-alist)) gnus-summary-show-article-charset-alist))
(mm-read-coding-system "Charset: "))))) (mm-read-coding-system "Charset: "))))
(t
(if (mm-handle-undisplayer handle)
(mm-remove-part handle))
(setq contents
(if (fboundp 'string-to-multibyte)
(string-to-multibyte contents)
(mapconcat
(lambda (ch) (mm-string-as-multibyte (char-to-string ch)))
contents "")))))
(forward-line 2) (forward-line 2)
(mm-insert-inline handle (mm-insert-inline handle
(if (and charset (if (and charset

View file

@ -97,6 +97,7 @@ With ARG, you are asked to choose which language."
(forward-line 1) (forward-line 1)
(newline (- n (/ n 2))))) (newline (- n (/ n 2)))))
(goto-char (point-min)) (goto-char (point-min))
(setq buffer-undo-list nil)
(set-buffer-modified-p nil)))) (set-buffer-modified-p nil))))
;;;###autoload ;;;###autoload

View file

@ -186,7 +186,7 @@ If FUNCTION is nil, it applies `message', thus displaying the message."
\(Use SPC or DEL to scroll through this text. Type \\<help-map>\\[help-quit] to exit the Help command.) \(Use SPC or DEL to scroll through this text. Type \\<help-map>\\[help-quit] to exit the Help command.)
a command-apropos. Give a substring, and see a list of commands a command-apropos. Give a substring, and see a list of commands
(functions interactively callable) that contain (functions that are interactively callable) that contain
that substring. See also the apropos command. that substring. See also the apropos command.
b describe-bindings. Display table of all key bindings. b describe-bindings. Display table of all key bindings.
c describe-key-briefly. Type a command key sequence; c describe-key-briefly. Type a command key sequence;
@ -194,24 +194,28 @@ c describe-key-briefly. Type a command key sequence;
C describe-coding-system. This describes either a specific coding system C describe-coding-system. This describes either a specific coding system
(if you type its name) or the coding systems currently in use (if you type its name) or the coding systems currently in use
(if you type just RET). (if you type just RET).
e view-echo-area-messages. Show the `*Messages*' buffer. e view-echo-area-messages. Show the buffer where the echo-area messages
f describe-function. Type a function name and get documentation of it. are stored.
f describe-function. Type a function name and get its documentation.
F Info-goto-emacs-command-node. Type a function name; F Info-goto-emacs-command-node. Type a function name;
it takes you to the Info node for that command. it takes you to the on-line manual's section that describes
the command.
h Display the HELLO file which illustrates various scripts. h Display the HELLO file which illustrates various scripts.
i info. The info documentation reader. i info. The Info documentation reader: read on-line manuals.
I describe-input-method. Describe a specific input method (if you type I describe-input-method. Describe a specific input method (if you type
its name) or the current input method (if you type just RET). its name) or the current input method (if you type just RET).
k describe-key. Type a command key sequence; k describe-key. Type a command key sequence;
it displays the full documentation. it displays the full documentation for that key sequence.
K Info-goto-emacs-key-command-node. Type a command key sequence; K Info-goto-emacs-key-command-node. Type a command key sequence;
it takes you to the Info node for the command bound to that key. it takes you to the on-line manual's section that describes
the command bound to that key.
l view-lossage. Show last 100 characters you typed. l view-lossage. Show last 100 characters you typed.
L describe-language-environment. This describes either a L describe-language-environment. This describes either a
specific language environment (if you type its name) specific language environment (if you type its name)
or the current language environment (if you type just RET). or the current language environment (if you type just RET).
m describe-mode. Print documentation of current minor modes, m describe-mode. Display documentation of current minor modes,
and the current major mode, including their special commands. and the current major mode, including their special commands.
n view-emacs-news. Display news of recent Emacs changes.
p finder-by-keyword. Find packages matching a given topic keyword. p finder-by-keyword. Find packages matching a given topic keyword.
s describe-syntax. Display contents of syntax table, plus explanations. s describe-syntax. Display contents of syntax table, plus explanations.
S info-lookup-symbol. Display the definition of a specific symbol S info-lookup-symbol. Display the definition of a specific symbol

View file

@ -294,6 +294,10 @@ is found. A mode is excluded if it's in the list `hi-lock-exclude-modes'."
(when (and (not hi-lock-mode-prev) hi-lock-mode) (when (and (not hi-lock-mode-prev) hi-lock-mode)
(add-hook 'find-file-hooks 'hi-lock-find-file-hook) (add-hook 'find-file-hooks 'hi-lock-find-file-hook)
(add-hook 'font-lock-mode-hook 'hi-lock-font-lock-hook) (add-hook 'font-lock-mode-hook 'hi-lock-font-lock-hook)
(when (eq nil font-lock-defaults)
(setq font-lock-defaults '(nil)))
(unless font-lock-mode
(font-lock-mode 1))
(define-key-after menu-bar-edit-menu [hi-lock] (define-key-after menu-bar-edit-menu [hi-lock]
(cons "Regexp Highlighting" hi-lock-menu)) (cons "Regexp Highlighting" hi-lock-menu))
(dolist (buffer (buffer-list)) (dolist (buffer (buffer-list))

View file

@ -332,7 +332,8 @@ This also sets the following values:
(or (local-variable-p 'buffer-file-coding-system buffer) (or (local-variable-p 'buffer-file-coding-system buffer)
(ucs-set-table-for-input buffer)))) (ucs-set-table-for-input buffer))))
(if default-enable-multibyte-characters (if (and default-enable-multibyte-characters (not (eq system-type 'darwin)))
;; The file-name coding system on Darwin systems is always utf-8.
(setq default-file-name-coding-system coding-system)) (setq default-file-name-coding-system coding-system))
;; If coding-system is nil, honor that on MS-DOS as well, so ;; If coding-system is nil, honor that on MS-DOS as well, so
;; that they could reset the terminal coding system. ;; that they could reset the terminal coding system.
@ -1647,6 +1648,8 @@ The default status is as follows:
(set-default-coding-systems nil) (set-default-coding-systems nil)
(setq default-sendmail-coding-system 'iso-latin-1) (setq default-sendmail-coding-system 'iso-latin-1)
;; On Darwin systems, this should be utf-8, but when this file is loaded
;; utf-8 is not yet defined, so we set it in set-locale-environment instead.
(setq default-file-name-coding-system 'iso-latin-1) (setq default-file-name-coding-system 'iso-latin-1)
;; Preserve eol-type from existing default-process-coding-systems. ;; Preserve eol-type from existing default-process-coding-systems.
;; On non-unix-like systems in particular, these may have been set ;; 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))))))))
(set-keyboard-coding-system code-page-coding) (set-keyboard-coding-system code-page-coding)
(set-terminal-coding-system code-page-coding)))) (set-terminal-coding-system code-page-coding))))
;; On Darwin, file names are always encoded in utf-8, no matter the locale.
(when (eq system-type 'darwin)
(setq default-file-name-coding-system 'utf-8))
;; Default to A4 paper if we're not in a C, POSIX or US locale. ;; Default to A4 paper if we're not in a C, POSIX or US locale.
;; (See comments in Flocale_info.) ;; (See comments in Flocale_info.)
(let ((locale locale) (let ((locale locale)

View file

@ -579,9 +579,9 @@ an alist of attribute/value pairs."
(end-of-line) (end-of-line)
(point)))) (point))))
(forward-line 1) (forward-line 1)
(while (looking-at "^\\(\\w*\\)[=:\t ]+\\(<[\t ]*file://\\)?\\(.*\\)$") (while (looking-at "^\\(\\w*\\)\\(;\\w*\\)?[=:\t ]+\\(<[\t ]*file://\\)?\\(.*\\)$")
(setq name (match-string 1) (setq name (match-string 1)
value (match-string 3)) value (match-string 4))
;; Need to handle file:///D:/... as generated by OpenLDAP ;; Need to handle file:///D:/... as generated by OpenLDAP
;; on DOS/Windows as local files. ;; on DOS/Windows as local files.
(if (and (memq system-type '(windows-nt ms-dos)) (if (and (memq system-type '(windows-nt ms-dos))

View file

@ -4,7 +4,7 @@
;; Maintainer: FSF ;; Maintainer: FSF
;; Keywords: unix, tools ;; Keywords: unix, tools
;; Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. ;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; This file is part of GNU Emacs. ;; This file is part of GNU Emacs.
@ -289,13 +289,6 @@ detailed description of this mode.
`(lambda () (gdb-var-create-handler ,expr)))))) `(lambda () (gdb-var-create-handler ,expr))))))
(select-window (get-buffer-window gud-comint-buffer 0))) (select-window (get-buffer-window gud-comint-buffer 0)))
(defun gdb-goto-info ()
"Go to Emacs info node: GDB Graphical Interface."
(interactive)
(select-frame (make-frame))
(require 'info)
(Info-goto-node "(emacs)GDB Graphical Interface"))
(defconst gdb-var-create-regexp (defconst gdb-var-create-regexp
"name=\"\\(.*?\\)\",numchild=\"\\(.*?\\)\",type=\"\\(.*?\\)\"") "name=\"\\(.*?\\)\",numchild=\"\\(.*?\\)\",type=\"\\(.*?\\)\"")
@ -1897,18 +1890,6 @@ corresponding to the mode line clicked."
;;; Shared keymap initialization: ;;; Shared keymap initialization:
(let ((menu (make-sparse-keymap "GDB-Frames")))
(define-key gud-menu-map [frames]
`(menu-item "GDB-Frames" ,menu :visible (eq gud-minor-mode 'gdba)))
(define-key menu [gdb] '("Gdb" . gdb-frame-gdb-buffer))
(define-key menu [threads] '("Threads" . gdb-frame-threads-buffer))
(define-key menu [memory] '("Memory" . gdb-frame-memory-buffer))
(define-key menu [assembler] '("Machine" . gdb-frame-assembler-buffer))
(define-key menu [registers] '("Registers" . gdb-frame-registers-buffer))
(define-key menu [locals] '("Locals" . gdb-frame-locals-buffer))
(define-key menu [frames] '("Stack" . gdb-frame-stack-buffer))
(define-key menu [breakpoints] '("Breakpoints" . gdb-frame-breakpoints-buffer)))
(let ((menu (make-sparse-keymap "GDB-Windows"))) (let ((menu (make-sparse-keymap "GDB-Windows")))
(define-key gud-menu-map [displays] (define-key gud-menu-map [displays]
`(menu-item "GDB-Windows" ,menu :visible (eq gud-minor-mode 'gdba))) `(menu-item "GDB-Windows" ,menu :visible (eq gud-minor-mode 'gdba)))
@ -1921,15 +1902,27 @@ corresponding to the mode line clicked."
(define-key menu [frames] '("Stack" . gdb-display-stack-buffer)) (define-key menu [frames] '("Stack" . gdb-display-stack-buffer))
(define-key menu [breakpoints] '("Breakpoints" . gdb-display-breakpoints-buffer))) (define-key menu [breakpoints] '("Breakpoints" . gdb-display-breakpoints-buffer)))
(let ((menu (make-sparse-keymap "GDB-Frames")))
(define-key gud-menu-map [frames]
`(menu-item "GDB-Frames" ,menu :visible (eq gud-minor-mode 'gdba)))
(define-key menu [gdb] '("Gdb" . gdb-frame-gdb-buffer))
(define-key menu [threads] '("Threads" . gdb-frame-threads-buffer))
(define-key menu [memory] '("Memory" . gdb-frame-memory-buffer))
(define-key menu [assembler] '("Machine" . gdb-frame-assembler-buffer))
(define-key menu [registers] '("Registers" . gdb-frame-registers-buffer))
(define-key menu [locals] '("Locals" . gdb-frame-locals-buffer))
(define-key menu [frames] '("Stack" . gdb-frame-stack-buffer))
(define-key menu [breakpoints] '("Breakpoints" . gdb-frame-breakpoints-buffer)))
(let ((menu (make-sparse-keymap "GDB-UI"))) (let ((menu (make-sparse-keymap "GDB-UI")))
(define-key gud-menu-map [ui] (define-key gud-menu-map [ui]
`(menu-item "GDB-UI" ,menu :visible (eq gud-minor-mode 'gdba))) `(menu-item "GDB-UI" ,menu :visible (eq gud-minor-mode 'gdba)))
(define-key menu [gdb-restore-windows] (define-key menu [gdb-restore-windows]
'("Restore window layout" . gdb-restore-windows)) '("Restore Window Layout" . gdb-restore-windows))
(define-key menu [gdb-many-windows] (define-key menu [gdb-many-windows]
(menu-bar-make-toggle gdb-many-windows gdb-many-windows (menu-bar-make-toggle gdb-many-windows gdb-many-windows
"Display other windows" "Many Windows %s" "Display Other Windows" "Many windows %s"
"Display locals, stack and breakpoint information"))) "Toggle display of locals, stack and breakpoint information")))
(defun gdb-frame-gdb-buffer () (defun gdb-frame-gdb-buffer ()
"Display GUD buffer in a new frame." "Display GUD buffer in a new frame."

View file

@ -91,9 +91,17 @@ If SOFT is non-nil, returns nil if the symbol doesn't already exist."
"Non-nil if debuggee is running. "Non-nil if debuggee is running.
Used to grey out relevant toolbar icons.") Used to grey out relevant toolbar icons.")
(defun gud-goto-info ()
"Go to relevant Emacs info node."
(interactive)
(select-frame (make-frame))
(require 'info)
(if (memq gud-minor-mode '(gdbmi gdba))
(Info-goto-node "(emacs)GDB Graphical Interface")
(Info-goto-node "(emacs)Debuggers")))
(easy-mmode-defmap gud-menu-map (easy-mmode-defmap gud-menu-map
'(([help] menu-item "Help" gdb-goto-info '(([help] "Info" . gud-goto-info)
:enable (memq gud-minor-mode '(gdbmi gdba)))
([refresh] "Refresh" . gud-refresh) ([refresh] "Refresh" . gud-refresh)
([run] menu-item "Run" gud-run ([run] menu-item "Run" gud-run
:enable (and (not gud-running) :enable (and (not gud-running)
@ -172,7 +180,7 @@ Used to grey out relevant toolbar icons.")
(gud-nexti . "gud-ni") (gud-nexti . "gud-ni")
(gud-up . "gud-up") (gud-up . "gud-up")
(gud-down . "gud-down") (gud-down . "gud-down")
(gdb-goto-info . "help")) (gud-goto-info . "info"))
map) map)
(tool-bar-local-item-from-menu (tool-bar-local-item-from-menu
(car x) (cdr x) map gud-minor-mode-map))))) (car x) (cdr x) map gud-minor-mode-map)))))

View file

@ -1,6 +1,7 @@
;;; ispell.el --- interface to International Ispell Versions 3.1 and 3.2 ;;; ispell.el --- interface to International Ispell Versions 3.1 and 3.2
;; Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. ;; Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005
;; Free Software Foundation, Inc.
;; Author: Ken Stevens <k.stevens@ieee.org> ;; Author: Ken Stevens <k.stevens@ieee.org>
;; Maintainer: Ken Stevens <k.stevens@ieee.org> ;; Maintainer: Ken Stevens <k.stevens@ieee.org>
@ -2419,7 +2420,7 @@ With prefix argument, set the default dictionary."
"Update the dictionary actually used by Ispell. "Update the dictionary actually used by Ispell.
This may kill the Ispell process; if so, This may kill the Ispell process; if so,
a new one will be started when needed." a new one will be started when needed."
(let ((dict (or ispell-local-dictionary ispell-dictionary "default"))) (let ((dict (or ispell-local-dictionary ispell-dictionary)))
(unless (equal ispell-current-dictionary dict) (unless (equal ispell-current-dictionary dict)
(setq ispell-current-dictionary dict) (setq ispell-current-dictionary dict)
(ispell-kill-ispell t)))) (ispell-kill-ispell t))))

View file

@ -1228,6 +1228,11 @@ This enforces rescanning the buffer on next use."
;; But, when RESCAN is -1, don't rescan even if docstruct is empty. ;; But, when RESCAN is -1, don't rescan even if docstruct is empty.
;; When FILE is non-nil, parse only from that file. ;; When FILE is non-nil, parse only from that file.
;; Error out in a buffer without a file.
(if (and reftex-mode
(not (buffer-file-name)))
(error "RefTeX works only in buffers visiting a file."))
;; Make sure we have the symbols tied ;; Make sure we have the symbols tied
(if (eq reftex-docstruct-symbol nil) (if (eq reftex-docstruct-symbol nil)
;; Symbols are not yet tied: Tie them. ;; Symbols are not yet tied: Tie them.

View file

@ -557,18 +557,20 @@ EVENT is the client message. FRAME is where the mouse is now.
WINDOW is the window within FRAME where the mouse is now. WINDOW is the window within FRAME where the mouse is now.
FORMAT is 32 (not used). MESSAGE is the data part of an XClientMessageEvent." FORMAT is 32 (not used). MESSAGE is the data part of an XClientMessageEvent."
(cond ((equal "XdndEnter" message) (cond ((equal "XdndEnter" message)
(let ((version (ash (car (aref data 1)) -8)) (let* ((flags (aref data 1))
(more-than-3 (cdr (aref data 1))) (version (and (consp flags) (ash (car flags) -8)))
(dnd-source (aref data 0))) (more-than-3 (and (consp flags) (cdr flags)))
(x-dnd-save-state (dnd-source (aref data 0)))
window nil nil (if version ;; If flags is bad, version will be nil.
(if (> more-than-3 0) (x-dnd-save-state
(x-window-property "XdndTypeList" window nil nil
frame "AnyPropertyType" (if (> more-than-3 0)
dnd-source nil t) (x-window-property "XdndTypeList"
(vector (x-get-atom-name (aref data 2)) frame "AnyPropertyType"
(x-get-atom-name (aref data 3)) dnd-source nil t)
(x-get-atom-name (aref data 4))))))) (vector (x-get-atom-name (aref data 2))
(x-get-atom-name (aref data 3))
(x-get-atom-name (aref data 4))))))))
((equal "XdndPosition" message) ((equal "XdndPosition" message)
(let* ((x (car (aref data 2))) (let* ((x (car (aref data 2)))

View file

@ -1,8 +1,62 @@
2005-01-31 Luc Teirlinck <teirllm@auburn.edu> 2005-02-05 Lute Kamstra <lute@gnu.org>
* text.texi (Maintaining Undo): Remove obsolete function.
2005-02-05 Eli Zaretskii <eliz@gnu.org>
* frames.texi (Color Names): Add pointer to the X docs about RGB
color specifications. Improve indexing
(Text Terminal Colors): Replace the description of RGB values by
an xref to "Color Names".
2005-02-03 Richard M. Stallman <rms@gnu.org>
* windows.texi (Basic Windows): Add cursor-in-non-selected-windows.
Clarify.
(Selecting Windows): Clarify save-selected-window.
(Cyclic Window Ordering): Clarify walk-windows.
(Window Point): Clarify.
(Window Start): Add comment to example.
(Resizing Windows): Add `interactive' specs in examples.
Document fit-window-to-buffer.
* text.texi (User-Level Deletion): just-one-space takes numeric arg.
(Undo, Maintaining Undo): Clarify last change.
(Sorting): In sort-numeric-fields, explain about octal and hex.
Mention sort-numeric-base.
(Format Properties): Add xref for hard newlines.
* frames.texi (Window Frame Parameters): Explain pixel=char on tty.
(Pop-Up Menus): Fix typo.
(Color Names): Explain all types of color names.
Explain color-values on B&W terminal.
(Text Terminal Colors): Explain "rgb values" are lists. Fix arg names.
* files.texi (File Locks): Not supported on MS systems.
(Testing Accessibility): Clarify.
* edebug.texi (Printing in Edebug): Fix edebug-print-circle.
(Coverage Testing): Fix typo.
* commands.texi (Misc Events): Remove stray space.
* buffers.texi (Buffer Names): Clarify generate-new-buffer-name.
(Modification Time): Clarify when visited-file-modtime returns 0.
(The Buffer List): Clarify bury-buffer.
(Killing Buffers): Clarify.
(Indirect Buffers): Add clone-indirect-buffer.
2005-02-02 Matt Hodges <MPHodges@member.fsf.org>
* edebug.texi (Printing in Edebug): Fix default value of
edebug-print-circle.
(Coverage Testing): Fix displayed frequency count data.
2005-02-02 Luc Teirlinck <teirllm@auburn.edu>
* text.texi (Maintaining Undo): Add `undo-outer-limit'. * text.texi (Maintaining Undo): Add `undo-outer-limit'.
2005-02-01 Kim F. Storm <storm@cua.dk> 2005-02-02 Kim F. Storm <storm@cua.dk>
* text.texi (Undo) <buffer-undo-list>: Describe `apply' elements. * text.texi (Undo) <buffer-undo-list>: Describe `apply' elements.

View file

@ -344,11 +344,11 @@ number inside of @samp{<@dots{}>}. It starts at 2 and keeps
incrementing the number until it is not the name of an existing buffer. incrementing the number until it is not the name of an existing buffer.
If the optional second argument @var{ignore} is non-@code{nil}, it If the optional second argument @var{ignore} is non-@code{nil}, it
should be a string; it makes a difference if it is a name in the should be a string, a potential buffer name. It means to consider
sequence of names to be tried. That name will be considered acceptable, that potential buffer acceptable, if it is tried, even it is the name
if it is tried, even if a buffer with that name exists. Thus, if of an existing buffer (which would normally be rejected). Thus, if
buffers named @samp{foo}, @samp{foo<2>}, @samp{foo<3>} and @samp{foo<4>} buffers named @samp{foo}, @samp{foo<2>}, @samp{foo<3>} and
exist, @samp{foo<4>} exist,
@example @example
(generate-new-buffer-name "foo") (generate-new-buffer-name "foo")
@ -629,16 +629,13 @@ modification time, as a list of the form @code{(@var{high} @var{low})}.
(This is the same format that @code{file-attributes} uses to return (This is the same format that @code{file-attributes} uses to return
time values; see @ref{File Attributes}.) time values; see @ref{File Attributes}.)
The function returns zero if the buffer has no recorded last If the buffer has no recorded last modification time, this function
modification time, which can happen, for instance, if the record has returns zero. This case occurs, for instance, if the buffer is not
been explicitly cleared by @code{clear-visited-file-modtime} or if the visiting a file or if the time has been explicitly cleared by
buffer is not visiting a file. Note, however, that @code{clear-visited-file-modtime}. Note, however, that
@code{visited-file-modtime} can return a non-zero value for some @code{visited-file-modtime} returns a list for some non-file buffers
buffers that are not visiting files, but are nevertheless closely too. For instance, in a Dired buffer listing a directory, it returns
associated with a file. This happens, for instance, with dired the last modification time of that directory, as recorded by Dired.
buffers listing a directory. For such buffers,
@code{visited-file-modtime} returns the last modification time of that
directory, as recorded by dired.
For a new buffer visiting a not yet existing file, @var{high} is For a new buffer visiting a not yet existing file, @var{high} is
@minus{}1 and @var{low} is 65535, that is, @minus{}1 and @var{low} is 65535, that is,
@ -857,7 +854,8 @@ If no suitable buffer exists, the buffer @samp{*scratch*} is returned
This function puts @var{buffer-or-name} at the end of the buffer list, This function puts @var{buffer-or-name} at the end of the buffer list,
without changing the order of any of the other buffers on the list. without changing the order of any of the other buffers on the list.
This buffer therefore becomes the least desirable candidate for This buffer therefore becomes the least desirable candidate for
@code{other-buffer} to return. @code{other-buffer} to return. The argument can be either a buffer
itself or the name of one.
@code{bury-buffer} operates on each frame's @code{buffer-list} parameter @code{bury-buffer} operates on each frame's @code{buffer-list} parameter
as well as the frame-independent Emacs buffer list; therefore, the as well as the frame-independent Emacs buffer list; therefore, the
@ -949,8 +947,8 @@ Names}.
@cindex killing buffers @cindex killing buffers
@cindex buffers, killing @cindex buffers, killing
@dfn{Killing a buffer} makes its name unknown to Emacs and makes its @dfn{Killing a buffer} makes its name unknown to Emacs and makes the
text space available for other use. memory space it occupied available for other use.
The buffer object for the buffer that has been killed remains in The buffer object for the buffer that has been killed remains in
existence as long as anything refers to it, but it is specially marked existence 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
buffer, not from @var{base-buffer}. buffer, not from @var{base-buffer}.
@end deffn @end deffn
@defun clone-indirect-buffer newname display-flag &optional norecord
This function creates and returns a new indirect buffer that shares
the current buffer's base buffer and copies the rest of the current
buffer's attributes. (If the current buffer is not indirect, it is
used as the base buffer.)
If @var{display-flag} is non-@code{nil}, that means to display the new
buffer by calling @code{pop-to-buffer}. If @var{norecord} is
non-@code{nil}, that means not to put the new buffer to the front of
the buffer list.
@end defun
@defun buffer-base-buffer &optional buffer @defun buffer-base-buffer &optional buffer
This function returns the base buffer of @var{buffer}, which defaults This function returns the base buffer of @var{buffer}, which defaults
to the current buffer. If @var{buffer} is not indirect, the value is to the current buffer. If @var{buffer} is not indirect, the value is

View file

@ -1554,7 +1554,7 @@ portion of buffer text which has a @code{help-echo} text property.
The generated event has this form: The generated event has this form:
@example @example
(help-echo @var{frame} @var{help} @var{window} @var{object} @var{pos}) (help-echo @var{frame} @var{help} @var{window} @var{object} @var{pos})
@end example @end example
@noindent @noindent

View file

@ -801,7 +801,7 @@ vectors.
@defopt edebug-print-circle @defopt edebug-print-circle
If non-@code{nil}, Edebug binds @code{print-circle} to this value while If non-@code{nil}, Edebug binds @code{print-circle} to this value while
printing results. The default value is @code{nil}. printing results. The default value is @code{t}.
@end defopt @end defopt
Other programs can also use custom printing; see @file{cust-print.el} 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:
@example @example
(defun fac (n) (defun fac (n)
(if (= n 0) (edebug)) (if (= n 0) (edebug))
;#6 1 0 =5 ;#6 1 = =5
(if (< 0 n) (if (< 0 n)
;#5 = ;#5 =
(* n (fac (1- n))) (* n (fac (1- n)))

View file

@ -646,9 +646,10 @@ with-temp-buffer,, The Current Buffer}.
@section File Locks @section File Locks
@cindex file locks @cindex file locks
When two users edit the same file at the same time, they are likely to When two users edit the same file at the same time, they are likely
interfere with each other. Emacs tries to prevent this situation from to interfere with each other. Emacs tries to prevent this situation
arising by recording a @dfn{file lock} when a file is being modified. from arising by recording a @dfn{file lock} when a file is being
modified. (File locks are not implemented on Microsoft systems.)
Emacs can then detect the first attempt to modify a buffer visiting a Emacs can then detect the first attempt to modify a buffer visiting a
file that is locked by another Emacs job, and ask the user what to do. file that is locked by another Emacs job, and ask the user what to do.
The file lock is really a file, a symbolic link with a special name, The file lock is really a file, a symbolic link with a special name,
@ -680,14 +681,15 @@ some other job.
This function locks the file @var{filename}, if the current buffer is This function locks the file @var{filename}, if the current buffer is
modified. The argument @var{filename} defaults to the current buffer's modified. The argument @var{filename} defaults to the current buffer's
visited file. Nothing is done if the current buffer is not visiting a visited file. Nothing is done if the current buffer is not visiting a
file, or is not modified. file, or is not modified, or if the system does not support locking.
@end defun @end defun
@defun unlock-buffer @defun unlock-buffer
This function unlocks the file being visited in the current buffer, This function unlocks the file being visited in the current buffer,
if the buffer is modified. If the buffer is not modified, then if the buffer is modified. If the buffer is not modified, then
the file should not be locked, so this function does nothing. It also the file should not be locked, so this function does nothing. It also
does nothing if the current buffer is not visiting a file. does nothing if the current buffer is not visiting a file, or if the
system does not support locking.
@end defun @end defun
File locking is not supported on some systems. On systems that do not File locking is not supported on some systems. On systems that do not
@ -834,10 +836,11 @@ a directory.
@c Emacs 19 feature @c Emacs 19 feature
@defun file-accessible-directory-p dirname @defun file-accessible-directory-p dirname
This function returns @code{t} if you have permission to open existing This function returns @code{t} if you have permission to open existing
files in the directory whose name as a file is @var{dirname}; otherwise files in the directory whose name as a file is @var{dirname};
(or if there is no such directory), it returns @code{nil}. The value otherwise (or if there is no such directory), it returns @code{nil}.
of @var{dirname} may be either a directory name or the file name of a The value of @var{dirname} may be either a directory name (such as
file which is a directory. @file{/foo/}) or the file name of a file which is a directory
(such as @file{/foo}, without the final slash).
Example: after the following, Example: after the following,

View file

@ -310,12 +310,14 @@ The GNU Emacs Manual}.
@node Window Frame Parameters @node Window Frame Parameters
@subsection Window Frame Parameters @subsection Window Frame Parameters
Just what parameters a frame has depends on what display mechanism it Just what parameters a frame has depends on what display mechanism it
uses. Here is a table of the parameters that have special meanings in a uses. Here is a table of the parameters that have special meanings in a
window frame; of these, @code{name}, @code{title}, @code{height}, window frame; of these, @code{name}, @code{title}, @code{height},
@code{width}, @code{buffer-list} and @code{buffer-predicate} provide @code{width}, @code{buffer-list} and @code{buffer-predicate} provide
meaningful information in terminal frames, and @code{tty-color-mode} meaningful information in terminal frames, and @code{tty-color-mode}
is meaningful @emph{only} in terminal frames. is meaningful @emph{only} in terminal frames. Frame parameter whose
values measured in pixels, when used on text-only terminals, count
characters or lines instead.
@table @code @table @code
@item display @item display
@ -1407,7 +1409,7 @@ that it calls @code{x-popup-menu}. Therefore, if you try to implement a
submenu using @code{x-popup-menu}, it cannot work with the menu bar in submenu using @code{x-popup-menu}, it cannot work with the menu bar in
an integrated fashion. This is why all menu bar submenus are an integrated fashion. This is why all menu bar submenus are
implemented with menu keymaps within the parent menu, and never with implemented with menu keymaps within the parent menu, and never with
@code{x-popup-menu}. @xref{Menu Bar}, @code{x-popup-menu}. @xref{Menu Bar}.
If you want a menu bar submenu to have contents that vary, you should If you want a menu bar submenu to have contents that vary, you should
still use a menu keymap to implement it. To make the contents vary, add still use a menu keymap to implement it. To make the contents vary, add
@ -1586,6 +1588,22 @@ but @code{t} on MS-Windows.
@node Color Names @node Color Names
@section Color Names @section Color Names
@cindex color names
@cindex specify color
@cindex numerical RGB color specification
A color name is text (usually in a string) that specifies a color.
Symbolic names such as @samp{black}, @samp{white}, @samp{red}, etc.,
are allowed; use @kbd{M-x list-colors-display} to see a list of
defined names. You can also specify colors numerically in forms such
as @samp{#@var{rgb}} and @samp{RGB:@var{r}/@var{g}/@var{b}}, where
@var{r} specifies the red level, @var{g} specifies the green level,
and @var{b} specifies the blue level. You can use either one, two,
three, or four hex digits for @var{r}; then you must use the same
number of hex digits for all @var{g} and @var{b} as well, making
either 3, 6, 9 or 12 hex digits in all. (See the documentation of the
X Window System for more details about numerical RGB specification of
colors.)
These functions provide a way to determine which color names are These functions provide a way to determine which color names are
valid, and what they look like. In some cases, the value depends on the valid, and what they look like. In some cases, the value depends on the
@dfn{selected frame}, as described below; see @ref{Input Focus}, for the @dfn{selected frame}, as described below; see @ref{Input Focus}, for the
@ -1644,12 +1662,14 @@ color name, this function returns @code{nil}.
@defun color-values color &optional frame @defun color-values color &optional frame
@tindex color-values @tindex color-values
@cindex rgb value
This function returns a value that describes what @var{color} should This function returns a value that describes what @var{color} should
ideally look like on @var{frame}. If @var{color} is defined, the ideally look like on @var{frame}. If @var{color} is defined, the
value is a list of three integers, which give the amount of red, the value is a list of three integers, which give the amount of red, the
amount of green, and the amount of blue. Each integer ranges in amount of green, and the amount of blue. Each integer ranges in
principle from 0 to 65535, but some displays may not use the full principle from 0 to 65535, but some displays may not use the full
range. This kind of three-element list is called an @dfn{rgb value}. range. This three-element list is called the @dfn{rgb values} of the
color.
If @var{color} is not defined, the value is @code{nil}. If @var{color} is not defined, the value is @code{nil}.
@ -1666,9 +1686,10 @@ If @var{color} is not defined, the value is @code{nil}.
@result{} nil @result{} nil
@end example @end example
The color values are returned for @var{frame}'s display. If @var{frame} The color values are returned for @var{frame}'s display. If
is omitted or @code{nil}, the information is returned for the selected @var{frame} is omitted or @code{nil}, the information is returned for
frame's display. the selected frame's display. If the frame cannot display colors, the
value is @code{nil}.
@findex x-color-values @findex x-color-values
This function used to be called @code{x-color-values}, This function used to be called @code{x-color-values},
@ -1690,37 +1711,34 @@ standard set of colors and will try to use them automatically.
The functions described in this section control how terminal colors The functions described in this section control how terminal colors
are used by Emacs. are used by Emacs.
@cindex rgb value Several of these functions use or return @dfn{rgb values}, described
Several of these functions use or return @dfn{rgb values}. An rgb in @ref{Color Names}.
value is a list of three integers, which give the amount of red, the
amount of green, and the amount of blue. Each integer ranges in
principle from 0 to 65535, but some displays may not use the full range. .
These functions accept a display (either a frame or the name of a These functions accept a display (either a frame or the name of a
terminal) as an optional argument. We hope in the future to make Emacs terminal) as an optional argument. We hope in the future to make Emacs
support more than one text-only terminal at one time; then this argument support more than one text-only terminal at one time; then this argument
will specify which terminal to operate on (the default being the will specify which terminal to operate on (the default being the
selected frame's terminal; @pxref{Input Focus}). At present, though, selected frame's terminal; @pxref{Input Focus}). At present, though,
the @var{display} argument has no effect. the @var{frame} argument has no effect.
@defun tty-color-define name number &optional rgb display @defun tty-color-define name number &optional rgb frame
@tindex tty-color-define @tindex tty-color-define
This function associates the color name @var{name} with This function associates the color name @var{name} with
color number @var{number} on the terminal. color number @var{number} on the terminal.
The optional argument @var{rgb}, if specified, is an rgb value; it says The optional argument @var{rgb}, if specified, is an rgb value, a list
what the color actually looks like. If you do not specify @var{rgb}, of three numbers that specify what what the color actually looks like.
then this color cannot be used by @code{tty-color-approximate} to If you do not specify @var{rgb}, then this color cannot be used by
approximate other colors, because Emacs does not know what it looks @code{tty-color-approximate} to approximate other colors, because
like. Emacs will not know what it looks like.
@end defun @end defun
@defun tty-color-clear &optional display @defun tty-color-clear &optional frame
@tindex tty-color-clear @tindex tty-color-clear
This function clears the table of defined colors for a text-only terminal. This function clears the table of defined colors for a text-only terminal.
@end defun @end defun
@defun tty-color-alist &optional display @defun tty-color-alist &optional frame
@tindex tty-color-alist @tindex tty-color-alist
This function returns an alist recording the known colors supported by a This function returns an alist recording the known colors supported by a
text-only terminal. text-only terminal.
@ -1728,26 +1746,23 @@ text-only terminal.
Each element has the form @code{(@var{name} @var{number} . @var{rgb})} Each element has the form @code{(@var{name} @var{number} . @var{rgb})}
or @code{(@var{name} @var{number})}. Here, @var{name} is the color or @code{(@var{name} @var{number})}. Here, @var{name} is the color
name, @var{number} is the number used to specify it to the terminal. name, @var{number} is the number used to specify it to the terminal.
If present, @var{rgb} is an rgb value that says what the color If present, @var{rgb} is a list of three color values (for red, green,
actually looks like. and blue) that says what the color actually looks like.
@end defun @end defun
@defun tty-color-approximate rgb &optional display @defun tty-color-approximate rgb &optional frame
@tindex tty-color-approximate @tindex tty-color-approximate
This function finds the closest color, among the known colors supported This function finds the closest color, among the known colors
for @var{display}, to that described by the rgb value @var{rgb}. supported for @var{display}, to that described by the rgb value
The return value is an element of @code{tty-color-alist}. @var{rgb} (a list of color values). The return value is an element of
@code{tty-color-alist}.
@end defun @end defun
@defun tty-color-translate color &optional display @defun tty-color-translate color &optional frame
@tindex tty-color-translate @tindex tty-color-translate
This function finds the closest color to @var{color} among the known This function finds the closest color to @var{color} among the known
colors supported for @var{display} and returns its index (an integer). colors supported for @var{display} and returns its index (an integer).
If the name @var{color} is not defined, the value is @code{nil}. If the name @var{color} is not defined, the value is @code{nil}.
@var{color} can be an X-style @code{"#@var{xxxyyyzzz}"} specification
instead of an actual name. The format
@code{"RGB:@var{xx}/@var{yy}/@var{zz}"} is also supported.
@end defun @end defun
@node Resources @node Resources

View file

@ -1,7 +1,7 @@
@c -*-texinfo-*- @c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual. @c This is part of the GNU Emacs Lisp Reference Manual.
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999,
@c 2000, 2001, 2004 @c 2000, 2001, 2004, 2005
@c Free Software Foundation, Inc. @c Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions. @c See the file elisp.texi for copying conditions.
@setfilename ../info/text @setfilename ../info/text
@ -720,10 +720,11 @@ This has too many spaces at the start of (this list)
@end smallexample @end smallexample
@end deffn @end deffn
@deffn Command just-one-space @deffn Command just-one-space &optional n
@comment !!SourceFile simple.el @comment !!SourceFile simple.el
This command replaces any spaces and tabs around point with a single This command replaces any spaces and tabs around point with a single
space. It returns @code{nil}. space, or @var{n} spaces if @var{n} is specified. It returns
@code{nil}.
@end deffn @end deffn
@deffn Command delete-blank-lines @deffn Command delete-blank-lines
@ -1218,7 +1219,8 @@ This kind of element records a change that can be undone by evaluating
and @var{end} is buffer positions of the range affected by this change and @var{end} is buffer positions of the range affected by this change
and @var{delta} is an integer value which is the number of bytes added and @var{delta} is an integer value which is the number of bytes added
or deleted in that range by this change. This kind of element or deleted in that range by this change. This kind of element
supports undo in an active region enables undo limited to a region to determine whether the element
pertains to that region.
@item (@var{marker} . @var{adjustment}) @item (@var{marker} . @var{adjustment})
This kind of element records the fact that the marker @var{marker} was This kind of element records the fact that the marker @var{marker} was
@ -1303,7 +1305,6 @@ You cannot specify any other buffer.
@end deffn @end deffn
@deffn Command buffer-disable-undo &optional buffer-or-name @deffn Command buffer-disable-undo &optional buffer-or-name
@deffnx Command buffer-flush-undo &optional buffer-or-name
@cindex disable undo @cindex disable undo
This function discards the undo list of @var{buffer-or-name}, and disables This function discards the undo list of @var{buffer-or-name}, and disables
further recording of undo information. As a result, it is no longer further 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
has no effect. has no effect.
This function returns @code{nil}. This function returns @code{nil}.
The name @code{buffer-flush-undo} is not considered obsolete, but the
preferred name is @code{buffer-disable-undo}.
@end deffn @end deffn
As editing continues, undo lists get longer and longer. To prevent 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}.
@defopt undo-outer-limit @defopt undo-outer-limit
If at garbage collection time the undo info for the current command If at garbage collection time the undo info for the current command
exceeds this limit, Emacs discards the info and prints a warning exceeds this limit, Emacs discards the info and displays a warning.
message. This is a last ditch limit to prevent memory overflow. This is a last ditch limit to prevent memory overflow.
@end defopt @end defopt
@node Filling @node Filling
@ -1915,19 +1913,27 @@ is useful for sorting tables.
@deffn Command sort-numeric-fields field start end @deffn Command sort-numeric-fields field start end
This command sorts lines in the region between @var{start} and This command sorts lines in the region between @var{start} and
@var{end}, comparing them numerically by the @var{field}th field of each @var{end}, comparing them numerically by the @var{field}th field of
line. The specified field must contain a number in each line of the each line. Fields are separated by whitespace and numbered starting
region. Fields are separated by whitespace and numbered starting from from 1. The specified field must contain a number in each line of the
1. If @var{field} is negative, sorting is by the region. Numbers starting with 0 are treated as octal, and numbers
@w{@minus{}@var{field}th} field from the end of the line. This command starting with @samp{0x} are treated as hexadecimal.
is useful for sorting tables.
If @var{field} is negative, sorting is by the
@w{@minus{}@var{field}th} field from the end of the line. This
command is useful for sorting tables.
@end deffn @end deffn
@defopt sort-numeric-base
This variable specifies the default radix for
@code{sort-numeric-fields} to parse numbers.
@end defopt
@deffn Command sort-columns reverse &optional beg end @deffn Command sort-columns reverse &optional beg end
This command sorts the lines in the region between @var{beg} and This command sorts the lines in the region between @var{beg} and
@var{end}, comparing them alphabetically by a certain range of columns. @var{end}, comparing them alphabetically by a certain range of
The column positions of @var{beg} and @var{end} bound the range of columns. The column positions of @var{beg} and @var{end} bound the
columns to sort on. range of columns to sort on.
If @var{reverse} is non-@code{nil}, the sort is in reverse order. If @var{reverse} is non-@code{nil}, the sort is in reverse order.
@ -3119,8 +3125,9 @@ are used for representing formatted text. @xref{Filling}, and
@item hard @item hard
If a newline character has this property, it is a ``hard'' newline. If a newline character has this property, it is a ``hard'' newline.
The fill commands do not alter hard newlines and do not move words The fill commands do not alter hard newlines and do not move words
across them. However, this property takes effect only if the variable across them. However, this property takes effect only if the
@code{use-hard-newlines} is non-@code{nil}. @code{use-hard-newlines} minor mode is enabled. @xref{Hard and Soft
Newlines,, Hard and Soft Newlines, emacs, The GNU Emacs Manual}.
@item right-margin @item right-margin
This property specifies an extra right margin for filling this part of the This property specifies an extra right margin for filling this part of the

View file

@ -53,11 +53,17 @@ multiple nonoverlapping Emacs windows.
In each frame, at any time, one and only one window is designated as In each frame, at any time, one and only one window is designated as
@dfn{selected within the frame}. The frame's cursor appears in that @dfn{selected within the frame}. The frame's cursor appears in that
window. At any time, one frame is the selected frame; and the window window, but the other windows have ``non-selected'' cursors, normally
selected within that frame is @dfn{the selected window}. The selected less visible. At any time, one frame is the selected frame; and the
window's buffer is usually the current buffer (except when window selected within that frame is @dfn{the selected window}. The
selected window's buffer is usually the current buffer (except when
@code{set-buffer} has been used). @xref{Current Buffer}. @code{set-buffer} has been used). @xref{Current Buffer}.
@defvar cursor-in-non-selected-windows
If this variable is @code{nil}, Emacs displays only one cursor,
in the selected window. Other windows have no cursor at all.
@end defvar
For practical purposes, a window exists only while it is displayed in For practical purposes, a window exists only while it is displayed in
a frame. Once removed from the frame, the window is effectively deleted a frame. Once removed from the frame, the window is effectively deleted
and should not be used, @emph{even though there may still be references and should not be used, @emph{even though there may still be references
@ -455,10 +461,10 @@ The return value is @var{window}.
@end defun @end defun
@defmac save-selected-window forms@dots{} @defmac save-selected-window forms@dots{}
This macro records the selected window, as well as the selected window This macro records the selected frame, as well as the selected window
of each frame, executes @var{forms} in sequence, then restores the of each frame, executes @var{forms} in sequence, then restores the
earlier selected windows. It returns the value of the last form in earlier selected frame and windows It returns the value of the last
@var{forms}. form in @var{forms}.
This macro does not save or restore anything about the sizes, This macro does not save or restore anything about the sizes,
arrangement or contents of windows; therefore, if the @var{forms} arrangement or contents of windows; therefore, if the @var{forms}
@ -648,8 +654,9 @@ In an interactive call, @var{count} is the numeric prefix argument.
@c Emacs 19 feature @c Emacs 19 feature
@defun walk-windows proc &optional minibuf all-frames @defun walk-windows proc &optional minibuf all-frames
This function cycles through all windows, calling @code{proc} This function cycles through all windows. It calls the function
once for each window with the window as its sole argument. @code{proc} once for each window, with the window as its sole
argument.
The optional arguments @var{minibuf} and @var{all-frames} specify the The optional arguments @var{minibuf} and @var{all-frames} specify the
set of windows to include in the scan. See @code{next-window}, above, set of windows to include in the scan. See @code{next-window}, above,
@ -1175,11 +1182,11 @@ the other windows are stored in those windows.
@item @item
As long as the selected window displays the current buffer, the window's As long as the selected window displays the current buffer, the window's
point and the buffer's point always move together; they remain equal. point and the buffer's point always move together; they remain equal.
@item
@xref{Positions}, for more details on buffer positions.
@end itemize @end itemize
@noindent
@xref{Positions}, for more details on buffer positions.
As far as the user is concerned, point is where the cursor is, and As far as the user is concerned, point is where the cursor is, and
when the user switches to another buffer, the cursor jumps to the when the user switches to another buffer, the cursor jumps to the
position of point in that buffer. position of point in that buffer.
@ -1356,6 +1363,7 @@ Here is an example:
@example @example
@group @group
;; @r{If point is off the screen now, recenter it now.}
(or (pos-visible-in-window-p (or (pos-visible-in-window-p
(point) (selected-window)) (point) (selected-window))
(recenter 0)) (recenter 0))
@ -1984,6 +1992,7 @@ It could be defined as follows:
@example @example
@group @group
(defun enlarge-window-horizontally (columns) (defun enlarge-window-horizontally (columns)
(interactive "p")
(enlarge-window columns t)) (enlarge-window columns t))
@end group @end group
@end example @end example
@ -2006,16 +2015,29 @@ It could be defined as follows:
@example @example
@group @group
(defun shrink-window-horizontally (columns) (defun shrink-window-horizontally (columns)
(interactive "p")
(shrink-window columns t)) (shrink-window columns t))
@end group @end group
@end example @end example
@end deffn @end deffn
@defun fit-window-to-buffer &optional window max-height min-height
This function makes @var{window} the right height to display its
contents exactly. If @var{window} is omitted or @code{nil}, it uses
the selected window.
The argument @var{max-height} specifies the maximum height the window
is allowed to be; @code{nil} means use the frame height. The argument
@var{min-height} specifies the minimum height for the window;
@code{nil} means use @code{window-min-height}. All these height
values include the mode-line and/or header-line.
@end defun
@deffn Command shrink-window-if-larger-than-buffer &optional window @deffn Command shrink-window-if-larger-than-buffer &optional window
This command shrinks @var{window} to be as small as possible while still This command shrinks @var{window} vertically to be as small as
showing the full contents of its buffer---but not less than possible while still showing the full contents of its buffer---but not
@code{window-min-height} lines. If @var{window} is not given, less than @code{window-min-height} lines. If @var{window} is not
it defaults to the selected window. given, it defaults to the selected window.
However, the command does nothing if the window is already too small to However, the command does nothing if the window is already too small to
display the whole text of the buffer, or if part of the contents are display the whole text of the buffer, or if part of the contents are

View file

@ -1,4 +1,4 @@
/* Handcrafted Emacs site configuration file for Mac OS. -*- C -*- */ /* Handcrafted Emacs site configuration file for Mac OS 9. -*- C -*- */
/* GNU Emacs site configuration template file. -*- C -*- /* GNU Emacs site configuration template file. -*- C -*-
Copyright (C) 1988, 1993, 1994, 1999, 2000 Free Software Foundation, Inc. Copyright (C) 1988, 1993, 1994, 1999, 2000 Free Software Foundation, Inc.

View file

@ -1,4 +1,4 @@
/* Handcrafted s-mac.h file for building GNU Emacs on the Macintosh. /* Handcrafted s-mac.h file for building GNU Emacs on Mac OS 9.
Copyright (C) 1999, 2000 Free Software Foundation, Inc. Copyright (C) 1999, 2000 Free Software Foundation, Inc.
This file is part of GNU Emacs. This file is part of GNU Emacs.

View file

@ -1,4 +1,54 @@
2005-01-31 Luc Teirlinck <teirllm@auburn.edu> 2005-02-05 Eli Zaretskii <eliz@gnu.org>
* frames.texi (Frame Parameters): Add an xref to the description
of list-colors-display. Add a pointer to the X docs about colors.
* cmdargs.texi (Colors): Mention 16-, 88- and 256-color modes.
Impove docs of list-colors-display.
2005-02-03 Lute Kamstra <lute@gnu.org>
* frames.texi (Frames, Drag and Drop): Fix typos.
2005-02-03 Richard M. Stallman <rms@gnu.org>
* windows.texi (Basic Window): Mention color-change in mode line.
(Change Window): Explain dragging vertical boundaries.
* text.texi (Sentences): Clarify.
(Paragraphs): Explain M-a and blank lines.
(Outline Mode): Clarify text and menu.
(Hard and Soft Newlines): Mention use-hard-newlines.
* frames.texi (Frames): Delete unnecessary mention of Windows.
(Mouse Commands): Likewise. Mention xterm mouse support.
(Clipboard): Clarify.
(Mouse References): Mention use of Mouse-1 for following links.
(Menu Mouse Clicks): Clarify.
(Mode Line Mouse): Clarify.
(Drag and Drop): Rewrite.
* fixit.texi (Spelling): Fix typo.
* files.texi (File Names): Clarify.
(Visiting): Update conditions for use of file dialog. Clarify.
(Saving): Doc d as answer in save-some-buffers.
(Remote Files): Clean up the text.
* dired.texi (Misc Dired Commands): Delete dired-marked-files.
* buffers.texi (Select Buffer): Doc next-buffer and prev-buffer.
(List Buffers): Clarify.
(Several Buffers): Doc T command.
(Buffer Convenience): Clarify menu.
* basic.texi (Undo): Clarify last change.
2005-02-02 Matt Hodges <MPHodges@member.fsf.org>
* fixit.texi (Spelling): Fix typo.
2005-02-01 Luc Teirlinck <teirllm@auburn.edu>
* basic.texi (Undo): Update description of `undo-outer-limit'. * basic.texi (Undo): Update description of `undo-outer-limit'.

View file

@ -400,7 +400,7 @@ value of @code{undo-strong-limit} is 30000.
Regardless of the values of those variables, the most recent change Regardless of the values of those variables, the most recent change
is never discarded unless it gets bigger than @code{undo-outer-limit} is never discarded unless it gets bigger than @code{undo-outer-limit}
(normally 3,000,000). At that point, Emacs discards the undo data and (normally 3,000,000). At that point, Emacs discards the undo data and
warns you about it. This is the only situation in which you can not warns you about it. This is the only situation in which you cannot
undo the last command. If this happens, you can increase the value of undo the last command. If this happens, you can increase the value of
@code{undo-outer-limit} to make it even less likely to happen in the @code{undo-outer-limit} to make it even less likely to happen in the
future. But if you didn't expect the command to create such large future. But if you didn't expect the command to create such large

View file

@ -67,6 +67,10 @@ megabytes.
@table @kbd @table @kbd
@item C-x b @var{buffer} @key{RET} @item C-x b @var{buffer} @key{RET}
Select or create a buffer named @var{buffer} (@code{switch-to-buffer}). Select or create a buffer named @var{buffer} (@code{switch-to-buffer}).
@item C-x @key{LEFT}
Select the previous buffer in the list of existing buffers.
@item C-x @key{RIGHT}
Select the next buffer in the list of existing buffers.
@item C-x 4 b @var{buffer} @key{RET} @item C-x 4 b @var{buffer} @key{RET}
Similar, but select @var{buffer} in another window Similar, but select @var{buffer} in another window
(@code{switch-to-buffer-other-window}). (@code{switch-to-buffer-other-window}).
@ -84,6 +88,16 @@ name you want (@pxref{Completion}). An empty argument to @kbd{C-x b}
specifies the buffer that was current most recently among those not specifies the buffer that was current most recently among those not
now displayed in any window. now displayed in any window.
@kindex C-x @key{LEFT}
@kindex C-x @key{RIGHT}
@findex next-buffer
@findex prev-buffer
For conveniently switching between a few buffers, use the commands
@kbd{C-x @key{LEFT}} and @kbd{C-x @key{RIGHT}}. @kbd{C-x @key{RIGHT}}
(@code{prev-buffer}) selects the previous buffer (following the order
of most recent selection), while @kbd{C-x @key{LEFT}}
(@code{next-buffer}) moves through buffers in the reverse direction.
@kindex C-x 4 b @kindex C-x 4 b
@findex switch-to-buffer-other-window @findex switch-to-buffer-other-window
@vindex even-window-heights @vindex even-window-heights
@ -141,9 +155,9 @@ List the existing buffers (@code{list-buffers}).
@cindex listing current buffers @cindex listing current buffers
@kindex C-x C-b @kindex C-x C-b
@findex list-buffers @findex list-buffers
To display a list of all the buffers that exist, type @kbd{C-x C-b}. To display a list of existing buffers, type @kbd{C-x C-b}. Each
Each line in the list shows one buffer's name, major mode and visited line in the list shows one buffer's name, major mode and visited file.
file. The buffers are listed in the order that they were current; the The buffers are listed in the order that they were current; the
buffers that were current most recently come first. buffers that were current most recently come first.
@samp{*} in the first field of a line indicates the buffer is ``modified.'' @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
visiting files by giving the command a prefix; for instance, by typing visiting files by giving the command a prefix; for instance, by typing
@kbd{C-u C-x C-b}. @kbd{C-u C-x C-b}.
@code{list-buffers} omits buffers whose name begins with a blank, @code{list-buffers} omits buffers whose names begin with a space,
unless they visit files: such buffers are used internally by Emacs. unless they visit files: such buffers are used internally by Emacs.
@need 2000 @need 2000
@ -332,8 +346,9 @@ Similar, but do it in another window.
buffers@footnote{Buffers which don't visit files and whose names begin buffers@footnote{Buffers which don't visit files and whose names begin
with a space are omitted: these are used internally by Emacs.} into the with a space are omitted: these are used internally by Emacs.} into the
buffer @samp{*Buffer List*}, and selects that buffer in Buffer Menu buffer @samp{*Buffer List*}, and selects that buffer in Buffer Menu
mode. The list in the @samp{*Buffer List*} buffer looks exactly as mode.
described in @ref{List Buffers}. The buffer is read-only, and can be
The buffer is read-only, and can be
changed only through the special commands described in this section. changed only through the special commands described in this section.
The usual Emacs cursor motion commands can be used in the @samp{*Buffer The usual Emacs cursor motion commands can be used in the @samp{*Buffer
List*} buffer. The following commands apply to the buffer described on List*} 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
marked any buffers, this command is equivalent to @kbd{1}. marked any buffers, this command is equivalent to @kbd{1}.
@end table @end table
All that @code{buffer-menu} does directly is create and switch to a There is also a command that affects the entire buffer list:
suitable buffer, and turn on Buffer Menu mode. Everything else
@table @kbd
@item T
Delete, or reinsert, lines for non-file buffers. This command toggles
the inclusion of such buffers in the buffer list.
@end table
What @code{buffer-menu} actually does is create and switch to a
suitable buffer, and turn on Buffer Menu mode in it. Everything else
described above is implemented by the special commands provided in described above is implemented by the special commands provided in
Buffer Menu mode. One consequence of this is that you can switch from Buffer Menu mode. One consequence of this is that you can switch from
the @samp{*Buffer List*} buffer to another Emacs buffer, and edit there. the @samp{*Buffer List*} buffer to another Emacs buffer, and edit
You can reselect the @samp{*Buffer List*} buffer later, to perform the there. You can reselect the @samp{*Buffer List*} buffer later, to
operations already requested, or you can kill it, or pay no further perform the operations already requested, or you can kill it, or pay
attention to it. no further attention to it.
The only difference between @code{buffer-menu} and @code{list-buffers} The list in the @samp{*Buffer List*} buffer looks exactly like the
is that @code{buffer-menu} switches to the @samp{*Buffer List*} buffer buffer list described in @ref{List Buffers}, because they really are
in the selected window; @code{list-buffers} displays it in another the same. The only difference between @code{buffer-menu} and
window. If you run @code{list-buffers} (that is, type @kbd{C-x C-b}) @code{list-buffers} is that @code{buffer-menu} switches to the
and select the buffer list manually, you can use all of the commands @samp{*Buffer List*} buffer in the selected window;
described here. @code{list-buffers} displays the same buffer in another window. If
you run @code{list-buffers} (that is, type @kbd{C-x C-b}) and select
the buffer list manually, you can use all of the commands described
here.
Normally, the buffer @samp{*Buffer List*} is not updated automatically when Normally, the buffer @samp{*Buffer List*} is not updated automatically when
buffers are created and killed; its contents are just text. If you have buffers are created and killed; its contents are just text. If you have
@ -506,7 +532,7 @@ minibuffer.
convenient to switch between buffers. convenient to switch between buffers.
@menu @menu
* Uniquify:: Buffer names can contain directory parts. * Uniquify:: Making buffer names unique with directory parts.
* Iswitchb:: Switching between buffers with substrings. * Iswitchb:: Switching between buffers with substrings.
* Buffer Menus:: Configurable buffer menu. * Buffer Menus:: Configurable buffer menu.
@end menu @end menu

View file

@ -874,6 +874,9 @@ displays the entire font @samp{6x13}.
parts of the Emacs display. To find out what colors are available on parts of the Emacs display. To find out what colors are available on
your system, type @kbd{M-x list-colors-display}, or press your system, type @kbd{M-x list-colors-display}, or press
@kbd{C-Mouse-2} and select @samp{Display Colors} from the pop-up menu. @kbd{C-Mouse-2} and select @samp{Display Colors} from the pop-up menu.
(A particular window system might support many more colors, but the
list displayed by @code{list-colors-display} shows their portable
subset that can be safely used on any display supported by Emacs.)
If you do not specify colors, on windowed displays the default for the If you do not specify colors, on windowed displays the default for the
background is white and the default for all other colors is black. On a background is white and the default for all other colors is black. On a
monochrome display, the foreground is black, the background is white, monochrome display, the foreground is black, the background is white,
@ -947,7 +950,9 @@ specified by the ANSI escape sequences for the 8 standard colors.
Use color mode for @var{num} colors. If @var{num} is -1, turn off Use color mode for @var{num} colors. If @var{num} is -1, turn off
color support (equivalent to @samp{never}); if it is 0, use the color support (equivalent to @samp{never}); if it is 0, use the
default color support for this terminal (equivalent to @samp{auto}); default color support for this terminal (equivalent to @samp{auto});
otherwise use an appropriate standard mode for @var{num} colors. If otherwise use an appropriate standard mode for @var{num} colors.
Depending on your terminal's capabilities, Emacs might be able to turn
on a color mode for 8, 16, 88, or 256 as the value of @var{num}. If
there is no mode that supports @var{num} colors, Emacs acts as if there is no mode that supports @var{num} colors, Emacs acts as if
@var{num} were 0, i.e.@: it uses the terminal's default color support @var{num} were 0, i.e.@: it uses the terminal's default color support
mode. mode.

View file

@ -1116,13 +1116,10 @@ marked file. As a special case, if no prefix argument is given and
point is on a directory headerline, @kbd{w} gives you the name of that point is on a directory headerline, @kbd{w} gives you the name of that
directory without looking for marked files. directory without looking for marked files.
@vindex dired-marked-files
The main purpose of the @kbd{w} command is so that you can yank the The main purpose of the @kbd{w} command is so that you can yank the
file names into arguments for other Emacs commands. It also displays file names into arguments for other Emacs commands. It also displays
what was pushed onto the kill ring, so you can use it to display the what was pushed onto the kill ring, so you can use it to display the
list of currently marked files in the echo area. It also stores the list of currently marked files in the echo area.
list of names in the variable @code{dired-marked-files}, for use in
Lisp expressions.
@end table @end table
@ignore @ignore

View file

@ -120,7 +120,7 @@ is not defined).
only when done before Emacs is started. only when done before Emacs is started.
@cindex home directory shorthand @cindex home directory shorthand
You can use the @file{~/} in a file name to mean your home directory, You can use @file{~/} in a file name to mean your home directory,
or @file{~@var{user-id}/} to mean the home directory of a user whose or @file{~@var{user-id}/} to mean the home directory of a user whose
login name is @code{user-id}. (On DOS and Windows systems, where a user login name is @code{user-id}. (On DOS and Windows systems, where a user
doesn't have a home directory, Emacs substitutes @file{~/} with the doesn'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
about this, see @ref{Completion Options}. about this, see @ref{Completion Options}.
@cindex file selection dialog @cindex file selection dialog
When Emacs is built with a suitable GUI toolkit, it pops up the When Emacs is built with a suitable GUI toolkit, commands invoked
standard File Selection dialog of that toolkit instead of prompting for with the mouse or the menu bar use the toolkit's standard File
the file name in the minibuffer. On Unix and GNU/Linux platforms, Emacs Selection dialog instead of prompting for the file name in the
does that when built with LessTif and Motif toolkits; on MS-Windows, the minibuffer. On Unix and GNU/Linux platforms, Emacs does that when
GUI version does that by default. built with GTK, LessTif, and Motif toolkits; on MS-Windows, the GUI
version does that by default. @xref{Dialog Boxes}, for info
on customization of this.
Your confirmation that @kbd{C-x C-f} has completed successfully is the Your confirmation that @kbd{C-x C-f} has completed successfully is the
appearance of new text on the screen and a new buffer name in the mode appearance 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.
@vindex find-file-run-dired @vindex find-file-run-dired
If the file you specify is actually a directory, @kbd{C-x C-f} invokes If the file you specify is actually a directory, @kbd{C-x C-f} invokes
Dired, the Emacs directory browser, so that you can ``edit'' the contents Dired, the Emacs directory browser, so that you can ``edit'' the contents
of the directory (@pxref{Dired}). Dired is a convenient way to delete, of the directory (@pxref{Dired}). Dired is a convenient way to view, delete,
look at, or operate on the files in the directory. However, if the or operate on the files in the directory. However, if the variable
variable @code{find-file-run-dired} is @code{nil}, then it is an error @code{find-file-run-dired} is @code{nil}, then it is an error to try
to try to visit a directory. to visit a directory.
Files which are actually collections of other files, or @dfn{file Files which are actually collections of other files, or @dfn{file
archives}, are visited in special modes which invoke a Dired-like archives}, are visited in special modes which invoke a Dired-like
@ -407,6 +409,9 @@ about other buffers.
View the buffer that you are currently being asked about. When you exit View the buffer that you are currently being asked about. When you exit
View mode, you get back to @code{save-some-buffers}, which asks the View mode, you get back to @code{save-some-buffers}, which asks the
question again. question again.
@item d
Diff the buffer against its corresponding file, so you can see
what changes you would be saving.
@item C-h @item C-h
Display a help message about these options. Display a help message about these options.
@end table @end table
@ -3085,26 +3090,24 @@ syntax:
@end example @end example
@noindent @noindent
When you do this, Emacs may use the FTP program to access files on the To carry out this request, Emacs uses either the FTP program or a
remote host, or Emacs may use a remote-login program (such as remote-login program such as @command{ssh}, @command{rlogin}, or
@command{ssh}, @command{rlogin}, or @command{telnet}) to do this. @command{telnet}. You can always specify in the file name which
method to use---for example,
You can always specify in the file name which method should be used to
access the remote files, for example
@file{/ftp:@var{user}@@@var{host}:@var{filename}} uses FTP, whereas @file{/ftp:@var{user}@@@var{host}:@var{filename}} uses FTP, whereas
@file{/ssh:@var{user}@@@var{host}:@var{filename}} uses @command{ssh}. @file{/ssh:@var{user}@@@var{host}:@var{filename}} uses @command{ssh}.
When you don't specify a method in the file name, Emacs determines a When you don't specify a method in the file name, Emacs chooses
default method according to the following rules: the method as follows:
@enumerate @enumerate
@item @item
If the host name starts with @samp{ftp.} (with dot), then Emacs assumes If the host name starts with @samp{ftp.} (with dot), then Emacs uses
the @command{ftp} method. FTP.
@item @item
If the user name is @samp{ftp} or @samp{anonymous}, then Emacs assumes If the user name is @samp{ftp} or @samp{anonymous}, then Emacs uses
the @command{ftp} method. FTP.
@item @item
Otherwise, Emacs assumes the @command{ssh} method. Otherwise, Emacs uses @command{ssh}.
@end enumerate @end enumerate
@noindent @noindent

View file

@ -159,7 +159,7 @@ checker program Ispell, which is not part of Emacs.
@table @kbd @table @kbd
@item M-x flyspell-mode @item M-x flyspell-mode
Enable Flyspell mode, which highlights all misspelled words. Enable Flyspell mode, which highlights all misspelled words.
@item M-x flyspell-progmode @item M-x flyspell-prog-mode
Enable Flyspell mode for comments and strings only. Enable Flyspell mode for comments and strings only.
@item M-$ @item M-$
Check and correct spelling of the word at point (@code{ispell-word}). Check and correct spelling of the word at point (@code{ispell-word}).

View file

@ -29,10 +29,6 @@ frame.
so that you can use many of the features described in this chapter. so that you can use many of the features described in this chapter.
@xref{MS-DOS Input}, for more information. @xref{MS-DOS Input}, for more information.
@cindex MS Windows
Emacs compiled for MS Windows mostly supports the same features as
under X.
@menu @menu
* Mouse Commands:: Moving, cutting, and pasting, with the mouse. * Mouse Commands:: Moving, cutting, and pasting, with the mouse.
* Secondary Selection:: Cutting without altering point and mark. * Secondary Selection:: Cutting without altering point and mark.
@ -48,7 +44,7 @@ under X.
* Frame Parameters:: Changing the colors and other modes of frames. * Frame Parameters:: Changing the colors and other modes of frames.
* Scroll Bars:: How to enable and disable scroll bars; how to use them. * Scroll Bars:: How to enable and disable scroll bars; how to use them.
* Wheeled Mice:: Using mouse wheels for scrolling. * Wheeled Mice:: Using mouse wheels for scrolling.
* Drag and drop:: Using drag and drop to open files and insert text. * Drag and Drop:: Using drag and drop to open files and insert text.
* Menu Bars:: Enabling and disabling the menu bar. * Menu Bars:: Enabling and disabling the menu bar.
* Tool Bars:: Enabling and disabling the tool bar. * Tool Bars:: Enabling and disabling the tool bar.
* Dialog Boxes:: Controlling use of dialog boxes. * Dialog Boxes:: Controlling use of dialog boxes.
@ -64,7 +60,9 @@ under X.
The mouse commands for selecting and copying a region are mostly The mouse commands for selecting and copying a region are mostly
compatible with the @code{xterm} program. You can use the same mouse compatible with the @code{xterm} program. You can use the same mouse
commands for copying between Emacs and other X client programs. commands for copying between Emacs and other window-based programs.
Most of these commands also work in Emacs when you run it under an
@code{xterm} terminal.
@kindex DELETE @r{(and mouse selection)} @kindex DELETE @r{(and mouse selection)}
If you select a region with any of these mouse commands, and then 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}.
system for X selections, use @kbd{C-x @key{RET} x} or @kbd{C-x system for X selections, use @kbd{C-x @key{RET} x} or @kbd{C-x
@key{RET} X}. @xref{Specify Coding}. @key{RET} X}. @xref{Specify Coding}.
These cutting and pasting commands also work on MS-Windows.
@cindex primary selection @cindex primary selection
@cindex cut buffer @cindex cut buffer
@cindex selection, primary @cindex selection, primary
@ -270,7 +266,7 @@ that matters is which window you click on. @xref{Mouse Commands}.
@cindex OpenWindows @cindex OpenWindows
@cindex Gnome @cindex Gnome
As well as the primary and secondary selection types, X supports a Apart from the primary and secondary selection types, X supports a
@dfn{clipboard} selection type which is used by some applications, @dfn{clipboard} selection type which is used by some applications,
particularly under OpenWindows and Gnome. particularly under OpenWindows and Gnome.
@ -287,28 +283,42 @@ unlike most systems.
@node Mouse References @node Mouse References
@section Following References with the Mouse @section Following References with the Mouse
@kindex Mouse-1 @r{(selection)}
@kindex Mouse-2 @r{(selection)} @kindex Mouse-2 @r{(selection)}
Some Emacs buffers display lists of various sorts. These include Some read-only Emacs buffers include references you can follow, or
lists of files, of buffers, of possible completions, of matches for commands you can activate. These include names of files, of buffers,
a pattern, and so on. of possible completions, of matches for a pattern, as well as the
buttons in Help buffers and customization buffers. You can follow the
reference or activate the command by moving point to it and typing
@key{RET}. You can also do this with the mouse, using either
@kbd{Mouse-1} or @kbd{Mouse-2}.
Since yanking text into these buffers is not very useful, most of them Since yanking text into a read-only buffer is not allowed, these
define @kbd{Mouse-2} specially, as a command to use or view the item you buffers generally define @kbd{Mouse-2} to follow a reference or
click on. activate a command. For example, if you click @kbd{Mouse-2} on a file
name in a Dired buffer, you visit that file. If you click
@kbd{Mouse-2} on an error message in the @samp{*Compilation*} buffer,
you go to the source code for that error message. If you click
@kbd{Mouse-2} on a completion in the @samp{*Completions*} buffer, you
choose that completion.
For example, if you click @kbd{Mouse-2} on a file name in a Dired @vindex mouse-1-click-follows-link
buffer, you visit that file. If you click @kbd{Mouse-2} on an error However, most applications use @kbd{Mouse-1} to do this sort of
message in the @samp{*Compilation*} buffer, you go to the source code thing, so Emacs implements this too. If you click @kbd{Mouse-1}
for that error message. If you click @kbd{Mouse-2} on a completion in quickly on a reference or button, it follows or activates. If you
the @samp{*Completions*} buffer, you choose that completion. click slowly, it moves point as usual. Dragging, meaning moving the
mouse while it is held down, also has its usual behavior of setting
the region. The variable @code{mouse-1-click-follows-link} controls
whether @kbd{Mouse-1} has this behavior.
@vindex mouse-highlight @vindex mouse-highlight
You can usually tell when @kbd{Mouse-2} has this special sort of You can usually tell when @kbd{Mouse-1} and @kbd{Mouse-2} have this
meaning because the sensitive text highlights when you move the mouse special sort of meaning because the sensitive text highlights when you
over it. The variable @code{mouse-highlight} controls whether to do move the mouse over it. The variable @code{mouse-highlight} controls
this highlighting always (even when such text appears where the mouse whether to do this highlighting always (even when such text appears
already is), never, or only immediately after you move the mouse. where the mouse already is), never, or only immediately after you move
the mouse.
@node Menu Mouse Clicks @node Menu Mouse Clicks
@section Mouse Clicks for Menus @section Mouse Clicks for Menus
@ -331,16 +341,17 @@ for editing formatted text. @xref{Formatted Text}.
@item C-Mouse-3 @item C-Mouse-3
@kindex C-Mouse-3 @kindex C-Mouse-3
This menu is mode-specific. For most modes if Menu-bar mode is on, this This menu is mode-specific. For most modes if Menu-bar mode is on,
menu has the same items as all the mode-specific menu-bar menus put this menu has the same items as all the mode-specific menu-bar menus
together. Some modes may specify a different menu for this put together. Some modes may specify a different menu for this
button.@footnote{Some systems use @kbd{Mouse-3} for a mode-specific button.@footnote{Some systems use @kbd{Mouse-3} for a mode-specific
menu. We took a survey of users, and found they preferred to keep menu. We took a survey of users, and found they preferred to keep
@kbd{Mouse-3} for selecting and killing regions. Hence the decision to @kbd{Mouse-3} for selecting and killing regions. Hence the decision
use @kbd{C-Mouse-3} for this menu.} If Menu-bar mode is off, this menu to use @kbd{C-Mouse-3} for this menu. To use @kbd{Mouse-3} instead,
contains all the items which would be present in the menu bar---not just do @code{(global-set-key [mouse-3] 'mouse-popup-menubar-stuff)}.} If
the mode-specific ones---so that you can access them without having to Menu-bar mode is off, this menu contains all the items which would be
display the menu bar. present in the menu bar---not just the mode-specific ones---so that
you can access them without having to display the menu bar.
@item S-Mouse-1 @item S-Mouse-1
This menu is for specifying the frame's principal font. This menu is for specifying the frame's principal font.
@ -357,9 +368,9 @@ windows.
@table @kbd @table @kbd
@item Mouse-1 @item Mouse-1
@kindex Mouse-1 @r{(mode line)} @kindex Mouse-1 @r{(mode line)}
@kbd{Mouse-1} on a mode line selects the window above. By dragging @kbd{Mouse-1} on a mode line selects the window it belongs to. By
@kbd{Mouse-1} on the mode line, you can move it, thus changing the dragging @kbd{Mouse-1} on the mode line, you can move it, thus
height of the windows above and below. changing the height of the windows above and below.
@item Mouse-2 @item Mouse-2
@kindex Mouse-2 @r{(mode line)} @kindex Mouse-2 @r{(mode line)}
@ -367,9 +378,9 @@ height of the windows above and below.
@item Mouse-3 @item Mouse-3
@kindex Mouse-3 @r{(mode line)} @kindex Mouse-3 @r{(mode line)}
@kbd{Mouse-3} on a mode line deletes the window above. If the frame has @kbd{Mouse-3} on a mode line deletes the window it belongs to. If the
only one window, it buries the current buffer instead and switches to frame has only one window, it buries the current buffer instead, and
another buffer. switches to another buffer.
@item C-Mouse-2 @item C-Mouse-2
@kindex C-mouse-2 @r{(mode line)} @kindex C-mouse-2 @r{(mode line)}
@ -639,7 +650,6 @@ whether that feature is also in use for the same buffer name.
@node Frame Parameters @node Frame Parameters
@section Setting Frame Parameters @section Setting Frame Parameters
@cindex colors
@cindex Auto-Raise mode @cindex Auto-Raise mode
@cindex Auto-Lower mode @cindex Auto-Lower mode
@ -653,10 +663,16 @@ window management behavior of the selected frame.
@findex set-border-color @findex set-border-color
@findex auto-raise-mode @findex auto-raise-mode
@findex auto-lower-mode @findex auto-lower-mode
@cindex colors
@table @kbd @table @kbd
@item M-x set-foreground-color @key{RET} @var{color} @key{RET} @item M-x set-foreground-color @key{RET} @var{color} @key{RET}
Specify color @var{color} for the foreground of the selected frame. Specify color @var{color} for the foreground of the selected frame.
(This also changes the foreground color of the default face.) (This also changes the foreground color of the default face.) You can
specify @var{color} either by its symbolic name or by its RGB
numerical specification@footnote{
See the X Window System documentation for more details. On a typical
GNU or Unix system, the command @kbd{man 7 X} or @kbd{man -s 7 X} will
display the X manual page that explains how to specify colors.}.
@item M-x set-background-color @key{RET} @var{color} @key{RET} @item M-x set-background-color @key{RET} @var{color} @key{RET}
Specify color @var{color} for the background of the selected frame. Specify 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.
@item M-x list-colors-display @item M-x list-colors-display
Display the defined color names and show what the colors look like. Display the defined color names and show what the colors look like.
This command is somewhat slow. This command is somewhat slow. @xref{Colors, list-colors-display,
Display available colors}.
@item M-x auto-raise-mode @item M-x auto-raise-mode
Toggle whether or not the selected frame should auto-raise. Auto-raise Toggle whether or not the selected frame should auto-raise. Auto-raise
@ -798,19 +815,24 @@ generating appropriate events for Emacs.
@code{mouse-wheel-scroll-amount} determine where and by how much @code{mouse-wheel-scroll-amount} determine where and by how much
buffers are scrolled. buffers are scrolled.
@node Drag and drop @node Drag and Drop
@section Drag and drop in Emacs. @section Drag and Drop
@cindex drag and drop @cindex drag and drop
Emacs supports drag and drop so that dropping of files and text is handled.
Currently supported drag and drop protocols are XDND, Motif and the old
KDE 1.x protocol. There is no drag support yet.
When text is dropped on Emacs, Emacs inserts the text where it is dropped.
When a file is dragged from a file manager to Emacs, Emacs opens that file.
As a special case, if a file is dropped on a dired buffer the file is
copied or moved (depends on exactly how it is dragged and the application
it was dragged from) to the directory the dired buffer is displaying.
Emacs supports @dfn{drag and drop} using the mouse. For instance,
dropping text onto an Emacs frame inserts the text where it is dropped.
Dropping a file onto an Emacs frame visits that file. As a special
case, dropping the file on a Dired buffer moves or copies the file
(according to the conventions of the application it came from) into the
directory displayed in that buffer.
@vindex x-dnd-open-file-other-window
Dropping a file normally visits it in the window you drop it on. If
you prefer to visit the file in a new window in such cases, customize
the variable @code{x-dnd-open-file-other-window}.
@ignore
@c ??? To Lisp manual
@vindex x-dnd-test-function @vindex x-dnd-test-function
@vindex x-dnd-known-types @vindex x-dnd-known-types
When a user drags something from another application over Emacs, that other 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
@code{x-dnd-known-types} if you want Emacs to accept or reject drops based @code{x-dnd-known-types} if you want Emacs to accept or reject drops based
on some other criteria. on some other criteria.
@vindex x-dnd-open-file-other-window
A file is normally opened in the window it is dropped on, but if you
prefer the file to be opened in a new window you can customize the variable
@code{x-dnd-open-file-other-window}.
@vindex x-dnd-types-alist @vindex x-dnd-types-alist
If you want to change the way Emacs handles drop of different types If you want to change the way Emacs handles drop of different types
or add a new type, you shall customize @code{x-dnd-types-alist}. This or add a new type, customize @code{x-dnd-types-alist}. This requires
requires detailed knowledge of what types other applications use detailed knowledge of what types other applications use for drag and
for drag and drop. drop.
@vindex x-dnd-protocol-alist @vindex x-dnd-protocol-alist
When an URL is dropped on Emacs it may be a file, but it may also be When an URL is dropped on Emacs it may be a file, but it may also be
another URL type (ftp, http, etc.). Emacs first checks another URL type (ftp, http, etc.). Emacs first checks
@code{x-dnd-protocol-alist} to determine what to do with the URL. If there @code{x-dnd-protocol-alist} to determine what to do with the URL. If
is no match there and if @code{browse-url-browser-function} is an alist, there is no match there and if @code{browse-url-browser-function} is
Emacs looks for a match there. If no match is found the text for the URL an alist, Emacs looks for a match there. If no match is found the
is inserted. If you want to alter Emacs behaviour you can customize these text for the URL is inserted. If you want to alter Emacs behavior,
variables. you can customize these variables.
@end ignore
The drag and drop protocols XDND, Motif and the
old KDE 1.x protocol are currently supported.
@node Menu Bars @node Menu Bars
@section Menu Bars @section Menu Bars
@ -873,20 +893,20 @@ menus.
@cindex mode, Tool Bar @cindex mode, Tool Bar
@cindex icons, toolbar @cindex icons, toolbar
The @dfn{tool bar} is a line (or multiple lines) of icons at the top The @dfn{tool bar} is a line (or lines) of icons at the top of the
of the Emacs window. You can click on these icons with the mouse Emacs window, just below the menu bar. You can click on these icons
to do various jobs. with the mouse to do various jobs.
The global tool bar contains general commands. Some major modes The global tool bar contains general commands. Some major modes
define their own tool bars to replace it. A few ``special'' modes define their own tool bars to replace it. A few ``special'' modes
that are not designed for ordinary editing remove some items from the that are not designed for ordinary editing remove some items from the
global tool bar. global tool bar.
Tool bars work only on a graphical display. The tool bar uses colored Tool bars work only on a graphical display. The tool bar uses colored
XPM icons if Emacs was built with XPM support. Otherwise, the tool XPM icons if Emacs was built with XPM support. Otherwise, the tool
bar uses monochrome icons (PBM or XBM format). bar uses monochrome icons (PBM or XBM format).
You can turn display of tool bars on or off with @kbd{M-x You can turn display of tool bars on or off with @kbd{M-x
tool-bar-mode}. tool-bar-mode}.
@node Dialog Boxes @node Dialog Boxes

View file

@ -185,9 +185,9 @@ Kill back to the beginning of the sentence (@code{backward-kill-sentence}).
The commands @kbd{M-a} and @kbd{M-e} (@code{backward-sentence} and The commands @kbd{M-a} and @kbd{M-e} (@code{backward-sentence} and
@code{forward-sentence}) move to the beginning and end of the current @code{forward-sentence}) move to the beginning and end of the current
sentence, respectively. They were chosen to resemble @kbd{C-a} and sentence, respectively. They were chosen to resemble @kbd{C-a} and
@kbd{C-e}, which move to the beginning and end of a line. Unlike them, @kbd{C-e}, which move to the beginning and end of a line. Unlike
@kbd{M-a} and @kbd{M-e} if repeated or given numeric arguments move over them, @kbd{M-a} and @kbd{M-e} move over successive sentences if
successive sentences. repeated.
Moving backward over a sentence places point just before the first Moving backward over a sentence places point just before the first
character of the sentence; moving forward places point right after the character of the sentence; moving forward places point right after the
@ -238,11 +238,10 @@ set @code{sentence-end} to this value:
@end example @end example
@noindent @noindent
You should also set the variable @code{sentence-end-double-space} to This is what setting the variable @code{sentence-end-double-space} to
@code{nil} so that the fill commands expect and leave just one space at @code{nil} automatically does. But note that this makes it impossible
the end of a sentence. Note that this makes it impossible to to distinguish between periods that end sentences and those that
distinguish between periods that end sentences and those that indicate indicate abbreviations.
abbreviations.
@node Paragraphs @node Paragraphs
@section Paragraphs @section Paragraphs
@ -269,8 +268,8 @@ paragraph, while @kbd{M-@}} moves to the end of the current or next
paragraph. Blank lines and text-formatter command lines separate paragraph. Blank lines and text-formatter command lines separate
paragraphs and are not considered part of any paragraph. In Indented paragraphs and are not considered part of any paragraph. In Indented
Text mode, but not in Text mode, an indented line also starts a new Text mode, but not in Text mode, an indented line also starts a new
paragraph. (If a paragraph is preceded by a blank line, these paragraph. If there is a blank line before the paragraph, @kbd{M-@{}
commands treat that blank line as the beginning of the paragraph.) moves to the blank line, because that is convenient in practice.
In major modes for programs, paragraphs begin and end only at blank In major modes for programs, paragraphs begin and end only at blank
lines. This makes the paragraph commands continue to be useful even lines. 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
outline-mode} to switch to Outline mode as the major mode of the current outline-mode} to switch to Outline mode as the major mode of the current
buffer. buffer.
When Outline mode makes a line invisible, the line does not appear on When Outline mode makes a line invisible, the line does not appear
the screen. The screen appears exactly as if the invisible line were on the screen. The screen appears exactly as if the invisible line
deleted, except that an ellipsis (three periods in a row) appears at the were deleted, except that an ellipsis (three periods in a row) appears
end of the previous visible line (only one ellipsis no matter how many at the end of the previous visible line. (Multiple consecutive
invisible lines follow). invisible lines produce just one ellipsis.)
Editing commands that operate on lines, such as @kbd{C-n} and Editing commands that operate on lines, such as @kbd{C-n} and
@kbd{C-p}, treat the text of the invisible line as part of the previous @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}).
outlines. outlines.
* Visibility: Outline Visibility. Commands to control what is visible. * Visibility: Outline Visibility. Commands to control what is visible.
* Views: Outline Views. Outlines and multiple views. * Views: Outline Views. Outlines and multiple views.
* Foldout:: Folding editing. * Foldout:: Folding means zooming in on outlines.
@end menu @end menu
@node Outline Format @node Outline Format
@ -1900,8 +1899,11 @@ for more information about text properties.
@cindex soft newline @cindex soft newline
@cindex newlines, hard and soft @cindex newlines, hard and soft
@cindex use-hard-newlines
In formatted text, Emacs distinguishes between two different kinds of In formatted text, Emacs distinguishes between two different kinds of
newlines, @dfn{hard} newlines and @dfn{soft} newlines. newlines, @dfn{hard} newlines and @dfn{soft} newlines. (You can enable
or disable this feature separately in any buffer with the command
@code{use-hard-newlines}.)
Hard newlines are used to separate paragraphs, or items in a list, or Hard newlines are used to separate paragraphs, or items in a list, or
anywhere that there should always be a line break regardless of the anywhere that there should always be a line break regardless of the

View file

@ -60,8 +60,8 @@ only one mark position.
Each window has its own mode line, which displays the buffer name, Each window has its own mode line, which displays the buffer name,
modification status and major and minor modes of the buffer that is modification status and major and minor modes of the buffer that is
displayed in the window. @xref{Mode Line}, for full details on the mode displayed in the window. The selected window's mode line appears in a
line. different color. @xref{Mode Line}, for full details on the mode line.
@iftex @iftex
@break @break
@ -322,9 +322,14 @@ except for the echo area.
@kbd{Mouse-3}, and delete all the windows in a frame except one window @kbd{Mouse-3}, and delete all the windows in a frame except one window
by clicking on that window's mode line with @kbd{Mouse-2}. by clicking on that window's mode line with @kbd{Mouse-2}.
The easiest way to adjust window heights is with a mouse. If you You can also adjust window heights and widths with the mouse. If
press @kbd{Mouse-1} on a mode line, you can drag that mode line up or you press @kbd{Mouse-1} on a mode line, you can drag that mode line up
down, changing the heights of the windows above and below it. or down, changing the heights of the windows above and below it. If
you press it on the divider between two consecutive mode lines, you
can drag that divider right or left, changing the widths of the
windows to either side. Note that changing heights and widths with
the mouse never deletes windows, it just refuses to make any window
smaller than it can be.
@kindex C-x ^ @kindex C-x ^
@findex enlarge-window @findex enlarge-window

View file

@ -1,3 +1,82 @@
2005-02-05 Andreas Schwab <schwab@suse.de>
* sysdep.c (sys_subshell): Properly terminate execlp argument
list.
2005-02-05 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
* xselect.c (Fx_send_client_event, x_handle_dnd_message): Handle
the longs in a XClientMessageEvent correctly when long is 64 bits.
2005-02-05 Eli Zaretskii <eliz@gnu.org>
* xfaces.c (face_color_supported_p): Use HAVE_WINDOW_SYSTEM
instead of HAVE_X_WINDOWS, for non-X windowed sessions.
2005-02-03 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
* xmenu.c (menubar_selection_callback): Force out GTK buffered
events so the menu event comes after them. This is to prevent sit-for
from exiting on buffered events directly after a menu selection,
lisp code for Help => About Emacs uses sit-for.
* gtkutil.c (create_menus): Connect selection-done event instead of
the deactivate event to deactivate_cb. This will make the last
leave event come before the call to deactivate_cb, so the leave
event does not make sit-for exit after a menu selection.
2005-02-03 Kim F. Storm <storm@cua.dk>
* dispnew.c (build_frame_matrix_from_leaf_window)
[!GLYPH_DEBUG]: Fix xassert.
* xfaces.c (x_free_gc) [!GLYPH_DEBUG]: Fix xassert.
* xfns.c (unwind_create_frame) [!GLYPH_DEBUG]: Fix xassert.
2005-02-03 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
* mac.c: Use MAC_OS_X_VERSION_MAX_ALLOWED to conditionalize by
the compiling OS version.
* macfns.c (x_create_tip_frame): Likewise.
* macterm.c (mac_draw_string_common, x_make_frame_visible):
Likewise.
2005-02-03 Richard M. Stallman <rms@gnu.org>
* xterm.c (x_error_quitter): On GCC 3 and up, specify noinline.
* xdisp.c (echo_area_display): Clear echo_message_buffer.
* buffer.c (Fbury_buffer): Doc fix.
2005-02-02 Steven Tamm <steventamm@mac.com>
* macfns.c (unwind_create_frame): Fixing compile error due to
xassert being uncondition, but predicate is.
* dispnew.c (update_window): Fixing compile error due to
xassert being uncondition, but predicate is.
2005-02-02 Miles Bader <miles@gnu.org>
* dispextern.h (xassert): Enable unconditionally.
2005-02-02 Kim F. Storm <storm@cua.dk>
* undo.c (Fprimitive_undo): Fix dummy apply undo entry.
2005-02-02 Kenichi Handa <handa@m17n.org>
* casefiddle.c (casify_object): Enable changing characters of
different byte length.
(casify_region): Fix loop condition, args to replace_range_2, and
update opoint_byte.
* insdel.c (replace_range_2): Fix bugs in adjusting markers and
point.
2005-02-01 Kim F. Storm <storm@cua.dk> 2005-02-01 Kim F. Storm <storm@cua.dk>
* xdisp.c (back_to_previous_visible_line_start): Reset iterator * xdisp.c (back_to_previous_visible_line_start): Reset iterator

View file

@ -1953,6 +1953,7 @@ DEFUN ("bury-buffer", Fbury_buffer, Sbury_buffer, 0, 1, "",
doc: /* Put BUFFER at the end of the list of all buffers. doc: /* Put BUFFER at the end of the list of all buffers.
There it is the least likely candidate for `other-buffer' to return; There it is the least likely candidate for `other-buffer' to return;
thus, the least likely buffer for \\[switch-to-buffer] to select by default. thus, the least likely buffer for \\[switch-to-buffer] to select by default.
You can specify a buffer name as BUFFER, or an actual buffer object.
If BUFFER is nil or omitted, bury the current buffer. If BUFFER is nil or omitted, bury the current buffer.
Also, if BUFFER is nil or omitted, remove the current buffer from the Also, if BUFFER is nil or omitted, remove the current buffer from the
selected window if it is displayed there. */) selected window if it is displayed there. */)

View file

@ -1,5 +1,5 @@
/* GNU Emacs case conversion functions. /* GNU Emacs case conversion functions.
Copyright (C) 1985,94,97,98,99, 2001, 2002, 2004 Copyright (C) 1985,94,97,98,99, 2001, 2002, 2004, 2005
Free Software Foundation, Inc. Free Software Foundation, Inc.
This file is part of GNU Emacs. This file is part of GNU Emacs.

View file

@ -1,5 +1,5 @@
/* Interface definitions for display code. /* Interface definitions for display code.
Copyright (C) 1985,93,94,97,98,99, 2000,01,02,03, 2004 Copyright (C) 1985,93,94,97,98,99, 2000,01,02,03, 2004, 2005
Free Software Foundation, Inc. Free Software Foundation, Inc.
This file is part of GNU Emacs. This file is part of GNU Emacs.
@ -123,12 +123,13 @@ enum window_part
#if GLYPH_DEBUG #if GLYPH_DEBUG
#define IF_DEBUG(X) X #define IF_DEBUG(X) X
#define xassert(X) do {if (!(X)) abort ();} while (0)
#else #else
#define IF_DEBUG(X) (void) 0 #define IF_DEBUG(X) (void) 0
#define xassert(X) (void) 0
#endif #endif
/* Maybe move this inside the above `#ifdef GLYPH_DEBUG' for release. */
#define xassert(X) do {if (!(X)) abort ();} while (0)
/* Macro for displaying traces of redisplay. If Emacs was compiled /* Macro for displaying traces of redisplay. If Emacs was compiled
with GLYPH_DEBUG != 0, the variable trace_redisplay_p can be set to with GLYPH_DEBUG != 0, the variable trace_redisplay_p can be set to
a non-zero value in debugging sessions to activate traces. */ a non-zero value in debugging sessions to activate traces. */

View file

@ -1,6 +1,6 @@
/* Updating of data structures for redisplay. /* Updating of data structures for redisplay.
Copyright (C) 1985,86,87,88,93,94,95,97,98,1999,2000,01,02,03,04 Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1997, 1998, 1999,
Free Software Foundation, Inc. 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs. This file is part of GNU Emacs.
@ -2763,6 +2763,7 @@ build_frame_matrix_from_leaf_window (frame_matrix, w)
SET_CHAR_GLYPH_FROM_GLYPH (*border, right_border_glyph); SET_CHAR_GLYPH_FROM_GLYPH (*border, right_border_glyph);
} }
#if GLYPH_DEBUG
/* Window row window_y must be a slice of frame row /* Window row window_y must be a slice of frame row
frame_y. */ frame_y. */
xassert (glyph_row_slice_p (window_row, frame_row)); xassert (glyph_row_slice_p (window_row, frame_row));
@ -2770,7 +2771,6 @@ build_frame_matrix_from_leaf_window (frame_matrix, w)
/* If rows are in sync, we don't have to copy glyphs because /* If rows are in sync, we don't have to copy glyphs because
frame and window share glyphs. */ frame and window share glyphs. */
#if GLYPH_DEBUG
strcpy (w->current_matrix->method, w->desired_matrix->method); strcpy (w->current_matrix->method, w->desired_matrix->method);
add_window_display_history (w, w->current_matrix->method, 0); add_window_display_history (w, w->current_matrix->method, 0);
#endif #endif
@ -4051,11 +4051,11 @@ update_window (w, force_p)
extern Lisp_Object do_mouse_tracking; extern Lisp_Object do_mouse_tracking;
#if GLYPH_DEBUG #if GLYPH_DEBUG
struct frame *f = XFRAME (WINDOW_FRAME (w)); struct frame *f = XFRAME (WINDOW_FRAME (w));
#endif
/* Check that W's frame doesn't have glyph matrices. */ /* Check that W's frame doesn't have glyph matrices. */
xassert (FRAME_WINDOW_P (f)); xassert (FRAME_WINDOW_P (f));
xassert (updating_frame != NULL); xassert (updating_frame != NULL);
#endif
/* Check pending input the first time so that we can quickly return. */ /* Check pending input the first time so that we can quickly return. */
if (redisplay_dont_pause) if (redisplay_dont_pause)

View file

@ -1905,7 +1905,7 @@ create_menus (data, f, select_cb, deactivate_cb, highlight_cb,
if (deactivate_cb) if (deactivate_cb)
g_signal_connect (G_OBJECT (wmenu), g_signal_connect (G_OBJECT (wmenu),
"deactivate", deactivate_cb, 0); "selection-done", deactivate_cb, 0);
g_signal_connect (G_OBJECT (wmenu), g_signal_connect (G_OBJECT (wmenu),
"grab-notify", G_CALLBACK (menu_grab_callback), 0); "grab-notify", G_CALLBACK (menu_grab_callback), 0);

View file

@ -1,5 +1,5 @@
/* Buffer insertion/deletion and gap motion for GNU Emacs. /* Buffer insertion/deletion and gap motion for GNU Emacs.
Copyright (C) 1985, 86,93,94,95,97,98, 1999, 2000, 01, 2003 Copyright (C) 1985, 86,93,94,95,97,98, 1999, 2000, 01, 2003, 2005
Free Software Foundation, Inc. Free Software Foundation, Inc.
This file is part of GNU Emacs. This file is part of GNU Emacs.
@ -1778,17 +1778,21 @@ replace_range_2 (from, from_byte, to, to_byte, ins, inschars, insbytes, markers)
/* Adjust markers for the deletion and the insertion. */ /* Adjust markers for the deletion and the insertion. */
if (markers if (markers
&& ! (nchars_del == 1 && inschars == 1)) && ! (nchars_del == 1 && inschars == 1 && nbytes_del == insbytes))
adjust_markers_for_replace (from, from_byte, nchars_del, nbytes_del, adjust_markers_for_replace (from, from_byte, nchars_del, nbytes_del,
inschars, insbytes); inschars, insbytes);
offset_intervals (current_buffer, from, inschars - nchars_del); offset_intervals (current_buffer, from, inschars - nchars_del);
/* Relocate point as if it were a marker. */ /* Relocate point as if it were a marker. */
if (from < PT && nchars_del != inschars) if (from < PT && (nchars_del != inschars || nbytes_del != insbytes))
adjust_point ((from + inschars - (PT < to ? PT : to)), {
(from_byte + insbytes if (PT < to)
- (PT_BYTE < to_byte ? PT_BYTE : to_byte))); /* PT was within the deleted text. Move it to FROM. */
adjust_point (from - PT, from_byte - PT_BYTE);
else
adjust_point (inschars - nchars_del, insbytes - nbytes_del);
}
if (insbytes == 0) if (insbytes == 0)
evaporate_overlays (from); evaporate_overlays (from);

View file

@ -2858,7 +2858,7 @@ select_and_poll_event (n, rfds, wfds, efds, timeout)
return r; return r;
} }
#ifndef MAC_OS_X_VERSION_10_2 #if MAC_OS_X_VERSION_MAX_ALLOWED < 1020
#undef SELECT_INVALIDATE_CFSOCKET #undef SELECT_INVALIDATE_CFSOCKET
#endif #endif

View file

@ -2527,9 +2527,11 @@ unwind_create_frame (frame)
x_free_frame_resources (f); x_free_frame_resources (f);
#if GLYPH_DEBUG
/* Check that reference counts are indeed correct. */ /* Check that reference counts are indeed correct. */
xassert (dpyinfo->reference_count == dpyinfo_refcount); xassert (dpyinfo->reference_count == dpyinfo_refcount);
xassert (dpyinfo->image_cache->refcount == image_cache_refcount); xassert (dpyinfo->image_cache->refcount == image_cache_refcount);
#endif
return Qt; return Qt;
} }
@ -3880,7 +3882,7 @@ x_create_tip_frame (dpyinfo, parms, text)
SetRect (&r, 0, 0, 1, 1); SetRect (&r, 0, 0, 1, 1);
#if TARGET_API_MAC_CARBON #if TARGET_API_MAC_CARBON
if (CreateNewWindow (kHelpWindowClass, if (CreateNewWindow (kHelpWindowClass,
#ifdef MAC_OS_X_VERSION_10_2 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
kWindowIgnoreClicksAttribute | kWindowIgnoreClicksAttribute |
#endif #endif
kWindowNoUpdatesAttribute | kWindowNoUpdatesAttribute |

View file

@ -731,7 +731,7 @@ mac_draw_string_common (display, w, gc, x, y, buf, nchars, mode,
int nchars, mode, bytes_per_char; int nchars, mode, bytes_per_char;
{ {
SetPortWindowPort (w); SetPortWindowPort (w);
#ifdef MAC_OS_X_VERSION_10_2 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
UInt32 textFlags, savedFlags; UInt32 textFlags, savedFlags;
if (!NILP(Vmac_use_core_graphics)) { if (!NILP(Vmac_use_core_graphics)) {
textFlags = kQDUseCGTextRendering; textFlags = kQDUseCGTextRendering;
@ -748,7 +748,7 @@ mac_draw_string_common (display, w, gc, x, y, buf, nchars, mode,
MoveTo (x, y); MoveTo (x, y);
DrawText (buf, 0, nchars * bytes_per_char); DrawText (buf, 0, nchars * bytes_per_char);
#ifdef MAC_OS_X_VERSION_10_2 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
if (!NILP(Vmac_use_core_graphics)) if (!NILP(Vmac_use_core_graphics))
SwapQDTextFlags(savedFlags); SwapQDTextFlags(savedFlags);
#endif #endif
@ -5468,7 +5468,7 @@ x_make_frame_visible (f)
else else
RepositionWindow (FRAME_MAC_WINDOW (f), RepositionWindow (FRAME_MAC_WINDOW (f),
FRAME_MAC_WINDOW (sf), FRAME_MAC_WINDOW (sf),
#ifdef MAC_OS_X_VERSION_10_2 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
kWindowCascadeStartAtParentWindowScreen kWindowCascadeStartAtParentWindowScreen
#else #else
kWindowCascadeOnParentWindowScreen kWindowCascadeOnParentWindowScreen

View file

@ -1,6 +1,6 @@
/* Interfaces to system-dependent kernel and library entries. /* Interfaces to system-dependent kernel and library entries.
Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1999, 2000, 2001, Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1999, 2000, 2001,
2003, 2004 Free Software Foundation, Inc. 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs. This file is part of GNU Emacs.
@ -869,7 +869,7 @@ sys_subshell ()
if (pid == -1) if (pid == -1)
write (1, "Can't execute subshell", 22); write (1, "Can't execute subshell", 22);
#else /* not WINDOWSNT */ #else /* not WINDOWSNT */
execlp (sh, sh, 0); execlp (sh, sh, (char *) 0);
write (1, "Can't execute subshell", 22); write (1, "Can't execute subshell", 22);
_exit (1); _exit (1);
#endif /* not WINDOWSNT */ #endif /* not WINDOWSNT */

View file

@ -560,12 +560,13 @@ Return what remains of the list. */)
} }
cdr = Fcdr (cdr); cdr = Fcdr (cdr);
apply1 (car, cdr); apply1 (car, cdr);
/* Make sure this produces at least one undo entry, /* Make sure this produces at least one undo entry,
so the test in `undo' for continuing an undo series so the test in `undo' for continuing an undo series
will work right. */ will work right. */
if (EQ (oldlist, current_buffer->undo_list)) if (EQ (oldlist, current_buffer->undo_list))
current_buffer->undo_list current_buffer->undo_list
= Fcons (list2 (Qcdr, Qnil), current_buffer->undo_list); = Fcons (list3 (Qapply, Qcdr, Qnil), current_buffer->undo_list);
} }
else if (STRINGP (car) && INTEGERP (cdr)) else if (STRINGP (car) && INTEGERP (cdr))
{ {

View file

@ -8200,6 +8200,8 @@ echo_area_display (update_frame_p)
/* Last displayed message is now the current message. */ /* Last displayed message is now the current message. */
echo_area_buffer[1] = echo_area_buffer[0]; echo_area_buffer[1] = echo_area_buffer[0];
/* Inform read_char that we're not echoing. */
echo_message_buffer = Qnil;
/* Prevent redisplay optimization in redisplay_internal by resetting /* Prevent redisplay optimization in redisplay_internal by resetting
this_line_start_pos. This is done because the mini-buffer now this_line_start_pos. This is done because the mini-buffer now

View file

@ -1,5 +1,5 @@
/* xfaces.c -- "Face" primitives. /* xfaces.c -- "Face" primitives.
Copyright (C) 1993, 1994, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Copyright (C) 1993, 1994, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation. Free Software Foundation.
This file is part of GNU Emacs. This file is part of GNU Emacs.
@ -738,7 +738,7 @@ x_free_gc (f, gc)
GC gc; GC gc;
{ {
BLOCK_INPUT; BLOCK_INPUT;
xassert (--ngcs >= 0); IF_DEBUG (xassert (--ngcs >= 0));
XFreeGC (FRAME_X_DISPLAY (f), gc); XFreeGC (FRAME_X_DISPLAY (f), gc);
UNBLOCK_INPUT; UNBLOCK_INPUT;
} }
@ -771,7 +771,7 @@ x_free_gc (f, gc)
GC gc; GC gc;
{ {
BLOCK_INPUT; BLOCK_INPUT;
xassert (--ngcs >= 0); IF_DEBUG (xassert (--ngcs >= 0));
xfree (gc); xfree (gc);
UNBLOCK_INPUT; UNBLOCK_INPUT;
} }
@ -1511,7 +1511,7 @@ face_color_supported_p (f, color_name, background_p)
XSETFRAME (frame, f); XSETFRAME (frame, f);
return return
#ifdef HAVE_X_WINDOWS #ifdef HAVE_WINDOW_SYSTEM
FRAME_WINDOW_P (f) FRAME_WINDOW_P (f)
? (!NILP (Fxw_display_color_p (frame)) ? (!NILP (Fxw_display_color_p (frame))
|| xstricmp (color_name, "black") == 0 || xstricmp (color_name, "black") == 0

View file

@ -1,6 +1,6 @@
/* Functions for the X window system. /* Functions for the X window system.
Copyright (C) 1989, 92, 93, 94, 95, 96, 97, 98, 99, 2000,01,02,03,04 Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
Free Software Foundation. 2001, 2002, 2003, 2004, 2005 Free Software Foundation.
This file is part of GNU Emacs. This file is part of GNU Emacs.
@ -2843,9 +2843,11 @@ unwind_create_frame (frame)
x_free_frame_resources (f); x_free_frame_resources (f);
#if GLYPH_DEBUG
/* Check that reference counts are indeed correct. */ /* Check that reference counts are indeed correct. */
xassert (dpyinfo->reference_count == dpyinfo_refcount); xassert (dpyinfo->reference_count == dpyinfo_refcount);
xassert (dpyinfo->image_cache->refcount == image_cache_refcount); xassert (dpyinfo->image_cache->refcount == image_cache_refcount);
#endif
return Qt; return Qt;
} }

View file

@ -1445,9 +1445,9 @@ menu_highlight_callback (widget, id, call_data)
/* Find the menu selection and store it in the keyboard buffer. /* Find the menu selection and store it in the keyboard buffer.
F is the frame the menu is on. F is the frame the menu is on.
MENU_BAR_ITEMS_USED is the length of VECTOR. MENU_BAR_ITEMS_USED is the length of VECTOR.
VECTOR is an array of menu events for the whole menu. VECTOR is an array of menu events for the whole menu. */
*/
void static void
find_and_call_menu_selection (f, menu_bar_items_used, vector, client_data) find_and_call_menu_selection (f, menu_bar_items_used, vector, client_data)
FRAME_PTR f; FRAME_PTR f;
EMACS_INT menu_bar_items_used; EMACS_INT menu_bar_items_used;
@ -1554,6 +1554,17 @@ menubar_selection_callback (widget, client_data)
if (! cb_data || ! cb_data->cl_data || ! cb_data->cl_data->f) if (! cb_data || ! cb_data->cl_data || ! cb_data->cl_data->f)
return; return;
/* When a menu is popped down, X generates a focus event (i.e. focus
goes back to the frame below the menu). Since GTK buffers events,
we force it out here before the menu selection event. Otherwise
sit-for will exit at once if the focus event follows the menu selection
event. */
BLOCK_INPUT;
while (gtk_events_pending ())
gtk_main_iteration ();
UNBLOCK_INPUT;
find_and_call_menu_selection (cb_data->cl_data->f, find_and_call_menu_selection (cb_data->cl_data->f,
cb_data->cl_data->menu_bar_items_used, cb_data->cl_data->menu_bar_items_used,
cb_data->cl_data->menu_bar_vector, cb_data->cl_data->menu_bar_vector,

View file

@ -2536,7 +2536,7 @@ x_property_data_to_lisp (f, data, type, format, size)
data, size*format/8, type, format); data, size*format/8, type, format);
} }
/* Get the mouse position frame relative coordinates. */ /* Get the mouse position in frame relative coordinates. */
static void static void
mouse_position_for_drop (f, x, y) mouse_position_for_drop (f, x, y)
@ -2635,16 +2635,31 @@ x_handle_dnd_message (f, event, dpyinfo, bufp)
Lisp_Object frame; Lisp_Object frame;
unsigned long size = (8*sizeof (event->data))/event->format; unsigned long size = (8*sizeof (event->data))/event->format;
int x, y; int x, y;
unsigned char *data = (unsigned char *) event->data.b;
int idata[5];
XSETFRAME (frame, f); XSETFRAME (frame, f);
/* On a 64 bit machine, the event->data.l array members are 64 bits (long),
but the x_property_data_to_lisp (or rather selection_data_to_lisp_data)
function expects them to be of size int (i.e. 32). So to be able to
use that function, put the data in the form it expects if format is 32. */
if (event->format == 32 && event->format < BITS_PER_LONG)
{
int i;
for (i = 0; i < 5; ++i) /* There are only 5 longs in a ClientMessage. */
idata[i] = (int) event->data.l[i];
data = (unsigned char *) idata;
}
vec = Fmake_vector (make_number (4), Qnil); vec = Fmake_vector (make_number (4), Qnil);
AREF (vec, 0) = SYMBOL_NAME (x_atom_to_symbol (FRAME_X_DISPLAY (f), AREF (vec, 0) = SYMBOL_NAME (x_atom_to_symbol (FRAME_X_DISPLAY (f),
event->message_type)); event->message_type));
AREF (vec, 1) = frame; AREF (vec, 1) = frame;
AREF (vec, 2) = make_number (event->format); AREF (vec, 2) = make_number (event->format);
AREF (vec, 3) = x_property_data_to_lisp (f, AREF (vec, 3) = x_property_data_to_lisp (f,
event->data.b, data,
event->message_type, event->message_type,
event->format, event->format,
size); size);
@ -2697,6 +2712,8 @@ are ignored. */)
struct frame *f = check_x_frame (from); struct frame *f = check_x_frame (from);
int count; int count;
int to_root; int to_root;
int idata[5];
void *data;
CHECK_STRING (message_type); CHECK_STRING (message_type);
CHECK_NUMBER (format); CHECK_NUMBER (format);
@ -2756,9 +2773,30 @@ are ignored. */)
when sending to the root window. */ when sending to the root window. */
event.xclient.window = to_root ? FRAME_OUTER_WINDOW (f) : wdest; event.xclient.window = to_root ? FRAME_OUTER_WINDOW (f) : wdest;
memset (event.xclient.data.b, 0, sizeof (event.xclient.data.b));
x_fill_property_data (dpyinfo->display, values, event.xclient.data.b, if (event.xclient.format == 32 && event.xclient.format < BITS_PER_LONG)
event.xclient.format); {
/* x_fill_property_data expects data to hold 32 bit values when
format == 32, but on a 64 bit machine long is 64 bits.
event.xclient.l is an array of long, so we must compensate. */
memset (idata, 0, sizeof (idata));
data = idata;
}
else
{
memset (event.xclient.data.b, 0, sizeof (event.xclient.data.b));
data = event.xclient.data.b;
}
x_fill_property_data (dpyinfo->display, values, data, event.xclient.format);
if (data == idata)
{
int i;
for (i = 0; i < 5; ++i) /* There are only 5 longs in a ClientMessage. */
event.xclient.data.l[i] = (long) idata[i];
}
/* If event mask is 0 the event is sent to the client that created /* If event mask is 0 the event is sent to the client that created
the destination window. But if we are sending to the root window, the destination window. But if we are sending to the root window,

View file

@ -7777,10 +7777,18 @@ x_error_handler (display, error)
It kills all frames on the display that we got the error for. It kills all frames on the display that we got the error for.
If that was the only one, it prints an error message and kills Emacs. */ If that was the only one, it prints an error message and kills Emacs. */
/* It is after x_error_handler so that it won't get inlined in /* .gdbinit puts a breakpoint here, so make sure it is not inlined. */
x_error_handler. */
static void #if __GNUC__ >= 3 /* On GCC 3.0 we might get a warning. */
#define NO_INLINE __attribute__((noinline))
#else
#define NO_INLINE
#endif
/* On older GCC versions, just putting x_error_quitter
after x_error_handler prevents inlining into the former. */
static void NO_INLINE
x_error_quitter (display, error) x_error_quitter (display, error)
Display *display; Display *display;
XErrorEvent *error; XErrorEvent *error;