]> git.eshelyaron.com Git - emacs.git/commitdiff
* ediff-diff.el: Moved variables around to have it compile under NT.
authorMichael Kifer <kifer@cs.stonybrook.edu>
Fri, 24 Nov 2000 08:15:11 +0000 (08:15 +0000)
committerMichael Kifer <kifer@cs.stonybrook.edu>
Fri, 24 Nov 2000 08:15:11 +0000 (08:15 +0000)
* ediff-help.el (ediff-use-long-help-message): made it customizable.

* ediff-init.el (ediff-abbrev-jobname): use capitalize.

* ediff-wind.el (ediff-skip-unsuitable-frames): deleted the
redundant skip-small-frames test.

* viper-cmd.el (viper-change-state-to-vi): disable overwrite mode.
(viper-downgrade-to-insert): protect against errors in hooks.

* viper-init.el (viper-vi-state-hook,viper-insert-state-hook,
viper-replace-state-hook,viper-emacs-state-hook): do cursor handling.
(viper-restore-cursor-type,viper-set-insert-cursor-type): new
functions.

* viper-util.el (viper-memq-char): bug fixes

* viper.el (viper-mode): fix cursor handling.

lisp/ChangeLog
lisp/ediff-diff.el
lisp/ediff-help.el
lisp/ediff-init.el
lisp/ediff-wind.el
lisp/emulation/viper-cmd.el
lisp/emulation/viper-init.el
lisp/emulation/viper-util.el
lisp/emulation/viper.el

index 5ad7944f726d1fc41d45195eb76ed5784ca98346..4145a9a85c4ce7f52aa3b78a2c5ae864f3a33e12 100644 (file)
@@ -1,3 +1,26 @@
+2000-11-24  Michael Kifer  <kifer@cs.sunysb.edu>
+       
+       * ediff-diff.el: Moved variables around to have it compile under NT.
+       
+       * ediff-help.el (ediff-use-long-help-message): made it customizable.
+       
+       * ediff-init.el (ediff-abbrev-jobname): use capitalize.
+       
+       * ediff-wind.el (ediff-skip-unsuitable-frames): deleted the
+       redundant skip-small-frames test.
+       
+       * viper-cmd.el (viper-change-state-to-vi): disable overwrite mode.
+       (viper-downgrade-to-insert): protect against errors in hooks.
+       
+       * viper-init.el (viper-vi-state-hook,viper-insert-state-hook,
+       viper-replace-state-hook,viper-emacs-state-hook): do cursor handling.
+       (viper-restore-cursor-type,viper-set-insert-cursor-type): new
+       functions.
+       
+       * viper-util.el (viper-memq-char): bug fixes.
+       
+       * viper.el (viper-mode): fix cursor handling.
+       
 2000-11-24  Kenichi Handa  <handa@etl.go.jp>
 
        * international/mule-diag.el (list-iso-charset-chars): For
index e6864bf02feca8859205ddc9363d1137c40590b4..1ba2b8df8032189fe0bf3016fddc0110d89ad59d 100644 (file)
   :prefix "ediff-"
   :group 'ediff)
 
+;; these two must be here to prevent ediff-test-utility from barking
+(defcustom ediff-diff-program "diff"
+  "*Program to use for generating the differential of the two files."
+  :type 'string
+  :group 'ediff-diff)
+(defcustom ediff-diff3-program "diff3"
+  "*Program to be used for three-way comparison.
+Must produce output compatible with Unix's diff3 program."
+  :type 'string
+  :group 'ediff-diff)
+
+;; The following functions must precede all defcustom-defined variables.
 
 ;; The following functions needed for setting diff/diff3 options
 ;; test if diff supports the --binary option
@@ -108,10 +120,6 @@ ignore changes whose lines all match RE."
   :type '(repeat string)
   :group 'ediff-diff)
 
-(defcustom ediff-diff-program "diff"
-  "*Program to use for generating the differential of the two files."
-  :type 'string
-  :group 'ediff-diff)
 (defcustom ediff-diff-options ""
   "*Options to pass to `ediff-diff-program'. 
 If diff\(1\) is used as `ediff-diff-program', then the most useful options are
@@ -135,11 +143,6 @@ This output is not used by Ediff internally."
 
 (defvar ediff-match-diff3-line "^====\\(.?\\)$"
   "Pattern to match lines produced by diff3 that describe differences.")
-(defcustom ediff-diff3-program "diff3"
-  "*Program to be used for three-way comparison.
-Must produce output compatible with Unix's diff3 program."
-  :type 'string
-  :group 'ediff-diff)
 (defcustom ediff-diff3-options ""  
   "*Options to pass to `ediff-diff3-program'."
   :set 'ediff-reset-diff-options
index 0de065f5e8643dc041bfdb4c4489aa4759c128e9..246bb5b9a8f28963a870b847f2ce6e75461b147b 100644 (file)
@@ -144,8 +144,10 @@ produce the brief help message.  This function must return a string.")
   "The long help message that the user can customize.
 See `ediff-brief-help-message-function' for more.")
 
-(defvar ediff-use-long-help-message nil
-  "*If t, Ediff displays a long help message.  Short help message otherwise.")
+(defcustom ediff-use-long-help-message nil
+  "*If t, Ediff displays a long help message.  Short help message otherwise."
+  :type 'boolean
+  :group 'ediff-window)
 
 ;; The actual help message.
 (ediff-defvar-local ediff-help-message ""
index de8bed967db4fbf4566242199691339428474cd6..4c1fc9b48a3f236fb71c4d21fa5e14db14c8b5e2 100644 (file)
@@ -1683,17 +1683,9 @@ Checks if overlay's buffer exists."
        ((eq jobname 'ediff-merge-directory-revisions-with-ancestor)
         "Merge dir versions via ancestors")
        (t
-        (let* ((str (substring (symbol-name jobname) 6))
-               (len (length str))
-               (pos 0))
-          (while (< pos len)
-            (if (= pos 0)
-                (aset str pos (upcase (aref str pos))))
-            (if (= (aref str pos) ?-)
-                (aset str pos ?\ ))
-            (setq pos (1+ pos)))
-          str))))
-
+        (capitalize
+         (subst-char-in-string ?- ?\  (substring (symbol-name jobname) 6))))
+       ))
 
 
 (defsubst ediff-get-region-contents (n buf-type ctrl-buf &optional start end)
index 82415d94eba4623e5868f4cf3cb308776ffdb8b2..46d56595511680e7b8bd29f9b7e85639fd1d69d9 100644 (file)
@@ -151,7 +151,7 @@ In this case, Ediff will use those frames to display these buffers."
    '(vertical-scroll-bars . nil)  ; Emacs only
    '(scrollbar-width . 0)         ; XEmacs only
    '(menu-bar-lines . 0)          ; Emacs only
-   '(tool-bar-lines . 0)      ; Emacs 21+ only
+   '(tool-bar-lines . 0)          ; Emacs 21+ only
    ;; don't lower and auto-raise
    '(auto-lower . nil)
    '(auto-raise . t)
@@ -842,9 +842,6 @@ into icons, regardless of the window manager."
                    (or
                     (ediff-frame-has-dedicated-windows (selected-frame))
                     (ediff-frame-iconified-p (selected-frame))
-                    ;; skip small frames
-                    (< (frame-height (selected-frame))
-                       (* 3 window-min-height))
                     ;; skip small windows
                     (< (window-height (selected-window))
                        (* 3 window-min-height))
index b97995b5458c60292f1a5702a54a0d93983cc62a..ce3b24c19cb83e98dfdb2bf258d5fb95edf7b16c 100644 (file)
   (interactive)
   (if (and viper-first-time (not (viper-is-in-minibuffer)))
       (viper-mode)
-    (if overwrite-mode (overwrite-mode nil))
+    (if overwrite-mode (overwrite-mode -1))
     (or (viper-overlay-p viper-replace-overlay)
       (viper-set-replace-overlay (point-min) (point-min)))
     (viper-hide-replace-overlay)
      (viper-message-conditions conds))))
 
 (defsubst viper-downgrade-to-insert ()
- (setq viper-current-state 'insert-state
-       viper-replace-minor-mode nil))
+  ;; Protect against user errors in hooks
+  (condition-case conds
+      (run-hooks 'viper-insert-state-hook)
+    (error
+     (viper-message-conditions conds)))
+  (setq viper-current-state 'insert-state
+       viper-replace-minor-mode nil))
 
 
 
@@ -2210,7 +2215,7 @@ problems."
   ;; guard against a smartie who switched from R-replace to normal replace
   (remove-hook
    'viper-post-command-hooks 'viper-R-state-post-command-sentinel 'local)
-  (if overwrite-mode (overwrite-mode nil))
+  (if overwrite-mode (overwrite-mode -1))
   )
 
 
index bd479456ee4d2f84f34c8cdda9e48e3c187e62a5..d03632004c89b9691c2e48a8caac3792cbe0b305 100644 (file)
@@ -947,19 +947,19 @@ Should be set in `~/.viper' file."
   :prefix "viper-"
   :group 'viper)
 
-(defcustom viper-vi-state-hook nil
+(defcustom viper-vi-state-hook 'viper-restore-cursor-type
   "*Hooks run just before the switch to Vi mode is completed."
   :type 'hook
   :group 'viper-hooks)
-(defcustom viper-insert-state-hook nil
+(defcustom viper-insert-state-hook 'viper-set-insert-cursor-type
   "*Hooks run just before the switch to Insert mode is completed."
   :type 'hook
   :group 'viper-hooks)
-(defcustom viper-replace-state-hook nil
+(defcustom viper-replace-state-hook 'viper-restore-cursor-type
   "*Hooks run just before the switch to Replace mode is completed."
   :type 'hook
   :group 'viper-hooks)
-(defcustom viper-emacs-state-hook nil
+(defcustom viper-emacs-state-hook 'viper-restore-cursor-type
   "*Hooks run just before the switch to Emacs mode is completed."
   :type 'hook
   :group 'viper-hooks)
@@ -969,6 +969,16 @@ Should be set in `~/.viper' file."
   :type 'hook
   :group 'viper-hooks)
 
+(defun viper-restore-cursor-type ()
+  (if viper-xemacs-p
+      (setq bar-cursor nil)
+    (setq cursor-type default-cursor-type)))
+
+(defun viper-set-insert-cursor-type ()
+  (if viper-xemacs-p
+      (setq bar-cursor 2)
+    (setq cursor-type '(bar . 2))))
+
 
 ;;; Local Variables:
 ;;; eval: (put 'viper-deflocalvar 'lisp-indent-hook 'defun)
index a36478f06524cde447e304b7d8684bfc6f8b4807..51f0efc6266e3b16473c85a6f196fb738e2a7192 100644 (file)
       (symbol-function
        (if viper-xemacs-p 'characterp 'integerp)))
 
-; CHAR is supposed to be a char or an integer; LIST is a list of chars, nil,
-; and negative numbers
-; Check if CHAR is a member by trying to convert into integers, if necessary.
-; Introduced for compatibility with XEmacs, where integers are not the same as
-; chars.
+;; CHAR is supposed to be a char or an integer (positive or negative)
+;; LIST is a list of chars, nil, and negative numbers
+;; Check if CHAR is a member by trying to convert into integers, if necessary.
+;; Introduced for compatibility with XEmacs, where integers are not the same as
+;; chars.
 (defun viper-memq-char (char list)
   (cond (viper-emacs-p (memq char list))
-       ((null char) (memq char list))
-       ((characterp char) (memq char list))
-       ((integerp char) (memq (int-to-char char) list))
-       (t nil)))
+       ((and (integerp char) (>= char 0)) (memq (int-to-char char) list))
+       ((memq char list))))
 
 ;; Like =, but accommodates null and also is t for eq-objects
 (defun viper= (char char1)
index 4d8c74118b6b12dfa11c1824b3f45250bc7d0e62..21db6b0d5b92faab7942e3b76e4bfd1439339baa 100644 (file)
@@ -592,6 +592,9 @@ This startup message appears whenever you load Viper, unless you type `y' now."
                    ))
              (viper-set-expert-level 'dont-change-unless)))
 
+       (if viper-xemacs-p
+           (make-variable-buffer-local 'bar-cursor))
+
        (or (memq major-mode viper-emacs-state-mode-list) ; don't switch to Vi
            (memq major-mode viper-insert-state-mode-list) ; don't switch
            (viper-change-state-to-vi)))))
@@ -660,6 +663,7 @@ remains buffer-local."
   ;; Ideally, we would like to be able to de-localize local variables 
   (viper-delocalize-var 'minor-mode-map-alist)
   (viper-delocalize-var 'require-final-newline)
+  (if viper-xemacs-p (viper-delocalize-var 'bar-cursor))
 
   
   ;; deactivate all advices done by Viper.