diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2016-05-02 10:46:53 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2016-05-02 10:46:53 -0700 |
commit | 2bf7bc4161a3b3e1eceaf8422773de87ae233ea3 (patch) | |
tree | d17e0d30b08dc696fa30cb3eec8673841eddef0a | |
parent | d05806fda1cbba2db112bc783597fbe9d27175b2 (diff) | |
parent | bf21c84f0d3dab33b4836098b789eaddf9492b2a (diff) | |
download | emacs-2bf7bc4161a3b3e1eceaf8422773de87ae233ea3.tar.gz |
Merge from origin/emacs-25
bf21c84 Fix quoting problem in cc-engine debug message
8f36614 Add electric-quote-string unit test
6280531 Don’t electrically quote ‘'’ in Python
fd7b430 `nreverse' Grep hits before passing them to xref--convert-hits
-rw-r--r-- | lisp/electric.el | 11 | ||||
-rw-r--r-- | lisp/progmodes/cc-engine.el | 2 | ||||
-rw-r--r-- | lisp/progmodes/xref.el | 2 | ||||
-rw-r--r-- | test/lisp/electric-tests.el | 8 |
4 files changed, 18 insertions, 5 deletions
diff --git a/lisp/electric.el b/lisp/electric.el index ab79943c9dd..e2896010405 100644 --- a/lisp/electric.el +++ b/lisp/electric.el @@ -444,10 +444,15 @@ This requotes when a quoting key is typed." (let ((start (if (and comment-start comment-use-syntax) (when (or electric-quote-comment electric-quote-string) - (let ((syntax (syntax-ppss))) - (and (or (and electric-quote-comment (nth 4 syntax)) + (let* ((syntax (syntax-ppss)) + (beg (nth 8 syntax))) + (and beg + (or (and electric-quote-comment (nth 4 syntax)) (and electric-quote-string (nth 3 syntax))) - (nth 8 syntax)))) + ;; Do not requote a quote that starts or ends + ;; a comment or string. + (eq beg (nth 8 (save-excursion + (syntax-ppss (1- (point))))))))) (and electric-quote-paragraph (derived-mode-p 'text-mode) (or (eq last-command-event ?\`) diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el index 76a0b201816..d19d2dacda1 100644 --- a/lisp/progmodes/cc-engine.el +++ b/lisp/progmodes/cc-engine.el @@ -3527,7 +3527,7 @@ comment at the start of cc-engine.el for more info." c-state-old-cpp-end c-parse-state-point)))) (defun c-replay-parse-state-state () - (message + (message "%s" (concat "(setq " (mapconcat (lambda (arg) diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el index f674c70b104..b5632af13ab 100644 --- a/lisp/progmodes/xref.el +++ b/lisp/progmodes/xref.el @@ -902,7 +902,7 @@ IGNORES is a list of glob patterns." (match-string 1) (buffer-substring-no-properties (point) (line-end-position))) hits))) - (xref--convert-hits hits regexp))) + (xref--convert-hits (nreverse hits) regexp))) (defun xref--rgrep-command (regexp files dir ignores) (require 'find-dired) ; for `find-name-arg' diff --git a/test/lisp/electric-tests.el b/test/lisp/electric-tests.el index 107b2e79fb6..afd707667b8 100644 --- a/test/lisp/electric-tests.el +++ b/test/lisp/electric-tests.el @@ -584,5 +584,13 @@ baz\"\"" (skip-chars-backward "\"") (mark-sexp -1))) + +;;; Electric quotes +(define-electric-pair-test electric-quote-string + "" "'" :expected-string "'" :expected-point 2 + :fixture-fn #'electric-quote-local-mode + :bindings '((electric-quote-string . t)) + :test-in-comments nil :test-in-strings nil) + (provide 'electric-tests) ;;; electric-tests.el ends here |