1. 12 Sep, 2017 18 commits
    • Dmitry Gutov's avatar
      Call vc-resynch-buffer in vc-git-resolve-when-done · 4bef92e9
      Dmitry Gutov authored
      * lisp/vc/vc-git.el (vc-git-resolve-when-done):
      Call vc-resynch-buffer on the current file (bug#28121).
      Move its autoload to before this function.
    • Eric Abrahamsen's avatar
      Allow write-contents-functions to short-circuit buffer save · 9b980e26
      Eric Abrahamsen authored
      * lisp/files.el (basic-save-buffer): Re-arrange function so that
        write-contents-functions are run earlier. If they return non-nil,
        consider the buffer saved without requiring the buffer to be
        visiting a file.
        (save-some-buffers): This function should consider any buffer with a
        buffer-local value for write-contents-functions eligible for
      * test/lisp/files-tests.el (files-test-no-file-write-contents): New
      * doc/lispref/files.texi (Saving Buffers): Mention in docs.
      * etc/NEWS: And in NEWS.
    • Paul Eggert's avatar
      * etc/NEWS.25: Copy from emacs-25 etc/NEWS. · d07fd347
      Paul Eggert authored
    • Paul Eggert's avatar
      Less chatter for ’make info/dir’ · cb80fd0d
      Paul Eggert authored
      * Makefile.in (${srcdir}/info/dir): Tweak shell command so
      that an ordinary make says just "GEN info/dir" rather than
      also having a seemingly-unrelated mv line.
    • Paul Eggert's avatar
      Tweak Gnus doc re gnus-copy-file · 7aa49c29
      Paul Eggert authored
      * doc/misc/gnus.texi (Saving Articles):
      Document behavior with directory name targets (Bug#27986).
      Problem reported by Katsumi Yamaoka in:
    • Mark Oteiza's avatar
      Update uses of if-let and when-let · 370d0e7a
      Mark Oteiza authored
      * lisp/dom.el (dom-previous-sibling):
      * lisp/emacs-lisp/package.el (package--with-work-buffer):
      (package--sort-deps-in-alist, package--sort-by-dependence):
      (package-install-from-archive, package-install):
      (package-menu-execute, package-menu--populate-new-package-list):
      * lisp/filenotify.el (file-notify--rm-descriptor):
      (file-notify--event-watched-file, file-notify--event-file-name):
      (file-notify--event-file1-name, file-notify-rm-watch):
      * lisp/gnus/message.el (message-toggle-image-thumbnails):
      * lisp/gnus/nnimap.el (nnimap-request-move-article):
      * lisp/ibuf-ext.el (ibuffer-repair-saved-filters):
      * lisp/mpc.el (mpc-format):
      * lisp/net/eww.el (eww-tag-meta, eww-process-text-input):
      * lisp/net/shr.el (shr-tag-base, shr-tag-object, shr-make-table-1):
      * lisp/progmodes/prog-mode.el (prettify-symbols--post-command-hook):
      * lisp/svg.el (svg-remove):
      * lisp/textmodes/css-mode.el (css--named-color):
      * lisp/textmodes/sgml-mode.el (html-current-buffer-classes):
      (html-current-buffer-ids): Use if-let* and when-let* instead.
    • Mark Oteiza's avatar
      Implement and-let* · 4612b2a2
      Mark Oteiza authored
      This also includes changes to if-let and when-let.  The single tuple
      special case is ambiguous, and binding a symbol to nil is not as
      useful as binding it to its value outside the lexical scope of the
      binding.  (Bug#28254)
      * etc/NEWS: Mention.
      * lisp/emacs-lisp/subr-x.el (internal--listify):
      (internal--build-binding-value-form): Extend to account for
      solitary symbols and (EXPR) items in binding varlist.
      (if-let*, when-let*): Nix single tuple case and incumbent
      bind-symbol-to-nil behavior.
      (and-let*): New macro.
      (if-let, when-let): Mark obsolete.  Redefine in terms of if-let*, so
      they implicitly gain the new features without breaking existing code.
      * test/lisp/emacs-lisp/subr-x-tests.el: Adjust tests for: lack of
      single-tuple special case, lack of binding solitary symbols to nil,
      and the introduction of uninterned symbols for (EXPR) bindings.  Add
      SRFI-2 test suite adapted to Elisp.
    • Eli Zaretskii's avatar
    • Eli Zaretskii's avatar
      Fix minor typos in the Emacs manual · b215b3a2
      Eli Zaretskii authored
      * doc/emacs/text.texi (Org Organizer):
      * doc/emacs/ack.texi (Acknowledgments): Fix spelling of Org nodes.
    • Paul Eggert's avatar
      Merge Emacs 25.3 fixes · b3fd6831
      Paul Eggert authored
      The security patches released for Emacs 25.3 were less drastic
      than what we had immediately put into master.  Adjust master to
      match 25.3 (Bug#28350).
      * lisp/textmodes/enriched.el (enriched-translations):
      Re-enable FUNCTION and display translations that are safe.
      (enriched-handle-display-prop): Bring back.
      (enriched-decode-display-prop): Bring back, but disable
      the unsafe part.
    • Alan Mackenzie's avatar
      Don't match C++ template delims starting within a token. FIxes bug #28418. · f4859757
      Alan Mackenzie authored
      * lisp/progmodes/cc-engine.el (c-restore-<>-properties): After failing an
      attempted match from the start of a token (in particular, "<<"), move to the
      next token rather than the nex character before searching for the next "<".
    • Mark Oteiza's avatar
      Move gensym to core Elisp · 35c893dd
      Mark Oteiza authored
      * doc/lispref/symbols.texi (Creating Symbols): Mention gensym right
      after make-symbol.
      * etc/NEWS: Mention.
      * lisp/emacs-lisp/cl-macs.el (cl--gensym-counter): Alias to
      (cl-gensym): Alias to gensym.
      * lisp/emacs-lisp/cl.el: Remove gensym from list of aliases.
      * lisp/emacs-lisp/edebug.el (edebug-make-enter-wrapper):
      * lisp/emacs-lisp/ert-x.el (ert-with-message-capture):
      (ert--expand-should-1, ert--expand-should):
      * lisp/emacs-lisp/generator.el (cps--gensym):
      * lisp/emacs-lisp/gv.el (setf):
      * lisp/emacs-lisp/inline.el (inline--do-letlisteval):
      * lisp/emacs-lisp/pcase.el (pcase--make-docstring, pcase-dolist):
      (pcase--funcall, pcase--u1): Use gensym.
      * lisp/subr.el (gensym-counter): New variable.
      (gensym): New function, assimilated from cl-lib.
    • Mark Oteiza's avatar
      Fix cl-gentemp · 2ae46b4c
      Mark Oteiza authored
      * lisp/emacs-lisp/cl-macs.el (cl--gentemp-counter): New variable.
      (cl-gentemp): Use it.  Change prefix to "T".
    • Sam Steingold's avatar
    • Michael Albinus's avatar
      Extend tramp-tests according to bug#27986 · 49a42fbd
      Michael Albinus authored
      * test/lisp/net/tramp-tests.el (tramp-test11-copy-file)
      (tramp-test12-rename-file, tramp-test15-copy-directory)
      (tramp-test21-file-links): Extend tests.
      (tramp-test13-make-directory, tramp-test14-delete-directory):
      Specifiy error symbol in `should-error'.
    • Mark Oteiza's avatar
      Add cl-print method for hash tables · 370e04fb
      Mark Oteiza authored
      * lisp/emacs-lisp/cl-print.el (cl-print-object): New method.
    • Mark Oteiza's avatar
      Add docstrings to cl-print entry points · 8130186c
      Mark Oteiza authored
      * lisp/emacs-lisp/cl-print.el (cl-print-compiled): Fix docstring.
      (cl-prin1, cl-prin1-to-string): Add docstrings.
    • Mark Oteiza's avatar
      ; Fix previous commit · f6474b48
      Mark Oteiza authored
      The printer otherwise includes the 0x prefix.
      * lisp/emacs-lisp/cl-print.el: Add 0x to format.
  2. 11 Sep, 2017 15 commits
    • Glenn Morris's avatar
      Improve reproducibility of generated leim-list.el · 23252d4c
      Glenn Morris authored
      * lisp/international/quail.el (quail-update-leim-list-file):
      Sort the quail directory listing, for more stable output.
    • Philipp Stephani's avatar
    • Mark Oteiza's avatar
      Include sxhash of object with printed bytecode · a6615555
      Mark Oteiza authored
      This printing, while succint, is rather opaque.  At least give an
      immediate clue of whether different byte code printouts are for the
      same or different byte code objects.
      * lisp/emacs-lisp/cl-print.el (cl-print-object): Add object sxhash to
      printed token "#<bytecode>".
    • Eli Zaretskii's avatar
      Update documentation of 'max-lisp-eval-depth' · 4c57eda5
      Eli Zaretskii authored
      * doc/lispref/eval.texi (Eval): Update the documented default
      value of 'max-lisp-eval-depth'.
    • Eli Zaretskii's avatar
      Another place to produce debugging output in etags · 7fb03a28
      Eli Zaretskii authored
      * lib-src/etags.c (Ruby_functions): One more place to print
      debugging output under --debug.
    • Eli Zaretskii's avatar
      Improve documentation of etags-related features · e33234ab
      Eli Zaretskii authored
      * doc/emacs/maintaining.texi (Looking Up Identifiers): Document
      'xref-prompt-for-identifier'.  (Bug#28403)
      (Etags Regexps): Document \D back references in etags regexps.
    • Alan Third's avatar
      Fix macOS compatibility versions for vibrant dark theme (bug#28415) · aa4bb9de
      Alan Third authored
      * src/nsterm.m (ns_set_appearance, EmacsView::initFrameFromEmacs):
      Change macOS compatibility from 10.9 to 10.10.
    • Michael Albinus's avatar
      Further optimization in Tramp's file name decomposition · 70045452
      Michael Albinus authored
      * lisp/net/tramp.el (tramp-syntax): Recompute all file name
      components.  Call `custom-set-variables' after loading.
      (tramp-build-prefix-format, tramp-build-prefix-regexp)
      (tramp-build-completion-file-name-regexp): New defuns.
      (tramp-prefix-format, tramp-prefix-regexp)
      (tramp-method-regexp, tramp-postfix-method-format)
      (tramp-postfix-method-regexp, tramp-prefix-ipv6-format)
      (tramp-prefix-ipv6-regexp, tramp-postfix-ipv6-format)
      (tramp-postfix-ipv6-regexp, tramp-postfix-host-format)
      (tramp-file-name-structure, tramp-file-name-regexp)
      (tramp-completion-file-name-regexp): Convert defuns into defvars.
      (tramp-remote-file-name-spec-regexp-alist): Remove.
      (tramp-build-file-name-structure): Simplify.
      (tramp-completion-file-name-regexp-alist): New defconst.
      (tramp-tramp-file-p, tramp-dissect-file-name)
      (tramp-completion-dissect-file-name, tramp-clear-passwd):
      * lisp/net/tramp-ftp.el (tramp-ftp-file-name-handler):
      * lisp/net/tramp-sh.el (tramp-sh-handle-vc-registered)
      (tramp-compute-multi-hops): Use variables but functions for
      file name components.
      * test/lisp/net/tramp-tests.el (tramp-test24-file-name-completion):
      Use variables but functions for file name components.
    • Paul Eggert's avatar
      Port tramp-tests to new copy-directory behavior · 29963648
      Paul Eggert authored
      * test/lisp/net/tramp-tests.el (tramp-test15-copy-directory):
      Use directory name as arg for copy-directory when we want
      the special behavior.
    • Paul Eggert's avatar
      Adjust thumbs to new rename-file behavior · 2aa02882
      Paul Eggert authored
      * etc/NEWS: Mention this.
      * lisp/thumbs.el (thumbs-rename-images): Treat the destination
      as special only if it is a directory name.  When there is
      a marked list, turn the destination into a directory name
      if it is not already.
    • Paul Eggert's avatar
      Adjust ob-tangle to new copy-file behavior · 74b8615f
      Paul Eggert authored
      * lisp/org/ob-tangle.el (org-babel-tangle-publish):
      Port to new copy-file behavior.
    • Paul Eggert's avatar
      Make gnus-copy-file act like copy-file etc. · 739593d6
      Paul Eggert authored
      * etc/NEWS: Mention this.
      * lisp/gnus/gnus-util.el (gnus-copy-file): Treat the destination
      as special only if it is a directory name.
    • Paul Eggert's avatar
      Make write-file act like copy-file etc. · 61946d99
      Paul Eggert authored
      Change write-file to be consistent with the new behavior
      of copy-file, etc.
      * etc/NEWS: Mention this.
      * lisp/files.el (write-file): Treat the destination as special
      only if it is a directory name.
    • Paul Eggert's avatar
      Make copy-directory act like copy-file etc. · e2279486
      Paul Eggert authored
      Do the special dance with the destination only if it is a
      directory name, for consistency with copy-file etc. (Bug#27986).
      * doc/emacs/files.texi (Copying and Naming):
      * doc/lispref/files.texi (Create/Delete Dirs):
      * etc/NEWS: Document this.
      * lisp/files.el (copy-directory): Treat NEWNAME as special
      only if it is a directory name.
    • Paul Eggert's avatar
      Fix some make-directory bugs · cf9891e1
      Paul Eggert authored
      * lisp/files.el (files--ensure-directory): New function.
      (make-directory): Use it to avoid bugs when (make-directory FOO t)
      is invoked on a non-directory, or on a directory hierarchy that
      is being built by some other process while Emacs is running.
      * test/lisp/files-tests.el (files-tests--make-directory): New test.
  3. 10 Sep, 2017 7 commits
    • Paul Eggert's avatar
      Fix race with rename-file etc. with dir NEWNAME · 01c885f2
      Paul Eggert authored
      This changes the behavior of rename-file etc. slightly.
      The old behavior mostly disagreed with the documentation, and had
      a race condition bug that could allow attackers to modify victims'
      write-protected directories (Bug#27986).
      * doc/lispref/files.texi (Changing Files): Document that in
      rename-file etc., NEWFILE is special if it is a directory name.
      * etc/NEWS: Document the change in behavior.
      * src/fileio.c (directory_like): Remove.  All uses removed.
      (expand_cp_target): Test only whether NEWNAME is a directory name,
      not whether it is currently a directory.  This avoids a race.
      (Fcopy_file, Frename_file, Fadd_name_to_file, Fmake_symbolic_link):
      Document behavior if NEWNAME is a directory name.
      (Frename_file): Simplify now that the destdir behavior occurs
      only when NEWNAME is a directory name.
      * test/lisp/net/tramp-tests.el (tramp-test11-copy-file)
      (tramp-test12-rename-file, tramp--test-check-files):
      Adjust tests to match new behavior.
    • Eli Zaretskii's avatar
      Extend --debug printouts in etags · 52739ffe
      Eli Zaretskii authored
      * lib-src/etags.c (regex_tag_multiline, readline): Under
      "--debug", print tags found via regexps.
    • Eli Zaretskii's avatar
      Add --debug option to etags · 4b86cf56
      Eli Zaretskii authored
      * lib-src/etags.c (make_tag): Print found tags under --debug.
      (longopts): Add --debug.
    • Paul Eggert's avatar
      Spelling fixes · cdef84fb
      Paul Eggert authored
      * lisp/progmodes/cc-langs.el:
      (c-ambiguous-overloadable-or-identifier-prefixes): Rename from
      c-ambiguous-overloadable-or-identifier-prefices.  Caller changed.
    • Mark Oteiza's avatar
      ; Add to last commit · 4973788c
      Mark Oteiza authored
      * lisp/xdg.el (xdg-desktop-entry-regexp): Add a commented capture group
      for future reference.
    • Eli Zaretskii's avatar
      ; * configure.ac: Fix last change. · 6ae84563
      Eli Zaretskii authored
    • Paul Eggert's avatar
      Merge from gnulib · b079ee72
      Paul Eggert authored
      This incorporates:
      2017-09-08 stddef: Avoid conflict with system-defined max_align_t
      2017-08-24 warnings: fix compilation with old autoconf
      2017-08-23 glob: merge from glibc with Zanella glob changes
      2017-08-17 random: Fix test compilation failure on Cygwin 1.5.25
      * doc/misc/texinfo.tex, lib/flexmember.h, lib/stddef.in.h:
      * lib/stdlib.in.h, m4/manywarnings.m4, m4/stdlib_h.m4:
      * m4/warnings.m4:
      Copy from Gnulib.
      * lib/gnulib.mk.in: Regenerate.