Mercurial > emacs
changeset 42288:3ce98f3e0608
2001-12-24 Michael Kifer <kifer@cs.sunysb.edu>
* viper-cmd.el (viper-change-state): Got rid of make-local-hook.
(viper-special-read-and-insert-char): Make C-m work right in the r
comand.
(viper-buffer-search-enable): Fixed format string.
* viper-ex.el (ex-token-alist): Use ex-set-visited-file-name
instead of viper-info-on-file.
(ex-set-visited-file-name): New function.
* viper.el (viper-emacs-state-mode-list): Added mail-mode.
* ediff-mult.el (ediff-meta-mark-equal-files): Added optional
action argument.
* ediff-init.el: Fixed some doc strings.
* ediff-util.el (ediff-after-quit-hook-internal): New variable.
Got rid of make-local-hook.
* ediff-wind.el (ediff-setup-control-frame): Got rid of
make-local-hook.
author | Michael Kifer <kifer@cs.stonybrook.edu> |
---|---|
date | Mon, 24 Dec 2001 05:50:31 +0000 |
parents | c95e74201401 |
children | 4886cc4dada5 |
files | lisp/ChangeLog lisp/ediff-init.el lisp/ediff-mult.el lisp/ediff-util.el lisp/ediff-wind.el lisp/emulation/viper-cmd.el lisp/emulation/viper-ex.el lisp/emulation/viper.el man/ChangeLog man/ediff.texi man/viper.texi |
diffstat | 11 files changed, 122 insertions(+), 34 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Mon Dec 24 04:52:54 2001 +0000 +++ b/lisp/ChangeLog Mon Dec 24 05:50:31 2001 +0000 @@ -1,3 +1,27 @@ +2001-12-24 Michael Kifer <kifer@cs.sunysb.edu> + + * viper-cmd.el (viper-change-state): Got rid of make-local-hook. + (viper-special-read-and-insert-char): Make C-m work right in the r + comand. + (viper-buffer-search-enable): Fixed format string. + + * viper-ex.el (ex-token-alist): Use ex-set-visited-file-name + instead of viper-info-on-file. + (ex-set-visited-file-name): New function. + + * viper.el (viper-emacs-state-mode-list): Added mail-mode. + + * ediff-mult.el (ediff-meta-mark-equal-files): Added optional + action argument. + + * ediff-init.el: Fixed some doc strings. + + * ediff-util.el (ediff-after-quit-hook-internal): New variable. + Got rid of make-local-hook. + + * ediff-wind.el (ediff-setup-control-frame): Got rid of + make-local-hook. + 2001-12-23 Richard M. Stallman <rms@gnu.org> * term/x-win.el (x-handle-geometry): Put height and width
--- a/lisp/ediff-init.el Mon Dec 24 04:52:54 2001 +0000 +++ b/lisp/ediff-init.el Mon Dec 24 05:50:31 2001 +0000 @@ -590,7 +590,7 @@ Actually, Ediff restores the scope of visibility that existed at startup.") (defcustom ediff-keep-variants t - "*nil means that non-modified variant buffers should be removed at the end of the session after some interrogation. + "*nil means prompt to remove unmodified buffers A/B/C at session end. Supplying a prefix argument to the quit command `q' temporarily reverses the meaning of this variable." :type 'boolean @@ -1241,7 +1241,7 @@ (defcustom ediff-autostore-merges 'group-jobs-only "*Save the results of merge jobs automatically. -nil means don't save automatically. t means always save. Anything but nil or t +nil means don't save automatically. t means always save. Anything else means save automatically only if the merge job is part of a group of jobs, such as `ediff-merge-directory' or `ediff-merge-directory-revisions'." :type '(choice (const nil) (const t) (const group-jobs-only))
--- a/lisp/ediff-mult.el Mon Dec 24 04:52:54 2001 +0000 +++ b/lisp/ediff-mult.el Mon Dec 24 05:50:31 2001 +0000 @@ -2110,10 +2110,17 @@ (ediff-update-meta-buffer (current-buffer) 'must-redraw)) -(defun ediff-meta-mark-equal-files () - "Run though the session list and mark identical files. -This is used only for sessions that involve 2 or 3 files at the same time." +;; ACTION is ?h, ?m, ?=: to mark for hiding, mark for operation, or simply +;; indicate which are equal files +(defun ediff-meta-mark-equal-files (&optional action) + "Run through the session list and mark identical files. +This is used only for sessions that involve 2 or 3 files at the same time. +ACTION is an optional argument that can be ?h, ?m, ?=, to mark for hiding, mark +for operation, or simply indicate which are equal files. If it is nil, then +last-command-char is used to decide which action to take." (interactive) + (if (null action) + (setq action last-command-char)) (let ((list (cdr ediff-meta-list)) marked1 marked2 marked3 fileinfo1 fileinfo2 fileinfo3 elt) @@ -2138,9 +2145,9 @@ (or (ediff-mark-if-equal fileinfo2 fileinfo3) (setq marked3 nil)))) (if (and marked1 marked2 marked3) - (cond ((eq last-command-char ?h) + (cond ((eq action ?h) (ediff-mark-session-for-hiding elt 'mark)) - ((eq last-command-char ?m) + ((eq action ?m) (ediff-mark-session-for-operation elt 'mark)) )) (setq list (cdr list)))
--- a/lisp/ediff-util.el Mon Dec 24 04:52:54 2001 +0000 +++ b/lisp/ediff-util.el Mon Dec 24 05:50:31 2001 +0000 @@ -40,6 +40,8 @@ (defvar mark-active) (defvar ediff-emacs-p) +(defvar ediff-after-quit-hook-internal nil) + (eval-when-compile (let ((load-path (cons (expand-file-name ".") load-path))) (or (featurep 'ediff-init) @@ -294,8 +296,6 @@ (make-local-variable 'ediff-window-setup-function) (make-local-variable 'ediff-keep-variants) - (make-local-hook 'ediff-after-quit-hook-internal) - ;; unwrap set up parameters passed as argument (while setup-parameters (set (car (car setup-parameters)) (cdr (car setup-parameters))) @@ -317,9 +317,11 @@ (if (string-match "buffer" (symbol-name ediff-job-name)) (setq ediff-keep-variants t)) - (make-local-hook 'pre-command-hook) + (if ediff-xemacs-p + (make-local-hook 'pre-command-hook)) + (if (ediff-window-display-p) - (add-hook 'pre-command-hook 'ediff-spy-after-mouse nil t)) + (add-hook 'pre-command-hook 'ediff-spy-after-mouse nil 'local)) (setq ediff-mouse-pixel-position (mouse-pixel-position)) ;; adjust for merge jobs @@ -3845,7 +3847,10 @@ "Toggle profiling Ediff commands." (interactive) (ediff-barf-if-not-control-buffer) - (make-local-hook 'post-command-hook) + + (if ediff-xemacs-p + (make-local-hook 'post-command-hook)) + (let ((pre-hook 'pre-command-hook) (post-hook 'post-command-hook)) (if (not (equal ediff-command-begin-time '(0 0 0))) @@ -3853,8 +3858,8 @@ (remove-hook post-hook 'ediff-calc-command-time) (setq ediff-command-begin-time '(0 0 0)) (message "Ediff profiling disabled")) - (add-hook pre-hook 'ediff-save-time t t) - (add-hook post-hook 'ediff-calc-command-time nil t) + (add-hook pre-hook 'ediff-save-time t 'local) + (add-hook post-hook 'ediff-calc-command-time nil 'local) (message "Ediff profiling enabled")))) (defun ediff-print-diff-vector (diff-vector-var)
--- a/lisp/ediff-wind.el Mon Dec 24 04:52:54 2001 +0000 +++ b/lisp/ediff-wind.el Mon Dec 24 05:50:31 2001 +0000 @@ -1018,8 +1018,10 @@ (if ediff-xemacs-p (ediff-with-current-buffer ctl-buffer - (make-local-hook 'select-frame-hook) - (add-hook 'select-frame-hook 'ediff-xemacs-select-frame-hook nil t) + (if ediff-xemacs-p + (make-local-hook 'select-frame-hook)) + (add-hook + 'select-frame-hook 'ediff-xemacs-select-frame-hook nil 'local) )) (ediff-with-current-buffer ctl-buffer
--- a/lisp/emulation/viper-cmd.el Mon Dec 24 04:52:54 2001 +0000 +++ b/lisp/emulation/viper-cmd.el Mon Dec 24 05:50:31 2001 +0000 @@ -298,10 +298,12 @@ ;; desirable that viper-pre-command-sentinel is the last hook and ;; viper-post-command-sentinel is the first hook. - (make-local-hook 'viper-after-change-functions) - (make-local-hook 'viper-before-change-functions) - (make-local-hook 'viper-post-command-hooks) - (make-local-hook 'viper-pre-command-hooks) + (if viper-xemacs-p + (progn + (make-local-hook 'viper-after-change-functions) + (make-local-hook 'viper-before-change-functions) + (make-local-hook 'viper-post-command-hooks) + (make-local-hook 'viper-pre-command-hooks))) (remove-hook 'post-command-hook 'viper-post-command-sentinel) (add-hook 'post-command-hook 'viper-post-command-sentinel) @@ -786,9 +788,15 @@ ;; key translation. (Such left-overs are possible if the user ;; types a regular key.) (let (unread-command-events) - ;; The next 2 cmds are intended to prevent the input method + ;; The next cmd and viper-set-unread-command-events + ;; are intended to prevent the input method ;; from swallowing ^M, ^Q and other special characters (setq ch (read-char)) + ;; replace ^M with the newline + (if (eq ch ?\C-m) (setq ch ?\n)) + ;; Make sure ^V and ^Q work as quotation chars + (if (memq ch '(?\C-v ?\C-q)) + (setq ch (read-char))) (viper-set-unread-command-events ch) (quail-input-method nil) @@ -806,6 +814,11 @@ ;; quail-input-method (let (unread-command-events) (setq ch (read-char)) + ;; replace ^M with the newline + (if (eq ch ?\C-m) (setq ch ?\n)) + ;; Make sure ^V and ^Q work as quotation chars + (if (memq ch '(?\C-v ?\C-q)) + (setq ch (read-char))) (viper-set-unread-command-events ch) (quail-start-translation nil) @@ -818,9 +831,19 @@ )) ((and (boundp 'iso-accents-mode) iso-accents-mode) (setq ch (aref (read-key-sequence nil) 0)) + ;; replace ^M with the newline + (if (eq ch ?\C-m) (setq ch ?\n)) + ;; Make sure ^V and ^Q work as quotation chars + (if (memq ch '(?\C-v ?\C-q)) + (setq ch (aref (read-key-sequence nil) 0))) (insert ch)) (t (setq ch (read-char)) + ;; replace ^M with the newline + (if (eq ch ?\C-m) (setq ch ?\n)) + ;; Make sure ^V and ^Q work as quotation chars + (if (memq ch '(?\C-v ?\C-q)) + (setq ch (read-char))) (insert ch)) ) (setq last-command-event @@ -2554,12 +2577,9 @@ (or (eq viper-intermediate-command 'viper-repeat) (viper-special-read-and-insert-char)) - ;; Is this needed? - (if (eq char ?\C-m) (setq char ?\n)) - (delete-char 1 t) - (setq char (if com viper-d-char (viper-char-at-pos 'backward))) + (if com (insert char)) (setq viper-d-char char) @@ -3836,7 +3856,7 @@ (define-key viper-vi-basic-map (cond ((viper-characterp viper-buffer-search-char) (char-to-string viper-buffer-search-char)) - (t (error "viper-buffer-search-char: wrong value type, %s" + (t (error "viper-buffer-search-char: wrong value type, %S" viper-buffer-search-char))) 'viper-command-argument) (aset viper-exec-array viper-buffer-search-char 'viper-exec-buffer-search)
--- a/lisp/emulation/viper-ex.el Mon Dec 24 04:52:54 2001 +0000 +++ b/lisp/emulation/viper-ex.el Mon Dec 24 05:50:31 2001 +0000 @@ -115,7 +115,7 @@ ("customize" (customize-group "viper")) ("delete" (ex-delete)) ("edit" (ex-edit)) - ("file" (viper-info-on-file)) + ("file" (ex-set-visited-file-name)) ("g" "global") ("global" (ex-global nil) is-mashed) ("goto" (ex-goto)) @@ -2232,6 +2232,25 @@ (kill-buffer " *viper-info*"))) )) + +;; Without arguments displays info on file. With an arg, sets the visited file +;; name to that arg +(defun ex-set-visited-file-name () + (viper-get-ex-file) + (if (string= ex-file "") + (viper-info-on-file) + ;; If ex-file is a directory, use the file portion of the buffer + ;; file name (like ex-write). Do this even if ex-file is a + ;; non-existent directory, since set-visited-file-name signals an + ;; error on this condition, too. + (if (and (string= (file-name-nondirectory ex-file) "") + buffer-file-name + (not (file-directory-p buffer-file-name))) + (setq ex-file (concat (file-name-as-directory ex-file) + (file-name-nondirectory buffer-file-name)))) + (set-visited-file-name ex-file))) + + ;; display all variables set through :set (defun ex-show-vars () (with-output-to-temp-buffer " *viper-info*"
--- a/lisp/emulation/viper.el Mon Dec 24 04:52:54 2001 +0000 +++ b/lisp/emulation/viper.el Mon Dec 24 05:50:31 2001 +0000 @@ -426,6 +426,7 @@ tar-mode mh-folder-mode + mail-mode gnus-group-mode gnus-summary-mode
--- a/man/ChangeLog Mon Dec 24 04:52:54 2001 +0000 +++ b/man/ChangeLog Mon Dec 24 05:50:31 2001 +0000 @@ -1,3 +1,9 @@ +2001-12-24 Michael Kifer <kifer@cs.sunysb.edu> + + * ediff.texi: Typos. + + * viper.texi: Typos, acknowledgements, updated the :f command. + 2001-12-20 Eli Zaretskii <eliz@is.elta.co.il> * Makefile.in (EMACSSOURCES): Update the list of Emacs manual
--- a/man/ediff.texi Mon Dec 24 04:52:54 2001 +0000 +++ b/man/ediff.texi Mon Dec 24 05:50:31 2001 +0000 @@ -27,7 +27,7 @@ @comment %**end of header (This is for running Texinfo on a region.) @ifinfo -This file documents Ediff, a comprehensive visual interface to diff +This file documents Ediff, a comprehensive visual interface to Unix diff and patch utilities. Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. @@ -123,7 +123,7 @@ allow the user to conveniently launch browsing or merging sessions on groups of files in two (or three) different directories. -In addition, Ediff can apply a patch to a file and then let you step though +In addition, Ediff can apply a patch to a file and then let you step through both files, the patched and the original one, simultaneously, difference-by-difference. You can even apply a patch right out of a mail buffer, i.e., patches received by mail don't even have to be saved. Since @@ -1071,7 +1071,7 @@ this variable globally. @cindex Multi-file patches -A multi-file patch is a concatenated output of several runs of the +A multi-file patch is a concatenated output of several runs of the Unix @code{diff} command (some versions of @code{diff} let you create a multi-file patch in just one run). Ediff facilitates creation of multi-file patches as follows. If you are in a session group buffer @@ -1821,8 +1821,8 @@ @vindex ediff-coding-system-for-read This variable specifies the coding system to use when reading the output that the programs @code{diff3} and @code{diff} send to Emacs. The default -is @code{raw-text}, and this should work fine on GNU, Unix, and in most -cases under Windows NT/95/98/2000. There are @code{diff} programs +is @code{raw-text}, and this should work fine in Unix and in most +cases under Windows NT/95/98/2000. There are @code{diff} programs for which the default option doesn't work under Windows. In such cases, @code{raw-text-dos} might work. If not, you will have to experiment with other coding systems or use GNU diff.
--- a/man/viper.texi Mon Dec 24 04:52:54 2001 +0000 +++ b/man/viper.texi Mon Dec 24 05:50:31 2001 +0000 @@ -4012,8 +4012,10 @@ Preserve the file -- autosave buffers. @item :rec Recover file from autosave. -@item :f -Print file name and lines. +@item :f [<file>] +without the argument, prints file name and character/line information afout +the currently visited file. With an argument, sets the currently visited +filename to @file{file}. @item :cd [<dir>] Set the working directory to <dir> (default home directory). @item :pwd @@ -4451,6 +4453,7 @@ cook@@biostat.wisc.edu (Tom Cook), csdayton@@midway.uchicago.edu (Soren Dayton), dave@@hellgate.utah.edu, +dm@@scs.cs.nyu.edu (David Mazieres), dominik@@strw.LeidenUniv.nl (Carsten Dominik), dwallach@@cs.princeton.edu (Dan Wallach), dwight@@toolucky.llnl.gov (Dwight Shih), @@ -4486,6 +4489,7 @@ rxga@@ulysses.att.com, sawdey@@lcse.umn.edu (Aaron Sawdey), simonb@@prl.philips.co.uk (Simon Blanchard), +spadgett1@@nc.rr.com (Samuel Padgett), stephen@@farrell.org (Stephen Farrell), sudish@@MindSpring.COM (Sudish Joseph), schwab@@issan.informatik.uni-dortmund.de (Andreas Schwab)