commit 073e5ddb22dc50895cc255e760c89d490cea37ea (HEAD, refs/remotes/origin/master) Author: Michael Albinus Date: Sun Mar 12 10:28:18 2017 +0100 Use path/to/file instead of path/to.file in tramp.texi * doc/misc/tramp.texi (Configuration, File name Syntax): Use path/to/file instead of path/to.file. diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi index dd52a87a1a..9c295a49a6 100644 --- a/doc/misc/tramp.texi +++ b/doc/misc/tramp.texi @@ -428,7 +428,7 @@ XEmacs support has been stopped in January 2016. @value{tramp} is initially configured to use the @command{scp} program to connect to the remote host. Just type @kbd{C-x C-f} and then enter -file name @file{@trampf{user@@host,/path/to.file}}. For details, +file name @file{@trampf{user@@host,/path/to/file}}. For details, @xref{Default Method}, @xref{Default User}, @xref{Default Host}. For problems related to the behavior of the remote shell, @xref{Remote @@ -2190,7 +2190,7 @@ remote user name for log in to the remote host. Specifying a different name using the proper syntax will override this default behavior: @example -@trampf{user@@host,path/to.file} +@trampf{user@@host,path/to/file} @end example @file{@trampf{daniel@@melancholia,.emacs}} is for file @file{.emacs} commit 026c2cbf354fab138a65ad7093f17fbb23edb23c Author: Paul Eggert Date: Sun Mar 12 00:02:52 2017 -0800 Remove some stray gnulib files * admin/merge-gnulib: rm m4/gnulib-tool.m4 too. (GNULIB_MODULES): Remove unsetenv, as it is not needed and the --avoid=unsetenv option avoided most of it anyway. * lib/unsetenv.c, m4/gnulib-tool.m4, m4/setenv.m4: Remove. * lib/gnulib.mk: Regenerate. diff --git a/admin/merge-gnulib b/admin/merge-gnulib index 7e7971fe88..76918f3d34 100755 --- a/admin/merge-gnulib +++ b/admin/merge-gnulib @@ -40,7 +40,7 @@ GNULIB_MODULES=' sig2str socklen stat-time std-gnu11 stdalign stddef stdio stpcpy strftime strtoimax strtoumax symlink sys_stat sys_time time time_r time_rz timegm timer-time timespec-add timespec-sub - unsetenv update-copyright utimens + update-copyright utimens vla warnings ' @@ -97,7 +97,8 @@ test -x "$gnulib_srcdir"/gnulib-tool || { "$gnulib_srcdir"/gnulib-tool --dir="$src" $GNULIB_TOOL_FLAGS $GNULIB_MODULES && rm -- "$src"lib/gl_openssl.h "$src"m4/fcntl-o.m4 \ "$src"m4/gl-openssl.m4 \ - "$src"m4/gnulib-cache.m4 "$src"m4/warn-on-use.m4 "$src"m4/wint_t.m4 && + "$src"m4/gnulib-cache.m4 "$src"m4/gnulib-tool.m4 \ + "$src"m4/warn-on-use.m4 "$src"m4/wint_t.m4 && cp -- "$gnulib_srcdir"/build-aux/texinfo.tex "$src"doc/misc && cp -- "$gnulib_srcdir"/build-aux/move-if-change "$src"build-aux && { test -z "$src" || cd "$src"; } && diff --git a/lib/gnulib.mk b/lib/gnulib.mk index e4aa90ecac..7a0de1b440 100644 --- a/lib/gnulib.mk +++ b/lib/gnulib.mk @@ -21,7 +21,7 @@ # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. -# Reproduce by: gnulib-tool --import --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=close --avoid=dup --avoid=fchdir --avoid=fstat --avoid=malloc-posix --avoid=msvc-inval --avoid=msvc-nothrow --avoid=open --avoid=openat-die --avoid=opendir --avoid=raise --avoid=save-cwd --avoid=select --avoid=setenv --avoid=sigprocmask --avoid=stdarg --avoid=stdbool --avoid=threadlib --avoid=unsetenv --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt binary-io byteswap c-ctype c-strcase careadlinkat close-stream count-leading-zeros count-one-bits count-trailing-zeros crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 environ execinfo faccessat fcntl fcntl-h fdatasync fdopendir filemode filevercmp flexmember fstatat fsync getloadavg getopt-gnu gettime gettimeofday gitlog-to-changelog ignore-value intprops largefile lstat manywarnings memrchr mkostemp mktime pipe2 pselect pthread_sigmask putenv qcopy-acl readlink readlinkat sig2str socklen stat-time std-gnu11 stdalign stddef stdio stpcpy strftime strtoimax strtoumax symlink sys_stat sys_time time time_r time_rz timegm timer-time timespec-add timespec-sub unsetenv update-copyright utimens vla warnings +# Reproduce by: gnulib-tool --import --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=close --avoid=dup --avoid=fchdir --avoid=fstat --avoid=malloc-posix --avoid=msvc-inval --avoid=msvc-nothrow --avoid=open --avoid=openat-die --avoid=opendir --avoid=raise --avoid=save-cwd --avoid=select --avoid=setenv --avoid=sigprocmask --avoid=stdarg --avoid=stdbool --avoid=threadlib --avoid=unsetenv --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt binary-io byteswap c-ctype c-strcase careadlinkat close-stream count-leading-zeros count-one-bits count-trailing-zeros crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 environ execinfo faccessat fcntl fcntl-h fdatasync fdopendir filemode filevercmp flexmember fstatat fsync getloadavg getopt-gnu gettime gettimeofday gitlog-to-changelog ignore-value intprops largefile lstat manywarnings memrchr mkostemp mktime pipe2 pselect pthread_sigmask putenv qcopy-acl readlink readlinkat sig2str socklen stat-time std-gnu11 stdalign stddef stdio stpcpy strftime strtoimax strtoumax symlink sys_stat sys_time time time_r time_rz timegm timer-time timespec-add timespec-sub update-copyright utimens vla warnings MOSTLYCLEANFILES += core *.stackdump diff --git a/lib/unsetenv.c b/lib/unsetenv.c deleted file mode 100644 index 6d742c1596..0000000000 --- a/lib/unsetenv.c +++ /dev/null @@ -1,128 +0,0 @@ -/* Copyright (C) 1992, 1995-2002, 2005-2017 Free Software Foundation, - Inc. - This file is part of the GNU C Library. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -/* Don't use __attribute__ __nonnull__ in this compilation unit. Otherwise gcc - optimizes away the name == NULL test below. */ -#define _GL_ARG_NONNULL(params) - -#include - -/* Specification. */ -#include - -#include -#if !_LIBC -# define __set_errno(ev) ((errno) = (ev)) -#endif - -#include -#include - -#if !_LIBC -# define __environ environ -#endif - -#if _LIBC -/* This lock protects against simultaneous modifications of 'environ'. */ -# include -__libc_lock_define_initialized (static, envlock) -# define LOCK __libc_lock_lock (envlock) -# define UNLOCK __libc_lock_unlock (envlock) -#else -# define LOCK -# define UNLOCK -#endif - -/* In the GNU C library we must keep the namespace clean. */ -#ifdef _LIBC -# define unsetenv __unsetenv -#endif - -#if _LIBC || !HAVE_UNSETENV - -int -unsetenv (const char *name) -{ - size_t len; - char **ep; - - if (name == NULL || *name == '\0' || strchr (name, '=') != NULL) - { - __set_errno (EINVAL); - return -1; - } - - len = strlen (name); - - LOCK; - - ep = __environ; - while (*ep != NULL) - if (!strncmp (*ep, name, len) && (*ep)[len] == '=') - { - /* Found it. Remove this pointer by moving later ones back. */ - char **dp = ep; - - do - dp[0] = dp[1]; - while (*dp++); - /* Continue the loop in case NAME appears again. */ - } - else - ++ep; - - UNLOCK; - - return 0; -} - -#ifdef _LIBC -# undef unsetenv -weak_alias (__unsetenv, unsetenv) -#endif - -#else /* HAVE_UNSETENV */ - -# undef unsetenv -# if !HAVE_DECL_UNSETENV -# if VOID_UNSETENV -extern void unsetenv (const char *); -# else -extern int unsetenv (const char *); -# endif -# endif - -/* Call the underlying unsetenv, in case there is hidden bookkeeping - that needs updating beyond just modifying environ. */ -int -rpl_unsetenv (const char *name) -{ - int result = 0; - if (!name || !*name || strchr (name, '=')) - { - errno = EINVAL; - return -1; - } - while (getenv (name)) -# if !VOID_UNSETENV - result = -# endif - unsetenv (name); - return result; -} - -#endif /* HAVE_UNSETENV */ diff --git a/m4/gnulib-tool.m4 b/m4/gnulib-tool.m4 deleted file mode 100644 index 2e2d8f6dcd..0000000000 --- a/m4/gnulib-tool.m4 +++ /dev/null @@ -1,57 +0,0 @@ -# gnulib-tool.m4 serial 2 -dnl Copyright (C) 2004-2005, 2009-2017 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl The following macros need not be invoked explicitly. -dnl Invoking them does nothing except to declare default arguments -dnl for "gnulib-tool --import". - -dnl Usage: gl_LOCAL_DIR([DIR]) -AC_DEFUN([gl_LOCAL_DIR], []) - -dnl Usage: gl_MODULES([module1 module2 ...]) -AC_DEFUN([gl_MODULES], []) - -dnl Usage: gl_AVOID([module1 module2 ...]) -AC_DEFUN([gl_AVOID], []) - -dnl Usage: gl_SOURCE_BASE([DIR]) -AC_DEFUN([gl_SOURCE_BASE], []) - -dnl Usage: gl_M4_BASE([DIR]) -AC_DEFUN([gl_M4_BASE], []) - -dnl Usage: gl_PO_BASE([DIR]) -AC_DEFUN([gl_PO_BASE], []) - -dnl Usage: gl_DOC_BASE([DIR]) -AC_DEFUN([gl_DOC_BASE], []) - -dnl Usage: gl_TESTS_BASE([DIR]) -AC_DEFUN([gl_TESTS_BASE], []) - -dnl Usage: gl_WITH_TESTS -AC_DEFUN([gl_WITH_TESTS], []) - -dnl Usage: gl_LIB([LIBNAME]) -AC_DEFUN([gl_LIB], []) - -dnl Usage: gl_LGPL or gl_LGPL([VERSION]) -AC_DEFUN([gl_LGPL], []) - -dnl Usage: gl_MAKEFILE_NAME([FILENAME]) -AC_DEFUN([gl_MAKEFILE_NAME], []) - -dnl Usage: gl_LIBTOOL -AC_DEFUN([gl_LIBTOOL], []) - -dnl Usage: gl_MACRO_PREFIX([PREFIX]) -AC_DEFUN([gl_MACRO_PREFIX], []) - -dnl Usage: gl_PO_DOMAIN([DOMAIN]) -AC_DEFUN([gl_PO_DOMAIN], []) - -dnl Usage: gl_VC_FILES([BOOLEAN]) -AC_DEFUN([gl_VC_FILES], []) diff --git a/m4/setenv.m4 b/m4/setenv.m4 deleted file mode 100644 index 005aa8cfed..0000000000 --- a/m4/setenv.m4 +++ /dev/null @@ -1,160 +0,0 @@ -# setenv.m4 serial 26 -dnl Copyright (C) 2001-2004, 2006-2017 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -AC_DEFUN([gl_FUNC_SETENV], -[ - AC_REQUIRE([gl_FUNC_SETENV_SEPARATE]) - AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles - if test $ac_cv_func_setenv = no; then - HAVE_SETENV=0 - else - AC_CACHE_CHECK([whether setenv validates arguments], - [gl_cv_func_setenv_works], - [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ - #include - #include - #include - ]], [[ - int result = 0; - { - if (setenv ("", "", 0) != -1) - result |= 1; - else if (errno != EINVAL) - result |= 2; - } - { - if (setenv ("a", "=", 1) != 0) - result |= 4; - else if (strcmp (getenv ("a"), "=") != 0) - result |= 8; - } - return result; - ]])], - [gl_cv_func_setenv_works=yes], [gl_cv_func_setenv_works=no], - [case "$host_os" in - # Guess yes on glibc systems. - *-gnu*) gl_cv_func_setenv_works="guessing yes" ;; - # If we don't know, assume the worst. - *) gl_cv_func_setenv_works="guessing no" ;; - esac - ])]) - case "$gl_cv_func_setenv_works" in - *yes) ;; - *) - REPLACE_SETENV=1 - ;; - esac - fi -]) - -# Like gl_FUNC_SETENV, except prepare for separate compilation -# (no REPLACE_SETENV, no AC_LIBOBJ). -AC_DEFUN([gl_FUNC_SETENV_SEPARATE], -[ - AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) - AC_CHECK_DECLS_ONCE([setenv]) - if test $ac_cv_have_decl_setenv = no; then - HAVE_DECL_SETENV=0 - fi - AC_CHECK_FUNCS_ONCE([setenv]) - gl_PREREQ_SETENV -]) - -AC_DEFUN([gl_FUNC_UNSETENV], -[ - AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) - AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles - AC_CHECK_DECLS_ONCE([unsetenv]) - if test $ac_cv_have_decl_unsetenv = no; then - HAVE_DECL_UNSETENV=0 - fi - AC_CHECK_FUNCS([unsetenv]) - if test $ac_cv_func_unsetenv = no; then - HAVE_UNSETENV=0 - else - HAVE_UNSETENV=1 - dnl Some BSDs return void, failing to do error checking. - AC_CACHE_CHECK([for unsetenv() return type], [gt_cv_func_unsetenv_ret], - [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[ -#undef _BSD -#define _BSD 1 /* unhide unsetenv declaration in OSF/1 5.1 */ -#include -extern -#ifdef __cplusplus -"C" -#endif -int unsetenv (const char *name); - ]], - [[]])], - [gt_cv_func_unsetenv_ret='int'], - [gt_cv_func_unsetenv_ret='void'])]) - if test $gt_cv_func_unsetenv_ret = 'void'; then - AC_DEFINE([VOID_UNSETENV], [1], [Define to 1 if unsetenv returns void - instead of int.]) - REPLACE_UNSETENV=1 - fi - - dnl Solaris 10 unsetenv does not remove all copies of a name. - dnl Haiku alpha 2 unsetenv gets confused by assignment to environ. - dnl OpenBSD 4.7 unsetenv("") does not fail. - AC_CACHE_CHECK([whether unsetenv obeys POSIX], - [gl_cv_func_unsetenv_works], - [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ - #include - #include - extern char **environ; - ]], [[ - char entry1[] = "a=1"; - char entry2[] = "b=2"; - char *env[] = { entry1, entry2, NULL }; - if (putenv ((char *) "a=1")) return 1; - if (putenv (entry2)) return 2; - entry2[0] = 'a'; - unsetenv ("a"); - if (getenv ("a")) return 3; - if (!unsetenv ("") || errno != EINVAL) return 4; - entry2[0] = 'b'; - environ = env; - if (!getenv ("a")) return 5; - entry2[0] = 'a'; - unsetenv ("a"); - if (getenv ("a")) return 6; - ]])], - [gl_cv_func_unsetenv_works=yes], [gl_cv_func_unsetenv_works=no], - [case "$host_os" in - # Guess yes on glibc systems. - *-gnu*) gl_cv_func_unsetenv_works="guessing yes" ;; - # If we don't know, assume the worst. - *) gl_cv_func_unsetenv_works="guessing no" ;; - esac - ])]) - case "$gl_cv_func_unsetenv_works" in - *yes) ;; - *) - REPLACE_UNSETENV=1 - ;; - esac - fi -]) - -# Prerequisites of lib/setenv.c. -AC_DEFUN([gl_PREREQ_SETENV], -[ - AC_REQUIRE([AC_FUNC_ALLOCA]) - AC_REQUIRE([gl_ENVIRON]) - AC_CHECK_HEADERS_ONCE([unistd.h]) - AC_CHECK_HEADERS([search.h]) - AC_CHECK_FUNCS([tsearch]) -]) - -# Prerequisites of lib/unsetenv.c. -AC_DEFUN([gl_PREREQ_UNSETENV], -[ - AC_REQUIRE([gl_ENVIRON]) - AC_CHECK_HEADERS_ONCE([unistd.h]) -]) commit cbd4708db21b633c64066dd6288d33d4ff6b4a5f Author: Paul Eggert Date: Sat Mar 11 23:53:02 2017 -0800 Merge from gnulib This incorporates: 2017-03-11 gnulib-common.m4: avoid aclocal.m4 bloat * doc/misc/texinfo.tex, m4/gnulib-common.m4: Copy from gnulib. diff --git a/doc/misc/texinfo.tex b/doc/misc/texinfo.tex index 338bcf6504..970d878468 100644 --- a/doc/misc/texinfo.tex +++ b/doc/misc/texinfo.tex @@ -3,7 +3,7 @@ % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % -\def\texinfoversion{2017-01-14.15} +\def\texinfoversion{2017-03-07.20} % % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, @@ -5888,8 +5888,8 @@ \divide\doublecolumnhsize by 2 \hsize = \doublecolumnhsize % - % Double the \vsize as well. (We don't need a separate register here, - % since nobody clobbers \vsize.) + % Double the \vsize as well. + \advance\vsize by -\ht\partialpage \vsize = 2\vsize % % For the benefit of balancing columns @@ -5907,12 +5907,12 @@ % previous page. \dimen@ = \vsize \divide\dimen@ by 2 - \advance\dimen@ by -\ht\partialpage % % box0 will be the left-hand column, box2 the right. - \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@ + \setbox0=\vsplit\PAGE to\dimen@ \setbox2=\vsplit\PAGE to\dimen@ + \global\advance\vsize by 2\ht\partialpage \onepageout\pagesofar - \unvbox255 + \unvbox\PAGE \penalty\outputpenalty } % @@ -5976,9 +5976,9 @@ % % \pagegoal was set to the doubled \vsize above, since we restarted % the current page. We're now back to normal single-column - % typesetting, so reset \pagegoal to the normal \vsize (after the - % \endgroup where \vsize got restored). - \pagegoal = \vsize + % typesetting, so reset \pagegoal to the normal \vsize. + \global\vsize = \txipageheight % + \pagegoal = \txipageheight % } \newbox\balancedcolumns \setbox\balancedcolumns=\vbox{shouldnt see this}% @@ -5986,7 +5986,7 @@ % Only called for the last of the double column material. \doublecolumnout % does the others. \def\balancecolumns{% - \setbox0 = \vbox{\unvbox255}% like \box255 but more efficient, see p.120. + \setbox0 = \vbox{\unvbox\PAGE}% like \box255 but more efficient, see p.120. \dimen@ = \ht0 \advance\dimen@ by \topskip \advance\dimen@ by-\baselineskip @@ -11274,6 +11274,7 @@ \pdfvorigin = 1 true in \else \ifx\XeTeXrevision\thisisundefined + \special{papersize=#8,#7}% \else \pdfpageheight #7\relax \pdfpagewidth #8\relax diff --git a/m4/gnulib-common.m4 b/m4/gnulib-common.m4 index 7b957f8a59..36f2acc553 100644 --- a/m4/gnulib-common.m4 +++ b/m4/gnulib-common.m4 @@ -1,4 +1,4 @@ -# gnulib-common.m4 serial 37 +# gnulib-common.m4 serial 38 dnl Copyright (C) 2007-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -256,7 +256,8 @@ AC_DEFUN([gl_PROG_AR_RANLIB], dnl library formats. In particular, the GNU binutils programs ar and ranlib dnl produce libraries that work only with gcc, not with cc. AC_REQUIRE([AC_PROG_CC]) - AC_BEFORE([$0], [AM_PROG_AR]) + dnl The '][' hides this use from 'aclocal'. + AC_BEFORE([$0], [A][M_PROG_AR]) AC_CACHE_CHECK([for Minix Amsterdam compiler], [gl_cv_c_amsterdam_compiler], [ AC_EGREP_CPP([Amsterdam], @@ -288,7 +289,9 @@ Amsterdam dnl __ACK__. It may seem like its easier to avoid calling the macro here, dnl but we need to AC_SUBST both AR/ARFLAGS (thus those must have some good dnl default value and automake should usually know them). - m4_ifdef([AM_PROG_AR], [AM_PROG_AR], [:]) + dnl + dnl The '][' hides this use from 'aclocal'. + m4_ifdef([A][M_PROG_AR], [A][M_PROG_AR], [:]) fi dnl In case the code above has not helped with setting AR/ARFLAGS, use commit 3175b5353375ca356866cef2c2bed8c058ffda18 Author: Glenn Morris Date: Sat Mar 11 17:22:56 2017 -0800 Remove trivial duplication in epg-config * lisp/epg-config.el (epg-config--program-alist): Use epg-gpg-minimum-version. diff --git a/lisp/epg-config.el b/lisp/epg-config.el index 611f984106..7b963add88 100644 --- a/lisp/epg-config.el +++ b/lisp/epg-config.el @@ -83,9 +83,9 @@ Note that the buffer name starts with a space." (defconst epg-gpg-minimum-version "1.4.3") (defconst epg-config--program-alist - '((OpenPGP + `((OpenPGP epg-gpg-program - ("gpg2" . "2.1.6") ("gpg" . "1.4.3")) + ("gpg2" . "2.1.6") ("gpg" . ,epg-gpg-minimum-version)) (CMS epg-gpgsm-program ("gpgsm" . "2.0.4"))) commit cce29d942dc62f39664e890fbf210a6568df4594 Author: Glenn Morris Date: Sat Mar 11 17:21:20 2017 -0800 Small epg-find-configuration improvement * lisp/epg-config.el (epg-find-configuration): Handle epg-gpg-program customized but not saved. (Bug#25947) diff --git a/lisp/epg-config.el b/lisp/epg-config.el index ea1ae6c439..611f984106 100644 --- a/lisp/epg-config.el +++ b/lisp/epg-config.el @@ -129,7 +129,8 @@ version requirement is met." (or (and (not no-cache) (alist-get protocol epg--configurations)) ;; If the executable value is already set with M-x ;; customize, use it without checking. - (if (and symbol (get symbol 'saved-value)) + (if (and symbol (or (get symbol 'saved-value) + (get symbol 'customized-value))) (let ((configuration (funcall constructor (symbol-value symbol)))) (push (cons protocol configuration) epg--configurations) commit 46fcaf3361b56306c288f2ddf4dd8a7dfab7ce2f Author: Stefan Monnier Date: Sat Mar 11 16:36:23 2017 -0500 Improve last change * lisp/emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-2): Use ppss to check escaping and add help-echo. diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el index 3ed0d062e3..c2f5f42ace 100644 --- a/lisp/emacs-lisp/lisp-mode.el +++ b/lisp/emacs-lisp/lisp-mode.el @@ -412,13 +412,17 @@ This will generate compile-time constants from BINDINGS." (,(concat "\\\\\\\\\\[\\(" lisp-mode-symbol-regexp "\\)\\]") (1 font-lock-constant-face prepend)) ;; Ineffective backslashes (typically in need of doubling). - ("\\(?:[^\\]\\|^\\)\\(?:\\\\\\\\\\)*\\(\\(\\\\\\)\\([^\"\\]\\)\\)" - (2 (and (nth 3 (syntax-ppss)) - (equal (ignore-errors - (car (read-from-string - (format "\"%s\"" (match-string 1))))) - (match-string 3)) - font-lock-warning-face) + ("\\(\\\\\\)\\([^\"\\]\\)" + (1 (let ((ppss (save-excursion (syntax-ppss (match-beginning 0))))) + (and (nth 3 ppss) ;Inside a string. + (not (nth 5 ppss)) ;The \ is not itself \-escaped. + (equal (ignore-errors + (car (read-from-string + (format "\"%s\"" + (match-string-no-properties 0))))) + (match-string-no-properties 2)) + `(face ,font-lock-warning-face + help-echo "This \\ has no effect"))) prepend)) ;; Words inside ‘’ and `' tend to be symbol names. (,(concat "[`‘]\\(\\(?:\\sw\\|\\s_\\|\\\\.\\)" commit 4086d850dc02c95615095adddd1e798377f03cec Author: Stefan Monnier Date: Sat Mar 11 11:35:14 2017 -0500 Highlight useless backslashes in Elisp strings * lisp/emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-2): Put warning face on backslashes that have no effect. diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el index d720e0bc57..3ed0d062e3 100644 --- a/lisp/emacs-lisp/lisp-mode.el +++ b/lisp/emacs-lisp/lisp-mode.el @@ -411,6 +411,15 @@ This will generate compile-time constants from BINDINGS." ;; Words inside \\[] tend to be for `substitute-command-keys'. (,(concat "\\\\\\\\\\[\\(" lisp-mode-symbol-regexp "\\)\\]") (1 font-lock-constant-face prepend)) + ;; Ineffective backslashes (typically in need of doubling). + ("\\(?:[^\\]\\|^\\)\\(?:\\\\\\\\\\)*\\(\\(\\\\\\)\\([^\"\\]\\)\\)" + (2 (and (nth 3 (syntax-ppss)) + (equal (ignore-errors + (car (read-from-string + (format "\"%s\"" (match-string 1))))) + (match-string 3)) + font-lock-warning-face) + prepend)) ;; Words inside ‘’ and `' tend to be symbol names. (,(concat "[`‘]\\(\\(?:\\sw\\|\\s_\\|\\\\.\\)" lisp-mode-symbol-regexp "\\)['’]") commit ee51550c3951a47446ec85cb7f0b1ea7a898acaf Author: Eli Zaretskii Date: Sat Mar 11 13:34:08 2017 +0200 Fix generation of nt/gnulib.mk on macOS * nt/Makefile.in (${srcdir}/gnulib.mk): Don't use the -f- option to Sed, as that is not portable with non-GNU Sed variants. (Bug#26043) diff --git a/nt/Makefile.in b/nt/Makefile.in index 34c552ca26..90ca6b85f7 100644 --- a/nt/Makefile.in +++ b/nt/Makefile.in @@ -262,6 +262,7 @@ emacs.res ../src/emacs.res: emacs.rc ${srcdir}/icons/emacs.ico \ $(AM_V_RC)${WINDRES} -I ${srcdir} -O coff -o $@ $< ${srcdir}/gnulib.mk: ${srcdir}/gnulib-modules-to-delete.cfg ${srcdir}/../lib/gnulib.mk - $(AM_V_GEN)sed '/^[^#]/s|^.*$$|/^## begin *gnulib module &/,/^## end *gnulib module &/d|' < $< | \ - sed -f- ${srcdir}/../lib/gnulib.mk > $@-t && \ - ${srcdir}/../build-aux/move-if-change $@-t $@ + $(AM_V_GEN)sed '/^[^#]/s|^.*$$|/^## begin *gnulib module &/,/^## end *gnulib module &/d|' < $< > t-gnulib.mk && \ + sed -f t-gnulib.mk ${srcdir}/../lib/gnulib.mk > $@-t && \ + ${srcdir}/../build-aux/move-if-change $@-t $@ && \ + rm -f t-gnulib.mk