Function: secrets-expand-item
secrets-expand-item is a byte-compiled function defined in
secrets.el.gz.
Signature
(secrets-expand-item WIDGET)
Documentation
Expand password and attributes of item shown as WIDGET.
Source Code
;; Defined in /usr/src/emacs/lisp/net/secrets.el.gz
(defun secrets-expand-item (widget)
"Expand password and attributes of item shown as WIDGET."
(let* ((coll (widget-get widget :collection))
(item (widget-get widget :item))
(attributes (secrets-get-attributes coll item))
;; padding is needed to format attribute names.
(padding
(apply
#'max
(cons
(1+ (length "password"))
(mapcar
;; Attribute names have a leading ":", which will be suppressed.
(lambda (attribute) (length (symbol-name (car attribute))))
attributes)))))
(cons
;; The password widget.
`(editable-field :tag "password"
:secret ?*
:value ,(secrets-get-secret coll item)
:sample-face widget-button-pressed
;; We specify :size in order to limit the field.
:size 0
:format ,(concat
"%{%t%}:"
(make-string (- padding (length "password")) ? )
"%v\n"))
(mapcar
(lambda (attribute)
(let ((name (substring (symbol-name (car attribute)) 1))
(value (cdr attribute)))
;; The attribute widget.
`(editable-field :tag ,name
:value ,value
:sample-face widget-documentation
;; We specify :size in order to limit the field.
:size 0
:format ,(concat
"%{%t%}:"
(make-string (- padding (length name)) ? )
"%v\n"))))
attributes))))