1. 08 Aug, 2017 3 commits
    • Mark Oteiza's avatar
      Do some cleanup in mailcap.el · c3445aed
      Mark Oteiza authored
      * lisp/net/mailcap.el: Use lexical-binding.
      (mailcap--set-user-mime-data, mailcap-possible-viewers): Use pcase
      destructuring.
      (mailcap-mime-data): Remove some entries for ancient functions.
      (mailcap-parse-mailcaps, mailcap-mime-info): Nix single-branch ifs.
      (mailcap-parse-mimetype-file): Just use append.
      (mailcap-command-p): Remove unused function.
      c3445aed
    • Tino Calancha's avatar
      query-replace: Undo replacements performed with 'comma · 919ac3ae
      Tino Calancha authored
      During a `query-replace', the char ',' replaces the character
      at point and doesn't move point;  right after, the char 'u'
      must undo such replacement (Bug#27268).
      * lisp/replace.el (replace--push-stack):
      New macro extracted from `perform-replace'.
      (perform-replace): Use it.
      * test/lisp/replace-tests.el (query-replace--undo): Add test.
      919ac3ae
    • Noam Postavsky's avatar
      bec5b602
  2. 07 Aug, 2017 18 commits
  3. 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
  4. 05 Aug, 2017 9 commits