;ELC   
;;; Compiled
;;; in Emacs version 29.4
;;; with all optimizations.



(byte-code "\300\301\302\303\304\305\306\307\310\311\310\312&\210\313\314\315\316\317DD\320\321\322%\207" [custom-declare-group eudc nil "Emacs Unified Directory Client." :version "21.1" :link (info-link "(eudc)") :group mail comm custom-declare-variable eudc-server funcall function #[0 "\300\207" [nil] 1 ""] "The name or IP address of the directory server.\nThis variable is deprecated as of Emacs 29.1.  Please add an\nentry to `eudc-server-hotlist' instead of setting `eudc-server'.\n\nA port number may be specified by appending a colon and a\nnumber to the name of the server.  Use `localhost' if the directory\nserver resides on your computer (BBDB backend).\n\nTo specify multiple servers, customize `eudc-server-hotlist'\ninstead." :type (choice (string :tag "Server") (const :tag "None" nil))] 12)
(defvar eudc-known-protocols '(bbdb ldap ecomplete mailabbrev))
(byte-code "\301\302\303\304\305DD\306\307\310\311\312\313\307\314\315\316\307\317\320\317\321\322\323\"\324\"BBBBB\257D\325\326&	\207" [eudc-known-protocols custom-declare-variable eudc-server-hotlist funcall function #[0 "\300\207" [nil] 1 ""] "Directory servers to query.\nThis is an alist of the form (SERVER . PROTOCOL).  SERVER is the\nhost name or URI of the server, PROTOCOL is a symbol representing\nthe EUDC backend with which to access the server.\n\nThe BBDB backend ignores SERVER; `localhost' can be used as a\nplaceholder string." :tag "Directory Servers to Query" :type repeat cons "Directory Server" (string :tag "Server Host Name or URI") choice "Protocol" :menu-tag append mapcar #[257 "\300\301\302!F\207" [const :tag symbol-name] 5 "\n\n(fn S)"] ((const :tag "None" nil)) :version "25.1"] 21)#@136 Protocols currently supported by EUDC.
This variable is updated when protocol-specific libraries
are loaded, *do not change manually*.
(defvar eudc-supported-protocols nil (#$ . 1776))
(byte-code "\301\302\303\304\305DD\306\307\310\311\312\313\314\315\"\316\"BBB%\210\301\317\303\304\320DD\321\307\322%\210\301\323\303\304\324DD\325\307\326%\210\301\327\303\304\330DD\331\307\332%\210\301\333\303\304\334DD\335\307\336%\210\301\337\303\304\340DD\341\342\343\307\344\345\346&	\210\347\350\351\352#\210\353\211\203\201 \211@\350N\203z \351N\204z \354\351\350N#\210A\266\202\202` \210\355\350\351\356#\210\301\351\303\304\357DD\360\307\322\345\346&\210\301\361\303\304\362DD\363\307\364\345\356&\210\301\365\303\304\366DD\367\307\370%\210\301\371\303\304\372DD\373\342\374\307\375&\210\301\376\303\304\377DD\201@ \342\201A \307\201B &\210\301\201C \303\304\201D DD\201E \342\201F \307\201G &\210\301\201H \303\304\201I DD\201J \307\322%\210\301\201K \303\304\201L DD\201M \342\201N \307\201O &\210\301\201P \303\304\201Q DD\201R \342\201S \307\201T &\210\301\201U \303\304\201V DD\201W \307\322\345\356&\210\301\201X \303\304\201Y DD\201Z \307\201[ \345\346&\210\301\201\\ \303\304\201] DD\201^ \307\201_ %\210\201` \201a \352\201b \201c \201d %\207" [eudc-known-protocols custom-declare-variable eudc-protocol funcall function #[0 "\300\207" [nil] 1 #1=""] "The directory protocol to use to query the server.\nSupported protocols are specified by `eudc-supported-protocols'." :type choice :menu-tag "Protocol" append mapcar #[257 "\300\301\302!F\207" [const :tag symbol-name] 5 "\n\n(fn S)"] ((const :tag "None" nil)) eudc-strict-return-matches #[0 "\300\207" [t] 1 #1#] "Ignore or allow entries not containing all requested return attributes.\nIf non-nil, such entries are ignored." boolean eudc-default-return-attributes #[0 "\300\207" [nil] 1 #1#] "A list of default attributes to extract from directory entries.\nIf set to the symbol `all', return all attributes.\nA value of nil means return the default attributes as configured in the\nserver." (choice :menu-tag "Return Attributes" (const :menu-tag "Server defaults (nil)" nil) (const :menu-tag "All" all) (repeat :menu-tag "Attribute list" :tag "Attribute name" :value (nil) (symbol :tag "Attribute name"))) eudc-multiple-match-handling-method #[0 "\300\207" [select] 1 #1#] "What to do when multiple entries match an inline expansion query.\nPossible values are:\n`first' (equivalent to nil) which means keep the first match only,\n`select' pop-up a selection buffer,\n`all' expand to all matches,\n`abort' the operation is aborted, an error is signaled." (choice :menu-tag "Method" (const :menu-tag "Use First" :tag "Use First" first) (const :menu-tag "Select Interactively" :tag "Select Interactively" select) (const :menu-tag "Use All" :tag "Use All" all) (const :menu-tag "Abort Operation" :tag "Abort Operation" abort) (const :menu-tag "Default (Use First)" :tag "Default (Use First)" nil)) eudc-duplicate-attribute-handling-method #[0 "\300\207" [((email . duplicate))] 1 #1#] "A method to handle entries containing duplicate attributes.\nThis is either an alist (ATTR . METHOD) or a symbol METHOD.\nThe alist form of the variable associates a method to an individual attribute,\nthe second form specifies a method applicable to all attributes.\nAvailable methods are:\n`list' or nil lets the value of the attribute be a list of values,\n`first' keeps the first value and discards the others,\n`concat' concatenates the values into a single multiline string,\n`duplicate' duplicates the entire entry into as many instances as\ndifferent values." (choice (const :menu-tag "List" list) (const :menu-tag "First" first) (const :menu-tag "Concat" concat) (const :menu-tag "Duplicate" duplicate) (repeat :menu-tag "Per Attribute Specification" :tag "Per Attribute Specification" (cons :tag "Attribute/Method" :value (nil . list) (symbol :tag "Attribute name") (choice :tag "Method" :menu-tag "Method" (const :menu-tag "List" list) (const :menu-tag "First" first) (const :menu-tag "Concat" concat) (const :menu-tag "Duplicate" duplicate))))) eudc-inline-query-format #[0 "\300\207" [((email) (firstname) (firstname name))] 1 #1#] "Format of an inline expansion query.\nThis is a list of FORMATs.  A FORMAT is itself a list of one or more\nEUDC attribute names.  A FORMAT applies if it contains as many attributes as\nthere are individual words in the inline query string.\nIf several FORMATs apply then they are tried in order until a match\nis found.\nIf nil, all the words are mapped onto the default server or protocol\nattribute name.\n\nThe attribute names in FORMATs are not restricted to EUDC attribute names\nbut can also be protocol/server specific names.  In this case, this variable\nmust be set in a protocol/server-local fashion, see `eudc-server-set' and\n`eudc-protocol-set'." :tag "Format of Inline Expansion Queries" (repeat (repeat :menu-tag "Format" :tag "Format" (choice :tag "Attribute" (const :menu-tag "First Name" :tag "First Name" firstname) (const :menu-tag "Surname" :tag "Surname" name) (const :menu-tag "Email Address" :tag "Email Address" email) (const :menu-tag "Phone" :tag "Phone" phone) (symbol :menu-tag "Other" :tag "Attribute name")))) :version "25.1" defvaralias eudc-expansion-overwrites-query eudc-expansion-save-query-as-kill nil (saved-value saved-variable-comment) put make-obsolete-variable "29.1" #[0 "\300\207" [nil] 1 #1#] "If non-nil, expansion saves the query string to the kill ring." eudc-inline-expansion-format #[0 "\300\207" [nil] 1 #1#] "Specify the format of the expansion of inline queries.\nThis variable controls what `eudc-expand-inline' actually inserts\nin the buffer.  It is either a list, or a function.\n\nWhen set to a list, the expansion result will be formatted\naccording to the first element of the list, a string, which is\npassed as the first argument to `format'.  The remaining elements\nof the list are symbols indicating attribute names; the\ncorresponding values are passed as additional arguments to\n`format'.\n\nWhen set to nil, the expansion result will be formatted using\n`eudc-rfc5322-make-address', and the PHRASE part will be\nformatted according to \"firstname name\", quoting the result if\nnecessary.  No COMMENT will be added in this case.\n\nWhen set to a function, the expansion result will be formatted\nusing `eudc-rfc5322-make-address', and the referenced function is\nused to format the PHRASE, and COMMENT parts, respectively.  It\nreceives a single argument, which is an alist of\nprotocol-specific attributes describing the recipient.  To access\nthe alist elements using generic EUDC attribute names, such as\nfor example name, or email, use `eudc-translate-query' with\nREVERSE set to t to transform the received attribute alist.  The\nfunction should return a list, which should contain two elements.\nIf the first element is a string, it will be used as the PHRASE\npart, quoting it if necessary.  If the second element is a string,\nit will be used as the COMMENT part, unless it contains\ncharacters not allowed in the COMMENT part by RFC 5322, in which\ncase the COMMENT part will be omitted." (choice (const :tag "RFC 5322 formatted \"first last <address>\"" nil) (function :tag "RFC 5322 phrase/comment formatting function") (list :tag "Format string (deprecated)" (string :tag "Format String") (repeat :inline t :tag "Attributes" (choice :tag "Attribute" (const :menu-tag "First Name" :tag "First Name" firstname) (const :menu-tag "Surname" :tag "Surname" name) (const :menu-tag "Email Address" :tag "Email Address" email) (const :menu-tag "Phone" :tag "Phone" phone) (symbol :menu-tag "Other") (symbol :tag "Attribute name"))))) eudc-inline-expansion-servers #[0 "\300\207" [server-then-hotlist] 1 #1#] "Which servers to contact for the expansion of inline queries.\nPossible values are:\n  `current-server': the EUDC current server.\n  `hotlist': the servers of the hotlist in the order they appear,\n  `server-then-hotlist': the current server and then the servers of\n  the hotlist." (choice :tag "Servers" :menu-tag "Servers" (const :menu-tag "Current server" current-server) (const :menu-tag "Servers in the hotlist" hotlist) (const :menu-tag "Current server then hotlist" server-then-hotlist)) eudc-max-servers-to-query #[0 "\300\207" [nil] 1 #1#] "Maximum number of servers to query for an inline expansion.\nIf nil, query all servers available from `eudc-inline-expansion-servers'." "Max Number of Servers to Query" (choice :tag "Max. Servers" :menu-tag "Max. Servers" (const :menu-tag "No limit" nil) (const :menu-tag "1" 1) (const :menu-tag "2" 2) (const :menu-tag "3" 3) (const :menu-tag "4" 4) (const :menu-tag "5" 5) (integer :menu-tag "Set")) eudc-query-form-attributes #[0 "\300\207" [(name firstname email phone)] 1 #1#] "A list of attributes presented in the query form." "Attributes in Query Forms" (repeat (choice :tag "Attribute" (const :menu-tag "First Name" :tag "First Name" firstname) (const :menu-tag "Surname" :tag "Surname" name) (const :menu-tag "Email Address" :tag "Email Address" email) (const :menu-tag "Phone" :tag "Phone" phone) (symbol :menu-tag "Other" :tag "Attribute name"))) eudc-user-attribute-names-alist #[0 "\300\207" [((url . "URL") (callsign . "HAM Call Sign") (id . "ID") (email . "E-Mail") (firstname . "First Name") (cn . "Full Name") (sn . "Surname") (name . "Surname") (givenname . "First Name") (ou . "Unit") (labeledurl . "URL") (postaladdress . "Address") (postalcode . "Postal Code") (l . "Location") (c . "Country") (o . "Organization") (roomnumber . "Office") (telephonenumber . "Phone") (uniqueidentifier . "ID") (objectclass . "Object Class"))] 1 #1#] "Alist of user-defined names for directory attributes.\nThese names are used as prompt strings in query/response forms\ninstead of the raw directory attribute names.\nPrompt strings for attributes that are not listed here\nare derived by splitting the attribute name\nat `_' characters and capitalizing the individual words." "User-defined Names of Directory Attributes" (repeat (cons :tag "Field" (symbol :tag "Directory attribute") (string :tag "User friendly name "))) eudc-use-raw-directory-names #[0 "\300\207" [nil] 1 #1#] "If non-nil, use attributes names as defined in the directory.\nOtherwise, directory query/response forms display the user attribute\nnames defined in `eudc-user-attribute-names-alist'." eudc-attribute-display-method-alist #[0 "\300\207" [nil] 1 #1#] "An alist specifying methods to display attribute values.\nEach member of the list is of the form (NAME . FUNC) where NAME is a lowercased\nstring naming a directory attribute (translated according to\n`eudc-user-attribute-names-alist' if `eudc-use-raw-directory-names' is\nnon-nil) and FUNC a function that will be passed the corresponding\nattribute values for display." "Attribute Decoding Functions" (repeat (cons :tag "Attribute" (symbol :tag "Name") (symbol :tag "Display Function"))) eudc-external-viewers #[0 "\300\207" [(("ImageMagick" "display" "-") ("ShowAudio" "showaudio"))] 1 #1#] "A list of viewer program specifications.\nViewers are programs which can be piped a directory attribute value for\ndisplay or arbitrary processing.  Each specification is a list whose\nfirst element is a string naming the viewer.  The second element is the\nexecutable program which should be invoked, and following elements are\narguments that should be passed to the program." "External Viewer Programs" (repeat (list :tag "Viewer" (string :tag "Name") (string :tag "Executable program") (repeat :tag "Arguments" :inline t (string :tag "Argument")))) eudc-ignore-options-file #[0 "\300\207" [nil] 1 #1#] "Ignore configuration in `eudc-options-file', if non-nil." eudc-options-file #[0 "\300\301\302\"\207" [locate-user-emacs-file "eudc-options" ".eudc-options"] 3 #1#] "A file where the `servers' hotlist is stored.\nSee `eudc-ignore-options-file'." (file :Tag "File Name:") eudc-mode-hook #[0 "\300\207" [nil] 1 #1#] "Normal hook run on entry to EUDC mode." hook custom-declare-group eudc-ph "Emacs Unified Directory Client - CCSO PH/QI Backend." :group eudc] 12)
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\312\301\313\314#\210\315\316\317\320\321\322%\210\300\323\302\303\324DD\325\306\326\310\327&\210\300\330\302\303\331DD\332\310\333%\210\315\334\317\335\321\322%\210\300\336\302\303\337DD\340\310\341%\210\300\342\302\303\343DD\344\310\341%\210\345\346!\207" [custom-declare-variable eudc-ph-bbdb-conversion-alist funcall function #[0 "\300\207" [((name . name) (net . email) (address eudc-bbdbify-address address "Address") (phone (eudc-bbdbify-phone phone "Phone") (eudc-bbdbify-phone office_phone "Office Phone")))] 1 #1=""] "A mapping from BBDB to PH/QI fields.\nThis is a list of cons cells (BBDB-FIELD . SPEC-OR-LIST) where\nBBDB-FIELD is the name of a field that must be defined in your BBDB\nenvironment (standard field names are `name', `company', `net', `phone',\n`address' and `notes').  SPEC-OR-LIST is either a single SPEC or a list\nof SPECs.  Lists of specs are valid only for the `phone' and `address'\nBBDB fields.  SPECs are sexps which are evaluated:\n  a string evaluates to itself,\n  a symbol evaluates to the symbol value.  Symbols naming PH/QI fields\n    present in the record evaluate to the value of the field in the record,\n  a form is evaluated as a function.  The argument list may contain PH/QI\n    field names which eval to the corresponding values in the\n    record.  The form evaluation should return something appropriate for\n    the particular BBDB-FIELD (see `bbdb-create-internal').\n    `eudc-bbdbify-phone' and `eudc-bbdbify-address' are provided as convenience\n    functions to parse phones and addresses." :tag "BBDB to PH Field Name Mapping" :type (repeat (cons :tag "Field Name" (symbol :tag "BBDB Field") (sexp :tag "Conversion Spec"))) make-obsolete-variable "the EUDC PH/QI backend is obsolete." "25.1" custom-declare-group eudc-ldap nil "Emacs Unified Directory Client - LDAP Backend." :group eudc eudc-ldap-bbdb-conversion-alist #[0 "\300\207" [((name . cn) (net . mail) (address eudc-bbdbify-address postaladdress "Address") (phone eudc-bbdbify-phone telephonenumber "Phone") (company eudc-bbdbify-company o))] 1 #1#] "A mapping from BBDB to LDAP attributes.\nThis is a list of cons cells (BBDB-FIELD . SPEC-OR-LIST) where\nBBDB-FIELD is the name of a field that must be defined in your BBDB\nenvironment (standard field names are `name', `company', `net', `phone',\n`address' and `notes').  SPEC-OR-LIST is either a single SPEC or a list\nof SPECs.  Lists of specs are valid only for the `phone' and `address'\nBBDB fields.  SPECs are sexps which are evaluated:\n  a string evaluates to itself,\n  a symbol evaluates to the symbol value.  Symbols naming LDAP attributes\n    present in the record evaluate to the value of the field in the record,\n  a form is evaluated as a function.  The argument list may contain LDAP\n    field names which eval to the corresponding values in the\n    record.  The form evaluation should return something appropriate for\n    the particular BBDB-FIELD (see `bbdb-create-internal').\n    `eudc-bbdbify-phone' and `eudc-bbdbify-address' are provided as convenience\n    functions to parse phones and addresses." "BBDB to LDAP Attribute Names Mapping" (repeat (cons :tag "Field Name" (symbol :tag "BBDB Field") (sexp :tag "Conversion Spec"))) eudc-ldap-no-wildcard-attributes #[0 "\300\207" [(objectclass objectcategory)] 1 #1#] "LDAP attributes which are always searched for without wildcard character.\nThis is the list of special dictionary-valued attributes, where\nwildcarded search may fail.  For example, it fails with\nobjectclass in Active Directory servers." (repeat (symbol :tag "Directory attribute")) eudc-bbdb "Emacs Unified Directory Client - BBDB Backend." eudc-bbdb-use-locations-as-attribute-names #[0 "\300\207" [t] 1 #1#] "If non-nil, BBDB address and phone locations are used as attribute names.\nThis has no effect on queries (you can't search for a specific location)\nbut influences the way records are displayed." boolean eudc-bbdb-enable-substring-matches #[0 "\300\207" [t] 1 #1#] "If non-nil, authorize substring match in the same way BBDB does.\nOtherwise records must match queries exactly." provide eudc-vars] 8)
