Fix xscheme-prompt-for-expression-exit with patch from debian
authorChris Hanson <org/chris-hanson/cph>
Thu, 31 Jan 2008 02:18:57 +0000 (02:18 +0000)
committerChris Hanson <org/chris-hanson/cph>
Thu, 31 Jan 2008 02:18:57 +0000 (02:18 +0000)
Bug#375858.

etc/xscheme.el

index 97ff9ce73bbf28bedbbdecb61d3cceec58ca847e..d4e41dd6a0b485ba395221b751f600b7c4c5242f 100644 (file)
@@ -1216,9 +1216,19 @@ the remaining input.")
 
 (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