Merged from emacs@sv.gnu.org
Patches applied: * emacs@sv.gnu.org/emacs--devo--0--patch-371 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-372 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-373 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-374 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-375 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-376 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-377 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-378 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-379 Merge from erc--emacs--21 * emacs@sv.gnu.org/emacs--devo--0--patch-380 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-381 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-382 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-383 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-384 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-385 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-386 Update from erc--emacs--22 * emacs@sv.gnu.org/emacs--devo--0--patch-387 Fix ERC bug introduced in last patch * emacs@sv.gnu.org/emacs--devo--0--patch-388 Update from erc--emacs--22 * emacs@sv.gnu.org/emacs--devo--0--patch-389 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-390 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-391 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-392 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-393 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-394 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-395 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-396 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-397 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-398 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-399 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-400 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-401 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-402 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-403 Rcirc update from Ryan Yeske * emacs@sv.gnu.org/emacs--devo--0--patch-404 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-405 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-406 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-407 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-408 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-409 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-410 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-411 Miscellaneous tq-related fixes. * emacs@sv.gnu.org/emacs--devo--0--patch-412 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-121 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-122 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-123 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-124 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-125 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-126 Merge from emacs--devo--0 * emacs@sv.gnu.org/gnus--rel--5.10--patch-127 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-581
This commit is contained in:
commit
3f87f67ee2
175 changed files with 8121 additions and 11166 deletions
|
@ -46,6 +46,8 @@
|
|||
(defvar mark-even-if-inactive)
|
||||
(defvar init-message)
|
||||
(defvar initial)
|
||||
(defvar undo-beg-posn)
|
||||
(defvar undo-end-posn)
|
||||
|
||||
;; loading happens only in non-interactive compilation
|
||||
;; in order to spare non-viperized emacs from being viperized
|
||||
|
@ -196,7 +198,7 @@
|
|||
(viper-save-cursor-color 'before-insert-mode))
|
||||
;; set insert mode cursor color
|
||||
(viper-change-cursor-color viper-insert-state-cursor-color)))
|
||||
(if (eq viper-current-state 'emacs-state)
|
||||
(if (and viper-emacs-state-cursor-color (eq viper-current-state 'emacs-state))
|
||||
(let ((has-saved-cursor-color-in-emacs-mode
|
||||
(stringp (viper-get-saved-cursor-color-in-emacs-mode))))
|
||||
(or has-saved-cursor-color-in-emacs-mode
|
||||
|
@ -722,12 +724,13 @@
|
|||
(viper-set-replace-overlay (point-min) (point-min)))
|
||||
(viper-hide-replace-overlay)
|
||||
|
||||
(let ((has-saved-cursor-color-in-emacs-mode
|
||||
(stringp (viper-get-saved-cursor-color-in-emacs-mode))))
|
||||
(or has-saved-cursor-color-in-emacs-mode
|
||||
(string= (viper-get-cursor-color) viper-emacs-state-cursor-color)
|
||||
(viper-save-cursor-color 'before-emacs-mode))
|
||||
(viper-change-cursor-color viper-emacs-state-cursor-color))
|
||||
(if viper-emacs-state-cursor-color
|
||||
(let ((has-saved-cursor-color-in-emacs-mode
|
||||
(stringp (viper-get-saved-cursor-color-in-emacs-mode))))
|
||||
(or has-saved-cursor-color-in-emacs-mode
|
||||
(string= (viper-get-cursor-color) viper-emacs-state-cursor-color)
|
||||
(viper-save-cursor-color 'before-emacs-mode))
|
||||
(viper-change-cursor-color viper-emacs-state-cursor-color)))
|
||||
|
||||
(viper-change-state 'emacs-state)
|
||||
|
||||
|
@ -1030,10 +1033,13 @@ as a Meta key and any number of multiple escapes is allowed."
|
|||
(inhibit-quit t))
|
||||
(if (viper-ESC-event-p event)
|
||||
(progn
|
||||
;; Emacs 22.50.8 introduced a bug, which makes even a single ESC into
|
||||
;; a fast keyseq. To guard against this, we added a check if there
|
||||
;; are other events as well
|
||||
(if (and (viper-fast-keysequence-p) unread-command-events)
|
||||
;; Some versions of Emacs (eg., 22.50.8 have a bug, which makes even
|
||||
;; a single ESC into ;; a fast keyseq. To guard against this, we
|
||||
;; added a check if there are other events as well. Keep the next
|
||||
;; line for the next time the bug reappears, so that will remember to
|
||||
;; report it.
|
||||
;;(if (and (viper-fast-keysequence-p) unread-command-events)
|
||||
(if (viper-fast-keysequence-p) ;; for Emacsen without the above bug
|
||||
(progn
|
||||
(let (minor-mode-map-alist emulation-mode-map-alists)
|
||||
(viper-set-unread-command-events event)
|
||||
|
@ -1744,12 +1750,14 @@ invokes the command before that, etc."
|
|||
|
||||
;; Hook used in viper-undo
|
||||
(defun viper-after-change-undo-hook (beg end len)
|
||||
(setq undo-beg-posn beg
|
||||
undo-end-posn (or end beg))
|
||||
;; some other hooks may be changing various text properties in
|
||||
;; the buffer in response to 'undo'; so remove this hook to avoid
|
||||
;; its repeated invocation
|
||||
(remove-hook 'viper-undo-functions 'viper-after-change-undo-hook 'local))
|
||||
(if undo-in-progress
|
||||
(setq undo-beg-posn beg
|
||||
undo-end-posn (or end beg))
|
||||
;; some other hooks may be changing various text properties in
|
||||
;; the buffer in response to 'undo'; so remove this hook to avoid
|
||||
;; its repeated invocation
|
||||
(remove-hook 'viper-undo-functions 'viper-after-change-undo-hook 'local)
|
||||
))
|
||||
|
||||
(defun viper-undo ()
|
||||
"Undo previous change."
|
||||
|
@ -1764,25 +1772,29 @@ invokes the command before that, etc."
|
|||
|
||||
(undo-start)
|
||||
(undo-more 2)
|
||||
(setq undo-beg-posn (or undo-beg-posn before-undo-pt)
|
||||
undo-end-posn (or undo-end-posn undo-beg-posn))
|
||||
;;(setq undo-beg-posn (or undo-beg-posn (point))
|
||||
;; undo-end-posn (or undo-end-posn (point)))
|
||||
;;(setq undo-beg-posn (or undo-beg-posn before-undo-pt)
|
||||
;; undo-end-posn (or undo-end-posn undo-beg-posn))
|
||||
|
||||
(goto-char undo-beg-posn)
|
||||
(sit-for 0)
|
||||
(if (and viper-keep-point-on-undo
|
||||
(pos-visible-in-window-p before-undo-pt))
|
||||
(if (and undo-beg-posn undo-end-posn)
|
||||
(progn
|
||||
(push-mark (point-marker) t)
|
||||
(viper-sit-for-short 300)
|
||||
(goto-char undo-end-posn)
|
||||
(viper-sit-for-short 300)
|
||||
(if (and (> (viper-chars-in-region undo-beg-posn before-undo-pt) 1)
|
||||
(> (viper-chars-in-region undo-end-posn before-undo-pt) 1))
|
||||
(goto-char before-undo-pt)
|
||||
(goto-char undo-beg-posn)))
|
||||
(push-mark before-undo-pt t))
|
||||
(goto-char undo-beg-posn)
|
||||
(sit-for 0)
|
||||
(if (and viper-keep-point-on-undo
|
||||
(pos-visible-in-window-p before-undo-pt))
|
||||
(progn
|
||||
(push-mark (point-marker) t)
|
||||
(viper-sit-for-short 300)
|
||||
(goto-char undo-end-posn)
|
||||
(viper-sit-for-short 300)
|
||||
(if (pos-visible-in-window-p undo-beg-posn)
|
||||
(goto-char before-undo-pt)
|
||||
(goto-char undo-beg-posn)))
|
||||
(push-mark before-undo-pt t))
|
||||
))
|
||||
|
||||
(if (and (eolp) (not (bolp))) (backward-char 1))
|
||||
;;(if (not modified) (set-buffer-modified-p t))
|
||||
)
|
||||
(setq this-command 'viper-undo))
|
||||
|
||||
|
@ -3952,7 +3964,8 @@ Null string will repeat previous search."
|
|||
(let ((val (viper-p-val arg))
|
||||
(com (viper-getcom arg))
|
||||
debug-on-error)
|
||||
(if (null viper-s-string) (error viper-NoPrevSearch))
|
||||
(if (or (null viper-s-string) (string= viper-s-string ""))
|
||||
(error viper-NoPrevSearch))
|
||||
(viper-search viper-s-string viper-s-forward arg)
|
||||
(if com
|
||||
(progn
|
||||
|
|
|
@ -208,12 +208,12 @@
|
|||
|
||||
;; If this is a one-letter magic command, splice in args.
|
||||
(defun ex-splice-args-in-1-letr-cmd (key list)
|
||||
(let ((onelet (ex-cmd-is-one-letter (assoc (substring key 0 1) list))))
|
||||
(if onelet
|
||||
(let ((oneletter (ex-cmd-is-one-letter (assoc (substring key 0 1) list))))
|
||||
(if oneletter
|
||||
(list key
|
||||
(append (cadr onelet)
|
||||
(append (cadr oneletter)
|
||||
(if (< 1 (length key)) (list (substring key 1))))
|
||||
(caddr onelet)))
|
||||
(car (cdr (cdr oneletter))) ))
|
||||
))
|
||||
|
||||
|
||||
|
|
|
@ -434,7 +434,10 @@ delete the text being replaced, as in standard Vi."
|
|||
(if (fboundp 'make-variable-frame-local)
|
||||
(make-variable-frame-local 'viper-insert-state-cursor-color))
|
||||
|
||||
(defcustom viper-emacs-state-cursor-color "Magenta"
|
||||
;; viper-emacs-state-cursor-color doesn't work well. Causes cursor colors to be
|
||||
;; confused in some cases. So, this var is nulled for now.
|
||||
;; (defcustom viper-emacs-state-cursor-color "Magenta"
|
||||
(defcustom viper-emacs-state-cursor-color nil
|
||||
"Cursor color when Viper is in emacs state."
|
||||
:type 'string
|
||||
:group 'viper)
|
||||
|
|
|
@ -137,10 +137,10 @@
|
|||
(x-display-color-p) ; emacs
|
||||
))
|
||||
|
||||
(defsubst viper-get-cursor-color ()
|
||||
(defun viper-get-cursor-color (&optional frame)
|
||||
(viper-cond-compile-for-xemacs-or-emacs
|
||||
(color-instance-name
|
||||
(frame-property (selected-frame) 'cursor-color)) ; xemacs
|
||||
(frame-property (or frame (selected-frame)) 'cursor-color)) ; xemacs
|
||||
(cdr (assoc 'cursor-color (frame-parameters))) ; emacs
|
||||
))
|
||||
|
||||
|
@ -152,18 +152,31 @@
|
|||
|
||||
|
||||
;; cursor colors
|
||||
(defun viper-change-cursor-color (new-color)
|
||||
(defun viper-change-cursor-color (new-color &optional frame)
|
||||
(if (and (viper-window-display-p) (viper-color-display-p)
|
||||
(stringp new-color) (viper-color-defined-p new-color)
|
||||
(not (string= new-color (viper-get-cursor-color))))
|
||||
(viper-cond-compile-for-xemacs-or-emacs
|
||||
(set-frame-property
|
||||
(selected-frame) 'cursor-color (make-color-instance new-color))
|
||||
(or frame (selected-frame))
|
||||
'cursor-color (make-color-instance new-color))
|
||||
(modify-frame-parameters
|
||||
(selected-frame) (list (cons 'cursor-color new-color)))
|
||||
(or frame (selected-frame))
|
||||
(list (cons 'cursor-color new-color)))
|
||||
)
|
||||
))
|
||||
|
||||
(defun viper-set-cursor-color-according-to-state (&optional frame)
|
||||
(cond ((eq viper-current-state 'replace-state)
|
||||
(viper-change-cursor-color viper-replace-state-cursor-color frame))
|
||||
((and (eq viper-current-state 'emacs-state)
|
||||
viper-emacs-state-cursor-color)
|
||||
(viper-change-cursor-color viper-emacs-state-cursor-color frame))
|
||||
((eq viper-current-state 'insert-state)
|
||||
(viper-change-cursor-color viper-insert-state-cursor-color frame))
|
||||
(t
|
||||
(viper-change-cursor-color viper-vi-state-cursor-color frame))))
|
||||
|
||||
;; By default, saves current frame cursor color in the
|
||||
;; viper-saved-cursor-color-in-replace-mode property of viper-replace-overlay
|
||||
(defun viper-save-cursor-color (before-which-mode)
|
||||
|
@ -191,7 +204,7 @@
|
|||
(if viper-emacs-p 'frame-parameter 'frame-property)
|
||||
(selected-frame)
|
||||
'viper-saved-cursor-color-in-replace-mode)
|
||||
(if (eq viper-current-state 'emacs-mode)
|
||||
(if (and (eq viper-current-state 'emacs-mode) viper-emacs-state-cursor-color)
|
||||
viper-emacs-state-cursor-color
|
||||
viper-vi-state-cursor-color)))
|
||||
|
||||
|
@ -201,7 +214,7 @@
|
|||
(if viper-emacs-p 'frame-parameter 'frame-property)
|
||||
(selected-frame)
|
||||
'viper-saved-cursor-color-in-insert-mode)
|
||||
(if (eq viper-current-state 'emacs-mode)
|
||||
(if (and (eq viper-current-state 'emacs-mode) viper-emacs-state-cursor-color)
|
||||
viper-emacs-state-cursor-color
|
||||
viper-vi-state-cursor-color)))
|
||||
|
||||
|
|
|
@ -534,10 +534,6 @@ If Viper is enabled, turn it off. Otherwise, turn it on."
|
|||
(defun viper-mode ()
|
||||
"Turn on Viper emulation of Vi in Emacs. See Info node `(viper)Viper'."
|
||||
(interactive)
|
||||
(if (null viper-vi-state-cursor-color)
|
||||
(modify-frame-parameters
|
||||
(selected-frame)
|
||||
(list (cons 'viper-vi-state-cursor-color (viper-get-cursor-color)))))
|
||||
(if (not noninteractive)
|
||||
(progn
|
||||
;; if the user requested viper-mode explicitly
|
||||
|
@ -618,7 +614,8 @@ This startup message appears whenever you load Viper, unless you type `y' now."
|
|||
|
||||
(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)))))
|
||||
(viper-change-state-to-vi))
|
||||
)))
|
||||
|
||||
|
||||
;; Apply a little heuristic to invoke vi state on major-modes
|
||||
|
@ -862,8 +859,11 @@ It also can't undo some Viper settings."
|
|||
;; info about the display and windows until emacs initialization is complete
|
||||
;; So do it via the window-setup-hook
|
||||
(add-hook 'window-setup-hook
|
||||
'(lambda ()
|
||||
(setq viper-vi-state-cursor-color (viper-get-cursor-color))))
|
||||
'(lambda ()
|
||||
(modify-frame-parameters
|
||||
(selected-frame)
|
||||
(list (cons 'viper-vi-state-cursor-color
|
||||
(viper-get-cursor-color))))))
|
||||
|
||||
;; Tell vc-diff to put *vc* in Vi mode
|
||||
(if (featurep 'vc)
|
||||
|
@ -903,7 +903,6 @@ It also can't undo some Viper settings."
|
|||
|
||||
(defadvice set-cursor-color (after viper-set-cursor-color-ad activate)
|
||||
"Change cursor color in VI state."
|
||||
;;(setq viper-vi-state-cursor-color (ad-get-arg 0))
|
||||
(modify-frame-parameters
|
||||
(selected-frame)
|
||||
(list (cons 'viper-vi-state-cursor-color (ad-get-arg 0))))
|
||||
|
@ -1008,8 +1007,8 @@ It also can't undo some Viper settings."
|
|||
;; these are primarily advices and Vi-ish variable settings
|
||||
(defun viper-non-hook-settings ()
|
||||
|
||||
;; Viper changes the default mode-line-buffer-identification
|
||||
(setq-default mode-line-buffer-identification '(" %b"))
|
||||
;;;; Viper changes the default mode-line-buffer-identification
|
||||
;;(setq-default mode-line-buffer-identification '(" %b"))
|
||||
|
||||
;; setup emacs-supported vi-style feel
|
||||
(setq next-line-add-newlines nil
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue