Mercurial > emacs
changeset 22422:1eba71735142
(widget-specify-secret): New function.
(widget-after-change): Use it.
(widget-specify-field): Use it.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Wed, 10 Jun 1998 05:08:04 +0000 |
parents | b23a720f3b4f |
children | 76aa8f3934bf |
files | lisp/wid-edit.el |
diffstat | 1 files changed, 22 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/wid-edit.el Wed Jun 10 04:19:36 1998 +0000 +++ b/lisp/wid-edit.el Wed Jun 10 05:08:04 1998 +0000 @@ -339,7 +339,26 @@ (overlay-put overlay 'keymap map) (overlay-put overlay 'face face) (overlay-put overlay 'balloon-help help-echo) - (overlay-put overlay 'help-echo help-echo))) + (overlay-put overlay 'help-echo help-echo)) + (widget-specify-secret widget)) + +(defun widget-specify-secret (field) + "Replace text in FIELD with value of `:secret', if non-nil." + (let ((secret (widget-get field :secret)) + (size (widget-get field :size))) + (when secret + (let ((begin (widget-field-start field)) + (end (widget-field-end field))) + (when size + (while (and (> end begin) + (eq (char-after (1- end)) ?\ )) + (setq end (1- end)))) + (while (< begin end) + (let ((old (char-after begin))) + (unless (eq old secret) + (subst-char-in-region begin (1+ begin) old secret) + (put-text-property begin (1+ begin) 'secret old)) + (setq begin (1+ begin)))))))) (defun widget-specify-button (widget from to) "Specify button for WIDGET between FROM and TO." @@ -1236,8 +1255,7 @@ (when field (unless (eq field other) (debug "Change in different fields")) - (let ((size (widget-get field :size)) - (secret (widget-get field :secret))) + (let ((size (widget-get field :size))) (when size (let ((begin (widget-field-start field)) (end (widget-field-end field))) @@ -1259,19 +1277,7 @@ (while (and (eq (preceding-char) ?\ ) (> (point) begin)) (delete-backward-char 1))))))) - (when secret - (let ((begin (widget-field-start field)) - (end (widget-field-end field))) - (when size - (while (and (> end begin) - (eq (char-after (1- end)) ?\ )) - (setq end (1- end)))) - (while (< begin end) - (let ((old (char-after begin))) - (unless (eq old secret) - (subst-char-in-region begin (1+ begin) old secret) - (put-text-property begin (1+ begin) 'secret old)) - (setq begin (1+ begin))))))) + (widget-specify-secret field)) (widget-apply field :notify field))) (error (debug "After Change"))))