1. 07 Aug, 2017 4 commits
  2. 06 Aug, 2017 10 commits
    • Paul Eggert's avatar
      Fix some crashes on self-modifying Elisp code · 93511e94
      Paul Eggert authored
      Prompted by a problem report by Alex in:
      http://lists.gnu.org/archive/html/emacs-devel/2017-08/msg00143.html
      * src/eval.c (For, Fprogn, Fsetq, FletX, eval_sub):
      Compute XCDR (x) near XCAR (x); although this doesn't fix any bugs,
      it is likely to run a bit faster with typical hardware caches.
      (Fif): Use Fcdr instead of XCDR, to avoid crashing on
      self-modifying S-expressions.
      (Fsetq, Flet, eval_sub): Count the number of arguments as we go
      instead of trusting an Flength prepass, to avoid problems when the
      code is self-modifying.
      (Fquote, Ffunction, Fdefvar, Fdefconst): Prefer !NILP to CONSP
      where either will do.  This is mostly to document the fact that
      the value must be a proper list.  It's also a tiny bit faster on
      typical machines nowadays.
      (Fdefconst, FletX): Prefer XCAR+XCDR to Fcar+Fcdr when either will do.
      (eval_sub): Check that the args are a list as opposed to some
      other object that has a length. This prevents e.g. (if . "string")
      from making Emacs dump core in some cases.
      * test/src/eval-tests.el (eval-tests--if-dot-string)
      (eval-tests--let-with-circular-defs, eval-tests--mutating-cond):
      New tests.
      93511e94
    • Eli Zaretskii's avatar
    • Mark Oteiza's avatar
      ; Fix previous commit · c2a8cffe
      Mark Oteiza authored
      The mailcap minibuffer completion used dynamic binding.  Locally set
      a dynamic variable.
      * lisp/dired-aux.el: Store list of files in
      `minibuffer-completion-table'.
      c2a8cffe
    • Tino Calancha's avatar
      Minor tweak in a dired test · b1b99edd
      Tino Calancha authored
      * test/lisp/dired-tests.el (dired-test-bug27968):
      Ensure the new header has different length than the original one.
      b1b99edd
    • Tino Calancha's avatar
      dired-delete-file: Do not TAB complete the user answer · e7aabd8b
      Tino Calancha authored
      This action might delete directories containing valuable information.
      Before previous commit, we prompted users with `yes-or-no-p'
      which doesn't TAB complete the user answer.  Let's play safe and
      keep requiring full answers.
      * emacs-master/lisp/dired.el (dired-delete-file): Use `read-string'
      instead of `completing-read' to read the user answers.
      e7aabd8b
    • Tino Calancha's avatar
      dired-do-delete: Allow to delete dirs recursively without prompts · cbea38e5
      Tino Calancha authored
      * lisp/dired.el (dired-delete-file): Accept 2 additional answers:
      'all', to delete all directories recursively and no prompt anymore.
      'quit', to cancel directory deletions (Bug#27940).
      Show help message when user inputs 'help'.
      (dired-do-flagged-delete): Bind locally dired-recursive-deletes
      so that we can overwrite its global value.
      Wrapp the loop within a catch '--delete-cancel to catch when
      the user abort the directtry deletion.
      * doc/emacs/dired.texi (Dired Deletion): Update manual.
      * etc/NEWS (Changes in Specialized Modes and Packages in Emacs 26.1):
      Announce this change.
      cbea38e5
    • Paul Eggert's avatar
      Fix a couple of make-temp-file races · 785a4a1d
      Paul Eggert authored
      * lisp/emacs-lisp/autoload.el (autoload--save-buffer):
      * lisp/emacs-lisp/bytecomp.el (byte-compile-file):
      Use make-temp-file, not make-temp-name, to avoid an unlikely race
      that could lose data.  Remove the deletion hook as quickly as
      possible after the file is renamed; though a race still remains
      here, it is smaller than before.
      785a4a1d
    • Tino Calancha's avatar
      Dired w/ eshell-ls: Handle shell wildcards in file name · c0df64db
      Tino Calancha authored
      * lisp/eshell/em-ls.el (eshell-ls--insert-directory):
      Use eshell-extended-glob (Bug#27844).
      * test/lisp/dired-tests.el (dired-test-bug27844): Add test.
      c0df64db
    • Tino Calancha's avatar
      dired-revert: save line numbers instead of positions · 7c3593f8
      Tino Calancha authored
      Positions might change if the length of one dired header line
      changes; this happen, for instance, if we add new files.
      Instead, line numbers are invariant under shrinks/enlargements
      of the file header.
      https://lists.gnu.org/archive/html/emacs-devel/2017-07/msg01092.html
      * lisp/dired.el (dired-save-positions): Save the line numbers at point.
      (dired-restore-positions): Use forward-line to restore the original
      position (Bug#27968).
      * test/lisp/dired-tests.el (dired-test-bug27968): Add test.
      7c3593f8
    • Tom Tromey's avatar
      Respect comment-auto-fill-only-comments · 9b463fa8
      Tom Tromey authored
      Respect comment-auto-fill-only-comments when auto-filling and a
      comment syntax is defined.
      
      * lisp/newcomment.el (comment-indent-new-line): Do not check
      comment-auto-fill-only-comments.
      * lisp/simple.el (internal-auto-fill): New defun.
      * src/cmds.c (internal_self_insert): Call Qinternal_auto_fill, not
      auto_fill_function.
      (syms_of_cmds): Define Qinternal_auto_fill.
      9b463fa8
  3. 05 Aug, 2017 13 commits
  4. 04 Aug, 2017 10 commits
  5. 03 Aug, 2017 3 commits
    • Paul Eggert's avatar
      Port recent rename changes to RHEL 7 + NFS · ddc1ff58
      Paul Eggert authored
      Problem reported by Ted Zlatanov in:
      http://lists.gnu.org/archive/html/emacs-devel/2017-08/msg00082.html
      * src/fileio.c (Frename_file): On RHEL 7 + NFS, renameat2 can fail
      with errno == EINVAL when it is not supported.  So treat that case
      like errno == ENOSYS.  Also, when ok_if_already_exists is neither
      nil nor an integer, just call plain rename; this avoids an extra
      syscall to renameat2 when the latter fails with errno == EINVAL or
      ENOSYS or ENOENT.
      ddc1ff58
    • Paul Eggert's avatar
      Port GnuTLS usage to Ubuntu 16.04.2 LTS · f465efe4
      Paul Eggert authored
      * src/gnutls.h (HAVE_GNUTLS3_AEAD): Define only if GnuTLS 3.5.1 or
      later, as opposed to the old 3.4.0 or later.
      f465efe4
    • Paul Eggert's avatar
      Simplify configuration of HAVE_GNUTLS3 etc. · a8a81df8
      Paul Eggert authored
      There's only one GnuTLS, so configuring these symbols at
      'configure' time is overkill.  Simplify things by moving their
      configuration to src/gnutls.h (Bug#27708).
      * configure.ac (HAVE_GNUTLS3, HAVE_GNUTLS3_HMAC, HAVE_GNUTLS3_AEAD)
      (HAVE_GNUTLS3_CIPHER, HAVE_GNUTLS3_DIGEST): Move these definitions
      from here ...
      * src/gnutls.h: ... to here, and simplify.
      a8a81df8