[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] trunk r117288: Merge from emacs-24; up to r117218
From: |
Glenn Morris |
Subject: |
[Emacs-diffs] trunk r117288: Merge from emacs-24; up to r117218 |
Date: |
Sun, 08 Jun 2014 00:36:08 +0000 |
User-agent: |
Bazaar (2.6b2) |
------------------------------------------------------------
revno: 117288 [merge]
revision-id: address@hidden
parent: address@hidden
parent: address@hidden
committer: Glenn Morris <address@hidden>
branch nick: trunk
timestamp: Sat 2014-06-07 17:35:27 -0700
message:
Merge from emacs-24; up to r117218
modified:
ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-1538
admin/FOR-RELEASE forrelease-20091113204419-o5vbwnq5f7feedwu-3115
configure.ac
configure.in-20091113204419-o5vbwnq5f7feedwu-783
doc/emacs/ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-6227
doc/emacs/ack.texi ack.texi-20091113204419-o5vbwnq5f7feedwu-6230
doc/emacs/emacs.texi emacs.texi-20091113204419-o5vbwnq5f7feedwu-6246
doc/emacs/package.texi package.texi-20110825190024-lpvyu1zke977csqu-1
doc/emacs/programs.texi
programs.texi-20091113204419-o5vbwnq5f7feedwu-6272
doc/lispref/ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-6155
doc/lispref/display.texi
display.texi-20091113204419-o5vbwnq5f7feedwu-6172
doc/lispref/hooks.texi hooks.texi-20091113204419-o5vbwnq5f7feedwu-6186
doc/lispref/os.texi os.texi-20091113204419-o5vbwnq5f7feedwu-6205
doc/lispref/package.texi package.texi-20100825202226-iq7hwjiir2jpyd4g-1
etc/ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-1485
etc/NEWS news-20100311060928-aoit31wvzf25yr1z-1
etc/TODO todo-20091113204419-o5vbwnq5f7feedwu-1501
etc/themes/deeper-blue-theme.el
deeperbluetheme.el-20110913002754-0ufybn33x5x4qyob-1
lisp/ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-1432
lisp/desktop.el desktop.el-20091113204419-o5vbwnq5f7feedwu-591
lisp/emacs-lisp/package.el package.el-20100617020707-ybavz666awsxwin6-2
lisp/international/mule-cmds.el
mulecmds.el-20091113204419-o5vbwnq5f7feedwu-1043
lisp/menu-bar.el menubar.el-20091113204419-o5vbwnq5f7feedwu-546
lisp/net/tramp.el tramp.el-20091113204419-o5vbwnq5f7feedwu-2427
lisp/startup.el startup.el-20091113204419-o5vbwnq5f7feedwu-260
lisp/vc/vc-hg.el vchg.el-20091113204419-o5vbwnq5f7feedwu-5062
lisp/window.el window.el-20091113204419-o5vbwnq5f7feedwu-94
nt/INSTALL install.msys-20130416132004-cxmtwcclsy15p2r8-1
src/ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-1438
src/callproc.c callproc.c-20091113204419-o5vbwnq5f7feedwu-248
src/dispextern.h
dispextern.h-20091113204419-o5vbwnq5f7feedwu-218
src/dispnew.c dispnew.c-20091113204419-o5vbwnq5f7feedwu-258
src/sysdep.c sysdep.c-20091113204419-o5vbwnq5f7feedwu-448
src/term.c term.c-20091113204419-o5vbwnq5f7feedwu-220
=== modified file 'ChangeLog'
--- a/ChangeLog 2014-06-05 17:31:41 +0000
+++ b/ChangeLog 2014-06-08 00:35:27 +0000
@@ -1,3 +1,12 @@
+2014-06-08 Paul Eggert <address@hidden>
+
+ Port better to AIX (Bug#17598).
+ * configure.ac (with_xpm_set): New shell var.
+ (_THREAD_SAFE): Define on AIX if HAVE_PTHREAD.
+ (with_xpm): Default to 'no' on AIX.
+ (LIBXPM): Append -lXpm if -lXaw is also used, as the latter
+ requires the former on AIX.
+
2014-06-05 Paul Eggert <address@hidden>
Try harder to find GNU Make when configuring.
=== modified file 'admin/FOR-RELEASE'
--- a/admin/FOR-RELEASE 2014-05-28 17:53:11 +0000
+++ b/admin/FOR-RELEASE 2014-06-06 06:49:17 +0000
@@ -11,6 +11,10 @@
find doc -name '*.texi' -exec grep 'address@hidden,]*[:.()]' {} +
Sadly makeinfo does not warn about such characters.
+Check for major new features added since the last release (e.g. new
+lisp files), and add the relevant authors to the Acknowledgments in
+doc/emacs/ack.texi and emacs.texi.
+
Check cross-references between the manuals (eg from emacs to elisp)
are correct. You can use something like the following in the info
directory in the Emacs build tree:
=== modified file 'configure.ac'
--- a/configure.ac 2014-06-05 08:03:22 +0000
+++ b/configure.ac 2014-06-08 00:35:27 +0000
@@ -287,6 +287,7 @@
dnl _ON results in a '--without' option in the --help output, so
dnl the help text should refer to "don't compile", etc.
+with_xpm_set=${with_xpm+set}
OPTION_DEFAULT_ON([xpm],[don't compile with XPM image support])
OPTION_DEFAULT_ON([jpeg],[don't compile with JPEG image support])
OPTION_DEFAULT_ON([tiff],[don't compile with TIFF image support])
@@ -2089,7 +2090,14 @@
OLD_LIBS=$LIBS
AC_SEARCH_LIBS([$emacs_pthread_function], [pthread],
[AC_DEFINE([HAVE_PTHREAD], [1],
- [Define to 1 if you have pthread (-lpthread).])])
+ [Define to 1 if you have pthread (-lpthread).])
+ # Some systems optimize for single-threaded programs by default, and
+ # need special flags to disable these optimizations. For example, the
+ # definition of 'errno' in <errno.h>.
+ if test "$opsys" = aix4-2; then
+ AC_DEFINE([_THREAD_SAFE], [1],
+ [Define to 1 if your system requires this in multithreaded code.])
+ fi])
if test "X$LIBS" != "X$OLD_LIBS"; then
eval LIB_PTHREAD=\$ac_cv_search_$emacs_pthread_function
fi
@@ -2989,6 +2997,9 @@
fi
if test "${HAVE_X11}" = "yes"; then
+ dnl Avoid Xpm on AIX unless requested, as it crashes; see Bug#17598.
+ test "$opsys$with_xpm_set" = aix4-2 && with_xpm=no
+
if test "${with_xpm}" != "no"; then
AC_CHECK_HEADER(X11/xpm.h,
[AC_CHECK_LIB(Xpm, XpmReadFileToPixmap, HAVE_XPM=yes, , -lX11)])
@@ -3012,6 +3023,9 @@
if test "${HAVE_XPM}" = "yes"; then
AC_DEFINE(HAVE_XPM, 1, [Define to 1 if you have the Xpm library (-lXpm).])
LIBXPM=-lXpm
+ elif test "$opsys,$LUCID_LIBW" = aix4-2,-lXaw; then
+ dnl AIX -lXaw needs -lXpm linked too; see Bug#17598 Message#152.
+ LIBXPM=-lXpm
fi
fi
=== modified file 'doc/emacs/ChangeLog'
--- a/doc/emacs/ChangeLog 2014-06-02 01:08:13 +0000
+++ b/doc/emacs/ChangeLog 2014-06-08 00:35:27 +0000
@@ -1,3 +1,16 @@
+2014-06-08 Glenn Morris <address@hidden>
+
+ * ack.texi (Acknowledgments):
+ * emacs.texi (Acknowledgments): Updates.
+
+ * programs.texi (Prettifying Symbols): Remove node.
+ (Misc for Programs): Mention more briefly here.
+ * emacs.texi (Top): Update menu.
+
+ * package.texi (Package Menu, Package Installation):
+ Mention signed packages.
+ (Package Installation): Mention package-pinned-packages.
+
2014-06-02 Glenn Morris <address@hidden>
* ack.texi (Acknowledgments): Remove some obsolete items.
=== modified file 'doc/emacs/ack.texi'
--- a/doc/emacs/ack.texi 2014-06-02 01:02:21 +0000
+++ b/doc/emacs/ack.texi 2014-06-08 00:35:27 +0000
@@ -15,7 +15,7 @@
This list is intended to mention every contributor of a major package or
feature we currently distribute; if you know of someone we have omitted,
-please report that as a manual bug. More comprehensive information is
+please make a bug report. More comprehensive information is
available in the @file{ChangeLog} files, summarized in the file
@file{etc/AUTHORS} in the distribution.
@@ -51,12 +51,12 @@
@item
Michael Albinus wrote @file{dbus.el}, a package that implements the
D-Bus message bus protocol; @file{zeroconf.el}, a mode for browsing
-Avahi services;
-and @file{secrets.el}, an interface to keyring daemons for
-storing confidential data. He and Kai Großjohann wrote the Tramp package,
which
-provides transparent remote file editing using rcp, ssh, ftp, and
-other network protocols. He and Daniel Pittman wrote
address@hidden
+Avahi services; @file{secrets.el}, an interface to keyring daemons for
+storing confidential data; and @file{filenotify.el} and the associated
+low-level interface routines, for watching file status changes.
+He and Kai Großjohann wrote the Tramp package, which provides
+transparent remote file editing using ssh, ftp, and other network
+protocols. He and Daniel Pittman wrote @file{tramp-cache.el}.
@item
Ralf Angeli wrote @file{scroll-lock.el}, a minor mode which keeps the
@@ -88,7 +88,8 @@
@item
Juanma Barranquero wrote @file{emacs-lock.el} (based on the original
version by Tom Wurgler), which makes it harder to exit with valuable
-buffers unsaved. He also made many other contributions to other
+buffers unsaved; and @file{frameset.el}, for saving and restoring the
+frame/window setup. He also made many other contributions to other
areas, including MS Windows support.
@item
@@ -203,7 +204,9 @@
@item
Andrew Choi and Yamamoto Mitsuharu wrote the Carbon support, used
-prior to Emacs 23 for Mac OS.
+prior to Emacs 23 for Mac OS. Yamamoto Mitsuharu continued to
+contribute to Mac OS support in the newer Nextstep port; and also
+improved support for multi-monitor displays.
@item
Chong Yidong was the Emacs co-maintainer from Emacs 23 to 24.3. He made many
@@ -350,6 +353,10 @@
together.
@item
+Romain Francoise contributed ACL (Access Control List) support,
+for preserving extended file attributes on backup and copy.
+
address@hidden
Noah Friedman wrote @file{rlogin.el}, an interface to Rlogin,
@file{type-break.el}, which reminds you to take periodic breaks from
typing, and @code{eldoc-mode}, a mode to show the defined parameters or
@@ -510,13 +517,14 @@
@file{time-date.el} for general date and time handling.
He also wrote @file{network-stream.el}, for opening network processes;
@file{url-queue.el}, for controlling parallel downloads of URLs;
-and implemented libxml2 support.
+and implemented libxml2 support. He also wrote @file{eww.el},
+an Emacs Lisp web browser; and implemented native zlib decompression.
Components of Gnus have also been written by: Nagy Andras, David
Blacka, Scott Byer, Ludovic Courtès, Julien Danjou, Kevin Greiner, Kai
Großjohann, Joe Hildebrand, Paul Jarc, Simon Josefsson, Sascha
Lüdecke, David Moore, Jim Radford, Benjamin Rutt, Raymond Scholz,
-Thomas Steffen, Reiner Steib, Didier Verna, Ilja Weis, Katsumi
-Yamaoka, Teodor Zlatanov, and others (@pxref{Contributors,,,gnus, the
+Thomas Steffen, Reiner Steib, Jan Tatarik, Didier Verna, Ilja Weis,
+Katsumi Yamaoka, Teodor Zlatanov, and others (@pxref{Contributors,,,gnus, the
Gnus Manual}).
@item
@@ -696,6 +704,10 @@
creates a virtual Info manual of package keywords.
@item
+Leo Liu wrote @file{pcmpl-x.el}, providing completion for
+miscellaneous external tools; and revamped support for Octave in Emacs 24.4.
+
address@hidden
Károly Lőrentey wrote the ``multi-terminal'' code, which allows
Emacs to run on graphical and text terminals simultaneously.
@@ -840,8 +852,8 @@
indentation engine; and @file{pcase.el}, implementing ML-style pattern
matching. In Emacs 24, he integrated the lexical binding code,
cleaned up the CL namespace (making it acceptable to use CL
-functions at runtime), and added generalized variables to core Emacs
-Lisp.
+functions at runtime), added generalized variables to core Emacs
+Lisp, and implemented a new lightweight advice mechanism.
@item
Morioka Tomohiko wrote several packages for MIME support in Gnus and
@@ -1042,7 +1054,8 @@
DSSSL code.
@item
-Martin Rudalics implemented improved display-buffer handling in Emacs 24.
+Martin Rudalics implemented improved display-buffer handling in Emacs 24;
+and implemented ``pixel-wise'' resizing of windows and frames.
@item
Ivar Rummelhoff wrote @file{winner.el}, which records recent window
@@ -1390,7 +1403,8 @@
Eli Zaretskii made many standard Emacs features work on MS-DOS and
Microsoft Windows. He also wrote @file{tty-colors.el}, which
implements transparent mapping of X colors to tty colors; and
address@hidden He implemented support for bidirectional text.
address@hidden He implemented support for bidirectional text,
+and also menus on text-mode terminals.
@item
Jamie Zawinski wrote much of the support for faces and X selections.
=== modified file 'doc/emacs/emacs.texi'
--- a/doc/emacs/emacs.texi 2014-06-02 01:02:21 +0000
+++ b/doc/emacs/emacs.texi 2014-06-08 00:35:27 +0000
@@ -669,7 +669,6 @@
* Symbol Completion:: Completion on symbol names of your program or language.
* MixedCase Words:: Dealing with identifiersLikeThis.
* Semantic:: Suite of editing tools based on source code parsing.
-* Prettifying Symbols:: Display symbols as composed characters.
* Misc for Programs:: Other Emacs features useful for editing programs.
* C Modes:: Special commands of C, C++, Objective-C,
Java, IDL, Pike and AWK modes.
@@ -1366,12 +1365,14 @@
@node Acknowledgments
@unnumberedsec Acknowledgments
address@hidden It's hard to update this fairly.
address@hidden I wonder if it would be better to drop it in favor of AUTHORS?
Contributors to GNU Emacs include Jari Aalto, Per Abrahamsen, Tomas
Abrahamsson, Jay K. Adams, Alon Albert, Michael Albinus, Nagy
Andras, Benjamin Andresen, Ralf Angeli, Dmitry Antipov, Joe Arceneaux, Emil
Åström,
Miles Bader, David Bakhash, Juanma Barranquero, Eli Barzilay, Thomas
Baumann, Steven L. Baur, Jay Belanger, Alexander L. Belikoff,
-Thomas Bellman, Scott Bender, Boaz Ben-Zvi, Sergey Berezin, Karl
+Thomas Bellman, Scott Bender, Boaz Ben-Zvi, Sergey Berezin, Stephen Berman,
Karl
Berry, Anna M. Bigatti, Ray Blaak, Martin Blais, Jim Blandy, Johan
Bockgård, Jan Böcker, Joel Boehland, Lennart Borgman, Per Bothner,
Terrence Brannon, Frank Bresz, Peter Breton, Emmanuel Briot, Kevin
@@ -1391,13 +1392,13 @@
Engster, Hans Henrik Eriksen, Michael Ernst, Ata Etemadi, Frederick
Farnbach, Oscar Figueiredo, Fred Fish, Steve Fisk, Karl Fogel, Gary
Foster, Eric S. Fraga, Romain Francoise, Noah Friedman, Andreas
-Fuchs, Shigeru Fukaya, Hallvard Furuseth, Keith Gabryelski, Peter S.
+Fuchs, Shigeru Fukaya, Xue Fuqiao, Hallvard Furuseth, Keith Gabryelski, Peter
S.
Galbraith, Kevin Gallagher, Fabián E. Gallina, Kevin Gallo, Juan León Lahoz
García,
Howard Gayle, Daniel German, Stephen Gildea, Julien Gilles, David
Gillespie, Bob Glickstein, Deepak Goel, David De La Harpe Golden, Boris
Goldowsky, David Goodger, Chris Gray, Kevin Greiner, Michelangelo Grigni, Odd
Gripenstam, Kai Großjohann, Michael Gschwind, Bastien Guerry, Henry
-Guillaume, Doug Gwyn, Bruno Haible, Ken'ichi Handa, Lars Hansen, Chris
+Guillaume, Dmitry Gutov, Doug Gwyn, Bruno Haible, Ken'ichi Handa, Lars Hansen,
Chris
Hanson, Jesper Harder, Alexandru Harsanyi, K. Shane Hartman, John
Heidemann, Jon K. Hellan, Magnus Henoch, Markus Heritsch, Dirk
Herrmann, Karl Heuer, Manabu Higashida, Konrad Hinsen, Anders Holst,
@@ -1415,14 +1416,14 @@
Landstrom, Mario Lang, Aaron Larson, James R. Larus, Vinicius Jose
Latorre, Werner Lemberg, Frederic Lepied, Peter Liljenberg, Christian
Limpach, Lars Lindberg, Chris Lindblad, Anders Lindgren, Thomas Link,
-Juri Linkov, Francis Litterio, Sergey Litvinov, Emilio C. Lopes,
+Juri Linkov, Francis Litterio, Sergey Litvinov, Leo Liu, Emilio C. Lopes,
Martin Lorentzon, Dave Love, Eric Ludlam, Károly Lőrentey, Sascha
Lüdecke, Greg McGary, Roland McGrath, Michael McNamara, Alan Mackenzie,
Christopher J. Madsen, Neil M. Mager, Ken Manheimer, Bill Mann,
Brian Marick, Simon Marshall, Bengt Martensson, Charlie Martin,
Yukihiro Matsumoto, Tomohiro Matsuyama, David Maus, Thomas May, Will
Mengarini, David
Megginson, Stefan Merten, Ben A. Mesander, Wayne Mesard, Brad
-Miller, Lawrence Mitchell, Richard Mlynarik, Gerd Möllmann, Stefan
+Miller, Lawrence Mitchell, Richard Mlynarik, Gerd Möllmann, Dani Moncayo,
Stefan
Monnier, Keith Moore, Jan Moringen, Morioka Tomohiko, Glenn Morris,
Don Morrison, Diane Murray, Riccardo Murri, Sen Nagata, Erik Naggum,
Gergely Nagy, Nobuyoshi Nakada, Thomas Neumann, Mike Newton, Thien-Thi Nguyen,
@@ -1453,7 +1454,7 @@
Reiner Steib, Sam Steingold, Ake Stenhoff, Peter Stephenson, Ken
Stevens, Andy Stewart, Jonathan Stigelman, Martin Stjernholm, Kim F.
Storm, Steve Strassmann, Christopher Suckling, Olaf Sylvester, Naoto
-Takahashi, Steven Tamm, Luc Teirlinck, Jean-Philippe Theberge, Jens
+Takahashi, Steven Tamm, Jan Tatarik, Luc Teirlinck, Jean-Philippe Theberge,
Jens
T. Berger Thielemann, Spencer Thomas, Jim Thompson, Toru Tomabechi,
David O'Toole, Markus Triska, Tom Tromey, Enami Tsugutomo, Eli
Tziperman, Daiki Ueno, Masanobu Umeda, Rajesh Vaidheeswarran, Neil
=== modified file 'doc/emacs/package.texi'
--- a/doc/emacs/package.texi 2014-02-12 01:20:34 +0000
+++ b/doc/emacs/package.texi 2014-06-05 08:14:36 +0000
@@ -59,8 +59,9 @@
@item
The package's status---normally one of @samp{available} (can be
-downloaded from the package archive), @samp{installed}, or
address@hidden (included in Emacs by default).
+downloaded from the package archive), @samp{installed},
address@hidden (installed, but not signed; @pxref{Package Signing}),
+or @samp{built-in} (included in Emacs by default).
The status can also be @samp{new}. This is equivalent to
@samp{available}, except that it means the package became newly
@@ -167,6 +168,48 @@
wish to use third party package archives---but do so at your own risk,
and use only third parties that you think you can trust!
address@hidden Signing}
address@hidden package security
address@hidden package signing
+ The maintainers of package archives can increase the trust that you
+can have in their packages by @dfn{signing} them. They generate a
+private/public pair of cryptographic keys, and use the private key to
+create a @dfn{signature file} for each package. With the public key, you
+can use the signature files to verify who created the package, and
+that it has not been modified. A valid signature is not a cast-iron
+guarantee that a package is not malicious, so you should still
+exercise caution. Package archives should provide instructions
+on how you can obtain their public key. One way is to download the
+key from a server such as @url{http://pgp.mit.edu/}.
+Use @kbd{M-x package-import-keyring} to import the key into Emacs.
+Emacs stores package keys in the @file{gnupg} subdirectory
+of @code{package-user-dir}.
address@hidden Uncomment this if it becomes true.
address@hidden
+The public key for the GNU package archive is distributed with Emacs,
+in the @file{etc/package-keyring.gpg}. Emacs uses it automatically.
address@hidden ignore
+
address@hidden package-check-signature
address@hidden package-unsigned-archives
+ If the user option @code{package-check-signature} is address@hidden,
+Emacs attempts to verify signatures when you install packages. If the
+option has the value @code{allow-unsigned}, you can still install a
+package that is not signed. If you use some archives that do not sign
+their packages, you can add them to the list @code{package-unsigned-archives}.
+
+ For more information on cryptographic keys and signing,
address@hidden,, Top, gnupg, The GNU Privacy Guard Manual}.
+Emacs comes with an interface to GNU Privacy Guard,
address@hidden,, EasyPG, epa, Emacs EasyPG Assistant Manual}.
+
address@hidden package-pinned-packages
+ If you have more than one package archive enabled, and some of them
+offer different versions of the same package, you may find the option
address@hidden useful. You can add package/archive
+pairs to this list, to ensure that the specified package is only ever
+downloaded from the specified archive.
+
Once a package is downloaded and installed, it is @dfn{loaded} into
the current Emacs session. Loading a package is not quite the same as
loading a Lisp library (@pxref{Lisp Libraries}); its effect varies
=== modified file 'doc/emacs/programs.texi'
--- a/doc/emacs/programs.texi 2014-04-29 14:45:24 +0000
+++ b/doc/emacs/programs.texi 2014-06-07 23:39:40 +0000
@@ -38,7 +38,6 @@
* Symbol Completion:: Completion on symbol names of your program or language.
* MixedCase Words:: Dealing with identifiersLikeThis.
* Semantic:: Suite of editing tools based on source code parsing.
-* Prettifying Symbols:: Display symbols as composed characters.
* Misc for Programs:: Other Emacs features useful for editing programs.
* C Modes:: Special commands of C, C++, Objective-C, Java,
IDL, Pike and AWK modes.
@@ -1434,37 +1433,6 @@
@xref{Top, Semantic,, semantic, Semantic}, for details.
@end ifnottex
address@hidden Prettifying Symbols
address@hidden Prettifying Symbols
address@hidden prettifying symbols
address@hidden symbol, prettifying
-
address@hidden and @code{global-prettify-symbols-mode}
-are two minor modes (@pxref{Minor Modes}) that can display specified
-symbols as composed characters. For instance, in Emacs Lisp mode
-(@pxref{Lisp Eval}), this mode will replace the string ``lambda'' with
-the Greek lambda character.
-
address@hidden prettify-symbols-mode
address@hidden prettify-symbols-alist
-When Prettify Symbols mode and Font Lock mode (@pxref{Font Lock}) are
-enabled, symbols are prettified (displayed as composed characters)
-according to the rules in @code{prettify-symbols-alist}, which are
-locally defined by major modes (@pxref{Major Modes}) supporting
-prettifying. To add further customizations for a given major mode,
-you can modify @code{prettify-symbols-alist}. For example:
-
address@hidden
-(add-hook 'emacs-lisp-mode-hook
- (lambda ()
- (push '("<=" . ?≤) prettify-symbols-alist)))
address@hidden example
-
address@hidden global-prettify-symbols-mode
-You can enable this mode locally in desired buffers, or use
address@hidden to enable it for all modes that
-support it.
-
@node Misc for Programs
@section Other Features Useful for Editing Programs
@@ -1512,6 +1480,17 @@
@xref{Top,,Autotyping, autotype, Autotyping}.
@end ifinfo
address@hidden prettify-symbols-mode
+ Prettify Symbols mode is a buffer-local minor mode that replaces
+certain strings with more ``attractive'' versions for display
+purposes. For example, in Emacs Lisp mode, it replaces the string
+``lambda'' with the Greek lambda character. You may wish to use this
+in non-programming modes as well. You can customize the mode by
+adding more entries to @code{prettify-symbols-alist}. There is also a
+global version, @code{global-prettify-symbols-mode}, which enables the
+mode in all buffers that support it.
+
+
@node C Modes
@section C and Related Modes
@cindex C mode
=== modified file 'doc/lispref/ChangeLog'
--- a/doc/lispref/ChangeLog 2014-06-07 14:29:48 +0000
+++ b/doc/lispref/ChangeLog 2014-06-08 00:35:27 +0000
@@ -1,3 +1,15 @@
+2014-06-08 Glenn Morris <address@hidden>
+
+ * display.texi (Window Systems): Remove window-setup-hook.
+ * os.texi (Startup Summary, Init File):
+ Improve description of window-setup-hook.
+ (Terminal-Specific): Update window-setup-hook cross-reference.
+ * hooks.texi (Standard Hooks): Update window-setup-hook cross-reference.
+
+ * display.texi (Overlay Properties): Update re priority. (Bug#17234)
+
+ * package.texi (Package Archives): Mention signing packages.
+
2014-06-07 Eli Zaretskii <address@hidden>
* commands.texi (Click Events): Update contents of click event's
=== modified file 'doc/lispref/display.texi'
--- a/doc/lispref/display.texi 2014-05-17 08:58:17 +0000
+++ b/doc/lispref/display.texi 2014-06-06 07:19:23 +0000
@@ -1515,9 +1515,9 @@
@table @code
@item priority
@kindex priority @r{(overlay property)}
-This property's value determines the priority of the overlay. No priority, or
address@hidden, means zero. A non-nil and non-integer value has
-undefined behavior.
+This property's value determines the priority of the overlay.
+If you want to specify a priority value, use either @code{nil}
+(or zero), or a positive integer. Any other value has undefined behavior.
The priority matters when two or more overlays cover the same
character and both specify the same property; the one whose
@@ -1527,9 +1527,13 @@
override the face attributes of the lower priority @code{face}
property.
-Currently, all overlays take priority over text properties. Please
-avoid using negative priority values, as we have not yet decided just
-what they should mean.
+Currently, all overlays take priority over text properties.
+
+Note that Emacs sometimes uses non-numeric priority values for some of
+its internal overlays, so do not try to do arithmetic on the
+priority of an overlay (unless it is one that you created). If you
+need to put overlays in priority order, use the @var{sorted} argument
+of @code{overlays-at}. @xref{Finding Overlays}.
@item window
@kindex window @r{(overlay property)}
@@ -6515,18 +6519,6 @@
@code{display-graphic-p} or any of the other @code{display-*-p}
predicates described in @ref{Display Feature Testing}.
address@hidden window-setup-hook
-This variable is a normal hook which Emacs runs after handling the
-initialization files. Emacs runs this hook after it has completed
-loading your init file, the default initialization file (if
-any), and the terminal-specific Lisp code, and running the hook
address@hidden
-
-This hook is used for internal purposes: setting up communication with
-the window system, and creating the initial window. Users should not
-interfere with it.
address@hidden defvar
-
@node Bidirectional Display
@section Bidirectional Display
@cindex bidirectional display
=== modified file 'doc/lispref/hooks.texi'
--- a/doc/lispref/hooks.texi 2014-05-27 01:53:45 +0000
+++ b/doc/lispref/hooks.texi 2014-06-06 07:19:23 +0000
@@ -55,6 +55,7 @@
@item after-init-hook
@itemx before-init-hook
@itemx emacs-startup-hook
address@hidden window-setup-hook
@xref{Init File}.
@item after-insert-file-functions
@@ -220,9 +221,6 @@
@itemx window-size-change-functions
@xref{Window Hooks}.
address@hidden window-setup-hook
address@hidden Systems}.
-
@item window-text-change-functions
@vindex window-text-change-functions
Functions to call in redisplay when text in the window might change.
=== modified file 'doc/lispref/os.texi'
--- a/doc/lispref/os.texi 2014-04-07 20:54:16 +0000
+++ b/doc/lispref/os.texi 2014-06-08 00:35:27 +0000
@@ -218,7 +218,9 @@
specify.
@item
-It runs @code{window-setup-hook}. @xref{Window Systems}.
+It runs @code{window-setup-hook}. The only difference between this
+hook and @code{emacs-startup-hook} is that this one runs after the
+previously mentioned modifications to the frame parameters.
@item
@cindex startup screen
@@ -411,6 +413,12 @@
arguments. In batch mode, Emacs does not run this hook.
@end defvar
address@hidden window-setup-hook
+This normal hook is very similar to @code{emacs-startup-hook}.
+The only difference is that it runs slightly later, after setting
+of the frame parameters. @xref{Startup Summary, window-setup-hook}.
address@hidden defvar
+
@defvar user-init-file
This variable holds the absolute file name of the user's init file. If the
actual init file loaded is a compiled file, such as @file{.emacs.elc},
@@ -497,7 +505,7 @@
terminal-specific Lisp file, so you can use it to adjust the
definitions made by that file.
-For a related feature, @pxref{Window Systems, window-setup-hook}.
+For a related feature, @pxref{Init File, window-setup-hook}.
@end defvar
@node Command-Line Arguments
=== modified file 'doc/lispref/package.texi'
--- a/doc/lispref/package.texi 2014-02-12 01:43:35 +0000
+++ b/doc/lispref/package.texi 2014-06-05 08:14:36 +0000
@@ -342,3 +342,38 @@
@noindent
After you create an archive, remember that it is not accessible in the
Package Menu interface unless it is in @code{package-archives}.
+
address@hidden package archive security
address@hidden package signing
+Maintaining a public package archive entails a degree of responsibility.
+When Emacs users install packages from your archive, those packages
+can cause Emacs to run arbitrary code with the permissions of the
+installing user. (This is true for Emacs code in general, not just
+for packages.) So you should ensure that your archive is
+well-maintained and keep the hosting system secure.
+
+ One way to increase the security of your packages is to @dfn{sign}
+them using a cryptographic key. If you have generated a
+private/public gpg key pair, you can use gpg to sign the package like
+this:
+
address@hidden FIXME EasyPG / package-x way to do this.
address@hidden
+gpg -ba -o @var{file}.sig @var{file}
address@hidden example
+
address@hidden
+For a single-file package, @var{file} is the package Lisp file;
+for a multi-file package, it is the package tar file.
+You can also sign the archive's contents file in the same way.
+Make the @file{.sig} files available in the same location as the packages.
+You should also make your public key available for people to download;
+e.g., by uploading it to a key server such as @url{http://pgp.mit.edu/}.
+When people install packages from your archive, they can use
+your public key to verify the signatures.
+
+A full explanation of these matters is outside the scope of this
+manual. For more information on cryptographic keys and signing,
address@hidden,, GnuPG, gnupg, The GNU Privacy Guard Manual}. Emacs comes
+with an interface to GNU Privacy Guard, @pxref{Top,, EasyPG, epa,
+Emacs EasyPG Assistant Manual}.
=== modified file 'etc/ChangeLog'
--- a/etc/ChangeLog 2014-05-28 12:54:58 +0000
+++ b/etc/ChangeLog 2014-06-08 00:35:27 +0000
@@ -1,3 +1,9 @@
+2014-06-08 Juri Linkov <address@hidden>
+
+ * themes/deeper-blue-theme.el (diff-added, diff-changed, diff-removed):
+ Set face definitions explicitly. Inherit indicator faces from them.
+ (Bug#17695)
+
2014-05-28 Reuben Thomas <address@hidden>
* TODO: add a note that undo-tree could be used to save undo
=== modified file 'etc/NEWS'
--- a/etc/NEWS 2014-06-07 14:29:48 +0000
+++ b/etc/NEWS 2014-06-08 00:35:27 +0000
@@ -962,6 +962,24 @@
** Package
+++
+*** The package library now supports digital signing of packages.
+Maintainers of package archives should consider signing their packages
+to enhance security.
+
++++
+**** If the user option `package-check-signature' is non-nil,
+Emacs tries to check package signatures at install time.
+The value `allow-unsigned' allows installation of unsigned packages.
+
++++
+**** The user option `package-unsigned-archives' lists archives where
+Emacs will not try to check signatures.
+
++++
+*** New option `package-pinned-packages'. This is useful if you have multiple
+archives enabled, with more than one offering a package that you want.
+
++++
*** In the `list-packages' buffer, you can use `f' (`package-menu-filter')
to filter the list of packages by a keyword.
@@ -1276,6 +1294,12 @@
* Incompatible Lisp Changes in Emacs 24.4
++++
+** Do not assume that the priority of all overlays will be numeric.
+(You should still only specify integer priorities on overlays you create.)
+If you need to sort arbitrary overlays into priority order, `overlays-at'
+can now optionally do this.
+
---
** `kill-region' has lost its `yank-handler' optional argument.
@@ -1375,8 +1399,6 @@
* Lisp Changes in Emacs 24.4
-** overlays-at can optionally sort its result by priority.
-
+++
** The second argument of `eval' can now specify a lexical environment.
=== modified file 'etc/TODO'
--- a/etc/TODO 2014-05-28 12:54:58 +0000
+++ b/etc/TODO 2014-06-08 00:35:27 +0000
@@ -659,7 +659,7 @@
[As of trunk r109635, 2012-08-15, the event loop no longer polls.]
**** (mouse-avoidance-mode 'banish) then minimize Emacs, will pop window back
-up on top of all others
+up on top of all others (probably fixed in bug#17439)
**** free_frame_resources, face colors
=== modified file 'etc/themes/deeper-blue-theme.el'
--- a/etc/themes/deeper-blue-theme.el 2014-01-01 07:43:34 +0000
+++ b/etc/themes/deeper-blue-theme.el 2014-06-05 23:31:46 +0000
@@ -40,19 +40,19 @@
`(cperl-hash-face ((,class (:foreground "coral1"))))
`(cursor ((,class (:background "green"))))
`(default ((,class (:background "#181a26" :foreground "gray80"))))
- `(diff-added ((,class (nil))))
- `(diff-changed ((,class (nil))))
+ `(diff-added ((,class (:foreground "white" :background "darkolivegreen"))))
+ `(diff-changed ((,class (:foreground "white" :background "dodgerblue4"))))
`(diff-context ((,class (:foreground "seashell4"))))
`(diff-file-header ((,class (:background "grey60"))))
`(diff-function ((,class (:inherit diff-header))))
`(diff-header ((,class (:background "grey45"))))
`(diff-hunk-header ((,class (:inherit diff-header))))
`(diff-index ((,class (:inherit diff-file-header))))
- `(diff-indicator-added ((,class (:foreground "white" :background
"darkolivegreen"))))
- `(diff-indicator-changed ((,class (:foreground "white" :background
"dodgerblue4"))))
- `(diff-indicator-removed ((,class (:foreground "white" :background
"indianred4"))))
+ `(diff-indicator-added ((,class (:inherit diff-added))))
+ `(diff-indicator-changed ((,class (:inherit diff-changed))))
+ `(diff-indicator-removed ((,class (:inherit diff-removed))))
`(diff-refine-change ((,class (:background "skyblue4"))))
- `(diff-removed ((,class (nil))))
+ `(diff-removed ((,class (:foreground "white" :background "indianred4"))))
`(dired-marked ((,class (:background "dodgerblue3" :foreground "white"))))
`(ediff-current-diff-A ((,class (:background "green4" :foreground
"white"))))
`(ediff-current-diff-B ((,class (:background "darkorange3" :foreground
"white"))))
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog 2014-06-06 16:38:44 +0000
+++ b/lisp/ChangeLog 2014-06-08 00:35:27 +0000
@@ -1,3 +1,53 @@
+2014-06-08 Juri Linkov <address@hidden>
+
+ * desktop.el: Activate auto-saving on window configuration changes.
+ (desktop-save-mode, desktop-auto-save-timeout): Add/remove
+ `desktop-auto-save-set-timer' to/from
+ `window-configuration-change-hook'.
+ (desktop-auto-save-set-timer): Change REPEAT arg of
+ `run-with-idle-timer' from t to nil.
+ http://lists.gnu.org/archive/html/emacs-devel/2014-06/msg00147.html
+
+2014-06-08 Santiago Payà i Miralta <address@hidden>
+
+ * vc/vc-hg.el (vc-hg-working-revision): Use "hg parent" and
+ vc-hg-command (bug#17570).
+
+2014-06-08 Stefan Monnier <address@hidden>
+
+ * international/mule-cmds.el (ucs-names): Add special entry for BEL
+ (bug#17702).
+
+2014-06-08 Glenn Morris <address@hidden>
+
+ * startup.el (window-setup-hook): Doc fix.
+
+ * emacs-lisp/package.el (package-check-signature)
+ (package-unsigned-archives): Doc fixes.
+
+2014-06-08 Martin Rudalics <address@hidden>
+
+ * window.el (display-buffer-use-some-window): Don't make window
+ used smaller than it was before (Bug#17671).
+
+2014-06-08 Eli Zaretskii <address@hidden>
+
+ * menu-bar.el (menu-bar-open): Fix last change: use the PC
+ 'redisplay' instead of '(sit-for 0)'.
+
+2014-06-08 Michael Albinus <address@hidden>
+
+ * net/tramp.el (tramp-ssh-controlmaster-options):
+ Improve search regexp. (Bug#17653)
+
+2014-06-08 Glenn Morris <address@hidden>
+
+ * emacs-lisp/package.el (package-pinned-packages): Doc fix.
+
+2014-06-08 Eli Zaretskii <address@hidden>
+
+ * menu-bar.el (menu-bar-open): Fix invocation via M-x.
+
2014-06-06 Santiago Payà i Miralta <address@hidden>
* vc/vc-hg.el (vc-hg-create-tag, vc-hg-retrieve-tag): New functions
=== modified file 'lisp/desktop.el'
--- a/lisp/desktop.el 2014-04-27 08:22:11 +0000
+++ b/lisp/desktop.el 2014-06-06 23:38:40 +0000
@@ -174,7 +174,10 @@
:global t
:group 'desktop
(if desktop-save-mode
- (desktop-auto-save-set-timer)
+ (when (and (integerp desktop-auto-save-timeout)
+ (> desktop-auto-save-timeout 0))
+ (add-hook 'window-configuration-change-hook
'desktop-auto-save-set-timer))
+ (remove-hook 'window-configuration-change-hook
'desktop-auto-save-set-timer)
(desktop-auto-save-cancel-timer)))
(defun desktop-save-mode-off ()
@@ -207,13 +210,18 @@
(defcustom desktop-auto-save-timeout auto-save-timeout
"Number of seconds idle time before auto-save of the desktop.
+The idle timer activates auto-saving only when window configuration changes.
This applies to an existing desktop file when `desktop-save-mode' is enabled.
Zero or nil means disable auto-saving due to idleness."
:type '(choice (const :tag "Off" nil)
(integer :tag "Seconds"))
:set (lambda (symbol value)
(set-default symbol value)
- (ignore-errors (desktop-auto-save-set-timer)))
+ (ignore-errors
+ (if (and (integerp value) (> value 0))
+ (add-hook 'window-configuration-change-hook
'desktop-auto-save-set-timer)
+ (remove-hook 'window-configuration-change-hook
'desktop-auto-save-set-timer)
+ (desktop-auto-save-cancel-timer))))
:group 'desktop
:version "24.4")
@@ -1244,7 +1252,7 @@
(when (and (integerp desktop-auto-save-timeout)
(> desktop-auto-save-timeout 0))
(setq desktop-auto-save-timer
- (run-with-idle-timer desktop-auto-save-timeout t
+ (run-with-idle-timer desktop-auto-save-timeout nil
'desktop-auto-save))))
(defun desktop-auto-save-cancel-timer ()
=== modified file 'lisp/emacs-lisp/package.el'
--- a/lisp/emacs-lisp/package.el 2014-06-02 00:18:22 +0000
+++ b/lisp/emacs-lisp/package.el 2014-06-08 00:35:27 +0000
@@ -113,8 +113,6 @@
;;; ToDo:
-;; - a trust mechanism, since compiling a package can run arbitrary code.
-;; For example, download package signatures and check that they match.
;; - putting info dirs at the start of the info path means
;; users see a weird ordering of categories. OTOH we want to
;; override later entries. maybe emacs needs to enforce
@@ -229,18 +227,25 @@
:version "24.1")
(defcustom package-pinned-packages nil
- "An alist of packages that are pinned to a specific archive
-
-Each element has the form (SYM . ID).
- SYM is a package, as a symbol.
- ID is an archive name. This should correspond to an
- entry in `package-archives'.
-
-If the archive of name ID does not contain the package SYM, no
-other location will be considered, which will make the
-package unavailable."
+ "An alist of packages that are pinned to specific archives.
+This can be useful if you have multiple package archives enabled,
+and want to control which archive a given package gets installed from.
+
+Each element of the alist has the form (PACKAGE . ARCHIVE), where:
+ PACKAGE is a symbol representing a package
+ ARCHIVE is a string representing an archive (it should be the car of
+an element in `package-archives', e.g. \"gnu\").
+
+Adding an entry to this variable means that only ARCHIVE will be
+considered as a source for PACKAGE. If other archives provide PACKAGE,
+they are ignored (for this package). If ARCHIVE does not contain PACKAGE,
+the package will be unavailable."
:type '(alist :key-type (symbol :tag "Package")
:value-type (string :tag "Archive name"))
+ ;; I don't really see why this is risky...
+ ;; I suppose it could prevent you receiving updates for a package,
+ ;; via an entry (PACKAGE . NON-EXISTING). Which could be an issue
+ ;; if PACKAGE has a known vulnerability that is fixed in newer versions.
:risky t
:group 'package
:version "24.4")
@@ -285,7 +290,12 @@
:version "24.1")
(defcustom package-check-signature 'allow-unsigned
- "Whether to check package signatures when installing."
+ "Non-nil means to check package signatures when installing.
+The value `allow-unsigned' means to still install a package even if
+it is unsigned.
+
+This also applies to the \"archive-contents\" file that lists the
+contents of the archive."
:type '(choice (const nil :tag "Never")
(const allow-unsigned :tag "Allow unsigned")
(const t :tag "Check always"))
@@ -294,7 +304,7 @@
:version "24.4")
(defcustom package-unsigned-archives nil
- "A list of archives which do not use package signature."
+ "List of archives where we do not check for package signatures."
:type '(repeat (string :tag "Archive name"))
:risky t
:group 'package
=== modified file 'lisp/international/mule-cmds.el'
--- a/lisp/international/mule-cmds.el 2014-01-01 07:43:34 +0000
+++ b/lisp/international/mule-cmds.el 2014-06-06 14:25:39 +0000
@@ -2945,7 +2945,10 @@
(if (setq name (get-char-code-property c 'name))
(push (cons name c) names))
(setq c (1+ c))))
- (setq ucs-names names))))
+ ;; Special case for "BELL" which is apparently the only char which
+ ;; doesn't have a new name and whose old-name is shadowed by a newer
+ ;; char with that name.
+ (setq ucs-names `(("BELL (BEL)" . 7) ,@names)))))
(defun read-char-by-name (prompt)
"Read a character by its Unicode name or hex number string.
=== modified file 'lisp/menu-bar.el'
--- a/lisp/menu-bar.el 2014-06-02 19:02:31 +0000
+++ b/lisp/menu-bar.el 2014-06-08 00:35:27 +0000
@@ -2272,6 +2272,12 @@
((eq type 'w32) (w32-menu-bar-open frame))
((and (null tty-menu-open-use-tmm)
(not (zerop (or (frame-parameter nil 'menu-bar-lines) 0))))
+ ;; Make sure the menu bar is up to date. One situation where
+ ;; this is important is when this function is invoked by name
+ ;; via M-x, in which case the menu bar includes the "Minibuf"
+ ;; menu item that should be removed when we exit the minibuffer.
+ (force-mode-line-update)
+ (redisplay)
(let* ((x tty-menu--initial-menu-x)
(menu (menu-bar-menu-at-x-y x 0 frame)))
(popup-menu (or
=== modified file 'lisp/net/tramp.el'
--- a/lisp/net/tramp.el 2014-06-02 18:36:47 +0000
+++ b/lisp/net/tramp.el 2014-06-08 00:35:27 +0000
@@ -302,18 +302,19 @@
;;;###tramp-autoload
(defconst tramp-ssh-controlmaster-options
- (let ((result ""))
+ (let ((result "")
+ (case-fold-search t))
(ignore-errors
(with-temp-buffer
(call-process "ssh" nil t nil "-o" "ControlMaster")
(goto-char (point-min))
- (when (search-forward-regexp "Missing ControlMaster argument" nil t)
+ (when (search-forward-regexp "missing.+argument" nil t)
(setq result "-o address@hidden:%%p -o ControlMaster=auto")))
- (when result
+ (unless (zerop (length result))
(with-temp-buffer
(call-process "ssh" nil t nil "-o" "ControlPersist")
(goto-char (point-min))
- (when (search-forward-regexp "Missing ControlPersist argument" nil t)
+ (when (search-forward-regexp "missing.+argument" nil t)
(setq result (concat result " -o ControlPersist=no"))))))
result)
"Call ssh to detect whether it supports the Control* arguments.
=== modified file 'lisp/startup.el'
--- a/lisp/startup.el 2014-03-27 20:57:23 +0000
+++ b/lisp/startup.el 2014-06-08 00:35:27 +0000
@@ -303,9 +303,12 @@
environment variable TERM.")
(defvar window-setup-hook nil
- "Normal hook run to initialize window system display.
-Emacs runs this hook after processing the command line arguments and loading
-the user's init file.")
+ "Normal hook run after loading init files and handling the command line.
+This is very similar to `emacs-startup-hook'. The only difference
+is that this hook runs after frame parameters have been set up in
+response to any settings from your init file. Unless this matters
+to you, use `emacs-startup-hook' instead. (The name of this hook
+is due to historical reasons, and does not reflect its purpose very well.)")
(defcustom initial-major-mode 'lisp-interaction-mode
"Major mode command symbol to use for the initial `*scratch*' buffer."
=== modified file 'lisp/vc/vc-hg.el'
--- a/lisp/vc/vc-hg.el 2014-06-06 16:38:44 +0000
+++ b/lisp/vc/vc-hg.el 2014-06-08 00:35:27 +0000
@@ -234,14 +234,11 @@
(defun vc-hg-working-revision (file)
"Hg-specific version of `vc-working-revision'."
- (let ((default-directory (if (file-directory-p file)
- (file-name-as-directory file)
- (file-name-directory file))))
- (ignore-errors
- (with-output-to-string
- (process-file vc-hg-program nil standard-output nil
- "log" "-l" "1" "--template" "{rev}"
- (file-relative-name file))))))
+ (or (ignore-errors
+ (with-output-to-string
+ (vc-hg-command standard-output 0 file
+ "parent" "--template" "{rev}")))
+ "0"))
;;; History functions
=== modified file 'lisp/window.el'
--- a/lisp/window.el 2014-05-25 10:06:35 +0000
+++ b/lisp/window.el 2014-06-03 12:38:17 +0000
@@ -6497,7 +6497,7 @@
;; resize it to its old height but don't signal an error.
(when (and (listp quad)
(integerp (nth 3 quad))
- (/= (nth 3 quad) (window-total-height window)))
+ (> (nth 3 quad) (window-total-height window)))
(condition-case nil
(window-resize window (- (nth 3 quad) (window-total-height window)))
(error nil)))
=== modified file 'nt/INSTALL'
--- a/nt/INSTALL 2014-05-27 17:31:17 +0000
+++ b/nt/INSTALL 2014-06-08 00:35:27 +0000
@@ -276,6 +276,19 @@
Bash will find MSYS executables first, which is exactly what you
need.
+* Starting the MSYS Bash shell
+
+ For most reliable and predictable results, we recommend to start
+ Bash by clicking the "MSYS" icon on your desktop. That icon is
+ created when you install MSYS, and using it is the official way of
+ running the MSYS tools.
+
+ For other methods of starting the shell, make sure Bash is invoked
+ with the "--login" command-line switch.
+
+ When the shell window opens and you get the shell prompt, change to
+ the directory where you intend to build Emacs.
+
At this point, you are ready to build Emacs in its basic
configuration. If you want to build it with image support and other
optional libraries, read about that near the end of this document.
@@ -290,7 +303,7 @@
auto-generated files.
To generate the configure script, type this at the MSYS Bash prompt
- from the top-level directory of the Emacs tree:
+ from the top-level directory of the Emacs source tree:
./autogen.sh
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2014-06-07 07:25:49 +0000
+++ b/src/ChangeLog 2014-06-08 00:35:27 +0000
@@ -1,3 +1,35 @@
+2014-06-08 Eli Zaretskii <address@hidden>
+
+ * sysdep.c (reset_sys_modes): Use cursorX, not curX, as the latter
+ contains garbage on WINDOWSNT (which could potentially infloop at
+ exit).
+
+ Minimize cursor motion during TTY menu updates.
+ * term.c (tty_menu_display): Don't position cursor here.
+ Instead, pass the cursor coordinates to update_frame_with_menu.
+ (tty_menu_activate): Send the hide cursor command only once in an
+ iteration through the outer 'while' loop.
+
+ * dispnew.c (update_frame_1): Accept an additional argument
+ SET_CURSOR_P, and position the cursor at the end of the frame
+ update only if that argument is non-zero. All callers changed to
+ provide the additional argument as non-zero, except for
+ update_frame_with_menu.
+ (update_frame_with_menu): Accept 2 additional arguments ROW and
+ COL; if they are non-negative, instruct update_frame_1 not to
+ position the cursor, and instead position it according to ROW and COL.
+
+ * dispextern.h (update_frame_with_menu): Update prototype.
+
+2014-06-08 Stefan Monnier <address@hidden>
+
+ * callproc.c (call_process): Don't check read-only if we don't insert
+ anything (bug#17666).
+
+2014-06-08 Eli Zaretskii <address@hidden>
+
+ * dispnew.c (update_frame_with_menu): Set display_completed.
+
2014-06-07 Eli Zaretskii <address@hidden>
* term.c (tty_menu_show) [WINDOWSNT]: Make tty_menu_show extern
=== modified file 'src/callproc.c'
--- a/src/callproc.c 2014-06-01 23:17:56 +0000
+++ b/src/callproc.c 2014-06-08 00:35:27 +0000
@@ -805,8 +805,10 @@
/* Now NREAD is the total amount of data in the buffer. */
immediate_quit = 0;
- if (NILP (BVAR (current_buffer, enable_multibyte_characters))
- && ! CODING_MAY_REQUIRE_DECODING (&process_coding))
+ if (!nread)
+ ;
+ else if (NILP (BVAR (current_buffer, enable_multibyte_characters))
+ && ! CODING_MAY_REQUIRE_DECODING (&process_coding))
insert_1_both (buf, nread, nread, 0, 1, 0);
else
{ /* We have to decode the input. */
@@ -814,6 +816,7 @@
ptrdiff_t count1 = SPECPDL_INDEX ();
XSETBUFFER (curbuf, current_buffer);
+ /* FIXME: Call signal_after_change! */
prepare_to_modify_buffer (PT, PT, NULL);
/* We cannot allow after-change-functions be run
during decoding, because that might modify the
=== modified file 'src/dispextern.h'
--- a/src/dispextern.h 2014-02-04 07:36:58 +0000
+++ b/src/dispextern.h 2014-06-04 09:16:46 +0000
@@ -3454,7 +3454,7 @@
int *, int *, int *, int *);
extern void redraw_frame (struct frame *);
extern bool update_frame (struct frame *, bool, bool);
-extern void update_frame_with_menu (struct frame *);
+extern void update_frame_with_menu (struct frame *, int, int);
extern void bitch_at_user (void);
extern void adjust_frame_glyphs (struct frame *);
void free_glyphs (struct frame *);
=== modified file 'src/dispnew.c'
--- a/src/dispnew.c 2014-03-05 13:50:48 +0000
+++ b/src/dispnew.c 2014-06-04 09:16:46 +0000
@@ -92,7 +92,7 @@
static void mirror_line_dance (struct window *, int, int, int *, char *);
static bool update_window_tree (struct window *, bool);
static bool update_window (struct window *, bool);
-static bool update_frame_1 (struct frame *, bool, bool);
+static bool update_frame_1 (struct frame *, bool, bool, bool);
static bool scrolling (struct frame *);
static void set_window_cursor_after_update (struct window *);
static void adjust_frame_glyphs_for_window_redisplay (struct frame *);
@@ -3070,7 +3070,7 @@
/* Update the display */
update_begin (f);
- paused_p = update_frame_1 (f, force_p, inhibit_hairy_id_p);
+ paused_p = update_frame_1 (f, force_p, inhibit_hairy_id_p, 1);
update_end (f);
if (FRAME_TERMCAP_P (f) || FRAME_MSDOS_P (f))
@@ -3100,12 +3100,17 @@
glyphs. This is like the second part of update_frame, but it
doesn't call build_frame_matrix, because we already have the
desired matrix prepared, and don't want it to be overwritten by the
- text of the normal display. */
+ text of the normal display.
+
+ ROW and COL, if non-negative, are the row and column of the TTY
+ frame where to position the cursor after the frame update is
+ complete. Negative values mean ask update_frame_1 to position the
+ cursor "normally", i.e. at point in the selected window. */
void
-update_frame_with_menu (struct frame *f)
+update_frame_with_menu (struct frame *f, int row, int col)
{
struct window *root_window = XWINDOW (f->root_window);
- bool paused_p;
+ bool paused_p, cursor_at_point_p;
eassert (FRAME_TERMCAP_P (f));
@@ -3115,9 +3120,14 @@
/* Update the display. */
update_begin (f);
+ cursor_at_point_p = !(row >= 0 && col >= 0);
/* Force update_frame_1 not to stop due to pending input, and not
try scrolling. */
- paused_p = update_frame_1 (f, 1, 1);
+ paused_p = update_frame_1 (f, 1, 1, cursor_at_point_p);
+ /* ROW and COL tell us where in the menu to position the cursor, so
+ that screen readers know the active region on the screen. */
+ if (!cursor_at_point_p)
+ cursor_to (f, row, col);
update_end (f);
if (FRAME_TTY (f)->termscript)
@@ -3132,12 +3142,11 @@
check_window_matrix_pointers (root_window);
#endif
add_frame_display_history (f, paused_p);
-#else
- IF_LINT ((void) paused_p);
#endif
/* Reset flags indicating that a window should be updated. */
set_window_update_flags (root_window, false);
+ display_completed = !paused_p;
}
@@ -4414,12 +4423,14 @@
/* Update the desired frame matrix of frame F.
FORCE_P means that the update should not be stopped by pending input.
- INHIBIT_HAIRY_ID_P means that scrolling should not be tried.
+ INHIBIT_ID_P means that scrolling by insert/delete should not be tried.
+ SET_CURSOR_P false means do not set cursor at point in selected window.
Value is true if update was stopped due to pending input. */
static bool
-update_frame_1 (struct frame *f, bool force_p, bool inhibit_id_p)
+update_frame_1 (struct frame *f, bool force_p, bool inhibit_id_p,
+ bool set_cursor_p)
{
/* Frame matrices to work on. */
struct glyph_matrix *current_matrix = f->current_matrix;
@@ -4491,7 +4502,7 @@
pause_p = 0 < i && i < FRAME_LINES (f) - 1;
/* Now just clean up termcap drivers and set cursor, etc. */
- if (!pause_p)
+ if (!pause_p && set_cursor_p)
{
if ((cursor_in_echo_area
/* If we are showing a message instead of the mini-buffer,
=== modified file 'src/sysdep.c'
--- a/src/sysdep.c 2014-06-01 23:17:56 +0000
+++ b/src/sysdep.c 2014-06-08 00:35:27 +0000
@@ -1270,7 +1270,7 @@
int i;
tty_turn_off_insert (tty_out);
- for (i = curX (tty_out); i < FrameCols (tty_out) - 1; i++)
+ for (i = cursorX (tty_out); i < FrameCols (tty_out) - 1; i++)
{
fputc (' ', tty_out->output);
}
=== modified file 'src/term.c'
--- a/src/term.c 2014-06-07 07:25:49 +0000
+++ b/src/term.c 2014-06-08 00:35:27 +0000
@@ -2934,8 +2934,7 @@
display_tty_menu_item (menu->text[j], max_width, face, x, y + i,
menu->submenu[j] != NULL);
}
- update_frame_with_menu (sf);
- cursor_to (sf, row, col);
+ update_frame_with_menu (sf, row, col);
}
/* --------------------------- X Menu emulation ---------------------- */
@@ -3106,7 +3105,7 @@
screen_update (struct frame *f, struct glyph_matrix *mtx)
{
restore_desired_matrix (f, mtx);
- update_frame_with_menu (f);
+ update_frame_with_menu (f, -1, -1);
}
typedef enum {
@@ -3255,7 +3254,7 @@
/* Force update of the current frame, so that the desired and the
current matrices are identical. */
- update_frame_with_menu (sf);
+ update_frame_with_menu (sf, -1, -1);
state[0].menu = menu;
state[0].screen_behind = save_and_enable_current_matrix (sf);
@@ -3400,8 +3399,6 @@
state[statecount - 1].y,
state[statecount - 1].pane,
faces, x, y, first_item, 1);
- tty_hide_cursor (tty);
- fflush (tty->output);
/* The call to display help-echo below will move the cursor,
so remember its current position as computed by
tty_menu_display. */
@@ -3420,10 +3417,13 @@
item, so that screen readers and other accessibility aids
know where the active region is. */
cursor_to (sf, row, col);
- tty_hide_cursor (tty);
- fflush (tty->output);
prev_menu_help_message = menu_help_message;
}
+ /* Both tty_menu_display and help_callback invoke update_end,
+ which calls tty_show_cursor. Re-hide it, so it doesn't show
+ through the menus. */
+ tty_hide_cursor (tty);
+ fflush (tty->output);
}
sf->mouse_moved = 0;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] trunk r117288: Merge from emacs-24; up to r117218,
Glenn Morris <=