rpms/xemacs-packages-extra/F-11 xemacs-packages-extra-20091103-ediff-coding-system-532620.patch, 1.1, 1.2 xemacs-packages-extra.spec, 1.12, 1.13

Jerry James jjames at fedoraproject.org
Tue Dec 1 17:58:49 UTC 2009


Author: jjames

Update of /cvs/pkgs/rpms/xemacs-packages-extra/F-11
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv24137/F-11

Modified Files:
	xemacs-packages-extra-20091103-ediff-coding-system-532620.patch 
	xemacs-packages-extra.spec 
Log Message:
* Tue Dec  1 2009 Jerry James <loganjerry at gmail.com> - 20090217-6
- The last ediff fix included more Emacs-specific code (bz 537531).
- Don't package x-symbol fonts, which are only needed on Windows anyway.


xemacs-packages-extra-20091103-ediff-coding-system-532620.patch:
 ChangeLog     |   45 +++++++++++
 Makefile      |    2 
 ediff-diff.el |   45 +++++------
 ediff-help.el |    6 -
 ediff-hook.el |  137 ++++++++++++++++++-----------------
 ediff-init.el |   67 +++++++++--------
 ediff-merg.el |   36 ++++-----
 ediff-mult.el |  130 +++++++++++++++++++++++++--------
 ediff-ptch.el |   22 ++---
 ediff-util.el |   38 ++++-----
 ediff-vers.el |   27 +++---
 ediff-wind.el |   30 +++----
 ediff.el      |  225 +++++++++++++++++++++++++++++++++++-----------------------
 ediff.texi    |  224 ++++++++++++++++++++++++++++++---------------------------
 14 files changed, 606 insertions(+), 428 deletions(-)

Index: xemacs-packages-extra-20091103-ediff-coding-system-532620.patch
===================================================================
RCS file: /cvs/pkgs/rpms/xemacs-packages-extra/F-11/xemacs-packages-extra-20091103-ediff-coding-system-532620.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -p -r1.1 -r1.2
--- xemacs-packages-extra-20091103-ediff-coding-system-532620.patch	3 Nov 2009 17:51:01 -0000	1.1
+++ xemacs-packages-extra-20091103-ediff-coding-system-532620.patch	1 Dec 2009 17:58:49 -0000	1.2
@@ -1,7 +1,34 @@
 diff -dur xemacs-packages.ORIG/ediff/ChangeLog xemacs-packages/ediff/ChangeLog
 --- xemacs-packages.ORIG/ediff/ChangeLog	2008-12-01 02:22:37.000000000 -0700
-+++ xemacs-packages/ediff/ChangeLog	2009-08-17 13:40:49.458796934 -0600
-@@ -1,3 +1,21 @@
++++ xemacs-packages/ediff/ChangeLog	2009-12-01 09:39:07.126858310 -0700
+@@ -1,3 +1,48 @@
++2009-11-27  Norbert Koch  <viteno at xemacs.org>
++
++	* Makefile (VERSION): XEmacs package 1.79 released.
++
++2009-11-26  Adrian Aichner  <adrian at xemacs.org>
++
++	* ediff.el (ediff-buffers-internal): Delete temporary files in
++	case of non-local exit, like C-g (keyboard-quit), as well.
++	* ediff.el (ediff-regions-internal): Ditto.
++
++2009-11-26  Michael Kifer <kifer at cs.stonybrook.edu>
++	
++	* ediff-init.el, ediff-mult.el, ediff-util.el: relpace
++	last-command-char and last-command-event with (ediff-last-command-char) everywhere.
++	
++	* ediff.el (ediff-version): revert change made in Emacs tree.
++	
++	* ediff-menu.el: use purecopy in Emacs menus.
++	
++	* ediff-diff.el, ediff-merge.el, ediff-mult.el, ediff-util.el,
++	ediff.el, ediff-vers.el: use with-current-buffer instead of
++	save-excursion/set-buffer whenever possible. Other cosmetic changes
++	from the Emacs tree.
++	
++	* ediff-mult.el: apply Dan Nicolaescu's patch that adds a menu in
++	ediff-meta mode.
++	
 +2009-08-16  Norbert Koch  <viteno at xemacs.org>
 +
 +	* Makefile (VERSION): XEmacs package 1.78 released.
@@ -25,7 +52,7 @@ diff -dur xemacs-packages.ORIG/ediff/Cha
  	* Makefile (VERSION): XEmacs package 1.77 released.
 diff -dur xemacs-packages.ORIG/ediff/ediff-diff.el xemacs-packages/ediff/ediff-diff.el
 --- xemacs-packages.ORIG/ediff/ediff-diff.el	2008-11-15 22:21:45.000000000 -0700
-+++ xemacs-packages/ediff/ediff-diff.el	2009-08-17 13:40:49.543789080 -0600
++++ xemacs-packages/ediff/ediff-diff.el	2009-12-01 09:39:07.132860465 -0700
 @@ -1,7 +1,7 @@
  ;;; ediff-diff.el --- diff-related utilities
  
@@ -131,7 +158,37 @@ diff -dur xemacs-packages.ORIG/ediff/edi
  Lines that do not match are assumed to be error messages."
    :type 'regexp
    :group 'ediff-diff)
-@@ -1529,11 +1529,11 @@
+@@ -1225,8 +1225,7 @@
+     (unwind-protect
+ 	(let ((directory default-directory)
+ 	      proc)
+-	  (save-excursion
+-	    (set-buffer buffer)
++	  (with-current-buffer buffer
+ 	    (erase-buffer)
+ 	    (setq default-directory directory)
+ 	    (if (or (memq system-type '(emx ms-dos windows-nt windows-95))
+@@ -1283,8 +1282,7 @@
+   (if (and (memq (process-status process) '(exit signal))
+            (buffer-name (process-buffer process)))
+       (progn
+-        (save-excursion
+-          (set-buffer (process-buffer process))
++        (with-current-buffer (process-buffer process)
+           (setq mode-line-process nil))
+         (delete-process process))))
+ 
+@@ -1354,8 +1352,7 @@
+ 	       ediff-forward-word-function)
+ 	   ediff-forward-word-function))
+ 	inbuf-syntax-tbl sv-point diff-string)
+-    (save-excursion
+-     (set-buffer in-buffer)
++    (with-current-buffer in-buffer
+      (setq inbuf-syntax-tbl
+ 	   (if control-buf
+ 	       (ediff-with-current-buffer control-buf
+@@ -1529,11 +1526,11 @@
  
  
  
@@ -150,7 +207,7 @@ diff -dur xemacs-packages.ORIG/ediff/edi
  ;;; ediff-diff.el ends here
 diff -dur xemacs-packages.ORIG/ediff/ediff.el xemacs-packages/ediff/ediff.el
 --- xemacs-packages.ORIG/ediff/ediff.el	2008-11-22 20:34:09.000000000 -0700
-+++ xemacs-packages/ediff/ediff.el	2009-08-17 13:40:50.479789989 -0600
++++ xemacs-packages/ediff/ediff.el	2009-12-01 09:39:07.214982518 -0700
 @@ -1,7 +1,7 @@
  ;;; ediff.el --- a comprehensive visual interface to diff & patch
  
@@ -166,8 +223,8 @@ diff -dur xemacs-packages.ORIG/ediff/edi
  
 -(defconst ediff-version "2.81.2" "The current version of Ediff")
 -(defconst ediff-date "November 22, 2008" "Date of last update")
-+(defconst ediff-version "2.81.3" "The current version of Ediff")
-+(defconst ediff-date "August 15, 2009" "Date of last update")
++(defconst ediff-version "2.81.4" "The current version of Ediff")
++(defconst ediff-date "November 26, 2009" "Date of last update")
  
  
  ;; This file is part of GNU Emacs.
@@ -251,7 +308,194 @@ diff -dur xemacs-packages.ORIG/ediff/edi
  (defun ediff-backup (file)
    "Run Ediff on FILE and its backup file.
  Uses the latest backup, if there are several numerical backups.
-@@ -1504,11 +1542,11 @@
+@@ -437,37 +475,45 @@
+ 	 (buf-C-file-name (if buf-C-is-alive
+ 			      (buffer-file-name (get-buffer buf-B))))
+ 	 file-A file-B file-C)
+-    (if (not (ediff-buffer-live-p buf-A))
+-	(error "Buffer %S doesn't exist" buf-A))
+-    (if (not (ediff-buffer-live-p buf-B))
+-	(error "Buffer %S doesn't exist" buf-B))
+-    (let ((ediff-job-name job-name))
+-      (if (and ediff-3way-comparison-job
+-	       (not buf-C-is-alive))
+-	  (error "Buffer %S doesn't exist" buf-C)))
+-    (if (stringp buf-A-file-name)
+-	(setq buf-A-file-name (file-name-nondirectory buf-A-file-name)))
+-    (if (stringp buf-B-file-name)
+-	(setq buf-B-file-name (file-name-nondirectory buf-B-file-name)))
+-    (if (stringp buf-C-file-name)
+-	(setq buf-C-file-name (file-name-nondirectory buf-C-file-name)))
+-
+-    (setq file-A (ediff-make-temp-file buf-A buf-A-file-name)
+-	  file-B (ediff-make-temp-file buf-B buf-B-file-name))
+-    (if buf-C-is-alive
+-	(setq file-C (ediff-make-temp-file buf-C buf-C-file-name)))
+-
+-    (ediff-setup (get-buffer buf-A) file-A
+-		 (get-buffer buf-B) file-B
+-		 (if buf-C-is-alive (get-buffer buf-C))
+-		 file-C
+-		 (cons `(lambda ()
+-			  (delete-file ,file-A)
+-			  (delete-file ,file-B)
+-			  (if (stringp ,file-C) (delete-file ,file-C)))
+-		       startup-hooks)
+-		 (list (cons 'ediff-job-name job-name))
+-		 merge-buffer-file)))
++    (unwind-protect
++	(progn
++	  (if (not (ediff-buffer-live-p buf-A))
++	      (error "Buffer %S doesn't exist" buf-A))
++	  (if (not (ediff-buffer-live-p buf-B))
++	      (error "Buffer %S doesn't exist" buf-B))
++	  (let ((ediff-job-name job-name))
++	    (if (and ediff-3way-comparison-job
++		     (not buf-C-is-alive))
++		(error "Buffer %S doesn't exist" buf-C)))
++	  (if (stringp buf-A-file-name)
++	      (setq buf-A-file-name (file-name-nondirectory buf-A-file-name)))
++	  (if (stringp buf-B-file-name)
++	      (setq buf-B-file-name (file-name-nondirectory buf-B-file-name)))
++	  (if (stringp buf-C-file-name)
++	      (setq buf-C-file-name (file-name-nondirectory buf-C-file-name)))
++	  
++	  (setq file-A (ediff-make-temp-file buf-A buf-A-file-name)
++		file-B (ediff-make-temp-file buf-B buf-B-file-name))
++	  (if buf-C-is-alive
++	      (setq file-C (ediff-make-temp-file buf-C buf-C-file-name)))
++	  
++	  (ediff-setup (get-buffer buf-A) file-A
++		       (get-buffer buf-B) file-B
++		       (if buf-C-is-alive (get-buffer buf-C))
++		       file-C
++		       (cons `(lambda ()
++				(delete-file ,file-A)
++				(delete-file ,file-B)
++				(if (stringp ,file-C) (delete-file ,file-C)))
++			     startup-hooks)
++		       (list (cons 'ediff-job-name job-name))
++		       merge-buffer-file))
++      (if (and (stringp file-A) (file-exists-p file-A))
++	  (delete-file file-A))
++      (if (and (stringp file-B) (file-exists-p file-B))
++	  (delete-file file-B))
++      (if (and (stringp file-C) (file-exists-p file-C))
++	  (delete-file file-C)))))
+ 
+ 
+ ;;; Directory and file group operations
+@@ -939,8 +985,7 @@
+ 	(buffer-B
+          (ediff-clone-buffer-for-region-comparison buffer-B "-Region.B-"))
+         reg-A-beg reg-A-end reg-B-beg reg-B-end)
+-    (save-excursion
+-      (set-buffer buffer-A)
++    (with-current-buffer buffer-A
+       (setq reg-A-beg (region-beginning)
+ 	    reg-A-end (region-end))
+       (set-buffer buffer-B)
+@@ -980,8 +1025,7 @@
+ 	(buffer-B
+          (ediff-clone-buffer-for-region-comparison buffer-B "-Region.B-"))
+         reg-A-beg reg-A-end reg-B-beg reg-B-end)
+-    (save-excursion
+-      (set-buffer buffer-A)
++    (with-current-buffer buffer-A
+       (setq reg-A-beg (region-beginning)
+ 	    reg-A-end (region-end))
+       ;; enlarge the region to hold full lines
+@@ -1019,41 +1063,46 @@
+   (let ((tmp-buffer (get-buffer-create ediff-tmp-buffer))
+ 	overl-A overl-B
+ 	file-A file-B)
++    (unwind-protect
++	(progn
++	  ;; in case beg/end-A/B aren't markers--make them into markers
++	  (ediff-with-current-buffer buffer-A
++	    (setq beg-A (move-marker (make-marker) beg-A)
++		  end-A (move-marker (make-marker) end-A)))
++	  (ediff-with-current-buffer buffer-B
++	    (setq beg-B (move-marker (make-marker) beg-B)
++		  end-B (move-marker (make-marker) end-B)))
++	  
++	  ;; make file-A
++	  (if word-mode
++	      (ediff-wordify beg-A end-A buffer-A tmp-buffer)
++	    (ediff-copy-to-buffer beg-A end-A buffer-A tmp-buffer))
++	  (setq file-A (ediff-make-temp-file tmp-buffer "regA"))
+ 
+-    ;; in case beg/end-A/B aren't markers--make them into markers
+-    (ediff-with-current-buffer buffer-A
+-      (setq beg-A (move-marker (make-marker) beg-A)
+-	    end-A (move-marker (make-marker) end-A)))
+-    (ediff-with-current-buffer buffer-B
+-      (setq beg-B (move-marker (make-marker) beg-B)
+-	    end-B (move-marker (make-marker) end-B)))
+-
+-    ;; make file-A
+-    (if word-mode
+-	(ediff-wordify beg-A end-A buffer-A tmp-buffer)
+-      (ediff-copy-to-buffer beg-A end-A buffer-A tmp-buffer))
+-    (setq file-A (ediff-make-temp-file tmp-buffer "regA"))
+-
+-    ;; make file-B
+-    (if word-mode
+-	(ediff-wordify beg-B end-B buffer-B tmp-buffer)
+-      (ediff-copy-to-buffer beg-B end-B buffer-B tmp-buffer))
+-    (setq file-B (ediff-make-temp-file tmp-buffer "regB"))
+-
+-    (setq overl-A (ediff-make-bullet-proof-overlay beg-A end-A buffer-A))
+-    (setq overl-B (ediff-make-bullet-proof-overlay beg-B end-B buffer-B))
+-    (ediff-setup buffer-A file-A
+-		 buffer-B file-B
+-		 nil nil	    ; buffer & file C
+-		 (cons `(lambda ()
+-			    (delete-file ,file-A)
+-			    (delete-file ,file-B))
+-		       startup-hooks)
+-		 (append
+-		  (list (cons 'ediff-word-mode  word-mode)
+-			(cons 'ediff-narrow-bounds (list overl-A overl-B))
+-			(cons 'ediff-job-name job-name))
+-		  setup-parameters))
++	  ;; make file-B
++	  (if word-mode
++	      (ediff-wordify beg-B end-B buffer-B tmp-buffer)
++	    (ediff-copy-to-buffer beg-B end-B buffer-B tmp-buffer))
++	  (setq file-B (ediff-make-temp-file tmp-buffer "regB"))
++	  
++	  (setq overl-A (ediff-make-bullet-proof-overlay beg-A end-A buffer-A))
++	  (setq overl-B (ediff-make-bullet-proof-overlay beg-B end-B buffer-B))
++	  (ediff-setup buffer-A file-A
++		       buffer-B file-B
++		       nil nil	    ; buffer & file C
++		       (cons `(lambda ()
++				(delete-file ,file-A)
++				(delete-file ,file-B))
++			     startup-hooks)
++		       (append
++			(list (cons 'ediff-word-mode  word-mode)
++			      (cons 'ediff-narrow-bounds (list overl-A overl-B))
++			      (cons 'ediff-job-name job-name))
++			setup-parameters)))
++      (if (and (stringp file-A) (file-exists-p file-A))
++	  (delete-file file-A))
++      (if (and (stringp file-B) (file-exists-p file-B))
++	  (delete-file file-B)))
+     ))
+ 
+ 
+@@ -1415,6 +1464,8 @@
+   "Return string describing the version of Ediff.
+ When called interactively, displays the version."
+   (interactive)
++  ;; called-interactively-p - not in XEmacs
++  ;; (if (called-interactively-p 'interactive)
+   (if (interactive-p)
+       (message "%s" (ediff-version))
+     (format "Ediff %s of %s" ediff-version ediff-date)))
+@@ -1504,11 +1555,11 @@
  (run-hooks 'ediff-load-hook)
  
  
@@ -270,7 +514,7 @@ diff -dur xemacs-packages.ORIG/ediff/edi
  ;;; ediff.el ends here
 diff -dur xemacs-packages.ORIG/ediff/ediff-help.el xemacs-packages/ediff/ediff-help.el
 --- xemacs-packages.ORIG/ediff/ediff-help.el	2008-11-15 22:21:45.000000000 -0700
-+++ xemacs-packages/ediff/ediff-help.el	2009-08-17 13:40:49.621819245 -0600
++++ xemacs-packages/ediff/ediff-help.el	2009-08-15 00:16:33.000000000 -0600
 @@ -1,7 +1,7 @@
  ;;; ediff-help.el --- Code related to the contents of Ediff help buffers
  
@@ -300,7 +544,7 @@ diff -dur xemacs-packages.ORIG/ediff/edi
  
 diff -dur xemacs-packages.ORIG/ediff/ediff-hook.el xemacs-packages/ediff/ediff-hook.el
 --- xemacs-packages.ORIG/ediff/ediff-hook.el	2008-11-22 20:34:09.000000000 -0700
-+++ xemacs-packages/ediff/ediff-hook.el	2009-08-17 13:40:49.629790560 -0600
++++ xemacs-packages/ediff/ediff-hook.el	2009-12-01 09:39:07.134857315 -0700
 @@ -1,7 +1,7 @@
  ;;; ediff-hook.el --- setup for Ediff's menus and autoloads
  
@@ -310,9 +554,204 @@ diff -dur xemacs-packages.ORIG/ediff/edi
  
  ;; Author: Michael Kifer <kifer at cs.stonybrook.edu>
  
+@@ -123,7 +123,7 @@
+ 	   :style toggle
+ 	   :selected (if (featurep 'ediff-tbar)
+ 			 (ediff-use-toolbar-p))]))
+-      
++
+       ;; put these menus before Object-Oriented-Browser in Tools menu
+       (if (and (featurep 'menubar) (not (featurep 'infodock))
+ 	       (not (featurep 'ediff-hook)))
+@@ -141,117 +141,120 @@
+ 	(symbol-value 'menu-bar-ediff-merge-menu))
+   (defvar menu-bar-ediff-menu (make-sparse-keymap "Compare"))
+   (fset 'menu-bar-ediff-menu (symbol-value 'menu-bar-ediff-menu))
+-  
++
+   ;; define ediff compare menu
++  (define-key menu-bar-ediff-menu [ediff-misc]
++    `(menu-item ,(purecopy "Ediff Miscellanea") menu-bar-ediff-misc-menu))
++  (define-key menu-bar-ediff-menu [separator-ediff-misc] menu-bar-separator)
+   (define-key menu-bar-ediff-menu [window]
+-    '(menu-item "This Window and Next Window" compare-windows
+-		:help "Compare the current window and the next window"))
++    `(menu-item ,(purecopy "This Window and Next Window") compare-windows
++		:help ,(purecopy "Compare the current window and the next window")))
+   (define-key menu-bar-ediff-menu [ediff-windows-linewise]
+-    '(menu-item "Windows Line-by-line..." ediff-windows-linewise
+-		:help "Compare windows line-wise"))
++    `(menu-item ,(purecopy "Windows Line-by-line...") ediff-windows-linewise
++		:help ,(purecopy "Compare windows line-wise")))
+   (define-key menu-bar-ediff-menu [ediff-windows-wordwise]
+-    '(menu-item "Windows Word-by-word..." ediff-windows-wordwise
+-		:help "Compare windows word-wise"))
+-  (define-key menu-bar-ediff-menu [separator-ediff-windows] '("--"))
++    `(menu-item ,(purecopy "Windows Word-by-word...") ediff-windows-wordwise
++		:help ,(purecopy "Compare windows word-wise")))
++  (define-key menu-bar-ediff-menu [separator-ediff-windows] menu-bar-separator)
+   (define-key menu-bar-ediff-menu [ediff-regions-linewise]
+-    '(menu-item "Regions Line-by-line..." ediff-regions-linewise
+-		:help "Compare regions line-wise"))
++    `(menu-item ,(purecopy "Regions Line-by-line...") ediff-regions-linewise
++		:help ,(purecopy "Compare regions line-wise")))
+   (define-key menu-bar-ediff-menu [ediff-regions-wordwise]
+-    '(menu-item "Regions Word-by-word..." ediff-regions-wordwise
+-		:help "Compare regions word-wise"))
+-  (define-key menu-bar-ediff-menu [separator-ediff-regions] '("--"))
++    `(menu-item ,(purecopy "Regions Word-by-word...") ediff-regions-wordwise
++		:help ,(purecopy "Compare regions word-wise")))
++  (define-key menu-bar-ediff-menu [separator-ediff-regions] menu-bar-separator)
+   (define-key menu-bar-ediff-menu [ediff-dir-revision]
+-    '(menu-item "Directory Revisions..." ediff-directory-revisions
+-		:help "Compare directory files with their older versions"))
++    `(menu-item ,(purecopy "Directory Revisions...") ediff-directory-revisions
++		:help ,(purecopy "Compare directory files with their older versions")))
+   (define-key menu-bar-ediff-menu [ediff-revision]
+-    '(menu-item "File with Revision..." ediff-revision
+-		:help "Compare file with its older versions"))
+-  (define-key menu-bar-ediff-menu [separator-ediff-directories] '("--"))
++    `(menu-item ,(purecopy "File with Revision...") ediff-revision
++		:help ,(purecopy "Compare file with its older versions")))
++  (define-key menu-bar-ediff-menu [separator-ediff-directories] menu-bar-separator)
+   (define-key menu-bar-ediff-menu [ediff-directories3]
+-    '(menu-item "Three Directories..." ediff-directories3
+-		:help "Compare files common to three directories simultaneously"))
++    `(menu-item ,(purecopy "Three Directories...") ediff-directories3
++		:help ,(purecopy "Compare files common to three directories simultaneously")))
+   (define-key menu-bar-ediff-menu [ediff-directories]
+-    '(menu-item "Two Directories..." ediff-directories
+-		:help "Compare files common to two directories simultaneously"))
+-  (define-key menu-bar-ediff-menu [separator-ediff-files] '("--"))
++    `(menu-item ,(purecopy "Two Directories...") ediff-directories
++		:help ,(purecopy "Compare files common to two directories simultaneously")))
++  (define-key menu-bar-ediff-menu [separator-ediff-files] menu-bar-separator)
+   (define-key menu-bar-ediff-menu [ediff-buffers3]
+-    '(menu-item "Three Buffers..." ediff-buffers3
+-		:help "Compare three buffers simultaneously"))
++    `(menu-item ,(purecopy "Three Buffers...") ediff-buffers3
++		:help ,(purecopy "Compare three buffers simultaneously")))
+   (define-key menu-bar-ediff-menu [ediff-files3]
+-    '(menu-item "Three Files..." ediff-files3
+-		:help "Compare three files simultaneously"))
++    `(menu-item ,(purecopy "Three Files...") ediff-files3
++		:help ,(purecopy "Compare three files simultaneously")))
+   (define-key menu-bar-ediff-menu [ediff-buffers]
+-    '(menu-item "Two Buffers..." ediff-buffers
+-		:help "Compare two buffers simultaneously"))
++    `(menu-item ,(purecopy "Two Buffers...") ediff-buffers
++		:help ,(purecopy "Compare two buffers simultaneously")))
+   (define-key menu-bar-ediff-menu [ediff-files]
+-    '(menu-item "Two Files..." ediff-files
+-		:help "Compare two files simultaneously"))
++    `(menu-item ,(purecopy "Two Files...") ediff-files
++		:help ,(purecopy "Compare two files simultaneously")))
+ 
+   ;; define ediff merge menu
+   (define-key
+     menu-bar-ediff-merge-menu [ediff-merge-dir-revisions-with-ancestor]
+-    '(menu-item "Directory Revisions with Ancestor..."
++    `(menu-item ,(purecopy "Directory Revisions with Ancestor...")
+       ediff-merge-directory-revisions-with-ancestor
+-      :help "Merge versions of the files in the same directory by comparing the files with common ancestors"))
++      :help ,(purecopy "Merge versions of the files in the same directory by comparing the files with common ancestors")))
+   (define-key
+     menu-bar-ediff-merge-menu [ediff-merge-dir-revisions]
+-    '(menu-item "Directory Revisions..." ediff-merge-directory-revisions
+-      :help "Merge versions of the files in the same directory (without using ancestor information)"))
++    `(menu-item ,(purecopy "Directory Revisions...") ediff-merge-directory-revisions
++      :help ,(purecopy "Merge versions of the files in the same directory (without using ancestor information)")))
+   (define-key
+     menu-bar-ediff-merge-menu [ediff-merge-revisions-with-ancestor]
+-    '(menu-item "Revisions with Ancestor..."
++    `(menu-item ,(purecopy "Revisions with Ancestor...")
+       ediff-merge-revisions-with-ancestor
+-      :help "Merge versions of the same file by comparing them with a common ancestor"))
++      :help ,(purecopy "Merge versions of the same file by comparing them with a common ancestor")))
+   (define-key menu-bar-ediff-merge-menu [ediff-merge-revisions]
+-    '(menu-item "Revisions..." ediff-merge-revisions
+-      :help "Merge versions of the same file (without using ancestor information)"))
+-  (define-key menu-bar-ediff-merge-menu [separator-ediff-merge] '("--"))
++    `(menu-item ,(purecopy "Revisions...") ediff-merge-revisions
++      :help ,(purecopy "Merge versions of the same file (without using ancestor information)")))
++  (define-key menu-bar-ediff-merge-menu [separator-ediff-merge] menu-bar-separator)
+   (define-key
+     menu-bar-ediff-merge-menu [ediff-merge-directories-with-ancestor]
+-    '(menu-item "Directories with Ancestor..."
++    `(menu-item ,(purecopy "Directories with Ancestor...")
+       ediff-merge-directories-with-ancestor
+-      :help "Merge files common to a pair of directories by comparing the files with common ancestors"))
++      :help ,(purecopy "Merge files common to a pair of directories by comparing the files with common ancestors")))
+   (define-key menu-bar-ediff-merge-menu [ediff-merge-directories]
+-    '(menu-item "Directories..." ediff-merge-directories
+-		:help "Merge files common to a pair of directories"))
++    `(menu-item ,(purecopy "Directories...") ediff-merge-directories
++		:help ,(purecopy "Merge files common to a pair of directories")))
+   (define-key
+-    menu-bar-ediff-merge-menu [separator-ediff-merge-dirs] '("--"))
++    menu-bar-ediff-merge-menu [separator-ediff-merge-dirs] menu-bar-separator)
+   (define-key
+     menu-bar-ediff-merge-menu [ediff-merge-buffers-with-ancestor]
+-    '(menu-item "Buffers with Ancestor..." ediff-merge-buffers-with-ancestor
+-      :help "Merge buffers by comparing their contents with a common ancestor"))
++    `(menu-item ,(purecopy "Buffers with Ancestor...") ediff-merge-buffers-with-ancestor
++      :help ,(purecopy "Merge buffers by comparing their contents with a common ancestor")))
+   (define-key menu-bar-ediff-merge-menu [ediff-merge-buffers]
+-    '(menu-item "Buffers..." ediff-merge-buffers
+-      :help "Merge buffers (without using ancestor information)"))
++    `(menu-item ,(purecopy "Buffers...") ediff-merge-buffers
++      :help ,(purecopy "Merge buffers (without using ancestor information)")))
+   (define-key menu-bar-ediff-merge-menu [ediff-merge-files-with-ancestor]
+-    '(menu-item "Files with Ancestor..." ediff-merge-files-with-ancestor
+-      :help "Merge files by comparing them with a common ancestor"))
++    `(menu-item ,(purecopy "Files with Ancestor...") ediff-merge-files-with-ancestor
++      :help ,(purecopy "Merge files by comparing them with a common ancestor")))
+   (define-key menu-bar-ediff-merge-menu [ediff-merge-files]
+-    '(menu-item "Files..." ediff-merge-files
+-      :help "Merge files (without using ancestor information)"))
++    `(menu-item ,(purecopy "Files...") ediff-merge-files
++      :help ,(purecopy "Merge files (without using ancestor information)")))
+ 
+   ;; define epatch menu
+   (define-key menu-bar-epatch-menu [ediff-patch-buffer]
+-    '(menu-item "To a Buffer..." ediff-patch-buffer
+-      :help "Apply a patch to the contents of a buffer"))
++    `(menu-item ,(purecopy "To a Buffer...") ediff-patch-buffer
++      :help ,(purecopy "Apply a patch to the contents of a buffer")))
+   (define-key menu-bar-epatch-menu [ediff-patch-file]
+-    '(menu-item "To a File..." ediff-patch-file
+-      :help "Apply a patch to a file"))
++    `(menu-item ,(purecopy "To a File...") ediff-patch-file
++      :help ,(purecopy "Apply a patch to a file")))
+ 
+   ;; define ediff miscellanea
+   (define-key menu-bar-ediff-misc-menu [emultiframe]
+-    '(menu-item "Toggle use of separate control buffer frame"
++    `(menu-item ,(purecopy "Use separate control buffer frame")
+       ediff-toggle-multiframe
+-      :help "Switch between the single-frame presentation mode and the multi-frame mode"))
++      :help ,(purecopy "Switch between the single-frame presentation mode and the multi-frame mode")))
+   (define-key menu-bar-ediff-misc-menu [eregistry]
+-    '(menu-item "List Ediff Sessions" ediff-show-registry
+-		:help "List all active Ediff sessions; it is a convenient way to find and resume such a session"))
++    `(menu-item ,(purecopy "List Ediff Sessions") ediff-show-registry
++		:help ,(purecopy "List all active Ediff sessions; it is a convenient way to find and resume such a session")))
+   (define-key menu-bar-ediff-misc-menu [ediff-cust]
+-    '(menu-item "Customize Ediff" ediff-customize
+-		:help "Change some of the parameters that govern the behavior of Ediff"))
++    `(menu-item ,(purecopy "Customize Ediff") ediff-customize
++		:help ,(purecopy "Change some of the parameters that govern the behavior of Ediff")))
+   (define-key menu-bar-ediff-misc-menu [ediff-doc]
+-    '(menu-item "Ediff Manual" ediff-documentation
+-		:help "Bring up the Ediff manual")))
++    `(menu-item ,(purecopy "Ediff Manual") ediff-documentation
++		:help ,(purecopy "Bring up the Ediff manual"))))
+ 
+ (provide 'ediff-hook)
+ 
 diff -dur xemacs-packages.ORIG/ediff/ediff-init.el xemacs-packages/ediff/ediff-init.el
 --- xemacs-packages.ORIG/ediff/ediff-init.el	2008-11-15 22:21:45.000000000 -0700
-+++ xemacs-packages/ediff/ediff-init.el	2009-08-17 13:40:49.708789986 -0600
++++ xemacs-packages/ediff/ediff-init.el	2009-12-01 09:39:07.140861277 -0700
 @@ -1,7 +1,7 @@
  ;;; ediff-init.el --- Macros, variables, and defsubsts used by Ediff
  
@@ -530,9 +969,19 @@ diff -dur xemacs-packages.ORIG/ediff/edi
    :type 'integer
    :group 'ediff)
  
+@@ -1549,6 +1551,9 @@
+       (if (eventp event-or-key) (event-key event-or-key) event-or-key)
+     event-or-key))
+ 
++(defun ediff-last-command-char ()
++  (ediff-event-key last-command-event))
++
+ 
+ (defsubst ediff-frame-iconified-p (frame)
+   (and (ediff-window-display-p) (frame-live-p frame)
 diff -dur xemacs-packages.ORIG/ediff/ediff-merg.el xemacs-packages/ediff/ediff-merg.el
 --- xemacs-packages.ORIG/ediff/ediff-merg.el	2008-11-15 22:21:45.000000000 -0700
-+++ xemacs-packages/ediff/ediff-merg.el	2009-08-17 13:40:49.712766807 -0600
++++ xemacs-packages/ediff/ediff-merg.el	2009-12-01 09:39:07.142859733 -0700
 @@ -1,7 +1,7 @@
  ;;; ediff-merg.el --- merging utilities
  
@@ -616,6 +1065,15 @@ diff -dur xemacs-packages.ORIG/ediff/edi
         (ediff-merge-changed-from-default-p n 'prefers-too)))
  
  
+@@ -224,7 +226,7 @@
+ 	  ;;(let ((reg-A (ediff-get-region-contents n 'A ediff-control-buffer))
+ 	  ;;	(reg-B (ediff-get-region-contents n 'B ediff-control-buffer))
+ 	  ;;	(reg-C (ediff-get-region-contents n 'C ediff-control-buffer)))
+-	  (let ()
++	  (progn
+ 
+ 	    ;; if region was edited since it was first set by default
+ 	    (if (or (ediff-merge-changed-from-default-p n)
 @@ -385,11 +387,11 @@
  (provide 'ediff-merg)
  
@@ -635,7 +1093,7 @@ diff -dur xemacs-packages.ORIG/ediff/edi
  ;;; ediff-merg.el ends here
 diff -dur xemacs-packages.ORIG/ediff/ediff-mult.el xemacs-packages/ediff/ediff-mult.el
 --- xemacs-packages.ORIG/ediff/ediff-mult.el	2008-11-15 22:21:46.000000000 -0700
-+++ xemacs-packages/ediff/ediff-mult.el	2009-08-17 13:40:49.846074731 -0600
++++ xemacs-packages/ediff/ediff-mult.el	2009-12-01 09:39:07.149875626 -0700
 @@ -1,7 +1,7 @@
  ;;; ediff-mult.el --- support for multi-file/multi-buffer processing in Ediff
  
@@ -702,20 +1160,158 @@ diff -dur xemacs-packages.ORIG/ediff/edi
  This keymap controls key bindings in the meta buffer and is a local variable.
  This means that you can set different bindings for different kinds of meta
  buffers."
-@@ -2344,10 +2344,10 @@
+@@ -392,12 +392,40 @@
+   (define-key ediff-meta-buffer-map  "p"  'ediff-previous-meta-item)
+   (define-key ediff-meta-buffer-map  [delete]  'ediff-previous-meta-item)
+   (define-key ediff-meta-buffer-map  [backspace]  'ediff-previous-meta-item)
+-  (or (ediff-one-filegroup-metajob)
+-      (progn
+-	(define-key ediff-meta-buffer-map "=" nil)
+-	(define-key ediff-meta-buffer-map "==" 'ediff-meta-mark-equal-files)
+-	(define-key ediff-meta-buffer-map "=m" 'ediff-meta-mark-equal-files)
+-	(define-key ediff-meta-buffer-map "=h" 'ediff-meta-mark-equal-files)))
++
++  (let ((menu-map (make-sparse-keymap "Ediff-Meta")))
++    (define-key ediff-meta-buffer-map [menu-bar ediff-meta-mode]
++      (cons "Ediff-Meta" menu-map))
++    (define-key menu-map [ediff-quit-meta-buffer]
++      '(menu-item "Quit" ediff-quit-meta-buffer
++		  :help "Quit the meta buffer"))
++    (define-key menu-map [ediff-toggle-filename-truncation]
++      '(menu-item "Truncate filenames" ediff-toggle-filename-truncation
++	      :help "Toggle truncation of long file names in session group buffers"
++	      :button (:toggle . ediff-meta-truncate-filenames)))
++    (define-key menu-map [ediff-show-registry]
++      '(menu-item "Display Ediff Registry" ediff-show-registry
++		  :help "Display Ediff's registry"))
++    (define-key menu-map [ediff-documentation]
++      '(menu-item "Show Manual" ediff-documentation
++		  :help "Display Ediff's manual"))
++
++    (or (ediff-one-filegroup-metajob)
++	(progn
++	  (define-key ediff-meta-buffer-map "=" nil)
++	  (define-key ediff-meta-buffer-map "==" 'ediff-meta-mark-equal-files)
++	  (define-key ediff-meta-buffer-map "=m" 'ediff-meta-mark-equal-files)
++	  (define-key ediff-meta-buffer-map "=h" 'ediff-meta-mark-equal-files)))
++
++
++    (define-key menu-map [ediff-next-meta-item]
++      '(menu-item "Next" ediff-next-meta-item
++		  :help "Move to the next item in Ediff registry or session group buffer"))
++    (define-key menu-map [ediff-previous-meta-item]
++      '(menu-item "Previous" ediff-previous-meta-item
++		  :help "Move to the previous item in Ediff registry or session group buffer")))
++
++
+   (if ediff-no-emacs-help-in-control-buffer
+       (define-key ediff-meta-buffer-map  "\C-h"  'ediff-previous-meta-item))
+   (if (featurep 'emacs)
+@@ -837,14 +865,58 @@
+ 	      ediff-meta-buffer-map "um" 'ediff-unmark-all-for-operation)
+ 	    (define-key
+ 	      ediff-meta-buffer-map "uh" 'ediff-unmark-all-for-hiding)
++
++	    (define-key ediff-meta-buffer-map
++	      [menu-bar ediff-meta-mode ediff-hide-marked-sessions]
++	      '(menu-item "Hide marked" ediff-hide-marked-sessions
++		  :help "Hide marked sessions.  With prefix arg, unhide"))
++
++	    (define-key ediff-meta-buffer-map
++	      [menu-bar ediff-meta-mode ediff-mark-for-hiding-at-pos]
++	      '(menu-item "Mark for hiding" ediff-mark-for-hiding-at-pos
++		  :help "Mark session for hiding.  With prefix arg, unmark"))
++
++	    (define-key ediff-meta-buffer-map
++	      [menu-bar ediff-meta-mode ediff-mark-for-operation-at-pos]
++	      '(menu-item "Mark for group operation" ediff-mark-for-operation-at-pos
++		  :help "Mark session for a group operation.  With prefix arg, unmark."))
++
++	    (define-key ediff-meta-buffer-map
++	      [menu-bar ediff-meta-mode ediff-unmark-all-for-hiding]
++	      '(menu-item "Unmark all for hiding" ediff-unmark-all-for-hiding
++		  :help "Unmark all sessions marked for hiding"))
++
++	    (define-key ediff-meta-buffer-map
++	      [menu-bar ediff-meta-mode ediff-unmark-all-for-operation]
++	      '(menu-item "Unmark all for group operation" ediff-unmark-all-for-operation
++		  :help "Unmark all sessions marked for operation"))
++
+ 	    (cond ((ediff-collect-diffs-metajob jobname)
++		   (define-key ediff-meta-buffer-map
++		     [menu-bar ediff-meta-mode ediff-collect-custom-diffs]
++		     '(menu-item "Collect diffs" ediff-collect-custom-diffs
++				 :help "Collect custom diffs of marked sessions in buffer `*Ediff Multifile Diffs*'"))
+ 		   (define-key
+ 		     ediff-meta-buffer-map "P" 'ediff-collect-custom-diffs))
+ 		  ((ediff-patch-metajob jobname)
++		   (define-key ediff-meta-buffer-map
++		     [menu-bar ediff-meta-mode ediff-meta-show-patch]
++		     '(menu-item "Show multi-file patch" ediff-meta-show-patch
++				 :help "Show the multi-file patch associated with this group session"))
+ 		   (define-key
+ 		     ediff-meta-buffer-map "P" 'ediff-meta-show-patch)))
+ 	    (define-key ediff-meta-buffer-map "^" 'ediff-up-meta-hierarchy)
+-	    (define-key ediff-meta-buffer-map "D" 'ediff-show-dir-diffs)))
++	    (define-key ediff-meta-buffer-map "D" 'ediff-show-dir-diffs)
++
++	    (define-key ediff-meta-buffer-map
++	      [menu-bar ediff-meta-mode ediff-up-meta-hierarchy]
++	      '(menu-item "Go to parent session" ediff-up-meta-hierarchy
++			  :help "Go to the parent session group buffer"))
++
++	    (define-key ediff-meta-buffer-map
++	      [menu-bar ediff-meta-mode ediff-show-dir-diffs]
++	      '(menu-item "Diff directories" ediff-show-dir-diffs
++			  :help "Display differences among the directories involved in session group"))))
+ 
+       (if (eq ediff-metajob-name 'ediff-registry)
+ 	  (run-hooks 'ediff-registry-setup-hook)
+@@ -1639,8 +1711,7 @@
+     (cond ((ediff-buffer-live-p custom-diff-buf)
+ 	   ;; for live session buffers we do them first because the user may
+ 	   ;; have changed them with respect to the underlying files
+-	   (save-excursion
+-	     (set-buffer meta-diff-buff)
++	   (with-current-buffer meta-diff-buff
+ 	     (goto-char (point-max))
+ 	     (insert-buffer-substring custom-diff-buf)
+ 	     (insert "\n")))
+@@ -1649,8 +1720,8 @@
+ 			   ediff-merge-directories
+ 			   ediff-merge-directories-with-ancestor))
+ 	   ;; get diffs by calling shell command on ediff-custom-diff-program
+-	   (save-excursion
+-	     (set-buffer (setq tmp-buf (get-buffer-create ediff-tmp-buffer)))
++	   (with-current-buffer
++               (setq tmp-buf (get-buffer-create ediff-tmp-buffer))
+ 	     (erase-buffer)
+ 	     (shell-command
+ 	      (format
+@@ -1662,8 +1733,7 @@
+ 	       )
+ 	      t)
+ 	     )
+-	   (save-excursion
+-	     (set-buffer meta-diff-buff)
++	   (with-current-buffer meta-diff-buff
+ 	     (goto-char (point-max))
+ 	     (insert-buffer-substring tmp-buf)
+ 	     (insert "\n")))
+@@ -2344,10 +2414,10 @@
  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."
-+`last-command-event' is used to decide which action to take."
++`(ediff-last-command-char)' is used to decide which action to take."
    (interactive)
    (if (null action)
 -      (setq action last-command-char))
-+      (setq action last-command-event))
++      (setq action (ediff-last-command-char)))
    (let ((list (cdr ediff-meta-list))
  	marked1 marked2 marked3
  	fileinfo1 fileinfo2 fileinfo3 elt)
-@@ -2396,11 +2396,11 @@
+@@ -2396,11 +2466,11 @@
  
  
  
@@ -734,7 +1330,7 @@ diff -dur xemacs-packages.ORIG/ediff/edi
  ;;; ediff-mult.el ends here
 diff -dur xemacs-packages.ORIG/ediff/ediff-ptch.el xemacs-packages/ediff/ediff-ptch.el
 --- xemacs-packages.ORIG/ediff/ediff-ptch.el	2008-11-15 22:21:46.000000000 -0700
-+++ xemacs-packages/ediff/ediff-ptch.el	2009-08-17 13:40:49.978036743 -0600
++++ xemacs-packages/ediff/ediff-ptch.el	2009-08-15 00:16:34.000000000 -0600
 @@ -1,7 +1,7 @@
  ;;; ediff-ptch.el --- Ediff's  patch support
  
@@ -805,7 +1401,7 @@ diff -dur xemacs-packages.ORIG/ediff/edi
  ;;; ediff-ptch.el ends here
 diff -dur xemacs-packages.ORIG/ediff/ediff.texi xemacs-packages/ediff/ediff.texi
 --- xemacs-packages.ORIG/ediff/ediff.texi	2008-11-15 22:21:46.000000000 -0700
-+++ xemacs-packages/ediff/ediff.texi	2009-08-17 13:40:50.672791252 -0600
++++ xemacs-packages/ediff/ediff.texi	2009-08-15 00:16:35.000000000 -0600
 @@ -25,12 +25,12 @@
  This file documents Ediff, a comprehensive visual interface to Unix diff
  and patch utilities.
@@ -1092,7 +1688,7 @@ diff -dur xemacs-packages.ORIG/ediff/edi
  @ignore
 diff -dur xemacs-packages.ORIG/ediff/ediff-util.el xemacs-packages/ediff/ediff-util.el
 --- xemacs-packages.ORIG/ediff/ediff-util.el	2008-11-15 22:21:46.000000000 -0700
-+++ xemacs-packages/ediff/ediff-util.el	2009-08-17 13:40:50.241789378 -0600
++++ xemacs-packages/ediff/ediff-util.el	2009-12-01 09:39:07.203961749 -0700
 @@ -1,7 +1,7 @@
  ;;; ediff-util.el --- the core commands and utilities of ediff
  
@@ -1102,99 +1698,109 @@ diff -dur xemacs-packages.ORIG/ediff/edi
  
  ;; Author: Michael Kifer <kifer at cs.stonybrook.edu>
  
-@@ -1012,7 +1012,7 @@
+@@ -343,8 +343,7 @@
+ 	    (setq buffer-C
+ 		  (get-buffer-create
+ 		   (ediff-unique-buffer-name "*ediff-merge" "*")))
+-	    (save-excursion
+-	      (set-buffer buffer-C)
++	    (with-current-buffer buffer-C
+ 	      (insert-buffer-substring buf)
+ 	      (goto-char (point-min))
+ 	      (funcall (ediff-with-current-buffer buf major-mode))
+@@ -1012,7 +1011,7 @@
    (interactive)
    (ediff-barf-if-not-control-buffer)
    (let ((ctl-buf (if (null buf) (current-buffer)))
 -	(buf-type (ediff-char-to-buftype last-command-char)))
-+	(buf-type (ediff-char-to-buftype last-command-event)))
++	(buf-type (ediff-char-to-buftype (ediff-last-command-char))))
      (or buf (ediff-recenter))
      (or buf
  	(setq buf (ediff-get-buffer buf-type)))
-@@ -1514,7 +1514,7 @@
+@@ -1514,7 +1513,7 @@
        (error ediff-KILLED-VITAL-BUFFER))
  
    (ediff-operate-on-windows
 -   (if (memq last-command-char '(?v ?\C-v))
-+   (if (memq last-command-event '(?v ?\C-v))
++   (if (memq (ediff-last-command-char) '(?v ?\C-v))
         'scroll-up
       'scroll-down)
     ;; calculate argument to scroll-up/down
-@@ -1562,7 +1562,7 @@
+@@ -1562,7 +1561,7 @@
     ;; interactively so that they set the window's min_hscroll.
     ;; Otherwise, automatic hscrolling will undo the effect of
     ;; hscrolling.
 -   (if (= last-command-char ?<)
-+   (if (= last-command-event ?<)
++   (if (= (ediff-last-command-char) ?<)
         (lambda (arg)
  	 (let ((prefix-arg arg))
  	   (call-interactively 'scroll-left)))
-@@ -1826,7 +1826,7 @@
+@@ -1826,7 +1825,7 @@
  in the specified buffer."
    (interactive "P")
    (ediff-barf-if-not-control-buffer)
 -  (let* ((buf-type (ediff-char-to-buftype last-command-char))
-+  (let* ((buf-type (ediff-char-to-buftype last-command-event))
++  (let* ((buf-type (ediff-char-to-buftype (ediff-last-command-char)))
  	 (buffer (ediff-get-buffer buf-type))
  	 (pt (ediff-with-current-buffer buffer (point)))
  	 (diff-no (ediff-diff-at-point buf-type nil (if arg 'after)))
-@@ -2162,13 +2162,13 @@
+@@ -2162,13 +2161,13 @@
    "Restore ARGth diff from `ediff-killed-diffs-alist'.
  ARG is a prefix argument.  If ARG is nil, restore the current-difference.
  If the second optional argument, a character, is given, use it to
 -determine the target buffer instead of last-command-char"
-+determine the target buffer instead of last-command-event"
++determine the target buffer instead of (ediff-last-command-char)"
    (interactive "P")
    (ediff-barf-if-not-control-buffer)
    (if (numberp arg)
        (ediff-jump-to-difference arg))
    (ediff-pop-diff ediff-current-difference
 -		  (ediff-char-to-buftype (or key last-command-char)))
-+		  (ediff-char-to-buftype (or key last-command-event)))
++		  (ediff-char-to-buftype (or key (ediff-last-command-char))))
    ;; recenter with rehighlighting, but no messages
    (let (ediff-verbose-p)
      (ediff-recenter)))
-@@ -2192,13 +2192,13 @@
+@@ -2192,13 +2191,13 @@
      (cond
       ((or (and (eq ediff-skip-diff-region-function
  		   ediff-focus-on-regexp-matches-function)
 -	       (eq last-command-char ?f))
-+	       (eq last-command-event ?f))
++	       (eq (ediff-last-command-char) ?f))
  	  (and (eq ediff-skip-diff-region-function
  		   ediff-hide-regexp-matches-function)
 -	       (eq last-command-char ?h)))
-+	       (eq last-command-event ?h)))
++	       (eq (ediff-last-command-char) ?h)))
        (message "Selective browsing by regexp turned off")
        (setq ediff-skip-diff-region-function 'ediff-show-all-diffs))
 -     ((eq last-command-char ?h)
-+     ((eq last-command-event ?h)
++     ((eq (ediff-last-command-char) ?h)
        (setq ediff-skip-diff-region-function ediff-hide-regexp-matches-function
  	    regexp-A
  	    (read-string
-@@ -2236,7 +2236,7 @@
+@@ -2236,7 +2235,7 @@
        (or (string= regexp-B "") (setq ediff-regexp-hide-B regexp-B))
        (or (string= regexp-C "") (setq ediff-regexp-hide-C regexp-C)))
  
 -     ((eq last-command-char ?f)
-+     ((eq last-command-event ?f)
++     ((eq (ediff-last-command-char) ?f)
        (setq ediff-skip-diff-region-function
  	    ediff-focus-on-regexp-matches-function
  	    regexp-A
-@@ -3302,10 +3302,10 @@
+@@ -3302,10 +3301,10 @@
    (ediff-barf-if-not-control-buffer)
    (ediff-compute-custom-diffs-maybe)
    (ediff-with-current-buffer
 -      (cond ((memq last-command-char '(?a ?b ?c))
-+      (cond ((memq last-command-event '(?a ?b ?c))
++      (cond ((memq (ediff-last-command-char) '(?a ?b ?c))
  	     (ediff-get-buffer
 -	      (ediff-char-to-buftype last-command-char)))
 -	    ((eq last-command-char ?d)
-+	      (ediff-char-to-buftype last-command-event)))
-+	    ((eq last-command-event ?d)
++	      (ediff-char-to-buftype (ediff-last-command-char))))
++	    ((eq (ediff-last-command-char) ?d)
  	     (message "Saving diff output ...")
  	     (sit-for 1) ; let the user see the message
  	     (cond ((and arg (ediff-buffer-live-p ediff-diff-buffer))
-@@ -3416,11 +3416,8 @@
+@@ -3416,11 +3415,8 @@
      (ediff-exec-process
       ediff-custom-diff-program ediff-custom-diff-buffer 'synchronize
       ediff-custom-diff-options
@@ -1210,7 +1816,7 @@ diff -dur xemacs-packages.ORIG/ediff/edi
  	(with-current-buffer ediff-custom-diff-buffer
 diff -dur xemacs-packages.ORIG/ediff/ediff-vers.el xemacs-packages/ediff/ediff-vers.el
 --- xemacs-packages.ORIG/ediff/ediff-vers.el	2008-11-15 22:21:46.000000000 -0700
-+++ xemacs-packages/ediff/ediff-vers.el	2009-08-17 13:40:50.284889800 -0600
++++ xemacs-packages/ediff/ediff-vers.el	2009-12-01 09:39:07.212891653 -0700
 @@ -1,7 +1,7 @@
  ;;; ediff-vers.el --- version control interface to Ediff
  
@@ -1242,7 +1848,30 @@ diff -dur xemacs-packages.ORIG/ediff/edi
  	      (t (error "File %s is not under version control" file))))
      ))
  
-@@ -232,11 +232,11 @@
+@@ -123,8 +123,7 @@
+ 	(fundamental-mode))
+       (let ((output-buffer (ediff-rcs-get-output-buffer filename buff)))
+ 	(delete-windows-on output-buffer)
+-	(save-excursion
+-	  (set-buffer output-buffer)
++	(with-current-buffer output-buffer
+ 	  (apply 'call-process "co" nil t nil
+ 		 ;; -q: quiet (no diagnostics)
+ 		 (append switches rcs-default-co-switches
+@@ -137,10 +136,8 @@
+   ;; Optional NAME is name to use instead of `*RCS-output*'.
+   ;; This is a modified version from rcs.el v1.1.  I use it here to make
+   ;; Ediff immune to changes in rcs.el
+-  (let* ((default-major-mode 'fundamental-mode) ; no frills!
+-	 (buf (get-buffer-create name)))
+-    (save-excursion
+-      (set-buffer buf)
++  (let ((buf (get-buffer-create name)))
++    (with-current-buffer buf
+       (setq buffer-read-only nil
+ 	    default-directory (file-name-directory (expand-file-name file)))
+       (erase-buffer))
+@@ -232,11 +229,11 @@
  (provide 'ediff-vers)
  
  
@@ -1261,7 +1890,7 @@ diff -dur xemacs-packages.ORIG/ediff/edi
  ;;; ediff-vers.el ends here
 diff -dur xemacs-packages.ORIG/ediff/ediff-wind.el xemacs-packages/ediff/ediff-wind.el
 --- xemacs-packages.ORIG/ediff/ediff-wind.el	2008-11-15 22:21:46.000000000 -0700
-+++ xemacs-packages/ediff/ediff-wind.el	2009-08-17 13:40:50.393889478 -0600
++++ xemacs-packages/ediff/ediff-wind.el	2009-08-15 00:16:35.000000000 -0600
 @@ -1,7 +1,7 @@
  ;;; ediff-wind.el --- window manipulation utilities
  
@@ -1371,13 +2000,13 @@ diff -dur xemacs-packages.ORIG/ediff/edi
  ;;; ediff-wind.el ends here
 diff -dur xemacs-packages.ORIG/ediff/Makefile xemacs-packages/ediff/Makefile
 --- xemacs-packages.ORIG/ediff/Makefile	2008-12-01 02:22:37.000000000 -0700
-+++ xemacs-packages/ediff/Makefile	2009-08-17 13:40:49.470802803 -0600
++++ xemacs-packages/ediff/Makefile	2009-12-01 09:39:07.130861623 -0700
 @@ -17,7 +17,7 @@
  # the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  # Boston, MA 02111-1307, USA.
  
 -VERSION = 1.77
-+VERSION = 1.78
++VERSION = 1.79
  AUTHOR_VERSION = 2.75
  MAINTAINER = Michael Kifer <kifer at cs.sunysb.edu>
  PACKAGE = ediff


Index: xemacs-packages-extra.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xemacs-packages-extra/F-11/xemacs-packages-extra.spec,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -p -r1.12 -r1.13
--- xemacs-packages-extra.spec	3 Nov 2009 17:51:02 -0000	1.12
+++ xemacs-packages-extra.spec	1 Dec 2009 17:58:49 -0000	1.13
@@ -3,7 +3,7 @@
 
 Name:           xemacs-packages-extra
 Version:        20090217
-Release:        4%{?dist}
+Release:        5%{?dist}
 Summary:        Collection of XEmacs lisp packages
 
 Group:          Applications/Editors
@@ -134,6 +134,10 @@ chmod +x make.sh
 sed -i -e 's|/usr/local/bin/perl5\?|/usr/bin/perl|g' \
   xemacs-packages/bbdb/utils/*.pl xemacs-packages/hyperbole/file-newer
 
+# The X-Symbol font files are only needed on Windows
+rm -fr xemacs-packages/x-symbol/fonts
+rm -fr xemacs-packages/x-symbol/origfonts
+
 
 %build
 cd xemacs-packages/xslt-process/java
@@ -244,6 +248,10 @@ rm -rf $RPM_BUILD_ROOT
 
 
 %changelog
+* Tue Dec  1 2009 Jerry James <loganjerry at gmail.com> - 20090217-5
+- The last ediff fix included more Emacs-specific code (bz 537531).
+- Don't package x-symbol fonts, which are only needed on Windows anyway.
+
 * Tue Nov  3 2009 Jerry James <loganjerry at gmail.com> - 20090217-4
 - Fix Emacs-only coding system in ediff (bz 532620).
 




More information about the fedora-extras-commits mailing list