Add ability to add label to file

* dispass.el (dispass-labels-mode-map): Add direct keybinding for
  `dispass-add-label' so it is not required to always call
  `dispass-create'.

  (dispass-create): Call `dispass-add-label' in order to automatically
  insert newly created labels.

  (dispass-add-label): Adds a new label definition at the end of
  `dispass-file' and when `major-mode' is `dispass-labels-mode'
  reverts the buffer to show the changes.
This commit is contained in:
Tom Willemsen 2012-07-06 00:30:15 +02:00
parent b1e4dfbaab
commit 198a920f7b

View file

@ -120,6 +120,7 @@
(let ((map (make-sparse-keymap)))
(set-keymap-parent map tabulated-list-mode-map)
(define-key map "c" 'dispass-create)
(define-key map "a" 'dispass-add-label)
map))
(defun dispass-process-sentinel (proc status)
@ -182,7 +183,8 @@ an eye out for LABEL."
(interactive "MLabel: \nP")
"Create a new password for LABEL."
(let ((length (or length dispass-default-length)))
(dispass-start-process label t length)))
(dispass-start-process label t length)
(dispass-add-label label length "dispass1")))
;;;###autoload
(defun dispass (label &optional length)
@ -192,6 +194,15 @@ an eye out for LABEL."
(dispass-start-process label nil length)))
;; Labels management
;;;###autoload
(defun dispass-add-label (label length hashtype)
(interactive "MLabel: \nnLength: \nMHash: ")
(with-temp-buffer
(insert (format "%s length=%d hash=%s\n" label length hashtype))
(append-to-file (point-min) (point-max) dispass-file))
(when (eq major-mode 'dispass-labels-mode)
(revert-buffer)))
(defun dispass-from-button (button)
"Call dispass with information from BUTTON."
(dispass (button-get button 'dispass-label)