]> git.eshelyaron.com Git - emacs.git/commitdiff
Merge from origin/emacs-25
authorPaul Eggert <eggert@cs.ucla.edu>
Sat, 25 Jun 2016 22:16:25 +0000 (00:16 +0200)
committerPaul Eggert <eggert@cs.ucla.edu>
Sat, 25 Jun 2016 22:16:25 +0000 (00:16 +0200)
0377fe2 ; Spelling fixes
f253695 Update docs for `customize-mode'
4395aaa Fix documentation of 'assoc-string' and 'compare-strings'
ab0ebb9 ; Only load .elc file in tests.
a98aa02 Error on multibyte characters in HTTP request
ea512a7 * lisp/gnus/mm-decode.el (mm-convert-shr-links): Mask keys th...
8297331 ; Revert "Ensure undo-boundary after insert-file-contents."
dc5e65b Unset GIT_DIR when calling Git commands
6cdd8f7 Ensure undo-boundary after insert-file-contents.
4793f5f Clarify documentation of 'line-spacing' and 'line-height'
5f37572 Fix removal of variables from process-environment
e5e886d * admin/authors.el (authors-ignored-files, authors-valid-file...
db0777b * admin/authors.el (authors-aliases, authors-fixed-case): Add...

# Conflicts:
# doc/lispref/modes.texi
# lisp/gnus/mm-decode.el

1  2 
doc/lispref/display.texi
doc/lispref/modes.texi
doc/lispref/strings.texi
lisp/cus-edit.el
lisp/gnus/mm-decode.el
lisp/url/url-http.el
lisp/vc/vc-git.el
src/callproc.c
src/fns.c
src/minibuf.c
test/lisp/emulation/viper-tests.el

Simple merge
index 1285c1c69e65fc28e11fddc7c82d6913fe36f229,32baa27147bf50a3c64111389b5ecbb6c8356c3b..368d882a4b86525eb9249e08807ee3c7cf887af0
@@@ -799,19 -794,9 +799,18 @@@ if @var{parent} is @code{nil}.  (Again
  
  @item :group
  If this is specified, the value should be the customization group for
- this mode.  (Not all major modes have one.)  Only the (still
- experimental and unadvertised) command @code{customize-mode} currently
- uses this.  @code{define-derived-mode} does @emph{not} automatically
- define the specified customization group.
+ this mode.  (Not all major modes have one.)  The command
+ @code{customize-mode} uses this.  @code{define-derived-mode} does
+ @emph{not} automatically define the specified customization group.
 +
 +@item :after-hook
 +This optional keyword specifies a single Lisp form to evaluate as the
 +final act of the mode function, after the mode hooks have been run.
 +It should not be quoted.  Since the form might be evaluated after the
 +mode function has terminated, it should not access any element of the
 +mode function's local state.  An @code{:after-hook} form is useful for
 +setting up aspects of the mode which depend on the user's settings,
 +which in turn may have been changed in a mode hook.
  @end table
  
  Here is a hypothetical example:
Simple merge
Simple merge
index 744474ca1133657f77974f0c393e052a005fb1a1,bb8e2038d26f611ce5956276ee91304feb65daff..c653d735543356a506cc2c4aa08dfce08f3328b5
@@@ -1837,9 -1894,9 +1837,10 @@@ If RECURSIVE, search recursively.
                           ,(point-max-marker))))))))
  
  (defvar shr-map)
 +(defvar shr-image-map)
  
  (autoload 'widget-convert-button "wid-edit")
+ (defvar widget-keymap)
  
  (defun mm-convert-shr-links ()
    (let ((start (point-min))
Simple merge
Simple merge
diff --cc src/callproc.c
Simple merge
diff --cc src/fns.c
Simple merge
diff --cc src/minibuf.c
Simple merge
index 074dd637538655083f0b852a042661f7bd61b9e9,0000000000000000000000000000000000000000..0d6095b2c9229d7ed84c8db03c59f7b6bef3310f
mode 100644,000000..100644
--- /dev/null
@@@ -1,161 -1,0 +1,161 @@@
-         (viper-custom-file-name (make-temp-file "viper-tests"))
 +;;; viper-tests.el --- tests for viper.
 +
 +;; Copyright (C) 2016 Free Software Foundation, Inc.
 +
 +;; This file is part of GNU Emacs.
 +
 +;; GNU Emacs 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.
 +
 +;; GNU Emacs 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 GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 +
 +;;; Commentary:
 +
 +;;; Code:
 +
 +
 +(require 'viper)
 +
 +(defun viper-test-undo-kmacro (kmacro)
 +  "In a clean viper buffer, run KMACRO and return `buffer-string'.
 +
 +This function makes as many attempts as possible to clean up
 +after itself, although it will leave a buffer called
 +*viper-test-buffer* if it fails (this is deliberate!)."
 +  (let (
 +        ;; Viper just turns itself off during batch use.
 +        (noninteractive nil)
 +        ;; Switch off start up message or it will chew the key presses.
 +        (viper-inhibit-startup-message 't)
 +        ;; Select an expert-level for the same reason.
 +        (viper-expert-level 5)
 +        ;; viper loads this even with -q so make sure it's empty!
++        (viper-custom-file-name (make-temp-file "viper-tests" nil ".elc"))
 +        (before-buffer (current-buffer)))
 +    (unwind-protect
 +        (progn
 +          ;; viper-mode is essentially global, so set it here.
 +          (viper-mode)
 +          ;; We must switch to buffer because we are using a keyboard macro
 +          ;; which appears to not go to the current-buffer but what ever is
 +          ;; currently taking keyboard events. We use a named buffer because
 +          ;; then we can see what it in it if it all goes wrong.
 +          (switch-to-buffer
 +           (get-buffer-create
 +            "*viper-test-buffer*"))
 +          (erase-buffer)
 +          ;; The new buffer fails to enter vi state so set it.
 +          (viper-change-state-to-vi)
 +          ;; Run the macro.
 +          (execute-kbd-macro kmacro)
 +          (let ((rtn
 +                 (buffer-substring-no-properties
 +                  (point-min)
 +                  (point-max))))
 +            ;; Kill the buffer iff the macro succeeds.
 +            (kill-buffer)
 +            rtn))
 +      ;; Switch everything off and restore the buffer.
 +      (toggle-viper-mode)
 +      (delete-file viper-custom-file-name)
 +      (switch-to-buffer before-buffer))))
 +
 +(ert-deftest viper-test-go ()
 +  "Test that this file is running."
 +  (should t))
 +
 +(ert-deftest viper-test-fix ()
 +  "Test that the viper kmacro fixture is working."
 +  (should
 +   (viper-test-undo-kmacro [])))
 +
 +(ert-deftest viper-test-undo-1 ()
 +  "Test for VI like undo behaviour.
 +
 +Insert 1, then 2 on consecutive lines, followed by undo. This
 +should leave just 1 in the buffer.
 +
 +Test for Bug #22295"
 +  (should
 +   (equal
 +    "1\n"
 +    (viper-test-undo-kmacro
 +     [
 +      ?a
 +      ?1
 +      escape
 +      ?o
 +      ?2
 +      escape
 +      ?u
 +      ]
 +     ))))
 +
 +(ert-deftest viper-test-undo-2 ()
 +  "Test for VI like undo behaviour.
 +
 +Insert \"1 2 3 4 5\" then delete the 2, then the 4, and undo.
 +Should restore the 4, but leave the 2 deleted.
 +
 +Test for Bug #22295"
 +  (should
 +   (equal
 +    "1 3 4 5\n"
 +    (viper-test-undo-kmacro
 +     [
 +      ?i
 +      ?1 ?  ?2 ?  ?3 ?  ?4 ?  ?5
 +      escape
 +      ?F ?2 ?d ?w
 +      ?w ?d ?w
 +      ?u
 +      ]))))
 +
 +(ert-deftest viper-test-undo-3 ()
 +  "Test for VI like undo behaviour.
 +
 +Insert \"1 2 3 4 5 6\", delete the 2, then the 3 4 and 5.
 +Should restore the 3 4 and 5 but not the 2.
 +
 +Test for Bug #22295"
 +  (should
 +   (equal
 +    "1 3 4 5 6\n"
 +    (viper-test-undo-kmacro
 +     [
 +      ;; Insert this lot.
 +      ?i ?1 ? ?2 ? ?3 ? ?4 ? ?5 ? ?6
 +         escape
 +         ;; Start of line.
 +         ?0
 +         ;; Move to 2, delete
 +         ?w ?d ?w
 +         ;; Delete 3 4 5
 +         ?. ?. ?.
 +         ;; Undo del 5, then
 +         ?u ?. ?.
 +         ]))))
 +
 +
 +(ert-deftest viper-test-undo-4()
 +  (should
 +   (equal
 +    ""
 +    (viper-test-undo-kmacro
 +     [
 +      ?i ?1 escape
 +         ?o ?2 escape
 +         ?o ?3 escape
 +         ?u ?. ?.
 +         ])
 +    )))
 +
 +;;; viper-tests.el ends here