comparison lisp/emulation/viper-init.el @ 42602:633233bf2bbf

2002-01-07 Michael Kifer <kifer@cs.stonybrook.edu> * viper-init.el (viper-cond-compile-for-xemacs-or-emacs): new macro that replaces viper-emacs-p and viper-xemacs-p in many cases. Used to reduce the number of warnings. * viper-cmd.el: use viper-cond-compile-for-xemacs-or-emacs. (viper-standard-value): moved here from viper.el. (viper-set-unread-command-events): moved to viper-util.el (viper-check-minibuffer-overlay): make sure viper-minibuffer-overlay is moved to cover the entire input field. * viper-util.el: use viper-cond-compile-for-xemacs-or-emacs. (viper-read-key-sequence, viper-set-unread-command-events, viper-char-symbol-sequence-p, viper-char-array-p): moved here. * viper-ex.el: use viper-cond-compile-for-xemacs-or-emacs. * viper-keym.el: use viper-cond-compile-for-xemacs-or-emacs. * viper-mous.el: use viper-cond-compile-for-xemacs-or-emacs. * viper-macs.el (viper-char-array-p, viper-char-symbol-sequence-p, viper-event-vector-p): moved to viper-util.el * viper.el (viper-standard-value): moved to viper-cmd.el. Use viper-cond-compile-for-xemacs-or-emacs. * ediff-help.el: use ediff-cond-compile-for-xemacs-or-emacs. * ediff-hook.el: use ediff-cond-compile-for-xemacs-or-emacs. * ediff-init.el (ediff-cond-compile-for-xemacs-or-emacs): new macro designed to be used in many places where ediff-emacs-p or ediff-xemacs-p was previously used. Reduces the number of warnings. Use ediff-cond-compile-for-xemacs-or-emacs in many places in lieue of ediff-xemacs-p. (ediff-make-current-diff-overlay, ediff-highlight-diff-in-one-buffer, ediff-convert-fine-diffs-to-overlays, ediff-empty-diff-region-p, ediff-whitespace-diff-region-p, ediff-get-region-contents): moved to ediff-util.el. (ediff-event-key): moved here. * ediff-merge.el: got rid of unreferenced variables. * ediff-mult.el: use ediff-cond-compile-for-xemacs-or-emacs. * ediff-util.el: use ediff-cond-compile-for-xemacs-or-emacs. (ediff-cleanup-mess): improved the way windows are set up after quitting ediff. (ediff-janitor): use ediff-dispose-of-variant-according-to-user. (ediff-dispose-of-variant-according-to-user): new function designed to be smarter and also understands indirect buffers. (ediff-highlight-diff-in-one-buffer, ediff-unhighlight-diff-in-one-buffer, ediff-unhighlight-diffs-totally-in-one-buffer, ediff-highlight-diff, ediff-highlight-diff, ediff-unhighlight-diff, ediff-unhighlight-diffs-totally, ediff-empty-diff-region-p, ediff-whitespace-diff-region-p, ediff-get-region-contents, ediff-make-current-diff-overlay): moved here. (ediff-format-bindings-of): new function by Hannu Koivisto <azure@iki.fi>. (ediff-setup): make sure the merge buffer is always widened and modifiable. (ediff-write-merge-buffer-and-maybe-kill): refuse to write the result of a merge into a file visited by another buffer. (ediff-arrange-autosave-in-merge-jobs): check if the merge file is visited by another buffer and ask to save/delete that buffer. (ediff-verify-file-merge-buffer): new function to do the above. * ediff-vers.el: load ediff-init.el at compile time. * ediff-wind.el: use ediff-cond-compile-for-xemacs-or-emacs. * ediff.el (ediff-windows, ediff-regions-wordwise, ediff-regions-linewise): use indirect buffers to improve robustness and make it possible to compare regions of the same buffer (even overlapping regions). (ediff-clone-buffer-for-region-comparison, ediff-clone-buffer-for-window-comparison): new functions. (ediff-files-internal): refuse to compare identical files. (ediff-regions-internal): get rid of the warning about comparing regions of the same buffer. * ediff-diff.el (ediff-convert-fine-diffs-to-overlays): moved here. Plus the following fixes courtesy of Dave Love: Doc fixes. (ediff-word-1): Use word class and move - to the front per regexp documentation. (ediff-wordify): Bind forward-word-function outside loop. (ediff-copy-to-buffer): Use insert-buffer-substring rather than consing buffer contents. (ediff-goto-word): Move syntax table setting outside loop.
author Michael Kifer <kifer@cs.stonybrook.edu>
date Tue, 08 Jan 2002 04:36:01 +0000
parents 0cfd64a10789
children 0d8b17d428b5
comparison
equal deleted inserted replaced
42601:ddd4802ff361 42602:633233bf2bbf
1 ;;; viper-init.el --- some common definitions for Viper 1 ;;; viper-init.el --- some common definitions for Viper
2 2
3 ;; Copyright (C) 1997 Free Software Foundation, Inc. 3 ;; Copyright (C) 1997, 98, 99, 2000, 01, 02 Free Software Foundation, Inc.
4 4
5 ;; Author: Michael Kifer <kifer@cs.sunysb.edu> 5 ;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
6 6
7 ;; This file is part of GNU Emacs. 7 ;; This file is part of GNU Emacs.
8 8
9 ;; GNU Emacs is free software; you can redistribute it and/or modify 9 ;; GNU Emacs is free software; you can redistribute it and/or modify
10 ;; it under the terms of the GNU General Public License as published by 10 ;; it under the terms of the GNU General Public License as published by
35 (defvar viper-version) 35 (defvar viper-version)
36 (defvar viper-expert-level) 36 (defvar viper-expert-level)
37 (defvar current-input-method) 37 (defvar current-input-method)
38 (defvar default-input-method) 38 (defvar default-input-method)
39 (defvar describe-current-input-method-function) 39 (defvar describe-current-input-method-function)
40 (defvar bar-cursor)
41 (defvar default-cursor-type)
42 (defvar cursor-type)
40 ;; end pacifier 43 ;; end pacifier
41 44
42 45
43 ;; Viper version 46 ;; Viper version
44 (defun viper-version () 47 (defun viper-version ()
48 ;; Is it XEmacs? 51 ;; Is it XEmacs?
49 (defconst viper-xemacs-p (string-match "XEmacs" emacs-version)) 52 (defconst viper-xemacs-p (string-match "XEmacs" emacs-version))
50 ;; Is it Emacs? 53 ;; Is it Emacs?
51 (defconst viper-emacs-p (not viper-xemacs-p)) 54 (defconst viper-emacs-p (not viper-xemacs-p))
52 ;; Tell whether we are running as a window application or on a TTY 55 ;; Tell whether we are running as a window application or on a TTY
56
57 ;; This is used to avoid compilation warnings. When emacs/xemacs forms can
58 ;; generate compile time warnings, we use this macro.
59 ;; In this case, the macro will expand into the form that is appropriate to the
60 ;; compiler at hand.
61 ;; Suggested by rms.
62 (defmacro viper-cond-compile-for-xemacs-or-emacs (xemacs-form emacs-form)
63 (if (string-match "XEmacs" emacs-version)
64 xemacs-form emacs-form))
65
66
53 (defsubst viper-device-type () 67 (defsubst viper-device-type ()
54 (if viper-emacs-p 68 (viper-cond-compile-for-xemacs-or-emacs
55 window-system 69 (device-type (selected-device))
56 (device-type (selected-device)))) 70 window-system
71 ))
72
57 ;; in XEmacs: device-type is tty on tty and stream in batch. 73 ;; in XEmacs: device-type is tty on tty and stream in batch.
58 (defun viper-window-display-p () 74 (defun viper-window-display-p ()
59 (and (viper-device-type) (not (memq (viper-device-type) '(tty stream pc))))) 75 (and (viper-device-type) (not (memq (viper-device-type) '(tty stream pc)))))
60 76
61 (defcustom viper-ms-style-os-p (memq system-type 77 (defcustom viper-ms-style-os-p (memq system-type
432 "Function to use for prompting the user for a buffer name." 448 "Function to use for prompting the user for a buffer name."
433 :type 'symbol 449 :type 'symbol
434 :group 'viper) 450 :group 'viper)
435 451
436 ;; XEmacs requires glyphs 452 ;; XEmacs requires glyphs
437 (if viper-xemacs-p 453 (viper-cond-compile-for-xemacs-or-emacs
438 (progn 454 (progn ; xemacs
439 (or (glyphp viper-replace-region-end-delimiter) 455 (or (glyphp viper-replace-region-end-delimiter)
440 (setq viper-replace-region-end-delimiter 456 (setq viper-replace-region-end-delimiter
441 (make-glyph viper-replace-region-end-delimiter))) 457 (make-glyph viper-replace-region-end-delimiter)))
442 (or (glyphp viper-replace-region-start-delimiter) 458 (or (glyphp viper-replace-region-start-delimiter)
443 (setq viper-replace-region-start-delimiter 459 (setq viper-replace-region-start-delimiter
444 (make-glyph viper-replace-region-start-delimiter))) 460 (make-glyph viper-replace-region-start-delimiter)))
445 )) 461 )
462 nil ; emacs
463 )
464
446 465
447 466
448 ;; These are local marker that must be initialized to nil and moved with 467 ;; These are local marker that must be initialized to nil and moved with
449 ;; `viper-move-marker-locally' 468 ;; `viper-move-marker-locally'
450 ;; 469 ;;
976 (defun viper-restore-cursor-type () 995 (defun viper-restore-cursor-type ()
977 (condition-case nil 996 (condition-case nil
978 (if viper-xemacs-p 997 (if viper-xemacs-p
979 (setq bar-cursor nil) 998 (setq bar-cursor nil)
980 (setq cursor-type default-cursor-type)) 999 (setq cursor-type default-cursor-type))
981 (error))) 1000 (error nil)))
982 1001
983 (defun viper-set-insert-cursor-type () 1002 (defun viper-set-insert-cursor-type ()
984 (if viper-xemacs-p 1003 (if viper-xemacs-p
985 (setq bar-cursor 2) 1004 (setq bar-cursor 2)
986 (setq cursor-type '(bar . 2)))) 1005 (setq cursor-type '(bar . 2))))