changeset 103137:61c93763581b

(widget-specify-field, widget-field-value-get, character): Revert 2009-03-24 change, since it causes a more serious problem than the one it solves. (Closes Bug#3136, reopens Bug#2689.)
author Glenn Morris <rgm@gnu.org>
date Sat, 02 May 2009 23:44:00 +0000
parents 5a5e07d71f3c
children 55823cc572a6
files lisp/ChangeLog lisp/wid-edit.el
diffstat 2 files changed, 11 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Sat May 02 20:16:55 2009 +0000
+++ b/lisp/ChangeLog	Sat May 02 23:44:00 2009 +0000
@@ -1,3 +1,9 @@
+2009-05-02  Glenn Morris  <rgm@gnu.org>
+
+	* wid-edit.el (widget-specify-field, widget-field-value-get, character):
+	Revert 2009-03-24 change, since it causes a more serious problem than
+	the one it solves.  (Closes Bug#3136, reopens Bug#2689.)
+
 2009-05-02  Martin Rudalics  <rudalics@gmx.at>
 
 	* frame.el (pop-up-frame-function): Remove choice nil since it
@@ -253,7 +259,7 @@
 
 2009-04-09  Richard M Stallman  <rms@gnu.org>
 
-	* mail/rmailkwd.el (rmail-set-label): Warn if multipe labels spec'd.
+	* mail/rmailkwd.el (rmail-set-label): Warn if multiple labels spec'd.
 	(rmail-kill-label, rmail-add-label): Doc fixes.
 
 	* mail/rmailout.el (rmail-output): If file is visited,
--- a/lisp/wid-edit.el	Sat May 02 20:16:55 2009 +0000
+++ b/lisp/wid-edit.el	Sat May 02 23:44:00 2009 +0000
@@ -342,16 +342,12 @@
 	 (or (not widget-field-add-space) (widget-get widget :size))))
     (if (functionp help-echo)
       (setq help-echo 'widget-mouse-help))
-    (when (and (> to (1+ from))
-	       (= (char-before to) ?\n))
+    (when (= (char-before to) ?\n)
       ;; When the last character in the field is a newline, we want to
       ;; give it a `field' char-property of `boundary', which helps the
       ;; C-n/C-p act more naturally when entering/leaving the field.  We
-      ;; do this by making a small secondary overlay to contain just that
+     ;; do this by making a small secondary overlay to contain just that
       ;; one character.
-      ;; We DON'T do this if the field just consists of a newline, eg
-      ;; when specifying a character, since it breaks things (below
-      ;; does 1- to, which results in to = from).  Bug#2689.
       (let ((overlay (make-overlay (1- to) to nil t nil)))
 	(overlay-put overlay 'field 'boundary)
         ;; We need the real field for tabbing.
@@ -1949,9 +1945,7 @@
 	  (set-buffer buffer)
 	  (while (and size
 		      (not (zerop size))
-		      ;; Bug#2689.  Don't allow this loop to reduce a
-		      ;; character field to zero size if it contains a space.
-		      (> to (1+ from))
+		      (> to from)
 		      (eq (char-after (1- to)) ?\s))
 	    (setq to (1- to)))
 	  (let ((result (buffer-substring-no-properties from to)))
@@ -3456,8 +3450,7 @@
   :value 0
   :size 1
   :format "%{%t%}: %v\n"
-  ;; `.' does not match newline, but newline is a valid character.
-  :valid-regexp "\\`\\(.\\|\n\\)\\'"
+  :valid-regexp "\\`.\\'"
   :error "This field should contain a single character"
   :value-to-internal (lambda (widget value)
 		       (if (stringp value)