aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenichi Handa2013-10-13 20:55:00 +0900
committerKenichi Handa2013-10-13 20:55:00 +0900
commit70c8ae6ebdad9265f793b91bc056204e0833682b (patch)
tree464b1c03544f36da75b8a42ad8f3c8b1f7cfc9e2
parent85b64f021c189466eec8036df2996af409714666 (diff)
parentfc7f501bc04f23af297fda7b6cb17df493b59397 (diff)
downloademacs-70c8ae6ebdad9265f793b91bc056204e0833682b.tar.gz
emacs-70c8ae6ebdad9265f793b91bc056204e0833682b.zip
merge trunk
-rw-r--r--ChangeLog19
-rw-r--r--autogen/config.in3
-rwxr-xr-xautogen/configure59
-rw-r--r--configure.ac9
-rw-r--r--doc/emacs/ChangeLog7
-rw-r--r--doc/emacs/ack.texi11
-rw-r--r--doc/emacs/display.texi4
-rw-r--r--doc/emacs/emacs.texi12
-rw-r--r--doc/lispref/ChangeLog4
-rw-r--r--doc/lispref/intro.texi2
-rw-r--r--doc/misc/gnus.texi2
-rw-r--r--lib/gnulib.mk1
-rw-r--r--lib/inttypes.in.h16
-rw-r--r--lib/strtoimax.c15
-rw-r--r--lisp/ChangeLog40
-rw-r--r--lisp/ChangeLog.162
-rw-r--r--lisp/desktop.el6
-rw-r--r--lisp/emacs-lisp/authors.el17
-rw-r--r--lisp/emacs-lisp/shadow.el6
-rw-r--r--lisp/face-remap.el8
-rw-r--r--lisp/gnus/ChangeLog2
-rw-r--r--lisp/isearch.el5
-rw-r--r--lisp/mail/uce.el6
-rw-r--r--lisp/man.el2
-rw-r--r--lisp/menu-bar.el105
-rw-r--r--lisp/progmodes/cmacexp.el11
-rw-r--r--lisp/progmodes/ruby-mode.el81
-rw-r--r--lisp/progmodes/sql.el2
-rw-r--r--lisp/replace.el9
-rw-r--r--m4/gnulib-comp.m48
-rw-r--r--m4/inttypes.m41
-rw-r--r--m4/strtoimax.m48
-rw-r--r--m4/strtoumax.m49
-rw-r--r--nt/ChangeLog12
-rw-r--r--nt/INSTALL29
-rw-r--r--nt/inc/dirent.h21
-rw-r--r--nt/inc/ms-w32.h26
-rw-r--r--src/ChangeLog34
-rw-r--r--src/dispextern.h1
-rw-r--r--src/dispnew.c3
-rw-r--r--src/gnutls.c23
-rw-r--r--src/image.c26
-rw-r--r--src/term.c26
-rw-r--r--src/xdisp.c9
-rw-r--r--test/ChangeLog8
-rw-r--r--test/indent/ruby.rb11
46 files changed, 538 insertions, 183 deletions
diff --git a/ChangeLog b/ChangeLog
index 6b783060bf9..55e987d4e3a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,22 @@
12013-10-12 Paul Eggert <eggert@cs.ucla.edu>
2
3 Merge from gnulib, incorporating:
4 2013-10-10 strtoumax: port to Solaris 8
5 2013-10-09 strtoimax, strtoumax: port to HP-UX 11.11
6 * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
7 * lib/inttypes.in.h, lib/strtoimax.c, m4/inttypes.m4, m4/strtoimax.m4:
8 * m4/strtoumax.m4:
9 Update from gnulib.
10
112013-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
12
13 * configure.ac (LIBGNUTLS): Don't set LIBGNUTLS_* back to the empty
14 string when gnutls2 is installed but gnutls3 is not.
15
162013-10-11 Teodor Zlatanov <tzz@lifelogs.com>
17
18 * configure.ac: Define HAVE_GNUTLS3 if GnuTLS v3 is found.
19
12013-10-10 Barry Fishman <barry_fishman@acm.org> (tiny change) 202013-10-10 Barry Fishman <barry_fishman@acm.org> (tiny change)
2 21
3 * configure.ac: Update for giflib 5. (Bug#15531) 22 * configure.ac: Update for giflib 5. (Bug#15531)
diff --git a/autogen/config.in b/autogen/config.in
index 930a7b4e3db..d57d1575119 100644
--- a/autogen/config.in
+++ b/autogen/config.in
@@ -576,6 +576,9 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
576/* Define if using GnuTLS. */ 576/* Define if using GnuTLS. */
577#undef HAVE_GNUTLS 577#undef HAVE_GNUTLS
578 578
579/* Define if using GnuTLS v3. */
580#undef HAVE_GNUTLS3
581
579/* Define to 1 if you have the gpm library (-lgpm). */ 582/* Define to 1 if you have the gpm library (-lgpm). */
580#undef HAVE_GPM 583#undef HAVE_GPM
581 584
diff --git a/autogen/configure b/autogen/configure
index d57fae081f3..ef21aa8cab2 100755
--- a/autogen/configure
+++ b/autogen/configure
@@ -12253,11 +12253,69 @@ fi
12253 12253
12254 12254
12255HAVE_GNUTLS=no 12255HAVE_GNUTLS=no
12256HAVE_GNUTLS3=no
12256if test "${with_gnutls}" = "yes" ; then 12257if test "${with_gnutls}" = "yes" ; then
12257 12258
12258 succeeded=no 12259 succeeded=no
12259 12260
12260 if test "$PKG_CONFIG" = "no" ; then 12261 if test "$PKG_CONFIG" = "no" ; then
12262 HAVE_GNUTLS3=no
12263 else
12264 PKG_CONFIG_MIN_VERSION=0.9.0
12265 if "$PKG_CONFIG" --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
12266 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls >= 3.0.0" >&5
12267$as_echo_n "checking for gnutls >= 3.0.0... " >&6; }
12268
12269 if "$PKG_CONFIG" --exists "gnutls >= 3.0.0" 2>&5 &&
12270 LIBGNUTLS_CFLAGS=`"$PKG_CONFIG" --cflags "gnutls >= 3.0.0" 2>&5` &&
12271 LIBGNUTLS_LIBS=`"$PKG_CONFIG" --libs "gnutls >= 3.0.0" 2>&5`; then
12272 edit_cflags="
12273 s,///*,/,g
12274 s/^/ /
12275 s/ -I/ $isystem/g
12276 s/^ //
12277 "
12278 LIBGNUTLS_CFLAGS=`$as_echo "$LIBGNUTLS_CFLAGS" | sed -e "$edit_cflags"`
12279 LIBGNUTLS_LIBS=`$as_echo "$LIBGNUTLS_LIBS" | sed -e 's,///*,/,g'`
12280 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes CFLAGS='$LIBGNUTLS_CFLAGS' LIBS='$LIBGNUTLS_LIBS'" >&5
12281$as_echo "yes CFLAGS='$LIBGNUTLS_CFLAGS' LIBS='$LIBGNUTLS_LIBS'" >&6; }
12282 succeeded=yes
12283 else
12284 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12285$as_echo "no" >&6; }
12286 LIBGNUTLS_CFLAGS=""
12287 LIBGNUTLS_LIBS=""
12288 ## If we have a custom action on failure, don't print errors, but
12289 ## do set a variable so people can do so. Do it in a subshell
12290 ## to capture any diagnostics in invoking pkg-config.
12291 LIBGNUTLS_PKG_ERRORS=`("$PKG_CONFIG" --print-errors "gnutls >= 3.0.0") 2>&1`
12292
12293 fi
12294
12295
12296
12297 else
12298 echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
12299 echo "*** See http://www.freedesktop.org/software/pkgconfig"
12300 fi
12301 fi
12302
12303 if test $succeeded = yes; then
12304 HAVE_GNUTLS3=yes
12305 else
12306 HAVE_GNUTLS3=no
12307 fi
12308
12309 if test "${HAVE_GNUTLS3}" = "yes"; then
12310
12311$as_echo "#define HAVE_GNUTLS3 1" >>confdefs.h
12312
12313 HAVE_GNUTLS="yes"
12314 else
12315
12316 succeeded=no
12317
12318 if test "$PKG_CONFIG" = "no" ; then
12261 HAVE_GNUTLS=no 12319 HAVE_GNUTLS=no
12262 else 12320 else
12263 PKG_CONFIG_MIN_VERSION=0.9.0 12321 PKG_CONFIG_MIN_VERSION=0.9.0
@@ -12305,6 +12363,7 @@ $as_echo "no" >&6; }
12305 HAVE_GNUTLS=no 12363 HAVE_GNUTLS=no
12306 fi 12364 fi
12307 12365
12366 fi
12308 if test "${HAVE_GNUTLS}" = "yes"; then 12367 if test "${HAVE_GNUTLS}" = "yes"; then
12309 12368
12310$as_echo "#define HAVE_GNUTLS 1" >>confdefs.h 12369$as_echo "#define HAVE_GNUTLS 1" >>confdefs.h
diff --git a/configure.ac b/configure.ac
index 3bb1ee1e954..40da4af157e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2422,8 +2422,15 @@ fi
2422AC_SUBST(LIBSELINUX_LIBS) 2422AC_SUBST(LIBSELINUX_LIBS)
2423 2423
2424HAVE_GNUTLS=no 2424HAVE_GNUTLS=no
2425HAVE_GNUTLS3=no
2425if test "${with_gnutls}" = "yes" ; then 2426if test "${with_gnutls}" = "yes" ; then
2426 PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 2.6.6], HAVE_GNUTLS=yes, HAVE_GNUTLS=no) 2427 PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 3.0.0], HAVE_GNUTLS3=yes, HAVE_GNUTLS3=no)
2428 if test "${HAVE_GNUTLS3}" = "yes"; then
2429 AC_DEFINE(HAVE_GNUTLS3, 1, [Define if using GnuTLS v3.])
2430 HAVE_GNUTLS="yes"
2431 else
2432 PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 2.6.6], HAVE_GNUTLS=yes, HAVE_GNUTLS=no)
2433 fi
2427 if test "${HAVE_GNUTLS}" = "yes"; then 2434 if test "${HAVE_GNUTLS}" = "yes"; then
2428 AC_DEFINE(HAVE_GNUTLS, 1, [Define if using GnuTLS.]) 2435 AC_DEFINE(HAVE_GNUTLS, 1, [Define if using GnuTLS.])
2429 fi 2436 fi
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index 698ddb7ffdf..d37c30ea81a 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,3 +1,10 @@
12013-10-13 Glenn Morris <rgm@gnu.org>
2
3 * display.texi (Text Scale): Update text-scale-adjust details.
4
5 * ack.texi (Acknowledgments):
6 * emacs.texi (Acknowledgments): Use accented form of some names.
7
12013-10-08 Eli Zaretskii <eliz@gnu.org> 82013-10-08 Eli Zaretskii <eliz@gnu.org>
2 9
3 * ack.texi (Acknowledgments): Fix spelling of Hrvoje Nikšić's 10 * ack.texi (Acknowledgments): Fix spelling of Hrvoje Nikšić's
diff --git a/doc/emacs/ack.texi b/doc/emacs/ack.texi
index c47dfbbd02c..7c0d28c752a 100644
--- a/doc/emacs/ack.texi
+++ b/doc/emacs/ack.texi
@@ -104,7 +104,7 @@ footnotes in email messages; and @file{gnus-audio.el} and
104@item 104@item
105Alexander L. Belikoff, Sergey Berezin, Sacha Chua, David Edmondson, 105Alexander L. Belikoff, Sergey Berezin, Sacha Chua, David Edmondson,
106Noah Friedman, Andreas Fuchs, Mario Lang, Ben Mesander, Lawrence 106Noah Friedman, Andreas Fuchs, Mario Lang, Ben Mesander, Lawrence
107Mitchell, Gergely Nagy, Michael Olson, Per Persson, Jorgen Schaefer, 107Mitchell, Gergely Nagy, Michael Olson, Per Persson, Jorgen Schäfer,
108Alex Schroeder, and Tom Tromey wrote ERC, an advanced Internet Relay 108Alex Schroeder, and Tom Tromey wrote ERC, an advanced Internet Relay
109Chat client (for more information, see the file @file{CREDITS} in the 109Chat client (for more information, see the file @file{CREDITS} in the
110ERC distribution). 110ERC distribution).
@@ -276,7 +276,7 @@ over maintainership. Benjamin Andresen, Thomas Baumann, Joel Boehland, Jan Böc
276Borgman, Baoqiu Cui, Dan Davison, Christian Egli, Eric S. Fraga, Daniel German, Chris Gray, Konrad Hinsen, Tassilo Horn, Philip 276Borgman, Baoqiu Cui, Dan Davison, Christian Egli, Eric S. Fraga, Daniel German, Chris Gray, Konrad Hinsen, Tassilo Horn, Philip
277Jackson, Martyn Jago, Thorsten Jolitz, Jambunathan K, Tokuya Kameshima, Sergey Litvinov, David Maus, Ross Patterson, Juan Pechiar, Sebastian Rose, Eric Schulte, 277Jackson, Martyn Jago, Thorsten Jolitz, Jambunathan K, Tokuya Kameshima, Sergey Litvinov, David Maus, Ross Patterson, Juan Pechiar, Sebastian Rose, Eric Schulte,
278Paul Sexton, Ulf Stegemann, Andy Stewart, Christopher Suckling, David O'Toole, John Wiegley, Zhang Weize, 278Paul Sexton, Ulf Stegemann, Andy Stewart, Christopher Suckling, David O'Toole, John Wiegley, Zhang Weize,
279Piotr Zielinski, and others also wrote various Org mode components. 279Piotr Zieliński, and others also wrote various Org mode components.
280For more information, @pxref{History and Acknowledgments,,, org, The Org Manual}. 280For more information, @pxref{History and Acknowledgments,,, org, The Org Manual}.
281 281
282@item 282@item
@@ -819,7 +819,7 @@ used in mail messages and news articles; and @file{terminal.el}, a
819terminal emulator for Emacs subprocesses. 819terminal emulator for Emacs subprocesses.
820 820
821@item 821@item
822Gerd Moellmann was the Emacs maintainer from the beginning of Emacs 21 822Gerd Möllmann was the Emacs maintainer from the beginning of Emacs 21
823development until the release of 21.1. He wrote the new display 823development until the release of 21.1. He wrote the new display
824engine used from Emacs 21 onwards, and the asynchronous timers 824engine used from Emacs 21 onwards, and the asynchronous timers
825facility. He also wrote @code{ebrowse}, the C@t{++} browser; 825facility. He also wrote @code{ebrowse}, the C@t{++} browser;
@@ -979,7 +979,7 @@ minor mode for displaying a ruler in the header line; and
979structures. 979structures.
980 980
981@item 981@item
982Francesco A. Potorti wrote @file{cmacexp.el}, providing a command which 982Francesco A. Potortì wrote @file{cmacexp.el}, providing a command which
983runs the C preprocessor on a region of a file and displays the results. 983runs the C preprocessor on a region of a file and displays the results.
984He also expanded and redesigned the @code{etags} program. 984He also expanded and redesigned the @code{etags} program.
985 985
@@ -1099,8 +1099,9 @@ Ronald S. Schnell wrote @file{dunnet.el}, a text adventure game.
1099Philippe Schnoebelen wrote @file{gomoku.el}, a Go Moku game played 1099Philippe Schnoebelen wrote @file{gomoku.el}, a Go Moku game played
1100against Emacs; and @file{mpuz.el}, a multiplication puzzle. 1100against Emacs; and @file{mpuz.el}, a multiplication puzzle.
1101 1101
1102@c FIXME files no longer included; but see bug 15601.
1102@item 1103@item
1103Rainer Schoepf contributed to Alpha and OSF1 support. 1104Rainer Schöpf contributed to Alpha and OSF1 support.
1104 1105
1105@item 1106@item
1106Jan Schormann wrote @file{solitaire.el}, an implementation of the 1107Jan Schormann wrote @file{solitaire.el}, an implementation of the
diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi
index 9327e7c8076..80dffe2e4c9 100644
--- a/doc/emacs/display.texi
+++ b/doc/emacs/display.texi
@@ -743,9 +743,9 @@ determine which action to take.
743@kbd{C-x}. For instance, @kbd{C-x C-= C-= C-=} increases the face 743@kbd{C-x}. For instance, @kbd{C-x C-= C-= C-=} increases the face
744height by three steps. Each step scales the text height by a factor 744height by three steps. Each step scales the text height by a factor
745of 1.2; to change this factor, customize the variable 745of 1.2; to change this factor, customize the variable
746@code{text-scale-mode-step}. As an exception, a numeric argument of 0 746@code{text-scale-mode-step}. A numeric argument of 0
747to the @code{text-scale-adjust} command restores the default height, 747to the @code{text-scale-adjust} command restores the default height,
748similar to typing @kbd{C-x C-0}. 748the same as typing @kbd{C-x C-0}.
749 749
750@cindex increase buffer face height 750@cindex increase buffer face height
751@findex text-scale-increase 751@findex text-scale-increase
diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi
index 7c594503afb..68d431ac4bc 100644
--- a/doc/emacs/emacs.texi
+++ b/doc/emacs/emacs.texi
@@ -1416,18 +1416,18 @@ Christopher J. Madsen, Neil M. Mager, Ken Manheimer, Bill Mann,
1416Brian Marick, Simon Marshall, Bengt Martensson, Charlie Martin, 1416Brian Marick, Simon Marshall, Bengt Martensson, Charlie Martin,
1417Yukihiro Matsumoto, Tomohiro Matsuyama, David Maus, Thomas May, Will Mengarini, David 1417Yukihiro Matsumoto, Tomohiro Matsuyama, David Maus, Thomas May, Will Mengarini, David
1418Megginson, Stefan Merten, Ben A. Mesander, Wayne Mesard, Brad 1418Megginson, Stefan Merten, Ben A. Mesander, Wayne Mesard, Brad
1419Miller, Lawrence Mitchell, Richard Mlynarik, Gerd Moellmann, Stefan 1419Miller, Lawrence Mitchell, Richard Mlynarik, Gerd Möllmann, Stefan
1420Monnier, Keith Moore, Jan Moringen, Morioka Tomohiko, Glenn Morris, 1420Monnier, Keith Moore, Jan Moringen, Morioka Tomohiko, Glenn Morris,
1421Don Morrison, Diane Murray, Riccardo Murri, Sen Nagata, Erik Naggum, 1421Don Morrison, Diane Murray, Riccardo Murri, Sen Nagata, Erik Naggum,
1422Gergely Nagy, Nobuyoshi Nakada, Thomas Neumann, Mike Newton, Thien-Thi Nguyen, 1422Gergely Nagy, Nobuyoshi Nakada, Thomas Neumann, Mike Newton, Thien-Thi Nguyen,
1423Jurgen Nickelsen, Dan Nicolaescu, Hrvoje Niksic, Jeff Norden, 1423Jurgen Nickelsen, Dan Nicolaescu, Hrvoje Nikšić, Jeff Norden,
1424Andrew Norman, Edward O'Connor, Kentaro Ohkouchi, Christian Ohler, 1424Andrew Norman, Edward O'Connor, Kentaro Ohkouchi, Christian Ohler,
1425Kenichi Okada, Alexandre Oliva, Bob Olson, Michael Olson, Takaaki Ota, 1425Kenichi Okada, Alexandre Oliva, Bob Olson, Michael Olson, Takaaki Ota,
1426Pieter E. J. Pareit, Ross Patterson, David Pearson, Juan Pechiar, 1426Pieter E. J. Pareit, Ross Patterson, David Pearson, Juan Pechiar,
1427Jeff Peck, Damon Anton Permezel, Tom Perrine, William M. Perry, Per 1427Jeff Peck, Damon Anton Permezel, Tom Perrine, William M. Perry, Per
1428Persson, Jens Petersen, Daniel Pfeiffer, Justus Piater, Richard L. 1428Persson, Jens Petersen, Daniel Pfeiffer, Justus Piater, Richard L.
1429Pieri, Fred Pierresteguy, François Pinard, Daniel Pittman, Christian 1429Pieri, Fred Pierresteguy, François Pinard, Daniel Pittman, Christian
1430Plaunt, Alexander Pohoyda, David Ponce, Francesco A. Potorti, 1430Plaunt, Alexander Pohoyda, David Ponce, Francesco A. Potortì,
1431Michael D. Prange, Mukesh Prasad, Ken Raeburn, Marko Rahamaa, Ashwin 1431Michael D. Prange, Mukesh Prasad, Ken Raeburn, Marko Rahamaa, Ashwin
1432Ram, Eric S. Raymond, Paul Reilly, Edward M. Reingold, David 1432Ram, Eric S. Raymond, Paul Reilly, Edward M. Reingold, David
1433Reitter, Alex Rezinsky, Rob Riepel, Lara Rios, Adrian Robert, Nick 1433Reitter, Alex Rezinsky, Rob Riepel, Lara Rios, Adrian Robert, Nick
@@ -1435,10 +1435,10 @@ Roberts, Roland B. Roberts, John Robinson, Denis B. Roegel, Danny
1435Roozendaal, Sebastian Rose, William Rosenblatt, Markus Rost, Guillermo 1435Roozendaal, Sebastian Rose, William Rosenblatt, Markus Rost, Guillermo
1436J. Rozas, Martin Rudalics, Ivar Rummelhoff, Jason Rumney, Wolfgang 1436J. Rozas, Martin Rudalics, Ivar Rummelhoff, Jason Rumney, Wolfgang
1437Rupprecht, Benjamin Rutt, Kevin Ryde, James B. Salem, Masahiko Sato, 1437Rupprecht, Benjamin Rutt, Kevin Ryde, James B. Salem, Masahiko Sato,
1438Timo Savola, Jorgen Schaefer, Holger Schauer, William Schelter, Ralph 1438Timo Savola, Jorgen Schäfer, Holger Schauer, William Schelter, Ralph
1439Schleicher, Gregor Schmid, Michael Schmidt, Ronald S. Schnell, 1439Schleicher, Gregor Schmid, Michael Schmidt, Ronald S. Schnell,
1440Philippe Schnoebelen, Jan Schormann, Alex Schroeder, Stefan Schoef, 1440Philippe Schnoebelen, Jan Schormann, Alex Schroeder, Stefan Schoef,
1441Rainer Schoepf, Raymond Scholz, Eric Schulte, Andreas Schwab, Randal 1441Rainer Schöpf, Raymond Scholz, Eric Schulte, Andreas Schwab, Randal
1442Schwartz, Oliver Seidel, Manuel Serrano, Paul Sexton, Hovav Shacham, 1442Schwartz, Oliver Seidel, Manuel Serrano, Paul Sexton, Hovav Shacham,
1443Stanislav Shalunov, Marc Shapiro, Richard Sharman, Olin Shivers, Tibor 1443Stanislav Shalunov, Marc Shapiro, Richard Sharman, Olin Shivers, Tibor
1444Å imko, Espen Skoglund, Rick Sladkey, Lynn Slater, Chris Smith, 1444Å imko, Espen Skoglund, Rick Sladkey, Lynn Slater, Chris Smith,
@@ -1460,7 +1460,7 @@ Wohler, Steven A. Wood, Dale R. Worley, Francis J. Wright, Felix
1460S. T. Wu, Tom Wurgler, Yamamoto Mitsuharu, Katsumi Yamaoka, 1460S. T. Wu, Tom Wurgler, Yamamoto Mitsuharu, Katsumi Yamaoka,
1461Masatake Yamato, Jonathan Yavner, Ryan Yeske, Ilya Zakharevich, Milan 1461Masatake Yamato, Jonathan Yavner, Ryan Yeske, Ilya Zakharevich, Milan
1462Zamazal, Victor Zandy, Eli Zaretskii, Jamie Zawinski, Andrew Zhilin, 1462Zamazal, Victor Zandy, Eli Zaretskii, Jamie Zawinski, Andrew Zhilin,
1463Shenghuo Zhu, Piotr Zielinski, Ian T. Zimmermann, Reto Zimmermann, 1463Shenghuo Zhu, Piotr Zieliński, Ian T. Zimmermann, Reto Zimmermann,
1464Neal Ziring, Teodor Zlatanov, and Detlev Zundel. 1464Neal Ziring, Teodor Zlatanov, and Detlev Zundel.
1465@end iftex 1465@end iftex
1466 1466
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog
index 8b55cfddec2..c7d70eed41e 100644
--- a/doc/lispref/ChangeLog
+++ b/doc/lispref/ChangeLog
@@ -1,3 +1,7 @@
12013-10-13 Glenn Morris <rgm@gnu.org>
2
3 * intro.texi (Acknowledgments): Use accented form of some names.
4
12013-10-09 Glenn Morris <rgm@gnu.org> 52013-10-09 Glenn Morris <rgm@gnu.org>
2 6
3 * control.texi (Conditionals): Copyedits. (Bug#15558) 7 * control.texi (Conditionals): Copyedits. (Bug#15558)
diff --git a/doc/lispref/intro.texi b/doc/lispref/intro.texi
index 803e5229f6e..84da0bd3769 100644
--- a/doc/lispref/intro.texi
+++ b/doc/lispref/intro.texi
@@ -545,7 +545,7 @@ Eirik Fuller, Stephen Gildea, Bob Glickstein, Eric Hanchrow, Jesper
545Harder, George Hartzell, Nathan Hess, Masayuki Ida, Dan Jacobson, Jak 545Harder, George Hartzell, Nathan Hess, Masayuki Ida, Dan Jacobson, Jak
546Kirman, Bob Knighten, Frederick M. Korz, Joe Lammens, Glenn M. Lewis, 546Kirman, Bob Knighten, Frederick M. Korz, Joe Lammens, Glenn M. Lewis,
547K. Richard Magill, Brian Marick, Roland McGrath, Stefan Monnier, Skip 547K. Richard Magill, Brian Marick, Roland McGrath, Stefan Monnier, Skip
548Montanaro, John Gardiner Myers, Thomas A. Peterson, Francesco Potorti, 548Montanaro, John Gardiner Myers, Thomas A. Peterson, Francesco Potortì,
549Friedrich Pukelsheim, Arnold D. Robbins, Raul Rockwell, Jason Rumney, 549Friedrich Pukelsheim, Arnold D. Robbins, Raul Rockwell, Jason Rumney,
550Per Starbäck, Shinichirou Sugou, Kimmo Suominen, Edward Tharp, Bill 550Per Starbäck, Shinichirou Sugou, Kimmo Suominen, Edward Tharp, Bill
551Trost, Rickard Westman, Jean White, Eduard Wiebe, Matthew Wilding, 551Trost, Rickard Westman, Jean White, Eduard Wiebe, Matthew Wilding,
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index f7f373664c6..d05ed53e69b 100644
--- a/doc/misc/gnus.texi
+++ b/doc/misc/gnus.texi
@@ -22998,7 +22998,7 @@ elements on the line is (i.e., the non-info part). If you put
22998additional elements on the mode line (e.g., a clock), you should modify 22998additional elements on the mode line (e.g., a clock), you should modify
22999this variable: 22999this variable:
23000 23000
23001@c Hook written by Francesco Potorti` <pot@cnuce.cnr.it> 23001@c Hook written by Francesco Potortì <pot@cnuce.cnr.it>
23002@lisp 23002@lisp
23003(add-hook 'display-time-hook 23003(add-hook 'display-time-hook
23004 (lambda () (setq gnus-mode-non-string-length 23004 (lambda () (setq gnus-mode-non-string-length
diff --git a/lib/gnulib.mk b/lib/gnulib.mk
index 69fc06bbe06..44cdc0cdaac 100644
--- a/lib/gnulib.mk
+++ b/lib/gnulib.mk
@@ -565,6 +565,7 @@ inttypes.h: inttypes.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_U
565 -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \ 565 -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \
566 -e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \ 566 -e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \
567 -e 's/@''REPLACE_STRTOIMAX''@/$(REPLACE_STRTOIMAX)/g' \ 567 -e 's/@''REPLACE_STRTOIMAX''@/$(REPLACE_STRTOIMAX)/g' \
568 -e 's/@''REPLACE_STRTOUMAX''@/$(REPLACE_STRTOUMAX)/g' \
568 -e 's/@''INT32_MAX_LT_INTMAX_MAX''@/$(INT32_MAX_LT_INTMAX_MAX)/g' \ 569 -e 's/@''INT32_MAX_LT_INTMAX_MAX''@/$(INT32_MAX_LT_INTMAX_MAX)/g' \
569 -e 's/@''INT64_MAX_EQ_LONG_MAX''@/$(INT64_MAX_EQ_LONG_MAX)/g' \ 570 -e 's/@''INT64_MAX_EQ_LONG_MAX''@/$(INT64_MAX_EQ_LONG_MAX)/g' \
570 -e 's/@''UINT32_MAX_LT_UINTMAX_MAX''@/$(UINT32_MAX_LT_UINTMAX_MAX)/g' \ 571 -e 's/@''UINT32_MAX_LT_UINTMAX_MAX''@/$(UINT32_MAX_LT_UINTMAX_MAX)/g' \
diff --git a/lib/inttypes.in.h b/lib/inttypes.in.h
index 1893f5569d3..05a22fff790 100644
--- a/lib/inttypes.in.h
+++ b/lib/inttypes.in.h
@@ -1105,12 +1105,22 @@ _GL_WARN_ON_USE (strtoimax, "strtoimax is unportable - "
1105#endif 1105#endif
1106 1106
1107#if @GNULIB_STRTOUMAX@ 1107#if @GNULIB_STRTOUMAX@
1108# if !@HAVE_DECL_STRTOUMAX@ 1108# if @REPLACE_STRTOUMAX@
1109# undef strtoumax 1109# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1110# undef strtoumax
1111# define strtoumax rpl_strtoumax
1112# endif
1113_GL_FUNCDECL_RPL (strtoumax, uintmax_t,
1114 (const char *, char **, int) _GL_ARG_NONNULL ((1)));
1115_GL_CXXALIAS_RPL (strtoumax, uintmax_t, (const char *, char **, int));
1116# else
1117# if !@HAVE_DECL_STRTOUMAX@
1118# undef strtoumax
1110_GL_FUNCDECL_SYS (strtoumax, uintmax_t, 1119_GL_FUNCDECL_SYS (strtoumax, uintmax_t,
1111 (const char *, char **, int) _GL_ARG_NONNULL ((1))); 1120 (const char *, char **, int) _GL_ARG_NONNULL ((1)));
1112# endif 1121# endif
1113_GL_CXXALIAS_SYS (strtoumax, uintmax_t, (const char *, char **, int)); 1122_GL_CXXALIAS_SYS (strtoumax, uintmax_t, (const char *, char **, int));
1123# endif
1114_GL_CXXALIASWARN (strtoumax); 1124_GL_CXXALIASWARN (strtoumax);
1115#elif defined GNULIB_POSIXCHECK 1125#elif defined GNULIB_POSIXCHECK
1116# undef strtoumax 1126# undef strtoumax
diff --git a/lib/strtoimax.c b/lib/strtoimax.c
index c9bd2ad3b1c..b4feaf361f7 100644
--- a/lib/strtoimax.c
+++ b/lib/strtoimax.c
@@ -48,28 +48,31 @@ long long int strtoll (char const *, char **, int);
48#ifdef UNSIGNED 48#ifdef UNSIGNED
49# define Have_long_long HAVE_UNSIGNED_LONG_LONG_INT 49# define Have_long_long HAVE_UNSIGNED_LONG_LONG_INT
50# define Int uintmax_t 50# define Int uintmax_t
51# define Strtoimax strtoumax
52# define Strtol strtoul
53# define Strtoll strtoull
51# define Unsigned unsigned 54# define Unsigned unsigned
52# define strtoimax strtoumax
53# define strtol strtoul
54# define strtoll strtoull
55#else 55#else
56# define Have_long_long HAVE_LONG_LONG_INT 56# define Have_long_long HAVE_LONG_LONG_INT
57# define Int intmax_t 57# define Int intmax_t
58# define Strtoimax strtoimax
59# define Strtol strtol
60# define Strtoll strtoll
58# define Unsigned 61# define Unsigned
59#endif 62#endif
60 63
61Int 64Int
62strtoimax (char const *ptr, char **endptr, int base) 65Strtoimax (char const *ptr, char **endptr, int base)
63{ 66{
64#if Have_long_long 67#if Have_long_long
65 verify (sizeof (Int) == sizeof (Unsigned long int) 68 verify (sizeof (Int) == sizeof (Unsigned long int)
66 || sizeof (Int) == sizeof (Unsigned long long int)); 69 || sizeof (Int) == sizeof (Unsigned long long int));
67 70
68 if (sizeof (Int) != sizeof (Unsigned long int)) 71 if (sizeof (Int) != sizeof (Unsigned long int))
69 return strtoll (ptr, endptr, base); 72 return Strtoll (ptr, endptr, base);
70#else 73#else
71 verify (sizeof (Int) == sizeof (Unsigned long int)); 74 verify (sizeof (Int) == sizeof (Unsigned long int));
72#endif 75#endif
73 76
74 return strtol (ptr, endptr, base); 77 return Strtol (ptr, endptr, base);
75} 78}
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index f4508b7bbce..1abd0482ec6 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -4,6 +4,42 @@
4 superfluous condition in chekcing whether a coding system is safe 4 superfluous condition in chekcing whether a coding system is safe
5 or not. 5 or not.
6 6
72013-10-13 Oleh Krehel <ohwoeowho@gmail.com>
8
9 * replace.el (how-many): Fix rstart and !rend case. (Bug#15589)
10
112013-10-13 Andreas Politz <politza@hochschule-trier.de>
12
13 * progmodes/sql.el (sql-add-product): Fix paren typo. (Bug#15435)
14
152013-10-13 Glenn Morris <rgm@gnu.org>
16
17 * menu-bar.el (menu-bar-update-buffers):
18 Unify Buffers menu prompt string. (Bug#15576)
19
20 * face-remap.el (text-scale-adjust): Doc fix. (Bug#15434)
21
22 * emacs-lisp/authors.el (authors-aliases, authors-ignored-files):
23 Add some entries.
24 (authors-fixed-entries): Use accented form of name.
25
262013-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
27
28 * progmodes/ruby-mode.el (ruby-smie-grammar): Add rule for paren-free
29 method calls (bug#bug#15594).
30 (ruby-smie--args-separator-p): New function.
31 (ruby-smie--forward-token, ruby-smie--backward-token): Use it to
32 recognize paren-free method calls.
33
34 * isearch.el (isearch-pre-command-hook): Don't build in knowledge about
35 internals of universal-argument.
36
372013-10-11 Eli Zaretskii <eliz@gnu.org>
38
39 * menu-bar.el (tty-menu-navigation-map): Remap F10 to tty-menu-exit.
40 Bind all menu-bar sequences to tty-menu-exit -- this pops down a
41 dropped menu on second mouse click on the menu bar.
42
72013-10-11 Stefan Monnier <monnier@iro.umontreal.ca> 432013-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
8 44
9 * progmodes/sh-script.el: Provide simpl(e|istic) completion. 45 * progmodes/sh-script.el: Provide simpl(e|istic) completion.
@@ -3212,7 +3248,7 @@
3212 3248
32132013-07-23 Michael R. Mauger <michael@mauger.com> 32492013-07-23 Michael R. Mauger <michael@mauger.com>
3214 3250
3215 * progmodes/sql.el Version 3.3 3251 * progmodes/sql.el: Version 3.3
3216 (sql-product-alist): Improve oracle :prompt-cont-regexp. 3252 (sql-product-alist): Improve oracle :prompt-cont-regexp.
3217 (sql-starts-with-prompt-re, sql-ends-with-prompt-re): New functions. 3253 (sql-starts-with-prompt-re, sql-ends-with-prompt-re): New functions.
3218 (sql-interactive-remove-continuation-prompt): Rewrite, use 3254 (sql-interactive-remove-continuation-prompt): Rewrite, use
@@ -8424,7 +8460,7 @@
8424 8460
84252013-03-14 Tassilo Horn <tsdh@gnu.org> 84612013-03-14 Tassilo Horn <tsdh@gnu.org>
8426 8462
8427 * doc-view.el Fix bug#13887. 8463 * doc-view.el: Fix bug#13887.
8428 (doc-view-insert-image): Don't modify overlay associated to 8464 (doc-view-insert-image): Don't modify overlay associated to
8429 non-live windows, and implement horizontal centering of image in 8465 non-live windows, and implement horizontal centering of image in
8430 case it's smaller than the window. 8466 case it's smaller than the window.
diff --git a/lisp/ChangeLog.16 b/lisp/ChangeLog.16
index b18d2bf9da4..ebdab33e5ea 100644
--- a/lisp/ChangeLog.16
+++ b/lisp/ChangeLog.16
@@ -63,7 +63,7 @@
63 63
642013-03-11 Michael R. Mauger <michael@mauger.com> 642013-03-11 Michael R. Mauger <michael@mauger.com>
65 65
66 * progmodes/sql.el Version 3.2 66 * progmodes/sql.el: Version 3.2
67 Please note that my address changed to <michael@mauger.com>; 67 Please note that my address changed to <michael@mauger.com>;
68 the <mmaug@yahoo.com> address remains active. 68 the <mmaug@yahoo.com> address remains active.
69 (sql-connection-alist): Updates documentation to fix bug#13715. 69 (sql-connection-alist): Updates documentation to fix bug#13715.
diff --git a/lisp/desktop.el b/lisp/desktop.el
index 79c06f15fb6..cff78ba9da6 100644
--- a/lisp/desktop.el
+++ b/lisp/desktop.el
@@ -123,7 +123,7 @@
123;; f89-kam@nada.kth.se (Klas Mellbourn) for a mh-e tip. 123;; f89-kam@nada.kth.se (Klas Mellbourn) for a mh-e tip.
124;; kifer@sbkifer.cs.sunysb.edu (M. Kifer) for a bug hunt. 124;; kifer@sbkifer.cs.sunysb.edu (M. Kifer) for a bug hunt.
125;; treese@lcs.mit.edu (Win Treese) for ange-ftp tips. 125;; treese@lcs.mit.edu (Win Treese) for ange-ftp tips.
126;; pot@cnuce.cnr.it (Francesco Potorti`) for misc. tips. 126;; pot@cnuce.cnr.it (Francesco Potortì) for misc. tips.
127;; --------------------------------------------------------------------------- 127;; ---------------------------------------------------------------------------
128;; TODO: 128;; TODO:
129;; 129;;
@@ -1467,3 +1467,7 @@ If there are no buffers left to create, kill the timer."
1467(provide 'desktop) 1467(provide 'desktop)
1468 1468
1469;;; desktop.el ends here 1469;;; desktop.el ends here
1470
1471;; Local Variables:
1472;; coding: utf-8
1473;; End:
diff --git a/lisp/emacs-lisp/authors.el b/lisp/emacs-lisp/authors.el
index 40ce096d427..809511cb6b7 100644
--- a/lisp/emacs-lisp/authors.el
+++ b/lisp/emacs-lisp/authors.el
@@ -103,6 +103,7 @@ files.")
103 ("John J Foerch" "John Foerch") 103 ("John J Foerch" "John Foerch")
104 ("John W. Eaton" "John Eaton") 104 ("John W. Eaton" "John Eaton")
105 ("Jonathan I. Kamens" "Jonathan Kamens") 105 ("Jonathan I. Kamens" "Jonathan Kamens")
106 ("Jorgen Schäfer" "Jorgen Schaefer")
106 ("Joseph Arceneaux" "Joe Arceneaux") 107 ("Joseph Arceneaux" "Joe Arceneaux")
107 ("Joseph M. Kelsey" "Joe Kelsey") ; FIXME ? 108 ("Joseph M. Kelsey" "Joe Kelsey") ; FIXME ?
108 ("Juan León Lahoz García" "Juan-Leon Lahoz Garcia") 109 ("Juan León Lahoz García" "Juan-Leon Lahoz Garcia")
@@ -145,6 +146,8 @@ files.")
145 ("Peter S. Galbraith" "Peter Galbraith") 146 ("Peter S. Galbraith" "Peter Galbraith")
146 ("Peter Runestig" "Peter 'luna' Runestig") 147 ("Peter Runestig" "Peter 'luna' Runestig")
147 ("Peter S. Galbraith" "Peter S Galbraith") 148 ("Peter S. Galbraith" "Peter S Galbraith")
149 ("Piotr Zieliński" "Piotr Zielinski")
150 ("Rainer Schöpf" "Rainer Schoepf")
148 ("Raja R. Harinath" "Raja R Harinath") 151 ("Raja R. Harinath" "Raja R Harinath")
149 ("Richard G. Bielawski" "Richard G Bielawski" "Richard Bielawski") 152 ("Richard G. Bielawski" "Richard G Bielawski" "Richard Bielawski")
150 ("Richard King" "Dick King") 153 ("Richard King" "Dick King")
@@ -297,7 +300,7 @@ Changes to files matching one of the regexps in this list are not listed.")
297 "NICKLES.WORTH" "INTERVAL.IDEAS" "RCP" 300 "NICKLES.WORTH" "INTERVAL.IDEAS" "RCP"
298 "3B-MAXMEM" "AIX.DUMP" "SUN-SUPPORT" "XENIX" 301 "3B-MAXMEM" "AIX.DUMP" "SUN-SUPPORT" "XENIX"
299 "CODINGS" "CHARSETS" 302 "CODINGS" "CHARSETS"
300 "calc/INSTALL" "calc/Makefile" 303 "calc/INSTALL" "calc/Makefile" "calc/README.prev"
301 "vms-pp.trans" "_emacs" "batcomp.com" "notes/cpp" ; admin/ 304 "vms-pp.trans" "_emacs" "batcomp.com" "notes/cpp" ; admin/
302 "emacsver.texi.in" 305 "emacsver.texi.in"
303 "vpath.sed" 306 "vpath.sed"
@@ -334,6 +337,15 @@ Changes to files matching one of the regexps in this list are not listed.")
334 "debian/scripts/startup" 337 "debian/scripts/startup"
335 "debian/scripts/startup.erc" 338 "debian/scripts/startup.erc"
336 "debian/scripts/startup.erc-speak" 339 "debian/scripts/startup.erc-speak"
340 ;; Used to be in admin, not very interesting.
341 "emacs-pretesters" "make-announcement" "make-changelog-diff"
342 ;; Generated files that have since been removed.
343 "refcards/calccard.pdf" "refcards/cs-dired-ref.pdf" "refcards/cs-refcard.pdf"
344 "refcards/de-refcard.pdf" "refcards/dired-ref.pdf" "refcards/fr-dired-ref.pdf"
345 "refcards/fr-refcard.pdf" "refcards/gnus-booklet.pdf" "refcards/gnus-refcard.pdf"
346 "refcards/orgcard.pdf" "refcards/pl-refcard.pdf" "refcards/pt-br-refcard.pdf"
347 "refcards/refcard.pdf" "refcards/ru-refcard.pdf" "refcards/sk-dired-ref.pdf"
348 "refcards/sk-refcard.pdf"
337 ) 349 )
338 "List of files and directories to ignore. 350 "List of files and directories to ignore.
339Changes to files in this list are not listed.") 351Changes to files in this list are not listed.")
@@ -506,7 +518,8 @@ Changes to files in this list are not listed.")
506 ("Schlumberger Technology Corporation" :changed "gud.el") 518 ("Schlumberger Technology Corporation" :changed "gud.el")
507 ;; Replaced by tcl.el. 519 ;; Replaced by tcl.el.
508;;; ("Gregor Schmid" :wrote "tcl-mode.el") 520;;; ("Gregor Schmid" :wrote "tcl-mode.el")
509 ("Rainer Schoepf" :wrote "alpha.h" "unexalpha.c") 521 ;; FIXME files no longer included; but see bug 15601
522 ("Rainer Schöpf" :wrote "alpha.h" "unexalpha.c")
510 ;; No longer distributed: emacsserver.c. 523 ;; No longer distributed: emacsserver.c.
511 ("William Sommerfeld" :wrote "emacsclient.c" "scribe.el") 524 ("William Sommerfeld" :wrote "emacsclient.c" "scribe.el")
512 ;; No longer distributed: emacsserver.c. 525 ;; No longer distributed: emacsserver.c.
diff --git a/lisp/emacs-lisp/shadow.el b/lisp/emacs-lisp/shadow.el
index d0e3c5763b5..e56fc1fcb13 100644
--- a/lisp/emacs-lisp/shadow.el
+++ b/lisp/emacs-lisp/shadow.el
@@ -45,7 +45,7 @@
45;; 45;;
46;; emacs -batch -f list-load-path-shadows 46;; emacs -batch -f list-load-path-shadows
47;; 47;;
48;; Thanks to Francesco Potorti` <pot@cnuce.cnr.it> for suggestions, 48;; Thanks to Francesco Potortì <pot@cnuce.cnr.it> for suggestions,
49;; rewritings & speedups. 49;; rewritings & speedups.
50 50
51;;; Code: 51;;; Code:
@@ -284,3 +284,7 @@ version unless you know what you are doing.\n")
284(provide 'shadow) 284(provide 'shadow)
285 285
286;;; shadow.el ends here 286;;; shadow.el ends here
287
288;; Local Variables:
289;; coding: utf-8
290;; End:
diff --git a/lisp/face-remap.el b/lisp/face-remap.el
index e4ec602efe7..75170237798 100644
--- a/lisp/face-remap.el
+++ b/lisp/face-remap.el
@@ -299,11 +299,9 @@ key-binding used to invoke the command, with all modifiers removed:
299 - Decrease the default face height by one step 299 - Decrease the default face height by one step
300 0 Reset the default face height to the global default 300 0 Reset the default face height to the global default
301 301
302When adjusting with `+' or `-', continue to read input events and 302After adjusting, continue to read input events and further adjust
303further adjust the face height as long as the input event read 303the face height as long as the input event read
304\(with all modifiers removed) is `+' or `-'. 304\(with all modifiers removed) is one of the above characters.
305
306When adjusting with `0', immediately finish.
307 305
308Each step scales the height of the default face by the variable 306Each step scales the height of the default face by the variable
309`text-scale-mode-step' (a negative number of steps decreases the 307`text-scale-mode-step' (a negative number of steps decreases the
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 6d718e7c8f9..54bc1d03a00 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1138,7 +1138,7 @@
1138 1138
11392013-02-25 Adam Sjøgren <asjo@koldfront.dk> 11392013-02-25 Adam Sjøgren <asjo@koldfront.dk>
1140 1140
1141 * mml2015-el (mml2015-epg-key-image): Wrap epg-gpg-program in 1141 * mml2015.el (mml2015-epg-key-image): Wrap epg-gpg-program in
1142 shell-quote-argument. 1142 shell-quote-argument.
1143 1143
11442013-02-22 David Engster <deng@randomsample.de> 11442013-02-22 David Engster <deng@randomsample.de>
diff --git a/lisp/isearch.el b/lisp/isearch.el
index 9a1729ac7e6..3abb03a084a 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -2233,6 +2233,9 @@ before the command is executed globally with terminated Isearch."
2233 (let* ((key (this-single-command-keys)) 2233 (let* ((key (this-single-command-keys))
2234 (main-event (aref key 0))) 2234 (main-event (aref key 0)))
2235 (cond 2235 (cond
2236 ;; Don't exit Isearch if we're in the middle of some
2237 ;; set-temporary-overlay-map thingy like universal-argument--mode.
2238 ((not (eq overriding-terminal-local-map isearch-mode-map)))
2236 ;; Don't exit Isearch for isearch key bindings. 2239 ;; Don't exit Isearch for isearch key bindings.
2237 ((commandp (lookup-key isearch-mode-map key nil))) 2240 ((commandp (lookup-key isearch-mode-map key nil)))
2238 ;; Optionally edit the search string instead of exiting. 2241 ;; Optionally edit the search string instead of exiting.
@@ -2241,8 +2244,6 @@ before the command is executed globally with terminated Isearch."
2241 ;; Handle a scrolling function or prefix argument. 2244 ;; Handle a scrolling function or prefix argument.
2242 ((or (and isearch-allow-prefix 2245 ((or (and isearch-allow-prefix
2243 (memq this-command '(universal-argument 2246 (memq this-command '(universal-argument
2244 universal-argument-more
2245 universal-argument-minus
2246 digit-argument negative-argument))) 2247 digit-argument negative-argument)))
2247 (and isearch-allow-scroll 2248 (and isearch-allow-scroll
2248 (or (eq (get this-command 'isearch-scroll) t) 2249 (or (eq (get this-command 'isearch-scroll) t)
diff --git a/lisp/mail/uce.el b/lisp/mail/uce.el
index 5ed9cc7d8f4..d45cdf4f41c 100644
--- a/lisp/mail/uce.el
+++ b/lisp/mail/uce.el
@@ -88,7 +88,7 @@
88 88
89;; Dec 10, 1996 -- posted draft version to gnu.sources.emacs 89;; Dec 10, 1996 -- posted draft version to gnu.sources.emacs
90 90
91;; Dec 11, 1996 -- fixed some typos, and Francesco Potorti` 91;; Dec 11, 1996 -- fixed some typos, and Francesco Potortì
92;; <F.Potorti@cnuce.cnr.it> pointed out that my use of defvar was 92;; <F.Potorti@cnuce.cnr.it> pointed out that my use of defvar was
93;; weird, suggested fix, and added let form. 93;; weird, suggested fix, and added let form.
94 94
@@ -375,3 +375,7 @@ You might need to set `uce-mail-reader' before using this."
375(provide 'uce) 375(provide 'uce)
376 376
377;;; uce.el ends here 377;;; uce.el ends here
378
379;; Local Variables:
380;; coding: utf-8
381;; End:
diff --git a/lisp/man.el b/lisp/man.el
index 9eb0ccd719a..56198035a22 100644
--- a/lisp/man.el
+++ b/lisp/man.el
@@ -55,7 +55,7 @@
55;; point and some other names have been changed to make it a drop-in 55;; point and some other names have been changed to make it a drop-in
56;; replacement for the old man.el package. 56;; replacement for the old man.el package.
57 57
58;; Francesco Potorti` <pot@cnuce.cnr.it> cleaned it up thoroughly, 58;; Francesco Potortì <pot@cnuce.cnr.it> cleaned it up thoroughly,
59;; making it faster, more robust and more tolerant of different 59;; making it faster, more robust and more tolerant of different
60;; systems' man idiosyncrasies. 60;; systems' man idiosyncrasies.
61 61
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el
index 25e019f6c3c..851e9b24649 100644
--- a/lisp/menu-bar.el
+++ b/lisp/menu-bar.el
@@ -2046,7 +2046,7 @@ It must accept a buffer as its only required argument.")
2046 ;; We used to "(define-key (current-global-map) [menu-bar buffer]" 2046 ;; We used to "(define-key (current-global-map) [menu-bar buffer]"
2047 ;; but that did not do the right thing when the [menu-bar buffer] 2047 ;; but that did not do the right thing when the [menu-bar buffer]
2048 ;; entry above had been moved (e.g. to a parent keymap). 2048 ;; entry above had been moved (e.g. to a parent keymap).
2049 (setcdr global-buffers-menu-map (cons "Select Buffer" buffers-menu))))) 2049 (setcdr global-buffers-menu-map (cons "Buffers" buffers-menu)))))
2050 2050
2051(add-hook 'menu-bar-update-hook 'menu-bar-update-buffers) 2051(add-hook 'menu-bar-update-hook 'menu-bar-update-buffers)
2052 2052
@@ -2261,6 +2261,50 @@ If nil, the current mouse position is used."
2261 (popup-menu-normalize-position (event-end position))) 2261 (popup-menu-normalize-position (event-end position)))
2262 (t position))) 2262 (t position)))
2263 2263
2264(defcustom tty-menu-open-use-tmm nil
2265 "If non-nil, \\[menu-bar-open] on a TTY will invoke `tmm-menubar'.
2266
2267If nil, \\[menu-bar-open] will drop down the menu corresponding to the
2268first (leftmost) menu-bar item; you can select other items by typing
2269\\[forward-char], \\[backward-char], \\[right-char] and \\[left-char]."
2270 :type '(choice (const :tag "F10 drops down TTY menus" nil)
2271 (const :tag "F10 invokes tmm-menubar" t))
2272 :group 'display
2273 :version "24.4")
2274
2275(defvar tty-menu--initial-menu-x 1
2276 "X coordinate of the first menu-bar menu dropped by F10.
2277
2278This is meant to be used only for debugging TTY menus.")
2279
2280(defun menu-bar-open (&optional frame)
2281 "Start key navigation of the menu bar in FRAME.
2282
2283This function decides which method to use to access the menu
2284depending on FRAME's terminal device. On X displays, it calls
2285`x-menu-bar-open'; on Windows, `w32-menu-bar-open'; otherwise it
2286calls either `popup-menu' or `tmm-menubar' depending on whether
2287\`tty-menu-open-use-tmm' is nil or not.
2288
2289If FRAME is nil or not given, use the selected frame."
2290 (interactive)
2291 (let ((type (framep (or frame (selected-frame)))))
2292 (cond
2293 ((eq type 'x) (x-menu-bar-open frame))
2294 ((eq type 'w32) (w32-menu-bar-open frame))
2295 ((and (null tty-menu-open-use-tmm)
2296 (not (zerop (or (frame-parameter nil 'menu-bar-lines) 0))))
2297 (let* ((x tty-menu--initial-menu-x)
2298 (menu (menu-bar-menu-at-x-y x 0 frame)))
2299 (popup-menu (or
2300 (lookup-key global-map (vector 'menu-bar menu))
2301 (lookup-key (current-local-map) (vector 'menu-bar menu)))
2302 (posn-at-x-y x 0 nil t) nil t)))
2303 (t (with-selected-frame (or frame (selected-frame))
2304 (tmm-menubar))))))
2305
2306(global-set-key [f10] 'menu-bar-open)
2307
2264(defvar tty-menu-navigation-map 2308(defvar tty-menu-navigation-map
2265 (let ((map (make-sparse-keymap))) 2309 (let ((map (make-sparse-keymap)))
2266 ;; The next line is disabled because it breaks interpretation of 2310 ;; The next line is disabled because it breaks interpretation of
@@ -2282,22 +2326,14 @@ If nil, the current mouse position is used."
2282 (next-line . tty-menu-next-item) 2326 (next-line . tty-menu-next-item)
2283 (previous-line . tty-menu-prev-item) 2327 (previous-line . tty-menu-prev-item)
2284 (newline . tty-menu-select) 2328 (newline . tty-menu-select)
2285 (newline-and-indent . tty-menu-select))) 2329 (newline-and-indent . tty-menu-select)
2330 (menu-bar-open . tty-menu-exit)))
2286 (substitute-key-definition (car bind) (cdr bind) 2331 (substitute-key-definition (car bind) (cdr bind)
2287 map (current-global-map))) 2332 map (current-global-map)))
2288 2333
2289 ;; The bindings of menu-bar items are so that clicking on the menu 2334 ;; The bindings of menu-bar items are so that clicking on the menu
2290 ;; bar when a menu is already shown pops down that menu. 2335 ;; bar when a menu is already shown pops down that menu.
2291 ;; FIXME: we should iterate over all the visible menu-bar items, 2336 (define-key map [menu-bar t] 'tty-menu-exit)
2292 ;; instead of naming them explicitly here. Also, this doesn't
2293 ;; include items added by current major mode.
2294 ;;
2295 ;; FIXME: Why not (define-key map [menu-bat t] 'tty-menu-exit) ? --Stef
2296 (dolist (event '(file edit options buffer tools help-menu))
2297 (substitute-key-definition
2298 (lookup-key (current-global-map) (vector 'menu-bar event))
2299 'tty-menu-exit
2300 map (current-global-map)))
2301 2337
2302 (define-key map [?\C-r] 'tty-menu-select) 2338 (define-key map [?\C-r] 'tty-menu-select)
2303 (define-key map [?\C-j] 'tty-menu-select) 2339 (define-key map [?\C-j] 'tty-menu-select)
@@ -2327,51 +2363,6 @@ If nil, the current mouse position is used."
2327 map) 2363 map)
2328 "Keymap used while processing TTY menus.") 2364 "Keymap used while processing TTY menus.")
2329 2365
2330
2331(defcustom tty-menu-open-use-tmm nil
2332 "If non-nil, \\[menu-bar-open] on a TTY will invoke `tmm-menubar'.
2333
2334If nil, \\[menu-bar-open] will drop down the menu corresponding to the
2335first (leftmost) menu-bar item; you can select other items by typing
2336\\[forward-char], \\[backward-char], \\[right-char] and \\[left-char]."
2337 :type '(choice (const :tag "F10 drops down TTY menus" nil)
2338 (const :tag "F10 invokes tmm-menubar" t))
2339 :group 'display
2340 :version "24.4")
2341
2342(defvar tty-menu--initial-menu-x 1
2343 "X coordinate of the first menu-bar menu dropped by F10.
2344
2345This is meant to be used only for debugging TTY menus.")
2346
2347(defun menu-bar-open (&optional frame)
2348 "Start key navigation of the menu bar in FRAME.
2349
2350This function decides which method to use to access the menu
2351depending on FRAME's terminal device. On X displays, it calls
2352`x-menu-bar-open'; on Windows, `w32-menu-bar-open'; otherwise it
2353calls either `popup-menu' or `tmm-menubar' depending on whether
2354\`tty-menu-open-use-tmm' is nil or not.
2355
2356If FRAME is nil or not given, use the selected frame."
2357 (interactive)
2358 (let ((type (framep (or frame (selected-frame)))))
2359 (cond
2360 ((eq type 'x) (x-menu-bar-open frame))
2361 ((eq type 'w32) (w32-menu-bar-open frame))
2362 ((and (null tty-menu-open-use-tmm)
2363 (not (zerop (or (frame-parameter nil 'menu-bar-lines) 0))))
2364 (let* ((x tty-menu--initial-menu-x)
2365 (menu (menu-bar-menu-at-x-y x 0 frame)))
2366 (popup-menu (or
2367 (lookup-key global-map (vector 'menu-bar menu))
2368 (lookup-key (current-local-map) (vector 'menu-bar menu)))
2369 (posn-at-x-y x 0 nil t) nil t)))
2370 (t (with-selected-frame (or frame (selected-frame))
2371 (tmm-menubar))))))
2372
2373(global-set-key [f10] 'menu-bar-open)
2374
2375(provide 'menu-bar) 2366(provide 'menu-bar)
2376 2367
2377;;; menu-bar.el ends here 2368;;; menu-bar.el ends here
diff --git a/lisp/progmodes/cmacexp.el b/lisp/progmodes/cmacexp.el
index 858d3298a65..6f1f9b89236 100644
--- a/lisp/progmodes/cmacexp.el
+++ b/lisp/progmodes/cmacexp.el
@@ -1,9 +1,8 @@
1;;; cmacexp.el --- expand C macros in a region 1;;; cmacexp.el --- expand C macros in a region
2 2
3;; Copyright (C) 1992, 1994, 1996, 2000-2013 Free Software Foundation, 3;; Copyright (C) 1992, 1994, 1996, 2000-2013 Free Software Foundation, Inc.
4;; Inc.
5 4
6;; Author: Francesco Potorti` <pot@gnu.org> 5;; Author: Francesco Potortì <pot@gnu.org>
7;; Adapted-By: ESR 6;; Adapted-By: ESR
8;; Keywords: c 7;; Keywords: c
9 8
@@ -70,7 +69,7 @@
70;; BUG REPORTS ======================================================= 69;; BUG REPORTS =======================================================
71 70
72;; Please report bugs, suggestions, complaints and so on to 71;; Please report bugs, suggestions, complaints and so on to
73;; pot@gnu.org (Francesco Potorti`). 72;; bug-gnu-emacs@gnu.org and pot@gnu.org (Francesco Potortì).
74 73
75;; IMPROVEMENTS OVER emacs 18.xx cmacexp.el ========================== 74;; IMPROVEMENTS OVER emacs 18.xx cmacexp.el ==========================
76 75
@@ -404,3 +403,7 @@ Optional arg DISPLAY non-nil means show messages in the echo area."
404 (kill-buffer outbuf)))) 403 (kill-buffer outbuf))))
405 404
406;;; cmacexp.el ends here 405;;; cmacexp.el ends here
406
407;; Local Variables:
408;; coding: utf-8
409;; End:
diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el
index 2f922162586..dfc93a21b40 100644
--- a/lisp/progmodes/ruby-mode.el
+++ b/lisp/progmodes/ruby-mode.el
@@ -246,7 +246,8 @@ Also ignores spaces after parenthesis when 'space."
246 '((id) 246 '((id)
247 (insts (inst) (insts ";" insts)) 247 (insts (inst) (insts ";" insts))
248 (inst (exp) (inst "iuwu-mod" exp)) 248 (inst (exp) (inst "iuwu-mod" exp))
249 (exp (exp1) (exp "," exp) (exp "=" exp) (exp "-" exp) (exp "+" exp)) 249 (exp (exp1) (exp "," exp) (exp "=" exp) (exp "-" exp) (exp "+" exp)
250 (id " @ " exp))
250 (exp1 (exp2) (exp2 "?" exp1 ":" exp1)) 251 (exp1 (exp2) (exp2 "?" exp1 ":" exp1))
251 (exp2 ("def" insts "end") 252 (exp2 ("def" insts "end")
252 ("begin" insts-rescue-insts "end") 253 ("begin" insts-rescue-insts "end")
@@ -274,7 +275,8 @@ Also ignores spaces after parenthesis when 'space."
274 (itheni (insts) (exp "then" insts)) 275 (itheni (insts) (exp "then" insts))
275 (ielsei (itheni) (itheni "else" insts)) 276 (ielsei (itheni) (itheni "else" insts))
276 (if-body (ielsei) (if-body "elsif" if-body))) 277 (if-body (ielsei) (if-body "elsif" if-body)))
277 '((nonassoc "in") (assoc ";") (assoc ",") (right "=") (assoc "-" "+")) 278 '((nonassoc "in") (assoc ";") (right " @ ")
279 (assoc ",") (right "=") (assoc "-" "+"))
278 '((assoc "when")) 280 '((assoc "when"))
279 '((assoc "elsif")) 281 '((assoc "elsif"))
280 '((assoc "rescue" "ensure")) 282 '((assoc "rescue" "ensure"))
@@ -316,6 +318,12 @@ Also ignores spaces after parenthesis when 'space."
316 (or (eq ?\{ (char-before)) 318 (or (eq ?\{ (char-before))
317 (looking-back "\\_<do" (- (point) 2))))) 319 (looking-back "\\_<do" (- (point) 2)))))
318 320
321(defun ruby-smie--args-separator-p (pos)
322 (and
323 (eq ?w (char-syntax (char-before)))
324 (< pos (point-max))
325 (memq (char-syntax (char-after pos)) '(?w ?\"))))
326
319(defun ruby-smie--forward-id () 327(defun ruby-smie--forward-id ()
320 (when (and (not (eobp)) 328 (when (and (not (eobp))
321 (eq ?w (char-syntax (char-after)))) 329 (eq ?w (char-syntax (char-after))))
@@ -326,35 +334,42 @@ Also ignores spaces after parenthesis when 'space."
326 tok))) 334 tok)))
327 335
328(defun ruby-smie--forward-token () 336(defun ruby-smie--forward-token ()
329 (skip-chars-forward " \t") 337 (let ((pos (point)))
330 (cond 338 (skip-chars-forward " \t")
331 ((looking-at "\\s\"") "") ;A heredoc or a string. 339 (cond
332 ((and (looking-at "[\n#]") 340 ((looking-at "\\s\"") "") ;A heredoc or a string.
333 (ruby-smie--implicit-semi-p)) ;Only add implicit ; when needed. 341 ((and (looking-at "[\n#]")
334 (if (eolp) (forward-char 1) (forward-comment 1)) 342 (ruby-smie--implicit-semi-p)) ;Only add implicit ; when needed.
335 ";") 343 (if (eolp) (forward-char 1) (forward-comment 1))
336 (t 344 ";")
337 (forward-comment (point-max)) 345 (t
338 (if (looking-at ":\\s.+") 346 (forward-comment (point-max))
339 (progn (goto-char (match-end 0)) (match-string 0)) ;; bug#15208. 347 (cond
340 (let ((tok (smie-default-forward-token))) 348 ((looking-at ":\\s.+")
341 (cond 349 (goto-char (match-end 0)) (match-string 0)) ;; bug#15208.
342 ((member tok '("unless" "if" "while" "until")) 350 ((and (< pos (point))
343 (if (save-excursion (forward-word -1) (ruby-smie--bosp)) 351 (save-excursion
344 tok "iuwu-mod")) 352 (ruby-smie--args-separator-p (prog1 (point) (goto-char pos)))))
345 ((equal tok "|") 353 " @ ")
346 (if (ruby-smie--opening-pipe-p) "opening-|" tok)) 354 (t
347 ((and (equal tok "") (looking-at "\\\\\n")) 355 (let ((tok (smie-default-forward-token)))
348 (goto-char (match-end 0)) (ruby-smie--forward-token))
349 ((equal tok "do")
350 (cond 356 (cond
351 ((not (ruby-smie--redundant-do-p 'skip)) tok) 357 ((member tok '("unless" "if" "while" "until"))
352 ((> (save-excursion (forward-comment (point-max)) (point)) 358 (if (save-excursion (forward-word -1) (ruby-smie--bosp))
353 (line-end-position)) 359 tok "iuwu-mod"))
354 (ruby-smie--forward-token)) ;Fully redundant. 360 ((equal tok "|")
355 (t ";"))) 361 (if (ruby-smie--opening-pipe-p) "opening-|" tok))
356 ((equal tok ".") (concat tok (ruby-smie--forward-id))) 362 ((and (equal tok "") (looking-at "\\\\\n"))
357 (t tok))))))) 363 (goto-char (match-end 0)) (ruby-smie--forward-token))
364 ((equal tok "do")
365 (cond
366 ((not (ruby-smie--redundant-do-p 'skip)) tok)
367 ((> (save-excursion (forward-comment (point-max)) (point))
368 (line-end-position))
369 (ruby-smie--forward-token)) ;Fully redundant.
370 (t ";")))
371 ((equal tok ".") (concat tok (ruby-smie--forward-id)))
372 (t tok)))))))))
358 373
359(defun ruby-smie--backward-id () 374(defun ruby-smie--backward-id ()
360 (when (and (not (bobp)) 375 (when (and (not (bobp))
@@ -372,6 +387,12 @@ Also ignores spaces after parenthesis when 'space."
372 ((and (> pos (line-end-position)) (ruby-smie--implicit-semi-p)) 387 ((and (> pos (line-end-position)) (ruby-smie--implicit-semi-p))
373 (skip-chars-forward " \t") ";") 388 (skip-chars-forward " \t") ";")
374 ((and (bolp) (not (bobp))) "") ;Presumably a heredoc. 389 ((and (bolp) (not (bobp))) "") ;Presumably a heredoc.
390 ((and (> pos (point)) (not (bolp))
391 (ruby-smie--args-separator-p pos))
392 ;; We have "ID SPC ID", which is a method call, but it binds less tightly
393 ;; than commas, since a method call can also be "ID ARG1, ARG2, ARG3".
394 ;; In some textbooks, "e1 @ e2" is used to mean "call e1 with arg e2".
395 " @ ")
375 (t 396 (t
376 (let ((tok (smie-default-backward-token))) 397 (let ((tok (smie-default-backward-token)))
377 (when (eq ?. (char-before)) 398 (when (eq ?. (char-before))
diff --git a/lisp/progmodes/sql.el b/lisp/progmodes/sql.el
index 56a6f155f31..0be23c27805 100644
--- a/lisp/progmodes/sql.el
+++ b/lisp/progmodes/sql.el
@@ -2439,7 +2439,7 @@ configuration."
2439 (user-error "Product `%s' is already defined" product) 2439 (user-error "Product `%s' is already defined" product)
2440 2440
2441 ;; Add product to the alist 2441 ;; Add product to the alist
2442 (add-to-list 'sql-product-alist `((,product :name ,display . ,plist))) 2442 (add-to-list 'sql-product-alist `(,product :name ,display . ,plist))
2443 ;; Add a menu item to the SQL->Product menu 2443 ;; Add a menu item to the SQL->Product menu
2444 (easy-menu-add-item sql-mode-menu '("Product") 2444 (easy-menu-add-item sql-mode-menu '("Product")
2445 ;; Each product is represented by a radio 2445 ;; Each product is represented by a radio
diff --git a/lisp/replace.el b/lisp/replace.el
index abb59a674e3..d92fb6809ef 100644
--- a/lisp/replace.el
+++ b/lisp/replace.el
@@ -810,9 +810,12 @@ a previously found match."
810 (keep-lines-read-args "How many matches for regexp")) 810 (keep-lines-read-args "How many matches for regexp"))
811 (save-excursion 811 (save-excursion
812 (if rstart 812 (if rstart
813 (progn 813 (if rend
814 (goto-char (min rstart rend)) 814 (progn
815 (setq rend (max rstart rend))) 815 (goto-char (min rstart rend))
816 (setq rend (max rstart rend)))
817 (goto-char rstart)
818 (setq rend (point-max)))
816 (if (and interactive transient-mark-mode mark-active) 819 (if (and interactive transient-mark-mode mark-active)
817 (setq rstart (region-beginning) 820 (setq rstart (region-beginning)
818 rend (region-end)) 821 rend (region-end))
diff --git a/m4/gnulib-comp.m4 b/m4/gnulib-comp.m4
index 534d56f5bac..c707e34993d 100644
--- a/m4/gnulib-comp.m4
+++ b/m4/gnulib-comp.m4
@@ -348,13 +348,13 @@ AC_DEFUN([gl_INIT],
348 gl_FUNC_GNU_STRFTIME 348 gl_FUNC_GNU_STRFTIME
349 gl_HEADER_STRING_H 349 gl_HEADER_STRING_H
350 gl_FUNC_STRTOIMAX 350 gl_FUNC_STRTOIMAX
351 if test $HAVE_STRTOIMAX = 0 || test $REPLACE_STRTOIMAX = 1; then 351 if test $HAVE_DECL_STRTOIMAX = 0 || test $REPLACE_STRTOIMAX = 1; then
352 AC_LIBOBJ([strtoimax]) 352 AC_LIBOBJ([strtoimax])
353 gl_PREREQ_STRTOIMAX 353 gl_PREREQ_STRTOIMAX
354 fi 354 fi
355 gl_INTTYPES_MODULE_INDICATOR([strtoimax]) 355 gl_INTTYPES_MODULE_INDICATOR([strtoimax])
356 gl_FUNC_STRTOUMAX 356 gl_FUNC_STRTOUMAX
357 if test $ac_cv_func_strtoumax = no; then 357 if test $HAVE_DECL_STRTOUMAX = 0 || test $REPLACE_STRTOUMAX = 1; then
358 AC_LIBOBJ([strtoumax]) 358 AC_LIBOBJ([strtoumax])
359 gl_PREREQ_STRTOUMAX 359 gl_PREREQ_STRTOUMAX
360 fi 360 fi
@@ -622,10 +622,10 @@ AC_DEFUN([gl_INIT],
622 if test $HAVE_READLINKAT = 0; then 622 if test $HAVE_READLINKAT = 0; then
623 func_gl_gnulib_m4code_03e0aaad4cb89ca757653bd367a6ccb7 623 func_gl_gnulib_m4code_03e0aaad4cb89ca757653bd367a6ccb7
624 fi 624 fi
625 if { test $HAVE_STRTOIMAX = 0 || test $REPLACE_STRTOIMAX = 1; } && test $ac_cv_type_long_long_int = yes; then 625 if { test $HAVE_DECL_STRTOIMAX = 0 || test $REPLACE_STRTOIMAX = 1; } && test $ac_cv_type_long_long_int = yes; then
626 func_gl_gnulib_m4code_strtoll 626 func_gl_gnulib_m4code_strtoll
627 fi 627 fi
628 if test $ac_cv_func_strtoumax = no && test $ac_cv_type_unsigned_long_long_int = yes; then 628 if { test $HAVE_DECL_STRTOUMAX = 0 || test $REPLACE_STRTOUMAX = 1; } && test $ac_cv_type_unsigned_long_long_int = yes; then
629 func_gl_gnulib_m4code_strtoull 629 func_gl_gnulib_m4code_strtoull
630 fi 630 fi
631 m4_pattern_allow([^gl_GNULIB_ENABLED_]) 631 m4_pattern_allow([^gl_GNULIB_ENABLED_])
diff --git a/m4/inttypes.m4 b/m4/inttypes.m4
index 3b483d39f5c..b06c77753bf 100644
--- a/m4/inttypes.m4
+++ b/m4/inttypes.m4
@@ -148,6 +148,7 @@ AC_DEFUN([gl_INTTYPES_H_DEFAULTS],
148 HAVE_DECL_STRTOIMAX=1; AC_SUBST([HAVE_DECL_STRTOIMAX]) 148 HAVE_DECL_STRTOIMAX=1; AC_SUBST([HAVE_DECL_STRTOIMAX])
149 HAVE_DECL_STRTOUMAX=1; AC_SUBST([HAVE_DECL_STRTOUMAX]) 149 HAVE_DECL_STRTOUMAX=1; AC_SUBST([HAVE_DECL_STRTOUMAX])
150 REPLACE_STRTOIMAX=0; AC_SUBST([REPLACE_STRTOIMAX]) 150 REPLACE_STRTOIMAX=0; AC_SUBST([REPLACE_STRTOIMAX])
151 REPLACE_STRTOUMAX=0; AC_SUBST([REPLACE_STRTOUMAX])
151 INT32_MAX_LT_INTMAX_MAX=1; AC_SUBST([INT32_MAX_LT_INTMAX_MAX]) 152 INT32_MAX_LT_INTMAX_MAX=1; AC_SUBST([INT32_MAX_LT_INTMAX_MAX])
152 INT64_MAX_EQ_LONG_MAX='defined _LP64'; AC_SUBST([INT64_MAX_EQ_LONG_MAX]) 153 INT64_MAX_EQ_LONG_MAX='defined _LP64'; AC_SUBST([INT64_MAX_EQ_LONG_MAX])
153 PRI_MACROS_BROKEN=0; AC_SUBST([PRI_MACROS_BROKEN]) 154 PRI_MACROS_BROKEN=0; AC_SUBST([PRI_MACROS_BROKEN])
diff --git a/m4/strtoimax.m4 b/m4/strtoimax.m4
index bee93b21e8b..20454dc029c 100644
--- a/m4/strtoimax.m4
+++ b/m4/strtoimax.m4
@@ -1,4 +1,4 @@
1# strtoimax.m4 serial 13 1# strtoimax.m4 serial 14
2dnl Copyright (C) 2002-2004, 2006, 2009-2013 Free Software Foundation, Inc. 2dnl Copyright (C) 2002-2004, 2006, 2009-2013 Free Software Foundation, Inc.
3dnl This file is free software; the Free Software Foundation 3dnl This file is free software; the Free Software Foundation
4dnl gives unlimited permission to copy and/or distribute it, 4dnl gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,7 @@ AC_DEFUN([gl_FUNC_STRTOIMAX],
15 HAVE_DECL_STRTOIMAX=0 15 HAVE_DECL_STRTOIMAX=0
16 fi 16 fi
17 17
18 if test $ac_cv_func_strtoimax = yes; then 18 if test "$ac_cv_func_strtoimax" = yes; then
19 HAVE_STRTOIMAX=1 19 HAVE_STRTOIMAX=1
20 dnl On AIX 5.1, strtoimax() fails for values outside the 'int' range. 20 dnl On AIX 5.1, strtoimax() fails for values outside the 'int' range.
21 AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles 21 AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
@@ -72,6 +72,10 @@ int main ()
72 *no) REPLACE_STRTOIMAX=1 ;; 72 *no) REPLACE_STRTOIMAX=1 ;;
73 esac 73 esac
74 else 74 else
75 if test "$ac_cv_have_decl_strtoimax" = yes; then
76 # HP-UX 11.11 has "#define strtoimax(...) ..." but no function.
77 REPLACE_STRTOIMAX=1
78 fi
75 HAVE_STRTOIMAX=0 79 HAVE_STRTOIMAX=0
76 fi 80 fi
77]) 81])
diff --git a/m4/strtoumax.m4 b/m4/strtoumax.m4
index 6a6aeb5dae1..9c8ff175d31 100644
--- a/m4/strtoumax.m4
+++ b/m4/strtoumax.m4
@@ -1,4 +1,4 @@
1# strtoumax.m4 serial 11 1# strtoumax.m4 serial 12
2dnl Copyright (C) 2002-2004, 2006, 2009-2013 Free Software Foundation, Inc. 2dnl Copyright (C) 2002-2004, 2006, 2009-2013 Free Software Foundation, Inc.
3dnl This file is free software; the Free Software Foundation 3dnl This file is free software; the Free Software Foundation
4dnl gives unlimited permission to copy and/or distribute it, 4dnl gives unlimited permission to copy and/or distribute it,
@@ -11,7 +11,12 @@ AC_DEFUN([gl_FUNC_STRTOUMAX],
11 dnl On OSF/1 5.1 with cc, this function is declared but not defined. 11 dnl On OSF/1 5.1 with cc, this function is declared but not defined.
12 AC_CHECK_FUNCS_ONCE([strtoumax]) 12 AC_CHECK_FUNCS_ONCE([strtoumax])
13 AC_CHECK_DECLS_ONCE([strtoumax]) 13 AC_CHECK_DECLS_ONCE([strtoumax])
14 if test "$ac_cv_have_decl_strtoumax" != yes; then 14 if test "$ac_cv_have_decl_strtoumax" = yes; then
15 if test "$ac_cv_func_strtoumax" != yes; then
16 # HP-UX 11.11 has "#define strtoimax(...) ..." but no function.
17 REPLACE_STRTOUMAX=1
18 fi
19 else
15 HAVE_DECL_STRTOUMAX=0 20 HAVE_DECL_STRTOUMAX=0
16 fi 21 fi
17]) 22])
diff --git a/nt/ChangeLog b/nt/ChangeLog
index 390a8eb0227..cdd9ec60b11 100644
--- a/nt/ChangeLog
+++ b/nt/ChangeLog
@@ -1,3 +1,15 @@
12013-10-12 Eli Zaretskii <eliz@gnu.org>
2
3 * inc/dirent.h (struct dirent) [__MINGW_MAJOR_VERSION >= 4]: Make
4 the layout of 'struct dirent' be compatible with MinGW32 runtime
5 versions 4.0 and later.
6
7 * inc/ms-w32.h (__MINGW_MAJOR_VERSION, __MINGW_MINOR_VERSION)
8 (__MINGW_PATCHLEVEL) [!__MINGW64_VERSION_MAJOR]: Define, if not
9 defined, but not for MinGW64.
10 (_USE_32BIT_TIME_T) [__MINGW64_VERSION_MAJOR]: Define, to force
11 use of 32-bit time_t type.
12
12013-10-07 Paul Eggert <eggert@cs.ucla.edu> 132013-10-07 Paul Eggert <eggert@cs.ucla.edu>
2 14
3 Improve support for popcount and counting trailing zeros (Bug#15550). 15 Improve support for popcount and counting trailing zeros (Bug#15550).
diff --git a/nt/INSTALL b/nt/INSTALL
index be36014e3b2..8f08c078a61 100644
--- a/nt/INSTALL
+++ b/nt/INSTALL
@@ -536,14 +536,6 @@ Windows 9X as well).
536 is in the PATH or otherwise accessible and that the binaries are 536 is in the PATH or otherwise accessible and that the binaries are
537 compatible (for example, that they were built with the same compiler). 537 compatible (for example, that they were built with the same compiler).
538 538
539 Binaries for the image libraries (among many others) can be found at
540 the GnuWin32 project. The PNG libraries are also included with GTK,
541 which is installed along with other Free Software that requires it.
542 Note specifically that, due to some packaging snafus in the
543 GnuWin32-supplied image libraries, you will need to download
544 _source_ packages for some of the libraries in order to get the
545 header files necessary for building Emacs with image support.
546
547 For PNG images, we recommend to use versions 1.4.x and later of 539 For PNG images, we recommend to use versions 1.4.x and later of
548 libpng, because previous versions had security issues. You can find 540 libpng, because previous versions had security issues. You can find
549 precompiled libraries and headers on the GTK download page for 541 precompiled libraries and headers on the GTK download page for
@@ -561,6 +553,27 @@ Windows 9X as well).
561 `dynamic-library-alist' and the value of `libpng-version', and 553 `dynamic-library-alist' and the value of `libpng-version', and
562 download compatible DLLs if needed. 554 download compatible DLLs if needed.
563 555
556 For GIF images, we recommend to use versions 5.0.0 or later of
557 giflib, as it is much enhanced wrt previous versions. You can find
558 precompiled binaries and headers for giflib on the ezwinports site,
559 http://sourceforge.net/projects/ezwinports/files/.
560
561 Version 5.0.0 and later of giflib are binary incompatible with
562 previous versions (the signatures of several functions have
563 changed), so Emacs will only look for giflib libraries that are
564 compatible with the version it was compiled against. Similar to
565 libpng, that version is given by the value of the Lisp variable
566 `libgif-version'; e.g., 50005 means version 5.0.5. The variable
567 `dynamic-library-alist' is automatically set to name only those DLL
568 libraries that are known to be compatible with the version given by
569 `libgif-version'.
570
571 Binaries for the other image libraries can be found at the GnuWin32
572 project. Note specifically that, due to some packaging snafus in
573 the GnuWin32-supplied image libraries, you will need to download
574 _source_ packages for some of the libraries in order to get the
575 header files necessary for building Emacs with image support.
576
564* Optional GnuTLS support 577* Optional GnuTLS support
565 578
566 To compile with GnuTLS, you will need pkg-config to be installed, as 579 To compile with GnuTLS, you will need pkg-config to be installed, as
diff --git a/nt/inc/dirent.h b/nt/inc/dirent.h
index 676b82d207b..328635c4853 100644
--- a/nt/inc/dirent.h
+++ b/nt/inc/dirent.h
@@ -19,6 +19,27 @@ struct dirent /* data from readdir() */
19 long d_ino; /* inode number of entry */ 19 long d_ino; /* inode number of entry */
20 unsigned short d_reclen; /* length of this record */ 20 unsigned short d_reclen; /* length of this record */
21 unsigned short d_namlen; /* length of string in d_name */ 21 unsigned short d_namlen; /* length of string in d_name */
22#if __MINGW_MAJOR_VERSION >= 4
23 /* MinGW.org runtime 4.x introduces a modified layout of
24 'struct dirent', which makes it binary incompatible with
25 previous versions. To add insult to injury, the MinGW
26 startup code calls 'readdir', which is implemented in
27 w32.c. So we need to define the same layout of this struct
28 as the MinGW runtime does, or else command-line globbing
29 will be broken. (Versions of MinGW runtime after 4.0 are
30 supposed not to call 'readdir' from startup code, but we
31 had better be safe than sorry.) */
32 unsigned d_type; /* File attributes */
33 /* The next 3 fields are declared 'time_t' in the MinGW 4.0
34 headers, but 'time_t' is by default a 64-bit type in 4.x,
35 and presumably the libmingwex library was compiled using
36 that default definition. So we must use 64-bit types here,
37 even though our time_t is a 32-bit type. What a mess! */
38 __int64 d_time_create;
39 __int64 d_time_access; /* always midnight local time */
40 __int64 d_time_write;
41 _fsize_t d_size;
42#endif
22 char d_name[MAXNAMLEN+1]; /* name of file */ 43 char d_name[MAXNAMLEN+1]; /* name of file */
23 }; 44 };
24 45
diff --git a/nt/inc/ms-w32.h b/nt/inc/ms-w32.h
index e670079eb35..d5257d9a937 100644
--- a/nt/inc/ms-w32.h
+++ b/nt/inc/ms-w32.h
@@ -24,6 +24,32 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
24#define WINDOWSNT 24#define WINDOWSNT
25#endif 25#endif
26 26
27/* The @#$%^&! MinGW developers stopped updating the values of
28 __MINGW32_VERSION, __MINGW32_MAJOR_VERSION, and
29 __MINGW32_MINOR_VERSION values in v4.x of the runtime, to
30 "discourage its uses". So the values of those macros can no longer
31 be trusted, and we need the workaround below, to have a single set
32 of macros we can trust. (The .17 minor version is arbitrary.) */
33#ifdef __MINGW32__
34#include <_mingw.h>
35#endif
36/* MinGW64 doesn't have this problem, and does not define
37 __MINGW_VERSION. */
38#ifndef __MINGW64_VERSION_MAJOR
39# ifndef __MINGW_VERSION
40# define __MINGW_VERSION 3.17
41# undef __MINGW_MAJOR_VERSION
42# define __MINGW_MAJOR_VERSION 3
43# undef __MINGW_MINOR_VERSION
44# define __MINGW_MINOR_VERSION 17
45# undef __MINGW_PATCHLEVEL
46# define __MINGW_PATCHLEVEL 0
47# endif
48#endif
49#if __MINGW_MAJOR_VERSION >= 4
50# define _USE_32BIT_TIME_T
51#endif
52
27/* #undef const */ 53/* #undef const */
28 54
29/* Number of chars of output in the buffer of a stdio stream. */ 55/* Number of chars of output in the buffer of a stdio stream. */
diff --git a/src/ChangeLog b/src/ChangeLog
index 74bb2a06cb9..b853f874e24 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,35 @@
12013-10-12 Eli Zaretskii <eliz@gnu.org>
2
3 * image.c (GIFLIB_MAJOR, GIFLIB_MINOR, GIFLIB_RELEASE): Move back
4 after inclusion of gif_lib.h, thus fixing compiler warnings caused
5 by 2013-10-10T19:15:33Z!eggert@cs.ucla.edu.
6
72013-10-11 Eli Zaretskii <eliz@gnu.org>
8
9 * xdisp.c (deep_copy_glyph_row): Handle the case that FROM and TO
10 have different dimensions. (Bug#15575)
11
12 * dispnew.c (fill_up_frame_row_with_spaces): Now has external
13 visibility.
14
15 * dispextern.h (fill_up_frame_row_with_spaces): Add prototype.
16
172013-10-11 Dmitry Antipov <dmantipov@yandex.ru>
18
19 * term.c (tty_menu_show): Never return with unbalanced
20 specpdl. Use eassert for debugging check. Adjust style.
21
222013-10-11 Eli Zaretskii <eliz@gnu.org>
23
24 * term.c (read_menu_input): Make selection of menu items
25 cyclical. Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
26 (tty_menu_activate): Fix off-by-one error when computing max_y.
27
282013-10-11 Teodor Zlatanov <tzz@lifelogs.com>
29
30 * gnutls.c (gnutls_audit_log_function): Add function for GnuTLS
31 audit logging (only used with GnuTLS 3.x) and enable it.
32
12013-10-11 Dmitry Antipov <dmantipov@yandex.ru> 332013-10-11 Dmitry Antipov <dmantipov@yandex.ru>
2 34
3 * dispnew.c (redraw_frame): Remove useless #ifdef because 35 * dispnew.c (redraw_frame): Remove useless #ifdef because
@@ -2333,7 +2365,7 @@
2333 * keyboard.c (Fdiscard_input): Do not increment update_mode_lines. 2365 * keyboard.c (Fdiscard_input): Do not increment update_mode_lines.
2334 * nsfns.m (x_set_cursor_type): 2366 * nsfns.m (x_set_cursor_type):
2335 * w32fns.c (x_set_cursor_type): 2367 * w32fns.c (x_set_cursor_type):
2336 * xfns.m (x_set_cursor_type): Do not set cursor_type_changed here... 2368 * xfns.c (x_set_cursor_type): Do not set cursor_type_changed here...
2337 * xdisp.c (set_frame_cursor_types): ...but in common code. 2369 * xdisp.c (set_frame_cursor_types): ...but in common code.
2338 2370
23392013-08-13 Dmitry Antipov <dmantipov@yandex.ru> 23712013-08-13 Dmitry Antipov <dmantipov@yandex.ru>
diff --git a/src/dispextern.h b/src/dispextern.h
index 10cd3169408..2d09fe7c5fe 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -3472,6 +3472,7 @@ void init_display (void);
3472void syms_of_display (void); 3472void syms_of_display (void);
3473extern Lisp_Object Qredisplay_dont_pause; 3473extern Lisp_Object Qredisplay_dont_pause;
3474extern void spec_glyph_lookup_face (struct window *, GLYPH *); 3474extern void spec_glyph_lookup_face (struct window *, GLYPH *);
3475extern void fill_up_frame_row_with_spaces (struct glyph_row *, int);
3475 3476
3476/* Defined in terminal.c */ 3477/* Defined in terminal.c */
3477 3478
diff --git a/src/dispnew.c b/src/dispnew.c
index d01de185332..3c0fda0b745 100644
--- a/src/dispnew.c
+++ b/src/dispnew.c
@@ -77,7 +77,6 @@ static int required_matrix_height (struct window *);
77static int required_matrix_width (struct window *); 77static int required_matrix_width (struct window *);
78static void change_frame_size_1 (struct frame *, int, int, bool, bool, bool); 78static void change_frame_size_1 (struct frame *, int, int, bool, bool, bool);
79static void increment_row_positions (struct glyph_row *, ptrdiff_t, ptrdiff_t); 79static void increment_row_positions (struct glyph_row *, ptrdiff_t, ptrdiff_t);
80static void fill_up_frame_row_with_spaces (struct glyph_row *, int);
81static void build_frame_matrix_from_window_tree (struct glyph_matrix *, 80static void build_frame_matrix_from_window_tree (struct glyph_matrix *,
82 struct window *); 81 struct window *);
83static void build_frame_matrix_from_leaf_window (struct glyph_matrix *, 82static void build_frame_matrix_from_leaf_window (struct glyph_matrix *,
@@ -2503,7 +2502,7 @@ fill_up_glyph_row_area_with_spaces (struct glyph_row *row, int area)
2503/* Add spaces to the end of ROW in a frame matrix until index UPTO is 2502/* Add spaces to the end of ROW in a frame matrix until index UPTO is
2504 reached. In frame matrices only one area, TEXT_AREA, is used. */ 2503 reached. In frame matrices only one area, TEXT_AREA, is used. */
2505 2504
2506static void 2505void
2507fill_up_frame_row_with_spaces (struct glyph_row *row, int upto) 2506fill_up_frame_row_with_spaces (struct glyph_row *row, int upto)
2508{ 2507{
2509 int i = row->used[TEXT_AREA]; 2508 int i = row->used[TEXT_AREA];
diff --git a/src/gnutls.c b/src/gnutls.c
index db0a6dac01c..2157d555053 100644
--- a/src/gnutls.c
+++ b/src/gnutls.c
@@ -55,6 +55,7 @@ static Lisp_Object QCgnutls_bootprop_verify_hostname_error;
55static Lisp_Object QCgnutls_bootprop_callbacks_verify; 55static Lisp_Object QCgnutls_bootprop_callbacks_verify;
56 56
57static void gnutls_log_function (int, const char *); 57static void gnutls_log_function (int, const char *);
58static void gnutls_audit_log_function (gnutls_session_t, const char *);
58static void gnutls_log_function2 (int, const char*, const char*); 59static void gnutls_log_function2 (int, const char*, const char*);
59 60
60 61
@@ -108,6 +109,9 @@ DEF_GNUTLS_FN (void, gnutls_dh_set_prime_bits,
108DEF_GNUTLS_FN (int, gnutls_error_is_fatal, (int)); 109DEF_GNUTLS_FN (int, gnutls_error_is_fatal, (int));
109DEF_GNUTLS_FN (int, gnutls_global_init, (void)); 110DEF_GNUTLS_FN (int, gnutls_global_init, (void));
110DEF_GNUTLS_FN (void, gnutls_global_set_log_function, (gnutls_log_func)); 111DEF_GNUTLS_FN (void, gnutls_global_set_log_function, (gnutls_log_func));
112#ifdef HAVE_GNUTLS3
113DEF_GNUTLS_FN (void, gnutls_global_set_audit_log_function, (gnutls_audit_log_func));
114#endif
111DEF_GNUTLS_FN (void, gnutls_global_set_log_level, (int)); 115DEF_GNUTLS_FN (void, gnutls_global_set_log_level, (int));
112DEF_GNUTLS_FN (void, gnutls_global_set_mem_functions, 116DEF_GNUTLS_FN (void, gnutls_global_set_mem_functions,
113 (gnutls_alloc_function, gnutls_alloc_function, 117 (gnutls_alloc_function, gnutls_alloc_function,
@@ -173,6 +177,9 @@ init_gnutls_functions (void)
173 LOAD_GNUTLS_FN (library, gnutls_error_is_fatal); 177 LOAD_GNUTLS_FN (library, gnutls_error_is_fatal);
174 LOAD_GNUTLS_FN (library, gnutls_global_init); 178 LOAD_GNUTLS_FN (library, gnutls_global_init);
175 LOAD_GNUTLS_FN (library, gnutls_global_set_log_function); 179 LOAD_GNUTLS_FN (library, gnutls_global_set_log_function);
180#ifdef HAVE_GNUTLS3
181 LOAD_GNUTLS_FN (library, gnutls_global_set_audit_log_function);
182#endif
176 LOAD_GNUTLS_FN (library, gnutls_global_set_log_level); 183 LOAD_GNUTLS_FN (library, gnutls_global_set_log_level);
177 LOAD_GNUTLS_FN (library, gnutls_global_set_mem_functions); 184 LOAD_GNUTLS_FN (library, gnutls_global_set_mem_functions);
178 LOAD_GNUTLS_FN (library, gnutls_handshake); 185 LOAD_GNUTLS_FN (library, gnutls_handshake);
@@ -230,6 +237,9 @@ init_gnutls_functions (void)
230#define fn_gnutls_error_is_fatal gnutls_error_is_fatal 237#define fn_gnutls_error_is_fatal gnutls_error_is_fatal
231#define fn_gnutls_global_init gnutls_global_init 238#define fn_gnutls_global_init gnutls_global_init
232#define fn_gnutls_global_set_log_function gnutls_global_set_log_function 239#define fn_gnutls_global_set_log_function gnutls_global_set_log_function
240#ifdef HAVE_GNUTLS3
241#define fn_gnutls_global_set_audit_log_function gnutls_global_set_audit_log_function
242#endif
233#define fn_gnutls_global_set_log_level gnutls_global_set_log_level 243#define fn_gnutls_global_set_log_level gnutls_global_set_log_level
234#define fn_gnutls_global_set_mem_functions gnutls_global_set_mem_functions 244#define fn_gnutls_global_set_mem_functions gnutls_global_set_mem_functions
235#define fn_gnutls_handshake gnutls_handshake 245#define fn_gnutls_handshake gnutls_handshake
@@ -249,6 +259,16 @@ init_gnutls_functions (void)
249#endif /* !WINDOWSNT */ 259#endif /* !WINDOWSNT */
250 260
251 261
262/* Function to log a simple audit message. */
263static void
264gnutls_audit_log_function (gnutls_session_t session, const char* string)
265{
266 if (global_gnutls_log_level >= 1)
267 {
268 message ("gnutls.c: [audit] %s", string);
269 }
270}
271
252/* Function to log a simple message. */ 272/* Function to log a simple message. */
253static void 273static void
254gnutls_log_function (int level, const char* string) 274gnutls_log_function (int level, const char* string)
@@ -797,6 +817,9 @@ one trustfile (usually a CA bundle). */)
797 if (TYPE_RANGED_INTEGERP (int, loglevel)) 817 if (TYPE_RANGED_INTEGERP (int, loglevel))
798 { 818 {
799 fn_gnutls_global_set_log_function (gnutls_log_function); 819 fn_gnutls_global_set_log_function (gnutls_log_function);
820#ifdef HAVE_GNUTLS3
821 fn_gnutls_global_set_audit_log_function (gnutls_audit_log_function);
822#endif
800 fn_gnutls_global_set_log_level (XINT (loglevel)); 823 fn_gnutls_global_set_log_level (XINT (loglevel));
801 max_log_level = XINT (loglevel); 824 max_log_level = XINT (loglevel);
802 XPROCESS (proc)->gnutls_log_level = max_log_level; 825 XPROCESS (proc)->gnutls_log_level = max_log_level;
diff --git a/src/image.c b/src/image.c
index ca2ef67c0b9..bb3290a89f6 100644
--- a/src/image.c
+++ b/src/image.c
@@ -7203,21 +7203,8 @@ gif_image_p (Lisp_Object object)
7203 7203
7204#ifdef HAVE_GIF 7204#ifdef HAVE_GIF
7205 7205
7206/* Giflib before 5.0 didn't define these macros. */
7207#ifndef GIFLIB_MAJOR
7208#define GIFLIB_MAJOR 4
7209#endif
7210
7211#if defined (HAVE_NTGUI) 7206#if defined (HAVE_NTGUI)
7212 7207
7213/* Giflib before 5.0 didn't define these macros (used only if HAVE_NTGUI). */
7214#ifndef GIFLIB_MINOR
7215#define GIFLIB_MINOR 0
7216#endif
7217#ifndef GIFLIB_RELEASE
7218#define GIFLIB_RELEASE 0
7219#endif
7220
7221/* winuser.h might define DrawText to DrawTextA or DrawTextW. 7208/* winuser.h might define DrawText to DrawTextA or DrawTextW.
7222 Undefine before redefining to avoid a preprocessor warning. */ 7209 Undefine before redefining to avoid a preprocessor warning. */
7223#ifdef DrawText 7210#ifdef DrawText
@@ -7228,12 +7215,25 @@ gif_image_p (Lisp_Object object)
7228#include <gif_lib.h> 7215#include <gif_lib.h>
7229#undef DrawText 7216#undef DrawText
7230 7217
7218/* Giflib before 5.0 didn't define these macros (used only if HAVE_NTGUI). */
7219#ifndef GIFLIB_MINOR
7220#define GIFLIB_MINOR 0
7221#endif
7222#ifndef GIFLIB_RELEASE
7223#define GIFLIB_RELEASE 0
7224#endif
7225
7231#else /* HAVE_NTGUI */ 7226#else /* HAVE_NTGUI */
7232 7227
7233#include <gif_lib.h> 7228#include <gif_lib.h>
7234 7229
7235#endif /* HAVE_NTGUI */ 7230#endif /* HAVE_NTGUI */
7236 7231
7232/* Giflib before 5.0 didn't define these macros. */
7233#ifndef GIFLIB_MAJOR
7234#define GIFLIB_MAJOR 4
7235#endif
7236
7237#ifdef WINDOWSNT 7237#ifdef WINDOWSNT
7238 7238
7239/* GIF library details. */ 7239/* GIF library details. */
diff --git a/src/term.c b/src/term.c
index 27471775d03..b946480cd0c 100644
--- a/src/term.c
+++ b/src/term.c
@@ -3177,11 +3177,15 @@ read_menu_input (struct frame *sf, int *x, int *y, int min_y, int max_y,
3177 { 3177 {
3178 if (*y < max_y) 3178 if (*y < max_y)
3179 *y += 1; 3179 *y += 1;
3180 else
3181 *y = min_y;
3180 } 3182 }
3181 else if (EQ (cmd, Qtty_menu_prev_item)) 3183 else if (EQ (cmd, Qtty_menu_prev_item))
3182 { 3184 {
3183 if (*y > min_y) 3185 if (*y > min_y)
3184 *y -= 1; 3186 *y -= 1;
3187 else
3188 *y = max_y;
3185 } 3189 }
3186 else if (EQ (cmd, Qtty_menu_select)) 3190 else if (EQ (cmd, Qtty_menu_select))
3187 st = 1; 3191 st = 1;
@@ -3290,7 +3294,7 @@ tty_menu_activate (tty_menu *menu, int *pane, int *selidx,
3290 { 3294 {
3291 int input_status; 3295 int input_status;
3292 int min_y = state[0].y; 3296 int min_y = state[0].y;
3293 int max_y = min (min_y + state[0].menu->count, FRAME_LINES (sf)) - 1; 3297 int max_y = min (min_y + state[0].menu->count, FRAME_LINES (sf) - 1) - 1;
3294 3298
3295 input_status = read_menu_input (sf, &x, &y, min_y, max_y, &first_time); 3299 input_status = read_menu_input (sf, &x, &y, min_y, max_y, &first_time);
3296 if (input_status) 3300 if (input_status)
@@ -3557,10 +3561,9 @@ tty_menu_show (struct frame *f, int x, int y, int for_click, int keymaps,
3557 int dispwidth, dispheight; 3561 int dispwidth, dispheight;
3558 int i, j, lines, maxlines; 3562 int i, j, lines, maxlines;
3559 int maxwidth; 3563 int maxwidth;
3560 ptrdiff_t specpdl_count = SPECPDL_INDEX (); 3564 ptrdiff_t specpdl_count;
3561 3565
3562 if (! FRAME_TERMCAP_P (f)) 3566 eassert (FRAME_TERMCAP_P (f));
3563 emacs_abort ();
3564 3567
3565 *error_name = 0; 3568 *error_name = 0;
3566 if (menu_items_n_panes == 0) 3569 if (menu_items_n_panes == 0)
@@ -3582,7 +3585,7 @@ tty_menu_show (struct frame *f, int x, int y, int for_click, int keymaps,
3582 3585
3583 /* Don't GC while we prepare and show the menu, because we give the 3586 /* Don't GC while we prepare and show the menu, because we give the
3584 menu functions pointers to the contents of strings. */ 3587 menu functions pointers to the contents of strings. */
3585 inhibit_garbage_collection (); 3588 specpdl_count = inhibit_garbage_collection ();
3586 3589
3587 /* Adjust coordinates to be root-window-relative. */ 3590 /* Adjust coordinates to be root-window-relative. */
3588 item_x = x += f->left_pos; 3591 item_x = x += f->left_pos;
@@ -3613,7 +3616,8 @@ tty_menu_show (struct frame *f, int x, int y, int for_click, int keymaps,
3613 { 3616 {
3614 tty_menu_destroy (menu); 3617 tty_menu_destroy (menu);
3615 *error_name = "Can't create pane"; 3618 *error_name = "Can't create pane";
3616 return Qnil; 3619 entry = Qnil;
3620 goto tty_menu_end;
3617 } 3621 }
3618 i += MENU_ITEMS_PANE_LENGTH; 3622 i += MENU_ITEMS_PANE_LENGTH;
3619 3623
@@ -3675,7 +3679,8 @@ tty_menu_show (struct frame *f, int x, int y, int for_click, int keymaps,
3675 { 3679 {
3676 tty_menu_destroy (menu); 3680 tty_menu_destroy (menu);
3677 *error_name = "Can't add selection to menu"; 3681 *error_name = "Can't add selection to menu";
3678 return Qnil; 3682 entry = Qnil;
3683 goto tty_menu_end;
3679 } 3684 }
3680 i += MENU_ITEMS_ITEM_LENGTH; 3685 i += MENU_ITEMS_ITEM_LENGTH;
3681 lines++; 3686 lines++;
@@ -3692,12 +3697,12 @@ tty_menu_show (struct frame *f, int x, int y, int for_click, int keymaps,
3692 x = max (x, 1); 3697 x = max (x, 1);
3693 y = max (y, 1); 3698 y = max (y, 1);
3694 tty_menu_locate (menu, x, y, &ulx, &uly, &width, &height); 3699 tty_menu_locate (menu, x, y, &ulx, &uly, &width, &height);
3695 if (ulx+width > dispwidth) 3700 if (ulx + width > dispwidth)
3696 { 3701 {
3697 x -= (ulx + width) - dispwidth; 3702 x -= (ulx + width) - dispwidth;
3698 ulx = dispwidth - width; 3703 ulx = dispwidth - width;
3699 } 3704 }
3700 if (uly+height > dispheight) 3705 if (uly + height > dispheight)
3701 { 3706 {
3702 y -= (uly + height) - dispheight; 3707 y -= (uly + height) - dispheight;
3703 uly = dispheight - height; 3708 uly = dispheight - height;
@@ -3803,8 +3808,9 @@ tty_menu_show (struct frame *f, int x, int y, int for_click, int keymaps,
3803 break; 3808 break;
3804 } 3809 }
3805 3810
3806 unbind_to (specpdl_count, Qnil); 3811 tty_menu_end:
3807 3812
3813 unbind_to (specpdl_count, Qnil);
3808 return entry; 3814 return entry;
3809} 3815}
3810 3816
diff --git a/src/xdisp.c b/src/xdisp.c
index 7cfb0ab51ad..033d3b47147 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -20590,10 +20590,10 @@ static void
20590deep_copy_glyph_row (struct glyph_row *to, struct glyph_row *from) 20590deep_copy_glyph_row (struct glyph_row *to, struct glyph_row *from)
20591{ 20591{
20592 struct glyph *pointers[1 + LAST_AREA]; 20592 struct glyph *pointers[1 + LAST_AREA];
20593 int to_used = to->used[TEXT_AREA];
20593 20594
20594 /* Save glyph pointers of TO. */ 20595 /* Save glyph pointers of TO. */
20595 memcpy (pointers, to->glyphs, sizeof to->glyphs); 20596 memcpy (pointers, to->glyphs, sizeof to->glyphs);
20596 eassert (to->used[TEXT_AREA] == from->used[TEXT_AREA]);
20597 20597
20598 /* Do a structure assignment. */ 20598 /* Do a structure assignment. */
20599 *to = *from; 20599 *to = *from;
@@ -20603,7 +20603,12 @@ deep_copy_glyph_row (struct glyph_row *to, struct glyph_row *from)
20603 20603
20604 /* Copy the glyphs. */ 20604 /* Copy the glyphs. */
20605 memcpy (to->glyphs[TEXT_AREA], from->glyphs[TEXT_AREA], 20605 memcpy (to->glyphs[TEXT_AREA], from->glyphs[TEXT_AREA],
20606 from->used[TEXT_AREA] * sizeof (struct glyph)); 20606 min (from->used[TEXT_AREA], to_used) * sizeof (struct glyph));
20607
20608 /* If we filled only part of the TO row, fill the rest with
20609 space_glyph (which will display as empty space). */
20610 if (to_used > from->used[TEXT_AREA])
20611 fill_up_frame_row_with_spaces (to, to_used);
20607} 20612}
20608 20613
20609/* Display one menu item on a TTY, by overwriting the glyphs in the 20614/* Display one menu item on a TTY, by overwriting the glyphs in the
diff --git a/test/ChangeLog b/test/ChangeLog
index ce3cdd2f1e3..7e8405e3676 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,7 @@
12013-10-11 Dmitry Gutov <dgutov@yandex.ru>
2
3 * indent/ruby.rb: Add two more cases.
4
12013-10-10 Stefan Monnier <monnier@iro.umontreal.ca> 52013-10-10 Stefan Monnier <monnier@iro.umontreal.ca>
2 6
3 * automated/ruby-mode-tests.el (ruby-with-temp-buffer): Move before 7 * automated/ruby-mode-tests.el (ruby-with-temp-buffer): Move before
@@ -145,7 +149,7 @@
145 149
1462013-08-28 Paul Eggert <eggert@cs.ucla.edu> 1502013-08-28 Paul Eggert <eggert@cs.ucla.edu>
147 151
148 * Makefile.in (SHELL): Now @SHELL@, not /bin/sh, 152 * automated/Makefile.in (SHELL): Now @SHELL@, not /bin/sh,
149 for portability to hosts where /bin/sh has problems. 153 for portability to hosts where /bin/sh has problems.
150 154
1512013-08-21 David Engster <deng@randomsample.de> 1552013-08-21 David Engster <deng@randomsample.de>
@@ -551,7 +555,7 @@
551 555
5522012-12-14 Dmitry Gutov <dgutov@yandex.ru> 5562012-12-14 Dmitry Gutov <dgutov@yandex.ru>
553 557
554 * automated/ruby-mode-tests.el 558 * automated/ruby-mode-tests.el:
555 Rename one interpolation test; add three more. 559 Rename one interpolation test; add three more.
556 (ruby-with-temp-buffer): New macro, use it where appropriate. 560 (ruby-with-temp-buffer): New macro, use it where appropriate.
557 (ruby-add-log-current-method-examples): Use "_" for target point. 561 (ruby-add-log-current-method-examples): Use "_" for target point.
diff --git a/test/indent/ruby.rb b/test/indent/ruby.rb
index b280ec93ce2..67584c01c7a 100644
--- a/test/indent/ruby.rb
+++ b/test/indent/ruby.rb
@@ -163,3 +163,14 @@ foo +
163foo = [1, 2, 3].map do |i| 163foo = [1, 2, 3].map do |i|
164 i + 1 164 i + 1
165end 165end
166
167foo_bar_tee(1, 2, 3)
168 .qux
169
170if foo &&
171 bar
172end
173
174method1 arg1, # bug#15594
175 method2 arg2,
176 arg3