summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorChong Yidong <cyd@gnu.org>2012-02-05 23:33:30 +0800
committerChong Yidong <cyd@gnu.org>2012-02-05 23:33:30 +0800
commitaa4589a7cfb435c704549855b1f19e335bcf3b20 (patch)
tree40d2bbd3e9e53bec54b753ace5eaa6cdc507ac90 /lisp
parente1161b06fc12499f9990fc23a915d75bb8866cd2 (diff)
downloademacs-aa4589a7cfb435c704549855b1f19e335bcf3b20.tar.gz
Fix how the `character' custom type handles space chars.
* lisp/wid-edit.el (widget-field-value-get): New optional arg to suppress trailing whitespace truncation. (character): Use it. Fixes: debbugs:2689
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog6
-rw-r--r--lisp/wid-edit.el11
2 files changed, 14 insertions, 3 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 6a31a20f947..93dd50b5ecb 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,9 @@
+2012-02-05 Chong Yidong <cyd@gnu.org>
+
+ * wid-edit.el (widget-field-value-get): New optional arg to
+ suppress trailing whitespace truncation.
+ (character): Use it (Bug#2689).
+
2012-02-05 Andreas Schwab <schwab@linux-m68k.org>
* progmodes/gud.el (gud-pv): Use pv instead of pv1.
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index 27922327f44..61bb4db558c 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -1987,10 +1987,14 @@ the earlier input."
(when (overlayp overlay)
(delete-overlay overlay))))
-(defun widget-field-value-get (widget)
- "Return current text in editing field."
+(defun widget-field-value-get (widget &optional no-truncate)
+ "Return current text in editing field.
+Normally, trailing spaces within the editing field are truncated.
+But if NO-TRUNCATE is non-nil, include them."
(let ((from (widget-field-start widget))
- (to (widget-field-text-end widget))
+ (to (if no-truncate
+ (widget-field-end widget)
+ (widget-field-text-end widget)))
(buffer (widget-field-buffer widget))
(secret (widget-get widget :secret))
(old (current-buffer)))
@@ -3407,6 +3411,7 @@ To use this type, you must define :match or :match-alternatives."
:format "%{%t%}: %v\n"
:valid-regexp "\\`.\\'"
:error "This field should contain a single character"
+ :value-get (lambda (w) (widget-field-value-get w t))
:value-to-internal (lambda (_widget value)
(if (stringp value)
value