merge trun
This commit is contained in:
commit
6ccc848cd8
174 changed files with 4602 additions and 3020 deletions
28
ChangeLog
28
ChangeLog
|
@ -1,3 +1,31 @@
|
|||
2012-10-26 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* Makefile.in (EMACS_NAME): New variable.
|
||||
(EMACS, install-etc, uninstall): Use $EMACS_NAME.
|
||||
|
||||
* Makefile.in (EMACS, EMACSFULL): Transformations should not be
|
||||
applied to $EXEEXT.
|
||||
|
||||
* Makefile.in (uninstall): Don't abort if some directories are missing.
|
||||
Apply transformation rules to manual pages, desktop and icon files.
|
||||
No more emacs22 icons to uninstall.
|
||||
|
||||
2012-10-24 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* Makefile.in (install-etc, install-man):
|
||||
Don't apply program transform to standard file suffixes.
|
||||
|
||||
2012-10-23 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* configure.ac (_FORTIFY_SOURCE): Do not multiply define (Bug#12714).
|
||||
This ports to Gentoo. Problem originally reported against coreutils,
|
||||
but Emacs has it too.
|
||||
|
||||
2012-10-23 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* Makefile.in (emacs_transform): Remove.
|
||||
(install-man): Revert 2012-10-21 change. (Bug#12713)
|
||||
|
||||
2012-10-21 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* Makefile.in (install-etc): Don't install emacs22 icons.
|
||||
|
|
54
Makefile.in
54
Makefile.in
|
@ -259,8 +259,9 @@ GZIP_INFO = @GZIP_INFO@
|
|||
TRANSFORM = @program_transform_name@
|
||||
|
||||
# What emacs should be called when installed.
|
||||
EMACS = `echo emacs${EXEEXT} | sed '$(TRANSFORM)'`
|
||||
EMACSFULL = `echo emacs-${version}${EXEEXT} | sed '$(TRANSFORM)'`
|
||||
EMACS_NAME = `echo emacs | sed '$(TRANSFORM)'`
|
||||
EMACS = ${EMACS_NAME}${EXEEXT}
|
||||
EMACSFULL = `echo emacs-${version} | sed '$(TRANSFORM)'`${EXEEXT}
|
||||
|
||||
# Subdirectories to make recursively.
|
||||
SUBDIR = lib lib-src src lisp leim
|
||||
|
@ -622,7 +623,7 @@ install-man:
|
|||
thisdir=`/bin/pwd`; \
|
||||
cd ${mansrcdir}; \
|
||||
for page in *.1; do \
|
||||
dest=`echo "$${page}" | sed '$(TRANSFORM)'`; \
|
||||
dest=`echo "$${page}" | sed -e 's/\.1$$//' -e '$(TRANSFORM)'`.1; \
|
||||
(cd $${thisdir}; \
|
||||
${INSTALL_DATA} ${mansrcdir}/$${page} $(DESTDIR)${man1dir}/$${dest}); \
|
||||
( [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ] ) || continue ; \
|
||||
|
@ -631,17 +632,14 @@ install-man:
|
|||
done
|
||||
|
||||
## Install those items from etc/ that need to end up elsewhere.
|
||||
|
||||
# Like EMACS, but without EXEEXT.
|
||||
emacs_transform = `echo emacs | sed '$(TRANSFORM)'`
|
||||
|
||||
install-etc:
|
||||
umask 022; ${MKDIR_P} $(DESTDIR)${desktopdir}
|
||||
tmp=etc/emacs.tmpdesktop; rm -f $${tmp}; \
|
||||
sed -e '/^Exec=emacs/ s/emacs/${emacs_transform}/' \
|
||||
-e '/^Icon=emacs/ s/emacs/${emacs_transform}/' \
|
||||
emacs_name=`echo emacs | sed '$(TRANSFORM)'`; \
|
||||
sed -e "/^Exec=emacs/ s/emacs/$${emacs_name}/" \
|
||||
-e "/^Icon=emacs/ s/emacs/$${emacs_name}/" \
|
||||
${srcdir}/etc/emacs.desktop > $${tmp}; \
|
||||
${INSTALL_DATA} $${tmp} $(DESTDIR)${desktopdir}/${emacs_transform}.desktop; \
|
||||
${INSTALL_DATA} $${tmp} $(DESTDIR)${desktopdir}/${EMACS_NAME}.desktop; \
|
||||
rm -f $${tmp}
|
||||
thisdir=`/bin/pwd`; \
|
||||
cd ${iconsrcdir} || exit 1; umask 022 ; \
|
||||
|
@ -650,7 +648,8 @@ install-etc:
|
|||
( cd $${thisdir}; ${MKDIR_P} $(DESTDIR)${icondir}/$${dir} ) ; \
|
||||
for icon in $${dir}/emacs[.-]*; do \
|
||||
[ -r $${icon} ] || continue ; \
|
||||
dest=`echo "$${icon}" | sed -e 's|.*/||' -e '$(TRANSFORM)'` ; \
|
||||
ext=`echo "$${icon}" | sed -e 's|.*\.||'`; \
|
||||
dest=`echo "$${icon}" | sed -e 's|.*/||' -e "s|\.$${ext}$$||" -e '$(TRANSFORM)'`.$${ext} ; \
|
||||
( cd $${thisdir}; \
|
||||
${INSTALL_DATA} ${iconsrcdir}/$${icon} $(DESTDIR)${icondir}/$${dir}/$${dest} ) \
|
||||
|| exit 1; \
|
||||
|
@ -687,21 +686,28 @@ uninstall:
|
|||
-rm -rf $(DESTDIR)${libexecdir}/emacs/${version}
|
||||
thisdir=`/bin/pwd`; \
|
||||
(info_misc=`cd doc/misc; ${MAKE} echo-info | sed '/ing directory/d'`; \
|
||||
cd $(DESTDIR)${infodir} && \
|
||||
for elt in ${INFO_NONMISC} $${info_misc}; do \
|
||||
(cd $${thisdir}; \
|
||||
$(INSTALL_INFO) --remove --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$elt); \
|
||||
if [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ]; then \
|
||||
ext=.gz; else ext=; fi; \
|
||||
rm -f $$elt$$ext $$elt-[1-9]$$ext $$elt-[1-9][0-9]$$ext; \
|
||||
done;)
|
||||
if cd $(DESTDIR)${infodir}; then \
|
||||
for elt in ${INFO_NONMISC} $${info_misc}; do \
|
||||
(cd $${thisdir}; \
|
||||
$(INSTALL_INFO) --remove --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$elt); \
|
||||
if [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ]; then \
|
||||
ext=.gz; else ext=; fi; \
|
||||
rm -f $$elt$$ext $$elt-[1-9]$$ext $$elt-[1-9][0-9]$$ext; \
|
||||
done; \
|
||||
fi)
|
||||
(if [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ]; then \
|
||||
ext=.gz; else ext=; fi; \
|
||||
cd ${mansrcdir} && for page in *.1; do \
|
||||
rm -f $(DESTDIR)${man1dir}/$$page$$ext; done )
|
||||
(cd $(DESTDIR)${bindir} && rm -f $(EMACSFULL) $(EMACS))
|
||||
(cd $(DESTDIR)${icondir} && rm -f hicolor/*x*/apps/emacs.png hicolor/*x*/apps/emacs22.png hicolor/scalable/apps/emacs.svg hicolor/scalable/mimetypes/emacs-document.svg )
|
||||
-rm -f $(DESTDIR)${desktopdir}/emacs.desktop
|
||||
if cd ${mansrcdir}; then \
|
||||
for page in *.1; do \
|
||||
rm -f $(DESTDIR)${man1dir}/`echo "$${page}" | sed -e 's/\.1$$//' -e '$(TRANSFORM)'`.1$$ext; done; \
|
||||
fi)
|
||||
(cd $(DESTDIR)${bindir} && rm -f $(EMACSFULL) $(EMACS) || true)
|
||||
(if cd $(DESTDIR)${icondir}; then \
|
||||
rm -f hicolor/*x*/apps/${EMACS_NAME}.png \
|
||||
hicolor/scalable/apps/${EMACS_NAME}.svg \
|
||||
hicolor/scalable/mimetypes/`echo emacs-document | sed '$(TRANSFORM)'`.svg; \
|
||||
fi)
|
||||
-rm -f $(DESTDIR)${desktopdir}/${EMACS_NAME}.desktop
|
||||
for file in snake-scores tetris-scores; do \
|
||||
file=$(DESTDIR)${gamedir}/$${file}; \
|
||||
[ -s $${file} ] || rm -f $$file; \
|
||||
|
|
|
@ -144,7 +144,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
|||
|
||||
/* Enable compile-time and run-time bounds-checking, and some warnings,
|
||||
without upsetting glibc 2.15+. */
|
||||
#if defined __OPTIMIZE__ && __OPTIMIZE__
|
||||
#if !defined _FORTIFY_SOURCE && defined __OPTIMIZE__ && __OPTIMIZE__
|
||||
# define _FORTIFY_SOURCE 2
|
||||
#endif
|
||||
|
||||
|
|
|
@ -743,7 +743,7 @@ else
|
|||
AH_VERBATIM([FORTIFY_SOURCE],
|
||||
[/* Enable compile-time and run-time bounds-checking, and some warnings,
|
||||
without upsetting glibc 2.15+. */
|
||||
#if defined __OPTIMIZE__ && __OPTIMIZE__
|
||||
#if !defined _FORTIFY_SOURCE && defined __OPTIMIZE__ && __OPTIMIZE__
|
||||
# define _FORTIFY_SOURCE 2
|
||||
#endif
|
||||
])
|
||||
|
|
|
@ -1,3 +1,53 @@
|
|||
2012-10-29 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* dired.texi (Shell Commands in Dired): Document changes to the
|
||||
dired-do-async-shell-command.
|
||||
|
||||
2012-10-28 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* ack.texi (Acknowledgments): Mention gv.el.
|
||||
|
||||
2012-10-27 Bastien Guerry <bzg@gnu.org>
|
||||
|
||||
* screen.texi (Menu Bar): Fix typo.
|
||||
|
||||
2012-10-27 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* frames.texi (Mouse Avoidance): Mention new variable
|
||||
mouse-avoidance-banish-position.
|
||||
|
||||
* programs.texi (Which Function): Which Function mode now works in
|
||||
all major modes by default.
|
||||
|
||||
* mule.texi (Recognize Coding): Remove an unreferenced vindex.
|
||||
|
||||
* files.texi (Misc File Ops): Symbolic links on Windows only work
|
||||
on Vista and later.
|
||||
|
||||
* building.texi (Compilation): Document compilation-always-kill.
|
||||
|
||||
* search.texi (Symbol Search): New node.
|
||||
|
||||
* package.texi (Package Menu): Document the "new" status.
|
||||
|
||||
* windows.texi (Window Choice): Don't refer to the obsolete
|
||||
special-display feature.
|
||||
|
||||
2012-10-24 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* mule.texi (Text Coding): set-buffer-file-coding-system can now
|
||||
be invoked from the mode line.
|
||||
|
||||
* dired.texi (Dired Deletion, Marks vs Flags): Document Emacs 24.3
|
||||
changes to the mark and unmark commands.
|
||||
(Comparison in Dired): Document chages to dired-diff. Remove M-=,
|
||||
which is no longer bound to dired-backup-diff.
|
||||
|
||||
2012-10-23 Bastien Guerry <bzg@gnu.org>
|
||||
|
||||
* text.texi (Org Authoring): Use a comma after @ref to avoid the
|
||||
insertion of a period in the Info output.
|
||||
|
||||
2012-10-23 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* custom.texi (Hooks): Clarify that -hooks is deprecated.
|
||||
|
|
|
@ -835,8 +835,9 @@ diffs; @file{css-mode.el} for Cascading Style Sheets;
|
|||
client for the ``Music Player Daemon''; @file{smie.el}, a generic
|
||||
indentation engine; and @file{pcase.el}, implementing ML-style pattern
|
||||
matching. In Emacs 24, he integrated the lexical binding code,
|
||||
and cleaned up the CL namespace (making it acceptable to use CL
|
||||
functions at runtime).
|
||||
cleaned up the CL namespace (making it acceptable to use CL
|
||||
functions at runtime), and added generalized variables to core Emacs
|
||||
Lisp.
|
||||
|
||||
@item
|
||||
Morioka Tomohiko wrote several packages for MIME support in Gnus and
|
||||
|
|
|
@ -108,11 +108,14 @@ directory, which is the directory in which the previous compilation
|
|||
was started.
|
||||
|
||||
@findex kill-compilation
|
||||
@vindex compilation-always-kill
|
||||
Starting a new compilation also kills any compilation already
|
||||
running in @file{*compilation*}, as the buffer can only handle one
|
||||
compilation at any time. However, @kbd{M-x compile} asks for
|
||||
confirmation before actually killing a compilation that is running.
|
||||
You can also kill the compilation process with @kbd{M-x
|
||||
confirmation before actually killing a compilation that is running; to
|
||||
always automatically kill the compilation without asking, change the
|
||||
variable @code{compilation-always-kill} to @code{t}. You can also
|
||||
kill a compilation process with the command @kbd{M-x
|
||||
kill-compilation}.
|
||||
|
||||
To run two compilations at once, start the first one, then rename
|
||||
|
|
|
@ -167,13 +167,14 @@ deletion, then delete the files that were flagged.
|
|||
|
||||
@table @kbd
|
||||
@item d
|
||||
Flag this file for deletion.
|
||||
Flag this file for deletion (@code{dired-flag-file-deletion}).
|
||||
@item u
|
||||
Remove deletion flag on this line.
|
||||
Remove the deletion flag (@code{dired-unmark}).
|
||||
@item @key{DEL}
|
||||
Move point to previous line and remove the deletion flag on that line.
|
||||
Move point to previous line and remove the deletion flag on that line
|
||||
(@code{dired-unmark-backward}).
|
||||
@item x
|
||||
Delete the files that are flagged for deletion.
|
||||
Delete files flagged for deletion (@code{dired-do-flagged-delete}).
|
||||
@end table
|
||||
|
||||
@kindex d @r{(Dired)}
|
||||
|
@ -182,8 +183,12 @@ Delete the files that are flagged for deletion.
|
|||
the file and typing @kbd{d} (@code{dired-flag-file-deletion}). The
|
||||
deletion flag is visible as a @samp{D} at the beginning of the line.
|
||||
This command moves point to the next line, so that repeated @kbd{d}
|
||||
commands flag successive files. A numeric argument serves as a repeat
|
||||
count.
|
||||
commands flag successive files. A numeric prefix argument serves as a
|
||||
repeat count; a negative count means to flag preceding files.
|
||||
|
||||
If the region is active, the @kbd{d} command flags all files in the
|
||||
region for deletion; in this case, the command does not move point,
|
||||
and ignores any prefix argument.
|
||||
|
||||
@kindex u @r{(Dired deletion)}
|
||||
@kindex DEL @r{(Dired)}
|
||||
|
@ -194,14 +199,17 @@ can remove deletion flags using the commands @kbd{u} and @key{DEL}.
|
|||
@kbd{u} (@code{dired-unmark}) works just like @kbd{d}, but removes
|
||||
flags rather than making flags. @key{DEL}
|
||||
(@code{dired-unmark-backward}) moves upward, removing flags; it is
|
||||
like @kbd{u} with argument @minus{}1.
|
||||
like @kbd{u} with argument @minus{}1. A numeric prefix argument to
|
||||
either command serves as a repeat count, with a negative count meaning
|
||||
to unflag in the opposite direction. If the region is active, these
|
||||
commands instead unflag all files in the region, without moving point.
|
||||
|
||||
@kindex x @r{(Dired)}
|
||||
@findex dired-do-flagged-delete
|
||||
To delete the flagged files, type @kbd{x}
|
||||
(@code{dired-do-flagged-delete}). This command first displays a list
|
||||
of all the file names flagged for deletion, and requests confirmation
|
||||
with @kbd{yes}. If you confirm, Dired deletes the flagged files, then
|
||||
To delete flagged files, type @kbd{x}
|
||||
(@code{dired-do-flagged-delete}). This command displays a list of all
|
||||
the file names flagged for deletion, and requests confirmation with
|
||||
@kbd{yes}. If you confirm, Dired deletes the flagged files, then
|
||||
deletes their lines from the text of the Dired buffer. The Dired
|
||||
buffer, with somewhat fewer lines, remains selected.
|
||||
|
||||
|
@ -387,10 +395,11 @@ and unflag files.)
|
|||
@kindex m @r{(Dired)}
|
||||
@kindex * m @r{(Dired)}
|
||||
@findex dired-mark
|
||||
Mark the current file with @samp{*} (@code{dired-mark}). With a numeric
|
||||
argument @var{n}, mark the next @var{n} files starting with the current
|
||||
file. (If @var{n} is negative, mark the previous @minus{}@var{n}
|
||||
files.)
|
||||
Mark the current file with @samp{*} (@code{dired-mark}). If the
|
||||
region is active, mark all files in the region instead; otherwise, if
|
||||
a numeric argument @var{n} is supplied, mark the next @var{n} files
|
||||
instead, starting with the current file (if @var{n} is negative, mark
|
||||
the previous @minus{}@var{n} files).
|
||||
|
||||
@item * *
|
||||
@kindex * * @r{(Dired)}
|
||||
|
@ -426,7 +435,11 @@ and @file{..} (@code{dired-mark-subdir-files}).
|
|||
@kindex u @r{(Dired)}
|
||||
@kindex * u @r{(Dired)}
|
||||
@findex dired-unmark
|
||||
Remove any mark on this line (@code{dired-unmark}).
|
||||
Remove any mark on this line (@code{dired-unmark}). If the region is
|
||||
active, unmark all files in the region instead; otherwise, if a
|
||||
numeric argument @var{n} is supplied, unmark the next @var{n} files
|
||||
instead, starting with the current file (if @var{n} is negative,
|
||||
unmark the previous @minus{}@var{n} files).
|
||||
|
||||
@item @key{DEL}
|
||||
@itemx * @key{DEL}
|
||||
|
@ -434,7 +447,11 @@ Remove any mark on this line (@code{dired-unmark}).
|
|||
@findex dired-unmark-backward
|
||||
@cindex unmarking files (in Dired)
|
||||
Move point to previous line and remove any mark on that line
|
||||
(@code{dired-unmark-backward}).
|
||||
(@code{dired-unmark-backward}). If the region is active, unmark all
|
||||
files in the region instead; otherwise, if a numeric argument @var{n}
|
||||
is supplied, unmark the @var{n} preceding files instead, starting with
|
||||
the current file (if @var{n} is negative, unmark the next
|
||||
@minus{}@var{n} files).
|
||||
|
||||
@item * !
|
||||
@itemx U
|
||||
|
@ -782,15 +799,20 @@ more matches. @xref{Tags Search}.
|
|||
@kindex ! @r{(Dired)}
|
||||
@kindex X @r{(Dired)}
|
||||
The Dired command @kbd{!} (@code{dired-do-shell-command}) reads a
|
||||
shell command string in the minibuffer and runs that shell command on
|
||||
shell command string in the minibuffer, and runs that shell command on
|
||||
one or more files. The files that the shell command operates on are
|
||||
determined in the usual way for Dired commands (@pxref{Operating on
|
||||
Files}). The command @kbd{X} is a synonym for @kbd{!}.
|
||||
|
||||
The command @kbd{&} (@code{dired-do-async-shell-command}) does the
|
||||
same, except that it runs the shell command asynchronously. You can
|
||||
same, except that it runs the shell command asynchronously. (You can
|
||||
also do this with @kbd{!}, by appending a @samp{&} character to the
|
||||
end of the shell command.
|
||||
end of the shell command.) When the command operates on more than one
|
||||
file, it runs multiple parallel copies of the specified shell command,
|
||||
one for each file. As an exception, if the specified shell command
|
||||
ends in @samp{;} or @samp{;&}, the shell command is run in the
|
||||
background on each file sequentially; Emacs waits for each invoked
|
||||
shell command to terminate before running the next one.
|
||||
|
||||
For both @kbd{!} and @kbd{&}, the working directory for the shell
|
||||
command is the top-level directory of the Dired buffer.
|
||||
|
@ -936,32 +958,19 @@ default.
|
|||
@cindex file comparison (in Dired)
|
||||
@cindex compare files (in Dired)
|
||||
|
||||
Here are two Dired commands that compare specified files using
|
||||
@code{diff}. They show the output in a buffer using Diff mode
|
||||
(@pxref{Comparing Files}).
|
||||
|
||||
@table @kbd
|
||||
@item =
|
||||
@findex dired-diff
|
||||
@kindex = @r{(Dired)}
|
||||
Compare the current file (the file at point) with another file (the
|
||||
file at the mark) using the @code{diff} program (@code{dired-diff}).
|
||||
The file at the mark is the first argument of @code{diff}, and the
|
||||
file at point is the second argument. This refers to the ordinary
|
||||
Emacs mark, not Dired marks; use @kbd{C-@key{SPC}}
|
||||
(@code{set-mark-command}) to set the mark at the first file's line
|
||||
(@pxref{Setting Mark}).
|
||||
The @kbd{=} (@code{dired-diff}) command compares the current file
|
||||
(the file at point) with another file (read using the minibuffer)
|
||||
using the @command{diff} program. The file specified with the
|
||||
minibuffer is the first argument of @command{diff}, and file at point
|
||||
is the second argument. The output of the @command{diff} program is
|
||||
shown in a buffer using Diff mode (@pxref{Comparing Files}).
|
||||
|
||||
@findex dired-backup-diff
|
||||
@kindex M-= @r{(Dired)}
|
||||
@item M-=
|
||||
Compare the current file with its latest backup file
|
||||
(@code{dired-backup-diff}). If the current file is itself a backup,
|
||||
compare it with the file it is a backup of; this way, you can compare
|
||||
a file with any one of its backups.
|
||||
|
||||
The backup file is the first file given to @code{diff}.
|
||||
@end table
|
||||
If the region is active, the default for the file read using the
|
||||
minibuffer is the file at the mark (i.e.@: the ordinary Emacs mark,
|
||||
not a Dired mark; @pxref{Setting Mark}). Otherwise, if the file at
|
||||
point has a backup file (@pxref{Backup}), that is the default.
|
||||
|
||||
@node Subdirectories in Dired
|
||||
@section Subdirectories in Dired
|
||||
|
|
|
@ -373,6 +373,7 @@ Searching and Replacement
|
|||
* Incremental Search:: Search happens as you type the string.
|
||||
* Nonincremental Search:: Specify entire string and then search.
|
||||
* Word Search:: Search for sequence of words.
|
||||
* Symbol Search:: Search for a source code symbol.
|
||||
* Regexp Search:: Search for match for a regexp.
|
||||
* Regexps:: Syntax of regular expressions.
|
||||
* Regexp Backslash:: Regular expression constructs starting with `\'.
|
||||
|
|
|
@ -1564,9 +1564,8 @@ open file @var{linkname} will refer to whatever file is named
|
|||
@var{target} at the time the opening is done, or will get an error if
|
||||
the name @var{target} is nonexistent at that time. This command does
|
||||
not expand the argument @var{target}, so that it allows you to specify
|
||||
a relative name as the target of the link. Not all systems support
|
||||
symbolic links; on systems that don't support them, this command is
|
||||
not defined.
|
||||
a relative name as the target of the link. On MS-Windows, this
|
||||
command works only on MS Windows Vista and later.
|
||||
|
||||
@kindex C-x i
|
||||
@findex insert-file
|
||||
|
|
|
@ -1092,17 +1092,19 @@ to various values to move the mouse in several ways:
|
|||
|
||||
@table @code
|
||||
@item banish
|
||||
Move the mouse to the upper-right corner on any key-press;
|
||||
Move the pointer to a corner of the frame on any key-press. You can
|
||||
customize the variable @code{mouse-avoidance-banish-position} to
|
||||
specify where the pointer goes when it is banished.
|
||||
@item exile
|
||||
Move the mouse to the corner only if the cursor gets too close,
|
||||
and allow it to return once the cursor is out of the way;
|
||||
Banish the pointer only if the cursor gets too close, and allow it to
|
||||
return once the cursor is out of the way.
|
||||
@item jump
|
||||
If the cursor gets too close to the mouse, displace the mouse
|
||||
a random distance & direction;
|
||||
If the cursor gets too close to the pointer, displace the pointer by a
|
||||
random distance and direction.
|
||||
@item animate
|
||||
As @code{jump}, but shows steps along the way for illusion of motion;
|
||||
As @code{jump}, but shows steps along the way for illusion of motion.
|
||||
@item cat-and-mouse
|
||||
The same as @code{animate};
|
||||
The same as @code{animate}.
|
||||
@item proteus
|
||||
As @code{animate}, but changes the shape of the mouse pointer too.
|
||||
@end table
|
||||
|
|
|
@ -920,7 +920,6 @@ Unlike the previous two, this variable does not override any
|
|||
@samp{-*-coding:-*-} tag.
|
||||
|
||||
@c FIXME? This seems somewhat out of place. Move to the Rmail section?
|
||||
@vindex rmail-decode-mime-charset
|
||||
@vindex rmail-file-coding-system
|
||||
When you get new mail in Rmail, each message is translated
|
||||
automatically from the coding system it is written in, as if it were a
|
||||
|
@ -1040,12 +1039,16 @@ decoding it using coding system @var{right} instead.
|
|||
@findex set-buffer-file-coding-system
|
||||
The command @kbd{C-x @key{RET} f}
|
||||
(@code{set-buffer-file-coding-system}) sets the file coding system for
|
||||
the current buffer---in other words, it says which coding system to
|
||||
use when saving or reverting the visited file. You specify which
|
||||
coding system using the minibuffer. If you specify a coding system
|
||||
that cannot handle all of the characters in the buffer, Emacs warns
|
||||
you about the troublesome characters when you actually save the
|
||||
buffer.
|
||||
the current buffer (i.e.@: the coding system to use when saving or
|
||||
reverting the file). You specify which coding system using the
|
||||
minibuffer. You can also invoke this command by clicking with
|
||||
@kbd{Mouse-3} on the coding system indicator in the mode line
|
||||
(@pxref{Mode Line}).
|
||||
|
||||
If you specify a coding system that cannot handle all the characters
|
||||
in the buffer, Emacs will warn you about the troublesome characters,
|
||||
and ask you to choose another coding system, when you try to save the
|
||||
buffer (@pxref{Output Coding}).
|
||||
|
||||
@cindex specify end-of-line conversion
|
||||
You can also use this command to specify the end-of-line conversion
|
||||
|
|
|
@ -62,8 +62,12 @@ The package's status---normally one of @samp{available} (can be
|
|||
downloaded from the package archive), @samp{installed}, or
|
||||
@samp{built-in} (included in Emacs by default).
|
||||
|
||||
In some instances, the status can be @samp{held}, @samp{disabled}, or
|
||||
@samp{obsolete}. @xref{Package Installation}.
|
||||
The status can also be @samp{new}. This is equivalent to
|
||||
@samp{available}, except that it means the package became newly
|
||||
available on the package archive after your last invocation of
|
||||
@kbd{M-x list-packages}. In other instances, a package may have the
|
||||
status @samp{held}, @samp{disabled}, or @samp{obsolete}.
|
||||
@xref{Package Installation}.
|
||||
|
||||
@item
|
||||
A short description of the package.
|
||||
|
|
|
@ -326,12 +326,13 @@ as you move around in a buffer.
|
|||
@findex which-function-mode
|
||||
@vindex which-func-modes
|
||||
To either enable or disable Which Function mode, use the command
|
||||
@kbd{M-x which-function-mode}. Although Which Function mode is a
|
||||
global minor mode, it takes effect only in certain major modes: those
|
||||
listed in the variable @code{which-func-modes}. If the value of
|
||||
@code{which-func-modes} is @code{t} rather than a list of modes, then
|
||||
Which Function mode applies to all major modes that know how to
|
||||
support it---in other words, all the major modes that support Imenu.
|
||||
@kbd{M-x which-function-mode}. Which Function mode is a global minor
|
||||
mode. By default, it takes effect in all major modes major modes that
|
||||
know how to support it (i.e.@: all the major modes that support
|
||||
Imenu). You can restrict it to a specific list of major modes by
|
||||
changing the value of the variable @code{which-func-modes} from
|
||||
@code{t} (which means to support all available major modes) to a list
|
||||
of major mode names.
|
||||
|
||||
@node Program Indent
|
||||
@section Indentation for Programs
|
||||
|
|
|
@ -314,5 +314,5 @@ the echo area. You can use the up and down arrow keys to move through
|
|||
the menu to different items, and then you can type @key{RET} to select
|
||||
the item. Each menu item is also designated by a letter or digit
|
||||
(usually the initial of some word in the item's name). This letter or
|
||||
digit is separated from the item name by @samp{=>}. You can type the
|
||||
digit is separated from the item name by @samp{==>}. You can type the
|
||||
item's letter or digit to select the item.
|
||||
|
|
|
@ -21,6 +21,7 @@ thing, but search for patterns instead of fixed strings.
|
|||
* Incremental Search:: Search happens as you type the string.
|
||||
* Nonincremental Search:: Specify entire string and then search.
|
||||
* Word Search:: Search for sequence of words.
|
||||
* Symbol Search:: Search for a source code symbol.
|
||||
* Regexp Search:: Search for match for a regexp.
|
||||
* Regexps:: Syntax of regular expressions.
|
||||
* Regexp Backslash:: Regular expression constructs starting with `\'.
|
||||
|
@ -467,6 +468,47 @@ the search string can match part of a word, so that the matching
|
|||
proceeds incrementally as you type. This additional laxity does not
|
||||
apply to the lazy highlight, which always matches whole words.
|
||||
|
||||
@node Symbol Search
|
||||
@section Symbol Search
|
||||
@cindex symbol search
|
||||
|
||||
A @dfn{symbol search} is much like an ordinary search, except that
|
||||
the boundaries of the search must match the boundaries of a symbol.
|
||||
The meaning of @dfn{symbol} in this context depends on the major mode,
|
||||
and usually refers to a source code token, such as a Lisp symbol in
|
||||
Emacs Lisp mode. For instance, if you perform an incremental symbol
|
||||
search for the Lisp symbol @code{forward-word}, it would not match
|
||||
@code{isearch-forward-word}. This feature is thus mainly useful for
|
||||
searching source code.
|
||||
|
||||
@table @kbd
|
||||
@item M-s _
|
||||
If incremental search is active, toggle symbol search mode
|
||||
(@code{isearch-toggle-symbol}); otherwise, begin an incremental
|
||||
forward symbol search (@code{isearch-forward-symbol}).
|
||||
@item M-s _ @key{RET} @var{symbol} @key{RET}
|
||||
Search forward for @var{symbol}, nonincrementally.
|
||||
@item M-s _ C-r @key{RET} @var{symbol} @key{RET}
|
||||
Search backward for @var{symbol}, nonincrementally.
|
||||
@end table
|
||||
|
||||
@kindex M-s _
|
||||
@findex isearch-forward-symbol
|
||||
To begin a forward incremental symbol search, type @kbd{M-s _}. If
|
||||
incremental search is not already active, this runs the command
|
||||
@code{isearch-forward-symbol}. If incremental search is already
|
||||
active, @kbd{M-s _} switches to a symbol search, preserving the
|
||||
direction of the search and the current search string; you can disable
|
||||
symbol search by typing @kbd{M-s _} again. In incremental symbol
|
||||
search, only the beginning of the search string is required to match
|
||||
the beginning of a symbol.
|
||||
|
||||
To begin a nonincremental symbol search, type @kbd{M-s _ @key{RET}}
|
||||
for a forward search, or @kbd{M-s _ C-r @key{RET}} or a backward
|
||||
search. In nonincremental symbol searches, the beginning and end of
|
||||
the search string are required to match the beginning and end of a
|
||||
symbol, respectively.
|
||||
|
||||
@node Regexp Search
|
||||
@section Regular Expression Search
|
||||
@cindex regexp search
|
||||
|
|
|
@ -1399,7 +1399,7 @@ This is an example.
|
|||
#+end_example
|
||||
@end example
|
||||
|
||||
For further details, see @ref{Exporting,,,org, The Org Manual} and
|
||||
For further details, @ref{Exporting,,,org, The Org Manual}, and
|
||||
@ref{Publishing,,,org, The Org Manual}.
|
||||
|
||||
@node TeX Mode
|
||||
|
|
|
@ -384,12 +384,6 @@ Otherwise, if the buffer is already displayed in an existing window,
|
|||
are considered, but windows on other frames are also reusable if you
|
||||
change @code{pop-up-frames} (see below) to @code{t}.
|
||||
|
||||
@item
|
||||
Otherwise, if you specified that the buffer should be displayed in a
|
||||
special frame by customizing @code{special-display-buffer-names} or
|
||||
@code{special-display-regexps}, do so. @xref{Choosing Window
|
||||
Options,,, elisp, The Emacs Lisp Reference Manual}.
|
||||
|
||||
@vindex pop-up-frames
|
||||
@item
|
||||
Otherwise, optionally create a new frame and display the buffer there.
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2012-10-24 Paul Eggert <eggert@penguin.cs.ucla.edu>
|
||||
|
||||
* emacs-lisp-intro.texi (Files List):
|
||||
Update manual for new time stamp format (Bug#12706).
|
||||
|
||||
2012-10-17 Gregor Zattler <grfz@gmx.de> (tiny change)
|
||||
|
||||
* emacs-lisp-intro.texi (Narrowing advantages):
|
||||
|
|
|
@ -238,7 +238,7 @@ GNU Press, @hfill @uref{http://www.fsf.org/campaigns/gnu-press/}@*
|
|||
a division of the @hfill email: @email{sales@@fsf.org}@*
|
||||
Free Software Foundation, Inc. @hfill Tel: +1 (617) 542-5942@*
|
||||
51 Franklin Street, Fifth Floor @hfill Fax: +1 (617) 542-2652@*
|
||||
Boston, MA 02110-1301 USA
|
||||
Boston, MA 02110-1301 USA
|
||||
@end iftex
|
||||
|
||||
@ifnottex
|
||||
|
@ -249,7 +249,7 @@ GNU Press, http://www.fsf.org/campaigns/gnu-press/
|
|||
a division of the email: sales@@fsf.org
|
||||
Free Software Foundation, Inc. Tel: +1 (617) 542-5942
|
||||
51 Franklin Street, Fifth Floor Fax: +1 (617) 542-2652
|
||||
Boston, MA 02110-1301 USA
|
||||
Boston, MA 02110-1301 USA
|
||||
@end example
|
||||
@end ifnottex
|
||||
|
||||
|
@ -15680,11 +15680,11 @@ nil
|
|||
100
|
||||
@end group
|
||||
@group
|
||||
(17733 259)
|
||||
(17491 28834)
|
||||
(17596 62124)
|
||||
13157
|
||||
"-rw-rw-r--"
|
||||
(20615 27034 579989 697000)
|
||||
(17905 55681 0 0)
|
||||
(20615 26327 734791 805000)
|
||||
13188
|
||||
"-rw-r--r--"
|
||||
@end group
|
||||
@group
|
||||
nil
|
||||
|
|
|
@ -1,3 +1,86 @@
|
|||
2012-10-30 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* variables.texi (Generalized Variables): Fix typo.
|
||||
|
||||
2012-10-30 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* symbols.texi (Symbol Plists): Document function-get.
|
||||
|
||||
* loading.texi (Autoload): Document autoloadp, autoload-do-load.
|
||||
|
||||
* frames.texi (Visibility of Frames): Document tty-top-frame.
|
||||
|
||||
2012-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* keymaps.texi (Format of Keymaps): Document the multiple
|
||||
inheritance format.
|
||||
|
||||
2012-10-28 Martin Rudalics <rudalics@gmx.at>
|
||||
|
||||
* windows.texi (Basic Windows): Reformulate description of live,
|
||||
internal and valid windows.
|
||||
(Cyclic Window Ordering): Describe new argument of
|
||||
get-lru-window and get-largest-window. Add description of
|
||||
window-in-direction.
|
||||
|
||||
2012-10-27 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* variables.texi (Generalized Variables): New section,
|
||||
adapted from misc/cl.texi.
|
||||
* elisp.texi (Top): Add Generalized Variables to menu.
|
||||
* lists.texi (List Elements, List Variables):
|
||||
Mention generalized variables.
|
||||
|
||||
* lists.texi (List Elements): Typo fix.
|
||||
|
||||
2012-10-27 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* minibuf.texi (High-Level Completion): Don't mention removed
|
||||
function iswitchb-read-buffer.
|
||||
|
||||
* commands.texi (Event Input Misc): Remove last-input-char.
|
||||
(Command Loop Info): Remove last-command-char.
|
||||
|
||||
* frames.texi (Initial Parameters): Don't mention the obsolete
|
||||
special-display feature.
|
||||
|
||||
* windows.texi (Choosing Window): Don't mention the obsolete
|
||||
special display feature.
|
||||
(Choosing Window Options): Remove obsolete special-display
|
||||
variables, and the functions special-display-p and
|
||||
special-display-popup-frame.
|
||||
|
||||
* display.texi (Fringe Bitmaps): Add exclamation-mark bitmap.
|
||||
|
||||
* hooks.texi (Standard Hooks): Remove obsolete hooks.
|
||||
|
||||
* markers.texi (Information from Markers): Remove obsolete
|
||||
function buffer-has-markers-at.
|
||||
|
||||
* text.texi (Yanking): Document yank-handled-properties.
|
||||
|
||||
2012-10-24 Paul Eggert <eggert@penguin.cs.ucla.edu>
|
||||
|
||||
Update manual for new time stamp format (Bug#12706).
|
||||
* buffers.texi (Modification Time):
|
||||
* files.texi (Testing Accessibility, File Attributes):
|
||||
* intro.texi (Version Info):
|
||||
* os.texi (Time of Day):
|
||||
Update for new time stamp format (HIGH LOW MICROSEC PICOSEC).
|
||||
These instances were missed the first time around.
|
||||
Problem reported by Glenn Morris in <http://bugs.gnu.org/12706#25>.
|
||||
|
||||
2012-10-24 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* minibuf.texi (Text from Minibuffer): Document read-regexp
|
||||
changes.
|
||||
|
||||
* nonascii.texi (Selecting a Representation): Document
|
||||
set-buffer-multibyte changes.
|
||||
|
||||
* keymaps.texi (Toolkit Differences): Node deleted.
|
||||
(Easy Menu): New node.
|
||||
|
||||
2012-10-23 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* hooks.texi (Standard Hooks): Clarify that -hooks is deprecated.
|
||||
|
|
|
@ -71,9 +71,8 @@ been removed, including @code{display-buffer-overriding-action} and
|
|||
related variables, as well as the @var{action} argument to
|
||||
@code{display-buffer} and other functions. The way to
|
||||
programmatically control how Emacs chooses a window to display a
|
||||
buffer is to bind the right combination of
|
||||
@code{special-display-regexps}, @code{pop-up-frames}, and other
|
||||
variables.
|
||||
buffer is to bind the right combination of @code{pop-up-frames} and
|
||||
other variables.
|
||||
|
||||
@item
|
||||
The standard completion interface has been simplified, eliminating the
|
||||
|
|
|
@ -634,7 +634,8 @@ file should not be done.
|
|||
@c Emacs 19 feature
|
||||
@defun visited-file-modtime
|
||||
This function returns the current buffer's recorded last file
|
||||
modification time, as a list of the form @code{(@var{high} @var{low})}.
|
||||
modification time, as a list of the form @code{(@var{high} @var{low}
|
||||
@var{microsec} @var{picosec})}.
|
||||
(This is the same format that @code{file-attributes} uses to return
|
||||
time values; see @ref{File Attributes}.)
|
||||
|
||||
|
@ -664,9 +665,8 @@ is not @code{nil}, and otherwise to the last modification time of the
|
|||
visited file.
|
||||
|
||||
If @var{time} is neither @code{nil} nor zero, it should have the form
|
||||
@code{(@var{high} . @var{low})} or @code{(@var{high} @var{low})}, in
|
||||
either case containing two integers, each of which holds 16 bits of the
|
||||
time.
|
||||
@code{(@var{high} @var{low} @var{microsec} @var{picosec})},
|
||||
the format used by @code{current-time} (@pxref{Time of Day}).
|
||||
|
||||
This function is useful if the buffer was not read from the file
|
||||
normally, or if the file itself has been changed for some known benign
|
||||
|
@ -1237,4 +1237,3 @@ This function returns the current gap position in the current buffer.
|
|||
@defun gap-size
|
||||
This function returns the current gap size of the current buffer.
|
||||
@end defun
|
||||
|
||||
|
|
|
@ -186,7 +186,6 @@ buffer: } prompts the user with @samp{Frobnicate buffer: } to enter
|
|||
the name of an existing buffer, which becomes the second and final
|
||||
argument.
|
||||
|
||||
@c Emacs 19 feature
|
||||
The prompt string can use @samp{%} to include previous argument values
|
||||
(starting with the first argument) in the prompt. This is done using
|
||||
@code{format} (@pxref{Formatting Strings}). For example, here is how
|
||||
|
@ -205,7 +204,6 @@ If @samp{*} appears at the beginning of the string, then an error is
|
|||
signaled if the buffer is read-only.
|
||||
|
||||
@cindex @samp{@@} in @code{interactive}
|
||||
@c Emacs 19 feature
|
||||
If @samp{@@} appears at the beginning of the string, and if the key
|
||||
sequence used to invoke the command includes any mouse events, then
|
||||
the window associated with the first of those events is selected
|
||||
|
@ -910,7 +908,6 @@ up a menu. It is also used internally by @code{y-or-n-p}
|
|||
@end defvar
|
||||
|
||||
@defvar last-command-event
|
||||
@defvarx last-command-char
|
||||
This variable is set to the last input event that was read by the
|
||||
command loop as part of a command. The principal use of this variable
|
||||
is in @code{self-insert-command}, which uses it to decide which
|
||||
|
@ -926,11 +923,8 @@ last-command-event
|
|||
|
||||
@noindent
|
||||
The value is 5 because that is the @acronym{ASCII} code for @kbd{C-e}.
|
||||
|
||||
The alias @code{last-command-char} is obsolete.
|
||||
@end defvar
|
||||
|
||||
@c Emacs 19 feature
|
||||
@defvar last-event-frame
|
||||
This variable records which frame the last input event was directed to.
|
||||
Usually this is the frame that was selected when the event was
|
||||
|
@ -2386,7 +2380,6 @@ mouse on the window's mode line, you get two events, like this:
|
|||
@end example
|
||||
|
||||
@defvar num-input-keys
|
||||
@c Emacs 19 feature
|
||||
This variable's value is the number of key sequences processed so far in
|
||||
this Emacs session. This includes key sequences read from the terminal
|
||||
and key sequences read from keyboard macros being executed.
|
||||
|
@ -2539,7 +2532,6 @@ then continues to wait for a valid input character, or keyboard-quit.
|
|||
@code{keyboard-translate-table} (if applicable), before returning it
|
||||
from @code{read-event}.
|
||||
|
||||
@c Emacs 19 feature
|
||||
@defvar extra-keyboard-modifiers
|
||||
This variable lets Lisp programs ``press'' the modifier keys on the
|
||||
keyboard. The value is a character. Only the modifiers of the
|
||||
|
@ -2755,7 +2747,6 @@ may return @code{t} when no input is available.
|
|||
@end defun
|
||||
|
||||
@defvar last-input-event
|
||||
@defvarx last-input-char
|
||||
This variable records the last terminal input event read, whether
|
||||
as part of a command or explicitly by a Lisp program.
|
||||
|
||||
|
@ -2774,8 +2765,6 @@ this expression) remains the value of @code{last-command-event}.
|
|||
@result{} 49
|
||||
@end group
|
||||
@end example
|
||||
|
||||
The alias @code{last-input-char} is obsolete.
|
||||
@end defvar
|
||||
|
||||
@defmac while-no-input body@dots{}
|
||||
|
|
|
@ -3550,8 +3550,8 @@ Used to indicate buffer boundaries.
|
|||
@itemx @code{vertical-bar}, @code{horizontal-bar}
|
||||
Used for different types of fringe cursors.
|
||||
|
||||
@item @code{empty-line}, @code{question-mark}, @code{exclamation-mark}
|
||||
Unused.
|
||||
@item @code{empty-line}, @code{exclamation-mark}, @code{question-mark}, @code{exclamation-mark}
|
||||
Not used by core Emacs features.
|
||||
@end table
|
||||
|
||||
@noindent
|
||||
|
|
|
@ -486,6 +486,7 @@ Variables
|
|||
* Variable Aliases:: Variables that are aliases for other variables.
|
||||
* Variables with Restricted Values:: Non-constant variables whose value can
|
||||
@emph{not} be an arbitrary Lisp object.
|
||||
* Generalized Variables:: Extending the concept of variables.
|
||||
|
||||
Scoping Rules for Variable Bindings
|
||||
|
||||
|
@ -800,17 +801,14 @@ Menu Keymaps
|
|||
* Menu Bar:: How to customize the menu bar.
|
||||
* Tool Bar:: A tool bar is a row of images.
|
||||
* Modifying Menus:: How to add new items to a menu.
|
||||
* Easy Menu:: A convenience macro for defining menus.
|
||||
|
||||
Defining Menus
|
||||
|
||||
* Simple Menu Items:: A simple kind of menu key binding,
|
||||
limited in capabilities.
|
||||
* Extended Menu Items:: More powerful menu item definitions
|
||||
let you specify keywords to enable
|
||||
various features.
|
||||
* Simple Menu Items:: A simple kind of menu key binding.
|
||||
* Extended Menu Items:: More complex menu item definitions.
|
||||
* Menu Separators:: Drawing a horizontal line through a menu.
|
||||
* Alias Menu Items:: Using command aliases in menu items.
|
||||
* Toolkit Differences:: Not all toolkits provide the same features.
|
||||
|
||||
Major and Minor Modes
|
||||
|
||||
|
|
|
@ -938,7 +938,7 @@ on the 19th, @file{aug-20} was written on the 20th, and the file
|
|||
@end example
|
||||
|
||||
You can use @code{file-attributes} to get a file's last modification
|
||||
time as a list of two numbers. @xref{File Attributes}.
|
||||
time as a list of four integers. @xref{File Attributes}.
|
||||
@end defun
|
||||
|
||||
@node Kinds of Files
|
||||
|
@ -1228,11 +1228,11 @@ so this time will always hold the midnight of the day of last access.
|
|||
|
||||
@cindex modification time of file
|
||||
@item
|
||||
The time of last modification as a list of two integers (as above).
|
||||
The time of last modification as a list of four integers (as above).
|
||||
This is the last time when the file's contents were modified.
|
||||
|
||||
@item
|
||||
The time of last status change as a list of two integers (as above).
|
||||
The time of last status change as a list of four integers (as above).
|
||||
This is the time of the last change to the file's access mode bits,
|
||||
its owner and group, and other information recorded in the filesystem
|
||||
for the file, beyond the file's contents.
|
||||
|
@ -1275,9 +1275,9 @@ For example, here are the file attributes for @file{files.texi}:
|
|||
@group
|
||||
(file-attributes "files.texi" 'string)
|
||||
@result{} (nil 1 "lh" "users"
|
||||
(19145 42977)
|
||||
(19141 59576)
|
||||
(18340 17300)
|
||||
(20614 64019 50040 152000)
|
||||
(20000 23 0 0)
|
||||
(20614 64555 902289 872000)
|
||||
122295 "-rw-rw-rw-"
|
||||
nil (5888 2 . 43978)
|
||||
(15479 . 46724))
|
||||
|
@ -1301,14 +1301,14 @@ is owned by the user with name "lh".
|
|||
@item "users"
|
||||
is in the group with name "users".
|
||||
|
||||
@item (19145 42977)
|
||||
was last accessed on Oct 5 2009, at 10:01:37.
|
||||
@item (20614 64019 50040 152000)
|
||||
was last accessed on October 23, 2012, at 20:12:03.050040152 UTC.
|
||||
|
||||
@item (19141 59576)
|
||||
last had its contents modified on Oct 2 2009, at 13:49:12.
|
||||
@item (20000 23 0 0)
|
||||
was last modified on July 15, 2001, at 08:53:43 UTC.
|
||||
|
||||
@item (18340 17300)
|
||||
last had its status changed on Feb 2 2008, at 12:19:00.
|
||||
@item (20614 64555 902289 872000)
|
||||
last had its status changed on October 23, 2012, at 20:20:59.902289872 UTC.
|
||||
|
||||
@item 122295
|
||||
is 122295 bytes long. (It may not contain 122295 characters, though,
|
||||
|
|
|
@ -437,13 +437,11 @@ Emacs frames---the first frame, and subsequent frames. When using the X
|
|||
Window System, you can get the same results by means of X resources
|
||||
in many cases.
|
||||
|
||||
Setting this variable does not affect existing frames.
|
||||
Setting this variable does not affect existing frames. Furthermore,
|
||||
functions that display a buffer in a separate frame may override the
|
||||
default parameters by supplying their own parameters.
|
||||
@end defopt
|
||||
|
||||
Functions that display a buffer in a separate frame can override the
|
||||
default parameters by supplying their own parameters. @xref{Definition
|
||||
of special-display-frame-alist}.
|
||||
|
||||
If you invoke Emacs with command-line options that specify frame
|
||||
appearance, those options take effect by adding elements to either
|
||||
@code{initial-frame-alist} or @code{default-frame-alist}. Options
|
||||
|
@ -1495,8 +1493,9 @@ This function returns the visibility status of frame @var{frame}. The
|
|||
value is @code{t} if @var{frame} is visible, @code{nil} if it is
|
||||
invisible, and @code{icon} if it is iconified.
|
||||
|
||||
On a text terminal, all frames are considered visible, whether they
|
||||
are currently being displayed or not.
|
||||
On a text terminal, all frames are considered ``visible'' for the
|
||||
purposes of this function, even though only one frame is displayed.
|
||||
@xref{Raising and Lowering}.
|
||||
@end defun
|
||||
|
||||
@deffn Command iconify-frame &optional frame
|
||||
|
@ -1552,9 +1551,21 @@ If this is non-@code{nil}, activation of the minibuffer raises the frame
|
|||
that the minibuffer window is in.
|
||||
@end defopt
|
||||
|
||||
You can also enable auto-raise (raising automatically when a frame is
|
||||
selected) or auto-lower (lowering automatically when it is deselected)
|
||||
for any frame using frame parameters. @xref{Management Parameters}.
|
||||
On window systems, you can also enable auto-raising (on frame
|
||||
selection) or auto-lowering (on frame deselection) using frame
|
||||
parameters. @xref{Management Parameters}.
|
||||
|
||||
@cindex top frame
|
||||
The concept of raising and lowering frames also applies to text
|
||||
terminal frames. On each text terminal, only the top frame is
|
||||
displayed at any one time.
|
||||
|
||||
@defun tty-top-frame terminal
|
||||
This function returns the top frame on @var{terminal}. @var{terminal}
|
||||
should be a terminal object, a frame (meaning that frame's terminal),
|
||||
or @code{nil} (meaning the selected frame's terminal). If it does not
|
||||
refer to a text terminal, the return value is @code{nil}.
|
||||
@end defun
|
||||
|
||||
@node Frame Configurations
|
||||
@section Frame Configurations
|
||||
|
|
|
@ -120,14 +120,7 @@ The command loop runs this soon after @code{post-command-hook} (q.v.).
|
|||
@item delete-terminal-functions
|
||||
@xref{Multiple Terminals}.
|
||||
|
||||
@ignore
|
||||
@item disabled-command-function
|
||||
@xref{Disabling Commands}.
|
||||
@end ignore
|
||||
|
||||
@item display-buffer-function
|
||||
@itemx pop-up-frame-function
|
||||
@itemx special-display-function
|
||||
@itemx split-window-preferred-function
|
||||
@xref{Choosing Window Options}.
|
||||
|
||||
|
@ -272,7 +265,6 @@ deferred-action-function
|
|||
input-method-function
|
||||
load-read-function
|
||||
load-source-file-function
|
||||
macro-declaration-function
|
||||
read-buffer-function
|
||||
ring-bell-function
|
||||
select-safe-coding-system-function
|
||||
|
|
|
@ -493,13 +493,13 @@ giving a prefix argument makes @var{here} non-@code{nil}.
|
|||
|
||||
@defvar emacs-build-time
|
||||
The value of this variable indicates the time at which Emacs was
|
||||
built. It is a list of three integers, like the value of
|
||||
built. It is a list of four integers, like the value of
|
||||
@code{current-time} (@pxref{Time of Day}).
|
||||
|
||||
@example
|
||||
@group
|
||||
emacs-build-time
|
||||
@result{} (18846 52016 156039)
|
||||
@result{} (20614 63694 515336 438000)
|
||||
@end group
|
||||
@end example
|
||||
@end defvar
|
||||
|
|
|
@ -210,6 +210,11 @@ Aside from elements that specify bindings for keys, a keymap can also
|
|||
have a string as an element. This is called the @dfn{overall prompt
|
||||
string} and makes it possible to use the keymap as a menu.
|
||||
@xref{Defining Menus}.
|
||||
|
||||
@item (keymap @dots{})
|
||||
If an element of a keymap is itself a keymap, it counts as if this inner keymap
|
||||
were inlined in the outer keymap. This is used for multiple-inheritance, such
|
||||
as in @code{make-composed-keymap}.
|
||||
@end table
|
||||
|
||||
When the binding is @code{nil}, it doesn't constitute a definition
|
||||
|
@ -1963,13 +1968,14 @@ is active for the next input event, that activates the keyboard menu
|
|||
feature.
|
||||
|
||||
@menu
|
||||
* Defining Menus:: How to make a keymap that defines a menu.
|
||||
* Mouse Menus:: How users actuate the menu with the mouse.
|
||||
* Keyboard Menus:: How users actuate the menu with the keyboard.
|
||||
* Menu Example:: Making a simple menu.
|
||||
* Menu Bar:: How to customize the menu bar.
|
||||
* Tool Bar:: A tool bar is a row of images.
|
||||
* Modifying Menus:: How to add new items to a menu.
|
||||
* Defining Menus:: How to make a keymap that defines a menu.
|
||||
* Mouse Menus:: How users actuate the menu with the mouse.
|
||||
* Keyboard Menus:: How users actuate the menu with the keyboard.
|
||||
* Menu Example:: Making a simple menu.
|
||||
* Menu Bar:: How to customize the menu bar.
|
||||
* Tool Bar:: A tool bar is a row of images.
|
||||
* Modifying Menus:: How to add new items to a menu.
|
||||
* Easy Menu:: A convenience macro for making menus.
|
||||
@end menu
|
||||
|
||||
@node Defining Menus
|
||||
|
@ -2015,17 +2021,12 @@ an existing menu, you can specify its position in the menu using
|
|||
@code{define-key-after} (@pxref{Modifying Menus}).
|
||||
|
||||
@menu
|
||||
* Simple Menu Items:: A simple kind of menu key binding,
|
||||
limited in capabilities.
|
||||
* Extended Menu Items:: More powerful menu item definitions
|
||||
let you specify keywords to enable
|
||||
various features.
|
||||
* Simple Menu Items:: A simple kind of menu key binding.
|
||||
* Extended Menu Items:: More complex menu item definitions.
|
||||
* Menu Separators:: Drawing a horizontal line through a menu.
|
||||
* Alias Menu Items:: Using command aliases in menu items.
|
||||
* Toolkit Differences:: Not all toolkits provide the same features.
|
||||
@end menu
|
||||
|
||||
|
||||
@node Simple Menu Items
|
||||
@subsubsection Simple Menu Items
|
||||
|
||||
|
@ -2312,28 +2313,6 @@ itself). To request this, give the alias symbol a non-@code{nil}
|
|||
causes menu items for @code{make-read-only} and @code{make-writable} to
|
||||
show the keyboard bindings for @code{read-only-mode}.
|
||||
|
||||
@node Toolkit Differences
|
||||
@subsubsection Toolkit Differences
|
||||
|
||||
The various toolkits with which you can build Emacs do not all support
|
||||
the same set of features for menus. Some code works as expected with
|
||||
one toolkit, but not under another.
|
||||
|
||||
One example is menu actions or buttons in a top-level menu bar. The
|
||||
following works with the Lucid toolkit or on MS Windows, but not with
|
||||
GTK or Nextstep, where clicking on the item has no effect.
|
||||
|
||||
@example
|
||||
(defun menu-action-greet ()
|
||||
(interactive)
|
||||
(message "Hello Emacs User!"))
|
||||
|
||||
(defun top-level-menu ()
|
||||
(interactive)
|
||||
(define-key lisp-interaction-mode-map [menu-bar m]
|
||||
'(menu-item "Action Button" menu-action-greet)))
|
||||
@end example
|
||||
|
||||
@node Mouse Menus
|
||||
@subsection Menus and the Mouse
|
||||
|
||||
|
@ -2813,3 +2792,125 @@ menu of Shell mode, after the item @code{break}:
|
|||
[work] '("Work" . work-command) 'break)
|
||||
@end example
|
||||
@end defun
|
||||
|
||||
@node Easy Menu
|
||||
@subsection Easy Menu
|
||||
|
||||
The following macro provides a convenient way to define pop-up menus
|
||||
and/or menu bar menus.
|
||||
|
||||
@defmac easy-menu-define symbol maps doc menu
|
||||
This macro defines a pop-up menu and/or menu bar submenu, whose
|
||||
contents are given by @var{menu}.
|
||||
|
||||
If @var{symbol} is non-@code{nil}, it should be a symbol; then this
|
||||
macro defines @var{symbol} as a function for popping up the menu
|
||||
(@pxref{Pop-Up Menus}), with @var{doc} as its documentation string.
|
||||
@var{symbol} should not be quoted.
|
||||
|
||||
Regardless of the value of @var{symbol}, if @var{maps} is a keymap,
|
||||
the menu is added to that keymap, as a top-level menu for the menu bar
|
||||
(@pxref{Menu Bar}). It can also be a list of keymaps, in which case
|
||||
the menu is added separately to each of those keymaps.
|
||||
|
||||
The first element of @var{menu} must be a string, which serves as the
|
||||
menu label. It may be followed by any number of the following
|
||||
keyword-argument pairs:
|
||||
|
||||
@table @code
|
||||
@item :filter @var{function}
|
||||
@var{function} must be a function which, if called with one
|
||||
argument---the list of the other menu items---returns the actual items
|
||||
to be displayed in the menu.
|
||||
|
||||
@item :visible @var{include}
|
||||
@var{include} is an expression; if it evaluates to @code{nil}, the
|
||||
menu is made invisible. @code{:included} is an alias for
|
||||
@code{:visible}.
|
||||
|
||||
@item :active @var{enable}
|
||||
@var{enable} is an expression; if it evaluates to @code{nil}, the menu
|
||||
is not selectable. @code{:enable} is an alias for @code{:active}.
|
||||
@end table
|
||||
|
||||
The remaining elements in @var{menu} are menu items.
|
||||
|
||||
A menu item can be a vector of three elements, @code{[@var{name}
|
||||
@var{callback} @var{enable}]}. @var{name} is the menu item name (a
|
||||
string). @var{callback} is a command to run, or an expression to
|
||||
evaluate, when the item is chosen. @var{enable} is an expression; if
|
||||
it evaluates to @code{nil}, the item is disabled for selection.
|
||||
|
||||
Alternatively, a menu item may have the form:
|
||||
|
||||
@smallexample
|
||||
[ @var{name} @var{callback} [ @var{keyword} @var{arg} ]... ]
|
||||
@end smallexample
|
||||
|
||||
@noindent
|
||||
where @var{name} and @var{callback} have the same meanings as above,
|
||||
and each optional @var{keyword} and @var{arg} pair should be one of
|
||||
the following:
|
||||
|
||||
@table @code
|
||||
@item :keys @var{keys}
|
||||
@var{keys} is a keyboard equivalent to the menu item (a string). This
|
||||
is normally not needed, as keyboard equivalents are computed
|
||||
automatically. @var{keys} is expanded with
|
||||
@code{substitute-command-keys} before it is displayed (@pxref{Keys in
|
||||
Documentation}).
|
||||
|
||||
@item :key-sequence @var{keys}
|
||||
@var{keys} is a hint for speeding up Emacs's first display of the
|
||||
menu. It should be nil if you know that the menu item has no keyboard
|
||||
equivalent; otherwise it should be a string or vector specifying a
|
||||
keyboard equivalent for the menu item.
|
||||
|
||||
@item :active @var{enable}
|
||||
@var{enable} is an expression; if it evaluates to @code{nil}, the item
|
||||
is make unselectable.. @code{:enable} is an alias for @code{:active}.
|
||||
|
||||
@item :visible @var{include}
|
||||
@var{include} is an expression; if it evaluates to @code{nil}, the
|
||||
item is made invisible. @code{:included} is an alias for
|
||||
@code{:visible}.
|
||||
|
||||
@item :label @var{form}
|
||||
@var{form} is an expression that is evaluated to obtain a value which
|
||||
serves as the menu item's label (the default is @var{name}).
|
||||
|
||||
@item :suffix @var{form}
|
||||
@var{form} is an expression that is dynamically evaluated and whose
|
||||
value is concatenated with the menu entry's label.
|
||||
|
||||
@item :style @var{style}
|
||||
@var{style} is a symbol describing the type of menu item; it should be
|
||||
@code{toggle} (a checkbox), or @code{radio} (a radio button), or
|
||||
anything else (meaning an ordinary menu item).
|
||||
|
||||
@item :selected @var{selected}
|
||||
@var{selected} is an expression; the checkbox or radio button is
|
||||
selected whenever the expression's value is non-nil.
|
||||
|
||||
@item :help @var{help}
|
||||
@var{help} is a string describing the menu item.
|
||||
@end table
|
||||
|
||||
Alternatively, a menu item can be a string. Then that string appears
|
||||
in the menu as unselectable text. A string consisting of dashes is
|
||||
displayed as a separator (@pxref{Menu Separators}).
|
||||
|
||||
Alternatively, a menu item can be a list with the same format as
|
||||
@var{menu}. This is a submenu.
|
||||
@end defmac
|
||||
|
||||
Here is an example of using @code{easy-menu-define} to define a menu
|
||||
similar to the one defined in the example in @ref{Menu Bar}:
|
||||
|
||||
@example
|
||||
(easy-menu-define words-menu global-map
|
||||
"Menu for word navigation commands."
|
||||
'("Words"
|
||||
["Forward word" forward-word]
|
||||
["Backward word" backward-word]))
|
||||
@end example
|
||||
|
|
|
@ -236,6 +236,10 @@ This is in contrast to @code{cdr}, which signals an error if
|
|||
@defmac pop listname
|
||||
This macro is a way of examining the @sc{car} of a list,
|
||||
and taking it off the list, all at once.
|
||||
@c FIXME I don't think is a particularly good way to do it,
|
||||
@c but generalized variables have not been introduced yet.
|
||||
(In fact, this macro can act on generalized variables, not just lists.
|
||||
@xref{Generalized Variables}.)
|
||||
|
||||
It operates on the list which is stored in the symbol @var{listname}.
|
||||
It removes this element from the list by setting @var{listname}
|
||||
|
@ -252,7 +256,7 @@ x
|
|||
@end example
|
||||
|
||||
@noindent
|
||||
For the @code{pop} macro, which removes an element from a list,
|
||||
For the @code{push} macro, which adds an element to a list,
|
||||
@xref{List Variables}.
|
||||
@end defmac
|
||||
|
||||
|
@ -682,6 +686,10 @@ to modify a list which is stored in a variable.
|
|||
@defmac push newelt listname
|
||||
This macro provides an alternative way to write
|
||||
@code{(setq @var{listname} (cons @var{newelt} @var{listname}))}.
|
||||
@c FIXME I don't think is a particularly good way to do it,
|
||||
@c but generalized variables have not been introduced yet.
|
||||
(In fact, this macro can act on generalized variables, not just lists.
|
||||
@xref{Generalized Variables}.)
|
||||
|
||||
@example
|
||||
(setq l '(a b))
|
||||
|
|
|
@ -408,9 +408,9 @@ to load automatically from @var{filename}. The string @var{filename}
|
|||
specifies the file to load to get the real definition of @var{function}.
|
||||
|
||||
If @var{filename} does not contain either a directory name, or the
|
||||
suffix @code{.el} or @code{.elc}, then @code{autoload} insists on adding
|
||||
one of these suffixes, and it will not load from a file whose name is
|
||||
just @var{filename} with no added suffix. (The variable
|
||||
suffix @code{.el} or @code{.elc}, this function insists on adding one
|
||||
of these suffixes, and it will not load from a file whose name is just
|
||||
@var{filename} with no added suffix. (The variable
|
||||
@code{load-suffixes} specifies the exact required suffixes.)
|
||||
|
||||
The argument @var{docstring} is the documentation string for the
|
||||
|
@ -442,10 +442,11 @@ and calls @code{define-key}; not even if the variable name is the same
|
|||
symbol @var{function}.
|
||||
|
||||
@cindex function cell in autoload
|
||||
If @var{function} already has a non-void function definition that is not
|
||||
an autoload object, @code{autoload} does nothing and returns @code{nil}.
|
||||
If the function cell of @var{function} is void, or is already an autoload
|
||||
object, then it is defined as an autoload object like this:
|
||||
if @var{function} already has non-void function definition that is not
|
||||
an autoload object, this function does nothing and returns @code{nil}.
|
||||
Otherwise, it constructs an autoload object (@pxref{Autoload Type}),
|
||||
and stores it as the function definition for @var{function}. The
|
||||
autoload object has this form:
|
||||
|
||||
@example
|
||||
(autoload @var{filename} @var{docstring} @var{interactive} @var{type})
|
||||
|
@ -468,6 +469,16 @@ refers to the documentation string in the
|
|||
not a macro or a keymap.
|
||||
@end defun
|
||||
|
||||
@defun autoloadp object
|
||||
This function returns non-@code{nil} if @var{object} is an autoload
|
||||
object. For example, to check if @code{run-prolog} is defined as an
|
||||
autoloaded function, evaluate
|
||||
|
||||
@smallexample
|
||||
(autoloadp (symbol-function 'run-prolog))
|
||||
@end smallexample
|
||||
@end defun
|
||||
|
||||
@cindex autoload errors
|
||||
The autoloaded file usually contains other definitions and may require
|
||||
or provide one or more features. If the file is not completely loaded
|
||||
|
@ -599,6 +610,19 @@ override that, e.g., in the ``Local Variables'' section of a
|
|||
assumed to contain a trailer starting with a formfeed character.
|
||||
@end defvar
|
||||
|
||||
The following function may be used to explicitly load the library
|
||||
specified by an autoload object:
|
||||
|
||||
@defun autoload-do-load autoload &optional name macro-only
|
||||
This function performs the loading specified by @var{autoload}, which
|
||||
whould be an autoload object. The optional argument @var{name}, if
|
||||
non-@code{nil}, should be a symbol whose function value is
|
||||
@var{autoload}; in that case, the return value of this function is the
|
||||
symbol's new function value. If the value of the optional argument
|
||||
@var{macro-only} is @code{macro}, this function avoids loading a
|
||||
function, only a macro.
|
||||
@end defun
|
||||
|
||||
@node Repeated Loading
|
||||
@section Repeated Loading
|
||||
@cindex repeated loading
|
||||
|
|
|
@ -307,11 +307,6 @@ This function returns the buffer that @var{marker} points into, or
|
|||
@end example
|
||||
@end defun
|
||||
|
||||
@defun buffer-has-markers-at position
|
||||
This function returns @code{t} if one or more markers
|
||||
point at position @var{position} in the current buffer.
|
||||
@end defun
|
||||
|
||||
@node Marker Insertion Types
|
||||
@section Marker Insertion Types
|
||||
|
||||
|
|
|
@ -211,22 +211,25 @@ This function works by calling the
|
|||
@end smallexample
|
||||
@end defun
|
||||
|
||||
@defun read-regexp prompt &optional default
|
||||
@defun read-regexp prompt &optional default history
|
||||
This function reads a regular expression as a string from the
|
||||
minibuffer and returns it. The argument @var{prompt} is used as in
|
||||
@code{read-from-minibuffer}. The keymap used is
|
||||
@code{minibuffer-local-map}, and @code{regexp-history} is used as the
|
||||
history list (@pxref{Minibuffer History, regexp-history}).
|
||||
@code{read-from-minibuffer}.
|
||||
|
||||
The optional argument @var{default} specifies a default value to
|
||||
return if the user enters null input; it should be a string, or
|
||||
@code{nil}, which is equivalent to an empty string.
|
||||
|
||||
In addition, @code{read-regexp} collects a few useful candidates for
|
||||
input and passes them to @code{read-from-minibuffer}, to make them
|
||||
available to the user as the ``future minibuffer history list''
|
||||
(@pxref{Minibuffer History, future list,, emacs, The GNU Emacs
|
||||
Manual}). These candidates are:
|
||||
The optional argument @var{history}, if non-@code{nil}, is a symbol
|
||||
specifying a minibuffer history list to use (@pxref{Minibuffer
|
||||
History}). If it is omitted or @code{nil}, the history list defaults
|
||||
to @code{regexp-history}.
|
||||
|
||||
@code{read-regexp} also collects a few useful candidates for input and
|
||||
passes them to @code{read-from-minibuffer}, to make them available to
|
||||
the user as the ``future minibuffer history list'' (@pxref{Minibuffer
|
||||
History, future list,, emacs, The GNU Emacs Manual}). These
|
||||
candidates are:
|
||||
|
||||
@itemize @minus
|
||||
@item
|
||||
|
@ -1215,11 +1218,9 @@ Buffer name (default foo): @point{}
|
|||
@end defun
|
||||
|
||||
@defopt read-buffer-function
|
||||
This variable specifies how to read buffer names. The function is
|
||||
called with the arguments passed to @code{read-buffer}. For example,
|
||||
if you set this variable to @code{iswitchb-read-buffer}, all Emacs
|
||||
commands that call @code{read-buffer} to read a buffer name will
|
||||
actually use the @code{iswitchb} package to read it.
|
||||
This variable, if non-@code{nil}, specifies a function for reading
|
||||
buffer names. @code{read-buffer} calls this function instead of doing
|
||||
its usual work, with the same arguments passed to @code{read-buffer}.
|
||||
@end defopt
|
||||
|
||||
@defopt read-buffer-completion-ignore-case
|
||||
|
|
|
@ -241,8 +241,12 @@ representation is in use. It also adjusts various data in the buffer
|
|||
(including overlays, text properties and markers) so that they cover the
|
||||
same text as they did before.
|
||||
|
||||
You cannot use @code{set-buffer-multibyte} on an indirect buffer,
|
||||
because indirect buffers always inherit the representation of the
|
||||
This function signals an error if the buffer is narrowed, since the
|
||||
narrowing might have occurred in the middle of multibyte character
|
||||
sequences.
|
||||
|
||||
This function also signals an error if the buffer is an indirect
|
||||
buffer. An indirect buffer always inherits the representation of its
|
||||
base buffer.
|
||||
@end defun
|
||||
|
||||
|
|
|
@ -1199,7 +1199,7 @@ Similarly, the fourth list element @var{picosec}, if present, gives
|
|||
the number of picoseconds from the start of that microsecond to the
|
||||
specified time.
|
||||
|
||||
The return value of @code{current-time} represents time using three
|
||||
The return value of @code{current-time} represents time using four
|
||||
integers, as do the timestamps in the return value of
|
||||
@code{file-attributes} (@pxref{Definition of
|
||||
file-attributes}). In function arguments, e.g.@: the @var{time-value}
|
||||
|
|
|
@ -487,6 +487,12 @@ using @code{eq}, so any object is a legitimate property.
|
|||
See @code{put} for an example.
|
||||
@end defun
|
||||
|
||||
@defun function-get symbol property
|
||||
This function is identical to @code{get}, except that if @var{symbol}
|
||||
is the name of a function alias, it looks in the property list of the
|
||||
symbol naming the actual function. @xref{Defining Functions}.
|
||||
@end defun
|
||||
|
||||
@defun put symbol property value
|
||||
This function puts @var{value} onto @var{symbol}'s property list under
|
||||
the property name @var{property}, replacing any previous property value.
|
||||
|
|
|
@ -899,31 +899,34 @@ In Lisp programs, it is better to use @code{kill-new} or
|
|||
@node Yanking
|
||||
@subsection Yanking
|
||||
|
||||
Yanking means inserting text from the kill ring, but it does
|
||||
not insert the text blindly. Yank commands and some other commands
|
||||
use @code{insert-for-yank} to perform special processing on the
|
||||
text that they copy into the buffer.
|
||||
Yanking means inserting text from the kill ring, but it does not
|
||||
insert the text blindly. The @code{yank} command, and related
|
||||
commands, use @code{insert-for-yank} to perform special processing on
|
||||
the text before it is inserted.
|
||||
|
||||
@defun insert-for-yank string
|
||||
This function normally works like @code{insert} except that it doesn't
|
||||
insert the text properties (@pxref{Text Properties}) in the list
|
||||
variable @code{yank-excluded-properties}. However, if any part of
|
||||
@var{string} has a non-@code{nil} @code{yank-handler} text property,
|
||||
that property can do various special processing on that part of the
|
||||
text being inserted.
|
||||
This function works like @code{insert}, except that it processes the
|
||||
text in @var{string} according to the @code{yank-handler} text
|
||||
property, as well as the variables @code{yank-handled-properties} and
|
||||
@code{yank-excluded-properties} (see below), before inserting the
|
||||
result into the current buffer.
|
||||
@end defun
|
||||
|
||||
@defun insert-buffer-substring-as-yank buf &optional start end
|
||||
This function resembles @code{insert-buffer-substring} except that it
|
||||
doesn't insert the text properties in the
|
||||
@code{yank-excluded-properties} list.
|
||||
This function resembles @code{insert-buffer-substring}, except that it
|
||||
processes the text according to @code{yank-handled-properties} and
|
||||
@code{yank-excluded-properties}. (It does not handle the
|
||||
@code{yank-handler} property, which does not normally occur in buffer
|
||||
text anyway.)
|
||||
@end defun
|
||||
|
||||
You can put a @code{yank-handler} text property on all or part of
|
||||
the text to control how it will be inserted if it is yanked. The
|
||||
@code{insert-for-yank} function looks for that property. The property
|
||||
value must be a list of one to four elements, with the following
|
||||
format (where elements after the first may be omitted):
|
||||
If you put a @code{yank-handler} text property on all or part of a
|
||||
string, that alters how @code{insert-for-yank} inserts the string. If
|
||||
different parts of the string have different @code{yank-handler}
|
||||
values (comparison being done with @code{eq}), each substring is
|
||||
handled separately. The property value must be a list of one to four
|
||||
elements, with the following format (where elements after the first
|
||||
may be omitted):
|
||||
|
||||
@example
|
||||
(@var{function} @var{param} @var{noexclude} @var{undo})
|
||||
|
@ -933,22 +936,21 @@ format (where elements after the first may be omitted):
|
|||
|
||||
@table @var
|
||||
@item function
|
||||
When @var{function} is present and non-@code{nil}, it is called instead of
|
||||
@code{insert} to insert the string. @var{function} takes one
|
||||
argument---the string to insert.
|
||||
When @var{function} is non-@code{nil}, it is called instead of
|
||||
@code{insert} to insert the string, with one argument---the string to
|
||||
insert.
|
||||
|
||||
@item param
|
||||
If @var{param} is present and non-@code{nil}, it replaces @var{string}
|
||||
(or the part of @var{string} being processed) as the object passed to
|
||||
@var{function} (or @code{insert}); for example, if @var{function} is
|
||||
@code{yank-rectangle}, @var{param} should be a list of strings to
|
||||
insert as a rectangle.
|
||||
(or the substring of @var{string} being processed) as the object
|
||||
passed to @var{function} (or @code{insert}). For example, if
|
||||
@var{function} is @code{yank-rectangle}, @var{param} should be a list
|
||||
of strings to insert as a rectangle.
|
||||
|
||||
@item noexclude
|
||||
If @var{noexclude} is present and non-@code{nil}, the normal removal of the
|
||||
yank-excluded-properties is not performed; instead @var{function} is
|
||||
responsible for removing those properties. This may be necessary
|
||||
if @var{function} adjusts point before or after inserting the object.
|
||||
If @var{noexclude} is present and non-@code{nil}, that disables the
|
||||
normal action of @code{yank-handled-properties} and
|
||||
@code{yank-excluded-properties} on the inserted string.
|
||||
|
||||
@item undo
|
||||
If @var{undo} is present and non-@code{nil}, it is a function that will be
|
||||
|
@ -959,14 +961,29 @@ the @var{undo} value.
|
|||
@end table
|
||||
|
||||
@cindex yanking and text properties
|
||||
@defopt yank-excluded-properties
|
||||
Yanking discards certain text properties from the yanked text, as
|
||||
described above. The value of this variable is the list of properties
|
||||
to discard. Its default value contains properties that might lead to
|
||||
annoying results, such as causing the text to respond to the mouse or
|
||||
specifying key bindings.
|
||||
@defopt yank-handled-properties
|
||||
This variable specifies special text property handling conditions for
|
||||
yanked text. It takes effect after the text has been inserted (either
|
||||
normally, or via the @code{yank-handler} property), and prior to
|
||||
@code{yank-excluded-properties} taking effect.
|
||||
|
||||
The value should be an alist of elements @code{(@var{prop}
|
||||
. @var{fun})}. Each alist element is handled in order. The inserted
|
||||
text is scanned for stretches of text having text properties @code{eq}
|
||||
to @var{prop}; for each such stretch, @var{fun} is called with three
|
||||
arguments: the value of the property, and the start and end positions
|
||||
of the text.
|
||||
@end defopt
|
||||
|
||||
@defopt yank-excluded-properties
|
||||
The value of this variable is the list of properties to remove from
|
||||
inserted text. Its default value contains properties that might lead
|
||||
to annoying results, such as causing the text to respond to the mouse
|
||||
or specifying key bindings. It takes effect after
|
||||
@code{yank-handled-properties}.
|
||||
@end defopt
|
||||
|
||||
|
||||
@node Yank Commands
|
||||
@subsection Functions for Yanking
|
||||
|
||||
|
|
|
@ -41,6 +41,7 @@ representing the variable.
|
|||
* Variable Aliases:: Variables that are aliases for other variables.
|
||||
* Variables with Restricted Values:: Non-constant variables whose value can
|
||||
@emph{not} be an arbitrary Lisp object.
|
||||
* Generalized Variables:: Extending the concept of variables.
|
||||
@end menu
|
||||
|
||||
@node Global Variables
|
||||
|
@ -1946,3 +1947,105 @@ Attempting to assign them any other value will result in an error:
|
|||
(setq undo-limit 1000.0)
|
||||
@error{} Wrong type argument: integerp, 1000.0
|
||||
@end example
|
||||
|
||||
@c FIXME? Not sure this is the right place for this section.
|
||||
@node Generalized Variables
|
||||
@section Generalized Variables
|
||||
|
||||
A @dfn{generalized variable} or @dfn{place form} is one of the many places
|
||||
in Lisp memory where values can be stored. The simplest place form is
|
||||
a regular Lisp variable. But the @sc{car}s and @sc{cdr}s of lists, elements
|
||||
of arrays, properties of symbols, and many other locations are also
|
||||
places where Lisp values are stored.
|
||||
|
||||
@c FIXME? Not sure this is a useful analogy...
|
||||
Generalized variables are analogous to ``lvalues'' in the C
|
||||
language, where @samp{x = a[i]} gets an element from an array
|
||||
and @samp{a[i] = x} stores an element using the same notation.
|
||||
Just as certain forms like @code{a[i]} can be lvalues in C, there
|
||||
is a set of forms that can be generalized variables in Lisp.
|
||||
|
||||
The @code{setf} macro is the most basic way to operate on generalized
|
||||
variables. The @code{setf} form is like @code{setq}, except that it
|
||||
accepts arbitrary place forms on the left side rather than just
|
||||
symbols. For example, @code{(setf (car a) b)} sets the car of
|
||||
@code{a} to @code{b}, doing the same operation as @code{(setcar a b)},
|
||||
but without having to remember two separate functions for setting and
|
||||
accessing every type of place.
|
||||
|
||||
@defmac setf [place form]@dots{}
|
||||
This macro evaluates @var{form} and stores it in @var{place}, which
|
||||
must be a valid generalized variable form. If there are several
|
||||
@var{place} and @var{form} pairs, the assignments are done sequentially
|
||||
just as with @code{setq}. @code{setf} returns the value of the last
|
||||
@var{form}.
|
||||
@end defmac
|
||||
|
||||
The following Lisp forms will work as generalized variables, and
|
||||
so may appear in the @var{place} argument of @code{setf}:
|
||||
|
||||
@itemize
|
||||
@item
|
||||
A symbol naming a variable. In other words, @code{(setf x y)} is
|
||||
exactly equivalent to @code{(setq x y)}, and @code{setq} itself is
|
||||
strictly speaking redundant given that @code{setf} exists. Many
|
||||
programmers continue to prefer @code{setq} for setting simple
|
||||
variables, though, purely for stylistic or historical reasons.
|
||||
The macro @code{(setf x y)} actually expands to @code{(setq x y)},
|
||||
so there is no performance penalty for using it in compiled code.
|
||||
|
||||
@item
|
||||
A call to any of the following standard Lisp functions:
|
||||
|
||||
@smallexample
|
||||
car cdr nth nthcdr
|
||||
caar cadr cdar cddr
|
||||
aref elt get gethash
|
||||
symbol-function symbol-value symbol-plist
|
||||
@end smallexample
|
||||
|
||||
@item
|
||||
The following Emacs-specific functions are also @code{setf}-able:
|
||||
|
||||
@smallexample
|
||||
default-value process-get
|
||||
frame-parameter process-sentinel
|
||||
terminal-parameter window-buffer
|
||||
keymap-parent window-display-table
|
||||
match-data window-dedicated-p
|
||||
overlay-get window-hscroll
|
||||
overlay-start window-parameter
|
||||
overlay-end window-point
|
||||
process-buffer window-start
|
||||
process-filter
|
||||
@end smallexample
|
||||
@end itemize
|
||||
|
||||
@noindent
|
||||
Using any forms other than these in the @var{place} argument to
|
||||
@code{setf} will signal an error.
|
||||
|
||||
@c And for cl-lib's cl-getf.
|
||||
Note that for @code{nthcdr}, the list argument of the function must
|
||||
itself be a valid @var{place} form. For example, @code{(setf (nthcdr
|
||||
0 foo) 7)} will set @code{foo} itself to 7.
|
||||
@c The use of @code{nthcdr} as a @var{place} form is an extension
|
||||
@c to standard Common Lisp.
|
||||
|
||||
@c FIXME I don't think is a particularly good way to do it,
|
||||
@c but these macros are introduced before gvs are.
|
||||
The macros @code{push} (@pxref{List Variables}) and @code{pop}
|
||||
(@pxref{List Elements}) can manipulate generalized variables,
|
||||
not just lists. @code{(pop @var{place})} removes and returns the first
|
||||
element of the list stored in @var{place}. It is analogous to
|
||||
@code{(prog1 (car @var{place}) (setf @var{place} (cdr @var{place})))},
|
||||
except that it takes care to evaluate all subforms only once.
|
||||
@code{(push @var{x} @var{place})} inserts @var{x} at the front of
|
||||
the list stored in @var{place}. It is analogous to @code{(setf
|
||||
@var{place} (cons @var{x} @var{place}))}, except for evaluation of the
|
||||
subforms. Note that @code{push} and @code{pop} on an @code{nthcdr}
|
||||
place can be used to insert or delete at any position in a list.
|
||||
|
||||
The @file{cl-lib} library defines various extensions for generalized
|
||||
variables, including additional @code{setf} places.
|
||||
@xref{Generalized Variables,,, cl, Common Lisp Extensions}.
|
||||
|
|
|
@ -76,30 +76,35 @@ within the area of the frame. When a window is created, resized, or
|
|||
deleted, the change in window space is taken from or given to the
|
||||
adjacent windows, so that the total area of the frame is unchanged.
|
||||
|
||||
@cindex live windows
|
||||
@cindex internal windows
|
||||
A @dfn{live window} is one that is actually displaying a buffer in a
|
||||
frame. Such a window can be @dfn{deleted}, i.e. removed from the
|
||||
frame (@pxref{Deleting Windows}); then it is no longer live, but the
|
||||
Lisp object representing it might be still referenced from other Lisp
|
||||
objects. A deleted window may be brought back to life by restoring a
|
||||
saved window configuration (@pxref{Window Configurations}).
|
||||
|
||||
@defun windowp object
|
||||
This function returns @code{t} if @var{object} is a window (whether or
|
||||
not it is live). Otherwise, it returns @code{nil}.
|
||||
not it displays a buffer). Otherwise, it returns @code{nil}.
|
||||
@end defun
|
||||
|
||||
@cindex live windows
|
||||
A @dfn{live window} is one that is actually displaying a buffer in a
|
||||
frame.
|
||||
|
||||
@defun window-live-p object
|
||||
This function returns @code{t} if @var{object} is a live window and
|
||||
@code{nil} otherwise. A live window is one that displays a buffer.
|
||||
@end defun
|
||||
|
||||
The windows in each frame are organized into a @dfn{window tree}.
|
||||
@xref{Windows and Frames}. The leaf nodes of each window tree are
|
||||
live windows---the ones actually displaying buffers. The internal
|
||||
nodes of the window tree are internal windows, which are not live.
|
||||
You can distinguish internal windows from deleted windows with
|
||||
@cindex internal windows
|
||||
The windows in each frame are organized into a @dfn{window tree}.
|
||||
@xref{Windows and Frames}. The leaf nodes of each window tree are live
|
||||
windows---the ones actually displaying buffers. The internal nodes of
|
||||
the window tree are @dfn{internal windows}, which are not live.
|
||||
|
||||
@cindex valid windows
|
||||
A @dfn{valid window} is one that is either live or internal. A valid
|
||||
window can be @dfn{deleted}, i.e. removed from its frame
|
||||
(@pxref{Deleting Windows}); then it is no longer valid, but the Lisp
|
||||
object representing it might be still referenced from other Lisp
|
||||
objects. A deleted window may be made valid again by restoring a saved
|
||||
window configuration (@pxref{Window Configurations}).
|
||||
|
||||
You can distinguish valid windows from deleted windows with
|
||||
@code{window-valid-p}.
|
||||
|
||||
@defun window-valid-p object
|
||||
|
@ -1317,31 +1322,37 @@ meaning as for @code{next-window}.
|
|||
criterion, without selecting it:
|
||||
|
||||
@cindex least recently used window
|
||||
@defun get-lru-window &optional all-frames dedicated
|
||||
@defun get-lru-window &optional all-frames dedicated not-selected
|
||||
This function returns a live window which is heuristically the ``least
|
||||
recently used'' window. The optional argument @var{all-frames} has
|
||||
the same meaning as in @code{next-window}.
|
||||
|
||||
If any full-width windows are present, only those windows are
|
||||
considered. The selected window is never returned, unless it is the
|
||||
only candidate. A minibuffer window is never a candidate. A
|
||||
dedicated window (@pxref{Dedicated Windows}) is never a candidate
|
||||
unless the optional argument @var{dedicated} is non-@code{nil}.
|
||||
considered. A minibuffer window is never a candidate. A dedicated
|
||||
window (@pxref{Dedicated Windows}) is never a candidate unless the
|
||||
optional argument @var{dedicated} is non-@code{nil}. The selected
|
||||
window is never returned, unless it is the only candidate. However, if
|
||||
the optional argument @var{not-selected} is non-@code{nil}, this
|
||||
function returns @code{nil} in that case.
|
||||
@end defun
|
||||
|
||||
@cindex largest window
|
||||
@defun get-largest-window &optional all-frames dedicated
|
||||
@defun get-largest-window &optional all-frames dedicated not-selected
|
||||
This function returns the window with the largest area (height times
|
||||
width). A minibuffer window is never a candidate. A dedicated window
|
||||
width). The optional argument @var{all-frames} specifies the windows to
|
||||
search, and has the same meaning as in @code{next-window}.
|
||||
|
||||
A minibuffer window is never a candidate. A dedicated window
|
||||
(@pxref{Dedicated Windows}) is never a candidate unless the optional
|
||||
argument @var{dedicated} is non-@code{nil}.
|
||||
argument @var{dedicated} is non-@code{nil}. The selected window is not
|
||||
a candidate if the optional argument @var{not-selected} is
|
||||
non-@code{nil}. If the optional argument @var{not-selected} is
|
||||
non-@code{nil} and the selected window is the only candidate, this
|
||||
function returns @code{nil}.
|
||||
|
||||
If there are two candidate windows of the same size, this function
|
||||
prefers the one that comes first in the cyclic ordering of windows,
|
||||
starting from the selected window.
|
||||
|
||||
The optional argument @var{all-frames} specifies the windows to
|
||||
search, and has the same meaning as in @code{next-window}.
|
||||
@end defun
|
||||
|
||||
@cindex window that satisfies a predicate
|
||||
|
@ -1359,6 +1370,26 @@ windows to search, and have the same meanings as in
|
|||
@code{next-window}.
|
||||
@end defun
|
||||
|
||||
@cindex window in direction
|
||||
@defun window-in-direction direction &optional window ignore
|
||||
This function returns the nearest window in direction @var{direction} as
|
||||
seen from the position of @code{window-point} in window @var{window}.
|
||||
The argument @var{direction} must be one of @code{above}, @code{below},
|
||||
@code{left} or @code{right}. The optional argument @var{window} must
|
||||
denote a live window and defaults to the selected one.
|
||||
|
||||
This function does not return a window whose @code{no-other-window}
|
||||
parameter is non-@code{nil}. If the nearest window's
|
||||
@code{no-other-window} parameter is non-@code{nil}, this function tries
|
||||
to find another window in the indicated direction whose
|
||||
@code{no-other-window} parameter is @code{nil}. If the optional
|
||||
argument @var{ignore} is non-@code{nil}, a window may be returned even
|
||||
if its @code{no-other-window} parameter is non-@code{nil}.
|
||||
|
||||
If it doesn't find a suitable window, this function returns @code{nil}.
|
||||
@end defun
|
||||
|
||||
|
||||
@node Buffers and Windows
|
||||
@section Buffers and Windows
|
||||
@cindex examining windows
|
||||
|
@ -1631,11 +1662,6 @@ The variable @code{display-buffer-overriding-action}.
|
|||
@item
|
||||
The user option @code{display-buffer-alist}.
|
||||
|
||||
@item
|
||||
A special action for handling @code{special-display-buffer-names} and
|
||||
@code{special-display-regexps}, if either of those variables is
|
||||
non-@code{nil}. @xref{Choosing Window Options}.
|
||||
|
||||
@item
|
||||
The @var{action} argument.
|
||||
|
||||
|
@ -1864,91 +1890,6 @@ Parameters}), which is used by the default function in
|
|||
@code{nil}.
|
||||
@end defopt
|
||||
|
||||
@defopt special-display-buffer-names
|
||||
A list of buffer names identifying buffers that should be displayed
|
||||
specially. If the name of @var{buffer-or-name} is in this list,
|
||||
@code{display-buffer} handles the buffer specially. By default, special
|
||||
display means to give the buffer a dedicated frame.
|
||||
|
||||
If an element is a list, instead of a string, then the @sc{car} of that
|
||||
list is the buffer name, and the rest of that list says how to create
|
||||
the frame. There are two possibilities for the rest of that list (its
|
||||
@sc{cdr}): It can be an alist, specifying frame parameters, or it can
|
||||
contain a function and arguments to give to it. (The function's first
|
||||
argument is always the buffer to be displayed; the arguments from the
|
||||
list come after that.)
|
||||
|
||||
For example:
|
||||
|
||||
@example
|
||||
(("myfile" (minibuffer) (menu-bar-lines . 0)))
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
specifies to display a buffer named @samp{myfile} in a dedicated frame
|
||||
with specified @code{minibuffer} and @code{menu-bar-lines} parameters.
|
||||
|
||||
The list of frame parameters can also use the phony frame parameters
|
||||
@code{same-frame} and @code{same-window}. If the specified frame
|
||||
parameters include @code{(same-window . @var{value})} and @var{value}
|
||||
is non-@code{nil}, that means to display the buffer in the current
|
||||
selected window. Otherwise, if they include @code{(same-frame .
|
||||
@var{value})} and @var{value} is non-@code{nil}, that means to display
|
||||
the buffer in a new window in the currently selected frame.
|
||||
@end defopt
|
||||
|
||||
@defopt special-display-regexps
|
||||
A list of regular expressions specifying buffers that should be
|
||||
displayed specially. If the buffer's name matches any of the regular
|
||||
expressions in this list, @code{display-buffer} handles the buffer
|
||||
specially. By default, special display means to give the buffer a
|
||||
dedicated frame.
|
||||
|
||||
If an element is a list, instead of a string, then the @sc{car} of the
|
||||
list is the regular expression, and the rest of the list says how to
|
||||
create the frame. See @code{special-display-buffer-names} above.
|
||||
@end defopt
|
||||
|
||||
@defun special-display-p buffer-name
|
||||
This function returns non-@code{nil} if displaying a buffer
|
||||
named @var{buffer-name} with @code{display-buffer} would
|
||||
create a special frame. The value is @code{t} if it would
|
||||
use the default frame parameters, or else the specified list
|
||||
of frame parameters.
|
||||
@end defun
|
||||
|
||||
@defopt special-display-function
|
||||
This variable holds the function to call to display a buffer specially.
|
||||
It receives the buffer as an argument, and should return the window in
|
||||
which it is displayed. The default value of this variable is
|
||||
@code{special-display-popup-frame}, see below.
|
||||
@end defopt
|
||||
|
||||
@defun special-display-popup-frame buffer &optional args
|
||||
This function tries to make @var{buffer} visible in a frame of its own.
|
||||
If @var{buffer} is already displayed in some window, it makes that
|
||||
window's frame visible and raises it. Otherwise, it creates a frame
|
||||
that is dedicated to @var{buffer}. The return value is the window used
|
||||
to display @var{buffer}.
|
||||
|
||||
If @var{args} is an alist, it specifies frame parameters for the new
|
||||
frame. If @var{args} is a list whose @sc{car} is a symbol, then
|
||||
@code{(car @var{args})} is a function to actually create and
|
||||
set up the frame; it is called with @var{buffer} as first argument, and
|
||||
@code{(cdr @var{args})} as additional arguments.
|
||||
|
||||
This function always uses an existing window displaying @var{buffer},
|
||||
whether or not it is in a frame of its own; but if you set up the above
|
||||
variables in your init file, before @var{buffer} was created, then
|
||||
presumably the window was previously made by this function.
|
||||
@end defun
|
||||
|
||||
@defopt special-display-frame-alist
|
||||
@anchor{Definition of special-display-frame-alist}
|
||||
This variable holds frame parameters for
|
||||
@code{special-display-popup-frame} to use when it creates a frame.
|
||||
@end defopt
|
||||
|
||||
@defopt same-window-buffer-names
|
||||
A list of buffer names for buffers that should be displayed in the
|
||||
selected window. If a buffer's name is in this list,
|
||||
|
@ -1969,19 +1910,6 @@ named @var{buffer-name} with @code{display-buffer} would
|
|||
put it in the selected window.
|
||||
@end defun
|
||||
|
||||
@c Emacs 19 feature
|
||||
@defopt display-buffer-function
|
||||
This variable is the most flexible way to customize the behavior of
|
||||
@code{display-buffer}. If it is non-@code{nil}, it should be a function
|
||||
that @code{display-buffer} calls to do the work. The function should
|
||||
accept two arguments, the first two arguments that @code{display-buffer}
|
||||
received. It should choose or create a window, display the specified
|
||||
buffer in it, and then return the window.
|
||||
|
||||
This variable takes precedence over all the other options described
|
||||
above.
|
||||
@end defopt
|
||||
|
||||
@node Window History
|
||||
@section Window History
|
||||
@cindex window history
|
||||
|
|
|
@ -1,3 +1,96 @@
|
|||
2012-10-30 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* cl.texi (Modify Macros): Update for cl-letf changes.
|
||||
(Obsolete Lexical Macros): Say a little more about letf/cl-letf.
|
||||
(Setf Extensions): Partially restore note about cl-getf,
|
||||
mainly moved to lispref/variables.texi.
|
||||
(Property Lists): Fix cl-getf typos.
|
||||
(Mapping over Sequences): Mention cl-mapc naming oddity.
|
||||
|
||||
2012-10-29 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* cl.texi (Organization): More details on cl-lib.el versus cl.el.
|
||||
(Setf Extensions): Remove `apply' setf since it seems to be disabled.
|
||||
(Customizing Setf): Move contents to "Obsolete Setf Customization".
|
||||
(Modify Macros, Multiple Values, Other Clauses):
|
||||
Remove mentions of obsolete features.
|
||||
(Obsolete Setf Customization): Don't mention `apply' setf.
|
||||
|
||||
2012-10-28 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* cl.texi (Multiple Values, Common Lisp Compatibility):
|
||||
More namespace updates.
|
||||
(Obsolete Features): Copyedits.
|
||||
(Obsolete Lexical Macros, Obsolete Setf Customization):
|
||||
New subsections.
|
||||
|
||||
* cl.texi (Porting Common Lisp, Lexical Bindings):
|
||||
Add some xrefs to the Elisp manual.
|
||||
|
||||
* cl.texi (Lexical Bindings): Move to appendix of obsolete features.
|
||||
(Porting Common Lisp): Emacs Lisp can do true lexical binding now.
|
||||
(Obsolete Features): New appendix. Move Lexical Bindings here.
|
||||
|
||||
2012-10-27 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* cl.texi: Use defmac for macros rather than defspec.
|
||||
(Efficiency Concerns): Related copyedit.
|
||||
|
||||
* cl.texi (Control Structure): Update for setf now being in core.
|
||||
(Setf Extensions): Rename from Basic Setf. Move much of the
|
||||
former content to lispref/variables.texi.
|
||||
(Modify Macros): Move pop, push details to lispref/variables.texi.
|
||||
(Customizing Setf): Copyedits for setf etc being in core.
|
||||
(Modify Macros, Efficiency Concerns, Porting Common Lisp):
|
||||
Further namespaces updates.
|
||||
|
||||
2012-10-26 Bastien Guerry <bzg@gnu.org>
|
||||
|
||||
* org.texi (Installation): Update the link to Org's ELPA. Also
|
||||
don't mention org-install.el anymore as the replacement file
|
||||
org-loaddefs.el is now loaded by org.el.
|
||||
|
||||
2012-10-25 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
* tramp.texi (Frequently Asked Questions): Mention
|
||||
`tramp-completion-reread-directory-timeout' for performance
|
||||
improvement.
|
||||
|
||||
2012-10-25 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* cl.texi: Don't mess with the TeX section number counter.
|
||||
Use Texinfo recommended convention for quotes+punctuation.
|
||||
(Overview, Sequence Functions): Rephrase for better line-breaking.
|
||||
(Time of Evaluation, Type Predicates, Modify Macros, Function Bindings)
|
||||
(Macro Bindings, Conditionals, Iteration, Loop Basics)
|
||||
(Random Numbers, Mapping over Sequences, Structures)
|
||||
(Porting Common Lisp): Further updates for cl-lib namespace.
|
||||
(Modify Macros, Declarations, Macro Bindings, Structures):
|
||||
Break long lines in examples.
|
||||
(Dynamic Bindings): Update for changed progv behavior.
|
||||
(Loop Examples, Efficiency Concerns): Markup fixes.
|
||||
(Structures): Remove TeX margin change.
|
||||
(Declarations): Fix typos.
|
||||
|
||||
2012-10-24 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* cl.texi (Overview, Multiple Values, Creating Symbols)
|
||||
(Numerical Functions): Say less/nothing about the original cl.el.
|
||||
(Old CL Compatibility): Remove.
|
||||
(Assertions): Remove ignore-errors (standard Elisp for some time).
|
||||
|
||||
* cl.texi (Basic Setf, Macros, Declarations, Symbols, Numbers)
|
||||
(Sequences, Lists, Structures, Assertions, Efficiency Concerns)
|
||||
(Efficiency Concerns, Efficiency Concerns)
|
||||
(Common Lisp Compatibility, Old CL Compatibility):
|
||||
Further updates for cl-lib namespace.
|
||||
|
||||
2012-10-24 Paul Eggert <eggert@penguin.cs.ucla.edu>
|
||||
|
||||
Update manual for new time stamp format (Bug#12706).
|
||||
* emacs-mime.texi (time-date): Update for new format.
|
||||
Also, fix bogus time stamp and modernize a bit.
|
||||
|
||||
2012-10-23 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* cl.texi: Include emacsver.texi. Use Emacs version number rather
|
||||
|
|
2619
doc/misc/cl.texi
2619
doc/misc/cl.texi
File diff suppressed because it is too large
Load diff
|
@ -1516,16 +1516,16 @@ Here's a bunch of time/date/second/day examples:
|
|||
@result{} 905595714.0
|
||||
|
||||
(seconds-to-time 905595714.0)
|
||||
@result{} (13818 19266 0)
|
||||
@result{} (13818 19266 0 0)
|
||||
|
||||
(time-to-days '(13818 19266))
|
||||
@result{} 729644
|
||||
|
||||
(days-to-time 729644)
|
||||
@result{} (961933 65536)
|
||||
@result{} (961933 512)
|
||||
|
||||
(time-since '(13818 19266))
|
||||
@result{} (0 430)
|
||||
@result{} (6797 9607 984839 247000)
|
||||
|
||||
(time-less-p '(13818 19266) '(13818 19145))
|
||||
@result{} nil
|
||||
|
@ -1546,7 +1546,7 @@ Here's a bunch of time/date/second/day examples:
|
|||
(time-to-number-of-days
|
||||
(time-since
|
||||
(date-to-time "Mon, 01 Jan 2001 02:22:26 GMT")))
|
||||
@result{} 4.146122685185185
|
||||
@result{} 4314.095589286675
|
||||
@end example
|
||||
|
||||
And finally, we have @code{safe-date-to-time}, which does the same as
|
||||
|
@ -1561,7 +1561,7 @@ An RFC822 (or similar) date string. For instance: @code{"Sat Sep 12
|
|||
12:21:54 1998 +0200"}.
|
||||
|
||||
@item time
|
||||
An internal Emacs time. For instance: @code{(13818 26466)}.
|
||||
An internal Emacs time. For instance: @code{(13818 26466 0 0)}.
|
||||
|
||||
@item seconds
|
||||
A floating point representation of the internal Emacs time. For
|
||||
|
|
|
@ -857,7 +857,7 @@ Theory Ltd.}
|
|||
@b{Important:} @i{If you the version of Org that comes with Emacs or as a
|
||||
XEmacs package, please skip this section and go directly to @ref{Activation}.
|
||||
If you downloaded Org as an ELPA package, please read the instructions on the
|
||||
@uref{http://orgmode.org/elpa/, Org ELPA page}. To see what version of Org
|
||||
@uref{http://orgmode.org/elpa.html, Org ELPA page}. To see what version of Org
|
||||
(if any) is part of your Emacs distribution, type @kbd{M-x org-version} (if
|
||||
your Emacs distribution does not come with Org, this function will not be
|
||||
defined).}
|
||||
|
@ -964,13 +964,6 @@ on your system).
|
|||
make install-info
|
||||
@end example
|
||||
|
||||
Then add the following line to @file{.emacs}. It is needed so that
|
||||
Emacs can autoload functions that are located in files not immediately loaded
|
||||
when Org mode starts.
|
||||
@lisp
|
||||
(require 'org-install)
|
||||
@end lisp
|
||||
|
||||
Do not forget to activate Org as described in the following section.
|
||||
@page
|
||||
|
||||
|
@ -1092,9 +1085,6 @@ shown below.
|
|||
;; add latest org-mode to load path
|
||||
(add-to-list 'load-path (expand-file-name "/path/to/org-mode/lisp"))
|
||||
(add-to-list 'load-path (expand-file-name "/path/to/org-mode/contrib/lisp" t))
|
||||
|
||||
;; activate org
|
||||
(require 'org-install)
|
||||
@end example
|
||||
|
||||
If an error occurs, a backtrace can be very useful (see below on how to
|
||||
|
@ -3785,7 +3775,7 @@ mostly if more than two TODO states are possible (@pxref{TODO
|
|||
extensions}). See also @ref{Conflicts}, for a discussion of the interaction
|
||||
with @code{shift-selection-mode}. See also the variable
|
||||
@code{org-treat-S-cursor-todo-selection-as-state-change}.
|
||||
@orgcmd{C-c / t,org-show-todo-key}
|
||||
@orgcmd{C-c / t,org-show-todo-tree}
|
||||
@cindex sparse tree, for TODO
|
||||
@vindex org-todo-keywords
|
||||
View TODO items in a @emph{sparse tree} (@pxref{Sparse trees}). Folds the
|
||||
|
@ -9386,16 +9376,16 @@ so often, shortcuts are provided using the Easy Templates facility
|
|||
@item C-c '
|
||||
Edit the source code example at point in its native mode. This works by
|
||||
switching to a temporary buffer with the source code. You need to exit by
|
||||
pressing @kbd{C-c '} again@footnote{Upon exit, lines starting with @samp{*}
|
||||
or @samp{#} will get a comma prepended, to keep them from being interpreted
|
||||
by Org as outline nodes or special comments. These commas will be stripped
|
||||
for editing with @kbd{C-c '}, and also for export.}. The edited version will
|
||||
then replace the old version in the Org buffer. Fixed-width regions
|
||||
(where each line starts with a colon followed by a space) will be edited
|
||||
using @code{artist-mode}@footnote{You may select a different-mode with the
|
||||
variable @code{org-edit-fixed-width-region-mode}.} to allow creating ASCII
|
||||
drawings easily. Using this command in an empty line will create a new
|
||||
fixed-width region.
|
||||
pressing @kbd{C-c '} again@footnote{Upon exit, lines starting with @samp{*},
|
||||
@samp{,*}, @samp{#+} and @samp{,#+} will get a comma prepended, to keep them
|
||||
from being interpreted by Org as outline nodes or special syntax. These
|
||||
commas will be stripped for editing with @kbd{C-c '}, and also for export.}.
|
||||
The edited version will then replace the old version in the Org buffer.
|
||||
Fixed-width regions (where each line starts with a colon followed by a space)
|
||||
will be edited using @code{artist-mode}@footnote{You may select
|
||||
a different-mode with the variable @code{org-edit-fixed-width-region-mode}.}
|
||||
to allow creating ASCII drawings easily. Using this command in an empty line
|
||||
will create a new fixed-width region.
|
||||
@kindex C-c l
|
||||
@item C-c l
|
||||
Calling @code{org-store-link} while editing a source code example in a
|
||||
|
@ -14523,14 +14513,13 @@ Be sure to adjust the paths to fit your system.
|
|||
#
|
||||
DIR=`pwd`
|
||||
FILES=""
|
||||
ORGINSTALL="~/src/org/lisp/org-install.el"
|
||||
|
||||
# wrap each argument in the code required to call tangle on it
|
||||
for i in $@@; do
|
||||
FILES="$FILES \"$i\""
|
||||
done
|
||||
|
||||
emacs -Q --batch -l $ORGINSTALL \
|
||||
emacs -Q --batch \
|
||||
--eval "(progn
|
||||
(add-to-list 'load-path (expand-file-name \"~/src/org/lisp/\"))
|
||||
(add-to-list 'load-path (expand-file-name \"~/src/org/contrib/lisp/\" t))
|
||||
|
|
|
@ -2918,7 +2918,8 @@ information about remote hosts is kept in the file specified in
|
|||
@code{tramp-persistency-file-name}. Keep this file. If you are
|
||||
confident that files on remote hosts are not changed out of
|
||||
@value{emacsname}' control, set @code{remote-file-name-inhibit-cache}
|
||||
to @code{nil}.
|
||||
to @code{nil}. Set also @code{tramp-completion-reread-directory-timeout}
|
||||
to @code{nil}, @ref{Filename completion}.
|
||||
|
||||
Disable version control. If you access remote files which are not
|
||||
under version control, a lot of check operations can be avoided by
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2012-10-26 Nicolas Goaziou <n.goaziou@gmail.com>
|
||||
|
||||
* refcards/orgcard.tex: Fix keybindings about
|
||||
`org-show-todo-tree'.
|
||||
|
||||
2012-10-23 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Fix outdated timestamp documentation in Elisp manual (bug#12706).
|
||||
|
|
158
etc/NEWS
158
etc/NEWS
|
@ -76,20 +76,11 @@ links between the various manuals.
|
|||
/usr/pkg/lib to the linker search path. You must add them yourself if
|
||||
you want them.
|
||||
|
||||
---
|
||||
** On Mac OS X, configure no longer automatically adds the Fink /sw
|
||||
directories to the search path. You must add them yourself if you want them.
|
||||
|
||||
---
|
||||
** The standalone scripts rcs-checkin and vcdiff have been removed
|
||||
(from the bin and libexec directories, respectively). The former is
|
||||
no longer relevant, the latter is replaced by lisp (in vc-sccs.el).
|
||||
|
||||
---
|
||||
** The native Windows user interface is available for Cygwin. Passing
|
||||
--with-w32 will configure a Cygwin emacs to use the Windows user
|
||||
interface instead of the default, X11.
|
||||
|
||||
|
||||
* Startup Changes in Emacs 24.3
|
||||
|
||||
|
@ -104,26 +95,19 @@ been adding them there, put them somewhere else, eg site-lisp.
|
|||
|
||||
* Changes in Emacs 24.3
|
||||
|
||||
** minibuffer-electric-default-mode can rewrite (default ...) to [...].
|
||||
Just set minibuffer-eldef-shorten-default to t before enabling the mode.
|
||||
|
||||
+++
|
||||
** Most y-or-n prompts now allow you to scroll the selected window.
|
||||
Typing C-v or M-v at a y-or-n prompt scrolls forward or backward
|
||||
respectively, without exiting from the prompt.
|
||||
|
||||
---
|
||||
** In minibuffer filename prompts, `C-M-f' and `C-M-b' now move to the
|
||||
next and previous path separator, respectively.
|
||||
|
||||
** Mode line changes
|
||||
---
|
||||
*** New option `mode-line-default-help-echo' specifies the help text
|
||||
(shown in a tooltip or in the echo area) for any part of the mode line
|
||||
that does not have its own specialized help text.
|
||||
|
||||
*** You can now click mouse-3 in the coding system indicator to
|
||||
invokes `set-buffer-file-coding-system'.
|
||||
+++
|
||||
*** You can now click mouse-3 in the coding system indicator to invoke
|
||||
`set-buffer-file-coding-system'.
|
||||
|
||||
** Help changes
|
||||
|
||||
|
@ -139,6 +123,14 @@ correctly. To disable this, set `help-enable-auto-load' to nil.
|
|||
even after their associated libraries have been loaded (and the
|
||||
autoloads have been redefined as functions).
|
||||
|
||||
** Minibuffer changes
|
||||
---
|
||||
*** In minibuffer filename prompts, `C-M-f' and `C-M-b' now move to the
|
||||
next and previous path separator, respectively.
|
||||
|
||||
*** minibuffer-electric-default-mode can rewrite (default ...) to [...].
|
||||
Just set minibuffer-eldef-shorten-default to t before enabling the mode.
|
||||
|
||||
** ImageMagick support, if available, is automatically enabled.
|
||||
It is no longer necessary to call `imagemagick-register-types'
|
||||
explicitly to install ImageMagick image types; that function is called
|
||||
|
@ -165,6 +157,7 @@ or expression to evaluate.
|
|||
---
|
||||
*** New option `server-auth-key' specifies a shared server key.
|
||||
|
||||
+++
|
||||
** In the Package Menu, newly-available packages are listed as "new",
|
||||
and sorted above the other "available" packages by default.
|
||||
|
||||
|
@ -204,9 +197,7 @@ The PCL-CVS commands are still available via the keyboard.
|
|||
---
|
||||
*** New input method `vietnamese-vni'.
|
||||
|
||||
** NextStep/OSX port changes.
|
||||
---
|
||||
*** OSX 10.4 or newer is required to build Emacs.
|
||||
** Nextstep (GNUstep / Mac OS X) port changes
|
||||
---
|
||||
*** Fullscreen and frame parameter fullscreen is supported.
|
||||
---
|
||||
|
@ -239,7 +230,7 @@ This applies to both ordinary and regexp Isearch.
|
|||
*** New option `replace-lax-whitespace'.
|
||||
If non-nil, `query-replace' uses flexible whitespace matching too.
|
||||
The default is nil.
|
||||
|
||||
+++
|
||||
*** Global `M-s _' starts a symbol (identifier) incremental search,
|
||||
and `M-s _' in Isearch toggles symbol search mode.
|
||||
`M-s c' in Isearch toggles search case-sensitivity.
|
||||
|
@ -273,6 +264,7 @@ append-to-register and M-x prepend-to-register.
|
|||
** New command `C-x r M-w' (copy-rectangle-as-kill).
|
||||
It copies the region-rectangle as the last rectangle kill.
|
||||
|
||||
+++
|
||||
** New option `yank-handled-properties' allows processing of text
|
||||
properties on yanked text, in more ways that are more general than
|
||||
just removing them, as done by `yank-excluded-properties'.
|
||||
|
@ -331,24 +323,34 @@ The difference is that it relies on the `lexical-binding' machinery (as opposed
|
|||
to the `lexical-let' machinery used previously) to capture definitions in
|
||||
closures, so such closures will only work if `lexical-binding' is in use.
|
||||
|
||||
+++
|
||||
*** `cl-letf' is not exactly like `letf'.
|
||||
The only difference is in details that relate to some deprecated usage
|
||||
of `symbol-function' in place forms.
|
||||
|
||||
+++
|
||||
*** `progv' was rewritten to use the `let' machinery.
|
||||
A side effect is that vars without corresponding value are bound to nil
|
||||
rather than making them unbound.
|
||||
|
||||
** Compilation mode
|
||||
*** The following methods of extending `setf' are obsolete.
|
||||
Use gv.el instead (FIXME; details).
|
||||
`define-setf-expander', `defsetf', `define-modify-macro'
|
||||
|
||||
** Compilation mode
|
||||
+++
|
||||
*** New option `compilation-always-kill'.
|
||||
|
||||
** Customize
|
||||
|
||||
---
|
||||
*** `custom-reset-button-menu' now defaults to t.
|
||||
|
||||
---
|
||||
*** Non-option variables are never matched in `customize-apropos' and
|
||||
`customize-apropos-options' (i.e. the prefix argument does nothing for
|
||||
these commands now).
|
||||
|
||||
** Desktop
|
||||
|
||||
---
|
||||
*** `desktop-path' no longer includes the "." directory. Desktop
|
||||
files are now located in ~/.emacs.d by default.
|
||||
|
||||
|
@ -398,26 +400,27 @@ changes in context diffs.
|
|||
whitespace problems introduced by the diff.
|
||||
|
||||
** Dired
|
||||
|
||||
+++
|
||||
*** `dired-do-async-shell-command' executes each file sequentially
|
||||
if the command ends in `;' (when operating on multiple files).
|
||||
Otherwise, it executes the command on each file in parallel.
|
||||
|
||||
---
|
||||
*** Typing M-n in the minibuffer of `dired-do-chmod', `dired-do-chgrp',
|
||||
`dired-do-chown', `dired-do-touch' pulls the file attributes of the
|
||||
file at point.
|
||||
|
||||
+++
|
||||
*** When the region is active, `m' (`dired-mark'), `u' (`dired-unmark'),
|
||||
`DEL' (`dired-unmark-backward'), `d' (`dired-flag-file-deletion')
|
||||
mark/unmark/flag all files in the active region.
|
||||
|
||||
+++
|
||||
*** The minibuffer default for `=' (`dired-diff) has changed.
|
||||
It is now the backup file for the file at point, if one exists.
|
||||
In Transient Mark mode the default is the file at the active mark.
|
||||
|
||||
+++
|
||||
*** `M-=' is no longer bound to `dired-backup-diff' in Dired buffers.
|
||||
The global binding for `M-=', `count-words-region' is in effect.
|
||||
|
||||
---
|
||||
** Ediff now uses the same color scheme as Diff mode.
|
||||
|
||||
** erc will look up server/channel names via auth-source and use the
|
||||
|
@ -428,9 +431,9 @@ See `flymake-fringe-indicator-position', `flymake-error-bitmap' and
|
|||
`flymake-warning-bitmap'.
|
||||
|
||||
** Follow mode
|
||||
|
||||
---
|
||||
*** The obsolete variable `follow-mode-off-hook' has been removed.
|
||||
|
||||
---
|
||||
*** Follow mode no longer works by using advice.
|
||||
The option `follow-intercept-processes' has been removed.
|
||||
|
||||
|
@ -449,9 +452,9 @@ the FFAP prompt. The default is now '("ftp").
|
|||
The old binding for `/ M' (filter by used-mode) is now bound to `/ m'.
|
||||
|
||||
** Mouse Avoidance mode
|
||||
|
||||
The new variable `mouse-avoidance-banish-position' can now be used to
|
||||
customize Mouse Avoidance mode further.
|
||||
+++
|
||||
*** New variable `mouse-avoidance-banish-position' specifies where the
|
||||
`banish' mouse avoidance setting moves the mouse.
|
||||
|
||||
+++
|
||||
** notifications.el supports now version 1.2 of the Notifications API.
|
||||
|
@ -603,6 +606,7 @@ and the `attributes' slot is always nil.
|
|||
The `url-retrieve' function now uses this to encode its URL argument,
|
||||
in case that is not properly encoded.
|
||||
|
||||
---
|
||||
** VHDL mode
|
||||
|
||||
*** The free software compiler GHDL is supported (and now the default).
|
||||
|
@ -613,7 +617,10 @@ in case that is not properly encoded.
|
|||
|
||||
*** Accepts \r and \f as whitespace.
|
||||
|
||||
** which-function-mode now applies to all applicable major modes by default.
|
||||
** Which Function mode
|
||||
+++
|
||||
*** `which-func-modes' now defaults to t, so Which Function mode, when
|
||||
enabled, applies to all applicable major modes.
|
||||
|
||||
---
|
||||
** winner-mode-hook now runs when the mode is disabled, as well as when it is
|
||||
|
@ -673,6 +680,7 @@ gnus-notifications.el, mm-archive.el
|
|||
|
||||
* Incompatible Lisp Changes in Emacs 24.3
|
||||
|
||||
+++
|
||||
** set-buffer-multibyte now signals an error in narrowed buffers.
|
||||
|
||||
+++
|
||||
|
@ -715,6 +723,7 @@ still be supported for Emacs 24.x.
|
|||
Some Lisp symbols have been renamed to avoid problems with spelling
|
||||
that is incorrect or inconsistent with how Emacs normally spells a word.
|
||||
|
||||
---
|
||||
*** Renamed functions
|
||||
|
||||
**** hangul-input-method-inactivate -> hangul-input-method-deactivate
|
||||
|
@ -726,22 +735,22 @@ that is incorrect or inconsistent with how Emacs normally spells a word.
|
|||
viper-deactivate-input-method-action
|
||||
**** ucs-input-inactivate -> ucs-input-deactivate
|
||||
|
||||
---
|
||||
*** Renamed hooks
|
||||
The old hooks are still supported for backward compatibility, but they
|
||||
are deprecated and will be removed eventually.
|
||||
|
||||
**** input-method-inactivate-hook -> input-method-deactivate-hook
|
||||
**** robin-inactivate-hook -> robin-deactivate-hook
|
||||
**** quail-inactivate-hook -> quail-deactivate-hook
|
||||
|
||||
---
|
||||
*** Renamed Lisp variables
|
||||
|
||||
**** follow-deactive-menu -> follow-inactive-menu
|
||||
**** inactivate-current-input-method-function ->
|
||||
deactivate-current-input-method-function
|
||||
|
||||
+++
|
||||
** Some obsolete functions, variables, and faces were removed:
|
||||
|
||||
*** `facemenu-unlisted-faces'
|
||||
*** `rmail-decode-mime-charset'
|
||||
*** `last-input-char', `last-command-char', `unread-command-char'.
|
||||
|
@ -772,9 +781,18 @@ systems), or based on memory allocations.
|
|||
** CL-style generalized variables are now in core Elisp.
|
||||
`setf' is autoloaded; `push' and `pop' accept generalized variables.
|
||||
|
||||
+++
|
||||
** `defun' also accepts a (declare DECLS) form, like `defmacro'.
|
||||
The interpretation of the DECLS is determined by `defun-declarations-alist'.
|
||||
|
||||
** Minibuffer
|
||||
+++
|
||||
*** `read-regexp' has a new argument HISTORY; the first argument PROMPT
|
||||
of `read-regexp' accepts a string ending with a colon and space, and its
|
||||
second argument DEFAULTS can be a list of strings accessible via M-n
|
||||
in the minibuffer ahead of other hard-coded useful regexp-related values.
|
||||
More commands use `read-regexp' now to read their regexp arguments.
|
||||
|
||||
** Completion
|
||||
|
||||
*** New function `completion-table-with-quoting' to handle completion
|
||||
|
@ -797,14 +815,6 @@ to work out which code is doing something.
|
|||
*** New var `inhibit-debugger', automatically set to prevent accidental
|
||||
recursive invocations.
|
||||
|
||||
** Minibuffer
|
||||
|
||||
*** `read-regexp' has a new argument HISTORY; the first argument PROMPT
|
||||
of `read-regexp' accepts a string ending with a colon and space, and its
|
||||
second argument DEFAULTS can be a list of strings accessible via M-n
|
||||
in the minibuffer ahead of other hard-coded useful regexp-related values.
|
||||
More commands use `read-regexp' now to read their regexp arguments.
|
||||
|
||||
** Window changes
|
||||
|
||||
*** The functions get-lru-window, get-mru-window and get-largest-window
|
||||
|
@ -841,11 +851,17 @@ appropriate entries in the `display-buffer-alist' function introduced
|
|||
in Emacs 24.1:
|
||||
+++
|
||||
**** `display-buffer-reuse-frames'
|
||||
+++
|
||||
**** `special-display-regexps'
|
||||
+++
|
||||
**** `special-display-frame-alist'
|
||||
+++
|
||||
**** `special-display-buffer-names'
|
||||
+++
|
||||
**** `special-display-function'
|
||||
+++
|
||||
**** `display-buffer-function'
|
||||
---
|
||||
**** `dired-shrink-to-fit'
|
||||
|
||||
** Time
|
||||
|
@ -853,7 +869,7 @@ in Emacs 24.1:
|
|||
*** `current-time-string' no longer requires that its argument's year
|
||||
must be in the range 1000..9999. It now works with any year supported
|
||||
by the underlying C implementation.
|
||||
---
|
||||
|
||||
*** `current-time' now returns extended-format time stamps
|
||||
(HIGH LOW USEC PSEC), where the new PSEC slot specifies picoseconds.
|
||||
PSEC is typically a multiple of 1000 on current machines. Other
|
||||
|
@ -885,12 +901,15 @@ result in a warning ("Eager macro-expansion skipped due to cycle")
|
|||
describing the cycle.
|
||||
|
||||
** Miscellaneous new functions:
|
||||
|
||||
+++
|
||||
*** `autoloadp'
|
||||
+++
|
||||
*** `autoload-do-load'
|
||||
+++
|
||||
*** `buffer-narrowed-p' tests if the buffer is narrowed.
|
||||
+++
|
||||
*** `file-name-base' returns a file name sans directory and extension.
|
||||
+++
|
||||
*** `function-get' fetches a function property, following aliases.
|
||||
+++
|
||||
*** `posnp' tests if an object is a `posn'.
|
||||
|
@ -899,42 +918,63 @@ describing the cycle.
|
|||
*** `system-users' returns the user names on the system.
|
||||
+++
|
||||
*** `system-groups' returns the group names on the system.
|
||||
+++
|
||||
*** `tty-top-frame' returns the topmost frame of a text terminal.
|
||||
|
||||
** New macros `setq-local' and `defvar-local'.
|
||||
|
||||
+++
|
||||
** New fringe bitmap `exclamation-mark'.
|
||||
|
||||
** Face underlining can now use a wave.
|
||||
See the "Face Attributes" section of the Elisp manual.
|
||||
|
||||
** The following functions and variables are obsolete:
|
||||
|
||||
---
|
||||
*** `automount-dir-prefix'
|
||||
+++
|
||||
*** `buffer-has-markers-at'
|
||||
---
|
||||
*** `macro-declaration-function' (use `macro-declarations-alist')
|
||||
---
|
||||
*** `window-system-version'
|
||||
---
|
||||
*** `dired-pop-to-buffer' (use `dired-mark-pop-up')
|
||||
---
|
||||
*** `query-replace-interactive'
|
||||
---
|
||||
*** `font-list-limit' (has had no effect since Emacs < 23)
|
||||
|
||||
|
||||
* Changes in Emacs 24.3 on non-free operating systems
|
||||
|
||||
+++
|
||||
** On MS Windows, you can pass --without-libxml2 to configure.bat to omit
|
||||
support for libxml2, even if its presence is detected.
|
||||
|
||||
** When invoked with the -nw switch to run on the Windows text-mode terminal,
|
||||
Emacs now supports mouse highlight, help-echo (in the echo area), and
|
||||
`mouse-autoselect-window'.
|
||||
---
|
||||
** Cygwin builds can use the native MS Windows user interface.
|
||||
Pass --with-w32 to configure. The default remains the X11 interface.
|
||||
|
||||
** Two new functions are available in Cygwin builds:
|
||||
`cygwin-convert-path-from-windows' and `cygwin-convert-path-to-windows'.
|
||||
These functions allow Lisp code to access the Cygwin file-name mapping
|
||||
machinery to convert between Cygwin and Windows-native file names.
|
||||
|
||||
** When invoked with the -nw switch to run on the Windows text-mode terminal,
|
||||
Emacs now supports mouse highlight, help-echo (in the echo area), and
|
||||
`mouse-autoselect-window'.
|
||||
|
||||
+++
|
||||
** On MS Windows Vista and later Emacs now supports symbolic links.
|
||||
|
||||
+++
|
||||
** On MS Windows, you can pass --without-libxml2 to configure.bat to omit
|
||||
support for libxml2, even if its presence is detected.
|
||||
|
||||
---
|
||||
** On Mac OS X, the Nextstep port requires OS X 10.4 or later.
|
||||
|
||||
---
|
||||
** On Mac OS X, configure no longer automatically adds the Fink /sw
|
||||
directories to the search path. You must add them yourself if you want them.
|
||||
|
||||
|
||||
* Changes in Emacs 24.2
|
||||
|
||||
|
|
Binary file not shown.
|
@ -484,9 +484,9 @@ \section{TODO Items and Checkboxes}
|
|||
\metax{select next/previous state}{S-LEFT/RIGHT}
|
||||
\metax{select next/previous set}{C-S-LEFT/RIGHT}
|
||||
\key{toggle ORDERED property}{C-c C-x o}
|
||||
\key{view TODO items in a sparse tree}{C-c C-v}
|
||||
\key{view 3rd TODO keyword's sparse tree}{C-3 C-c C-v}
|
||||
|
||||
\key{view TODO items in a sparse tree}{C-c / t}
|
||||
\key{view 3rd TODO keyword's sparse tree}{C-3 C-c / t}
|
||||
\key{set the priority of the current item}{C-c , [ABC]}
|
||||
\key{remove priority cookie from current item}{C-c , SPC}
|
||||
\key{raise/lower priority of current item}{S-UP/DOWN\notetwo}
|
||||
|
|
|
@ -1,3 +1,15 @@
|
|||
2012-10-26 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* Makefile.in (uninstall): No INSTALLABLES live in archlibdir.
|
||||
|
||||
* Makefile.in (install, uninstall): Transformations should not be
|
||||
applied to $EXEEXT.
|
||||
|
||||
2012-10-23 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* makefile.w32-in (lisp2): Add cp51932.el and eucjp-ms.el, to
|
||||
follow src/lisp.mk.
|
||||
|
||||
2012-10-21 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* make-docfile.c (scan_lisp_file): Add cp51932.el and eucjp-ms.el.
|
||||
|
|
|
@ -244,20 +244,21 @@ install: $(DESTDIR)${archlibdir}
|
|||
@echo "Installing utilities for users to run."
|
||||
umask 022; ${MKDIR_P} $(DESTDIR)${bindir}
|
||||
for file in ${INSTALLABLES} ; do \
|
||||
$(INSTALL_PROGRAM) $(INSTALL_STRIP) $${file} $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'` ; \
|
||||
$(INSTALL_PROGRAM) $(INSTALL_STRIP) $${file} $(DESTDIR)${bindir}/`echo $${file} | sed -e 's/${EXEEXT}$$//' -e '$(TRANSFORM)'`${EXEEXT} ; \
|
||||
done
|
||||
for file in ${INSTALLABLE_SCRIPTS} ; do \
|
||||
$(INSTALL_SCRIPT) ${srcdir}/$${file} $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'` ; \
|
||||
done
|
||||
|
||||
uninstall:
|
||||
(cd $(DESTDIR)${bindir}; \
|
||||
for file in ${INSTALLABLES} ${INSTALLABLE_SCRIPTS}; do \
|
||||
for file in ${INSTALLABLES}; do \
|
||||
rm -f $(DESTDIR)${bindir}/`echo $${file} | sed -e 's/${EXEEXT}$$//' -e '$(TRANSFORM)'`${EXEEXT} ; \
|
||||
done
|
||||
for file in ${INSTALLABLE_SCRIPTS}; do \
|
||||
rm -f $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'` ; \
|
||||
done)
|
||||
done
|
||||
if [ -d $(DESTDIR)${archlibdir} ]; then \
|
||||
(cd $(DESTDIR)${archlibdir} && \
|
||||
rm -f ${UTILITIES} ${INSTALLABLES} ${SCRIPTS} ${INSTALLABLE_SCRIPTS}) \
|
||||
(cd $(DESTDIR)${archlibdir} && rm -f ${UTILITIES} ${SCRIPTS}) \
|
||||
fi
|
||||
|
||||
mostlyclean:
|
||||
|
|
|
@ -229,6 +229,8 @@ lisp2 = \
|
|||
$(lispsource)language/greek.elc \
|
||||
$(lispsource)language/hebrew.elc \
|
||||
$(lispsource)language/japanese.elc \
|
||||
$(lispsource)international/cp51932.el \
|
||||
$(lispsource)international/eucjp-ms.el \
|
||||
$(lispsource)language/korean.elc \
|
||||
$(lispsource)language/lao.elc \
|
||||
$(lispsource)language/cham.elc \
|
||||
|
|
203
lisp/ChangeLog
203
lisp/ChangeLog
|
@ -1,5 +1,206 @@
|
|||
2012-10-30 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* emacs-lisp/cl-extra.el (cl-mapc): Add autoload cookie. Doc fix.
|
||||
|
||||
* emacs-lisp/cl.el (letf): Doc fix. (Bug#12760)
|
||||
|
||||
2012-10-29 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* isearch.el (isearch-other-meta-char): Ensure that a reprocessed
|
||||
function key is stored in a keyboard macro (Bug#4894).
|
||||
|
||||
* thingatpt.el (number-at-point): Apply a thing-at-point property.
|
||||
|
||||
2012-10-29 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* vc/diff-mode.el (diff-context->unified): Don't get confused by "hunk
|
||||
header comments".
|
||||
(diff-unified->context, diff-context->unified)
|
||||
(diff-reverse-direction, diff-fixup-modifs): Use `use-region-p'.
|
||||
|
||||
* emacs-lisp/cl.el (letf): Add missing indent rules (bug#12759).
|
||||
|
||||
* files.el (find-alternate-file): Only ask one question (bug#12487).
|
||||
|
||||
2012-10-29 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* vc/vc-hooks.el (vc-file-clearprops): Kill vc-parent-buffer.
|
||||
Suggested by Dan Nicolaescu (Bug#6326).
|
||||
|
||||
* info.el (Info-complete-menu-item): Avoid duplicates (Bug#12705).
|
||||
|
||||
* startup.el (fancy-about-screen): Don't message (Bug#12680).
|
||||
|
||||
* thingatpt.el (thing-at-point): Doc fix (Bug#12691).
|
||||
|
||||
* imenu.el (imenu): Inhibit push-mark message (Bug#12726).
|
||||
|
||||
* face-remap.el (face-remap-add-relative): Handle the case where a
|
||||
face-remapping-alist entry is a cons cell (Bug#12762).
|
||||
|
||||
2012-10-29 Kevin Ryde <user42@zip.com.au>
|
||||
|
||||
* woman.el (woman-parse-numeric-value): Handle picas correctly
|
||||
(Bug#12639).
|
||||
|
||||
2012-10-29 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* emacs-lisp/cl.el (defsetf): Doc fix.
|
||||
|
||||
2012-10-29 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* progmodes/sh-script.el (sh-font-lock-paren): Also put punctuation
|
||||
syntax to the matching opener, if any (bug#12547).
|
||||
(sh-smie-sh-forward-token, sh-smie-sh-backward-token): Recognize this
|
||||
matching open as a "case-(".
|
||||
(sh-smie-rc-grammar): Add a corresponding rule for it.
|
||||
|
||||
2012-10-28 Daniel Hackney <dan@haxney.org>
|
||||
|
||||
* emacs-lisp/package.el (package-generate-autoloads): Kill buffer
|
||||
"PKGNAME-autoloads.el" in case we created it.
|
||||
|
||||
2012-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* minibuffer.el (completion--sifn-requote): Rewrite to handle things
|
||||
like Tramp's "/foo:~bar//baz" -> "/scpc:foo:/baz" mapping (bug#11714).
|
||||
(completion--twq-all): Disable too-strict assertions.
|
||||
|
||||
* tmm.el (tmm-prompt): Use map-keymap (bug#12744).
|
||||
|
||||
2012-10-27 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* profiler.el (profiler-report-make-entry-part): Fix help-echo
|
||||
text to match the real keybindings.
|
||||
|
||||
2012-10-27 Juri Linkov <juri@jurta.org>
|
||||
|
||||
* wdired.el (wdired-keep-marker-rename): New defcustom.
|
||||
(wdired-do-renames): Use it instead of `dired-keep-marker-rename'.
|
||||
(Bug#11795)
|
||||
|
||||
* dired.el (dired-keep-marker-rename): Add reference to
|
||||
`wdired-keep-marker-rename' in the docstring.
|
||||
Add default character value ?R to display initially in
|
||||
Customization UI instead of ?@.
|
||||
|
||||
2012-10-27 Martin Rudalics <rudalics@gmx.at>
|
||||
|
||||
* window.el (display-buffer): In doc-string describe
|
||||
window-height and window-width alist entries.
|
||||
|
||||
* time.el (display-time-world): Restore fit-window-to-buffer
|
||||
behavior.
|
||||
|
||||
2012-10-27 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* subr.el (insert-buffer-substring-as-yank): Doc fix.
|
||||
|
||||
2012-10-26 Jambunathan K <kjambunathan@gmail.com>
|
||||
|
||||
* minibuffer.el (completion-category-overrides): New completion
|
||||
category `bookmark' (bug#11131).
|
||||
|
||||
2012-10-26 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* emacs-lisp/advice.el (ad-assemble-advised-definition):
|
||||
Silence bogus compiler warnings for ad-do-it.
|
||||
|
||||
* bookmark.el (bookmark-completing-read): Set the completion category
|
||||
to `bookmark' (bug#11131).
|
||||
|
||||
2012-10-26 Bastien <bzg@altern.org>
|
||||
Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* face-remap.el: Use lexical-binding.
|
||||
(text-scale-adjust): Improve docstring. Use itself for the temporary
|
||||
overlay-map bindings, so as to repeat the "Use..." message each time.
|
||||
|
||||
2012-10-26 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* emacs-lisp/macroexp.el (macroexp--expand-all):
|
||||
Obey byte-compile-warning-enabled-p (bug#12486).
|
||||
|
||||
* vc/diff-mode.el (diff-end-of-hunk): Also skip potential "no LF at eol".
|
||||
(diff-refine-hunk): Similarly, handle the "no LF at eol" (bug#12584).
|
||||
|
||||
2012-10-26 Martin Rudalics <rudalics@gmx.at>
|
||||
|
||||
* mouse.el (mouse-drag-line): Move last form into preceding when
|
||||
clause (Bug#12731).
|
||||
|
||||
* help.el (resize-temp-buffer-window): Fix doc-string.
|
||||
|
||||
2012-10-25 David Engster <deng@randomsample.de>
|
||||
|
||||
* emacs-lisp/eieio.el (eieio-update-lisp-imenu-expression):
|
||||
Remove. This feature is already integrated in imenu.
|
||||
|
||||
* emacs-lisp/eieio-opt.el: Remove require for `button' since it is
|
||||
always loaded. Require `speedbar' unconditionally.
|
||||
|
||||
2012-10-25 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* dired.el (dired-get-marked-files): Allow ! on . and .. (bug#12725).
|
||||
|
||||
* minibuffer.el (minibuffer-force-complete): Fix thinko.
|
||||
|
||||
* net/ldap.el (ldap-search-internal): The official ldif format starts
|
||||
with a "version: 1" header (bug#12724).
|
||||
|
||||
* emacs-lisp/package.el (package-installed-p): Warn if not ready
|
||||
(bug#12721).
|
||||
|
||||
2012-10-25 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* emacs-lisp/cl-macs.el (cl-progv): Doc fix.
|
||||
|
||||
2012-10-24 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* minibuffer.el (minibuffer-force-complete): Use one more marker
|
||||
for the temporary-overlay-map command (bug#12619).
|
||||
|
||||
2012-10-24 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* time.el (display-time-world-mode): Derive from special-mode.
|
||||
(display-time-world): Use display-buffer (Bug#12708).
|
||||
(display-time-world-mode-map): Variable deleted.
|
||||
(display-time-world-display): Wrap the final delete-char inside
|
||||
inhibit-read-only.
|
||||
|
||||
2012-10-24 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* dired.el (dired-mark, dired-unmark, dired-flag-file-deletion):
|
||||
Doc fix.
|
||||
|
||||
* emacs-lisp/easymenu.el (easy-menu-define): Doc fix (Bug#12628).
|
||||
|
||||
2012-10-24 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* minibuffer.el (completion--all-sorted-completions-location): New var.
|
||||
(completion--cache-all-sorted-completions)
|
||||
(completion--flush-all-sorted-completions): Use it.
|
||||
(completion-in-region, completion-in-region--postch)
|
||||
(completion-at-point, completion-help-at-point): Use markers in
|
||||
completion-in-region--data (bug#12619).
|
||||
|
||||
2012-10-23 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* progmodes/compile.el (compilation-start): Try to handle common
|
||||
quoting of `cd' argument (bug#12640).
|
||||
|
||||
* vc/diff-mode.el (diff-hunk): `save-excursion' while refining
|
||||
(bug#12671).
|
||||
|
||||
2012-10-23 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* progmodes/gud.el (gud-menu-map):
|
||||
Check gdb-active-process is bound. (Bug#12358)
|
||||
|
||||
2012-10-23 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* repeat.el (repeat): Set real-this-command (bug#12232).
|
||||
|
||||
* htmlfontify.el (hfy-post-html-hook):
|
||||
* filesets.el (filesets-cache-fill-content-hook):
|
||||
* arc-mode.el (archive-extract-hook):
|
||||
|
@ -146,7 +347,7 @@
|
|||
Recover input meta mode when the new coding system doesn not use 8-bit.
|
||||
Supply TERMINAL arg to set-input-meta-mode.
|
||||
|
||||
2012-10-17 Michael Heerdegen <michael_heerdegen@web.de> (tiny change)
|
||||
2012-10-17 Michael Heerdegen <michael_heerdegen@web.de>
|
||||
|
||||
* wdired.el (wdired-old-marks): New variable.
|
||||
(wdired-change-to-wdired-mode): Locally set wdired-old-marks.
|
||||
|
|
|
@ -433,7 +433,11 @@ the empty string."
|
|||
": ")))
|
||||
(str
|
||||
(completing-read prompt
|
||||
bookmark-alist
|
||||
(lambda (string pred action)
|
||||
(if (eq action 'metadata)
|
||||
'(metadata (category . bookmark))
|
||||
(complete-with-action
|
||||
action bookmark-alist string pred)))
|
||||
nil
|
||||
0
|
||||
nil
|
||||
|
|
|
@ -1,3 +1,36 @@
|
|||
2012-10-25 David Engster <deng@randomsample.de>
|
||||
|
||||
* semantic/analyze.el (semantic-analyze-dereference-alias): New
|
||||
function to dereference aliases.
|
||||
(semantic-analyze-current-context-default): Use it.
|
||||
|
||||
* semantic/grammar.el (semantic-grammar-create-package):
|
||||
* srecode/compile.el (srecode-compile-templates): Throw a proper
|
||||
error if semantic-mode is not enabled (bug#9968).
|
||||
|
||||
Compiler warning fixes:
|
||||
|
||||
* semantic.el (semantic-elapsed-time): Make it a defsubst.
|
||||
|
||||
* srecode/dictionary.el (srecode-adebug-dictionary): Remove
|
||||
require for `semantic'.
|
||||
|
||||
* srecode/map.el:
|
||||
* srecode/insert.el: Declare functions from `data-debug'.
|
||||
|
||||
* semantic/grammar.el: Require `help-fns'. Declare functions from
|
||||
`eldoc', which is required in function body.
|
||||
|
||||
* srecode/java.el:
|
||||
* semantic/texi.el:
|
||||
* semantic/grammar-wy.el:
|
||||
* semantic/db-file.el:
|
||||
* semantic/db-el.el:
|
||||
* semantic/chart.el: Fix requires.
|
||||
|
||||
* ede/locate.el: Remove useless requires. Declare functions
|
||||
instead and require in functions when needed.
|
||||
|
||||
2012-10-23 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* semantic/db-file.el (semanticdb-save-database-functions):
|
||||
|
|
|
@ -49,13 +49,7 @@
|
|||
;; when it is available.
|
||||
|
||||
(require 'ede)
|
||||
(eval-when-compile (require 'data-debug)
|
||||
(require 'eieio-datadebug)
|
||||
(require 'cedet-global)
|
||||
(require 'cedet-idutils)
|
||||
(require 'cedet-cscope))
|
||||
|
||||
(require 'locate)
|
||||
(eval-when-compile (require 'locate))
|
||||
|
||||
;;; Code:
|
||||
(defcustom ede-locate-setup-options
|
||||
|
@ -214,6 +208,12 @@ that created this EDE locate object."
|
|||
|
||||
;;; GLOBAL
|
||||
;;
|
||||
|
||||
(declare-function cedet-gnu-global-version-check "cedet-global")
|
||||
(declare-function cedet-gnu-global-root "cedet-global")
|
||||
(declare-function cedet-gnu-global-expand-filename "cedet-global")
|
||||
(declare-function cedet-gnu-global-create/update-database "cedet-global")
|
||||
|
||||
(defclass ede-locate-global (ede-locate-base)
|
||||
()
|
||||
"EDE Locator using GNU Global.
|
||||
|
@ -260,6 +260,12 @@ that created this EDE locate object."
|
|||
|
||||
;;; IDUTILS
|
||||
;;
|
||||
|
||||
(declare-function cedet-idutils-version-check "cedet-idutils")
|
||||
(declare-function cedet-idutils-support-for-directory "cedet-idutils")
|
||||
(declare-function cedet-idutils-expand-filename "cedet-idutils")
|
||||
(declare-function cedet-idutils-create/update-database "cedet-idutils")
|
||||
|
||||
(defclass ede-locate-idutils (ede-locate-base)
|
||||
()
|
||||
"EDE Locator using IDUtils.
|
||||
|
@ -303,6 +309,12 @@ that created this EDE locate object."
|
|||
|
||||
;;; CSCOPE
|
||||
;;
|
||||
|
||||
(declare-function cedet-cscope-version-check "cedet-scope")
|
||||
(declare-function cedet-cscope-support-for-directory "cedet-scope")
|
||||
(declare-function cedet-cscope-expand-filename "cedet-cscope")
|
||||
(declare-function cedet-cscope-create/update-database "cedet-cscope")
|
||||
|
||||
(defclass ede-locate-cscope (ede-locate-base)
|
||||
()
|
||||
"EDE Locator using Cscope.
|
||||
|
@ -315,6 +327,7 @@ file name searching variable `cedet-cscope-file-command'.")
|
|||
;; Get ourselves initialized.
|
||||
(call-next-method)
|
||||
;; Do the checks.
|
||||
(require 'cedet-cscope)
|
||||
(cedet-cscope-version-check)
|
||||
(when (not (cedet-cscope-support-for-directory (oref loc root)))
|
||||
(error "Cannot use Cscope in %s"
|
||||
|
@ -324,6 +337,7 @@ file name searching variable `cedet-cscope-file-command'.")
|
|||
(defmethod ede-locate-ok-in-project :static ((loc ede-locate-cscope)
|
||||
root)
|
||||
"Is it ok to use this project type under ROOT."
|
||||
(require 'cedet-cscope)
|
||||
(cedet-cscope-version-check)
|
||||
(when (cedet-cscope-support-for-directory root)
|
||||
root))
|
||||
|
@ -334,11 +348,13 @@ file name searching variable `cedet-cscope-file-command'.")
|
|||
Searches are done under the current root of the EDE project
|
||||
that created this EDE locate object."
|
||||
(let ((default-directory (oref loc root)))
|
||||
(require 'cedet-cscope)
|
||||
(cedet-cscope-expand-filename filesubstring)))
|
||||
|
||||
(defmethod ede-locate-create/update-root-database :STATIC
|
||||
((loc ede-locate-cscope) root)
|
||||
"Create or update the GNU Global database for the current project."
|
||||
(require 'cedet-cscope)
|
||||
(cedet-cscope-create/update-database root))
|
||||
|
||||
(provide 'ede/locate)
|
||||
|
|
|
@ -382,7 +382,7 @@ to use Semantic, and `semantic-init-hook' is run."
|
|||
"When non-nil, activate the interactive parsing debugger.
|
||||
Do not set this yourself. Call `semantic-debug'.")
|
||||
|
||||
(defun semantic-elapsed-time (start end)
|
||||
(defsubst semantic-elapsed-time (start end)
|
||||
"Copied from elp.el. Was `elp-elapsed-time'.
|
||||
Arguments START and END bound the time being calculated."
|
||||
(float-time (time-subtract end start)))
|
||||
|
|
|
@ -527,7 +527,7 @@ Returns an object based on symbol `semantic-analyze-context'."
|
|||
(function nil)
|
||||
(fntag nil)
|
||||
arg fntagend argtag
|
||||
assign asstag
|
||||
assign asstag newseq
|
||||
)
|
||||
|
||||
;; Pattern for Analysis:
|
||||
|
@ -601,16 +601,26 @@ Returns an object based on symbol `semantic-analyze-context'."
|
|||
|
||||
(if debug-on-error
|
||||
(catch 'unfindable
|
||||
;; If debug on error is on, allow debugging in this fcn.
|
||||
(setq prefix (semantic-analyze-find-tag-sequence
|
||||
prefix scope 'prefixtypes 'unfindable)))
|
||||
prefix scope 'prefixtypes 'unfindable))
|
||||
;; If there's an alias, dereference it and analyze
|
||||
;; sequence again.
|
||||
(when (setq newseq
|
||||
(semantic-analyze-dereference-alias prefix))
|
||||
(setq prefix (semantic-analyze-find-tag-sequence
|
||||
newseq scope 'prefixtypes 'unfindable))))
|
||||
;; Debug on error is off. Capture errors and move on
|
||||
(condition-case err
|
||||
;; NOTE: This line is duplicated in
|
||||
;; semantic-analyzer-debug-global-symbol
|
||||
;; You will need to update both places.
|
||||
(setq prefix (semantic-analyze-find-tag-sequence
|
||||
prefix scope 'prefixtypes))
|
||||
(progn
|
||||
(setq prefix (semantic-analyze-find-tag-sequence
|
||||
prefix scope 'prefixtypes))
|
||||
(when (setq newseq
|
||||
(semantic-analyze-dereference-alias prefix))
|
||||
(setq prefix (semantic-analyze-find-tag-sequence
|
||||
newseq scope 'prefixtypes))))
|
||||
(error (semantic-analyze-push-error err))))
|
||||
)
|
||||
|
||||
|
@ -679,6 +689,20 @@ Returns an object based on symbol `semantic-analyze-context'."
|
|||
;; Return our context.
|
||||
context-return))
|
||||
|
||||
(defun semantic-analyze-dereference-alias (taglist)
|
||||
"Dereference first tag in TAGLIST if it is an alias.
|
||||
Returns a sequence of names which can then be fed again into
|
||||
`semantic-analyze-find-tag-sequence'.
|
||||
Returns nil if no alias was found."
|
||||
(when (eq (semantic-tag-get-attribute (car taglist) :kind) 'alias)
|
||||
(let ((tagname
|
||||
(semantic-analyze-split-name
|
||||
(semantic-tag-name
|
||||
(car (semantic-tag-get-attribute (car taglist) :members))))))
|
||||
(append (if (listp tagname)
|
||||
tagname
|
||||
(list tagname))
|
||||
(cdr taglist)))))
|
||||
|
||||
(defun semantic-adebug-analyze (&optional ctxt)
|
||||
"Perform `semantic-analyze-current-context'.
|
||||
|
|
|
@ -26,12 +26,9 @@
|
|||
;; the output of the semantic parser.
|
||||
;;
|
||||
|
||||
(require 'semantic)
|
||||
(require 'chart)
|
||||
(require 'semantic/db)
|
||||
(require 'semantic/tag)
|
||||
|
||||
(eval-when-compile (require 'semantic/find))
|
||||
(require 'semantic/find)
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
|
|
@ -31,12 +31,7 @@
|
|||
;;
|
||||
|
||||
(require 'semantic/db)
|
||||
|
||||
(eval-when-compile
|
||||
;; For generic function searching.
|
||||
(require 'eieio)
|
||||
(require 'eieio-opt)
|
||||
(require 'eieio-base))
|
||||
(require 'eieio-opt)
|
||||
|
||||
(declare-function semantic-elisp-desymbolify "semantic/bovine/el")
|
||||
(declare-function semantic-tag-similar-p "semantic/tag-ls")
|
||||
|
|
|
@ -25,12 +25,9 @@
|
|||
;; A set of semanticdb classes for persistently saving caches on disk.
|
||||
;;
|
||||
|
||||
(require 'semantic)
|
||||
(require 'semantic/db)
|
||||
(require 'cedet-files)
|
||||
|
||||
(eval-when-compile
|
||||
(require 'data-debug))
|
||||
(require 'data-debug)
|
||||
|
||||
(defvar semanticdb-file-version semantic-version
|
||||
"Version of semanticdb we are writing files to disk with.")
|
||||
|
|
|
@ -23,9 +23,8 @@
|
|||
|
||||
;;; Code:
|
||||
|
||||
(require 'semantic/lex)
|
||||
(eval-when-compile (require 'semantic/bovine))
|
||||
|
||||
(require 'semantic)
|
||||
|
||||
;;; Prologue
|
||||
;;
|
||||
(defvar semantic-grammar-lex-c-char-re)
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
(require 'semantic/format)
|
||||
(require 'semantic/grammar-wy)
|
||||
(require 'semantic/idle)
|
||||
(require 'help-fns)
|
||||
|
||||
(declare-function semantic-momentary-highlight-tag "semantic/decorate")
|
||||
(declare-function semantic-analyze-context "semantic/analyze")
|
||||
|
@ -47,6 +48,9 @@
|
|||
(require 'semantic/find)
|
||||
(require 'semantic/db))
|
||||
|
||||
(declare-function semantic-grammar-wy--install-parser
|
||||
"semantic/gram-wy-fallback")
|
||||
|
||||
|
||||
;;;;
|
||||
;;;; Set up lexer
|
||||
|
@ -825,6 +829,8 @@ Does nothing if the Lisp code seems up to date.
|
|||
If optional argument FORCE is non-nil, unconditionally re-generate the
|
||||
Lisp code."
|
||||
(interactive "P")
|
||||
(unless (semantic-active-p)
|
||||
(error "You have to activate semantic-mode to create a package."))
|
||||
(setq force (or force current-prefix-arg))
|
||||
(semantic-fetch-tags)
|
||||
(let* (
|
||||
|
@ -1636,6 +1642,12 @@ Select the buffer containing the tag's definition, and move point there."
|
|||
)
|
||||
"Association of syntax elements, and the corresponding help.")
|
||||
|
||||
(declare-function eldoc-function-argstring "eldoc")
|
||||
(declare-function eldoc-docstring-format-sym-doc "eldoc")
|
||||
(declare-function eldoc-last-data-store "eldoc")
|
||||
(declare-function eldoc-get-fnsym-args-string "eldoc")
|
||||
(declare-function eldoc-get-var-docstring "eldoc")
|
||||
|
||||
(defun semantic-grammar-eldoc-get-macro-docstring (macro expander)
|
||||
"Return a one-line docstring for the given grammar MACRO.
|
||||
EXPANDER is the name of the function that expands MACRO."
|
||||
|
|
|
@ -26,17 +26,11 @@
|
|||
;; parser plug-in is the function `semantic-texi-parse-region' that
|
||||
;; overrides `semantic-parse-region'.
|
||||
|
||||
(require 'semantic)
|
||||
(require 'semantic/db-find)
|
||||
(require 'semantic/format)
|
||||
(require 'semantic/ctxt)
|
||||
(require 'texinfo)
|
||||
|
||||
(eval-when-compile
|
||||
(require 'semantic/db)
|
||||
(require 'semantic/db-find)
|
||||
(require 'semantic/ctxt)
|
||||
(require 'semantic/find)
|
||||
(require 'semantic/doc))
|
||||
|
||||
(defvar ede-minor-mode)
|
||||
(declare-function lookup-words "ispell")
|
||||
(declare-function ede-current-project "ede")
|
||||
|
|
|
@ -199,6 +199,8 @@ Arguments ESCAPE-START and ESCAPE-END are the current escape sequences in use."
|
|||
(defun srecode-compile-templates ()
|
||||
"Compile a semantic recode template file into a mode-local variable."
|
||||
(interactive)
|
||||
(unless (semantic-active-p)
|
||||
(error "You have to activate semantic-mode to compile SRecode templates."))
|
||||
(require 'srecode/insert)
|
||||
(message "Compiling template %s..."
|
||||
(file-name-nondirectory (buffer-file-name)))
|
||||
|
|
|
@ -604,7 +604,6 @@ STATE is the current compiler state."
|
|||
"Run data-debug on this mode's dictionary."
|
||||
(interactive)
|
||||
(require 'eieio-datadebug)
|
||||
(require 'semantic)
|
||||
(require 'srecode/find)
|
||||
(let* ((modesym major-mode)
|
||||
(start (current-time))
|
||||
|
|
|
@ -195,6 +195,10 @@ Buffer based features related to change hooks is handled one level up."
|
|||
;; area. Return value is not important.
|
||||
))
|
||||
|
||||
(declare-function data-debug-new-buffer "data-debug")
|
||||
(declare-function data-debug-insert-stuff-list "data-debug")
|
||||
(declare-function data-debug-insert-thing dictionary "data-debug")
|
||||
|
||||
(defun srecode-insert-show-error-report (dictionary format &rest args)
|
||||
"Display an error report based on DICTIONARY, FORMAT and ARGS.
|
||||
This is intended to diagnose problems with failed template
|
||||
|
|
|
@ -26,10 +26,7 @@
|
|||
;;; Code:
|
||||
|
||||
(require 'srecode/dictionary)
|
||||
(require 'semantic/tag)
|
||||
|
||||
(eval-when-compile
|
||||
(require 'semantic/find))
|
||||
(require 'semantic/find)
|
||||
|
||||
;;;###autoload
|
||||
(defun srecode-semantic-handle-:java (dict)
|
||||
|
|
|
@ -215,7 +215,8 @@ Optional argument RESET forces a reset of the current map."
|
|||
;; Eventually, I want to return many maps to search through.
|
||||
(list srecode-current-map)))
|
||||
|
||||
(eval-when-compile (require 'data-debug))
|
||||
(declare-function data-debug-new-buffer "data-debug")
|
||||
(declare-function data-debug-insert-stuff-list "data-debug")
|
||||
|
||||
(defun srecode-adebug-maps ()
|
||||
"Run ADEBUG on the output of `srecode-get-maps'."
|
||||
|
|
|
@ -137,9 +137,12 @@ A value of t means move to first file."
|
|||
"Controls marking of renamed files.
|
||||
If t, files keep their previous marks when they are renamed.
|
||||
If a character, renamed files (whether previously marked or not)
|
||||
are afterward marked with that character."
|
||||
are afterward marked with that character.
|
||||
This option affects only files renamed by `dired-do-rename' and
|
||||
`dired-do-rename-regexp'. See `wdired-keep-marker-rename'
|
||||
if you want to do the same for files renamed in WDired mode."
|
||||
:type '(choice (const :tag "Keep" t)
|
||||
(character :tag "Mark"))
|
||||
(character :tag "Mark" :value ?R))
|
||||
:group 'dired-mark)
|
||||
|
||||
(defcustom dired-keep-marker-copy ?C
|
||||
|
@ -620,7 +623,7 @@ Don't use that together with FILTER."
|
|||
(let* ((all-of-them
|
||||
(save-excursion
|
||||
(dired-map-over-marks
|
||||
(dired-get-filename localp)
|
||||
(dired-get-filename localp 'no-error-if-not-filep)
|
||||
arg nil distinguish-one-marked)))
|
||||
result)
|
||||
(if (not filter)
|
||||
|
@ -3107,10 +3110,11 @@ argument or confirmation)."
|
|||
(forward-line 1))))
|
||||
|
||||
(defun dired-mark (arg)
|
||||
"Mark the current (or next ARG) files.
|
||||
"Mark the file at point in the Dired buffer.
|
||||
If the region is active, mark all files in the region.
|
||||
Otherwise, with a prefix arg, mark files on the next ARG lines.
|
||||
|
||||
If on a subdir headerline, mark all its files except `.' and `..'.
|
||||
If the region is active in Transient Mark mode, mark all files
|
||||
in the active region.
|
||||
|
||||
Use \\[dired-unmark-all-files] to remove all marks
|
||||
and \\[dired-unmark] on a subdir to remove the marks in
|
||||
|
@ -3136,7 +3140,10 @@ this subdir."
|
|||
(function (lambda () (delete-char 1) (insert dired-marker-char))))))))
|
||||
|
||||
(defun dired-unmark (arg)
|
||||
"Unmark the current (or next ARG) files.
|
||||
"Unmark the file at point in the Dired buffer.
|
||||
If the region is active, unmark all files in the region.
|
||||
Otherwise, with a prefix arg, unmark files on the next ARG lines.
|
||||
|
||||
If looking at a subdir, unmark all its files except `.' and `..'.
|
||||
If the region is active in Transient Mark mode, unmark all files
|
||||
in the active region."
|
||||
|
@ -3146,7 +3153,9 @@ in the active region."
|
|||
|
||||
(defun dired-flag-file-deletion (arg)
|
||||
"In Dired, flag the current line's file for deletion.
|
||||
With prefix arg, repeat over several lines.
|
||||
If the region is active, flag all files in the region.
|
||||
Otherwise, with a prefix arg, flag files on the next ARG lines.
|
||||
|
||||
If on a subdir headerline, flag all its files except `.' and `..'.
|
||||
If the region is active in Transient Mark mode, flag all files
|
||||
in the active region."
|
||||
|
|
|
@ -2897,8 +2897,11 @@ definition, INTERACTIVE if non-nil is the interactive form to be used,
|
|||
ORIG is a form that calls the body of the original unadvised function,
|
||||
and BEFORES, AROUNDS and AFTERS are the lists of advices with which ORIG
|
||||
should be modified. The assembled function will be returned."
|
||||
|
||||
(let (before-forms around-form around-form-protected after-forms definition)
|
||||
;; The ad-do-it call should always have the right number of arguments,
|
||||
;; but the compiler might signal a bogus warning because it checks the call
|
||||
;; against the advertised calling convention.
|
||||
(let ((around-form `(setq ad-return-value (with-no-warnings ,orig)))
|
||||
before-forms around-form-protected after-forms definition)
|
||||
(dolist (advice befores)
|
||||
(cond ((and (ad-advice-protected advice)
|
||||
before-forms)
|
||||
|
@ -2911,7 +2914,6 @@ should be modified. The assembled function will be returned."
|
|||
(append before-forms
|
||||
(ad-body-forms (ad-advice-definition advice)))))))
|
||||
|
||||
(setq around-form `(setq ad-return-value ,orig))
|
||||
(dolist (advice (reverse arounds))
|
||||
;; If any of the around advices is protected then we
|
||||
;; protect the complete around advice onion:
|
||||
|
|
|
@ -286,7 +286,7 @@ DEFUNINFO is the return value of `checkdoc-defun-info'. ENDPOINT is the
|
|||
location of end of the documentation string.")
|
||||
|
||||
(define-obsolete-variable-alias 'checkdoc-comment-style-hooks
|
||||
checkdoc-comment-style-functions "24.3")
|
||||
'checkdoc-comment-style-functions "24.3")
|
||||
(defvar checkdoc-comment-style-functions nil
|
||||
"Hook run after the standard comment style check is completed.
|
||||
Must return nil if no errors are found, or a string describing the
|
||||
|
|
|
@ -149,8 +149,9 @@ the elements themselves.
|
|||
(setq cl-list (cdr cl-list)))
|
||||
(nreverse cl-res))))
|
||||
|
||||
;;;###autoload
|
||||
(defun cl-mapc (cl-func cl-seq &rest cl-rest)
|
||||
"Like `mapcar', but does not accumulate values returned by the function.
|
||||
"Like `cl-mapcar', but does not accumulate values returned by the function.
|
||||
\n(fn FUNCTION SEQUENCE...)"
|
||||
(if cl-rest
|
||||
(progn (apply 'cl-map nil cl-func cl-seq cl-rest)
|
||||
|
|
|
@ -10,8 +10,8 @@
|
|||
;;;;;; cl-truncate cl-ceiling cl-floor cl-isqrt cl-lcm cl-gcd cl--set-frame-visible-p
|
||||
;;;;;; cl--map-overlays cl--map-intervals cl--map-keymap-recursively
|
||||
;;;;;; cl-notevery cl-notany cl-every cl-some cl-mapcon cl-mapcan
|
||||
;;;;;; cl-mapl cl-maplist cl-map cl--mapcar-many cl-equalp cl-coerce)
|
||||
;;;;;; "cl-extra" "cl-extra.el" "1572ae52fa4fbd9c4bf89b49a068a865")
|
||||
;;;;;; cl-mapl cl-mapc cl-maplist cl-map cl--mapcar-many cl-equalp
|
||||
;;;;;; cl-coerce) "cl-extra" "cl-extra.el" "7d7f65d8a05e954a919fe2555b68fb05")
|
||||
;;; Generated autoloads from cl-extra.el
|
||||
|
||||
(autoload 'cl-coerce "cl-extra" "\
|
||||
|
@ -46,6 +46,11 @@ the elements themselves.
|
|||
|
||||
\(fn FUNCTION LIST...)" nil nil)
|
||||
|
||||
(autoload 'cl-mapc "cl-extra" "\
|
||||
Like `cl-mapcar', but does not accumulate values returned by the function.
|
||||
|
||||
\(fn FUNCTION SEQUENCE...)" nil nil)
|
||||
|
||||
(autoload 'cl-mapl "cl-extra" "\
|
||||
Like `cl-maplist', but does not accumulate values returned by the function.
|
||||
|
||||
|
@ -260,7 +265,7 @@ Remove from SYMBOL's plist the property PROPNAME and its value.
|
|||
;;;;;; cl-typecase cl-ecase cl-case cl-load-time-value cl-eval-when
|
||||
;;;;;; cl-destructuring-bind cl-function cl-defmacro cl-defun cl-gentemp
|
||||
;;;;;; cl-gensym cl--compiler-macro-cXXr cl--compiler-macro-list*)
|
||||
;;;;;; "cl-macs" "cl-macs.el" "885919e79dbcd11081cfb2e039b470c7")
|
||||
;;;;;; "cl-macs" "cl-macs.el" "366e9efa4e3e7a81b2253e503611b23a")
|
||||
;;; Generated autoloads from cl-macs.el
|
||||
|
||||
(autoload 'cl--compiler-macro-list* "cl-macs" "\
|
||||
|
@ -485,7 +490,7 @@ before assigning any symbols SYM to the corresponding values.
|
|||
Bind SYMBOLS to VALUES dynamically in BODY.
|
||||
The forms SYMBOLS and VALUES are evaluated, and must evaluate to lists.
|
||||
Each symbol in the first list is bound to the corresponding value in the
|
||||
second list (or made unbound if VALUES is shorter than SYMBOLS); then the
|
||||
second list (or to nil if VALUES is shorter than SYMBOLS); then the
|
||||
BODY forms are executed and their result is returned. This is much like
|
||||
a `let' form, except that the list of symbols can be computed at run-time.
|
||||
|
||||
|
|
|
@ -1603,7 +1603,7 @@ before assigning any symbols SYM to the corresponding values.
|
|||
"Bind SYMBOLS to VALUES dynamically in BODY.
|
||||
The forms SYMBOLS and VALUES are evaluated, and must evaluate to lists.
|
||||
Each symbol in the first list is bound to the corresponding value in the
|
||||
second list (or made unbound if VALUES is shorter than SYMBOLS); then the
|
||||
second list (or to nil if VALUES is shorter than SYMBOLS); then the
|
||||
BODY forms are executed and their result is returned. This is much like
|
||||
a `let' form, except that the list of symbols can be computed at run-time."
|
||||
(declare (indent 2) (debug (form form body)))
|
||||
|
|
|
@ -511,7 +511,10 @@ rather than relying on `lexical-binding'."
|
|||
|
||||
(defmacro letf (bindings &rest body)
|
||||
"Dynamically scoped let-style bindings for places.
|
||||
Like `cl-letf', but with some extra backward compatibility."
|
||||
For more details, see `cl-letf'. This macro behaves like that one
|
||||
in almost every respect (apart from details that relate to some
|
||||
deprecated usage of `symbol-function' in place forms)." ; bug#12760
|
||||
(declare (indent 1) (debug cl-letf))
|
||||
;; Like cl-letf, but with special handling of symbol-function.
|
||||
`(cl-letf ,(mapcar (lambda (x) (if (eq (car-safe (car x)) 'symbol-function)
|
||||
`((cl--symbol-function ,@(cdar x)) ,@(cdr x))
|
||||
|
@ -568,9 +571,9 @@ well for simple place forms. In the simple `defsetf' form, `setf's of
|
|||
the form (setf (NAME ARGS...) VAL) are transformed to function or macro
|
||||
calls of the form (FUNC ARGS... VAL). Example:
|
||||
|
||||
(cl-defsetf aref aset)
|
||||
(defsetf aref aset)
|
||||
|
||||
Alternate form: (cl-defsetf NAME ARGLIST (STORE) BODY...).
|
||||
Alternate form: (defsetf NAME ARGLIST (STORE) BODY...).
|
||||
Here, the above `setf' call is expanded by binding the argument forms ARGS
|
||||
according to ARGLIST, binding the value form VAL to STORE, then executing
|
||||
BODY, which must return a Lisp form that does the necessary `setf' operation.
|
||||
|
@ -578,7 +581,7 @@ Actually, ARGLIST and STORE may be bound to temporary variables which are
|
|||
introduced automatically to preserve proper execution order of the arguments.
|
||||
Example:
|
||||
|
||||
(cl-defsetf nth (n x) (v) `(setcar (nthcdr ,n ,x) ,v))
|
||||
(defsetf nth (n x) (v) `(setcar (nthcdr ,n ,x) ,v))
|
||||
|
||||
\(fn NAME [FUNC | ARGLIST (STORE) BODY...])"
|
||||
(declare (debug
|
||||
|
|
|
@ -44,110 +44,101 @@ menus, turn this variable off, otherwise it is probably better to keep it on.")
|
|||
|
||||
;;;###autoload
|
||||
(defmacro easy-menu-define (symbol maps doc menu)
|
||||
"Define a menu bar submenu in maps MAPS, according to MENU.
|
||||
"Define a pop-up menu and/or menu bar menu specified by MENU.
|
||||
If SYMBOL is non-nil, define SYMBOL as a function to pop up the
|
||||
submenu defined by MENU, with DOC as its doc string.
|
||||
|
||||
If SYMBOL is non-nil, store the menu keymap in the value of SYMBOL,
|
||||
and define SYMBOL as a function to pop up the menu, with DOC as its doc string.
|
||||
If SYMBOL is nil, just store the menu keymap into MAPS.
|
||||
MAPS, if non-nil, should be a keymap or a list of keymaps; add
|
||||
the submenu defined by MENU to the keymap or each of the keymaps,
|
||||
as a top-level menu bar item.
|
||||
|
||||
The first element of MENU must be a string. It is the menu bar item name.
|
||||
It may be followed by the following keyword argument pairs
|
||||
The first element of MENU must be a string. It is the menu bar
|
||||
item name. It may be followed by the following keyword argument
|
||||
pairs:
|
||||
|
||||
:filter FUNCTION
|
||||
:filter FUNCTION
|
||||
FUNCTION must be a function which, if called with one
|
||||
argument---the list of the other menu items---returns the
|
||||
items to actually display.
|
||||
|
||||
FUNCTION is a function with one argument, the rest of menu items.
|
||||
It returns the remaining items of the displayed menu.
|
||||
:visible INCLUDE
|
||||
INCLUDE is an expression. The menu is visible if the
|
||||
expression evaluates to a non-nil value. `:included' is an
|
||||
alias for `:visible'.
|
||||
|
||||
:visible INCLUDE
|
||||
:active ENABLE
|
||||
ENABLE is an expression. The menu is enabled for selection
|
||||
if the expression evaluates to a non-nil value. `:enable' is
|
||||
an alias for `:active'.
|
||||
|
||||
INCLUDE is an expression; this menu is only visible if this
|
||||
expression has a non-nil value. `:included' is an alias for `:visible'.
|
||||
The rest of the elements in MENU are menu items.
|
||||
A menu item can be a vector of three elements:
|
||||
|
||||
:active ENABLE
|
||||
|
||||
ENABLE is an expression; the menu is enabled for selection whenever
|
||||
this expression's value is non-nil. `:enable' is an alias for `:active'.
|
||||
|
||||
The rest of the elements in MENU, are menu items.
|
||||
|
||||
A menu item is usually a vector of three elements: [NAME CALLBACK ENABLE]
|
||||
[NAME CALLBACK ENABLE]
|
||||
|
||||
NAME is a string--the menu item name.
|
||||
|
||||
CALLBACK is a command to run when the item is chosen,
|
||||
or a list to evaluate when the item is chosen.
|
||||
CALLBACK is a command to run when the item is chosen, or an
|
||||
expression to evaluate when the item is chosen.
|
||||
|
||||
ENABLE is an expression; the item is enabled for selection
|
||||
whenever this expression's value is non-nil.
|
||||
ENABLE is an expression; the item is enabled for selection if the
|
||||
expression evaluates to a non-nil value.
|
||||
|
||||
Alternatively, a menu item may have the form:
|
||||
|
||||
[ NAME CALLBACK [ KEYWORD ARG ] ... ]
|
||||
[ NAME CALLBACK [ KEYWORD ARG ]... ]
|
||||
|
||||
Where KEYWORD is one of the symbols defined below.
|
||||
where NAME and CALLBACK have the same meanings as above, and each
|
||||
optional KEYWORD and ARG pair should be one of the following:
|
||||
|
||||
:keys KEYS
|
||||
:keys KEYS
|
||||
KEYS is a string; a keyboard equivalent to the menu item.
|
||||
This is normally not needed because keyboard equivalents are
|
||||
usually computed automatically. KEYS is expanded with
|
||||
`substitute-command-keys' before it is used.
|
||||
|
||||
KEYS is a string; a complex keyboard equivalent to this menu item.
|
||||
This is normally not needed because keyboard equivalents are usually
|
||||
computed automatically.
|
||||
KEYS is expanded with `substitute-command-keys' before it is used.
|
||||
:key-sequence KEYS
|
||||
KEYS is a hint for speeding up Emacs's first display of the
|
||||
menu. It should be nil if you know that the menu item has no
|
||||
keyboard equivalent; otherwise it should be a string or
|
||||
vector specifying a keyboard equivalent for the menu item.
|
||||
|
||||
:key-sequence KEYS
|
||||
:active ENABLE
|
||||
ENABLE is an expression; the item is enabled for selection
|
||||
whenever this expression's value is non-nil. `:enable' is an
|
||||
alias for `:active'.
|
||||
|
||||
KEYS is nil, a string or a vector; nil or a keyboard equivalent to this
|
||||
menu item.
|
||||
This is a hint that will considerably speed up Emacs's first display of
|
||||
a menu. Use `:key-sequence nil' when you know that this menu item has no
|
||||
keyboard equivalent.
|
||||
:visible INCLUDE
|
||||
INCLUDE is an expression; this item is only visible if this
|
||||
expression has a non-nil value. `:included' is an alias for
|
||||
`:visible'.
|
||||
|
||||
:active ENABLE
|
||||
:label FORM
|
||||
FORM is an expression that is dynamically evaluated and whose
|
||||
value serves as the menu item's label (the default is NAME).
|
||||
|
||||
ENABLE is an expression; the item is enabled for selection whenever
|
||||
this expression's value is non-nil. `:enable' is an alias for `:active'.
|
||||
:suffix FORM
|
||||
FORM is an expression that is dynamically evaluated and whose
|
||||
value is concatenated with the menu entry's label.
|
||||
|
||||
:visible INCLUDE
|
||||
:style STYLE
|
||||
STYLE is a symbol describing the type of menu item; it should
|
||||
be `toggle' (a checkbox), or `radio' (a radio button), or any
|
||||
other value (meaning an ordinary menu item).
|
||||
|
||||
INCLUDE is an expression; this item is only visible if this
|
||||
expression has a non-nil value. `:included' is an alias for `:visible'.
|
||||
:selected SELECTED
|
||||
SELECTED is an expression; the checkbox or radio button is
|
||||
selected whenever the expression's value is non-nil.
|
||||
|
||||
:label FORM
|
||||
:help HELP
|
||||
HELP is a string, the help to display for the menu item.
|
||||
|
||||
FORM is an expression that will be dynamically evaluated and whose
|
||||
value will be used for the menu entry's text label (the default is NAME).
|
||||
Alternatively, a menu item can be a string. Then that string
|
||||
appears in the menu as unselectable text. A string consisting
|
||||
solely of dashes is displayed as a menu separator.
|
||||
|
||||
:suffix FORM
|
||||
|
||||
FORM is an expression that will be dynamically evaluated and whose
|
||||
value will be concatenated to the menu entry's label.
|
||||
|
||||
:style STYLE
|
||||
|
||||
STYLE is a symbol describing the type of menu item. The following are
|
||||
defined:
|
||||
|
||||
toggle: A checkbox.
|
||||
Prepend the name with `(*) ' or `( ) ' depending on if selected or not.
|
||||
radio: A radio button.
|
||||
Prepend the name with `[X] ' or `[ ] ' depending on if selected or not.
|
||||
button: Surround the name with `[' and `]'. Use this for an item in the
|
||||
menu bar itself.
|
||||
anything else means an ordinary menu item.
|
||||
|
||||
:selected SELECTED
|
||||
|
||||
SELECTED is an expression; the checkbox or radio button is selected
|
||||
whenever this expression's value is non-nil.
|
||||
|
||||
:help HELP
|
||||
|
||||
HELP is a string, the help to display for the menu item.
|
||||
|
||||
A menu item can be a string. Then that string appears in the menu as
|
||||
unselectable text. A string consisting solely of hyphens is displayed
|
||||
as a solid horizontal line.
|
||||
|
||||
A menu item can be a list with the same format as MENU. This is a submenu."
|
||||
Alternatively, a menu item can be a list with the same format as
|
||||
MENU. This is a submenu."
|
||||
(declare (indent defun) (debug (symbolp body)))
|
||||
`(progn
|
||||
,(if symbol `(defvar ,symbol nil ,doc))
|
||||
|
|
|
@ -29,9 +29,9 @@
|
|||
;;
|
||||
|
||||
(require 'eieio)
|
||||
(require 'button)
|
||||
(require 'help-mode)
|
||||
(require 'find-func)
|
||||
(require 'speedbar)
|
||||
(require 'help-mode)
|
||||
|
||||
;;; Code:
|
||||
;;;###autoload
|
||||
|
@ -710,10 +710,6 @@ Arguments UNUSED are not used."
|
|||
|
||||
;;; SPEEDBAR SUPPORT
|
||||
;;
|
||||
(eval-when-compile
|
||||
(condition-case nil
|
||||
(require 'speedbar)
|
||||
(error (message "Error loading speedbar... ignored"))))
|
||||
|
||||
(defvar eieio-class-speedbar-key-map nil
|
||||
"Keymap used when working with a project in speedbar.")
|
||||
|
|
|
@ -3049,29 +3049,6 @@ Optional argument NOESCAPE is passed to `prin1-to-string' when appropriate."
|
|||
)
|
||||
)
|
||||
|
||||
;;; Interfacing with imenu in emacs lisp mode
|
||||
;; (Only if the expression is defined)
|
||||
;;
|
||||
(if (eval-when-compile (boundp 'lisp-imenu-generic-expression))
|
||||
(progn
|
||||
|
||||
(defun eieio-update-lisp-imenu-expression ()
|
||||
"Examine `lisp-imenu-generic-expression' and modify it to find `defmethod'."
|
||||
(let ((exp lisp-imenu-generic-expression))
|
||||
(while exp
|
||||
;; it's of the form '( ( title expr indx ) ... )
|
||||
(let* ((subcar (cdr (car exp)))
|
||||
(substr (car subcar)))
|
||||
(if (and (not (string-match "|method\\\\" substr))
|
||||
(string-match "|advice\\\\" substr))
|
||||
(setcar subcar
|
||||
(replace-match "|advice\\|method\\" t t substr 0))))
|
||||
(setq exp (cdr exp)))))
|
||||
|
||||
(eieio-update-lisp-imenu-expression)
|
||||
|
||||
))
|
||||
|
||||
;;; Autoloading some external symbols, and hooking into the help system
|
||||
;;
|
||||
|
||||
|
|
|
@ -154,11 +154,16 @@ Assumes the caller has bound `macroexpand-all-environment'."
|
|||
(if (and (not (eq form new-form)) ;It was a macro call.
|
||||
(car-safe form)
|
||||
(symbolp (car form))
|
||||
(get (car form) 'byte-obsolete-info))
|
||||
(get (car form) 'byte-obsolete-info)
|
||||
(or (not (fboundp 'byte-compile-warning-enabled-p))
|
||||
(byte-compile-warning-enabled-p 'obsolete)))
|
||||
(let* ((fun (car form))
|
||||
(obsolete (get fun 'byte-obsolete-info)))
|
||||
(macroexp--warn-and-return
|
||||
(macroexp--obsolete-warning fun obsolete "macro")
|
||||
(macroexp--obsolete-warning
|
||||
fun obsolete
|
||||
(if (symbolp (symbol-function fun))
|
||||
"alias" "macro"))
|
||||
new-form))
|
||||
new-form)))
|
||||
(pcase form
|
||||
|
|
|
@ -590,7 +590,9 @@ EXTRA-PROPERTIES is currently unused."
|
|||
(version-control 'never))
|
||||
(unless (fboundp 'autoload-ensure-default-file)
|
||||
(package-autoload-ensure-default-file generated-autoload-file))
|
||||
(update-directory-autoloads pkg-dir)))
|
||||
(update-directory-autoloads pkg-dir)
|
||||
(let ((buf (find-buffer-visiting generated-autoload-file)))
|
||||
(when buf (kill-buffer buf)))))
|
||||
|
||||
(defvar tar-parse-info)
|
||||
(declare-function tar-untar-buffer "tar-mode" ())
|
||||
|
@ -728,6 +730,7 @@ It will move point to somewhere in the headers."
|
|||
(defun package-installed-p (package &optional min-version)
|
||||
"Return true if PACKAGE, of MIN-VERSION or newer, is installed.
|
||||
MIN-VERSION should be a version list."
|
||||
(unless package--initialized (error "package.el is not yet initialized!"))
|
||||
(let ((pkg-desc (assq package package-alist)))
|
||||
(if pkg-desc
|
||||
(version-list-<= min-version
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2012-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* erc-backend.el: Only require `erc' during compilation (bug#12740).
|
||||
|
||||
2012-10-18 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* erc-backend.el: Require `erc' instead of autoloading its macros
|
||||
|
|
|
@ -102,8 +102,7 @@
|
|||
;; There's a fairly strong mutual dependency between erc.el and erc-backend.el.
|
||||
;; Luckily, erc.el does not need erc-backend.el for macroexpansion whereas the
|
||||
;; reverse is true:
|
||||
(provide 'erc-backend)
|
||||
(require 'erc)
|
||||
(eval-when-compile (provide 'erc-backend) (require 'erc))
|
||||
|
||||
;;;; Variables and options
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
;;; face-remap.el --- Functions for managing `face-remapping-alist'
|
||||
;;; face-remap.el --- Functions for managing `face-remapping-alist' -*- lexical-binding: t -*-
|
||||
;;
|
||||
;; Copyright (C) 2008-2012 Free Software Foundation, Inc.
|
||||
;;
|
||||
|
@ -132,7 +132,10 @@ other than the normal definition of FACE via `face-remap-set-base'."
|
|||
(when (null entry)
|
||||
(setq entry (list face face)) ; explicitly merge with global def
|
||||
(push entry face-remapping-alist))
|
||||
(setcdr entry (face-remap-order (cons specs (cdr entry))))
|
||||
(let ((faces (cdr entry)))
|
||||
(if (symbolp faces)
|
||||
(setq faces (list faces)))
|
||||
(setcdr entry (face-remap-order (cons specs faces))))
|
||||
(cons face specs)))
|
||||
|
||||
(defun face-remap-remove-relative (cookie)
|
||||
|
@ -285,7 +288,9 @@ See `text-scale-increase' for more details."
|
|||
;;;###autoload (define-key ctl-x-map [(control ?0)] 'text-scale-adjust)
|
||||
;;;###autoload
|
||||
(defun text-scale-adjust (inc)
|
||||
"Increase or decrease the height of the default face in the current buffer.
|
||||
"Adjust the height of the default face by INC.
|
||||
|
||||
INC may be passed as a numeric prefix argument.
|
||||
|
||||
The actual adjustment made depends on the final component of the
|
||||
key-binding used to invoke the command, with all modifiers removed:
|
||||
|
@ -294,9 +299,11 @@ key-binding used to invoke the command, with all modifiers removed:
|
|||
- Decrease the default face height by one step
|
||||
0 Reset the default face height to the global default
|
||||
|
||||
Then, continue to read input events and further adjust the face
|
||||
height as long as the input event read (with all modifiers removed)
|
||||
is one of the above.
|
||||
When adjusting with `+' or `-', continue to read input events and
|
||||
further adjust the face height as long as the input event read
|
||||
\(with all modifiers removed) is `+' or `-'.
|
||||
|
||||
When adjusting with `0', immediately finish.
|
||||
|
||||
Each step scales the height of the default face by the variable
|
||||
`text-scale-mode-step' (a negative number of steps decreases the
|
||||
|
@ -309,8 +316,7 @@ even when it is bound in a non-top-level keymap. For binding in
|
|||
a top-level keymap, `text-scale-increase' or
|
||||
`text-scale-decrease' may be more appropriate."
|
||||
(interactive "p")
|
||||
(let ((first t)
|
||||
(ev last-command-event)
|
||||
(let ((ev last-command-event)
|
||||
(echo-keystrokes nil))
|
||||
(let* ((base (event-basic-type ev))
|
||||
(step
|
||||
|
@ -320,19 +326,15 @@ a top-level keymap, `text-scale-increase' or
|
|||
(?0 0)
|
||||
(t inc))))
|
||||
(text-scale-increase step)
|
||||
;; FIXME: do it after every "iteration of the loop".
|
||||
(message "+,-,0 for further adjustment: ")
|
||||
;; (unless (zerop step)
|
||||
(message "Use +,-,0 for further adjustment")
|
||||
(set-temporary-overlay-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(dolist (mods '(() (control)))
|
||||
(define-key map (vector (append mods '(?-))) 'text-scale-decrease)
|
||||
(define-key map (vector (append mods '(?+))) 'text-scale-increase)
|
||||
;; = is unshifted + on most keyboards.
|
||||
(define-key map (vector (append mods '(?=))) 'text-scale-increase)
|
||||
(define-key map (vector (append mods '(?0)))
|
||||
(lambda () (interactive) (text-scale-increase 0))))
|
||||
map)
|
||||
t))))
|
||||
(dolist (key '(?- ?+ ?= ?0)) ;; = is often unshifted +.
|
||||
(define-key map (vector (append mods (list key)))
|
||||
(lambda () (interactive) (text-scale-adjust (abs inc))))))
|
||||
map))))) ;; )
|
||||
|
||||
|
||||
;; ----------------------------------------------------------------
|
||||
|
|
|
@ -1537,12 +1537,9 @@ killed."
|
|||
t)))
|
||||
(unless (run-hook-with-args-until-failure 'kill-buffer-query-functions)
|
||||
(error "Aborted"))
|
||||
(when (and (buffer-modified-p) buffer-file-name)
|
||||
(if (yes-or-no-p (format "Buffer %s is modified; save it first? "
|
||||
(buffer-name)))
|
||||
(save-buffer)
|
||||
(unless (yes-or-no-p "Kill and replace the buffer without saving it? ")
|
||||
(error "Aborted"))))
|
||||
(and (buffer-modified-p) buffer-file-name
|
||||
(not (yes-or-no-p "Kill and replace the buffer without saving it? "))
|
||||
(error "Aborted"))
|
||||
(let ((obuf (current-buffer))
|
||||
(ofile buffer-file-name)
|
||||
(onum buffer-file-number)
|
||||
|
|
|
@ -1012,8 +1012,8 @@ WINDOW can be any live window and defaults to the selected one.
|
|||
|
||||
Do not make WINDOW higher than `temp-buffer-max-height' nor
|
||||
smaller than `window-min-height'. Do nothing if WINDOW is not
|
||||
vertically combined or some of its contents are scrolled out of
|
||||
view."
|
||||
vertically combined, some of its contents are scrolled out of
|
||||
view, or WINDOW was not created by `display-buffer'."
|
||||
(setq window (window-normalize-window window t))
|
||||
(let ((buffer-name (buffer-name (window-buffer window))))
|
||||
(let ((height (if (functionp temp-buffer-max-height)
|
||||
|
@ -1022,11 +1022,12 @@ view."
|
|||
temp-buffer-max-height))
|
||||
(quit-cadr (cadr (window-parameter window 'quit-restore))))
|
||||
(cond
|
||||
;; Don't resize WINDOW if it showed another buffer before.
|
||||
;; Resize WINDOW iff it was split off by `display-buffer'.
|
||||
((and (eq quit-cadr 'window)
|
||||
(pos-visible-in-window-p (point-min) window)
|
||||
(window-combined-p window))
|
||||
(fit-window-to-buffer window height))
|
||||
;; Resize FRAME iff it was created by `display-buffer'.
|
||||
((and fit-frame-to-buffer
|
||||
(eq quit-cadr 'frame)
|
||||
(eq window (frame-root-window window)))
|
||||
|
|
|
@ -1018,7 +1018,7 @@ for more information."
|
|||
(if (stringp index-item)
|
||||
(setq index-item (assoc index-item (imenu--make-index-alist))))
|
||||
(when index-item
|
||||
(push-mark)
|
||||
(push-mark nil t)
|
||||
(let* ((is-special-item (listp (cdr index-item)))
|
||||
(function
|
||||
(if is-special-item
|
||||
|
|
|
@ -2646,6 +2646,7 @@ Because of ambiguities, this should be concatenated with something like
|
|||
(while (re-search-forward pattern nil t)
|
||||
(push (match-string-no-properties 1)
|
||||
completions))
|
||||
(setq completions (delete-dups completions))
|
||||
;; Check subsequent nodes if applicable.
|
||||
(or (and Info-complete-next-re
|
||||
(setq nextnode (Info-extract-pointer "next" t))
|
||||
|
|
|
@ -2149,7 +2149,8 @@ Isearch mode."
|
|||
(setq prefix-arg arg)
|
||||
(apply 'isearch-unread keylist))
|
||||
(setq keylist
|
||||
(listify-key-sequence (lookup-key local-function-key-map key)))
|
||||
(listify-key-sequence
|
||||
(lookup-key local-function-key-map key)))
|
||||
(while keylist
|
||||
(setq key (car keylist))
|
||||
;; If KEY is a printing char, we handle it here
|
||||
|
@ -2158,6 +2159,9 @@ Isearch mode."
|
|||
(if (and (integerp key)
|
||||
(>= key ?\s) (/= key 127) (< key 256))
|
||||
(progn
|
||||
;; Ensure that the processed char is recorded in
|
||||
;; the keyboard macro, if any (Bug#4894)
|
||||
(store-kbd-macro-event key)
|
||||
(isearch-process-search-char key)
|
||||
(setq keylist (cdr keylist)))
|
||||
;; As the remaining keys in KEYLIST can't be handled
|
||||
|
|
|
@ -378,6 +378,8 @@ Note: TABLE needs to be a proper completion table which obeys predicates."
|
|||
;; that `concat' and `unquote' commute (which tends to be the case).
|
||||
;; And we ask `requote' to do the work of mapping from unquoted positions
|
||||
;; back to quoted positions.
|
||||
;; FIXME: For some forms of "quoting" such as the truncation behavior of
|
||||
;; substitute-in-file-name, it would be desirable not to requote completely.
|
||||
"Return a new completion table operating on quoted text.
|
||||
TABLE operates on the unquoted text.
|
||||
UNQUOTE is a function that takes a string and returns a new unquoted string.
|
||||
|
@ -527,10 +529,12 @@ for use at QPOS."
|
|||
(`(,qfullpos . ,qfun)
|
||||
(funcall requote (+ boundary (length prefix)) string))
|
||||
(qfullprefix (substring string 0 qfullpos))
|
||||
(_ (cl-assert (completion--string-equal-p
|
||||
(funcall unquote qfullprefix)
|
||||
(concat (substring ustring 0 boundary) prefix))
|
||||
t))
|
||||
;; FIXME: This assertion can be wrong, e.g. in Cygwin, where
|
||||
;; (unquote "c:\bin") => "/usr/bin" but (unquote "c:\") => "/".
|
||||
;;(cl-assert (completion--string-equal-p
|
||||
;; (funcall unquote qfullprefix)
|
||||
;; (concat (substring ustring 0 boundary) prefix))
|
||||
;; t))
|
||||
(qboundary (car (funcall requote boundary string)))
|
||||
(_ (cl-assert (<= qboundary qfullpos)))
|
||||
;; FIXME: this split/quote/concat business messes up the carefully
|
||||
|
@ -559,14 +563,16 @@ for use at QPOS."
|
|||
(let* ((new (substring completion (length prefix)))
|
||||
(qnew (funcall qfun new))
|
||||
(qcompletion (concat qprefix qnew)))
|
||||
(cl-assert
|
||||
(completion--string-equal-p
|
||||
(funcall unquote
|
||||
(concat (substring string 0 qboundary)
|
||||
qcompletion))
|
||||
(concat (substring ustring 0 boundary)
|
||||
completion))
|
||||
t)
|
||||
;; FIXME: Similarly here, Cygwin's mapping trips this
|
||||
;; assertion.
|
||||
;;(cl-assert
|
||||
;; (completion--string-equal-p
|
||||
;; (funcall unquote
|
||||
;; (concat (substring string 0 qboundary)
|
||||
;; qcompletion))
|
||||
;; (concat (substring ustring 0 boundary)
|
||||
;; completion))
|
||||
;; t)
|
||||
qcompletion))
|
||||
completions)
|
||||
qboundary))))
|
||||
|
@ -743,6 +749,7 @@ completing buffer and file names, respectively."
|
|||
(const buffer)
|
||||
(const file)
|
||||
(const unicode-name)
|
||||
(const bookmark)
|
||||
symbol)
|
||||
:value-type
|
||||
(set :tag "Properties to override"
|
||||
|
@ -871,6 +878,7 @@ completion candidates than this number."
|
|||
|
||||
(defvar completion-all-sorted-completions nil)
|
||||
(make-variable-buffer-local 'completion-all-sorted-completions)
|
||||
(defvar-local completion--all-sorted-completions-location nil)
|
||||
(defvar completion-cycling nil)
|
||||
|
||||
(defvar completion-fail-discreetly nil
|
||||
|
@ -1048,14 +1056,19 @@ scroll the window of possible completions."
|
|||
|
||||
(defun completion--cache-all-sorted-completions (comps)
|
||||
(add-hook 'after-change-functions
|
||||
'completion--flush-all-sorted-completions nil t)
|
||||
'completion--flush-all-sorted-completions nil t)
|
||||
(setq completion--all-sorted-completions-location
|
||||
(cons (copy-marker (field-beginning)) (copy-marker (field-end))))
|
||||
(setq completion-all-sorted-completions comps))
|
||||
|
||||
(defun completion--flush-all-sorted-completions (&rest _ignore)
|
||||
(remove-hook 'after-change-functions
|
||||
'completion--flush-all-sorted-completions t)
|
||||
(setq completion-cycling nil)
|
||||
(setq completion-all-sorted-completions nil))
|
||||
(defun completion--flush-all-sorted-completions (&optional start end _len)
|
||||
(unless (and start end
|
||||
(or (> start (cdr completion--all-sorted-completions-location))
|
||||
(< end (car completion--all-sorted-completions-location))))
|
||||
(remove-hook 'after-change-functions
|
||||
'completion--flush-all-sorted-completions t)
|
||||
(setq completion-cycling nil)
|
||||
(setq completion-all-sorted-completions nil)))
|
||||
|
||||
(defun completion--metadata (string base md-at-point table pred)
|
||||
;; Like completion-metadata, but for the specific case of getting the
|
||||
|
@ -1108,7 +1121,7 @@ Repeated uses step through the possible completions."
|
|||
;; FIXME: Need to deal with the extra-size issue here as well.
|
||||
;; FIXME: ~/src/emacs/t<M-TAB>/lisp/minibuffer.el completes to
|
||||
;; ~/src/emacs/trunk/ and throws away lisp/minibuffer.el.
|
||||
(let* ((start (field-beginning))
|
||||
(let* ((start (copy-marker (field-beginning)))
|
||||
(end (field-end))
|
||||
;; (md (completion--field-metadata start))
|
||||
(all (completion-all-sorted-completions))
|
||||
|
@ -1118,10 +1131,10 @@ Repeated uses step through the possible completions."
|
|||
(completion--message
|
||||
(if all "No more completions" "No completions")))
|
||||
((not (consp (cdr all)))
|
||||
(let ((mod (equal (car all) (buffer-substring-no-properties base end))))
|
||||
(if mod (completion--replace base end (car all)))
|
||||
(let ((done (equal (car all) (buffer-substring-no-properties base end))))
|
||||
(unless done (completion--replace base end (car all)))
|
||||
(completion--done (buffer-substring-no-properties start (point))
|
||||
'finished (unless mod "Sole completion"))))
|
||||
'finished (when done "Sole completion"))))
|
||||
(t
|
||||
(completion--replace base end (car all))
|
||||
(completion--done (buffer-substring-no-properties start (point)) 'sole)
|
||||
|
@ -1758,7 +1771,10 @@ exit."
|
|||
(when completion-in-region-mode-predicate
|
||||
(completion-in-region-mode 1)
|
||||
(setq completion-in-region--data
|
||||
(list (current-buffer) start end collection)))
|
||||
(list (if (markerp start) start (copy-marker start))
|
||||
(copy-marker end) collection)))
|
||||
;; FIXME: `minibuffer-complete' should call `completion-in-region' rather
|
||||
;; than the other way around!
|
||||
(unwind-protect
|
||||
(call-interactively 'minibuffer-complete)
|
||||
(delete-overlay ol)))))
|
||||
|
@ -1782,12 +1798,12 @@ exit."
|
|||
(or unread-command-events ;Don't pop down the completions in the middle of
|
||||
;mouse-drag-region/mouse-set-point.
|
||||
(and completion-in-region--data
|
||||
(and (eq (car completion-in-region--data)
|
||||
(and (eq (marker-buffer (nth 0 completion-in-region--data))
|
||||
(current-buffer))
|
||||
(>= (point) (nth 1 completion-in-region--data))
|
||||
(>= (point) (nth 0 completion-in-region--data))
|
||||
(<= (point)
|
||||
(save-excursion
|
||||
(goto-char (nth 2 completion-in-region--data))
|
||||
(goto-char (nth 1 completion-in-region--data))
|
||||
(line-end-position)))
|
||||
(funcall completion-in-region-mode--predicate)))
|
||||
(completion-in-region-mode -1)))
|
||||
|
@ -1892,17 +1908,19 @@ The completion method is determined by `completion-at-point-functions'."
|
|||
(let ((res (run-hook-wrapped 'completion-at-point-functions
|
||||
#'completion--capf-wrapper 'all)))
|
||||
(pcase res
|
||||
(`(,_ . ,(and (pred functionp) f)) (funcall f))
|
||||
(`(,hookfun . (,start ,end ,collection . ,plist))
|
||||
(let* ((completion-extra-properties plist)
|
||||
(completion-in-region-mode-predicate
|
||||
(lambda ()
|
||||
;; We're still in the same completion field.
|
||||
(eq (car-safe (funcall hookfun)) start))))
|
||||
(completion-in-region start end collection
|
||||
(plist-get plist :predicate))))
|
||||
;; Maybe completion already happened and the function returned t.
|
||||
(_ (cdr res)))))
|
||||
(`(,_ . ,(and (pred functionp) f)) (funcall f))
|
||||
(`(,hookfun . (,start ,end ,collection . ,plist))
|
||||
(unless (markerp start) (setq start (copy-marker start)))
|
||||
(let* ((completion-extra-properties plist)
|
||||
(completion-in-region-mode-predicate
|
||||
(lambda ()
|
||||
;; We're still in the same completion field.
|
||||
(let ((newstart (car-safe (funcall hookfun))))
|
||||
(and newstart (= newstart start))))))
|
||||
(completion-in-region start end collection
|
||||
(plist-get plist :predicate))))
|
||||
;; Maybe completion already happened and the function returned t.
|
||||
(_ (cdr res)))))
|
||||
|
||||
(defun completion-help-at-point ()
|
||||
"Display the completions on the text around point.
|
||||
|
@ -1914,32 +1932,34 @@ The completion method is determined by `completion-at-point-functions'."
|
|||
(pcase res
|
||||
(`(,_ . ,(and (pred functionp) f))
|
||||
(message "Don't know how to show completions for %S" f))
|
||||
(`(,hookfun . (,start ,end ,collection . ,plist))
|
||||
(let* ((minibuffer-completion-table collection)
|
||||
(minibuffer-completion-predicate (plist-get plist :predicate))
|
||||
(completion-extra-properties plist)
|
||||
(completion-in-region-mode-predicate
|
||||
(lambda ()
|
||||
;; We're still in the same completion field.
|
||||
(eq (car-safe (funcall hookfun)) start)))
|
||||
(ol (make-overlay start end nil nil t)))
|
||||
;; FIXME: We should somehow (ab)use completion-in-region-function or
|
||||
;; introduce a corresponding hook (plus another for word-completion,
|
||||
;; and another for force-completion, maybe?).
|
||||
(overlay-put ol 'field 'completion)
|
||||
(overlay-put ol 'priority 100)
|
||||
(completion-in-region-mode 1)
|
||||
(setq completion-in-region--data
|
||||
(list (current-buffer) start end collection))
|
||||
(unwind-protect
|
||||
(call-interactively 'minibuffer-completion-help)
|
||||
(delete-overlay ol))))
|
||||
(`(,hookfun . ,_)
|
||||
;; The hook function already performed completion :-(
|
||||
;; Not much we can do at this point.
|
||||
(message "%s already performed completion!" hookfun)
|
||||
nil)
|
||||
(_ (message "Nothing to complete at point")))))
|
||||
(`(,hookfun . (,start ,end ,collection . ,plist))
|
||||
(unless (markerp start) (setq start (copy-marker start)))
|
||||
(let* ((minibuffer-completion-table collection)
|
||||
(minibuffer-completion-predicate (plist-get plist :predicate))
|
||||
(completion-extra-properties plist)
|
||||
(completion-in-region-mode-predicate
|
||||
(lambda ()
|
||||
;; We're still in the same completion field.
|
||||
(let ((newstart (car-safe (funcall hookfun))))
|
||||
(and newstart (= newstart start)))))
|
||||
(ol (make-overlay start end nil nil t)))
|
||||
;; FIXME: We should somehow (ab)use completion-in-region-function or
|
||||
;; introduce a corresponding hook (plus another for word-completion,
|
||||
;; and another for force-completion, maybe?).
|
||||
(overlay-put ol 'field 'completion)
|
||||
(overlay-put ol 'priority 100)
|
||||
(completion-in-region-mode 1)
|
||||
(setq completion-in-region--data
|
||||
(list start (copy-marker end) collection))
|
||||
(unwind-protect
|
||||
(call-interactively 'minibuffer-completion-help)
|
||||
(delete-overlay ol))))
|
||||
(`(,hookfun . ,_)
|
||||
;; The hook function already performed completion :-(
|
||||
;; Not much we can do at this point.
|
||||
(message "%s already performed completion!" hookfun)
|
||||
nil)
|
||||
(_ (message "Nothing to complete at point")))))
|
||||
|
||||
;;; Key bindings.
|
||||
|
||||
|
@ -2147,53 +2167,49 @@ same as `substitute-in-file-name'."
|
|||
"use the regular PRED argument" "23.2")
|
||||
|
||||
(defun completion--sifn-requote (upos qstr)
|
||||
;; We're looking for `qupos' such that:
|
||||
;; We're looking for `qpos' such that:
|
||||
;; (equal (substring (substitute-in-file-name qstr) 0 upos)
|
||||
;; (substitute-in-file-name (substring qstr 0 qupos)))
|
||||
;; (substitute-in-file-name (substring qstr 0 qpos)))
|
||||
;; Big problem here: we have to reverse engineer substitute-in-file-name to
|
||||
;; find the position corresponding to UPOS in QSTR, but
|
||||
;; substitute-in-file-name can do anything, depending on file-name-handlers.
|
||||
;; substitute-in-file-name does the following kind of things:
|
||||
;; - expand env-var references.
|
||||
;; - turn backslashes into slashes.
|
||||
;; - truncate some prefix of the input.
|
||||
;; - rewrite some prefix.
|
||||
;; Some of these operations are written in external libraries and we'd rather
|
||||
;; not hard code any assumptions here about what they actually do. IOW, we
|
||||
;; want to treat substitute-in-file-name as a black box, as much as possible.
|
||||
;; Kind of like in rfn-eshadow-update-overlay, only worse.
|
||||
;; FIXME: example of thing we do not handle: Tramp's makes
|
||||
;; (substitute-in-file-name "/foo:~/bar//baz") -> "/scpc:foo:/baz".
|
||||
;; FIXME: One way to try and handle "all" cases is to require
|
||||
;; substitute-in-file-name to preserve text-properties, so we could
|
||||
;; apply text-properties to the input string and then look for them in
|
||||
;; the output to understand what comes from where.
|
||||
(let ((qpos 0))
|
||||
;; Handle substitute-in-file-name's truncation behavior.
|
||||
(let (tpos)
|
||||
(while (and (string-match "[\\/][~/\\]" qstr qpos)
|
||||
;; Hopefully our regexp covers all truncation cases.
|
||||
;; Also let's make sure sifn indeed truncates here.
|
||||
;; Example of things we need to handle:
|
||||
;; - Tramp (substitute-in-file-name "/foo:~/bar//baz") => "/scpc:foo:/baz".
|
||||
;; - Cygwin (substitute-in-file-name "C:\bin") => "/usr/bin"
|
||||
;; (substitute-in-file-name "C:\") => "/"
|
||||
;; (substitute-in-file-name "C:\bi") => "/bi"
|
||||
(let* ((ustr (substitute-in-file-name qstr))
|
||||
(uprefix (substring ustr 0 upos))
|
||||
qprefix)
|
||||
;; Main assumption: nothing after qpos should affect the text before upos,
|
||||
;; so we can work our way backward from the end of qstr, one character
|
||||
;; at a time.
|
||||
;; Second assumptions: If qpos is far from the end this can be a bit slow,
|
||||
;; so we speed it up by doing a first loop that skips a word at a time.
|
||||
;; This word-sized loop is careful not to cut in the middle of env-vars.
|
||||
(while (let ((boundary (string-match "\\(\\$+{?\\)?\\w+\\W*\\'" qstr)))
|
||||
(and boundary
|
||||
(progn
|
||||
(setq tpos (1+ (match-beginning 0)))
|
||||
(equal (substitute-in-file-name qstr)
|
||||
(substitute-in-file-name (substring qstr tpos)))))
|
||||
(setq qpos tpos)))
|
||||
;; `upos' is relative to the position corresponding to `qpos' in
|
||||
;; (substitute-in-file-name qstr), so as qpos moves forward, upos
|
||||
;; gets smaller.
|
||||
(while (and (> upos 0)
|
||||
(string-match "\\$\\(\\$\\|\\([[:alnum:]_]+\\|{[^}]*}\\)\\)?"
|
||||
qstr qpos))
|
||||
(cond
|
||||
((>= (- (match-beginning 0) qpos) upos) ; UPOS is before current match.
|
||||
(setq qpos (+ qpos upos))
|
||||
(setq upos 0))
|
||||
((not (match-end 1)) ;A sole $: probably an error.
|
||||
(setq upos (- upos (- (match-end 0) qpos)))
|
||||
(setq qpos (match-end 0)))
|
||||
(t
|
||||
(setq upos (- upos (- (match-beginning 0) qpos)))
|
||||
(setq qpos (match-end 0))
|
||||
(setq upos (- upos (length (substitute-in-file-name
|
||||
(match-string 0 qstr))))))))
|
||||
;; If `upos' is negative, it's because it's within the expansion of an
|
||||
;; envvar, i.e. there is no exactly matching qpos, so we just use the next
|
||||
;; available qpos right after the envvar.
|
||||
(cons (if (>= upos 0) (+ qpos upos) qpos)
|
||||
#'minibuffer--double-dollars)))
|
||||
(setq qprefix (substring qstr 0 boundary))
|
||||
(string-prefix-p uprefix
|
||||
(substitute-in-file-name qprefix)))))
|
||||
(setq qstr qprefix))
|
||||
(let ((qpos (length qstr)))
|
||||
(while (and (> qpos 0)
|
||||
(string-prefix-p uprefix
|
||||
(substitute-in-file-name
|
||||
(substring qstr 0 (1- qpos)))))
|
||||
(setq qpos (1- qpos)))
|
||||
(cons qpos #'minibuffer--double-dollars))))
|
||||
|
||||
(defalias 'completion--file-name-table
|
||||
(completion-table-with-quoting #'completion-file-name-table
|
||||
|
|
|
@ -517,8 +517,8 @@ must be one of the symbols `header', `mode', or `vertical'."
|
|||
;; If mouse-2 has never been done by the user, it doesn't have
|
||||
;; the necessary property to be interpreted correctly.
|
||||
(put 'mouse-2 'event-kind 'mouse-click)
|
||||
(setcar event 'mouse-2))
|
||||
(push event unread-command-events)))
|
||||
(setcar event 'mouse-2)
|
||||
(push event unread-command-events))))
|
||||
|
||||
(defun mouse-drag-mode-line (start-event)
|
||||
"Change the height of a window by dragging on the mode line."
|
||||
|
|
|
@ -604,6 +604,7 @@ an alist of attribute/value pairs."
|
|||
;; Skip error message when retrieving attribute list
|
||||
(if (looking-at "Size limit exceeded")
|
||||
(forward-line 1))
|
||||
(if (looking-at "version:") (forward-line 1)) ;bug#12724.
|
||||
(while (progn
|
||||
(skip-chars-forward " \t\n")
|
||||
(not (eobp)))
|
||||
|
|
|
@ -1,3 +1,300 @@
|
|||
2012-10-26 Achim Gratz <stromeko@stromeko.de>
|
||||
|
||||
* ob-ditaa.el: Needs to (require 'org-compat) for
|
||||
org-find-library-dir.
|
||||
|
||||
* org.el: Remove utf-8 codepoints in docstrings, bytecode doesn't
|
||||
work when loaded from compressed files.
|
||||
|
||||
* org-compat.el: Make sure that file-name-directory is getting a
|
||||
stringp. This avoids a possible " (wrong-type-argument stringp
|
||||
nil)" error when the library in question does not exist.
|
||||
|
||||
* org-odt.el: Replace arc-mode.el by arc-mode.
|
||||
|
||||
* org.el: Replace org-macs.el by org-macs.
|
||||
|
||||
* org-install.el: Provide an empty file that prints a warning
|
||||
about an outdated configuration.
|
||||
|
||||
2012-10-26 Bastien Guerry <bzg@gnu.org>
|
||||
|
||||
* org-latex.el (org-export-as-latex): Remove obsolete argument
|
||||
`hidden'. Also fix the docstring: using 'string as the value
|
||||
for `to-buffer' outputs a string with no LaTeX header.
|
||||
(org-export-as-latex-batch)
|
||||
(org-export-as-latex-to-buffer, org-export-region-as-latex)
|
||||
(org-export-as-pdf): Don't use the obsoleted argument.
|
||||
|
||||
* ob-haskell.el (org-export-as-latex): Don't use the obsoleted
|
||||
argument `hidden'.
|
||||
|
||||
* org.el (org-refile): Run within `with-demoted-errors' so
|
||||
that a corrupted bookmark file does not stop the refile
|
||||
process.
|
||||
|
||||
* org-capture.el (org-capture-bookmark-last-stored-position):
|
||||
Ditto for the capture process.
|
||||
|
||||
* org-src.el (org-edit-src-exit): Fix bug when saving an empty
|
||||
source buffer.
|
||||
|
||||
* org-lparse.el (org-lparse): Fix bug by returning the output
|
||||
of `org-do-lparse'.
|
||||
|
||||
* org.el (org-refile-check-position): Throw an error when the
|
||||
refile target is the current buffer and is not a file.
|
||||
(org-agenda-file-to-front, org-remove-file): Throw an error
|
||||
when the current buffer is not a file.
|
||||
(org-check-agenda-file): Enhance the message.
|
||||
(org-element-type): Autoload.
|
||||
(org-element-context, org-element-paragraph-parser): Don't
|
||||
declare as these two functions are not used in org.el.
|
||||
|
||||
* org-lparse.el (browse-url-file-url): Declare.
|
||||
|
||||
* org.el (org-refile-check-position): Fix typo in docstring.
|
||||
|
||||
* org-clock.el (org-clock-modeline-total): Make obsolete.
|
||||
(org-clock-mode-line-total): Rename from
|
||||
`org-clock-modeline-total'.
|
||||
(org-clock-get-sum-start): Fix references to
|
||||
`org-clock-modeline-total'.
|
||||
|
||||
* org-faces.el (org-agenda-filter-tags)
|
||||
(org-agenda-filter-category, mode-line): Use the 'mode-line
|
||||
face instead of the obsolete 'modeline.
|
||||
|
||||
* org-odt.el (org-odt-styles-dir): Try more directories.
|
||||
Don't throw an error, just send a message.
|
||||
|
||||
* org-odt.el (org-odt-lib-dir, org-odt-data-dir)
|
||||
(org-odt-schema-dir-list, org-odt-styles-dir-list): Delete.
|
||||
(org-export-odt-schema-dir, org-odt-styles-dir): Infer the
|
||||
correct directories without requiring other variables.
|
||||
|
||||
* org-fixup.el (org-make-org-version, org-make-autoloads):
|
||||
Don't define `org-odt-data-dir' in org-version.el.
|
||||
|
||||
* org-loaddefs.el: New file.
|
||||
|
||||
* org.el ("org-loaddefs.el"): Don't throw an error if the file
|
||||
cannot be fund.
|
||||
(org-version): Use org-loaddefs.el instead of org-install.el.
|
||||
|
||||
* org.el: Don't dynamically autoload already autoloaded
|
||||
functions.
|
||||
(org-clock-update-time-maybe): Move to org-clock.el.
|
||||
|
||||
* org-exp.el (org-insert-export-options-template): Remove
|
||||
autoload cookie.
|
||||
|
||||
* org-clock.el (org-resolve-clocks, org-clock-in)
|
||||
(org-clock-out, org-clock-cancel, org-clock-goto)
|
||||
(org-clock-sum, org-clock-display, org-clock-report)
|
||||
(org-dblock-write:clocktable): Add autoload cookie.
|
||||
(org-clock-update-time-maybe): Moved from org.el.
|
||||
|
||||
* org-beamer.el (org-beamer-sectioning, org-beamer-mode): Ditto.
|
||||
|
||||
* org-ascii.el (org-export-ascii-preprocess): Ditto.
|
||||
|
||||
* org-archive.el (org-archive-subtree)
|
||||
(org-archive-to-archive-sibling, org-toggle-archive-tag): Add
|
||||
autoload cookie.
|
||||
|
||||
* org-colview.el (org-columns, org-dblock-write:columnview)
|
||||
(org-insert-columns-dblock, org-agenda-columns): Ditto.
|
||||
|
||||
* org-table.el (org-table-create-with-table.el)
|
||||
(org-table-create-or-convert-from-region, org-table-create)
|
||||
(org-table-convert-region, org-table-import)
|
||||
(org-table-export, org-table-align)
|
||||
(org-table-justify-field-maybe, org-table-next-field)
|
||||
(org-table-previous-field, org-table-next-row)
|
||||
(org-table-copy-down, org-table-field-info)
|
||||
(org-table-current-dline, org-table-goto-column)
|
||||
(org-table-insert-column, org-table-delete-column)
|
||||
(org-table-move-column-right, org-table-move-column-left)
|
||||
(org-table-move-column, org-table-move-row-down)
|
||||
(org-table-move-row-up, org-table-move-row)
|
||||
(org-table-insert-row, org-table-insert-hline)
|
||||
(org-table-hline-and-move, org-table-kill-row)
|
||||
(org-table-sort-lines, org-table-cut-region)
|
||||
(org-table-copy-region, org-table-paste-rectangle)
|
||||
(org-table-convert, org-table-wrap-region)
|
||||
(org-table-edit-field, org-table-sum)
|
||||
(org-table-get-stored-formulas)
|
||||
(org-table-maybe-eval-formula)
|
||||
(org-table-rotate-recalc-marks)
|
||||
(org-table-maybe-recalculate-line, org-table-eval-formula)
|
||||
(org-table-recalculate, org-table-iterate)
|
||||
(org-table-edit-formulas)
|
||||
(org-table-toggle-coordinate-overlays)
|
||||
(org-table-toggle-formula-debugger, orgtbl-to-generic)
|
||||
(orgtbl-to-tsv, orgtbl-to-csv, orgtbl-to-latex)
|
||||
(orgtbl-to-html, orgtbl-to-texinfo, orgtbl-to-orgtbl): Ditto.
|
||||
|
||||
* org.el (turn-on-orgtbl): Moved here from org-table.el.
|
||||
(org-clock-persistence-insinuate): Moved here from org-clock.el.
|
||||
(org-update-all-dblocks, org-map-entries)
|
||||
(org-require-autoloaded-modules, org-forward-element)
|
||||
(org-backward-element, org-up-element)
|
||||
(org-element-greater-elements, org-drag-element-backward)
|
||||
(org-drag-element-forward, org-mark-element)
|
||||
(org-narrow-to-element, org-transpose-element)
|
||||
(org-unindent-buffer): Don't autoload.
|
||||
|
||||
* org-clock.el (org-clock-get-clocktable): Rename from
|
||||
`org-get-clocktable'.
|
||||
(org-clock-persistence-insinuate): Move to org.el.
|
||||
|
||||
* org-capture.el: Do no set `generated-autoload-file' locally.
|
||||
Minor code clean up.
|
||||
|
||||
* org-agenda.el (org-agenda-list): Use
|
||||
`org-clock-get-clocktable'. Do no set
|
||||
`generated-autoload-file' locally.
|
||||
|
||||
* org-table.el (org-table-iterate-buffer-tables): Minor
|
||||
reformatting.
|
||||
(turn-on-orgtbl): Move to org.el.
|
||||
|
||||
* org-html.el (org-export-htmlize-generate-css): Don't autoload.
|
||||
|
||||
* org-timer.el (org-timer-pause-or-continue, org-timer-stop):
|
||||
Ditto.
|
||||
|
||||
* ob-tangle.el (org-babel-tangle-lang-exts): Ditto.
|
||||
|
||||
* ob-lob.el (org-babel-lob-ingest): Ditto.
|
||||
|
||||
* org-id.el (org-id-copy)
|
||||
(org-id-get-with-outline-path-completion)
|
||||
(org-id-get-with-outline-drilling): Ditto.
|
||||
|
||||
* org-lparse.el (org-lparse-and-open, org-lparse-batch)
|
||||
(org-lparse-to-buffer, org-replace-region-by)
|
||||
(org-lparse-region): Ditto.
|
||||
|
||||
* org-mobile.el (org-mobile-create-sumo-agenda): Ditto.
|
||||
|
||||
* org.el (org-cycle): Fix misplaced autoload cookie.
|
||||
|
||||
* org-agenda.el (org-agenda-get-timestamps): Check if the item
|
||||
is an habit when formatting it with `org-agenda-format-item'.
|
||||
(org-agenda-get-blocks): Fix bug: don't assume the item is an
|
||||
habit when formatting with `org-agenda-format-item'.
|
||||
|
||||
* org.el (org-calendar-agenda-action-key): Delete an option.
|
||||
(org-mode-map): Delete its keybinding.
|
||||
(org-agenda-action-marker, org-mark-entry-for-agenda-action):
|
||||
Delete.
|
||||
|
||||
* org-agenda.el (org-agenda-diary-entry): Don't prevent from
|
||||
being used outside of Org agendas, as it can be used in
|
||||
calendar buffers too.
|
||||
|
||||
2012-10-26 Caio Tiago Oliveira <asrail@gmail.com> (tiny change)
|
||||
|
||||
* ob-scala.el (org-babel-scala-wrapper-method): Use a Scala
|
||||
block enclosing the submitted code.
|
||||
|
||||
2012-10-26 Myles English <mylesenglish@gmail.com> (tiny change)
|
||||
|
||||
* org-clock.el (org-clock-in): Moved the call to
|
||||
org-clock-in-prepare-hook until the task's properties
|
||||
can be accessed.
|
||||
|
||||
2012-10-26 Nicolas Goaziou <n.goaziou@gmail.com>
|
||||
|
||||
* org.el (org-auto-fill-function): Make sure `adaptive-fill-mode'
|
||||
mode is nil when pre-computed `fill-prefix' is the empty string.
|
||||
Otherwise filling functions from fill.el think it has to be computed
|
||||
again and overwrite it.
|
||||
|
||||
* org.el: Make `org-closest-date' aware of hours repeaters.
|
||||
|
||||
* org.el (org-end-of-line): Do not call `end-of-visual-line' when
|
||||
moving to the end of line. Also improve behaviour on elements that
|
||||
can be hidden.
|
||||
|
||||
* org.el (org-sparse-tree): Allow to call `org-show-todo-tree'
|
||||
with an argument.
|
||||
|
||||
* org-element.el (org-element--get-next-object-candidates): Fix
|
||||
parsing of objects of the same type in a single paragraph.
|
||||
|
||||
* org-element.el (org-element-sub/superscript-successor): Fix
|
||||
parsing of sub/superscript at beginning of item.
|
||||
(org-element-latex-or-entity-successor): Fix parsing of latex
|
||||
fragments at beginning of item.
|
||||
|
||||
* org-agenda.el (org-agenda-later): Fix function when span is
|
||||
a number and an argument was provided. Also fix typo in docstring.
|
||||
|
||||
* org.el (org-read-date-analyze): Fix analyzing for dates like
|
||||
"29.03 16:40".
|
||||
|
||||
* org-element.el (org-element-center-block-parser)
|
||||
(org-element-drawer-parser, , org-element-footnote-definition-parser)
|
||||
(org-element-inlinetask-parser, org-element-plain-list-parser)
|
||||
(org-element-quote-block-parser, org-element-special-block-parser)
|
||||
(org-element-babel-call-parser, org-element-clock-parser)
|
||||
(org-element-comment-parser, org-element-comment-block-parser)
|
||||
(org-element-example-block-parser, org-element-export-block-parser)
|
||||
(org-element-fixed-width-parser, org-element-horizontal-rule-parser)
|
||||
(org-element-keyword-parser, org-element-latex-environment-parser)
|
||||
(org-element-paragraph-parser, org-element-planning-parser)
|
||||
(org-element-property-drawer-parser, org-element-src-block-parser)
|
||||
(org-element-table-parser)
|
||||
(org-element-verse-block-parserorg-element-dynamic-block-parser):
|
||||
Make sure element never ends at the end of a blank non-empty line.
|
||||
|
||||
* org-element.el (org-element-context)
|
||||
(org-element--get-next-object-candidates): Fix `org-element-context'.
|
||||
In particular, the restrictions for an object may be different from
|
||||
those of its container (i.e. table rows and table cells).
|
||||
|
||||
* org-element.el (org-element-example-block-parser)
|
||||
(org-element-src-block-parser): Store value of example-blocks and
|
||||
src-blocks unescaped.
|
||||
(org-element-example-block-interpreter)
|
||||
(org-element-src-block-interpreter): Escape value again when storing
|
||||
it.
|
||||
|
||||
* org-src.el (org-escape-code-in-string)
|
||||
(org-unescape-code-in-string, org-escape-code-in-region)
|
||||
(org-unescape-code-in-region): New functions.
|
||||
(org-edit-src-code, org-edit-src-exit): Use new functions.
|
||||
|
||||
* org.el (org-strip-protective-commas): Removed function.
|
||||
|
||||
* org-exp.el (org-export-select-backend-specific-text): Use new
|
||||
function.
|
||||
|
||||
* ob.el (org-babel-parse-src-block-match)
|
||||
(org-babel-parse-inline-src-block-match, org-babel-insert-result):
|
||||
Always escape produced blocks, independently on the language of the
|
||||
block, if any. Use new functions.
|
||||
|
||||
* org-element.el (org-element-paragraph-parser): Fix regexp
|
||||
starting a block.
|
||||
|
||||
* org-element.el (org-element-center-block-parser):
|
||||
(org-element-drawer-parser, org-element-dynamic-block-parser)
|
||||
(org-element-example-block-parser, org-element-export-block-parser)
|
||||
(org-element-latex-environment-parser, org-element-paragraph-parser)
|
||||
(org-element-property-drawer-parser, org-element-src-block-parser)
|
||||
(org-element-verse-block-parser): Use stricter regexps for boundaries
|
||||
of elements.
|
||||
|
||||
2012-10-26 Toby S. Cubitt <tsc25@cantab.net>
|
||||
|
||||
* org-agenda.el (org-agenda-get-sexps): Reset `extra' to nil at
|
||||
beginning of re-search-forward loop, otherwise next iteration picks up
|
||||
`extra' value from previous entry.
|
||||
|
||||
2012-09-30 Abdó Roig-Maranges <abdo.roig@gmail.com>
|
||||
|
||||
* org-html.el (org-export-html-preprocess)
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
|
||||
;;; Code:
|
||||
(require 'ob)
|
||||
(require 'org-compat)
|
||||
|
||||
(defvar org-ditaa-jar-path) ;; provided by org-exp-blocks
|
||||
|
||||
|
|
|
@ -147,6 +147,8 @@ specifying a variable of the same value."
|
|||
(format "%S" var)))
|
||||
|
||||
(defvar org-src-preserve-indentation)
|
||||
(declare-function org-export-as-latex "org-latex"
|
||||
(arg &optional ext-plist to-buffer body-only pub-dir))
|
||||
(defun org-babel-haskell-export-to-lhs (&optional arg)
|
||||
"Export to a .lhs file with all haskell code blocks escaped.
|
||||
When called with a prefix argument the resulting
|
||||
|
|
|
@ -38,12 +38,12 @@
|
|||
(require 'ob-eval)
|
||||
(eval-when-compile (require 'cl))
|
||||
|
||||
(defvar org-babel-tangle-lang-exts) ;; Autoloaded
|
||||
(add-to-list 'org-babel-tangle-lang-exts '("io" . "io"))
|
||||
(defvar org-babel-default-header-args:io '())
|
||||
(defvar org-babel-io-command "io"
|
||||
"Name of the command to use for executing Io code.")
|
||||
|
||||
|
||||
(defun org-babel-execute:io (body params)
|
||||
"Execute a block of Io code with org-babel. This function is
|
||||
called by `org-babel-execute-src-block'"
|
||||
|
|
|
@ -98,6 +98,8 @@ a-list placed behind the generic `org-babel-key-prefix'.")
|
|||
|
||||
(provide 'ob-keys)
|
||||
|
||||
|
||||
;; Local variables:
|
||||
;; generated-autoload-file: "org-loaddefs.el"
|
||||
;; End:
|
||||
|
||||
;;; ob-keys.el ends here
|
||||
|
|
|
@ -45,7 +45,6 @@ To add files to this list use the `org-babel-lob-ingest' command."
|
|||
(defvar org-babel-default-lob-header-args '((:exports . "results"))
|
||||
"Default header arguments to use when exporting #+lob/call lines.")
|
||||
|
||||
;;;###autoload
|
||||
(defun org-babel-lob-ingest (&optional file)
|
||||
"Add all named source-blocks defined in FILE to
|
||||
`org-babel-library-of-babel'."
|
||||
|
@ -143,6 +142,8 @@ if so then run the appropriate source block from the Library."
|
|||
|
||||
(provide 'ob-lob)
|
||||
|
||||
|
||||
;; Local variables:
|
||||
;; generated-autoload-file: "org-loaddefs.el"
|
||||
;; End:
|
||||
|
||||
;;; ob-lob.el ends here
|
||||
|
|
|
@ -60,6 +60,7 @@
|
|||
(eval-when-compile (require 'cl))
|
||||
|
||||
(declare-function run-picolisp "ext:inferior-picolisp" (cmd))
|
||||
(defvar org-babel-tangle-lang-exts) ;; Autoloaded
|
||||
|
||||
;; optionally define a file extension for this language
|
||||
(add-to-list 'org-babel-tangle-lang-exts '("picolisp" . "l"))
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue