[arch-commits] Commit in bigloo/repos/extra-x86_64 (3 files)

Jürgen Hötzel juergen at archlinux.org
Mon May 27 12:40:22 UTC 2019


    Date: Monday, May 27, 2019 @ 12:40:22
  Author: juergen
Revision: 354387

archrelease: copy trunk to extra-x86_64

Added:
  bigloo/repos/extra-x86_64/PKGBUILD
    (from rev 354386, bigloo/trunk/PKGBUILD)
  bigloo/repos/extra-x86_64/bigloo-emacs.patch
    (from rev 354386, bigloo/trunk/bigloo-emacs.patch)
Deleted:
  bigloo/repos/extra-x86_64/PKGBUILD

--------------------+
 PKGBUILD           |  145 ++--
 bigloo-emacs.patch | 1537 +++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 1610 insertions(+), 72 deletions(-)

Deleted: PKGBUILD
===================================================================
--- PKGBUILD	2019-05-27 12:40:06 UTC (rev 354386)
+++ PKGBUILD	2019-05-27 12:40:22 UTC (rev 354387)
@@ -1,72 +0,0 @@
-# $Id$
-# Maintainer: Jürgen Hötzel <juergen at archlinux.org>
-# Contributor: John Proctor <jproctor at prium.net>
-# Contributor: Kevin Piche <kevin at archlinux.org>
-
-pkgname=bigloo
-_pkgver=4.3a
-pkgver=${_pkgver/-/_}
-pkgrel=3
-pkgdesc="Fast scheme compiler"
-arch=('x86_64')
-url="http://www-sop.inria.fr/mimosa/fp/Bigloo/"
-license=('GPL' 'LGPL')
-depends=('gmp' 'openssl' 'libunistring' 'libnsl' 'gc' 'libuv')
-makedepends=('java-environment' 'emacs' 'zip' 'sqlite' 'alsa-lib' 'flac' 'avahi' 'chrpath')
-optdepends=('java-environment' 'emacs' 'zip' 'sqlite' 'alsa-lib' 'flac' 'avahi')
-options=('!makeflags')
-source=(ftp://ftp-sop.inria.fr/indes/fp/Bigloo/${pkgname}${_pkgver}.tar.gz)
-md5sums=('fb9dc882d01b2b7e8d6770a127657818')
-
-elisp_dir=/usr/share/emacs/site-lisp/bigloo
-
-build() {
-  cd "${srcdir}/${pkgname}${_pkgver}"
-  ./configure --prefix=/usr \
-    --docdir=/usr/share/doc/bigloo \
-    --mandir=/usr/share/man \
-    --infodir=/usr/share/info \
-    --lispdir=${elisp_dir} \
-    --coflags="$CFLAGS" \
-    --cpicflags="-fPIC" \
-    --customgc=no \
-    --customgmp=no \
-    --customlibuv=no \
-    --jvm=yes \
-    --native-default-backend \
-    --enable-avahi \
-    --enable-flac \
-    --enable-sqlite \
-    --enable-ssl \
-    --disable-gstreamer
-
-  make build compile-bee
-}
-
-check() {
-  cd "${srcdir}/${pkgname}${_pkgver}"
-  make test
-}
-
-package() {
-  cd "${srcdir}/${pkgname}${_pkgver}"
-
-  make DESTDIR="${pkgdir}" install install-bee
-  make -C manuals DESTDIR="${pkgdir}" install-bee
-
-  chmod 644 "${pkgdir}"${elisp_dir}/etc/bass-snap.au \
-	"${pkgdir}"${elisp_dir}/images/*
-
-  rm ${pkgdir}/usr/bin/{bglafile,bigloo}.sh
-
-  # Remove references to the build root
-  sed -e "s|^BOOTDIR=.*|BOOTDIR=/usr|g" \
-      -e "s|^BOOTBINDIR=.*|BOOTBINDIR=/usr/bin|g" \
-      -e "s|^BOOTLIBDIR=.*|BOOTLIBDIR=/usr/lib/bigloo/${pkgver}|g" \
-      -e "s|^BGLBUILDBINDIR=.*|BGLBUILDBINDIR=/usr/bin|g" \
-      -e "s|^BGLBUILDLIBDIR=.*|BGLBUILDLIBDIR=/usr/lib/bigloo/${pkgver}|g" \
-      -e "s|^\(BIGLOO=.*\)\.sh|\1|" \
-      -e "s|^\(BGL.*=.*\)\.sh|\1|" \
-      -i  ${pkgdir}/usr/lib/bigloo/${pkgver}/Makefile.config
-
-}

Copied: bigloo/repos/extra-x86_64/PKGBUILD (from rev 354386, bigloo/trunk/PKGBUILD)
===================================================================
--- PKGBUILD	                        (rev 0)
+++ PKGBUILD	2019-05-27 12:40:22 UTC (rev 354387)
@@ -0,0 +1,73 @@
+# Maintainer: Jürgen Hötzel <juergen at archlinux.org>
+# Contributor: John Proctor <jproctor at prium.net>
+# Contributor: Kevin Piche <kevin at archlinux.org>
+
+pkgname=bigloo
+_pkgver=4.3e
+pkgver=${_pkgver/-/_}
+pkgrel=1
+pkgdesc="Fast scheme compiler"
+arch=('x86_64')
+url="https://www-sop.inria.fr/mimosa/fp/Bigloo/"
+license=('GPL' 'LGPL')
+depends=('gmp' 'openssl' 'libunistring' 'libnsl' 'gc' 'libuv')
+makedepends=('java-environment' 'emacs' 'zip' 'sqlite' 'alsa-lib' 'flac' 'avahi' 'chrpath')
+optdepends=('java-environment' 'emacs' 'zip' 'sqlite' 'alsa-lib' 'flac' 'avahi')
+options=('!makeflags')
+source=(ftp://ftp-sop.inria.fr/indes/fp/Bigloo/${pkgname}${_pkgver}.tar.gz bigloo-emacs.patch)
+sha256sums=('43363cb968c57925f402117ff8ec4b47189e2747b02350805a34fa617d9f618a'
+            'c62f61c281f467f24da5807fb0933785a0fd1b7796a349ec85161f0c2102dafa')
+
+elisp_dir=/usr/share/emacs/site-lisp/bigloo
+
+build() {
+  cd "${srcdir}/${pkgname}${_pkgver}"
+  ./configure --prefix=/usr \
+    --docdir=/usr/share/doc/bigloo \
+    --mandir=/usr/share/man \
+    --infodir=/usr/share/info \
+    --lispdir=${elisp_dir} \
+    --coflags="$CFLAGS" \
+    --cpicflags="-fPIC" \
+    --customgc=no \
+    --customgmp=no \
+    --customlibuv=no \
+    --jvm=yes \
+    --native-default-backend \
+    --enable-avahi \
+    --enable-flac \
+    --enable-sqlite \
+    --enable-ssl \
+    --disable-gstreamer
+
+  make build compile-bee
+}
+
+prepare() {
+  patch -p0 -d "${srcdir}/${pkgname}${_pkgver}" -i "${srcdir}/bigloo-emacs.patch"
+}
+
+check() {
+  cd "${srcdir}/${pkgname}${_pkgver}"
+  make test
+}
+
+package() {
+  cd "${srcdir}/${pkgname}${_pkgver}"
+
+  make DESTDIR="${pkgdir}" install install-bee
+  make -C manuals DESTDIR="${pkgdir}" install-bee
+
+  rm ${pkgdir}/usr/bin/{bglafile,bigloo}.sh
+
+  # Remove references to the build root
+  sed -e "s|^BOOTDIR=.*|BOOTDIR=/usr|g" \
+      -e "s|^BOOTBINDIR=.*|BOOTBINDIR=/usr/bin|g" \
+      -e "s|^BOOTLIBDIR=.*|BOOTLIBDIR=/usr/lib/bigloo/${pkgver}|g" \
+      -e "s|^BGLBUILDBINDIR=.*|BGLBUILDBINDIR=/usr/bin|g" \
+      -e "s|^BGLBUILDLIBDIR=.*|BGLBUILDLIBDIR=/usr/lib/bigloo/${pkgver}|g" \
+      -e "s|^\(BIGLOO=.*\)\.sh|\1|" \
+      -e "s|^\(BGL.*=.*\)\.sh|\1|" \
+      -i  ${pkgdir}/usr/lib/bigloo/${pkgver}/Makefile.config
+
+}

Copied: bigloo/repos/extra-x86_64/bigloo-emacs.patch (from rev 354386, bigloo/trunk/bigloo-emacs.patch)
===================================================================
--- bigloo-emacs.patch	                        (rev 0)
+++ bigloo-emacs.patch	2019-05-27 12:40:22 UTC (rev 354387)
@@ -0,0 +1,1537 @@
+--- autoconf/emacsbrand.orig	2018-02-04 23:59:28.000000000 -0700
++++ autoconf/emacsbrand	2018-06-17 15:34:30.642359854 -0600
+@@ -35,7 +35,8 @@ done
+ #*    The autodetection ELisp expression                               */
+ #*---------------------------------------------------------------------*/
+ expr="(cond \
+-        ((string-match \"GNU Emacs 25\" (emacs-version)) (kill-emacs 25))
++        ((string-match \"GNU Emacs 26\" (emacs-version)) (kill-emacs 26)) \
++        ((string-match \"GNU Emacs 25\" (emacs-version)) (kill-emacs 25)) \
+         ((string-match \"GNU Emacs 24\" (emacs-version)) (kill-emacs 24)) \
+         ((string-match \"GNU Emacs 23\" (emacs-version)) (kill-emacs 23)) \
+         ((string-match \"GNU Emacs 22\" (emacs-version)) (kill-emacs 22)) \
+@@ -67,7 +68,11 @@ else
+             if [ "$version" = "25" ]; then
+               echo "emacs25"      
+             else
+-              echo "generic";
++              if [ "$version" = "26" ]; then
++                echo "emacs26"
++              else
++                echo "generic";
++              fi
+             fi    
+           fi
+         fi
+--- bmacs/bee/bee-browse.el.orig	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/bee/bee-browse.el	2018-06-17 15:32:42.037634520 -0600
+@@ -144,14 +144,16 @@
+ 				     (select-frame frame)
+ 				     (select-window win)
+ 				     (set-buffer buffer)
+-				     (goto-line line)
++				     (goto-char (point-min))
++				     (forward-line (1- line))
+ 				     (recenter)
+ 				     t)
+ 				 nil))))))
+ 	    (let ((pop-up-frames t)
+ 		  (buffer (find-file-noselect aname)))
+ 	      (pop-to-buffer buffer)
+-	      (goto-line line)
++	      (goto-char (point-min))
++	      (forward-line (1- line))
+ 	      (recenter)))))
+     t)
+    ((and (consp command) 
+--- bmacs/bee/bee-expand.el.orig	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/bee/bee-expand.el	2018-06-17 15:32:42.043634505 -0600
+@@ -79,9 +79,10 @@
+ (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)
+-	(toggle-read-only nil)
++      (with-current-buffer bee-expand-temporary-buffer
++	(if (featurep 'xemacs)
++	    (toggle-read-only 0)
++	  (setq buffer-read-only nil))
+ 	(erase-buffer))
+     (setq bee-expand-temporary-buffer (get-buffer-create "*bee tmp expand*"))))
+ 
+@@ -106,7 +107,7 @@
+       (funcall completion-hook bee-expand-temporary-buffer))
+   (delete-file (buffer-file-name bee-expand-temporary-buffer))
+   (set-buffer-modified-p nil)
+-  (toggle-read-only t)
++  (if (featurep 'xemacs) (toggle-read-only 1) (setq buffer-read-only t))
+   (let* ((pop-up-frames t)
+ 	 (lines      (+ 3 (count-lines (point-min) (point-max))))
+ 	 (cur-height (frame-height (selected-frame)))
+@@ -133,7 +134,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/bee/bee-indent.el.orig	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/bee/bee-indent.el	2018-06-17 15:32:42.044634502 -0600
+@@ -157,7 +157,7 @@ of the start of the containing expressio
+ (defun bee-calculate-forced-indent ()
+   (when (> (count-lines 1 (point)) 1)
+     (save-excursion
+-      (previous-line 1)
++      (forward-line -1)
+       (beginning-of-line)
+       (skip-chars-forward " \t")
+       (let ((s (current-column)))
+--- bmacs/bee/bee-module.el.orig	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/bee/bee-module.el	2018-06-17 15:32:42.045634500 -0600
+@@ -359,8 +359,7 @@
+ ;*    bee-get-module-name ...                                          */
+ ;*---------------------------------------------------------------------*/
+ (defun bee-get-module-name (buffer)
+-  (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-usage.el.orig	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/bee/bee-usage.el	2018-06-17 15:32:42.046634497 -0600
+@@ -33,9 +33,7 @@
+ 						  (goto-char pos)
+ 						  (beginning-of-line)
+ 						  (point))
+-						(save-excursion
+-						  (end-of-line)
+-						  (point)))))
++						(point-at-eol))))
+     (vector (concat "def   : " define)
+ 	    `(let ((pop-up-frames t))
+ 	       (pop-to-buffer ,buffer)
+@@ -271,7 +269,7 @@ It is used to bypass the buffer local va
+ 			(pop-to-buffer buffer))
+ 		      (set-buffer buffer)
+ 		      (goto-char (point-min))
+-		      (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-class.el.orig	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/bug/bug-class.el	2018-06-17 15:32:42.046634497 -0600
+@@ -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-connect.el.orig	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/bug/bug-connect.el	2018-06-17 15:32:42.047634495 -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	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/bug/bug.el	2018-06-17 15:32:42.048634492 -0600
+@@ -71,7 +71,10 @@ and source-file directory for your debug
+ 	     `(,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 @@ and source-file directory for your debug
+ (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-filter.el.orig	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/bug/bug-filter.el	2018-06-17 15:32:42.048634492 -0600
+@@ -51,9 +51,7 @@
+ ;*    bug-buffer-text-properties-at ...                                */
+ ;*---------------------------------------------------------------------*/
+ (defun bug-buffer-text-properties-at (buf p)
+-  (save-excursion
+-    (set-buffer buf)
+-    (text-properties-at p)))
++  (text-properties-at p buf))
+ 
+ ;*---------------------------------------------------------------------*/
+ ;*    bug-filter-init ...                                              */
+@@ -272,10 +270,8 @@
+   (insert-text-property 0 (length output) 'keymap bug-filter-footprint-map output)
+   (insert-text-property 0 (length output) 'help-echo "mouse-3: Edit properties" output)
+   (funcall bug-filter-output proc output)
+-  (save-excursion
+-    (set-buffer bug-comint-buffer)
+-    (bug-add-image-overlay bug-comint-buffer (1- (point-max))
+-			   bug-footprint-enable-image)))
++  (bug-add-image-overlay bug-comint-buffer (1- (point-max))
++			 bug-footprint-enable-image))
+   
+ ;*---------------------------------------------------------------------*/
+ ;*    bug-filter-breakpoint-map ...                                    */
+@@ -303,10 +299,8 @@
+   (insert-text-property 0 (length output) 'keymap bug-filter-breakpoint-map output)
+   (insert-text-property 0 (length output) 'help-echo "mouse-3: Edit properties" output)
+   (funcall bug-filter-output proc output)
+-  (save-excursion
+-    (set-buffer bug-comint-buffer)
+-    (bug-add-image-overlay bug-comint-buffer (1- (point-max))
+-			   bug-breakpoint-red-image)))
++  (bug-add-image-overlay bug-comint-buffer (1- (point-max))
++			 bug-breakpoint-red-image))
+ 
+ ;*---------------------------------------------------------------------*/
+ ;*    bug-filter-ident-map ...                                         */
+--- bmacs/bug/bug-gnu-emacs.el.orig	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/bug/bug-gnu-emacs.el	2018-06-17 15:32:42.049634490 -0600
+@@ -14,6 +14,7 @@
+ ;*---------------------------------------------------------------------*/
+ (provide 'bug-gnu-emacs)
+ (require 'bug-custom)
++(require 'bmacs-gnu-emacs)
+ 
+ ;*---------------------------------------------------------------------*/
+ ;*    GNU emacs settings...                                            */
+@@ -49,9 +50,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-overlay (line-beginning-position)
+ 			   (1+ (line-beginning-position))))
+ 	  (s (string ? )))
+@@ -69,8 +70,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-overlay (line-beginning-position)
+ 			   (1+ (line-beginning-position))))
+@@ -132,12 +132,12 @@
+       (progn
+ 	(setq bug-gnu-emacs-source-line-overlay (make-overlay 1 1))
+ 	(overlay-put bug-gnu-emacs-source-line-overlay 'face 'bug-line-face)))
+-  (save-excursion
+-    (set-buffer buffer)
++  (with-current-buffer buffer
+     (let ((pos))
+       (save-restriction
+ 	(widen)
+-	(goto-line line)
++	(goto-char (point-min))
++	(forward-line (1- line))
+ 	(setq pos (point))
+ 	(move-overlay bug-gnu-emacs-source-line-overlay
+ 		      (line-beginning-position)
+--- bmacs/bug/bug-hooking.el.orig	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/bug/bug-hooking.el	2018-06-17 15:32:42.049634490 -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-process.el.orig	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/bug/bug-process.el	2018-06-17 15:32:42.049634490 -0600
+@@ -63,8 +63,7 @@
+   (let ((proc (get-buffer-process bug-comint-buffer)))
+     (or proc (ude-error "Current buffer has no process"))
+     ;; Arrange for the current prompt to get deleted.
+-    (save-excursion
+-      (set-buffer bug-comint-buffer)
++    (with-current-buffer bug-comint-buffer
+       (goto-char (process-mark proc))
+       (delete-region (point) (point-max))
+       (process-send-string proc (concat command "\n")))))
+@@ -83,47 +82,45 @@
+ (defun bug-wait-process (from timeout)
+   (if (not bug-comint-buffer)
+       (ude-error "No debugger running")
+-    (save-excursion
+-      (save-restriction
+-	(widen)
+-	(let ((count 0)
+-	      (str   "/-\\|")
+-	      (l (length bug-prompt-regexp)))
+-	  (setq str str)
+-	  (set-buffer bug-comint-buffer)
+-	  ;; we mark bug waiting
+-	  (setq bug-waiting t)
+-	  (accept-process-output)
+-	  (goto-char (point-max))
+-	  (while (progn
+-		   (goto-char (point-max))
+-		   (or (<= (point) l)
+-		       (and (save-excursion
+-			      (backward-char l)
+-			      (not (re-search-forward bug-prompt-eol-regexp
+-						      (point-max)
+-						      t)))
+-			    (or (not (numberp timeout))
+-				(< count timeout)))))
++    (with-current-buffer bug-comint-buffer
++      (save-excursion
++	(save-restriction
++	  (widen)
++	  (let ((count 0)
++		(str   "/-\\|")
++		(l (length bug-prompt-regexp)))
++	    ;; we mark bug waiting
++	    (setq bug-waiting t)
+ 	    (accept-process-output)
+-	    (setq count (+ 1 count))
+-	    (if (numberp timeout)
++	    (goto-char (point-max))
++	    (while (progn
++		     (goto-char (point-max))
++		     (or (<= (point) l)
++			 (and (save-excursion
++				(backward-char l)
++				(not (re-search-forward bug-prompt-eol-regexp
++							(point-max)
++							t)))
++			      (or (not (numberp timeout))
++				  (< count timeout)))))
++	      (accept-process-output)
++	      (setq count (+ 1 count))
++	      (if (numberp timeout)
++		  (display-message 'no-log
++		    (format "waiting for `%s' [%c] (timeout %d/%S)"
++			    from
++			    (aref str (% count 4))
++			    count
++			    timeout))
+ 		(display-message 'no-log
+-				 (format "waiting for `%s' [%c] (timeout %d/%S)"
+-					 from
+-					 (aref str (% count 4))
+-					 count
+-					 timeout))
+-	      (display-message 'no-log
+-			       (format "waiting for `%s' [%c]"
+-				       from
+-				       (aref str (% count 4)))))
+-	    (sit-for 0.3)
+-	    (redisplay-frame (selected-frame) t))
+-	  ;; we remove the last wait message
+-	  (display-message 'no-log " ")
+-	  ;; bug is now ready
+-	  (setq bug-waiting nil)
+-	  (or (not (numberp timeout))
+-	      (< count timeout)))))))
+-
++		  (format "waiting for `%s' [%c]"
++			  from
++			  (aref str (% count 4)))))
++	      (sit-for 0.3)
++	      (redisplay-frame (selected-frame) t))
++	    ;; we remove the last wait message
++	    (display-message 'no-log " ")
++	    ;; bug is now ready
++	    (setq bug-waiting nil)
++	    (or (not (numberp timeout))
++		(< count timeout))))))))
+--- bmacs/bug/bug-source.el.orig	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/bug/bug-source.el	2018-06-17 15:32:42.049634490 -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-xemacs.el.orig	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/bug/bug-xemacs.el	2018-06-17 15:32:42.049634490 -0600
+@@ -143,7 +143,8 @@ static char *arrow[] = {
+       (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 @@ static char *arrow[] = {
+ ;*    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 @@ static char *arrow[] = {
+ ;*    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/cee/cee-kbdb.el.orig	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/cee/cee-kbdb.el	2018-06-17 15:32:42.049634490 -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/dbg/dbg-args.el.orig	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/dbg/dbg-args.el	2018-06-17 15:32:42.049634490 -0600
+@@ -100,8 +100,7 @@ This is implemented using the DBG `args'
+   (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 @@ This is implemented using the DBG `args'
+ ;*    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 @@ This is implemented using the DBG `args'
+ 					 '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)))))))))))
+ 		
+ ;*---------------------------------------------------------------------*/
+@@ -243,8 +241,7 @@ This is implemented using the DBG `args'
+ (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-breakpoint.el.orig	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/dbg/dbg-breakpoint.el	2018-06-17 15:32:42.050634487 -0600
+@@ -304,8 +304,7 @@ static char *footprint[] = {
+   (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 @@ static char *footprint[] = {
+ 	  (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 @@ static char *footprint[] = {
+ 	    (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	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/dbg/dbg-connect.el	2018-06-17 15:32:42.050634487 -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-display.el.orig	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/dbg/dbg-display.el	2018-06-17 15:32:42.050634487 -0600
+@@ -100,8 +100,7 @@ This is implemented using the DBG `displ
+   (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 @@ This is implemented using the DBG `displ
+ ;*    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 @@ This is implemented using the DBG `displ
+ 					 '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 @@ This is implemented using the DBG `displ
+ (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.el.orig	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/dbg/dbg.el	2018-06-17 15:32:42.050634487 -0600
+@@ -80,7 +80,12 @@ and source-file directory for your debug
+ 	  (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 @@ and source-file directory for your debug
+ 	(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))
+       (beginning-of-line)
+       (if (looking-at comint-prompt-regexp)
+@@ -226,7 +230,7 @@ and source-file directory for your debug
+ 	(dbg-console-log "dbg-send-input" intxt 'font-lock-type-face)
+       (dbg-console-log "dbg-send-input" 'nil 'font-lock-string-face))
+     (comint-send-input)
+-    (mapcar (lambda (hook) (funcall hook intxt)) dbg-send-input-hooks)
++    (mapc (lambda (hook) (funcall hook intxt)) dbg-send-input-hooks)
+     (redisplay-frame)))
+ 
+ ;*---------------------------------------------------------------------*/
+@@ -282,8 +286,7 @@ This is implemented using the DBG `no-ou
+ 	(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))
+@@ -341,7 +344,7 @@ This is implemented using the DBG `no-ou
+   (let ((dbg-mode nil))
+     (setq dbg-mode dbg-mode)
+     (recenter following)
+-    (mapcar (lambda (hook) (funcall hook nil)) dbg-send-input-hooks)
++    (mapc (lambda (hook) (funcall hook nil)) dbg-send-input-hooks)
+     (redisplay-frame)))
+ 
+ ;*---------------------------------------------------------------------*/
+@@ -360,11 +363,10 @@ This is implemented using the DBG `no-ou
+ (defun dbg-comint-ready-p ()
+   (if dbg-waiting
+       nil
+-    (save-excursion
+-      (save-restriction
+-	(widen)
+-	(progn
+-	  (set-buffer dbg-comint-buffer)
++    (with-current-buffer dbg-comint-buffer
++      (save-excursion
++	(save-restriction
++	  (widen)
+ 	  (goto-char (point-max))
+ 	  (let ((bound (point)))
+ 	    (beginning-of-line)
+@@ -385,40 +387,39 @@ This is implemented using the DBG `no-ou
+ (defun dbg-wait-for-comint (from timeout)
+   (if (not dbg-comint-buffer)
+       (ude-error "No debugger running")
+-    (save-excursion
+-      (save-restriction
+-	(widen)
+-	(let ((count 0)
+-	      (str   "/-\\|"))
+-	  (setq str str)
+-	  (set-buffer dbg-comint-buffer)
+-	  ;; we mark dbg waiting
+-	  (setq dbg-waiting t)
+-	  (accept-process-output)
+-	  (while (progn
+-		   (goto-char (point-max))
+-		   (let ((bound (point)))
+-		     (beginning-of-line)
+-		     (and (not (re-search-forward (concat
+-						   comint-prompt-regexp
+-						   "[ \t\n]*")
+-						  bound t))
+-			  (or (not (numberp timeout))
+-			      (< count timeout)))))
+-	    (setq count (+ 1 count))
+-	    '(display-message 'no-log
+-	      (format "waiting for `%s' [%c] (timeout %d/%S)"
+-		      from
+-		      (aref str (% count 4))
+-		      count
+-		      timeout))
+-	    (sit-for 0.1)
+-	    (redisplay-frame (selected-frame) t)
+-	    (set-buffer dbg-comint-buffer))
+-	  ;; we remove the last wait message
+-	  (display-message 'no-log " ")
+-	  ;; dbg is now ready
+-	  (setq dbg-waiting nil))))))
++    (with-current-buffer dbg-comint-buffer
++      (save-excursion
++	(save-restriction
++	  (widen)
++	  (let ((count 0)
++		(str   "/-\\|"))
++	    ;; we mark dbg waiting
++	    (setq dbg-waiting t)
++	    (accept-process-output)
++	    (while (progn
++		     (goto-char (point-max))
++		     (let ((bound (point)))
++		       (beginning-of-line)
++		       (and (not (re-search-forward (concat
++						     comint-prompt-regexp
++						     "[ \t\n]*")
++						    bound t))
++			    (or (not (numberp timeout))
++				(< count timeout)))))
++	      (setq count (+ 1 count))
++	      '(display-message 'no-log
++		(format "waiting for `%s' [%c] (timeout %d/%S)"
++			from
++			(aref str (% count 4))
++			count
++			timeout))
++	      (sit-for 0.1)
++	      (redisplay-frame (selected-frame) t)
++	      (set-buffer dbg-comint-buffer))
++	    ;; we remove the last wait message
++	    (display-message 'no-log " ")
++	    ;; dbg is now ready
++	    (setq dbg-waiting nil)))))))
+ 
+ ;*---------------------------------------------------------------------*/
+ ;*    dbg-clear-window ...                                             */
+@@ -449,8 +450,7 @@ This is implemented using the DBG `no-ou
+ ;*    This function returns the point line number.                     */
+ ;*---------------------------------------------------------------------*/
+ (defun dbg-line-number (buffer pos)
+-  (save-restriction
+-    (set-buffer buffer)
++  (with-current-buffer buffer
+     (let (start)
+       (save-excursion
+ 	(save-restriction
+--- bmacs/dbg/dbg-filter.el.orig	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/dbg/dbg-filter.el	2018-06-17 15:32:42.050634487 -0600
+@@ -30,10 +30,12 @@ It is saved for when this flag is not se
+ (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 @@ It is saved for when this flag is not se
+ 		(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 @@ It is saved for when this flag is not se
+ 		(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-locals.el.orig	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/dbg/dbg-locals.el	2018-06-17 15:32:42.050634487 -0600
+@@ -100,8 +100,7 @@ This is implemented using the DBG `local
+   (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 @@ This is implemented using the DBG `local
+ ;*    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 @@ This is implemented using the DBG `local
+ 					 '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 @@ This is implemented using the DBG `local
+ (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	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/dbg/dbg-mode.el	2018-06-17 15:32:42.051634485 -0600
+@@ -98,10 +98,7 @@ The following command are available:
+   (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-source.el.orig	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/dbg/dbg-source.el	2018-06-17 15:32:42.051634485 -0600
+@@ -152,11 +152,11 @@ static char *arrow[] = {
+ 		(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-stack.el.orig	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/dbg/dbg-stack.el	2018-06-17 15:32:42.051634485 -0600
+@@ -110,8 +110,7 @@ This is implemented using the DBG `stack
+ 	(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 @@ This is implemented using the DBG `stack
+ ;*    Display a new stack in a separate buffer.                        */
+ ;*---------------------------------------------------------------------*/
+ (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 @@ This is implemented using the DBG `stack
+ 					 '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)))))))))))
+ 		
+ ;*---------------------------------------------------------------------*/
+@@ -276,8 +274,7 @@ This is implemented using the DBG `stack
+ (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/Makefile.orig	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/Makefile	2018-06-17 15:35:03.809275972 -0600
+@@ -116,7 +116,7 @@ POPULATION	= Makefile README $(EMACS_SOU
+ #*---------------------------------------------------------------------*/
+ all: $(EMACSBRAND)
+ 
+-emacs22 emacs23 emacs24 emacs25:
++emacs22 emacs23 emacs24 emacs25 emacs26:
+ 	(expr=load-path; \
+           for p in . $(LOADPATH); do \
+              expr="(cons \"../$$p\" (cons \"$$p\" $$expr))"; \
+@@ -181,6 +181,7 @@ install.emacs22: doinstall
+ install.emacs23: doinstall
+ install.emacs24: doinstall
+ install.emacs25: doinstall
++install.emacs26: doinstall
+ install.xemacs: doinstall
+ 
+ install.generic:
+--- bmacs/ude/id-select.el.orig	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/ude/id-select.el	2018-06-17 15:32:42.051634485 -0600
+@@ -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
+ ;;; ************************************************************************
+ 
+@@ -290,7 +356,10 @@ the minibuffer."
+ 	       (if (and (boundp 'transient-mark-mode)
+ 			transient-mark-mode)
+ 		   (setq mark-active t))
+-	       (and (interactive-p) id-select-display-type
++	       (and (if (featurep 'xemacs)
++			(interactive-p)
++		      (called-interactively-p 'interactive))
++		    id-select-display-type
+ 		    (message "%s" id-select-previous))
+ 	       (run-hooks 'id-select-thing-hook)
+ 	       t))))
+@@ -425,7 +494,9 @@ does not have a `>' terminator character
+ 	    ((null tag)
+ 	     (error "(id-select-goto-matching-tag): No <tag> following point"))
+ 	    ((null result)
+-	     (if (interactive-p)
++	     (if (if (featurep 'xemacs)
++		     (interactive-p)
++		   (called-interactively-p 'interactive))
+ 		 (progn
+ 		   (beep)
+ 		   (message "(id-select-goto-matching-tag): No matching tag for %s>"
+@@ -456,7 +527,8 @@ does not have a `>' terminator character
+   "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 +549,7 @@ The character at POS is selected if no o
+      (t (let ((min-region (1+ (- (point-max) (point-min))))
+ 	      (result)
+ 	      region region-size)
+-	  (mapcar
++	  (mapc
+ 	   (function
+ 	    (lambda (sym-func)
+ 	      (setq region
+@@ -1209,71 +1281,5 @@ list, id-select-markup-modes."
+   (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/plugin.el.orig	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/ude/plugin.el	2018-06-17 15:32:42.051634485 -0600
+@@ -371,14 +371,16 @@ process structure hosting the plugin.
+ 			       (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-about.el.orig	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/ude/ude-about.el	2018-06-17 15:32:42.051634485 -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 ...                                         */
+ ;*---------------------------------------------------------------------*/
+ (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/ude-autoload.el.orig	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/ude/ude-autoload.el	2018-06-17 15:32:42.052634482 -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-compile.el.orig	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/ude/ude-compile.el	2018-06-17 15:32:42.052634482 -0600
+@@ -344,8 +344,7 @@ Executed hooks are removed from that lis
+    (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-docline.el.orig	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/ude/ude-docline.el	2018-06-17 15:32:42.052634482 -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))))))
+ 
+ ;*---------------------------------------------------------------------*/
+@@ -140,13 +137,10 @@ This command is designed to be used whet
+ 	(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 @@ This command is designed to be used whet
+ ;*---------------------------------------------------------------------*/
+ (defun ude-fontify-doc-source (buffer)
+   (interactive "Bbuffer: ")
+-  (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-icon.el.orig	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/ude/ude-icon.el	2018-06-17 15:32:42.052634482 -0600
+@@ -19,6 +19,7 @@
+ (require 'ude-custom)
+ 
+ ;;; add to emacs image-load-path the directory containing the toolbar icons
++(defvar image-load-path nil)
+ (add-to-list 'image-load-path (concat bmacs-lispdir 
+ 				      "/" 
+ 				      ude-toolbar-image-directory))
+--- bmacs/ude/ude-ident.el.orig	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/ude/ude-ident.el	2018-06-17 15:32:42.052634482 -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 @@
+ ;*---------------------------------------------------------------------*/
+ (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)))
+ 
+ ;*---------------------------------------------------------------------*/
+@@ -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-makefile.el.orig	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/ude/ude-makefile.el	2018-06-17 15:32:42.052634482 -0600
+@@ -209,14 +209,12 @@
+   (interactive)
+   (let ((default-directory ude-root-directory))
+     (if (and (stringp ude-makefile) (file-exists-p ude-makefile))
+-	(let ((buffer (current-buffer)))
++	(progn
+ 	  (message "Switching to high debugging mode...")
+ 	  (setq ude-compile-mode 'debug)
+ 	  (if (bufferp ude-last-compile-buffer)
+-	      (progn
+-		(set-buffer ude-last-compile-buffer)
+-		(ude-set-compilation-modeline)
+-		(set-buffer buffer)))
++	      (with-current-buffer ude-last-compile-buffer
++		(ude-set-compilation-modeline)))
+ 	  (let* ((cmd (format "%s -o %s -debug"
+ 			      ude-makemake
+ 			      ude-makefile))
+@@ -234,14 +232,12 @@
+   (interactive)
+   (let ((default-directory ude-root-directory))
+     (if (and (stringp ude-makefile) (file-exists-p ude-makefile))
+-	(let ((buffer (current-buffer)))
++	(progn
+ 	  (message "Switching to development mode...")
+ 	  (setq ude-compile-mode 'devel)
+ 	  (if (bufferp ude-last-compile-buffer)
+-	      (progn
+-		(set-buffer ude-last-compile-buffer)
+-		(ude-set-compilation-modeline)
+-		(set-buffer buffer)))
++	      (with-current-buffer ude-last-compile-buffer
++		(ude-set-compilation-modeline)))
+ 	  (let* ((cmd (format "%s -o %s -devel"
+ 			      ude-makemake
+ 			      ude-makefile))
+@@ -259,14 +255,12 @@
+   (interactive)
+   (let ((default-directory ude-root-directory))
+     (if (and (stringp ude-makefile) (file-exists-p ude-makefile))
+-	(let ((buffer (current-buffer)))
++	(progn
+ 	  (message "Switching to final mode...")
+ 	  (setq ude-compile-mode 'final)
+ 	  (if (bufferp ude-last-compile-buffer)
+-	      (progn
+-		(set-buffer ude-last-compile-buffer)
+-		(ude-set-compilation-modeline)
+-		(set-buffer buffer)))
++	      (with-current-buffer ude-last-compile-buffer
++		(ude-set-compilation-modeline)))
+ 	  (let* ((cmd (format "%s -o %s -final"
+ 			      ude-makemake
+ 			      ude-makefile))
+@@ -284,13 +278,11 @@
+   (interactive "SProject name: ")
+   (let ((default-directory ude-root-directory))
+     (if (and (stringp ude-makefile) (file-exists-p ude-makefile))
+-	(let ((buffer (current-buffer)))
++	(progn
+ 	  (message (format "Setting project name to %S..." arg))
+ 	  (if (bufferp ude-last-compile-buffer)
+-	      (progn
+-		(set-buffer ude-last-compile-buffer)
+-		(ude-set-compilation-modeline)
+-		(set-buffer buffer)))
++	      (with-current-buffer ude-last-compile-buffer
++		(ude-set-compilation-modeline)))
+ 	  (let* ((cmd (format "%s -o %s -project %s"
+ 			      ude-makemake
+ 			      ude-makefile
+--- bmacs/ude/ude-repl.el.orig	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/ude/ude-repl.el	2018-06-17 15:32:42.053634480 -0600
+@@ -43,8 +43,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/xemacs-etags.el.orig	2018-02-04 23:59:28.000000000 -0700
++++ bmacs/xemacs-etags.el	2018-06-17 15:32:42.053634480 -0600
+@@ -236,8 +236,7 @@ file the tag was in."
+ 		     ;; 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 @@ file the tag was in."
+ 	      (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 @@ Assumes the tags table is the current bu
+   (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 @@ See documentation of variable `tags-file
+ 	(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 @@ See documentation of variable `tags-file
+ 	      ;; 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 @@ See documentation of variable `tags-file
+ 
+       ;; 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 @@ See documentation of variable `tags-file
+   (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


More information about the arch-commits mailing list