;ELC ;;; Compiled ;;; in Emacs version 26.3 ;;; with all optimizations. ;;; This file contains utf-8 non-ASCII characters, ;;; and so cannot be loaded into Emacs 22 or earlier. (and (boundp 'emacs-version) (< (aref emacs-version (1- (length emacs-version))) ?A) (string-lessp emacs-version "23") (error "`%s' was compiled for Emacs 23 or later" #$)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\207" [require ert ebdb ebdb-com ebdb-snarf ebdb-vcard] 2) #@85 Macro providing a temporary database to work with. (fn DB-AND-FILENAME &rest BODY) (defalias 'ebdb-test-with-database '(macro . #[385 "\300@\301\302\303A@\304BBBBD\305B\306@\307BB\310@D\311@\312BB\313\314B\315 A@DE\257\207" [let make-instance 'ebdb-db-file :file (:dirty t) (ebdb-db-list) ebdb-db-save (nil t) ebdb-db-load push (ebdb-db-list) unwind-protect progn delete-file] 11 (#$ . 540)])) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put ebdb-test-with-database lisp-indent-function 1 put edebug-form-spec ((symbolp symbolp) body)] 5) #@70 Don't let EBDB tests pollute `ebdb-record-tracker'. (fn &rest BODY) (defalias 'ebdb-test-with-records '(macro . #[128 "\300\301BB\207" [let ((ebdb-hashtable (make-hash-table :test 'equal)) (ebdb-org-hashtable (make-hash-table :test 'equal)) ebdb-record-tracker)] 4 (#$ . 1115)])) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put ebdb-test-with-records lisp-indent-function 0 put edebug-form-spec t] 5) (defvar ebdb-test-database-1 (byte-code "\301\302\303\"!\207" [temporary-file-directory make-temp-name expand-file-name "emacs-ebdb-test-db-1-"] 4)) (defvar ebdb-test-database-2 (byte-code "\301\302\303\"!\207" [temporary-file-directory make-temp-name expand-file-name "emacs-ebdb-test-db-2-"] 4)) (byte-code "\300\301\302\303\301\304\305\306\307\306&\"\210\300\310\302\303\310\311\312\306\307\306&\"\210\300\313\302\303\313\314\315\306\307\306&\"\210\300\316\302\303\316\306\317\306\307\306&\"\210\300\320\302\303\320\321\322\306\307\306&\"\210\300\323\302\303\323\324\325\306\307\306&\"\210\300\326\302\303\326\327\330\306\307\306&\"\210\300\331\302\303\331\332\333\306\307\306&\"\210\300\334\302\303\334\335\336\306\307\306&\"\210\300\337\302\303\337\340\341\306\307\306&\"\210\300\342\302\303\342\343\344\306\307\306&\"\210\300\345\302\303\345\346\347\306\307\306&\"\210\300\350\302\303\350\351\352\306\307\306&\"\210\300\353\302\303\353\354\355\306\307\306&\"\210\300\356\302\303\356\357\360\306\307\306&\"\210\300\361\302\303\361\362\363\306\307\306&\"\210\300\364\302\303\364\365\366\306\307\306&\"\210\300\367\302\303\367\306\370\306\307\306&\"\210\300\371\302\303\371\372\373\306\307\306&\"\210\300\374\302\303\374\375\376\306\307\306&\"\210\300\377\302\303\377\306\201@\306\307\306&\"\210\300\201A\302\303\201A\201B\201C\306\307\306&\"\210\300\201D\302\303\201D\201E\201F\306\307\306&\"\210\300\201G\302\303\201G\201H\201I\306\307\306&\"\210\201J\201K!\207" [ert-set-test ebdb-make-database record ert-test "Make a database and save it to disk." #[0 "\303\304\305\306\307%\310\311\310\307#\210\312!\210\211 B\313\216\314C\3151(\316)C0\2023\317\240\210\211@AD\262\320C\310C\321\322\323\324\325$\326\"\327$\216\330\242\"\240)\204Z\331\242!\210\266\332C\3331n\316\334\335\")C0\202y\317\240\210\211@AD\262\336C\310C\321\322\323\324\325$\337\"\327$\216\330\242\"\240)\204\240\331\242!\210\210\211\242\262\266\202*\207" [ebdb-test-database-1 ebdb-db-list signal-hook-function make-instance ebdb-db-file :file :dirty t nil ebdb-db-save ebdb-db-load #[0 "\301!\207" [ebdb-test-database-1 delete-file] 2] file-exists-p (error) ert--should-signal-hook signal #1=#:ert-form-evaluation-aborted-6402 make-byte-code 0 "\303\304C\305\300\242\301BD\244\306\302\242\307\"?\205\310\302\242D\244\311\312N\211\205%\313\314\301\"D\262\244\240\210\315\303\242!\207" vconcat vector [(should (file-exists-p ebdb-test-database-1)) :form eql #1# :value file-exists-p ert-explainer :explanation apply ert--signal-should-execution] 7 apply ert-fail null (error) slot-value dirty #2=#:ert-form-evaluation-aborted-6407 [(should (null (slot-value db 'dirty))) :form eql #2# :value null ert-explainer :explanation apply ert--signal-should-execution]] 14] nil :passed ebdb-read-database "Read a database from file." #[0 "\303\304\305\306\307%\310\311\310\307#\210\312!\210\211 B\313\216\314\315\307#\316C\3171.\320)\304D0\2029\321\240\210\211@AD\262\322C\310C\323\324\325\326\327$\330\"\331$\216\332\242\"\240)\204`\333\242!\210\210\211\242\262\266\202\262*\207" [ebdb-test-database-1 ebdb-db-list signal-hook-function make-instance ebdb-db-file :file :dirty t nil ebdb-db-save ebdb-db-load #[0 "\301!\207" [ebdb-test-database-1 delete-file] 2] eieio-persistent-read ebdb-db object-of-class-p (error) ert--should-signal-hook signal #3=#:ert-form-evaluation-aborted-6412 make-byte-code 0 "\303\304C\305\300\242\301BD\244\306\302\242\307\"?\205\310\302\242D\244\311\312N\211\205%\313\314\301\"D\262\244\240\210\315\303\242!\207" vconcat vector [(should (object-of-class-p reloaded 'ebdb-db-file)) :form eql #3# :value object-of-class-p ert-explainer :explanation apply ert--signal-should-execution] 7 apply ert-fail] 15] ebdb-database-unsynced "Make sure database knows it's unsynced." #[0 "\303\304\305\306\307%\310\311\310\307#\210\312!\210\211 B\313\216\314\315!\210\316\317\310\320\321\"#\210\322C\32315\324)C0\202@\325\240\210\211@AD\262\326C\310C\327\330\331\332\333$\334\"\335$\216\336\242\"\240)\204g\337\242!\210\210\211\242\262\266\202*\207" [ebdb-test-database-1 ebdb-db-list signal-hook-function make-instance ebdb-db-file :file :dirty t nil ebdb-db-save ebdb-db-load #[0 "\301!\207" [ebdb-test-database-1 delete-file] 2] sit-for 0.1 append-to-file "\n;; Junk string" slot-value file ebdb-db-unsynced (error) ert--should-signal-hook signal #4=#:ert-form-evaluation-aborted-6417 make-byte-code 0 "\303\304C\305\300\242\301BD\244\306\302\242\307\"?\205\310\302\242D\244\311\312N\211\205%\313\314\301\"D\262\244\240\210\315\303\242!\207" vconcat vector [(should (ebdb-db-unsynced db)) :form eql #4# :value ebdb-db-unsynced ert-explainer :explanation apply ert--signal-should-execution] 7 apply ert-fail] 14] ebdb-make-record #[0 "\305\306\307\"\305\306\307\"\310\311 !\312C\3131\314)\315D0\202*\316\240\210\211@AD\262\317C\310C\320\321\322\323\324$\325\"\326$\216\327\242\"\240)\204Q\330\242!\210\210\211\242\262\266\202\262+\207" [ebdb-record-tracker ebdb-org-hashtable ebdb-hashtable ebdb-default-record-class signal-hook-function make-hash-table :test equal nil make-instance object-of-class-p (error) ert--should-signal-hook ebdb-record signal #5=#:ert-form-evaluation-aborted-6422 make-byte-code 0 "\303\304C\305\300\242\301BD\244\306\302\242\307\"?\205\310\302\242D\244\311\312N\211\205%\313\314\301\"D\262\244\240\210\315\303\242!\207" vconcat vector [(should (object-of-class-p rec 'ebdb-record)) :form eql #5# :value object-of-class-p ert-explainer :explanation apply ert--signal-should-execution] 7 apply ert-fail] 14] ebdb-add-record "Create a record, add it to DB, and make sure it has a UUID." #[0 "\306\307\310\"\306\307\310\"\311\312\313\314 \315\316%\311\317\311\316#\210\320!\210\211\fB\321\216\312\322!\323C\32419\325\326!)C0\202D\327\240\210\211@AD\262\330C\311C\331\332\333\334\335$\336\"\337$\216\340\242\"\240)\204k\341\242!\210\266\342\"\210\343C\3441\203\325\326!)C0\202\216\327\240\210\211@AD\262\345C\311C\331\332\333\334\335$\346\"\337$\216\340\242\"\240)\204\265\341\242!\210\266\347C\3501\311\325\326!)\351D0\202\324\327\240\210\211@AD\262\352C\311C\331\332\333\334\335$\353\"\337$\216\340\242\"\240)\204\373\341\242!\210\210\211\242\262\266\202\262*\262+\207" [ebdb-record-tracker ebdb-org-hashtable ebdb-hashtable ebdb-test-database-1 ebdb-db-list signal-hook-function make-hash-table :test equal nil make-instance ebdb-db-file :file :dirty t ebdb-db-save ebdb-db-load #[0 "\301!\207" [ebdb-test-database-1 delete-file] 2] ebdb-record-person null (error) ert--should-signal-hook ebdb-record-uuid signal #6=#:ert-form-evaluation-aborted-6427 make-byte-code 0 "\303\304C\305\300\242\301BD\244\306\302\242\307\"?\205\310\302\242D\244\311\312N\211\205%\313\314\301\"D\262\244\240\210\315\303\242!\207" vconcat vector [(should (null (ebdb-record-uuid rec))) :form eql #6# :value null ert-explainer :explanation apply ert--signal-should-execution] 7 apply ert-fail ebdb-db-add-record stringp (error) #7=#:ert-form-evaluation-aborted-6432 [(should (stringp (ebdb-record-uuid rec))) :form eql #7# :value stringp ert-explainer :explanation apply ert--signal-should-execution] ebdb-gethash (error) uuid #8=#:ert-form-evaluation-aborted-6437 [(should (ebdb-gethash (ebdb-record-uuid rec) 'uuid)) :form eql #8# :value ebdb-gethash ert-explainer :explanation apply ert--signal-should-execution]] 15] ebdb-load-record-multiple-databases "Test loading of a record into multiple databases." #[0 "\306\307\310\"\306\307\310\"\311\312\313\314 \315\316%\311\317\311\316#\210\320!\210\211\fB\321\216\312\313\314 \315\316%\311\317\311\316#\210\320!\210\211\fB\322\216\312\323!\324\"\210\324\"\210\325C\3261]\327*\330G)D0\202h\331\240\210\211@AD\262\332C\311C\333\334\335\336\337$\340\"\341$\216\342\242\"\240)\204\217\343\242!\210\266\310C\3441\247\327*\345\346!\347\")D0\202\262\331\240\210\211@AD\262\350C\311C\333\334\335\336\337$\351\"\341$\216\342\242\"\240)\204\331\343\242!\210\210\211\242\262\266\202\262*\262*\262+\207" [ebdb-record-tracker ebdb-org-hashtable ebdb-hashtable ebdb-test-database-1 ebdb-db-list ebdb-test-database-2 make-hash-table :test equal nil make-instance ebdb-db-file :file :dirty t ebdb-db-save ebdb-db-load #[0 "\301!\207" [ebdb-test-database-1 delete-file] 2] #[0 "\301!\207" [ebdb-test-database-2 delete-file] 2] ebdb-record-person ebdb-db-add-record = (error) ert--should-signal-hook 1 signal #9=#:ert-form-evaluation-aborted-6442 make-byte-code 0 "\303\304C\305\300\242\301BD\244\306\302\242\307\"?\205\310\302\242D\244\311\312N\211\205%\313\314\301\"D\262\244\240\210\315\303\242!\207" vconcat vector [(should (= 1 (length ebdb-record-tracker))) :form eql #9# :value = ert-explainer :explanation apply ert--signal-should-execution] 7 apply ert-fail (error) ebdb-gethash ebdb-record-uuid uuid #10=#:ert-form-evaluation-aborted-6447 [(should (equal rec (ebdb-gethash (ebdb-record-uuid rec) 'uuid))) :form eql #10# :value equal ert-explainer :explanation apply ert--signal-should-execution] signal-hook-function] 16] ebdb-load-record-multiple-databases-error "Test that record can't be edited when one of its databases is\n read-only." #[0 "\306\307\310\"\306\307\310\"\311\312\313\314 \315\316%\311\317\311\316#\210\320!\210\211\fB\321\216\312\313\314 \315\316%\311\317\311\316#\210\320!\210\211\fB\322\216\312\323!\324\"\210\324\"\210\325\326\316#\266\327C\3301g\3311\332\333\334\")D0\202r\335\240\210\211@AD\262\336C\311C\311\337\340\341\342\343!\344\"\345$\3461\250\337\340\347\342\343\n\n\n\n$\350\"\351$\216\352\242\"\240)0\202\267\316\262\353\354\311$\210\240\262\210\204\306\355\356 \357\360D\"!\210\266\211\242\262\266\202\262*\262*\262+\207" [ebdb-record-tracker ebdb-org-hashtable ebdb-hashtable ebdb-test-database-1 ebdb-db-list ebdb-test-database-2 make-hash-table :test equal nil make-instance ebdb-db-file :file :dirty t ebdb-db-save ebdb-db-load #[0 "\301!\207" [ebdb-test-database-1 delete-file] 2] #[0 "\301!\207" [ebdb-test-database-2 delete-file] 2] ebdb-record-person ebdb-db-add-record eieio-oset read-only ebdb-record-insert-field (error) ert--should-signal-hook ebdb-parse ebdb-field-mail #11="none@such.com" signal #12=#:ert-form-evaluation-aborted-6452 make-byte-code 0 "\300\242\207" vconcat vector #16=[] 1 (error) "\303\304C\305\300\242\301BD\244\306\302\242\307\"?\205\310\302\242D\244\311\312N\211\205%\313\314\301\"D\262\244\240\210\315\303\242!\207" [(should-error (ebdb-record-insert-field rec (ebdb-parse 'ebdb-field-mail #11#)) :type 'ebdb-readonly-db) :form eql #12# :value ebdb-record-insert-field ert-explainer :explanation apply ert--signal-should-execution] 7 apply ert--should-error-handle-error ebdb-readonly-db ert-fail append :fail-reason #18="did not signal an error" signal-hook-function] 18] ebdb-auto-insert-timestamp-creation "Test the creation of timestamp and creation-date fields.\nActually exercises the `initialize-instance' methods of records." #[0 "\306\307\310\"\306\307\310\"\311\312\313\314 \315\316%\311\317\311\316#\210\320!\210\211\fB\321\216\312 !\312 \322\311\323\311%\324\211\325\"\326\"\327\330!C\311C\331\332\333\334\335\"\336\"\337$\216\340\324\326\"!;\205_\340\324\325\"!;\240)\204i\341\242!\210\266\342!\210\327\330!C\311C\331\332\333\334\335\"\343\"\337$\216\340\324\326\"!;\205\230\340\324\325\"!;\240)\204\242\341\242!\210\266\344\"\210\317!\210\345\346!\210\347!\210\350\324\351\"\352\316#\262\310C\3531\327\3543\324\211@\325\"\326\")D0\202\342\355\240\210\211@AD\262\356C\311C\331\332\357\334\335$\360\"\361$\216\362\242\"\240)\204 \341\242!\210\210\211\242\262\266\202\266\203*\262+\207" [ebdb-record-tracker ebdb-org-hashtable ebdb-hashtable ebdb-test-database-1 ebdb-db-list ebdb-default-record-class make-hash-table :test equal nil make-instance ebdb-db-file :file :dirty t ebdb-db-save ebdb-db-load #[0 "\301!\207" [ebdb-test-database-1 delete-file] 2] :timestamp :creation-date slot-value creation-date timestamp gensym "ert-form-evaluation-aborted-" make-byte-code 0 "\301\302\303\304\305\300\242\257\240\210\306\301\242!\207" vconcat vector [(should #13=(and (stringp (ebdb-string (slot-value r1 'timestamp))) (stringp (ebdb-string (slot-value r1 'creation-date))))) :form #13# :value ert--signal-should-execution] 6 ebdb-string ert-fail delete-instance [(should #14=(and (stringp (ebdb-string (slot-value r2 'timestamp))) (stringp (ebdb-string (slot-value r2 'creation-date))))) :form #14# :value ert--signal-should-execution] ebdb-db-add-record sleep-for 2 ebdb-db-unload eieio-persistent-read file ebdb-db (error) ert--should-signal-hook signal #15=#:ert-form-evaluation-aborted-6463 "\303\304C\305\300\242\301BD\244\306\302\242\307\"?\205\310\302\242D\244\311\312N\211\205%\313\314\301\"D\262\244\240\210\315\303\242!\207" [(should (equal r2-date (slot-value (slot-value (car ebdb-record-tracker) 'creation-date) 'timestamp))) :form eql #15# :value equal ert-explainer :explanation apply ert--signal-should-execution] 7 apply signal-hook-function] 17] ebdb-cant-find-related-role "Find org record from a role field.\nIf it doesn't exist, raise `ebdb-related-unfound'." #[0 "\304\305\306\"\304\305\306\"\307\310\311\312\310\313\312\314##\310\315\316\314\317\320%\321\"\210\322C\32311\324)D0\202<\325\240\210\211@AD\262\326C\307C\307\327\330\331\332\333!\334\"\335$\3361r\327\330\337\332\333\n\n\n\n$\340\"\341$\216\342\242\"\240)0\202\201\343\262\344\345\307$\210\240\262\210\204\220\346\347 \350\351D\"!\210\266\211\242\262\266\202\266\202+\207" [ebdb-record-tracker ebdb-org-hashtable ebdb-hashtable signal-hook-function make-hash-table :test equal nil make-instance ebdb-record-person :uuid ebdb-field-uuid "bob" ebdb-field-role :record-uuid :org-uuid "bogus" ebdb-record-insert-field ebdb-record-related (error) ert--should-signal-hook signal #17=#:ert-form-evaluation-aborted-6468 make-byte-code 0 "\300\242\207" vconcat vector #16# 1 (error) "\303\304C\305\300\242\301BD\244\306\302\242\307\"?\205\310\302\242D\244\311\312N\211\205%\313\314\301\"D\262\244\240\210\315\303\242!\207" [(should-error (ebdb-record-related rec role) :type 'ebdb-related-unfound) :form eql #17# :value ebdb-record-related ert-explainer :explanation apply ert--signal-should-execution] 7 apply t ert--should-error-handle-error ebdb-related-unfound ert-fail append :fail-reason #18#] 17] ebdb-unload-db-with-relations "Cross-db relations break correctly when a db is unloaded." #[0 "\306\307\310\"\306\307\310\"\311\312\313\314 \315\316%\311\317\311\316#\210\320!\210\211\fB\321\216\312\313\314 \315\316%\311\317\311\316#\210\320!\210\211\fB\322\216\312\323!\312\323!\311\324\"\210\324\"\210\312\325\326\327!#\262\330\"\210\331!\210\332C\3331r\3348)D0\202}\335\240\210\211@AD\262\336C\311C\311\337\340\341\342\343!\344\"\345$\3461\263\337\340\347\342\343\n\n\n\n$\350\"\351$\216\352\242\"\240)0\202\302\316\262\353\354\311$\210\240\262\210\204\321\355\356 \357\360D\"!\210\266\361C\3621\353\3348\3639\364$)\365D0\202\366\335\240\210\211@AD\262\366C\311C\337\340\347\342\343$\367\"\351$\216\352\242\"\240)\204\355\242!\210\210\211\242\262\266\202\266\203*\262*\262+\207" [ebdb-record-tracker ebdb-org-hashtable ebdb-hashtable ebdb-test-database-1 ebdb-db-list ebdb-test-database-2 make-hash-table :test equal nil make-instance ebdb-db-file :file :dirty t ebdb-db-save ebdb-db-load #[0 "\301!\207" [ebdb-test-database-1 delete-file] 2] #[0 "\301!\207" [ebdb-test-database-2 delete-file] 2] ebdb-record-person ebdb-db-add-record ebdb-field-relation :rel-uuid ebdb-record-uuid ebdb-record-insert-field ebdb-db-unload ebdb-record-related (error) ert--should-signal-hook signal #19=#:ert-form-evaluation-aborted-6475 make-byte-code 0 "\300\242\207" vconcat vector #16# 1 (error) "\303\304C\305\300\242\301BD\244\306\302\242\307\"?\205\310\302\242D\244\311\312N\211\205%\313\314\301\"D\262\244\240\210\315\303\242!\207" [(should-error (ebdb-record-related rec1 rel-f) :type 'ebdb-related-unfound) :form eql #19# :value ebdb-record-related ert-explainer :explanation apply ert--signal-should-execution] 7 apply ert--should-error-handle-error ebdb-related-unfound ert-fail append :fail-reason #18# string= (error) ebdb-fmt-field oneline #20="record not loaded" #21=#:ert-form-evaluation-aborted-6482 [(should (string= (ebdb-fmt-field ebdb-default-multiline-formatter rel-f 'oneline rec1) #20#)) :form eql #21# :value string= ert-explainer :explanation apply ert--signal-should-execution] signal-hook-function ebdb-default-multiline-formatter] 20] ebdb-test-with-record-edits "Test the `ebdb-with-record-edits' macro." #[0 "\306\307\310\"\306\307\310\"\311\312\313\314 \315\316%\311\317\311\316#\210\320!\210\211\fB\321\216\312\313\314 \315\316%\311\317\311\316#\210\320!\210\211\fB\322\216\312\323!\312\323!\324\"\210\324\"\210\324\"\210\325\326\316#\266D\211\203\211@\3271\354\3301\325\331\332\"\333!@>\204\200\334\335\336D\"\210\211\337H\262\211\203\226\211@\340!\210A\266\202\202\205\210\341\342\"\210\343\344\345\346\"\"\210\341\347\"\210\350 \211\203\307\211@r\211q\210\351\352!\203\277\353\316!\210)A\266\202\202\253\210\354\355\351\352!?#00\202\3700\211A@\356!\210\357\360\"\210\361\362!\262\262\202\370\357\363A@\"\210\361\362!\262\210A\266\202\202^\210\331C\3641\365A)\366D0\202\334\240\210\211@AD\262\367C\311C\370\371\372\373\374$\375\"\337$\216\376\242\"\240)\203D\377\242!\210\210\211\242\262\266\202\266\202*\262*\262+\207" [ebdb-record-tracker ebdb-org-hashtable ebdb-hashtable ebdb-test-database-1 ebdb-db-list ebdb-test-database-2 make-hash-table :test equal nil make-instance ebdb-db-file :file :dirty t ebdb-db-save ebdb-db-load #[0 "\301!\207" [ebdb-test-database-1 delete-file] 2] #[0 "\301!\207" [ebdb-test-database-2 delete-file] 2] ebdb-record-person ebdb-db-add-record eieio-oset read-only (ebdb-readonly-db) (ebdb-unsynced-db) slot-value cache type-of signal wrong-type-argument ebdb-record-cache 7 ebdb-db-editable run-hook-with-args ebdb-change-hook ebdb-record-insert-field ebdb-parse ebdb-field-mail "none@such.com" ebdb-after-change-hook buffer-list derived-mode-p ebdb-mode set-buffer-modified-p ebdb-redisplay-records reformat ebdb-reload-database message "Database %s is out of sync" sit-for 1 "Database %s is read-only" (error) ert--should-signal-hook mail #22=#:ert-form-evaluation-aborted-6487 make-byte-code 0 "\303\304C\305\300\242\301BD\244\306\302\242\307\"?\205\310\302\242D\244\311\312N\211\205%\313\314\301\"D\262\244\240\210\315\303\242!\207" vconcat vector [(should-not (slot-value rec1 'mail)) :form eql #22# :value slot-value ert-explainer :explanation apply ert--signal-should-execution] apply ert-fail cl-struct-ebdb-record-cache-tags signal-hook-function] 17] ebdb-add-delete-record-field "Add and delete fields." #[0 "\306\307\310\"\306\307\310\"\311\312\313!\314 \315\"\314\f\316\"\317\320#\210\317\"\210\321C\32215\323\324!@)\325D0\202@\326\240\210\211@AD\262\327C\311C\330\331\332\333\334$\335\"\336$\216\337\242\"\240)\204g\340\242!\210\266\321C\3411|\323\342!@)\343D0\202\207\326\240\210\211@AD\262\344C\311C\330\331\332\333\334$\345\"\336$\216\337\242\"\240)\204\256\340\242!\210\266\346\"\210\346\347#\210\350C\3511\314\323\342!)C0\202\327\326\240\210\211@AD\262\352C\311C\330\331\332\333\334$\353\"\336$\216\337\242\"\240)\204\376\340\242!\210\266\350C\3541\323\324!)C0\202\326\240\210\211@AD\262\355C\311C\330\331\332\333\334$\356\"\336$\216\337\242\"\240)\204C\340\242!\210\210\211\242\262\266\202\266\203+\207" [ebdb-record-tracker ebdb-org-hashtable ebdb-hashtable ebdb-default-mail-class ebdb-default-phone-class signal-hook-function make-hash-table :test equal nil make-instance ebdb-record-person ebdb-parse "bogus@nosuchaddress.com" "+1 (555) 555-5555" ebdb-record-insert-field mail object-of-class-p (error) ert--should-signal-hook ebdb-record-phone ebdb-field-phone signal #23=#:ert-form-evaluation-aborted-6492 make-byte-code 0 "\303\304C\305\300\242\301BD\244\306\302\242\307\"?\205\310\302\242D\244\311\312N\211\205%\313\314\301\"D\262\244\240\210\315\303\242!\207" vconcat vector [(should (object-of-class-p (car (ebdb-record-phone rec)) 'ebdb-field-phone)) :form eql #23# :value object-of-class-p ert-explainer :explanation apply ert--signal-should-execution] 7 apply ert-fail (error) ebdb-record-mail ebdb-field-mail #24=#:ert-form-evaluation-aborted-6497 [(should (object-of-class-p (car (ebdb-record-mail rec)) 'ebdb-field-mail)) :form eql #24# :value object-of-class-p ert-explainer :explanation apply ert--signal-should-execution] ebdb-record-delete-field phone null (error) #25=#:ert-form-evaluation-aborted-6502 [(should (null (ebdb-record-mail rec))) :form eql #25# :value null ert-explainer :explanation apply ert--signal-should-execution] (error) #26=#:ert-form-evaluation-aborted-6507 [(should (null (ebdb-record-phone rec))) :form eql #26# :value null ert-explainer :explanation apply ert--signal-should-execution]] 16] ebdb-insert-unacceptable "Make sure records reject unacceptable fields." #[0 "\304\305\306\"\304\305\306\"\307\310\311!\310\312\313\314#\315C\3161#\311\307\312BD0\202.\317\240\210\211@AD\262\320C\307C\307\321\322\323\324\325!\326\"\327$\3301d\321\322\331\324\325\n\n\n\n$\332\"\333$\216\334\242\"\240)0\202s\335\262\336\337\307$\210\240\262\210\204\202\340\341 \342\343D\"!\210\266\344C\3451\224\346)D0\202\237\317\240\210\211@AD\262\347C\307C\307\321\322\323\324\325!\326\"\327$\3501\325\321\322\331\324\325\n\n\n\n$\351\"\333$\216\334\242\"\240)0\202\344\335\262\336\337\307$\210\240\262\210\204\363\340\341 \342\343D\"!\210\266\211\242\262\266\202\266\202+\207" [ebdb-record-tracker ebdb-org-hashtable ebdb-hashtable signal-hook-function make-hash-table :test equal nil make-instance ebdb-record-person ebdb-field-domain :domain "gnu.org" ebdb-record-field-slot-query (error) signal #27=#:ert-form-evaluation-aborted-6512 make-byte-code 0 "\300\242\207" vconcat vector #16# 1 (error) "\303\304C\305\300\242\301BD\244\306\302\242\307\"?\205\310\302\242D\244\311\312N\211\205%\313\314\301\"D\262\244\240\210\315\303\242!\207" [(should-error (ebdb-record-field-slot-query 'ebdb-record-person (cons nil 'ebdb-field-domain)) :type 'ebdb-unacceptable-field) :form eql #27# :value ebdb-record-field-slot-query ert-explainer :explanation apply ert--signal-should-execution] 7 apply t ert--should-error-handle-error ebdb-unacceptable-field ert-fail append :fail-reason #18# ebdb-record-insert-field (error) ert--should-signal-hook #28=#:ert-form-evaluation-aborted-6519 (error) [(should-error (ebdb-record-insert-field rec field) :type 'ebdb-unacceptable-field) :form eql #28# :value ebdb-record-insert-field ert-explainer :explanation apply ert--signal-should-execution]] 17] ebdb-change-record-field "Change record's field." #[0 "\305\306\307\"\305\306\307\"\310\311\312!\313 \314\"\313 \315\"\316\"\210\317C\32010\321\322\323!!)\314D0\202;\324\240\210\211@AD\262\325C\310C\326\327\330\331\332$\333\"\334$\216\335\242\"\240)\204b\336\242!\210\266\337#\210\317C\3401~\321\322\323!!)\315D0\202\211\324\240\210\211@AD\262\341C\310C\326\327\330\331\332$\342\"\334$\216\335\242\"\240)\204\260\336\242!\210\210\211\242\262\266\202\266\203+\207" [ebdb-record-tracker ebdb-org-hashtable ebdb-hashtable ebdb-default-mail-class signal-hook-function make-hash-table :test equal nil make-instance ebdb-record-person ebdb-parse "bogus@nosuchaddress.com" "no@such.address" ebdb-record-insert-field string= (error) ert--should-signal-hook ebdb-string ebdb-record-one-mail signal #29=#:ert-form-evaluation-aborted-6526 make-byte-code 0 "\303\304C\305\300\242\301BD\244\306\302\242\307\"?\205\310\302\242D\244\311\312N\211\205%\313\314\301\"D\262\244\240\210\315\303\242!\207" vconcat vector [(should (string= (ebdb-string (ebdb-record-one-mail rec)) "bogus@nosuchaddress.com")) :form eql #29# :value string= ert-explainer :explanation apply ert--signal-should-execution] 7 apply ert-fail ebdb-record-change-field (error) #30=#:ert-form-evaluation-aborted-6531 [(should (string= (ebdb-string (ebdb-record-one-mail rec)) "no@such.address")) :form eql #30# :value string= ert-explainer :explanation apply ert--signal-should-execution]] 16] ebdb-address-decompose "Test `ebdb-decompose-ebdb-address'." #[0 "\301C\3021\303\304\305\306!)D0\202\307\240\210\211@AD\262\310C\311C\312\313\314\315\316$\317\"\320$\216\321\242\"\240)\204D\322\242!\210\266\301C\3231X\303\324\305\325!)D0\202c\307\240\210\211@AD\262\326C\311C\312\313\314\315\316$\327\"\320$\216\321\242\"\240)\204\212\322\242!\210\266\301C\3301\236\303\331\305\332!)D0\202\251\307\240\210\211@AD\262\333C\311C\312\313\314\315\316$\334\"\320$\216\321\242\"\240)\204\320\322\242!\210\266\301C\3351\344\303\336\305\337!)D0\202\357\307\240\210\211@AD\262\340C\311C\312\313\314\315\316$\341\"\320$\216\321\242\"\240)\204\322\242!\210\266\301C\3421*\303\343\305\344!)D0\2025\307\240\210\211@AD\262\345C\311C\312\313\314\315\316$\346\"\320$\216\321\242\"\240)\204\\\322\242!\210\266\301C\3471p\303\350\305\351!)D0\202{\307\240\210\211@AD\262\352C\311C\312\313\314\315\316$\353\"\320$\216\321\242\"\240)\204\242\322\242!\210\266\301C\3541\266\303\355\305\356!)D0\202\301\307\240\210\211@AD\262\357C\311C\312\313\314\315\316$\360\"\320$\216\321\242\"\240)\204\350\322\242!\210\266\301C\3611\374\303\362\305\363!)D0\202\307\240\210\211@AD\262\364C\311C\312\313\314\315\316$\365\"\320$\216\321\242\"\240)\204.\322\242!\210\210\211\242\262\207" [signal-hook-function equal (error) ert--should-signal-hook #31=("Charles Lamb" "charlie@lamb.com") ebdb-decompose-ebdb-address #32="Charles Lamb " signal #33=#:ert-form-evaluation-aborted-6536 nil make-byte-code 0 "\303\304C\305\300\242\301BD\244\306\302\242\307\"?\205\310\302\242D\244\311\312N\211\205%\313\314\301\"D\262\244\240\210\315\303\242!\207" vconcat vector [(should (equal '#31# (ebdb-decompose-ebdb-address #32#))) :form eql #33# :value equal ert-explainer :explanation apply ert--signal-should-execution] 7 apply ert-fail (error) #34=("Charles Lamb" "charlie@lamb.com") #35="Charles Lamb mailto:charlie@lamb.com" #36=#:ert-form-evaluation-aborted-6541 [(should (equal '#34# (ebdb-decompose-ebdb-address #35#))) :form eql #36# :value equal ert-explainer :explanation apply ert--signal-should-execution] (error) #37=("Charles Lamb" "charlie@lamb.com") #38="\"Charles Lamb\" charlie@lamb.com" #39=#:ert-form-evaluation-aborted-6546 [(should (equal '#37# (ebdb-decompose-ebdb-address #38#))) :form eql #39# :value equal ert-explainer :explanation apply ert--signal-should-execution] (error) #40=("Charles Lamb" "charlie@lamb.com") #41="charlie@lamb.com (Charles Lamb)" #42=#:ert-form-evaluation-aborted-6551 [(should (equal '#40# (ebdb-decompose-ebdb-address #41#))) :form eql #42# :value equal ert-explainer :explanation apply ert--signal-should-execution] (error) #43=(nil "charlie@lamb.com") #44="\"charlie@lamb.com\" charlie@lamb.com" #45=#:ert-form-evaluation-aborted-6556 [(should (equal '#43# (ebdb-decompose-ebdb-address #44#))) :form eql #45# :value equal ert-explainer :explanation apply ert--signal-should-execution] (error) #46=(nil "charlie@lamb.com") #47="" #48=#:ert-form-evaluation-aborted-6561 [(should (equal '#46# (ebdb-decompose-ebdb-address #47#))) :form eql #48# :value equal ert-explainer :explanation apply ert--signal-should-execution] (error) #49=(nil "charlie@lamb.com") #50="charlie@lamb.com " #51=#:ert-form-evaluation-aborted-6566 [(should (equal '#49# (ebdb-decompose-ebdb-address #50#))) :form eql #51# :value equal ert-explainer :explanation apply ert--signal-should-execution] (error) #52=("Charles Lamb" nil) #53="Charles Lamb" #54=#:ert-form-evaluation-aborted-6571 [(should (equal '#52# (ebdb-decompose-ebdb-address #53#))) :form eql #54# :value equal ert-explainer :explanation apply ert--signal-should-execution]] 13] ebdb-parse-mail "Parse various strings as mail fields." #[0 "\301C\3021\303\304\305\306\307\"\310\")\311D0\202!\312\240\210\211@AD\262\313C\314C\315\316\317\320\321$\322\"\323$\216\324\242\"\240)\204H\325\242!\210\266\301C\3261`\303\304\305\306\307\"\327\")\330D0\202k\312\240\210\211@AD\262\331C\314C\315\316\317\320\321$\332\"\323$\216\324\242\"\240)\204\222\325\242!\210\266\305C\3331\241\306\311D0\202\254\312\240\210\211@AD\262\334C\314C\314\315\316\335\320\321!\336\"\337$\3401\342\315\316\317\320\321\n\n\n\n$\341\"\323$\216\324\242\"\240)0\202\361\342\262\343\344\314$\210\240\262\210\204\325\345 \346\347D\"!\210\266\211\242\262\207" [signal-hook-function equal (error) ert--should-signal-hook slot-value ebdb-parse ebdb-field-mail #55="William Hazlitt " aka #56="William Hazlitt" signal #57=#:ert-form-evaluation-aborted-6576 nil make-byte-code 0 "\303\304C\305\300\242\301BD\244\306\302\242\307\"?\205\310\302\242D\244\311\312N\211\205%\313\314\301\"D\262\244\240\210\315\303\242!\207" vconcat vector [(should (equal (slot-value (ebdb-parse 'ebdb-field-mail #55#) 'aka) #56#)) :form eql #57# :value equal ert-explainer :explanation apply ert--signal-should-execution] 7 apply ert-fail (error) mail #58="bill@theexaminer.com" #59=#:ert-form-evaluation-aborted-6581 [(should (equal (slot-value (ebdb-parse 'ebdb-field-mail "William Hazlitt ") 'mail) #58#)) :form eql #59# :value equal ert-explainer :explanation apply ert--signal-should-execution] (error) #60=#:ert-form-evaluation-aborted-6586 "\300\242\207" #16# 1 (error) [(should-error (ebdb-parse 'ebdb-field-mail "William Hazlitt") :type 'ebdb-unparseable) :form eql #60# :value ebdb-parse ert-explainer :explanation apply ert--signal-should-execution] t ert--should-error-handle-error ebdb-unparseable append :fail-reason #18#] 15] ebdb-parse-name "Parse various strings as name fields." #[0 "\301C\3021\303\304\305\306\307\"\310\")\311D0\202!\312\240\210\211@AD\262\313C\314C\315\316\317\320\321$\322\"\323$\216\324\242\"\240)\204H\325\242!\210\266\301C\3261`\303\304\305\306\327\"\330\")\331D0\202k\312\240\210\211@AD\262\332C\314C\315\316\317\320\321$\333\"\323$\216\324\242\"\240)\204\222\325\242!\210\266\301C\3341\252\303\304\305\306\335\"\336\")\337D0\202\265\312\240\210\211@AD\262\340C\314C\315\316\317\320\321$\341\"\323$\216\324\242\"\240)\204\334\325\242!\210\266\301C\3421\364\303\304\305\306\343\"\330\")\344D0\202\377\312\240\210\211@AD\262\345C\314C\315\316\317\320\321$\346\"\323$\216\324\242\"\240)\204&\325\242!\210\266\301C\3471>\303\304\305\306\350\"\310\")\351D0\202I\312\240\210\211@AD\262\352C\314C\315\316\317\320\321$\353\"\323$\216\324\242\"\240)\204p\325\242!\210\266\301C\3541\210\303\304\305\306\355\"\310\")\356D0\202\223\312\240\210\211@AD\262\357C\314C\315\316\317\320\321$\360\"\323$\216\324\242\"\240)\204\272\325\242!\210\266\301C\3611\322\303\304\305\306\362\"\310\")\356D0\202\335\312\240\210\211@AD\262\363C\314C\315\316\317\320\321$\364\"\323$\216\324\242\"\240)\204\325\242!\210\266\301C\3651\303\304\305\306\366\"\310\")\356D0\202'\312\240\210\211@AD\262\367C\314C\315\316\317\320\321$\370\"\323$\216\324\242\"\240)\204N\325\242!\210\266\301C\3711f\303\304\305\306\372\"\310\")\373D0\202q\312\240\210\211@AD\262\374C\314C\315\316\317\320\321$\375\"\323$\216\324\242\"\240)\204\230\325\242!\210\210\211\242\262\207" [signal-hook-function equal (error) ert--should-signal-hook slot-value ebdb-parse ebdb-field-name-complex #61="Eric Abrahamsen" surname #62="Abrahamsen" signal #63=#:ert-form-evaluation-aborted-6593 nil make-byte-code 0 "\303\304C\305\300\242\301BD\244\306\302\242\307\"?\205\310\302\242D\244\311\312N\211\205%\313\314\301\"D\262\244\240\210\315\303\242!\207" vconcat vector [(should (equal (slot-value (ebdb-parse 'ebdb-field-name-complex #61#) 'surname) #62#)) :form eql #63# :value equal ert-explainer :explanation apply ert--signal-should-execution] 7 apply ert-fail (error) #64="Eric P. Abrahamsen" given-names #65=("Eric" "P.") #66=#:ert-form-evaluation-aborted-6598 [(should (equal (slot-value (ebdb-parse 'ebdb-field-name-complex #64#) 'given-names) '#65#)) :form eql #66# :value equal ert-explainer :explanation apply ert--signal-should-execution] (error) #67="Eric Abrahamsen, III" suffix #68="III" #69=#:ert-form-evaluation-aborted-6603 [(should (equal (slot-value (ebdb-parse 'ebdb-field-name-complex #67#) 'suffix) #68#)) :form eql #69# :value equal ert-explainer :explanation apply ert--signal-should-execution] (error) #70="Albus Percival Wulfric Brian Dumbledore" #71=("Albus" "Percival" "Wulfric" "Brian") #72=#:ert-form-evaluation-aborted-6608 [(should (equal (slot-value (ebdb-parse 'ebdb-field-name-complex #70#) 'given-names) '#71#)) :form eql #72# :value equal ert-explainer :explanation apply ert--signal-should-execution] (error) #73="MURAKAMI Haruki" #74="Murakami" #75=#:ert-form-evaluation-aborted-6613 [(should (equal (slot-value (ebdb-parse 'ebdb-field-name-complex #73#) 'surname) #74#)) :form eql #75# :value equal ert-explainer :explanation apply ert--signal-should-execution] (error) #76="Fintan O'Toole" #77="O'Toole" #78=#:ert-form-evaluation-aborted-6618 [(should (equal (slot-value (ebdb-parse 'ebdb-field-name-complex #76#) 'surname) #77#)) :form eql #78# :value equal ert-explainer :explanation apply ert--signal-should-execution] (error) #79="O'Toole, Fintan" #80=#:ert-form-evaluation-aborted-6623 [(should (equal (slot-value (ebdb-parse 'ebdb-field-name-complex #79#) 'surname) "O'Toole")) :form eql #80# :value equal ert-explainer :explanation apply ert--signal-should-execution] (error) #81="O'TOOLE Fintan" #82=#:ert-form-evaluation-aborted-6628 [(should (equal (slot-value (ebdb-parse 'ebdb-field-name-complex #81#) 'surname) "O'Toole")) :form eql #82# :value equal ert-explainer :explanation apply ert--signal-should-execution] (error) #83="Daniel Micahel Blake Day-Lewis" #84="Day-Lewis" #85=#:ert-form-evaluation-aborted-6633 [(should (equal (slot-value (ebdb-parse 'ebdb-field-name-complex #83#) 'surname) #84#)) :form eql #85# :value equal ert-explainer :explanation apply ert--signal-should-execution]] 13] ebdb-snarf-mail-and-name #[0 "\300\301C\211\205\321\211@\302!@\240\210\303\304\242!\203\304\242G\211\305=\203\273\242\306H\211\204\261\242\307H\211:\203\246\211@A\211\204\232\242\310H\211:\203\216\211@A\211\204}\311!\312\230\204c\313\314\315\311!#C!\210\311!\316\230\204x\313\314\317\311!#C!\210\266\202\211\313\314\320\f\242#C!\210\266\202\226\n \"\210\210\202\241 \"\210\266\202\255\"\210\210\202\267\"\210\210\202\300\"\210\210\202\311\211\"\210\210A\266\202\202\262\207" [("Eric Abrahamsen " "Eric Abrahamsen eric@ericabrahamsen.net" "Eric Abrahamsen (eric@ericabrahamsen.net)" "Eric Abrahamsen \n" "Eric Abrahamsen can't hold his drink\n is where you can write and tell him so.") nil ebdb-snarf-collect #[514 "\300\301\302\242#C!\207" [ert-fail format #86="Parsing \"%s\" resulted in %s"] 7 "\n\n(fn RESULT TEXT)"] vectorp 3 0 1 2 ebdb-string "Eric Abrahamsen" ert-fail format "Parsing \"%s\" resulted in name %s" "eric@ericabrahamsen.net" "Parsing \"%s\" resulted in mail %s" #86#] 21] ebdb-message-search "Test the `ebdb-message-search' function." #[0 "\306\307\310\"\306\307\310\"\311\312\313\314 \315\316%\311\317\311\316#\210\320!\210\211\fB\321\216\312\322\323\324\325\326\"\327\324\330\331\"C%\332\"\210\333!\210\310C\3341P\335\336\326\311\"@)D0\202[\337\240\210\211@AD\262\340C\311C\341\342\343\344\345$\346\"\347$\216\350\242\"\240)\204\202\351\242!\210\266\310C\3521\230\335\336\311\331\"@)D0\202\243\337\240\210\211@AD\262\353C\311C\341\342\343\344\345$\354\"\347$\216\350\242\"\240)\204\312\351\242!\210\266\355C\3561\336\335\336\357\311\")C0\202\351\337\240\210\211@AD\262\360C\311C\341\342\343\344\345$\361\"\347$\216\350\242\"\240)\204\351\242!\210\266\355C\3621$\335\336\311\363\")C0\202/\337\240\210\211@AD\262\364C\311C\341\342\343\344\345$\365\"\347$\216\350\242\"\240)\204V\351\242!\210\266\366!\262*\262+\207" [ebdb-record-tracker ebdb-org-hashtable ebdb-hashtable ebdb-test-database-1 ebdb-db-list signal-hook-function make-hash-table :test equal nil make-instance ebdb-db-file :file :dirty t ebdb-db-save ebdb-db-load #[0 "\301!\207" [ebdb-test-database-1 delete-file] 2] ebdb-record-person :name ebdb-parse ebdb-field-name-complex "Spongebob Squarepants" :mail ebdb-field-mail "spob@thepants.com" ebdb-db-add-record ebdb-init-record (error) ert--should-signal-hook ebdb-message-search signal #87=#:ert-form-evaluation-aborted-6646 make-byte-code 0 "\303\304C\305\300\242\301BD\244\306\302\242\307\"?\205\310\302\242D\244\311\312N\211\205%\313\314\301\"D\262\244\240\210\315\303\242!\207" vconcat vector [(should (equal (car (ebdb-message-search "Spongebob Squarepants" nil)) rec)) :form eql #87# :value equal ert-explainer :explanation apply ert--signal-should-execution] 7 apply ert-fail (error) #88=#:ert-form-evaluation-aborted-6651 [(should (equal (car (ebdb-message-search nil "spob@thepants.com")) rec)) :form eql #88# :value equal ert-explainer :explanation apply ert--signal-should-execution] null (error) #89="Spongebob" #90=#:ert-form-evaluation-aborted-6656 [(should (null (ebdb-message-search #89# nil))) :form eql #90# :value null ert-explainer :explanation apply ert--signal-should-execution] (error) #91="thepants.com" #92=#:ert-form-evaluation-aborted-6661 [(should (null (ebdb-message-search nil #91#))) :form eql #92# :value null ert-explainer :explanation apply ert--signal-should-execution] ebdb-delete-record] 15] ebdb-general-search "Test some of the general search functions." #[0 "\306\307\310\"\306\307\310\"\311\312\313\314 \315\316%\311\317\311\316#\210\320!\210\211\fB\321\216\312\322\323\324\325\326\"\327\324\330\331\"C\332\324\333\334\"&\335\"\210\336!\210\310C\3371|\340\341\311\211\f\204T\342 \210\203o\343\344\345\346\347\350\"\351\"\352\353%\"\266\202\202r\266\202\354\"@)D0\202\207\355\240\210\211@AD\262\356C\311C\344\357\360\347\350$\361\"\362$\216\363\242\"\240)\204\256\364\242!\210\266\310C\3651\352\340\341\311\211\f\204\302\342 \210\203\335\343\344\345\346\347\350\"\351\"\352\353%\"\266\202\202\340\266\202\366\"@)D0\202\365\355\240\210\211@AD\262\367C\311C\344\357\360\347\350$\370\"\362$\216\363\242\"\240)\204\364\242!\210\266\371C\3721W\340\341\311\211\f\2040\342 \210\203K\343\344\345\346\347\350\"\351\"\352\353%\"\266\202\202N\266\202\373\"@)C0\202b\355\240\210\211@AD\262\374C\311C\344\357\360\347\350$\375\"\362$\216\363\242\"\240)\204\211\364\242!\210\266\310C\3761\305\340\341\311\211\f\204\235\342 \210\203\270\343\344\345\346\347\350\"\351\"\352\353%\"\266\202\202\273\266\202\377\"@)D0\202\320\355\240\210\211@AD\262\201@C\311C\344\357\360\347\350$\201A\"\362$\216\363\242\"\240)\204\373\364\242!\210\266\371C\201B1;\340\341\311\211\f\204\342 \210\203,\343\344\345\346\347\350\"\351\"\352\353%\"\266\202\202/\266\202\201C\316#@)C0\202F\355\240\210\211@AD\262\201DC\311C\344\357\360\347\350$\201E\"\362$\216\363\242\"\240)\204q\364\242!\210\266\310C\201F1\262\340\341\311\211\f\204\207\342 \210\203\242\343\344\345\346\347\350\"\351\"\352\353%\"\266\202\202\245\266\202\201G\316#@)D0\202\275\355\240\210\211@AD\262\201HC\311C\344\357\360\347\350$\201I\"\362$\216\363\242\"\240)\204\350\364\242!\210\210\211\242\262\266\202\262*\262+\207" [ebdb-record-tracker ebdb-org-hashtable ebdb-hashtable ebdb-test-database-1 ebdb-db-list signal-hook-function make-hash-table :test equal nil make-instance ebdb-db-file :file :dirty t ebdb-db-save ebdb-db-load #[0 "\301!\207" [ebdb-test-database-1 delete-file] 2] ebdb-record-person :name ebdb-parse ebdb-field-name-complex "Spongebob Squarepants" :mail ebdb-field-mail "spob@thepants.com" :notes ebdb-field-notes "World's greatest cartoon." ebdb-db-add-record ebdb-init-record (error) ert--should-signal-hook ebdb-search ebdb-load seq-filter make-byte-code 257 "\301\203 \302\300\"\207\303\300\"\207" vconcat vector [object-of-class-p same-class-p] 4 "\n\n(fn R)" #93=((ebdb-field-name "Squarepants")) signal #94=#:ert-form-evaluation-aborted-6666 0 "\303\304C\305\300\242\301BD\244\306\302\242\307\"?\205\310\302\242D\244\311\312N\211\205%\313\314\301\"D\262\244\240\210\315\303\242!\207" [(should (equal (car (ebdb-search (ebdb-records) '#93#)) rec)) :form eql #94# :value equal ert-explainer :explanation apply ert--signal-should-execution] 7 apply ert-fail (error) #95=((ebdb-field-mail "thepants.com")) #96=#:ert-form-evaluation-aborted-6671 [(should (equal (car (ebdb-search (ebdb-records) '#95#)) rec)) :form eql #96# :value equal ert-explainer :explanation apply ert--signal-should-execution] null (error) #97=((ebdb-field-notes "thepants.com")) #98=#:ert-form-evaluation-aborted-6676 [(should (null (car (ebdb-search (ebdb-records) '#97#)))) :form eql #98# :value null ert-explainer :explanation apply ert--signal-should-execution] (error) #99=((ebdb-field-notes "cartoon")) #100=#:ert-form-evaluation-aborted-6681 [(should (equal (car (ebdb-search (ebdb-records) '#99#)) rec)) :form eql #100# :value equal ert-explainer :explanation apply ert--signal-should-execution] (error) #101=((ebdb-field-notes "cartoon")) #102=#:ert-form-evaluation-aborted-6686 [(should (null (car (ebdb-search (ebdb-records) '#101# t)))) :form eql #102# :value null ert-explainer :explanation apply ert--signal-should-execution] (error) #103=((ebdb-field-notes "carton")) #104=#:ert-form-evaluation-aborted-6691 [(should (equal (car (ebdb-search (ebdb-records) '#103# t)) rec)) :form eql #104# :value equal ert-explainer :explanation apply ert--signal-should-execution]] 15] ebdb-search-transform-and-fold #[0 "\306\307\310\"\306\307\310\"\311\312\313\314\315\316\317\"#C\320!\210\311\211\211\321C\32210\323@)\324D0\202;\325\240\210\211@AD\262\326C\311C\327\330\331\332\333$\334\"\335$\216\336\242\"\240)\203b\337\242!\210\266\321C\3401u\323@)\341D0\202\200\325\240\210\211@AD\262\342C\311C\327\330\331\332\333$\343\"\335$\216\336\242\"\240)\203\247\337\242!\210\266\321C\3441\272\323@)\345D0\202\305\325\240\210\211@AD\262\346C\311C\327\330\331\332\333$\347\"\335$\216\336\242\"\240)\204\354\337\242!\210\266+\350\311\211\321C\3511\323@)\352D0\202\325\240\210\211@AD\262\353C\311C\327\330\331\332\333$\354\"\335$\216\336\242\"\240)\2038\337\242!\210\266\321C\3551K\323@)\356D0\202V\325\240\210\211@AD\262\357C\311C\327\330\331\332\333$\360\"\335$\216\336\242\"\240)\204}\337\242!\210\266\321C\3611\220\323@)\362D0\202\233\325\240\210\211@AD\262\363C\311C\327\330\331\332\333$\364\"\335$\216\336\242\"\240)\204\302\337\242!\210\266+\311\350\311\321C\3651\334\323@)\366D0\202\347\325\240\210\211@AD\262\367C\311C\327\330\331\332\333$\370\"\335$\216\336\242\"\240)\204\337\242!\210\266\321C\3711!\323@)\372D0\202,\325\240\210\211@AD\262\373C\311C\327\330\331\332\333$\374\"\335$\216\336\242\"\240)\203S\337\242!\210\266\321C\3751f\323@)\376D0\202q\325\240\210\211@AD\262\377C\311C\327\330\331\332\333$\201A\"\335$\216\336\242\"\240)\204\232\337\242!\210\266+\350\211\311\321C\201B1\270\323@)\201CD0\202\303\325\240\210\211@AD\262\201DC\311C\327\330\331\332\333$\201E\"\335$\216\336\242\"\240)\204\356\337\242!\210\266\321C\201F1\323@)\201GD0\202\325\240\210\211@AD\262\201HC\311C\327\330\331\332\333$\201I\"\335$\216\336\242\"\240)\204;\337\242!\210\266\321C\201J1R\323@)\201KD0\202]\325\240\210\211@AD\262\201LC\311C\327\330\331\332\333$\201M\"\335$\216\336\242\"\240)\204\210\337\242!\210\266\311\211\201NC\321C\201O1\250\323@)\201PD0\202\263\325\240\210\211@AD\262\201QC\311C\327\330\331\332\333$\201R\"\335$\216\336\242\"\240)\203\336\337\242!\210\266+\311\350\201SC\321C\201T1\377\323@)\201UD0\202\n\325\240\210\211@AD\262\201VC\311C\327\330\331\332\333$\201W\"\335$\216\336\242\"\240)\2045\337\242!\210\210\211\242\262\266\202.\262+\207" [ebdb-record-tracker ebdb-org-hashtable ebdb-hashtable ebdb-search-transform-functions ebdb-char-fold-search ebdb-case-fold-search make-hash-table :test equal nil make-instance ebdb-record-person :name ebdb-parse ebdb-field-name-complex "Björk Jónsdóttir" ebdb-initialize ebdb-search (error) ert--should-signal-hook #105=((ebdb-field-name "Bjork")) signal #106=#:ert-form-evaluation-aborted-6696 make-byte-code 0 "\303\304C\305\300\242\301BD\244\306\302\242\307\"?\205\310\302\242D\244\311\312N\211\205%\313\314\301\"D\262\244\240\210\315\303\242!\207" vconcat vector [(should-not (ebdb-search recs '#105#)) :form eql #106# :value ebdb-search ert-explainer :explanation apply ert--signal-should-execution] 7 apply ert-fail (error) #107=((ebdb-field-name "björk")) #108=#:ert-form-evaluation-aborted-6701 [(should-not (ebdb-search recs '#107#)) :form eql #108# :value ebdb-search ert-explainer :explanation apply ert--signal-should-execution] (error) #109=((ebdb-field-name "Björk")) #110=#:ert-form-evaluation-aborted-6706 [(should (ebdb-search recs '#109#)) :form eql #110# :value ebdb-search ert-explainer :explanation apply ert--signal-should-execution] t (error) #111=((ebdb-field-name "Bjork")) #112=#:ert-form-evaluation-aborted-6711 [(should-not (ebdb-search recs '#111#)) :form eql #112# :value ebdb-search ert-explainer :explanation apply ert--signal-should-execution] (error) #113=((ebdb-field-name "björk")) #114=#:ert-form-evaluation-aborted-6716 [(should (ebdb-search recs '#113#)) :form eql #114# :value ebdb-search ert-explainer :explanation apply ert--signal-should-execution] (error) #115=((ebdb-field-name "Björk")) #116=#:ert-form-evaluation-aborted-6721 [(should (ebdb-search recs '#115#)) :form eql #116# :value ebdb-search ert-explainer :explanation apply ert--signal-should-execution] (error) #117=((ebdb-field-name "Bjork")) #118=#:ert-form-evaluation-aborted-6726 [(should (ebdb-search recs '#117#)) :form eql #118# :value ebdb-search ert-explainer :explanation apply ert--signal-should-execution] (error) #119=((ebdb-field-name "björk")) #120=#:ert-form-evaluation-aborted-6731 [(should-not (ebdb-search recs '#119#)) :form eql #120# :value ebdb-search ert-explainer :explanation apply ert--signal-should-execution] (error) #121=((ebdb-field-name "Björk")) #122=#:ert-form-evaluation-aborted-6736 signal-hook-function [(should (ebdb-search recs '#121#)) :form eql #122# :value ebdb-search ert-explainer :explanation apply ert--signal-should-execution] (error) #123=((ebdb-field-name "Bjork")) #124=#:ert-form-evaluation-aborted-6741 [(should (ebdb-search recs '#123#)) :form eql #124# :value ebdb-search ert-explainer :explanation apply ert--signal-should-execution] (error) #125=((ebdb-field-name "björk")) #126=#:ert-form-evaluation-aborted-6746 [(should (ebdb-search recs '#125#)) :form eql #126# :value ebdb-search ert-explainer :explanation apply ert--signal-should-execution] (error) #127=((ebdb-field-name "Björk")) #128=#:ert-form-evaluation-aborted-6751 [(should (ebdb-search recs '#127#)) :form eql #128# :value ebdb-search ert-explainer :explanation apply ert--signal-should-execution] #[257 "\211\300P\207" [" Jonsdottir"] 3 "\n\n(fn STR)"] (error) #129=((ebdb-field-name "Björk")) #130=#:ert-form-evaluation-aborted-6756 [(should-not (ebdb-search recs '#129#)) :form eql #130# :value ebdb-search ert-explainer :explanation apply ert--signal-should-execution] #[257 "\211\300P\207" [" Jonsdottir"] 3 "\n\n(fn STR)"] (error) #131=((ebdb-field-name "Björk")) #132=#:ert-form-evaluation-aborted-6761 [(should (ebdb-search recs '#131#)) :form eql #132# :value ebdb-search ert-explainer :explanation apply ert--signal-should-execution]] 14] ebdb-vcard-escape/unescape "Test the escaping and unescaping routines." #[0 "\301C\3021\303\304\305\306\307\305\310\311##\262)\304D0\202'\312\240\210\211@AD\262\313C\314C\315\316\317\320\321$\322\"\323$\216\324\242\"\240)\204N\325\242!\210\266\301C\3261l\303\327\305\306\307\305\310\311##\262)\330D0\202w\312\240\210\211@AD\262\331C\314C\315\316\317\320\321$\332\"\323$\216\324\242\"\240)\204\236\325\242!\210\266\301C\3331\274\303\334\305\306\307\305\310\311##\262)\335D0\202\307\312\240\210\211@AD\262\336C\314C\315\316\317\320\321$\337\"\323$\216\324\242\"\240)\204\356\325\242!\210\266\301C\3401\f\303\341\305\306\307\305\310\311##\262)\341D0\202\312\240\210\211@AD\262\342C\314C\315\316\317\320\321$\343\"\323$\216\324\242\"\240)\204>\325\242!\210\266\301C\3441\\\303\345\305\306\307\305\310\311##\262)\345D0\202g\312\240\210\211@AD\262\346C\314C\315\316\317\320\321$\347\"\323$\216\324\242\"\240)\204\216\325\242!\210\266\301C\3501\254\303\351\305\306\307\305\310\311##\262)\352D0\202\267\312\240\210\211@AD\262\353C\314C\315\316\317\320\321$\354\"\323$\216\324\242\"\240)\204\336\325\242!\210\266\301C\3551\374\303\356\305\357\360\305\361\362##\262)\363D0\202\312\240\210\211@AD\262\364C\314C\315\316\317\320\321$\365\"\323$\216\324\242\"\240)\204.\325\242!\210\266\301C\3661L\303\367\305\357\360\305\361\362##\262)\370D0\202W\312\240\210\211@AD\262\371C\314C\315\316\317\320\321$\372\"\323$\216\324\242\"\240)\204~\325\242!\210\266\301C\3731\250\303\374\305\306\307\305\310\311##\262\305\357\360\305\361\362##\262)\374D0\202\263\312\240\210\211@AD\262\375C\314C\315\316\317\320\321$\376\"\323$\216\324\242\"\240)\204\332\325\242!\210\210\211\242\262\207" [signal-hook-function equal (error) ert--should-signal-hook #133="Nothing.to \"escape\"!" replace-regexp-in-string "\\([^\\]\\)\\([\n]+\\)" "\\1\\\\n" "\\([^\\]\\)\\([,;]\\)" "\\1\\\\\\2" signal #134=#:ert-form-evaluation-aborted-6766 nil make-byte-code 0 "\303\304C\305\300\242\301BD\244\306\302\242\307\"?\205\310\302\242D\244\311\312N\211\205%\313\314\301\"D\262\244\240\210\315\303\242!\207" vconcat vector [(should (equal (ebdb-vcard-escape #133#) "Nothing.to \"escape\"!")) :form eql #134# :value equal ert-explainer :explanation apply ert--signal-should-execution] 7 apply ert-fail (error) #135="Marry, nuncle" #136="Marry\\, nuncle" #137=#:ert-form-evaluation-aborted-6771 [(should (equal (ebdb-vcard-escape #135#) #136#)) :form eql #137# :value equal ert-explainer :explanation apply ert--signal-should-execution] (error) #138="Mine uncle; nay!" #139="Mine uncle\\; nay!" #140=#:ert-form-evaluation-aborted-6776 [(should (equal (ebdb-vcard-escape #138#) #139#)) :form eql #140# :value equal ert-explainer :explanation apply ert--signal-should-execution] (error) #141="Marry\\, uncle" #142=#:ert-form-evaluation-aborted-6781 [(should (equal (ebdb-vcard-escape #141#) "Marry\\, uncle")) :form eql #142# :value equal ert-explainer :explanation apply ert--signal-should-execution] (error) #143="Marry\\n uncle!" #144=#:ert-form-evaluation-aborted-6786 [(should (equal (ebdb-vcard-escape #143#) "Marry\\n uncle!")) :form eql #144# :value equal ert-explainer :explanation apply ert--signal-should-execution] (error) #145="Mine \nuncle" #146="Mine \\nuncle" #147=#:ert-form-evaluation-aborted-6791 [(should (equal (ebdb-vcard-escape #145#) #146#)) :form eql #147# :value equal ert-explainer :explanation apply ert--signal-should-execution] (error) #148="Marry\\, nuncle!" "\\\\n" "\n" "\\\\\\([,;]\\)" "\\1" #149="Marry, nuncle!" #150=#:ert-form-evaluation-aborted-6796 [(should (equal (ebdb-vcard-unescape #148#) #149#)) :form eql #150# :value equal ert-explainer :explanation apply ert--signal-should-execution] (error) #151="Marry \\nuncle" #152="Marry \nuncle" #153=#:ert-form-evaluation-aborted-6801 [(should (equal (ebdb-vcard-unescape #151#) #152#)) :form eql #153# :value equal ert-explainer :explanation apply ert--signal-should-execution] (error) #154="Look, a bog; dogs." #155=#:ert-form-evaluation-aborted-6806 [(should (equal (ebdb-vcard-unescape (ebdb-vcard-escape #154#)) "Look, a bog; dogs.")) :form eql #155# :value equal ert-explainer :explanation apply ert--signal-should-execution]] 13] ebdb-vcard-fold/unfold "Test line-length folding/unfolding." #[0 "\301\302\303\304C\3051\306\307!)\301D0\202 \310\240\210\211@AD\262\311C\312C\313\314\315\316\317$\320\"\321$\216\322\242\"\240)\204G\323\242!\210\266\304C\3241]\306\325\307!!)D0\202h\310\240\210\211@AD\262\326C\312C\313\314\315\316\317$\327\"\321$\216\322\242\"\240)\204\217\323\242!\210\266\304C\3301\243\306\307!)\331D0\202\256\310\240\210\211@AD\262\332C\312C\313\314\315\316\317$\333\"\321$\216\322\242\"\240)\204\325\323\242!\210\266\304C\3341\353\306\325\307!!)D0\202\366\310\240\210\211@AD\262\335C\312C\313\314\315\316\317$\336\"\321$\216\322\242\"\240)\204\323\242!\210\266\304C\33711\306\307!)\340D0\202<\310\240\210\211@AD\262\341C\312C\313\314\315\316\317$\342\"\321$\216\322\242\"\240)\204c\323\242!\210\266\304C\3431y\306\325\307!!)D0\202\204\310\240\210\211@AD\262\344C\312C\313\314\315\316\317$\345\"\321$\216\322\242\"\240)\204\253\323\242!\210\210\211\242\262\266\202\207" [signal-hook-function "For sale:\nBaby shoes,\nNever used." "Turns out seventy five bytes is a lot of bytes when you just have to keep typing and typing\nand typing." "然后还要用中文写一行没完没了的话。\n其实先要来一个短的,然后一行特别长的,那就是现在这行,\n然后可以再有一个短的" equal (error) ert--should-signal-hook ebdb-vcard-fold-lines signal #156=#:ert-form-evaluation-aborted-6811 nil make-byte-code 0 "\303\304C\305\300\242\301BD\244\306\302\242\307\"?\205\310\302\242D\244\311\312N\211\205%\313\314\301\"D\262\244\240\210\315\303\242!\207" vconcat vector [(should (equal (ebdb-vcard-fold-lines short-lines) "For sale:\nBaby shoes,\nNever used.")) :form eql #156# :value equal ert-explainer :explanation apply ert--signal-should-execution] 7 apply ert-fail (error) ebdb-vcard-unfold-lines #157=#:ert-form-evaluation-aborted-6816 [(should (equal (ebdb-vcard-unfold-lines (ebdb-vcard-fold-lines short-lines)) short-lines)) :form eql #157# :value equal ert-explainer :explanation apply ert--signal-should-execution] (error) #158="Turns out seventy five bytes is a lot of bytes when you just have to keep t\n yping and typing\nand typing." #159=#:ert-form-evaluation-aborted-6821 [(should (equal (ebdb-vcard-fold-lines long-lines) #158#)) :form eql #159# :value equal ert-explainer :explanation apply ert--signal-should-execution] (error) #160=#:ert-form-evaluation-aborted-6826 [(should (equal (ebdb-vcard-unfold-lines (ebdb-vcard-fold-lines long-lines)) long-lines)) :form eql #160# :value equal ert-explainer :explanation apply ert--signal-should-execution] (error) #161="然后还要用中文写一行没完没了的话。\n其实先要来一个短的,然后一行特别长的,那就是现在这\n 行,\n然后可以再有一个短的" #162=#:ert-form-evaluation-aborted-6831 [(should (equal (ebdb-vcard-fold-lines multibyte-lines) #161#)) :form eql #162# :value equal ert-explainer :explanation apply ert--signal-should-execution] (error) #163=#:ert-form-evaluation-aborted-6836 [(should (equal (ebdb-vcard-unfold-lines (ebdb-vcard-fold-lines multibyte-lines)) multibyte-lines)) :form eql #163# :value equal ert-explainer :explanation apply ert--signal-should-execution]] 16] ebdb-vcard-export-dont-explode "Can we export a record to Vcard without immediate disaster?" #[0 "\305\306\307\"\305\306\307\"\310\311 \312\313\314\315\316\317$\320\321\320\322\"\323\324\323\325\"C\326\327\330\331\332\333\334\335\336\337&C\340\341\340\342\"& \343\344\310\345\310\346\347&\350\344\310\345\310\346\351&\352C\3531V\354)D0\202a\355\240\210\211@AD\262\356C\310C\357\360\361\362\363$\364\"\365$\216\366\242\"\240)\204\210\367\242!\210\266\352C\3701\232\354)D0\202\245\355\240\210\211@AD\262\371C\310C\357\360\361\362\363$\372\"\365$\216\366\242\"\240)\204\314\367\242!\210\210\211\242\262\266\202\266\203+\207" [ebdb-record-tracker ebdb-org-hashtable ebdb-hashtable ebdb-default-record-class signal-hook-function make-hash-table :test equal nil make-instance :name ebdb-field-name-complex :surname "Barleycorn" :given-names ("John") :uuid ebdb-field-uuid "asdfasdfadsf" :mail ebdb-field-mail "jb@barleycorn.com" :phone ebdb-field-phone :label "home" :country-code 1 :area-code 555 :number "5555555" :notes ebdb-field-notes "He's in the fields" ebdb-formatter-vcard-40 :combine :collapse :include (ebdb-field-uuid ebdb-field-name ebdb-field-mail ebdb-field-phone ebdb-field-mail) ebdb-formatter-vcard-30 (ebdb-field-uuid ebdb-field-name ebdb-field-mail ebdb-field-phone ebdb-field-mail) ebdb-fmt-record (error) ert--should-signal-hook signal #164=#:ert-form-evaluation-aborted-6841 make-byte-code 0 "\303\304C\305\300\242\301BD\244\306\302\242\307\"?\205\310\302\242D\244\311\312N\211\205%\313\314\301\"D\262\244\240\210\315\303\242!\207" vconcat vector [(should (ebdb-fmt-record fmt-4 rec)) :form eql #164# :value ebdb-fmt-record ert-explainer :explanation apply ert--signal-should-execution] 7 apply ert-fail (error) #165=#:ert-form-evaluation-aborted-6846 [(should (ebdb-fmt-record fmt-3 rec)) :form eql #165# :value ebdb-fmt-record ert-explainer :explanation apply ert--signal-should-execution]] 18] provide ebdb-test] 10)