;ELC ;;; Compiled ;;; in Emacs version 26.3 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\302\303\304\"\210\305\306\307\310!\"\210\305\311\312\310!\"\210\305\313\311\"\210\314\313\315\316#\210\317\310\320\311#\321\310\322\323\324$\207" [require ebdb-format autoload calendar-gregorian-from-absolute "calendar" defalias ebdb-formatter-vcard-p eieio-make-class-predicate ebdb-formatter-vcard ebdb-formatter-vcard--eieio-childp eieio-make-child-predicate ebdb-formatter-vcard-child-p make-obsolete "use (cl-typep ... \\='ebdb-formatter-vcard) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal (ebdb-formatter-freeform) ((coding-system :initform 'utf-8-dos) (version-string :type string :allocation :class :documentation "The string to insert for this formatter's\n version.")) (:abstract t :documentation "Base formatter for vCard export.")] 6) #@78 You cannot create a new object of type `ebdb-formatter-vcard'. (fn &rest _) (defalias 'ebdb-formatter-vcard #[128 "\300\301!\207" [error "Class ebdb-formatter-vcard is abstract"] 3 (#$ . 1219)]) (byte-code "\300\301\302\303!\"\210\300\304\305\303!\"\210\300\306\304\"\210\307\306\310\311#\210\312\303\313\304#\314\303\315\316\317$\207" [defalias ebdb-formatter-vcard-30-p eieio-make-class-predicate ebdb-formatter-vcard-30 ebdb-formatter-vcard-30--eieio-childp eieio-make-child-predicate ebdb-formatter-vcard-30-child-p make-obsolete "use (cl-typep ... \\='ebdb-formatter-vcard-30) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal (ebdb-formatter-vcard) ((version-string :initform "3.0")) (:documentation "Formatter for vCard format 3.0.")] 6) #@80 Create a new object of class type `ebdb-formatter-vcard-30'. (fn &rest SLOTS) (defalias 'ebdb-formatter-vcard-30 #[128 "\300\301\302#\207" [apply make-instance ebdb-formatter-vcard-30] 5 (#$ . 2001)]) (byte-code "\300\301\302\303#\300\207" [function-put ebdb-formatter-vcard-30 compiler-macro ebdb-formatter-vcard-30--anon-cmacro] 4) #@26 (fn WHOLE &rest SLOTS) (defalias 'ebdb-formatter-vcard-30--anon-cmacro #[385 "\211@;\204\207\300\301\302@@#@\303@DABB\"\207" [macroexp--warn-and-return format "Obsolete name arg %S to constructor %S" identity] 7 (#$ . 2343)]) (byte-code "\300\301\302\303!\"\210\300\304\305\303!\"\210\300\306\304\"\210\307\306\310\311#\210\312\303\313\304#\314\303\315\316\317$\207" [defalias ebdb-formatter-vcard-40-p eieio-make-class-predicate ebdb-formatter-vcard-40 ebdb-formatter-vcard-40--eieio-childp eieio-make-child-predicate ebdb-formatter-vcard-40-child-p make-obsolete "use (cl-typep ... \\='ebdb-formatter-vcard-40) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal (ebdb-formatter-vcard) ((version-string :initform "4.0")) (:documentation "Formatter for vCard format 4.0.")] 6) #@80 Create a new object of class type `ebdb-formatter-vcard-40'. (fn &rest SLOTS) (defalias 'ebdb-formatter-vcard-40 #[128 "\300\301\302#\207" [apply make-instance ebdb-formatter-vcard-40] 5 (#$ . 3165)]) (byte-code "\300\301\302\303#\300\207" [function-put ebdb-formatter-vcard-40 compiler-macro ebdb-formatter-vcard-40--anon-cmacro] 4) #@26 (fn WHOLE &rest SLOTS) (defalias 'ebdb-formatter-vcard-40--anon-cmacro #[385 "\211@;\204\207\300\301\302@@#@\303@DABB\"\207" [macroexp--warn-and-return format "Obsolete name arg %S to constructor %S" identity] 7 (#$ . 3507)]) (byte-code "\300\301\302\303\304\305%\210\306\307\310\311\312DD\313\304\301\314\315&\210\306\316\310\311\317DD\320\304\301\314\315&\210\306\321\310\311\322DD\323\304\301\314\324&\207" [custom-declare-group ebdb-vcard nil "Customization options for EBDB vCard support." :group ebdb custom-declare-variable ebdb-vcard-default-40-formatter funcall function #[0 "\300\301\302\303\304\305\306\305\307\310\311\305& \207" [make-instance ebdb-formatter-vcard-40 :label "VCard 4.0 (default)" :combine nil :collapse :include (ebdb-field-uuid ebdb-field-timestamp ebdb-field-mail ebdb-field-name ebdb-field-address ebdb-field-url ebdb-field-role ebdb-field-anniversary ebdb-field-relation ebdb-field-phone ebdb-field-notes ebdb-field-tags) :header] 12] "The default formatter for VCard 4.0 exportation." :type ebdb-formatter-vcard ebdb-vcard-default-30-formatter #[0 "\300\301\302\303\304\305\306\305\307\310\311\305& \207" [make-instance ebdb-formatter-vcard-30 :label "VCard 3.0 (default)" :combine nil :collapse :include (ebdb-field-uuid ebdb-field-timestamp ebdb-field-mail ebdb-field-name ebdb-field-address ebdb-field-url ebdb-field-role ebdb-field-anniversary ebdb-field-relation ebdb-field-phone ebdb-field-notes ebdb-field-tags) :header] 12] "The default formatter for VCard 3.0 exportation." ebdb-vcard-label-alist #[0 "\300\207" [(("REV" . ebdb-field-timestamp) ("NOTE" . ebdb-field-notes) ("X-CREATION-DATE" . ebdb-field-creation-date) ("UID" . ebdb-field-uuid) ("EMAIL" . ebdb-field-mail) ("TEL" . ebdb-field-phone) ("RELATED" . ebdb-field-relation) ("CATEGORIES" . ebdb-field-tags) ("BDAY" . ebdb-field-anniversary) ("ANNIVERSARY" . ebdb-field-anniversary) ("URL" . ebdb-field-url) ("ADR" . ebdb-field-address) ("NICKNAME" . ebdb-field-name-complex))] 1] "Correspondences between VCard properties and EBDB field classes.\n\nThis alist is neither exhaustive nor authoritative. It's purpose\nis to simplify property labeling during the export process, and\nto classify properties during import. The import process does\nnot always respect these headings." (repeat (cons string symbol))] 8) #@59 Escape commas, semi-colons and newlines in STR. (fn STR) (defalias 'ebdb-vcard-escape #[257 "\300\301\302\300\303\304##\207" [replace-regexp-in-string "\\([^\\]\\)\\([\n]+\\)" "\\1\\\\n" "\\([^\\]\\)\\([,;]\\)" "\\1\\\\\\2"] 8 (#$ . 5845)]) (put 'ebdb-vcard-escape 'byte-optimizer 'byte-compile-inline-expand) #@68 Unescape escaped commas, semicolons and newlines in STR. (fn STR) (defalias 'ebdb-vcard-unescape #[257 "\300\301\302\300\303\304##\207" [replace-regexp-in-string "\\\\n" "\n" "\\\\\\([,;]\\)" "\\1"] 8 (#$ . 6164)]) (put 'ebdb-vcard-unescape 'byte-optimizer 'byte-compile-inline-expand) #@66 Fold lines in TEXT, which represents a vCard contact. (fn TEXT) (defalias 'ebdb-vcard-fold-lines #[257 "\300\301\"\302\211\203n\211@\303!\304V\203b\303!GV\203O\211\305!\262\302\262\303\260!\304V\203B\211GSHB\262\211\306\307O\262\202&\211B\262\310P\266\202\202\f\211\306\304OB\262\310\304\302OP\262\202\f\211B\262A\266\202\202\210\311\312\237\301#\207" [split-string "\n" nil string-bytes 75 vconcat 0 -1 " " mapconcat identity] 9 (#$ . 6459)]) #@68 Unfold lines in TEXT, which represents a vCard contact. (fn TEXT) (defalias 'ebdb-vcard-unfold-lines #[257 "\300\301\302#\207" [replace-regexp-in-string "\n[ ]" ""] 5 (#$ . 6944)]) (byte-code "\300\301\302\303\302\304%\210\300\301\302\305\302\306%\210\300\307\302\310\302\311%\210\300\312\302\313\302\314%\210\300\315\302\316\302\317%\210\300\315\320\321\322\323%\210\300\315\324\325\322\326%\210\300\327\302\330\302\331%\210\300\332\302\333\302\334%\210\300\327\302\335\302\336%\210\300\327\302\337\302\340%\210\300\327\302\341\302\342%\210\300\332\302\343\322\344%\210\300\332\302\345\322\346%\210\300\332\302\347\322\350%\210\300\327\302\351\302\352%\210\300\327\302\353\302\354%\210\300\327\302\355\302\356%\210\300\332\302\357\302\360%\210\300\327\302\361\302\362%\210\363\364!\207" [cl-generic-define-method ebdb-fmt-process-fields nil ((_f ebdb-formatter-vcard) (_record ebdb-record) field-list) #[771 "\207" [] 4 "\n\n(fn F RECORD FIELD-LIST)"] ((fmt ebdb-formatter-vcard) (record ebdb-record-person) field-list) #[771 "\301\211\211\203\317\211@\302\303\"\203\303\211\304\305\"\204\277\306\304\307\"\310\"\262\311\304\312\"\313!>\2046\314\315\316D\"\210\211\317H\262BB\262\320\321\304\312\"\313!>\204V\314\315\316D\"\210\211\317H\262\"\304\322\"BB\262\304\323\"\204s\304\324\"\203\277\304\323\"\304\324\"B\211\203\276\211@\320\325\326\f\327$\320\330\304\f\312\"\313!>\204\242\314\315\316D\"\210\211\317H\262\"#\331 \327 $BB\262A\266\202\202|\210\210\202\310\211B\262A\266\202\202\210\207" [cl-struct-ebdb-record-cache-tags nil object-of-class-p ebdb-field-role slot-value defunct ebdb-gethash org-uuid uuid "ORG" cache type-of signal wrong-type-argument ebdb-record-cache 1 format "TITLE;TYPE=\"%s\"" label mail fields "%s;%s" ebdb-fmt-field-label normal "TYPE=\"%s\"" ebdb-fmt-field] 20 "Process fields in FIELD-LIST.\n\nAll this does is split role instances into multiple fields.\n\n(fn FMT RECORD FIELD-LIST)"] ebdb-fmt-record ((f ebdb-formatter-vcard) (r ebdb-record)) #[514 "\300\301\"#\302\211\303\304\"C\262\305\306\307\310\311\312\n\n\"\313\"\314\315%\"\262\316\317\303\320\"\"\321#\322#\323R\207" [ebdb-fmt-process-fields ebdb-fmt-collect-fields nil slot-value name mapcar make-byte-code 257 "\211:\203\207\302\300\303\301$\304\300\303\301$B\207" vconcat vector [ebdb-fmt-field-label normal ebdb-fmt-field] 7 "\n\n(fn FLD)" format "BEGIN:VCARD\nVERSION:%s\n" version-string ebdb-fmt-record-header ebdb-fmt-record-body "\nEND:VCARD\n"] 13 "Format a single record R in VCARD format.\n\n(fn F R)"] ebdb-fmt-record-header ((f ebdb-formatter-vcard) (r ebdb-record) (fields list)) #[771 "\211@\301\302\303!\"\301\304\305\306\"\307!>\204\310\311\312D\"\210\211\313H\262\314\315\n$#P\207" [cl-struct-ebdb-record-cache-tags format "FN:%s\n" ebdb-string "N;SORT-AS=\"%s\":%s\n" slot-value cache type-of signal wrong-type-argument ebdb-record-cache 6 ebdb-fmt-field normal] 13 "Format the header of a VCARD record.\n\nVCARDs don't really have the concept of a \"header\", so this\nmethod is just responsible for formatting the record name.\n\n(fn F R FIELDS)"] ebdb-fmt-record-body ((_f ebdb-formatter-vcard) (_r ebdb-record) (fields list)) #[771 "\300\301\302#\207" [mapconcat #[257 "\300\301@A#\207" [format "%s:%s"] 5 "\n\n(fn F)"] "\n"] 7 "\n\n(fn F R FIELDS)"] (:around) ((_f ebdb-formatter-vcard-40) (_r ebdb-record-person) (_fields list)) t #[1028 " \211\300P\207" ["\nKIND:individual"] 7 "\n\n(fn CL--CNM F R FIELDS)"] (:around) ((_f ebdb-formatter-vcard-40) (_r ebdb-record-organization) (_fields list)) #[1028 " \211\300P\207" ["\nKIND:org"] 7 "\n\n(fn CL--CNM F R FIELDS)"] ebdb-fmt-field ((_f ebdb-formatter-vcard) (field ebdb-field) _style _record) #[1028 "\300!\301\302\303\301\304\305##\207" [ebdb-string replace-regexp-in-string #2="\\([^\\]\\)\\([\n]+\\)" #3="\\1\\\\n" #4="\\([^\\]\\)\\([,;]\\)" #5="\\1\\\\\\2"] 12 "\n\n(fn F FIELD STYLE RECORD)"] ebdb-fmt-field-label ((_f ebdb-formatter-vcard) (field ebdb-field) _style _record) #[1028 "\301\302\303!!\"@\207" [ebdb-vcard-label-alist rassoc eieio-class-name eieio-object-class] 8 "\n\n(fn F FIELD STYLE RECORD)"] ((_f ebdb-formatter-vcard) (mail ebdb-field-mail) _style _record) #[1028 "\300\301\"\207" [slot-value mail] 7 "\n\n(fn F MAIL STYLE RECORD)"] ((_f ebdb-formatter-vcard) (ts ebdb-field-timestamp) _style _record) #[1028 "\300\301\302\303\"\304#\207" [format-time-string "%Y%m%dT%H%M%S%z" slot-value timestamp t] 9 "\n\n(fn F TS STYLE RECORD)"] ((_f ebdb-formatter-vcard) (name ebdb-field-name-complex) _style _record) #[1028 "\300\301\302\303\"\206 \304\302\305\"\205\306\307\302\305\"\310#\302\311\"\206#\304\302\312\"\206,\304%\207" [format "%s;%s;%s;%s" slot-value surname #1="" given-names mapconcat identity "," prefix suffix] 13 "\n\n(fn F NAME STYLE RECORD)"] ((_f ebdb-formatter-vcard) (_field ebdb-field-uuid) _style _record) #[1285 " \300P\207" [":urn:uuid"] 7 "\n\n(fn CL--CNM F FIELD STYLE RECORD)"] ((_f ebdb-formatter-vcard) (mail ebdb-field-mail) _style _record) #[1285 " \300\301\302\"\303\"\203\304\202.\300\301\302\"\305\"\203\306\202.\300\301\302\"\307\"\203-\310\202.\311P\207" [memql slot-value priority 'primary ";PREF=1" 'normal ";PREF=10" 'defunct ";PREF=100" #1#] 11 "\n\n(fn CL--CNM F MAIL STYLE RECORD)"] ((_f ebdb-formatter-vcard) (field ebdb-field-labeled) _style _record) #[1285 " \300\301\"\211\203\302\303\304\305\303\306\307##\262Q\202\207" [slot-value label ";TYPE=" replace-regexp-in-string #2# #3# #4# #5#] 17 "\n\n(fn CL--CNM F FIELD STYLE RECORD)"] ((_f ebdb-formatter-vcard) (addr ebdb-field-address) _style _record) #[1028 "\300\301\302\303\304\"\305#\306\307\303\310\"\206\311\303\312\"\206\311\303\313\"\206&\311\303\314\"\206/\311%Q\207" [";;" mapconcat ebdb-vcard-escape slot-value streets "," format ";%s;%s;%s;%s" locality #1# region postcode country] 15 "\n\n(fn F ADDR STYLE RECORD)"] ((_f ebdb-formatter-vcard) (rel ebdb-field-relation) _style _record) #[1028 "\300\301\302\"P\207" ["urn:uuid:" slot-value rel-uuid] 8 "\n\n(fn F REL STYLE RECORD)"] ((_f ebdb-formatter-vcard) (tags ebdb-field-tags) _style _record) #[1028 "\300\301\302\303\"\"\207" [ebdb-concat "," slot-value tags] 9 "\n\n(fn F TAGS STYLE RECORD)"] ((_f ebdb-formatter-vcard) (ann ebdb-field-anniversary) _style _record) #[1028 "\300\301\"\211\302\230\203\303\202\304P\211\305\306\300\307\"\"P\207" [slot-value label "birthday" "BDAY" "ANNIVERSARY;TYPE=" format ";CALSCALE=%s" calendar] 12 "\n\n(fn F ANN STYLE RECORD)"] ((_f ebdb-formatter-vcard) (ann ebdb-field-anniversary) _style _record) #[1028 "\300\301\"\211@A\211@A\211@A\250\203\"\302\303$\202'\302\304#\266\203\207" [slot-value date format "%d%02d%02d" "%02d%02d"] 19 "\n\n(fn F ANN STYLE RECORD)"] provide ebdb-vcard] 6)