Commit 6de3983f authored by Michael Kifer's avatar Michael Kifer
Browse files

2000-05-24 Michael Kifer <kifer@cs.sunysb.edu>

	* ediff-diff.el (ediff-forward-word): take syntactic word class into
	account.
	(ediff-test-utility,ediff-diff-mandatory-option,
	ediff-reset-diff-options): utilities for proper initialization of
	ediff-diff-options and ediff-diff3-options on Windows.

	* ediff-init.el (ediff-merge-filename-prefix): new customizable
	variable.

	* ediff-mult.el (ediff-filegroup-action): use
	ediff-merge-filename-prefix.
parent 82172606
2000-05-24 Michael Kifer <kifer@cs.sunysb.edu>
* ediff-diff.el (ediff-forward-word): take syntactic word class into
account.
(ediff-test-utility,ediff-diff-mandatory-option,
ediff-reset-diff-options): utilities for proper initialization of
ediff-diff-options and ediff-diff3-options on Windows.
* ediff-init.el (ediff-merge-filename-prefix): new customizable
variable.
* ediff-mult.el (ediff-filegroup-action): use
ediff-merge-filename-prefix.
2000-05-24 Michael Kifer <kifer@cs.sunysb.edu>
* viper-ex.el (ex-write): set selective display to nil.
......
......@@ -45,6 +45,42 @@
:group 'ediff)
;; The following functions needed for setting diff/diff3 options
;; test if diff supports the --binary option
(defsubst ediff-test-utility (diff-util option &optional files)
(zerop (apply 'call-process
(append (list diff-util nil nil nil option) files))))
(defun ediff-diff-mandatory-option (diff-util)
(let ((file (if (boundp 'null-device) null-device "/dev/null")))
(cond ((not (memq system-type '(ms-dos windows-nt windows-95)))
"")
((and (string= diff-util ediff-diff-program)
(ediff-test-utility
ediff-diff-program "--binary" (list file file)))
"--binary")
((and (string= diff-util ediff-diff3-program)
(ediff-test-utility
ediff-diff3-program "--binary" (list file file file)))
"--binary")
(t ""))))
;; make sure that mandatory options are added even if the user changes
;; ediff-diff-options or ediff-diff3-options in the customization widget
(defun ediff-reset-diff-options (symb val)
(let* ((diff-program
(if (eq symb 'ediff-diff-options)
ediff-diff-program
ediff-diff3-program))
(mandatory-option (ediff-diff-mandatory-option diff-program))
(spacer (if (string-equal mandatory-option "") "" " ")))
(set symb
(if (string-match mandatory-option val)
val
(concat mandatory-option spacer val)))
))
(defcustom ediff-shell
(cond ((eq system-type 'emx) "cmd") ; OS/2
((memq system-type '(ms-dos windows-nt windows-95))
......@@ -76,11 +112,12 @@ ignore changes whose lines all match RE."
"*Program to use for generating the differential of the two files."
:type 'string
:group 'ediff-diff)
(defcustom ediff-diff-options ""
(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
`-w', to ignore space, and `-i', to ignore case of letters.
At present, the option `-c' is not allowed."
:set 'ediff-reset-diff-options
:type 'string
:group 'ediff-diff)
......@@ -105,6 +142,7 @@ Must produce output compatible with Unix's diff3 program."
:group 'ediff-diff)
(defcustom ediff-diff3-options ""
"*Options to pass to `ediff-diff3-program'."
:set 'ediff-reset-diff-options
:type 'string
:group 'ediff-diff)
(defcustom ediff-diff3-ok-lines-regexp
......@@ -1173,8 +1211,7 @@ Used for splitting difference regions into individual words.")
"*Characters constituting white space.
These characters are ignored when differing regions are split into words.")
;;(defvar ediff-word-1 "a-zA-Z---_`'.?!:"
(defvar ediff-word-1 "a-zA-Z---_"
(defvar ediff-word-1 "\\(a-zA-Z---_\\|\w\\)"
"*Characters that constitute words of type 1.
More precisely, [ediff-word-1] is a regexp that matches type 1 words.
See `ediff-forward-word' for more details.")
......@@ -1201,9 +1238,11 @@ See `ediff-forward-word' for more details.")
"Move point one word forward.
There are four types of words, each of which consists entirely of
characters in `ediff-word-1', `ediff-word-2', `ediff-word-3', or
`ediff-word-4'. Words are recognized by passing these in turn as the
argument to `skip-chars-forward'."
(or (> (skip-chars-forward ediff-word-1) 0)
`ediff-word-4'. Words are recognized by passing these one after another as
arguments to `skip-chars-forward'."
(or (> (+ (skip-chars-forward ediff-word-1)
(skip-syntax-forward "w"))
0)
(> (skip-chars-forward ediff-word-2) 0)
(> (skip-chars-forward ediff-word-3) 0)
(> (skip-chars-forward ediff-word-4) 0)
......
......@@ -1206,6 +1206,11 @@ as `ediff-merge-directory' or `ediff-merge-directory-revisions'."
;; file where the result of the merge is to be saved. used internally
(ediff-defvar-local ediff-merge-store-file nil "")
(defcustom ediff-merge-filename-prefix "merge_"
"*Prefix to be attached to saved merge buffers."
:type 'string
:group 'ediff-merge)
(defcustom ediff-no-emacs-help-in-control-buffer nil
"*Non-nil means C-h should not invoke Emacs help in control buffer.
......
......@@ -1587,7 +1587,7 @@ all marked sessions must be active."
merge-autostore-dir)
(concat
merge-autostore-dir
"merge_"
ediff-merge-filename-prefix
(file-name-nondirectory file1))
))
;; make ediff-startup pass
......@@ -1618,7 +1618,7 @@ all marked sessions must be active."
merge-autostore-dir)
(concat
merge-autostore-dir
"merge_"
ediff-merge-filename-prefix
(file-name-nondirectory file1))) )
;; make ediff-startup pass
;; ediff-control-buffer back to the meta
......@@ -1647,7 +1647,7 @@ all marked sessions must be active."
merge-autostore-dir)
(concat
merge-autostore-dir
"merge_"
ediff-merge-filename-prefix
(file-name-nondirectory file1))) )
;; make ediff-startup pass
;; ediff-control-buffer back to the meta
......@@ -1673,7 +1673,7 @@ all marked sessions must be active."
merge-autostore-dir)
(concat
merge-autostore-dir
"merge_"
ediff-merge-filename-prefix
(file-name-nondirectory file1))) )
(setq ediff-meta-buffer , (current-buffer)
ediff-meta-session-number
......
......@@ -975,8 +975,8 @@ invoked from a session group. This behavior is implemented in the function
necessary.
The variable @code{ediff-autostore-merges} is buffer-local, so it can be
set in a per-buffer manner. Therefore, use @code{setq-default} to globally
change this variable.
set on a per-buffer basis. Therefore, use @code{setq-default} to change
this variable globally.
@cindex Multi-file patches
A multi-file patch is a concatenated output of several runs of the Unix
......@@ -1980,6 +1980,12 @@ The variable @code{ediff-autostore-merges} is buffer-local, so it can be
set in a per-buffer manner. Therefore, use @code{setq-default} to globally
change this variable.
@vindex ediff-merge-filename-prefix
When merge buffers are saved automatically as directed by
@code{ediff-autostore-merges}, Ediff attaches a prefix to each file, as
specified by the variable @code{ediff-merge-filename-prefix}. The default
is @code{merge_}, but this can be changed by the user.
@node Support for Version Control, Customizing the Mode Line, Merging and diff3, Customization
@section Support for Version Control
......
......@@ -2031,7 +2031,8 @@ If you wish to change a Viper binding, you can use the
@code{define-key} command, to modify @code{viper-vi-global-user-map},
@code{viper-insert-global-user-map}, and @code{viper-emacs-global-user-map}, as
explained below. Each of these key maps affects the corresponding Viper state.
The keymap @code{viper-vi-global-user-map} also affects Viper's Replace state.
The keymap @code{viper-insert-global-user-map} also affects Viper's Replace
state.
@noindent
If you want to
......@@ -4442,6 +4443,7 @@ kanze@@gabi-soft.fr (James Kanze),
kin@@isi.com (Kin Cho),
kwzh@@gnu.org (Karl Heuer),
lindstro@@biostat.wisc.edu (Mary Lindstrom),
minakaji@@osaka.email.ne.jp (Mikio Nakajima),
Mark.Bordas@@East.Sun.COM (Mark Bordas),
meyering@@comco.com (Jim Meyering),
mrb@@Eng.Sun.COM (Martin Buchholz),
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment