;ELC ;;; compiled by ocschwar@mint-square.mit.edu on Fri Jun 16 17:21:16 2000 ;;; from file /var/tmp/bbdb-2.00.06/lisp/bbdb-com.el ;;; emacs version 21.1 (patch 4) "Arches" XEmacs Lucid. ;;; bytecomp version 2.25 XEmacs; 22-Mar-96. ;;; optimization is on. ;;; this file uses opcodes which do not exist in Emacs 19. (if (and (boundp 'emacs-version) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "20"))) (error "`bbdb-com.el' was compiled for Emacs 20")) (or (boundp 'current-load-list) (setq current-load-list nil)) (require 'bbdb) (defalias 'bbdb-grovel-elide-arg '(macro . #[(arg) " EDF" [if arg not eq 0 bbdb-elided-display] 6])) (defalias 'bbdb-search '(macro . #[(records &optional name company net notes phone) "\n;\n9! ; 9!;9! ; 9! ; 9!  BBBBBE BBEFBBB B  D BB DBB DBBEBBBBBE DBBEFBBB D DEBBEFF B\n\nBB\nBBBBBEBBBD \"BBBBBEBBEFBBB B BB B @@DABB\"Bс@B )BCBBDBBBBEBBB" [nil clauses name error "name must be atomic" company "company must be atomic" net "net must be atomic" notes "notes must be atomic" phone "phone must be atomic" let ((rest-of-phones (bbdb-record-phones record)) (done nil)) if rest-of-phones while (and rest-of-phones (not done)) setq done string-match ((bbdb-phone-string (car rest-of-phones))) (rest-of-phones (cdr rest-of-phones)) ("") (done) stringp ((or (bbdb-record-notes record) "")) eq car ('*) ((fields all-fields) done tmp) (bbdb-record-raw-notes record) (and (not done) fields) tmp (bbdb-record-getprop record (car fields)) and cdr (tmp) (fields (cdr fields)) ("") (done) or bbdb-record-getprop record ("") append ((or (bbdb-record-name record) "")) ((rest-of-aka (bbdb-record-aka record)) (done nil)) (and rest-of-aka (not done)) ((car rest-of-aka)) (rest-of-aka (cdr rest-of-aka)) (done) ((rest-of-nets (bbdb-record-net record)) (done nil)) rest-of-nets (and rest-of-nets (not done)) ((car rest-of-nets)) (rest-of-nets (cdr rest-of-nets)) ("") (done) ((or (bbdb-record-company record) "")) (matches 'nil) ((all-fields (cons 'notes (mapcar (function (lambda (x) (intern (car x)))) (bbdb-propnames))))) (case-fold-search bbdb-case-fold-search) records (record) (setq record (car records)) ((setq matches (cons record matches))) ((setq records (cdr records))) ((nreverse matches))] 20])) #@120 Display all entries in the BBDB matching the regexp STRING in either the name(s), company, network address, or notes. (defalias 'bbdb #[(string elidep) "a?\n BɊp\nˎ  ! \" q!!!Ջ-\"B D@ H\"4H!\"\"! \"@\"!\"A\"l \"!!*4 !\"4H!%! %@\"!%A%l!* ; !\" @alj'!(H!((@\"' A'\"!(A(] A\"!!+ A @\"\"BAZ-!*" [elidep 0 bbdb-elided-display * string notes bbdb-display-records nil mapcar #[(x) " @!" [intern x] 2] --bbdb-obuf-- ((set-buffer --bbdb-obuf--)) bbdb-buffer buffer-name find-file-noselect bbdb-file nowarn bbdb-debug get-buffer-window get-buffer w ((byte-code "!\n" [w select-window bbdb-propnames] 2)) bbdb-case-fold-search bbdb-records record records case-fold-search all-fields matches string-match 3 "" 6 done rest-of-nets bbdb-record-name 2 rest-of-aka bbdb-record-notes tmp fields 7 bbdb-record-getprop] 10 (#$ . 2474) "sRegular Expression for General Search: \nP"]) #@98 Display all entries in the BBDB matching the regexp STRING in the name (or ``alternate'' names). (defalias 'bbdb-name #[(string elidep) "a?\n  \n@ !\"H @\"Ak*\nB\nA9\n,!)" [elidep 0 bbdb-elided-display bbdb-display-records nil bbdb-case-fold-search bbdb-records record records case-fold-search matches string-match string bbdb-record-name "" 2 done rest-of-aka] 6 (#$ . 3569) "sRegular Expression for Name Search: \nP"]) #@67 Display all entries in BBDB matching STRING in the company field. (defalias 'bbdb-company #[(string elidep) "a?\n  \n@ H\"\nB\nA_\n,!)" [elidep 0 bbdb-elided-display bbdb-display-records nil bbdb-case-fold-search bbdb-records record records case-fold-search matches string-match string 3 ""] 6 (#$ . 4077) "sRegular Expression for Company Search: \nP"]) #@76 Display all entries in BBDB matching regexp STRING in the network address. (defalias 'bbdb-net #[(string elidep) "a?\n  \n@H     @\"  A k\"  *\nB\nA:\n,!)" [elidep 0 bbdb-elided-display bbdb-display-records nil bbdb-case-fold-search bbdb-records record records case-fold-search matches 6 done rest-of-nets string-match string ""] 6 (#$ . 4487) "sRegular Expression for Net Address Search: \nP"]) #@71 Display all entries in BBDB matching STRING in the named notes field. (defalias 'bbdb-notes #[(which string elidep) "a?\n ĘB !B̊p Ύ!\"q!!!؋-\"B @;!\"@aʉ\"#$H#$$@\"\"A\"\"#$A$\\A\"##+A@\"\"BA-!*" [elidep 0 bbdb-elided-display which "" * string intern notes bbdb-display-records nil mapcar #[(x) " @!" [intern x] 2] --bbdb-obuf-- ((set-buffer --bbdb-obuf--)) bbdb-buffer buffer-name find-file-noselect bbdb-file nowarn bbdb-debug get-buffer-window get-buffer w ((byte-code "!\n" [w select-window bbdb-propnames] 2)) bbdb-case-fold-search bbdb-records record records case-fold-search all-fields matches string-match bbdb-record-notes tmp done fields 7 bbdb-record-getprop] 10 (#$ . 4962) (list (completing-read "Notes field to search (RET for all): " (append '(("notes")) (bbdb-propnames)) nil t) (if (featurep 'gmhist) (read-with-history-in 'bbdb-notes-field "Regular expression: ") (read-string "Regular Expression: ")) current-prefix-arg)]) #@77 Display all entries in BBDB matching the regexp STRING in the phones field. (defalias 'bbdb-phones #[(string elidep) "a?\n  \n@H     @!\"  A i\"  *\nB\nA8\n,!)" [elidep 0 bbdb-elided-display bbdb-display-records nil bbdb-case-fold-search bbdb-records record records case-fold-search matches 4 done rest-of-phones string-match string bbdb-phone-string ""] 6 (#$ . 6093) "sRegular Expression for Phone Search: \nP"]) #@101 Display all entries in the bbdb database which have been changed since the database was last saved. (defalias 'bbdb-changed #[(elidep) "a?\nÊpŎ! \"q  !!!ϋ-!)" [elidep 0 bbdb-elided-display bbdb-display-records --bbdb-obuf-- ((set-buffer --bbdb-obuf--)) bbdb-buffer buffer-name find-file-noselect bbdb-file nowarn bbdb-debug get-buffer-window get-buffer w ((byte-code "!\n" [w select-window bbdb-changed-records] 2))] 5 (#$ . 6589) "P"]) #@75 Prompts for and displays a single record (this is faster than searching.) (defalias 'bbdb-display #[(record) " C!" [bbdb-display-records record] 2 (#$ . 7082) (list (bbdb-completing-read-record "Display record of: "))]) #@222 Display records according to FUNCTION. FUNCTION is called with one argument, the record, and should return nil if the record is not to be displayed. If the record is to be displayed, it (the record) should be returned. (defalias 'bbdb-display-some #[(function) " \"\"!" [bbdb-display-records delq nil mapcar function bbdb-records] 6 (#$ . 7311)]) #@128 Regrinds the contents of the *BBDB* buffer, without scrolling. If possible, you should call bbdb-redisplay-one-record instead. (defalias 'bbdb-redisplay-records #[nil "` b`!b !)! b!+" [condition (mark) ((error)) m p window-start p2 bbdb-display-records-1 bbdb-records set-mark recenter 0 run-hooks bbdb-list-hook] 4 (#$ . 7674)]) #@77 Regrind one record. The *BBDB* buffer must be current when this is called. (defalias 'bbdb-redisplay-one-record #[(record &optional record-cons next-record-cons delete-p) " ?? HH??a!) \n   \nsA@ y 8 8` !!)b  @ A@\"`d|b!-" [bbdb-debug t debug-on-error delete-p record 8 3 error "splorch." record-cons bbdb-records next-record-cons 0 2 nil p buffer-read-only next-marker marker "doubleplus ungood: record unexists!" "doubleplus ungood: marker unexists!" bbdb-format-record run-hooks bbdb-list-hook] 4 (#$ . 8040)]) (byte-code "\nB\nB\nB Ȱ \nB R\n\nB R \nB Q \nBQ \nB" ["(?[ ]*\\+?1?[ ]*[-(]?[ ]*[-(]?[ ]*\\([2-9][0-9][0-9]\\)[ ]*)?[- ]*" bbdb-phone-area-regexp current-load-list "\\([1-9][0-9][0-9]\\)[ ]*-?[ ]*\\([0-9][0-9][0-9][0-9]\\)[ ]*" bbdb-phone-main-regexp "x?[ ]*\\([0-9]+\\)[ ]*" bbdb-phone-ext-regexp "^[ ]*" "$" bbdb-phone-regexp-1 bbdb-phone-regexp-2 bbdb-phone-regexp-3 bbdb-phone-regexp-4 bbdb-phone-regexp-5] 5) #@1432 Parse a phone number from STRING and return a list of integers the form (area-code exchange number) or (area-code exchange number extension). This is both lenient and strict in what it will parse - whitespace may appear (or not) between any of the groups of digits, parentheses around the area code are optional, as is a dash between the exchange and number, and a '1' preceeding the area code; but there must be three digits in the area code and exchange, and four in the number (if they are present). An error will be signalled if unparsable. All of these are unambigously parsable: ( 415 ) 555 - 1212 x123 -> (415 555 1212 123) (415)555-1212 123 -> (415 555 1212 123) (1-415) 555-1212 123 -> (415 555 1212 123) 1 (415)-555-1212 123 -> (415 555 1212 123) 555-1212 123 -> (0 555 1212 123) 555 1212 -> (0 555 1212) 415 555 1212 -> (415 555 1212) 1 415 555 1212 -> (415 555 1212) 5551212 -> (0 555 1212) 4155551212 -> (415 555 1212) 4155551212123 -> (415 555 1212 123) 5551212x123 -> (0 555 1212 123) 1234 -> (0 0 0 1234) Note that "4151212123" is ambiguous; it could be interpreted either as "(415) 121-2123" or as "415-1212 x123". (And uh, oh yeah, this does little if bbdb-north-american-phone-numbers-p is nil...) (defalias 'bbdb-parse-phone-number #[(string &optional number-type) "a\n?  \" ƕO \" ƉO G $ )C\n \" ̔̕O! ͔͕O! ΔΕO! ϔϕO!F \" ̔̕O! ͔͕O! ΔΕO!E \" ̔̕O! ͔͕O! ΔΕO!F \" ̔̕O! ͔͕O!E \"Ɖ ̔̕O!F!" [number-type euro bbdb-north-american-phone-numbers-p string string-match "\\`[ \n]+" 0 nil "[ \n]+\\'" set-text-properties bbdb-phone-regexp-1 string-to-int 1 2 3 4 bbdb-phone-regexp-2 bbdb-phone-regexp-3 bbdb-phone-regexp-4 bbdb-phone-regexp-5 error "phone number unparsable."] 7 (#$ . 9116)]) (defalias 'bbdb-parse-zip-string #[(string) "\n\"Ç\n\"\n!\n\"\nǔǕO!\nȔȕO!D\n\"\nǔǕO\nȔȕOD\n\"!\n\"!\n\"!\nGW!!" [string-match "^[ \n]*$" string 0 "^[ \n]*[0-9][0-9][0-9][0-9][0-9][ \n]*$" string-to-int "^[ \n]*\\([0-9][0-9][0-9][0-9][0-9]\\)[ \n]*-?[ \n]*\\([0-9][0-9][0-9][0-9]\\)[ \n]*$" 1 2 "^[ \n]*\\([A-Za-z0-9]+\\)[ \n]+\\([A-Za-z0-9]+\\)[ \n]*$" "-[^-]-" error "too many dashes in zip code." "[^-0-9 \n]" "illegal characters in zip code." "[0-9][0-9][0-9][0-9][0-9][0-9]" "too many digits in zip code." 5 "not enough digits in zip code." "not a valid 5-digit or 5+4 digit zip code."] 5]) #@173 Prompt for and return a completely new bbdb-record. Doesn't insert it in to the database or update the hashtables, but does insure that there will not be name collisions. (defalias 'bbdb-read-new-record #[nil " !ĉȍ!!\"ĉ!Ә\"\"BAUBJ,ĉ!Ә؍GUݤ#BAB*<+! !\"#$Ә$ Ә  $!\"# %\"& ." [bbdb-records bbdb-readonly-p error "The Insidious Big Brother Database is read-only." nil lastname firstname --bbdb-error-retry-- (byte-code "y" [--c-- (byte-code "\n!!!!\n@\nA@) ˘˘  Q ˗pЎ!\"q!!!ڋ-\"J #\"" [throw --bbdb-error-retry-- current-prefix-arg bbdb-read-string "First Name: " firstname "Last Name: " lastname bbdb-divide-name "Name: " names "" nil intern-soft " " --bbdb-obuf-- ((set-buffer --bbdb-obuf--)) bbdb-buffer buffer-name find-file-noselect bbdb-file nowarn bbdb-debug get-buffer-window get-buffer w ((byte-code "!\" " [w select-window bbdb-records nil t bbdb-hashtable] 3)) error "%s %s is already in the database"] 9) ((error (byte-code " ! \" A@\"!)Ƈ" [ding t cursor-in-echo-area fboundp display-error --c-- nil message "Error: %s" sit-for 2] 3)))] 3) bbdb-read-string "Company: " bbdb-split "Network Address: " "," addr str L-tail L "Address Description [RET when no more addrs]: " "" make-vector bbdb-address-length bbdb-record-edit-address "Phone Location [RET when no more phones]: " (byte-code "y" [--c-- (byte-code " \"\"!\"" [throw --bbdb-error-retry-- bbdb-parse-phone-number read-string "Phone: " bbdb-default-area-code format "(%03d) "] 8) ((error (byte-code " ! \" A@\"!)Ƈ" [ding t cursor-in-echo-area fboundp display-error --c-- nil message "Error: %s" sit-for 2] 3)))] 3) phonelist apply vector 3 (0) phone "Additional Comments: " notes phones addrs net company bbdb-cache-length] 13 (#$ . 11807)]) #@249 Add a new entry to the bbdb database; prompts for all relevant info using the echo area, inserts the new record in the db, sorted alphabetically, and offers to save the db file. DO NOT call this from a program. Call bbdb-create-internal instead. (defalias 'bbdb-create #[(record) "\n\"\n\"\nC!" [bbdb-invoke-hook bbdb-create-hook record bbdb-change-record t bbdb-display-records] 3 (#$ . 13879) (list (bbdb-read-new-record))]) (defalias 'bbdb-check-type '(macro . #[(place predicate) "\n DD a A@ 8E a A@D a A@D D\nD EECE" [while not predicate place aref aset 2 car setcar cdr setcdr setq signal 'wrong-type-argument list quote] 8])) #@846 Adds a record to the database; this function does a fair amount of error-checking on the passed in values, so it's safe to call this from other programs. NAME is a string, the name of the person to add. An error is signalled if that name is already in use. COMPANY is a string or nil. NET is a comma-separated list of email addresses, or a list of strings. An error is signalled if that name is already in use. ADDRS is a list of address objects. An address is a vector of the form ["location" "line1" "line2" "line3" "City" "State" zip] where `zip' is nil, an integer, or a cons of two integers. PHONES is a list of phone-number objects. A phone-number is a vector of the form ["location" areacode prefix suffix extension-or-nil] or ["location" "phone-number"] NOTES is a string, or an alist associating symbols with strings. (defalias 'bbdb-create-internal #[(name company net addrs phones notes) " !@ A@ \n \nQ \nȗp ʎ  ! \" q!!!ԋ-\"J \n#C\";D\"q;\"@p   ! \" q!!!-\"J@\"C\"7A/)%\"%'\"'(;(\"( \n '%(,\"& --\"-\"-," [nil aka lastname firstname name bbdb-divide-name intern-soft " " "" --bbdb-obuf-- ((set-buffer --bbdb-obuf--)) bbdb-buffer buffer-name find-file-noselect bbdb-file nowarn bbdb-debug get-buffer-window get-buffer w ((byte-code "!\" " [w select-window bbdb-records nil t bbdb-hashtable] 3)) signal error format "%s %s is already in the database" company wrong-type-argument stringp net bbdb-split "," rest ((set-buffer --bbdb-obuf--)) ((byte-code "!\" " [w select-window bbdb-records nil t bbdb-hashtable] 3)) "%s is already in the database" mapcar #[(addr) " ! G\nU D\"l H; HD\"Il H; HD\"Il H; HD\"Il H; HD\"Il H; HD\"Il H; HD\"Il H H H: H@ HA@ HAA HD\"IK " [vectorp addr bbdb-address-length signal wrong-type-argument 0 stringp 1 2 3 4 5 6 zipcodep] 7] addrs #[(phone) " ! GU G U D\"f H; HD\"Il GU H; HD\"Il H HD\"Il H HD\"Il H HD\"Il H H HD\"Il Ha I " [vectorp phone 2 bbdb-phone-length signal wrong-type-argument 0 stringp 1 integerp 3 4 nil] 7] phones notes #[(note) ":D\"s@9@D\"oA:@A@BA;AD\"o" [note signal wrong-type-argument consp symbolp stringp] 6] vector make-vector bbdb-cache-length record bbdb-invoke-hook bbdb-create-hook bbdb-change-record t] 13 (#$ . 14560)]) #@73 Returns the record which the point is point at. In linear time, man... (defalias 'bbdb-current-record #[(&optional planning-on-modifying) " ! p!k \"` \n \nA \nA@8 V\n@@ \nA\n` \n@@+" [planning-on-modifying bbdb-readonly-p error "The Insidious Big Brother Database is read-only." bbdb-buffer-name buffer-name "this command only works while in the \"%s\" buffer." bbdb-records nil rec rest p 2] 4 (#$ . 17245)]) (defalias 'bbdb-record-get-field-internal #[(record field) "a !a Ha Ha Ha Ha H\"" [field name bbdb-record-name record net 6 aka 2 phone 4 address 5 property 7 error "doubleplus ungood: unknown field type %s"] 3]) (defalias 'bbdb-record-store-field-internal #[(record field value) "a!a Ia Ia Ia Ia I\"" [field name error "doesn't work on names" net record 6 value aka 2 phone 4 address 5 property 7 "doubleplus ungood: unknown field type %s"] 3]) (defalias 'bbdb-record-edit-field-internal #[(record field &optional which) "a !a !a !a\n!a\n!a \n@\"\"" [field name bbdb-record-edit-name record net bbdb-record-edit-net aka bbdb-record-edit-aka phone bbdb-record-edit-phone which address bbdb-record-edit-address property bbdb-record-edit-property error "doubleplus ungood: unknown field type %s"] 3]) (defalias 'bbdb-current-field #[(&optional planning-on-modifying) "y`mo!yp!! \nA@   DC ?a a s?) H\" ?a a s?) H\"\" H ?a a s?) DC H ?a a s?) DC H;BC\"\") ` W T yq  8." [0 p looking-at "^[^ \n]" -1 bbdb-current-record planning-on-modifying error "unperson" record bbdb-records bbdb-elided-display count name phone field t mapcar #[(phone) "D" [phone] 2] 4 address apply nconc #[(addr) " D HĘ?\nC HĘ?\nC HĘ?\nC\nC)" [address addr L 1 "" 2 3] 3] 5 6 net 2 aka 7 notes #[(note) "@\n? a\na \ns?)DC @!P!  ! A!A #ȕ Bj-" [note field bbdb-elided-display name t property L LL 0 i intern "bbdb-format-record-" symbol-name notefun fboundp text string-match "\n"] 5] tmp 1] 8]) #@212 Typing \\[bbdb-apply-next-command-to-all-records] in the *BBDB* buffer makes the next command operate on all of the records currently displayed. (Note that this only works for certain commands.) (defalias 'bbdb-apply-next-command-to-all-records #[nil "!!  LJ" [message substitute-command-keys "\\\\[bbdb-apply-next-command-to-all-records] - " current-prefix-arg prefix-arg this-command last-command nil] 3 (#$ . 19548) nil]) #@70 Whether the last command was bbdb-apply-next-command-to-all-records. (defalias 'bbdb-do-all-records-p '(macro . #[nil "" [(eq last-command 'bbdb-apply-next-command-to-all-records)] 1 (#$ . 20017)])) #@483 Add a new field to the current record; the field type and contents are prompted for if not supplied. If you are inserting a new phone-number field, you can control whether it is a north american or european phone number by providing a prefix argument. A prefix arg of ^U means it's to be a euronumber, and any other prefix arg means it's to be a a structured north american number. Otherwise, which style is used is controlled by the variable bbdb-north-american-phone-numbers-p. (defalias 'bbdb-insert-new-field #[(name contents) "\n!!!\na HCI8\na HCI8\na H!;\"@pԎ!\"q!!!ދ-\"J a@!H@#)A#)@p!\"q!!!-\" LA?) I8\na H!;\"%%@p!\"q!!!-\"J a%@!H@#)%A%#)%%@p!\"q!!!-\" L%A%?) I\na !! \"\n!p!\"q!!!-\" H:\n H\n\" \n#\n\" \"< !*" [contents bbdb-prompt-for-new-field-value name bbdb-current-record t record error "current record unexists!" phone 4 address 5 net 6 "There already are net addresses!" bbdb-split "," nets intern-soft --bbdb-obuf-- ((set-buffer --bbdb-obuf--)) bbdb-buffer buffer-name find-file-noselect bbdb-file nowarn bbdb-debug get-buffer-window get-buffer w ((byte-code "!\" " [w select-window bbdb-records nil t bbdb-hashtable] 3)) old "net address \"%s\" is used by \"%s\"" bbdb-record-name intern ((set-buffer --bbdb-obuf--)) ((byte-code "!\" " [w select-window bbdb-records nil t bbdb-hashtable] 3)) aka 2 "there already are alternate names!" ";" ((set-buffer --bbdb-obuf--)) ((byte-code "!\" " [w select-window bbdb-records nil t bbdb-hashtable] 3)) "alternate name \"%s\" is used by \"%s\"" ((set-buffer --bbdb-obuf--)) ((byte-code "!\" " [w select-window bbdb-records nil t bbdb-hashtable] 3)) notes bbdb-record-notes "there already are notes!" bbdb-record-set-notes assoc symbol-name ((set-buffer --bbdb-obuf--)) ((byte-code "!\n" [w select-window bbdb-propnames] 2)) 7 "there is already a \"%s\" note!" bbdb-record-putprop "doubleplus ungood: unknow how to set slot %s" bbdb-change-record nil bbdb-elided-display bbdb-redisplay-one-record] 7 (#$ . 20225) (let ((name "") (completion-ignore-case t)) (while (string= name "") (setq name (downcase (completing-read "Insert Field: " (append '(("phone") ("address") ("net") ("AKA") ("notes")) (bbdb-propnames)) nil nil nil)))) (setq name (intern name)) (list name (bbdb-prompt-for-new-field-value name)))]) (defalias 'bbdb-prompt-for-new-field-value #[(name) "a!a!a \n\" I \n GUI ! )a\"!)a!!pێ!\"q!!!!$-\"\"!\"!p!\"q!!!!$-!CC\"!\"\"!" [name net bbdb-read-string "Net: " aka "Alternate Names: " phone make-vector current-prefix-arg bbdb-north-american-phone-numbers-p bbdb-phone-length 2 0 p nil 1 bbdb-default-area-code bbdb-record-edit-phone address bbdb-address-length a bbdb-record-edit-address notes "Notes: " assoc symbol-name --bbdb-obuf-- ((set-buffer --bbdb-obuf--)) bbdb-buffer buffer-name find-file-noselect bbdb-file nowarn bbdb-debug get-buffer-window get-buffer w ((byte-code "!\n" [w select-window bbdb-propnames] 2)) format "%s: " bbdb-y-or-n-p "\"%s\" is an unknown field name. Define it? " bbdb-set-propnames append ((set-buffer --bbdb-obuf--)) ((byte-code "!\n" [w select-window bbdb-propnames] 2)) error "unknown field \"%s\""] 7]) #@302 Edit the contents of the Insidious Big Brother Database field displayed on the current line (this is only meaningful in the "*BBDB*" buffer.) If the cursor is in the middle of a multi-line field, such as an address or comments section, then the entire field is edited, not just the current line. (defalias 'bbdb-edit-current-field #[nil "!! !\n @ A@#\n\"\n!+" [bbdb-current-record t record bbdb-current-field field nil need-to-sort error "on an unfield" bbdb-record-edit-field-internal bbdb-change-record bbdb-redisplay-one-record] 4 (#$ . 24028) nil]) (defalias 'bbdb-record-edit-name #[(bbdb-record) "ȍ H\"͘  H͗k? ! !pю!\"q!!!ۋ-\"L) HI I I I  !p!\"q!!!-\" L ." [nil old-name new-name need-to-sort co ln fn --bbdb-error-retry-- (byte-code "y" [--c-- (byte-code "\n H\" H\"\n !\"!@A@\n) HϘ?\n HϘ?Ϙ\nϘ\n\n\nQ\n !?p׎!\"q!!! -\"J\"\"" [throw --bbdb-error-retry-- current-prefix-arg bbdb-read-string "First Name: " bbdb-record 0 fn "Last Name: " 1 ln bbdb-divide-name "Name: " bbdb-record-name names "" need-to-sort nil " " new-name old-name intern-soft --bbdb-obuf-- ((set-buffer --bbdb-obuf--)) bbdb-buffer buffer-name find-file-noselect bbdb-file nowarn bbdb-debug get-buffer-window get-buffer w ((byte-code "!\" " [w select-window bbdb-records nil t bbdb-hashtable] 3)) error "%s is already in the database!"] 9) ((error (byte-code " ! \" A@\"!)Ƈ" [ding t cursor-in-echo-area fboundp display-error --c-- nil message "Error: %s" sit-for 2] 3)))] 3) bbdb-read-string "Company: " bbdb-record 3 "" bbdb-record-name intern-soft --bbdb-obuf-- ((set-buffer --bbdb-obuf--)) bbdb-buffer buffer-name find-file-noselect bbdb-file nowarn bbdb-debug get-buffer-window get-buffer w ((byte-code "!\" " [w select-window bbdb-records nil t bbdb-hashtable] 3)) s 8 0 1 intern ((set-buffer --bbdb-obuf--)) ((byte-code "!\" " [w select-window bbdb-records nil t bbdb-hashtable] 3))] 7]) (defalias 'bbdb-record-edit-address #[(addr &optional location) " H\" H\"ɘɪ H\" ɘɪ H\" H\" H\"׍ I I  I I I I I.ڇ" [location bbdb-read-string "Location: " addr 0 loc "Street, line 1: " 1 st1 "" "Street, line 2: " 2 st2 "Street, line 3: " 3 st3 "City: " 4 cty "State: " 5 ste --bbdb-error-retry-- (byte-code "y" [--c-- (byte-code "!\"!\"" [throw --bbdb-error-retry-- bbdb-parse-zip-string bbdb-read-string "Zip Code: " bbdb-address-zip-string addr] 7) ((error (byte-code " ! \" A@\"!)Ƈ" [ding t cursor-in-echo-area fboundp display-error --c-- nil message "Error: %s" sit-for 2] 3)))] 3) zip 6 nil] 5]) (defalias 'bbdb-record-edit-phone #[(phone-number) "\nH\"\nG UǍ) \n I\n@I\nGU\nA@I\n8I\n8I*·" [bbdb-read-string "Location: " phone-number 0 bbdb-phone-length bbdb-north-american-phone-numbers-p --bbdb-error-retry-- (byte-code "y" [--c-- (byte-code "!\"!\"" [throw --bbdb-error-retry-- bbdb-parse-phone-number read-string "Phone: " bbdb-phone-string phone-number] 7) ((error (byte-code " ! \" A@\"!)Ƈ" [ding t cursor-in-echo-area fboundp display-error --c-- nil message "Error: %s" sit-for 2] 3)))] 3) newp newl 1 2 3 4 nil] 4]) (defalias 'bbdb-record-edit-net #[(bbdb-record) " H#\" H\"\n \n  @pώ!\"q!!!ً-\"J a @!#) A *)   @pގ!\"q!!!ߋ-\"  L) A 7)\n\"\"@p!\"q!!!-\" L\"A\"?) \nI+" [bbdb-read-string "Net: " mapconcat identity bbdb-record 6 ", " str bbdb-split "," newnets oldnets rest intern-soft --bbdb-obuf-- ((set-buffer --bbdb-obuf--)) bbdb-buffer buffer-name find-file-noselect bbdb-file nowarn bbdb-debug get-buffer-window get-buffer w ((byte-code "!\" " [w select-window bbdb-records nil t bbdb-hashtable] 3)) old error "net address \"%s\" is used by \"%s\"" bbdb-record-name ((set-buffer --bbdb-obuf--)) ((byte-code "!\" " [w select-window bbdb-records nil t bbdb-hashtable] 3)) s nil nets intern ((set-buffer --bbdb-obuf--)) ((byte-code "!\" " [w select-window bbdb-records nil t bbdb-hashtable] 3))] 7]) (defalias 'bbdb-record-edit-aka #[(bbdb-record) " H#\" H\"\n \n  @pώ!\"q!!!ً-\"J a @!#) A *)   @pގ!\"q!!!ߋ-\"  L) A 7)\n\"\"@p!\"q!!!-\" L\"A\"?) \nI+" [bbdb-read-string "AKA: " mapconcat identity bbdb-record 2 "; " str bbdb-split ";" newaka oldaka rest intern-soft --bbdb-obuf-- ((set-buffer --bbdb-obuf--)) bbdb-buffer buffer-name find-file-noselect bbdb-file nowarn bbdb-debug get-buffer-window get-buffer w ((byte-code "!\" " [w select-window bbdb-records nil t bbdb-hashtable] 3)) old error "alternate name address \"%s\" is used by \"%s\"" bbdb-record-name ((set-buffer --bbdb-obuf--)) ((byte-code "!\" " [w select-window bbdb-records nil t bbdb-hashtable] 3)) s nil aka intern ((set-buffer --bbdb-obuf--)) ((byte-code "!\" " [w select-window bbdb-records nil t bbdb-hashtable] 3))] 7]) (defalias 'bbdb-record-edit-notes #[(bbdb-record &optional regrind) " !\" Ƙ? \")q !)ʇ" [bbdb-read-string "Notes: " bbdb-record-notes bbdb-record notes bbdb-record-set-notes "" regrind bbdb-buffer-name bbdb-redisplay-one-record nil] 4 nil (list (bbdb-current-record t) t)]) (defalias 'bbdb-record-edit-property #[(bbdb-record &optional prop regrind) "p\n\n!\n \"q !!!\nˋ-   !!\" B\" kת!\"\"\"֘?#, q!)" [--bbdb-obuf-- ((set-buffer --bbdb-obuf--)) bbdb-buffer buffer-name find-file-noselect bbdb-file nowarn bbdb-debug get-buffer-window get-buffer w ((byte-code "!\n" [w select-window bbdb-propnames] 2)) propnames prop symbol-name completing-read format "Edit property of %s: " bbdb-record-name bbdb-record ("notes") propname "" notes intern propsym bbdb-read-string "%s: " bbdb-record-getprop string bbdb-record-putprop regrind bbdb-buffer-name bbdb-redisplay-one-record nil] 5 nil (list (bbdb-current-record t) nil t)]) (defalias 'bbdb-field-equal #[(x y) ": :@ @aA@ A@aAA@ AA@a a" [x y] 2]) (byte-code "Ns\"#" [bbdb-field-equal byte-optimizer (nil byte-compile-inline-expand) error "%s already has a byte-optimizer, can't make it inline" put byte-compile-inline-expand] 4) (defalias 'bbdb-next-field #[(&optional count planning-on-modifying) "y ! !  Wʪ  W[  W  : :@ @aA@ A@aAA@ AA@a a* y ! !  a2ω . T   ." [count 1 0 bbdb-current-record planning-on-modifying record bbdb-current-field field next-record next-field -1 signum i y x nil] 3]) #@591 This is like the `transpose-lines' command, but it is for BBDB fields. If the cursor is on a field of a BBDB record, that field and the previous field will be transposed. With argument ARG, takes previous line and moves it past ARG fields. With argument 0, interchanges field point is in with field mark is in. Both fields must be in the same record, and must be of the same basic type (that is, you can use this command to change the order in which phone-number fields are listed, but you can't use it to make an address appear before a phone number; the order of field types is fixed.) (defalias 'bbdb-transpose-fields #[(&optional arg) "!‰ \nU\"!\n\"\nWͪ\"  b  a!)\nWy)@! @a @a @a@@# @a @aA@A@A@ s \" s \" \" @a@aAZ) @a \"B @aAp!  \"AB* # \" !." [bbdb-current-record t nil list type swap-p position-before position-after moving-field record arg 0 bbdb-next-field -1 error "no previous field" 1 bbdb-current-field mark "not in the same record" x 2 "that would be out of the record!" "can't transpose fields of different types (%s and %s)" (name aka net) "there is only one %s field, so you can't transpose it" (phone address property) bbdb-record-get-field-internal "doubleplus ungood: unknown field %s" rest delq "doubleplus ungood: couldn't reorder list" inhibit-quit bbdb-record-store-field-internal bbdb-change-record bbdb-redisplay-one-record] 8 (#$ . 31343) "p"]) #@233 Delete the line which the cursor is on; actually, delete the field which that line represents from the database. If the cursor is on the first line of a database entry (the name/company line) then the entire entry will be deleted. (defalias 'bbdb-delete-current-field-or-record #[nil "!!@\n! ! a A@@! ! a\n! #! s\n A@\n \"\"# s\n \"@pَ!\"q!!!\"-\"$$L)A7)\n # a\n A@@#!\n\"\n!-" [bbdb-current-record t record bbdb-current-field field type bbdb-record-name uname error "on an unfield" property symbol-name name bbdb-delete-current-record bbdb-y-or-n-p format "delete this %s field (of %s)? " (phone address) bbdb-record-store-field-internal delq bbdb-record-get-field-internal (net aka) rest intern-soft --bbdb-obuf-- ((set-buffer --bbdb-obuf--)) bbdb-buffer buffer-name find-file-noselect bbdb-file nowarn bbdb-debug get-buffer-window get-buffer w ((byte-code "!\" " [w select-window bbdb-records nil t bbdb-hashtable] 3)) s nil bbdb-record-putprop "doubleplus ungood: unknown field type" bbdb-change-record bbdb-redisplay-one-record] 9 (#$ . 32996) nil]) #@67 Delete the entire bbdb database entry which the cursor is within. (defalias 'bbdb-delete-current-record #[(r &optional noprompt) " ! H H@\"!  sA@\n  HH!) HI ! @aAA A@aAAAb)  \n$p֎!\"q !!!ߋ." [noprompt bbdb-y-or-n-p format "delete the entire db entry of %s? " bbdb-record-name r 3 6 bbdb-records record-cons next-record-cons bbdb-debug t debug-on-error 8 error "deleting deleted record" bbdb-delete-record-internal rest nil bbdb-redisplay-one-record --bbdb-obuf-- ((set-buffer --bbdb-obuf--)) bbdb-buffer buffer-name find-file-noselect bbdb-file nowarn get-buffer-window get-buffer w ((byte-code "! \"" [w select-window delq r bbdb-changed-records] 3))] 6 (#$ . 34206) (list (bbdb-current-record t))]) #@788 Toggle whether the current record is displayed expanded or elided (multi-line or one-line display.) With a numeric argument of 0, the current record will unconditionally be made elided; with any other argument, the current record will unconditionally be shown expanded. \ If "\[bbdb-apply-next-command-to-all-records]\[bbdb-elide-record]" is used instead of simply "\[bbdb-elide-record]", then the state of all records will be changed instead of just the one at point. In this case, an argument of 0 means that all records will unconditionally be made elided; any other numeric argument means that all of the records will unconditionally be shown expanded; and no numeric argument means that the records are made to be in the opposite state of the record under point. (defalias 'bbdb-elide-record #[(arg) "a ! !" [last-command bbdb-apply-next-command-to-all-records bbdb-elide-all-records-internal arg bbdb-elide-record-internal] 2 (#$ . 35049) "P"]) (defalias 'bbdb-elide-record-internal #[(arg) " \nA@ ? aǪ  a? A !," [bbdb-current-record record bbdb-records cons current-state arg 0 nil t desired-state bbdb-redisplay-one-record] 3]) (defalias 'bbdb-elide-all-records-internal #[(arg) " \nA@ ? aǪ \n\n \n \n@A@a \n@A \nA\nc  q \n8b!." [bbdb-current-record record bbdb-records cons current-state arg 0 nil t desired-state records any-change-p bbdb-redisplay-records bbdb-buffer-name 2 recenter (4)] 4]) #@164 Remove the current record from the display without deleting it from the database. With a prefix argument, omit the next N records. If negative, omit backwards. (defalias 'bbdb-omit-record #[(n) "UW! !      @@a @  A@ ʉ d   A Z! 8  8d|)  AAAVST-G!" [n 0 bbdb-prev-record 1 bbdb-current-record error "no records" record bbdb-records rest nil cons next prev-tail "can't find current record" buffer-read-only 2 bbdb-frob-mode-line] 4 (#$ . 36570) "p"]) (custom-declare-variable 'bbdb-refile-notes-generate-alist ''((creation-date . bbdb-refile-notes-string-least)) "*An alist defining specific merging function, based on notes field." :group 'bbdb-noticing-records :type '(repeat (cons (symbol :tag "Notes filed") (hook :tag "Generating function")))) (custom-declare-variable 'bbdb-refile-notes-default-merge-function ''bbdb-refile-notes-default-merge-function "*Default function to use for merging BBDB notes records.\n\nIf the note field has an entry in `bbdb-refile-notes-generate-alist',\nthat function will be used instead." :group 'bbdb-noticing-records :type 'function) #@50 Returns the concatenation of STRING1 and STRING2 (defalias 'bbdb-refile-notes-default-merge-function #[(string1 string2) "\nQ" [string1 "\n" string2] 3 (#$ . 37749)]) #@62 Concatenate STRING1 and STRING2, but remove duplicate lines. (defalias 'bbdb-refile-notes-remove-duplicates #[(string1 string2) " \" \" @ @ B Ao #*" [split-string string1 "\n" string2 note2 note1 mapconcat identity] 5 (#$ . 37925)]) #@35 Returns the string that is lessp. (defalias 'bbdb-refile-notes-string-least #[(string1 string2) "  " [string1 string2] 2 (#$ . 38185)]) #@584 Merge the current record into some other record; that is, delete the record under point after copying all of the data within it into some other record. this is useful if you realize that somehow a redundant record has gotten into the database, and you want to merge it with another. If both records have names and/or companies, you are asked which to use. Phone numbers, addresses, and network addresses are simply concatenated. The first record is the record under the point; the second is prompted for. Completion behaviour is as dictated by the variable `bbdb-completion-type'. (defalias 'bbdb-refile-record #[(old-record new-record) " a! !GU!GU !!#! H HB HHB !\"! !GUHHB H HB HGUHGU HH#! HH HGUH H H H !BH HIH HIIH Hk<BC<BC@@@@AA@A\"@CAII+ \"HI@IAIHIHI\"$%!p'))!),\")q.,!!!1-%C!.!" [new-record old-record error "those are the same" nil extra-name 0 bbdb-record-name bbdb-y-or-n-p format "Use name \"%s\" instead of \"%s\"? " 1 bbdb-use-alternate-names "Keep \"%s\" as an alternate name? " name 3 "Use company \"%s\" instead of \"%s\"? " comp 6 old-nets 2 old-aka 4 5 7 tmp n2 n1 notes bbdb-refile-notes-generate-alist bbdb-refile-notes-default-merge-function bbdb-delete-current-record noprompt 8 bbdb-change-record t bbdb-elided-display bbdb-records bbdb-redisplay-one-record --bbdb-obuf-- ((set-buffer --bbdb-obuf--)) bbdb-buffer buffer-name find-file-noselect bbdb-file nowarn bbdb-debug get-buffer-window get-buffer w ((byte-code "!\n s\n B" [w select-window new-record bbdb-changed-records] 2)) bbdb-display-records message "records merged."] 7 (#$ . 38335) (let ((r (bbdb-current-record))) (list r (bbdb-completing-read-record (format "merge record \"%s\" into: " (or (bbdb-record-name r) (car (bbdb-record-net r)) "???")))))]) (custom-declare-variable 'bbdb-dwim-net-address-allow-redundancy 'nil "*Non-nil means always use full name when sending mail, even if same as net." :group 'bbdb :type '(choice (const :tag "Disallow redundancy" nil) (const :tag "Allow redundancy" t))) #@385 Returns a string to use as the email address of the given record. The given address is the address the mail is destined to; this is formatted like "Firstname Lastname " unless both the first name and last name are constituents of the address, as in John.Doe@SomeHost, or the address is already in the form "Name " or "foo (Name)", in which case the address is used as-is. (defalias 'bbdb-dwim-net-address #[(record &optional net) " H@! \" !   !@ A@  k  k ) H H   # O OQ \\\\    ! !۰\" ! !۰\"    !Q\"\"\" \" # #-" [net record 6 error "record unhas network addresses" bbdb-record-getprop mail-name override bbdb-record-name name nil fn ln 0 i bbdb-divide-name both "" 1 string-match "[\\\"]" "\\" 2 bbdb-dwim-net-address-allow-redundancy "\\`[^!@%]*\\b" regexp-quote "\\b[^!%@]+\\b" "\\b" "\\`[ ]*[^<]+[ ]*<" "\\`[ ]*[^(]+[ ]*(" "[][-()<>@,;:.!$%]" format "\"%s\" <%s>" "%s <%s>"] 7 (#$ . 40653)]) (defalias 'bbdb-send-mail-internal #[(&optional to subj records) "!ê!Ī!ŪƉa!\" #a!!!!@!Aת# #a!\" \"aa #!)" [bbdb-send-mail-style featurep mh-e mh vm message mail type fboundp mh-send autoload "mh-e" to "" subj vm-mail-internal load-library "vm" "vm-reply" records format "mail to %s%s" bbdb-record-name ", ..." message-mail "message" rmail nil error "bbdb-send-mail-style must be vm, mh, message, or rmail"] 6]) #@388 Compose a mail message to the person indicated by the current bbdb record. The first (most-recently-added) address is used if there are more than one. \ If "\[bbdb-apply-next-command-to-all-records]\[bbdb-send-mail]" is used instead of simply "\[bbdb-send-mail]", then mail will be sent to all of the folks listed in the *BBDB* buffer instead of just the person at point. (defalias 'bbdb-send-mail #[(bbdb-record &optional subject) ":\n\"\n\"" [bbdb-record bbdb-send-mail-many subject bbdb-send-mail-1] 3 (#$ . 42283) (list (if (bbdb-do-all-records-p) (mapcar 'car bbdb-records) (bbdb-current-record)))]) (defalias 'bbdb-send-mail-1 #[(bbdb-record &optional subject) " E! ! H! ! C##" [bbdb-inside-electric-display bbdb-electric-throw-to-execute bbdb-send-mail bbdb-record subject error "record unexists" 6 "Current record unhas a network addresses." bbdb-send-mail-internal bbdb-dwim-net-address re-search-backward "^Subject: $" nil t] 4]) (defalias 'bbdb-send-mail-many #[(records &optional subject) " D E!Ɖ  @H @ B @B Ad # #db`#ױ`\"b++#" [bbdb-inside-electric-display bbdb-electric-throw-to-execute bbdb-send-mail quote records subject nil orec bad good 6 bbdb-send-mail-internal mapconcat #[(x) " !" [bbdb-dwim-net-address x] 2] ",\n " " " 70 fill-column fill-prefix p "*** Warning: No net addresses for " #[(x) " !" [bbdb-record-name x] 2] ", " "." fill-region-as-paragraph re-search-backward "^Subject: $" t] 6]) #@296 CC the people displayed in the *BBDB* buffer on this message. The primary net-address of each of the records currently listed in the *BBDB* buffer (whether it is visible or not) will be appended to the CC: field of the current buffer (assuming the current buffer is a mail composition buffer.) (defalias 'bbdb-yank-addresses #[nil "q \"\")eb#l!usc !l!usc @cAc Ah)" [bbdb-buffer-name delq nil mapcar #[(x) "@H@!" [x 6 bbdb-dwim-net-address] 2] bbdb-records addrs re-search-forward "^CC:[ ]*" t looking-at "\n[ ]" ",\n" indent-relative "^To:[ ]*" "\nCC:"] 6 (#$ . 43853) nil]) #@73 *Display BBDB records for all recipients of the message in this buffer. (defalias 'bbdb-show-all-recipients #[nil " ! !q bNJ!\")!\")!\")!\")$)\n@ԉ$BAd!\"!-" [bbdb-header-start nil addrs marker message "Searching..." marker-buffer append bbdb-split bbdb-extract-field-value "from" "" "," "to" "cc" "bcc" record records rest bbdb-annotate-message-sender t "Sorting..." sort (lambda (x y) (bbdb-record-lessp x y)) bbdb-display-records] 8 (#$ . -44527) nil]) #@98 For use as the third argument to completing-read, to obey the semantics of bbdb-completion-type. (defalias 'bbdb-completion-predicate #[(symbol) " ! ! J?s\n!\nH \nHs @a  @ Al)+" [nil n r name boundp symbol symbol-name bbdb-completion-type (name primary-or-name name-or-primary) bbdb-record-name 3 6 (primary primary-or-name name-or-primary) net done t] 4 (#$ . 45077)]) #@188 Prompt for and return a record from the bbdb; completion is done according to bbdb-completion-type. If the user just hits return, nil is returned. Otherwise, a valid response is forced. (defalias 'bbdb-completing-read-record #[(prompt) "p\n\n!\n \"q !!!\nˋ-  $GU? \"!JJ\"+" [--bbdb-obuf-- ((set-buffer --bbdb-obuf--)) bbdb-buffer buffer-name find-file-noselect bbdb-file nowarn bbdb-debug get-buffer-window get-buffer w ((byte-code "!\" " [w select-window bbdb-records nil t bbdb-hashtable] 3)) ht completing-read prompt bbdb-completion-predicate t string 0 intern-soft symbol boundp error "selecting deleted (unhashed) record \"%s\"!"] 6 (#$ . 45534)]) (byte-code "! ! # # # ) B " [boundp bbdb-read-addresses-with-completion-map copy-keymap minibuffer-local-completion-map map define-key " " self-insert-command " " bbdb-complete-name "" current-load-list] 4) #@67 Like read-string, but allows bbdb-complete-name style completion. (defalias 'bbdb-read-addresses-with-completion #[(prompt &optional default) " \n #" [read-from-minibuffer prompt default bbdb-read-addresses-with-completion-map] 4 (#$ . 46504)]) (byte-code "! B‡" [boundp bbdb-complete-name-saved-window-config nil current-load-list] 2) (defalias 'bbdb-complete-name-cleanup #[nil "!!ĉ" [bbdb-complete-name-saved-window-config get-buffer-window "*Completions*" set-window-configuration nil] 2]) #@71 Wrapper for display-completion-list. CALLBACK and DATA are discarded. (defalias 'bbdb-display-completion-list #[(list &optional callback data) " !" [display-completion-list list] 2 (#$ . 47028)]) #@91 Find the record for a name clicked in a completion buffer. Currently only used by XEmacs. (defalias 'bbdb-complete-clicked-name #[(event extent user-data) "@A@8 q b \n|!c !+" [user-data 2 end beg buffer bbdb-complete-name-cleanup extent-string extent bbdb-complete-name] 4 (#$ . 47232)]) #@346 Complete the user full-name or net-address before point (up to the preceeding newline, colon, or comma). If what has been typed is unique, insert an entry of the form "User Name ". If it is a valid completion but not unique, a list of completions is displayed. Completion behaviour can be controlled with 'bbdb-completion-type'. (defalias 'bbdb-complete-name #[(&optional start-pos) "` !ĕb`){pȎ  !  \" q !!!ҋ-#;H@!@!Ad*aC\"\"J# |#\"!#!旘?#H\"!'())'()@)@'h)A)d'+\"c!+,i-Y`./y`./b.#uc+45#C\") *< \" < |c`;;;; {#;X |cN !)< a!@#ABCaAGDUEA@\"JEAA@\"JaA@ |A@cF! !ρG!H IpJ ԓJ ԓEKGLAMK#) aN!). " [end start-pos re-search-backward "\\(\\`\\|[\n:,]\\)[ ]*" 0 beg pattern --bbdb-obuf-- ((set-buffer --bbdb-obuf--)) bbdb-buffer buffer-name find-file-noselect bbdb-file nowarn bbdb-debug get-buffer-window get-buffer w ((byte-code "!\" " [w select-window bbdb-records nil t bbdb-hashtable] 3)) ht nil yeah-yeah-this-one t only-one-p all-the-completions #[(sym) " ! JH \n a B\n a? \n *" [bbdb-completion-predicate sym rec 6 net yeah-yeah-this-one nil only-one-p all-the-completions] 3] pred try-completion completion 6 rest addrs symbol-name intern-soft sym val bbdb-dwim-net-address bbdb-record-name "" the-one want nets boundp auto-fill-function auto-fill-hook fill-column bol p search-backward "," 1 "\n " bbdb-completion-display-record bbdb-gag-messages bbdb-display-records-1 bbdb-complete-name-cleanup message "completion for \"%s\" unfound." ding last bbdb-complete-name selected-window minibuffer-window "Making completion list..." all-completions list bbdb-completion-type net 2 intern " " "*Completions*" current-window-configuration bbdb-complete-name-saved-window-config make-marker arg bbdb-display-completion-list bbdb-complete-clicked-name "Making completion list...done"] 6 (#$ . 47546) nil]) #@60 Insert the current contents of the *BBDB* buffer at point. (defalias 'bbdb-yank #[nil "p q q)c" [b bbdb-buffer-name buffer-string] 2 (#$ . 49784) nil]) (custom-declare-variable 'bbdb-define-all-aliases-field ''mail-alias "*The field which bbdb-define-all-aliases searches for." :group 'bbdb :type 'symbol) #@485 Define mail aliases for some of the records in the database. Every record which has a `mail-alias' field will have a mail alias defined for it which is the contents of that field. If there are multiple comma-separated words in the `mail-alias' field, then all of those words will be defined as aliases for that person. If multiple entries in the database have the same mail alias, then that alias expands to a comma-separated list of the network addresses of all of those people. (defalias 'bbdb-define-all-aliases #[nil "BƊpȎ  !  \" q !!!ҋ-\"B @\n;\n!\"\n@aÉ H  @\"\nA\" A ]\nA\"+\nA\n@\"\"BA-#$%@\"\"$$@#\"%%B$@D#B#$A$WA=##@@#@A!,#./!/.\"/.\"/!45\"!/Ka/K\"/#@A\"DDEM*#A#." [bbdb-define-all-aliases-field "." target nil notes mapcar #[(x) " @!" [intern x] 2] --bbdb-obuf-- ((set-buffer --bbdb-obuf--)) bbdb-buffer buffer-name find-file-noselect bbdb-file nowarn bbdb-debug get-buffer-window get-buffer w ((byte-code "!\n" [w select-window bbdb-propnames] 2)) bbdb-case-fold-search bbdb-records record records case-fold-search all-fields matches string-match bbdb-record-notes "" * tmp done fields 7 bbdb-record-getprop result aliases match bbdb-split "," assoc mapconcat bbdb-dwim-net-address boundp mail-alias-separator-string ", " expansion alias fboundp define-mail-abbrev define-mail-alias intern-soft mail-abbrevs mail-aliases error "couldn't find the alias we just defined!" mail-abbrev-expand-hook "mail-aliases contains unexpected hook %s" lambda bbdb-mail-abbrev-expand-hook quote #[(x) "H@" [x 6] 2]] 9 (#$ . 50103)]) (defalias 'bbdb-mail-abbrev-expand-hook #[(records) " \"\")" [mail-abbrev-expand-hook bbdb-completion-display-record t bbdb-gag-messages bbdb-display-records-1 mapcar #[(x) " Ga\nGa! pɎ\n\n!\n \"\nq\"+\"J\n\n;\npЎ\n\n!\n \"\nq\"+\"J\n\n@pҎ\n\n!\n \"\nq\"+\"J\nAH)*" [nil x net name 0 bbdb-records t intern-soft --bbdb-obuf-- ((set-buffer --bbdb-obuf--)) bbdb-buffer buffer-name find-file-noselect bbdb-file nowarn bbdb-hashtable ((set-buffer --bbdb-obuf--)) answer ((set-buffer --bbdb-obuf--))] 7] records] 4]) (custom-declare-variable 'bbdb-dial-local-prefix 'nil "*If this is non-nil, it should be a string of digits which your phone\nsystem requires before making local calls (for example, if your phone system\nrequires you to dial 9 before making outside calls.)" :group 'bbdb-phone-dialing :type '(choice (const :tag "No digits required" nil) (integer :tag "Dial this first" 9))) (custom-declare-variable 'bbdb-dial-long-distance-prefix 'nil "*If this is non-nil, it should be a string of digits which your phone\nsystem requires before making a long distance call (one not in your local\narea code). For example, in some areas you must dial 1 before an area code." :group 'bbdb-phone-dialing :type '(choice (const :tag "No digits required" nil) (integer :tag "Dial this first" 1))) (custom-declare-variable 'bbdb-sound-player '"/usr/demo/SOUND/play" "The program to be used to play the sounds for the touch-tone digits." :group 'bbdb-phone-dialing :type 'file) (custom-declare-variable 'bbdb-sound-files ''["/usr/demo/SOUND/sounds/touchtone.0.au" "/usr/demo/SOUND/sounds/touchtone.1.au" "/usr/demo/SOUND/sounds/touchtone.2.au" "/usr/demo/SOUND/sounds/touchtone.3.au" "/usr/demo/SOUND/sounds/touchtone.4.au" "/usr/demo/SOUND/sounds/touchtone.5.au" "/usr/demo/SOUND/sounds/touchtone.6.au" "/usr/demo/SOUND/sounds/touchtone.7.au" "/usr/demo/SOUND/sounds/touchtone.8.au" "/usr/demo/SOUND/sounds/touchtone.9.au"] "A vector of ten sound files to be used for dialing. They\ncorrespond to the 0, 1, 2, ... 9 digits, respectively." :group 'bbdb-phone-dialing :type 'vector) #@345 On a Sun SparcStation, play the appropriate tones on the builtin speaker to dial the phone number corresponding to the current line. If the point is at the beginning of a record, dial the first phone number. Does not dial the extension. Does not dial the area code if it is the same as `bbdb-default-area-code' unless a prefix arg is given. (defalias 'bbdb-dial #[(phone force-area-code) "aA@H@aA@!!! !!! \" \" ϕO  \" ωO \"\"! ͉@ZH%!Ad)! \"!\"!\"! ͉@ZH%!Ad) GW HX HY ͉ HZH%!TI+" [phone name 4 vectorp error "not on a phone field" window-system "You're not under window system." file-exists-p bbdb-sound-player "no sound player program" bbdb-phone-string str nil L 0 i force-area-code bbdb-default-area-code string-match format "^(%03d)" "x[0-9]+$" bbdb-dial-local-prefix append d "\\`[0-9]*\\'" "bbdb-dial-local-prefix contains non-digits" call-process bbdb-sound-files ?0 sleep-for 1 bbdb-dial-long-distance-prefix "^([0-9][0-9][0-9])" "bbdb-dial-long-distance-prefix contains non-digits" ?9 sit-for] 9 (#$ . 54147) (list (bbdb-current-field) current-prefix-arg)]) (custom-declare-variable 'bbdb-finger-buffer-name '"*finger*" "The buffer into which finger output should be directed." :group 'bbdb-utilities-finger :type 'string) (defalias 'bbdb-finger-internal #[(address) "\n\"ŏ" [message "Fingering %s..." address condition (byte-code "\n\" \n TO$  \"\nQ! \n O\nP\" !*" [string-match "@" address @ open-network-stream "finger" bbdb-finger-buffer-name nil "localhost" stream set-process-sentinel bbdb-finger-process-sentinel princ "finger " "\n" process-send-string 0 process-send-eof] 6) ((error (byte-code " ; A@ AA AA#R#!ˉ\"" [princ format "error fingering %s: %s\n" address condition "\n" ": " mapconcat #[(x) ";!" [x prin1-to-string] 2] ", " bbdb-finger-process-sentinel nil] 11)))] 3]) (byte-code " B" [bbdb-remaining-addrs-to-finger current-load-list] 2) (defalias 'bbdb-finger-process-sentinel #[(process s) "qeb#!s!@ Adbp\n! !*db!)" [bbdb-finger-buffer-name search-forward " " nil t delete-char -1 boundp bbdb-remaining-addrs-to-finger addr standard-output princ "\n\n \n" bbdb-finger-internal message "Finger done."] 4]) (custom-declare-variable 'bbdb-finger-host-field ''finger-host "*The field for special net addresses used by \"\\[bbdb-finger]\"." :group 'bbdb-utilities-finger :type 'symbol) (defalias 'bbdb-record-finger-host #[(record) "\n\" \"\nH)" [bbdb-finger-host-field bbdb-record-getprop record finger-host bbdb-split "," 6] 4]) #@1064 Finger the network address of a BBDB record. If this command is executed from the *BBDB* buffer, finger the network address of the record at point; otherwise, it prompts for a user. With a numeric prefix argument, finger the Nth network address of the current record; with a prefix argument of ^U, finger all of them. The *finger* buffer is filled asynchronously, meaning that you don't have to wait around for it to finish; but fingering another user before the first finger has finished could have unpredictable results. \ If this command is executed from the *BBDB* buffer, it may be prefixed with "\[bbdb-apply-next-command-to-all-records]" (as in "\[bbdb-apply-next-command-to-all-records]\[bbdb-finger]" instead of simply "\[bbdb-finger]"), meaning to finger all of the users currently listed in the *BBDB* buffer instead of just the one at point. The numeric prefix argument has the same interpretation. You can define a special network address to "finger" by defining a field `finger-host' (default value of `bbdb-finger-host-field'). (defalias 'bbdb-finger #[(record &optional which-address) ":C \n@!@C ;\n C \n @!8C\n@!!AHq!\nA\n@!*" [record nil addrs which-address bbdb-record-finger-host copy-sequence bbdb-finger-buffer-name make-local-variable bbdb-remaining-addrs-to-finger bbdb-finger-internal] 5 (#$ . 56950) (list (if (string= bbdb-buffer-name (buffer-name)) (if (bbdb-do-all-records-p) (mapcar 'car bbdb-records) (bbdb-current-record)) (let (r (p "BBDB Finger: ")) (while (not r) (setq r (bbdb-completing-read-record p)) (if (not r) (ding)) (setq p "Not in the BBDB! Finger: ")) r)) current-prefix-arg)]) #@435 *Apply FUNCTION to all records with timestamps older than DATE. The comparison is done with COMPARE. If FUNCTION is not specified, the selected records are deleted. If COMPARE is not specified, `string-lessp' is used. Example: (bbdb-kill-older "1997-01-01") will delete all records with timestamps older than Jan 1 1997. Notes: 1. Records without timestamp fields will be ignored 2. DATE must be in yyyy-mm-dd format. (defalias 'bbdb-kill-older #[(date &optional compare function) " \n   @\" \" @! A ]," [bbdb-records nil function bbdb-delete-record-internal compare string-lessp cmp fun timestamp records bbdb-record-getprop date] 5 (#$ . -58659) "sKill records with timestamp older than (yyyy-mm-dd): \n"]) #@179 Builds a lambda comparison function that takes one argument, REC. REC is returned if (COMPARE VALUE CMPVAL) is true, where VALUE is the value of the FIELD field of REC. (defalias 'bbdb-compare-records '(macro . #[(cmpval field compare) "EDC \nEEBBEE" [lambda (rec) let val bbdb-record-getprop rec field if and compare cmpval (rec nil)] 10 (#$ . 59434)])) #@86 *Display records with timestamp older than DATE. DATE must be in yyyy-mm-dd format. (defalias 'bbdb-timestamp-older #[(date) "!" [bbdb-display-some #[(rec) " \" )" [bbdb-record-getprop rec timestamp val date] 4]] 2 (#$ . -59820) "sOlder than date (yyyy-mm-dd): "]) #@86 *Display records with timestamp newer than DATE. DATE must be in yyyy-mm-dd format. (defalias 'bbdb-timestamp-newer #[(date) "!" [bbdb-display-some #[(rec) " \" ? )" [bbdb-record-getprop rec timestamp val date] 4]] 2 (#$ . -60107) "sNewer than date (yyyy-mm-dd): "]) #@90 *Display records with creation-date older than DATE. DATE must be in yyyy-mm-dd format. (defalias 'bbdb-creation-older #[(date) "!" [bbdb-display-some #[(rec) " \" )" [bbdb-record-getprop rec creation-date val date] 4]] 2 (#$ . -60400) "sOlder than date (yyyy-mm-dd): "]) #@90 *Display records with creation-date newer than DATE. DATE must be in yyyy-mm-dd format. (defalias 'bbdb-creation-newer #[(date) "!" [bbdb-display-some #[(rec) " \" ? )" [bbdb-record-getprop rec creation-date val date] 4]] 2 (#$ . -60694) "sNewer than date (yyyy-mm-dd): "]) #@66 *Display records that have the same timestamp and creation-date. (defalias 'bbdb-creation-no-change #[nil "!" [bbdb-display-some #[(rec) " \" \" )" [bbdb-record-getprop rec creation-date val timestamp] 5]] 2 (#$ . -60994) nil]) (custom-declare-variable 'bbdb-info-file 'nil "*Set this to the location of the bbdb info file, if it's not in the\nstandard place." :group 'bbdb :type '(choice (const :tag "Standard location" nil) (file :tag "New location"))) (byte-code " B" [Info-directory current-load-list] 2) (defalias 'bbdb-info #[nil "!\n! !! \"!)\"!)" [require info bbdb-inside-electric-display bbdb-electric-throw-to-execute (bbdb-info) bbdb-info-file "bbdb" file file-name-directory Info-directory Info-goto-node format "(%s)Top"] 4 nil nil]) (defalias 'bbdb-help #[nil "!!" [message substitute-command-keys "\\new field: \\[bbdb-insert-new-field] edit field: \\[bbdb-edit-current-field] delete field: \\[bbdb-delete-current-field-or-record] mode help: \\[describe-mode] info: \\[bbdb-info]"] 3 nil nil]) (byte-code "!M! ř\"!" [fboundp member #[(item list) " @kAt" [list item] 3] gmhist-make-magic emacs-version "19" mapcar (bbdb bbdb-name bbdb-company bbdb-net bbdb-changed) provide bbdb-com] 3)