[bigloo] Fix (X)Emacs installations (bz 754592). Refresh sendfile patch to match upstream's version.

Jerry James jjames at fedoraproject.org
Wed Nov 23 18:58:52 UTC 2011


commit fe91a3daa1cbf60c782645d24fe81b0cbb2752cb
Author: Jerry James <loganjerry at gmail.com>
Date:   Wed Nov 23 11:57:45 2011 -0700

    Fix (X)Emacs installations (bz 754592).
    Refresh sendfile patch to match upstream's version.

 bigloo-emacs.patch    | 1993 +++++++++++++++++++++++++------------------------
 bigloo-sendfile.patch |   17 +-
 bigloo.spec           |   35 +-
 3 files changed, 1031 insertions(+), 1014 deletions(-)
---
diff --git a/bigloo-emacs.patch b/bigloo-emacs.patch
index d5835f8..ad2098f 100644
--- a/bigloo-emacs.patch
+++ b/bigloo-emacs.patch
@@ -1,7 +1,135 @@
---- ./bmacs/dbg/dbg-stack.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/dbg/dbg-stack.el	2011-09-26 09:55:15.704860766 -0600
-@@ -110,8 +110,7 @@
- 	(proc (get-buffer-process dbg-comint-buffer)))
+--- ./bmacs/xemacs-etags.el.orig	2011-09-26 01:39:17.000000000 -0600
++++ ./bmacs/xemacs-etags.el	2011-11-23 10:47:33.422521430 -0700
+@@ -236,8 +236,7 @@
+ 		     ;; it is initialized as a tag table buffer.
+ 		     (save-excursion
+ 		       (tags-verify-table (buffer-file-name table-buffer))))
+-		(save-excursion
+-		  (set-buffer table-buffer)
++		(with-current-buffer table-buffer
+ 		  (if (tags-included-tables)
+ 		      ;; Insert the included tables into the list we
+ 		      ;; are processing.
+@@ -276,8 +275,7 @@
+ 	      (setq computed (cons (car tables) computed)
+ 		    table-buffer (get-file-buffer (car tables)))
+ 	      (if table-buffer
+-		  (save-excursion
+-		    (set-buffer table-buffer)
++		  (with-current-buffer table-buffer
+ 		    (if (tags-included-tables)
+ 			;; Insert the included tables into the list we
+ 			;; are processing.
+@@ -663,12 +661,8 @@
+   (save-excursion
+     (while (looking-at "\\sw\\|\\s_")
+       (forward-char 1))
+-    (if (or (re-search-backward "\\sw\\|\\s_"
+-				(save-excursion (beginning-of-line) (point))
+-				t)
+-	    (re-search-forward "\\(\\sw\\|\\s_\\)+"
+-			       (save-excursion (end-of-line) (point))
+-			       t))
++    (if (or (re-search-backward "\\sw\\|\\s_" (point-at-bol) t)
++	    (re-search-forward "\\(\\sw\\|\\s_\\)+" (point-at-eol) t))
+ 	(progn (goto-char (match-end 0))
+ 	       (buffer-substring (point)
+ 				 (progn (forward-sexp -1)
+@@ -752,22 +746,21 @@
+ 	(setq last-tag tagname))
+       ;; Record the location so we can pop back to it later.
+       (let ((marker (make-marker)))
+-	(save-excursion
+-	  (set-buffer
+-	   ;; find-tag-in-order does the real work.
+-	   (find-tag-in-order
+-	    (if next-p last-tag tagname)
+-	    (if regexp-p
+-		find-tag-regexp-search-function
+-	      find-tag-search-function)
+-	    (if regexp-p
+-		find-tag-regexp-tag-order
+-	      find-tag-tag-order)
+-	    (if regexp-p
+-		find-tag-regexp-next-line-after-failure-p
+-	      find-tag-next-line-after-failure-p)
+-	    (if regexp-p "matching" "containing")
+-	    (not next-p)))
++	(with-current-buffer
++	 ;; find-tag-in-order does the real work.
++	 (find-tag-in-order
++	  (if next-p last-tag tagname)
++	  (if regexp-p
++	      find-tag-regexp-search-function
++	    find-tag-search-function)
++	  (if regexp-p
++	      find-tag-regexp-tag-order
++	    find-tag-tag-order)
++	  (if regexp-p
++	      find-tag-regexp-next-line-after-failure-p
++	    find-tag-next-line-after-failure-p)
++	  (if regexp-p "matching" "containing")
++	  (not next-p))
+ 	  (set-marker marker (point))
+ 	  (run-hooks 'local-find-tag-hook)
+ 	  (setq tags-location-stack
+@@ -978,9 +971,7 @@
+ 	      ;; Naive match found.  Qualify the match.
+ 	      (and (funcall (car order) pattern)
+ 		   ;; Make sure it is not a previous qualified match.
+-		   (not (member (set-marker match-marker (save-excursion
+-							   (beginning-of-line)
+-							   (point)))
++		   (not (member (set-marker match-marker (point-at-bol))
+ 				tag-lines-already-matched))
+ 		   (throw 'qualified-match-found nil))
+ 	      (if next-line-after-failure-p
+@@ -1103,9 +1094,7 @@
+ 
+       ;; Find the end of the tag and record the whole tag text.
+       (search-forward "\177")
+-      (setq tag-text (buffer-substring (1- (point))
+-				       (save-excursion (beginning-of-line)
+-						       (point))))
++      (setq tag-text (buffer-substring (1- (point)) (point-at-bol)))
+       ;; Skip explicit tag name if present.
+       (search-forward "\001" (save-excursion (forward-line 1) (point)) t)
+       (if (looking-at "[0-9]")
+@@ -1312,7 +1301,7 @@
+   (save-excursion
+     (beginning-of-line)
+     (let ((bol (point)))
+-      (and (search-forward "\177" (save-excursion (end-of-line) (point)) t)
++      (and (search-forward "\177" (point-at-eol) t)
+ 	   (re-search-backward re bol t)))))
+ 
+ ;;;###autoload
+--- ./bmacs/cee/cee-kbdb.el.orig	2011-09-26 01:39:17.000000000 -0600
++++ ./bmacs/cee/cee-kbdb.el	2011-11-23 10:47:33.421521451 -0700
+@@ -389,7 +389,8 @@
+ 		      (select-frame frame)
+ 		      (select-window win)
+ 		      (set-buffer buf)
+-		      (goto-line npos)
++		      (goto-char (point-min))
++		      (forward-line (1- npos))
+ 		      (beginning-of-line)
+ 		      (set-window-point win npos)
+ 		      t))))
+@@ -399,7 +400,8 @@
+ 	  (if (bufferp buf)
+ 	      (progn
+ 		(set-buffer buf)
+-		(goto-line npos)
++		(goto-char (point-min))
++		(forward-line (1- npos))
+ 		(beginning-of-line)
+ 		t))))
+        (t
+--- ./bmacs/dbg/dbg-display.el.orig	2011-09-26 01:39:17.000000000 -0600
++++ ./bmacs/dbg/dbg-display.el	2011-11-23 10:47:33.412521641 -0700
+@@ -100,8 +100,7 @@
+   (let ((proc (get-buffer-process dbg-comint-buffer)))
      (or proc (ude-error "Current buffer has no process"))
      ;; Arrange for the current prompt to get deleted.
 -    (save-excursion
@@ -10,19 +138,19 @@
        (goto-char (process-mark proc))
        (while (not (looking-at comint-prompt-regexp))
  	(goto-char (process-mark proc))
-@@ -149,8 +148,7 @@
- ;*    Display a new stack in a separate buffer.                        */
+@@ -140,8 +139,7 @@
+ ;*    Display a new display in a separate buffer.                      */
  ;*---------------------------------------------------------------------*/
- (defun dbg-display-stack (buffer stack)
+ (defun dbg-display-display (buffer display)
 -  (save-excursion
 -    (set-buffer buffer)
 +  (with-current-buffer buffer
      (let ((buffer-read-only nil))
        (erase-buffer)
-       (insert stack)
-@@ -173,12 +171,12 @@
+       (insert display)
+@@ -164,12 +162,12 @@
  					 'mouse-face 'highlight
- 					 'keymap dbg-stack-mouse-map)
+ 					 'keymap dbg-display-mouse-map)
  		    (if (< end (point-max))
 -			(next-line 1)
 +			(forward-line 1)
@@ -35,8 +163,8 @@
  		    (setq keep nil)))))))))))
  		
  ;*---------------------------------------------------------------------*/
-@@ -276,8 +274,7 @@
- (defun dbg-frames-select-by-mouse (event)
+@@ -248,8 +246,7 @@
+ (defun dbg-display-menu (event)
    (interactive "e")
    (let (selection)
 -    (save-excursion
@@ -44,10 +172,27 @@
 +    (with-current-buffer (event-buffer event)
        (save-excursion
  	(goto-char (event-closest-point event))
- 	(setq selection (dbg-get-frame-number))))
---- ./bmacs/dbg/dbg-args.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/dbg/dbg-args.el	2011-09-26 09:55:15.707860704 -0600
-@@ -100,8 +100,7 @@
+ 	(message "point: %S" (point))
+--- ./bmacs/dbg/dbg-source.el.orig	2011-09-26 01:39:17.000000000 -0600
++++ ./bmacs/dbg/dbg-source.el	2011-11-23 10:47:33.413521618 -0700
+@@ -152,11 +152,11 @@
+ 		(set-extent-begin-glyph extent dbg-arrow-glyph)
+ 		(set-extent-begin-glyph-layout extent 'outside-margin)
+ 		(setq dbg-source-line-extent extent)))
+-	  (save-excursion
+-	    (set-buffer buffer)
++	  (with-current-buffer buffer
+ 	    (save-restriction
+ 	      (widen)
+-	      (goto-line line)
++	      (goto-char (point-min))
++	      (forward-line (1- line))
+ 	      (set-window-point window (point))
+ 	      (setq pos (progn
+ 			  (beginning-of-line)
+--- ./bmacs/dbg/dbg-breakpoint.el.orig	2011-09-26 01:39:17.000000000 -0600
++++ ./bmacs/dbg/dbg-breakpoint.el	2011-11-23 10:47:33.413521618 -0700
+@@ -304,8 +304,7 @@
    (let ((proc (get-buffer-process dbg-comint-buffer)))
      (or proc (ude-error "Current buffer has no process"))
      ;; Arrange for the current prompt to get deleted.
@@ -55,266 +200,56 @@
 -      (set-buffer dbg-comint-buffer)
 +    (with-current-buffer dbg-comint-buffer
        (goto-char (process-mark proc))
-       (while (not (looking-at comint-prompt-regexp))
+       (process-send-string proc dbg-info-break-command)
+       (process-send-string proc "\n"))))
+@@ -323,8 +322,7 @@
+ 	  (proc (get-buffer-process dbg-comint-buffer)))
+       (or proc (ude-error "Current buffer has no process"))
+       ;; Arrange for the current prompt to get deleted.
+-      (save-excursion
+-	(set-buffer dbg-comint-buffer)
++      (with-current-buffer dbg-comint-buffer
  	(goto-char (process-mark proc))
-@@ -140,8 +139,7 @@
- ;*    Args a new args in a separate buffer.                            */
- ;*---------------------------------------------------------------------*/
- (defun dbg-args-args (buffer args)
--  (save-excursion
--    (set-buffer buffer)
-+  (with-current-buffer buffer
-     (let ((buffer-read-only nil))
-       (erase-buffer)
-       (insert args)
-@@ -164,12 +162,12 @@
- 					 'mouse-face 'highlight
- 					 'keymap dbg-args-mouse-map)
- 		    (if (< end (point-max))
--			(next-line 1)
-+			(forward-line 1)
- 		      (setq keep nil)))
- 		(progn
- 		  (end-of-line)
- 		  (if (< (point) (point-max))
--		      (next-line 1)
-+		      (forward-line 1)
- 		    (setq keep nil)))))))))))
- 		
+ 	(process-send-string proc command)))))
+ 
+@@ -533,7 +531,8 @@
+ 	    (set-extent-property extent 'mouse-face 'highlight)
+ 	    (set-extent-property extent 'dbg-breakpoint bp)
+ 	    (set-buffer buffer)
+-	    (goto-line line)
++	    (goto-char (point-min))
++	    (forward-line (1- line))
+ 	    (beginning-of-line)
+ 	    (set-extent-endpoints extent (point) (point))
+ 	    bp)))))
+--- ./bmacs/dbg/dbg-connect.el.orig	2011-09-26 01:39:17.000000000 -0600
++++ ./bmacs/dbg/dbg-connect.el	2011-11-23 10:47:33.414521596 -0700
+@@ -157,6 +157,6 @@
+ ;*    Disconnect all currently connected buffers.                      */
  ;*---------------------------------------------------------------------*/
-@@ -243,8 +241,7 @@
- (defun dbg-args-menu (event)
-   (interactive "e")
-   (let (selection)
--    (save-excursion
--      (set-buffer (event-buffer event))
-+    (with-current-buffer (event-buffer event)
-       (save-excursion
- 	(goto-char (event-closest-point event))
- 	(message "point: %S" (point))
---- ./bmacs/dbg/dbg-locals.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/dbg/dbg-locals.el	2011-09-26 09:55:15.706860724 -0600
-@@ -100,8 +100,7 @@
-   (let ((proc (get-buffer-process dbg-comint-buffer)))
-     (or proc (ude-error "Current buffer has no process"))
-     ;; Arrange for the current prompt to get deleted.
--    (save-excursion
--      (set-buffer dbg-comint-buffer)
-+    (with-current-buffer dbg-comint-buffer
-       (goto-char (process-mark proc))
-       (while (not (looking-at comint-prompt-regexp))
- 	(goto-char (process-mark proc))
-@@ -140,8 +139,7 @@
- ;*    Locals a new locals in a separate buffer.                        */
- ;*---------------------------------------------------------------------*/
- (defun dbg-locals-locals (buffer locals)
--  (save-excursion
--    (set-buffer buffer)
-+  (with-current-buffer buffer
-     (let ((buffer-read-only nil))
-       (erase-buffer)
-       (insert locals)
-@@ -164,12 +162,12 @@
- 					 'mouse-face 'highlight
- 					 'keymap dbg-locals-mouse-map)
- 		    (if (< end (point-max))
--			(next-line 1)
-+			(forward-line 1)
- 		      (setq keep nil)))
- 		(progn
- 		  (end-of-line)
- 		  (if (< (point) (point-max))
--		      (next-line 1)
-+		      (forward-line 1)
- 		    (setq keep nil)))))))))))
- 		
- ;*---------------------------------------------------------------------*/
-@@ -242,8 +240,7 @@
- (defun dbg-locals-menu (event)
-   (interactive "e")
-   (let (selection)
--    (save-excursion
--      (set-buffer (event-buffer event))
-+    (with-current-buffer (event-buffer event)
-       (save-excursion
- 	(goto-char (event-closest-point event))
- 	(message "point: %S" (point))
---- ./bmacs/dbg/dbg-display.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/dbg/dbg-display.el	2011-09-26 09:55:15.705860745 -0600
-@@ -100,8 +100,7 @@
-   (let ((proc (get-buffer-process dbg-comint-buffer)))
-     (or proc (ude-error "Current buffer has no process"))
-     ;; Arrange for the current prompt to get deleted.
--    (save-excursion
--      (set-buffer dbg-comint-buffer)
-+    (with-current-buffer dbg-comint-buffer
-       (goto-char (process-mark proc))
-       (while (not (looking-at comint-prompt-regexp))
- 	(goto-char (process-mark proc))
-@@ -140,8 +139,7 @@
- ;*    Display a new display in a separate buffer.                      */
- ;*---------------------------------------------------------------------*/
- (defun dbg-display-display (buffer display)
--  (save-excursion
--    (set-buffer buffer)
-+  (with-current-buffer buffer
-     (let ((buffer-read-only nil))
-       (erase-buffer)
-       (insert display)
-@@ -164,12 +162,12 @@
- 					 'mouse-face 'highlight
- 					 'keymap dbg-display-mouse-map)
- 		    (if (< end (point-max))
--			(next-line 1)
-+			(forward-line 1)
- 		      (setq keep nil)))
- 		(progn
- 		  (end-of-line)
- 		  (if (< (point) (point-max))
--		      (next-line 1)
-+		      (forward-line 1)
- 		    (setq keep nil)))))))))))
- 		
- ;*---------------------------------------------------------------------*/
-@@ -248,8 +246,7 @@
- (defun dbg-display-menu (event)
-   (interactive "e")
-   (let (selection)
--    (save-excursion
--      (set-buffer (event-buffer event))
-+    (with-current-buffer (event-buffer event)
-       (save-excursion
- 	(goto-char (event-closest-point event))
- 	(message "point: %S" (point))
---- ./bmacs/dbg/dbg-breakpoint.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/dbg/dbg-breakpoint.el	2011-09-26 09:55:15.697860911 -0600
-@@ -304,8 +304,7 @@
-   (let ((proc (get-buffer-process dbg-comint-buffer)))
-     (or proc (ude-error "Current buffer has no process"))
-     ;; Arrange for the current prompt to get deleted.
--    (save-excursion
--      (set-buffer dbg-comint-buffer)
-+    (with-current-buffer dbg-comint-buffer
-       (goto-char (process-mark proc))
-       (process-send-string proc dbg-info-break-command)
-       (process-send-string proc "\n"))))
-@@ -323,8 +322,7 @@
- 	  (proc (get-buffer-process dbg-comint-buffer)))
-       (or proc (ude-error "Current buffer has no process"))
-       ;; Arrange for the current prompt to get deleted.
--      (save-excursion
--	(set-buffer dbg-comint-buffer)
-+      (with-current-buffer dbg-comint-buffer
- 	(goto-char (process-mark proc))
- 	(process-send-string proc command)))))
- 
-@@ -533,7 +531,8 @@
- 	    (set-extent-property extent 'mouse-face 'highlight)
- 	    (set-extent-property extent 'dbg-breakpoint bp)
- 	    (set-buffer buffer)
--	    (goto-line line)
-+	    (goto-char (point-min))
-+	    (forward-line (1- line))
- 	    (beginning-of-line)
- 	    (set-extent-endpoints extent (point) (point))
- 	    bp)))))
---- ./bmacs/dbg/dbg-source.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/dbg/dbg-source.el	2011-09-26 09:55:15.705860745 -0600
-@@ -152,11 +152,11 @@
- 		(set-extent-begin-glyph extent dbg-arrow-glyph)
- 		(set-extent-begin-glyph-layout extent 'outside-margin)
- 		(setq dbg-source-line-extent extent)))
--	  (save-excursion
--	    (set-buffer buffer)
-+	  (with-current-buffer buffer
- 	    (save-restriction
- 	      (widen)
--	      (goto-line line)
-+	      (goto-char (point-min))
-+	      (forward-line (1- line))
- 	      (set-window-point window (point))
- 	      (setq pos (progn
- 			  (beginning-of-line)
---- ./bmacs/dbg/dbg-connect.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/dbg/dbg-connect.el	2011-09-26 09:55:15.708860684 -0600
-@@ -157,6 +157,6 @@
- ;*    Disconnect all currently connected buffers.                      */
- ;*---------------------------------------------------------------------*/
- (defun dbg-disconnect-all-buffers ()
--  (mapcar 'dbg-disconnect-buffer dbg-connected-buffers)
-+  (mapc 'dbg-disconnect-buffer dbg-connected-buffers)
-   (setq dbg-connected-buffers '()))
-   
---- ./bmacs/dbg/dbg-mode.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/dbg/dbg-mode.el	2011-09-26 09:55:15.697860911 -0600
-@@ -98,10 +98,7 @@
-   (make-local-variable 'dbg-delete-prompt-marker)
-   (setq dbg-delete-prompt-marker (make-marker))
-   ;; same for dbg-last-frame
--  (make-variable-buffer-local 'dbg-last-frame)
-   (setq dbg-last-frame nil)
--  ;; and so it is for dbg-marker-acc
--  (make-variable-buffer-local 'dbg-marker-acc)
-   ;; the mouse shape when flying over non text
-   (ude-set-nontext-pointer "left_ptr")
-   ;; we set up kill buffer hook
---- ./bmacs/dbg/dbg-filter.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/dbg/dbg-filter.el	2011-09-26 09:55:15.707860704 -0600
-@@ -30,10 +30,12 @@
- (defvar dbg-delete-prompt-marker nil)
- 
- (defvar dbg-last-frame nil)
-+(make-variable-buffer-local 'dbg-last-frame)
- 
- (defvar dbg-last-last-frame nil)
- 
- (defvar dbg-marker-acc "")
-+(make-variable-buffer-local 'dbg-marker-acc)
- 
- (defvar dbg-marker-filter nil)
- 
-@@ -309,8 +311,7 @@
- 		(progn
- 		  (setq string (concat dbg-filter-pending-text string))
- 		  (setq dbg-filter-pending-text nil)))
--	    (save-excursion
--	      (set-buffer (process-buffer proc))
-+	    (with-current-buffer (process-buffer proc)
- 	      ;; If we have been so requested, delete the debugger prompt.
- 	      (if (marker-buffer dbg-delete-prompt-marker)
- 		  (progn
-@@ -344,11 +345,8 @@
- 		(dbg-display-frame))
- 	    ;; We have to be in the proper buffer, (process-buffer proc),
- 	    ;; but not in a save-excursion, because that would restore point.
--	    (let ((old-buf (current-buffer)))
--	      (set-buffer (process-buffer proc))
--	      (unwind-protect
--		  (dbg-display-frame)
--		(set-buffer old-buf))))
-+	    (with-current-buffer (process-buffer proc)
-+	      (dbg-display-frame)))
- 	  ;; If we deferred text that arrived during this processing,
- 	  ;; handle it now.
- 	  (if dbg-filter-pending-text
---- ./bmacs/dbg/dbg.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/dbg/dbg.el	2011-09-26 09:55:15.706860724 -0600
-@@ -80,7 +80,12 @@
- 	  (setq dbg-marker-filter 'dbg-default-marker-filter)
- 	  (make-comint dbgname binary nil dbg-emacs-option a.out)
- 	  ;; the process filter and sentinel
--	  (process-kill-without-query (get-buffer-process dbg-comint-buffer))
-+	  (if (featurep 'xemacs)
-+	      (process-kill-without-query
-+	       (get-buffer-process dbg-comint-buffer))
-+	    (set-process-query-on-exit-flag
-+	     (get-buffer-process dbg-comint-buffer)
-+	     nil))
- 	  (set-process-filter (get-buffer-process dbg-comint-buffer)
- 			      'dbg-filter)
- 	  (set-process-sentinel (get-buffer-process dbg-comint-buffer)
-@@ -203,8 +208,7 @@
- 	(proc (get-buffer-process dbg-comint-buffer)))
+ (defun dbg-disconnect-all-buffers ()
+-  (mapcar 'dbg-disconnect-buffer dbg-connected-buffers)
++  (mapc 'dbg-disconnect-buffer dbg-connected-buffers)
+   (setq dbg-connected-buffers '()))
+   
+--- ./bmacs/dbg/dbg.el.orig	2011-09-26 01:39:17.000000000 -0600
++++ ./bmacs/dbg/dbg.el	2011-11-23 10:47:33.415521574 -0700
+@@ -80,7 +80,12 @@
+ 	  (setq dbg-marker-filter 'dbg-default-marker-filter)
+ 	  (make-comint dbgname binary nil dbg-emacs-option a.out)
+ 	  ;; the process filter and sentinel
+-	  (process-kill-without-query (get-buffer-process dbg-comint-buffer))
++	  (if (featurep 'xemacs)
++	      (process-kill-without-query
++	       (get-buffer-process dbg-comint-buffer))
++	    (set-process-query-on-exit-flag
++	     (get-buffer-process dbg-comint-buffer)
++	     nil))
+ 	  (set-process-filter (get-buffer-process dbg-comint-buffer)
+ 			      'dbg-filter)
+ 	  (set-process-sentinel (get-buffer-process dbg-comint-buffer)
+@@ -203,8 +208,7 @@
+ 	(proc (get-buffer-process dbg-comint-buffer)))
      (or proc (ude-error "Current buffer has no process"))
      ;; Arrange for the current prompt to get deleted.
 -    (save-excursion
@@ -451,377 +386,236 @@
      (let (start)
        (save-excursion
  	(save-restriction
---- ./bmacs/ude/ude-repl.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/ude/ude-repl.el	2011-09-26 09:55:15.715860538 -0600
-@@ -38,8 +38,7 @@
- 			'ude-repl-sentinel)
-   (set-process-filter ude-repl-comint-process
- 		      (function ude-repl-output-from-process))
--  (save-excursion
--    (set-buffer ude-repl-buffer)
-+  (with-current-buffer ude-repl-buffer
-     (setq comint-prompt-regexp ude-repl-prompt-regexp)
-     (setq comint-scroll-show-maximum-output 0.4)
-     (setq comint-scroll-to-bottom-on-output t)
---- ./bmacs/ude/ude-docline.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/ude/ude-docline.el	2011-09-26 09:55:15.713860580 -0600
-@@ -106,13 +106,10 @@
- 	  (ude-error "Can't find documentation for `%S'" var)
- 	(progn
- 	  (if ude-info-fontify
--	      (let* ((cbuf (current-buffer))
--		     (ibuf (get-buffer "*info*")))
-+	      (let ((ibuf (get-buffer "*info*")))
- 		(if (bufferp ibuf)
--		    (progn
--		      (set-buffer ibuf)
--		      (font-lock-fontify-buffer)
--		      (set-buffer cbuf)))))
-+		    (with-current-buffer ibuf
-+		      (font-lock-fontify-buffer)))))
- 	  (ude-pop-to-info))))))
- 
+--- ./bmacs/dbg/dbg-stack.el.orig	2011-09-26 01:39:17.000000000 -0600
++++ ./bmacs/dbg/dbg-stack.el	2011-11-23 10:47:33.411521663 -0700
+@@ -110,8 +110,7 @@
+ 	(proc (get-buffer-process dbg-comint-buffer)))
+     (or proc (ude-error "Current buffer has no process"))
+     ;; Arrange for the current prompt to get deleted.
+-    (save-excursion
+-      (set-buffer dbg-comint-buffer)
++    (with-current-buffer dbg-comint-buffer
+       (goto-char (process-mark proc))
+       (while (not (looking-at comint-prompt-regexp))
+ 	(goto-char (process-mark proc))
+@@ -149,8 +148,7 @@
+ ;*    Display a new stack in a separate buffer.                        */
  ;*---------------------------------------------------------------------*/
-@@ -140,13 +137,10 @@
- 	(ude-error (format "Can't find section `%S'" section))
-       (progn
- 	(if ude-info-fontify
--	    (let* ((cbuf (current-buffer))
--		   (ibuf (get-buffer "*info*")))
-+	    (let ((ibuf (get-buffer "*info*")))
- 	      (if (bufferp ibuf)
--		  (progn
--		    (set-buffer ibuf)
--		    (font-lock-fontify-buffer)
--		    (set-buffer cbuf)))))
-+		  (with-current-buffer ibuf
-+		    (font-lock-fontify-buffer)))))
- 	(ude-pop-to-info)))))
- 
+ (defun dbg-display-stack (buffer stack)
+-  (save-excursion
+-    (set-buffer buffer)
++  (with-current-buffer buffer
+     (let ((buffer-read-only nil))
+       (erase-buffer)
+       (insert stack)
+@@ -173,12 +171,12 @@
+ 					 'mouse-face 'highlight
+ 					 'keymap dbg-stack-mouse-map)
+ 		    (if (< end (point-max))
+-			(next-line 1)
++			(forward-line 1)
+ 		      (setq keep nil)))
+ 		(progn
+ 		  (end-of-line)
+ 		  (if (< (point) (point-max))
+-		      (next-line 1)
++		      (forward-line 1)
+ 		    (setq keep nil)))))))))))
+ 		
  ;*---------------------------------------------------------------------*/
-@@ -237,8 +231,7 @@
+@@ -276,8 +274,7 @@
+ (defun dbg-frames-select-by-mouse (event)
+   (interactive "e")
+   (let (selection)
+-    (save-excursion
+-      (set-buffer (event-buffer event))
++    (with-current-buffer (event-buffer event)
+       (save-excursion
+ 	(goto-char (event-closest-point event))
+ 	(setq selection (dbg-get-frame-number))))
+--- ./bmacs/dbg/dbg-filter.el.orig	2011-09-26 01:39:17.000000000 -0600
++++ ./bmacs/dbg/dbg-filter.el	2011-11-23 10:47:33.415521574 -0700
+@@ -30,10 +30,12 @@
+ (defvar dbg-delete-prompt-marker nil)
+ 
+ (defvar dbg-last-frame nil)
++(make-variable-buffer-local 'dbg-last-frame)
+ 
+ (defvar dbg-last-last-frame nil)
+ 
+ (defvar dbg-marker-acc "")
++(make-variable-buffer-local 'dbg-marker-acc)
+ 
+ (defvar dbg-marker-filter nil)
+ 
+@@ -309,8 +311,7 @@
+ 		(progn
+ 		  (setq string (concat dbg-filter-pending-text string))
+ 		  (setq dbg-filter-pending-text nil)))
+-	    (save-excursion
+-	      (set-buffer (process-buffer proc))
++	    (with-current-buffer (process-buffer proc)
+ 	      ;; If we have been so requested, delete the debugger prompt.
+ 	      (if (marker-buffer dbg-delete-prompt-marker)
+ 		  (progn
+@@ -344,11 +345,8 @@
+ 		(dbg-display-frame))
+ 	    ;; We have to be in the proper buffer, (process-buffer proc),
+ 	    ;; but not in a save-excursion, because that would restore point.
+-	    (let ((old-buf (current-buffer)))
+-	      (set-buffer (process-buffer proc))
+-	      (unwind-protect
+-		  (dbg-display-frame)
+-		(set-buffer old-buf))))
++	    (with-current-buffer (process-buffer proc)
++	      (dbg-display-frame)))
+ 	  ;; If we deferred text that arrived during this processing,
+ 	  ;; handle it now.
+ 	  (if dbg-filter-pending-text
+--- ./bmacs/dbg/dbg-args.el.orig	2011-09-26 01:39:17.000000000 -0600
++++ ./bmacs/dbg/dbg-args.el	2011-11-23 10:47:33.411521663 -0700
+@@ -100,8 +100,7 @@
+   (let ((proc (get-buffer-process dbg-comint-buffer)))
+     (or proc (ude-error "Current buffer has no process"))
+     ;; Arrange for the current prompt to get deleted.
+-    (save-excursion
+-      (set-buffer dbg-comint-buffer)
++    (with-current-buffer dbg-comint-buffer
+       (goto-char (process-mark proc))
+       (while (not (looking-at comint-prompt-regexp))
+ 	(goto-char (process-mark proc))
+@@ -140,8 +139,7 @@
+ ;*    Args a new args in a separate buffer.                            */
  ;*---------------------------------------------------------------------*/
- (defun ude-fontify-doc-source (buffer)
-   (interactive "Bbuffer: ")
+ (defun dbg-args-args (buffer args)
 -  (save-excursion
 -    (set-buffer buffer)
 +  (with-current-buffer buffer
-     (goto-char (point-min))
-     (let* ((path-regexp   "@path[ \t]+\\([^@]+\\)@")
- 	   (anchor-regexp "@ref[ \t]+\\([^@:]+\\):\\([^@]+\\)@")
---- ./bmacs/ude/ude-about.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/ude/ude-about.el	2011-09-26 09:55:15.712860601 -0600
-@@ -27,8 +27,7 @@
-   (if (featurep 'xemacs)
-       (let ((window-min-height 1)
- 	    (window-min-width 1))
--	(save-excursion
--	  (set-buffer (generate-new-buffer "*junk-frame-buffer*"))
-+	(with-current-buffer (generate-new-buffer "*junk-frame-buffer*")
- 	  (prog1
- 	      (make-frame '(minibuffer t initially-unmapped t width 1 height 1))
- 	    (rename-buffer " *junk-frame-buffer*" t))))))
-@@ -37,15 +36,14 @@
- ;*    ude-about-make-frame ...                                         */
+     (let ((buffer-read-only nil))
+       (erase-buffer)
+       (insert args)
+@@ -164,12 +162,12 @@
+ 					 'mouse-face 'highlight
+ 					 'keymap dbg-args-mouse-map)
+ 		    (if (< end (point-max))
+-			(next-line 1)
++			(forward-line 1)
+ 		      (setq keep nil)))
+ 		(progn
+ 		  (end-of-line)
+ 		  (if (< (point) (point-max))
+-		      (next-line 1)
++		      (forward-line 1)
+ 		    (setq keep nil)))))))))))
+ 		
  ;*---------------------------------------------------------------------*/
- (defun ude-about-make-frame (x y msg xpm)
+@@ -243,8 +241,7 @@
+ (defun dbg-args-menu (event)
+   (interactive "e")
+   (let (selection)
+-    (save-excursion
+-      (set-buffer (event-buffer event))
++    (with-current-buffer (event-buffer event)
+       (save-excursion
+ 	(goto-char (event-closest-point event))
+ 	(message "point: %S" (point))
+--- ./bmacs/dbg/dbg-locals.el.orig	2011-09-26 01:39:17.000000000 -0600
++++ ./bmacs/dbg/dbg-locals.el	2011-11-23 10:47:33.412521641 -0700
+@@ -100,8 +100,7 @@
+   (let ((proc (get-buffer-process dbg-comint-buffer)))
+     (or proc (ude-error "Current buffer has no process"))
+     ;; Arrange for the current prompt to get deleted.
+-    (save-excursion
+-      (set-buffer dbg-comint-buffer)
++    (with-current-buffer dbg-comint-buffer
+       (goto-char (process-mark proc))
+       (while (not (looking-at comint-prompt-regexp))
+ 	(goto-char (process-mark proc))
+@@ -140,8 +139,7 @@
+ ;*    Locals a new locals in a separate buffer.                        */
+ ;*---------------------------------------------------------------------*/
+ (defun dbg-locals-locals (buffer locals)
 -  (save-excursion
--    (let ((window-min-height 100)
--	  (window-min-width 100)
--	  (bg-color (or (x-get-global-resource "backgroundToolBarColor"
--					       "BackgroundToolBarColor")
--			"grey75"))
--	  (buffer (get-buffer-create " *ude-about-buffer*"))
--	  (frame nil))
--      (set-buffer buffer)
-+  (let ((window-min-height 100)
-+	(window-min-width 100)
-+	(bg-color (or (x-get-global-resource "backgroundToolBarColor"
-+					     "BackgroundToolBarColor")
-+		      "grey75"))
-+	(buffer (get-buffer-create " *ude-about-buffer*"))
-+	(frame nil))
-+    (with-current-buffer buffer
-       (ude-about-insert-xpm (current-buffer) xpm)
-       (insert "\n")
-       (insert msg)
---- ./bmacs/ude/plugin.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/ude/plugin.el	2011-09-26 09:55:15.714860559 -0600
-@@ -371,14 +371,16 @@
- 			       (select-frame frame)
- 			       (select-window win)
- 			       (set-buffer buffer)
--			       (goto-line line)
-+			       (goto-char (point-min))
-+			       (forward-line (1- line))
- 			       (recenter)
- 			       t)
- 			   nil))
- 		     nil))
- 	      (let ((pop-up-frames t))
- 		(pop-to-buffer buffer)
--		(goto-line line)
-+		(goto-char (point-min))
-+		(forward-line (1- line))
- 		(recenter))))))
-      ((and (consp command) (memq (car command) '(HELP help)))
-       (let ((prgm (let ((p (cadr command)))
---- ./bmacs/ude/id-select.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/ude/id-select.el	2011-09-26 09:55:15.715860538 -0600
-@@ -248,6 +248,72 @@
- (defvar id-select-prior-buffer 'nil)
+-    (set-buffer buffer)
++  (with-current-buffer buffer
+     (let ((buffer-read-only nil))
+       (erase-buffer)
+       (insert locals)
+@@ -164,12 +162,12 @@
+ 					 'mouse-face 'highlight
+ 					 'keymap dbg-locals-mouse-map)
+ 		    (if (< end (point-max))
+-			(next-line 1)
++			(forward-line 1)
+ 		      (setq keep nil)))
+ 		(progn
+ 		  (end-of-line)
+ 		  (if (< (point) (point-max))
+-		      (next-line 1)
++		      (forward-line 1)
+ 		    (setq keep nil)))))))))))
+ 		
+ ;*---------------------------------------------------------------------*/
+@@ -242,8 +240,7 @@
+ (defun dbg-locals-menu (event)
+   (interactive "e")
+   (let (selection)
+-    (save-excursion
+-      (set-buffer (event-buffer event))
++    (with-current-buffer (event-buffer event)
+       (save-excursion
+ 	(goto-char (event-closest-point event))
+ 	(message "point: %S" (point))
+--- ./bmacs/dbg/dbg-mode.el.orig	2011-09-26 01:39:17.000000000 -0600
++++ ./bmacs/dbg/dbg-mode.el	2011-11-23 10:47:33.414521596 -0700
+@@ -98,10 +98,7 @@
+   (make-local-variable 'dbg-delete-prompt-marker)
+   (setq dbg-delete-prompt-marker (make-marker))
+   ;; same for dbg-last-frame
+-  (make-variable-buffer-local 'dbg-last-frame)
+   (setq dbg-last-frame nil)
+-  ;; and so it is for dbg-marker-acc
+-  (make-variable-buffer-local 'dbg-marker-acc)
+   ;; the mouse shape when flying over non text
+   (ude-set-nontext-pointer "left_ptr")
+   ;; we set up kill buffer hook
+--- ./bmacs/bmacs-xemacs.el.orig	2011-09-26 01:39:17.000000000 -0600
++++ ./bmacs/bmacs-xemacs.el	2011-11-23 10:50:06.739320035 -0700
+@@ -177,6 +177,21 @@
+       (delete-window))))
  
- ;;; ************************************************************************
-+;;; Private variables
-+;;; ************************************************************************
-+
-+(defvar id-select-bigger-alist
-+  '((char nil)
-+    (whitespace id-select-whitespace)
-+    (word id-select-word)
-+    (symbol id-select-symbol)
-+    (punctuation nil)
-+    (string id-select-string)
-+    (text nil)
-+    (comment id-select-comment)
-+    (markup-pair nil)
-+    (preprocessor-def nil)
-+    (sexp id-select-sexp)
-+    (sexp-start nil)
-+    (sexp-end nil)
-+    (sexp-up id-select-sexp-up)
-+    (line id-select-line)
-+    (sentence id-select-sentence)
-+    (brace-def-or-declaration id-select-brace-def-or-declaration)
-+    (indent-def id-select-indent-def)
-+    (paragraph id-select-paragraph)
-+    (page id-select-page)
-+    (buffer id-select-buffer)
-+    )
-+  "List of (REGION-TYPE-SYMBOL REGION-SELECTION-FUNCTION) pairs.
-+Used to go from one thing to a bigger thing.  See id-select-bigger-thing.
-+Nil value for REGION-SELECTION-FUNCTION means that region type is skipped
-+over when trying to grow the region and is only used when a selection is made
-+with point on a character that triggers that type of selection.  Ordering of
-+entries is largely irrelevant to any code that uses this list.")
-+
-+
-+(defvar id-select-prior-buffer nil)
-+(defvar id-select-prior-point nil)
-+
-+(defvar id-select-previous 'char
-+  "Most recent type of selection.  Must be set by all id-select functions.")
-+
-+(defvar id-select-region (cons 'nil 'nil)
-+  "Cons cell that contains a region (<beginning> . <end>).
-+The function `id-select-set-region' updates and returns it.")
-+
-+(defvar id-select-old-region (cons 'nil 'nil)
-+  "Cons cell that contains a region (<beginning> . <end>).")
-+
-+(defcustom id-select-syntax-alist
-+  '((?w  id-select-word)
-+    (?_  id-select-symbol)
-+    (?\" id-select-string)
-+    (?\( id-select-sexp-start)
-+    (?\$ id-select-sexp-start)
-+    (?'  id-select-sexp-start)
-+    (?\) id-select-sexp-end)
-+    (?   id-select-whitespace)
-+    (?<  id-select-comment)
-+    (?.  id-select-punctuation))
-+  "*List of pairs of the form (SYNTAX-CHAR FUNCTION) used by the function `id-select-syntactical-region'.
-+Each FUNCTION takes a single position argument and returns a region
-+(start . end) delineating the boundaries of the thing at that position.
-+Ordering of entries is largely irrelevant to any code that uses this list."
-+  :type '(repeat (list (sexp :tag "Syntax-Char" function)))
-+  :group 'id-select)
+ ;*---------------------------------------------------------------------*/
++;*    file-installed-p ...                                             */
++;*---------------------------------------------------------------------*/
++(defun file-installed-p (file &optional paths)
++  "Return absolute-path of FILE if FILE exists in PATHS.
++If PATHS is omitted, `load-path' is used."
++  (if (null paths) (setq paths load-path))
++  (catch 'tag
++    (let (path)
++      (while paths
++	(setq path (expand-file-name file (car paths)))
++	(if (file-exists-p path)
++	    (throw 'tag path))
++	(setq paths (cdr paths))))))
 +
-+;;; ************************************************************************
- ;;; Public functions
- ;;; ************************************************************************
- 
-@@ -456,7 +522,8 @@
-   "Return the (start . end) of a syntactically defined region based upon the last region selected or on position POS.
- The character at POS is selected if no other thing is matched."
-   (interactive)
--  (setq zmacs-region-stays t)
-+  (if (featurep 'xemacs)
-+      (setq zmacs-region-stays t))
-   (setcar id-select-old-region (car id-select-region))
-   (setcdr id-select-old-region (cdr id-select-region))
-   (let ((prior-type id-select-previous))
-@@ -477,7 +544,7 @@
-      (t (let ((min-region (1+ (- (point-max) (point-min))))
- 	      (result)
- 	      region region-size)
--	  (mapcar
-+	  (mapc
- 	   (function
- 	    (lambda (sym-func)
- 	      (setq region
-@@ -1209,71 +1276,5 @@
-   (setq id-select-previous 'buffer)
-   (id-select-set-region (point-min) (point-max)))
- 
--;;; ************************************************************************
--;;; Private variables
--;;; ************************************************************************
--
--(defvar id-select-bigger-alist
--  '((char nil)
--    (whitespace id-select-whitespace)
--    (word id-select-word)
--    (symbol id-select-symbol)
--    (punctuation nil)
--    (string id-select-string)
--    (text nil)
--    (comment id-select-comment)
--    (markup-pair nil)
--    (preprocessor-def nil)
--    (sexp id-select-sexp)
--    (sexp-start nil)
--    (sexp-end nil)
--    (sexp-up id-select-sexp-up)
--    (line id-select-line)
--    (sentence id-select-sentence)
--    (brace-def-or-declaration id-select-brace-def-or-declaration)
--    (indent-def id-select-indent-def)
--    (paragraph id-select-paragraph)
--    (page id-select-page)
--    (buffer id-select-buffer)
--    )
--  "List of (REGION-TYPE-SYMBOL REGION-SELECTION-FUNCTION) pairs.
--Used to go from one thing to a bigger thing.  See id-select-bigger-thing.
--Nil value for REGION-SELECTION-FUNCTION means that region type is skipped
--over when trying to grow the region and is only used when a selection is made
--with point on a character that triggers that type of selection.  Ordering of
--entries is largely irrelevant to any code that uses this list.")
--
--
--(defvar id-select-prior-buffer nil)
--(defvar id-select-prior-point nil)
--
--(defvar id-select-previous 'char
--  "Most recent type of selection.  Must be set by all id-select functions.")
--
--(defvar id-select-region (cons 'nil 'nil)
--  "Cons cell that contains a region (<beginning> . <end>).
--The function `id-select-set-region' updates and returns it.")
--
--(defvar id-select-old-region (cons 'nil 'nil)
--  "Cons cell that contains a region (<beginning> . <end>).")
--
--(defcustom id-select-syntax-alist
--  '((?w  id-select-word)
--    (?_  id-select-symbol)
--    (?\" id-select-string)
--    (?\( id-select-sexp-start)
--    (?\$ id-select-sexp-start)
--    (?'  id-select-sexp-start)
--    (?\) id-select-sexp-end)
--    (?   id-select-whitespace)
--    (?<  id-select-comment)
--    (?.  id-select-punctuation))
--  "*List of pairs of the form (SYNTAX-CHAR FUNCTION) used by the function `id-select-syntactical-region'.
--Each FUNCTION takes a single position argument and returns a region
--(start . end) delineating the boundaries of the thing at that position.
--Ordering of entries is largely irrelevant to any code that uses this list."
--  :type '(repeat (list (sexp :tag "Syntax-Char" function)))
--  :group 'id-select)
--
- 
- (provide 'id-select)
---- ./bmacs/ude/ude-autoload.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/ude/ude-autoload.el	2011-09-26 09:55:15.716860518 -0600
-@@ -17,6 +17,7 @@
- (autoload 'ude-customize "ude-custom" "Ude customization." t)
- ;; config
- (autoload 'bmacs-docdir "bmacs-config" "Bmacs configuration." t)
-+(autoload 'bmacs-lispdir "bmacs-config" "Bmacs configuration." t)
- ;; parent
- (autoload 'ude-paren-init "ude-paren" "Ude paren initialization." t)
- ;; root
-@@ -124,7 +125,7 @@
- (autoload 'ude-checkin-project "ude-version" "Version manager." t)
- (autoload 'ude-tar-gz-project "ude-version" "Version manager." t)
- ;; ude-balloon
--(autoload 'ude-add-ballon-action "ude-balloon" "Bdb balloon system." t)
-+(autoload 'ude-add-balloon-action "ude-balloon" "Bdb balloon system." t)
- (autoload 'ude-balloon-start "ude-balloon" "Bdb balloon system." t)
- (autoload 'ude-balloon-stop "ude-balloon" "Bdb balloon system." t)
- (autoload 'ude-balloon-get-buffer "ude-balloon" "Bdb balloon system." t)
---- ./bmacs/ude/ude-ident.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/ude/ude-ident.el	2011-09-26 09:55:15.712860601 -0600
-@@ -36,8 +36,8 @@
-   (save-excursion
-     (goto-char pos)
-     ;; we start skipping left until we found a separator
--    (let* ((min (save-excursion (beginning-of-line) (point)))
--	   (max (save-excursion (end-of-line) (point))))
-+    (let* ((min (point-at-bol))
-+	   (max (point-at-eol)))
-       (if (looking-at (ude-ident-regexp))
- 	  ;; we could be located on a identifier we go left until we found
- 	  ;; a non identifier character
-@@ -215,13 +215,11 @@
++;*---------------------------------------------------------------------*/
+ ;*    frame-parameter ...                                              */
  ;*---------------------------------------------------------------------*/
- (defun ude-tags-balloon-remove (event)
-   (interactive "e")
--  (let* ((point   (event-closest-point event))
--	 (buffer  (event-buffer event))
--	 (current (current-buffer)))
--    (set-buffer buffer)
--    ;; we store the disabled position
--    (setq ude-tags-disabled (cons buffer point))
--    (set-buffer current)
-+  (let ((point   (event-closest-point event))
-+	(buffer  (event-buffer event)))
-+    (with-current-buffer buffer
-+      ;; we store the disabled position
-+      (setq ude-tags-disabled (cons buffer point)))
-     (ude-tags-balloon-delete)))
- 
+ (defun frame-parameter (frame key)
+@@ -293,8 +308,8 @@
  ;*---------------------------------------------------------------------*/
-@@ -262,16 +260,14 @@
- (defun ude-tags-balloon-delete (&optional frame)
-   (if (consp ude-tags-balloon-region)
-       (let ((buffer (car ude-tags-balloon-region))
--	    (region (cdr ude-tags-balloon-region))
--	    (cbuf (current-buffer)))
--	(set-buffer buffer)
--	(let ((mod (buffer-modified-p))
--	      (l '(help-echo ude-balloon-ident mouse-face keymap)))
--	  (while (consp l)
--	    (remove-text-property (car region) (cdr region) (car l))
--	    (setq l (cdr l)))
--	  (set-buffer-modified-p mod))
--	(set-buffer cbuf)
-+	    (region (cdr ude-tags-balloon-region)))
-+	(with-current-buffer buffer
-+	  (let ((mod (buffer-modified-p))
-+		(l '(help-echo ude-balloon-ident mouse-face keymap)))
-+	    (while (consp l)
-+	      (remove-text-property (car region) (cdr region) (car l))
-+	      (setq l (cdr l)))
-+	    (set-buffer-modified-p mod)))
- 	(setq ude-tags-balloon-region nil))))
+ ;*    set-default-toolbar-visible ...                                  */
+ ;*---------------------------------------------------------------------*/
+-(defun set-default-toolbar-visible (t)
+-  (set-specifier default-toolbar-visible-p t (selected-frame)))
++(defun set-default-toolbar-visible (b)
++  (set-specifier default-toolbar-visible-p b (selected-frame)))
  
  ;*---------------------------------------------------------------------*/
---- ./bmacs/ude/ude-compile.el.orig	2011-09-26 01:39:18.000000000 -0600
-+++ ./bmacs/ude/ude-compile.el	2011-09-26 09:55:15.713860580 -0600
-@@ -351,8 +351,7 @@
-    (ude-pop-compilation-frame-on-error
-     ;; we have to pop up a frame
-     (let* ((pop-up-frames t)
--	   (height (save-excursion
--		     (set-buffer buffer)
-+	   (height (with-current-buffer buffer
- 		     (+ 2 (count-lines (point-min) (point-max)))))
- 	   (cur-height (frame-height (selected-frame)))
- 	   (err-height (if (> height cur-height) cur-height height))
+ ;*    ude-set-nontext-pointer ...                                      */
 --- ./bmacs/ude/ude-makefile.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/ude/ude-makefile.el	2011-09-26 09:55:15.716860518 -0600
++++ ./bmacs/ude/ude-makefile.el	2011-11-23 10:47:33.420521471 -0700
 @@ -209,14 +209,12 @@
    (interactive)
    (let ((default-directory ude-root-directory))
@@ -893,226 +687,377 @@
  	  (let* ((cmd (format "%s -o %s -project %s"
  			      ude-makemake
  			      ude-makefile
---- ./bmacs/bmacs-xemacs.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/bmacs-xemacs.el	2011-09-26 10:08:15.468334036 -0600
-@@ -177,6 +177,21 @@
-       (delete-window))))
- 
- ;*---------------------------------------------------------------------*/
-+;*    file-installed-p ...                                             */
-+;*---------------------------------------------------------------------*/
-+(defun file-installed-p (file &optional paths)
-+  "Return absolute-path of FILE if FILE exists in PATHS.
-+If PATHS is omitted, `load-path' is used."
-+  (if (null paths) (setq paths load-path))
-+  (catch 'tag
-+    (let (path)
-+      (while paths
-+	(setq path (expand-file-name file (car paths)))
-+	(if (file-exists-p path)
-+	    (throw 'tag path))
-+	(setq paths (cdr paths))))))
-+
-+;*---------------------------------------------------------------------*/
- ;*    frame-parameter ...                                              */
- ;*---------------------------------------------------------------------*/
- (defun frame-parameter (frame key)
---- ./bmacs/cee/cee-kbdb.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/cee/cee-kbdb.el	2011-09-26 09:55:15.720860436 -0600
-@@ -389,7 +389,8 @@
- 		      (select-frame frame)
- 		      (select-window win)
- 		      (set-buffer buf)
--		      (goto-line npos)
-+		      (goto-char (point-min))
-+		      (forward-line (1- npos))
- 		      (beginning-of-line)
- 		      (set-window-point win npos)
- 		      t))))
-@@ -399,7 +400,8 @@
- 	  (if (bufferp buf)
- 	      (progn
- 		(set-buffer buf)
--		(goto-line npos)
-+		(goto-char (point-min))
-+		(forward-line (1- npos))
- 		(beginning-of-line)
- 		t))))
-        (t
---- ./bmacs/xemacs-etags.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/xemacs-etags.el	2011-09-26 09:55:15.721860415 -0600
-@@ -236,8 +236,7 @@
- 		     ;; it is initialized as a tag table buffer.
- 		     (save-excursion
- 		       (tags-verify-table (buffer-file-name table-buffer))))
--		(save-excursion
--		  (set-buffer table-buffer)
-+		(with-current-buffer table-buffer
- 		  (if (tags-included-tables)
- 		      ;; Insert the included tables into the list we
- 		      ;; are processing.
-@@ -276,8 +275,7 @@
- 	      (setq computed (cons (car tables) computed)
- 		    table-buffer (get-file-buffer (car tables)))
- 	      (if table-buffer
--		  (save-excursion
--		    (set-buffer table-buffer)
-+		  (with-current-buffer table-buffer
- 		    (if (tags-included-tables)
- 			;; Insert the included tables into the list we
- 			;; are processing.
-@@ -663,12 +661,8 @@
+--- ./bmacs/ude/ude-ident.el.orig	2011-09-26 01:39:17.000000000 -0600
++++ ./bmacs/ude/ude-ident.el	2011-11-23 10:47:33.419521491 -0700
+@@ -36,8 +36,8 @@
    (save-excursion
-     (while (looking-at "\\sw\\|\\s_")
-       (forward-char 1))
--    (if (or (re-search-backward "\\sw\\|\\s_"
--				(save-excursion (beginning-of-line) (point))
--				t)
--	    (re-search-forward "\\(\\sw\\|\\s_\\)+"
--			       (save-excursion (end-of-line) (point))
--			       t))
-+    (if (or (re-search-backward "\\sw\\|\\s_" (point-at-bol) t)
-+	    (re-search-forward "\\(\\sw\\|\\s_\\)+" (point-at-eol) t))
- 	(progn (goto-char (match-end 0))
- 	       (buffer-substring (point)
- 				 (progn (forward-sexp -1)
-@@ -752,22 +746,21 @@
- 	(setq last-tag tagname))
-       ;; Record the location so we can pop back to it later.
-       (let ((marker (make-marker)))
--	(save-excursion
--	  (set-buffer
--	   ;; find-tag-in-order does the real work.
--	   (find-tag-in-order
--	    (if next-p last-tag tagname)
--	    (if regexp-p
--		find-tag-regexp-search-function
--	      find-tag-search-function)
--	    (if regexp-p
--		find-tag-regexp-tag-order
--	      find-tag-tag-order)
--	    (if regexp-p
--		find-tag-regexp-next-line-after-failure-p
--	      find-tag-next-line-after-failure-p)
--	    (if regexp-p "matching" "containing")
--	    (not next-p)))
-+	(with-current-buffer
-+	 ;; find-tag-in-order does the real work.
-+	 (find-tag-in-order
-+	  (if next-p last-tag tagname)
-+	  (if regexp-p
-+	      find-tag-regexp-search-function
-+	    find-tag-search-function)
-+	  (if regexp-p
-+	      find-tag-regexp-tag-order
-+	    find-tag-tag-order)
-+	  (if regexp-p
-+	      find-tag-regexp-next-line-after-failure-p
-+	    find-tag-next-line-after-failure-p)
-+	  (if regexp-p "matching" "containing")
-+	  (not next-p))
- 	  (set-marker marker (point))
- 	  (run-hooks 'local-find-tag-hook)
- 	  (setq tags-location-stack
-@@ -978,9 +971,7 @@
- 	      ;; Naive match found.  Qualify the match.
- 	      (and (funcall (car order) pattern)
- 		   ;; Make sure it is not a previous qualified match.
--		   (not (member (set-marker match-marker (save-excursion
--							   (beginning-of-line)
--							   (point)))
-+		   (not (member (set-marker match-marker (point-at-bol))
- 				tag-lines-already-matched))
- 		   (throw 'qualified-match-found nil))
- 	      (if next-line-after-failure-p
-@@ -1103,9 +1094,7 @@
+     (goto-char pos)
+     ;; we start skipping left until we found a separator
+-    (let* ((min (save-excursion (beginning-of-line) (point)))
+-	   (max (save-excursion (end-of-line) (point))))
++    (let* ((min (point-at-bol))
++	   (max (point-at-eol)))
+       (if (looking-at (ude-ident-regexp))
+ 	  ;; we could be located on a identifier we go left until we found
+ 	  ;; a non identifier character
+@@ -215,13 +215,11 @@
+ ;*---------------------------------------------------------------------*/
+ (defun ude-tags-balloon-remove (event)
+   (interactive "e")
+-  (let* ((point   (event-closest-point event))
+-	 (buffer  (event-buffer event))
+-	 (current (current-buffer)))
+-    (set-buffer buffer)
+-    ;; we store the disabled position
+-    (setq ude-tags-disabled (cons buffer point))
+-    (set-buffer current)
++  (let ((point   (event-closest-point event))
++	(buffer  (event-buffer event)))
++    (with-current-buffer buffer
++      ;; we store the disabled position
++      (setq ude-tags-disabled (cons buffer point)))
+     (ude-tags-balloon-delete)))
  
-       ;; Find the end of the tag and record the whole tag text.
-       (search-forward "\177")
--      (setq tag-text (buffer-substring (1- (point))
--				       (save-excursion (beginning-of-line)
--						       (point))))
-+      (setq tag-text (buffer-substring (1- (point)) (point-at-bol)))
-       ;; Skip explicit tag name if present.
-       (search-forward "\001" (save-excursion (forward-line 1) (point)) t)
-       (if (looking-at "[0-9]")
-@@ -1312,7 +1301,7 @@
-   (save-excursion
-     (beginning-of-line)
-     (let ((bol (point)))
--      (and (search-forward "\177" (save-excursion (end-of-line) (point)) t)
-+      (and (search-forward "\177" (point-at-eol) t)
- 	   (re-search-backward re bol t)))))
- 
- ;;;###autoload
---- ./bmacs/bee/bee-module.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/bee/bee-module.el	2011-09-26 09:55:15.709860664 -0600
-@@ -359,8 +359,7 @@
- ;*    bee-get-module-name ...                                          */
  ;*---------------------------------------------------------------------*/
- (defun bee-get-module-name (buffer)
+@@ -262,16 +260,14 @@
+ (defun ude-tags-balloon-delete (&optional frame)
+   (if (consp ude-tags-balloon-region)
+       (let ((buffer (car ude-tags-balloon-region))
+-	    (region (cdr ude-tags-balloon-region))
+-	    (cbuf (current-buffer)))
+-	(set-buffer buffer)
+-	(let ((mod (buffer-modified-p))
+-	      (l '(help-echo ude-balloon-ident mouse-face keymap)))
+-	  (while (consp l)
+-	    (remove-text-property (car region) (cdr region) (car l))
+-	    (setq l (cdr l)))
+-	  (set-buffer-modified-p mod))
+-	(set-buffer cbuf)
++	    (region (cdr ude-tags-balloon-region)))
++	(with-current-buffer buffer
++	  (let ((mod (buffer-modified-p))
++		(l '(help-echo ude-balloon-ident mouse-face keymap)))
++	    (while (consp l)
++	      (remove-text-property (car region) (cdr region) (car l))
++	      (setq l (cdr l)))
++	    (set-buffer-modified-p mod)))
+ 	(setq ude-tags-balloon-region nil))))
+ 
+ ;*---------------------------------------------------------------------*/
+--- ./bmacs/ude/ude-docline.el.orig	2011-09-26 01:39:17.000000000 -0600
++++ ./bmacs/ude/ude-docline.el	2011-11-23 10:47:33.416521552 -0700
+@@ -106,13 +106,10 @@
+ 	  (ude-error "Can't find documentation for `%S'" var)
+ 	(progn
+ 	  (if ude-info-fontify
+-	      (let* ((cbuf (current-buffer))
+-		     (ibuf (get-buffer "*info*")))
++	      (let ((ibuf (get-buffer "*info*")))
+ 		(if (bufferp ibuf)
+-		    (progn
+-		      (set-buffer ibuf)
+-		      (font-lock-fontify-buffer)
+-		      (set-buffer cbuf)))))
++		    (with-current-buffer ibuf
++		      (font-lock-fontify-buffer)))))
+ 	  (ude-pop-to-info))))))
+ 
+ ;*---------------------------------------------------------------------*/
+@@ -140,13 +137,10 @@
+ 	(ude-error (format "Can't find section `%S'" section))
+       (progn
+ 	(if ude-info-fontify
+-	    (let* ((cbuf (current-buffer))
+-		   (ibuf (get-buffer "*info*")))
++	    (let ((ibuf (get-buffer "*info*")))
+ 	      (if (bufferp ibuf)
+-		  (progn
+-		    (set-buffer ibuf)
+-		    (font-lock-fontify-buffer)
+-		    (set-buffer cbuf)))))
++		  (with-current-buffer ibuf
++		    (font-lock-fontify-buffer)))))
+ 	(ude-pop-to-info)))))
+ 
+ ;*---------------------------------------------------------------------*/
+@@ -237,8 +231,7 @@
+ ;*---------------------------------------------------------------------*/
+ (defun ude-fontify-doc-source (buffer)
+   (interactive "Bbuffer: ")
 -  (save-excursion
 -    (set-buffer buffer)
 +  (with-current-buffer buffer
      (goto-char (point-min))
-     ;; first we search for the module declaration
-     (if (re-search-forward (concat "(module[ \n\t]\\(" (ude-ident-regexp)
---- ./bmacs/bee/bee-expand.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/bee/bee-expand.el	2011-09-26 09:55:15.708860684 -0600
-@@ -79,8 +79,7 @@
- (defun bee-set-expand-temporary-buffer ()
-   (if (and (bufferp bee-expand-temporary-buffer)
- 	   (buffer-live-p bee-expand-temporary-buffer))
--      (save-excursion
--	(set-buffer bee-expand-temporary-buffer)
-+      (with-current-buffer bee-expand-temporary-buffer
- 	(toggle-read-only nil)
- 	(erase-buffer))
-     (setq bee-expand-temporary-buffer (get-buffer-create "*bee tmp expand*"))))
-@@ -133,7 +132,7 @@
- 		   (bee-get-temp-name)))))
-     (bee-set-expand-temporary-buffer)
-     (set-buffer bee-expand-temporary-buffer)
--    (insert-buffer buf)
-+    (insert-buffer-substring buf)
-     (write-file fname nil)
-     (bee-expand-buffer-internal)))
+     (let* ((path-regexp   "@path[ \t]+\\([^@]+\\)@")
+ 	   (anchor-regexp "@ref[ \t]+\\([^@:]+\\):\\([^@]+\\)@")
+--- ./bmacs/ude/plugin.el.orig	2011-09-26 01:39:17.000000000 -0600
++++ ./bmacs/ude/plugin.el	2011-11-23 10:47:33.417521531 -0700
+@@ -371,14 +371,16 @@
+ 			       (select-frame frame)
+ 			       (select-window win)
+ 			       (set-buffer buffer)
+-			       (goto-line line)
++			       (goto-char (point-min))
++			       (forward-line (1- line))
+ 			       (recenter)
+ 			       t)
+ 			   nil))
+ 		     nil))
+ 	      (let ((pop-up-frames t))
+ 		(pop-to-buffer buffer)
+-		(goto-line line)
++		(goto-char (point-min))
++		(forward-line (1- line))
+ 		(recenter))))))
+      ((and (consp command) (memq (car command) '(HELP help)))
+       (let ((prgm (let ((p (cadr command)))
+--- ./bmacs/ude/ude-compile.el.orig	2011-09-26 01:39:18.000000000 -0600
++++ ./bmacs/ude/ude-compile.el	2011-11-23 10:47:33.419521491 -0700
+@@ -351,8 +351,7 @@
+    (ude-pop-compilation-frame-on-error
+     ;; we have to pop up a frame
+     (let* ((pop-up-frames t)
+-	   (height (save-excursion
+-		     (set-buffer buffer)
++	   (height (with-current-buffer buffer
+ 		     (+ 2 (count-lines (point-min) (point-max)))))
+ 	   (cur-height (frame-height (selected-frame)))
+ 	   (err-height (if (> height cur-height) cur-height height))
+--- ./bmacs/ude/ude-about.el.orig	2011-09-26 01:39:17.000000000 -0600
++++ ./bmacs/ude/ude-about.el	2011-11-23 10:47:33.417521531 -0700
+@@ -27,8 +27,7 @@
+   (if (featurep 'xemacs)
+       (let ((window-min-height 1)
+ 	    (window-min-width 1))
+-	(save-excursion
+-	  (set-buffer (generate-new-buffer "*junk-frame-buffer*"))
++	(with-current-buffer (generate-new-buffer "*junk-frame-buffer*")
+ 	  (prog1
+ 	      (make-frame '(minibuffer t initially-unmapped t width 1 height 1))
+ 	    (rename-buffer " *junk-frame-buffer*" t))))))
+@@ -37,15 +36,14 @@
+ ;*    ude-about-make-frame ...                                         */
+ ;*---------------------------------------------------------------------*/
+ (defun ude-about-make-frame (x y msg xpm)
+-  (save-excursion
+-    (let ((window-min-height 100)
+-	  (window-min-width 100)
+-	  (bg-color (or (x-get-global-resource "backgroundToolBarColor"
+-					       "BackgroundToolBarColor")
+-			"grey75"))
+-	  (buffer (get-buffer-create " *ude-about-buffer*"))
+-	  (frame nil))
+-      (set-buffer buffer)
++  (let ((window-min-height 100)
++	(window-min-width 100)
++	(bg-color (or (x-get-global-resource "backgroundToolBarColor"
++					     "BackgroundToolBarColor")
++		      "grey75"))
++	(buffer (get-buffer-create " *ude-about-buffer*"))
++	(frame nil))
++    (with-current-buffer buffer
+       (ude-about-insert-xpm (current-buffer) xpm)
+       (insert "\n")
+       (insert msg)
+--- ./bmacs/ude/id-select.el.orig	2011-09-26 01:39:17.000000000 -0600
++++ ./bmacs/ude/id-select.el	2011-11-23 10:47:33.418521511 -0700
+@@ -248,6 +248,72 @@
+ (defvar id-select-prior-buffer 'nil)
+ 
+ ;;; ************************************************************************
++;;; Private variables
++;;; ************************************************************************
++
++(defvar id-select-bigger-alist
++  '((char nil)
++    (whitespace id-select-whitespace)
++    (word id-select-word)
++    (symbol id-select-symbol)
++    (punctuation nil)
++    (string id-select-string)
++    (text nil)
++    (comment id-select-comment)
++    (markup-pair nil)
++    (preprocessor-def nil)
++    (sexp id-select-sexp)
++    (sexp-start nil)
++    (sexp-end nil)
++    (sexp-up id-select-sexp-up)
++    (line id-select-line)
++    (sentence id-select-sentence)
++    (brace-def-or-declaration id-select-brace-def-or-declaration)
++    (indent-def id-select-indent-def)
++    (paragraph id-select-paragraph)
++    (page id-select-page)
++    (buffer id-select-buffer)
++    )
++  "List of (REGION-TYPE-SYMBOL REGION-SELECTION-FUNCTION) pairs.
++Used to go from one thing to a bigger thing.  See id-select-bigger-thing.
++Nil value for REGION-SELECTION-FUNCTION means that region type is skipped
++over when trying to grow the region and is only used when a selection is made
++with point on a character that triggers that type of selection.  Ordering of
++entries is largely irrelevant to any code that uses this list.")
++
++
++(defvar id-select-prior-buffer nil)
++(defvar id-select-prior-point nil)
++
++(defvar id-select-previous 'char
++  "Most recent type of selection.  Must be set by all id-select functions.")
++
++(defvar id-select-region (cons 'nil 'nil)
++  "Cons cell that contains a region (<beginning> . <end>).
++The function `id-select-set-region' updates and returns it.")
++
++(defvar id-select-old-region (cons 'nil 'nil)
++  "Cons cell that contains a region (<beginning> . <end>).")
++
++(defcustom id-select-syntax-alist
++  '((?w  id-select-word)
++    (?_  id-select-symbol)
++    (?\" id-select-string)
++    (?\( id-select-sexp-start)
++    (?\$ id-select-sexp-start)
++    (?'  id-select-sexp-start)
++    (?\) id-select-sexp-end)
++    (?   id-select-whitespace)
++    (?<  id-select-comment)
++    (?.  id-select-punctuation))
++  "*List of pairs of the form (SYNTAX-CHAR FUNCTION) used by the function `id-select-syntactical-region'.
++Each FUNCTION takes a single position argument and returns a region
++(start . end) delineating the boundaries of the thing at that position.
++Ordering of entries is largely irrelevant to any code that uses this list."
++  :type '(repeat (list (sexp :tag "Syntax-Char" function)))
++  :group 'id-select)
++
++;;; ************************************************************************
+ ;;; Public functions
+ ;;; ************************************************************************
  
---- ./bmacs/bee/bee-tags.el.orig	2011-09-26 01:39:18.000000000 -0600
-+++ ./bmacs/bee/bee-tags.el	2011-09-26 09:55:15.711860622 -0600
-@@ -66,7 +66,7 @@
- (defun bee-safe-read (port)
-   (condition-case err
-       (read port)
--    (error f)))
-+    (error port)))
+@@ -456,7 +522,8 @@
+   "Return the (start . end) of a syntactically defined region based upon the last region selected or on position POS.
+ The character at POS is selected if no other thing is matched."
+   (interactive)
+-  (setq zmacs-region-stays t)
++  (if (featurep 'xemacs)
++      (setq zmacs-region-stays t))
+   (setcar id-select-old-region (car id-select-region))
+   (setcdr id-select-old-region (cdr id-select-region))
+   (let ((prior-type id-select-previous))
+@@ -477,7 +544,7 @@
+      (t (let ((min-region (1+ (- (point-max) (point-min))))
+ 	      (result)
+ 	      region region-size)
+-	  (mapcar
++	  (mapc
+ 	   (function
+ 	    (lambda (sym-func)
+ 	      (setq region
+@@ -1209,71 +1276,5 @@
+   (setq id-select-previous 'buffer)
+   (id-select-set-region (point-min) (point-max)))
  
- ;*---------------------------------------------------------------------*/
- ;*    bee-find-afile-module ...                                        */
---- ./bmacs/bee/bee-indent.el.orig	2011-09-26 01:39:18.000000000 -0600
-+++ ./bmacs/bee/bee-indent.el	2011-09-26 09:55:15.710860643 -0600
-@@ -150,7 +150,7 @@
- ;*---------------------------------------------------------------------*/
- (defun bee-calculate-forced-indent ()
-   (save-excursion
--    (previous-line 1)
-+    (forward-line -1)
-     (beginning-of-line)
-     (skip-chars-forward " \t")
-     (let ((s (current-column)))
---- ./bmacs/bee/bee-toolbar.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/bee/bee-toolbar.el	2011-09-26 09:55:15.709860664 -0600
-@@ -31,7 +31,7 @@
-       ;; either the find or the ibuilder button
-       ,@(if (bee-interface-builder-ready-p)
- 	    ;; the ibuilder button
--	    `(,(ude-ibuilder-icon bee-interface-builder-start "Interface builder"))
-+	    `((,ude-ibuilder-icon bee-interface-builder-start "Interface builder"))
- 	  ;; the find button
- 	  `((,ude-edit-icon bee-tags-find "Find definition")))
+-;;; ************************************************************************
+-;;; Private variables
+-;;; ************************************************************************
+-
+-(defvar id-select-bigger-alist
+-  '((char nil)
+-    (whitespace id-select-whitespace)
+-    (word id-select-word)
+-    (symbol id-select-symbol)
+-    (punctuation nil)
+-    (string id-select-string)
+-    (text nil)
+-    (comment id-select-comment)
+-    (markup-pair nil)
+-    (preprocessor-def nil)
+-    (sexp id-select-sexp)
+-    (sexp-start nil)
+-    (sexp-end nil)
+-    (sexp-up id-select-sexp-up)
+-    (line id-select-line)
+-    (sentence id-select-sentence)
+-    (brace-def-or-declaration id-select-brace-def-or-declaration)
+-    (indent-def id-select-indent-def)
+-    (paragraph id-select-paragraph)
+-    (page id-select-page)
+-    (buffer id-select-buffer)
+-    )
+-  "List of (REGION-TYPE-SYMBOL REGION-SELECTION-FUNCTION) pairs.
+-Used to go from one thing to a bigger thing.  See id-select-bigger-thing.
+-Nil value for REGION-SELECTION-FUNCTION means that region type is skipped
+-over when trying to grow the region and is only used when a selection is made
+-with point on a character that triggers that type of selection.  Ordering of
+-entries is largely irrelevant to any code that uses this list.")
+-
+-
+-(defvar id-select-prior-buffer nil)
+-(defvar id-select-prior-point nil)
+-
+-(defvar id-select-previous 'char
+-  "Most recent type of selection.  Must be set by all id-select functions.")
+-
+-(defvar id-select-region (cons 'nil 'nil)
+-  "Cons cell that contains a region (<beginning> . <end>).
+-The function `id-select-set-region' updates and returns it.")
+-
+-(defvar id-select-old-region (cons 'nil 'nil)
+-  "Cons cell that contains a region (<beginning> . <end>).")
+-
+-(defcustom id-select-syntax-alist
+-  '((?w  id-select-word)
+-    (?_  id-select-symbol)
+-    (?\" id-select-string)
+-    (?\( id-select-sexp-start)
+-    (?\$ id-select-sexp-start)
+-    (?'  id-select-sexp-start)
+-    (?\) id-select-sexp-end)
+-    (?   id-select-whitespace)
+-    (?<  id-select-comment)
+-    (?.  id-select-punctuation))
+-  "*List of pairs of the form (SYNTAX-CHAR FUNCTION) used by the function `id-select-syntactical-region'.
+-Each FUNCTION takes a single position argument and returns a region
+-(start . end) delineating the boundaries of the thing at that position.
+-Ordering of entries is largely irrelevant to any code that uses this list."
+-  :type '(repeat (list (sexp :tag "Syntax-Char" function)))
+-  :group 'id-select)
+-
  
+ (provide 'id-select)
+--- ./bmacs/ude/ude-repl.el.orig	2011-09-26 01:39:17.000000000 -0600
++++ ./bmacs/ude/ude-repl.el	2011-11-23 10:47:33.416521552 -0700
+@@ -38,8 +38,7 @@
+ 			'ude-repl-sentinel)
+   (set-process-filter ude-repl-comint-process
+ 		      (function ude-repl-output-from-process))
+-  (save-excursion
+-    (set-buffer ude-repl-buffer)
++  (with-current-buffer ude-repl-buffer
+     (setq comint-prompt-regexp ude-repl-prompt-regexp)
+     (setq comint-scroll-show-maximum-output 0.4)
+     (setq comint-scroll-to-bottom-on-output t)
+--- ./bmacs/ude/ude-autoload.el.orig	2011-09-26 01:39:17.000000000 -0600
++++ ./bmacs/ude/ude-autoload.el	2011-11-23 10:47:33.418521511 -0700
+@@ -17,6 +17,7 @@
+ (autoload 'ude-customize "ude-custom" "Ude customization." t)
+ ;; config
+ (autoload 'bmacs-docdir "bmacs-config" "Bmacs configuration." t)
++(autoload 'bmacs-lispdir "bmacs-config" "Bmacs configuration." t)
+ ;; parent
+ (autoload 'ude-paren-init "ude-paren" "Ude paren initialization." t)
+ ;; root
+@@ -124,7 +125,7 @@
+ (autoload 'ude-checkin-project "ude-version" "Version manager." t)
+ (autoload 'ude-tar-gz-project "ude-version" "Version manager." t)
+ ;; ude-balloon
+-(autoload 'ude-add-ballon-action "ude-balloon" "Bdb balloon system." t)
++(autoload 'ude-add-balloon-action "ude-balloon" "Bdb balloon system." t)
+ (autoload 'ude-balloon-start "ude-balloon" "Bdb balloon system." t)
+ (autoload 'ude-balloon-stop "ude-balloon" "Bdb balloon system." t)
+ (autoload 'ude-balloon-get-buffer "ude-balloon" "Bdb balloon system." t)
 --- ./bmacs/bee/bee-browse.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/bee/bee-browse.el	2011-09-26 09:55:15.711860622 -0600
++++ ./bmacs/bee/bee-browse.el	2011-11-23 10:47:33.425521366 -0700
 @@ -144,14 +144,16 @@
  				     (select-frame frame)
  				     (select-window win)
@@ -1132,8 +1077,30 @@
  	      (recenter)))))
      t)
     ((and (consp command) 
+--- ./bmacs/bee/bee-indent.el.orig	2011-09-26 01:39:18.000000000 -0600
++++ ./bmacs/bee/bee-indent.el	2011-11-23 10:47:33.424521387 -0700
+@@ -150,7 +150,7 @@
+ ;*---------------------------------------------------------------------*/
+ (defun bee-calculate-forced-indent ()
+   (save-excursion
+-    (previous-line 1)
++    (forward-line -1)
+     (beginning-of-line)
+     (skip-chars-forward " \t")
+     (let ((s (current-column)))
+--- ./bmacs/bee/bee-tags.el.orig	2011-09-26 01:39:18.000000000 -0600
++++ ./bmacs/bee/bee-tags.el	2011-11-23 10:47:33.423521409 -0700
+@@ -66,7 +66,7 @@
+ (defun bee-safe-read (port)
+   (condition-case err
+       (read port)
+-    (error f)))
++    (error port)))
+ 
+ ;*---------------------------------------------------------------------*/
+ ;*    bee-find-afile-module ...                                        */
 --- ./bmacs/bee/bee-usage.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/bee/bee-usage.el	2011-09-26 09:55:15.710860643 -0600
++++ ./bmacs/bee/bee-usage.el	2011-11-23 10:47:33.425521366 -0700
 @@ -33,9 +33,7 @@
  						  (goto-char pos)
  						  (beginning-of-line)
@@ -1152,111 +1119,66 @@
 -		      (goto-line (string-to-number line)))
 +		      (forward-line (1- (string-to-number line))))
  		  (ude-error "Can't find buffer for %S" file))))))))
- 
- ;*---------------------------------------------------------------------*/
---- ./bmacs/bug/bug-xemacs.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/bug/bug-xemacs.el	2011-09-26 09:55:15.717860498 -0600
-@@ -143,7 +143,8 @@
-       (save-excursion
- 	(save-restriction
- 	  (widen)
--	  (goto-line line)
-+	  (goto-char (point-min))
-+	  (forward-line (1- line))
- 	  (setq pos (point))))
-       (goto-char pos)
-       (set-window-point window pos)
-@@ -162,9 +163,9 @@
- ;*    bug-add-margin-image-overlay ...                                 */
- ;*---------------------------------------------------------------------*/
- (defun bug-add-margin-image-overlay (buffer line image)
--  (save-excursion
--    (set-buffer buffer)
--    (goto-line line)
-+  (with-current-buffer buffer
-+    (goto-char (point-min))
-+    (forward-line (1- line))
-     (let ((o (make-extent (line-beginning-position)
- 			  (1+ (line-beginning-position))
- 			  buffer)))
-@@ -177,8 +178,7 @@
- ;*    bug-add-image-overlay ...                                        */
- ;*---------------------------------------------------------------------*/
- (defun bug-add-image-overlay (buffer char image)
--  (save-excursion
--    (set-buffer buffer)
-+  (with-current-buffer buffer
-     (goto-char char)
-     (let ((o (make-extent (line-beginning-position)
- 			  (1+ (line-beginning-position))
---- ./bmacs/bug/bug-hooking.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/bug/bug-hooking.el	2011-09-26 09:55:15.718860478 -0600
-@@ -48,7 +48,7 @@
- 	(redisplay-frame)
- 	(sit-for 0.2)
- 	(bug-wait-process "hooks" bug-hook-timeout)
--	(mapcar (lambda (hook) (funcall hook)) bug-command-hooks)
-+	(mapc (lambda (hook) (funcall hook)) bug-command-hooks)
- 	(redisplay-frame)
- 	(setq bug-command-hook-p nil))))
- 
-@@ -69,8 +69,7 @@
-     ;; we wait for comint to be ready
-     (sit-for 0.1)
-     (if (bug-wait-process "bug-hook-command" bug-hook-timeout)
--	(save-excursion
--	  (set-buffer buffer)
-+	(with-current-buffer buffer
- 	  (let ((buffer-read-only nil))
- 	    (erase-buffer)
- 	    ;; Temporarily install our filter function.
-@@ -79,8 +78,7 @@
- 		  (old-prompt-hook bug-prompt-hook))
- 	      (setq bug-filter-output
- 		    #'(lambda (proc str)
--			(save-excursion
--			  (set-buffer buffer)
-+			(with-current-buffer buffer
- 			  (goto-char (point-max))
- 			  (insert str))))
- 	      (setq bug-prompt-hook
---- ./bmacs/bug/bug-class.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/bug/bug-class.el	2011-09-26 09:55:15.718860478 -0600
-@@ -36,15 +36,13 @@
- ;*    bug-file-to-string ...                                           */
+ 
  ;*---------------------------------------------------------------------*/
- (defun bug-file-to-string (file)
+--- ./bmacs/bee/bee-module.el.orig	2011-09-26 01:39:17.000000000 -0600
++++ ./bmacs/bee/bee-module.el	2011-11-23 10:47:33.422521430 -0700
+@@ -359,8 +359,7 @@
+ ;*    bee-get-module-name ...                                          */
+ ;*---------------------------------------------------------------------*/
+ (defun bee-get-module-name (buffer)
 -  (save-excursion
--    (let ((buffer (bug-find-file file)))
--      (if buffer
--	  (progn
--	    (set-buffer buffer)
--	    (let ((s (buffer-string)))
--	      (kill-buffer buffer)
--	      s))
--	""))))
-+  (let ((buffer (bug-find-file file)))
-+    (if buffer
-+	(with-current-buffer buffer
-+	  (let ((s (buffer-string)))
-+	    (kill-buffer buffer)
-+	    s))
-+      "")))
+-    (set-buffer buffer)
++  (with-current-buffer buffer
+     (goto-char (point-min))
+     ;; first we search for the module declaration
+     (if (re-search-forward (concat "(module[ \n\t]\\(" (ude-ident-regexp)
+--- ./bmacs/bee/bee-toolbar.el.orig	2011-09-26 01:39:17.000000000 -0600
++++ ./bmacs/bee/bee-toolbar.el	2011-11-23 10:47:33.424521387 -0700
+@@ -31,7 +31,7 @@
+       ;; either the find or the ibuilder button
+       ,@(if (bee-interface-builder-ready-p)
+ 	    ;; the ibuilder button
+-	    `(,(ude-ibuilder-icon bee-interface-builder-start "Interface builder"))
++	    `((,ude-ibuilder-icon bee-interface-builder-start "Interface builder"))
+ 	  ;; the find button
+ 	  `((,ude-edit-icon bee-tags-find "Find definition")))
  
- ;*---------------------------------------------------------------------*/
- ;*    bug-jfile-module-name ...                                        */
-@@ -104,8 +102,7 @@
- (defun bug-file-to-class (file)
-   (interactive "Ffile: ")
-   (let ((buffer (get-buffer file)))
--    (save-excursion
--      (set-buffer buffer)
-+    (with-current-buffer buffer
-       (if bug-buffer-class
- 	  bug-buffer-class
- 	(progn
+--- ./bmacs/bee/bee-expand.el.orig	2011-09-26 01:39:17.000000000 -0600
++++ ./bmacs/bee/bee-expand.el	2011-11-23 10:47:33.423521409 -0700
+@@ -79,8 +79,7 @@
+ (defun bee-set-expand-temporary-buffer ()
+   (if (and (bufferp bee-expand-temporary-buffer)
+ 	   (buffer-live-p bee-expand-temporary-buffer))
+-      (save-excursion
+-	(set-buffer bee-expand-temporary-buffer)
++      (with-current-buffer bee-expand-temporary-buffer
+ 	(toggle-read-only nil)
+ 	(erase-buffer))
+     (setq bee-expand-temporary-buffer (get-buffer-create "*bee tmp expand*"))))
+@@ -133,7 +132,7 @@
+ 		   (bee-get-temp-name)))))
+     (bee-set-expand-temporary-buffer)
+     (set-buffer bee-expand-temporary-buffer)
+-    (insert-buffer buf)
++    (insert-buffer-substring buf)
+     (write-file fname nil)
+     (bee-expand-buffer-internal)))
+ 
+--- ./bmacs/bug/bug-source.el.orig	2011-09-26 01:39:17.000000000 -0600
++++ ./bmacs/bug/bug-source.el	2011-11-23 10:47:33.428521303 -0700
+@@ -80,7 +80,8 @@
+ 			(display-buffer buffer))))
+ 	  (set-buffer buffer)
+ 	  (bug-connect-buffer buffer)
+-	  (goto-line line)
++	  (goto-char (point-min))
++	  (forward-line (1- line))
+ 	  (set-window-point window (point))
+ 	  (if bug-raise-active-source-frame-p
+ 	      (let ((frame (window-frame window)))
 --- ./bmacs/bug/bug-gnu-emacs.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/bug/bug-gnu-emacs.el	2011-09-26 09:55:15.720860436 -0600
++++ ./bmacs/bug/bug-gnu-emacs.el	2011-11-23 10:47:33.427521324 -0700
 @@ -14,6 +14,7 @@
  ;*---------------------------------------------------------------------*/
  (provide 'bug-gnu-emacs)
@@ -1304,8 +1226,44 @@
  	(setq pos (point))
  	(move-overlay bug-gnu-emacs-source-line-overlay
  		      (line-beginning-position)
+--- ./bmacs/bug/bug.el.orig	2011-09-26 01:39:17.000000000 -0600
++++ ./bmacs/bug/bug.el	2011-11-23 10:47:33.429521282 -0700
+@@ -71,7 +71,10 @@
+ 	     `(,bugname ,binary ,nil ,@(bug-string->list bug-emacs-option)
+ 			,a.out))
+       ;; the process filter and sentinel
+-      (process-kill-without-query (get-buffer-process bug-comint-buffer))
++      (if (featurep 'xemacs)
++	  (process-kill-without-query (get-buffer-process bug-comint-buffer))
++	(set-process-query-on-exit-flag (get-buffer-process bug-comint-buffer)
++					nil))
+       (set-process-filter (get-buffer-process bug-comint-buffer)
+ 			  'bug-filter))
+     ;; we start the bug-mode
+@@ -130,8 +133,7 @@
+ (defun bugloo-quit ()
+   (interactive)
+   (if (bufferp bug-comint-buffer)
+-      (save-excursion
+-	(set-buffer bug-comint-buffer)
++      (with-current-buffer bug-comint-buffer
+ 	(condition-case ()
+ 	    (comint-kill-subjob)
+ 	  (error
+--- ./bmacs/bug/bug-connect.el.orig	2011-09-26 01:39:17.000000000 -0600
++++ ./bmacs/bug/bug-connect.el	2011-11-23 10:47:33.428521303 -0700
+@@ -74,8 +74,7 @@
+ ;*    This function returns the point line number.                     */
+ ;*---------------------------------------------------------------------*/
+ (defun bug-line-number (buffer pos)
+-  (save-restriction
+-    (set-buffer buffer)
++  (with-current-buffer buffer
+     (let (start)
+       (save-excursion
+ 	(save-restriction
 --- ./bmacs/bug/bug-process.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/bug/bug-process.el	2011-09-26 09:55:15.719860457 -0600
++++ ./bmacs/bug/bug-process.el	2011-11-23 10:47:33.427521324 -0700
 @@ -63,8 +63,7 @@
    (let ((proc (get-buffer-process bug-comint-buffer)))
      (or proc (ude-error "Current buffer has no process"))
@@ -1404,8 +1362,78 @@
 +	    (setq bug-waiting nil)
 +	    (or (not (numberp timeout))
 +		(< count timeout))))))))
+--- ./bmacs/bug/bug-xemacs.el.orig	2011-09-26 01:39:17.000000000 -0600
++++ ./bmacs/bug/bug-xemacs.el	2011-11-23 10:47:33.426521345 -0700
+@@ -143,7 +143,8 @@
+       (save-excursion
+ 	(save-restriction
+ 	  (widen)
+-	  (goto-line line)
++	  (goto-char (point-min))
++	  (forward-line (1- line))
+ 	  (setq pos (point))))
+       (goto-char pos)
+       (set-window-point window pos)
+@@ -162,9 +163,9 @@
+ ;*    bug-add-margin-image-overlay ...                                 */
+ ;*---------------------------------------------------------------------*/
+ (defun bug-add-margin-image-overlay (buffer line image)
+-  (save-excursion
+-    (set-buffer buffer)
+-    (goto-line line)
++  (with-current-buffer buffer
++    (goto-char (point-min))
++    (forward-line (1- line))
+     (let ((o (make-extent (line-beginning-position)
+ 			  (1+ (line-beginning-position))
+ 			  buffer)))
+@@ -177,8 +178,7 @@
+ ;*    bug-add-image-overlay ...                                        */
+ ;*---------------------------------------------------------------------*/
+ (defun bug-add-image-overlay (buffer char image)
+-  (save-excursion
+-    (set-buffer buffer)
++  (with-current-buffer buffer
+     (goto-char char)
+     (let ((o (make-extent (line-beginning-position)
+ 			  (1+ (line-beginning-position))
+--- ./bmacs/bug/bug-class.el.orig	2011-09-26 01:39:17.000000000 -0600
++++ ./bmacs/bug/bug-class.el	2011-11-23 10:47:33.426521345 -0700
+@@ -36,15 +36,13 @@
+ ;*    bug-file-to-string ...                                           */
+ ;*---------------------------------------------------------------------*/
+ (defun bug-file-to-string (file)
+-  (save-excursion
+-    (let ((buffer (bug-find-file file)))
+-      (if buffer
+-	  (progn
+-	    (set-buffer buffer)
+-	    (let ((s (buffer-string)))
+-	      (kill-buffer buffer)
+-	      s))
+-	""))))
++  (let ((buffer (bug-find-file file)))
++    (if buffer
++	(with-current-buffer buffer
++	  (let ((s (buffer-string)))
++	    (kill-buffer buffer)
++	    s))
++      "")))
+ 
+ ;*---------------------------------------------------------------------*/
+ ;*    bug-jfile-module-name ...                                        */
+@@ -104,8 +102,7 @@
+ (defun bug-file-to-class (file)
+   (interactive "Ffile: ")
+   (let ((buffer (get-buffer file)))
+-    (save-excursion
+-      (set-buffer buffer)
++    (with-current-buffer buffer
+       (if bug-buffer-class
+ 	  bug-buffer-class
+ 	(progn
 --- ./bmacs/bug/bug-filter.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/bug/bug-filter.el	2011-09-26 09:55:15.719860457 -0600
++++ ./bmacs/bug/bug-filter.el	2011-11-23 10:47:33.428521303 -0700
 @@ -51,9 +51,7 @@
  ;*    bug-buffer-text-properties-at ...                                */
  ;*---------------------------------------------------------------------*/
@@ -1443,51 +1471,34 @@
  
  ;*---------------------------------------------------------------------*/
  ;*    bug-filter-ident-map ...                                         */
---- ./bmacs/bug/bug-source.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/bug/bug-source.el	2011-09-26 09:55:15.716860518 -0600
-@@ -80,7 +80,8 @@
- 			(display-buffer buffer))))
- 	  (set-buffer buffer)
- 	  (bug-connect-buffer buffer)
--	  (goto-line line)
-+	  (goto-char (point-min))
-+	  (forward-line (1- line))
- 	  (set-window-point window (point))
- 	  (if bug-raise-active-source-frame-p
- 	      (let ((frame (window-frame window)))
---- ./bmacs/bug/bug-connect.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/bug/bug-connect.el	2011-09-26 09:55:15.717860498 -0600
-@@ -74,8 +74,7 @@
- ;*    This function returns the point line number.                     */
- ;*---------------------------------------------------------------------*/
- (defun bug-line-number (buffer pos)
--  (save-restriction
--    (set-buffer buffer)
-+  (with-current-buffer buffer
-     (let (start)
-       (save-excursion
- 	(save-restriction
---- ./bmacs/bug/bug.el.orig	2011-09-26 01:39:17.000000000 -0600
-+++ ./bmacs/bug/bug.el	2011-09-26 09:55:15.719860457 -0600
-@@ -71,7 +71,10 @@
- 	     `(,bugname ,binary ,nil ,@(bug-string->list bug-emacs-option)
- 			,a.out))
-       ;; the process filter and sentinel
--      (process-kill-without-query (get-buffer-process bug-comint-buffer))
-+      (if (featurep 'xemacs)
-+	  (process-kill-without-query (get-buffer-process bug-comint-buffer))
-+	(set-process-query-on-exit-flag (get-buffer-process bug-comint-buffer)
-+					nil))
-       (set-process-filter (get-buffer-process bug-comint-buffer)
- 			  'bug-filter))
-     ;; we start the bug-mode
-@@ -130,8 +133,7 @@
- (defun bugloo-quit ()
-   (interactive)
-   (if (bufferp bug-comint-buffer)
--      (save-excursion
--	(set-buffer bug-comint-buffer)
-+      (with-current-buffer bug-comint-buffer
- 	(condition-case ()
- 	    (comint-kill-subjob)
- 	  (error
+--- ./bmacs/bug/bug-hooking.el.orig	2011-09-26 01:39:17.000000000 -0600
++++ ./bmacs/bug/bug-hooking.el	2011-11-23 10:47:33.426521345 -0700
+@@ -48,7 +48,7 @@
+ 	(redisplay-frame)
+ 	(sit-for 0.2)
+ 	(bug-wait-process "hooks" bug-hook-timeout)
+-	(mapcar (lambda (hook) (funcall hook)) bug-command-hooks)
++	(mapc (lambda (hook) (funcall hook)) bug-command-hooks)
+ 	(redisplay-frame)
+ 	(setq bug-command-hook-p nil))))
+ 
+@@ -69,8 +69,7 @@
+     ;; we wait for comint to be ready
+     (sit-for 0.1)
+     (if (bug-wait-process "bug-hook-command" bug-hook-timeout)
+-	(save-excursion
+-	  (set-buffer buffer)
++	(with-current-buffer buffer
+ 	  (let ((buffer-read-only nil))
+ 	    (erase-buffer)
+ 	    ;; Temporarily install our filter function.
+@@ -79,8 +78,7 @@
+ 		  (old-prompt-hook bug-prompt-hook))
+ 	      (setq bug-filter-output
+ 		    #'(lambda (proc str)
+-			(save-excursion
+-			  (set-buffer buffer)
++			(with-current-buffer buffer
+ 			  (goto-char (point-max))
+ 			  (insert str))))
+ 	      (setq bug-prompt-hook
diff --git a/bigloo-sendfile.patch b/bigloo-sendfile.patch
index 1ae972b..7044be0 100644
--- a/bigloo-sendfile.patch
+++ b/bigloo-sendfile.patch
@@ -1,6 +1,6 @@
 --- runtime/Clib/cports.c.orig	2011-09-26 01:39:18.000000000 -0600
-+++ runtime/Clib/cports.c	2011-09-26 09:49:08.634625907 -0600
-@@ -2048,6 +2048,8 @@ bgl_sendchars( obj_t ip, obj_t op, long 
++++ runtime/Clib/cports.c	2011-11-23 11:01:07.370345706 -0700
+@@ -2048,6 +2048,8 @@ bgl_sendchars( obj_t ip, obj_t op, long
  #endif /* BGL_HAVE_SENDFILE */
        if( sz != 0 ) {
  	 n = copyfile( op, ip, sz, INPUT_PORT( ip ).sysread );
@@ -9,23 +9,16 @@
        }
        if( n < 0 ) {
  	 C_SYSTEM_FAILURE( bglerror( errno ), 
-@@ -2092,6 +2094,8 @@ bgl_sendchars( obj_t ip, obj_t op, long 
+@@ -2092,6 +2094,8 @@ bgl_sendchars( obj_t ip, obj_t op, long
        -> error BGL_GC_HAVE_BLOCKING or BGL_GC_HAVE_DO_BLOCKING required
  #  endif  /* BGL_HAVE_DO_BLOCKING */
  #endif  /* BGL_HAVE_BLOCKING */
 +      } else {
-+	n = 0;
++	 n = 0;
        }
  
        if( n < 0 )
-@@ -2130,12 +2134,19 @@ bgl_sendfile( obj_t name, obj_t op, long
-       /* in the configuration files and used to determine what has   */
-       /* to be checked before invoking the actual sendfile sys call  */
- #  if( BGL_SENDFILE_REQUIRE_OUTPUT_SOCKET )
--   if( outp.port.kindof != KINDOF_SOCKET)
-+   if( PORT( op ).kindof != KINDOF_SOCKET)
-       return BFALSE;
- #  endif
+@@ -2136,6 +2140,13 @@ bgl_sendfile( obj_t name, obj_t op, long
  
     bgl_output_flush( op, 0, 0 );
  
diff --git a/bigloo.spec b/bigloo.spec
index 75a84f3..388d246 100644
--- a/bigloo.spec
+++ b/bigloo.spec
@@ -12,14 +12,14 @@
 
 Name:           bigloo
 Version:        3.7a
-Release:        1%{?patch_ver:.%{patch_ver}}%{?dist}.2
+Release:        2%{?patch_ver:.%{patch_ver}}%{?dist}
 Summary:        A compiler for the Scheme programming language
 
 Group:          Development/Languages
 License:        GPLv2+
 URL:            http://www-sop.inria.fr/mimosa/fp/Bigloo
 Source0:        ftp://ftp-sop.inria.fr/indes/fp/Bigloo/bigloo%{version}%{?patch_suffix}.tar.gz
-# Not yet sent upstream: fix some bugs in the sendfile implementation.
+# Applied upstream: fix some bugs in the sendfile implementation.
 Patch0:         bigloo-sendfile.patch
 # Not yet sent upstream: fix various places where control falls off the end
 # of a function that is declared to return a value.
@@ -27,7 +27,7 @@ Patch1:         bigloo-return.patch
 # Not yet sent upstream: fix some bugs in the Emacs interface, and also
 # modernizes the code somewhat.
 Patch2:         bigloo-emacs.patch
-# Sent upstream 26 Sep 2011: fix a syntax error in a Makefile.
+# Applied upstream: fix a syntax error in a Makefile.
 Patch3:         bigloo-makefile.patch
 
 BuildRequires:  emacs
@@ -244,16 +244,24 @@ mkdir -p $RPM_BUILD_ROOT%{_emacs_sitestartdir}
 cat > $RPM_BUILD_ROOT%{_emacs_sitestartdir}/bigloo.el <<EOF
 (require 'bmacs)
 EOF
+pushd $RPM_BUILD_ROOT%{_emacs_sitelispdir}/bigloo
+rm -f bmacs-xemacs.el xemacs-etags.el
+%{_emacs_bytecompile} bmacs.el bmacs-config.el bmacs-gnu-emacs.el
+popd
 
 # xemacs
-(
-  cd bmacs
-  make clean
-  rm -f bmacs-gnu-emacs.el bug/bug-gnu-emacs.el
-  sed -i -e '/bmacs-gnu-emacs\.el/D' -e 's/ bug-gnu-emacs//' Makefile
-  make EMACS=xemacs EMACSBRAND=xemacs EMACSDIR=$RPM_BUILD_ROOT%{_xemacs_sitelispdir}/bigloo
-  make EMACS=xemacs EMACSBRAND=xemacs EMACSDIR=$RPM_BUILD_ROOT%{_xemacs_sitelispdir}/bigloo install
-)
+pushd bmacs
+make clean
+rm -f bmacs-gnu-emacs.el bug/bug-gnu-emacs.el
+sed -i -e '/bmacs-gnu-emacs\.el/D' -e 's/ bug-gnu-emacs//' Makefile
+make EMACS=xemacs EMACSBRAND=xemacs EMACSDIR=$RPM_BUILD_ROOT%{_xemacs_sitelispdir}/bigloo
+make EMACS=xemacs EMACSBRAND=xemacs EMACSDIR=$RPM_BUILD_ROOT%{_xemacs_sitelispdir}/bigloo install
+cd $RPM_BUILD_ROOT%{_xemacs_sitelispdir}/bigloo
+mkdir -p ../../etc/bigloo
+mv etc/* ../../etc/bigloo
+rmdir etc
+%{_xemacs_bytecompile} bmacs.el bmacs-config.el bmacs-xemacs.el xemacs-etags.el
+popd
 
 mkdir -p $RPM_BUILD_ROOT%{_xemacs_sitestartdir}
 cat > $RPM_BUILD_ROOT%{_xemacs_sitestartdir}/bigloo.el <<EOF
@@ -306,6 +314,7 @@ make test
 %{_xemacs_sitelispdir}/bigloo
 %exclude %{_xemacs_sitelispdir}/bigloo/*.el
 %{_xemacs_sitestartdir}/bigloo.el
+%{_xemacs_sitepkgdir}/etc/bigloo
 
 %files -n xemacs-bigloo-el
 %{_xemacs_sitelispdir}/bigloo/*.el
@@ -320,6 +329,10 @@ make test
 
 
 %changelog
+* Wed Nov 23 2011 Jerry James <loganjerry at gmail.com> - 3.7a-2
+- Fix (X)Emacs installations (bz 754592)
+- Refresh sendfile patch to match upstream's version
+
 * Thu Oct 20 2011 Marcela Mašláňová <mmaslano at redhat.com> - 3.7a-1.2
 - rebuild with new gmp without compat lib
 


More information about the scm-commits mailing list