Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-61
Merge from emacs--cvs-trunk--0 Patches applied: * emacs--cvs-trunk--0 (patch 353-357) - Update from CVS
This commit is contained in:
commit
d113efea8e
77 changed files with 3187 additions and 4103 deletions
10
ChangeLog
10
ChangeLog
|
@ -1,3 +1,13 @@
|
||||||
|
2005-06-08 Steven Tamm <steventamm@mac.com>
|
||||||
|
|
||||||
|
* configure.in: Support Darwin/MacOSX on Intel
|
||||||
|
* configure: Regenerate.
|
||||||
|
|
||||||
|
2005-06-06 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
|
||||||
|
|
||||||
|
* configure.in (HAVE_CANCELMENUTRACKING): New test.
|
||||||
|
* configure: Regenerate.
|
||||||
|
|
||||||
2005-05-11 J,Ai(Br,At(Bme Marant <jmarant@marant.org>
|
2005-05-11 J,Ai(Br,At(Bme Marant <jmarant@marant.org>
|
||||||
|
|
||||||
* configure.in: Add --enable-locallisppath.
|
* configure.in: Add --enable-locallisppath.
|
||||||
|
|
12
configure.in
12
configure.in
|
@ -1080,6 +1080,9 @@ dnl see the `changequote' comment above.
|
||||||
machine=intel386
|
machine=intel386
|
||||||
case "${canonical}" in
|
case "${canonical}" in
|
||||||
*-cygwin ) opsys=cygwin ;;
|
*-cygwin ) opsys=cygwin ;;
|
||||||
|
*-darwin ) opsys=darwin
|
||||||
|
CPP="${CC-cc} -E -no-cpp-precomp"
|
||||||
|
;;
|
||||||
*-lynxos* ) opsys=lynxos ;;
|
*-lynxos* ) opsys=lynxos ;;
|
||||||
*-isc1.* | *-isc2.[01]* ) opsys=386-ix ;;
|
*-isc1.* | *-isc2.[01]* ) opsys=386-ix ;;
|
||||||
*-isc2.2* ) opsys=isc2-2 ;;
|
*-isc2.2* ) opsys=isc2-2 ;;
|
||||||
|
@ -2345,6 +2348,15 @@ if test "${HAVE_CARBON}" = "yes"; then
|
||||||
fi
|
fi
|
||||||
# We also have mouse menus.
|
# We also have mouse menus.
|
||||||
HAVE_MENUS=yes
|
HAVE_MENUS=yes
|
||||||
|
|
||||||
|
tmp_CFLAGS="$CFLAGS"
|
||||||
|
CFLAGS="$CFLAGS -framework Carbon"
|
||||||
|
AC_CHECK_FUNC(CancelMenuTracking, have_cmt=yes, have_cmt=no)
|
||||||
|
if test "$have_cmt" = yes; then
|
||||||
|
AC_DEFINE(HAVE_CANCELMENUTRACKING, 1,
|
||||||
|
[Define to 1 if CancelMenuTracking is available (Mac OSX).])
|
||||||
|
fi
|
||||||
|
CFLAGS="$tmp_CFLAGS"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
### Use session management (-lSM -lICE) if available
|
### Use session management (-lSM -lICE) if available
|
||||||
|
|
|
@ -1,3 +1,15 @@
|
||||||
|
2005-06-08 Kim F. Storm <storm@cua.dk>
|
||||||
|
|
||||||
|
* PROBLEMS: Linux kernel 2.6.10 may corrupt process output.
|
||||||
|
Warn that using CVS+SSH may corrupt files, include work-around.
|
||||||
|
|
||||||
|
2005-06-06 Juri Linkov <juri@jurta.org>
|
||||||
|
|
||||||
|
* TUTORIAL.cs, TUTORIAL.sk: Change NBSP to space.
|
||||||
|
|
||||||
|
* TUTORIAL.ro: Change NBSP to space. Move coding cookie from the
|
||||||
|
second line to Local Variables. Fix title line.
|
||||||
|
|
||||||
2005-05-30 Miles Bader <miles@gnu.org>
|
2005-05-30 Miles Bader <miles@gnu.org>
|
||||||
|
|
||||||
* emacs-buffer.gdb: Remove RCS keywords.
|
* emacs-buffer.gdb: Remove RCS keywords.
|
||||||
|
|
26
etc/NEWS
26
etc/NEWS
|
@ -873,6 +873,21 @@ appears in.
|
||||||
*** The variable `cursor-in-non-selected-windows' can now be set to any
|
*** The variable `cursor-in-non-selected-windows' can now be set to any
|
||||||
of the recognized cursor types.
|
of the recognized cursor types.
|
||||||
|
|
||||||
|
** New faces:
|
||||||
|
|
||||||
|
+++
|
||||||
|
*** `mode-line-highlight' is the standard face indicating mouse sensitive
|
||||||
|
elements on mode-line (and header-line) like `highlight' face on text
|
||||||
|
areas.
|
||||||
|
|
||||||
|
+++
|
||||||
|
*** `shadow' face defines the appearance of the "shadowed" text, i.e.
|
||||||
|
the text which should be less noticeable than the surrounding text.
|
||||||
|
This can be achieved by using shades of grey in contrast with either
|
||||||
|
black or white default foreground color. This generic shadow face
|
||||||
|
allows customization of the appearance of shadowed text in one place,
|
||||||
|
so package-specific faces can inherit from it.
|
||||||
|
|
||||||
** Font-Lock changes:
|
** Font-Lock changes:
|
||||||
|
|
||||||
+++
|
+++
|
||||||
|
@ -3588,6 +3603,14 @@ properties from surrounding text.
|
||||||
element, if the last match was on a buffer. `set-match-data'
|
element, if the last match was on a buffer. `set-match-data'
|
||||||
accepts such a list for restoring the match state.
|
accepts such a list for restoring the match state.
|
||||||
|
|
||||||
|
+++
|
||||||
|
*** Functions `match-data' and `set-match-data' now have an optional
|
||||||
|
argument `reseat'. When non-nil, all markers in the match data list
|
||||||
|
passed to these function will be reseated to point to nowhere, and if
|
||||||
|
the value of `reseat' is `evaporate', the markers are put onto the
|
||||||
|
free list. Note that no other references to those markers must exist
|
||||||
|
if `evaporate' is specified for the `reseat' argument.
|
||||||
|
|
||||||
+++
|
+++
|
||||||
*** The default value of `sentence-end' is now defined using the new
|
*** The default value of `sentence-end' is now defined using the new
|
||||||
variable `sentence-end-without-space', which contains such characters
|
variable `sentence-end-without-space', which contains such characters
|
||||||
|
@ -4872,9 +4895,6 @@ line.
|
||||||
|
|
||||||
+++
|
+++
|
||||||
*** Mouse-face on mode-line (and header-line) is now supported.
|
*** Mouse-face on mode-line (and header-line) is now supported.
|
||||||
`mode-line-highlight' is the standard face indicating mouse sensitive
|
|
||||||
elements on mode-line (and header-line) like `highlight' face on text
|
|
||||||
areas.
|
|
||||||
|
|
||||||
** Menu manipulation changes:
|
** Menu manipulation changes:
|
||||||
|
|
||||||
|
|
18
etc/PROBLEMS
18
etc/PROBLEMS
|
@ -1583,6 +1583,24 @@ global-font-lock-mode RET" or by customizing the variable
|
||||||
|
|
||||||
** GNU/Linux
|
** GNU/Linux
|
||||||
|
|
||||||
|
*** GNU/Linux: Process output is corrupted.
|
||||||
|
|
||||||
|
There is a bug in Linux kernel 2.6.10 PTYs that can cause emacs to
|
||||||
|
read corrupted process output.
|
||||||
|
|
||||||
|
*** GNU/Linux: Remote access to CVS with SSH causes file corruption.
|
||||||
|
|
||||||
|
If you access a remote CVS repository via SSH, files may be corrupted
|
||||||
|
due to bad interaction between CVS, SSH, and libc.
|
||||||
|
|
||||||
|
To fix the problem, save the following script into a file, make it
|
||||||
|
executable, and set CVS_RSH environment variable to the file name of
|
||||||
|
the script:
|
||||||
|
|
||||||
|
#!/bin/bash
|
||||||
|
exec 2> >(exec cat >&2 2>/dev/null)
|
||||||
|
exec ssh "$@"
|
||||||
|
|
||||||
*** GNU/Linux: On Linux-based GNU systems using libc versions 5.4.19 through
|
*** GNU/Linux: On Linux-based GNU systems using libc versions 5.4.19 through
|
||||||
5.4.22, Emacs crashes at startup with a segmentation fault.
|
5.4.22, Emacs crashes at startup with a segmentation fault.
|
||||||
|
|
||||||
|
|
|
@ -489,7 +489,7 @@ vyvol
|
||||||
C-x C-f Vyhledání souboru
|
C-x C-f Vyhledání souboru
|
||||||
|
|
||||||
Emacs se vás zeptá na jméno souboru. Jméno souboru, které píšete, se
|
Emacs se vás zeptá na jméno souboru. Jméno souboru, které píšete, se
|
||||||
objevuje ve spodním řádku obrazovky, který se v této situaci nazývá
|
objevuje ve spodním řádku obrazovky, který se v této situaci nazývá
|
||||||
minibuffer. Pro editaci jména souboru můžete používat obvyklé editační
|
minibuffer. Pro editaci jména souboru můžete používat obvyklé editační
|
||||||
příkazy Emacsu.
|
příkazy Emacsu.
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,8 @@
|
||||||
tutorialului de Emacs.
|
Tutorialului de Emacs. A se citi sfârşitul pentru condiţii.
|
||||||
Copyright (c) 1998 Free Software Foundation -*-coding: latin-2;-*-
|
Copyright (c) 1998 Free Software Foundation
|
||||||
Traducere din engleză de Tudor Hulubei <tudor@gnu.org>.
|
Traducere din engleză de Tudor Hulubei <tudor@gnu.org>.
|
||||||
Mulţumiri Aidei Hulubei <aida@chang.pub.ro> pentru corecturi şi sugestii.
|
Mulţumiri Aidei Hulubei <aida@chang.pub.ro> pentru corecturi şi sugestii.
|
||||||
|
|
||||||
A se citi sfârşitul pentru condiţii.
|
|
||||||
|
|
||||||
Această versiune a fost produsă plecând de la versiunea în limba
|
Această versiune a fost produsă plecând de la versiunea în limba
|
||||||
engleză, care este
|
engleză, care este
|
||||||
Copyright (c) 1985 Free Software Foundation, Inc.
|
Copyright (c) 1985 Free Software Foundation, Inc.
|
||||||
|
@ -1112,4 +1110,8 @@ spirit. Citi
|
||||||
ale Emacs-ului. Contribuiţi la eliminarea obstrucţionismului software
|
ale Emacs-ului. Contribuiţi la eliminarea obstrucţionismului software
|
||||||
folosind, scriind şi distribuind free software!
|
folosind, scriind şi distribuind free software!
|
||||||
|
|
||||||
|
;;; Local Variables:
|
||||||
|
;;; coding: iso-latin-2
|
||||||
|
;;; End:
|
||||||
|
|
||||||
;;; arch-tag: dcf252cf-bd67-4f8d-a440-1ec4b8dbfd70
|
;;; arch-tag: dcf252cf-bd67-4f8d-a440-1ec4b8dbfd70
|
||||||
|
|
|
@ -501,7 +501,7 @@ vyvol
|
||||||
C-x C-f Vyhµadanie súboru
|
C-x C-f Vyhµadanie súboru
|
||||||
|
|
||||||
Emacs sa Vás opýta na meno súboru. Meno súboru, ktoré pí¹ete, sa
|
Emacs sa Vás opýta na meno súboru. Meno súboru, ktoré pí¹ete, sa
|
||||||
objavuje v spodnom riadku obrazovky, ktorý sa v tejto situácii nazýva
|
objavuje v spodnom riadku obrazovky, ktorý sa v tejto situácii nazýva
|
||||||
minibuffer. Pre editáciu mena súboru mô¾ete pou¾íva» obvyklé editaèné
|
minibuffer. Pre editáciu mena súboru mô¾ete pou¾íva» obvyklé editaèné
|
||||||
príkazy Emacsu.
|
príkazy Emacsu.
|
||||||
|
|
||||||
|
|
|
@ -1,86 +1,86 @@
|
||||||
This file contains the list of translators and maintainers of the
|
This file contains the list of translators and maintainers of the
|
||||||
tutorial.
|
tutorial.
|
||||||
|
|
||||||
* TUTORIAL.bg:
|
* TUTORIAL.bg:
|
||||||
Author: Ognyan Kulev <ogi@fmi.uni-sofia.bg>
|
Author: Ognyan Kulev <ogi@fmi.uni-sofia.bg>
|
||||||
Maintainer: Ognyan Kulev <ogi@fmi.uni-sofia.bg>
|
Maintainer: Ognyan Kulev <ogi@fmi.uni-sofia.bg>
|
||||||
|
|
||||||
* TUTORIAL.cn:
|
* TUTORIAL.cn:
|
||||||
Author: Chao-Hong Liu <chliu@gnu.org>
|
Author: Chao-Hong Liu <chliu@gnu.org>
|
||||||
Maintainer: Chao-Hong Liu <chliu@gnu.org>
|
Maintainer: Chao-Hong Liu <chliu@gnu.org>
|
||||||
|
|
||||||
* TUTORIAL.cs:
|
* TUTORIAL.cs:
|
||||||
Author: Milan Zamazal <pdm@zamazal.org>
|
Author: Milan Zamazal <pdm@zamazal.org>
|
||||||
Pavel Janík <Pavel@Janik.cz>
|
Pavel Janík <Pavel@Janik.cz>
|
||||||
Maintainer: Milan Zamazal <pdm@zamazal.org>
|
Maintainer: Milan Zamazal <pdm@zamazal.org>
|
||||||
Pavel Janík <Pavel@Janik.cz>
|
Pavel Janík <Pavel@Janik.cz>
|
||||||
|
|
||||||
* TUTORIAL.de:
|
* TUTORIAL.de:
|
||||||
Author: Werner Lemberg <wl@gnu.org>
|
Author: Werner Lemberg <wl@gnu.org>
|
||||||
Maintainer: Werner Lemberg <wl@gnu.org>
|
Maintainer: Werner Lemberg <wl@gnu.org>
|
||||||
|
|
||||||
* TUTORIAL.es:
|
* TUTORIAL.es:
|
||||||
Author: Rafael Sepúlveda <drs@gnulinux.org.mx>
|
Author: Rafael Sepúlveda <drs@gnulinux.org.mx>
|
||||||
Maintainer: Rafael Sepúlveda <drs@gnulinux.org.mx>
|
Maintainer: Rafael Sepúlveda <drs@gnulinux.org.mx>
|
||||||
|
|
||||||
* TUTORIAL.fr:
|
* TUTORIAL.fr:
|
||||||
Author: Éric Jacoboni <jaco@teaser.fr>
|
Author: Éric Jacoboni <jaco@teaser.fr>
|
||||||
Maintainer: Éric Jacoboni <jaco@teaser.fr>
|
Maintainer: Éric Jacoboni <jaco@teaser.fr>
|
||||||
|
|
||||||
* TUTORIAL.it:
|
* TUTORIAL.it:
|
||||||
Author: Alfredo Finelli <alfredofnl@tiscali.it>
|
Author: Alfredo Finelli <alfredofnl@tiscali.it>
|
||||||
Italian GNU Translation Group <tp@lists.linux.it>
|
Italian GNU Translation Group <tp@lists.linux.it>
|
||||||
Maintainer: Alfredo Finelli <alfredofnl@tiscali.it>
|
Maintainer: Alfredo Finelli <alfredofnl@tiscali.it>
|
||||||
Italian GNU Translation Group <tp@lists.linux.it>
|
Italian GNU Translation Group <tp@lists.linux.it>
|
||||||
|
|
||||||
* TUTORIAL.ja:
|
* TUTORIAL.ja:
|
||||||
Author: Kenichi Handa <handa@m17n.org>
|
Author: Kenichi Handa <handa@m17n.org>
|
||||||
Maintainer: Kenichi Handa <handa@m17n.org>
|
Maintainer: Kenichi Handa <handa@m17n.org>
|
||||||
|
|
||||||
* TUTORIAL.ko:
|
* TUTORIAL.ko:
|
||||||
Author: Koaunghi Un <koaunghi@ling.cnu.ac.kr>
|
Author: Koaunghi Un <koaunghi@ling.cnu.ac.kr>
|
||||||
Maintainer: Maintainer needed.
|
Maintainer: Maintainer needed.
|
||||||
|
|
||||||
* TUTORIAL.nl:
|
* TUTORIAL.nl:
|
||||||
Author: Pieter Schoenmakers <tiggr@tiggr.net>
|
Author: Pieter Schoenmakers <tiggr@tiggr.net>
|
||||||
Maintainer: Pieter Schoenmakers <tiggr@tiggr.net>
|
Maintainer: Pieter Schoenmakers <tiggr@tiggr.net>
|
||||||
|
|
||||||
* TUTORIAL.pl:
|
* TUTORIAL.pl:
|
||||||
Author: Beatę Wierzchołowską <beataw@orient.uw.edu.pl>
|
Author: Beatę Wierzchołowską <beataw@orient.uw.edu.pl>
|
||||||
Janusz S. Bien <jsbien@mail.uw.edu.pl>
|
Janusz S. Bien <jsbien@mail.uw.edu.pl>
|
||||||
Maintainer: Beatę Wierzchołowską <beataw@orient.uw.edu.pl>
|
Maintainer: Beatę Wierzchołowską <beataw@orient.uw.edu.pl>
|
||||||
Janusz S. Bien <jsbien@mail.uw.edu.pl>
|
Janusz S. Bien <jsbien@mail.uw.edu.pl>
|
||||||
|
|
||||||
* TUTORIAL.pt_BR:
|
* TUTORIAL.pt_BR:
|
||||||
Author: Marcelo Toledo <marcelo@gnu.org>
|
Author: Marcelo Toledo <marcelo@gnu.org>
|
||||||
Maintainer: Marcelo Toledo <marcelo@gnu.org>
|
Maintainer: Marcelo Toledo <marcelo@gnu.org>
|
||||||
|
|
||||||
* TUTORIAL.ro:
|
* TUTORIAL.ro:
|
||||||
Author: Tudor Hulubei <tudor@gnu.org>
|
Author: Tudor Hulubei <tudor@gnu.org>
|
||||||
Maintainer: Maintainer needed.
|
Maintainer: Maintainer needed.
|
||||||
|
|
||||||
* TUTORIAL.ru:
|
* TUTORIAL.ru:
|
||||||
Author: Alex Ott <ottalex@narod.ru>
|
Author: Alex Ott <ottalex@narod.ru>
|
||||||
Maintainer: Alex Ott <ottalex@narod.ru>
|
Maintainer: Alex Ott <ottalex@narod.ru>
|
||||||
|
|
||||||
* TUTORIAL.sk:
|
* TUTORIAL.sk:
|
||||||
Author: Miroslav Vaško <vasko@debian.cz>
|
Author: Miroslav Vaško <vasko@debian.cz>
|
||||||
Pavel Janík <Pavel@Janik.cz>
|
Pavel Janík <Pavel@Janik.cz>
|
||||||
Maintainer: Pavel Janík <Pavel@Janik.cz>
|
Maintainer: Pavel Janík <Pavel@Janik.cz>
|
||||||
|
|
||||||
* TUTORIAL.sl:
|
* TUTORIAL.sl:
|
||||||
Author: Primož Peterlin <primoz.peterlin@biofiz.mf.uni-lj.si>
|
Author: Primož Peterlin <primoz.peterlin@biofiz.mf.uni-lj.si>
|
||||||
Maintainer: Primož Peterlin <primoz.peterlin@biofiz.mf.uni-lj.si>
|
Maintainer: Primož Peterlin <primoz.peterlin@biofiz.mf.uni-lj.si>
|
||||||
|
|
||||||
* TUTORIAL.sv:
|
* TUTORIAL.sv:
|
||||||
Author: Mats Lidell <matsl@contactor.se>
|
Author: Mats Lidell <matsl@contactor.se>
|
||||||
Maintainer: Mats Lidell <matsl@contactor.se>
|
Maintainer: Mats Lidell <matsl@contactor.se>
|
||||||
|
|
||||||
* TUTORIAL.th:
|
* TUTORIAL.th:
|
||||||
Author: Virach Sornlertlamvanich <virach@nectec.or.th>
|
Author: Virach Sornlertlamvanich <virach@nectec.or.th>
|
||||||
Maintainer: Virach Sornlertlamvanich <virach@nectec.or.th>
|
Maintainer: Virach Sornlertlamvanich <virach@nectec.or.th>
|
||||||
|
|
||||||
* TUTORIAL.zh:
|
* TUTORIAL.zh:
|
||||||
Author: Chao-Hong Liu <chliu@gnu.org>
|
Author: Chao-Hong Liu <chliu@gnu.org>
|
||||||
Maintainer: Chao-Hong Liu <chliu@gnu.org>
|
Maintainer: Chao-Hong Liu <chliu@gnu.org>
|
||||||
|
|
||||||
|
|
217
lisp/ChangeLog
217
lisp/ChangeLog
|
@ -1,3 +1,203 @@
|
||||||
|
2005-06-09 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||||
|
|
||||||
|
* emacs-lisp/debug.el (debugger-will-be-back): New var.
|
||||||
|
(debug): Use it.
|
||||||
|
(debugger-step-through, debugger-continue, debugger-jump)
|
||||||
|
(debugger-return-value): Set it when needed.
|
||||||
|
(debugger-make-xrefs, debugger-frame, debugger-frame-clear):
|
||||||
|
Use inhibit-read-only.
|
||||||
|
|
||||||
|
2005-06-09 Juanma Barranquero <lekktu@gmail.com>
|
||||||
|
|
||||||
|
* thumbs.el: Don't set `auto-image-file-mode'. Do not create the
|
||||||
|
thumbnails directory on loading.
|
||||||
|
(thumbs-conversion-program): Use `eq' to check the system type,
|
||||||
|
not `equal'.
|
||||||
|
(thumbs-temp-dir): Initialize to `temporary-file-directory',
|
||||||
|
not "/tmp". Fix docstring.
|
||||||
|
(thumbs-thumbsdir): New function to return the thumbnails
|
||||||
|
directory, creating it if needed.
|
||||||
|
(thumbs-cleanup-thumbsdir, thumbs-thumbname): Use it.
|
||||||
|
(thumbs-temp-file): Delete variable and make it into a function.
|
||||||
|
(thumbs-resize-image, thumbs-modify-image): Use it.
|
||||||
|
(thumbs-kill-buffer): Simplify.
|
||||||
|
(thumbs-gensym): Defalias or duplicate CL `gensym'.
|
||||||
|
(thumbs-resize-image, thumbs-resize-interactive): Fix typos in
|
||||||
|
docstrings.
|
||||||
|
|
||||||
|
2005-06-09 Kim F. Storm <storm@cua.dk>
|
||||||
|
|
||||||
|
* subr.el (save-match-data): Add RESEAT arg `evaporate' to
|
||||||
|
set-match-data to free markers in match-data.
|
||||||
|
|
||||||
|
* replace.el (replace-match-data): Pass RESEAT arg `t' to
|
||||||
|
match-data to unchain markers in match-data.
|
||||||
|
|
||||||
|
2005-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||||
|
|
||||||
|
* emacs-lisp/debug.el (debug): Don't iconify if we know we'll re-enter
|
||||||
|
the debugger immediately anyway. Undo the 2005-06-06 change, rendered
|
||||||
|
unnecessary now.
|
||||||
|
|
||||||
|
2005-06-08 Richard M. Stallman <rms@gnu.org>
|
||||||
|
|
||||||
|
* emacs-lisp/easy-mmode.el (define-minor-mode): If BODY is empty,
|
||||||
|
give the variable a doc string that doesn't say don't set it directly.
|
||||||
|
|
||||||
|
* textmodes/ispell.el (ispell-check-version):
|
||||||
|
Use match-string-no-properties.
|
||||||
|
(ispell-region, ispell-buffer-local-parsing, ispell-buffer-local-dict)
|
||||||
|
(ispell-buffer-local-words): Likewise.
|
||||||
|
|
||||||
|
* progmodes/make-mode.el (makefile-shell-face): Make this a no-op
|
||||||
|
except on terminals with enough colors to really display it.
|
||||||
|
(makefile-dependency-regex): Delete spurious `bb'.
|
||||||
|
|
||||||
|
* faces.el (escape-glyph): Use blue once again in last case.
|
||||||
|
(no-break-space): Redefine so that it isn't invisible on a tty.
|
||||||
|
|
||||||
|
2005-06-08 Kim F. Storm <storm@cua.dk>
|
||||||
|
|
||||||
|
* ido.el (ido-read-file-name): Fallback to read-file-name on C-f
|
||||||
|
also when reading directory name.
|
||||||
|
|
||||||
|
2005-06-08 Lute Kamstra <lute@gnu.org>
|
||||||
|
|
||||||
|
* textmodes/flyspell.el (flyspell-mode): Use define-minor-mode.
|
||||||
|
(flyspell-mode-line-string): Remove autoload cookie.
|
||||||
|
(flyspell-mode): Remove defvar.
|
||||||
|
|
||||||
|
2005-06-07 Lute Kamstra <lute@gnu.org>
|
||||||
|
|
||||||
|
* textmodes/org.el (org-run-mode-hooks): New function.
|
||||||
|
(org-agenda-mode): Use it.
|
||||||
|
|
||||||
|
2005-06-07 David McCabe <davemccabe@gmail.com> (tiny change)
|
||||||
|
|
||||||
|
* emacs-lisp/lisp-mode.el (defstruct): Set `doc-string-elt' property.
|
||||||
|
|
||||||
|
2005-06-06 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||||
|
|
||||||
|
* international/iso-cvt.el (iso-sgml2iso-trans-tab): Add NBSP.
|
||||||
|
|
||||||
|
2005-06-06 Luc Teirlinck <teirllm@auburn.edu>
|
||||||
|
|
||||||
|
* font-lock.el (font-lock-add-keywords): Doc fix.
|
||||||
|
|
||||||
|
2005-06-06 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||||
|
|
||||||
|
* textmodes/tex-mode.el (tex-guess-mode): Add RequirePackage.
|
||||||
|
(tex-compile-default): In the absence of any history, use the order in
|
||||||
|
tex-compile-alist to choose the preferred command.
|
||||||
|
(tex-compile-commands): Reorder a bit.
|
||||||
|
|
||||||
|
* textmodes/flyspell.el (flyspell-auto-correct-binding)
|
||||||
|
(flyspell-incorrect-face, flyspell-duplicate-face):
|
||||||
|
Use (X)Emacs-agnostic code.
|
||||||
|
(flyspell-mode-map): Don't overwrite at each load. Remove code
|
||||||
|
redundant with the subsequent add-minor-mode. Merge Emacs and
|
||||||
|
XEmacs code.
|
||||||
|
(flyspell-word): Minor simplification.
|
||||||
|
(flyspell-math-tex-command-p): Quieten the byte-compiler.
|
||||||
|
(flyspell-external-point-words): Remove unused vars `size' and `start'.
|
||||||
|
(flyspell-do-correct): Rename from flyspell-xemacs-correct.
|
||||||
|
Merge the corresponding Emacs code.
|
||||||
|
(flyspell-correct-word, flyspell-xemacs-popup): Use flyspell-do-correct.
|
||||||
|
|
||||||
|
* emacs-lisp/debug.el (debug): Don't bury the buffer unless it's in
|
||||||
|
a dedicated window.
|
||||||
|
|
||||||
|
* international/latexenc.el (latexenc-find-file-coding-system):
|
||||||
|
Undo part of last patch, to turn off a compiler warning.
|
||||||
|
|
||||||
|
2005-06-06 Juri Linkov <juri@jurta.org>
|
||||||
|
|
||||||
|
* tmm.el (tmm-inactive, tmm-remove-inactive-mouse-face):
|
||||||
|
Rename `tmm-inactive-face' to `tmm-inactive'.
|
||||||
|
|
||||||
|
2005-06-06 Matt Hodges <MPHodges@member.fsf.org>
|
||||||
|
|
||||||
|
* iswitchb.el: Rename faces.
|
||||||
|
|
||||||
|
2005-06-06 Kim F. Storm <storm@cua.dk>
|
||||||
|
|
||||||
|
* emulation/cua-base.el (cua-rectangle, cua-rectangle-noselect)
|
||||||
|
(cua-global-mark): Remove -face suffix from face names.
|
||||||
|
|
||||||
|
* emulation/cua-gmrk.el (cua--init-global-mark):
|
||||||
|
Remove cua-global-mark face setup.
|
||||||
|
|
||||||
|
2005-06-06 Richard M. Stallman <rms@gnu.org>
|
||||||
|
|
||||||
|
* progmodes/make-mode.el (makefile-dependency-regex): Handle whitespace
|
||||||
|
just like other allowed characters.
|
||||||
|
(makefile-match-dependency): Exclude leading and training whitespace
|
||||||
|
from the range of regexp subexp 1.
|
||||||
|
(makefile-macroassign-regex): Don't try to match the body,
|
||||||
|
just the name of the macro being defined.
|
||||||
|
|
||||||
|
* info.el (Info-read-node-name-2): New function.
|
||||||
|
(Info-read-node-name-1): Use that.
|
||||||
|
Add a completion-base-size-function property.
|
||||||
|
|
||||||
|
* simple.el (completion-setup-function): Look for
|
||||||
|
completion-base-size-function property of
|
||||||
|
minibuffer-completion-table.
|
||||||
|
|
||||||
|
* files.el (locate-file-completion): Doc fix.
|
||||||
|
|
||||||
|
* printing.el: Don't call pr-update-menus; user must do that.
|
||||||
|
|
||||||
|
* emacs-lisp/debug.el (debugger-window): New variable.
|
||||||
|
(debug): Use debugger-window if it is set and still alive.
|
||||||
|
Record debugger-window for next entry.
|
||||||
|
|
||||||
|
* mail/supercite.el (sc-mail-glom-frame): Mark as risky.
|
||||||
|
|
||||||
|
2005-06-06 Matthias F,Av(Brste <slashdevslashnull@gmx.net>
|
||||||
|
|
||||||
|
* files.el (hack-local-variables-confirm): New arg FLAG-TO-CHECK.
|
||||||
|
(hack-one-local-variable, hack-local-variables)
|
||||||
|
(hack-local-variables-prop-line): Pass that arg.
|
||||||
|
|
||||||
|
2005-06-06 Kim F. Storm <storm@cua.dk>
|
||||||
|
|
||||||
|
* ido.el (ido-first-match, ido-only-match, ido-subdir)
|
||||||
|
(ido-indicator): Remove -face suffix from face names.
|
||||||
|
|
||||||
|
2005-06-06 Juri Linkov <juri@jurta.org>
|
||||||
|
|
||||||
|
* font-lock.el (font-lock-regexp-backslash)
|
||||||
|
(font-lock-regexp-backslash-construct): New faces.
|
||||||
|
(lisp-font-lock-keywords-2): Use new faces. Match `?:' only
|
||||||
|
after `('. Add `while-no-input' to control structures.
|
||||||
|
|
||||||
|
* faces.el (no-break-space, shadow): New faces.
|
||||||
|
(escape-glyph): Use less loud colors pink2 and red4.
|
||||||
|
|
||||||
|
* diff-mode.el (diff-context-face)
|
||||||
|
* dired.el (dired-ignored)
|
||||||
|
* rfn-eshadow.el (file-name-shadow)
|
||||||
|
* tmm.el (tmm-inactive-face): Inherit from `shadow' face.
|
||||||
|
|
||||||
|
* info.el (Info-title-1-face): Use green instead of yellow because
|
||||||
|
bold yellow is not readable on light backgrounds.
|
||||||
|
|
||||||
|
* progmodes/compile.el (compilation-start): Move `erase-buffer' up
|
||||||
|
before selecting the desired mode to not spend time fontifying
|
||||||
|
old contents.
|
||||||
|
|
||||||
|
2005-06-06 Juanma Barranquero <lekktu@gmail.com>
|
||||||
|
|
||||||
|
* thumbs.el (thumbs-thumbsdir-max-size, thumbs-image-resizing-step)
|
||||||
|
(thumbs-thumbsdir-auto-clean): Fix typos in docstrings.
|
||||||
|
|
||||||
|
* ps-print.el (ps-default-fg, ps-default-bg):
|
||||||
|
Fix typos in docstrings.
|
||||||
|
|
||||||
|
* isearchb.el (isearchb): Don't pass a spurious second argument to
|
||||||
|
`iswitchb-completions'.
|
||||||
|
|
||||||
2005-06-05 Nick Roberts <nickrob@snap.net.nz>
|
2005-06-05 Nick Roberts <nickrob@snap.net.nz>
|
||||||
|
|
||||||
* progmodes/gdb-ui.el (gdb-info-locals-handler): Use window point
|
* progmodes/gdb-ui.el (gdb-info-locals-handler): Use window point
|
||||||
|
@ -5,16 +205,16 @@
|
||||||
(gdb-find-file-hook): Add doc string.
|
(gdb-find-file-hook): Add doc string.
|
||||||
|
|
||||||
* progmodes/gud.el (gdb, gud-menu-map): Add command to evaluate
|
* progmodes/gud.el (gdb, gud-menu-map): Add command to evaluate
|
||||||
C dereferenced pointer expression.
|
C dereferenced pointer expression.
|
||||||
(gud-tool-bar-map): Put it on the tool bar. Re-order icons.
|
(gud-tool-bar-map): Put it on the tool bar. Re-order icons.
|
||||||
|
|
||||||
* toolbar/gud-pstar.xpm, toolbar/gud-pstar.pbm: New files.
|
* toolbar/gud-pstar.xpm, toolbar/gud-pstar.pbm: New files.
|
||||||
|
|
||||||
* toolbar/gud-break.xpm, toolbar/gud-cont.xpm, toolbar/gud-down.xpm,
|
* toolbar/gud-break.xpm, toolbar/gud-cont.xpm, toolbar/gud-down.xpm
|
||||||
toolbar/gud-finish.xpm, toolbar/gud-ni.xpm, toolbar/gud-n.xpm,
|
* toolbar/gud-finish.xpm, toolbar/gud-ni.xpm, toolbar/gud-n.xpm
|
||||||
toolbar/gud-print.xpm, toolbar/gud-remove.xpm, toolbar/gud-run.xpm,
|
* toolbar/gud-print.xpm, toolbar/gud-remove.xpm, toolbar/gud-run.xpm
|
||||||
toolbar/gud-si.xpm, toolbar/gud-s.xpm, toolbar/gud-until.xpm,
|
* toolbar/gud-si.xpm, toolbar/gud-s.xpm, toolbar/gud-until.xpm
|
||||||
toolbar/gud-up.xpm, toolbar/gud-watch.xpm:
|
* toolbar/gud-up.xpm, toolbar/gud-watch.xpm:
|
||||||
Make background transparent.
|
Make background transparent.
|
||||||
|
|
||||||
2005-06-04 Luc Teirlinck <teirllm@auburn.edu>
|
2005-06-04 Luc Teirlinck <teirllm@auburn.edu>
|
||||||
|
@ -44,7 +244,7 @@
|
||||||
(iswitchb-current-match-face, iswitchb-virtual-matches-face)
|
(iswitchb-current-match-face, iswitchb-virtual-matches-face)
|
||||||
(iswitchb-invalid-regexp-face): New faces.
|
(iswitchb-invalid-regexp-face): New faces.
|
||||||
(iswitchb-completions): Use them.
|
(iswitchb-completions): Use them.
|
||||||
(iswitchb-use-faces): Renamed from iswitchb-use-fonts, which is
|
(iswitchb-use-faces): Rename from iswitchb-use-fonts, which is
|
||||||
now marked as an obsolete alias.
|
now marked as an obsolete alias.
|
||||||
(iswitchb-read-buffer): Remove check for bound font variables.
|
(iswitchb-read-buffer): Remove check for bound font variables.
|
||||||
(iswitchb-invalid-regexp): New free variable.
|
(iswitchb-invalid-regexp): New free variable.
|
||||||
|
@ -151,8 +351,7 @@
|
||||||
(gdb-info-breakpoints-custom, gdb-delete-breakpoint)
|
(gdb-info-breakpoints-custom, gdb-delete-breakpoint)
|
||||||
(gdb-goto-breakpoint, gdb-source-info, gdb-get-location)
|
(gdb-goto-breakpoint, gdb-source-info, gdb-get-location)
|
||||||
(gdb-assembler-custom): Improve regexps.
|
(gdb-assembler-custom): Improve regexps.
|
||||||
(def-gdb-auto-update-handler): Use window point to preserve
|
(def-gdb-auto-update-handler): Use window point to preserve point.
|
||||||
point.
|
|
||||||
|
|
||||||
2005-05-31 Stefan Monnier <monnier@iro.umontreal.ca>
|
2005-05-31 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||||
|
|
||||||
|
|
|
@ -243,10 +243,7 @@ when editing big diffs)."
|
||||||
(defvar diff-function-face 'diff-function-face)
|
(defvar diff-function-face 'diff-function-face)
|
||||||
|
|
||||||
(defface diff-context-face
|
(defface diff-context-face
|
||||||
'((((class color) (background light))
|
'((t :inherit shadow))
|
||||||
:foreground "grey50")
|
|
||||||
(((class color) (background dark))
|
|
||||||
:foreground "grey70"))
|
|
||||||
"`diff-mode' face used to highlight context and other side-information."
|
"`diff-mode' face used to highlight context and other side-information."
|
||||||
:group 'diff-mode)
|
:group 'diff-mode)
|
||||||
(defvar diff-context-face 'diff-context-face)
|
(defvar diff-context-face 'diff-context-face)
|
||||||
|
|
|
@ -356,7 +356,7 @@ Subexpression 2 must end right before the \\n or \\r.")
|
||||||
"Face name used for symbolic links.")
|
"Face name used for symbolic links.")
|
||||||
|
|
||||||
(defface dired-ignored
|
(defface dired-ignored
|
||||||
'((t (:inherit font-lock-string-face)))
|
'((t (:inherit shadow)))
|
||||||
"Face used for files suffixed with `completion-ignored-extensions'."
|
"Face used for files suffixed with `completion-ignored-extensions'."
|
||||||
:group 'dired-faces
|
:group 'dired-faces
|
||||||
:version "22.1")
|
:version "22.1")
|
||||||
|
|
|
@ -88,6 +88,8 @@ This is to optimize `debugger-make-xrefs'.")
|
||||||
(defvar debugger-outer-standard-output)
|
(defvar debugger-outer-standard-output)
|
||||||
(defvar debugger-outer-inhibit-redisplay)
|
(defvar debugger-outer-inhibit-redisplay)
|
||||||
(defvar debugger-outer-cursor-in-echo-area)
|
(defvar debugger-outer-cursor-in-echo-area)
|
||||||
|
(defvar debugger-will-be-back nil
|
||||||
|
"Non-nil if we expect to get back in the debugger soon.")
|
||||||
|
|
||||||
(defvar inhibit-debug-on-entry nil
|
(defvar inhibit-debug-on-entry nil
|
||||||
"Non-nil means that debug-on-entry is disabled.")
|
"Non-nil means that debug-on-entry is disabled.")
|
||||||
|
@ -97,6 +99,8 @@ This is to optimize `debugger-make-xrefs'.")
|
||||||
This variable is used by `debugger-jump', `debugger-step-through',
|
This variable is used by `debugger-jump', `debugger-step-through',
|
||||||
and `debugger-reenable' to temporarily disable debug-on-entry.")
|
and `debugger-reenable' to temporarily disable debug-on-entry.")
|
||||||
|
|
||||||
|
(defvar inhibit-trace) ;Not yet implemented.
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(setq debugger 'debug)
|
(setq debugger 'debug)
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
|
@ -121,6 +125,7 @@ first will be printed into the backtrace buffer."
|
||||||
(get-buffer-create "*Backtrace*")))
|
(get-buffer-create "*Backtrace*")))
|
||||||
(debugger-old-buffer (current-buffer))
|
(debugger-old-buffer (current-buffer))
|
||||||
(debugger-step-after-exit nil)
|
(debugger-step-after-exit nil)
|
||||||
|
(debugger-will-be-back nil)
|
||||||
;; Don't keep reading from an executing kbd macro!
|
;; Don't keep reading from an executing kbd macro!
|
||||||
(executing-kbd-macro nil)
|
(executing-kbd-macro nil)
|
||||||
;; Save the outer values of these vars for the `e' command
|
;; Save the outer values of these vars for the `e' command
|
||||||
|
@ -178,7 +183,7 @@ first will be printed into the backtrace buffer."
|
||||||
;; Place an extra debug-on-exit for macro's.
|
;; Place an extra debug-on-exit for macro's.
|
||||||
(when (eq 'lambda (car-safe (cadr (backtrace-frame 4))))
|
(when (eq 'lambda (car-safe (cadr (backtrace-frame 4))))
|
||||||
(backtrace-debug 5 t)))
|
(backtrace-debug 5 t)))
|
||||||
(pop-to-buffer debugger-buffer)
|
(pop-to-buffer debugger-buffer)
|
||||||
(debugger-mode)
|
(debugger-mode)
|
||||||
(debugger-setup-buffer debugger-args)
|
(debugger-setup-buffer debugger-args)
|
||||||
(when noninteractive
|
(when noninteractive
|
||||||
|
@ -210,12 +215,23 @@ first will be printed into the backtrace buffer."
|
||||||
;; Still visible despite the save-window-excursion? Maybe it
|
;; Still visible despite the save-window-excursion? Maybe it
|
||||||
;; it's in a pop-up frame. It would be annoying to delete and
|
;; it's in a pop-up frame. It would be annoying to delete and
|
||||||
;; recreate it every time the debugger stops, so instead we'll
|
;; recreate it every time the debugger stops, so instead we'll
|
||||||
;; erase it and hide it but keep it alive.
|
;; erase it (and maybe hide it) but keep it alive.
|
||||||
(with-current-buffer debugger-buffer
|
(with-current-buffer debugger-buffer
|
||||||
(erase-buffer)
|
(erase-buffer)
|
||||||
(fundamental-mode)
|
(fundamental-mode)
|
||||||
(with-selected-window (get-buffer-window debugger-buffer 0)
|
(with-selected-window (get-buffer-window debugger-buffer 0)
|
||||||
(bury-buffer)))
|
(when (and (window-dedicated-p (selected-window))
|
||||||
|
(not debugger-will-be-back))
|
||||||
|
;; If the window is not dedicated, burying the buffer
|
||||||
|
;; will mean that the frame created for it is left
|
||||||
|
;; around showing some random buffer, and next time we
|
||||||
|
;; pop to the debugger buffer we'll create yet
|
||||||
|
;; another frame.
|
||||||
|
;; If debugger-will-be-back is non-nil, the frame
|
||||||
|
;; would need to be de-iconified anyway immediately
|
||||||
|
;; after when we re-enter the debugger, so iconifying it
|
||||||
|
;; here would cause flashing.
|
||||||
|
(bury-buffer))))
|
||||||
(kill-buffer debugger-buffer))
|
(kill-buffer debugger-buffer))
|
||||||
(set-match-data debugger-outer-match-data)))
|
(set-match-data debugger-outer-match-data)))
|
||||||
;; Put into effect the modified values of these variables
|
;; Put into effect the modified values of these variables
|
||||||
|
@ -307,7 +323,7 @@ That buffer should be current already."
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(set-buffer (or buffer (current-buffer)))
|
(set-buffer (or buffer (current-buffer)))
|
||||||
(setq buffer (current-buffer))
|
(setq buffer (current-buffer))
|
||||||
(let ((buffer-read-only nil)
|
(let ((inhibit-read-only t)
|
||||||
(old-end (point-min)) (new-end (point-min)))
|
(old-end (point-min)) (new-end (point-min)))
|
||||||
;; If we saved an old backtrace, find the common part
|
;; If we saved an old backtrace, find the common part
|
||||||
;; between the new and the old.
|
;; between the new and the old.
|
||||||
|
@ -377,6 +393,7 @@ Enter another debugger on next entry to eval, apply or funcall."
|
||||||
(interactive)
|
(interactive)
|
||||||
(setq debugger-step-after-exit t)
|
(setq debugger-step-after-exit t)
|
||||||
(setq debugger-jumping-flag t)
|
(setq debugger-jumping-flag t)
|
||||||
|
(setq debugger-will-be-back t)
|
||||||
(add-hook 'post-command-hook 'debugger-reenable)
|
(add-hook 'post-command-hook 'debugger-reenable)
|
||||||
(message "Proceeding, will debug on next eval or call.")
|
(message "Proceeding, will debug on next eval or call.")
|
||||||
(exit-recursive-edit))
|
(exit-recursive-edit))
|
||||||
|
@ -387,6 +404,12 @@ Enter another debugger on next entry to eval, apply or funcall."
|
||||||
(unless debugger-may-continue
|
(unless debugger-may-continue
|
||||||
(error "Cannot continue"))
|
(error "Cannot continue"))
|
||||||
(message "Continuing.")
|
(message "Continuing.")
|
||||||
|
(save-excursion
|
||||||
|
;; Check to see if we've flagged some frame for debug-on-exit, in which
|
||||||
|
;; case we'll probably come back to the debugger soon.
|
||||||
|
(goto-char (point-min))
|
||||||
|
(if (re-search-forward "^\\* " nil t)
|
||||||
|
(setq debugger-will-be-back t)))
|
||||||
(exit-recursive-edit))
|
(exit-recursive-edit))
|
||||||
|
|
||||||
(defun debugger-return-value (val)
|
(defun debugger-return-value (val)
|
||||||
|
@ -397,6 +420,12 @@ will be used, such as in a debug on exit from a frame."
|
||||||
(setq debugger-value val)
|
(setq debugger-value val)
|
||||||
(princ "Returning " t)
|
(princ "Returning " t)
|
||||||
(prin1 debugger-value)
|
(prin1 debugger-value)
|
||||||
|
(save-excursion
|
||||||
|
;; Check to see if we've flagged some frame for debug-on-exit, in which
|
||||||
|
;; case we'll probably come back to the debugger soon.
|
||||||
|
(goto-char (point-min))
|
||||||
|
(if (re-search-forward "^\\* " nil t)
|
||||||
|
(setq debugger-will-be-back t)))
|
||||||
(exit-recursive-edit))
|
(exit-recursive-edit))
|
||||||
|
|
||||||
(defun debugger-jump ()
|
(defun debugger-jump ()
|
||||||
|
@ -406,6 +435,7 @@ will be used, such as in a debug on exit from a frame."
|
||||||
(setq debugger-jumping-flag t)
|
(setq debugger-jumping-flag t)
|
||||||
(add-hook 'post-command-hook 'debugger-reenable)
|
(add-hook 'post-command-hook 'debugger-reenable)
|
||||||
(message "Continuing through this frame")
|
(message "Continuing through this frame")
|
||||||
|
(setq debugger-will-be-back t)
|
||||||
(exit-recursive-edit))
|
(exit-recursive-edit))
|
||||||
|
|
||||||
(defun debugger-reenable ()
|
(defun debugger-reenable ()
|
||||||
|
@ -454,7 +484,7 @@ Applies to the frame whose line point is on in the backtrace."
|
||||||
(beginning-of-line)
|
(beginning-of-line)
|
||||||
(backtrace-debug (debugger-frame-number) t)
|
(backtrace-debug (debugger-frame-number) t)
|
||||||
(if (= (following-char) ? )
|
(if (= (following-char) ? )
|
||||||
(let ((buffer-read-only nil))
|
(let ((inhibit-read-only t))
|
||||||
(delete-char 1)
|
(delete-char 1)
|
||||||
(insert ?*)))
|
(insert ?*)))
|
||||||
(beginning-of-line))
|
(beginning-of-line))
|
||||||
|
@ -470,7 +500,7 @@ Applies to the frame whose line point is on in the backtrace."
|
||||||
(beginning-of-line)
|
(beginning-of-line)
|
||||||
(backtrace-debug (debugger-frame-number) nil)
|
(backtrace-debug (debugger-frame-number) nil)
|
||||||
(if (= (following-char) ?*)
|
(if (= (following-char) ?*)
|
||||||
(let ((buffer-read-only nil))
|
(let ((inhibit-read-only t))
|
||||||
(delete-char 1)
|
(delete-char 1)
|
||||||
(insert ? )))
|
(insert ? )))
|
||||||
(beginning-of-line))
|
(beginning-of-line))
|
||||||
|
|
|
@ -183,13 +183,18 @@ Use the command `%s' to change this variable." pretty-name mode))
|
||||||
|
|
||||||
(let ((curfile (or (and (boundp 'byte-compile-current-file)
|
(let ((curfile (or (and (boundp 'byte-compile-current-file)
|
||||||
byte-compile-current-file)
|
byte-compile-current-file)
|
||||||
load-file-name)))
|
load-file-name))
|
||||||
`(defcustom ,mode ,init-value
|
base-doc-string)
|
||||||
,(format "Non-nil if %s is enabled.
|
(setq base-doc-string "Non-nil if %s is enabled.
|
||||||
See the command `%s' for a description of this minor-mode.
|
See the command `%s' for a description of this minor-mode.
|
||||||
Setting this variable directly does not take effect;
|
Setting this variable directly does not take effect;
|
||||||
use either \\[customize] or the function `%s'."
|
use either \\[customize] or the function `%s'.")
|
||||||
pretty-name mode mode)
|
(if (null body)
|
||||||
|
(setq base-doc-string "Non-nil if %s is enabled.
|
||||||
|
See the command `%s' for a description of this minor-mode."))
|
||||||
|
|
||||||
|
`(defcustom ,mode ,init-value
|
||||||
|
,(format base-doc-string pretty-name mode mode)
|
||||||
:set 'custom-set-minor-mode
|
:set 'custom-set-minor-mode
|
||||||
:initialize 'custom-initialize-default
|
:initialize 'custom-initialize-default
|
||||||
,@group
|
,@group
|
||||||
|
|
|
@ -129,6 +129,7 @@
|
||||||
(put 'defmacro 'doc-string-elt 3)
|
(put 'defmacro 'doc-string-elt 3)
|
||||||
(put 'defmacro* 'doc-string-elt 3)
|
(put 'defmacro* 'doc-string-elt 3)
|
||||||
(put 'defsubst 'doc-string-elt 3)
|
(put 'defsubst 'doc-string-elt 3)
|
||||||
|
(put 'defstruct 'doc-string-elt 2)
|
||||||
(put 'define-skeleton 'doc-string-elt 2)
|
(put 'define-skeleton 'doc-string-elt 2)
|
||||||
(put 'define-derived-mode 'doc-string-elt 4)
|
(put 'define-derived-mode 'doc-string-elt 4)
|
||||||
(put 'define-compilation-mode 'doc-string-elt 3)
|
(put 'define-compilation-mode 'doc-string-elt 3)
|
||||||
|
@ -194,7 +195,7 @@
|
||||||
(setq comment-start-skip "\\(\\(^\\|[^\\\\\n]\\)\\(\\\\\\\\\\)*\\);+ *")
|
(setq comment-start-skip "\\(\\(^\\|[^\\\\\n]\\)\\(\\\\\\\\\\)*\\);+ *")
|
||||||
(make-local-variable 'font-lock-comment-start-skip)
|
(make-local-variable 'font-lock-comment-start-skip)
|
||||||
;; Font lock mode uses this only when it KNOWS a comment is starting.
|
;; Font lock mode uses this only when it KNOWS a comment is starting.
|
||||||
(setq font-lock-comment-start-skip ";+ *")
|
(setq font-lock-comment-start-skip ";+ *")
|
||||||
(make-local-variable 'comment-add)
|
(make-local-variable 'comment-add)
|
||||||
(setq comment-add 1) ;default to `;;' in comment-region
|
(setq comment-add 1) ;default to `;;' in comment-region
|
||||||
(make-local-variable 'comment-column)
|
(make-local-variable 'comment-column)
|
||||||
|
|
|
@ -384,13 +384,13 @@ and after the region marked by the rectangle to search."
|
||||||
:type 'boolean
|
:type 'boolean
|
||||||
:group 'cua)
|
:group 'cua)
|
||||||
|
|
||||||
(defface cua-rectangle-face
|
(defface cua-rectangle
|
||||||
'((default :inherit region)
|
'((default :inherit region)
|
||||||
(((class color)) :foreground "white" :background "maroon"))
|
(((class color)) :foreground "white" :background "maroon"))
|
||||||
"*Font used by CUA for highlighting the rectangle."
|
"*Font used by CUA for highlighting the rectangle."
|
||||||
:group 'cua)
|
:group 'cua)
|
||||||
|
|
||||||
(defface cua-rectangle-noselect-face
|
(defface cua-rectangle-noselect
|
||||||
'((default :inherit region)
|
'((default :inherit region)
|
||||||
(((class color)) :foreground "white" :background "dimgray"))
|
(((class color)) :foreground "white" :background "dimgray"))
|
||||||
"*Font used by CUA for highlighting the non-selected rectangle lines."
|
"*Font used by CUA for highlighting the non-selected rectangle lines."
|
||||||
|
@ -404,7 +404,7 @@ and after the region marked by the rectangle to search."
|
||||||
:type 'boolean
|
:type 'boolean
|
||||||
:group 'cua)
|
:group 'cua)
|
||||||
|
|
||||||
(defface cua-global-mark-face
|
(defface cua-global-mark
|
||||||
'((((min-colors 88)(class color)) :foreground "black" :background "yellow1")
|
'((((min-colors 88)(class color)) :foreground "black" :background "yellow1")
|
||||||
(((class color)) :foreground "black" :background "yellow")
|
(((class color)) :foreground "black" :background "yellow")
|
||||||
(t :bold t))
|
(t :bold t))
|
||||||
|
|
|
@ -74,7 +74,7 @@
|
||||||
(move-overlay cua--global-mark-overlay (point) (1+ (point)))
|
(move-overlay cua--global-mark-overlay (point) (1+ (point)))
|
||||||
(setq cua--global-mark-overlay
|
(setq cua--global-mark-overlay
|
||||||
(make-overlay (point) (1+ (point))))
|
(make-overlay (point) (1+ (point))))
|
||||||
(overlay-put cua--global-mark-overlay 'face 'cua-global-mark-face))
|
(overlay-put cua--global-mark-overlay 'face 'cua-global-mark))
|
||||||
(if (and cua-global-mark-blink-cursor-interval
|
(if (and cua-global-mark-blink-cursor-interval
|
||||||
(not cua--orig-blink-cursor-interval))
|
(not cua--orig-blink-cursor-interval))
|
||||||
(setq cua--orig-blink-cursor-interval blink-cursor-interval
|
(setq cua--orig-blink-cursor-interval blink-cursor-interval
|
||||||
|
@ -218,7 +218,7 @@ With prefix argument, don't jump to global mark when cancelling it."
|
||||||
(let ((olist (overlays-at (marker-position cua--global-mark-marker)))
|
(let ((olist (overlays-at (marker-position cua--global-mark-marker)))
|
||||||
in-rect)
|
in-rect)
|
||||||
(while olist
|
(while olist
|
||||||
(if (eq (overlay-get (car olist) 'face) 'cua-rectangle-face)
|
(if (eq (overlay-get (car olist) 'face) 'cua-rectangle)
|
||||||
(setq in-rect t olist nil)
|
(setq in-rect t olist nil)
|
||||||
(setq olist (cdr olist))))
|
(setq olist (cdr olist))))
|
||||||
(if in-rect
|
(if in-rect
|
||||||
|
@ -358,11 +358,6 @@ With prefix argument, don't jump to global mark when cancelling it."
|
||||||
;;; Initialization
|
;;; Initialization
|
||||||
|
|
||||||
(defun cua--init-global-mark ()
|
(defun cua--init-global-mark ()
|
||||||
(unless (face-background 'cua-global-mark-face)
|
|
||||||
(copy-face 'region 'cua-global-mark-face)
|
|
||||||
(set-face-foreground 'cua-global-mark-face "black")
|
|
||||||
(set-face-background 'cua-global-mark-face "cyan"))
|
|
||||||
|
|
||||||
(define-key cua--global-mark-keymap [remap copy-region-as-kill] 'cua-copy-to-global-mark)
|
(define-key cua--global-mark-keymap [remap copy-region-as-kill] 'cua-copy-to-global-mark)
|
||||||
(define-key cua--global-mark-keymap [remap kill-ring-save] 'cua-copy-to-global-mark)
|
(define-key cua--global-mark-keymap [remap kill-ring-save] 'cua-copy-to-global-mark)
|
||||||
(define-key cua--global-mark-keymap [remap kill-region] 'cua-cut-to-global-mark)
|
(define-key cua--global-mark-keymap [remap kill-region] 'cua-cut-to-global-mark)
|
||||||
|
|
|
@ -755,7 +755,7 @@ If command is repeated at same position, delete the rectangle."
|
||||||
(sit-for 0) ; make window top/bottom reliable
|
(sit-for 0) ; make window top/bottom reliable
|
||||||
(cua--rectangle-operation nil t nil nil nil ; do not tabify
|
(cua--rectangle-operation nil t nil nil nil ; do not tabify
|
||||||
'(lambda (s e l r v)
|
'(lambda (s e l r v)
|
||||||
(let ((rface (if v 'cua-rectangle-face 'cua-rectangle-noselect-face))
|
(let ((rface (if v 'cua-rectangle 'cua-rectangle-noselect))
|
||||||
overlay bs ms as)
|
overlay bs ms as)
|
||||||
(when (cua--rectangle-virtual-edges)
|
(when (cua--rectangle-virtual-edges)
|
||||||
(let ((lb (line-beginning-position))
|
(let ((lb (line-beginning-position))
|
||||||
|
|
|
@ -2085,13 +2085,32 @@ Note: Other faces cannot inherit from the cursor face."
|
||||||
:group 'whitespace ; like `show-trailing-whitespace'
|
:group 'whitespace ; like `show-trailing-whitespace'
|
||||||
:group 'basic-faces)
|
:group 'basic-faces)
|
||||||
|
|
||||||
(defface escape-glyph '((((background dark)) :foreground "cyan")
|
(defface escape-glyph
|
||||||
;; See the comment in minibuffer-prompt for
|
'((((background dark)) :foreground "pink2")
|
||||||
;; the reason not to use blue on MS-DOS.
|
;; See the comment in minibuffer-prompt for
|
||||||
(((type pc)) :foreground "magenta")
|
;; the reason not to use blue on MS-DOS.
|
||||||
(t :foreground "blue"))
|
(((type pc)) :foreground "magenta")
|
||||||
|
;; red4 is too light -- rms.
|
||||||
|
(t :foreground "blue"))
|
||||||
"Face for characters displayed as ^-sequences or \-sequences."
|
"Face for characters displayed as ^-sequences or \-sequences."
|
||||||
:group 'basic-faces)
|
:group 'basic-faces
|
||||||
|
:version "22.1")
|
||||||
|
|
||||||
|
(defface no-break-space
|
||||||
|
'((((class color) (min-colors 88)) :inherit escape-glyph :underline t)
|
||||||
|
(((class color) (min-colors 8)) :background "magenta" :foreground )
|
||||||
|
(t :inverse-video t))
|
||||||
|
"Face for non-breaking space."
|
||||||
|
:group 'basic-faces
|
||||||
|
:version "22.1")
|
||||||
|
|
||||||
|
(defface shadow
|
||||||
|
'((((background dark)) :foreground "grey70")
|
||||||
|
(((background light)) :foreground "grey50"))
|
||||||
|
"Basic face for shadowed text."
|
||||||
|
:group 'basic-faces
|
||||||
|
:version "22.1")
|
||||||
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;;; Manipulating font names.
|
;;; Manipulating font names.
|
||||||
|
|
|
@ -658,7 +658,7 @@ one or more of those symbols."
|
||||||
|
|
||||||
(defun locate-file-completion (string path-and-suffixes action)
|
(defun locate-file-completion (string path-and-suffixes action)
|
||||||
"Do completion for file names passed to `locate-file'.
|
"Do completion for file names passed to `locate-file'.
|
||||||
PATH-AND-SUFFIXES is a pair of lists (DIRECTORIES . SUFFIXES)."
|
PATH-AND-SUFFIXES is a pair of lists, (DIRECTORIES . SUFFIXES)."
|
||||||
(if (file-name-absolute-p string)
|
(if (file-name-absolute-p string)
|
||||||
(read-file-name-internal string nil action)
|
(read-file-name-internal string nil action)
|
||||||
(let ((names nil)
|
(let ((names nil)
|
||||||
|
@ -2159,9 +2159,9 @@ Otherwise, return nil; point may be changed."
|
||||||
(goto-char beg)
|
(goto-char beg)
|
||||||
end))))
|
end))))
|
||||||
|
|
||||||
(defun hack-local-variables-confirm (string)
|
(defun hack-local-variables-confirm (string flag-to-check)
|
||||||
(or (eq enable-local-variables t)
|
(or (eq flag-to-check t)
|
||||||
(and enable-local-variables
|
(and flag-to-check
|
||||||
(save-window-excursion
|
(save-window-excursion
|
||||||
(condition-case nil
|
(condition-case nil
|
||||||
(switch-to-buffer (current-buffer))
|
(switch-to-buffer (current-buffer))
|
||||||
|
@ -2236,7 +2236,8 @@ is specified, returning t if it is specified."
|
||||||
(if (and result
|
(if (and result
|
||||||
(or mode-only
|
(or mode-only
|
||||||
(hack-local-variables-confirm
|
(hack-local-variables-confirm
|
||||||
"Set local variables as specified in -*- line of %s? ")))
|
"Set local variables as specified in -*- line of %s? "
|
||||||
|
enable-local-variables)))
|
||||||
(let ((enable-local-eval enable-local-eval))
|
(let ((enable-local-eval enable-local-eval))
|
||||||
(while result
|
(while result
|
||||||
(hack-one-local-variable (car (car result)) (cdr (car result)))
|
(hack-one-local-variable (car (car result)) (cdr (car result)))
|
||||||
|
@ -2267,7 +2268,8 @@ is specified, returning t if it is specified."
|
||||||
(and (search-forward "Local Variables:" nil t)
|
(and (search-forward "Local Variables:" nil t)
|
||||||
(or mode-only
|
(or mode-only
|
||||||
(hack-local-variables-confirm
|
(hack-local-variables-confirm
|
||||||
"Set local variables as specified at end of %s? "))))
|
"Set local variables as specified at end of %s? "
|
||||||
|
enable-local-variables))))
|
||||||
(skip-chars-forward " \t")
|
(skip-chars-forward " \t")
|
||||||
(let ((enable-local-eval enable-local-eval)
|
(let ((enable-local-eval enable-local-eval)
|
||||||
;; suffix is what comes after "local variables:" in its line.
|
;; suffix is what comes after "local variables:" in its line.
|
||||||
|
@ -2489,7 +2491,8 @@ is considered risky."
|
||||||
;; Permit eval if not root and user says ok.
|
;; Permit eval if not root and user says ok.
|
||||||
(and (not (zerop (user-uid)))
|
(and (not (zerop (user-uid)))
|
||||||
(hack-local-variables-confirm
|
(hack-local-variables-confirm
|
||||||
"Process `eval' or hook local variables in %s? ")))
|
"Process `eval' or hook local variables in %s? "
|
||||||
|
enable-local-eval)))
|
||||||
(if (eq var 'eval)
|
(if (eq var 'eval)
|
||||||
(save-excursion (eval val))
|
(save-excursion (eval val))
|
||||||
(make-local-variable var)
|
(make-local-variable var)
|
||||||
|
|
|
@ -691,7 +691,7 @@ For example:
|
||||||
|
|
||||||
(add-hook 'c-mode-hook
|
(add-hook 'c-mode-hook
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(font-lock-add-keywords 'c-mode
|
(font-lock-add-keywords nil
|
||||||
'((\"\\\\\\=<\\\\(FIXME\\\\):\" 1 font-lock-warning-face prepend)
|
'((\"\\\\\\=<\\\\(FIXME\\\\):\" 1 font-lock-warning-face prepend)
|
||||||
(\"\\\\\\=<\\\\(and\\\\|or\\\\|not\\\\)\\\\\\=>\" .
|
(\"\\\\\\=<\\\\(and\\\\|or\\\\|not\\\\)\\\\\\=>\" .
|
||||||
font-lock-keyword-face)))))
|
font-lock-keyword-face)))))
|
||||||
|
@ -905,7 +905,7 @@ The value of this variable is used when Font Lock mode is turned on."
|
||||||
'font-lock-after-change-function t)
|
'font-lock-after-change-function t)
|
||||||
(set (make-local-variable 'font-lock-fontify-buffer-function)
|
(set (make-local-variable 'font-lock-fontify-buffer-function)
|
||||||
'jit-lock-refontify)
|
'jit-lock-refontify)
|
||||||
;; Don't fontify eagerly (and don't abort is the buffer is large).
|
;; Don't fontify eagerly (and don't abort if the buffer is large).
|
||||||
(set (make-local-variable 'font-lock-fontified) t)
|
(set (make-local-variable 'font-lock-fontified) t)
|
||||||
;; Use jit-lock.
|
;; Use jit-lock.
|
||||||
(jit-lock-register 'font-lock-fontify-region
|
(jit-lock-register 'font-lock-fontify-region
|
||||||
|
@ -1826,6 +1826,17 @@ Sets various variables using `font-lock-defaults' (or, if nil, using
|
||||||
"Font Lock mode face used to highlight preprocessor directives."
|
"Font Lock mode face used to highlight preprocessor directives."
|
||||||
:group 'font-lock-highlighting-faces)
|
:group 'font-lock-highlighting-faces)
|
||||||
|
|
||||||
|
(defface font-lock-regexp-backslash
|
||||||
|
'((((class color) (min-colors 16)) :inherit escape-glyph)
|
||||||
|
(t :inherit bold))
|
||||||
|
"Font Lock mode face used to highlight a backslash in Lisp regexps."
|
||||||
|
:group 'font-lock-highlighting-faces)
|
||||||
|
|
||||||
|
(defface font-lock-regexp-backslash-construct
|
||||||
|
'((t :inherit bold))
|
||||||
|
"Font Lock mode face used to highlight `\' constructs in Lisp regexps."
|
||||||
|
:group 'font-lock-highlighting-faces)
|
||||||
|
|
||||||
;;; End of Colour etc. support.
|
;;; End of Colour etc. support.
|
||||||
|
|
||||||
;;; Menu support.
|
;;; Menu support.
|
||||||
|
@ -2020,7 +2031,7 @@ This function could be MATCHER in a MATCH-ANCHORED `font-lock-keywords' item."
|
||||||
`(;; Control structures. Emacs Lisp forms.
|
`(;; Control structures. Emacs Lisp forms.
|
||||||
(,(concat
|
(,(concat
|
||||||
"(" (regexp-opt
|
"(" (regexp-opt
|
||||||
'("cond" "if" "while" "let" "let*"
|
'("cond" "if" "while" "while-no-input" "let" "let*"
|
||||||
"prog" "progn" "progv" "prog1" "prog2" "prog*"
|
"prog" "progn" "progv" "prog1" "prog2" "prog*"
|
||||||
"inline" "lambda" "save-restriction" "save-excursion"
|
"inline" "lambda" "save-restriction" "save-excursion"
|
||||||
"save-window-excursion" "save-selected-window"
|
"save-window-excursion" "save-selected-window"
|
||||||
|
@ -2076,16 +2087,14 @@ This function could be MATCHER in a MATCH-ANCHORED `font-lock-keywords' item."
|
||||||
;; Make regexp grouping constructs bold, so they stand out, but only
|
;; Make regexp grouping constructs bold, so they stand out, but only
|
||||||
;; in strings.
|
;; in strings.
|
||||||
((lambda (bound)
|
((lambda (bound)
|
||||||
(if (re-search-forward "\\(\\\\\\\\\\)\\([(|)]\\)\\(\\?:\\)?" bound t)
|
(if (re-search-forward "\\(\\\\\\\\\\)\\((\\(?:?:\\)?\\|[|)]\\)" bound t)
|
||||||
(let ((face (get-text-property (1- (point)) 'face)))
|
(let ((face (get-text-property (1- (point)) 'face)))
|
||||||
(if (listp face)
|
(if (listp face)
|
||||||
(memq 'font-lock-string-face face)
|
(memq 'font-lock-string-face face)
|
||||||
(eq 'font-lock-string-face face)))))
|
(eq 'font-lock-string-face face)))))
|
||||||
;; Should we introduce a lowlight face for this?
|
(1 'font-lock-regexp-backslash prepend)
|
||||||
;; Ideally that would retain the color, dimmed.
|
(2 'font-lock-regexp-backslash-construct prepend))
|
||||||
(1 font-lock-comment-face prepend)
|
|
||||||
(2 'bold prepend)
|
|
||||||
(3 font-lock-type-face prepend t))
|
|
||||||
;; Underline innermost grouping, so that you can more easily see what
|
;; Underline innermost grouping, so that you can more easily see what
|
||||||
;; belongs together. 2005-05-12: Font-lock can go into an
|
;; belongs together. 2005-05-12: Font-lock can go into an
|
||||||
;; unbreakable endless loop on this -- something's broken.
|
;; unbreakable endless loop on this -- something's broken.
|
||||||
|
|
24
lisp/ido.el
24
lisp/ido.el
|
@ -299,8 +299,8 @@
|
||||||
;; ------------
|
;; ------------
|
||||||
|
|
||||||
;; The highlighting of matching items is controlled via ido-use-faces.
|
;; The highlighting of matching items is controlled via ido-use-faces.
|
||||||
;; The faces used are ido-first-match-face, ido-only-match-face and
|
;; The faces used are ido-first-match, ido-only-match and
|
||||||
;; ido-subdir-face.
|
;; ido-subdir.
|
||||||
;; Colouring of the matching item was suggested by
|
;; Colouring of the matching item was suggested by
|
||||||
;; Carsten Dominik (dominik@strw.leidenuniv.nl).
|
;; Carsten Dominik (dominik@strw.leidenuniv.nl).
|
||||||
|
|
||||||
|
@ -740,17 +740,17 @@ subdirs in the alternatives."
|
||||||
:type 'boolean
|
:type 'boolean
|
||||||
:group 'ido)
|
:group 'ido)
|
||||||
|
|
||||||
(defface ido-first-match-face '((t (:bold t)))
|
(defface ido-first-match '((t (:bold t)))
|
||||||
"*Font used by ido for highlighting first match."
|
"*Font used by ido for highlighting first match."
|
||||||
:group 'ido)
|
:group 'ido)
|
||||||
|
|
||||||
(defface ido-only-match-face '((((class color))
|
(defface ido-only-match '((((class color))
|
||||||
(:foreground "ForestGreen"))
|
(:foreground "ForestGreen"))
|
||||||
(t (:italic t)))
|
(t (:italic t)))
|
||||||
"*Font used by ido for highlighting only match."
|
"*Font used by ido for highlighting only match."
|
||||||
:group 'ido)
|
:group 'ido)
|
||||||
|
|
||||||
(defface ido-subdir-face '((((min-colors 88) (class color))
|
(defface ido-subdir '((((min-colors 88) (class color))
|
||||||
(:foreground "red1"))
|
(:foreground "red1"))
|
||||||
(((class color))
|
(((class color))
|
||||||
(:foreground "red"))
|
(:foreground "red"))
|
||||||
|
@ -758,7 +758,7 @@ subdirs in the alternatives."
|
||||||
"*Font used by ido for highlighting subdirs in the alternatives."
|
"*Font used by ido for highlighting subdirs in the alternatives."
|
||||||
:group 'ido)
|
:group 'ido)
|
||||||
|
|
||||||
(defface ido-indicator-face '((((min-colors 88) (class color))
|
(defface ido-indicator '((((min-colors 88) (class color))
|
||||||
(:foreground "yellow1"
|
(:foreground "yellow1"
|
||||||
:background "red1"
|
:background "red1"
|
||||||
:width condensed))
|
:width condensed))
|
||||||
|
@ -4039,7 +4039,7 @@ For details of keybindings, do `\\[describe-function] ido-find-file'."
|
||||||
first)
|
first)
|
||||||
|
|
||||||
(if (and ind ido-use-faces)
|
(if (and ind ido-use-faces)
|
||||||
(put-text-property 0 1 'face 'ido-indicator-face ind))
|
(put-text-property 0 1 'face 'ido-indicator ind))
|
||||||
|
|
||||||
(if (and ido-use-faces comps)
|
(if (and ido-use-faces comps)
|
||||||
(let* ((fn (ido-name (car comps)))
|
(let* ((fn (ido-name (car comps)))
|
||||||
|
@ -4047,8 +4047,8 @@ For details of keybindings, do `\\[describe-function] ido-find-file'."
|
||||||
(setq first (format "%s" fn))
|
(setq first (format "%s" fn))
|
||||||
(put-text-property 0 ln 'face
|
(put-text-property 0 ln 'face
|
||||||
(if (= (length comps) 1)
|
(if (= (length comps) 1)
|
||||||
'ido-only-match-face
|
'ido-only-match
|
||||||
'ido-first-match-face)
|
'ido-first-match)
|
||||||
first)
|
first)
|
||||||
(if ind (setq first (concat first ind)))
|
(if ind (setq first (concat first ind)))
|
||||||
(setq comps (cons first (cdr comps)))))
|
(setq comps (cons first (cdr comps)))))
|
||||||
|
@ -4091,7 +4091,7 @@ For details of keybindings, do `\\[describe-function] ido-find-file'."
|
||||||
(if (and ido-use-faces
|
(if (and ido-use-faces
|
||||||
(not (string= str first))
|
(not (string= str first))
|
||||||
(ido-final-slash str))
|
(ido-final-slash str))
|
||||||
(put-text-property 0 (length str) 'face 'ido-subdir-face str))
|
(put-text-property 0 (length str) 'face 'ido-subdir str))
|
||||||
str)))))
|
str)))))
|
||||||
comps))))))
|
comps))))))
|
||||||
|
|
||||||
|
@ -4193,7 +4193,9 @@ See `read-file-name' for additional parameters."
|
||||||
(eq (get this-command 'ido) 'dir)
|
(eq (get this-command 'ido) 'dir)
|
||||||
(memq this-command ido-read-file-name-as-directory-commands))
|
(memq this-command ido-read-file-name-as-directory-commands))
|
||||||
(setq filename
|
(setq filename
|
||||||
(ido-read-directory-name prompt dir default-filename mustmatch initial)))
|
(ido-read-directory-name prompt dir default-filename mustmatch initial))
|
||||||
|
(if (eq ido-exit 'fallback)
|
||||||
|
(setq filename 'fallback)))
|
||||||
((and (not (eq (get this-command 'ido) 'ignore))
|
((and (not (eq (get this-command 'ido) 'ignore))
|
||||||
(not (memq this-command ido-read-file-name-non-ido))
|
(not (memq this-command ido-read-file-name-non-ido))
|
||||||
(or (null predicate) (eq predicate 'file-exists-p)))
|
(or (null predicate) (eq predicate 'file-exists-p)))
|
||||||
|
|
52
lisp/info.el
52
lisp/info.el
|
@ -1379,6 +1379,43 @@ If FORK is a string, it is the name to use for the new buffer."
|
||||||
|
|
||||||
(defvar Info-read-node-completion-table)
|
(defvar Info-read-node-completion-table)
|
||||||
|
|
||||||
|
(defun Info-read-node-name-2 (string path-and-suffixes action)
|
||||||
|
"Virtual completion table for file names input in Info node names.
|
||||||
|
PATH-AND-SUFFIXES is a pair of lists, (DIRECTORIES . SUFFIXES)."
|
||||||
|
(let* ((names nil)
|
||||||
|
(suffixes (remove "" (cdr path-and-suffixes)))
|
||||||
|
(suffix (concat (regexp-opt suffixes t) "\\'"))
|
||||||
|
(string-dir (file-name-directory string))
|
||||||
|
(dirs
|
||||||
|
(if (file-name-absolute-p string)
|
||||||
|
(list (file-name-directory string))
|
||||||
|
(car path-and-suffixes))))
|
||||||
|
(dolist (dir dirs)
|
||||||
|
(unless dir
|
||||||
|
(setq dir default-directory))
|
||||||
|
(if string-dir (setq dir (expand-file-name string-dir dir)))
|
||||||
|
(when (file-directory-p dir)
|
||||||
|
(dolist (file (file-name-all-completions
|
||||||
|
(file-name-nondirectory string) dir))
|
||||||
|
;; If the file name has no suffix or a standard suffix,
|
||||||
|
;; include it.
|
||||||
|
(and (or (null (file-name-extension file))
|
||||||
|
(string-match suffix file))
|
||||||
|
;; But exclude subfiles of split info files.
|
||||||
|
(not (string-match "-[0-9]+\\'" file))
|
||||||
|
;; And exclude backup files.
|
||||||
|
(not (string-match "~\\'" file))
|
||||||
|
(push (if string-dir (concat string-dir file) file) names))
|
||||||
|
;; If the file name ends in a standard suffix,
|
||||||
|
;; add the unsuffixed name as a completion option.
|
||||||
|
(when (string-match suffix file)
|
||||||
|
(setq file (substring file 0 (match-beginning 0)))
|
||||||
|
(push (if string-dir (concat string-dir file) file) names)))))
|
||||||
|
(cond
|
||||||
|
((eq action t) (all-completions string names))
|
||||||
|
((null action) (try-completion string names))
|
||||||
|
(t (test-completion string names)))))
|
||||||
|
|
||||||
;; This function is used as the "completion table" while reading a node name.
|
;; This function is used as the "completion table" while reading a node name.
|
||||||
;; It does completion using the alist in Info-read-node-completion-table
|
;; It does completion using the alist in Info-read-node-completion-table
|
||||||
;; unless STRING starts with an open-paren.
|
;; unless STRING starts with an open-paren.
|
||||||
|
@ -1389,15 +1426,16 @@ If FORK is a string, it is the name to use for the new buffer."
|
||||||
(let ((file (substring string 1)))
|
(let ((file (substring string 1)))
|
||||||
(cond
|
(cond
|
||||||
((eq code nil)
|
((eq code nil)
|
||||||
(let ((comp (try-completion file 'locate-file-completion
|
(let ((comp (try-completion file 'Info-read-node-name-2
|
||||||
(cons Info-directory-list
|
(cons Info-directory-list
|
||||||
(mapcar 'car Info-suffix-list)))))
|
(mapcar 'car Info-suffix-list)))))
|
||||||
(cond
|
(cond
|
||||||
((eq comp t) (concat string ")"))
|
((eq comp t) (concat string ")"))
|
||||||
(comp (concat "(" comp)))))
|
(comp (concat "(" comp)))))
|
||||||
((eq code t) (all-completions file 'locate-file-completion
|
((eq code t)
|
||||||
(cons Info-directory-list
|
(all-completions file 'Info-read-node-name-2
|
||||||
(mapcar 'car Info-suffix-list))))
|
(cons Info-directory-list
|
||||||
|
(mapcar 'car Info-suffix-list))))
|
||||||
(t nil))))
|
(t nil))))
|
||||||
;; If a file name was given, then any node is fair game.
|
;; If a file name was given, then any node is fair game.
|
||||||
((string-match "\\`(" string)
|
((string-match "\\`(" string)
|
||||||
|
@ -1413,6 +1451,10 @@ If FORK is a string, it is the name to use for the new buffer."
|
||||||
(t
|
(t
|
||||||
(test-completion string Info-read-node-completion-table predicate))))
|
(test-completion string Info-read-node-completion-table predicate))))
|
||||||
|
|
||||||
|
;; Arrange to highlight the proper letters in the completion list buffer.
|
||||||
|
(put 'Info-read-node-name-1 'completion-base-size-function
|
||||||
|
(lambda () 1))
|
||||||
|
|
||||||
(defun Info-read-node-name (prompt &optional default)
|
(defun Info-read-node-name (prompt &optional default)
|
||||||
(let* ((completion-ignore-case t)
|
(let* ((completion-ignore-case t)
|
||||||
(Info-read-node-completion-table (Info-build-node-completions))
|
(Info-read-node-completion-table (Info-build-node-completions))
|
||||||
|
@ -3483,7 +3525,7 @@ the variable `Info-file-list-for-emacs'."
|
||||||
(Info-goto-emacs-command-node command)))))
|
(Info-goto-emacs-command-node command)))))
|
||||||
|
|
||||||
(defface Info-title-1-face
|
(defface Info-title-1-face
|
||||||
'((((type tty pc) (class color)) :foreground "yellow" :weight bold)
|
'((((type tty pc) (class color)) :foreground "green" :weight bold)
|
||||||
(t :height 1.2 :inherit Info-title-2-face))
|
(t :height 1.2 :inherit Info-title-2-face))
|
||||||
"Face for Info titles at level 1."
|
"Face for Info titles at level 1."
|
||||||
:group 'info)
|
:group 'info)
|
||||||
|
|
|
@ -791,6 +791,7 @@ Optional arg BUFFER is ignored (for use in `format-alist')."
|
||||||
("ï" "ï")
|
("ï" "ï")
|
||||||
("ð" "ð")
|
("ð" "ð")
|
||||||
("ñ" "ñ")
|
("ñ" "ñ")
|
||||||
|
(" " "<EFBFBD>")
|
||||||
("ò" "ò")
|
("ò" "ò")
|
||||||
("ó" "ó")
|
("ó" "ó")
|
||||||
("ô" "ô")
|
("ô" "ô")
|
||||||
|
|
|
@ -47,7 +47,7 @@
|
||||||
;; like this
|
;; like this
|
||||||
|
|
||||||
;; (add-to-list 'file-coding-system-alist
|
;; (add-to-list 'file-coding-system-alist
|
||||||
;; '("\\.tex\\|\\.ltx\\|\\.dtx\\|\\.drv\\'" . latexenc-find-file-coding-system))
|
;; '("\\.\\(tex\\|ltx\\|dtx\\|drv\\)\\'" . latexenc-find-file-coding-system))
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
@ -159,10 +159,11 @@ coding system names is determined from `latex-inputenc-coding-alist'."
|
||||||
(setq latexenc-main-file (concat file ext)))))))
|
(setq latexenc-main-file (concat file ext)))))))
|
||||||
;; try tex-modes tex-guess-main-file
|
;; try tex-modes tex-guess-main-file
|
||||||
(when (and (not latexenc-dont-use-tex-guess-main-file-flag)
|
(when (and (not latexenc-dont-use-tex-guess-main-file-flag)
|
||||||
(not latexenc-main-file)
|
(not latexenc-main-file))
|
||||||
(fboundp 'tex-guess-main-file))
|
;; Use a separate `when' so the byte-compiler sees the fboundp.
|
||||||
(let ((tex-start-of-header "\\\\document\\(style\\|class\\)"))
|
(when (fboundp 'tex-guess-main-file)
|
||||||
(setq latexenc-main-file (tex-guess-main-file))))
|
(let ((tex-start-of-header "\\\\document\\(style\\|class\\)"))
|
||||||
|
(setq latexenc-main-file (tex-guess-main-file)))))
|
||||||
;; if we found a master/main file get the coding system from it
|
;; if we found a master/main file get the coding system from it
|
||||||
(if (and latexenc-main-file
|
(if (and latexenc-main-file
|
||||||
(file-readable-p latexenc-main-file))
|
(file-readable-p latexenc-main-file))
|
||||||
|
|
|
@ -151,7 +151,7 @@ It's purpose is to pass different call arguments to
|
||||||
(switch-to-buffer buf)
|
(switch-to-buffer buf)
|
||||||
(if isearchb-show-completions
|
(if isearchb-show-completions
|
||||||
(message "isearchb: %s%s" iswitchb-text
|
(message "isearchb: %s%s" iswitchb-text
|
||||||
(iswitchb-completions iswitchb-text nil))
|
(iswitchb-completions iswitchb-text))
|
||||||
(if (= 1 (length iswitchb-matches))
|
(if (= 1 (length iswitchb-matches))
|
||||||
(message "isearchb: %s (only match)" iswitchb-text)
|
(message "isearchb: %s (only match)" iswitchb-text)
|
||||||
(message "isearchb: %s" iswitchb-text))))))
|
(message "isearchb: %s" iswitchb-text))))))
|
||||||
|
|
|
@ -404,21 +404,21 @@ iswitchb is running."
|
||||||
:type 'hook
|
:type 'hook
|
||||||
:group 'iswitchb)
|
:group 'iswitchb)
|
||||||
|
|
||||||
(defface iswitchb-single-match-face
|
(defface iswitchb-single-match
|
||||||
'((t
|
'((t
|
||||||
(:inherit font-lock-comment-face)))
|
(:inherit font-lock-comment-face)))
|
||||||
"Iswitchb face for single matching buffer name."
|
"Iswitchb face for single matching buffer name."
|
||||||
:version "22.1"
|
:version "22.1"
|
||||||
:group 'iswitchb)
|
:group 'iswitchb)
|
||||||
|
|
||||||
(defface iswitchb-current-match-face
|
(defface iswitchb-current-match
|
||||||
'((t
|
'((t
|
||||||
(:inherit font-lock-function-name-face)))
|
(:inherit font-lock-function-name-face)))
|
||||||
"Iswitchb face for current matching buffer name."
|
"Iswitchb face for current matching buffer name."
|
||||||
:version "22.1"
|
:version "22.1"
|
||||||
:group 'iswitchb)
|
:group 'iswitchb)
|
||||||
|
|
||||||
(defface iswitchb-virtual-matches-face
|
(defface iswitchb-virtual-matches
|
||||||
'((t
|
'((t
|
||||||
(:inherit font-lock-builtin-face)))
|
(:inherit font-lock-builtin-face)))
|
||||||
"Iswitchb face for matching virtual buffer names.
|
"Iswitchb face for matching virtual buffer names.
|
||||||
|
@ -426,7 +426,7 @@ See also `iswitchb-use-virtual-buffers'."
|
||||||
:version "22.1"
|
:version "22.1"
|
||||||
:group 'iswitchb)
|
:group 'iswitchb)
|
||||||
|
|
||||||
(defface iswitchb-invalid-regexp-face
|
(defface iswitchb-invalid-regexp
|
||||||
'((t
|
'((t
|
||||||
(:inherit font-lock-warning-face)))
|
(:inherit font-lock-warning-face)))
|
||||||
"Iswitchb face for indicating invalid regexp. "
|
"Iswitchb face for indicating invalid regexp. "
|
||||||
|
@ -1299,9 +1299,9 @@ Modified from `icomplete-completions'."
|
||||||
(put-text-property 0 (length first) 'face
|
(put-text-property 0 (length first) 'face
|
||||||
(if (= (length comps) 1)
|
(if (= (length comps) 1)
|
||||||
(if iswitchb-invalid-regexp
|
(if iswitchb-invalid-regexp
|
||||||
'iswitchb-invalid-regexp-face
|
'iswitchb-invalid-regexp
|
||||||
'iswitchb-single-match-face)
|
'iswitchb-single-match)
|
||||||
'iswitchb-current-match-face)
|
'iswitchb-current-match)
|
||||||
first)
|
first)
|
||||||
(setq comps (cons first (cdr comps)))))
|
(setq comps (cons first (cdr comps)))))
|
||||||
|
|
||||||
|
@ -1330,7 +1330,7 @@ Modified from `icomplete-completions'."
|
||||||
(let ((comp comps))
|
(let ((comp comps))
|
||||||
(while comp
|
(while comp
|
||||||
(put-text-property 0 (length (car comp))
|
(put-text-property 0 (length (car comp))
|
||||||
'face 'iswitchb-virtual-matches-face
|
'face 'iswitchb-virtual-matches
|
||||||
(car comp))
|
(car comp))
|
||||||
(setq comp (cdr comp))))))
|
(setq comp (cdr comp))))))
|
||||||
|
|
||||||
|
|
|
@ -720,6 +720,7 @@ the list should be unique."
|
||||||
(sc-mail-warn-if-non-rfc822-p (sc-mail-error-in-mail-field))
|
(sc-mail-warn-if-non-rfc822-p (sc-mail-error-in-mail-field))
|
||||||
(end (setq sc-mail-headers-end (point))))
|
(end (setq sc-mail-headers-end (point))))
|
||||||
"Regi frame for glomming mail header information.")
|
"Regi frame for glomming mail header information.")
|
||||||
|
(put 'sc-mail-glom-frame 'risky-local-variable t)
|
||||||
|
|
||||||
(defvar curline) ; dynamic bondage
|
(defvar curline) ; dynamic bondage
|
||||||
|
|
||||||
|
|
|
@ -6434,7 +6434,8 @@ COMMAND.exe, COMMAND.bat and COMMAND.com in this order."
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
|
||||||
(pr-update-menus t)
|
;;; Files are not supposed to change Emacs behavior when you merely load them.
|
||||||
|
;;; (pr-update-menus t)
|
||||||
|
|
||||||
|
|
||||||
(provide 'printing)
|
(provide 'printing)
|
||||||
|
|
|
@ -935,6 +935,7 @@ Returns the compilation buffer created."
|
||||||
(substitute-env-vars (match-string 1 command))
|
(substitute-env-vars (match-string 1 command))
|
||||||
"~")
|
"~")
|
||||||
default-directory))
|
default-directory))
|
||||||
|
(erase-buffer)
|
||||||
;; Select the desired mode.
|
;; Select the desired mode.
|
||||||
(if (not (eq mode t))
|
(if (not (eq mode t))
|
||||||
(funcall mode)
|
(funcall mode)
|
||||||
|
@ -944,11 +945,11 @@ Returns the compilation buffer created."
|
||||||
(if highlight-regexp
|
(if highlight-regexp
|
||||||
(set (make-local-variable 'compilation-highlight-regexp)
|
(set (make-local-variable 'compilation-highlight-regexp)
|
||||||
highlight-regexp))
|
highlight-regexp))
|
||||||
(erase-buffer)
|
|
||||||
;; Output a mode setter, for saving and later reloading this buffer.
|
;; Output a mode setter, for saving and later reloading this buffer.
|
||||||
(insert "-*- mode: " name-of-mode
|
(insert "-*- mode: " name-of-mode
|
||||||
"; default-directory: " (prin1-to-string default-directory)
|
"; default-directory: " (prin1-to-string default-directory)
|
||||||
" -*-\n" command "\n") (setq thisdir default-directory))
|
" -*-\n" command "\n")
|
||||||
|
(setq thisdir default-directory))
|
||||||
(set-buffer-modified-p nil))
|
(set-buffer-modified-p nil))
|
||||||
;; If we're already in the compilation buffer, go to the end
|
;; If we're already in the compilation buffer, go to the end
|
||||||
;; of the buffer, so point will track the compilation output.
|
;; of the buffer, so point will track the compilation output.
|
||||||
|
|
|
@ -115,9 +115,8 @@
|
||||||
:version "22.1")
|
:version "22.1")
|
||||||
|
|
||||||
(defface makefile-shell-face
|
(defface makefile-shell-face
|
||||||
'((((class color) (background light)) (:background "seashell1"))
|
'((((class color) (min-colors 88) (background light)) (:background "seashell1"))
|
||||||
(((class color) (background dark)) (:background "seashell4"))
|
(((class color) (min-colors 88) (background dark)) (:background "seashell4")))
|
||||||
(t (:reverse-video t)))
|
|
||||||
"Face to use for additionally highlighting Shell commands in Font-Lock mode."
|
"Face to use for additionally highlighting Shell commands in Font-Lock mode."
|
||||||
:group 'faces
|
:group 'faces
|
||||||
:group 'makefile
|
:group 'makefile
|
||||||
|
@ -262,7 +261,7 @@ not be enclosed in { } or ( )."
|
||||||
;; index in makefile-imenu-generic-expression.
|
;; index in makefile-imenu-generic-expression.
|
||||||
(defvar makefile-dependency-regex
|
(defvar makefile-dependency-regex
|
||||||
;; Allow for two nested levels $(v1:$(v2:$(v3:a=b)=c)=d)
|
;; Allow for two nested levels $(v1:$(v2:$(v3:a=b)=c)=d)
|
||||||
"^ *\\(\\(?: *\\$\\(?:[({]\\(?:\\$\\(?:[({]\\(?:\\$\\(?:[^({]\\|.[^\n$#})]+?[})]\\)\\|[^\n$#)}]\\)+?[})]\\|[^({]\\)\\|[^\n$#)}]\\)+?[})]\\|[^({]\\)\\| *[^ \n$#:=]+\\)+?\\)[ \t]*\\(:\\)\\(?:[ \t]*$\\|[^=\n]\\(?:[^#\n]*?;[ \t]*\\(.+\\)\\)?\\)"
|
"^\\(\\(?:\\$\\(?:[({]\\(?:\\$\\(?:[({]\\(?:\\$\\(?:[^({]\\|.[^\n$#})]+?[})]\\)\\|[^\n$#)}]\\)+?[})]\\|[^({]\\)\\|[^\n$#)}]\\)+?[})]\\|[^({]\\)\\|[^\n$#:=]\\)+?\\)\\(:\\)\\(?:[ \t]*$\\|[^=\n]\\(?:[^#\n]*?;[ \t]*\\(.+\\)\\)?\\)"
|
||||||
"Regex used to find dependency lines in a makefile.")
|
"Regex used to find dependency lines in a makefile.")
|
||||||
|
|
||||||
(defconst makefile-bsdmake-dependency-regex
|
(defconst makefile-bsdmake-dependency-regex
|
||||||
|
@ -291,7 +290,7 @@ not be enclosed in { } or ( )."
|
||||||
;; that if you change this regexp you might have to fix the imenu index in
|
;; that if you change this regexp you might have to fix the imenu index in
|
||||||
;; makefile-imenu-generic-expression.
|
;; makefile-imenu-generic-expression.
|
||||||
(defconst makefile-macroassign-regex
|
(defconst makefile-macroassign-regex
|
||||||
"^ *\\([^ \n\t][^:#= \t\n]*\\)[ \t]*\\(?:!=[ \t]*\\(\\(?:.+\\\\\n\\)*.+\\)\\|[*:+]?[:?]?=[ \t]*\\(\\(?:.*\\\\\n\\)*.*\\)\\)"
|
"^ *\\([^ \n\t][^:#= \t\n]*\\)[ \t]*\\(?:!=\\|[*:+]?[:?]?=\\)"
|
||||||
"Regex used to find macro assignment lines in a makefile.")
|
"Regex used to find macro assignment lines in a makefile.")
|
||||||
|
|
||||||
(defconst makefile-var-use-regex
|
(defconst makefile-var-use-regex
|
||||||
|
@ -1704,6 +1703,19 @@ matched in a rule action."
|
||||||
(when (save-excursion
|
(when (save-excursion
|
||||||
(beginning-of-line)
|
(beginning-of-line)
|
||||||
(looking-at makefile-dependency-regex))
|
(looking-at makefile-dependency-regex))
|
||||||
|
(save-excursion
|
||||||
|
(let ((deps-end (match-end 1))
|
||||||
|
(match-data (match-data)))
|
||||||
|
(goto-char deps-end)
|
||||||
|
(skip-chars-backward " \t")
|
||||||
|
(setq deps-end (point))
|
||||||
|
(beginning-of-line)
|
||||||
|
(skip-chars-forward " \t")
|
||||||
|
;; Alter the bounds recorded for subexp 1,
|
||||||
|
;; which is what is supposed to match the targets.
|
||||||
|
(setcar (nthcdr 2 match-data) (point))
|
||||||
|
(setcar (nthcdr 3 match-data) deps-end)
|
||||||
|
(store-match-data match-data)))
|
||||||
(end-of-line)
|
(end-of-line)
|
||||||
(throw 'found (point)))))
|
(throw 'found (point)))))
|
||||||
(goto-char pt))
|
(goto-char pt))
|
||||||
|
|
|
@ -3019,7 +3019,7 @@ Valid values are:
|
||||||
NUMBER It's a real value between 0.0 (black) and 1.0 (white) that
|
NUMBER It's a real value between 0.0 (black) and 1.0 (white) that
|
||||||
indicate the gray color.
|
indicate the gray color.
|
||||||
|
|
||||||
COLOR-NAME It's a string wich contains the color name. For example:
|
COLOR-NAME It's a string which contains the color name. For example:
|
||||||
\"yellow\".
|
\"yellow\".
|
||||||
|
|
||||||
LIST It's a list of RGB values, that is a list of three real values
|
LIST It's a list of RGB values, that is a list of three real values
|
||||||
|
@ -3059,7 +3059,7 @@ Valid values are:
|
||||||
NUMBER It's a real value between 0.0 (black) and 1.0 (white) that
|
NUMBER It's a real value between 0.0 (black) and 1.0 (white) that
|
||||||
indicate the gray color.
|
indicate the gray color.
|
||||||
|
|
||||||
COLOR-NAME It's a string wich contains the color name. For example:
|
COLOR-NAME It's a string which contains the color name. For example:
|
||||||
\"yellow\".
|
\"yellow\".
|
||||||
|
|
||||||
LIST It's a list of RGB values, that is a list of three real values
|
LIST It's a list of RGB values, that is a list of three real values
|
||||||
|
@ -6119,7 +6119,7 @@ XSTART YSTART are the relative position for the first page in a sheet.")
|
||||||
(if (and (boundp 'ucs-mule-8859-to-mule-unicode)
|
(if (and (boundp 'ucs-mule-8859-to-mule-unicode)
|
||||||
(char-table-p ucs-mule-8859-to-mule-unicode))
|
(char-table-p ucs-mule-8859-to-mule-unicode))
|
||||||
(map-char-table
|
(map-char-table
|
||||||
#'(lambda (k v)
|
#'(lambda (k v)
|
||||||
(if (and v (eq (char-charset v) 'latin-iso8859-1) (/= k v))
|
(if (and v (eq (char-charset v) 'latin-iso8859-1) (/= k v))
|
||||||
(aset tbl k v)))
|
(aset tbl k v)))
|
||||||
ucs-mule-8859-to-mule-unicode))
|
ucs-mule-8859-to-mule-unicode))
|
||||||
|
|
|
@ -217,7 +217,7 @@ Fourth and fifth arg START and END specify the region to operate on.
|
||||||
|
|
||||||
To customize possible responses, change the \"bindings\" in `query-replace-map'."
|
To customize possible responses, change the \"bindings\" in `query-replace-map'."
|
||||||
(interactive (let ((common
|
(interactive (let ((common
|
||||||
(query-replace-read-args
|
(query-replace-read-args
|
||||||
(if (and transient-mark-mode mark-active)
|
(if (and transient-mark-mode mark-active)
|
||||||
"Query replace in region"
|
"Query replace in region"
|
||||||
"Query replace")
|
"Query replace")
|
||||||
|
@ -281,7 +281,7 @@ text, TO-STRING is actually made a list instead of a string.
|
||||||
Use \\[repeat-complex-command] after this command for details."
|
Use \\[repeat-complex-command] after this command for details."
|
||||||
(interactive
|
(interactive
|
||||||
(let ((common
|
(let ((common
|
||||||
(query-replace-read-args
|
(query-replace-read-args
|
||||||
(if (and transient-mark-mode mark-active)
|
(if (and transient-mark-mode mark-active)
|
||||||
"Query replace regexp in region"
|
"Query replace regexp in region"
|
||||||
"Query replace regexp")
|
"Query replace regexp")
|
||||||
|
@ -431,7 +431,7 @@ which will run faster and will not set the mark or print anything.
|
||||||
and TO-STRING is also null.)"
|
and TO-STRING is also null.)"
|
||||||
(interactive
|
(interactive
|
||||||
(let ((common
|
(let ((common
|
||||||
(query-replace-read-args
|
(query-replace-read-args
|
||||||
(if (and transient-mark-mode mark-active)
|
(if (and transient-mark-mode mark-active)
|
||||||
"Replace string in region"
|
"Replace string in region"
|
||||||
"Replace string")
|
"Replace string")
|
||||||
|
@ -489,10 +489,10 @@ What you probably want is a loop like this:
|
||||||
which will run faster and will not set the mark or print anything."
|
which will run faster and will not set the mark or print anything."
|
||||||
(interactive
|
(interactive
|
||||||
(let ((common
|
(let ((common
|
||||||
(query-replace-read-args
|
(query-replace-read-args
|
||||||
(if (and transient-mark-mode mark-active)
|
(if (and transient-mark-mode mark-active)
|
||||||
"Replace regexp in region"
|
"Replace regexp in region"
|
||||||
"Replace regexp")
|
"Replace regexp")
|
||||||
t)))
|
t)))
|
||||||
(list (nth 0 common) (nth 1 common) (nth 2 common)
|
(list (nth 0 common) (nth 1 common) (nth 2 common)
|
||||||
(if (and transient-mark-mode mark-active)
|
(if (and transient-mark-mode mark-active)
|
||||||
|
@ -1268,12 +1268,7 @@ but coerced to the correct value of INTEGERS."
|
||||||
(and (eq new reuse)
|
(and (eq new reuse)
|
||||||
(eq (null integers) (markerp (car reuse)))
|
(eq (null integers) (markerp (car reuse)))
|
||||||
new)))
|
new)))
|
||||||
(match-data integers
|
(match-data integers reuse t)))
|
||||||
(prog1 reuse
|
|
||||||
(while reuse
|
|
||||||
(if (markerp (car reuse))
|
|
||||||
(set-marker (car reuse) nil))
|
|
||||||
(setq reuse (cdr reuse)))))))
|
|
||||||
|
|
||||||
(defun replace-match-maybe-edit (newtext fixedcase literal noedit match-data)
|
(defun replace-match-maybe-edit (newtext fixedcase literal noedit match-data)
|
||||||
"Make a replacement with `replace-match', editing `\\?'.
|
"Make a replacement with `replace-match', editing `\\?'.
|
||||||
|
|
|
@ -113,10 +113,7 @@ system, `file-name-shadow-properties' is used instead."
|
||||||
:group 'minibuffer)
|
:group 'minibuffer)
|
||||||
|
|
||||||
(defface file-name-shadow
|
(defface file-name-shadow
|
||||||
'((((background dark))
|
'((t :inherit shadow))
|
||||||
:foreground "grey50")
|
|
||||||
(t
|
|
||||||
:foreground "grey70"))
|
|
||||||
"Face used by `file-name-shadow-mode' for the shadow."
|
"Face used by `file-name-shadow-mode' for the shadow."
|
||||||
:group 'minibuffer)
|
:group 'minibuffer)
|
||||||
|
|
||||||
|
|
|
@ -3342,10 +3342,15 @@ Outline mode sets this."
|
||||||
(or (memq prop buffer-invisibility-spec)
|
(or (memq prop buffer-invisibility-spec)
|
||||||
(assq prop buffer-invisibility-spec)))))
|
(assq prop buffer-invisibility-spec)))))
|
||||||
|
|
||||||
;; Perform vertical scrolling of tall images if necessary.
|
;; This is like line-move-1 except that it also performs
|
||||||
;; Don't vscroll in a keyboard macro.
|
;; vertical scrolling of tall images if appropriate.
|
||||||
|
;; That is not really a clean thing to do, since it mixes
|
||||||
|
;; scrolling with cursor motion. But so far we don't have
|
||||||
|
;; a cleaner solution to the problem of making C-n do something
|
||||||
|
;; useful given a tall image.
|
||||||
(defun line-move (arg &optional noerror to-end try-vscroll)
|
(defun line-move (arg &optional noerror to-end try-vscroll)
|
||||||
(if (and auto-window-vscroll try-vscroll
|
(if (and auto-window-vscroll try-vscroll
|
||||||
|
;; But don't vscroll in a keyboard macro.
|
||||||
(not defining-kbd-macro)
|
(not defining-kbd-macro)
|
||||||
(not executing-kbd-macro))
|
(not executing-kbd-macro))
|
||||||
(let ((forward (> arg 0))
|
(let ((forward (> arg 0))
|
||||||
|
@ -3368,6 +3373,8 @@ Outline mode sets this."
|
||||||
;; Update display before calling pos-visible-in-window-p,
|
;; Update display before calling pos-visible-in-window-p,
|
||||||
;; because it depends on window-start being up-to-date.
|
;; because it depends on window-start being up-to-date.
|
||||||
(sit-for 0)
|
(sit-for 0)
|
||||||
|
;; If the current line is partly hidden at the bottom,
|
||||||
|
;; scroll it partially up so as to unhide the bottom.
|
||||||
(if (and (setq part (nth 2 (pos-visible-in-window-p
|
(if (and (setq part (nth 2 (pos-visible-in-window-p
|
||||||
(line-beginning-position) nil t)))
|
(line-beginning-position) nil t)))
|
||||||
(> (cdr part) 0))
|
(> (cdr part) 0))
|
||||||
|
@ -4833,7 +4840,11 @@ of the differing parts is, by contrast, slightly highlighted."
|
||||||
(- (point) (minibuffer-prompt-end)))))
|
(- (point) (minibuffer-prompt-end)))))
|
||||||
;; Otherwise, in minibuffer, the whole input is being completed.
|
;; Otherwise, in minibuffer, the whole input is being completed.
|
||||||
(if (minibufferp mainbuf)
|
(if (minibufferp mainbuf)
|
||||||
(setq completion-base-size 0)))
|
(if (and (symbolp minibuffer-completion-table)
|
||||||
|
(get minibuffer-completion-table 'completion-base-size-function))
|
||||||
|
(setq completion-base-size
|
||||||
|
(funcall (get minibuffer-completion-table 'completion-base-size-function)))
|
||||||
|
(setq completion-base-size 0))))
|
||||||
;; Put faces on first uncommon characters and common parts.
|
;; Put faces on first uncommon characters and common parts.
|
||||||
(when completion-base-size
|
(when completion-base-size
|
||||||
(let* ((common-string-length
|
(let* ((common-string-length
|
||||||
|
|
|
@ -1970,7 +1970,7 @@ The value returned is the value of the last form in BODY."
|
||||||
'((save-match-data-internal (match-data)))
|
'((save-match-data-internal (match-data)))
|
||||||
(list 'unwind-protect
|
(list 'unwind-protect
|
||||||
(cons 'progn body)
|
(cons 'progn body)
|
||||||
'(set-match-data save-match-data-internal))))
|
'(set-match-data save-match-data-internal 'evaporate))))
|
||||||
|
|
||||||
(defun match-string (num &optional string)
|
(defun match-string (num &optional string)
|
||||||
"Return string of text matched by last search.
|
"Return string of text matched by last search.
|
||||||
|
|
|
@ -228,7 +228,6 @@ http://strw.leidenuniv.nl/~dominik/Tools"
|
||||||
:version "21.1"
|
:version "21.1"
|
||||||
:type 'boolean)
|
:type 'boolean)
|
||||||
|
|
||||||
;;;###autoload
|
|
||||||
(defcustom flyspell-mode-line-string " Fly"
|
(defcustom flyspell-mode-line-string " Fly"
|
||||||
"*String displayed on the modeline when flyspell is active.
|
"*String displayed on the modeline when flyspell is active.
|
||||||
Set this to nil if you don't want a modeline indicator."
|
Set this to nil if you don't want a modeline indicator."
|
||||||
|
@ -268,11 +267,7 @@ If `flyspell-large-region' is nil, all regions are treated as small."
|
||||||
:type 'boolean)
|
:type 'boolean)
|
||||||
|
|
||||||
(defcustom flyspell-auto-correct-binding
|
(defcustom flyspell-auto-correct-binding
|
||||||
(cond
|
[(control ?\;)]
|
||||||
((eq flyspell-emacs 'xemacs)
|
|
||||||
[(control \;)])
|
|
||||||
(t
|
|
||||||
[?\C-\;]))
|
|
||||||
"The key binding for flyspell auto correction."
|
"The key binding for flyspell auto correction."
|
||||||
:group 'flyspell)
|
:group 'flyspell)
|
||||||
|
|
||||||
|
@ -410,10 +405,6 @@ property of the major mode name.")
|
||||||
;*---------------------------------------------------------------------*/
|
;*---------------------------------------------------------------------*/
|
||||||
(eval-when-compile (defvar flyspell-local-mouse-map))
|
(eval-when-compile (defvar flyspell-local-mouse-map))
|
||||||
|
|
||||||
;;;###autoload
|
|
||||||
(defvar flyspell-mode nil)
|
|
||||||
(make-variable-buffer-local 'flyspell-mode)
|
|
||||||
|
|
||||||
(defvar flyspell-mouse-map
|
(defvar flyspell-mouse-map
|
||||||
(let ((map (make-sparse-keymap)))
|
(let ((map (make-sparse-keymap)))
|
||||||
(if flyspell-use-meta-tab
|
(if flyspell-use-meta-tab
|
||||||
|
@ -425,26 +416,18 @@ property of the major mode name.")
|
||||||
(define-key map [(control \.)] 'flyspell-auto-correct-word)
|
(define-key map [(control \.)] 'flyspell-auto-correct-word)
|
||||||
map))
|
map))
|
||||||
|
|
||||||
;;;###autoload
|
(defvar flyspell-mode-map
|
||||||
(defvar flyspell-mode-map (make-sparse-keymap))
|
(let ((map (make-sparse-keymap)))
|
||||||
|
;; mouse, keyboard bindings and misc definition
|
||||||
;; mouse, keyboard bindings and misc definition
|
(if flyspell-use-meta-tab
|
||||||
(when (or (assoc 'flyspell-mode minor-mode-map-alist)
|
(define-key map "\M-\t" 'flyspell-auto-correct-word))
|
||||||
(setq minor-mode-map-alist
|
(cond
|
||||||
(cons (cons 'flyspell-mode flyspell-mode-map)
|
;; I don't understand this test, so I left it as is. --Stef
|
||||||
minor-mode-map-alist)))
|
((or (featurep 'xemacs) flyspell-use-local-map)
|
||||||
(if flyspell-use-meta-tab
|
(define-key map flyspell-auto-correct-binding 'flyspell-auto-correct-previous-word)
|
||||||
(define-key flyspell-mode-map "\M-\t" 'flyspell-auto-correct-word))
|
(define-key map [(control ?\,)] 'flyspell-goto-next-error)
|
||||||
(cond
|
(define-key map [(control ?\.)] 'flyspell-auto-correct-word)))
|
||||||
((eq flyspell-emacs 'xemacs)
|
map))
|
||||||
(define-key flyspell-mode-map flyspell-auto-correct-binding 'flyspell-auto-correct-previous-word)
|
|
||||||
(define-key flyspell-mode-map [(control \,)] 'flyspell-goto-next-error)
|
|
||||||
(define-key flyspell-mode-map [(control \.)] 'flyspell-auto-correct-word))
|
|
||||||
(flyspell-use-local-map
|
|
||||||
(define-key flyspell-mode-map flyspell-auto-correct-binding 'flyspell-auto-correct-previous-word)
|
|
||||||
(define-key flyspell-mode-map [?\C-\,] 'flyspell-goto-next-error)
|
|
||||||
(define-key flyspell-mode-map [?\C-\.] 'flyspell-auto-correct-word))))
|
|
||||||
|
|
||||||
|
|
||||||
;; the name of the overlay property that defines the keymap
|
;; the name of the overlay property that defines the keymap
|
||||||
(defvar flyspell-overlay-keymap-property-name 'keymap)
|
(defvar flyspell-overlay-keymap-property-name 'keymap)
|
||||||
|
@ -462,20 +445,14 @@ property of the major mode name.")
|
||||||
;* Highlighting */
|
;* Highlighting */
|
||||||
;*---------------------------------------------------------------------*/
|
;*---------------------------------------------------------------------*/
|
||||||
(defface flyspell-incorrect-face
|
(defface flyspell-incorrect-face
|
||||||
(if (eq flyspell-emacs 'xemacs)
|
'((((class color)) (:foreground "OrangeRed" :bold t :underline t))
|
||||||
'((((class color)) (:foreground "OrangeRed" :bold t :underline t))
|
(t (:bold t)))
|
||||||
(t (:bold t)))
|
|
||||||
'((((class color)) (:foreground "OrangeRed" :weight bold :underline t))
|
|
||||||
(t (:weight bold))))
|
|
||||||
"Face used for marking a misspelled word in Flyspell."
|
"Face used for marking a misspelled word in Flyspell."
|
||||||
:group 'flyspell)
|
:group 'flyspell)
|
||||||
|
|
||||||
(defface flyspell-duplicate-face
|
(defface flyspell-duplicate-face
|
||||||
(if (eq flyspell-emacs 'xemacs)
|
'((((class color)) (:foreground "Gold3" :bold t :underline t))
|
||||||
'((((class color)) (:foreground "Gold3" :bold t :underline t))
|
(t (:bold t)))
|
||||||
(t (:bold t)))
|
|
||||||
'((((class color)) (:foreground "Gold3" :weight bold :underline t))
|
|
||||||
(t (:weight bold))))
|
|
||||||
"Face used for marking a misspelled word that appears twice in the buffer.
|
"Face used for marking a misspelled word that appears twice in the buffer.
|
||||||
See also `flyspell-duplicate-distance'."
|
See also `flyspell-duplicate-distance'."
|
||||||
:group 'flyspell)
|
:group 'flyspell)
|
||||||
|
@ -486,7 +463,7 @@ See also `flyspell-duplicate-distance'."
|
||||||
;* flyspell-mode ... */
|
;* flyspell-mode ... */
|
||||||
;*---------------------------------------------------------------------*/
|
;*---------------------------------------------------------------------*/
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun flyspell-mode (&optional arg)
|
(define-minor-mode flyspell-mode
|
||||||
"Minor mode performing on-the-fly spelling checking.
|
"Minor mode performing on-the-fly spelling checking.
|
||||||
This spawns a single Ispell process and checks each word.
|
This spawns a single Ispell process and checks each word.
|
||||||
The default flyspell behavior is to highlight incorrect words.
|
The default flyspell behavior is to highlight incorrect words.
|
||||||
|
@ -514,28 +491,12 @@ in your .emacs file.
|
||||||
|
|
||||||
\\[flyspell-region] checks all words inside a region.
|
\\[flyspell-region] checks all words inside a region.
|
||||||
\\[flyspell-buffer] checks the whole buffer."
|
\\[flyspell-buffer] checks the whole buffer."
|
||||||
(interactive "P")
|
:lighter flyspell-mode-line-string
|
||||||
(let ((old-flyspell-mode flyspell-mode))
|
:keymap flyspell-mode-map
|
||||||
;; Mark the mode as on or off.
|
:group 'flyspell
|
||||||
(setq flyspell-mode (not (or (and (null arg) flyspell-mode)
|
(if flyspell-mode
|
||||||
(<= (prefix-numeric-value arg) 0))))
|
(flyspell-mode-on)
|
||||||
;; Do the real work.
|
(flyspell-mode-off)))
|
||||||
(unless (eq flyspell-mode old-flyspell-mode)
|
|
||||||
(if flyspell-mode
|
|
||||||
(flyspell-mode-on)
|
|
||||||
(flyspell-mode-off))
|
|
||||||
;; Force modeline redisplay.
|
|
||||||
(set-buffer-modified-p (buffer-modified-p)))))
|
|
||||||
|
|
||||||
;*---------------------------------------------------------------------*/
|
|
||||||
;* Autoloading */
|
|
||||||
;*---------------------------------------------------------------------*/
|
|
||||||
;;;###autoload
|
|
||||||
(add-minor-mode 'flyspell-mode
|
|
||||||
'flyspell-mode-line-string
|
|
||||||
flyspell-mode-map
|
|
||||||
nil
|
|
||||||
'flyspell-mode)
|
|
||||||
|
|
||||||
;*---------------------------------------------------------------------*/
|
;*---------------------------------------------------------------------*/
|
||||||
;* flyspell-buffers ... */
|
;* flyspell-buffers ... */
|
||||||
|
@ -1057,8 +1018,7 @@ Mostly we check word delimiters."
|
||||||
(cond
|
(cond
|
||||||
((and (or (not (eq ispell-parser 'tex))
|
((and (or (not (eq ispell-parser 'tex))
|
||||||
(and (> start (point-min))
|
(and (> start (point-min))
|
||||||
(not (eq (char-after (1- start)) ?}))
|
(not (memq (char-after (1- start)) '(?\} ?\\)))))
|
||||||
(not (eq (char-after (1- start)) ?\\))))
|
|
||||||
flyspell-mark-duplications-flag
|
flyspell-mark-duplications-flag
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(goto-char (1- start))
|
(goto-char (1- start))
|
||||||
|
@ -1181,20 +1141,21 @@ Mostly we check word delimiters."
|
||||||
;* time that function is called. */
|
;* time that function is called. */
|
||||||
;*---------------------------------------------------------------------*/
|
;*---------------------------------------------------------------------*/
|
||||||
(defun flyspell-math-tex-command-p ()
|
(defun flyspell-math-tex-command-p ()
|
||||||
(cond
|
(when (fboundp 'texmathp)
|
||||||
(flyspell-check-tex-math-command
|
(cond
|
||||||
nil)
|
(flyspell-check-tex-math-command
|
||||||
((eq flyspell-tex-math-initialized t)
|
nil)
|
||||||
(texmathp))
|
((eq flyspell-tex-math-initialized t)
|
||||||
((eq flyspell-tex-math-initialized 'error)
|
(texmathp))
|
||||||
nil)
|
((eq flyspell-tex-math-initialized 'error)
|
||||||
(t
|
nil)
|
||||||
(setq flyspell-tex-math-initialized t)
|
(t
|
||||||
(condition-case nil
|
(setq flyspell-tex-math-initialized t)
|
||||||
(texmathp)
|
(condition-case nil
|
||||||
(error (progn
|
(texmathp)
|
||||||
(setq flyspell-tex-math-initialized 'error)
|
(error (progn
|
||||||
nil))))))
|
(setq flyspell-tex-math-initialized 'error)
|
||||||
|
nil)))))))
|
||||||
|
|
||||||
;*---------------------------------------------------------------------*/
|
;*---------------------------------------------------------------------*/
|
||||||
;* flyspell-tex-command-p ... */
|
;* flyspell-tex-command-p ... */
|
||||||
|
@ -1381,9 +1342,7 @@ Word syntax described by `flyspell-dictionary-alist' (which see)."
|
||||||
(let ((buffer flyspell-external-ispell-buffer))
|
(let ((buffer flyspell-external-ispell-buffer))
|
||||||
(set-buffer buffer)
|
(set-buffer buffer)
|
||||||
(goto-char (point-min))
|
(goto-char (point-min))
|
||||||
(let ((size (- flyspell-large-region-end flyspell-large-region-beg))
|
(let ((pword "")
|
||||||
(start flyspell-large-region-beg)
|
|
||||||
(pword "")
|
|
||||||
(pcount 1))
|
(pcount 1))
|
||||||
;; now we are done with ispell, we have to find the word in
|
;; now we are done with ispell, we have to find the word in
|
||||||
;; the initial buffer
|
;; the initial buffer
|
||||||
|
@ -1954,7 +1913,7 @@ The word checked is the word at the mouse position."
|
||||||
(let ((start (car (cdr word)))
|
(let ((start (car (cdr word)))
|
||||||
(end (car (cdr (cdr word))))
|
(end (car (cdr (cdr word))))
|
||||||
(word (car word))
|
(word (car word))
|
||||||
poss replace)
|
poss)
|
||||||
;; now check spelling of word.
|
;; now check spelling of word.
|
||||||
(process-send-string ispell-process "%\n") ;put in verbose mode
|
(process-send-string ispell-process "%\n") ;put in verbose mode
|
||||||
(process-send-string ispell-process (concat "^" word "\n"))
|
(process-send-string ispell-process (concat "^" word "\n"))
|
||||||
|
@ -1972,89 +1931,65 @@ The word checked is the word at the mouse position."
|
||||||
((null poss)
|
((null poss)
|
||||||
;; ispell error
|
;; ispell error
|
||||||
(error "Ispell: error in Ispell process"))
|
(error "Ispell: error in Ispell process"))
|
||||||
((string-match "GNU" (emacs-version))
|
((featurep 'xemacs)
|
||||||
;; the word is incorrect, we have to propose a replacement
|
|
||||||
(setq replace (flyspell-emacs-popup event poss word))
|
|
||||||
(cond ((eq replace 'ignore)
|
|
||||||
(goto-char save)
|
|
||||||
nil)
|
|
||||||
((eq replace 'save)
|
|
||||||
(goto-char save)
|
|
||||||
(process-send-string ispell-process
|
|
||||||
(concat "*" word "\n"))
|
|
||||||
(flyspell-unhighlight-at cursor-location)
|
|
||||||
(setq ispell-pdict-modified-p '(t)))
|
|
||||||
((or (eq replace 'buffer) (eq replace 'session))
|
|
||||||
(process-send-string ispell-process
|
|
||||||
(concat "@" word "\n"))
|
|
||||||
(if (null ispell-pdict-modified-p)
|
|
||||||
(setq ispell-pdict-modified-p
|
|
||||||
(list ispell-pdict-modified-p)))
|
|
||||||
(flyspell-unhighlight-at cursor-location)
|
|
||||||
(goto-char save)
|
|
||||||
(if (eq replace 'buffer)
|
|
||||||
(ispell-add-per-file-word-list word)))
|
|
||||||
(replace
|
|
||||||
(flyspell-unhighlight-at cursor-location)
|
|
||||||
(let ((new-word (if (atom replace)
|
|
||||||
replace
|
|
||||||
(car replace)))
|
|
||||||
(cursor-location
|
|
||||||
(+ (- (length word) (- end start))
|
|
||||||
cursor-location)))
|
|
||||||
(if (not (equal new-word (car poss)))
|
|
||||||
(let ((old-max (point-max)))
|
|
||||||
(delete-region start end)
|
|
||||||
(funcall flyspell-insert-function new-word)
|
|
||||||
(if flyspell-abbrev-p
|
|
||||||
(flyspell-define-abbrev word new-word))
|
|
||||||
(flyspell-ajust-cursor-point save
|
|
||||||
cursor-location
|
|
||||||
old-max)))))
|
|
||||||
(t
|
|
||||||
(goto-char save)
|
|
||||||
nil)))
|
|
||||||
((eq flyspell-emacs 'xemacs)
|
|
||||||
(flyspell-xemacs-popup
|
(flyspell-xemacs-popup
|
||||||
event poss word cursor-location start end save)
|
event poss word cursor-location start end save))
|
||||||
(goto-char save)))
|
(t
|
||||||
|
;; The word is incorrect, we have to propose a replacement.
|
||||||
|
(flyspell-do-correct (flyspell-emacs-popup event poss word)
|
||||||
|
poss word cursor-location start end save)))
|
||||||
(ispell-pdict-save t))))))
|
(ispell-pdict-save t))))))
|
||||||
|
|
||||||
;*---------------------------------------------------------------------*/
|
;*---------------------------------------------------------------------*/
|
||||||
;* flyspell-xemacs-correct ... */
|
;* flyspell-do-correct ... */
|
||||||
;*---------------------------------------------------------------------*/
|
;*---------------------------------------------------------------------*/
|
||||||
(defun flyspell-xemacs-correct (replace poss word cursor-location start end save)
|
(defun flyspell-do-correct (replace poss word cursor-location start end save)
|
||||||
"The xemacs popup menu callback."
|
"The popup menu callback."
|
||||||
|
;; Originally, the XEmacs code didn't do the (goto-char save) here and did
|
||||||
|
;; it instead right after calling the function.
|
||||||
(cond ((eq replace 'ignore)
|
(cond ((eq replace 'ignore)
|
||||||
|
(goto-char save)
|
||||||
nil)
|
nil)
|
||||||
((eq replace 'save)
|
((eq replace 'save)
|
||||||
(process-send-string ispell-process (concat "*" word "\n"))
|
(goto-char save)
|
||||||
(process-send-string ispell-process "#\n")
|
(ispell-send-string (concat "*" word "\n"))
|
||||||
|
;; This was added only to the XEmacs side in revision 1.18 of
|
||||||
|
;; flyspell. I assume its absence on the Emacs side was an
|
||||||
|
;; oversight. --Stef
|
||||||
|
(ispell-send-string "#\n")
|
||||||
(flyspell-unhighlight-at cursor-location)
|
(flyspell-unhighlight-at cursor-location)
|
||||||
(setq ispell-pdict-modified-p '(t)))
|
(setq ispell-pdict-modified-p '(t)))
|
||||||
((or (eq replace 'buffer) (eq replace 'session))
|
((or (eq replace 'buffer) (eq replace 'session))
|
||||||
(process-send-string ispell-process (concat "@" word "\n"))
|
(ispell-send-string (concat "@" word "\n"))
|
||||||
(flyspell-unhighlight-at cursor-location)
|
(flyspell-unhighlight-at cursor-location)
|
||||||
(if (null ispell-pdict-modified-p)
|
(if (null ispell-pdict-modified-p)
|
||||||
(setq ispell-pdict-modified-p
|
(setq ispell-pdict-modified-p
|
||||||
(list ispell-pdict-modified-p)))
|
(list ispell-pdict-modified-p)))
|
||||||
|
(goto-char save)
|
||||||
(if (eq replace 'buffer)
|
(if (eq replace 'buffer)
|
||||||
(ispell-add-per-file-word-list word)))
|
(ispell-add-per-file-word-list word)))
|
||||||
(replace
|
(replace
|
||||||
|
;; This was added only to the Emacs side. I assume its absence on
|
||||||
|
;; the XEmacs side was an oversight. --Stef
|
||||||
|
(flyspell-unhighlight-at cursor-location)
|
||||||
(let ((old-max (point-max))
|
(let ((old-max (point-max))
|
||||||
(new-word (if (atom replace)
|
(new-word (if (atom replace)
|
||||||
replace
|
replace
|
||||||
(car replace)))
|
(car replace)))
|
||||||
(cursor-location (+ (- (length word) (- end start))
|
(cursor-location (+ (- (length word) (- end start))
|
||||||
cursor-location)))
|
cursor-location)))
|
||||||
(if (not (equal new-word (car poss)))
|
(unless (equal new-word (car poss))
|
||||||
(progn
|
(delete-region start end)
|
||||||
(delete-region start end)
|
(goto-char start)
|
||||||
(goto-char start)
|
(funcall flyspell-insert-function new-word)
|
||||||
(funcall flyspell-insert-function new-word)
|
(if flyspell-abbrev-p
|
||||||
(if flyspell-abbrev-p
|
(flyspell-define-abbrev word new-word)))
|
||||||
(flyspell-define-abbrev word new-word))))
|
;; In the original Emacs code, this was only called in the body
|
||||||
(flyspell-ajust-cursor-point save cursor-location old-max)))))
|
;; of the if. I arbitrarily kept the XEmacs behavior instead.
|
||||||
|
(flyspell-ajust-cursor-point save cursor-location old-max)))
|
||||||
|
(t
|
||||||
|
(goto-char save)
|
||||||
|
nil)))
|
||||||
|
|
||||||
;*---------------------------------------------------------------------*/
|
;*---------------------------------------------------------------------*/
|
||||||
;* flyspell-ajust-cursor-point ... */
|
;* flyspell-ajust-cursor-point ... */
|
||||||
|
@ -2123,7 +2058,7 @@ The word checked is the word at the mouse position."
|
||||||
(cor-menu (if (consp corrects)
|
(cor-menu (if (consp corrects)
|
||||||
(mapcar (lambda (correct)
|
(mapcar (lambda (correct)
|
||||||
(vector correct
|
(vector correct
|
||||||
(list 'flyspell-xemacs-correct
|
(list 'flyspell-do-correct
|
||||||
correct
|
correct
|
||||||
(list 'quote poss)
|
(list 'quote poss)
|
||||||
word
|
word
|
||||||
|
@ -2138,7 +2073,7 @@ The word checked is the word at the mouse position."
|
||||||
(menu (let ((save (if (consp affix)
|
(menu (let ((save (if (consp affix)
|
||||||
(vector
|
(vector
|
||||||
(concat "Save affix: " (car affix))
|
(concat "Save affix: " (car affix))
|
||||||
(list 'flyspell-xemacs-correct
|
(list 'flyspell-do-correct
|
||||||
''save
|
''save
|
||||||
(list 'quote poss)
|
(list 'quote poss)
|
||||||
word
|
word
|
||||||
|
@ -2149,7 +2084,7 @@ The word checked is the word at the mouse position."
|
||||||
t)
|
t)
|
||||||
(vector
|
(vector
|
||||||
"Save word"
|
"Save word"
|
||||||
(list 'flyspell-xemacs-correct
|
(list 'flyspell-do-correct
|
||||||
''save
|
''save
|
||||||
(list 'quote poss)
|
(list 'quote poss)
|
||||||
word
|
word
|
||||||
|
@ -2159,7 +2094,7 @@ The word checked is the word at the mouse position."
|
||||||
save)
|
save)
|
||||||
t)))
|
t)))
|
||||||
(session (vector "Accept (session)"
|
(session (vector "Accept (session)"
|
||||||
(list 'flyspell-xemacs-correct
|
(list 'flyspell-do-correct
|
||||||
''session
|
''session
|
||||||
(list 'quote poss)
|
(list 'quote poss)
|
||||||
word
|
word
|
||||||
|
@ -2169,7 +2104,7 @@ The word checked is the word at the mouse position."
|
||||||
save)
|
save)
|
||||||
t))
|
t))
|
||||||
(buffer (vector "Accept (buffer)"
|
(buffer (vector "Accept (buffer)"
|
||||||
(list 'flyspell-xemacs-correct
|
(list 'flyspell-do-correct
|
||||||
''buffer
|
''buffer
|
||||||
(list 'quote poss)
|
(list 'quote poss)
|
||||||
word
|
word
|
||||||
|
|
|
@ -796,19 +796,16 @@ Otherwise returns the library directory name, if that is defined."
|
||||||
nil t)
|
nil t)
|
||||||
case-fold-search case-fold-search-val)
|
case-fold-search case-fold-search-val)
|
||||||
(if (or (not status) ; major version mismatch
|
(if (or (not status) ; major version mismatch
|
||||||
(< (car (read-from-string (buffer-substring-no-properties
|
(< (car (read-from-string (match-string-no-properties 2)))
|
||||||
(match-beginning 2) (match-end 2))))
|
|
||||||
(car (cdr ispell-required-version)))) ; minor version mismatch
|
(car (cdr ispell-required-version)))) ; minor version mismatch
|
||||||
(error "%s version 3 release %d.%d.%d or greater is required"
|
(error "%s version 3 release %d.%d.%d or greater is required"
|
||||||
ispell-program-name (car ispell-required-version)
|
ispell-program-name (car ispell-required-version)
|
||||||
(car (cdr ispell-required-version))
|
(car (cdr ispell-required-version))
|
||||||
(car (cdr (cdr ispell-required-version))))
|
(car (cdr (cdr ispell-required-version))))
|
||||||
;; check that it is the correct version.
|
;; check that it is the correct version.
|
||||||
(if (and (= (car (read-from-string (buffer-substring-no-properties
|
(if (and (= (car (read-from-string (match-string-no-properties 2)))
|
||||||
(match-beginning 2)(match-end 2))))
|
|
||||||
(car (cdr ispell-required-version)))
|
(car (cdr ispell-required-version)))
|
||||||
(< (car (read-from-string (buffer-substring-no-properties
|
(< (car (read-from-string (match-string-no-properties 3)))
|
||||||
(match-beginning 3)(match-end 3))))
|
|
||||||
(car (cdr (cdr ispell-required-version)))))
|
(car (cdr (cdr ispell-required-version)))))
|
||||||
(setq ispell-offset 0))
|
(setq ispell-offset 0))
|
||||||
;; Check to see if it's really aspell.
|
;; Check to see if it's really aspell.
|
||||||
|
@ -2537,9 +2534,7 @@ Return nil if spell session is quit,
|
||||||
(ispell-begin-skip-region-regexp)
|
(ispell-begin-skip-region-regexp)
|
||||||
ispell-region-end t))
|
ispell-region-end t))
|
||||||
(progn
|
(progn
|
||||||
(setq key (buffer-substring-no-properties
|
(setq key (match-string-no-properties 0))
|
||||||
(car (match-data))
|
|
||||||
(car (cdr (match-data)))))
|
|
||||||
(set-marker skip-region-start
|
(set-marker skip-region-start
|
||||||
(- (point) (length key)))
|
(- (point) (length key)))
|
||||||
(goto-char rstart))
|
(goto-char rstart))
|
||||||
|
@ -3480,8 +3475,7 @@ Includes Latex/Nroff modes and extended character mode."
|
||||||
(search-forward ispell-parsing-keyword)
|
(search-forward ispell-parsing-keyword)
|
||||||
(while (re-search-forward " *\\([^ \"]+\\)" end t)
|
(while (re-search-forward " *\\([^ \"]+\\)" end t)
|
||||||
;; space separated definitions.
|
;; space separated definitions.
|
||||||
(setq string (downcase (buffer-substring-no-properties
|
(setq string (downcase (match-string-no-properties 1)))
|
||||||
(match-beginning 1) (match-end 1))))
|
|
||||||
(cond ((and (string-match "latex-mode" string)
|
(cond ((and (string-match "latex-mode" string)
|
||||||
(not (eq 'exclusive ispell-check-comments)))
|
(not (eq 'exclusive ispell-check-comments)))
|
||||||
(ispell-send-string "+\n~tex\n"))
|
(ispell-send-string "+\n~tex\n"))
|
||||||
|
@ -3514,8 +3508,7 @@ Both should not be used to define a buffer-local dictionary."
|
||||||
(setq end (save-excursion (end-of-line) (point)))
|
(setq end (save-excursion (end-of-line) (point)))
|
||||||
(if (re-search-forward " *\\([^ \"]+\\)" end t)
|
(if (re-search-forward " *\\([^ \"]+\\)" end t)
|
||||||
(setq ispell-local-dictionary
|
(setq ispell-local-dictionary
|
||||||
(buffer-substring-no-properties (match-beginning 1)
|
(match-string-no-properties 1))))))
|
||||||
(match-end 1)))))))
|
|
||||||
(goto-char (point-max))
|
(goto-char (point-max))
|
||||||
(if (search-backward ispell-pdict-keyword nil t)
|
(if (search-backward ispell-pdict-keyword nil t)
|
||||||
(progn
|
(progn
|
||||||
|
@ -3523,8 +3516,7 @@ Both should not be used to define a buffer-local dictionary."
|
||||||
(setq end (save-excursion (end-of-line) (point)))
|
(setq end (save-excursion (end-of-line) (point)))
|
||||||
(if (re-search-forward " *\\([^ \"]+\\)" end t)
|
(if (re-search-forward " *\\([^ \"]+\\)" end t)
|
||||||
(setq ispell-local-pdict
|
(setq ispell-local-pdict
|
||||||
(buffer-substring-no-properties (match-beginning 1)
|
(match-string-no-properties 1)))))))
|
||||||
(match-end 1))))))))
|
|
||||||
;; Reload if new personal dictionary defined.
|
;; Reload if new personal dictionary defined.
|
||||||
(if (and ispell-local-pdict
|
(if (and ispell-local-pdict
|
||||||
(not (equal ispell-local-pdict ispell-personal-dictionary)))
|
(not (equal ispell-local-pdict ispell-personal-dictionary)))
|
||||||
|
@ -3554,8 +3546,7 @@ Both should not be used to define a buffer-local dictionary."
|
||||||
;; buffer-local words separated by a space, and can contain
|
;; buffer-local words separated by a space, and can contain
|
||||||
;; any character other than a space. Not rigorous enough.
|
;; any character other than a space. Not rigorous enough.
|
||||||
(while (re-search-forward " *\\([^ ]+\\)" end t)
|
(while (re-search-forward " *\\([^ ]+\\)" end t)
|
||||||
(setq string (buffer-substring-no-properties (match-beginning 1)
|
(setq string (match-string-no-properties 1))
|
||||||
(match-end 1)))
|
|
||||||
;; This can fail when string contains a word with illegal chars.
|
;; This can fail when string contains a word with illegal chars.
|
||||||
;; Error handling needs to be added between ispell and emacs.
|
;; Error handling needs to be added between ispell and emacs.
|
||||||
(if (and (< 1 (length string))
|
(if (and (< 1 (length string))
|
||||||
|
|
|
@ -154,8 +154,6 @@
|
||||||
(require 'outline)
|
(require 'outline)
|
||||||
(require 'time-date)
|
(require 'time-date)
|
||||||
(require 'easymenu)
|
(require 'easymenu)
|
||||||
(or (fboundp 'run-mode-hooks)
|
|
||||||
(defalias 'run-mode-hooks 'run-hooks))
|
|
||||||
|
|
||||||
;;; Customization variables
|
;;; Customization variables
|
||||||
|
|
||||||
|
@ -384,6 +382,12 @@ or contain a special line
|
||||||
If the file does not specify a category, then file's base name
|
If the file does not specify a category, then file's base name
|
||||||
is used instead.")
|
is used instead.")
|
||||||
|
|
||||||
|
(defun org-run-mode-hooks (&rest hooks)
|
||||||
|
"Call `run-mode-hooks' if it is available; otherwise call `run-hooks'."
|
||||||
|
(if (fboundp 'run-mode-hooks)
|
||||||
|
(apply 'run-mode-hooks hooks)
|
||||||
|
(apply 'run-hooks hooks)))
|
||||||
|
|
||||||
(defun org-set-regexps-and-options ()
|
(defun org-set-regexps-and-options ()
|
||||||
"Precompute regular expressions for current buffer."
|
"Precompute regular expressions for current buffer."
|
||||||
(when (eq major-mode 'org-mode)
|
(when (eq major-mode 'org-mode)
|
||||||
|
@ -3118,7 +3122,7 @@ The following commands are available:
|
||||||
"--")
|
"--")
|
||||||
(mapcar 'org-file-menu-entry org-agenda-files)))
|
(mapcar 'org-file-menu-entry org-agenda-files)))
|
||||||
(org-agenda-set-mode-name)
|
(org-agenda-set-mode-name)
|
||||||
(run-mode-hooks 'org-agenda-mode-hook))
|
(org-run-mode-hooks 'org-agenda-mode-hook))
|
||||||
|
|
||||||
(define-key org-agenda-mode-map [(tab)] 'org-agenda-goto)
|
(define-key org-agenda-mode-map [(tab)] 'org-agenda-goto)
|
||||||
(define-key org-agenda-mode-map [(return)] 'org-agenda-switch-to)
|
(define-key org-agenda-mode-map [(return)] 'org-agenda-switch-to)
|
||||||
|
|
|
@ -795,7 +795,7 @@ Inherits `shell-mode-map' with a few additions.")
|
||||||
(regexp-opt '("documentstyle" "documentclass"
|
(regexp-opt '("documentstyle" "documentclass"
|
||||||
"begin" "subsection" "section"
|
"begin" "subsection" "section"
|
||||||
"part" "chapter" "newcommand"
|
"part" "chapter" "newcommand"
|
||||||
"renewcommand") 'words)
|
"renewcommand" "RequirePackage") 'words)
|
||||||
"\\|NeedsTeXFormat{LaTeX")))
|
"\\|NeedsTeXFormat{LaTeX")))
|
||||||
(if (and (looking-at
|
(if (and (looking-at
|
||||||
"document\\(style\\|class\\)\\(\\[.*\\]\\)?{slides}")
|
"document\\(style\\|class\\)\\(\\[.*\\]\\)?{slides}")
|
||||||
|
@ -1639,9 +1639,12 @@ If NOT-ALL is non-nil, save the `.dvi' file."
|
||||||
" " (if (< 0 (length tex-start-commands))
|
" " (if (< 0 (length tex-start-commands))
|
||||||
(shell-quote-argument tex-start-commands)) " %f")
|
(shell-quote-argument tex-start-commands)) " %f")
|
||||||
t "%r.dvi")
|
t "%r.dvi")
|
||||||
("yap %r &" "%r.dvi")
|
|
||||||
("xdvi %r &" "%r.dvi")
|
("xdvi %r &" "%r.dvi")
|
||||||
|
("xpdf %r.pdf &" "%r.pdf")
|
||||||
|
("gv %r.ps &" "%r.ps")
|
||||||
|
("yap %r &" "%r.dvi")
|
||||||
("advi %r &" "%r.dvi")
|
("advi %r &" "%r.dvi")
|
||||||
|
("gv %r.pdf &" "%r.pdf")
|
||||||
("bibtex %r" "%r.aux" "%r.bbl")
|
("bibtex %r" "%r.aux" "%r.bbl")
|
||||||
("makeindex %r" "%r.idx" "%r.ind")
|
("makeindex %r" "%r.idx" "%r.ind")
|
||||||
("texindex %r.??")
|
("texindex %r.??")
|
||||||
|
@ -1649,9 +1652,6 @@ If NOT-ALL is non-nil, save the `.dvi' file."
|
||||||
("dvipdf %r" "%r.dvi" "%r.pdf")
|
("dvipdf %r" "%r.dvi" "%r.pdf")
|
||||||
("dvips -o %r.ps %r" "%r.dvi" "%r.ps")
|
("dvips -o %r.ps %r" "%r.dvi" "%r.ps")
|
||||||
("ps2pdf %r.ps" "%r.ps" "%r.pdf")
|
("ps2pdf %r.ps" "%r.ps" "%r.pdf")
|
||||||
("gv %r.ps &" "%r.ps")
|
|
||||||
("gv %r.pdf &" "%r.pdf")
|
|
||||||
("xpdf %r.pdf &" "%r.pdf")
|
|
||||||
("lpr %r.ps" "%r.ps"))
|
("lpr %r.ps" "%r.ps"))
|
||||||
"List of commands for `tex-compile'.
|
"List of commands for `tex-compile'.
|
||||||
Each element should be of the form (FORMAT IN OUT) where
|
Each element should be of the form (FORMAT IN OUT) where
|
||||||
|
@ -1830,8 +1830,7 @@ FILE is typically the output DVI or PDF file."
|
||||||
(push cmd cmds)
|
(push cmd cmds)
|
||||||
(push (nth 1 cmd) unchanged-in))))
|
(push (nth 1 cmd) unchanged-in))))
|
||||||
;; If no command seems to be applicable, arbitrarily pick the first one.
|
;; If no command seems to be applicable, arbitrarily pick the first one.
|
||||||
(unless cmds
|
(setq cmds (if cmds (nreverse cmds) (list (car tex-compile-commands))))
|
||||||
(setq cmds (list (car tex-compile-commands))))
|
|
||||||
;; Remove those commands whose input was considered stable for
|
;; Remove those commands whose input was considered stable for
|
||||||
;; some other command (typically if (t . "%.pdf") is inactive
|
;; some other command (typically if (t . "%.pdf") is inactive
|
||||||
;; then we're using pdflatex and the fact that the dvi file
|
;; then we're using pdflatex and the fact that the dvi file
|
||||||
|
@ -1841,7 +1840,7 @@ FILE is typically the output DVI or PDF file."
|
||||||
(unless (member (nth 1 cmd) unchanged-in)
|
(unless (member (nth 1 cmd) unchanged-in)
|
||||||
(push cmd tmp)))
|
(push cmd tmp)))
|
||||||
;; Only remove if there's something left.
|
;; Only remove if there's something left.
|
||||||
(if tmp (setq cmds tmp)))
|
(if tmp (setq cmds (nreverse tmp))))
|
||||||
;; Remove commands whose input is not uptodate either.
|
;; Remove commands whose input is not uptodate either.
|
||||||
(let ((outs (delq nil (mapcar (lambda (x) (nth 2 x)) cmds)))
|
(let ((outs (delq nil (mapcar (lambda (x) (nth 2 x)) cmds)))
|
||||||
(tmp nil))
|
(tmp nil))
|
||||||
|
@ -1849,7 +1848,7 @@ FILE is typically the output DVI or PDF file."
|
||||||
(unless (member (nth 1 cmd) outs)
|
(unless (member (nth 1 cmd) outs)
|
||||||
(push cmd tmp)))
|
(push cmd tmp)))
|
||||||
;; Only remove if there's something left.
|
;; Only remove if there's something left.
|
||||||
(if tmp (setq cmds tmp)))
|
(if tmp (setq cmds (nreverse tmp))))
|
||||||
;; Select which file we're going to operate on (the latest).
|
;; Select which file we're going to operate on (the latest).
|
||||||
(let ((latest (nth 1 (car cmds))))
|
(let ((latest (nth 1 (car cmds))))
|
||||||
(dolist (cmd (prog1 (cdr cmds) (setq cmds (list (car cmds)))))
|
(dolist (cmd (prog1 (cdr cmds) (setq cmds (list (car cmds)))))
|
||||||
|
|
|
@ -65,8 +65,7 @@
|
||||||
:version "22.1"
|
:version "22.1"
|
||||||
:group 'multimedia)
|
:group 'multimedia)
|
||||||
|
|
||||||
(defcustom thumbs-thumbsdir
|
(defcustom thumbs-thumbsdir "~/.emacs-thumbs"
|
||||||
(expand-file-name "~/.emacs-thumbs")
|
|
||||||
"*Directory to store thumbnails."
|
"*Directory to store thumbnails."
|
||||||
:type 'directory
|
:type 'directory
|
||||||
:group 'thumbs)
|
:group 'thumbs)
|
||||||
|
@ -83,12 +82,12 @@
|
||||||
|
|
||||||
(defcustom thumbs-thumbsdir-max-size 50000000
|
(defcustom thumbs-thumbsdir-max-size 50000000
|
||||||
"Max size for thumbnails directory.
|
"Max size for thumbnails directory.
|
||||||
When it reachs that size (in bytes), a warning is sent."
|
When it reaches that size (in bytes), a warning is sent."
|
||||||
:type 'string
|
:type 'string
|
||||||
:group 'thumbs)
|
:group 'thumbs)
|
||||||
|
|
||||||
(defcustom thumbs-conversion-program
|
(defcustom thumbs-conversion-program
|
||||||
(if (equal 'windows-nt system-type)
|
(if (eq system-type 'windows-nt)
|
||||||
"convert.exe"
|
"convert.exe"
|
||||||
(or (executable-find "convert")
|
(or (executable-find "convert")
|
||||||
"/usr/X11R6/bin/convert"))
|
"/usr/X11R6/bin/convert"))
|
||||||
|
@ -117,20 +116,19 @@ This is where you see the cursor."
|
||||||
(defcustom thumbs-thumbsdir-auto-clean t
|
(defcustom thumbs-thumbsdir-auto-clean t
|
||||||
"If set, delete older file in the thumbnails directory.
|
"If set, delete older file in the thumbnails directory.
|
||||||
Deletion is done at load time when the directory size is bigger
|
Deletion is done at load time when the directory size is bigger
|
||||||
than 'thumbs-thumbsdir-max-size'."
|
than `thumbs-thumbsdir-max-size'."
|
||||||
:type 'boolean
|
:type 'boolean
|
||||||
:group 'thumbs)
|
:group 'thumbs)
|
||||||
|
|
||||||
(defcustom thumbs-image-resizing-step 10
|
(defcustom thumbs-image-resizing-step 10
|
||||||
"Step by wich to resize image."
|
"Step by which to resize image."
|
||||||
:type 'string
|
:type 'string
|
||||||
:group 'thumbs)
|
:group 'thumbs)
|
||||||
|
|
||||||
(defcustom thumbs-temp-dir
|
(defcustom thumbs-temp-dir temporary-file-directory
|
||||||
"/tmp/"
|
|
||||||
"Temporary directory to use.
|
"Temporary directory to use.
|
||||||
Leaving it to default '/tmp/' can let another user
|
Defaults to `temporary-file-directory'. Leaving it to
|
||||||
see some of your images."
|
this value can let another user see some of your images."
|
||||||
:type 'directory
|
:type 'directory
|
||||||
:group 'thumbs)
|
:group 'thumbs)
|
||||||
|
|
||||||
|
@ -140,10 +138,6 @@ see some of your images."
|
||||||
:group 'thumbs)
|
:group 'thumbs)
|
||||||
|
|
||||||
;; Initialize some variable, for later use.
|
;; Initialize some variable, for later use.
|
||||||
(defvar thumbs-temp-file
|
|
||||||
(concat thumbs-temp-dir thumbs-temp-prefix)
|
|
||||||
"Temporary filename for images.")
|
|
||||||
|
|
||||||
(defvar thumbs-current-tmp-filename
|
(defvar thumbs-current-tmp-filename
|
||||||
nil
|
nil
|
||||||
"Temporary filename of current image.")
|
"Temporary filename of current image.")
|
||||||
|
@ -163,28 +157,36 @@ see some of your images."
|
||||||
nil
|
nil
|
||||||
"List of marked files.")
|
"List of marked files.")
|
||||||
|
|
||||||
;; Make sure auto-image-file-mode is ON.
|
(defalias 'thumbs-gensym
|
||||||
(auto-image-file-mode t)
|
(if (fboundp 'gensym)
|
||||||
|
'gensym
|
||||||
|
;; Copied from cl-macs.el
|
||||||
|
(defvar thumbs-gensym-counter 0)
|
||||||
|
(lambda (&optional prefix)
|
||||||
|
"Generate a new uninterned symbol.
|
||||||
|
The name is made by appending a number to PREFIX, default \"G\"."
|
||||||
|
(let ((pfix (if (stringp prefix) prefix "G"))
|
||||||
|
(num (if (integerp prefix) prefix
|
||||||
|
(prog1 thumbs-gensym-counter
|
||||||
|
(setq thumbs-gensym-counter
|
||||||
|
(1+ thumbs-gensym-counter))))))
|
||||||
|
(make-symbol (format "%s%d" pfix num))))))
|
||||||
|
|
||||||
;; Create the thumbs directory if it does not exists.
|
(defun thumbs-temp-file ()
|
||||||
(setq thumbs-thumbsdir (expand-file-name thumbs-thumbsdir))
|
"Return a unique temporary filename for an image."
|
||||||
|
(format "%s%s-%s.jpg"
|
||||||
|
(expand-file-name thumbs-temp-dir)
|
||||||
|
thumbs-temp-prefix
|
||||||
|
(thumbs-gensym "T")))
|
||||||
|
|
||||||
(when (not (file-directory-p thumbs-thumbsdir))
|
(defun thumbs-thumbsdir ()
|
||||||
(progn
|
"Return the current thumbnails directory (from `thumbs-thumbsdir').
|
||||||
(make-directory thumbs-thumbsdir)
|
Create the thumbnails directory if it does not exist."
|
||||||
(message "Creating thumbnails directory")))
|
(let ((thumbs-thumbsdir (expand-file-name thumbs-thumbsdir)))
|
||||||
|
(unless (file-directory-p thumbs-thumbsdir)
|
||||||
(defvar thumbs-gensym-counter 0)
|
(make-directory thumbs-thumbsdir)
|
||||||
|
(message "Creating thumbnails directory"))
|
||||||
(defun thumbs-gensym (&optional arg)
|
thumbs-thumbsdir))
|
||||||
"Generate a new uninterned symbol.
|
|
||||||
The name is made by appending a number to PREFIX, default \"Thumbs\"."
|
|
||||||
(let ((prefix (if (stringp arg) arg "Thumbs"))
|
|
||||||
(num (if (integerp arg) arg
|
|
||||||
(prog1
|
|
||||||
thumbs-gensym-counter
|
|
||||||
(setq thumbs-gensym-counter (1+ thumbs-gensym-counter))))))
|
|
||||||
(make-symbol (format "%s%d" prefix num))))
|
|
||||||
|
|
||||||
(defun thumbs-cleanup-thumbsdir ()
|
(defun thumbs-cleanup-thumbsdir ()
|
||||||
"Clean the thumbnails directory.
|
"Clean the thumbnails directory.
|
||||||
|
@ -197,8 +199,8 @@ reached."
|
||||||
(lambda (f)
|
(lambda (f)
|
||||||
(let ((fattribsL (file-attributes f)))
|
(let ((fattribsL (file-attributes f)))
|
||||||
`(,(nth 4 fattribsL) ,(nth 7 fattribsL) ,f)))
|
`(,(nth 4 fattribsL) ,(nth 7 fattribsL) ,f)))
|
||||||
(directory-files thumbs-thumbsdir t (image-file-name-regexp)))
|
(directory-files (thumbs-thumbsdir) t (image-file-name-regexp)))
|
||||||
'(lambda (l1 l2) (time-less-p (car l1)(car l2)))))
|
'(lambda (l1 l2) (time-less-p (car l1) (car l2)))))
|
||||||
(dirsize (apply '+ (mapcar (lambda (x) (cadr x)) filesL))))
|
(dirsize (apply '+ (mapcar (lambda (x) (cadr x)) filesL))))
|
||||||
(while (> dirsize thumbs-thumbsdir-max-size)
|
(while (> dirsize thumbs-thumbsdir-max-size)
|
||||||
(progn
|
(progn
|
||||||
|
@ -258,7 +260,7 @@ ACTION-PREFIX is the symbol to place before the ACTION command
|
||||||
|
|
||||||
(defun thumbs-resize-image (&optional increment size)
|
(defun thumbs-resize-image (&optional increment size)
|
||||||
"Resize image in current buffer.
|
"Resize image in current buffer.
|
||||||
if INCREMENT is set, make the image bigger, else smaller.
|
If INCREMENT is set, make the image bigger, else smaller.
|
||||||
Or, alternatively, a SIZE may be specified."
|
Or, alternatively, a SIZE may be specified."
|
||||||
(interactive)
|
(interactive)
|
||||||
;; cleaning of old temp file
|
;; cleaning of old temp file
|
||||||
|
@ -276,7 +278,7 @@ Or, alternatively, a SIZE may be specified."
|
||||||
thumbs-current-image-size)
|
thumbs-current-image-size)
|
||||||
(thumbs-decrement-image-size
|
(thumbs-decrement-image-size
|
||||||
thumbs-current-image-size))))
|
thumbs-current-image-size))))
|
||||||
(tmp (format "%s%s.jpg" thumbs-temp-file (thumbs-gensym))))
|
(tmp (thumbs-temp-file)))
|
||||||
(erase-buffer)
|
(erase-buffer)
|
||||||
(thumbs-call-convert thumbs-current-image-filename
|
(thumbs-call-convert thumbs-current-image-filename
|
||||||
tmp "sample"
|
tmp "sample"
|
||||||
|
@ -286,7 +288,7 @@ Or, alternatively, a SIZE may be specified."
|
||||||
(setq thumbs-current-tmp-filename tmp)))
|
(setq thumbs-current-tmp-filename tmp)))
|
||||||
|
|
||||||
(defun thumbs-resize-interactive (width height)
|
(defun thumbs-resize-interactive (width height)
|
||||||
"Resize Image interactively to specified WIDTH and HEIGHT."
|
"Resize image interactively to specified WIDTH and HEIGHT."
|
||||||
(interactive "nWidth: \nnHeight: ")
|
(interactive "nWidth: \nnHeight: ")
|
||||||
(thumbs-resize-image nil (cons width height)))
|
(thumbs-resize-image nil (cons width height)))
|
||||||
|
|
||||||
|
@ -305,7 +307,7 @@ Or, alternatively, a SIZE may be specified."
|
||||||
(convert-standard-filename
|
(convert-standard-filename
|
||||||
(let ((filename (expand-file-name img)))
|
(let ((filename (expand-file-name img)))
|
||||||
(format "%s/%08x-%s.jpg"
|
(format "%s/%08x-%s.jpg"
|
||||||
thumbs-thumbsdir
|
(thumbs-thumbsdir)
|
||||||
(sxhash filename)
|
(sxhash filename)
|
||||||
(subst-char-in-string
|
(subst-char-in-string
|
||||||
?\s ?\_
|
?\s ?\_
|
||||||
|
@ -562,11 +564,7 @@ Open another window."
|
||||||
(defun thumbs-kill-buffer ()
|
(defun thumbs-kill-buffer ()
|
||||||
"Kill the current buffer."
|
"Kill the current buffer."
|
||||||
(interactive)
|
(interactive)
|
||||||
(let ((buffer (current-buffer)))
|
(quit-window t (selected-window)))
|
||||||
(condition-case nil
|
|
||||||
(delete-window (selected-window))
|
|
||||||
(error nil))
|
|
||||||
(kill-buffer buffer)))
|
|
||||||
|
|
||||||
(defun thumbs-show-image-num (num)
|
(defun thumbs-show-image-num (num)
|
||||||
"Show the image with number NUM."
|
"Show the image with number NUM."
|
||||||
|
@ -643,7 +641,7 @@ ACTION and ARG should be a valid convert command."
|
||||||
t
|
t
|
||||||
thumbs-temp-prefix))
|
thumbs-temp-prefix))
|
||||||
(let ((buffer-read-only nil)
|
(let ((buffer-read-only nil)
|
||||||
(tmp (format "%s%s.jpg" thumbs-temp-file (thumbs-gensym))))
|
(tmp (thumbs-temp-file)))
|
||||||
(erase-buffer)
|
(erase-buffer)
|
||||||
(thumbs-call-convert thumbs-current-image-filename
|
(thumbs-call-convert thumbs-current-image-filename
|
||||||
tmp
|
tmp
|
||||||
|
|
|
@ -133,9 +133,8 @@ specify nil for this variable."
|
||||||
:type '(choice integer (const nil))
|
:type '(choice integer (const nil))
|
||||||
:group 'tmm)
|
:group 'tmm)
|
||||||
|
|
||||||
(require 'font-lock)
|
(defface tmm-inactive
|
||||||
(defface tmm-inactive-face
|
'((t :inherit shadow))
|
||||||
'((t :inherit font-lock-comment-face))
|
|
||||||
"Face used for inactive menu items."
|
"Face used for inactive menu items."
|
||||||
:group 'tmm)
|
:group 'tmm)
|
||||||
|
|
||||||
|
@ -350,7 +349,7 @@ Stores a list of all the shortcuts in the free variable `tmm-short-cuts'."
|
||||||
(setq next (next-single-char-property-change (point) 'mouse-face))
|
(setq next (next-single-char-property-change (point) 'mouse-face))
|
||||||
(when (looking-at inactive-string)
|
(when (looking-at inactive-string)
|
||||||
(remove-text-properties (point) next '(mouse-face))
|
(remove-text-properties (point) next '(mouse-face))
|
||||||
(add-text-properties (point) next '(face tmm-inactive-face)))
|
(add-text-properties (point) next '(face tmm-inactive)))
|
||||||
(goto-char next)))
|
(goto-char next)))
|
||||||
(set-buffer-modified-p nil)))
|
(set-buffer-modified-p nil)))
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,32 @@
|
||||||
|
2005-06-09 Kim F. Storm <storm@cua.dk>
|
||||||
|
|
||||||
|
* searching.texi (Entire Match Data): Explain new `reseat' argument to
|
||||||
|
match-data and set-match-data.
|
||||||
|
|
||||||
|
2005-06-08 Richard M. Stallman <rms@gnu.org>
|
||||||
|
|
||||||
|
* searching.texi (Entire Match Data): Clarify when match-data
|
||||||
|
returns markers and when integers.
|
||||||
|
|
||||||
|
* display.texi (Defining Faces): Explain that face name should not
|
||||||
|
end in `-face'.
|
||||||
|
|
||||||
|
* modes.texi (Mode Line Data): Minor cleanup.
|
||||||
|
(Customizing Keywords): Node split out of Search-based Fontification.
|
||||||
|
Add example of using font-lock-add-keywords from a hook.
|
||||||
|
Clarify when MODE should be non-nil, and when nil.
|
||||||
|
|
||||||
|
2005-06-06 Richard M. Stallman <rms@gnu.org>
|
||||||
|
|
||||||
|
* modes.texi (Mode Line Data): Explain what happens when the car
|
||||||
|
of a list is a void symbol.
|
||||||
|
(Search-based Fontification): Explain MODE arg to
|
||||||
|
font-lock-add-keywords and warn about calls from major modes.
|
||||||
|
|
||||||
|
2005-06-08 Juri Linkov <juri@jurta.org>
|
||||||
|
|
||||||
|
* display.texi (Standard Faces): Add `shadow' face.
|
||||||
|
|
||||||
2005-05-29 Luc Teirlinck <teirllm@auburn.edu>
|
2005-05-29 Luc Teirlinck <teirllm@auburn.edu>
|
||||||
|
|
||||||
* modes.texi (Major Mode Conventions): A derived mode only needs
|
* modes.texi (Major Mode Conventions): A derived mode only needs
|
||||||
|
|
|
@ -1775,6 +1775,11 @@ This face forces use of a particular fixed-width font.
|
||||||
This face forces use of a particular variable-width font. It's
|
This face forces use of a particular variable-width font. It's
|
||||||
reasonable to customize this to use a different variable-width font, if
|
reasonable to customize this to use a different variable-width font, if
|
||||||
you like, but you should not make it a fixed-width font.
|
you like, but you should not make it a fixed-width font.
|
||||||
|
|
||||||
|
@item shadow
|
||||||
|
@kindex shadow @r{(face name)}
|
||||||
|
This face is used for making the text less noticeable than the
|
||||||
|
surrounding ordinary text.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
@defvar show-trailing-whitespace
|
@defvar show-trailing-whitespace
|
||||||
|
@ -1790,14 +1795,15 @@ end of a line.
|
||||||
The way to define a new face is with @code{defface}. This creates a
|
The way to define a new face is with @code{defface}. This creates a
|
||||||
kind of customization item (@pxref{Customization}) which the user can
|
kind of customization item (@pxref{Customization}) which the user can
|
||||||
customize using the Customization buffer (@pxref{Easy Customization,,,
|
customize using the Customization buffer (@pxref{Easy Customization,,,
|
||||||
emacs, The GNU Emacs Manual}).
|
emacs, The GNU Emacs Manual}).
|
||||||
|
|
||||||
@defmac defface face spec doc [keyword value]...
|
@defmac defface face spec doc [keyword value]...
|
||||||
This declares @var{face} as a customizable face that defaults according
|
This declares @var{face} as a customizable face that defaults
|
||||||
to @var{spec}. You should not quote the symbol @var{face}. The
|
according to @var{spec}. You should not quote the symbol @var{face},
|
||||||
|
and it should not end in @samp{-face} (that would be redundant). The
|
||||||
argument @var{doc} specifies the face documentation. The keywords you
|
argument @var{doc} specifies the face documentation. The keywords you
|
||||||
can use in @code{defface} are the same ones that are meaningful in both
|
can use in @code{defface} are the same as in @code{defgroup} and
|
||||||
@code{defgroup} and @code{defcustom} (@pxref{Common Keywords}).
|
@code{defcustom} (@pxref{Common Keywords}).
|
||||||
|
|
||||||
When @code{defface} executes, it defines the face according to
|
When @code{defface} executes, it defines the face according to
|
||||||
@var{spec}, then uses any customizations that were read from the
|
@var{spec}, then uses any customizations that were read from the
|
||||||
|
|
|
@ -1650,13 +1650,13 @@ properties specified by @var{props} to the result. The argument
|
||||||
@var{value}. (This feature is new as of Emacs 22.1.)
|
@var{value}. (This feature is new as of Emacs 22.1.)
|
||||||
|
|
||||||
@item (@var{symbol} @var{then} @var{else})
|
@item (@var{symbol} @var{then} @var{else})
|
||||||
A list whose first element is a symbol that is not a keyword specifies a
|
A list whose first element is a symbol that is not a keyword specifies
|
||||||
conditional. Its meaning depends on the value of @var{symbol}. If the
|
a conditional. Its meaning depends on the value of @var{symbol}. If
|
||||||
value is non-@code{nil}, the second element, @var{then}, is processed
|
@var{symbol} has a non-@code{nil} value, the second element,
|
||||||
recursively as a mode-line element. But if the value of @var{symbol} is
|
@var{then}, is processed recursively as a mode-line element.
|
||||||
@code{nil}, the third element, @var{else}, is processed recursively.
|
Otherwise, the third element, @var{else}, is processed recursively.
|
||||||
You may omit @var{else}; then the mode-line element displays nothing if
|
You may omit @var{else}; then the mode-line element displays nothing
|
||||||
the value of @var{symbol} is @code{nil}.
|
if the value of @var{symbol} is @code{nil} or void.
|
||||||
|
|
||||||
@item (@var{width} @var{rest}@dots{})
|
@item (@var{width} @var{rest}@dots{})
|
||||||
A list whose first element is an integer specifies truncation or
|
A list whose first element is an integer specifies truncation or
|
||||||
|
@ -2319,6 +2319,7 @@ Search-based fontification happens second.
|
||||||
@menu
|
@menu
|
||||||
* Font Lock Basics:: Overview of customizing Font Lock.
|
* Font Lock Basics:: Overview of customizing Font Lock.
|
||||||
* Search-based Fontification:: Fontification based on regexps.
|
* Search-based Fontification:: Fontification based on regexps.
|
||||||
|
* Customizing Keywords:: Customizing search-based fontification.
|
||||||
* Other Font Lock Variables:: Additional customization facilities.
|
* Other Font Lock Variables:: Additional customization facilities.
|
||||||
* Levels of Font Lock:: Each mode can define alternative levels
|
* Levels of Font Lock:: Each mode can define alternative levels
|
||||||
so that the user can select more or less.
|
so that the user can select more or less.
|
||||||
|
@ -2624,19 +2625,27 @@ Non-@code{nil} means that regular expression matching for the sake of
|
||||||
@code{font-lock-keywords} should be case-insensitive.
|
@code{font-lock-keywords} should be case-insensitive.
|
||||||
@end defvar
|
@end defvar
|
||||||
|
|
||||||
You can use @code{font-lock-add-keywords} to add additional
|
@node Customizing Keywords
|
||||||
|
@subsection Customizing Search-Based Fontification
|
||||||
|
|
||||||
|
You can use @code{font-lock-add-keywords} to add additional
|
||||||
search-based fontification rules to a major mode, and
|
search-based fontification rules to a major mode, and
|
||||||
@code{font-lock-remove-keywords} to removes rules.
|
@code{font-lock-remove-keywords} to removes rules.
|
||||||
|
|
||||||
@defun font-lock-add-keywords mode keywords &optional append
|
@defun font-lock-add-keywords mode keywords &optional append
|
||||||
This function adds highlighting @var{keywords} for @var{mode}. The
|
This function adds highlighting @var{keywords}, for the current buffer
|
||||||
argument @var{keywords} should be a list with the same format as the
|
or for major mode @var{mode}. The argument @var{keywords} should be a
|
||||||
variable @code{font-lock-keywords}. @var{mode} should be a symbol,
|
list with the same format as the variable @code{font-lock-keywords}.
|
||||||
the major mode command name, such as @code{c-mode}. When Font Lock
|
|
||||||
mode is turned on in @var{mode}, it adds @var{keywords} to
|
If @var{mode} is a symbol which is a major mode command name, such as
|
||||||
@code{font-lock-keywords}. @var{mode} can also be @code{nil}; the
|
@code{c-mode}, the effect is that enabling Font Lock mode in
|
||||||
highlighting @var{keywords} are immediately added to
|
@var{mode} will add @var{keywords} to @code{font-lock-keywords}.
|
||||||
@code{font-lock-keywords} in the current buffer in that case.
|
Calling with a non-@code{nil} value of @var{mode} is correct only in
|
||||||
|
your @file{~/.emacs} file.
|
||||||
|
|
||||||
|
If @var{mode} is @code{nil}, this function adds @var{keywords} to
|
||||||
|
@code{font-lock-keywords} in the current buffer. This way of calling
|
||||||
|
@code{font-lock-add-keywords} is usually used in mode hook functions.
|
||||||
|
|
||||||
By default, @var{keywords} are added at the beginning of
|
By default, @var{keywords} are added at the beginning of
|
||||||
@code{font-lock-keywords}. If the optional argument @var{append} is
|
@code{font-lock-keywords}. If the optional argument @var{append} is
|
||||||
|
@ -2645,7 +2654,29 @@ By default, @var{keywords} are added at the beginning of
|
||||||
non-@code{nil} value, they are added at the end of
|
non-@code{nil} value, they are added at the end of
|
||||||
@code{font-lock-keywords}.
|
@code{font-lock-keywords}.
|
||||||
|
|
||||||
For example:
|
Some modes provide specialized support you can use in additional
|
||||||
|
highlighting patterns. See the variables
|
||||||
|
@code{c-font-lock-extra-types}, @code{c++-font-lock-extra-types},
|
||||||
|
@code{objc-font-lock-extra-types} and
|
||||||
|
@code{java-font-lock-extra-types}, for example.
|
||||||
|
|
||||||
|
@strong{Warning:} major mode functions must not call
|
||||||
|
@code{font-lock-add-keywords} under any circumstances, either directly
|
||||||
|
or indirectly, except through their mode hooks. (Doing so would lead
|
||||||
|
to incorrect behavior for some minor modes.) They should set up their
|
||||||
|
rules for search-based fontification by setting
|
||||||
|
@code{font-lock-keywords}.
|
||||||
|
@end defun
|
||||||
|
|
||||||
|
@defun font-lock-remove-keywords mode keywords
|
||||||
|
This function removes @var{keywords} from @code{font-lock-keywords}
|
||||||
|
for the current buffer or for major mode @var{mode}. As in
|
||||||
|
@code{font-lock-add-keywords}, @var{mode} should be a major mode
|
||||||
|
command name or @code{nil}. All the caveats and requirments for
|
||||||
|
@code{font-lock-add-keywords} apply here too.
|
||||||
|
@end defun
|
||||||
|
|
||||||
|
For example, this code
|
||||||
|
|
||||||
@smallexample
|
@smallexample
|
||||||
(font-lock-add-keywords 'c-mode
|
(font-lock-add-keywords 'c-mode
|
||||||
|
@ -2653,30 +2684,23 @@ For example:
|
||||||
("\\<\\(and\\|or\\|not\\)\\>" . font-lock-keyword-face)))
|
("\\<\\(and\\|or\\|not\\)\\>" . font-lock-keyword-face)))
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
|
@noindent
|
||||||
adds two fontification patterns for C mode: one to fontify the word
|
adds two fontification patterns for C mode: one to fontify the word
|
||||||
@samp{FIXME}, even in comments, and another to fontify the words
|
@samp{FIXME}, even in comments, and another to fontify the words
|
||||||
@samp{and}, @samp{or} and @samp{not} as keywords.
|
@samp{and}, @samp{or} and @samp{not} as keywords.
|
||||||
|
|
||||||
Some modes have specialized support for additional patterns. See the
|
@noindent
|
||||||
variables @code{c-font-lock-extra-types},
|
That example affects only C mode proper. To add the same patterns to
|
||||||
@code{c++-font-lock-extra-types}, @code{objc-font-lock-extra-types}
|
C mode @emph{and} all modes derived from it, do this instead:
|
||||||
and @code{java-font-lock-extra-types}, for example.
|
|
||||||
@end defun
|
|
||||||
|
|
||||||
@defun font-lock-remove-keywords mode keywords
|
@smallexample
|
||||||
This function removes highlighting @var{keywords} for @var{mode}. As
|
(add-hook 'c-mode-hook
|
||||||
in @code{font-lock-add-keywords}, @var{mode} should be a major mode
|
(lambda ()
|
||||||
command name or @code{nil}. If @code{nil}, the highlighting
|
(font-lock-add-keywords nil
|
||||||
@var{keywords} are immediately removed in the current buffer.
|
'(("\\<\\(FIXME\\):" 1 font-lock-warning-face prepend)
|
||||||
@end defun
|
("\\<\\(and\\|or\\|not\\)\\>" .
|
||||||
|
font-lock-keyword-face)))))
|
||||||
@strong{Warning:} Only use a non-@code{nil} @var{mode} argument when
|
@end smallexample
|
||||||
you use @code{font-lock-add-keywords} or
|
|
||||||
@code{font-lock-remove-keywords} in your @file{.emacs} file. When you
|
|
||||||
use these functions from a Lisp program (such as a minor mode), we
|
|
||||||
recommend that you use @code{nil} for @var{mode} (and place the call
|
|
||||||
on a hook) to avoid subtle problems due to the details of the
|
|
||||||
implementation.
|
|
||||||
|
|
||||||
@node Other Font Lock Variables
|
@node Other Font Lock Variables
|
||||||
@subsection Other Font Lock Variables
|
@subsection Other Font Lock Variables
|
||||||
|
|
|
@ -1485,13 +1485,14 @@ character of the buffer counts as 1.)
|
||||||
The functions @code{match-data} and @code{set-match-data} read or
|
The functions @code{match-data} and @code{set-match-data} read or
|
||||||
write the entire match data, all at once.
|
write the entire match data, all at once.
|
||||||
|
|
||||||
@defun match-data &optional integers reuse
|
@defun match-data &optional integers reuse reseat
|
||||||
This function returns a newly constructed list containing all the
|
This function returns a list of positions (markers or integers) that
|
||||||
information on what text the last search matched. Element zero is the
|
record all the information on what text the last search matched.
|
||||||
position of the beginning of the match for the whole expression; element
|
Element zero is the position of the beginning of the match for the
|
||||||
one is the position of the end of the match for the expression. The
|
whole expression; element one is the position of the end of the match
|
||||||
next two elements are the positions of the beginning and end of the
|
for the expression. The next two elements are the positions of the
|
||||||
match for the first subexpression, and so on. In general, element
|
beginning and end of the match for the first subexpression, and so on.
|
||||||
|
In general, element
|
||||||
@ifnottex
|
@ifnottex
|
||||||
number 2@var{n}
|
number 2@var{n}
|
||||||
@end ifnottex
|
@end ifnottex
|
||||||
|
@ -1508,15 +1509,13 @@ number {\mathsurround=0pt $2n+1$}
|
||||||
@end tex
|
@end tex
|
||||||
corresponds to @code{(match-end @var{n})}.
|
corresponds to @code{(match-end @var{n})}.
|
||||||
|
|
||||||
All the elements are markers or @code{nil} if matching was done on a
|
Normally all the elements are markers or @code{nil}, but if
|
||||||
buffer and all are integers or @code{nil} if matching was done on a
|
@var{integers} is non-@code{nil}, that means to use integers instead
|
||||||
string with @code{string-match}. If @var{integers} is
|
of markers. (In that case, the buffer itself is appended as an
|
||||||
non-@code{nil}, then the elements are integers or @code{nil}, even if
|
additional element at the end of the list, to facilitate complete
|
||||||
matching was done on a buffer. In that case, the buffer itself is
|
restoration of the match data.) If the last match was done on a
|
||||||
appended as an additional element at the end of the list
|
string with @code{string-match}, then integers are always used,
|
||||||
to facilitate complete restoration of the match data. Also,
|
since markers can't point into a string.
|
||||||
@code{match-beginning} and
|
|
||||||
@code{match-end} always return integers or @code{nil}.
|
|
||||||
|
|
||||||
If @var{reuse} is non-@code{nil}, it should be a list. In that case,
|
If @var{reuse} is non-@code{nil}, it should be a list. In that case,
|
||||||
@code{match-data} stores the match data in @var{reuse}. That is,
|
@code{match-data} stores the match data in @var{reuse}. That is,
|
||||||
|
@ -1524,8 +1523,16 @@ If @var{reuse} is non-@code{nil}, it should be a list. In that case,
|
||||||
have the right length. If it is not long enough to contain the match
|
have the right length. If it is not long enough to contain the match
|
||||||
data, it is extended. If it is too long, the length of @var{reuse}
|
data, it is extended. If it is too long, the length of @var{reuse}
|
||||||
stays the same, but the elements that were not used are set to
|
stays the same, but the elements that were not used are set to
|
||||||
@code{nil}. The purpose of this feature is to avoid producing too
|
@code{nil}. The purpose of this feature is to reduce the need for
|
||||||
much garbage, that would later have to be collected.
|
garbage collection.
|
||||||
|
|
||||||
|
If @var{reseat} is non-@code{nil}, all markers on the @var{reuse} list
|
||||||
|
are reseated to point to nowhere, and if the value is @code{evaporate},
|
||||||
|
the markers are put back on the free list.
|
||||||
|
|
||||||
|
@strong{Warning:} When @code{evaporate} is specified for @var{reseat},
|
||||||
|
no other references to the markers on the @var{reuse} list; otherwise,
|
||||||
|
Emacs may crash during the next garbage collection.
|
||||||
|
|
||||||
As always, there must be no possibility of intervening searches between
|
As always, there must be no possibility of intervening searches between
|
||||||
the call to a search function and the call to @code{match-data} that is
|
the call to a search function and the call to @code{match-data} that is
|
||||||
|
@ -1542,7 +1549,7 @@ intended to access the match data for that search.
|
||||||
@end example
|
@end example
|
||||||
@end defun
|
@end defun
|
||||||
|
|
||||||
@defun set-match-data match-list
|
@defun set-match-data match-list &optional reseat
|
||||||
This function sets the match data from the elements of @var{match-list},
|
This function sets the match data from the elements of @var{match-list},
|
||||||
which should be a list that was the value of a previous call to
|
which should be a list that was the value of a previous call to
|
||||||
@code{match-data}. (More precisely, anything that has the same format
|
@code{match-data}. (More precisely, anything that has the same format
|
||||||
|
@ -1551,6 +1558,14 @@ will work.)
|
||||||
If @var{match-list} refers to a buffer that doesn't exist, you don't get
|
If @var{match-list} refers to a buffer that doesn't exist, you don't get
|
||||||
an error; that sets the match data in a meaningless but harmless way.
|
an error; that sets the match data in a meaningless but harmless way.
|
||||||
|
|
||||||
|
If @var{reseat} is non-@code{nil}, all markers on the @var{match-list} list
|
||||||
|
are reseated to point to nowhere, and if the value is @code{evaporate},
|
||||||
|
the markers are put back on the free list.
|
||||||
|
|
||||||
|
@strong{Warning:} When @code{evaporate} is specified for @var{reseat},
|
||||||
|
no other references to the markers on the @var{match-list} list; otherwise,
|
||||||
|
Emacs may crash during the next garbage collection.
|
||||||
|
|
||||||
@findex store-match-data
|
@findex store-match-data
|
||||||
@code{store-match-data} is a semi-obsolete alias for @code{set-match-data}.
|
@code{store-match-data} is a semi-obsolete alias for @code{set-match-data}.
|
||||||
@end defun
|
@end defun
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
2005-06-08 Steven Tamm <steventamm@mac.com>
|
||||||
|
|
||||||
|
* INSTALL: Explain that a universal binary cannot be created and
|
||||||
|
builds for on emachine cannot be targeted to the other.
|
||||||
|
* README: Add Universal Binary to the Todo List.
|
||||||
|
|
||||||
2005-05-13 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
|
2005-05-13 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
|
||||||
|
|
||||||
* makefile.MPW (buildobj.lst): New target.
|
* makefile.MPW (buildobj.lst): New target.
|
||||||
|
|
10
mac/INSTALL
10
mac/INSTALL
|
@ -230,7 +230,11 @@ system sofware updates possibly overwriting the distribution. If this
|
||||||
is a concern, as it should be in normal binary distributions, please
|
is a concern, as it should be in normal binary distributions, please
|
||||||
use /usr/local as the prefix for installation.
|
use /usr/local as the prefix for installation.
|
||||||
|
|
||||||
Enjoy!
|
Emacs supports both PowerPC and Intel-based Macintoshes. However,
|
||||||
|
due to the unexec process that Emacs uses to dump core, it is not
|
||||||
|
possible at this time to generate a universal binary that supports both
|
||||||
|
architectures. In addition, Rosetta doesn't appear to work correctly
|
||||||
|
with PowerPC builds of Emacs; you will have to recompile for Intel.
|
||||||
|
Therefore, builds of Emacs are architecture specific.
|
||||||
|
|
||||||
Andrew.
|
Enjoy!
|
||||||
<akochoi@mac.com>
|
|
||||||
|
|
|
@ -53,6 +53,9 @@ A number of things do not work yet:
|
||||||
+ Support for certain image types (such as XPM) is not as extensive as
|
+ Support for certain image types (such as XPM) is not as extensive as
|
||||||
on other plaforms.
|
on other plaforms.
|
||||||
|
|
||||||
|
+ Incorporate Apple's wrappers to be able to create a universal
|
||||||
|
binary that unexecs on first run for the given architecture.
|
||||||
|
|
||||||
If your Mac is connected to the Internet, report bugs by typing `M-x
|
If your Mac is connected to the Internet, report bugs by typing `M-x
|
||||||
report-emacs-bug' or by choosing the entry `Send Bug Report...' in
|
report-emacs-bug' or by choosing the entry `Send Bug Report...' in
|
||||||
the `Help' menu. This will send the bug report to the address
|
the `Help' menu. This will send the bug report to the address
|
||||||
|
|
|
@ -1,3 +1,23 @@
|
||||||
|
2005-06-08 Luc Teirlinck <teirllm@auburn.edu>
|
||||||
|
|
||||||
|
* files.texi (Log Buffer): Document when there can be more than
|
||||||
|
one file to be committed.
|
||||||
|
|
||||||
|
2005-06-08 Juri Linkov <juri@jurta.org>
|
||||||
|
|
||||||
|
* display.texi (Faces): Add `shadow' face.
|
||||||
|
|
||||||
|
2005-06-07 Masatake YAMATO <jet@gyve.org>
|
||||||
|
|
||||||
|
* display.texi (Faces): Write about mode-line-highlight.
|
||||||
|
|
||||||
|
2005-06-06 Richard M. Stallman <rms@gnu.org>
|
||||||
|
|
||||||
|
* misc.texi (Printing Package): Explain how to initialize
|
||||||
|
printing package.
|
||||||
|
|
||||||
|
* cmdargs.texi (Action Arguments): Clarify directory default for -l.
|
||||||
|
|
||||||
2005-06-05 Chong Yidong <cyd@stupidchicken.com>
|
2005-06-05 Chong Yidong <cyd@stupidchicken.com>
|
||||||
|
|
||||||
* emacs.texi: Rename Hardcopy to Printing.
|
* emacs.texi: Rename Hardcopy to Printing.
|
||||||
|
|
|
@ -119,6 +119,10 @@ the library can be found either in the current directory, or in the
|
||||||
Emacs library search path as specified with @env{EMACSLOADPATH}
|
Emacs library search path as specified with @env{EMACSLOADPATH}
|
||||||
(@pxref{General Variables}).
|
(@pxref{General Variables}).
|
||||||
|
|
||||||
|
@strong{Warning:} If previous command-line arguments have visited
|
||||||
|
files, the current directory is the directory of the last file
|
||||||
|
visited.
|
||||||
|
|
||||||
@item -L @var{dir}
|
@item -L @var{dir}
|
||||||
@opindex -L
|
@opindex -L
|
||||||
@itemx --directory=@var{dir}
|
@itemx --directory=@var{dir}
|
||||||
|
|
|
@ -118,6 +118,8 @@ This face is used for the prompt strings displayed in the minibuffer.
|
||||||
@item highlight
|
@item highlight
|
||||||
This face is used for highlighting portions of text, in various modes.
|
This face is used for highlighting portions of text, in various modes.
|
||||||
For example, mouse-sensitive text is highlighted using this face.
|
For example, mouse-sensitive text is highlighted using this face.
|
||||||
|
@item mode-line-highlight
|
||||||
|
Like @code{highlight}, but used for portions of text on mode lines.
|
||||||
@item isearch
|
@item isearch
|
||||||
This face is used for highlighting Isearch matches.
|
This face is used for highlighting Isearch matches.
|
||||||
@item lazy-highlight
|
@item lazy-highlight
|
||||||
|
@ -167,6 +169,10 @@ The face for highlighting trailing whitespace when
|
||||||
Whitespace}.
|
Whitespace}.
|
||||||
@item variable-pitch
|
@item variable-pitch
|
||||||
The basic variable-pitch face.
|
The basic variable-pitch face.
|
||||||
|
@item shadow
|
||||||
|
The basic face for making the text less noticeable than the surrounding
|
||||||
|
ordinary text. Usually this is achieved by using shades of grey in
|
||||||
|
contrast with either black or white default foreground color.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
@cindex @code{region} face
|
@cindex @code{region} face
|
||||||
|
|
|
@ -1545,7 +1545,9 @@ working---generating ChangeLog entries from the revision control log.
|
||||||
|
|
||||||
In the @samp{*VC-Log*} buffer, @kbd{C-c C-f} (@kbd{M-x log-edit-show-files})
|
In the @samp{*VC-Log*} buffer, @kbd{C-c C-f} (@kbd{M-x log-edit-show-files})
|
||||||
shows the list of files to be committed in case you need to check
|
shows the list of files to be committed in case you need to check
|
||||||
that.
|
that. (This can be a list of more than one file if you use VC Dired
|
||||||
|
mode or PCL-CVS. @xref{VC Dired Mode}, and @ref{Top, , About PCL-CVS,
|
||||||
|
pcl-cvs, PCL-CVS --- The Emacs Front-End to CVS}.)
|
||||||
|
|
||||||
When you have finished editing the log message, type @kbd{C-c C-c} to
|
When you have finished editing the log message, type @kbd{C-c C-c} to
|
||||||
exit the buffer and commit the change.
|
exit the buffer and commit the change.
|
||||||
|
|
|
@ -1609,15 +1609,16 @@ used.
|
||||||
|
|
||||||
@findex pr-interface
|
@findex pr-interface
|
||||||
To use the Printing package, add @code{(require 'printing)} to your
|
To use the Printing package, add @code{(require 'printing)} to your
|
||||||
init file (@pxref{Init File}). The usual printing options in the menu
|
init file (@pxref{Init File}), followed by @code{(pr-update-menus)}.
|
||||||
bar will be replaced with a @samp{Printing} submenu, containing
|
This function replaces the usual printing commands in the menu bar
|
||||||
various printing options. You can also type @kbd{M-x pr-interface
|
with a @samp{Printing} submenu that contains various printing options.
|
||||||
RET}; this creates a @samp{*Printing Interface*} buffer, similar to a
|
You can also type @kbd{M-x pr-interface RET}; this creates a
|
||||||
customization buffer , where you can set the printing options. After
|
@samp{*Printing Interface*} buffer, similar to a customization buffer,
|
||||||
selecting what and how to print, start the print job using the
|
where you can set the printing options. After selecting what and how
|
||||||
@samp{Print} button (click @kbd{mouse-2} on it, or move point over it
|
to print, you start the print job using the @samp{Print} button (click
|
||||||
and type @kbd{RET}). For further information on the various options,
|
@kbd{mouse-2} on it, or move point over it and type @kbd{RET}). For
|
||||||
use the @samp{Interface Help} button.
|
further information on the various options, use the @samp{Interface
|
||||||
|
Help} button.
|
||||||
|
|
||||||
@node Sorting, Narrowing, Printing, Top
|
@node Sorting, Narrowing, Printing, Top
|
||||||
@section Sorting Text
|
@section Sorting Text
|
||||||
|
|
102
src/ChangeLog
102
src/ChangeLog
|
@ -1,3 +1,105 @@
|
||||||
|
2005-06-08 Steven Tamm <steventamm@mac.com>
|
||||||
|
|
||||||
|
* unexmacosx.c (copy_data_segment): Copy __la_sym_ptr2 section
|
||||||
|
used by gcc4 on intel mac.
|
||||||
|
|
||||||
|
2005-06-09 Kim F. Storm <storm@cua.dk>
|
||||||
|
|
||||||
|
* search.c (Fmatch_data): Add optional RESEAT arg. Unchain markers
|
||||||
|
in REUSE list if non-nil; free them if equal to evaporate.
|
||||||
|
(Fset_match_data): Add optional RESEAT arg. Unchain markers in LIST
|
||||||
|
if non-nil; free them if equal to evaporate. Use XCAR/XCDR.
|
||||||
|
(restore_search_regs): Rename from restore_match_data. Uses changed.
|
||||||
|
(unwind_set_match_data): New function.
|
||||||
|
(record_unwind_save_match_data): New function like save-match-data.
|
||||||
|
|
||||||
|
* lisp.h (Fmatch_data, Fset_match_data): Fix EXFUN.
|
||||||
|
(record_unwind_save_match_data): Add prototype.
|
||||||
|
(restore_search_regs): Rename from restore_match_data.
|
||||||
|
|
||||||
|
* composite.c (compose_chars_in_text):
|
||||||
|
* eval.c (do_autoload):
|
||||||
|
* macmenu.c (set_frame_menubar):
|
||||||
|
* process.c (read_process_output, exec_sentinel):
|
||||||
|
* xmenu.c (set_frame_menubar):
|
||||||
|
* xdisp.c (prepare_menu_bars, update_menu_bar, update_tool_bar):
|
||||||
|
* w32menu.c (set_frame_menubar):
|
||||||
|
Use record_unwind_save_match_data.
|
||||||
|
|
||||||
|
2005-06-08 Richard M. Stallman <rms@gnu.org>
|
||||||
|
|
||||||
|
* xdisp.c (get_next_display_element): Alter previous change:
|
||||||
|
Distinguish Vshow_nonbreak_escape = t or not t.
|
||||||
|
For t, use escape_glyph once again, as before previous change.
|
||||||
|
Use space or hyphen for display, instead of the non-ASCII char.
|
||||||
|
(syms_of_xdisp) <show-nonbreak-escape>: Doc fix.
|
||||||
|
|
||||||
|
* process.c (Fstart_process): Don't touch command_channel_p slot.
|
||||||
|
|
||||||
|
* process.h (struct process): Delete command_channel_p.
|
||||||
|
|
||||||
|
2005-06-07 Masatake YAMATO <jet@gyve.org>
|
||||||
|
|
||||||
|
* xdisp.c (note_mode_line_or_margin_highlight): Check
|
||||||
|
the overlapping of re-rendering area to avoid flickering.
|
||||||
|
(note_mouse_highlight): Call clear_mouse_face if PART
|
||||||
|
is not ON_MODE_LINE nor ON_HEADER_LINE.
|
||||||
|
|
||||||
|
2005-06-07 Kim F. Storm <storm@cua.dk>
|
||||||
|
|
||||||
|
* process.c: Improve commentary for adaptive read buffering.
|
||||||
|
|
||||||
|
2005-06-06 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||||
|
|
||||||
|
* xterm.c (x_create_toolkit_scroll_bar): Use XtNarrowScrollbars
|
||||||
|
if available.
|
||||||
|
|
||||||
|
2005-06-06 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
|
||||||
|
|
||||||
|
* macmenu.c (menu_quit_handler, install_menu_quit_handler): New
|
||||||
|
functions for popping down menus on C-g.
|
||||||
|
(set_frame_menubar, mac_menu_show): Call install_menu_quit_handler.
|
||||||
|
|
||||||
|
* macterm.c: Make mac_quit_char_modifiers and mac_quit_char_keycode
|
||||||
|
non-static.
|
||||||
|
|
||||||
|
* config.in: Added HAVE_CANCELMENUTRACKING
|
||||||
|
|
||||||
|
2005-06-06 Eli Zaretskii <eliz@gnu.org>
|
||||||
|
|
||||||
|
* w32heap.h (OFFSET_TO_RVA, RVA_TO_OFFSET, RVA_TO_PTR): Remove
|
||||||
|
macros.
|
||||||
|
|
||||||
|
* unexw32.c (RVA_TO_PTR): Moved here from w32heap.h.
|
||||||
|
|
||||||
|
* w32proc.c (RVA_TO_PTR): New macro.
|
||||||
|
|
||||||
|
* w32heap.c (RVA_TO_PTR): No need to #undef now.
|
||||||
|
|
||||||
|
* makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/w32select.$(O)):
|
||||||
|
Depend on w32heap.h.
|
||||||
|
|
||||||
|
2005-06-06 Luc Teirlinck <teirllm@auburn.edu>
|
||||||
|
|
||||||
|
* keyboard.c (command_loop_1): Update Vthis_original_command.
|
||||||
|
|
||||||
|
2005-06-06 Richard M. Stallman <rms@gnu.org>
|
||||||
|
|
||||||
|
* xmenu.c (popup_get_selection): Undo previous change.
|
||||||
|
|
||||||
|
2005-06-06 Juri Linkov <juri@jurta.org>
|
||||||
|
|
||||||
|
* xdisp.c (Qno_break_space): New variable.
|
||||||
|
(syms_of_xdisp): Initialize it.
|
||||||
|
(get_next_display_element): Add no-break space and soft hypen
|
||||||
|
codes for iso8859-2 and iso8859-5. Don't add `\' for them.
|
||||||
|
Use `no-break-space' face for no-break spaces.
|
||||||
|
|
||||||
|
2005-06-06 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
|
||||||
|
|
||||||
|
* window.c (delete_window): Handle the case where a h/vchild has
|
||||||
|
a h/vchild.
|
||||||
|
|
||||||
2005-06-05 Eli Zaretskii <eliz@gnu.org>
|
2005-06-05 Eli Zaretskii <eliz@gnu.org>
|
||||||
|
|
||||||
* w32.c (sys_setsockopt): Change arg 4 to `const void *'. In the
|
* w32.c (sys_setsockopt): Change arg 4 to `const void *'. In the
|
||||||
|
|
|
@ -96,6 +96,9 @@ Boston, MA 02111-1307, USA. */
|
||||||
/* Define to 1 if you have the `bzero' function. */
|
/* Define to 1 if you have the `bzero' function. */
|
||||||
#undef HAVE_BZERO
|
#undef HAVE_BZERO
|
||||||
|
|
||||||
|
/* Define to 1 if CancelMenuTracking is available (Mac OSX). */
|
||||||
|
#undef HAVE_CANCELMENUTRACKING
|
||||||
|
|
||||||
/* Define to 1 if you are using the Carbon API on Mac OS X. */
|
/* Define to 1 if you are using the Carbon API on Mac OS X. */
|
||||||
#undef HAVE_CARBON
|
#undef HAVE_CARBON
|
||||||
|
|
||||||
|
@ -782,9 +785,9 @@ Boston, MA 02111-1307, USA. */
|
||||||
/* If using the C implementation of alloca, define if you know the
|
/* If using the C implementation of alloca, define if you know the
|
||||||
direction of stack growth for your system; otherwise it will be
|
direction of stack growth for your system; otherwise it will be
|
||||||
automatically deduced at run-time.
|
automatically deduced at run-time.
|
||||||
STACK_DIRECTION > 0 => grows toward higher addresses
|
STACK_DIRECTION > 0 => grows toward higher addresses
|
||||||
STACK_DIRECTION < 0 => grows toward lower addresses
|
STACK_DIRECTION < 0 => grows toward lower addresses
|
||||||
STACK_DIRECTION = 0 => direction of growth unknown */
|
STACK_DIRECTION = 0 => direction of growth unknown */
|
||||||
#undef STACK_DIRECTION
|
#undef STACK_DIRECTION
|
||||||
|
|
||||||
/* Define to 1 if you have the ANSI C header files. */
|
/* Define to 1 if you have the ANSI C header files. */
|
||||||
|
|
|
@ -1971,7 +1971,7 @@ do_autoload (fundef, funname)
|
||||||
GCPRO3 (fun, funname, fundef);
|
GCPRO3 (fun, funname, fundef);
|
||||||
|
|
||||||
/* Preserve the match data. */
|
/* Preserve the match data. */
|
||||||
record_unwind_protect (Fset_match_data, Fmatch_data (Qnil, Qnil));
|
record_unwind_save_match_data ();
|
||||||
|
|
||||||
/* Value saved here is to be restored into Vautoload_queue. */
|
/* Value saved here is to be restored into Vautoload_queue. */
|
||||||
record_unwind_protect (un_autoload, Vautoload_queue);
|
record_unwind_protect (un_autoload, Vautoload_queue);
|
||||||
|
|
|
@ -6265,8 +6265,8 @@ jpeg_image_p (object)
|
||||||
#endif /* HAVE_STLIB_H */
|
#endif /* HAVE_STLIB_H */
|
||||||
|
|
||||||
#if defined (HAVE_NTGUI) && !defined (__WIN32__)
|
#if defined (HAVE_NTGUI) && !defined (__WIN32__)
|
||||||
/* jpeglib.h will define boolean differently depending on __WIN32__,
|
/* In older releases of the jpeg library, jpeglib.h will define boolean
|
||||||
so make sure it is defined. */
|
differently depending on __WIN32__, so make sure it is defined. */
|
||||||
#define __WIN32__ 1
|
#define __WIN32__ 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -1522,6 +1522,7 @@ command_loop_1 ()
|
||||||
|
|
||||||
Vthis_command = Qnil;
|
Vthis_command = Qnil;
|
||||||
real_this_command = Qnil;
|
real_this_command = Qnil;
|
||||||
|
Vthis_original_command = Qnil;
|
||||||
|
|
||||||
/* Read next key sequence; i gets its length. */
|
/* Read next key sequence; i gets its length. */
|
||||||
i = read_key_sequence (keybuf, sizeof keybuf / sizeof keybuf[0],
|
i = read_key_sequence (keybuf, sizeof keybuf / sizeof keybuf[0],
|
||||||
|
|
|
@ -2804,6 +2804,7 @@ EXFUN (Fbuffer_disable_undo, 1);
|
||||||
EXFUN (Fbuffer_enable_undo, 1);
|
EXFUN (Fbuffer_enable_undo, 1);
|
||||||
EXFUN (Ferase_buffer, 0);
|
EXFUN (Ferase_buffer, 0);
|
||||||
extern Lisp_Object Qoverlayp;
|
extern Lisp_Object Qoverlayp;
|
||||||
|
extern Lisp_Object Qevaporate;
|
||||||
extern Lisp_Object get_truename_buffer P_ ((Lisp_Object));
|
extern Lisp_Object get_truename_buffer P_ ((Lisp_Object));
|
||||||
extern struct buffer *all_buffers;
|
extern struct buffer *all_buffers;
|
||||||
EXFUN (Fprevious_overlay_change, 1);
|
EXFUN (Fprevious_overlay_change, 1);
|
||||||
|
@ -2871,11 +2872,12 @@ extern void syms_of_abbrev P_ ((void));
|
||||||
/* defined in search.c */
|
/* defined in search.c */
|
||||||
extern void shrink_regexp_cache P_ ((void));
|
extern void shrink_regexp_cache P_ ((void));
|
||||||
EXFUN (Fstring_match, 3);
|
EXFUN (Fstring_match, 3);
|
||||||
extern void restore_match_data P_ ((void));
|
extern void restore_search_regs P_ ((void));
|
||||||
EXFUN (Fmatch_data, 2);
|
EXFUN (Fmatch_data, 3);
|
||||||
EXFUN (Fset_match_data, 1);
|
EXFUN (Fset_match_data, 2);
|
||||||
EXFUN (Fmatch_beginning, 1);
|
EXFUN (Fmatch_beginning, 1);
|
||||||
EXFUN (Fmatch_end, 1);
|
EXFUN (Fmatch_end, 1);
|
||||||
|
extern void record_unwind_save_match_data P_ ((void));
|
||||||
EXFUN (Flooking_at, 1);
|
EXFUN (Flooking_at, 1);
|
||||||
extern int fast_string_match P_ ((Lisp_Object, Lisp_Object));
|
extern int fast_string_match P_ ((Lisp_Object, Lisp_Object));
|
||||||
extern int fast_c_string_match_ignore_case P_ ((Lisp_Object, const char *));
|
extern int fast_c_string_match_ignore_case P_ ((Lisp_Object, const char *));
|
||||||
|
|
155
src/macmenu.c
155
src/macmenu.c
|
@ -1356,6 +1356,68 @@ update_submenu_strings (first_wv)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Event handler function that pops down a menu on C-g. We can only pop
|
||||||
|
down menus if CancelMenuTracking is present (OSX 10.3 or later). */
|
||||||
|
|
||||||
|
#ifdef HAVE_CANCELMENUTRACKING
|
||||||
|
static pascal OSStatus
|
||||||
|
menu_quit_handler (nextHandler, theEvent, userData)
|
||||||
|
EventHandlerCallRef nextHandler;
|
||||||
|
EventRef theEvent;
|
||||||
|
void* userData;
|
||||||
|
{
|
||||||
|
UInt32 keyCode;
|
||||||
|
UInt32 keyModifiers;
|
||||||
|
extern int mac_quit_char_modifiers;
|
||||||
|
extern int mac_quit_char_keycode;
|
||||||
|
|
||||||
|
GetEventParameter (theEvent, kEventParamKeyCode,
|
||||||
|
typeUInt32, NULL, sizeof(UInt32), NULL, &keyCode);
|
||||||
|
|
||||||
|
GetEventParameter (theEvent, kEventParamKeyModifiers,
|
||||||
|
typeUInt32, NULL, sizeof(UInt32),
|
||||||
|
NULL, &keyModifiers);
|
||||||
|
|
||||||
|
if (keyCode == mac_quit_char_keycode
|
||||||
|
&& keyModifiers == mac_quit_char_modifiers)
|
||||||
|
{
|
||||||
|
MenuRef menu = userData != 0
|
||||||
|
? (MenuRef)userData : AcquireRootMenu ();
|
||||||
|
|
||||||
|
CancelMenuTracking (menu, true, 0);
|
||||||
|
if (!userData) ReleaseMenu (menu);
|
||||||
|
return noErr;
|
||||||
|
}
|
||||||
|
|
||||||
|
return CallNextEventHandler (nextHandler, theEvent);
|
||||||
|
}
|
||||||
|
#endif /* HAVE_CANCELMENUTRACKING */
|
||||||
|
|
||||||
|
/* Add event handler for MENU_HANDLE so we can detect C-g.
|
||||||
|
If MENU_HANDLE is NULL, install handler for all menus in the menu bar.
|
||||||
|
If CancelMenuTracking isn't available, do nothing. */
|
||||||
|
|
||||||
|
static void
|
||||||
|
install_menu_quit_handler (MenuHandle menu_handle)
|
||||||
|
{
|
||||||
|
#ifdef HAVE_CANCELMENUTRACKING
|
||||||
|
EventHandlerUPP handler = NewEventHandlerUPP(menu_quit_handler);
|
||||||
|
UInt32 numTypes = 1;
|
||||||
|
EventTypeSpec typesList[] = { { kEventClassKeyboard, kEventRawKeyDown } };
|
||||||
|
int i = MIN_MENU_ID;
|
||||||
|
MenuHandle menu = menu_handle ? menu_handle : GetMenuHandle (i);
|
||||||
|
|
||||||
|
while (menu != NULL)
|
||||||
|
{
|
||||||
|
InstallMenuEventHandler (menu, handler, GetEventTypeCount (typesList),
|
||||||
|
typesList, menu_handle, NULL);
|
||||||
|
if (menu_handle) break;
|
||||||
|
menu = GetMenuHandle (++i);
|
||||||
|
}
|
||||||
|
DisposeEventHandlerUPP (handler);
|
||||||
|
#endif /* HAVE_CANCELMENUTRACKING */
|
||||||
|
}
|
||||||
|
|
||||||
/* Set the contents of the menubar widgets of frame F.
|
/* Set the contents of the menubar widgets of frame F.
|
||||||
The argument FIRST_TIME is currently ignored;
|
The argument FIRST_TIME is currently ignored;
|
||||||
it is set the first time this is called, from initialize_frame_menubar. */
|
it is set the first time this is called, from initialize_frame_menubar. */
|
||||||
|
@ -1413,7 +1475,7 @@ set_frame_menubar (f, first_time, deep_p)
|
||||||
because it is not reentrant. */
|
because it is not reentrant. */
|
||||||
specbind (Qdebug_on_next_call, Qnil);
|
specbind (Qdebug_on_next_call, Qnil);
|
||||||
|
|
||||||
record_unwind_protect (Fset_match_data, Fmatch_data (Qnil, Qnil));
|
record_unwind_save_match_data ();
|
||||||
if (NILP (Voverriding_local_map_menu_flag))
|
if (NILP (Voverriding_local_map_menu_flag))
|
||||||
{
|
{
|
||||||
specbind (Qoverriding_terminal_local_map, Qnil);
|
specbind (Qoverriding_terminal_local_map, Qnil);
|
||||||
|
@ -1575,6 +1637,8 @@ set_frame_menubar (f, first_time, deep_p)
|
||||||
|
|
||||||
DrawMenuBar ();
|
DrawMenuBar ();
|
||||||
|
|
||||||
|
/* Add event handler so we can detect C-g. */
|
||||||
|
install_menu_quit_handler (NULL);
|
||||||
free_menubar_widget_value_tree (first_wv);
|
free_menubar_widget_value_tree (first_wv);
|
||||||
|
|
||||||
UNBLOCK_INPUT;
|
UNBLOCK_INPUT;
|
||||||
|
@ -1606,7 +1670,43 @@ free_frame_menubar (f)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* mac_menu_show actually displays a menu using the panes and items in
|
static Lisp_Object
|
||||||
|
pop_down_menu (arg)
|
||||||
|
Lisp_Object arg;
|
||||||
|
{
|
||||||
|
struct Lisp_Save_Value *p1 = XSAVE_VALUE (Fcar (arg));
|
||||||
|
struct Lisp_Save_Value *p2 = XSAVE_VALUE (Fcdr (arg));
|
||||||
|
|
||||||
|
FRAME_PTR f = p1->pointer;
|
||||||
|
MenuHandle *menu = p2->pointer;
|
||||||
|
|
||||||
|
BLOCK_INPUT;
|
||||||
|
|
||||||
|
/* Must reset this manually because the button release event is not
|
||||||
|
passed to Emacs event loop. */
|
||||||
|
FRAME_MAC_DISPLAY_INFO (f)->grabbed = 0;
|
||||||
|
|
||||||
|
/* delete all menus */
|
||||||
|
{
|
||||||
|
int i = MIN_POPUP_SUBMENU_ID;
|
||||||
|
MenuHandle submenu = GetMenuHandle (i);
|
||||||
|
while (submenu != NULL)
|
||||||
|
{
|
||||||
|
DeleteMenu (i);
|
||||||
|
DisposeMenu (submenu);
|
||||||
|
submenu = GetMenuHandle (++i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
DeleteMenu (POPUP_SUBMENU_ID);
|
||||||
|
DisposeMenu (*menu);
|
||||||
|
|
||||||
|
UNBLOCK_INPUT;
|
||||||
|
|
||||||
|
return Qnil;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Mac_menu_show actually displays a menu using the panes and items in
|
||||||
menu_items and returns the value selected from it; we assume input
|
menu_items and returns the value selected from it; we assume input
|
||||||
is blocked by the caller. */
|
is blocked by the caller. */
|
||||||
|
|
||||||
|
@ -1644,6 +1744,7 @@ mac_menu_show (f, x, y, for_click, keymaps, title, error)
|
||||||
= (Lisp_Object *) alloca (menu_items_used * sizeof (Lisp_Object));
|
= (Lisp_Object *) alloca (menu_items_used * sizeof (Lisp_Object));
|
||||||
int submenu_depth = 0;
|
int submenu_depth = 0;
|
||||||
int first_pane;
|
int first_pane;
|
||||||
|
int specpdl_count = SPECPDL_INDEX ();
|
||||||
|
|
||||||
*error = NULL;
|
*error = NULL;
|
||||||
|
|
||||||
|
@ -1817,7 +1918,7 @@ mac_menu_show (f, x, y, for_click, keymaps, title, error)
|
||||||
title = ENCODE_MENU_STRING (title);
|
title = ENCODE_MENU_STRING (title);
|
||||||
#endif
|
#endif
|
||||||
wv_title->name = (char *) SDATA (title);
|
wv_title->name = (char *) SDATA (title);
|
||||||
wv_title->enabled = TRUE;
|
wv_title->enabled = FALSE;
|
||||||
wv_title->title = TRUE;
|
wv_title->title = TRUE;
|
||||||
wv_title->button_type = BUTTON_TYPE_NONE;
|
wv_title->button_type = BUTTON_TYPE_NONE;
|
||||||
wv_title->help = Qnil;
|
wv_title->help = Qnil;
|
||||||
|
@ -1830,6 +1931,10 @@ mac_menu_show (f, x, y, for_click, keymaps, title, error)
|
||||||
submenu_id = MIN_POPUP_SUBMENU_ID;
|
submenu_id = MIN_POPUP_SUBMENU_ID;
|
||||||
fill_submenu (menu, first_wv->contents);
|
fill_submenu (menu, first_wv->contents);
|
||||||
|
|
||||||
|
/* Free the widget_value objects we used to specify the
|
||||||
|
contents. */
|
||||||
|
free_menubar_widget_value_tree (first_wv);
|
||||||
|
|
||||||
/* Adjust coordinates to be root-window-relative. */
|
/* Adjust coordinates to be root-window-relative. */
|
||||||
pos.h = x;
|
pos.h = x;
|
||||||
pos.v = y;
|
pos.v = y;
|
||||||
|
@ -1844,11 +1949,18 @@ mac_menu_show (f, x, y, for_click, keymaps, title, error)
|
||||||
|
|
||||||
InsertMenu (menu, -1);
|
InsertMenu (menu, -1);
|
||||||
|
|
||||||
|
record_unwind_protect (pop_down_menu,
|
||||||
|
Fcons (make_save_value (f, 0),
|
||||||
|
make_save_value (&menu, 0)));
|
||||||
|
|
||||||
|
/* Add event handler so we can detect C-g. */
|
||||||
|
install_menu_quit_handler (menu);
|
||||||
|
|
||||||
/* Display the menu. */
|
/* Display the menu. */
|
||||||
menu_item_choice = PopUpMenuSelect (menu, pos.v, pos.h, 0);
|
menu_item_choice = PopUpMenuSelect (menu, pos.v, pos.h, 0);
|
||||||
menu_item_selection = LoWord (menu_item_choice);
|
menu_item_selection = LoWord (menu_item_choice);
|
||||||
|
|
||||||
/* Get the refcon to find the correct item*/
|
/* Get the refcon to find the correct item */
|
||||||
if (menu_item_selection)
|
if (menu_item_selection)
|
||||||
{
|
{
|
||||||
MenuHandle sel_menu = GetMenuHandle (HiWord (menu_item_choice));
|
MenuHandle sel_menu = GetMenuHandle (HiWord (menu_item_choice));
|
||||||
|
@ -1856,35 +1968,10 @@ mac_menu_show (f, x, y, for_click, keymaps, title, error)
|
||||||
GetMenuItemRefCon (sel_menu, menu_item_selection, &refcon);
|
GetMenuItemRefCon (sel_menu, menu_item_selection, &refcon);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (! for_click)
|
||||||
#if 0
|
/* Make "Cancel" equivalent to C-g unless this menu was popped up by
|
||||||
/* Clean up extraneous mouse events which might have been generated
|
a mouse press. */
|
||||||
during the call. */
|
Fsignal (Qquit, Qnil);
|
||||||
discard_mouse_events ();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Must reset this manually because the button release event is not
|
|
||||||
passed to Emacs event loop. */
|
|
||||||
FRAME_MAC_DISPLAY_INFO (f)->grabbed = 0;
|
|
||||||
|
|
||||||
/* Free the widget_value objects we used to specify the
|
|
||||||
contents. */
|
|
||||||
free_menubar_widget_value_tree (first_wv);
|
|
||||||
|
|
||||||
/* delete all menus */
|
|
||||||
{
|
|
||||||
int i = MIN_POPUP_SUBMENU_ID;
|
|
||||||
MenuHandle submenu = GetMenuHandle (i);
|
|
||||||
while (submenu != NULL)
|
|
||||||
{
|
|
||||||
DeleteMenu (i);
|
|
||||||
DisposeMenu (submenu);
|
|
||||||
submenu = GetMenuHandle (++i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
DeleteMenu (POPUP_SUBMENU_ID);
|
|
||||||
DisposeMenu (menu);
|
|
||||||
|
|
||||||
/* Find the selected item, and its pane, to return
|
/* Find the selected item, and its pane, to return
|
||||||
the proper value. */
|
the proper value. */
|
||||||
|
@ -1944,6 +2031,8 @@ mac_menu_show (f, x, y, for_click, keymaps, title, error)
|
||||||
/* Make "Cancel" equivalent to C-g. */
|
/* Make "Cancel" equivalent to C-g. */
|
||||||
Fsignal (Qquit, Qnil);
|
Fsignal (Qquit, Qnil);
|
||||||
|
|
||||||
|
unbind_to (specpdl_count, Qnil);
|
||||||
|
|
||||||
return Qnil;
|
return Qnil;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9916,8 +9916,8 @@ MakeMeTheFrontProcess ()
|
||||||
/***** Code to handle C-g testing *****/
|
/***** Code to handle C-g testing *****/
|
||||||
|
|
||||||
/* Contains the Mac modifier formed from quit_char */
|
/* Contains the Mac modifier formed from quit_char */
|
||||||
static mac_quit_char_modifiers = 0;
|
int mac_quit_char_modifiers = 0;
|
||||||
static mac_quit_char_keycode;
|
int mac_quit_char_keycode;
|
||||||
extern int quit_char;
|
extern int quit_char;
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -634,6 +634,7 @@ $(BLD)/emacs.$(O) : \
|
||||||
$(SRC)/termhooks.h \
|
$(SRC)/termhooks.h \
|
||||||
$(SRC)/w32bdf.h \
|
$(SRC)/w32bdf.h \
|
||||||
$(SRC)/w32gui.h \
|
$(SRC)/w32gui.h \
|
||||||
|
$(SRC)/w32heap.h \
|
||||||
$(SRC)/window.h
|
$(SRC)/window.h
|
||||||
|
|
||||||
$(BLD)/eval.$(O) : \
|
$(BLD)/eval.$(O) : \
|
||||||
|
@ -1494,6 +1495,7 @@ $(BLD)/w32select.$(O): \
|
||||||
$(SRC)/systime.h \
|
$(SRC)/systime.h \
|
||||||
$(SRC)/w32bdf.h \
|
$(SRC)/w32bdf.h \
|
||||||
$(SRC)/w32gui.h \
|
$(SRC)/w32gui.h \
|
||||||
|
$(SRC)/w32heap.h \
|
||||||
$(SRC)/w32term.h
|
$(SRC)/w32term.h
|
||||||
|
|
||||||
$(BLD)/w32reg.$(O): \
|
$(BLD)/w32reg.$(O): \
|
||||||
|
|
|
@ -272,17 +272,19 @@ int update_tick;
|
||||||
#define READ_OUTPUT_DELAY_MAX (READ_OUTPUT_DELAY_INCREMENT * 5)
|
#define READ_OUTPUT_DELAY_MAX (READ_OUTPUT_DELAY_INCREMENT * 5)
|
||||||
#define READ_OUTPUT_DELAY_MAX_MAX (READ_OUTPUT_DELAY_INCREMENT * 7)
|
#define READ_OUTPUT_DELAY_MAX_MAX (READ_OUTPUT_DELAY_INCREMENT * 7)
|
||||||
|
|
||||||
/* Number of processes which might be delayed. */
|
/* Number of processes which have a non-zero read_output_delay,
|
||||||
|
and therefore might be delayed for adaptive read buffering. */
|
||||||
|
|
||||||
static int process_output_delay_count;
|
static int process_output_delay_count;
|
||||||
|
|
||||||
/* Non-zero if any process has non-nil process_output_skip. */
|
/* Non-zero if any process has non-nil read_output_skip. */
|
||||||
|
|
||||||
static int process_output_skip;
|
static int process_output_skip;
|
||||||
|
|
||||||
/* Non-nil means to delay reading process output to improve buffering.
|
/* Non-nil means to delay reading process output to improve buffering.
|
||||||
A value of t means that delay is reset after each send, any other
|
A value of t means that delay is reset after each send, any other
|
||||||
non-nil value does not reset the delay. */
|
non-nil value does not reset the delay. A value of nil disables
|
||||||
|
adaptive read buffering completely. */
|
||||||
static Lisp_Object Vprocess_adaptive_read_buffering;
|
static Lisp_Object Vprocess_adaptive_read_buffering;
|
||||||
#else
|
#else
|
||||||
#define process_output_delay_count 0
|
#define process_output_delay_count 0
|
||||||
|
@ -1536,7 +1538,6 @@ usage: (start-process NAME BUFFER PROGRAM &rest PROGRAM-ARGS) */)
|
||||||
|
|
||||||
XPROCESS (proc)->childp = Qt;
|
XPROCESS (proc)->childp = Qt;
|
||||||
XPROCESS (proc)->plist = Qnil;
|
XPROCESS (proc)->plist = Qnil;
|
||||||
XPROCESS (proc)->command_channel_p = Qnil;
|
|
||||||
XPROCESS (proc)->buffer = buffer;
|
XPROCESS (proc)->buffer = buffer;
|
||||||
XPROCESS (proc)->sentinel = Qnil;
|
XPROCESS (proc)->sentinel = Qnil;
|
||||||
XPROCESS (proc)->filter = Qnil;
|
XPROCESS (proc)->filter = Qnil;
|
||||||
|
@ -4320,6 +4321,11 @@ wait_reading_process_output (time_limit, microsecs, read_kbd, do_display,
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef ADAPTIVE_READ_BUFFERING
|
#ifdef ADAPTIVE_READ_BUFFERING
|
||||||
|
/* Set the timeout for adaptive read buffering if any
|
||||||
|
process has non-nil read_output_skip and non-zero
|
||||||
|
read_output_delay, and we are not reading output for a
|
||||||
|
specific wait_channel. It is not executed if
|
||||||
|
Vprocess_adaptive_read_buffering is nil. */
|
||||||
if (process_output_skip && check_delay > 0)
|
if (process_output_skip && check_delay > 0)
|
||||||
{
|
{
|
||||||
int usecs = EMACS_USECS (timeout);
|
int usecs = EMACS_USECS (timeout);
|
||||||
|
@ -4330,6 +4336,8 @@ wait_reading_process_output (time_limit, microsecs, read_kbd, do_display,
|
||||||
proc = chan_process[channel];
|
proc = chan_process[channel];
|
||||||
if (NILP (proc))
|
if (NILP (proc))
|
||||||
continue;
|
continue;
|
||||||
|
/* Find minimum non-zero read_output_delay among the
|
||||||
|
processes with non-nil read_output_skip. */
|
||||||
if (XINT (XPROCESS (proc)->read_output_delay) > 0)
|
if (XINT (XPROCESS (proc)->read_output_delay) > 0)
|
||||||
{
|
{
|
||||||
check_delay--;
|
check_delay--;
|
||||||
|
@ -4880,10 +4888,10 @@ read_process_output (proc, channel)
|
||||||
{
|
{
|
||||||
Lisp_Object tem;
|
Lisp_Object tem;
|
||||||
/* Don't clobber the CURRENT match data, either! */
|
/* Don't clobber the CURRENT match data, either! */
|
||||||
tem = Fmatch_data (Qnil, Qnil);
|
tem = Fmatch_data (Qnil, Qnil, Qnil);
|
||||||
restore_match_data ();
|
restore_search_regs ();
|
||||||
record_unwind_protect (Fset_match_data, Fmatch_data (Qnil, Qnil));
|
record_unwind_save_match_data ();
|
||||||
Fset_match_data (tem);
|
Fset_match_data (tem, Qt);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* For speed, if a search happens within this code,
|
/* For speed, if a search happens within this code,
|
||||||
|
@ -4939,7 +4947,7 @@ read_process_output (proc, channel)
|
||||||
read_process_output_error_handler);
|
read_process_output_error_handler);
|
||||||
|
|
||||||
/* If we saved the match data nonrecursively, restore it now. */
|
/* If we saved the match data nonrecursively, restore it now. */
|
||||||
restore_match_data ();
|
restore_search_regs ();
|
||||||
running_asynch_code = outer_running_asynch_code;
|
running_asynch_code = outer_running_asynch_code;
|
||||||
|
|
||||||
/* Handling the process output should not deactivate the mark. */
|
/* Handling the process output should not deactivate the mark. */
|
||||||
|
@ -6338,10 +6346,10 @@ exec_sentinel (proc, reason)
|
||||||
if (outer_running_asynch_code)
|
if (outer_running_asynch_code)
|
||||||
{
|
{
|
||||||
Lisp_Object tem;
|
Lisp_Object tem;
|
||||||
tem = Fmatch_data (Qnil, Qnil);
|
tem = Fmatch_data (Qnil, Qnil, Qnil);
|
||||||
restore_match_data ();
|
restore_search_regs ();
|
||||||
record_unwind_protect (Fset_match_data, Fmatch_data (Qnil, Qnil));
|
record_unwind_save_match_data ();
|
||||||
Fset_match_data (tem);
|
Fset_match_data (tem, Qt);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* For speed, if a search happens within this code,
|
/* For speed, if a search happens within this code,
|
||||||
|
@ -6355,7 +6363,7 @@ exec_sentinel (proc, reason)
|
||||||
exec_sentinel_error_handler);
|
exec_sentinel_error_handler);
|
||||||
|
|
||||||
/* If we saved the match data nonrecursively, restore it now. */
|
/* If we saved the match data nonrecursively, restore it now. */
|
||||||
restore_match_data ();
|
restore_search_regs ();
|
||||||
running_asynch_code = outer_running_asynch_code;
|
running_asynch_code = outer_running_asynch_code;
|
||||||
|
|
||||||
Vdeactivate_mark = odeactivate;
|
Vdeactivate_mark = odeactivate;
|
||||||
|
@ -6709,7 +6717,7 @@ init_process ()
|
||||||
#endif /* HAVE_SOCKETS */
|
#endif /* HAVE_SOCKETS */
|
||||||
|
|
||||||
#if defined (DARWIN) || defined (MAC_OSX)
|
#if defined (DARWIN) || defined (MAC_OSX)
|
||||||
/* PTYs are broken on Darwin < 6, but are sometimes useful for interactive
|
/* PTYs are broken on Darwin < 6, but are sometimes useful for interactive
|
||||||
processes. As such, we only change the default value. */
|
processes. As such, we only change the default value. */
|
||||||
if (initialized)
|
if (initialized)
|
||||||
{
|
{
|
||||||
|
|
|
@ -52,8 +52,6 @@ struct Lisp_Process
|
||||||
Lisp_Object buffer;
|
Lisp_Object buffer;
|
||||||
/* Number of this process */
|
/* Number of this process */
|
||||||
Lisp_Object pid;
|
Lisp_Object pid;
|
||||||
/* Non-nil if this is really a command channel */
|
|
||||||
Lisp_Object command_channel_p;
|
|
||||||
/* t if this is a real child process.
|
/* t if this is a real child process.
|
||||||
For a net connection, it is a plist based on the arguments to make-network-process. */
|
For a net connection, it is a plist based on the arguments to make-network-process. */
|
||||||
Lisp_Object childp;
|
Lisp_Object childp;
|
||||||
|
@ -105,7 +103,7 @@ struct Lisp_Process
|
||||||
Initialized from `Vprocess_adaptive_read_buffering'. */
|
Initialized from `Vprocess_adaptive_read_buffering'. */
|
||||||
Lisp_Object adaptive_read_buffering;
|
Lisp_Object adaptive_read_buffering;
|
||||||
/* Hysteresis to try to read process output in larger blocks.
|
/* Hysteresis to try to read process output in larger blocks.
|
||||||
On some systems, e.g. the Linux kernel, emacs is seen as
|
On some systems, e.g. GNU/Linux, Emacs is seen as
|
||||||
an interactive app also when reading process output, meaning
|
an interactive app also when reading process output, meaning
|
||||||
that process output can be read in as little as 1 byte at a
|
that process output can be read in as little as 1 byte at a
|
||||||
time. Value is micro-seconds to delay reading output from
|
time. Value is micro-seconds to delay reading output from
|
||||||
|
|
96
src/search.c
96
src/search.c
|
@ -2701,7 +2701,7 @@ Zero means the entire text matched by the whole regexp or whole string. */)
|
||||||
return match_limit (subexp, 0);
|
return match_limit (subexp, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFUN ("match-data", Fmatch_data, Smatch_data, 0, 2, 0,
|
DEFUN ("match-data", Fmatch_data, Smatch_data, 0, 3, 0,
|
||||||
doc: /* Return a list containing all info on what the last search matched.
|
doc: /* Return a list containing all info on what the last search matched.
|
||||||
Element 2N is `(match-beginning N)'; element 2N + 1 is `(match-end N)'.
|
Element 2N is `(match-beginning N)'; element 2N + 1 is `(match-end N)'.
|
||||||
All the elements are markers or nil (nil if the Nth pair didn't match)
|
All the elements are markers or nil (nil if the Nth pair didn't match)
|
||||||
|
@ -2713,17 +2713,35 @@ integers \(rather than markers) to represent buffer positions. In
|
||||||
this case, and if the last match was in a buffer, the buffer will get
|
this case, and if the last match was in a buffer, the buffer will get
|
||||||
stored as one additional element at the end of the list.
|
stored as one additional element at the end of the list.
|
||||||
|
|
||||||
If REUSE is a list, reuse it as part of the value. If REUSE is long enough
|
If REUSE is a list, reuse it as part of the value. If REUSE is long
|
||||||
to hold all the values, and if INTEGERS is non-nil, no consing is done.
|
enough to hold all the values, and if INTEGERS is non-nil, no consing
|
||||||
|
is done.
|
||||||
|
|
||||||
|
If optional third arg RESEAT is non-nil, any previous markers on the
|
||||||
|
REUSE list will be modified to point to nowhere.
|
||||||
|
|
||||||
|
If RESEAT is `evaporate', put markers back on the free list.
|
||||||
|
Note: No other references to the markers must exist if you use this.
|
||||||
|
|
||||||
Return value is undefined if the last search failed. */)
|
Return value is undefined if the last search failed. */)
|
||||||
(integers, reuse)
|
(integers, reuse, reseat)
|
||||||
Lisp_Object integers, reuse;
|
Lisp_Object integers, reuse, reseat;
|
||||||
{
|
{
|
||||||
Lisp_Object tail, prev;
|
Lisp_Object tail, prev;
|
||||||
Lisp_Object *data;
|
Lisp_Object *data;
|
||||||
int i, len;
|
int i, len;
|
||||||
|
|
||||||
|
if (!NILP (reseat))
|
||||||
|
for (tail = reuse; CONSP (tail); tail = XCDR (tail))
|
||||||
|
if (MARKERP (XCAR (tail)))
|
||||||
|
{
|
||||||
|
if (EQ (reseat, Qevaporate))
|
||||||
|
free_marker (XCAR (tail));
|
||||||
|
else
|
||||||
|
unchain_marker (XMARKER (XCAR (tail)));
|
||||||
|
XSETCAR (tail, Qnil);
|
||||||
|
}
|
||||||
|
|
||||||
if (NILP (last_thing_searched))
|
if (NILP (last_thing_searched))
|
||||||
return Qnil;
|
return Qnil;
|
||||||
|
|
||||||
|
@ -2759,10 +2777,10 @@ Return value is undefined if the last search failed. */)
|
||||||
/* last_thing_searched must always be Qt, a buffer, or Qnil. */
|
/* last_thing_searched must always be Qt, a buffer, or Qnil. */
|
||||||
abort ();
|
abort ();
|
||||||
|
|
||||||
len = 2*(i+1);
|
len = 2 * i + 2;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
data[2 * i] = data [2 * i + 1] = Qnil;
|
data[2 * i] = data[2 * i + 1] = Qnil;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (BUFFERP (last_thing_searched) && !NILP (integers))
|
if (BUFFERP (last_thing_searched) && !NILP (integers))
|
||||||
|
@ -2796,11 +2814,15 @@ Return value is undefined if the last search failed. */)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
DEFUN ("set-match-data", Fset_match_data, Sset_match_data, 1, 1, 0,
|
DEFUN ("set-match-data", Fset_match_data, Sset_match_data, 1, 2, 0,
|
||||||
doc: /* Set internal data on last search match from elements of LIST.
|
doc: /* Set internal data on last search match from elements of LIST.
|
||||||
LIST should have been created by calling `match-data' previously. */)
|
LIST should have been created by calling `match-data' previously.
|
||||||
(list)
|
|
||||||
register Lisp_Object list;
|
If optional arg RESEAT is non-nil, make markers on LIST point nowhere.
|
||||||
|
If RESEAT is `evaporate', put the markers back on the free list.
|
||||||
|
Note: No other references to the markers must exist if you use this. */)
|
||||||
|
(list, reseat)
|
||||||
|
register Lisp_Object list, reseat;
|
||||||
{
|
{
|
||||||
register int i;
|
register int i;
|
||||||
register Lisp_Object marker;
|
register Lisp_Object marker;
|
||||||
|
@ -2844,9 +2866,9 @@ LIST should have been created by calling `match-data' previously. */)
|
||||||
search_regs.num_regs = length;
|
search_regs.num_regs = length;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0;; i++)
|
for (i = 0; CONSP (list); i++)
|
||||||
{
|
{
|
||||||
marker = Fcar (list);
|
marker = XCAR (list);
|
||||||
if (BUFFERP (marker))
|
if (BUFFERP (marker))
|
||||||
{
|
{
|
||||||
last_thing_searched = marker;
|
last_thing_searched = marker;
|
||||||
|
@ -2857,12 +2879,14 @@ LIST should have been created by calling `match-data' previously. */)
|
||||||
if (NILP (marker))
|
if (NILP (marker))
|
||||||
{
|
{
|
||||||
search_regs.start[i] = -1;
|
search_regs.start[i] = -1;
|
||||||
list = Fcdr (list);
|
list = XCDR (list);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
int from;
|
int from;
|
||||||
|
Lisp_Object m;
|
||||||
|
|
||||||
|
m = marker;
|
||||||
if (MARKERP (marker))
|
if (MARKERP (marker))
|
||||||
{
|
{
|
||||||
if (XMARKER (marker)->buffer == 0)
|
if (XMARKER (marker)->buffer == 0)
|
||||||
|
@ -2873,17 +2897,38 @@ LIST should have been created by calling `match-data' previously. */)
|
||||||
|
|
||||||
CHECK_NUMBER_COERCE_MARKER (marker);
|
CHECK_NUMBER_COERCE_MARKER (marker);
|
||||||
from = XINT (marker);
|
from = XINT (marker);
|
||||||
list = Fcdr (list);
|
|
||||||
|
|
||||||
marker = Fcar (list);
|
if (!NILP (reseat) && MARKERP (m))
|
||||||
|
{
|
||||||
|
if (EQ (reseat, Qevaporate))
|
||||||
|
free_marker (m);
|
||||||
|
else
|
||||||
|
unchain_marker (XMARKER (m));
|
||||||
|
XSETCAR (list, Qnil);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((list = XCDR (list), !CONSP (list)))
|
||||||
|
break;
|
||||||
|
|
||||||
|
m = marker = XCAR (list);
|
||||||
|
|
||||||
if (MARKERP (marker) && XMARKER (marker)->buffer == 0)
|
if (MARKERP (marker) && XMARKER (marker)->buffer == 0)
|
||||||
XSETFASTINT (marker, 0);
|
XSETFASTINT (marker, 0);
|
||||||
|
|
||||||
CHECK_NUMBER_COERCE_MARKER (marker);
|
CHECK_NUMBER_COERCE_MARKER (marker);
|
||||||
search_regs.start[i] = from;
|
search_regs.start[i] = from;
|
||||||
search_regs.end[i] = XINT (marker);
|
search_regs.end[i] = XINT (marker);
|
||||||
|
|
||||||
|
if (!NILP (reseat) && MARKERP (m))
|
||||||
|
{
|
||||||
|
if (EQ (reseat, Qevaporate))
|
||||||
|
free_marker (m);
|
||||||
|
else
|
||||||
|
unchain_marker (XMARKER (m));
|
||||||
|
XSETCAR (list, Qnil);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
list = Fcdr (list);
|
list = XCDR (list);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (; i < search_regs.num_regs; i++)
|
for (; i < search_regs.num_regs; i++)
|
||||||
|
@ -2921,7 +2966,7 @@ save_search_regs ()
|
||||||
|
|
||||||
/* Called upon exit from filters and sentinels. */
|
/* Called upon exit from filters and sentinels. */
|
||||||
void
|
void
|
||||||
restore_match_data ()
|
restore_search_regs ()
|
||||||
{
|
{
|
||||||
if (search_regs_saved)
|
if (search_regs_saved)
|
||||||
{
|
{
|
||||||
|
@ -2939,6 +2984,21 @@ restore_match_data ()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Lisp_Object
|
||||||
|
unwind_set_match_data (list)
|
||||||
|
Lisp_Object list;
|
||||||
|
{
|
||||||
|
return Fset_match_data (list, Qevaporate);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Called to unwind protect the match data. */
|
||||||
|
void
|
||||||
|
record_unwind_save_match_data ()
|
||||||
|
{
|
||||||
|
record_unwind_protect (unwind_set_match_data,
|
||||||
|
Fmatch_data (Qnil, Qnil, Qnil));
|
||||||
|
}
|
||||||
|
|
||||||
/* Quote a string to inactivate reg-expr chars */
|
/* Quote a string to inactivate reg-expr chars */
|
||||||
|
|
||||||
DEFUN ("regexp-quote", Fregexp_quote, Sregexp_quote, 1, 1, 0,
|
DEFUN ("regexp-quote", Fregexp_quote, Sregexp_quote, 1, 1, 0,
|
||||||
|
|
|
@ -695,6 +695,7 @@ copy_data_segment (struct load_command *lc)
|
||||||
}
|
}
|
||||||
else if (strncmp (sectp->sectname, "__la_symbol_ptr", 16) == 0
|
else if (strncmp (sectp->sectname, "__la_symbol_ptr", 16) == 0
|
||||||
|| strncmp (sectp->sectname, "__nl_symbol_ptr", 16) == 0
|
|| strncmp (sectp->sectname, "__nl_symbol_ptr", 16) == 0
|
||||||
|
|| strncmp (sectp->sectname, "__la_sym_ptr2", 16) == 0
|
||||||
|| strncmp (sectp->sectname, "__dyld", 16) == 0
|
|| strncmp (sectp->sectname, "__dyld", 16) == 0
|
||||||
|| strncmp (sectp->sectname, "__const", 16) == 0
|
|| strncmp (sectp->sectname, "__const", 16) == 0
|
||||||
|| strncmp (sectp->sectname, "__cfstring", 16) == 0)
|
|| strncmp (sectp->sectname, "__cfstring", 16) == 0)
|
||||||
|
|
|
@ -325,6 +325,9 @@ relocate_offset (DWORD offset,
|
||||||
/* Convert address in executing image to RVA. */
|
/* Convert address in executing image to RVA. */
|
||||||
#define PTR_TO_RVA(ptr) ((DWORD)(ptr) - (DWORD) GetModuleHandle (NULL))
|
#define PTR_TO_RVA(ptr) ((DWORD)(ptr) - (DWORD) GetModuleHandle (NULL))
|
||||||
|
|
||||||
|
#define RVA_TO_PTR(var,section,filedata) \
|
||||||
|
((void *)(RVA_TO_OFFSET(var,section) + (filedata).file_base))
|
||||||
|
|
||||||
#define PTR_TO_OFFSET(ptr, pfile_data) \
|
#define PTR_TO_OFFSET(ptr, pfile_data) \
|
||||||
((unsigned char *)(ptr) - (pfile_data)->file_base)
|
((unsigned char *)(ptr) - (pfile_data)->file_base)
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,6 @@ Boston, MA 02111-1307, USA.
|
||||||
#include "w32heap.h"
|
#include "w32heap.h"
|
||||||
#include "lisp.h" /* for VALMASK */
|
#include "lisp.h" /* for VALMASK */
|
||||||
|
|
||||||
#undef RVA_TO_PTR
|
|
||||||
#define RVA_TO_PTR(rva) ((unsigned char *)((DWORD)(rva) + (DWORD)GetModuleHandle (NULL)))
|
#define RVA_TO_PTR(rva) ((unsigned char *)((DWORD)(rva) + (DWORD)GetModuleHandle (NULL)))
|
||||||
|
|
||||||
/* This gives us the page size and the size of the allocation unit on NT. */
|
/* This gives us the page size and the size of the allocation unit on NT. */
|
||||||
|
|
|
@ -82,15 +82,6 @@ typedef struct file_data {
|
||||||
unsigned char *file_base;
|
unsigned char *file_base;
|
||||||
} file_data;
|
} file_data;
|
||||||
|
|
||||||
#define OFFSET_TO_RVA(var,section) \
|
|
||||||
(section->VirtualAddress + ((DWORD)(var) - section->PointerToRawData))
|
|
||||||
|
|
||||||
#define RVA_TO_OFFSET(var,section) \
|
|
||||||
(section->PointerToRawData + ((DWORD)(var) - section->VirtualAddress))
|
|
||||||
|
|
||||||
#define RVA_TO_PTR(var,section,filedata) \
|
|
||||||
((void *)(RVA_TO_OFFSET(var,section) + (filedata).file_base))
|
|
||||||
|
|
||||||
int open_input_file (file_data *p_file, char *name);
|
int open_input_file (file_data *p_file, char *name);
|
||||||
int open_output_file (file_data *p_file, char *name, unsigned long size);
|
int open_output_file (file_data *p_file, char *name, unsigned long size);
|
||||||
void close_file_data (file_data *p_file);
|
void close_file_data (file_data *p_file);
|
||||||
|
|
|
@ -1443,7 +1443,8 @@ set_frame_menubar (f, first_time, deep_p)
|
||||||
because it is not reentrant. */
|
because it is not reentrant. */
|
||||||
specbind (Qdebug_on_next_call, Qnil);
|
specbind (Qdebug_on_next_call, Qnil);
|
||||||
|
|
||||||
record_unwind_protect (Fset_match_data, Fmatch_data (Qnil, Qnil));
|
record_unwind_save_match_data ();
|
||||||
|
|
||||||
if (NILP (Voverriding_local_map_menu_flag))
|
if (NILP (Voverriding_local_map_menu_flag))
|
||||||
{
|
{
|
||||||
specbind (Qoverriding_terminal_local_map, Qnil);
|
specbind (Qoverriding_terminal_local_map, Qnil);
|
||||||
|
|
|
@ -57,6 +57,11 @@ extern BOOL WINAPI IsValidLocale(LCID, DWORD);
|
||||||
#include "syssignal.h"
|
#include "syssignal.h"
|
||||||
#include "w32term.h"
|
#include "w32term.h"
|
||||||
|
|
||||||
|
#define RVA_TO_PTR(var,section,filedata) \
|
||||||
|
((void *)((section)->PointerToRawData \
|
||||||
|
+ ((DWORD)(var) - (section)->VirtualAddress) \
|
||||||
|
+ (filedata).file_base))
|
||||||
|
|
||||||
/* Control whether spawnve quotes arguments as necessary to ensure
|
/* Control whether spawnve quotes arguments as necessary to ensure
|
||||||
correct parsing by child process. Because not all uses of spawnve
|
correct parsing by child process. Because not all uses of spawnve
|
||||||
are careful about constructing argv arrays, we make this behaviour
|
are careful about constructing argv arrays, we make this behaviour
|
||||||
|
|
49
src/window.c
49
src/window.c
|
@ -1452,8 +1452,10 @@ delete_window (window)
|
||||||
tem = par->hchild;
|
tem = par->hchild;
|
||||||
if (NILP (tem))
|
if (NILP (tem))
|
||||||
tem = par->vchild;
|
tem = par->vchild;
|
||||||
if (NILP (XWINDOW (tem)->next))
|
if (NILP (XWINDOW (tem)->next)) {
|
||||||
replace_window (parent, tem);
|
replace_window (parent, tem);
|
||||||
|
par = XWINDOW (tem);
|
||||||
|
}
|
||||||
|
|
||||||
/* Since we may be deleting combination windows, we must make sure that
|
/* Since we may be deleting combination windows, we must make sure that
|
||||||
not only p but all its children have been marked as deleted. */
|
not only p but all its children have been marked as deleted. */
|
||||||
|
@ -1465,6 +1467,51 @@ delete_window (window)
|
||||||
/* Mark this window as deleted. */
|
/* Mark this window as deleted. */
|
||||||
p->buffer = p->hchild = p->vchild = Qnil;
|
p->buffer = p->hchild = p->vchild = Qnil;
|
||||||
|
|
||||||
|
if (! NILP (par->parent))
|
||||||
|
par = XWINDOW (par->parent);
|
||||||
|
|
||||||
|
/* Check if we have a v/hchild with a v/hchild. In that case remove
|
||||||
|
one of them. */
|
||||||
|
|
||||||
|
if (! NILP (par->vchild) && ! NILP (XWINDOW (par->vchild)->vchild))
|
||||||
|
{
|
||||||
|
p = XWINDOW (par->vchild);
|
||||||
|
par->vchild = p->vchild;
|
||||||
|
tem = p->vchild;
|
||||||
|
}
|
||||||
|
else if (! NILP (par->hchild) && ! NILP (XWINDOW (par->hchild)->hchild))
|
||||||
|
{
|
||||||
|
p = XWINDOW (par->hchild);
|
||||||
|
par->hchild = p->hchild;
|
||||||
|
tem = p->hchild;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
p = 0;
|
||||||
|
|
||||||
|
if (p)
|
||||||
|
{
|
||||||
|
while (! NILP (tem)) {
|
||||||
|
XWINDOW (tem)->parent = p->parent;
|
||||||
|
if (NILP (XWINDOW (tem)->next))
|
||||||
|
break;
|
||||||
|
tem = XWINDOW (tem)->next;
|
||||||
|
}
|
||||||
|
if (! NILP (tem)) {
|
||||||
|
/* The next of the v/hchild we are removing is now the next of the
|
||||||
|
last child for the v/hchild:
|
||||||
|
Before v/hchild -> v/hchild -> next1 -> next2
|
||||||
|
|
|
||||||
|
-> next3
|
||||||
|
After: v/hchild -> next1 -> next2 -> next3
|
||||||
|
*/
|
||||||
|
XWINDOW (tem)->next = p->next;
|
||||||
|
if (! NILP (p->next))
|
||||||
|
XWINDOW (p->next)->prev = tem;
|
||||||
|
}
|
||||||
|
p->next = p->prev = p->vchild = p->hchild = p->buffer = Qnil;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Adjust glyph matrices. */
|
/* Adjust glyph matrices. */
|
||||||
adjust_glyphs (f);
|
adjust_glyphs (f);
|
||||||
UNBLOCK_INPUT;
|
UNBLOCK_INPUT;
|
||||||
|
|
79
src/xdisp.c
79
src/xdisp.c
|
@ -351,6 +351,10 @@ Lisp_Object Qtrailing_whitespace;
|
||||||
|
|
||||||
Lisp_Object Qescape_glyph;
|
Lisp_Object Qescape_glyph;
|
||||||
|
|
||||||
|
/* Name and number of the face used to highlight non-breaking spaces. */
|
||||||
|
|
||||||
|
Lisp_Object Qno_break_space;
|
||||||
|
|
||||||
/* The symbol `image' which is the car of the lists used to represent
|
/* The symbol `image' which is the car of the lists used to represent
|
||||||
images in Lisp. */
|
images in Lisp. */
|
||||||
|
|
||||||
|
@ -5203,6 +5207,8 @@ get_next_display_element (it)
|
||||||
int face_id, lface_id = 0 ;
|
int face_id, lface_id = 0 ;
|
||||||
GLYPH escape_glyph;
|
GLYPH escape_glyph;
|
||||||
|
|
||||||
|
/* Handle control characters with ^. */
|
||||||
|
|
||||||
if (it->c < 128 && it->ctl_arrow_p)
|
if (it->c < 128 && it->ctl_arrow_p)
|
||||||
{
|
{
|
||||||
g = '^'; /* default glyph for Control */
|
g = '^'; /* default glyph for Control */
|
||||||
|
@ -5234,7 +5240,28 @@ get_next_display_element (it)
|
||||||
goto display_control;
|
goto display_control;
|
||||||
}
|
}
|
||||||
|
|
||||||
escape_glyph = '\\'; /* default for Octal display */
|
/* Handle non-break space in the mode where it only gets
|
||||||
|
highlighting. */
|
||||||
|
|
||||||
|
if (! EQ (Vshow_nonbreak_escape, Qt)
|
||||||
|
&& (it->c == 0x8a0 || it->c == 0x920
|
||||||
|
|| it->c == 0xe20 || it->c == 0xf20))
|
||||||
|
{
|
||||||
|
/* Merge the no-break-space face into the current face. */
|
||||||
|
face_id = merge_faces (it->f, Qno_break_space, 0,
|
||||||
|
it->face_id);
|
||||||
|
|
||||||
|
g = it->c = ' ';
|
||||||
|
XSETINT (it->ctl_chars[0], g);
|
||||||
|
ctl_len = 1;
|
||||||
|
goto display_control;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Handle sequences that start with the "escape glyph". */
|
||||||
|
|
||||||
|
/* the default escape glyph is \. */
|
||||||
|
escape_glyph = '\\';
|
||||||
|
|
||||||
if (it->dp
|
if (it->dp
|
||||||
&& INTEGERP (DISP_ESCAPE_GLYPH (it->dp))
|
&& INTEGERP (DISP_ESCAPE_GLYPH (it->dp))
|
||||||
&& GLYPH_CHAR_VALID_P (XFASTINT (DISP_ESCAPE_GLYPH (it->dp))))
|
&& GLYPH_CHAR_VALID_P (XFASTINT (DISP_ESCAPE_GLYPH (it->dp))))
|
||||||
|
@ -5244,6 +5271,8 @@ get_next_display_element (it)
|
||||||
}
|
}
|
||||||
if (lface_id)
|
if (lface_id)
|
||||||
{
|
{
|
||||||
|
/* The display table specified a face.
|
||||||
|
Merge it into face_id and also into escape_glyph. */
|
||||||
escape_glyph = FAST_GLYPH_CHAR (escape_glyph);
|
escape_glyph = FAST_GLYPH_CHAR (escape_glyph);
|
||||||
face_id = merge_faces (it->f, Qt, lface_id,
|
face_id = merge_faces (it->f, Qt, lface_id,
|
||||||
it->face_id);
|
it->face_id);
|
||||||
|
@ -8552,7 +8581,7 @@ prepare_menu_bars ()
|
||||||
Lisp_Object tail, frame;
|
Lisp_Object tail, frame;
|
||||||
int count = SPECPDL_INDEX ();
|
int count = SPECPDL_INDEX ();
|
||||||
|
|
||||||
record_unwind_protect (Fset_match_data, Fmatch_data (Qnil, Qnil));
|
record_unwind_save_match_data ();
|
||||||
|
|
||||||
FOR_EACH_FRAME (tail, frame)
|
FOR_EACH_FRAME (tail, frame)
|
||||||
{
|
{
|
||||||
|
@ -8675,7 +8704,7 @@ update_menu_bar (f, save_match_data)
|
||||||
|
|
||||||
set_buffer_internal_1 (XBUFFER (w->buffer));
|
set_buffer_internal_1 (XBUFFER (w->buffer));
|
||||||
if (save_match_data)
|
if (save_match_data)
|
||||||
record_unwind_protect (Fset_match_data, Fmatch_data (Qnil, Qnil));
|
record_unwind_save_match_data ();
|
||||||
if (NILP (Voverriding_local_map_menu_flag))
|
if (NILP (Voverriding_local_map_menu_flag))
|
||||||
{
|
{
|
||||||
specbind (Qoverriding_terminal_local_map, Qnil);
|
specbind (Qoverriding_terminal_local_map, Qnil);
|
||||||
|
@ -8866,7 +8895,7 @@ update_tool_bar (f, save_match_data)
|
||||||
|
|
||||||
/* Save match data, if we must. */
|
/* Save match data, if we must. */
|
||||||
if (save_match_data)
|
if (save_match_data)
|
||||||
record_unwind_protect (Fset_match_data, Fmatch_data (Qnil, Qnil));
|
record_unwind_save_match_data ();
|
||||||
|
|
||||||
/* Make sure that we don't accidentally use bogus keymaps. */
|
/* Make sure that we don't accidentally use bogus keymaps. */
|
||||||
if (NILP (Voverriding_local_map_menu_flag))
|
if (NILP (Voverriding_local_map_menu_flag))
|
||||||
|
@ -21620,10 +21649,8 @@ note_mode_line_or_margin_highlight (window, x, y, area)
|
||||||
int total_pixel_width;
|
int total_pixel_width;
|
||||||
int ignore;
|
int ignore;
|
||||||
|
|
||||||
|
int vpos, hpos;
|
||||||
if (clear_mouse_face (dpyinfo))
|
|
||||||
cursor = No_Cursor;
|
|
||||||
|
|
||||||
b = Fprevious_single_property_change (make_number (charpos + 1),
|
b = Fprevious_single_property_change (make_number (charpos + 1),
|
||||||
Qmouse_face, string, Qnil);
|
Qmouse_face, string, Qnil);
|
||||||
if (NILP (b))
|
if (NILP (b))
|
||||||
|
@ -21666,15 +21693,30 @@ note_mode_line_or_margin_highlight (window, x, y, area)
|
||||||
for (tmp_glyph = glyph - gpos; tmp_glyph != glyph; tmp_glyph++)
|
for (tmp_glyph = glyph - gpos; tmp_glyph != glyph; tmp_glyph++)
|
||||||
total_pixel_width += tmp_glyph->pixel_width;
|
total_pixel_width += tmp_glyph->pixel_width;
|
||||||
|
|
||||||
dpyinfo->mouse_face_beg_col = (x - gpos);
|
/* Pre calculation of re-rendering position */
|
||||||
dpyinfo->mouse_face_beg_row = (area == ON_MODE_LINE
|
vpos = (x - gpos);
|
||||||
? (w->current_matrix)->nrows - 1
|
hpos = (area == ON_MODE_LINE
|
||||||
: 0);
|
? (w->current_matrix)->nrows - 1
|
||||||
|
: 0);
|
||||||
|
|
||||||
|
/* If the re-rendering position is included in the last
|
||||||
|
re-rendering area, we should do nothing. */
|
||||||
|
if ( window == dpyinfo->mouse_face_window
|
||||||
|
&& dpyinfo->mouse_face_beg_col <= vpos
|
||||||
|
&& vpos < dpyinfo->mouse_face_end_col
|
||||||
|
&& dpyinfo->mouse_face_beg_row == hpos )
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (clear_mouse_face (dpyinfo))
|
||||||
|
cursor = No_Cursor;
|
||||||
|
|
||||||
|
dpyinfo->mouse_face_beg_col = vpos;
|
||||||
|
dpyinfo->mouse_face_beg_row = hpos;
|
||||||
|
|
||||||
dpyinfo->mouse_face_beg_x = original_x_pixel - (total_pixel_width + dx);
|
dpyinfo->mouse_face_beg_x = original_x_pixel - (total_pixel_width + dx);
|
||||||
dpyinfo->mouse_face_beg_y = 0;
|
dpyinfo->mouse_face_beg_y = 0;
|
||||||
|
|
||||||
dpyinfo->mouse_face_end_col = (x - gpos) + gseq_length;
|
dpyinfo->mouse_face_end_col = vpos + gseq_length;
|
||||||
dpyinfo->mouse_face_end_row = dpyinfo->mouse_face_beg_row;
|
dpyinfo->mouse_face_end_row = dpyinfo->mouse_face_beg_row;
|
||||||
|
|
||||||
dpyinfo->mouse_face_end_x = 0;
|
dpyinfo->mouse_face_end_x = 0;
|
||||||
|
@ -21746,7 +21788,8 @@ note_mouse_highlight (f, x, y)
|
||||||
/* If we were displaying active text in another window, clear that.
|
/* If we were displaying active text in another window, clear that.
|
||||||
Also clear if we move out of text area in same window. */
|
Also clear if we move out of text area in same window. */
|
||||||
if (! EQ (window, dpyinfo->mouse_face_window)
|
if (! EQ (window, dpyinfo->mouse_face_window)
|
||||||
|| (part != ON_TEXT && !NILP (dpyinfo->mouse_face_window)))
|
|| (part != ON_TEXT && part != ON_MODE_LINE && part != ON_HEADER_LINE
|
||||||
|
&& !NILP (dpyinfo->mouse_face_window)))
|
||||||
clear_mouse_face (dpyinfo);
|
clear_mouse_face (dpyinfo);
|
||||||
|
|
||||||
/* Not on a window -> return. */
|
/* Not on a window -> return. */
|
||||||
|
@ -22861,6 +22904,8 @@ syms_of_xdisp ()
|
||||||
staticpro (&Qtrailing_whitespace);
|
staticpro (&Qtrailing_whitespace);
|
||||||
Qescape_glyph = intern ("escape-glyph");
|
Qescape_glyph = intern ("escape-glyph");
|
||||||
staticpro (&Qescape_glyph);
|
staticpro (&Qescape_glyph);
|
||||||
|
Qno_break_space = intern ("no-break-space");
|
||||||
|
staticpro (&Qno_break_space);
|
||||||
Qimage = intern ("image");
|
Qimage = intern ("image");
|
||||||
staticpro (&Qimage);
|
staticpro (&Qimage);
|
||||||
QCmap = intern (":map");
|
QCmap = intern (":map");
|
||||||
|
@ -22967,7 +23012,11 @@ The face used for trailing whitespace is `trailing-whitespace'. */);
|
||||||
Vshow_trailing_whitespace = Qnil;
|
Vshow_trailing_whitespace = Qnil;
|
||||||
|
|
||||||
DEFVAR_LISP ("show-nonbreak-escape", &Vshow_nonbreak_escape,
|
DEFVAR_LISP ("show-nonbreak-escape", &Vshow_nonbreak_escape,
|
||||||
doc: /* *Non-nil means display escape character before non-break space and hyphen. */);
|
doc: /* *Control highlighting of non-break space and soft hyphen.
|
||||||
|
t means highlight the character itself (for non-break space,
|
||||||
|
use face `non-break-space'.
|
||||||
|
nil means no highlighting.
|
||||||
|
other values mean display the escape glyph before the character. */);
|
||||||
Vshow_nonbreak_escape = Qt;
|
Vshow_nonbreak_escape = Qt;
|
||||||
|
|
||||||
DEFVAR_LISP ("void-text-area-pointer", &Vvoid_text_area_pointer,
|
DEFVAR_LISP ("void-text-area-pointer", &Vvoid_text_area_pointer,
|
||||||
|
|
|
@ -1235,10 +1235,6 @@ popup_get_selection (initial_event, dpyinfo, id, do_timers)
|
||||||
if (event.type == ButtonRelease
|
if (event.type == ButtonRelease
|
||||||
&& dpyinfo->display == event.xbutton.display)
|
&& dpyinfo->display == event.xbutton.display)
|
||||||
{
|
{
|
||||||
/* If the click is not on the menu, deactivate the menu. */
|
|
||||||
if (x_any_window_to_frame (dpyinfo, event.xexpose.window))
|
|
||||||
popup_activated_flag = 0;
|
|
||||||
|
|
||||||
dpyinfo->grabbed &= ~(1 << event.xbutton.button);
|
dpyinfo->grabbed &= ~(1 << event.xbutton.button);
|
||||||
#ifdef USE_MOTIF /* Pretending that the event came from a
|
#ifdef USE_MOTIF /* Pretending that the event came from a
|
||||||
Btn1Down seems the only way to convince Motif to
|
Btn1Down seems the only way to convince Motif to
|
||||||
|
@ -2034,7 +2030,7 @@ set_frame_menubar (f, first_time, deep_p)
|
||||||
because it is not reentrant. */
|
because it is not reentrant. */
|
||||||
specbind (Qdebug_on_next_call, Qnil);
|
specbind (Qdebug_on_next_call, Qnil);
|
||||||
|
|
||||||
record_unwind_protect (Fset_match_data, Fmatch_data (Qnil, Qnil));
|
record_unwind_save_match_data ();
|
||||||
record_unwind_protect (unuse_menu_items, Qnil);
|
record_unwind_protect (unuse_menu_items, Qnil);
|
||||||
if (NILP (Voverriding_local_map_menu_flag))
|
if (NILP (Voverriding_local_map_menu_flag))
|
||||||
{
|
{
|
||||||
|
|
|
@ -4595,11 +4595,14 @@ x_create_toolkit_scroll_bar (f, bar)
|
||||||
char *initial = "";
|
char *initial = "";
|
||||||
char *val = initial;
|
char *val = initial;
|
||||||
XtVaGetValues (widget, XtNscrollVCursor, (XtPointer) &val,
|
XtVaGetValues (widget, XtNscrollVCursor, (XtPointer) &val,
|
||||||
|
#ifdef XtNarrowScrollbars
|
||||||
|
XtNarrowScrollbars, (XtPointer) &xaw3d_arrow_scroll,
|
||||||
|
#endif
|
||||||
XtNpickTop, (XtPointer) &xaw3d_pick_top, NULL);
|
XtNpickTop, (XtPointer) &xaw3d_pick_top, NULL);
|
||||||
if (val == initial)
|
if (xaw3d_arrow_scroll || val == initial)
|
||||||
{ /* ARROW_SCROLL */
|
{ /* ARROW_SCROLL */
|
||||||
xaw3d_arrow_scroll = True;
|
xaw3d_arrow_scroll = True;
|
||||||
/* Isn't that just a personal preference ? -sm */
|
/* Isn't that just a personal preference ? --Stef */
|
||||||
XtVaSetValues (widget, XtNcursorName, "top_left_arrow", NULL);
|
XtVaSetValues (widget, XtNcursorName, "top_left_arrow", NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue