diff options
author | Chong Yidong <cyd@gnu.org> | 2012-02-05 23:33:30 +0800 |
---|---|---|
committer | Chong Yidong <cyd@gnu.org> | 2012-02-05 23:33:30 +0800 |
commit | aa4589a7cfb435c704549855b1f19e335bcf3b20 (patch) | |
tree | 40d2bbd3e9e53bec54b753ace5eaa6cdc507ac90 /lisp/wid-edit.el | |
parent | e1161b06fc12499f9990fc23a915d75bb8866cd2 (diff) | |
download | emacs-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/wid-edit.el')
-rw-r--r-- | lisp/wid-edit.el | 11 |
1 files changed, 8 insertions, 3 deletions
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 |