]> git.eshelyaron.com Git - emacs.git/commitdiff
2006-10-23 Michael Kifer <kifer@cs.stonybrook.edu>
authorMichael Kifer <kifer@cs.stonybrook.edu>
Mon, 23 Oct 2006 19:20:15 +0000 (19:20 +0000)
committerMichael Kifer <kifer@cs.stonybrook.edu>
Mon, 23 Oct 2006 19:20:15 +0000 (19:20 +0000)
* viper-cmd.el (viper-prefix-arg-com): define gg as G0

* viper-ex.el (ex-read): quote file argument.

* ediff-diff.el (ediff-same-file-contents): expand file names.

* ediff-mult.el (ediff-append-custom-diff): quote shell file arguments.

ChangeLog
lisp/ediff-diff.el
lisp/ediff-mult.el
lisp/ediff.el
lisp/emulation/viper-cmd.el
lisp/emulation/viper-ex.el
lisp/emulation/viper.el
man/viper.texi

index f6253dcdd92e1ad84218ba3ab2858b0091e0572d..41296efb11204afe9487504b1d3e967103eda03f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2006-10-23  Michael Kifer  <kifer@cs.stonybrook.edu>
+       
+       * viper-cmd.el (viper-prefix-arg-com): define gg as G0
+       
+       * viper-ex.el (ex-read): quote file argument.
+       
+       * ediff-diff.el (ediff-same-file-contents): expand file names.
+       
+       * ediff-mult.el (ediff-append-custom-diff): quote shell file arguments.
+       
 2006-10-23  Andreas Schwab  <schwab@suse.de>
 
        * configure.in: Make sure x_default_search_path is always set even
index e3675064010e1f75ae50205787bfe2ee6250de7c..d2dff294d2ea15e7816860d6988fb37162756545 100644 (file)
@@ -1450,7 +1450,9 @@ arguments to `skip-chars-forward'."
       (condition-case nil
          (let ((res
                 (apply 'call-process ediff-cmp-program nil nil nil
-                       (append ediff-cmp-options (list f1 f2)))))
+                       (append ediff-cmp-options (list (expand-file-name f1)
+                                                       (expand-file-name f2))))
+                ))
            (and (numberp res) (eq res 0)))
        (error (format "Cannot execute program %S." ediff-cmp-program)))
     ))
index b33ad7c1859569dd9c626101fbd632e73f4da0c5..2ee573a4cb9c0913e13dad0bd0214fdb6a306719 100644 (file)
@@ -1637,11 +1637,15 @@ Useful commands:
             (set-buffer (setq tmp-buf (get-buffer-create ediff-tmp-buffer)))
             (erase-buffer)
             (shell-command
-             (format "%s %s %s %s"
-                     ediff-custom-diff-program ediff-custom-diff-options
-                     (ediff-get-session-objA-name session)
-                     (ediff-get-session-objB-name session))
-             t))
+             (format
+              "%s %s %s %s"
+              (shell-quote-argument ediff-custom-diff-program)
+              ediff-custom-diff-options
+              (shell-quote-argument (ediff-get-session-objA-name session))
+              (shell-quote-argument (ediff-get-session-objB-name session))
+              )
+             t)
+            )
           (save-excursion
             (set-buffer meta-diff-buff)
             (goto-char (point-max))
index 6b37d4c18470b7938f0309095227f3b5f338e865..14e1461a8a750f59cd09f478d178d4c5c0ac4874 100644 (file)
@@ -8,7 +8,7 @@
 ;; Keywords: comparing, merging, patching, tools, unix
 
 (defconst ediff-version "2.81.1" "The current version of Ediff")
-(defconst ediff-date "September 18, 2006" "Date of last update")
+(defconst ediff-date "October 23, 2006" "Date of last update")
 
 
 ;; This file is part of GNU Emacs.
index 61d99e6c78d16f8ce0b0611649bea70f75ab7cc2..ac3ef55d6e45af78285b83208c5e7808ef2a1977 100644 (file)
   )
 
 
-
 (defun viper-adjust-keys-for (state)
   "Make necessary adjustments to keymaps before entering STATE."
   (cond ((memq state '(insert-state replace-state))
@@ -1263,65 +1262,69 @@ as a Meta key and any number of multiple escapes is allowed."
               (setq com char)
               (setq char (read-char))))))
 
-  (if (atom com)
-      ;; `com' is a single char, so we construct the command argument
-      ;; and if `char' is `?', we describe the arg; otherwise
-      ;; we prepare the command that will be executed at the end.
-      (progn
-       (setq cmd-info (cons value com))
-       (while (viper= char ?U)
-         (viper-describe-arg cmd-info)
-         (setq char (read-char)))
-       ;; `char' is a movement cmd, a digit arg cmd, or a register cmd---so we
-       ;; execute it at the very end
-       (or (viper-movement-command-p char)
-           (viper-digit-command-p char)
-           (viper-regsuffix-command-p char)
-           (viper= char ?!) ; bang command
-           (error ""))
-       (setq cmd-to-exec-at-end
-             (viper-exec-form-in-vi
-              `(key-binding (char-to-string ,char)))))
-
-    ;; as com is non-nil, this means that we have a command to execute
-    (if (viper-memq-char (car com) '(?r ?R))
-       ;; execute apropriate region command.
-       (let ((char (car com)) (com (cdr com)))
-         (setq prefix-arg (cons value com))
-         (if (viper= char ?r)
-             (viper-region prefix-arg)
-           (viper-Region prefix-arg))
-         ;; reset prefix-arg
-         (setq prefix-arg nil))
-      ;; otherwise, reset prefix arg and call appropriate command
-      (setq value (if (null value) 1 value))
-      (setq prefix-arg nil)
-      (cond
-       ;; If we change ?C to ?c here, then cc will enter replacement mode
-       ;; rather than deleting lines.  However, it will affect 1 less line than
-       ;; normal.  We decided to not use replacement mode here and follow Vi,
-       ;; since replacement mode on n full lines can be achieved with nC.
-       ((equal com '(?c . ?c)) (viper-line (cons value ?C)))
-       ((equal com '(?d . ?d)) (viper-line (cons value ?D)))
-       ((equal com '(?d . ?y)) (viper-yank-defun))
-       ((equal com '(?y . ?y)) (viper-line (cons value ?Y)))
-       ((equal com '(?< . ?<)) (viper-line (cons value ?<)))
-       ((equal com '(?> . ?>)) (viper-line (cons value ?>)))
-       ((equal com '(?! . ?!)) (viper-line (cons value ?!)))
-       ((equal com '(?= . ?=)) (viper-line (cons value ?=)))
-       (t (error "")))))
-
-  (if cmd-to-exec-at-end
-      (progn
-       (setq last-command-char char)
-       (setq last-command-event
-             (viper-copy-event
-              (if viper-xemacs-p (character-to-event char) char)))
-       (condition-case nil
-           (funcall cmd-to-exec-at-end cmd-info)
-         (error
-          (error "")))))
-  ))
+    (if (atom com)
+       ;; `com' is a single char, so we construct the command argument
+       ;; and if `char' is `?', we describe the arg; otherwise
+       ;; we prepare the command that will be executed at the end.
+       (progn
+         (setq cmd-info (cons value com))
+         (while (viper= char ?U)
+           (viper-describe-arg cmd-info)
+           (setq char (read-char)))
+         ;; `char' is a movement cmd, a digit arg cmd, or a register cmd---so
+         ;; we execute it at the very end
+         (or (viper-movement-command-p char)
+             (viper-digit-command-p char)
+             (viper-regsuffix-command-p char)
+             (viper= char ?!) ; bang command
+             (viper= char ?g) ; the gg command (like G0)
+             (error ""))
+         (setq cmd-to-exec-at-end
+               (viper-exec-form-in-vi
+                `(key-binding (char-to-string ,char)))))
+
+      ;; as com is non-nil, this means that we have a command to execute
+      (if (viper-memq-char (car com) '(?r ?R))
+         ;; execute apropriate region command.
+         (let ((char (car com)) (com (cdr com)))
+           (setq prefix-arg (cons value com))
+           (if (viper= char ?r)
+               (viper-region prefix-arg)
+             (viper-Region prefix-arg))
+           ;; reset prefix-arg
+           (setq prefix-arg nil))
+       ;; otherwise, reset prefix arg and call appropriate command
+       (setq value (if (null value) 1 value))
+       (setq prefix-arg nil)
+       (cond
+        ;; If we change ?C to ?c here, then cc will enter replacement mode
+        ;; rather than deleting lines.  However, it will affect 1 less line
+        ;; than normal.  We decided to not use replacement mode here and
+        ;; follow Vi, since replacement mode on n full lines can be achieved
+        ;; with nC.
+        ((equal com '(?c . ?c)) (viper-line (cons value ?C)))
+        ((equal com '(?d . ?d)) (viper-line (cons value ?D)))
+        ((equal com '(?d . ?y)) (viper-yank-defun))
+        ((equal com '(?y . ?y)) (viper-line (cons value ?Y)))
+        ((equal com '(?< . ?<)) (viper-line (cons value ?<)))
+        ((equal com '(?> . ?>)) (viper-line (cons value ?>)))
+        ((equal com '(?! . ?!)) (viper-line (cons value ?!)))
+        ((equal com '(?= . ?=)) (viper-line (cons value ?=)))
+        ;; gg  acts as G0
+        ((equal (car com) ?g)   (viper-goto-line 0))
+        (t (error "")))))
+    
+    (if cmd-to-exec-at-end
+       (progn
+         (setq last-command-char char)
+         (setq last-command-event
+               (viper-copy-event
+                (if viper-xemacs-p (character-to-event char) char)))
+         (condition-case nil
+             (funcall cmd-to-exec-at-end cmd-info)
+           (error
+            (error "")))))
+    ))
 
 (defun viper-describe-arg (arg)
   (let (val com)
@@ -1733,6 +1736,7 @@ invokes the command before that, etc."
                        (max viper-com-point (point))))
        ((viper= char ?g)
         (push-mark viper-com-point t)
+        ;; execute the last emacs kbd macro on each line of the region
         (viper-global-execute))
        ((viper= char ?q)
         (push-mark viper-com-point t)
@@ -3996,6 +4000,7 @@ Null string will repeat previous search."
 (defun viper-buffer-search-enable (&optional c)
   (cond (c (setq viper-buffer-search-char c))
        ((null viper-buffer-search-char)
+        ;; ?g acts as a default value for viper-buffer-search-char
         (setq viper-buffer-search-char ?g)))
   (define-key viper-vi-basic-map
     (cond ((viper-characterp viper-buffer-search-char)
index f9f080345826e2e748915395b1950c6b9fcced92..9f69c685948fe8387bf4f300d45fff0aafada113 100644 (file)
@@ -1624,8 +1624,9 @@ reversed."
        (progn
          (setq command
                ;; replace # and % with the previous/current file
-               (ex-expand-filsyms (concat ex-file ex-cmdfile-args)
-                                  (current-buffer)))
+               (ex-expand-filsyms
+                (concat (shell-quote-argument ex-file) ex-cmdfile-args)
+                (current-buffer)))
          (shell-command command t))
       (insert-file-contents ex-file)))
   (ex-fixup-history viper-last-ex-prompt ex-file ex-cmdfile-args))
index ea70ad609addc64614c4bd424a9f11ba3ae2102a..82c070d5264b268b3d6b79b3d6f7e33b96683580 100644 (file)
@@ -9,7 +9,7 @@
 ;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
 ;; Keywords: emulations
 
-(defconst viper-version "3.13 of September 18, 2006"
+(defconst viper-version "3.13.1 of October 23, 2006"
   "The current version of Viper")
 
 ;; This file is part of GNU Emacs.
index aadb8f9aed7a9e0df2a37e4a97e0b327e99e0d1e..eb77bb71e1d3ee556391d82294fa2f062507d2f3 100644 (file)
@@ -178,7 +178,7 @@ in some cases, especially in the Vi Insert state. John Hawkins
 <jshawkin@@eecs.umich.edu> has provided a set of customizations, which
 enables additional Emacs bindings under Viper.  These customizations can be
 included in your @file{~/.viper} file and are found at the following URL:
-@file{http://www.eecs.umich.edu/~jshawkin/viper-sample}.
+@file{http://traeki.freeshell.org/files/viper-sample}.
 
 @menu
 * Emacs Preliminaries::         Basic concepts in Emacs.