[m-dev.] diff: fix Emacs mdb support

Fergus Henderson fjh at cs.mu.OZ.AU
Tue Dec 5 18:06:48 AEDT 2000

Estimated hours taken: 2

	Fix to work with Emacs 20.4.1 on Linux.
	There were several problems:
	(1) The gud-redirect-io stuff was broken, since it relies on ttys,
	    and apparently Emacs now just uses pipes rather than ttys.
	    For now I've just disabled that by setting gud-redirect-io
	    to false (nil).
	(2) There were some bugs in the code for the case where gud-redirect-io
	    was false (nil):
	    - I'd accidentally omitted the `progn' around the body of an
	      if-then-else, and thus accidentally written `if (...) A else B'
	      when I had intended to write `if (...) { A; B; }'.
	    - One part of the code was assuming that the gud-prog-buffer
	      variable was set, but this was only true for the case where
	      gud-redirect-io was true (t).

Workspace: /home/pgrad/fjh/ws/hg
Index: scripts/gud.el
RCS file: /home/mercury1/repository/mercury/scripts/gud.el,v
retrieving revision 1.6
diff -u -d -r1.6 gud.el
--- scripts/gud.el	2000/01/15 07:08:48	1.6
+++ scripts/gud.el	2000/12/05 07:03:37
@@ -1374,17 +1374,22 @@
   (setq gud-menu-name "MDB")
   (setq gud-buffer-name-prefix "mdb")
   (setq gud-show-commands t)
-  (setq gud-redirect-io t)
+  ;; Setting gud-redirect-io is broken in recent versions of
+  ;; GNU Emacs (e.g. 20.4.1), since Emacs apparently now uses
+  ;; pipes rather than ttys.  So we don't enable this by
+  ;; default anymore.
+  ;; (setq gud-redirect-io t)
   (gud-common-init command-line 'gud-mdb-massage-args
 		   'gud-mdb-marker-filter 'gud-mdb-find-file)
-  (save-excursion
-    (set-buffer gud-prog-buffer)
-    (display-buffer gud-prog-buffer)
-    (gud-mdb-add-menu-entries))
+  (if gud-prog-buffer
+      (save-excursion
+        (set-buffer gud-prog-buffer)
+        (display-buffer gud-prog-buffer)
+        (gud-mdb-add-menu-entries)))
   (setq comint-prompt-regexp "^mdb> ")
   (setq paragraph-start comint-prompt-regexp)
@@ -1593,8 +1598,9 @@
     (apply 'make-comint prog-buf-name program nil
 	   (funcall massage-args file args))
     (if gud-redirect-io
-	(setq gud-prog-buffer (concat "*" prog-buf-name "*"))
-	(set-buffer debugger-buf)))
+        (progn
+	  (setq gud-prog-buffer (concat "*" prog-buf-name "*"))
+	  (set-buffer debugger-buf))))
   ;; Since comint clobbered the mode, we don't set it until now.

Fergus Henderson <fjh at cs.mu.oz.au>  |  "I have always known that the pursuit
                                    |  of excellence is a lethal habit"
WWW: <http://www.cs.mu.oz.au/~fjh>  |     -- the last words of T. S. Garp.
mercury-developers mailing list
Post messages to:       mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions:          mercury-developers-request at cs.mu.oz.au

More information about the developers mailing list