Commit 2ed90920 authored by Kenichi Handa's avatar Kenichi Handa
Browse files

merge trunk

parents c3a7b3f4 dbca79f8
2013-06-27 Juanma Barranquero <>
* (install-arch-indep): Do not create directories passed
with --enable-locallisppath.
2013-06-24 Glenn Morris <>
* Include X11/X.h when testing for Xft.h. (Bug#14684)
2013-06-22 Juanma Barranquero <>
* .bzrignore: Add GNU idutils ID database file.
......@@ -548,13 +548,9 @@ set_installuser=for installuser in $${LOGNAME} $${USERNAME} $${USER} \
## Note that the Makefiles in the etc directory are potentially useful
## in an installed Emacs, so should not be excluded.
## I'm not sure creating locallisppath here serves any useful purpose.
## If it has the default value, then the later write_subdir commands
## will ensure all these components exist.
## This will only do something if locallisppath has a non-standard value.
## Is it really Emacs's job to create those directories?
## Should we also be ensuring they contain subdirs.el files?
## It would be easy to do, just use write_subdir.
## We used to create locallisppath, but if it points to non-standard
## locations, is not really Emacs's job to create these directories,
## so it is no longer done.
## Note that we use tar instead of plain old cp -R/-r because the latter
## is apparently not portable (even in 2012!).
......@@ -564,12 +560,6 @@ set_installuser=for installuser in $${LOGNAME} $${USERNAME} $${USER} \
## See also these comments from 2004 about cp -r working fine:
install-arch-indep: lisp leim install-info install-man ${INSTALL_ARCH_INDEP_EXTRA}
umask 022 ; \
locallisppath='${locallisppath}'; \
IFS=:; \
for d in $$locallisppath; do \
${MKDIR_P} "$(DESTDIR)$$d"; \
-set ${COPYDESTS} ; \
unset CDPATH; \
$(set_installuser); \
......@@ -10,6 +10,14 @@ directory in the Emacs build tree:
emacs -Q --eval "(progn (require 'info) (setq Info-directory-list '(\".\")))" \
-f info-xref-check-all
Setting Info-directory-list avoids having system info pages confuse
things. References to external manuals will be flagged as
uncheckable. You should still check these, and also that each
external manual has an appropriate redirect in the file manual/.htaccess
in the web pages repository. E.g.:
Redirect /software/emacs/manual/html_mono/automake.html /software/automake/manual/automake.html
Redirect /software/emacs/manual/html_node/automake/ /software/automake/manual/html_node/
make emacs.dvi, elisp.dvi, and deal with any errors (undefined
references etc) in the output. Break any overfull lines.
Underfull hboxes are not serious, but it can be nice to get rid of
-*- outline -*-
Copyright (C) 2013 Free Software Foundation, Inc.
See the end of the file for license conditions.
* Renaming pages, redirects
Sometimes you want to move a page to a new location.
If the old location might be referenced somewhere else, you should add
some form of redirect to the new location. There are several ways to
do this:
** Use a refresh directive in the old file
Change the entire contents of the old file to be something like:
<meta http-equiv="refresh" content="0; url=/software/emacs/manual/elisp.html">
I can't think of any reason to use this method.
** Use a .symlinks file
This is really an interface to mod_rewrite rules, but it acts like
symlinks. Remove old-page.html altogether, and create a ".symlinks"
file in the relevant directory, with contents of the form:
# This is a comment line.
old-page.html new-page.html
Anyone visiting old-page.html will be shown the contents of new-page.html.
Note that changes to .symlinks file are only updated periodically on
the server via cron (twice an hour?). So there will be a delay (of up
to 30 minutes?) before you see your changes take effect.
This method is ok, but:
i) a person visiting old-page.html has no idea that the page has moved.
They still see old-page.html in their address bar. (In other words,
the mod_rewrite rule does not use the [R] flag.) Sometimes this is
what you want, sometimes not.
ii) it doesn't work right if the new page is in a different directory
to the old page: relative links from the visited page will break.
** Use a .htaccess file
Remove old-page.html altogether, and create a ".htaccess" file in the
relevant directory, with contents of the form:
# This is a comment line.
Redirect 301 /software/emacs/old-page.html /software/emacs/dir/new-page.html
Use "301" for a permanent redirection, otherwise you can omit the number.
Note that paths must (?) be relative to the top-level
I think this is the best method. You can specify temporary or
permanent redirects, and changes go live more-or-less straight away.
This method is useful for making cross-references to non-Emacs manuals
work; see manual/.htaccess in the repository. You only have to add a
single redirect for every given external manual, you can redirect
html_node to hmtl_node and html_mono to html_mono.
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
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 <>.
......@@ -12862,7 +12862,8 @@ fi
XFT_LIBS="-lXrender $XFT_LIBS"
ac_fn_c_check_header_mongrel "$LINENO" "X11/Xft/Xft.h" "ac_cv_header_X11_Xft_Xft_h" "$ac_includes_default"
ac_fn_c_check_header_compile "$LINENO" "X11/Xft/Xft.h" "ac_cv_header_X11_Xft_Xft_h" "#include <X11/X.h>
if test "x$ac_cv_header_X11_Xft_Xft_h" = x""yes; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XftFontOpen in -lXft" >&5
$as_echo_n "checking for XftFontOpen in -lXft... " >&6; }
......@@ -2644,7 +2644,8 @@ if test "${HAVE_X11}" = "yes"; then
XFT_LIBS="-lXrender $XFT_LIBS"
AC_CHECK_LIB(Xft, XftFontOpen, HAVE_XFT=yes, , $XFT_LIBS))
AC_CHECK_LIB(Xft, XftFontOpen, HAVE_XFT=yes, , $XFT_LIBS) , ,
[[#include <X11/X.h>]])
if test "${HAVE_XFT}" = "yes"; then
AC_DEFINE(HAVE_XFT, 1, [Define to 1 if you have the Xft library.])
......@@ -1267,9 +1267,12 @@ minibuffer, and displays the differences between the two files in a
buffer named @file{*diff*}. This works by running the @command{diff}
program, using options taken from the variable @code{diff-switches}.
The value of @code{diff-switches} should be a string; the default is
@code{"-c"} to specify a context diff. @xref{Top,, Diff, diff,
Comparing and Merging Files}, for more information about the
@command{diff} program.
@code{"-c"} to specify a context diff.
@c Note that the actual name of the info file is,
@c but it adds a dir entry for diff too.
@c On older systems, only "info diff" works, not "info diffutils".
@xref{Top,, Diff, diff, Comparing and Merging Files}, for more
information about the @command{diff} program.
The output of the @code{diff} command is shown using a major mode
called Diff mode. @xref{Diff Mode}.
......@@ -1370,6 +1370,7 @@ mailboxes, etc. It is able to access remote mailboxes using the POP3
or IMAP4 protocol, and can retrieve mail from them using a TLS
encrypted channel. It also accepts mailbox arguments in @acronym{URL}
form. The detailed description of mailbox @acronym{URL}s can be found
@c Note this node seems to be missing in some versions of
in @ref{URL,,,mailutils,Mailbox URL Formats}. In short, a
@acronym{URL} is:
2013-06-26 Christopher Schmidt <>
* tips.texi (Coding Conventions): Improve wording.
2013-06-24 Glenn Morris <>
* loading.texi (Autoload): Fix typo.
* variables.texi (Lexical Binding): Fix typo.
* functions.texi (Anonymous Functions): Put back ' removed 2012-10-23.
2013-06-23 Lars Magne Ingebrigtsen <>
* display.texi (ImageMagick Images): Mention :max-width and
2013-06-20 Paul Eggert <>
* numbers.texi (Math Functions): Remove obsolete function log10.
......@@ -4653,6 +4653,15 @@ image. If only one of them is specified, the other one will be
calculated so as to preserve the aspect ratio. If both are specified,
aspect ratio may not be preserved.
@item :max-width, :max-height
The @code{:max-width} and @code{:max-height} keywords are used for
scaling if the size of the image of the image exceeds these values.
If @code{:width} is set it will have presedence over @code{max-width},
and if @code{:height} is set it will have presedence over
@code{max-height}, but you can otherwise mix these keywords as you
wish. @code{:max-width} and @code{:max-height} will always preserve
the aspec ratio.
@item :rotation
Specifies a rotation angle in degrees.
......@@ -974,10 +974,11 @@ Note that we do not quote the @code{lambda} form.
compiled. This would not happen if, say, you had constructed the
anonymous function by quoting it as a list:
@c Do not unquote this lambda!
(defun double-property (symbol prop)
(change-property symbol prop (lambda (x) (* 2 x))))
(change-property symbol prop '(lambda (x) (* 2 x))))
@end group
@end example
......@@ -461,7 +461,7 @@ and calls @code{define-key}; not even if the variable name is the same
symbol @var{function}.
@cindex function cell in autoload
if @var{function} already has non-void function definition that is not
If @var{function} already has a non-void function definition that is not
an autoload object, this function does nothing and returns @code{nil}.
Otherwise, it constructs an autoload object (@pxref{Autoload Type}),
and stores it as the function definition for @var{function}. The
......@@ -54,12 +54,12 @@ You should choose a short word to distinguish your program from other
Lisp programs. The names of all global symbols in your program, that
is the names of variables, constants, and functions, should begin with
that chosen prefix. Separate the prefix from the rest of the name
with a hyphen, @samp{-}. Use two hyphens if the symbol is not meant
to be used by other packages. This practice helps avoid name
conflicts, since all global variables in Emacs Lisp share the same
name space, and all functions share another name space@footnote{The
benefits of a Common Lisp-style package system are considered not to
outweigh the costs.}.
with a hyphen, @samp{-}. This practice helps avoid name conflicts,
since all global variables in Emacs Lisp share the same name space,
and all functions share another name space@footnote{The benefits of a
Common Lisp-style package system are considered not to outweigh the
costs.}. Use two hyphens to separate prefix and name if the symbol is
not meant to be used by other packages.
Occasionally, for a command name intended for users to use, it is more
convenient if some words come before the package's name prefix. And
......@@ -988,7 +988,7 @@ Here is an example:
(setq my-ticker (lambda ()
(setq x (1+ x)))))
@result{} (closure ((x . 0) t) ()
(1+ x))
(setq x (1+ x)))
(funcall my-ticker)
@result{} 1
2013-06-24 Glenn Morris <>
* eshell.texi: Fix cross-references to other manuals.
2013-06-23 Glenn Morris <>
* (HTML_TARGETS, html, emacs-faq.html, emacs-faq):
......@@ -378,12 +378,13 @@ Similar to, but slightly different from, the GNU Coreutils
@item define
@cmindex define
Define a varalias. @xref{Variable Aliases, , , elisp}.
Define a varalias.
@xref{Variable Aliases, , , elisp, The Emacs Lisp Reference Manual}.
@item diff
@cmindex diff
Use Emacs's internal @code{diff} (not to be confused with
@code{ediff}). @xref{Comparing Files, , , elisp}.
@code{ediff}). @xref{Comparing Files, , , emacs, The GNU Emacs Manual}.
@item grep
@cmindex grep
......@@ -422,15 +423,18 @@ and @code{("foo" "bar")} both evaluate to @code{("foo" "bar")}.
@item locate
@cmindex locate
Alias to Emacs's @code{locate} function, which simply runs the external
@command{locate} command and parses the results. @xref{Dired and `find', , , elisp}.
@command{locate} command and parses the results.
@xref{Dired and Find, , , emacs, The GNU Emacs Manual}.
@item make
@cmindex make
Run @command{make} through @code{compile}. @xref{Running Compilations under Emacs, , , elisp}.
Run @command{make} through @code{compile}.
@xref{Compilation, , , emacs, The GNU Emacs Manual}.
@item occur
@cmindex occur
Alias to Emacs's @code{occur}. @xref{Other Search-and-Loop Commands, , , elisp}.
Alias to Emacs's @code{occur}.
@xref{Other Repeating Search, , , emacs, The GNU Emacs Manual}.
@item printnl
@cmindex printnl
......@@ -648,7 +652,8 @@ variables in command invocations.
@item $#var
Expands to the length of the value bound to @code{var}. Raises an error
if the value is not a sequence (@pxref{Sequences Arrays and Vectors, Sequences, , elisp}).
if the value is not a sequence
(@pxref{Sequences Arrays Vectors, Sequences, , elisp, The Emacs Lisp Reference Manual}).
@item $(lisp)
Expands to the result of evaluating the S-expression @code{(lisp)}. On
......@@ -680,7 +685,8 @@ any regular expression. So to split on numbers, use @samp{$var["[0-9]+" 10 20]}
@item $var[hello]
Calls @code{assoc} on @code{var} with @code{"hello"}, expecting it to be
an alist (@pxref{Association List Type, Association Lists, , elisp}).
an alist (@pxref{Association List Type, Association Lists, , elisp,
The Emacs Lisp Reference Manual}).
@item $#var[hello]
Returns the length of the cdr of the element of @code{var} who car is equal
......@@ -693,9 +699,11 @@ to @code{"hello"}.
Eshell's globbing syntax is very similar to that of Zsh. Users coming
from Bash can still use Bash-style globbing, as there are no
incompatibilities. Most globbing is pattern-based expansion, but there
is also predicate-based expansion. See @ref{Filename Generation, , , zsh}
is also predicate-based expansion. See
@ref{Filename Generation, , , zsh, The Z Shell Manual}
for full syntax. To customize the syntax and behaviour of globbing in
Eshell see the Customize@footnote{@xref{Customization Settings, Customize, , elisp}.}
Eshell see the Customize@footnote{@xref{Easy Customization, , , emacs,
The GNU Emacs Manual}.}
groups ``eshell-glob'' and ``eshell-pred''.
@node Input/Output
......@@ -757,7 +765,8 @@ can be disabled and enabled without having to unload and reload them,
and to provide a common parent Customize group for the
modules.@footnote{ERC provides a similar module facility.} An Eshell
module is defined the same as any other library but one requirement: the
module must define a Customize@footnote{@xref{Customization Settings, Customize, , elisp}.}
module must define a Customize@footnote{@xref{Customization, , ,
elisp, The Emacs Lisp Reference Manual}.}
group using @code{eshell-defgroup} (in place of @code{defgroup}) with
@code{eshell-module} as the parent group.@footnote{If the module has
no user-customizable options, then there is no need to define it as an
2013-06-27 Juanma Barranquero <>
* NEWS: Document new Desktop option `desktop-save-windows'.
2013-06-27 Stephen Berman <>
* NEWS: Mention new version of todo-mode.el and obsoleting and
renaming of old version.
2013-06-27 Juanma Barranquero <>
* NEWS: Mention policy change with respect to locallisppath dirs.
2013-06-18 Juanma Barranquero <>
* NEWS: Document new Prettify Symbols mode.
......@@ -57,6 +57,9 @@ files are in share/emacs/VERSION/etc. (Emacs knows about all these
directories and will find the files in there automatically; there's no
need to set any variables due to this change.)
** Directories passed to configure option `--enable-locallisppath' are
no longer created during installation.
* Startup Changes in Emacs 24.4
......@@ -150,6 +153,9 @@ usually line-oriented command a visual command. Typical examples are
pager by default. See `eshell-visual-subcommands' and
** If your Emacs is compiled with libxml2 support, you can use the new
built-in web browser `eww'.
** `remember' can now store notes in separates files
You can use the new function `remember-store-in-files' within the
`remember-handler-functions' option.
......@@ -161,9 +167,6 @@ for new options related to this function.
** More packages look for ~/.emacs.d/<foo> additionally to ~/.<foo>.
Affected files:
~/.emacs.d/timelog replaces ~/.timelog
~/.emacs.d/todo-do replaces ~/.todo-do
~/.emacs.d/todo-done replaces ~/.todo-done
~/.emacs.d/todo-top replaces ~/.todo-top
~/.emacs.d/vip replaces ~/.vip
~/.emacs.d/viper replaces ~/.viper
~/.emacs.d/ido.last replaces ~/.ido.last
......@@ -177,6 +180,11 @@ Affected files:
~/.emacs.d/strokes replaces ~/.strokes
~/.emacs.d/notes replaces ~/.notes
~/.emacs.d/type-break replaces ~/.type-break
Also the following files used by the now obsolete otodo-mode.el:
~/.emacs.d/todo-do replaces ~/.todo-do
~/.emacs.d/todo-done replaces ~/.todo-done
~/.emacs.d/todo-top replaces ~/.todo-top
** Delphi mode is now called OPascal mode.
*** All delphi-* variables and functions have been renamed to opascal-*.
......@@ -229,6 +237,9 @@ on the given date.
*** `desktop-auto-save-timeout' defines the number of seconds between
auto-saves of the desktop.
*** `desktop-save-windows' enables saving and restoring the window/frame
** Dired
*** New minor mode `dired-hide-details-mode' hides details.
......@@ -346,6 +357,25 @@ space, no spaces, or reverting to the original spacing. Like
`just-one-space' command it can handle or ignore newlines and
leave different number of spaces.
** Todo mode has been rewritten and enhanced.
New features include:
- support for multiple todo files and archive files of done items;
- renaming, reordering, moving, merging, and deleting categories;
- sortable tabular summaries of categories and the types of items they contain;
- cross-categorial lists of items filtered by specific criteria;
- more fine-grained interaction with the Emacs diary, by being able to decide
for each todo item whether it appears in the Fancy Diary display;
- highly flexible new item insertion and item editing;
- moving items between categories, storing done items in their category or in
archive files, undoing or unarchiving done items;
- reprioritizing items by inputting a numerical priority;
- extensive customizability of operation and display, including numerous faces.
To support some of these features, a new file format is used, which is
incompatible with the old format; however, you can convert old todo and done
item files to the new format on initializing the first new todo file, or at any
later time with the provided conversion command. The old version of
todo-mode.el has been made obsolete and renamed otodo-mode.el.
** Tramp
......@@ -391,6 +421,8 @@ module.
*** terminal.el is obsolete; use term.el instead.
*** The previous version of todo-mode.el is obsolete and renamed otodo-mode.el.
*** xesam.el.
......@@ -695,6 +727,9 @@ ImageMagick types are treated as images. The function
`imagemagick-filter-types' returns the list of types that will be
treated as images.
*** ImageMagick images now support the :max-width and :max-height
** Minibuffer
*** In minibuffer filename prompts, `C-M-f' and `C-M-b' now move to the
......@@ -1188,6 +1223,9 @@ and the `attributes' slot is always nil.
The `url-retrieve' function now uses this to encode its URL argument,
in case that is not properly encoded.
*** New command `url-cookie-list' displays all the current cookies, and
allows deleting selected cookies.
** notifications.el supports now version 1.2 of the Notifications API.
The function `notifications-get-capabilities' returns the supported
server properties.
......@@ -15,6 +15,253 @@
(file-coding-system-alist): Use prefer-utf-8 as default for Elisp
2013-06-28 Ivan Kanis <>
* net/shr.el (shr-render-region): New function.
* net/eww.el: Autoload `eww-browse-url'.
2013-06-27 Dmitry Gutov <>
* emacs-lisp/package-x.el (package-upload-buffer-internal): Adapt
to `package-desc-version' being a list. Use
`package--ac-desc-version' to retrieve version from a package
archive element.
2013-06-27 Juanma Barranquero <>
New experimental feature to save&restore window and frame setup.
* desktop.el (desktop-save-windows): New defcustom.
(desktop--saved-states): New var.
(desktop--excluded-frame-parameters): New defconst.
(desktop--filter-frame-parms, desktop--find-frame-in-display)
(desktop--restore-windows, desktop--save-windows): New functions.
(desktop-save): Call `desktop--save-windows'.
(desktop-read): Call `desktop--restore-windows'.
2013-06-27 Lars Magne Ingebrigtsen <>
* net/shr.el (add-face-text-property): Removed compat definition.
2013-06-27 Stephen Berman <>
* info.el (Info-try-follow-nearest-node): Move search for footnote
above search for node name to prevent missing a footnote (bug#14717).
2013-06-27 Stephen Berman <>
* obsolete/otodo-mode.el: Add obsolescence info to file header.
2013-06-27 Leo Liu <>
* net/eww.el (eww-read-bookmarks): Check file size.
2013-06-26 Stefan Monnier <>
* emacs-lisp/nadvice.el (advice--defalias-fset): Move advice back to
advice--pending if newdef is nil or an autoload (bug#13820).
(advice-mapc): New function.
2013-06-26 Lars Magne Ingebrigtsen <>
* net/eww.el (eww-mode): Undo isn't necessary in eww buffers,
(eww-mode-map): Add a menu bar.
(eww-add-bookmark): New command.
(eww-bookmark-mode): New mode and commands.
(eww-add-bookmark): Remove newlines from the title.
(eww-bookmark-browse): Don't bug out if it's the only window.
2013-06-26 Glenn Morris <>
* htmlfontify.el (hfy-triplet): Handle unspecified-fg, bg.
(hfy-size): Handle ttys. (Bug#14668)
* info-xref.el: Update for Texinfo 5 change in *note format.
(info-xref-node-re, info-xref-note-re): New constants.
(info-xref-check-buffer): Use info-xref-note-re.
2013-06-26 Stefan Monnier <>
* simple.el (set-variable): Use read-from-minibuffer (bug#14710).
* emacs-lisp/package.el (package--add-to-archive-contents): Add missing
nil terminate the loop (bug#14718).
2013-06-25 Lars Magne Ingebrigtsen <>
* net/eww.el: Rework history traversal. When going forward/back,
put these actions into the history, too, so that they can be
(eww-render): Move the history reset to the correct buffer.
2013-06-25 Juri Linkov <>
* files-x.el (modify-dir-local-variable): Change the header comment
in the file with directory local variables. (Bug#14692)
* files-x.el (read-file-local-variable-value): Add `default'.
2013-06-25 Lars Magne Ingebrigtsen <>
* net/eww.el (eww-make-unique-file-name): Create a unique file
name before saving to entering `y' accidentally asynchronously.
2013-06-25 Ivan Kanis <>
* net/eww.el (eww-download): New command and keystroke.
2013-06-25 Lars Magne Ingebrigtsen <>
* net/eww.el (eww-copy-page-url): Change name of command.
* net/shr.el (shr-map): Change `shr-copy-url' from `u' to `w' to
be more consistent with Info and dired.
* net/eww.el (eww-mode-map): Ditto.
2013-06-25 Stefan Monnier <>
* emacs-lisp/package.el: Use lexical-binding. Include obsolete
packages from archives.
(package-archive-contents): Change format; include obsolete packages.
(package-desc): Use `dir' to mark builtin packages.
(package--from-builtin): Set the `dir' field to `builtin'.
(generated-autoload-file, version-control): Declare.
(package-compute-transaction): Change first arg and return value to be
lists of package-descs. Adjust to new package-archive-contents format.
(package--add-to-archive-contents): Adjust to new
package-archive-contents format.
(package-download-transaction): Arg is now a list of package-descs.
(package-install): If `pkg' is a package name, pass it as
a requirement, so it is subject to the usual (e.g. disabled) checks.
(describe-package): Accept package-desc as well.
(describe-package-1): Describe a specific package-desc. Add links to
other package-descs for the same package name.
(package-menu-describe-package): Pass the actual package-desc.
(package-menu-mode): Add to tabulated-list-revert-hook so revert-buffer
works correctly.
(package-desc-status): New function.
(package-menu--refresh): New function, extracted
from package-menu--generate.
(package-menu--generate): Use it.
(package-delete): Update package-alist.
(package-menu-execute): Don't call package-initialize.
* progmodes/idlw-toolbar.el, progmodes/idlw-shell.el,
progmodes/idlw-help.el, progmodes/idlw-complete-structtag.el,
progmodes/ebnf-yac.el, progmodes/ebnf-otz.el, progmodes/ebnf-iso.el,
progmodes/ebnf-ebx.el, progmodes/ebnf-dtd.el, progmodes/ebnf-bnf.el,
progmodes/ebnf-abn.el, emacs-lisp/package-x.el, emacs-lisp/cl-seq.el,
emacs-lisp/cl-macs.el: Neuter the "Version:" header.
2013-06-25 Martin Rudalics <>