contrib/lisp/org-contacts.el: Allow the user to customize interactively the vcard export
* contrib/lisp/org-contacts.el (org-contacts-export-as-vcard): Wrap `org-contacts-export-as-vcard-internal' to prompt for the parameters when called interactively. (org-contacts-export-as-vcard-internal): The old function `org-contacts-export-as-vcard'. Thanks to Esben Stien for the suggestion.
This commit is contained in:
parent
75021a1fc2
commit
c32dbab114
1 changed files with 29 additions and 1 deletions
|
@ -1016,11 +1016,39 @@ to do our best."
|
||||||
"END:VCARD\n\n")))
|
"END:VCARD\n\n")))
|
||||||
|
|
||||||
(defun org-contacts-export-as-vcard (&optional name file to-buffer)
|
(defun org-contacts-export-as-vcard (&optional name file to-buffer)
|
||||||
|
"Export org contacts to V-Card 3.0.
|
||||||
|
|
||||||
|
By default, all contacts are exported to `org-contacts-vcard-file'.
|
||||||
|
|
||||||
|
When NAME is \\[universal-argument], prompts for a contact name.
|
||||||
|
|
||||||
|
When NAME is \\[universal-argument] \\[universal-argument],
|
||||||
|
prompts for a contact name and a file name where to export.
|
||||||
|
|
||||||
|
When NAME is \\[universal-argument] \\[universal-argument]
|
||||||
|
\\[universal-argument], prompts for a contact name and a buffer where to export.
|
||||||
|
|
||||||
|
If the function is not called interactively, all parameters are
|
||||||
|
passed to `org-contacts-export-as-vcard-internal'."
|
||||||
|
(interactive "P")
|
||||||
|
(when (called-interactively-p 'any)
|
||||||
|
(cl-psetf name
|
||||||
|
(when name
|
||||||
|
(read-string "Contact name: "
|
||||||
|
(first (org-contacts-at-point))))
|
||||||
|
file
|
||||||
|
(when (equal name '(16))
|
||||||
|
(read-file-name "File: " nil org-contacts-vcard-file))
|
||||||
|
to-buffer
|
||||||
|
(when (equal name '(64))
|
||||||
|
(read-buffer "Buffer: "))))
|
||||||
|
(org-contacts-export-as-vcard-internal name file to-buffer))
|
||||||
|
|
||||||
|
(defun org-contacts-export-as-vcard-internal (&optional name file to-buffer)
|
||||||
"Export all contacts matching NAME as VCard 3.0.
|
"Export all contacts matching NAME as VCard 3.0.
|
||||||
If TO-BUFFER is nil, the content is written to FILE or
|
If TO-BUFFER is nil, the content is written to FILE or
|
||||||
`org-contacts-vcard-file'. If TO-BUFFER is non-nil, the buffer
|
`org-contacts-vcard-file'. If TO-BUFFER is non-nil, the buffer
|
||||||
is created and the VCard is written into that buffer."
|
is created and the VCard is written into that buffer."
|
||||||
(interactive) ; TODO ask for name?
|
|
||||||
(let* ((filename (or file org-contacts-vcard-file))
|
(let* ((filename (or file org-contacts-vcard-file))
|
||||||
(buffer (if to-buffer
|
(buffer (if to-buffer
|
||||||
(get-buffer-create to-buffer)
|
(get-buffer-create to-buffer)
|
||||||
|
|
Loading…
Reference in a new issue