merge trunk

This commit is contained in:
Kenichi Handa 2014-01-11 22:00:54 +09:00
commit af05bef2d1
97 changed files with 1617 additions and 1823 deletions

View file

@ -1,3 +1,9 @@
2014-01-11 Paul Eggert <eggert@cs.ucla.edu>
Merge from gnulib, incorporating:
2014-01-07 update from texinfo
2014-01-06 md5, sha1, sha256, sha512: support older autoconf
2014-01-09 Eric S. Raymond <esr@thyrsus.com>
* INSTALL, configure.ac, etc/CONTRIBUTE, nt/INSTALL: Remove

View file

@ -1,3 +1,7 @@
2014-01-10 Glenn Morris <rgm@gnu.org>
* update_autogen: Fix sed bug that was losing the last AUTOGEN_VCS.
2014-01-04 Glenn Morris <rgm@gnu.org>
* admin.el (manual-html-fix-node-div): Handle Texinfo 5's movable <hr>.

View file

@ -218,7 +218,6 @@ xresources.texi cyd
** Check the Lisp manual.
abbrevs.texi rgm
advice.texi cyd
anti.texi rgm
back.texi rgm
backups.texi cyd

View file

@ -364,3 +364,37 @@ works), or by adding an entry to ~/.bazaar/locations.conf:
You have to use locations.conf rather than bazaar.conf because the
latter has a lower priority than branch.conf.
* Using git-bzr
** initially
You can use Git locally to talk to the Bazaar repo as a "remote" repo
via git-bzr (aka git-remote-bzr). Initial clone:
git clone bzr::bzr+ssh://USER@bzr.sv.gnu.org/emacs/trunk e
This creates the working dir e/ (with subdir .git, etc). Disk usage
is 13G (as of early 2014), so you will probably want to repack:
git repack -a -d -f --window=250 --depth=250 --window-memory=N
where N is chosen to avoid swapping. E.g., given 512MB RAM, N="200m"
results in "du -sh .git" => 559M, about double the smallest reported
value (obtained with "deprecated" command "git gc --aggressive").
** steady-state
Use "fetch", "pull" and other remote-to-local commands as usual.
For "push", the Emacs Bazaar repo is configured with
append_revisions_only = True
so some versions of git-remote-bzr may raise AppendRevisionsOnlyViolation
(in func do_export) instead of displaying a "non fast-forward" message
and skipping the branch. See:
http://lists.gnu.org/archive/html/emacs-devel/2014-01/msg00436.html
which includes a provisional patch to git-remote-bzr to do that.

View file

@ -317,8 +317,9 @@ EOF
echo "Finding loaddef targets..."
sed -n -e '/^AUTOGEN_VCS/,/^$/ s/\\//p' lisp/Makefile.in | \
sed '/AUTOGEN_VCS/d' >| $tempfile || die "sed error"
sed -n -e '/^AUTOGEN_VCS/,/^$/p' lisp/Makefile.in | \
sed -e '/AUTOGEN_VCS/d' -e '/^$/d' -e 's/\\//' \
>| $tempfile || die "sed error"
genfiles=

View file

@ -1,3 +1,32 @@
2014-01-10 Glenn Morris <rgm@gnu.org>
* emacs.texi (Distrib): Add donate URL. Add anchor.
2014-01-10 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
* dired.texi (Misc Dired Features): Document `dired-hide-details-mode',
`dired-hide-details-hide-symlink-targets', and
`dired-hide-details-hide-information-lines'.
2014-01-09 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
* emacs.texi: Add EWW.
* misc.texi (EWW): Document EWW.
2014-01-09 Glenn Morris <rgm@gnu.org>
* trouble.texi (Service): Refer to online service directory
rather than etc/SERVICE.
2014-01-09 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
* building.texi (Lisp Libraries): Document `load-prefer-newer'.
* files.texi (File Conveniences): Document `image-next-frame',
`image-previous-frame', `image-goto-frame',
`image-increase-speed', `image-decrease-speed',
`image-reverse-speed', and `image-reset-speed'.
2014-01-07 Bastien Guerry <bzg@gnu.org>
* buffers.texi (Buffers): Fix display of @math content by using
@ -5088,10 +5117,6 @@
* maintaining.texi (Tags): Fix last change.
2008-02-02 Michael Albinus <michael.albinus@gmx.de>
* tramp.texi: Use new FSF's Back-Cover Text.
2008-01-31 Nick Roberts <nickrob@snap.net.nz>
* trouble.texi (Checklist): Direct users to emacs-devel@gnu.org.
@ -5134,8 +5159,6 @@
* search.texi (Query Replace): Make exp of query-replace more
self-contained, and clarify.
* cc-mode.texi (Getting Started): Change @ref to @pxref.
2007-12-15 Richard Stallman <rms@gnu.org>
* files.texi (Auto Save): Clarify definition of auto-saving.
@ -5687,6 +5710,11 @@
* frames.texi (Secondary Selection): Window clicked does not matter
when mouse-yank-at-point is non-nil.
2007-01-27 Eli Zaretskii <eliz@gnu.org>
* msdog.texi (ls in Lisp): Document ls-lisp-format-time-list and
ls-lisp-use-localized-time-format.
2007-01-16 Glenn Morris <rgm@gnu.org>
* abbrevs.texi (Editing Abbrevs): Describe how to disable a
@ -6014,6 +6042,11 @@
Change "Library Public License" to "Lesser Public License"
throughout. Use "yyyy" to represent year.
2006-09-12 Paul Eggert <eggert@cs.ucla.edu>
* misc.texi (Interactive Shell): EMACS is now set
to Emacs's absolute file name, not to "t".
2006-09-12 Reiner Steib <Reiner.Steib@gmx.de>
* files.texi (Visiting): Add index entry "open file".

View file

@ -1348,6 +1348,7 @@ not from an existing Emacs buffer.
@findex load
@findex load-library
@vindex load-prefer-newer
@cindex load path for Emacs Lisp
If an Emacs Lisp file is installed in the Emacs Lisp @dfn{load path}
(defined below), you can load it by typing @kbd{M-x load-library},
@ -1356,15 +1357,18 @@ command prompts for a @dfn{library name} rather than a file name; it
searches through each directory in the Emacs Lisp load path, trying to
find a file matching that library name. If the library name is
@samp{@var{foo}}, it tries looking for files named
@file{@var{foo}.elc}, @file{@var{foo}.el}, and lastly just
@file{@var{foo}}; the first one found is loaded. This command prefers
@file{.elc} files over @file{.el} files because compiled files load
and run faster. If it finds that @file{@var{lib}.el} is newer than
@file{@var{lib}.elc}, it issues a warning, in case someone made
@file{@var{foo}.elc}, @file{@var{foo}.el}, and @file{@var{foo}}. The
default behaviour is to load the first file found. This command
prefers @file{.elc} files over @file{.el} files because compiled files
load and run faster. If it finds that @file{@var{lib}.el} is newer
than @file{@var{lib}.elc}, it issues a warning, in case someone made
changes to the @file{.el} file and forgot to recompile it, but loads
the @file{.elc} file anyway. (Due to this behavior, you can save
unfinished edits to Emacs Lisp source files, and not recompile until
your changes are ready for use.)
your changes are ready for use.) If you set the option
@code{load-prefer-newer} to a non-@code{nil} value, however, then
rather than the procedure described above, Emacs loads whichever
version of the file is newest.
Emacs Lisp programs usually load Emacs Lisp files using the
@code{load} function. This is similar to @code{load-library}, but is

View file

@ -1440,3 +1440,18 @@ it onto a Dired buffer; this either moves, copies, or creates a link
to the file in that directory. Precisely which action is taken is
determined by the originating program. Dragging files out of a Dired
buffer is currently not supported.
@kindex ( @r{(Dired)}
@c )
@findex dired-hide-details-mode
@vindex dired-hide-details-hide-symlink-targets
@vindex dired-hide-details-hide-information-lines
@cindex Hide details in Dired.
The command @kbd{(} (@code{dired-hide-details-mode}) toggles whether
details, such as ownership or file permissions, are hidden. If the
variable @code{dired-hide-details-hide-symlink-targets} is
non-@code{nil} then targets of symbolic links are hidden as well. A
non-@code{nil} value for the variable
@code{dired-hide-details-hide-information-lines} means that all lines
other than the header and lines containing files and directories are
hidden.

View file

@ -190,6 +190,7 @@ Advanced Features
* Rmail:: Reading mail in Emacs.
* Gnus:: A flexible mail and news reader.
* Document View:: Viewing PDF, PS and DVI files.
* EWW:: A web browser in Emacs.
* Shell:: Executing shell commands from Emacs.
* Emacs Server:: Using Emacs as an editing server.
* Printing:: Printing hardcopies of buffers or regions.
@ -1338,9 +1339,12 @@ If you find GNU Emacs useful, please @strong{send a donation} to the
Free Software Foundation to support our work. Donations to the Free
Software Foundation are tax deductible in the US@. If you use GNU Emacs
at your workplace, please suggest that the company make a donation.
For more information on how you can help, see
To donate, see @url{https://my.fsf.org/donate/}.
For other ways in which you can help, see
@url{http://www.gnu.org/help/help.html}.
@c The command view-order-manuals uses this anchor.
@anchor{Printed Books}
We also sell hardcopy versions of this manual and @cite{An
Introduction to Programming in Emacs Lisp}, by Robert J. Chassell.
You can visit our online store at @url{http://shop.fsf.org/}.

View file

@ -1944,12 +1944,9 @@ point. Partial Completion mode offers other features extending
@findex image-mode
@findex image-toggle-display
@findex image-toggle-animation
@findex image-next-file
@findex image-previous-file
@cindex images, viewing
@cindex image animation
@cindex animated images
Visiting image files automatically selects Image mode. In this
major mode, you can type @kbd{C-c C-c} (@code{image-toggle-display})
to toggle between displaying the file as an image in the Emacs buffer,
@ -1962,10 +1959,29 @@ displayed. You can press @kbd{n} (@code{image-next-file}) and @kbd{p}
(@code{image-previous-file}) to visit the next image file and the
previous image file in the same directory, respectively.
If the image can be animated, the command @kbd{RET}
@findex image-toggle-animation
@findex image-next-frame
@findex image-previous-frame
@findex image-goto-frame
@findex image-increase-speed
@findex image-decrease-speed
@findex image-reset-speed
@findex image-reverse-speed
@vindex image-animate-loop
@cindex image animation
@cindex animated images
If the image can be animated, the command @kbd{RET}
(@code{image-toggle-animation}) starts or stops the animation.
Animation plays once, unless the option @code{image-animate-loop} is
non-@code{nil}.
non-@code{nil}. With @kbd{f} (@code{image-next-frame}) and @kbd{b}
(@code{image-previous-frame}) you can step through the individual
frames. Both commands accept a numeric prefix to step through several
frames at once. You can go to a specific frame with @kbd{F}
(@code{image-goto-frame}). The speed of the animation can be
increased by pressing @kbd{a +} (@code{image-increase-speed}) and
decreased by pressing @kbd{a -} (@code{image-decrease-speed}). With
@kbd{a r} (@code{image-reverse-speed}) the speed is reversed. You can
reset the speed with @kbd{a 0} (@code{image-reset-speed}).
@cindex ImageMagick support
@vindex imagemagick-enabled-types

View file

@ -439,6 +439,18 @@ associated with the current buffer, type @kbd{K}
(@code{doc-view-kill-proc-and-buffer}) kills the converter process and
the DocView buffer.
@node EWW
@section Web Browsing with EWW
@findex eww
@findex eww-open-file
@dfn{EWW}, the Emacs Web Wowser, is a web browser package for Emacs.
It allows browsing URLs within an Emacs buffer. The command @kbd{M-x
eww} can be used to open a URL or search the web. A file can be
opened using the command @kbd{M-x eww-open-file}. EWW can be used as
web browser for @code{browse-url}, see @ref{Browse-URL}. For full
details, see @ref{Top, EWW,, eww, The Emacs Web Wowser Manual}.
@node Shell
@section Running Shell Commands from Emacs
@cindex subshell

View file

@ -1198,9 +1198,8 @@ mailing list and newsgroup interconnect, so it does not matter which
one you use.)
@item
Look in the service directory for someone who might help you for a fee.
The service directory is found in the file named @file{etc/SERVICE} in the
Emacs distribution.
Look in the @uref{http://www.fsf.org/resources/service/, service
directory} for someone who might help you for a fee.
@end itemize
@ifnottex

View file

@ -1,3 +1,20 @@
2014-01-10 Stefan Monnier <monnier@iro.umontreal.ca>
* functions.texi (Advising Functions): New section.
* modes.texi (Running Hooks): Don't document with-wrapper-hook and
run-hook-wrapped any more.
(Hooks): Link to the new Advising Functions node.
* elisp.texi (Top): Don't include advice.texi.
* advice.texi: Remove.
* makefile.w32-in (srcs):
* Makefile.in (srcs): Adjust accordingly.
2014-01-09 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
* text.texi (Parsing HTML/XML): Document `shr-insert-document'.
* strings.texi (Text Comparison): Document `string-suffix-p'.
2014-01-07 Glenn Morris <rgm@gnu.org>
* files.texi (File Attributes): Fix superscipt typo.
@ -9378,7 +9395,7 @@
* variables.texi (Variable Aliases): Simplify.
* anti.texi, backups.texi, compile.texi, customization.texi:
* anti.texi, backups.texi, compile.texi, customize.texi:
* debugging.texi, display.texi, edebug.texi, errors.texi, frames.texi:
* functions.texi, help.texi, keymaps.texi, modes.texi, nonascii.texi:
* os.texi, processes.texi, searching.texi, strings.texi, text.texi:

View file

@ -76,7 +76,6 @@ srcs = \
$(srcdir)/elisp.texi \
$(emacsdir)/emacsver.texi \
$(srcdir)/abbrevs.texi \
$(srcdir)/advice.texi \
$(srcdir)/anti.texi \
$(srcdir)/backups.texi \
$(srcdir)/buffers.texi \

View file

@ -1,749 +0,0 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
@c Copyright (C) 1998-1999, 2001-2014 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@node Advising Functions
@chapter Advising Emacs Lisp Functions
@cindex advising functions
@cindex piece of advice
The @dfn{advice} feature lets you add to the existing definition of
a function, by @dfn{advising the function}. A function can have
multiple @dfn{pieces of advice}, each of which can be separately
defined, and separately enabled or disabled (@pxref{Activation of
Advice}). Each piece of advice can alter almost anything about the
function, including its argument list, what the function does when it
runs, and the value it returns.
Advice can be useful for altering the behavior of an existing
function without having to redefine the whole function. However, it
can be a source of bugs, since existing callers to the function may
assume the old behavior, and work incorrectly when the behavior is
changed by advice. Advice can also cause confusion in debugging, if
the person doing the debugging does not notice or remember that the
function has been modified by advice.
For these reasons, advice should be reserved for the cases where you
cannot modify a function's behavior in any other way. If it is
possible to do the same thing via a hook, that is preferable
(@pxref{Hooks}). If you simply want to change what a particular key
does, it may be better to write a new command, and remap the old
command's key bindings to the new one (@pxref{Remapping Commands}).
In particular, Emacs's own source files should not put advice on
functions in Emacs. (There are currently a few exceptions to this
convention, but we aim to correct them.)
Macros can also be advised, in much the same way as functions.
However, special forms (@pxref{Special Forms}) cannot be advised.
It is possible to advise a primitive (@pxref{What Is a Function}),
but one should typically @emph{not} do so, for two reasons. Firstly,
some primitives are used by the advice mechanism, and advising them
could cause an infinite recursion. Secondly, many primitives are
called directly from C, and such calls ignore advice; hence, one ends
up in a confusing situation where some calls (occurring from Lisp
code) obey the advice and other calls (from C code) do not.
@menu
* Simple Advice:: A simple example to explain the basics of advice.
* Defining Advice:: Detailed description of @code{defadvice}.
* Around-Advice:: Wrapping advice around a function's definition.
* Computed Advice:: ...is to @code{defadvice} as @code{fset} is to @code{defun}.
* Activation of Advice:: Advice doesn't do anything until you activate it.
* Enabling Advice:: You can enable or disable each piece of advice.
* Preactivation:: Preactivation is a way of speeding up the
loading of compiled advice.
* Argument Access in Advice:: How advice can access the function's arguments.
* Combined Definition:: How advice is implemented.
@end menu
@node Simple Advice
@section A Simple Advice Example
The command @code{next-line} moves point down vertically one or more
lines; it is the standard binding of @kbd{C-n}. When used on the last
line of the buffer, this command inserts a newline to create a line to
move to if @code{next-line-add-newlines} is non-@code{nil} (its default
is @code{nil}.)
Suppose you wanted to add a similar feature to @code{previous-line},
which would insert a new line at the beginning of the buffer for the
command to move to (when @code{next-line-add-newlines} is
non-@code{nil}). How could you do this?
You could do it by redefining the whole function, but that is not
modular. The advice feature provides a cleaner alternative: you can
effectively add your code to the existing function definition, without
actually changing or even seeing that definition. Here is how to do
this:
@example
(defadvice previous-line (before next-line-at-end
(&optional arg try-vscroll))
"Insert an empty line when moving up from the top line."
(if (and next-line-add-newlines (= arg 1)
(save-excursion (beginning-of-line) (bobp)))
(progn
(beginning-of-line)
(newline))))
@end example
This expression defines a @dfn{piece of advice} for the function
@code{previous-line}. This piece of advice is named
@code{next-line-at-end}, and the symbol @code{before} says that it is
@dfn{before-advice} which should run before the regular definition of
@code{previous-line}. @code{(&optional arg try-vscroll)} specifies
how the advice code can refer to the function's arguments.
When this piece of advice runs, it creates an additional line, in the
situation where that is appropriate, but does not move point to that
line. This is the correct way to write the advice, because the normal
definition will run afterward and will move back to the newly inserted
line.
Defining the advice doesn't immediately change the function
@code{previous-line}. That happens when you @dfn{activate} the advice,
like this:
@example
(ad-activate 'previous-line)
@end example
@noindent
This is what actually begins to use the advice that has been defined so
far for the function @code{previous-line}. Henceforth, whenever that
function is run, whether invoked by the user with @kbd{C-p} or
@kbd{M-x}, or called from Lisp, it runs the advice first, and its
regular definition second.
This example illustrates before-advice, which is one @dfn{class} of
advice: it runs before the function's base definition. There are two
other advice classes: @dfn{after-advice}, which runs after the base
definition, and @dfn{around-advice}, which lets you specify an
expression to wrap around the invocation of the base definition.
@node Defining Advice
@section Defining Advice
@cindex defining advice
@cindex advice, defining
To define a piece of advice, use the macro @code{defadvice}. A call
to @code{defadvice} has the following syntax, which is based on the
syntax of @code{defun} and @code{defmacro}, but adds more:
@findex defadvice
@example
(defadvice @var{function} (@var{class} @var{name}
@r{[}@var{position}@r{]} @r{[}@var{arglist}@r{]}
@var{flags}...)
@r{[}@var{documentation-string}@r{]}
@r{[}@var{interactive-form}@r{]}
@var{body-forms}...)
@end example
@noindent
Here, @var{function} is the name of the function (or macro) to be
advised. From now on, we will write just ``function'' when describing
the entity being advised, but this always includes macros.
In place of the argument list in an ordinary definition, an advice
definition calls for several different pieces of information.
@cindex class of advice
@cindex before-advice
@cindex after-advice
@cindex around-advice
@var{class} specifies the @dfn{class} of the advice---one of @code{before},
@code{after}, or @code{around}. Before-advice runs before the function
itself; after-advice runs after the function itself; around-advice is
wrapped around the execution of the function itself. After-advice and
around-advice can override the return value by setting
@code{ad-return-value}.
@defvar ad-return-value
While advice is executing, after the function's original definition has
been executed, this variable holds its return value, which will
ultimately be returned to the caller after finishing all the advice.
After-advice and around-advice can arrange to return some other value
by storing it in this variable.
@end defvar
The argument @var{name} is the name of the advice, a non-@code{nil}
symbol. The advice name uniquely identifies one piece of advice, within all
the pieces of advice in a particular class for a particular
@var{function}. The name allows you to refer to the piece of
advice---to redefine it, or to enable or disable it.
The optional @var{position} specifies where, in the current list of
advice of the specified @var{class}, this new advice should be placed.
It should be either @code{first}, @code{last} or a number that specifies
a zero-based position (@code{first} is equivalent to 0). If no position
is specified, the default is @code{first}. Position values outside the
range of existing positions in this class are mapped to the beginning or
the end of the range, whichever is closer. The @var{position} value is
ignored when redefining an existing piece of advice.
The optional @var{arglist} can be used to define the argument list for
the sake of advice. This becomes the argument list of the combined
definition that is generated in order to run the advice (@pxref{Combined
Definition}). Therefore, the advice expressions can use the argument
variables in this list to access argument values.
The argument list used in advice need not be the same as the argument
list used in the original function, but must be compatible with it, so
that it can handle the ways the function is actually called. If two
pieces of advice for a function both specify an argument list, they must
specify the same argument list.
@xref{Argument Access in Advice}, for more information about argument
lists and advice, and a more flexible way for advice to access the
arguments.
The remaining elements, @var{flags}, are symbols that specify further
information about how to use this piece of advice. Here are the valid
symbols and their meanings:
@table @code
@item activate
Activate the advice for @var{function} now. Changes in a function's
advice always take effect the next time you activate advice for the
function; this flag says to do so, for @var{function}, immediately after
defining this piece of advice.
@cindex forward advice
This flag has no immediate effect if @var{function} itself is not defined yet (a
situation known as @dfn{forward advice}), because it is impossible to
activate an undefined function's advice. However, defining
@var{function} will automatically activate its advice.
@item protect
Protect this piece of advice against non-local exits and errors in
preceding code and advice. Protecting advice places it as a cleanup in
an @code{unwind-protect} form, so that it will execute even if the
previous code gets an error or uses @code{throw}. @xref{Cleanups}.
@item compile
Compile the combined definition that is used to run the advice. This
flag is ignored unless @code{activate} is also specified.
@xref{Combined Definition}.
@item disable
Initially disable this piece of advice, so that it will not be used
unless subsequently explicitly enabled. @xref{Enabling Advice}.
@item preactivate
Activate advice for @var{function} when this @code{defadvice} is
compiled or macroexpanded. This generates a compiled advised definition
according to the current advice state, which will be used during
activation if appropriate. @xref{Preactivation}.
This is useful only if this @code{defadvice} is byte-compiled.
@end table
The optional @var{documentation-string} serves to document this piece of
advice. When advice is active for @var{function}, the documentation for
@var{function} (as returned by @code{documentation}) combines the
documentation strings of all the advice for @var{function} with the
documentation string of its original function definition.
The optional @var{interactive-form} form can be supplied to change the
interactive behavior of the original function. If more than one piece
of advice has an @var{interactive-form}, then the first one (the one
with the smallest position) found among all the advice takes precedence.
The possibly empty list of @var{body-forms} specifies the body of the
advice. The body of an advice can access or change the arguments, the
return value, the binding environment, and perform any other kind of
side effect.
@strong{Warning:} When you advise a macro, keep in mind that macros are
expanded when a program is compiled, not when a compiled program is run.
All subroutines used by the advice need to be available when the byte
compiler expands the macro.
@deffn Command ad-unadvise function
This command deletes all pieces of advice from @var{function}.
@end deffn
@deffn Command ad-unadvise-all
This command deletes all pieces of advice from all functions.
@end deffn
@node Around-Advice
@section Around-Advice
Around-advice lets you ``wrap'' a Lisp expression ``around'' the
original function definition. You specify where the original function
definition should go by means of the special symbol @code{ad-do-it}.
Where this symbol occurs inside the around-advice body, it is replaced
with a @code{progn} containing the forms of the surrounded code. Here
is an example:
@example
(defadvice foo (around foo-around)
"Ignore case in `foo'."
(let ((case-fold-search t))
ad-do-it))
@end example
@noindent
Its effect is to make sure that case is ignored in
searches when the original definition of @code{foo} is run.
@defvar ad-do-it
This is not really a variable, rather a place-holder that looks like a
variable. You use it in around-advice to specify the place to run the
function's original definition and other ``earlier'' around-advice.
@end defvar
If the around-advice does not use @code{ad-do-it}, then it does not run
the original function definition. This provides a way to override the
original definition completely. (It also overrides lower-positioned
pieces of around-advice).
If the around-advice uses @code{ad-do-it} more than once, the original
definition is run at each place. In this way, around-advice can execute
the original definition (and lower-positioned pieces of around-advice)
several times. Another way to do that is by using @code{ad-do-it}
inside of a loop.
@node Computed Advice
@section Computed Advice
The macro @code{defadvice} resembles @code{defun} in that the code for
the advice, and all other information about it, are explicitly stated in
the source code. You can also create advice whose details are computed,
using the function @code{ad-add-advice}.
@defun ad-add-advice function advice class position
Calling @code{ad-add-advice} adds @var{advice} as a piece of advice to
@var{function} in class @var{class}. The argument @var{advice} has
this form:
@example
(@var{name} @var{protected} @var{enabled} @var{definition})
@end example
@noindent
Here, @var{protected} and @var{enabled} are flags; if @var{protected}
is non-@code{nil}, the advice is protected against non-local exits
(@pxref{Defining Advice}), and if @var{enabled} is @code{nil} the
advice is initially disabled (@pxref{Enabling Advice}).
@var{definition} should have the form
@example
(advice . @var{lambda})
@end example
@noindent
where @var{lambda} is a lambda expression; this lambda expression is
called in order to perform the advice. @xref{Lambda Expressions}.
If the @var{function} argument to @code{ad-add-advice} already has one
or more pieces of advice in the specified @var{class}, then
@var{position} specifies where in the list to put the new piece of
advice. The value of @var{position} can either be @code{first},
@code{last}, or a number (counting from 0 at the beginning of the
list). Numbers outside the range are mapped to the beginning or the
end of the range, whichever is closer. The @var{position} value is
ignored when redefining an existing piece of advice.
If @var{function} already has a piece of @var{advice} with the same
name, then the position argument is ignored and the old advice is
replaced with the new one.
@end defun
@node Activation of Advice
@section Activation of Advice
@cindex activating advice
@cindex advice, activating
By default, advice does not take effect when you define it---only when
you @dfn{activate} advice for the function. However, the advice will
be activated automatically if you define or redefine the function
later. You can request the activation of advice for a function when
you define the advice, by specifying the @code{activate} flag in the
@code{defadvice}; or you can activate the advice separately by calling
the function @code{ad-activate} or one of the other activation
commands listed below.
Separating the activation of advice from the act of defining it permits
you to add several pieces of advice to one function efficiently, without
redefining the function over and over as each advice is added. More
importantly, it permits defining advice for a function before that
function is actually defined.
When a function's advice is first activated, the function's original
definition is saved, and all enabled pieces of advice for that function
are combined with the original definition to make a new definition.
(Pieces of advice that are currently disabled are not used; see
@ref{Enabling Advice}.) This definition is installed, and optionally
byte-compiled as well, depending on conditions described below.
In all of the commands to activate advice, if @var{compile} is
@code{t} (or anything but @code{nil} or a negative number), the
command also compiles the combined definition which implements the
advice. If it is @code{nil} or a negative number, what happens
depends on @code{ad-default-compilation-action} as described below.
@deffn Command ad-activate function &optional compile
This command activates all the advice defined for @var{function}.
@end deffn
Activating advice does nothing if @var{function}'s advice is already
active. But if there is new advice, added since the previous time you
activated advice for @var{function}, it activates the new advice.
@deffn Command ad-deactivate function
This command deactivates the advice for @var{function}.
@cindex deactivating advice
@c @cindex advice, deactivating "advice, activating" is just above
@end deffn
@deffn Command ad-update function &optional compile
This command activates the advice for @var{function}
if its advice is already activated. This is useful
if you change the advice.
@end deffn
@deffn Command ad-activate-all &optional compile
This command activates the advice for all functions.
@end deffn
@deffn Command ad-deactivate-all
This command deactivates the advice for all functions.
@end deffn
@deffn Command ad-update-all &optional compile
This command activates the advice for all functions
whose advice is already activated. This is useful
if you change the advice of some functions.
@end deffn
@deffn Command ad-activate-regexp regexp &optional compile
This command activates all pieces of advice whose names match
@var{regexp}. More precisely, it activates all advice for any function
which has at least one piece of advice that matches @var{regexp}.
@end deffn
@deffn Command ad-deactivate-regexp regexp
This command deactivates all pieces of advice whose names match
@var{regexp}. More precisely, it deactivates all advice for any
function which has at least one piece of advice that matches
@var{regexp}.
@end deffn
@deffn Command ad-update-regexp regexp &optional compile
This command activates pieces of advice whose names match @var{regexp},
but only those for functions whose advice is already activated.
@cindex reactivating advice
Reactivating a function's advice is useful for putting into effect all
the changes that have been made in its advice (including enabling and
disabling specific pieces of advice; @pxref{Enabling Advice}) since the
last time it was activated.
@end deffn
@deffn Command ad-start-advice
Turn on automatic advice activation when a function is defined or
redefined. This is the default mode.
@end deffn
@deffn Command ad-stop-advice
Turn off automatic advice activation when a function is defined or
redefined.
@end deffn
@defopt ad-default-compilation-action
This variable controls whether to compile the combined definition
that results from activating advice for a function.
A value of @code{always} specifies to compile unconditionally.
A value of @code{never} specifies never compile the advice.
A value of @code{maybe} specifies to compile if the byte compiler is
already loaded. A value of @code{like-original} specifies to compile
the advice if the original definition of the advised function is
compiled or a built-in function.
This variable takes effect only if the @var{compile} argument of
@code{ad-activate} (or any of the above functions) did not force
compilation.
@end defopt
If the advised definition was constructed during ``preactivation''
(@pxref{Preactivation}), then that definition must already be compiled,
because it was constructed during byte-compilation of the file that
contained the @code{defadvice} with the @code{preactivate} flag.
@node Enabling Advice
@section Enabling and Disabling Advice
@cindex enabling advice
@cindex advice, enabling and disabling
@cindex disabling advice
Each piece of advice has a flag that says whether it is enabled or
not. By enabling or disabling a piece of advice, you can turn it on
and off without having to undefine and redefine it. For example, here is
how to disable a particular piece of advice named @code{my-advice} for
the function @code{foo}:
@example
(ad-disable-advice 'foo 'before 'my-advice)
@end example
This function by itself only changes the enable flag for a piece of
advice. To make the change take effect in the advised definition, you
must activate the advice for @code{foo} again:
@example
(ad-activate 'foo)
@end example
@deffn Command ad-disable-advice function class name
This command disables the piece of advice named @var{name} in class
@var{class} on @var{function}.
@end deffn
@deffn Command ad-enable-advice function class name
This command enables the piece of advice named @var{name} in class
@var{class} on @var{function}.
@end deffn
You can also disable many pieces of advice at once, for various
functions, using a regular expression. As always, the changes take real
effect only when you next reactivate advice for the functions in
question.
@deffn Command ad-disable-regexp regexp
This command disables all pieces of advice whose names match
@var{regexp}, in all classes, on all functions.
@end deffn
@deffn Command ad-enable-regexp regexp
This command enables all pieces of advice whose names match
@var{regexp}, in all classes, on all functions.
@end deffn
@node Preactivation
@section Preactivation
@cindex preactivating advice
@cindex advice, preactivating
Constructing a combined definition to execute advice is moderately
expensive. When a library advises many functions, this can make loading
the library slow. In that case, you can use @dfn{preactivation} to
construct suitable combined definitions in advance.
To use preactivation, specify the @code{preactivate} flag when you
define the advice with @code{defadvice}. This @code{defadvice} call
creates a combined definition which embodies this piece of advice
(whether enabled or not) plus any other currently enabled advice for the
same function, and the function's own definition. If the
@code{defadvice} is compiled, that compiles the combined definition
also.
When the function's advice is subsequently activated, if the enabled
advice for the function matches what was used to make this combined
definition, then the existing combined definition is used, thus avoiding
the need to construct one. Thus, preactivation never causes wrong
results---but it may fail to do any good, if the enabled advice at the
time of activation doesn't match what was used for preactivation.
Here are some symptoms that can indicate that a preactivation did not
work properly, because of a mismatch.
@itemize @bullet
@item
Activation of the advised
function takes longer than usual.
@item
The byte compiler gets
loaded while an advised function gets activated.
@item
@code{byte-compile} is included in the value of @code{features} even
though you did not ever explicitly use the byte compiler.
@end itemize
Compiled preactivated advice works properly even if the function itself
is not defined until later; however, the function needs to be defined
when you @emph{compile} the preactivated advice.
There is no elegant way to find out why preactivated advice is not being
used. What you can do is to trace the function
@code{ad-cache-id-verification-code} (with the function
@code{trace-function-background}) before the advised function's advice
is activated. After activation, check the value returned by
@code{ad-cache-id-verification-code} for that function: @code{verified}
means that the preactivated advice was used, while other values give
some information about why they were considered inappropriate.
@strong{Warning:} There is one known case that can make preactivation
fail, in that a preconstructed combined definition is used even though
it fails to match the current state of advice. This can happen when two
packages define different pieces of advice with the same name, in the
same class, for the same function. But you should avoid that anyway.
@node Argument Access in Advice
@section Argument Access in Advice
The simplest way to access the arguments of an advised function in the
body of a piece of advice is to use the same names that the function
definition uses. To do this, you need to know the names of the argument
variables of the original function.
While this simple method is sufficient in many cases, it has a
disadvantage: it is not robust, because it hard-codes the argument names
into the advice. If the definition of the original function changes,
the advice might break.
Another method is to specify an argument list in the advice itself.
This avoids the need to know the original function definition's argument
names, but it has a limitation: all the advice on any particular
function must use the same argument list, because the argument list
actually used for all the advice comes from the first piece of advice
for that function.
A more robust method is to use macros that are translated into the
proper access forms at activation time, i.e., when constructing the
advised definition. Access macros access actual arguments by their
(zero-based) position, regardless of how these actual arguments get
distributed onto the argument variables of a function. This is robust
because in Emacs Lisp the meaning of an argument is strictly
determined by its position in the argument list.
@defmac ad-get-arg position
This returns the actual argument that was supplied at @var{position}.
@end defmac
@defmac ad-get-args position
This returns the list of actual arguments supplied starting at
@var{position}.
@end defmac
@defmac ad-set-arg position value
This sets the value of the actual argument at @var{position} to
@var{value}
@end defmac
@defmac ad-set-args position value-list
This sets the list of actual arguments starting at @var{position} to
@var{value-list}.
@end defmac
Now an example. Suppose the function @code{foo} is defined as
@example
(defun foo (x y &optional z &rest r) ...)
@end example
@noindent
and is then called with
@example
(foo 0 1 2 3 4 5 6)
@end example
@noindent
which means that @var{x} is 0, @var{y} is 1, @var{z} is 2 and @var{r} is
@code{(3 4 5 6)} within the body of @code{foo}. Here is what
@code{ad-get-arg} and @code{ad-get-args} return in this case:
@example
(ad-get-arg 0) @result{} 0
(ad-get-arg 1) @result{} 1
(ad-get-arg 2) @result{} 2
(ad-get-arg 3) @result{} 3
(ad-get-args 2) @result{} (2 3 4 5 6)
(ad-get-args 4) @result{} (4 5 6)
@end example
Setting arguments also makes sense in this example:
@example
(ad-set-arg 5 "five")
@end example
@noindent
has the effect of changing the sixth argument to @code{"five"}. If this
happens in advice executed before the body of @code{foo} is run, then
@var{r} will be @code{(3 4 "five" 6)} within that body.
Here is an example of setting a tail of the argument list:
@example
(ad-set-args 0 '(5 4 3 2 1 0))
@end example
@noindent
If this happens in advice executed before the body of @code{foo} is run,
then within that body, @var{x} will be 5, @var{y} will be 4, @var{z}
will be 3, and @var{r} will be @code{(2 1 0)} inside the body of
@code{foo}.
These argument constructs are not really implemented as Lisp macros.
Instead they are implemented specially by the advice mechanism.
@node Combined Definition
@section The Combined Definition
Suppose that a function has @var{n} pieces of before-advice
(numbered from 0 through @var{n}@minus{}1), @var{m} pieces of
around-advice and @var{k} pieces of after-advice. Assuming no piece
of advice is protected, the combined definition produced to implement
the advice for a function looks like this:
@example
(lambda @var{arglist}
@r{[} @r{[}@var{advised-docstring}@r{]} @r{[}(interactive ...)@r{]} @r{]}
(let (ad-return-value)
@r{before-0-body-form}...
....
@r{before-@var{n}@minus{}1-body-form}...
@r{around-0-body-form}...
@r{around-1-body-form}...
....
@r{around-@var{m}@minus{}1-body-form}...
(setq ad-return-value
@r{apply original definition to @var{arglist}})
@r{end-of-around-@var{m}@minus{}1-body-form}...
....
@r{end-of-around-1-body-form}...
@r{end-of-around-0-body-form}...
@r{after-0-body-form}...
....
@r{after-@var{k}@minus{}1-body-form}...
ad-return-value))
@end example
Macros are redefined as macros, which means adding @code{macro} to
the beginning of the combined definition.
The interactive form is present if the original function or some piece
of advice specifies one. When an interactive primitive function is
advised, advice uses a special method: it calls the primitive with
@code{call-interactively} so that it will read its own arguments.
In this case, the advice cannot access the arguments.
The body forms of the various advice in each class are assembled
according to their specified order. The forms of around-advice @var{l}
are included in one of the forms of around-advice @var{l} @minus{} 1.
The innermost part of the around advice onion is
@display
apply original definition to @var{arglist}
@end display
@noindent
whose form depends on the type of the original function. The variable
@code{ad-return-value} is set to whatever this returns. The variable is
visible to all pieces of advice, which can access and modify it before
it is actually returned from the advised function.
The semantic structure of advised functions that contain protected
pieces of advice is the same. The only difference is that
@code{unwind-protect} forms ensure that the protected advice gets
executed even if some previous piece of advice had an error or a
non-local exit. If any around-advice is protected, then the whole
around-advice onion is protected as a result.

View file

@ -194,7 +194,6 @@ To view this manual in other formats, click
* Loading:: Reading files of Lisp code into Lisp.
* Byte Compilation:: Compilation makes programs run faster.
* Advising Functions:: Adding to the definition of a function.
* Debugging:: Tools and tips for debugging Lisp programs.
* Read and Print:: Converting Lisp objects to text and back.
@ -614,19 +613,6 @@ Byte Compilation
* Byte-Code Objects:: The data type used for byte-compiled functions.
* Disassembly:: Disassembling byte-code; how to read byte-code.
Advising Emacs Lisp Functions
* Simple Advice:: A simple example to explain the basics of advice.
* Defining Advice:: Detailed description of @code{defadvice}.
* Around-Advice:: Wrapping advice around a function's definition.
* Computed Advice:: ...is to @code{defadvice} as @code{fset} is to @code{defun}.
* Activation of Advice:: Advice doesn't do anything until you activate it.
* Enabling Advice:: You can enable or disable each piece of advice.
* Preactivation:: Preactivation is a way of speeding up the
loading of compiled advice.
* Argument Access in Advice:: How advice can access the function's arguments.
* Combined Definition:: How advice is implemented.
Debugging Lisp Programs
* Debugger:: A debugger for the Emacs Lisp evaluator.
@ -1561,7 +1547,6 @@ Object Internals
@include customize.texi
@include loading.texi
@include compile.texi
@include advice.texi
@c This includes edebug.texi.
@include debugging.texi

View file

@ -21,6 +21,7 @@ define them.
* Function Cells:: Accessing or setting the function definition
of a symbol.
* Closures:: Functions that enclose a lexical environment.
* Advising Functions:: Adding to the definition of a function.
* Obsolete Functions:: Declaring functions obsolete.
* Inline Functions:: Functions that the compiler will expand inline.
* Declare Form:: Adding additional information about a function.
@ -1077,12 +1078,10 @@ This function stores @var{definition} in the function cell of
this is not checked. The argument @var{symbol} is an ordinary evaluated
argument.
The primary use of this function is as a subroutine by constructs that
define or alter functions, like @code{defadvice} (@pxref{Advising
Functions}). (If @code{defun} were not a primitive, it could be
written as a Lisp macro using @code{fset}.) You can also use it to
give a symbol a function definition that is not a list, e.g., a
keyboard macro (@pxref{Keyboard Macros}):
The primary use of this function is as a subroutine by constructs that define
or alter functions, like @code{defun} or @code{advice-add} (@pxref{Advising
Functions}). You can also use it to give a symbol a function definition that
is not a function, e.g., a keyboard macro (@pxref{Keyboard Macros}):
@example
;; @r{Define a named keyboard macro.}
@ -1133,6 +1132,269 @@ However, the fact that the internal structure of a closure is
implementation detail. For this reason, we recommend against directly
examining or altering the structure of closure objects.
@node Advising Functions
@section Advising Emacs Lisp Functions
@cindex advising functions
@cindex piece of advice
Any variable or object field which holds a function can be modified with the
appropriate setter function, such as @code{set-process-filter}, @code{fset}, or
@code{setq}, but those can be too blunt, completely throwing away the
previous value.
In order to modify such hooks in a more controlled way, Emacs provides the
macros @code{add-function} and @code{remove-function}, which let you modify the
existing function value by composing it with another function.
For example, in order to trace the calls to a process filter, you can use:
@example
(add-function :before (process-filter proc) #'my-tracing-function)
@end example
This will cause the process's output to be passed first to
@code{my-tracing-function} and then to the original process filter.
When you're done with it, you can revert to the untraced behavior with:
@example
(remove-function (process-filter proc) #'my-tracing-function)
@end example
The argument @code{:before} specifies how the two functions are composed, since
there are many different ways to do it. The added function is also called an
@emph{advice}.
The function cell of a symbol can be manipulated similarly, but since it can
contain other things than a plain function, you have to use @var{advice-add}
and @var{advice-remove} instead, which
@c use @var{add-function} and @var{remove-function} internally, but
know how to handle cases such as when the function cell holds a macro rather
than function, or when the function is autoloaded so the advice's activation
needs to be postponed.
@menu
* Advising Primitives:: Primitives to Manipulate Advices
* Advising Named Functions:: Advising Named Functions
@end menu
@node Advising Primitives
@subsection Primitives to manipulate advice
@defmac add-function where place function &optional props
This macro is the handy way to add the advice @var{function} to the function
stored in @var{place} (@pxref{Generalized Variables}).
@var{where} determines how @var{function} is composed with the
existing function. It can be one of the following:
@table @code
@item :before
Call @var{function} before the old function. Both functions receive the
same arguments, and the return value of the composition is the return value of
the old function. More specifically, the composition of the two functions
behaves like:
@example
(lambda (&rest r) (apply @var{function} r) (apply @var{oldfun} r))
@end example
This is similar to @code{(add-hook @var{hook} @var{function})}, except that it
applies to single-function hooks rather than normal hooks.
@item :after
Call @var{function} after the old function. Both functions receive the
same arguments, and the return value of the composition is the return value of
the old function. More specifically, the composition of the two functions
behaves like:
@example
(lambda (&rest r) (prog1 (apply @var{oldfun} r) (apply @var{function} r)))
@end example
This is similar to @code{(add-hook @var{hook} @var{function} nil 'append)},
except that it applies to single-function hooks rather than normal hooks.
@item :override
This completely replaces the old function with the new one. The old function
can of course be recovered if you later call @code{remove-function}.
@item :around
Call @var{function} instead of the old function, but provide the old function
as an extra argument to @var{function}. This is the most flexible composition.
For example, it lets you call the old function with different arguments, or
within a let-binding, or you can sometimes delegate the work to the old
function and sometimes override it completely. More specifically, the
composition of the two functions behaves like:
@example
(lambda (&rest r) (apply @var{function} @var{oldfun} r))
@end example
@item :before-while
Call @var{function} before the old function and don't call the old
function if @var{function} returns @code{nil}. Both functions receive the
same arguments, and the return value of the composition is the return value of
the old function. More specifically, the composition of the two functions
behaves like:
@example
(lambda (&rest r) (and (apply @var{function} r) (apply @var{oldfun} r)))
@end example
This is reminiscent of @code{(add-hook @var{hook} @var{function})}, when
@var{hook} is run via @code{run-hook-with-args-until-failure}.
@item :before-until
Call @var{function} before the old function and only call the old function if
@var{function} returns @code{nil}. More specifically, the composition of the
two functions behaves like:
@example
(lambda (&rest r) (or (apply @var{function} r) (apply @var{oldfun} r)))
@end example
This is reminiscent of @code{(add-hook @var{hook} @var{function})}, when
@var{hook} is run via @code{run-hook-with-args-until-success}.
@item :after-while
Call @var{function} after the old function and only if the old function
returned non-@code{nil}. Both functions receive the same arguments, and the
return value of the composition is the return value of @var{function}.
More specifically, the composition of the two functions behaves like:
@example
(lambda (&rest r) (and (apply @var{oldfun} r) (apply @var{function} r)))
@end example
This is reminiscent of @code{(add-hook @var{hook} @var{function} nil 'append)},
when @var{hook} is run via @code{run-hook-with-args-until-failure}.
@item :after-until
Call @var{function} after the old function and only if the old function
returned @code{nil}. More specifically, the composition of the two functions
behaves like:
@example
(lambda (&rest r) (or (apply @var{oldfun} r) (apply @var{function} r)))
@end example
This is reminiscent of @code{(add-hook @var{hook} @var{function} nil 'append)},
when @var{hook} is run via @code{run-hook-with-args-until-success}.
@item :filter-args
Call @var{function} first and use the result (which should be a list) as the
new arguments to pass to the old function. More specifically, the composition
of the two functions behaves like:
@example
(lambda (&rest r) (apply @var{oldfun} (funcall @var{function} r)))
@end example
@item :filter-return
Call the old function first and pass the result to @var{function}.
More specifically, the composition of the two functions behaves like:
@example
(lambda (&rest r) (funcall @var{function} (apply @var{oldfun} r)))
@end example
@end table
When modifying a variable (whose name will usually end with @code{-function}),
you can choose whether @var{function} is used globally or only in the current
buffer: if @var{place} is just a symbol, then @var{function} is added to the
global value of @var{place}. Whereas if @var{place} is of the form
@code{(local @var{symbol})}, where @var{symbol} is an expression which returns
the variable name, then @var{function} will only be added in the
current buffer.
Every function added with @code{add-function} can be accompanied by an
association list of properties @var{props}. Currently only two of those
properties have a special meaning:
@table @code
@item name
This gives a name to the advice, which @code{remove-function} can use to
identify which function to remove. Typically used when @var{function} is an
anonymous function.
@item depth
This specifies where to place the advice, in case several advices are present.
By default, the depth is 0. A depth of 100 indicates that this advice should
be kept as deep as possible, whereas a depth of -100 indicates that it
should stay as the outermost advice. When two advices specify the same depth,
the most recently added advice will be outermost.
@end table
@end defmac
@defmac remove-function place function
This macro removes @var{function} from the function stored in
@var{place}. This only works if @var{function} was added to @var{place}
using @code{add-function}.
@var{function} is compared with functions added to @var{place} using
@code{equal}, to try and make it work also with lambda expressions. It is
additionally compared also with the @code{name} property of the functions added
to @var{place}, which can be more reliable than comparing lambda expressions
using @code{equal}.
@end defmac
@defun advice-function-member-p advice function-def
Return non-@code{nil} if @var{advice} is already in @var{function-def}.
Like for @code{remove-function} above, instead of @var{advice} being the actual
function, it can also be the @code{name} of the piece of advice.
@end defun
@defun advice-function-mapc f function-def
Call the function @var{f} for every advice that was added to
@var{function-def}. @var{f} is called with two arguments: the advice function
and its properties.
@end defun
@node Advising Named Functions
@subsection Advising Named Functions
A common use of advice is for named functions and macros.
Since @var{add-function} does not know how to deal with macros and autoloaded
functions, Emacs provides a separate set of functions to manipulate pieces of
advice applied to named functions.
Advice can be useful for altering the behavior of an existing
function without having to redefine the whole function. However, it
can be a source of bugs, since existing callers to the function may
assume the old behavior, and work incorrectly when the behavior is
changed by advice. Advice can also cause confusion in debugging, if
the person doing the debugging does not notice or remember that the
function has been modified by advice.
For these reasons, advice should be reserved for the cases where you
cannot modify a function's behavior in any other way. If it is
possible to do the same thing via a hook, that is preferable
(@pxref{Hooks}). If you simply want to change what a particular key
does, it may be better to write a new command, and remap the old
command's key bindings to the new one (@pxref{Remapping Commands}).
In particular, Emacs's own source files should not put advice on
functions in Emacs. (There are currently a few exceptions to this
convention, but we aim to correct them.)
Macros can also be advised, in much the same way as functions.
However, special forms (@pxref{Special Forms}) cannot be advised.
It is possible to advise a primitive (@pxref{What Is a Function}),
but one should typically @emph{not} do so, for two reasons. Firstly,
some primitives are used by the advice mechanism, and advising them
could cause an infinite recursion. Secondly, many primitives are
called directly from C, and such calls ignore advice; hence, one ends
up in a confusing situation where some calls (occurring from Lisp
code) obey the advice and other calls (from C code) do not.
@defun advice-add symbol where function &optional props
Add the advice @var{function} to the named function @var{symbol}.
@var{where} and @var{props} have the same meaning as for @code{add-function}
(@pxref{Advising Primitives}).
@end defun
@defun advice-remove symbol function
Remove the advice @var{function} from the named function @var{symbol}.
@var{function} can also be the @code{name} of an advice.
@end defun
@defun advice-member-p function symbol
Return non-@code{nil} if the advice @var{function} is already in the named
function @var{symbol}. @var{function} can also be the @code{name} of
an advice.
@end defun
@defun advice-mapc function symbol
Call @var{function} for every advice that was added to the named function
@var{symbol}. @var{function} is called with two arguments: the advice function
and its properties.
@end defun
@node Obsolete Functions
@section Declaring Functions Obsolete
@cindex obsolete functions

View file

@ -49,7 +49,6 @@ texinputdir = $(srcdir)\..\..\nt\envadd.bat \
srcs = \
$(emacsdir)/emacsver.texi \
$(srcdir)/abbrevs.texi \
$(srcdir)/advice.texi \
$(srcdir)/anti.texi \
$(srcdir)/backups.texi \
$(srcdir)/buffers.texi \

View file

@ -69,11 +69,13 @@ functions are called with arguments, or their return values are used
in some way. The hook's documentation says how the functions are
called. You can use @code{add-hook} to add a function to an abnormal
hook, but you must write the function to follow the hook's calling
convention.
convention. By convention, abnormal hook names end in @samp{-functions}.
By convention, abnormal hook names end in @samp{-functions}. If the
variable's name ends in @samp{-function}, then its value is just a single
function, not a list of functions.
@cindex single-function hook
If the variable's name ends in @samp{-function}, then its value is
just a single function, not a list of functions. @code{add-hook} cannot be
used to modify such a @emph{single function hook}, and you have to use
@code{add-function} instead (@pxref{Advising Functions}).
@menu
* Running Hooks:: How to run a hook.
@ -129,47 +131,6 @@ non-@code{nil} value, it returns that value; otherwise it returns
@code{nil}.
@end defun
@defmac with-wrapper-hook hook args &rest body
This macro runs the abnormal hook @code{hook} as a series of nested
``wrapper functions'' around the @var{body} forms. The effect is
similar to nested @code{around} advices (@pxref{Around-Advice}).
Each hook function should accept an argument list consisting of a function
@var{fun}, followed by the additional arguments listed in @var{args}.
The first hook function is passed a function @var{fun} that, if it is
called with arguments @var{args}, performs @var{body} (i.e., the default
operation). The @var{fun} passed to each successive hook function is
constructed from all the preceding hook functions (and @var{body}); if
this @var{fun} is called with arguments @var{args}, it does what the
@code{with-wrapper-hook} call would if the preceding hook functions were
the only ones in @var{hook}.
Each hook function may call its @var{fun} argument as many times as it
wishes, including never. In that case, such a hook function acts to
replace the default definition altogether, and any preceding hook
functions. Of course, a subsequent hook function may do the same thing.
Each hook function definition is used to construct the @var{fun} passed
to the next hook function in @var{hook}, if any. The last or
``outermost'' @var{fun} is called once to produce the overall effect.
When might you want to use a wrapper hook? The function
@code{filter-buffer-substring} illustrates a common case. There is a
basic functionality, performed by @var{body}---in this case, to extract
a buffer-substring. Then any number of hook functions can act in
sequence to modify that string, before returning the final result.
A wrapper-hook also allows for a hook function to completely replace the
default definition (by not calling @var{fun}).
@end defmac
@defun run-hook-wrapped hook wrap-function &rest args
This function is similar to @code{run-hook-with-args-until-success}.
Like that function, it runs the functions on the abnormal hook
@code{hook}, stopping at the first one that returns non-@code{nil}.
Instead of calling the hook functions directly, though, it actually
calls @code{wrap-function} with arguments @code{fun} and @code{args}.
@end defun
@node Setting Hooks
@subsection Setting Hooks

View file

@ -521,6 +521,13 @@ the optional argument @var{ignore-case} is non-@code{nil}, the
comparison ignores case differences.
@end defun
@defun string-suffix-p suffix string &optional ignore-case
This function returns non-@code{nil} if @var{suffix} is a suffix of
@var{string}; i.e., if @var{string} ends with @var{suffix}. If the
optional argument @var{ignore-case} is non-@code{nil}, the comparison
ignores case differences.
@end defun
@defun compare-strings string1 start1 end1 string2 start2 end2 &optional ignore-case
This function compares a specified part of @var{string1} with a
specified part of @var{string2}. The specified part of @var{string1}

View file

@ -4284,6 +4284,14 @@ A call to @code{libxml-parse-html-region} returns this:
@end example
@end defun
@cindex rendering html
@defun shr-insert-document dom
This function renders the parsed HTML in @var{dom} into the current
buffer. The argument @var{dom} should be a list as generated by
@code{libxml-parse-html-region}. This function is, e.g., used by
@ref{Top, EWW,, eww, The Emacs Web Wowser Manual}.
@end defun
@cindex parsing xml
@defun libxml-parse-xml-region start end &optional base-url
This function is the same as @code{libxml-parse-html-region}, except

View file

@ -1,3 +1,7 @@
2014-01-09 Glenn Morris <rgm@gnu.org>
* emacs.1: Refer to online service directory rather than etc/SERVICE.
2013-08-31 Ulrich Müller <ulm@gentoo.org>
* emacs.1: Update manual links.

View file

@ -576,9 +576,6 @@ strings for the Lisp primitives and preloaded Lisp functions
of GNU Emacs.
They are stored here to reduce the size of Emacs proper.
/usr/local/share/emacs/$VERSION/etc/SERVICE lists people offering
various services to assist users of GNU Emacs, including education,
troubleshooting, porting and customization.
.
.
.SH BUGS
@ -597,8 +594,8 @@ easily reproduced.
Do not expect a personal answer to a bug report.
The purpose of reporting bugs is to get them fixed for everyone
in the next release, if possible.
For personal assistance, look in the SERVICE file (see above) for
a list of people who offer it.
For personal assistance, consult the service directory at
<http://www.fsf.org/resources/service/> for a list of people who offer it.
Please do not send anything but bug reports to this mailing list.
For more information about Emacs mailing lists, see the

View file

@ -1,3 +1,12 @@
2014-01-10 Stefan Monnier <monnier@iro.umontreal.ca>
* cl.texi (Function Bindings): Fix incorrect description of cl-let.
2014-01-09 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
* Makefile.in: Add eww.texi.
* eww.texi: New file.
2014-01-07 Glenn Morris <rgm@gnu.org>
* efaq.texi (Problems with very large files): Fix superscript typo.
@ -13,8 +22,8 @@
(Advanced configuration)
(Header arguments in Org mode properties): Spelling fixes.
(Special blocks): Add #+BEGIN_ABSTRACT as another example.
(@LaTeX{} specific attributes): New index entries. Use
#+BEGIN_ABSTRACT in the example.
(@LaTeX{} specific attributes): New index entries.
Use #+BEGIN_ABSTRACT in the example.
2013-01-07 Nicolas Goaziou <n.goaziou@gmail.com>
@ -75,7 +84,7 @@
2014-01-02 Aidan Gauland <aidalgol@amuri.net>
* eshell.texi (Command Basics): Removed `Command basics' chapter.
* eshell.texi (Command Basics): Remove `Command basics' chapter.
2014-01-02 Aidan Gauland <aidalgol@amuri.net>
@ -195,8 +204,8 @@
* org.texi (Orgstruct mode): Fix suggested setting of
`orgstruct-heading-prefix-regexp'.
* org.texi (Export settings): Document
`org-export-allow-bind-keywords'.
* org.texi (Export settings):
Document `org-export-allow-bind-keywords'.
* org.texi (History and Acknowledgments): Small rephrasing.
@ -204,8 +213,8 @@
in a year datetree.
* org.texi (Beamer export, @LaTeX{} and PDF export)
(Header and sectioning, @LaTeX{} specific attributes): Enhance
style.
(Header and sectioning, @LaTeX{} specific attributes):
Enhance style.
* org.texi (Agenda commands): Add a footnote about dragging agenda
lines: it does not persist and it does not change the .org files.
@ -224,15 +233,15 @@
* org.texi (Other built-in back-ends): New section.
* org.texi (Editing source code): Document
`org-edit-src-auto-save-idle-delay' and
* org.texi (Editing source code):
Document `org-edit-src-auto-save-idle-delay' and
`org-edit-src-turn-on-auto-save'.
* org.texi (External links): Document contributed link types
separately.
* org.texi (Closing items): Document
`org-closed-keep-when-no-todo'.
* org.texi (Closing items):
Document `org-closed-keep-when-no-todo'.
* org.texi (Export back-ends): Rename from "Export formats".
(The Export Dispatcher): Remove reference to
@ -268,8 +277,8 @@
(Agenda commands): Move details about filtering commands to
the new section, only include a summary here.
(Customizing tables in ODT export)
(System-wide header arguments, Conflicts, Dynamic blocks): Use
spaces for indentation.
(System-wide header arguments, Conflicts, Dynamic blocks):
Use spaces for indentation.
* org.texi (Emphasis and monospace): Mention `org-emphasis-alist'.
@ -326,8 +335,8 @@
(In-buffer settings): Update to reflect changes from the new
export engine.
* org.texi (Matching tags and properties): More examples. Explain
group tags expansion as regular expressions.
* org.texi (Matching tags and properties): More examples.
Explain group tags expansion as regular expressions.
* org.texi (Tag groups): New section.
@ -352,8 +361,8 @@
* org.texi (Org syntax): New section.
* org.texi (Orgstruct mode): Document
`orgstruct-heading-prefix-regexp'.
* org.texi (Orgstruct mode):
Document `orgstruct-heading-prefix-regexp'.
* org.texi (Speeding up your agendas): New section.
@ -377,8 +386,8 @@
* org.texi: Update the list contributions.
* org.texi (Agenda commands): Exporting the agenda to an .org file
will not copy the subtrees and the inherited tags. Document
`org-agenda-filter-by-regexp'.
will not copy the subtrees and the inherited tags.
Document `org-agenda-filter-by-regexp'.
* org.texi (Publishing action, Complex example): Fix names of
publishing functions.
@ -392,8 +401,8 @@
* org.texi (Capture): Mention that org-remember.el is not
supported anymore.
* org.texi (Top, Exporting, Beamer class export): Delete
references to the TaskJuggler export.
* org.texi (Top, Exporting, Beamer class export):
Delete references to the TaskJuggler export.
(History and Acknowledgments): Mention that the TaskJuggler has
been rewritten by Nicolas and now lives in the contrib/ directory
of Org's distribution. Mention that Jambunathan rewrote the HTML
@ -410,16 +419,16 @@
(@LaTeX{} and PDF export, Header and sectioning)
(Publishing options): Fix LaTeX options names.
* org.texi (Export options, CSS support, In-buffer settings): Fix
references to HTML_LINK_* and HTML_STYLE keywords.
* org.texi (Export options, CSS support, In-buffer settings):
Fix references to HTML_LINK_* and HTML_STYLE keywords.
* org.texi (Export options, In-buffer settings): Fix references to
#+SELECT_TAGS and #+EXCLUDE_TAGS and remove reference to #+XSLT.
* org.texi (Top, Markup, Initial text, Images and tables)
(@LaTeX{} fragments, @LaTeX{} fragments, Exporting)
(Export options, JavaScript support, Beamer class export): Remove
references to the DocBook export, which has been deleted.
(Export options, JavaScript support, Beamer class export):
Remove references to the DocBook export, which has been deleted.
(History and Acknowledgments): Mention that DocBook has been
deleted, suggest to use the Texinfo exporter instead, then to
convert the .texi to DocBook with makeinfo.
@ -428,8 +437,8 @@
* org.texi (Deadlines and scheduling): Add a variable to the
index. Add documentation about delays for scheduled tasks.
* org.texi (Emphasis and monospace): Mention
`org-fontify-emphasized-text' and
* org.texi (Emphasis and monospace):
Mention `org-fontify-emphasized-text' and
`org-emphasis-regexp-components'.
* org.texi (References): Small enhancement.
@ -486,7 +495,7 @@
* org.texi (Extracting source code): Mention the prefix argument
to org-babel-tangle.
(noweb): Removed erroneous negative.
(noweb): Remove erroneous negative.
(Specific header arguments): Document new header arguments.
Documentation for new tangle-mode header argument.
(Top): Documentation for new tangle-mode header argument.
@ -590,8 +599,8 @@
* org.texi (Header and sectioning): Add a footnote about the
different between LATEX_HEADER_EXTRA and LATEX_HEADER.
* org.texi (The Export Dispatcher): Document
`org-export-in-background'.
* org.texi (The Export Dispatcher):
Document `org-export-in-background'.
* org.texi (Footnotes): Export back-ends do not use
`org-footnote-normalize' anymore.
@ -613,19 +622,19 @@
* org.texi (Include files): Remove reference to :prefix1
and :prefix. Give more details for :minlevel.
* org.texi (Macro replacement): Fix macro name. Update
documentation about possible locations and escaping mechanism.
* org.texi (Macro replacement): Fix macro name.
Update documentation about possible locations and escaping mechanism.
* org.texi (Table of contents): Update documentation. Document
lists of listings and lists of tables. Add documentation for
* org.texi (Table of contents): Update documentation.
Document lists of listings and lists of tables. Add documentation for
optional title and #+TOC: keyword.
2013-11-12 Rick Frankel <rick@rickster.com>
* org.texi (results): Add Format section, broken out of Type
section to match code.
(hlines, colnames): Remove incorrect Emacs Lisp exception. Note
that the actual default handling (at least for python and
(hlines, colnames): Remove incorrect Emacs Lisp exception.
Note that the actual default handling (at least for python and
emacs-lisp) does not seem to match the description.
2013-11-12 Sacha Chua <sacha@sachachua.com> (tiny change)
@ -635,8 +644,8 @@
2013-11-12 Yasushi Shoji <yashi@atmark-techno.com>
* org.texi (Resolving idle time): Document
`org-clock-x11idle-program-name'.
* org.texi (Resolving idle time):
Document `org-clock-x11idle-program-name'.
2013-10-24 Michael Albinus <michael.albinus@gmx.de>
@ -655,7 +664,7 @@
2013-10-17 Jay Belanger <jay.p.belanger@gmail.com>
* calc.el (Data Type Formats): Don't specify the size at
* calc.texi (Data Type Formats): Don't specify the size at
which integers begin to be represented by lists.
2013-10-14 Xue Fuqiao <xfq.free@gmail.com>
@ -877,8 +886,8 @@
2013-07-29 Michael Albinus <michael.albinus@gmx.de>
* tramp.texi (Frequently Asked Questions): Mention
`tramp-use-ssh-controlmaster-options'.
* tramp.texi (Frequently Asked Questions):
Mention `tramp-use-ssh-controlmaster-options'.
2013-07-26 Tassilo Horn <tsdh@gnu.org>
@ -922,8 +931,8 @@
2013-07-08 Tassilo Horn <tsdh@gnu.org>
* gnus.texi (lines): Correct description of
`gnus-registry-track-extra's default value. Mention
`gnus-registry-remove-extra-data'.
`gnus-registry-track-extra's default value.
Mention `gnus-registry-remove-extra-data'.
2013-07-06 Lars Ingebrigtsen <larsi@gnus.org>
@ -6284,6 +6293,12 @@
* org.texi: Massive changes, in many parts of the file.
2008-04-27 Jason Riedy <jason@acm.org>
* org.texi (A LaTeX example): Note that fmt may be a
one-argument function, and efmt may be a two-argument function.
(Radio tables): Document multiple destinations.
2008-04-13 Reiner Steib <Reiner.Steib@gmx.de>
* gnus.texi (Oort Gnus): Add message-fill-column.
@ -6516,6 +6531,10 @@
* tramp.texi (Remote processes): Add `shell-command'.
2008-02-02 Michael Albinus <michael.albinus@gmx.de>
* tramp.texi: Use new FSF's Back-Cover Text.
2008-01-28 Michael Sperber <sperber@deinprogramm.de>
* gnus.texi (Mail Source Specifiers): Document `group' specifier.
@ -6616,7 +6635,7 @@
2007-12-29 Jay Belanger <jay.p.belanger@gmail.com>
* calc.tex (Yacas Language, Maxima Language, Giac Language):
* calc.texi (Yacas Language, Maxima Language, Giac Language):
New sections.
2007-12-29 Reiner Steib <Reiner.Steib@gmx.de>
@ -6634,6 +6653,10 @@
* trampver.texi: Update release number.
2007-12-22 Richard Stallman <rms@gnu.org>
* cc-mode.texi (Getting Started): Change @ref to @pxref.
2007-12-22 Michael Albinus <michael.albinus@gmx.de>
* dbus.texi (Type Conversion): Correct input parameters mapping.
@ -7895,11 +7918,6 @@
* gnus.texi (Batching Agents): Fix example. Reported by Tassilo Horn
<tassilo@member.fsf.org>.
2007-01-27 Eli Zaretskii <eliz@gnu.org>
* msdog.texi (ls in Lisp): Document ls-lisp-format-time-list and
ls-lisp-use-localized-time-format.
2007-01-20 Markus Triska <markus.triska@gmx.at>
* flymake.texi (Flymake mode): find-file-hook instead of ...-hooks.
@ -8195,7 +8213,6 @@
* faq.texi (Escape sequences in shell output): EMACS is now set
to Emacs's absolute file name, not to "t".
(^M in the shell buffer): Likewise.
* misc.texi (Interactive Shell): Likewise.
2006-09-11 Reiner Steib <Reiner.Steib@gmx.de>
@ -8213,6 +8230,10 @@
* smtpmail.texi (Authentication): Mention SSL.
2006-09-03 Diane Murray <disumu@x3y2z1.net>
* erc.texi (Getting Started, Connecting): Change erc-select to erc.
2006-09-01 Eli Zaretskii <eliz@gnu.org>
* rcirc.texi (Internet Relay Chat, Useful IRC commands):

View file

@ -65,7 +65,7 @@ DOCMISC_W32 = @DOCMISC_W32@
## Info files to build and install on all platforms.
INFO_COMMON = ada-mode auth autotype bovine calc ccmode cl \
dbus dired-x ebrowse ede ediff edt eieio \
emacs-mime epa erc ert eshell eudc efaq \
emacs-mime epa erc ert eshell eudc efaq eww \
flymake forms gnus emacs-gnutls htmlfontify idlwave ido info.info \
mairix-el message mh-e newsticker nxml-mode octave-mode \
org pcl-cvs pgg rcirc remember reftex sasl \
@ -410,6 +410,18 @@ eudc.pdf: $(eudc_deps)
eudc.html: $(eudc_deps)
$(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/eudc.texi
eww_deps = ${srcdir}/eww.texi $(emacsdir)/emacsver.texi ${gfdl}
eww : $(buildinfodir)/eww$(INFO_EXT)
$(buildinfodir)/eww$(INFO_EXT): $(eww_deps)
$(mkinfodir)
$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/eww.texi
eww.dvi: $(eww_deps)
$(ENVADD) $(TEXI2DVI) ${srcdir}/eww.texi
eww.pdf: $(eww_deps)
$(ENVADD) $(TEXI2PDF) ${srcdir}/eww.texi
eww.html: $(eww_deps)
$(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/eww.texi
flymake_deps = ${srcdir}/flymake.texi ${gfdl}
flymake : $(buildinfodir)/flymake$(INFO_EXT)
$(buildinfodir)/flymake$(INFO_EXT): $(flymake_deps)

View file

@ -302,7 +302,7 @@ of the same name as the command and can thus be overridden from your
Various characters usually appear in pairs. When, for example, you insert
an open parenthesis, no matter whether you are programming or writing prose,
you will surely enter a closing one later. By entering both at the same time
and leaving the cursor inbetween, Emacs can guarantee you that such
and leaving the cursor in between, Emacs can guarantee you that such
parentheses are always balanced. And if you have a non-qwerty keyboard, where
typing some of the stranger programming language symbols makes you bend your
fingers backwards, this can be quite relieving too.

View file

@ -28053,8 +28053,8 @@ radiation related to the cesium-133 atom. The only SI unit that is not
based on a fundamental physical process (although there are efforts to
change this) is the kilogram, which was originally defined as the mass
of one liter of water, but is now defined as the mass of the
International Prototype Kilogram (IPK), a cylinder of platinum-iridium
kept at the Bureau International des Poids et Mesures in S@`evres,
international prototype of the kilogram (IPK), a cylinder of platinum-iridium
kept at the Bureau international des poids et mesures in S@`evres,
France. (There are several copies of the IPK throughout the world.)
The British imperial units, once defined in terms of physical objects,
were redefined in 1963 in terms of SI units. The US customary units,

View file

@ -1282,13 +1282,8 @@ cells of symbols rather than on the value cells. Each @var{binding}
must be a list of the form @samp{(@var{name} @var{arglist}
@var{forms}@dots{})}, which defines a function exactly as if
it were a @code{cl-defun} form. The function @var{name} is defined
accordingly for the duration of the body of the @code{cl-flet}; then
the old function definition, or lack thereof, is restored.
You can use @code{cl-flet} to disable or modify the behavior of
functions (including Emacs primitives) in a temporary, localized fashion.
(Compare this with the idea of advising functions.
@xref{Advising Functions,,,elisp,GNU Emacs Lisp Reference Manual}.)
accordingly but only within the body of the @code{cl-flet}, hiding any external
definition if applicable.
The bindings are lexical in scope. This means that all references to
the named functions must appear physically within the body of the

254
doc/misc/eww.texi Normal file
View file

@ -0,0 +1,254 @@
\input texinfo @c -*-texinfo-*-
@c %**start of header
@setfilename ../../info/eww
@settitle Emacs Web Wowser
@documentencoding UTF-8
@c @include emacsver.texi
@c %**end of header
@copying
This file documents the GNU Emacs Web Wowser (EWW) package.
Copyright @copyright{} 2014 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
Invariant Sections, with the Front-Cover texts being ``A GNU Manual,''
and with the Back-Cover Texts as in (a) below. A copy of the license
is included in the section entitled ``GNU Free Documentation License.''
(a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
modify this GNU manual.''
@end quotation
@end copying
@dircategory Emacs misc features
@direntry
* EWW: (eww). Emacs Web Wowser
@end direntry
@finalout
@titlepage
@title Emacs Web Wowser (EWW)
@subtitle A web browser for GNU Emacs.
@page
@vskip 0pt plus 1filll
@insertcopying
@end titlepage
@contents
@ifnottex
@node Top
@top EWW
@insertcopying
@end ifnottex
@menu
* Overview::
* Basics::
* Advanced::
Appendices
* History and Acknowledgments::
* GNU Free Documentation License:: The license for this documentation.
Indices
* Key Index::
* Variable Index::
* Lisp Function Index::
* Concept Index::
@end menu
@node Overview
@chapter Overview
@dfn{EWW}, the Emacs Web Wowser, is a web browser for GNU Emacs. It
can load, parse, and display various web pages using @dfn{shr.el}.
However a GNU Emacs with @code{libxml2} support is required.
@node Basics
@chapter Basic Usage
@findex eww
@findex eww-open-file
@vindex eww-search-prefix
@cindex eww
@cindex Web Browsing
You can open a URL or search the web with the command @kbd{M-x eww}.
If the input doesn't look like a URL or domain name the web will be
searched via @code{eww-search-prefix}. The default search engine is
@url{https://duckduckgo.com, DuckDuckGo}. If you want to open a file
either prefix the path with @code{file://} or use the command @kbd{M-x
eww-open-file}.
@findex eww-quit
@findex eww-reload
@findex eww-copy-page-url
@kindex q
@kindex w
@kindex g
If loading the URL was successful the buffer @code{*eww*} is opened
and the web page is rendered in it. You can leave EWW by pressing
@kbd{q} or exit the browser by calling @kbd{eww-quit}. To reload the
web page hit @kbd{g} (@code{eww-reload}). Pressing @kbd{w}
(@code{eww-copy-page-url}) will copy the current URL to the kill ring.
@findex eww-download
@vindex eww-download-path
@kindex d
@cindex Download
A URL under the point can be downloaded with @kbd{d}
(@code{eww-download}). The file will be written to the directory
specified in @code{eww-download-path} (Default: @file{~/Downloads/}).
@findex eww-back-url
@findex eww-forward-url
@findex eww-list-histories
@kindex r
@kindex l
@kindex H
@cindex History
EWW remembers the URLs you have visited to allow you to go back and
forth between them. By pressing @kbd{l} (@code{eww-back-url}) you go
to the previous URL. You can go forward again with @kbd{r}
(@code{eww-forward-url}). If you want an overview of your browsing
history press @kbd{H} (@code{eww-list-histories}) to open the history
buffer @code{*eww history*}. The history is lost when EWW is quit.
If you want to remember websites you can use bookmarks.
@findex eww-add-bookmark
@findex eww-list-bookmarks
@kindex b
@kindex B
@cindex Bookmarks
EWW allows you to @dfn{bookmark} URLs. Simply hit @kbd{b}
(@code{eww-add-bookmark}) to store a bookmark for the current website.
You can view stored bookmarks with @kbd{B}
(@code{eww-list-bookmarks}). This will open the bookmark buffer
@code{*eww bookmarks*}.
@findex eww-browse-with-external-browser
@vindex shr-external-browser
@vindex eww-use-external-browser-for-content-type
@kindex &
@cindex External Browser
Although EWW and shr.el do their best to render webpages in GNU
Emacs some websites use features which can not be properly represented
or are not implemented (E.g., JavaScript). If you have trouble
viewing a website with EWW then hit @kbd{&}
(@code{eww-browse-with-external-browser}) inside the EWW buffer to
open the website in the external browser specified by
@code{shr-external-browser}. Some content types, such as video or
audio content, do not make sense to display in GNU Emacs at all. You
can tell EWW to open specific content automatically in an external
browser by customizing
@code{eww-use-external-browser-for-content-type}.
@node Advanced
@chapter Advanced
@findex eww-view-source
@kindex v
@cindex Viewing Source
You can view the source of a website with @kbd{v}
(@code{eww-view-source}). This will open a new buffer
@code{*eww-source*} and insert the source. The buffer will be set to
@code{html-mode} if available.
@findex url-cookie-list
@kindex C
@cindex Cookies
EWW handles cookies through the @ref{Top, url package, ,url}.
You can list existing cookies with @kbd{C} (@code{url-cookie-list}).
For details about the Cookie handling @xref{Cookies,,,url}.
@vindex eww-header-line-format
@cindex Header
The header line of the EWW buffer can be changed by customizing
@code{eww-header-line-format}. The format replaces @code{%t} with the
title of the website and @code{%u} with the URL.
@c @vindex shr-bullet
@c @vindex shr-hr-line
@c @vindex eww-form-checkbox-selected-symbol
@c @vindex eww-form-checkbox-symbol
@c EWW and the rendering engine shr.el use ASCII characters to
@c represent some graphical elements, such as bullet points
@c (@code{shr-bullet}), check boxes
@c (@code{eww-form-checkbox-selected-symbol} and
@c @code{eww-form-checkbox-symbol}), and horizontal rules
@c @code{shr-hr-line}). Depending on your fonts these characters can be
@c replaced by Unicode glyphs to achieve better looking results.
@vindex shr-max-image-proportion
@vindex shr-blocked-images
@cindex Image Display
Loading random images from the web can be problematic due to their
size or content. By customizing @code{shr-max-image-proportion} you
can set the maximal image proportion in relation to the window they
are displayed in. E.g., 0.7 means an image is allowed to take up 70%
of the width and height. If Emacs supports image scaling (ImageMagick
support required) then larger images are scaled down. You can block
specific images completely by customizing @code{shr-blocked-images}.
@node History and Acknowledgments
@appendix History and Acknowledgments
EWW was originally written by Lars Ingebrigtsen, known for his work on
Gnus. He started writing an Emacs HTML rendering library,
@code{shr.el}, to read blogs in Gnus. He eventually added a web
browser front end and HTML form support. Which resulted in EWW, the
Emacs Web Wowser. EWW was announced on 16 June 2013:
@url{http://lars.ingebrigtsen.no/2013/06/16/eww/}.
EWW was then moved from the Gnus repository to GNU Emacs and several
developers started contributing to it as well. A list of contributors
at the time of writing this manual:
@itemize @bullet
@item Daniel Hackney
@item Eli Zaretskii
@item Glenn Morris
@item Ivan Kanis
@item Juri Linkov
@item Katsumi Yamaoka
@item Kenjiro NAKAYAMA
@item Lars Magne Ingebrigtsen
@item Leo Liu
@item Paul Eggert
@item Rüdiger Sonderfeld
@item Stefan Monnier
@item Ted Zlatanov
@end itemize
@node GNU Free Documentation License
@chapter GNU Free Documentation License
@include doclicense.texi
@node Key Index
@unnumbered Key Index
@printindex ky
@node Variable Index
@unnumbered Variable Index
@printindex vr
@node Lisp Function Index
@unnumbered Function Index
@printindex fn
@node Concept Index
@unnumbered Concept Index
@printindex cp
@bye

View file

@ -10229,8 +10229,8 @@ summary buffer, point will just move to this article.
If given a positive numerical prefix, fetch that many articles back into
the ancestry. If given a negative numerical prefix, fetch just that
ancestor. So if you say @kbd{3 ^}, Gnus will fetch the parent, the
grandparent and the grandgrandparent of the current article. If you say
@kbd{-3 ^}, Gnus will only fetch the grandgrandparent of the current
grandparent and the great-grandparent of the current article. If you say
@kbd{-3 ^}, Gnus will only fetch the great-grandparent of the current
article.
@item A R (Summary)

View file

@ -591,7 +591,7 @@ slightly from the margin and use only 3 spaces as indentation between
Restart Emacs, and re-indent the program we developed in the first part
of this tutorial with @kbd{C-c h} and @kbd{C-M-\}. You may want to keep
these lines in @file{.emacs}, with values adjusted to your likings. If
these lines in @file{.emacs}, with values adjusted to your liking. If
you want to get more information about any of these variables, type,
e.g., @kbd{C-h v idlwave-main-block-indent @key{RET}}. To find which
variables can be customized, look for items marked @samp{User Option:}

View file

@ -3,7 +3,7 @@
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
\def\texinfoversion{2013-09-11.11}
\def\texinfoversion{2014-01-06.16}
%
% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
@ -1138,10 +1138,12 @@
\ifpdf
%
% Color manipulation macros based on pdfcolor.tex,
% Color manipulation macros using ideas from pdfcolor.tex,
% except using rgb instead of cmyk; the latter is said to render as a
% very dark gray on-screen and a very dark halftone in print, instead
% of actual black.
% of actual black. The dark red here is dark enough to print on paper as
% nearly black, but still distinguishable for online viewing. We use
% black by default, though.
\def\rgbDarkRed{0.50 0.09 0.12}
\def\rgbBlack{0 0 0}
%
@ -1251,10 +1253,9 @@
% used to mark target names; must be expandable.
\def\pdfmkpgn#1{#1}
%
% by default, use a color that is dark enough to print on paper as
% nearly black, but still distinguishable for online viewing.
\def\urlcolor{\rgbDarkRed}
\def\linkcolor{\rgbDarkRed}
% by default, use black for everything.
\def\urlcolor{\rgbBlack}
\def\linkcolor{\rgbBlack}
\def\endlink{\setcolor{\maincolor}\pdfendlink}
%
% Adding outlines to PDF; macros for calculating structure of outlines
@ -2574,37 +2575,21 @@
\let\file=\code
\let\option=\code
% @uref (abbreviation for `urlref') takes an optional (comma-separated)
% second argument specifying the text to display and an optional third
% arg as text to display instead of (rather than in addition to) the url
% itself. First (mandatory) arg is the url.
% (This \urefnobreak definition isn't used now, leaving it for a while
% for comparison.)
\def\urefnobreak#1{\dourefnobreak #1,,,\finish}
\def\dourefnobreak#1,#2,#3,#4\finish{\begingroup
\unsepspaces
\pdfurl{#1}%
\setbox0 = \hbox{\ignorespaces #3}%
\ifdim\wd0 > 0pt
\unhbox0 % third arg given, show only that
\else
\setbox0 = \hbox{\ignorespaces #2}%
\ifdim\wd0 > 0pt
\ifpdf
\unhbox0 % PDF: 2nd arg given, show only it
\else
\unhbox0\ (\code{#1})% DVI: 2nd arg given, show both it and url
\fi
\else
\code{#1}% only url given, so show it
\fi
\fi
\endlink
\endgroup}
% @uref (abbreviation for `urlref') aka @url takes an optional
% (comma-separated) second argument specifying the text to display and
% an optional third arg as text to display instead of (rather than in
% addition to) the url itself. First (mandatory) arg is the url.
% This \urefbreak definition is the active one.
% TeX-only option to allow changing PDF output to show only the second
% arg (if given), and not the url (which is then just the link target).
\newif\ifurefurlonlylink
% The main macro is \urefbreak, which allows breaking at expected
% places within the url. (There used to be another version, which
% didn't support automatic breaking.)
\def\urefbreak{\begingroup \urefcatcodes \dourefbreak}
\let\uref=\urefbreak
%
\def\dourefbreak#1{\urefbreakfinish #1,,,\finish}
\def\urefbreakfinish#1,#2,#3,#4\finish{% doesn't work in @example
\unsepspaces
@ -2613,12 +2598,19 @@
\ifdim\wd0 > 0pt
\unhbox0 % third arg given, show only that
\else
\setbox0 = \hbox{\ignorespaces #2}%
\setbox0 = \hbox{\ignorespaces #2}% look for second arg
\ifdim\wd0 > 0pt
\ifpdf
\unhbox0 % PDF: 2nd arg given, show only it
\ifurefurlonlylink
% PDF plus option to not display url, show just arg
\unhbox0
\else
% PDF, normally display both arg and url for consistency,
% visibility, if the pdf is eventually used to print, etc.
\unhbox0\ (\urefcode{#1})%
\fi
\else
\unhbox0\ (\urefcode{#1})% DVI: 2nd arg given, show both it and url
\unhbox0\ (\urefcode{#1})% DVI, always show arg and url
\fi
\else
\urefcode{#1}% only url given, so show it
@ -3691,7 +3683,7 @@
\parskip=\smallskipamount
\ifdim\parskip=0pt \parskip=2pt \fi
%
% Try typesetting the item mark that if the document erroneously says
% Try typesetting the item mark so that if the document erroneously says
% something like @itemize @samp (intending @table), there's an error
% right away at the @itemize. It's not the best error message in the
% world, but it's better than leaving it to the @item. This means if
@ -8342,8 +8334,8 @@
%
% Auto-number footnotes. Otherwise like plain.
\gdef\footnote{%
\let\indent=\ptexindent
\let\noindent=\ptexnoindent
%\let\indent=\ptexindent
%\let\noindent=\ptexnoindent
\global\advance\footnoteno by \@ne
\edef\thisfootno{$^{\the\footnoteno}$}%
%

View file

@ -1,7 +1,27 @@
2014-01-10 Glenn Morris <rgm@gnu.org>
* ORDERS: Replace contents with pointer to emacs.info, mark obsolete.
* FTP: Mark as obsolete.
2014-01-09 David Engster <deng@randomsample.de>
* NEWS: Added new `describe-function' EIEIO support.
2014-01-09 Glenn Morris <rgm@gnu.org>
* SERVICE: Mark as obsolete.
* MORE.STUFF: Replace contents with pointer to efaq.info.
2014-01-09 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
* NEWS: Better document the speed up, slow down, or reverse
animation in Image Mode.
2014-01-05 Tassilo Horn <tsdh@gnu.org>
* themes/tsdh-light-theme.el (tsdh-light): Define org-level-*
faces.
* themes/tsdh-light-theme.el (tsdh-light): Define org-level-* faces.
2013-12-29 Paul Eggert <eggert@cs.ucla.edu>
@ -2567,7 +2587,7 @@
* refcards/calccard.ps, refcards/cs-dired-ref.ps:
* refcards/cs-refcard.ps, refcards/de-refcard.ps, refcards/dired-ref.ps:
* refcards/fr-drdref.ps, refcards/fr-refcard.ps:
* refcards/gnus-booklet.ps, refcards/gnus-logo.ps:
* refcards/gnus-booklet.ps:
* refcards/gnus-refcard.ps, refcards/orgcard.ps, refcards/pl-refcard.ps:
* refcards/pt-br-refcard.ps, refcards/refcard.ps:
* refcards/ru-refcard.ps, refcards/sk-dired-ref.ps:
@ -3107,7 +3127,7 @@
2007-01-20 Glenn Morris <rgm@gnu.org>
* cd-dired-ref.tex (versionemacs): New def.
* cs-dired-ref.tex (versionemacs): New def.
* cs-refcard.tex (versionemacs, versionyear): New defs.
* cs-survival.tex (versionemacs, versiondate): New defs.
* de-refcard.tex (versionemacs, versionyear): New defs.
@ -3286,10 +3306,6 @@
* PROBLEMS (are): Emacs compiled with Gtk+ crashes when closing a
display (x-close-connection).
2006-09-03 Diane Murray <disumu@x3y2z1.net>
* erc.texi (Getting Started, Connecting): Change erc-select to erc.
2006-09-02 Juri Linkov <juri@jurta.org>
* HELLO: Regroup Europe Non-ASCII examples by similar scripts.

11
etc/FTP
View file

@ -1,6 +1,9 @@
For information about how to obtain GNU Emacs and other GNU software
by FTP, please see <http://www.gnu.org/order/ftp.html>.
For information about how to download GNU Emacs, please see:
<http://www.gnu.org/software/emacs/>
Information about Emacs is also available at
<http://www.gnu.org/software/emacs/>.
For general GNU software downloading, please see
<http://www.gnu.org/order/ftp.html>
Note added January 2014:
This file is obsolete and will be removed in future.
Please update any links to use the above URLs.

View file

@ -19,24 +19,6 @@ gnu.emacs.help; gnu-emacs-sources, to gnu.emacs.sources. Replacing
`emacs' with some other program in those four examples shows you
the whole pattern.
If you don't know if your site is on USENET, ask your system
administrator. If you are a USENET site and don't get the gnu.all
newsgroups, please ask your USENET administrator to get them. If he has
your feeds ask their feeds, you should win. And everyone else wins:
newsgroups make better use of the limited bandwidth of the computer
networks and your home machine than mailing list traffic; and staying
off the mailing lists make better use of the people who maintain the
lists and the machines that the GNU people working with rms use (i.e. we
have more time to produce code!!). Thanx.
* Getting the mailing lists directly
If several users at your site or local network want to read a list and
you aren't a USENET site, Project GNU would prefer that you would set up
one address that redistributes locally. This reduces overhead on our
people and machines, your gateway machine, and the network(s) used to
transport the mail from us to you.
* How to subscribe to and report bugs in mailing lists
Send requests to be added or removed, to help-gnu-emacs-request (or
@ -48,8 +30,7 @@ If you need to report problems to a human, send mail to gnu@gnu.org
explaining the problem.
Many of the GNU mailing lists are very large and are received by many
people. Most are unmoderated, so please don't send them anything that
is not seriously important to all their readers.
people.
If a message you mail to a list is returned from a MAILER-DAEMON (often
with the line:
@ -72,25 +53,11 @@ activities in Cambridge and elsewhere can be directed to:
* General Information about all lists
Please keep each message under 25,000 characters. Some mailers bounce
messages that are longer than this. If your message is long, it is
generally better to send a message offering to make the large file
available to only those people who want it (e.g. mailing it to people
who ask, or putting it up for FTP). In the case of gnu.emacs.sources,
somewhat larger postings (up to 10 parts of no more than 25,000
characters each) are acceptable (assuming they are likely to be of
interest to a reasonable number of people); if it is larger than that,
put it in a web page and announce its URL. Good bug reports are short.
Do not send very large files to mailing lists; instead put then on a web
page and announce the URL. Good bug reports are short.
See section '* General Information about bug-* lists and ...' for
further details.
Most of the time, when you reply to a message sent to a list, the reply
should not go to the list. But most mail reading programs supply, by
default, all the recipients of the original as recipients of the reply.
Make a point of deleting the list address from the header when it does
not belong. This prevents bothering all readers of a list, and reduces
network congestion.
The GNU mailing lists and newsgroups, like the GNU project itself, exist
to promote the freedom to share software. So don't use these lists to
promote or recommend non-free software or documentation, like
@ -137,8 +104,8 @@ See section '* General Information about all lists'.
If you think something is a bug in a program, it might be one; or, it
might be a misunderstanding or even a feature. Before beginning to
report bugs, please read the section ``Reporting Emacs Bugs'' toward the
end of the GNU Emacs reference manual (or node Emacs/Bugs in Emacs's
report bugs, please read the section ``Reporting Bugs'' in
the GNU Emacs reference manual (or node Bugs in Emacs's
built-in Info system) for a discussion of how and when to send in bug
reports. For GNU programs other than GNU Emacs, also consult their
documentation for their bug reporting procedures. Always include the
@ -168,7 +135,7 @@ overworked; they don't have time to help individuals and still fix the
bugs and make the improvements that everyone wants. If you want help
for yourself in particular, you may have to hire someone. The GNU
project maintains a list of people providing such services. It is
found in <URL:http://www.gnu.org/prep/SERVICE>.
found at <URL:http://www.fsf.org/resources/service>.
Anything addressed to the implementers and maintainers of a GNU program
via a bug-* list, should NOT be sent to the corresponding info-* or
@ -234,48 +201,11 @@ unless they are made by someone you know is well connected with GNU and
are sure the message is not forged.
USENET and gnUSENET readers are expected to have read ALL the articles
in news.announce.newusers before posting. If news.announce.newusers is
empty at your site, wait (the articles are posted monthly), your posting
isn't that urgent! Readers on the Internet can anonymous FTP these
articles from host ftp.uu.net under directory ??
in news.announce.newusers before posting.
Remember, "GNUs Not Unix" and "gnUSENET is Not USENET". We have
higher standards!
** guile-sources-request@gnu.org to subscribe to guile-sources
gnUSENET newsgroup: NONE PLANNED
Guile source code to: guile-sources@gnu.org
This list will be for the posting, by their authors, of GUILE, Scheme,
and C sources and patches that improve Guile. Its contents will be
reviewed by the FSF for inclusion in future releases of GUILE.
Please do NOT discuss or request source code here. Use bug-guile for
those purposes. This allows the automatic archiving of sources posted
to this list.
Please do NOT post such sources to any other GNU mailing list (e.g
bug-guile) or gnUSENET newsgroups. It's up to each poster to decide
whether to cross-post to any non-gnUSENET newsgroup.
Please do NOT announce that you have posted source code to guile.sources
to any other GNU mailing list (e.g. bug-guile) or gnUSENET newsgroups.
People who want to keep up with sources will read this list. It's up to
each poster to decide whether to announce a guile.sources article in any
non-gnUSENET newsgroup (e.g. comp.emacs or comp.sources.d).
If source or patches that were previously posted or a simple fix is
requested in bug-guile, please mail it to the requester. Do NOT
repost it. If you also want something that is requested, send mail to
the requester asking him to forward it to you. This kind of traffic is
best handled by e-mail, not by a broadcast medium that reaches millions
of sites.
If the requested source is very long (>10k bytes) send mail offering to
send it. This prevents the requester from getting many redundant copies
and saves network bandwidth.
** gnu-emacs-sources-request@gnu.org to subscribe to gnu-emacs-sources
gnUSENET newsgroup: gnu.emacs.sources
@ -293,14 +223,14 @@ automatic archiving of sources posted to this list/newsgroup.
Please do NOT post such sources to any other GNU mailing list (e.g
help-gnu-emacs) or gnUSENET newsgroups (e.g. gnu.emacs.help). It's up
to each poster to decide whether to cross-post to any non-gnUSENET
newsgroup (e.g. comp.emacs or vmsnet.sources).
newsgroup (e.g. comp.emacs).
Please do NOT announce that you have posted source code to
gnu.emacs.sources to any other GNU mailing list (e.g. help-gnu-emacs) or
gnUSENET newsgroups (e.g. gnu.emacs.help). People who want to keep up
with sources will read this list/newsgroup. It's up to each poster to
decide whether to announce a gnu.emacs.sources article in any
non-gnUSENET newsgroup (e.g. comp.emacs or comp.sources.d).
non-gnUSENET newsgroup (e.g. comp.emacs).
If source or patches that were previously posted or a simple fix is
requested in help-gnu-emacs, please mail it to the requester. Do NOT
@ -309,7 +239,7 @@ the requester asking him to forward it to you. This kind of traffic is
best handled by e-mail, not by a broadcast medium that reaches millions
of sites.
If the requested source is very long (>10k bytes) send mail offering to
If the requested source is very long, send mail offering to
send it. This prevents the requester from getting many redundant copies
and saves network bandwidth.

View file

@ -1,205 +1,8 @@
More Neat Stuff for your Emacs
Copyright (C) 1993, 1999, 2001-2014 Free Software Foundation, Inc.
See the end of the file for license conditions.
The easiest way to add more features to your Emacs is to use the command
M-x list-packages. This contacts the server at <URL:http://elpa.gnu.org>,
where many Emacs Lisp packages are stored. These are distributed
separately from Emacs itself for reasons of space, etc. You can browse
the resulting *Packages* buffer to see what is available, and then
Emacs can automatically download and install the packages that you
select. See the section "Emacs Lisp Packages" in the Emacs manual
for more details.
Below we describe some GNU Emacs programs and resources that are
maintained by other people. Some of these may become part of the
Emacs distribution, or GNU ELPA, in the future. Others we unfortunately
can't distribute, even though they are free software, because we lack
legal papers for copyright purposes.
Also listed are sites where development versions of some packages
distributed with Emacs may be found.
It is difficult to keep this file up-to-date, and it only lists a fraction
of the Emacs modes that are available. If you are interested in
a particular feature, then after checking Emacs itself and GNU ELPA,
a web search is often the best way to find results.
* The gnu-emacs-sources mailing list
<URL:https://lists.gnu.org/mailman/listinfo/gnu-emacs-sources>
which is gatewayed to the gnu.emacs.sources newsgroup (although the
connection between the two can be unreliable) is an official
place where people can post or announce their extensions to Emacs.
* The `Emacs Lisp List' at
<URL:http://www.damtp.cam.ac.uk/user/sje30/emacs/ell.html> has pointers
to sources of a large number of packages. Unfortunately, at the time
of writing it seems to no longer be updating.
* emacswiki.org
The Emacs Wiki has an area for storing elisp files
<URL:http://www.emacswiki.org/cgi-bin/wiki/ElispArea>.
* WikEmacs
<URL:http://wikemacs.org> is an alternative wiki for Emacs.
* Emacs slides and tutorials can be found here:
<URL:http://web.psung.name/emacs/>
* Maintenance versions of some packages distributed with Emacs
You might find bug-fixes or enhancements in these places.
In many cases, however, development of these packages has shifted to Emacs,
so you will find the latest version in Emacs.
* Ada-mode: <URL:http://stephe-leake.org/emacs/ada-mode/emacs-ada-mode.html>
* CC mode: <URL:http://cc-mode.sourceforge.net/>
* CEDET: <URL:http://cedet.sourceforge.net/>
* Gnus: <URL:http://www.gnus.org/>
* MH-E: <URL:http://mh-e.sourceforge.net/>
* nXML: <URL:http://www.thaiopensource.com/nxml-mode/>
* Org mode: <URL:http://orgmode.org/>
* Tramp: Remote file access via rsh/ssh
<URL:http://savannah.gnu.org/projects/tramp/>
* GNU Zile: <URL:http://www.gnu.org/software/zile/>
A lightweight Emacs clone, for when you don't have room for Emacs proper.
* Packages and add-ons not bundled with Emacs
Various major packages or useful additions aren't distributed as part of
Emacs for various reasons, sometimes because their authors haven't made
a copyright assignment to the FSF. Some of them may be integrated in
the future.
Your operating system distribution may include several of these as optional
packages that you can install.
* AUCTeX: <URL:http://www.gnu.org/software/auctex/>
An extensible package that supports writing and formatting TeX
files (including AMS-TeX, LaTeX, Texinfo, ConTeXt, and docTeX).
Includes Preview LaTeX: embed preview LaTeX images in source buffer.
Available from GNU ELPA.
* BBDB: personal Info Rolodex integrated with mail/news:
<URL:http://savannah.nongnu.org/projects/bbdb>
* Boxquote: <URL:http://www.davep.org/emacs/>
* CJK-emacs: Converting MULE-encoded text to TeX:
<URL:ftp://ctan.tug.org/tex-archive/language/chinese/CJK/> and
mirrors of the `CTAN' TeX archives.
* Dismal: spreadsheet:
<URL:http://ritter.ist.psu.edu/dismal/dismal.html>
* ECB: Emacs Code Browser: <URL:http://ecb.sourceforge.net/>
* EDB: database: <URL:http://www.gnuvola.org/software/edb/>
* Ee: categorizing information manager:
<URL:http://www.jurta.org/en/emacs/ee/>
* EMacro: <URL:http://emacro.sourceforge.net/>
EMacro is a portable configuration file that configures itself.
* Emacs Muse: <URL:http://mwolson.org/projects/EmacsMuse.html>
An authoring and publishing environment for Emacs.
Available from GNU ELPA.
* Emacs speaks statistics (ESS): statistical programming within Emacs
<URL:http://ess.r-project.org>
* Emacspeak -- A Speech Output Subsystem For Emacs:
<URL:http://emacspeak.sourceforge.net/>
* Emacs-w3m : <URL:http://emacs-w3m.namazu.org/>
A simple Emacs interface to w3m, which is a text-mode WWW browser
* Emacs Wiki Mode: <URL:http://mwolson.org/projects/EmacsWikiMode.html>
A wiki-like publishing tool and personal information manager
* Go in a buffer: Go Text Protocol client:
<URL:http://www.gnuvola.org/software/personal-elisp/dist/lisp/diversions/gnugo.el>
A modified version is also bundled with GNU Go:
<URL:http://www.gnu.org/software/gnugo/gnugo.html>
* Hyperbole:
<URL:http://directory.fsf.org/wiki/Hyperbole>
Hyperbole is an open, efficient, programmable information
management and hypertext system.
* JDEE: <URL:http://jdee.sourceforge.net/>
Provides a Java development environment for Emacs.
* Mew: <URL:http://www.mew.org/>
A MIME mail reader for Emacs/XEmacs.
* MMM Mode: <URL:http://mmm-mode.sourceforge.net/>
MMM Mode is an emacs add-on package providing a minor mode that
allows Multiple Major Modes to coexist in one buffer.
* Planner Mode: <URL:http://www.wjsullivan.net/PlannerMode.html>
Planner is an organizer and day planner for Emacs.
* Quack: <URL:http://www.neilvandyke.org/quack/>
Quack enhances Emacs support for Scheme.
* QWE: <URL:http://www.nongnu.org/qwe/>
QWE's not WEB for Emacs is a quasi-WYSIWYG literate programming system for
Emacs that can be used with almost every programming language.
* Session: <URL:http://emacs-session.sourceforge.net/>
Session Management for Emacs.
* SLIME: The Superior Lisp Interaction Mode for Emacs:
<URL:http://common-lisp.net/project/slime/>
* Tamago: Chinese/Japanese/Korean input method
<URL:http://www.m17n.org/tamago/index.en.html>
Emacs Lisp package to provide input methods for CJK characters.
* Tiny Tools: <URL:https://savannah.nongnu.org/projects/emacs-tiny-tools>
* VM (View Mail): Alternative mail reader
<URL:http://launchpad.net/vm>
Previously hosted at: <URL:http://www.nongnu.org/viewmail/>
* W3 Web browser: <URL:http://savannah.gnu.org/projects/w3/>
* Wanderlust: <URL:http://www.gohome.org/wl/>
Wanderlust is a mail/news reader for Emacs.
* WhizzyTex: <URL:http://cristal.inria.fr/whizzytex/>
WhizzyTeX provides a minor mode for Emacs or XEmacs, a (bash)
shell-script daemon and some LaTeX macros.
Local Variables:
mode: text
eval: (view-mode 1)
eval: (goto-address-mode 1)
End:
This file is part of GNU Emacs.
GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
Note added January 2014:
This file is obsolete and will be removed in future.
Please update any links to use
info node `(efaq)Packages that do not come with Emacs'
instead.

View file

@ -168,11 +168,19 @@ non-nil, they output the same results.
+++
*** The key `?' now describes prefix bindings, like `C-h'.
*** The command `describe-function' was extended for EIEIO.
Running it on constructors will show a full description of the
generated class. For generic functions, it will show all
implementations together with links to the source. The old commands
`describe-class', `describe-constructor' and `describe-generic' were
removed.
*** The command `quail-help' is deleted. Use `C-h C-\'
(`describe-input-method') instead.
** ImageMagick
+++
*** ImageMagick images now support the :max-width and :max-height
keywords.
@ -241,6 +249,7 @@ etc. You can customize this to specify a function that provides a
default value from the regexp last history element, or from the symbol
found at point.
+++
*** `load-prefer-newer', affects how the `load' function chooses the
file to load. If this is non-nil, then when both .el and .elc
versions of a file exist, and the caller did not explicitly specify
@ -451,6 +460,7 @@ restoring the frame/window configuration (frameset). Additional options
`desktop-restore-in-current-display', `desktop-restore-reuses-frames'
and `desktop-restore-forces-onscreen' offer further customization.
+++
** Dired
*** New minor mode `dired-hide-details-mode' hides details.
@ -573,11 +583,17 @@ will revert to the old behavior.
visit the next image file and the previous image file in the same
directory, respectively.
+++
*** New commands to show specific frames of multi-frame images.
`f' (`image-next-frame') and `b' (`image-previous-frame') visit the
next or previous frame. `F' (`image-goto-frame') shows a specific frame.
+++
*** New commands to speed up, slow down, or reverse animation.
`a +' (`image-increase-speed') and `a -' (`image-decrease-speed') to
speed up and slow down the animation. `a r' (`image-reverse-speed')
to reverse it and `a 0' (`image-reset-speed') to reset it.
---
*** The command `image-mode-fit-frame' deletes other windows.
When toggling, it restores the frame's previous window configuration.
@ -880,6 +896,7 @@ has not been relevant for some time.
* New Modes and Packages in Emacs 24.4
+++
** New package `eww' is a built-in web browser.
It is only available if Emacs is compiled with libxml2 support.
@ -888,6 +905,7 @@ It is only available if Emacs is compiled with libxml2 support.
symbol_words as a single word, similar to what `subword-mode' does and
using the same internal functions.
+++
** New package nadvice.el offers lighter-weight advice facilities.
It is layered as:
- add-function/remove-function which can be used to add/remove code on any
@ -1087,7 +1105,7 @@ displaying the buffer in a window.
*** `hash-table-keys'
+++
*** `hash-table-values'
---
*** `string-blank-p`
*** `string-empty-p`
*** `string-join`
@ -1126,6 +1144,7 @@ a non-nil `interactive-only' property.
The value, if non-nil, is a regexp that specifies what to trim from
the start and end of each substring.
+++
** New function `string-suffix-p'.
** File-handling changes

View file

@ -1,12 +1,8 @@
Printed copies of the GNU Emacs Manual, the Emacs Lisp Reference
Manual, "Programming in Emacs Lisp: An Introduction", and other
materials can be ordered directly from the Free Software Foundation.
Printed copies of Emacs manuals
For more information, see the online store at <http://shop.fsf.org/>.
Note added January 2014:
Your purchases will help support further development of Emacs and
other free software programs.
You can also make tax-deductible donations to the Free Software
Foundation, a not-for-profit organization (assuming you pay US taxes)
- see <https://my.fsf.org/donate/>.
This file is obsolete and will be removed in future.
Please update any links to use
info node `(emacs)Printed Books'
instead.

View file

@ -1062,7 +1062,7 @@ See http://orgmode.org/elpa/
| =k= | | [[doc::org-agenda-capture][org-agenda-capture]] |
| C-c , | , | [[doc::org-priority][org-priority]] |
** New package and Babel langage
** New package and Babel language
*** =org-eshell.el= by Konrad Hinsen is now in Org

View file

@ -357,25 +357,6 @@ The solution is to use gawk (GNU awk).
** Problems with hostname resolution
*** Emacs fails to understand most Internet host names, even though
the names work properly with other programs on the same system.
*** Emacs won't work with X-windows if the value of DISPLAY is HOSTNAME:0.
*** Gnus can't make contact with the specified host for nntp.
This typically happens on Suns and other systems that use shared
libraries. The cause is that the site has installed a version of the
shared library which uses a name server--but has not installed a
similar version of the unshared library which Emacs uses.
The result is that most programs, using the shared library, work with
the nameserver, but Emacs does not.
The fix is to install an unshared library that corresponds to what you
installed in the shared library, and then relink Emacs.
If you have already installed the name resolver in the file libresolv.a,
then you need to compile Emacs to use that library.
*** Emacs does not know your host's fully-qualified domain name.
For example, (system-name) returns some variation on
@ -499,13 +480,6 @@ ftp client. On a Debian system, type
and then choose /usr/bin/netkit-ftp.
*** JPEG images aren't displayed.
This has been reported when Emacs is built with jpeg-6a library.
Upgrading to jpeg-6b solves the problem. Configure checks for the
correct version, but this problem could occur if a binary built
against a shared libjpeg is run on a system with an older version.
*** Dired is very slow.
This could happen if invocation of the `df' program takes a long
@ -570,13 +544,6 @@ to work around the problem.
Please refer to the documentation of your dynamic linker for details.
*** You request inverse video, and the first Emacs frame is in inverse
video, but later frames are not in inverse video.
This can happen if you have an old version of the custom library in
your search path for Lisp packages. Use M-x list-load-path-shadows to
check whether this is true. If it is, delete the old custom library.
*** When you run Ispell from Emacs, it reports a "misalignment" error.
This can happen if you compiled the Ispell program to use ASCII
@ -674,20 +641,6 @@ This is because these fonts contain characters a little taller than
the font's nominal height. Emacs needs to make sure that lines do not
overlap.
** Loading fonts is very slow.
You might be getting scalable fonts instead of precomputed bitmaps.
Known scalable font directories are "Type1" and "Speedo". A font
directory contains scalable fonts if it contains the file
"fonts.scale".
If this is so, re-order your X windows font path to put the scalable
font directories last. See the documentation of `xset' for details.
With some X servers, it may be necessary to take the scalable font
directories out of your path entirely, at least for Emacs 19.26.
Changes in the future may make this unnecessary.
** Font Lock displays portions of the buffer in incorrect faces.
By far the most frequent cause of this is a parenthesis `(' or a brace

View file

@ -6,4 +6,6 @@ people who have asked to be listed as offering support services for
GNU software, including GNU Emacs, for a fee or in some cases at no
charge.
Note added January 2014:
This file is obsolete and will be removed in future.
Please update any links to use the above URL.

View file

@ -69,7 +69,7 @@ DESCRIPTION
-i emulate IBM OS/VU (recursive universes not supported)
-I emulate IBM VTOS 3.7.6 (chronosynclastic infundibulae
-I emulate IBM VTOS 3.7.6 (chronosynclastic infundibula
supported with restrictions documented in IBM VTOS
@ -207,4 +207,3 @@ AUTHOR
Printed 10/28/85 18 January 1983 3

View file

@ -770,10 +770,10 @@
2008-02-01 Dave Love <fx@gnu.org>
* latin-post.el: Recode to utf-8.
* quail/latin-post.el: Recode to utf-8.
("latin-postfix"): New method.
* latin-alt.el: Recode to utf-8.
* quail/latin-alt.el: Recode to utf-8.
("latin-alt-postfix"): New method.
* quail/latin-pre.el: Recode to utf-8.
@ -2167,11 +2167,11 @@
* Makefile.in: Prepend ${srcdir} to all non-TIT lisp file names.
(leim-list.el): Depend on ${WORLD}.
* latin-alt.el (latin-2-alt-postfix): Doc fix.
* quail/latin-alt.el (latin-2-alt-postfix): Doc fix.
1998-04-08 Karl Heuer <kwzh@mescaline.gnu.org>
* czech.el, slovak.el: Correct starting commentary.
* quail/czech.el, quail/slovak.el: Correct starting commentary.
1998-04-07 Milan Zamazal <pdm@fi.muni.cz>
@ -2179,7 +2179,7 @@
1998-04-06 Andreas Schwab <schwab@gnu.org>
* lrt.el (lrt-composing-pattern-double-c): Change chars-in-string
* quail/lrt.el (lrt-composing-pattern-double-c): Change chars-in-string
to length.
(lrt-generate-quail-map): Change sref to aref, and make second
argument of substring a character index.

View file

@ -3,6 +3,61 @@
* mail/rmail.el (rmail-get-coding-system): Check
rmail-get-coding-function before "funcall"ing it.
2014-01-10 Glenn Morris <rgm@gnu.org>
* emacs-lisp/authors.el (authors-fixed-entries):
Update for files that no longer exist.
2014-01-10 Eric S. Raymond <esr@thyrsus.com>
* version.el (emacs-bzr-get-version): Restore compatibilty with
24.3 (Tested).
2014-01-10 Bozhidar Batsov <bozhidar@batsov.com>
* progmodes/ruby-mode.el (auto-mode-alist): Add .podspec
and Podfile.
2014-01-10 Eli Zaretskii <eliz@gnu.org>
* emacs-lisp/authors.el (authors-fixed-entries): Update my entry.
2014-01-10 Chong Yidong <cyd@gnu.org>
* progmodes/octave.el (octave-mode-menu): Don't assume eldoc is
loaded.
2014-01-10 Anders Lindgren <andlind@gmail.com>
* follow.el (follow-cache-command-list): Include right-char and
left-char.
2014-01-10 Paul Eggert <eggert@cs.ucla.edu>
Spelling fixes.
* mail/unrmail.el (unrmail-mbox-format): Choice is mboxo, not mboxro.
* woman.el (woman-mark-horizontal-position):
Rename from woman-mark-horizonal-position. Use changed.
2014-01-10 Glenn Morris <rgm@gnu.org>
* info.el (info-initialize): If running uninstalled, ensure our
own info files are always found first, even if INFOPATH is set.
* help.el (view-order-manuals): Open emacs.info rather than ORDERS.
2014-01-09 David Engster <deng@randomsample.de>
* emacs-lisp/eieio-custom.el:
* emacs-lisp/eieio-opt.el: Set generated autoload file to
'eieio.el'. This was accidentally removed in 2012-10-01T18:10:29Z!cyd@gnu.org.
* emacs-lisp/eieio.el: Regenerate autoloads.
2014-01-09 Eric S. Raymond <esr@thyrsus.com>
* vc/vc-git.el (vc-git-print-log): Add --follow option to command,
following renames. (Bug#8756)
2014-01-09 Stefan Monnier <monnier@iro.umontreal.ca>
* simple.el (deactivate-mark, activate-mark): Force-mode-line-update
@ -19,7 +74,7 @@
* version.el (emacs-bzr-version): Name changed to
emacs-repository-version. Obsolete-variable alias made.
* loadup.el: Follow through on this name change.
* lisp/mail/emacsbug.el (report-emacs-bug): Factor out any
* mail/emacsbug.el (report-emacs-bug): Factor out any
assumption about the version control system in use.
2014-01-08 David Engster <deng@randomsample.de>
@ -3371,7 +3426,7 @@
2013-10-17 Barry O'Reilly <gundaetiapo@gmail.com>
* lisp/subr.el (sit-for): Call (input-pending-p t) so as to behave
* subr.el (sit-for): Call (input-pending-p t) so as to behave
as before.
2013-10-18 Reuben Thomas <rrt@sc3d.org>
@ -4144,13 +4199,13 @@
2013-09-28 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
* lisp/progmodes/octave.el (octave-mode-map): Bind octave-send-buffer.
* progmodes/octave.el (octave-mode-map): Bind octave-send-buffer.
(octave-mode-menu): Add octave-send-buffer.
(octave-send-buffer): New function.
2013-09-28 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
* lisp/progmodes/octave.el (octave-mode-map): Add key binding for
* progmodes/octave.el (octave-mode-map): Add key binding for
octave-lookfor.
(octave-mode-menu): Add octave-lookfor.
(inferior-octave-mode-map, octave-help-mode-map): Bind C-ha to
@ -6152,7 +6207,7 @@
* isearch.el (isearch-done):
* jit-lock.el (jit-lock-stealth-fontify):
* mail/rmailsum.el (rmail-summary-scroll-msg-up):
* lisp/mouse-drag.el (mouse-drag-should-do-col-scrolling):
* mouse-drag.el (mouse-drag-should-do-col-scrolling):
* mpc.el (mpc-tagbrowser, mpc):
* net/rcirc.el (rcirc-any-buffer):
* play/gomoku.el (gomoku-max-width, gomoku-max-height):
@ -7523,12 +7578,12 @@
* files.el (find-file-noselect): Simplify conditional expression.
* remember.el (remember-append-to-file):
* textmodes/remember.el (remember-append-to-file):
Don't mix `find-buffer-visiting' and `get-file-buffer'.
Add `remember-notes' function to store random notes across Emacs
restarts.
* remember.el (remember-data-file): Add :set callback to affect
* textmodes/remember.el (remember-data-file): Add :set callback to affect
notes buffer (if any).
(remember-notes): New command.
(remember-notes-buffer-name, bury-remember-notes-on-kill):
@ -9106,7 +9161,7 @@
2013-06-05 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/subr.el: Convert to lexical binding.
* subr.el: Convert to lexical binding.
(overriding-local-map): Make obsolete.
(add-to-list): Doc fix. Add compiler macro.
(read-key): Swap values of local maps.
@ -9761,16 +9816,16 @@
2013-05-23 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
* lisp/textmodes/reftex.el (reftex-ref-style-toggle):
* textmodes/reftex.el (reftex-ref-style-toggle):
Fix deactivate action.
* lisp/textmodes/reftex-vars.el (reftex-ref-style-alist):
* textmodes/reftex-vars.el (reftex-ref-style-alist):
Add cleveref macros.
* lisp/textmodes/reftex-parse.el
* textmodes/reftex-parse.el
(reftex-locate-bibliography-files): Accept options for
bibliography commands.
* lisp/textmodes/reftex-vars.el (reftex-bibliography-commands):
* textmodes/reftex-vars.el (reftex-bibliography-commands):
Add addbibresource. Basic Biblatex support.
2013-05-23 Michael Albinus <michael.albinus@gmx.de>

View file

@ -67,8 +67,8 @@
* progmodes/cc-awk.el: New file that implements AWK support,
superseding the old separate derived mode in awk-mode.el.
* progmodes/cc-vars.el, cc-mode-19.el, progmodes/cc-langs.el,
* progmodes/cc-mode.el, progmodes/cc-defs.el,
* progmodes/cc-vars.el, progmodes/cc-mode-19.el, progmodes/cc-langs.el:
* progmodes/cc-mode.el, progmodes/cc-defs.el:
* progmodes/cc-engine.el, progmodes/cc-fonts.el:
Changes for the new AWK support.
@ -4486,7 +4486,7 @@
2003-03-26 Steve Youngs <youngs@xemacs.org>
* em-unix.el (eshell-plain-locate-behavior): Make the default
* eshell/em-unix.el (eshell-plain-locate-behavior): Make the default
nil on Emacs, t on XEmacs.
2003-03-25 Stefan Monnier <monnier@cs.yale.edu>
@ -6354,11 +6354,11 @@
* mh-e: Created directory. ChangeLog will appear in a week when we
release version 7.2.
* mail/mh-alias.el, mail/mh-comp.el, mail/mh-customize.el, mail/mh-e.el,
mail/mh-funcs.el, mail/mh-identity.el, mail/mh-index.el,
mail/mh-loaddefs.el, mail/mh-mime.el, mail/mh-pick.el,
mail/mh-seq.el, mail/mh-speed.el, mail/mh-utils.el,
mail/mh-xemacs-compat.el: Moved to mh-e directory.
* mail/mh-alias.el, mail/mh-comp.el, mail/mh-customize.el, mail/mh-e.el:
* mail/mh-funcs.el, mail/mh-identity.el, mail/mh-index.el:
* mail/mh-loaddefs.el, mail/mh-mime.el, mail/mh-pick.el:
* mail/mh-seq.el, mail/mh-speed.el, mail/mh-utils.el:
* mail/mh-xemacs-compat.el: Move to mh-e directory.
Note that reply2.pbm and reply2.xpm, which were created by the
MH-E package, were left in mail since they can probably be used by
other mail packages.
@ -10676,7 +10676,7 @@
2002-09-18 Michael Kifer <kifer@cs.stonybrook.edu>
* ediff-hooks.el: Put back the autoloads (for XEmacs compatibility).
* ediff-hook.el: Put back the autoloads (for XEmacs compatibility).
* ediff-init.el: Use defalias instead of fset.
@ -11693,32 +11693,32 @@
2002-08-27 Carsten Dominik <dominik@sand.science.uva.nl>
* textfile/reftex-ref.el (reftex-goto-label): New command.
* textmodes/reftex-ref.el (reftex-goto-label): New command.
* textfile/reftex-vars.el (reftex-part-resets-chapter): New option.
* textmodes/reftex-vars.el (reftex-part-resets-chapter): New option.
* textfile/reftex-parse.el (reftex-roman-number): New function.
* textmodes/reftex-parse.el (reftex-roman-number): New function.
(reftex-section-number): Better handling of parts: No chapter
counter resets.
* textfile/reftex.el (reftex-highlight-overlays): Added a third
* textmodes/reftex.el (reftex-highlight-overlays): Added a third
overlay.
(reftex-mode-menu): Added entry for `reftex-toc-recenter.
Also moved `reftex-reset-mode' to top level.
* textfile/reftex-toc.el (reftex-toc-recenter): New command.
* textmodes/reftex-toc.el (reftex-toc-recenter): New command.
(reftex-toc-pre-command-hook): Don't remove highlight overlay.
(reftex-toc-post-command-hook): Use overlay no 2 for highlighting.
* textfile/reftex-sel.el (reftex-get-offset): Get offset of
* textmodes/reftex-sel.el (reftex-get-offset): Get offset of
document pointer *before* position, not after.
(reftex-insert-docstruct): Get offset of document pointer *before*
position, not after.
* textfiles/reftex-parse.el (reftex-where-am-I): Prefer marker
* textmodes/reftex-parse.el (reftex-where-am-I): Prefer marker
match over section title match.
* textfiles/reftex-cite.el (reftex-bib-or-thebib): New function
* textmodes/reftex-cite.el (reftex-bib-or-thebib): New function
which determines on a per-file-basis if BibTeX is being used
locally for citations.
(reftex-offer-bib-menu): Use `reftex-bib-or-thebib' for better
@ -11726,7 +11726,7 @@
(reftex-bibtex-selection-callback): Use `reftex-bib-or-thebib' for
better cooperation with chapterbib.
* textfiles/reftex-dcr.el (reftex-view-cr-cite):
* textmodes/reftex-dcr.el (reftex-view-cr-cite):
Use `reftex-bib-or-thebib' for better cooperation with chapterbib.
2002-08-26 Kim F. Storm <storm@cua.dk>
@ -11891,7 +11891,7 @@
2002-08-20 Carsten Dominik <dominik@astro.uva.nl>
* textfiles/reftex-cite.el (reftex-bib-or-thebib): New function
* textmodes/reftex-cite.el (reftex-bib-or-thebib): New function
which determines on a per-file-basis if BibTeX is being used
locally for citations.
(reftex-offer-bib-menu): Use `reftex-bib-or-thebib' for better
@ -11899,7 +11899,7 @@
(reftex-bibtex-selection-callback): Use `reftex-bib-or-thebib' for
better cooperation with chapterbib.
* textfiles/reftex-dcr.el (reftex-view-cr-cite):
* textmodes/reftex-dcr.el (reftex-view-cr-cite):
Use `reftex-bib-or-thebib' for better cooperation with chapterbib.
2002-08-20 Kim F. Storm <storm@cua.dk>
@ -11909,7 +11909,7 @@
with keyboard macro related commands. The original binding on
C-x C-k is moved to C-x C-k e.
* binding.el: Remove macro related bindings (now in kmacro.el).
* bindings.el: Remove macro related bindings (now in kmacro.el).
* edmacro.el: Remove C-x C-k binding (now in kmacro.el).
@ -12099,12 +12099,12 @@
2002-04-09 John Wiegley <johnw@gnu.org>
* esh-util.el: Removed eshell-under-cygwin-p, and all uses of it.
* em-cmpl.el (eshell-cmpl-ignore-case): Ditto.
* em-dirs.el (eshell/cd): Ditto.
* em-glob.el (eshell-glob-case-insensitive): Ditto.
* em-hist.el (eshell-previous-matching-input-string-position): Ditto.
* esh-ext.el (eshell-binary-suffixes): Ditto.
* eshell/em-cmpl.el (eshell-cmpl-ignore-case):
* eshell/em-dirs.el (eshell/cd):
* eshell/em-glob.el (eshell-glob-case-insensitive):
* eshell/em-hist.el (eshell-previous-matching-input-string-position):
* eshell/esh-ext.el (eshell-binary-suffixes):
* eshell/esh-util.el: Remove eshell-under-cygwin-p, and all uses of it.
2002-08-09 Richard M. Stallman <rms@gnu.org>
@ -12197,12 +12197,12 @@
2002-04-09 John Paul Wallington <jpw@shootybangbang.com>
* esh-util.el (eshell-under-cygwin-p): New function.
* em-cmpl.el (eshell-cmpl-ignore-case): Use it.
* em-dirs.el (eshell/cd): Ditto.
* em-glob.el (eshell-glob-case-insensitive): Ditto.
* em-hist.el (eshell-previous-matching-input-string-position): Ditto.
* esh-ext.el (eshell-binary-suffixes): Ditto.
* eshell/esh-util.el (eshell-under-cygwin-p): New function.
* eshell/em-cmpl.el (eshell-cmpl-ignore-case):
* eshell/em-dirs.el (eshell/cd):
* eshell/em-glob.el (eshell-glob-case-insensitive):
* eshell/em-hist.el (eshell-previous-matching-input-string-position):
* eshell/esh-ext.el (eshell-binary-suffixes): Use it.
2002-08-05 Richard M. Stallman <rms@gnu.org>
@ -14192,7 +14192,7 @@
2002-06-09 Martin Stjernholm <bug-cc-mode@gnu.org>
* progmodes/cc-style.el (c-set-style, c-set-style-1):
* progmodes/cc-styles.el (c-set-style, c-set-style-1):
Add another state for the `dont-override' flag where it only keeps
globally set variables.
@ -15640,7 +15640,7 @@
2002-04-25 Michael Kifer <kifer@cs.stonybrook.edu>
* ediff-hooks.el: Put back the autoloads.
* ediff-hook.el: Put back the autoloads.
2002-04-25 Colin Walters <walters@verbum.org>
@ -16457,8 +16457,8 @@
2002-04-22 Martin Stjernholm <bug-cc-mode@gnu.org>
* progmodes/cc-align.el, progmodes/cc-defs.el,
progmodes/cc-cmds.el, progmodes/cc-engine.el, cc-vars.el:
* progmodes/cc-align.el, progmodes/cc-defs.el:
* progmodes/cc-cmds.el, progmodes/cc-engine.el, progmodes/cc-vars.el:
Several fixes to treat macros as code and not literals and to
handle line continuations transparently.
@ -17484,7 +17484,7 @@
2002-04-01 Ville Skyttä <ville.skytta@xemacs.org>
* tcl.el (tcl-imenu-generic-expression): New value.
* progmodes/tcl.el (tcl-imenu-generic-expression): New value.
(tcl-imenu-create-index-function): Function deleted.
(tcl-mode): Check for filladapt-mode.
Use tcl-imenu-generic-expression instead of
@ -22092,25 +22092,29 @@
(calc-do-keypad): Use it.
(calc-keypad-map): Move into `calc-keypad-mode'.
* calc-math.el (calcFunc-sqrt, calcFunc-hypot): Add missing quote
* calc/calc-math.el (calcFunc-sqrt, calcFunc-hypot): Add missing quote
to defalias argument.
* calc-misc.el (math-fixnump, math-fixnatnump, calcFunc-trunc)
* calc/calc-misc.el (math-fixnump, math-fixnatnump, calcFunc-trunc)
(calcFunc-floor): Ditto.
* calc-units.el (calcFunc-usimplify): Ditto.
* calc/calc-units.el (calcFunc-usimplify): Ditto.
* calc-aent.el, calc-ext.el, calc-incom.el, calc-misc.el
* calc-sel.el, calc-vec.el, calc-alg.el, calc-fin.el
* calc-keypd.el, calc-mode.el, calc-stat.el, calc-yank.el
* calc-arith.el, calc-forms.el, calc-lang.el, calc-mtx.el
* calc-store.el, calc.el, calc-bin.el, calc-frac.el, calc-macs.el
* calc-poly.el, calc-stuff.el, calcalg2.el, calc-comb.el
* calc-funcs.el, calc-maint.el, calc-prog.el, calc-trail.el
* calcalg3.el, calc-cplx.el, calc-graph.el, calc-map.el
* calc-rewr.el, calc-undo.el, calccomp.el, calc-embed.el
* calc-help.el, calc-math.el, calc-rules.el, calc-units.el
* calcsel2.el: Change all toplevel `setq' forms to `defvar' forms,
* calc/calc-aent.el, calc/calc-ext.el, calc/calc-incom.el:
* calc/calc-misc.el, calc/calc-sel.el, calc/calc-vec.el:
* calc/calc-alg.el, calc/calc-fin.el, calc/calc-keypd.el:
* calc/calc-mode.el, calc/calc-stat.el, calc/calc-yank.el:
* calc/calc-arith.el, calc/calc-forms.el, calc/calc-lang.el:
* calc/calc-mtx.el, calc/calc-store.el, calc/calc.el:
* calc/calc-bin.el, calc/calc-frac.el, calc/calc-macs.el:
* calc/calc-poly.el, calc/calc-stuff.el, calc/calcalg2.el:
* calc/calc-comb.el, calc/calc-funcs.el, calc/calc-maint.el:
* calc/calc-prog.el, calc/calc-trail.el, calc/calcalg3.el:
* calc/calc-cplx.el, calc/calc-graph.el, calc/calc-map.el:
* calc/calc-rewr.el, calc/calc-undo.el, calc/calccomp.el:
* calc/calc-embed.el, calc/calc-help.el, calc/calc-math.el:
* calc/calc-rules.el, calc/calc-units.el, calc/calcsel2.el:
Change all toplevel `setq' forms to `defvar' forms,
and move them before their first use. Use `when', `unless'.
Remove trailing periods from error forms. Add description and
headers suggested by Emacs Lisp coding conventions.
@ -22360,21 +22364,24 @@
* calc/calc-units.el (calcFunc-unsimplify): Ditto.
* calc-aent.el, calc-ext.el, calc-incom.el, calc-misc.el
* calc-sel.el, calc-vec.el, calc-alg.el, calc-fin.el
* calc-keypd.el, calc-mode.el, calc-stat.el, calc-yank.el
* calc-arith.el, calc-forms.el, calc-lang.el, calc-mtx.el
* calc-store.el, calc.el, calc-bin.el, calc-frac.el, calc-macs.el
* calc-poly.el, calc-stuff.el, calcalg2.el, calc-comb.el
* calc-funcs.el, calc-maint.el, calc-prog.el, calc-trail.el
* calcalg3.el, calc-cplx.el, calc-graph.el, calc-map.el
* calc-rewr.el, calc-undo.el, calccomp.el, calc-embed.el
* calc-help.el, calc-math.el, calc-rules.el, calc-units.el
* calcsel2.el: Style cleanup; don't put closing parens on their
own line, add "foo.el ends here" to each file, and update
copyright date.
* calc/calc-aent.el, calc/calc-ext.el, calc/calc-incom.el:
* calc/calc-misc.el, calc/calc-sel.el, calc/calc-vec.el:
* calc/calc-alg.el, calc/calc-fin.el, calc/calc-keypd.el:
* calc/calc-mode.el, calc/calc-stat.el, calc/calc-yank.el:
* calc/calc-arith.el, calc/calc-forms.el, calc/calc-lang.el:
* calc/calc-mtx.el, calc/calc-store.el, calc/calc.el, calc/calc-bin.el:
* calc/calc-frac.el, calc/calc-macs.el, calc/calc-poly.el:
* calc/calc-stuff.el, calc/calcalg2.el, calc/calc-comb.el:
* calc/calc-funcs.el, calc/calc-maint.el, calc/calc-prog.el:
* calc/calc-trail.el, calcalg3.el, calc/calc-cplx.el:
* calc/calc-graph.el, calc/calc-map.el, calc/calc-rewr.el:
* calc/calc-undo.el, calc/calccomp.el, calc/calc-embed.el:
* calc/calc-help.el, calc/calc-math.el, calc/calc-rules.el:
* calc/calc-units.el, calc/calcsel2.el: Style cleanup;
don't put closing parens on their own line,
add "foo.el ends here" to each file, and update copyright date.
* README: Update maintainer.
* calc/README: Update maintainer.
2001-11-13 Richard M. Stallman <rms@gnu.org>

View file

@ -1293,9 +1293,9 @@
2004-11-26 Jay Belanger <belanger@truman.edu>
* calc-misc.el (calc-last-why-command): Declare it.
* calc/calc-misc.el (calc-last-why-command): Declare it.
* calc-vec.el (math-grade-vec): New variable.
* calc/calc-vec.el (math-grade-vec): New variable.
(calcFunc-grade, calcFunc-rgrade, math-grade-beforep):
Replace variable grade-vec by declared variable.
(math-rb-close): New variable.
@ -1424,7 +1424,8 @@
2004-11-26 Lars Hansen <larsh@math.ku.dk>
* tramp.el (tramp-handle-directory-files-and-attributes): New function.
* net/tramp.el (tramp-handle-directory-files-and-attributes):
New function.
(tramp-perl-directory-files-and-attributes): New constant.
(tramp-file-name-handler-alist): Delete file-directory-files, add
directory-files-and-attributes.
@ -11950,7 +11951,7 @@
2003-11-16 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-engine.el (c-guess-continued-construct)
* progmodes/cc-engine.el (c-guess-continued-construct)
(c-guess-basic-syntax): Check a little more carefully if it's a
function declaration when an unknown construct followed by a block
is found inside a statement context. This avoids macros followed
@ -11964,7 +11965,8 @@
start is in a position so that `c-beginning-of-statement-1' jumped
to the beginning of the same statement.
* cc-fonts.el, cc-engine.el (c-forward-<>-arglist-recur):
* progmodes/cc-fonts.el, progmodes/cc-engine.el
(c-forward-<>-arglist-recur):
Don't accept binary operators in the arglist if we're in a function
call context, i.e. if `c-restricted-<>-arglists' is set. That avoids
template recognition in cases like "if (a < b || c > d)".
@ -11974,38 +11976,39 @@
Accessing functions updated for the variable name change.
* cc-engine.el (c-syntactic-re-search-forward): Fix bug where the
match data could get clobbered if NOT-INSIDE-TOKEN is used.
* progmodes/cc-engine.el (c-syntactic-re-search-forward): Fix bug
where the match data could get clobbered if NOT-INSIDE-TOKEN is used.
* cc-engine.el (c-beginning-of-statement-1): Don't allow parens in
labels.
* progmodes/cc-engine.el (c-beginning-of-statement-1):
Don't allow parens in labels.
(c-backward-to-decl-anchor): Use `c-beginning-of-statement-1'
instead of duplicating parts of it. This fixes bogus label
recognition.
* cc-align.el (c-gnu-impose-minimum): Revert to the old method
* progmodes/cc-align.el (c-gnu-impose-minimum): Revert to the old method
of checking the context in which to apply the minimum indentation,
so that it isn't enforced in e.g. namespace blocks.
* cc-vars.el (c-inside-block-syms): New constant used by
* progmodes/cc-vars.el (c-inside-block-syms): New constant used by
`c-gnu-impose-minimum'. It's defined close to `c-offsets-alist'
to somewhat reduce the risk of becoming stale.
* cc-cmds.el, cc-engine.el (c-shift-line-indentation): Move from
cc-cmds to cc-engine to allow use from cc-align.
* progmodes/cc-cmds.el, progmodes/cc-engine.el
(c-shift-line-indentation): Move from cc-cmds to cc-engine
to allow use from cc-align.
* cc-engine.el (c-beginning-of-inheritance-list): Cope with fully
qualified identifiers containing "::".
* progmodes/cc-engine.el (c-beginning-of-inheritance-list):
Cope with fully qualified identifiers containing "::".
* cc-defs.el (c-make-keywords-re): Add kludge for bug in
* progmodes/cc-defs.el (c-make-keywords-re): Add kludge for bug in
`regexp-opt' in Emacs 20 and XEmacs when strings contain newlines.
* cc-vars.el (c-emacs-features): Use a space in front of the name
of the temporary buffer. That also avoids dumping problems in
* progmodes/cc-vars.el (c-emacs-features): Use a space in front of
the name of the temporary buffer. That also avoids dumping problems in
XEmacs due to undo info being left around after the buffer is killed.
* cc-engine.el (c-in-knr-argdecl): Look closer at the function
* progmodes/cc-engine.el (c-in-knr-argdecl): Look closer at the function
arglist to see if it's a K&R style declaration.
(c-guess-basic-syntax): CASE 5B.2: Check with `c-in-knr-argdecl'
@ -13476,20 +13479,20 @@
2003-08-11 Carsten Dominik <dominik@sand.science.uva.nl>
* reftex-toc.el (reftex-toc-rename-label): New function.
* textmodes/reftex-toc.el (reftex-toc-rename-label): New function.
(reftex-toc-check-docstruct): New function.
* reftex.el (reftex-region-active-p): New function.
* textmodes/reftex.el (reftex-region-active-p): New function.
* reftex-parse.el (reftex-locate-bibliography-files): Improved the
* textmodes/reftex-parse.el (reftex-locate-bibliography-files): Improved the
regexp to find the \bibliography macro.
* reftex-vars.el (reftex-section-levels): Removed subsubparagraph,
* textmodes/reftex-vars.el (reftex-section-levels): Removed subsubparagraph,
which does not exist in LaTeX.
(reftex-cite-format-builtin): Added amsrefs support.
(reftex-toc-confirm-promotion): New option
* reftex-toc.el
* textmodes/reftex-toc.el
(reftex-toc): Use `reftex-toc-split-windows-fraction'.
(reftex-toc-demote, reftex-toc-promote)
(reftex-toc-do-promote, reftex-toc-promote-prepare)
@ -13512,10 +13515,9 @@
(reftex-toc-quit): Adapted to delete frame when called in
dedicated frame.
* reftex-index.el (reftex-index-phrase-match-is-indexed): Check
* textmodes/reftex-index.el (reftex-index-phrase-match-is-indexed): Check
all enclosing macros.
2003-08-08 Vinicius Jose Latorre <viniciusjl@ig.com.br>
* progmodes/ebnf2ps.el (ebnf-total, ebnf-nprod): Move defvar before

View file

@ -8191,8 +8191,9 @@
2006-07-10 Alan Mackenzie <acm@muc.de>
* progmodes/cc-awk.el, cc-defs.el, cc-fonts.el, cc-langs.el:
* cc-mode.el: Changes to eradicate eval-after-load.
* progmodes/cc-awk.el, progmodes/cc-defs.el, progmodes/cc-fonts.el:
* progmodes/cc-langs.el, progmodes/cc-mode.el:
Changes to eradicate eval-after-load.
2006-07-09 Chong Yidong <cyd@stupidchicken.com>
@ -12229,7 +12230,7 @@
2006-02-24 Alan Mackenzie <bug-cc-mode@gnu.org>
* progmodes/cc-cmds.el, cc-mode.el: Rename c-hungry-backspace to
* progmodes/cc-cmds.el, progmodes/cc-mode.el: Rename c-hungry-backspace to
c-hungry-delete-backwards, at the request of RMS. Leave the old
name as an alias.
@ -12283,7 +12284,7 @@
* progmodes/cc-defs.el (c-version): Update version number to 5.31.2.
* progmodes/cc-cmds.el, cc-mode.el, cc-engine.el
* progmodes/cc-cmds.el, progmodes/cc-mode.el, progmodes/cc-engine.el
(c-update-modeline): Concatenate the minor mode indicators
directly onto mode-name, removing c-submode-indicators.
Sometimes, c-s-i got separated from the mode name on the mode line.
@ -15730,7 +15731,8 @@
Emacsen which lack `define-minor-mode'. (Currently Emacs <21.
We might do this function properly in the future).
* progmodes/cc-cmds.el, cc-defs.el, cc-styles.el, cc-vars.el:
* progmodes/cc-cmds.el, progmodes/cc-defs.el:
* progmodes/cc-styles.el, progmodes/cc-vars.el:
New macros c-sentence-end and c-default-value-sentence end, to cope
with Emacs 22's new function `sentence-end'.
@ -15779,7 +15781,7 @@
* progmodes/cc-mode.el: Bind c-subword-mode to C-c C-w.
* progmodes/cc-subword.el, cc-cmds.el, cc-mode.el:
* progmodes/cc-subword.el, progmodes/cc-cmds.el, progmodes/cc-mode.el:
Rename "c-subword-move-mode" as "c-subword-mode".
* progmodes/cc-mode.el: Added tty suitable bindings for C-c
@ -15810,7 +15812,7 @@
2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org>
* progmodes/cc-fonts.el, cc-vars.el
* progmodes/cc-fonts.el, progmodes/cc-vars.el
(gtkdoc-font-lock-doc-comments, gtkdoc-font-lock-doc-protection)
(gtkdoc-font-lock-keywords): GtkDoc patterns contributed by
Masatake YAMATO.
@ -15886,7 +15888,7 @@
* progmodes/cc-cmds.el: Make C-c C-a (`c-toggle-auto-newline')
forcibly enable c-electric-flag.
* progmodes/cc-vars.el, cc-cmds.el: New clean-up
* progmodes/cc-vars.el, progmodes/cc-cmds.el: New clean-up
`comment-close-slash' on c-electric-slash: if enabled, typing `/' just
after the comment-prefix of a C-style comment will close that comment.
@ -15899,7 +15901,7 @@
* progmodes/cc-langs.el (c-other-op-syntax-tokens): Only C++ has
digraphs.
* progmodes/cc-fonts.el, cc-langs.el, cc-engine.el
* progmodes/cc-fonts.el, progmodes/cc-langs.el, progmodes/cc-engine.el
(c-cpp-message-directives, c-cpp-include-directives)
(c-opt-cpp-macro-define, c-opt-cpp-macro-define-start)
(c-cpp-expr-directives): Introduce new language constants to
@ -15909,7 +15911,7 @@
(c-cpp-matchers, c-forward-to-cpp-define-body): Use them.
* progmodes/cc-langs.el, cc-fonts.el (c-string-escaped-newlines)
* progmodes/cc-langs.el, progmodes/cc-fonts.el (c-string-escaped-newlines)
(c-multiline-string-start-char): New language constants and
variables to specify how newlines in string literals work.
@ -15923,13 +15925,13 @@
(c-electric-brace): Indent syntactically after the cleanups since
lineup functions might do it differently then.
* progmodes/cc-engine.el, cc-langs.el
* progmodes/cc-engine.el, progmodes/cc-langs.el
(c-opt-op-identifier-prefix): New language constant and variable.
(c-just-after-func-arglist-p, c-after-special-operator-id)
(c-search-decl-header-end, c-inside-bracelist-p): Use it.
* progmodes/cc-align.el, cc-engine.el
* progmodes/cc-align.el, progmodes/cc-engine.el
(c-after-special-operator-id): New helper to handle C++ operator
identifiers.
@ -16012,8 +16014,9 @@
* progmodes/cc-cmds.el (c-show-syntactic-information): Show the
anchor position(s) using faces. Thanks to Masatake YAMATO for the idea.
* progmodes/cc-mode.el, cc-cmds.el, cc-defs.el, cc-engine.el
(c-submode-indicators): Change name from `c-auto-hungry-string'
* progmodes/cc-mode.el, progmodes/cc-cmds.el, progmodes/cc-defs.el:
* progmodes/cc-engine.el (c-submode-indicators):
Change name from `c-auto-hungry-string'
since it's now used to track another submode.
(c-update-modeline): Convert to function and extended to check
@ -16084,7 +16087,7 @@
to avoid heuristics that doesn't work for unclosed blocks.
(c-at-statement-start-p): New function.
* progmodes/cc-engine.el, cc-fonts.el: Fixes in handling of
* progmodes/cc-engine.el, progmodes/cc-fonts.el: Fixes in handling of
Objective-C directives, e.g. directives spanning lines should work
reasonably well now.
@ -16168,7 +16171,7 @@
(c-forward-single-comment, c-backward-single-comment): Comment out
the (now redundant) "special" AWK stuff.
* progmodes/cc-styles.el, cc-vars.el: Change the settings of
* progmodes/cc-styles.el, progmodes/cc-vars.el: Change the settings of
c-string-par-start, c-string-par-separate to be more like Text
Mode than Fundamental Mode.
@ -16237,7 +16240,7 @@
the checks for paren sexps between the point and the keyword, to
avoid some false alarms.
* progmodes/cc-engine.el, cc-langs.el (c-looking-at-inexpr-block):
* progmodes/cc-engine.el, progmodes/cc-langs.el (c-looking-at-inexpr-block):
Fixed a situation where an error could be thrown for unbalanced
parens. Changed to make use of c-keyword-member' to avoid some
repeated regexp matches.
@ -16278,7 +16281,8 @@
2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org>
* progmodes/cc-cmds.el, cc-styles.el, cc-vars.el: New variables
* progmodes/cc-cmds.el, progmodes/cc-styles.el:
* progmodes/cc-vars.el: New variables
c-string-par-start/separate c-sentence-end-with-esc-eol,
initialized in c-setup-paragraph-variables, used in string
scanning subroutines of c-beginning-of-statement.
@ -16288,7 +16292,7 @@
2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org>
* progmodes/cc-engine.el, cc-langs.el: Rewrote the recognition
* progmodes/cc-engine.el, progmodes/cc-langs.el: Rewrote the recognition
function for declaration level blocks. It should now cope with
templates better and also be a lot more comprehensible.
@ -16340,7 +16344,7 @@
the point could be left directly after an open paren when finding
the beginning of the first decl in the block.
* progmodes/cc-engine.el, cc-fonts.el (c-forward-keyword-clause):
* progmodes/cc-engine.el, progmodes/cc-fonts.el (c-forward-keyword-clause):
Specify which submatch to use.
* progmodes/cc-langs.el (c-symbol-start): Include `@' in ObjC.
@ -16405,7 +16409,7 @@
(c-specifier-key, c-not-decl-init-keywords): Some cleanup using new
language constants `c-type-start-kwds' and `c-prefix-spec-kwds'.
* progmodes/cc-fonts.el, cc-langs.el, cc-engine.el:
* progmodes/cc-fonts.el, progmodes/cc-langs.el, progmodes/cc-engine.el:
Internal cleanups to properly detect the declared identifiers in
various declarations.
@ -16446,11 +16450,12 @@
* progmodes/cc-engine.el (c-maybe-labelp): Provide no default
value - this variable is always dynamically bound.
* progmodes/cc-engine.el, cc-fonts.el, cc-langs.el, cc-menus.el
* cc-mode.el, cc-styles.el, cc-vars.el, cc-align.el, cc-awk.el
* cc-cmds.el, cc-defs.el: Change the policy for marking up
functions that might do hidden buffer changes: All such internal
functions are now marked instead of those that don't.
* progmodes/cc-engine.el, progmodes/cc-fonts.el, progmodes/cc-langs.el:
* progmodes/cc-menus.el, progmodes/cc-mode.el, progmodes/cc-styles.el:
* progmodes/cc-vars.el, progmodes/cc-align.el, progmodes/cc-awk.el:
* progmodes/cc-cmds.el, progmodes/cc-defs.el: Change the policy
for marking up functions that might do hidden buffer changes:
All such internal functions are now marked instead of those that don't.
(c-beginning-of-macro, c-end-of-macro, c-(forward|backward)-comments)
(c-(forward|backward)-single-comment, c-parse-state, c-on-identifier)
@ -16495,7 +16500,8 @@
2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org>
* progmodes/cc-engine.el, cc-fonts.el, cc-langs.el: Cleaned up the
* progmodes/cc-engine.el, progmodes/cc-fonts.el:
* progmodes/cc-langs.el: Cleaned up the
label handling. Labels are now recognized in a uniform and more
robust way, regardless of context. Text properties are put on all
labels to recognize the following declarations better.
@ -16552,7 +16558,7 @@
* progmodes/cc-align.el (c-lineup-arglist): Fix bug when the
first argument starts with a special brace list.
* progmodes/cc-engine.el, cc-fonts.el (c-forward-decl-or-cast-1)
* progmodes/cc-engine.el, progmodes/cc-fonts.el (c-forward-decl-or-cast-1)
(c-font-lock-declarations): Break out the declaration and cast
recognition from `c-font-lock-declarations' to a new function, so
that it can be used in the indentation engine.
@ -16652,7 +16658,7 @@
2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org>
* progmodes/cc-fonts.el, cc-langs.el: Use `c-simple-ws' instead of
* progmodes/cc-fonts.el, progmodes/cc-langs.el: Use `c-simple-ws' instead of
hardcoded char classes wherever possible. Changed a couple of
places to use skip by syntax instead of skip by char class.
@ -16702,7 +16708,7 @@
* progmodes/cc-cmds.el: Tidy c-beginning-of-sentence (and
subfunctions) so that it works at BOB and EOB.
* progmodes/cc-cmds.el, cc-vars.el: More updating of
* progmodes/cc-cmds.el, progmodes/cc-vars.el: More updating of
c-beginning-of-statement, including new variable
c-block-comment-start-regexp.
@ -16742,7 +16748,7 @@
2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org>
* progmodes/cc-engine.el, cc-fonts.el, cc-langs.el
* progmodes/cc-engine.el, progmodes/cc-fonts.el, progmodes/cc-langs.el
(c-guess-basic-syntax): Change the way class-level labels are
recognized; they can now contain essentially any symbols.
@ -16765,7 +16771,7 @@
Remove some cruft and fixed a bug that could cause it to go to a
position further down.
* progmodes/cc-langs.el, cc-engine.el
* progmodes/cc-langs.el, progmodes/cc-engine.el
(c-beginning-of-statement-1): Improve detection of labels in
declaration contexts.
@ -16780,7 +16786,7 @@
* progmodes/cc-defs.el (c-forward-sexp, c-backward-sexp):
Make these behave as documented when used at the buffer limits.
* progmodes/cc-mode.el, cc-engine.el, cc-langs.el
* progmodes/cc-mode.el, progmodes/cc-engine.el, progmodes/cc-langs.el
(c-type-decl-end-used): Made this a language variable.
* progmodes/cc-mode.el (c-after-change): Widen the buffer to work
@ -16807,7 +16813,8 @@
* progmodes/cc-mode.el (c-basic-common-init): Turn on syntax-table
text property lookup only when it's needed.
* progmodes/cc-langs.el, cc-engine.el, cc-fonts.el, cc-mode.el:
* progmodes/cc-langs.el, progmodes/cc-engine.el:
* progmodes/cc-fonts.el, progmodes/cc-mode.el:
Change the policy for paren marked angle brackets to be more
persistent; once marked they remain marked even when they're found
to be unbalanced in the searched region. This should keep the
@ -16852,27 +16859,29 @@
2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org>
* progmodes/cc-cmds.el, cc-engine.el, cc-langs.el, cc-vars.el:
* progmodes/cc-cmds.el, progmodes/cc-engine.el:
* progmodes/cc-langs.el, progmodes/cc-vars.el:
Make the "Text Filling and Line Breaking" commands work for AWK buffers.
2005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org>
* progmodes/cc-defs.el, cc-engine.el (c-mode-is-new-awk-p):
* progmodes/cc-defs.el, progmodes/cc-engine.el (c-mode-is-new-awk-p):
Removed; (c-major-mode-is 'awk-mode) can be used instead now.
* progmodes/cc-mode.el: Always set up AWK mode since emacsen where
it doesn't work no longer are supported.
* progmodes/cc-mode.el, cc-styles.el, cc-vars.el, cc-defs.el
* cc-engine.el, cc-fonts.el, cc-langs.el, cc-cmds.el: CC Mode now
* progmodes/cc-mode.el, progmodes/cc-styles.el, progmodes/cc-vars.el:
* progmodes/cc-defs.el, progmodes/cc-engine.el, progmodes/cc-fonts.el:
* progmodes/cc-langs.el, progmodes/cc-cmds.el: CC Mode now
requires support for the syntax-table' text property, which rules
out Emacs 19 and XEmacs < 21.4. Removed various compatibility
cruft associated with those versions.
* progmodes/cc-defs.el, cc-fix.el: CC Mode now requires support
for the `syntax-table' text property, which rules out Emacs 19 and
XEmacs < 21.4. Removed various compatibility cruft associated
with those versions.
* progmodes/cc-defs.el, progmodes/cc-fix.el: CC Mode now requires
support for the `syntax-table' text property, which rules out
Emacs 19 and XEmacs < 21.4. Remove various compatibility cruft
associated with those versions.
* progmodes/cc-vars.el (c-emacs-features): CC Mode now requires
support for the `syntax-table' text property.
@ -27408,14 +27417,14 @@
* progmodes/cc-engine.el (c-guess-basic-syntax): Handle operator
declarations somewhat better in C++.
* progmodes/cc-styles.el, cc-mode.el (c-run-mode-hooks):
* progmodes/cc-styles.el, progmodes/cc-mode.el (c-run-mode-hooks):
New helper macro to make use of `run-mode-hooks'
which has been added in Emacs 21.1.
(c-mode, c++-mode, objc-mode, java-mode, idl-mode, pike-mode)
(awk-mode): Use it.
(make-local-hook): Suppress warning about obsolescence.
* progmodes/cc-engine.el, cc-align.el, cc-cmds.el
* progmodes/cc-engine.el, progmodes/cc-align.el, progmodes/cc-cmds.el
(c-append-backslashes-forward, c-delete-backslashes-forward)
(c-find-decl-spots, c-semi&comma-no-newlines-before-nonblanks):
Compensate for return value from `forward-line' when it has moved
@ -27428,9 +27437,9 @@
CC Mode update to 5.30.10:
* progmodes/cc-mode.el, cc-engine.el, cc-align.el: Change the FSF's
address in the copyright statement. Incidentally, change "along with
GNU Emacs" to "along with this program" where it occurs.
* progmodes/cc-mode.el, progmodes/cc-engine.el, progmodes/cc-align.el:
Change the FSF's address in the copyright statement. Incidentally,
change "along with GNU Emacs" to "along with this program" where it occurs.
* progmodes/cc-mode.el: Add a fourth parameter `t' to the awk-mode
autoload, so that it is interactive, hence can be found by M-x awk-mode

View file

@ -541,7 +541,7 @@
2008-02-01 Vinicius Jose Latorre <viniciusjl@ig.com.br>
* ps-print.ps: Fix background height.
* ps-print.el: Fix background height.
(ps-print-version): New version 7.2.1.
2008-02-01 Vinicius Jose Latorre <viniciusjl@ig.com.br>

View file

@ -7565,7 +7565,7 @@
2008-09-05 Wilson Snyder <wsnyder@wsnyder.org>
* verilog-mode.el (verilog-library-extensions): Enable .sv
* progmodes/verilog-mode.el (verilog-library-extensions): Enable .sv
filename extensions to call verilog-mode.
(verilog-auto, verilog-auto-inst, verilog-faq)
(verilog-submit-bug-report): Update author support URLs.
@ -7592,7 +7592,7 @@
2008-09-05 Michael McNamara <mac@mail.brushroad.com>
* verilog-mode.el (verilog-beg-block-re-ordered, verilog-calc-1):
* progmodes/verilog-mode.el (verilog-beg-block-re-ordered, verilog-calc-1):
Better support for the property statement. Sometimes this keyword
introduces a statement which requires an endproperty keyword, and
sometimes it doesn't, depending on the work before the property
@ -11807,7 +11807,7 @@
2008-05-24 Ulf Jasper <ulf.jasper@web.de>
* icalendar.el (icalendar-version): Increase to "0.19".
* calendar/icalendar.el (icalendar-version): Increase to "0.19".
(icalendar--date-style): New function.
(icalendar--datetime-to-diary-date): Doc fix.
Use icalendar--date-style.
@ -13390,10 +13390,6 @@
(orgtbl-send-table): Use the previous two functions and implement
multiple destinations for each table.
* doc/org.texi (A LaTeX example): Note that fmt may be a
one-argument function, and efmt may be a two-argument function.
(Radio tables): Document multiple destinations.
2008-04-27 Carsten Dominik <dominik@science.uva.nl>
* org/org-agenda.el (org-add-to-diary-list): New function.
@ -13508,7 +13504,7 @@
2008-04-27 Andreas Schwab <schwab@suse.de>
* Makefile.el: Unbreak bootstrap.
* Makefile.in: Unbreak bootstrap.
2008-04-27 Michael Albinus <michael.albinus@gmx.de>

View file

@ -5790,18 +5790,18 @@
Enhance fontification of declarators to take account of the
presence/absence of "typedef".
* cc-engine.el (c-forward-type): New &optional param
* progmodes/cc-engine.el (c-forward-type): New &optional param
"brace-block-too".
(c-forward-decl-or-cast-1): cdr of return value now indicates the
presence of either or both of a "struct"-like keyword and "typedef".
* cc-fonts.el (c-complex-decl-matchers): Remove the heuristic
* progmodes/cc-fonts.el (c-complex-decl-matchers): Remove the heuristic
fontification of declarators which follow a "}".
(c-font-lock-declarations): Fontify declarators according to the
presence/absence of "typedef".
* cc-langs.el (c-typedef-kwds c-typedef-key): New lang variable
for "typedef".
* progmodes/cc-langs.el (c-typedef-kwds c-typedef-key):
New lang variable for "typedef".
(c-typedef-decl-key): New lang variable built from
c-typedef-decl-kwds.
@ -18135,6 +18135,10 @@
* window.el (window-full-height-p): New function. (Bug#4543)
2009-10-03 Chong Yidong <cyd@stupidchicken.com>
* files.el (auto-mode-alist): Add .srt and Project.ede.
2009-10-03 Dan Nicolaescu <dann@ics.uci.edu>
* vc.el: Remove commented out code.

View file

@ -965,7 +965,7 @@
2013-02-13 Yves Baumes <ybaumes@gmail.com> (tiny change)
* lisp/emacs-lisp/package.el (package-menu-execute):
* emacs-lisp/package.el (package-menu-execute):
Add optional noquery argument. (Bug#13625)
2013-02-13 Michael Albinus <michael.albinus@gmx.de>
@ -1408,7 +1408,7 @@
2013-01-30 Jay Belanger <jay.p.belanger@gmail.com>
* calc-units.el (math-default-units-table): Remove initial value.
* calc/calc-units.el (math-default-units-table): Remove initial value.
(calc-convert-units): Treat expressions where all the units cancel as
if they didn't have units.
@ -1437,9 +1437,9 @@
2013-01-29 Alan Mackenzie <acm@muc.de>
Amend to fontify /regexp/s in actions correctly.
* cc-awk.el (c-awk-harmless-char-re, c-awk-harmless-string*-re):
(c-awk-harmless-string*-here-re): Braces, parens and semicolons
are no longer included.
* progmodes/cc-awk.el (c-awk-harmless-char-re)
(c-awk-harmless-string*-re, c-awk-harmless-string*-here-re):
Braces, parens and semicolons are no longer included.
(c-awk-harmless-line-char-re, c-awk-harmless-line-string*-re):
What used to be these variables without "-line" in the name.
(c-awk-neutral-re): { is no longer neutral. Escaped newlines now are.
@ -2813,7 +2813,7 @@
2012-12-12 Jonas Bernoulli <jonas@bernoul.li>
* lisp/emacs-lisp/eieio.el: Prettier object pretty-printing (bug#13115).
* emacs-lisp/eieio.el: Prettier object pretty-printing (bug#13115).
(eieio-override-prin1): Don't quote kewords and booleans.
(object-write) <eieio-default-superclass>: Don't put closing parens
on new line, avoid needless empty lines, align values that are objects
@ -5041,13 +5041,13 @@
* startup.el (command-line): Mark window system is initialized
after we've done it.
* common-win.el (x-select-text): Look for w32, not windows-nt.
* term/common-win.el (x-select-text): Look for w32, not windows-nt.
* ns-win.el: Require cl-lib. Add ourselves to
* term/ns-win.el: Require cl-lib. Add ourselves to
display-format-alist.
(ns-initialize-window-system): Assert we're not initialized twice.
* w32-win.el: Enable lexical binding; require cl-lib; add
* term/w32-win.el: Enable lexical binding; require cl-lib; add
ourselves to display-format-alist.
(w32-handle-dropped-file): Convert incoming dropped files from
Windows paths to Cygwin ones before passing them on to the rest of
@ -5055,7 +5055,7 @@
(w32-drag-n-drop): New paramter new-frame. Simplify logic.
(w32-initialize-window-system): Assert we're not initialized twice.
* x-win.el: Require cl-lib; add ourselves to display-format-alist.
* term/x-win.el: Require cl-lib; add ourselves to display-format-alist.
(x-initialize-window-system): Assert we're not initialized twice.
* w32-common-fns.el: New File.
@ -5894,8 +5894,8 @@
2012-09-25 Wilson Snyder <wsnyder@wsnyder.org>
* verilog-mode.el (verilog-auto-ascii-enum, verilog-auto-inout)
(verilog-auto-input, verilog-auto-insert-lisp)
* progmodes/verilog-mode.el (verilog-auto-ascii-enum)
(verilog-auto-inout, verilog-auto-input, verilog-auto-insert-lisp)
(verilog-auto-output, verilog-auto-output-every, verilog-auto-reg)
(verilog-auto-reg-input, verilog-auto-tieoff, verilog-auto-undef)
(verilog-auto-unused, verilog-auto-wire)
@ -8101,7 +8101,7 @@
2012-08-04 Michal Nazarewicz <mina86@mina86.com>
* lisp/mpc.el: Support password in host argument.
* mpc.el: Support password in host argument.
(mpc--proc-connect): Parse and use new password element.
Set mpc-proc variable instead of returning process.
(mpc-proc): Adjust accordingly.
@ -8204,17 +8204,17 @@
2012-07-31 Jay Belanger <jay.p.belanger@gmail.com>
* calc-mode.el (calc-basic-simplification-mode): Rename from
* calc/calc-mode.el (calc-basic-simplification-mode): Rename from
`calc-limited-simplification-mode'.
(calc-alg-simplification-mode): New function.
(calc-set-simplify-mode): Adjust message.
* calc.el (calc-set-mode-line): Adjust mode line display for
* calc/calc.el (calc-set-mode-line): Adjust mode line display for
basic simplification mode.
* calc-help.el (calc-m-prefix-help): Update help message.
* calc/calc-help.el (calc-m-prefix-help): Update help message.
* calc-ext.el (calc-init-extensions): Add bindings and autoloads
* calc/calc-ext.el (calc-init-extensions): Add bindings and autoloads
for `calc-basic-simplify-mode' and `calc-alg-simplify-mode'.
2012-07-31 Bastien Guerry <bzg@gnu.org>

View file

@ -11004,7 +11004,7 @@
1989-06-23 Joseph Arceneaux (jla@all-bran.ai.mit.edu)
* term/x-win.el (x-pop-up-window): Run hook x-pop-up-window-hook.
(x-color-screen-p): New macro; used to be C function.
(x-color-screen-p): New macro; used to be C function in xfns.c.
1989-06-22 Richard Stallman (rms@mole.ai.mit.edu)

View file

@ -2437,20 +2437,6 @@
* emacs-lisp/elp.el: A fix to follow coding conventions.
* gnus/binhex.el, gnus/binhex.el, gnus/earcon.el,
* gnus/gnus-agent.el, gnus/gnus-art.el, gnus/gnus-audio.el,
* gnus/gnus-logic.el, gnus/gnus-ml.el, gnus/gnus-mlspl.el,
* gnus/gnus-setup.el, gnus/gnus-srvr.el, gnus/gnus-sum.el,
* gnus/gnus-uu.el, gnus/gnus-vm.el, gnus/ietf-drums.el,
* gnus/mail-parse.el, gnus/mail-prsvr.el, gnus/mail-source.el,
* gnus/mm-bodies.el, gnus/mm-decode.el, gnus/mm-encode.el,
* gnus/mm-partial.el, gnus/mm-util.el, gnus/mm-uu.el,
* gnus/mm-view.el, gnus/mml.el, gnus/nnimap.el, gnus/nnoo.el,
* gnus/parse-time.el, gnus/rfc1843.el, gnus/rfc2045.el,
* gnus/rfc2047.el, gnus/rfc2104.el, gnus/rfc2231.el,
* gnus/time-date.el, gnus/uudecode.el: Some fixes to follow coding
conventions in files from Gnus.
* abbrevlist.el, array.el, buff-menu.el, calendar/appt.el,
* case-table.el, cdl.el, cmuscheme.el, compare-w.el, completion.el,
* custom.el, derived.el, dired-aux.el, disp-table.el, dos-vars.el,
@ -2569,7 +2555,7 @@
2001-07-10 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-cmds.el (c-indent-exp): Keep the indentation of the block
* progmodes/cc-cmds.el (c-indent-exp): Keep the indentation of the block
itself, i.e. only indent the contents in it.
2001-07-10 Markus Rost <rost@math.ohio-state.edu>
@ -2601,7 +2587,7 @@
2001-07-09 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-cmds.el: Extended the kludge to interoperate with the
* progmodes/cc-cmds.el: Extended the kludge to interoperate with the
delsel and pending-del packages wrt to the new function
`c-electric-delete-forward'.
@ -3648,14 +3634,14 @@
2001-05-04 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-cmds.el (c-electric-delete, c-electric-delete-forward):
* progmodes/cc-cmds.el (c-electric-delete, c-electric-delete-forward):
Split `c-electric-delete' into two functions where
`c-electric-delete-forward' always deletes forward and
`c-electric-delete' only contains the code necessary for XEmacs to
choose between backward and forward deletion.
* cc-mode.el: `c-electric-delete-forward' is now bound to C-d to
get the electric behavior on that key too.
* progmodes/cc-mode.el: `c-electric-delete-forward' is now bound
to C-d to get the electric behavior on that key too.
(c-fill-paragraph): Fixed bogus direct use of
c-comment-prefix-regexp, which caused an error when it's a list.
@ -4463,53 +4449,54 @@
2000-03-21 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-mode.el, cc-vars.el (c-common-init, c-default-style):
* progmodes/cc-mode.el, progmodes/cc-vars.el (c-common-init)
(c-default-style):
Removed the hardcoded switch to "java" style in Java mode.
It's instead taken care of by the default value for c-default-style.
2000-03-21 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-align.el (c-lineup-math): Fix bug where lineup was
* progmodes/cc-align.el (c-lineup-math): Fix bug where lineup was
triggered by equal signs in string literals.
2000-03-21 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-cmds.el (c-fill-paragraph): Fixed bug in the paragraph
* progmodes/cc-cmds.el (c-fill-paragraph): Fixed bug in the paragraph
limit detection when at the ends of the buffer.
* cc-engine.el (c-guess-basic-syntax): Removed bogus check for
* progmodes/cc-engine.el (c-guess-basic-syntax): Removed bogus check for
"for" statement clause in case 7F; a better one is done
earlier in case 7D anyway.
2000-03-21 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-cmds.el (c-guess-fill-prefix): Improved the heuristics
* progmodes/cc-cmds.el (c-guess-fill-prefix): Improved the heuristics
somewhat more and did a small optimization.
2000-03-21 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-cmds.el (c-beginning-of-statement, c-end-of-statement):
* progmodes/cc-cmds.el (c-beginning-of-statement, c-end-of-statement):
Use the limit argument only to limit the syntactic context
search, not to limit the actual movement.
* cc-cmds.el (c-beginning-of-statement): Move by sentence
* progmodes/cc-cmds.el (c-beginning-of-statement): Move by sentence
inside multiline strings, just like in comments. Also various
fixes to the paragraph and comment prefix recognition, block
comment ender handling etc.
2000-03-21 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-cmds.el (c-fill-paragraph): Take more care to preserve
* progmodes/cc-cmds.el (c-fill-paragraph): Take more care to preserve
the relative position of the point.
* cc-cmds.el (c-electric-continued-statement): New function to
* progmodes/cc-cmds.el (c-electric-continued-statement): New function to
use as abbrev hook to reindent for keywords such as "else"
that continues an earlier statement.
* cc-menus.el (cc-imenu-c++-generic-expression): Treat structs
* progmodes/cc-menus.el (cc-imenu-c++-generic-expression): Treat structs
like classes.
* cc-mode.el (c-mode, c++-mode, java-mode, objc-mode)
* progmodes/cc-mode.el (c-mode, c++-mode, java-mode, objc-mode)
(pike-mode): Populate the default abbrev tables to reindent for
keywords such as "else" that can continue earlier statements.
Abbrev mode is therefore turned on by default now. (Note that
@ -4518,30 +4505,30 @@
2000-03-21 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-engine.el (c-inside-bracelist-p): Fix for handling
* progmodes/cc-engine.el (c-inside-bracelist-p): Fix for handling
bracelists where the declaration contains template arguments.
2000-03-21 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-cmds.el (c-comment-indent):
* progmodes/cc-cmds.el (c-comment-indent):
Use `c-get-syntactic-indentation' to correctly calculate the
syntactic indentation. Fixes bug with lineup functions that
return vectors.
* cc-engine.el (c-get-syntactic-indentation): Split the
* progmodes/cc-engine.el (c-get-syntactic-indentation): Split the
indentation sum calculation from `c-indent-line' to a separate
function.
2000-03-21 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-cmds.el (c-beginning-of-statement, c-comment-indent):
* progmodes/cc-cmds.el (c-beginning-of-statement, c-comment-indent):
Fixed places where it was assumed that preprocessor directives
have to start in column zero.
* cc-engine.el (c-beginning-of-member-init-list): Handle C++
* progmodes/cc-engine.el (c-beginning-of-member-init-list): Handle C++
template arguments after a class identifier properly.
* cc-engine.el (c-guess-basic-syntax): Treat initializer brace
* progmodes/cc-engine.el (c-guess-basic-syntax): Treat initializer brace
lists for `new Foo[]' constructs in Java as expressions and
not top level definition brace lists on the top level, so that
they'll get indented consistently with the same type of
@ -4549,25 +4536,26 @@
2000-03-21 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-cmds.el (c-fill-paragraph): The kludge that checks
* progmodes/cc-cmds.el (c-fill-paragraph): The kludge that checks
whether the adaptive filling package fails to keep the comment
prefix is now kludged further to check for filladapt-mode
which doesn't have that problem. This is really icky, but it's
the only way that works with the current misfeatures/bugs in
both adaptive-fill-mode and filladapt-mode.
* cc-cmds.el (c-fill-paragraph): Made the way the paragraph
* progmodes/cc-cmds.el (c-fill-paragraph): Made the way the paragraph
around point is recognized more robust.
2000-03-21 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-cmds.el, cc-engine.el, cc-lobotomy.el (c-state-cache)
* progmodes/cc-cmds.el, progmodes/cc-engine.el:
* progmodes/cc-lobotomy.el (c-state-cache)
(c-in-literal-cache, c-auto-fill-prefix, c-lit-limits)
(c-lit-type): Fixed all internal variables used dynamically so
that they are always bound.
* cc-cmds.el, cc-engine.el: Improved recovery of syntactic
errors:
* progmodes/cc-cmds.el, progmodes/cc-engine.el:
Improve recovery of syntactic errors:
(c-indent-region): Fixed reporting of syntactic errors so that
the region is fully reindented even when an error occurs.
@ -4594,22 +4582,23 @@
2000-03-21 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-cmds.el (c-beginning-of-statement): Fixed bugs with
* progmodes/cc-cmds.el (c-beginning-of-statement): Fixed bugs with
paragraph recognition when moving by sentence in literals.
* cc-langs.el (c-Java-javadoc-paragraph-start): Modified paragraph
start regexp for javadoc to recognize javadoc markup in general instead
of a specific set of keywords, to be more future-safe.
* progmodes/cc-langs.el (c-Java-javadoc-paragraph-start): Modified
paragraph start regexp for javadoc to recognize javadoc markup in
general instead of a specific set of keywords, to be more future-safe.
(c-Pike-pikedoc-paragraph-start)
(c-Pike-pikedoc-paragraph-separate): New regexps to recognize
pikedoc markup.
* cc-mode.el: Fixed initialization and use of c-current-comment-prefix.
* progmodes/cc-mode.el:
Fixed initialization and use of c-current-comment-prefix.
(pike-mode): Initialize paragraph settings pikedoc recognition.
* cc-vars.el (c-default-style): Made a nicer Customize widget.
* progmodes/cc-vars.el (c-default-style): Made a nicer Customize widget.
(c-comment-prefix-regexp): Made it possible to use an
association list on this to specify mode specific regexps.
@ -4621,114 +4610,116 @@
2000-03-21 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-cmds.el (c-electric-brace): Fixed check for special brace
* progmodes/cc-cmds.el (c-electric-brace): Fixed check for special brace
lists: We can't look at the syntax, since a brace list can get
recognized as a plain statement-cont.
* cc-engine.el (c-guess-basic-syntax): Fixed bug where a
* progmodes/cc-engine.el (c-guess-basic-syntax): Fixed bug where a
special brace list opener broken over two lines got recognized
as a statement on the second line. Case 9A changed.
2000-03-21 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-cmds.el (c-electric-brace): Fixed bug in c-state-cache
* progmodes/cc-cmds.el (c-electric-brace): Fixed bug in c-state-cache
adjustment after line is reindented.
2000-03-21 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-defs.el (c-point): Added optional argument for position
* progmodes/cc-defs.el (c-point): Added optional argument for position
to use instead of the current point.
* cc-defs.el, cc-engine.el (c-add-class-syntax): Do not add
the in-expression block symbols when the construct starts at
boi, to avoid the extra level of indentation in that case.
* progmodes/cc-defs.el, progmodes/cc-engine.el (c-add-class-syntax):
Do not add the in-expression block symbols when the construct
starts at boi, to avoid the extra level of indentation in that case.
Cases 4, 16A and 17E affected.
2000-03-21 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-cmds.el: Use `indent-according-to-mode' instead of direct
* progmodes/cc-cmds.el: Use `indent-according-to-mode' instead of direct
calls to `c-indent-line', to adhere better to Emacs conventions.
* cc-engine.el (c-indent-line): Use the syntax already bound
* progmodes/cc-engine.el (c-indent-line): Use the syntax already bound
to `c-syntactic-context', if there is any.
2000-03-21 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-engine.el (c-get-offset): Fixed bug where the indentation
* progmodes/cc-engine.el (c-get-offset): Fixed bug where the indentation
wasn't added up correctly when a lineup function returned nil.
2000-03-21 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-engine.el (c-collect-line-comments): Fixed bug where
* progmodes/cc-engine.el (c-collect-line-comments): Fixed bug where
empty lines were ignored when collecting line comments backwards.
2000-03-21 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-align.el (c-lineup-dont-change): Return an absolute
* progmodes/cc-align.el (c-lineup-dont-change): Return an absolute
indentation column to work correctly in the case when several
syntactic elements are processed for the same line.
* cc-engine.el, cc-styles.el, cc-vars.el (c-evaluate-offset)
* progmodes/cc-engine.el, progmodes/cc-styles.el:
* progmodes/cc-vars.el (c-evaluate-offset)
(c-get-offset, c-indent-line, c-valid-offset, c-read-offset)
(c-set-offset): Added absolute indentation column settings by
using the vector type.
2000-03-21 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-cmds.el, cc-vars.el (c-electric-paren, c-cleanup-list):
* progmodes/cc-cmds.el, progmodes/cc-vars.el
(c-electric-paren, c-cleanup-list):
Implemented two new cleanups `space-before-funcall' and
`compact-empty-funcall'.
2000-03-21 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-defs.el (c-paren-re, c-identifier-re): Two new macros for
* progmodes/cc-defs.el (c-paren-re, c-identifier-re): Two new macros for
helping building regexps.
* cc-engine.el (c-on-identifier): New function for detecting
* progmodes/cc-engine.el (c-on-identifier): New function for detecting
identifiers. It takes keywords into account.
* cc-langs.el, cc-mode.el: Added regexps for complete keyword
lists. `c-keywords' is set to a regexp matching all keywords
in the current language.
* progmodes/cc-langs.el, progmodes/cc-mode.el: Added regexps for
complete keyword lists. `c-keywords' is set to a regexp matching
all keywords in the current language.
2000-03-21 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-engine.el (c-beginning-of-statement-1): Added '#' to the
* progmodes/cc-engine.el (c-beginning-of-statement-1): Added '#' to the
list of characters to skip backwards over at the beginning of
a statement, since it can precede string literals in Pike.
2000-03-21 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-cmds.el (c-guess-fill-prefix): Fixed bug with prefix
* progmodes/cc-cmds.el (c-guess-fill-prefix): Fixed bug with prefix
recognition when standing on the last line in a C++ comment
with nothing but whitespace after the prefix.
* cc-engine.el (c-backward-to-start-of-if): Fixed bug when
* progmodes/cc-engine.el (c-backward-to-start-of-if): Fixed bug when
given no limit argument.
2000-03-21 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-engine.el (c-inside-bracelist-p): Fixed brace list
* progmodes/cc-engine.el (c-inside-bracelist-p): Fixed brace list
recognition for the `[]= operator symbol in Pike.
2000-03-21 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-bytecomp.el (cc-eval-when-compile): New macro that works
* progmodes/cc-bytecomp.el (cc-eval-when-compile): New macro that works
around a bug in `eval-when-compile' in the byte compiler.
* cc-engine.el (c-forward-token-1): Fixed bug with return
* progmodes/cc-engine.el (c-forward-token-1): Fixed bug with return
value when count is zero and there's no token start within the limit.
(c-guess-basic-syntax): Don't add 'comment-intro to lines with
"prefix comments", i.e. comments which are followed by code on
the same line.
* cc-mode-19.el: Fixes so that checks that must be done at
* progmodes/cc-mode-19.el: Fixes so that checks that must be done at
compile time also are done then.
2000-03-21 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-defs.el: Make sure cc-mode-19 is loaded both at compile
* progmodes/cc-defs.el: Make sure cc-mode-19 is loaded both at compile
time and at runtime, and only when it's needed.
2000-03-21 Martin Stjernholm <bug-cc-mode@gnu.org>
@ -4738,7 +4729,7 @@
compilation orders. Thanks to Martin Buchholz for providing
the basis for all this.
* cc-bytecomp.el: New file that provides some byte compilation
* progmodes/cc-bytecomp.el: New file that provides some byte compilation
features: It ensures that files always are loaded from the
current source directory during compilation, and it provides a
set of macros to turn off specific compiler warnings for
@ -4747,61 +4738,62 @@
Fixed a nearly acyclic dependency tree (both runtime and
compile-time) between all files.
* cc-defs.el: Separated all macros before the inline functions,
to ensure correct compilation.
* progmodes/cc-defs.el: Separated all macros before the
inline functions, to ensure correct compilation.
* cc-defs.el, cc-engine.el: Moved c-beginning-of-macro to from
cc-defs.el to cc-engine.el and made it a function instead.
* progmodes/cc-defs.el, progmodes/cc-engine.el: Moved
c-beginning-of-macro to from cc-defs.el to cc-engine.el and
made it a function instead.
* cc-mode-19.el: Patch the byte compiler in Emacs 19 not to warn
about char-after.
* progmodes/cc-mode-19.el: Patch the byte compiler in Emacs 19
not to warn about char-after.
* cc-vars.el: Cope even when there isn't a custom package
* progmodes/cc-vars.el: Cope even when there isn't a custom package
containing defcustom available.
* cc-make.el: Removed since it's no longer necessary.
* progmodes/cc-make.el: Removed since it's no longer necessary.
README: Updated installation instructions.
2000-03-21 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-cmds.el, cc-langs.el, cc-mode.el: Moved around things to
improve the modularity: Moved all mode init stuff from
cc-langs.el to cc-mode.el, including the keymap
initialization; cc-langs now only contains the various
variables for configuring the language syntax.
* progmodes/cc-cmds.el, progmodes/cc-langs.el, progmodes/cc-mode.el:
Moved around things to improve the modularity:
Moved all mode init stuff from cc-langs.el to cc-mode.el,
including the keymap initialization; cc-langs now only contains
the various variables for configuring the language syntax.
* cc-engine.el, cc-styles.el (c-evaluate-offset)
* progmodes/cc-engine.el, progmodes/cc-styles.el (c-evaluate-offset)
(c-get-offset): Moved from cc-styles to cc-engine since file
dependency analysis suggests they belong there (which also
makes more sense). Thanks to Martin Buchholz for doing the analysis.
2000-03-21 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-cmds.el (c-fn-region-is-active-p): New function that
* progmodes/cc-cmds.el (c-fn-region-is-active-p): New function that
wraps the corresponding macro, for use in places that aren't
compiled. Thanks to Martin Buchholz for pointing out this.
* cc-langs.el (c-mode-menu): Use c-fn-region-is-active-p.
* progmodes/cc-langs.el (c-mode-menu): Use c-fn-region-is-active-p.
* cc-mode.el (c-prepare-bug-report-hooks): Hook variable to
* progmodes/cc-mode.el (c-prepare-bug-report-hooks): Hook variable to
add things to the bug report.
2000-03-21 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-cmds.el (c-guess-fill-prefix): Fixed bug where the
* progmodes/cc-cmds.el (c-guess-fill-prefix): Fixed bug where the
returned prefix could contain a newline when the search for a
good prefix line failed.
2000-03-21 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-cmds.el (c-toggle-auto-state, c-toggle-hungry-state)
* progmodes/cc-cmds.el (c-toggle-auto-state, c-toggle-hungry-state)
(c-toggle-auto-hungry-state): Made the argument optional, as
the documentation says it is.
2000-03-21 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-engine.el (c-guess-basic-syntax): Don't treat the Pike
* progmodes/cc-engine.el (c-guess-basic-syntax): Don't treat the Pike
multiline string syntax, #"...", as a cpp macro.
2001-03-21 Paul Eggert <eggert@twinsun.com>
@ -15271,31 +15263,31 @@
2000-07-24 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-engine.el (c-looking-at-inexpr-block): Replaced a call to
* progmodes/cc-engine.el (c-looking-at-inexpr-block): Replaced a call to
c-beginning-of-statement-1 that caused a bad case of recursion
which could consume a lot of CPU in large classes in languages
that have in-expression classes (i.e. Java and Pike).
* cc-engine.el (c-guess-basic-syntax): Check for in-expression
* progmodes/cc-engine.el (c-guess-basic-syntax): Check for in-expression
statements before top level constructs (i.e. case 6 is moved
before case 5 and is now case 4) to catch in-expression
classes in top level expressions correctly.
2000-07-24 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-engine.el (c-guess-basic-syntax): Less naive handling of
* progmodes/cc-engine.el (c-guess-basic-syntax): Less naive handling of
objc-method-intro. Case 4 removed and case 5I added.
* cc-langs.el (c-append-paragraph-start): New variable used by
* progmodes/cc-langs.el (c-append-paragraph-start): New variable used by
c-common-init to get paragraph-start correct.
* cc-langs.el (c-common-init): Use c-append-paragraph-start to
* progmodes/cc-langs.el (c-common-init): Use c-append-paragraph-start to
initialize paragraph-start to make it correct both with and
without the javadoc special case.
* cc-mode.el (java-mode): Use c-append-paragraph-start to
* progmodes/cc-mode.el (java-mode): Use c-append-paragraph-start to
initialize paragraph-start for javadoc markup.
* cc-vars.el (c-style-variables-are-local-p): Incompatible
* progmodes/cc-vars.el (c-style-variables-are-local-p): Incompatible
change by defaulting this to t. It's motivated by the
confusing behavior that otherwise arise from the style system
when editing both java and non-java files at the same time
@ -15303,84 +15295,84 @@
2000-07-24 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-cmds.el (c-indent-new-comment-line): Added a kludge
* progmodes/cc-cmds.el (c-indent-new-comment-line): Added a kludge
similar to the one in c-fill-paragraph to check the fill
prefix from the adaptive fill function for sanity.
2000-07-24 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-defs.el (c-end-of-defun-1): Fixed forward scanning into
* progmodes/cc-defs.el (c-end-of-defun-1): Fixed forward scanning into
defun block.
2000-07-24 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-align.el (c-lineup-multi-inher): Handle lines with
* progmodes/cc-align.el (c-lineup-multi-inher): Handle lines with
leading comma nicely. Extended to handle member initializers
too.
* cc-engine.el (c-beginning-of-inheritance-list)
* progmodes/cc-engine.el (c-beginning-of-inheritance-list)
(c-guess-basic-syntax): Fixed recognition of inheritance lists
when the lines begins with a comma.
* cc-vars.el (c-offsets-alist): Changed default for
* progmodes/cc-vars.el (c-offsets-alist): Changed default for
member-init-cont to c-lineup-multi-inher since it now handles
member initializers and indents better for leading commas.
2000-07-24 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-cmds.el (c-electric-brace): Fixed some bugs in the state
* progmodes/cc-cmds.el (c-electric-brace): Fixed some bugs in the state
handling that caused class open lines to be recognized as
statement-conts in some cases.
* cc-cmds.el (c-indent-new-comment-line): Keep the fill prefix
* progmodes/cc-cmds.el (c-indent-new-comment-line): Keep the fill prefix
guessed by the adaptive fill function unless point is on the
first line of a block comment.
* cc-engine.el (c-forward-syntactic-ws): Fixed an infloop bug
* progmodes/cc-engine.el (c-forward-syntactic-ws): Fixed an infloop bug
when the buffer ends with a macro continuation char.
* cc-engine.el (c-guess-basic-syntax): Added support for
* progmodes/cc-engine.el (c-guess-basic-syntax): Added support for
function definitions as statements in Pike. The first
statement in a lambda block is now labeled defun-block-intro
instead of statement-block-intro.
* cc-engine.el (c-narrow-out-enclosing-class): Whack the state
* progmodes/cc-engine.el (c-narrow-out-enclosing-class): Whack the state
so that the class surrounding point is selected, not the one
innermost in the state.
* cc-engine.el (c-guess-basic-syntax): Fixed bug in
* progmodes/cc-engine.el (c-guess-basic-syntax): Fixed bug in
recognition of switch labels having hanging multiline
statements.
* cc-engine.el (c-beginning-of-member-init-list): Broke out
* progmodes/cc-engine.el (c-beginning-of-member-init-list): Broke out
some code in c-guess-basic-syntax to a separate function.
* cc-engine.el (c-just-after-func-arglist-p): Fixed
* progmodes/cc-engine.el (c-just-after-func-arglist-p): Fixed
recognition of member inits with multiple line arglists.
* cc-engine.el (c-guess-basic-syntax): New case 5B.3 to detect
* progmodes/cc-engine.el (c-guess-basic-syntax): New case 5B.3 to detect
member-init-cont when the commas are in funny places.
2000-07-24 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-defs.el (c-auto-newline): Removed this macro since it's
* progmodes/cc-defs.el (c-auto-newline): Removed this macro since it's
not used anymore.
* cc-engine.el (c-looking-at-bos): New helper function.
* cc-engine.el (c-looking-at-inexpr-block): More tests to tell
* progmodes/cc-engine.el (c-looking-at-bos): New helper function.
* progmodes/cc-engine.el (c-looking-at-inexpr-block): More tests to tell
inexpr and toplevel classes apart in Pike.
* cc-engine.el (c-guess-basic-syntax): Fixed bogus recognition
* progmodes/cc-engine.el (c-guess-basic-syntax): Fixed bogus recognition
of case 9A.
* cc-langs.el, cc-mode.el (c-Pike-inexpr-class-key): New
constant, since "class" can introduce an in-expression class
in Pike nowadays.
* progmodes/cc-langs.el, progmodes/cc-mode.el
(c-Pike-inexpr-class-key): New constant, since "class" can
introduce an in-expression class in Pike nowadays.
2000-07-24 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-align.el (c-gnu-impose-minimum): Don't impose minimum
* progmodes/cc-align.el (c-gnu-impose-minimum): Don't impose minimum
indentation on cpp-macro lines.
* cc-engine.el (c-guess-basic-syntax): Made the cpp-macro
* progmodes/cc-engine.el (c-guess-basic-syntax): Made the cpp-macro
a syntax modifier like comment-intro, to make it possible to
get syntactic indentation for preprocessor directives. It's
incompatible wrt to lineup functions on cpp-macro, but it has
@ -15389,117 +15381,117 @@
2000-07-24 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-engine.el (c-guess-basic-syntax): Fixed bug with missed
* progmodes/cc-engine.el (c-guess-basic-syntax): Fixed bug with missed
member-init-cont when the preceding arglist is several lines.
2000-07-24 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-styles.el (c-style-alist): The basic offset for the BSD
* progmodes/cc-styles.el (c-style-alist): The basic offset for the BSD
style corrected to 8.
2000-07-24 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-styles.el (c-style-alist): Adjusted the indentation of
* progmodes/cc-styles.el (c-style-alist): Adjusted the indentation of
brace list openers in the gnu style.
2000-07-24 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-cmds.el (c-indent-command): Obey c-syntactic-indentation.
* progmodes/cc-cmds.el (c-indent-command): Obey c-syntactic-indentation.
* cc-cmds.el (c-electric-brace, c-electric-slash,
* progmodes/cc-cmds.el (c-electric-brace, c-electric-slash,
c-electric-star, c-electric-semi&comma, c-electric-colon,
c-electric-lt-gt, c-electric-paren): Don't reindent old lines
when c-syntactic-indentation is nil.
* cc-engine.el (c-beginning-of-statement-1): Fixed bug where
* progmodes/cc-engine.el (c-beginning-of-statement-1): Fixed bug where
we were left at comments preceding the first statement when
reaching the beginning of the buffer.
* cc-vars.el (c-syntactic-indentation): New variable to turn
* progmodes/cc-vars.el (c-syntactic-indentation): New variable to turn
off all syntactic indentation.
2000-07-24 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-cmds.el (c-fill-paragraph): Keep one or two spaces
* progmodes/cc-cmds.el (c-fill-paragraph): Keep one or two spaces
between the text and the block comment ender when it hangs,
depending on how many there are before the fill.
2000-07-24 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-engine.el (c-beginning-of-closest-statement): New helper
* progmodes/cc-engine.el (c-beginning-of-closest-statement): New helper
function to go back to the closest preceding statement start,
which could be inside a conditional statement.
* cc-engine.el (c-guess-basic-syntax): Use
* progmodes/cc-engine.el (c-guess-basic-syntax): Use
c-beginning-of-closest-statement in cases 10B.2, 17B and 17C.
* cc-engine.el (c-guess-basic-syntax): Better handling of
* progmodes/cc-engine.el (c-guess-basic-syntax): Better handling of
arglist-intro, arglist-cont-nonempty and arglist-close when
the arglist is nested inside parens. Cases 7A, 7C and 7F
changed.
* cc-langs.el (c-Java-javadoc-paragraph-start): Brought
* progmodes/cc-langs.el (c-Java-javadoc-paragraph-start): Brought
up-to-date with javadoc 1.2.
2000-07-24 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-engine.el (c-beginning-of-statement-1): Fixed handling of
* progmodes/cc-engine.el (c-beginning-of-statement-1): Fixed handling of
multiline Pike type decls.
2000-07-24 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-cmds.el (c-indent-new-comment-line): Always break
* progmodes/cc-cmds.el (c-indent-new-comment-line): Always break
multiline comments in multiline mode, regardless of
comment-multi-line.
2000-07-24 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-engine.el (c-guess-basic-syntax): Fixed bug with
* progmodes/cc-engine.el (c-guess-basic-syntax): Fixed bug with
fully::qualified::names in C++ member init lists. Preamble in
case 5D changed.
2000-07-24 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-langs.el (c-common-init): Handling of obsolete variables
* progmodes/cc-langs.el (c-common-init): Handling of obsolete variables
moved to c-initialize-cc-mode. More compatible style override
when using global style variables.
* cc-mode.el (c-initialize-cc-mode): Handling of obsolete
* progmodes/cc-mode.el (c-initialize-cc-mode): Handling of obsolete
variables moved here.
* cc-styles.el (c-make-styles-buffer-local): Flag style
* progmodes/cc-styles.el (c-make-styles-buffer-local): Flag style
variable localness in c-style-variables-are-local-p to make
the compatibility measure in c-common-init work well.
* cc-styles.el (c-set-style-1): c-special-indent-hook can no
* progmodes/cc-styles.el (c-set-style-1): c-special-indent-hook can no
longer contain set-from-style.
* cc-styles.el (c-initialize-builtin-style): Don't check for
* progmodes/cc-styles.el (c-initialize-builtin-style): Don't check for
set-from-style on c-special-indent-hook.
* cc-styles.el (c-copy-tree): Obsolete. The standard function
* progmodes/cc-styles.el (c-copy-tree): Obsolete. The standard function
copy-alist is sufficient now.
* cc-styles.el (c-set-style, c-set-style-1,
* progmodes/cc-styles.el (c-set-style, c-set-style-1,
c-get-style-variables): Fixes to variable initialization so
that duplicate entries in styles have the same effect
regardless of DONT-OVERRIDE.
* cc-styles.el (c-set-style-2): Fixed bug where the
* progmodes/cc-styles.el (c-set-style-2): Fixed bug where the
initialization of inheriting styles failed when the
dont-override flag is set.
* cc-vars.el (c-special-indent-hook): Don't use set-from-style
* progmodes/cc-vars.el (c-special-indent-hook): Don't use set-from-style
on this.
2000-07-24 Martin Stjernholm <bug-cc-mode@gnu.org>
* cc-defs.el (c-forward-comment): Removed the workaround
* progmodes/cc-defs.el (c-forward-comment): Removed the workaround
introduced in 5.38 since it had worse side-effects. If a line
contains the string "//\"", it regarded the // as a comment
start since the \ temporarily doesn't have escape syntax.
2000-07-17 Emmanuel Briot <briot@act-europe.fr>
* ada-mode.el: Got rid of all byte-compiler warnings on Emacs Load
ada-xref.el before ada-prj.el, so that the Project menu is created
when ada-prj tries to add to it.
* progmodes/ada-mode.el: Got rid of all byte-compiler warnings on
Emacs. Load ada-xref.el before ada-prj.el, so that the Project
menu is created when ada-prj tries to add to it.
(ada-activate-keys-for-case): Suppress the characters that are not
part of the Ada syntax. Better compatibility with else-mode.
(ada-adjust-case-interactive): When auto-casing is not active,

View file

@ -29,7 +29,7 @@
completable types, pull in types which are referenced through
'using' statements, and also preserve their filenames.
* semanitc/bovine/c.el (semantic/analyze/refs): Require.
* semantic/bovine/c.el (semantic/analyze/refs): Require.
(semantic-analyze-tag-references): New override. Mainly copied
from the default implementation, but if nothing could be found (or
just the tag itself), drop all namespaces from the scope and
@ -245,7 +245,7 @@
2013-07-29 David Engster <deng@randomsample.de>
* lisp/cedet/cedet.el (cedet-packages): Remove speedbar since its
* cedet.el (cedet-packages): Remove speedbar since its
development does no longer happens in CEDET upstream but in Emacs
proper. Also remove cedet-contrib and cogre since those are only
in upstream.
@ -262,7 +262,7 @@
2013-07-27 Eric Ludlam <zappo@gnu.org>
* lisp/cedet/semantic/edit.el (semantic-edits-splice-remove):
* semantic/edit.el (semantic-edits-splice-remove):
Wrap debug message removing middle tag in semantic-edits-verbose-flag
check.
@ -552,18 +552,15 @@
* srecode/srt-mode.el:
* srecode/compile.el:
* semantic/elp.el:
* semantic/db-el.el:
* semantic/complete.el:
* ede.el:
* cogre.el:
* srecode/table.el:
* srecode/mode.el:
* srecode/insert.el:
* srecode/compile.el:
* semantic/decorate/include.el:
* semantic/db.el:
* semantic/adebug.el:
* ede/auto.el:
* srecode/dictionary.el:
* semantic/ede-grammar.el:
@ -2785,8 +2782,6 @@
* srecode/srt-mode.el (srecode-template-mode): Doc fix.
* files.el (auto-mode-alist): Add .srt and Project.ede.
* semantic.el (semantic-mode):
Handle srecode-template-mode-hook as well.
(semantic-mode): Use js-mode-hook for Javascript hook.

View file

@ -504,7 +504,7 @@ code to parse."
(let ((eval-form (eval parsedtokelist)))
(if (or (not eval-form)
(and (numberp eval-form)
(equal eval-form 0)));; ifdefline resulted in false
(equal eval-form 0)));; ifdef line resulted in false
;; The if indicates to skip this preprocessor section
(let ((pt nil))
@ -1242,7 +1242,7 @@ Use `semantic-analyze-current-tag' to debug this fcn."
(setq scope (semantic-calculate-scope))
(setq allhits (semantic--analyze-refs-full-lookup tag scope t))
(when (or (zerop (semanticdb-find-result-length allhits))
(and (= (semanticdb-find-result-length allhits) 1)
(eq (car (semanticdb-find-result-nth allhits 0)) tag)))

View file

@ -80,7 +80,7 @@ Each app keys to an alist of files and modes (as above.)")
ans))
(defmethod srecode-map-entry-for-app ((map srecode-map) app)
"Return the entry in MAP for APP'lication."
"Return the entry in MAP for APP."
(assoc app (oref map apps))
)
@ -137,7 +137,7 @@ Return non-nil if the MAP was changed."
dirty))
(defmethod srecode-map-delete-file-entry-from-app ((map srecode-map) file app)
"Delete from MAP the FILE entry within the APP'lication."
"Delete from MAP the FILE entry within the APP."
(let* ((appe (srecode-map-entry-for-app map app))
(fentry (assoc file (cdr appe))))
(setcdr appe (delete fentry (cdr appe))))

View file

@ -421,11 +421,15 @@ Changes to files in this list are not listed.")
("David M. Brown" :wrote "array.el")
;; No longer distributed.
;;; ("Gary Byers" :changed "xenix.h")
("Shawn M. Carey" :wrote "freebsd.h")
;; No longer distributed: freebsd.h
;; Only trivial pieces remain, merged into configure.ac.
("Shawn M. Carey" :wrote "[some early FreeBSD support]")
;; hp800.h renamed from hp9000s800.h, hpux.h merged into hpux10-20.h.
;; FIXME overwritten by Author:.
("Satyaki Das" :cowrote "mh-search.el")
("Eric Decker" :changed "hp800.h" "hpux10-20.h" "sysdep.c")
;; No longer distributed: hp800.h, hpux10-20.h.
;; Only trivial pieces remain, merged into configure.ac.
("Eric Decker" :changed "sysdep.c (and other files for HP-UX support)")
("Lawrence R. Dodd" :cowrote "dired-x.el")
;; No longer distributed.
;;; ("Viktor Dukhovni" :wrote "unexsunos4.c")
@ -456,15 +460,16 @@ Changes to files in this list are not listed.")
"process.c" "sysdep.c" "unexcoff.c")
;; No longer distributed.
;;; ("Ishikawa Chiaki" :changed "aviion.h" "dgux.h")
;; ymakefile no longer distributed.
("Michael K. Johnson" :changed "configure.ac" "emacs.c" "intel386.h"
"mem-limits.h" "process.c" "template.h" "sysdep.c" "syssignal.h"
"systty.h" "unexcoff.c" "linux.h")
;; No longer distributed: ymakefile, intel386.h, mem-limits.h, template.h,
;; linux.h (was renamed to lignux.h, then to gnu-linux.h, then removed)
("Michael K. Johnson" :changed "configure.ac" "emacs.c"
"process.c" "sysdep.c" "syssignal.h" "systty.h" "unexcoff.c")
;; No longer distributed.
;;; ("Kyle Jones" :wrote "mldrag.el")
("Henry Kautz" :wrote "bib-mode.el")
;; No longer distributed: vms-pwd.h, vmsfns.c, uaf.h.
("Joseph M. Kelsey" :changed "fileio.c" "dir.h")
;; No longer distributed: vms-pwd.h, vmsfns.c, uaf.h,
;; dir.h (was renamed to vmsdir.h, then removed)
("Joseph M. Kelsey" :changed "fileio.c")
("Sam Kendall" :changed "etags.c" "etags.el")
;; ack.texi: "We're not using his backquote.el any more."
("Richard King" :wrote "userlock.el" "filelock.c")
@ -503,7 +508,7 @@ Changes to files in this list are not listed.")
("Mark Neale" :changed "fortran.el")
;; Renamed from sc.el.
("Martin Neitzel" :changed "supercite.el")
("Andrew Oram" :changed "calendar.texi (and other files in man/)")
("Andrew Oram" :changed "calendar.texi (and other doc files)")
("Frederic Pierresteguy" :wrote "widget.c")
("Michael D. Prange" :changed "tex-mode.el")
;; No longer distributed (dgux5-4r3.h was renamed to dgux5-4-3.h).
@ -516,8 +521,9 @@ Changes to files in this list are not listed.")
;;; ("Guillermo J. Rozas" :wrote "fakemail.c")
("Wolfgang Rupprecht" :changed "lisp-mode.el" "loadup.el"
"sort.el" "alloc.c" "callint.c"
;; config.in renamed from config.h.in; ecrt0.c from crt0.c.
"config.in" "ecrt0.c" "data.c" "fns.c"
;; config.in renamed from config.h.in, now a generated file.
;; ecrt0.c renamed from crt0.c, then removed.
"data.c" "fns.c"
"lisp.h" "lread.c" ; "sun3.h" "ymakefile" - no longer distributed
"print.c" :wrote "float-sup.el" "floatfns.c")
("Schlumberger Technology Corporation" :changed "gud.el")
@ -543,7 +549,8 @@ Changes to files in this list are not listed.")
("Spencer Thomas" :changed "emacsclient.c" "server.el"
"dabbrev.el" "unexcoff.c" "gnus.texi")
("Jonathan Vail" :changed "vc.el")
("James Van Artsdalen" :changed "usg5-4.h" "unexcoff.c")
;; No longer distributed: usg5-4.h
("James Van Artsdalen" :changed "unexcoff.c")
;; No longer distributed: src/makefile.nt, lisp/makefile.nt
;; winnt.el renamed to w32-fns.el; nt.[ch] to w32.[ch];
;; ntheap.[ch] to w32heap.[ch]; ntinevt.c to w32inevt.c;
@ -552,7 +559,8 @@ Changes to files in this list are not listed.")
("Geoff Voelker" :wrote "w32-fns.el" "w32.c" "w32.h" "w32heap.c"
"w32heap.h" "w32inevt.c" "w32proc.c" "w32term.c" "ms-w32.h")
("Morten Welinder" :wrote "dosfns.c" "[many MS-DOS files]" "msdos.h")
("Eli Zaretskii" :wrote "bidi.c" "[bidirectional display in xdisp.c]")
("Eli Zaretskii" :wrote "bidi.c" "[bidirectional display in xdisp.c]"
"[tty menus in term.c]")
;; Not using this version any more.
;;; ("Pace Willisson" :wrote "ispell.el")
;; FIXME overwritten by Author:.

View file

@ -473,4 +473,8 @@ Return the symbol for the group, or nil"
(provide 'eieio-custom)
;; Local variables:
;; generated-autoload-file: "eieio.el"
;; End:
;;; eieio-custom.el ends here

View file

@ -124,7 +124,7 @@ If CLASS is actually an object, then also display current values of that object.
;; Describe all the methods specific to this class.
(let ((methods (eieio-all-generic-functions class))
(type [":STATIC" ":BEFORE" ":PRIMARY" ":AFTER"])
counter doc argshl dochl)
counter doc)
(when methods
(insert (propertize "Specialized Methods:\n\n" 'face 'bold))
(while methods
@ -692,4 +692,8 @@ INDENT is the current indentation level."
(provide 'eieio-opt)
;; Local variables:
;; generated-autoload-file: "eieio.el"
;; End:
;;; eieio-opt.el ends here

View file

@ -913,14 +913,10 @@ Optional argument NOESCAPE is passed to `prin1-to-string' when appropriate."
)
)
;;; Autoloading some external symbols, and hooking into the help system
;;
;;; Start of automatically extracted autoloads.
;;;### (autoloads (customize-object) "eieio-custom" "eieio-custom.el"
;;;;;; "928623502e8bf40454822355388542b5")
;;;### (autoloads nil "eieio-custom" "eieio-custom.el" "5b0e7b1beea11f9e9de6887279f75d61")
;;; Generated autoloads from eieio-custom.el
(autoload 'customize-object "eieio-custom" "\
@ -931,9 +927,7 @@ Optional argument GROUP is the sub-group of slots to display.
;;;***
;;;### (autoloads (eieio-help-mode-augmentation-maybee eieio-describe-generic
;;;;;; eieio-describe-constructor eieio-describe-class eieio-browse)
;;;;;; "eieio-opt" "eieio-opt.el" "d808328f9c0156ecbd412d77ba8c569e")
;;;### (autoloads nil "eieio-opt" "eieio-opt.el" "f03278724025221a0259ed48516286f3")
;;; Generated autoloads from eieio-opt.el
(autoload 'eieio-browse "eieio-opt" "\
@ -942,33 +936,22 @@ If optional ROOT-CLASS, then start with that, otherwise start with
variable `eieio-default-superclass'.
\(fn &optional ROOT-CLASS)" t nil)
(defalias 'describe-class 'eieio-describe-class)
(autoload 'eieio-describe-class "eieio-opt" "\
Describe a CLASS defined by a string or symbol.
(autoload 'eieio-help-class "eieio-opt" "\
Print help description for CLASS.
If CLASS is actually an object, then also display current values of that object.
Optional HEADERFCN should be called to insert a few bits of info first.
\(fn CLASS &optional HEADERFCN)" t nil)
\(fn CLASS)" nil nil)
(autoload 'eieio-describe-constructor "eieio-opt" "\
Describe the constructor function FCN.
Uses `eieio-describe-class' to describe the class being constructed.
(autoload 'eieio-help-constructor "eieio-opt" "\
Describe CTR if it is a class constructor.
\(fn FCN)" t nil)
(defalias 'describe-generic 'eieio-describe-generic)
\(fn CTR)" nil nil)
(autoload 'eieio-describe-generic "eieio-opt" "\
Describe the generic function GENERIC.
Also extracts information about all methods specific to this generic.
(autoload 'eieio-help-generic "eieio-opt" "\
Describe GENERIC if it is a generic function.
\(fn GENERIC)" t nil)
(autoload 'eieio-help-mode-augmentation-maybee "eieio-opt" "\
For buffers thrown into help mode, augment for EIEIO.
Arguments UNUSED are not used.
\(fn &rest UNUSED)" nil nil)
\(fn GENERIC)" nil nil)
;;;***

View file

@ -311,7 +311,7 @@ are \" Fw\", or simply \"\"."
(set-default symbol value)))
(defvar follow-cache-command-list
'(next-line previous-line forward-char backward-char)
'(next-line previous-line forward-char backward-char right-char left-char)
"List of commands that don't require recalculation.
In order to be able to use the cache, a command should not change the

View file

@ -1,3 +1,8 @@
2014-01-09 Ken Olum <kdo@cosmos.phy.tufts.edu> (tiny change)
* message.el (message-bury): Call bury-buffer with no argument
in the message-return-action case too.
2014-01-05 Katsumi Yamaoka <yamaoka@jpl.org>
* gnus-sum.el (gnus-article-stop-animations): Declare it before using.

View file

@ -14703,6 +14703,15 @@
* gnus-art.el, ...: Error convention changes.
* binhex.el, earcon.el, gnus-agent.el, gnus-art.el, gnus-audio.el:
* gnus-logic.el, gnus-ml.el, gnus-mlspl.el, gnus-setup.el:
* gnus-srvr.el, gnus-sum.el, gnus-uu.el, gnus-vm.el, ietf-drums.el:
* mail-parse.el, mail-prsvr.el, mail-source.el, mm-bodies.el:
* mm-decode.el, mm-encode.el, mm-partial.el, mm-util.el, mm-uu.el:
* mm-view.el, mml.el, nnimap.el, nnoo.el, parse-time.el, rfc1843.el:
* rfc2045.el, rfc2047.el, rfc2104.el, rfc2231.el, time-date.el:
* uudecode.el: Some fixes to follow coding conventions.
2001-07-13 20:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
* gnus-sum.el (gnus-rebuild-thread): Count hidden lines too.

View file

@ -4099,11 +4099,12 @@ Instead, just auto-save the buffer and then bury it."
(defun message-bury (buffer)
"Bury this mail BUFFER."
;; Note that this is not quite the same as (bury-buffer buffer),
;; since bury-buffer does extra stuff with a nil argument.
;; Eg http://lists.gnu.org/archive/html/emacs-devel/2014-01/msg00539.html
(with-current-buffer buffer (bury-buffer))
(if message-return-action
(progn
(bury-buffer buffer)
(apply (car message-return-action) (cdr message-return-action)))
(with-current-buffer buffer (bury-buffer))))
(apply (car message-return-action) (cdr message-return-action))))
(defun message-send (&optional arg)
"Send the message in the current buffer.

View file

@ -417,9 +417,10 @@ is specified by the variable `message-log-max'."
(display-buffer (current-buffer))))
(defun view-order-manuals ()
"Display the Emacs ORDERS file."
"Display information on how to buy printed copies of Emacs manuals."
(interactive)
(view-help-file "ORDERS"))
;; (view-help-file "ORDERS")
(info "(emacs)Printed Books"))
(defun view-emacs-FAQ ()
"Display the Emacs Frequently Asked Questions (FAQ) file."

View file

@ -732,6 +732,14 @@ in `Info-file-supports-index-cookies-list'."
(Info-default-dirs))
(split-string path sep))
(Info-default-dirs))))
;; If we are running uninstalled, our own Info files should
;; always come first. If INFOPATH was set, they might not.
(and path
installation-directory
(let ((dir (expand-file-name "info/" installation-directory)))
(when (file-directory-p dir)
(setq Info-directory-list (delete dir Info-directory-list))
(push dir Info-directory-list))))
;; For a self-contained (ie relocatable) NS build, AFAICS we
;; always want the included info directory to be at the head of
;; the search path, unless it's already in INFOPATH somewhere.

View file

@ -279,7 +279,7 @@ You might need to set `uce-mail-reader' before using this."
(goto-char (point-min)))
;; Now find the mail hub that first accepted this message.
;; This should try to find the last Received: header.
;; Sometimes there may be other headers inbetween Received: headers.
;; Sometimes there may be other headers in between Received: headers.
(cond ((eq uce-mail-reader 'gnus)
;; Does Gnus always have Lines: in the end?
(re-search-forward "^Lines:")

View file

@ -52,12 +52,12 @@ Therefore any lines in the message bodies that start with \"From \"
must be quoted. The `mboxo' format just prepends a \">\" to such lines.
This is not reversible, because given a line starting with \">From \" in
an mboxo file, it is not possible to know whether the original had a \">\"
or not. The `mxbord' format avoids this by also quoting \">From \" as
or not. The `mboxrd' format avoids this by also quoting \">From \" as
\">>From \", and so on. For this reason, mboxrd is recommended.
See also `rmail-mbox-format'."
:type '(choice (const mboxrd)
(const mboxro))
(const mboxo))
:version "24.4"
:group 'rmail-files)

View file

@ -5097,9 +5097,6 @@
* org-agenda.el (org-agenda-show-clocking-issues)
(org-agenda-format-item): Silence byte compiler.
* org-colview-xemacs.el (org-agenda-columns): Silence byte
compiler.
* org-colview.el (org-agenda-columns): Silence byte compiler.
* org.el (org-properties-postprocess-alist): Silence byte
@ -13444,10 +13441,6 @@
* org-latex.el (org-export-latex-fixed-width): Only add one
line break after exporting verbatim environments.
2012-01-03 Bastien Guerry <bzg@gnu.org>
* org-mw.el (org-mw-export-lists): Fix list export.
2012-01-03 Bastien Guerry <bzg@gnu.org>
* org-list.el (org-list-item-trim-br): New function.
@ -14070,11 +14063,6 @@
description term to insert in the list. Point should stay where
the user called the command.
2011-07-28 Bastien Guerry <bzg@gnu.org>
* org-toc.el (org-toc-before-first-heading-p, org-toc-show)
(org-toc-get-headlines-status): Use `org-outline-regexp-bol'.
2011-07-28 Bastien Guerry <bzg@gnu.org>
* org.el (org-outline-regexp-bol): New defconst.
@ -18539,21 +18527,9 @@
* ob-ref.el (org-babel-ref-parse): Allow passing empty strings
into code blocks.
2011-07-28 David Maus <dmaus@ictsoc.de>
* test-org-table.el
(test-org-table/org-table-convert-refs-to-rc/3)
(test-org-table/org-table-convert-refs-to-rc/2)
(test-org-table/org-table-convert-refs-to-rc/1)
(test-org-table/org-table-convert-refs-to-an/3)
(test-org-table/org-table-convert-refs-to-an/2)
(test-org-table/org-table-convert-refs-to-an/1): Provide tests for
table formular format conversion.
2011-07-28 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-sort-entries): Fix sorting with a bold emphasis at
bol.
* org.el (org-sort-entries): Fix sorting with a bold emphasis at bol.
2011-07-28 Eric Schulte <schulte.eric@gmail.com>

View file

@ -158,7 +158,8 @@ parenthetical grouping.")
(if (fboundp 'eldoc-post-insert-mode)
'eldoc-post-insert-mode
'eldoc-mode))
:style toggle :selected (or eldoc-post-insert-mode eldoc-mode)
:style toggle :selected (or (bound-and-true-p eldoc-post-insert-mode)
(bound-and-true-p eldoc-mode))
:help "Display function signatures after typing `SPC' or `('"]
["Delimiter Matching" show-paren-mode
:style toggle :selected show-paren-mode

View file

@ -2134,10 +2134,10 @@ See `font-lock-syntax-table'.")
(add-to-list 'auto-mode-alist
(cons (purecopy (concat "\\(?:\\."
"rb\\|ru\\|rake\\|thor"
"\\|jbuilder\\|gemspec"
"\\|jbuilder\\|gemspec\\|podspec"
"\\|/"
"\\(?:Gem\\|Rake\\|Cap\\|Thor"
"Vagrant\\|Guard\\)file"
"Vagrant\\|Guard\\|Pod\\)file"
"\\)\\'")) 'ruby-mode))
;;;###autoload

View file

@ -10509,8 +10509,8 @@ DIFFPT. This function is called via `verilog-diff-function'."
(defun verilog-diff-auto ()
"Expand AUTOs in a temporary buffer and indicate any change.
Whitespace differences are ignored to determine identicalness, but
once a difference is detected, whitespace differences may be shown.
Whitespace is ignored when detecting differences, but once a
difference is detected, whitespace differences may be shown.
To call this from the command line, see \\[verilog-batch-diff-auto].

View file

@ -55,7 +55,7 @@ are listed in src/term.c; look for the string `keys' in that file.
terminal mode as on an X console. If there are differences, you can bet
they'll frustrate you after you've forgotten about them.
For another, the X keysms provide a standard set of names that Emacs knows
For another, the X keysyms provide a standard set of names that Emacs knows
about. It tries to bind many of them to useful things at startup, before your
.emacs is read (so you can override them). In some ways, the X keysym standard
is a admittedly poor one; it's incomplete, and not well matched to the set of

View file

@ -2803,7 +2803,7 @@ There might be text before point."
(t
(let ((col (current-column)))
(if (or (not (eq (char-syntax (or (char-after pos) ?\s)) ?\())
;; Can't be an arg if there's an empty line inbetween.
;; Can't be an arg if there's an empty line in between.
(save-excursion (re-search-forward "^[ \t]*$" pos t)))
;; If the first char was not an open-paren, there's
;; a risk that this is really not an argument to the

View file

@ -296,7 +296,7 @@
2012-04-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
* url-domsurf.el: New file (bug#1401).
* url-domsuf.el: New file (bug#1401).
* url-cookie.el (url-cookie-two-dot-domains): Remove.
(url-cookie-host-can-set-p): Use `url-domsuf-cookie-allowed-p'

View file

@ -791,7 +791,7 @@ If LIMIT is non-nil, show no more than this many entries."
(apply 'vc-git-command buffer
'async files
(append
'("log" "--no-color")
'("log" "--no-color" "--follow")
(when shortlog
`("--graph" "--decorate" "--date=short"
,(format "--pretty=tformat:%s"

View file

@ -128,6 +128,9 @@ Returns nil if unable to find this information."
"dir"))
(buffer-string))))
(define-obsolete-function-alias 'emacs-bzr-get-version
'emacs-repository-get-version "24.4")
(defun emacs-repository-get-version (&optional dir external)
"Try to return as a string the repository revision of the Emacs sources.
The format of the returned string is dependent on the VCS in use.

View file

@ -2300,7 +2300,7 @@ Currently set only from '\" t in the first line of the source file.")
;; Process \k escapes BEFORE changing tab width (?):
(goto-char from)
(woman-mark-horizonal-position)
(woman-mark-horizontal-position)
;; Set buffer-local variables:
(setq fill-column woman-fill-column
@ -3452,7 +3452,7 @@ Format paragraphs upto TO. Supports special chars.
Each element has the form (KEY VALUE . INC) -- inc may be nil.
Also bound locally in `woman2-roff-buffer'.")
(defun woman-mark-horizonal-position ()
(defun woman-mark-horizontal-position ()
"\\kx -- Store current horizontal position in INPUT LINE in register x."
(while (re-search-forward "\\\\k\\(.\\)" nil t)
(goto-char (match-beginning 0))

View file

@ -1,4 +1,4 @@
# 00gnulib.m4 serial 2
# 00gnulib.m4 serial 3
dnl Copyright (C) 2009-2014 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@ -6,7 +6,23 @@ dnl with or without modifications, as long as this notice is preserved.
dnl This file must be named something that sorts before all other
dnl gnulib-provided .m4 files. It is needed until such time as we can
dnl assume Autoconf 2.64, with its improved AC_DEFUN_ONCE semantics.
dnl assume Autoconf 2.64, with its improved AC_DEFUN_ONCE and
dnl m4_divert semantics.
# Until autoconf 2.63, handling of the diversion stack required m4_init
# to be called first; but this does not happen with aclocal. Wrapping
# the entire execution in another layer of the diversion stack fixes this.
# Worse, prior to autoconf 2.62, m4_wrap depended on the underlying m4
# for whether it was FIFO or LIFO; in order to properly balance with
# m4_init, we need to undo our push just before anything wrapped within
# the m4_init body. The way to ensure this is to wrap both sides of
# m4_init with a one-shot macro that does the pop at the right time.
m4_ifndef([_m4_divert_diversion],
[m4_divert_push([KILL])
m4_define([gl_divert_fixup], [m4_divert_pop()m4_define([$0])])
m4_define([m4_init],
[gl_divert_fixup()]m4_defn([m4_init])[gl_divert_fixup()])])
# AC_DEFUN_ONCE([NAME], VALUE)
# ----------------------------

View file

@ -1,4 +1,4 @@
# gnulib-common.m4 serial 33
# gnulib-common.m4 serial 34
dnl Copyright (C) 2007-2014 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@ -375,3 +375,7 @@ AC_DEFUN([gl_CACHE_VAL_SILENT],
AC_CACHE_VAL([$1], [$2])
as_echo_n="$saved_as_echo_n"
])
# AS_VAR_COPY was added in autoconf 2.63b
m4_define_default([AS_VAR_COPY],
[AS_LITERAL_IF([$1[]$2], [$1=$$2], [eval $1=\$$2])])

View file

@ -1,4 +1,4 @@
/* Replacement inntypes.h file for building GNU Emacs on MS-DOS with DJGPP.
/* Replacement inttypes.h file for building GNU Emacs on MS-DOS with DJGPP.
Copyright (C) 2011-2014 Free Software Foundation, Inc.

View file

@ -3291,7 +3291,7 @@
* src: Remove directory.
* src\config.h, src\paths.h: Moved to parent dir, src removed.
* src/config.h, src/paths.h: Moved to parent dir, src removed.
1995-04-09 Geoff Voelker <voelker@cs.washington.edu>

View file

@ -1,4 +1,4 @@
/* Replacement inntypes.h file for building GNU Emacs on Windows with MSVC.
/* Replacement inttypes.h file for building GNU Emacs on Windows with MSVC.
Copyright (C) 2011-2014 Free Software Foundation, Inc.

View file

@ -1,3 +1,37 @@
2014-01-11 Eli Zaretskii <eliz@gnu.org>
* xdisp.c (try_window_id): Don't use this function's optimizations
if overlays in the buffer displayed by the window have changed
since last redisplay. (Bug#16347)
(message_dolog): Fix indentation.
2014-01-11 Martin Rudalics <rudalics@gmx.at>
* frame.c (frame_resize_pixelwise): Fix doc-string.
2014-01-10 Martin Rudalics <rudalics@gmx.at>
Fix handling of internal borders (Bug#16348).
* dispnew.c (adjust_frame_glyphs_for_window_redisplay): Remove
internal border width from pixel width of windows.
(change_frame_size_1): Don't return early when frame's pixel
size changes - we still have to record the new sizes in the
frame structure.
* w32fns.c (x_set_tool_bar_lines): Clear internal border width
also when toolbar gets larger.
* window.c (check_frame_size): Include internal_border_width in
check.
* xdisp.c (Ftool_bar_height): Fix doc-string typo.
* xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines): In
non-toolkit/non-GTK version clear internal border.
* xterm.c (x_clear_under_internal_border): New function for
non-toolkit/non-GTK version.
(x_after_update_window_line): In non-toolkit/non-GTK version
don't do that.
(handle_one_xevent, x_set_window_size): Call
x_clear_under_internal_border in non-toolkit/non-GTK version.
* xterm.h (x_clear_under_internal_border): Extern it.
2014-01-07 Paul Eggert <eggert@cs.ucla.edu>
Fix misdisplay of interlaced GIFs with libgif5 (Bug#16372).
@ -654,7 +688,7 @@
* conf_post.h: Include <stdbool.h>.
(bool_bf): New type.
* dispextern.h (TRACE, PREPARE_FACE_FOR_DISPLAY):
* interval.h (RESET_INTERVAL, COPY_INTERVAL_CACHE, MERGE_INTERVAL_CACHE)
* intervals.h (RESET_INTERVAL, COPY_INTERVAL_CACHE, MERGE_INTERVAL_CACHE)
Surround statement macro with proper 'do { ... } while (false)' brackets.
* dispextern.h (IF_DEBUG): Properly parenthesize and convert to void.
Args must now be expressions; all callers changed.
@ -3447,7 +3481,7 @@
(Qbool_vector_p): Declare.
(CHECK_BOOL_VECTOR, ROUNDUP, BITS_PER_SIZE_T): New macros.
(swap16, swap32, swap64): New inline functions.
* macfont.c (macfont_shape): Change lint_assume to assume.
* macfont.m (macfont_shape): Change lint_assume to assume.
* ralloc.c: Rename ROUNDUP to PAGE_ROUNDUP throughout.
* xsettings.c (parse_settings): Use new swap16 and
swap32 from lisp.h instead of file-specific macros.
@ -3511,7 +3545,7 @@
* process.h, process.c (PROCESS_INLINE):
* syntax.h, syntax.c (SYNTAX_INLINE):
* systime.h, sysdep.c (SYSTIME_INLINE):
* termhooks.h, terminal.h (TERMHOOKS_INLINE):
* termhooks.h, terminal.c (TERMHOOKS_INLINE):
* window.h, window.c (WINDOW_INLINE):
Remove. All uses replaced with INLINE.
@ -3718,7 +3752,7 @@
(x_handle_dnd_message):
* xsettings.c (xft_settings_event):
Use 'const XEvent * const' where appropriate.
* xterm.h, gtkutil.h, xsettngs.h: Adjust related prototypes.
* xterm.h, gtkutil.h, xsettings.h: Adjust related prototypes.
2013-09-16 Dmitry Antipov <dmantipov@yandex.ru>
@ -3760,7 +3794,7 @@
(Fx_create_frame): Register macfont driver, make a better default font.
(Fns_popup_font_panel): Get font from macfont driver, if used.
* macfont.m, macfont.h, maccuvs.h: New files.
* macfont.m, macfont.h, macuvs.h: New files.
* font.h: Declare syms_of_macfont.
@ -6065,7 +6099,7 @@
New unwind-protect flavors to better type-check C callbacks.
This also lessens the need to write wrappers for callbacks,
and the need for make_save_pointer.
* alloca.c (free_save_value):
* alloc.c (free_save_value):
* atimer.c (run_all_atimers):
Now extern.
* alloc.c (safe_alloca_unwind):
@ -6074,13 +6108,13 @@
* menu.c (cleanup_popup_menu) [HAVE_NS]:
* minibuf.c (choose_minibuf_frame_1):
* process.c (make_serial_process_unwind):
* xdisp.h (pop_message_unwind):
* xdisp.c (pop_message_unwind):
* xselect.c (queue_selection_requests_unwind):
Remove no-longer-needed wrapper. All uses replaced by the wrappee.
* alloca.c (record_xmalloc):
* alloc.c (record_xmalloc):
Prefer record_unwind_protect_ptr to record_unwind_protect with
make_save_pointer.
* alloca.c (Fgarbage_collect):
* alloc.c (Fgarbage_collect):
Prefer record_unwind_protect_void to passing a dummy.
* buffer.c (restore_buffer):
* window.c (restore_window_configuration):
@ -6686,8 +6720,8 @@
Use emacs_open more consistently when opening files.
This handles EINTR more consistently now, and makes it easier
to introduce other uniform changes to file descriptor handling.
* src/systdio.h: New file.
* src/buffer.c (mmap_init):
* sysstdio.h: New file.
* buffer.c (mmap_init):
* cygw32.c (chdir_to_default_directory):
* dispnew.c (Fopen_termscript):
* emacs.c (Fdaemon_initialized):

View file

@ -2400,7 +2400,7 @@
* w32term.h (x_char_width, x_char_height): Likewise.
* xfns.c (x_char_width, x_char_height): Remove.
* w32fns.c (x_char_width, x_char_height): Likewise.
* nsfns.c (x_char_width, x_char_height): Likewise.
* nsfns.m (x_char_width, x_char_height): Likewise.
* frame.c (Fframe_char_width): Use FRAME_COLUMN_WIDTH for
all window frames.
(Fframe_char_height): Likewise with FRAME_LINE_HEIGHT.

View file

@ -15138,8 +15138,8 @@
1989-06-23 Joseph Arceneaux (jla@apple-gunkies.ai.mit.edu)
* xfns.c, lisp/term/x-win.el: C routine Fscreen_color_p now lisp
function x-color-screen-p in x-win.el.
* xfns.c: C routine Fscreen_color_p now lisp
function x-color-screen-p in lisp/term/x-win.el.
(x_set_cursor_color): New method: first disallow same cursor as
background, then if cursor not foreground, use it as cursor
foreground.

View file

@ -2055,7 +2055,8 @@ adjust_frame_glyphs_for_window_redisplay (struct frame *f)
w->left_col = 0;
w->pixel_top = 0;
w->top_line = 0;
w->pixel_width = FRAME_PIXEL_WIDTH (f);
w->pixel_width = (FRAME_PIXEL_WIDTH (f)
- 2 * FRAME_INTERNAL_BORDER_WIDTH (f));
w->total_cols = FRAME_TOTAL_COLS (f);
w->pixel_height = FRAME_MENU_BAR_HEIGHT (f);
w->total_lines = FRAME_MENU_BAR_LINES (f);
@ -5515,7 +5516,11 @@ change_frame_size_1 (struct frame *f, int new_width, int new_height,
example, fullscreen and remove/add scroll bar. */
if (new_text_height == FRAME_TEXT_HEIGHT (f)
&& new_text_width == FRAME_TEXT_WIDTH (f)
&& new_root_width == old_root_width)
&& new_root_width == old_root_width
&& (FRAME_PIXEL_HEIGHT (f) ==
FRAME_TEXT_TO_PIXEL_HEIGHT (f, new_text_height))
&& (FRAME_PIXEL_WIDTH (f) ==
FRAME_TEXT_TO_PIXEL_WIDTH (f, new_text_width)))
return;
block_input ();

View file

@ -4429,7 +4429,7 @@ where
LANGSYS is a symbol specifying a langsys tag of OpenType,
GSUB and GPOS, if non-nil, are lists of symbols specifying feature tags.
If LANGYS is nil, the default langsys is selected.
If LANGSYS is nil, the default langsys is selected.
The features are applied in the order they appear in the list. The
symbol `*' means to apply all available features not present in this

View file

@ -4709,7 +4709,6 @@ or call the function `tool-bar-mode'. */);
DEFVAR_KBOARD ("default-minibuffer-frame", Vdefault_minibuffer_frame,
doc: /* Minibufferless frames use this frame's minibuffer.
Emacs cannot create minibufferless frames unless this is set to an
appropriate surrogate.
@ -4730,9 +4729,15 @@ automatically. See also `mouse-autoselect-window'. */);
focus_follows_mouse = 0;
DEFVAR_BOOL ("frame-resize-pixelwise", frame_resize_pixelwise,
doc: /* Non-nil means frames are resized pixelwise.
If this is nil, resizing a frame will round sizes to the frame's
current values of `frame-char-height' and `frame-char-width'. */);
doc: /* Non-nil means resize frames pixelwise.
If this option is nil, resizing a frame rounds its sizes to the frame's
current values of `frame-char-height' and `frame-char-width'. If this
is non-nil, no rounding occurs, hence frame sizes can increase/decrease
by one pixel.
With some window managers you have to set this to non-nil in order to
fully maximize frames. The default of this option is nil. To resize
your initial frame pixelwise, set this option in your init file. */);
frame_resize_pixelwise = 0;
staticpro (&Vframe_list);

View file

@ -1713,26 +1713,23 @@ x_set_tool_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval)
/* If the tool bar gets smaller, the internal border below it
has to be cleared. It was formerly part of the display
of the larger tool bar, and updating windows won't clear it. */
if (delta < 0)
if (FRAME_INTERNAL_BORDER_WIDTH (f) != 0)
{
int height = FRAME_INTERNAL_BORDER_WIDTH (f);
int width = FRAME_PIXEL_WIDTH (f);
int y = nlines * unit;
HDC hdc = get_frame_dc (f);
block_input ();
{
HDC hdc = get_frame_dc (f);
w32_clear_area (f, hdc, 0, y, width, height);
release_frame_dc (f, hdc);
}
w32_clear_area (f, hdc, 0, y, width, height);
release_frame_dc (f, hdc);
unblock_input ();
if (WINDOWP (f->tool_bar_window))
clear_glyph_matrix (XWINDOW (f->tool_bar_window)->current_matrix);
}
run_window_configuration_change_hook (f);
if (delta < 0 && WINDOWP (f->tool_bar_window))
clear_glyph_matrix (XWINDOW (f->tool_bar_window)->current_matrix);
run_window_configuration_change_hook (f);
}

View file

@ -3155,6 +3155,7 @@ check_frame_size (struct frame *frame, int *width, int *height, bool pixelwise)
min_height = 2 * min_height;
min_height += FRAME_TOP_MARGIN_HEIGHT (frame);
min_height += FRAME_INTERNAL_BORDER_WIDTH (frame);
if (*height < min_height)
*height = min_height;
@ -4047,6 +4048,8 @@ resize_frame_windows (struct frame *f, int size, bool horflag, bool pixelwise)
have implicitly given us a zero or negative height. */
if (pixelwise)
{
/* Note: This does not include the size for internal borders
since these are not part of the frame's text area. */
new_pixel_size = max (horflag
? size
: (size

View file

@ -9854,7 +9854,7 @@ message_dolog (const char *m, ptrdiff_t nbytes, bool nlflag, bool multibyte)
incrementing windows_or_buffers_changed even if *Messages* is
shown in some window. So we must manually set
windows_or_buffers_changed here to make up for that. */
windows_or_buffers_changed = old_windows_or_buffers_changed;
windows_or_buffers_changed = old_windows_or_buffers_changed;
bset_redisplay (current_buffer);
set_buffer_internal (oldbuf);
@ -12109,7 +12109,7 @@ DEFUN ("tool-bar-height", Ftool_bar_height, Stool_bar_height,
0, 2, 0,
doc: /* Return the number of lines occupied by the tool bar of FRAME.
If FRAME is nil or omitted, use the selected frame. Optional argument
PIXELWISE non-nil means return the height of the tool bar inpixels. */)
PIXELWISE non-nil means return the height of the tool bar in pixels. */)
(Lisp_Object frame, Lisp_Object pixelwise)
{
int height = 0;
@ -17333,9 +17333,16 @@ row_containing_pos (struct window *w, ptrdiff_t charpos,
Value is
1 if display has been updated
0 if otherwise unsuccessful
>= 1 if successful, i.e. display has been updated
specifically:
1 means the changes were in front of a newline that precedes
the window start, and the whole current matrix was reused
2 means the changes were after the last position displayed
in the window, and the whole current matrix was reused
3 means portions of the current matrix were reused, while
some of the screen lines were redrawn
-1 if redisplay with same window start is known not to succeed
0 if otherwise unsuccessful
The following steps are performed:
@ -17410,6 +17417,12 @@ try_window_id (struct window *w)
if (windows_or_buffers_changed || f->cursor_type_changed)
GIVE_UP (2);
/* This function's optimizations cannot be used if overlays have
changed in the buffer displayed by the window, so give up if they
have. */
if (w->last_overlay_modified != OVERLAY_MODIFF)
GIVE_UP (21);
/* Verify that narrowing has not changed.
Also verify that we were not told to prevent redisplay optimizations.
It would be nice to further

View file

@ -998,6 +998,8 @@ x_set_menu_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval)
FRAME_MENU_BAR_LINES (f) = nlines;
FRAME_MENU_BAR_HEIGHT (f) = nlines * FRAME_LINE_HEIGHT (f);
resize_frame_windows (f, FRAME_TEXT_HEIGHT (f), 0, 1);
if (FRAME_X_WINDOW (f))
x_clear_under_internal_border (f);
/* If the menu bar height gets changed, the internal border below
the top margin has to be cleared. Also, if the menu bar gets
@ -1110,8 +1112,11 @@ x_set_tool_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval)
FRAME_TOOL_BAR_LINES (f) = nlines;
FRAME_TOOL_BAR_HEIGHT (f) = nlines * FRAME_LINE_HEIGHT (f);
++windows_or_buffers_changed;
resize_frame_windows (f, FRAME_TEXT_HEIGHT (f), 0, 1);
#if !defined USE_X_TOOLKIT && !defined USE_GTK
if (FRAME_X_WINDOW (f))
x_clear_under_internal_border (f);
#endif
adjust_frame_glyphs (f);
/* We also have to make sure that the internal border at the top of

View file

@ -593,6 +593,32 @@ XTframe_up_to_date (struct frame *f)
}
/* Clear under internal border if any for non-toolkit builds. */
#if !defined USE_X_TOOLKIT && !defined USE_GTK
void
x_clear_under_internal_border (struct frame *f)
{
if (FRAME_INTERNAL_BORDER_WIDTH (f) > 0)
{
Display *display = FRAME_X_DISPLAY (f);
Window window = FRAME_X_WINDOW (f);
int border = FRAME_INTERNAL_BORDER_WIDTH (f);
int width = FRAME_PIXEL_WIDTH (f);
int height = FRAME_PIXEL_HEIGHT (f);
int margin = FRAME_TOP_MARGIN_HEIGHT (f);
block_input ();
x_clear_area (display, window, 0, 0, border, height);
x_clear_area (display, window, 0, margin, width, border);
x_clear_area (display, window, width - border, 0, border, height);
x_clear_area (display, window, 0, height - border, width, border);
unblock_input ();
}
}
#endif
/* Draw truncation mark bitmaps, continuation mark bitmaps, overlay
arrow bitmaps, or clear the fringes if no bitmaps are required
before DESIRED_ROW is made current. This function is called from
@ -602,38 +628,42 @@ XTframe_up_to_date (struct frame *f)
static void
x_after_update_window_line (struct window *w, struct glyph_row *desired_row)
{
struct frame *f;
int width, height;
eassert (w);
if (!desired_row->mode_line_p && !w->pseudo_window_p)
desired_row->redraw_fringe_bitmaps_p = 1;
#ifdef USE_X_TOOLKIT
/* When a window has disappeared, make sure that no rest of
full-width rows stays visible in the internal border. Could
check here if updated window is the leftmost/rightmost window,
but I guess it's not worth doing since vertically split windows
are almost never used, internal border is rarely set, and the
overhead is very small. */
if (windows_or_buffers_changed
&& desired_row->full_width_p
&& (f = XFRAME (w->frame),
width = FRAME_INTERNAL_BORDER_WIDTH (f),
width != 0)
&& (height = desired_row->visible_height,
height > 0))
{
int y = WINDOW_TO_FRAME_PIXEL_Y (w, max (0, desired_row->y));
{
struct frame *f;
int width, height;
block_input ();
x_clear_area (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
0, y, width, height);
x_clear_area (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
FRAME_PIXEL_WIDTH (f) - width,
y, width, height);
unblock_input ();
}
if (windows_or_buffers_changed
&& desired_row->full_width_p
&& (f = XFRAME (w->frame),
width = FRAME_INTERNAL_BORDER_WIDTH (f),
width != 0)
&& (height = desired_row->visible_height,
height > 0))
{
int y = WINDOW_TO_FRAME_PIXEL_Y (w, max (0, desired_row->y));
block_input ();
x_clear_area (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
0, y, width, height);
x_clear_area (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
FRAME_PIXEL_WIDTH (f) - width,
y, width, height);
unblock_input ();
}
}
#endif
}
static void
@ -6618,7 +6648,8 @@ handle_one_xevent (struct x_display_info *dpyinfo,
|| event->xconfigure.height != FRAME_PIXEL_HEIGHT (f))
{
change_frame_size (f, width, height, 0, 1, 0, 1);
SET_FRAME_GARBAGED (f);
x_clear_under_internal_border (f);
SET_FRAME_GARBAGED (f);
cancel_mouse_face (f);
}
@ -8635,6 +8666,9 @@ x_set_window_size (struct frame *f, int change_gravity, int width, int height, b
#else /* not USE_GTK */
x_set_window_size_1 (f, change_gravity, width, height, pixelwise);
#if !defined USE_X_TOOLKIT
x_clear_under_internal_border (f);
#endif
#endif /* not USE_GTK */

View file

@ -1049,6 +1049,10 @@ extern void x_session_close (void);
extern Lisp_Object Qx_gtk_map_stock;
#if !defined USE_X_TOOLKIT && !defined USE_GTK
extern void x_clear_under_internal_border (struct frame *f);
#endif
/* Is the frame embedded into another application? */
#define FRAME_X_EMBEDDED_P(f) (FRAME_X_OUTPUT(f)->explicit_parent != 0)

View file

@ -44,8 +44,8 @@
2013-12-12 Nathan Trapuzzano <nbtrap@nbtrap.com>
* automated/python-test.el (python-indent-block-enders-1): Rename
from python-indent-block-enders.
* automated/python-tests.el (python-indent-block-enders-1):
Rename from python-indent-block-enders.
(python-indent-block-enders-2): New test.
2013-12-08 Dmitry Gutov <dgutov@yandex.ru>
@ -131,9 +131,8 @@
2013-11-20 Bozhidar Batsov <bozhidar@batsov.com>
* test/automated/ruby-mode-tests.el (ruby-exit!-font-lock):
* automated/ruby-mode-tests.el (ruby-exit!-font-lock):
Add a failing test for Bug#15874.
* test/automated/ruby-mode-tests.el
(ruby--insert-coding-comment-ruby-style)
(ruby--insert-coding-comment-emacs-style)
(ruby--insert-coding-comment-custom-style):
@ -353,7 +352,7 @@
2013-10-17 Barry O'Reilly <gundaetiapo@gmail.com>
* test/automated/timer-tests.el: New file. Tests that (sit-for 0)
* automated/timer-tests.el: New file. Tests that (sit-for 0)
allows another timer to run.
2013-10-14 Dmitry Gutov <dgutov@yandex.ru>
@ -449,7 +448,7 @@
2013-09-22 Daniel Colascione <dancol@dancol.org>
* automated/data-test.el:
* automated/data-tests.el:
(bool-vector-count-matches-all-0-nil)
(bool-vector-count-matches-all-0-t)
(bool-vector-count-matches-1-il, bool-vector-count-matches-1-t)
@ -523,8 +522,8 @@
2013-08-14 Daniel Hackney <dan@haxney.org>
* package-test.el: Remove tar-package-building functions. Tar file
used for testing is included in the repository.
* automated/package-test.el: Remove tar-package-building functions.
Tar file used for testing is included in the repository.
(package-test-install-texinfo, package-test-cleanup-built-files):
Remove.
@ -772,7 +771,7 @@
2013-05-26 Aidan Gauland <aidalgol@amuri.net>
* tests/eshell.el: Rewrite tests using ERT.
* eshell.el: Rewrite tests using ERT.
2013-05-25 Leo Liu <sdl.web@gmail.com>
@ -802,7 +801,7 @@
2013-04-01 Masatake YAMATO <yamato@redhat.com>
* automated/imenu-tests.el: New file. (Bug#14112)
* automated/imenu-test.el: New file. (Bug#14112)
2013-04-19 Fabián Ezequiel Gallina <fgallina@gnu.org>
@ -1161,7 +1160,7 @@
* automated/newsticker-tests.el
(newsticker--group-manage-orphan-feeds): Use fset instead of flet.
* trunk/test/automated/newsticker-tests.el
* automated/newsticker-tests.el
(newsticker--group-manage-orphan-feeds): Prevent updating
newsticker treeview. Fixed bug#9763.

View file

@ -688,7 +688,7 @@ TWindowList = record
NoSound;
RestoreTerminalClearCRT;
WriteLn (StdErr, 'You''re trying to kill me. Since I have break checking turned off,');
WriteLn (StdErr, 'I''m not dying, but I''ll do you a favour and terminate now.');
WriteLn (StdErr, 'I''m not dying, but I''ll do you a favor and terminate now.');
Halt (3)
end;