;ELC ;;; Compiled ;;; in Emacs version 27.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301\302\303\304\305\306\307&\210\310\311\302\312\313\314\306\301\315\316& \207" [custom-declare-group cookie nil "Random cookies from phrase files." :prefix "cookie-" :group games custom-declare-variable cookie-file "Default phrase file for cookie functions." :type (choice (const nil) file) :version "24.4"] 10) #@49 Delimiter used to separate cookie file entries. (defconst cookie-delimiter "\n%%\n\\|\n%\n\\|" (#$ . 739)) #@55 Cache of cookie files that have already been snarfed. (defvar cookie-cache (make-vector 511 0) (#$ . 853)) #@92 Return either FILE or `cookie-file'. Signal an error if the result is nil or not readable. (defalias 'cookie-check-file #[(file) "\206 \211\204\302\303!\210\304!\204\302\305\"\210\207" [file cookie-file user-error "No phrase file specified" file-readable-p "Cannot read file `%s'"] 3 (#$ . 966)]) #@240 Return a random phrase from PHRASE-FILE. When the phrase file is read in, display STARTMSG at the beginning of load, ENDMSG at the end. Interactively, PHRASE-FILE defaults to `cookie-file', unless that is nil or a prefix argument is used. (defalias 'cookie #[(phrase-file &optional startmsg endmsg) "\305!\306 \n#\307\310\f!\210\f\311H\312\313!\203!\314\315 \"\202\" *\207" [phrase-file startmsg endmsg res cookie-vector cookie-check-file cookie-snarf nil cookie-shuffle-vector 0 called-interactively-p interactive message "%s"] 4 (#$ . 1281) (list (if (or current-prefix-arg (not cookie-file)) (read-file-name "Cookie file: " nil cookie-file t cookie-file) cookie-file) nil nil)]) #@151 Insert random phrases from PHRASE-FILE; COUNT of them. When the phrase file is read in, display STARTMSG at the beginning of load, ENDMSG at the end. (defalias 'cookie-insert #[(phrase-file &optional count startmsg endmsg) "\306!\307 \n#\310 !\210`\311c\210\312 GS \206\313^ \"\210\311c\210\314\f`\315#*\207" [phrase-file startmsg endmsg cookie-vector start count cookie-check-file cookie-snarf cookie-shuffle-vector 10 cookie1 1 fill-region-as-paragraph nil] 4 (#$ . 1978)]) #@36 Inserts a cookie phrase ARG times. (defalias 'cookie1 #[(arg cookie-vec) "\302U\203\303\207 Hc\210\304c\210\305S \"\207" [arg cookie-vec 0 t " " cookie1] 3 (#$ . 2467)]) #@188 Reads in the PHRASE-FILE, returns it as a vector of strings. Emit STARTMSG and ENDMSG before and after. Caches the result; second and subsequent calls on the same file won't go to disk. (defalias 'cookie-snarf #[(phrase-file &optional startmsg endmsg) "\306!\307 \"\211\203%\nK\310!\3118\262\232\204%\312\313P!\203%\314\n\203.\nJ\202\215\315 \" \203<\316\317 \"\210\n\310!\3118\262M\210\314\320\321!r q\210\322\216\323\324!!\210\325!\210\326\314w\210m\204z`\325!\210\327\224{\fB)\202^+\203\206\316\317\"\210\n\330\331\f\"L))\207" [phrase-file cookie-cache sym startmsg result #1=#:temp-buffer cookie-check-file intern-soft file-attributes 5 yes-or-no-p " has changed. Read new contents? " nil intern message "%s" generate-new-buffer " *temp*" #[nil "\301!\205 \302!\207" [#1# buffer-name kill-buffer] 2] insert-file-contents expand-file-name re-search-forward " \n \f" 0 apply vector cookie-delimiter beg endmsg] 5 (#$ . 2649)]) #@188 Prompt with PROMPT and read with completion among cookies in PHRASE-FILE. STARTMSG and ENDMSG are passed along to `cookie-snarf'. Argument REQUIRE-MATCH non-nil forces a matching cookie. (defalias 'cookie-read #[(prompt phrase-file &optional startmsg endmsg require-match) "\306!\307 \"\204\310\n #\210\311\f\312 \"\211\313N\206L\314\310\n #\211GS\211\315Y\203EHCB\202,\316 \313#+)\314\314\211&\207" [phrase-file cookie-cache startmsg endmsg prompt sym cookie-check-file intern-soft cookie-snarf completing-read intern completion-alist nil 0 put alist vec i require-match] 8 (#$ . 3630)]) (byte-code "\300\301\302\303#\210\304\301\302\305#\207" [defalias read-cookie cookie-read nil make-obsolete "24.4"] 4) #@76 Randomly permute the elements of VECTOR (all permutations equally likely). (defalias 'cookie-shuffle-vector #[(vector) "G\306\211\211\307\f W\2030\f\310 \fZ!\\\fH\f\nHI\210\n I\210\fT\211\202\f-\207" [vector temp j len i --dotimes-limit-- nil 0 random] 5 (#$ . 4379)]) (byte-code "\300\301\302\303#\210\304\301\302\305#\207" [defalias shuffle-vector cookie-shuffle-vector nil make-obsolete "24.4"] 4) #@295 Return a list of all entries matching REGEXP from PHRASE-FILE. Interactively, uses `read-regexp' to read REGEXP. Interactively, PHRASE-FILE defaults to `cookie-file', unless that is nil or a prefix argument is used. If called interactively, or if DISPLAY is non-nil, display a list of matches. (defalias 'cookie-apropos #[(regexp phrase-file &optional display) "\306!\307!\210\310\311\n\"\211J\312\fG\313W\203H\fH\312\310\314#)\266\203\203?\fH BT\211\202 *\203R\315 \316\"\203\267 \203\263  !\"r\317\320!q\210p\321 \210\"!\312\211#$\310\211%\310&'\322 \210\323\324!\210+\211() \203\247\325 @!\210 A\211 \203\214\325\326!\210\202\214\327 \210\330(!\210,\202\267\331\332!\210 ,\207" [phrase-file case-fold-search cookie-cache cookie-table-symbol string-table matches cookie-check-file cookie t intern nil 0 string-match sort string-lessp get-buffer-create "*Cookie Apropos*" kill-all-local-variables erase-buffer run-hooks temp-buffer-setup-hook princ "\n\n" help-print-return-message internal-temp-output-buffer-show message "No matches found." i --dotimes-limit-- regexp inhibit-changing-match-data display l default-directory #1=#:old-dir buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks inhibit-read-only #2=#:buf standard-output] 8 (#$ . 4803) (list (read-regexp "Apropos phrase (regexp): ") (if (or current-prefix-arg (not cookie-file)) (read-file-name "Cookie file: " nil cookie-file t cookie-file) cookie-file) t)]) #@156 Feed cookie phrases from PHRASE-FILE to the doctor. Interactively, PHRASE-FILE defaults to `cookie-file', unless that is nil or a prefix argument is used. (defalias 'cookie-doctor #[(phrase-file) "\301!\302 \210\303\304!\210\305\306!\210\307\310!\210\311 ?\205-\312!c\210\307\310!\210\313\314!\210\313\314!\210\202\207" [phrase-file cookie-check-file doctor message "" switch-to-buffer "*doctor*" sit-for 0 input-pending-p cookie doctor-ret-or-read 1] 2 (#$ . 6324) (list (if (or current-prefix-arg (not cookie-file)) (read-file-name "Cookie file: " nil cookie-file t cookie-file) cookie-file))]) (provide 'cookie1)