+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
+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>.
** Check the Lisp manual.
abbrevs.texi rgm
-advice.texi cyd
anti.texi rgm
back.texi rgm
backups.texi cyd
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.
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=
+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
* 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.
* 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.
* 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
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".
@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},
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
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.
* 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.
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/}.
@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,
(@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
(@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
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
+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.
* 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:
$(srcdir)/elisp.texi \
$(emacsdir)/emacsver.texi \
$(srcdir)/abbrevs.texi \
- $(srcdir)/advice.texi \
$(srcdir)/anti.texi \
$(srcdir)/backups.texi \
$(srcdir)/buffers.texi \
+++ /dev/null
-@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.
* 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.
* 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.
@include customize.texi
@include loading.texi
@include compile.texi
-@include advice.texi
@c This includes edebug.texi.
@include debugging.texi
* 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.
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.}
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
srcs = \
$(emacsdir)/emacsver.texi \
$(srcdir)/abbrevs.texi \
- $(srcdir)/advice.texi \
$(srcdir)/anti.texi \
$(srcdir)/backups.texi \
$(srcdir)/buffers.texi \
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.
@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
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}
@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
+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.
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
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
+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.
(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>
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>
* 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.
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.
* 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
(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'.
(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.
* 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.
* 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.
* 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
(@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.
* 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.
* 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.
* 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.
* 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)
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>
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>
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>
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>
* 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.
* 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.
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>
* 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.
* 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.
* 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>
* 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):
## 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 \
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)
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.
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,
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
--- /dev/null
+\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
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)
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:}
% 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,
\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}
%
% 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
\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.
+
+% 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
-% This \urefbreak definition is the active one.
+% 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
\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
\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
%
% 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}$}%
%
+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>
* 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:
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.
* 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.
-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.
`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
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:
* 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
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
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
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
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
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.
-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/>.
-
+More Neat Stuff for your Emacs
+
+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.
+++
*** 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.
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
`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.
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.
\f
* 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.
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
*** `hash-table-keys'
+++
*** `hash-table-values'
-
+---
*** `string-blank-p`
*** `string-empty-p`
*** `string-join`
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
-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.
-
-For more information, see the online store at <http://shop.fsf.org/>.
-
-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/>.
+Printed copies of Emacs manuals
+
+Note added January 2014:
+
+This file is obsolete and will be removed in future.
+Please update any links to use
+ info node `(emacs)Printed Books'
+instead.
| =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
** 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
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
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
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
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.
-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
Printed 10/28/85 18 January 1983 3
-
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.
* 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>
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.
* 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
* 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>
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>
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
* 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):
* 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):
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.
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>
* 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.
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>
* 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.
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.
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
(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>
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
(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>
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).
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>
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>
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.
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>
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.
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
(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-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-units.el (calcFunc-usimplify): Ditto.
+
+ * 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.
* 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.
-
- * README: Update maintainer.
+ * 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.
+
+ * calc/README: Update maintainer.
2001-11-13 Richard M. Stallman <rms@gnu.org>
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.
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.
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
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)".
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'
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)
(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
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>
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.
* 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.
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'.
* 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
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.
* 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.
* 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
(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.
(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.
* 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
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.
(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.
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.
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.
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.
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.
(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.
* 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)
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.
* 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.
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.
* 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.
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.
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.
* 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
* 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
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.
* 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
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
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>
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.
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
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.
(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.
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>
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.
* 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.
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>
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.
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.
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
* 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
(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.
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)
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.
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>
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)
* 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,
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>
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'.
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.
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
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
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.
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.
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>
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
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>
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
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
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,
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
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.
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.
* 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:
* 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.
(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))
(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)))
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))
)
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))))
("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")
"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")
("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).
;;; ("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")
("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;
("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:.
(provide 'eieio-custom)
+;; Local variables:
+;; generated-autoload-file: "eieio.el"
+;; End:
+
;;; eieio-custom.el ends here
;; 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
(provide 'eieio-opt)
+;; Local variables:
+;; generated-autoload-file: "eieio.el"
+;; End:
+
;;; eieio-opt.el ends here
)
)
-;;; Autoloading some external symbols, and hooking into the help system
-;;
-
\f
;;; Start of automatically extracted autoloads.
\f
-;;;### (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" "\
;;;***
\f
-;;;### (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" "\
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)
-
-(autoload 'eieio-describe-constructor "eieio-opt" "\
-Describe the constructor function FCN.
-Uses `eieio-describe-class' to describe the class being constructed.
-\(fn FCN)" t nil)
-(defalias 'describe-generic 'eieio-describe-generic)
+\(fn CLASS)" 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-constructor "eieio-opt" "\
+Describe CTR if it is a class constructor.
-\(fn GENERIC)" t nil)
+\(fn CTR)" nil nil)
-(autoload 'eieio-help-mode-augmentation-maybee "eieio-opt" "\
-For buffers thrown into help mode, augment for EIEIO.
-Arguments UNUSED are not used.
+(autoload 'eieio-help-generic "eieio-opt" "\
+Describe GENERIC if it is a generic function.
-\(fn &rest UNUSED)" nil nil)
+\(fn GENERIC)" nil nil)
;;;***
\f
(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
+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.
* 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.
(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.
(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."
(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.
(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:")
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)
* 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
* 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.
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.
* 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>
(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
(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
(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].
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
(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
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'
(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"
"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.
;; 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
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))
-# 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,
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)
# ----------------------------
-# 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,
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])])
-/* 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.
* 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>
-/* 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.
+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).
* 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.
(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.
* 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.
(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>
(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.
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):
* 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):
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):
* 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.
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.
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);
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 ();
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
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.
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);
/* 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);
}
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;
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
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);
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;
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:
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
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
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
}
+/* 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
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;
+
+ 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 ();
- }
+ 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
|| 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);
}
#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 */
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)
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>
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):
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>
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)
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.
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>
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>
* 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.
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;