merge trun

This commit is contained in:
Kenichi Handa 2012-10-30 20:38:37 +09:00
commit 6ccc848cd8
174 changed files with 4602 additions and 3020 deletions

View file

@ -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.

View file

@ -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; \

View 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

View file

@ -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
])

View file

@ -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.

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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 `\'.

View file

@ -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

View 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

View file

@ -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

View file

@ -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.

View file

@ -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

View file

@ -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.

View file

@ -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

View file

@ -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

View file

@ -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.

View file

@ -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):

View file

@ -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

View file

@ -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.

View file

@ -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

View file

@ -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

View file

@ -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{}

View file

@ -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

View file

@ -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

View file

@ -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,

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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))

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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}

View file

@ -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.

View file

@ -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

View file

@ -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}.

View file

@ -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

View file

@ -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

File diff suppressed because it is too large Load diff

View file

@ -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

View file

@ -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))

View file

@ -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

View file

@ -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
View file

@ -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.

View file

@ -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}

View file

@ -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.

View file

@ -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:

View file

@ -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 \

View file

@ -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.

View file

@ -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

View file

@ -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):

View file

@ -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)

View file

@ -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)))

View file

@ -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'.

View file

@ -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:

View file

@ -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")

View file

@ -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.")

View file

@ -23,9 +23,8 @@
;;; Code:
(require 'semantic/lex)
(eval-when-compile (require 'semantic/bovine))
(require 'semantic)
;;; Prologue
;;
(defvar semantic-grammar-lex-c-char-re)

View file

@ -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."

View file

@ -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")

View file

@ -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)))

View file

@ -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))

View file

@ -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

View file

@ -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)

View file

@ -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'."

View file

@ -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."

View file

@ -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:

View file

@ -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

View file

@ -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)

View file

@ -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.

View file

@ -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)))

View file

@ -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

View file

@ -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))

View file

@ -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.")

View file

@ -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
;;

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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))))) ;; )
;; ----------------------------------------------------------------

View file

@ -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)

View file

@ -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)))

View file

@ -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

View file

@ -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))

View file

@ -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

View file

@ -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

View file

@ -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."

View file

@ -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)))

View file

@ -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)

View file

@ -40,6 +40,7 @@
;;; Code:
(require 'ob)
(require 'org-compat)
(defvar org-ditaa-jar-path) ;; provided by org-exp-blocks

View file

@ -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

View file

@ -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'"

View file

@ -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

View file

@ -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

View file

@ -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