Package: emacs21-el
Version: 21.4a-6
Severity: normal
Tags: patch

I've found a bug in xscheme.el I believe is due to changed behaviour
of the minibuffer in Emacs 21.  Steps to replicate:

  (require 'xscheme)

  M-x run-scheme

In *scheme* buffer:

  (restart) <C-x C-e>

In minibuffer:

  1 <RET>

I took the fix, comment and all, from 

http://arch.debian.org/cgi-bin/archzoom.cgi/[EMAIL 
PROTECTED]/vm--upstream--0.1--base-0/vm-minibuf.el?download

which I happened upon when googling the problem.

-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'stable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.17-1-686
Locale: LANG=C, LC_CTYPE=sv_SE (charmap=ISO-8859-1)

Versions of packages emacs21-el depends on:
ii  emacs21-common                21.4a-6    The GNU Emacs editor's shared, arc

emacs21-el recommends no packages.

-- no debconf information

===File /tmp/xscheme.patch==================================
--- /usr/share/emacs/21.4/lisp/xscheme.el       2000-11-14 15:34:13.000000000 
+0100
+++ xscheme.el  2006-06-28 15:48:26.000000000 +0200
@@ -869,9 +869,19 @@
 
 (defun xscheme-prompt-for-expression-exit ()
   (interactive)
-  (if (eq (xscheme-region-expression-p (point-min) (point-max)) 'one)
-      (exit-minibuffer)
-      (error "input must be a single, complete expression")))
+  (let (
+       ;; In Emacs 21, during a minibuffer read the minibuffer
+       ;; contains the prompt as buffer text and that text is
+       ;; read only.  So we can no longer assume that (point-min)
+       ;; is where the user-entered text starts and we must avoid
+       ;; modifying that prompt text.  The value we want instead
+       ;; of (point-min) is (minibuffer-prompt-end).
+       (point-min (if (fboundp 'minibuffer-prompt-end)
+                      (minibuffer-prompt-end)
+                    (point-min))))
+    (if (eq (xscheme-region-expression-p point-min (point-max)) 'one)
+        (exit-minibuffer)
+      (error "input must be a single, complete expression"))))
 
 (defun xscheme-region-expression-p (start end)
   (save-excursion
============================================================


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to