;ELC ;;; compiled by kwzh@nutrimat.gnu.ai.mit.edu on Sun Jul 21 15:50:20 1996 ;;; from file /gd/gnu/emacs/19.0/lisp/decipher.el ;;; emacs version 19.31.94.1. ;;; bytecomp version FSF 2.10 ;;; optimization is on. ;;; this file uses opcodes which do not exist in Emacs 18. (if (and (boundp 'emacs-version) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19.29"))) (error "`decipher.el' was compiled for Emacs 19.29 or later")) #@158 *Non-nil means to convert ciphertext to uppercase. Nil means the case of the ciphertext is preserved. This variable must be set before typing `\[decipher]'. (defvar decipher-force-uppercase t (#$ . -481)) #@198 *Non-nil means to ignore spaces and punctuation when counting digrams. You should set this to `nil' if the cipher message is divided into words, or `t' if it is not. This variable is buffer-local. (defvar decipher-ignore-spaces nil (#$ . -693)) (make-variable-buffer-local (quote decipher-ignore-spaces)) #@140 The maximum number of entries in the undo list. When the undo list exceeds this number, 100 entries are deleted from the tail of the list. (defvar decipher-undo-limit 5000 (#$ . 1005)) #@573 Expressions to fontify in Decipher mode. Ciphertext uses `font-lock-keyword-face', plaintext uses `font-lock-string-face', comments use `font-lock-comment-face', and checkpoints use `font-lock-reference-face'. You can customize the display by changing these variables. For best results, I recommend that all faces use the same background color. For example, to display ciphertext in the `bold' face, use (add-hook 'decipher-mode-hook (lambda () (set (make-local-variable 'font-lock-keyword-face) 'bold))) in your `.emacs' file. (defvar decipher-font-lock-keywords (quote (("^:.*" . font-lock-keyword-face) ("^>.*" . font-lock-string-face) ("^%!.*" . font-lock-reference-face) ("^%.*" . font-lock-comment-face) ("\\`(\\([a-z]+\\) +\\([A-Z]+\\)" (1 font-lock-string-face) (2 font-lock-keyword-face)) ("^)\\([A-Z ]+\\)\\([a-z ]+\\)" (1 font-lock-keyword-face) (2 font-lock-string-face)))) (#$ . 1197)) #@27 Keymap for Decipher mode. (defvar decipher-mode-map nil (#$ . 2146)) (byte-code "„mÁ Â!ˆÃÄÅ#ˆÃÆÇ#ˆÃÈÉ#ˆÃÊË#ˆÃÌÍ#ˆÃÎÏ#ˆÃÐÑ#ˆÃÒÓ#ˆÃÔÕ#ˆÖ×Ó$ˆÖÙÓ$ˆÚÚÜXƒlÃÝ!Õ#ˆT‰‚U)Á‡" [decipher-mode-map make-keymap suppress-keymap define-key "A" decipher-show-alphabet "C" decipher-complete-alphabet "D" decipher-digram-list "F" decipher-frequency-count "M" decipher-make-checkpoint "N" decipher-adjacency-list "R" decipher-restore-checkpoint "U" decipher-undo " " decipher-keypress substitute-key-definition undo global-map advertised-undo 97 key 122 vector] 6) #@33 Keymap for Decipher-Stats mode. (defvar decipher-stats-mode-map nil (#$ . 2725)) (byte-code "„Á Â!ˆÃÄÅ#ˆÃÆÇ#ˆÃÈÉ#ˆÁ‡" [decipher-stats-mode-map make-keymap suppress-keymap define-key "D" decipher-digram-list "F" decipher-frequency-count "N" decipher-adjacency-list] 4) #@28 Decipher mode syntax table (defvar decipher-mode-syntax-table nil (#$ . 3007)) (byte-code "„Á  ÅXƒÆ Ç\f#ˆ T‰‚\n\f*ÈÉ!„(Ê É B ÌÉ!‡" [decipher-mode-syntax-table make-syntax-table 48 c table 57 modify-syntax-entry "_" boundp decipher-alphabet nil current-load-list make-variable-buffer-local] 5) #@147 The buffer which displays statistics for this ciphertext. Do not access this variable directly, use the function `decipher-stats-buffer' instead. (defvar decipher-stats-buffer nil (#$ . 3322)) (make-variable-buffer-local (quote decipher-stats-buffer)) #@41 The number of entries in the undo list. (defvar decipher-undo-list-size 0 (#$ . 3580)) (make-variable-buffer-local (quote decipher-undo-list-size)) #@124 The undo list for this buffer. Each element is either a cons cell (PLAIN-CHAR . CIPHER-CHAR) or a list of such cons cells. (defvar decipher-undo-list nil (#$ . 3735)) (byte-code "ÀÁ!ˆÂÃ!„\fÄà Bć" [make-variable-buffer-local decipher-undo-list boundp decipher-pending-undo-list nil current-load-list] 2) #@74 See the functions decipher-loop-with-breaks and decipher-loop-no-breaks. (defvar decipher-char nil (#$ . 4048)) (byte-code "À B Bà BÄ BÅ BÆ BÀ‡" [decipher--prev-char current-load-list decipher--digram decipher--digram-list decipher--before decipher--after decipher--freqs] 2) #@74 Format a buffer of ciphertext for cryptanalysis and enter Decipher mode. (defalias 'decipher #[nil "dbˆn„\nÀcˆebˆÁÂ!ƒÃÄ!ˆ‚^ÅcˆÆm„WÁÈ!ƒ0Æyˆ‚ É ˆlƒ=Æyˆ‚ Êcˆ`Æyˆ ƒQÌ`\"ˆÍcˆ‚ )Î ˆÎ ˆÏÐ!ˆÑ ‡" ["\n" looking-at "^(abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ -\\*-decipher-\\*-\n)" message "Buffer is already formatted, entering Decipher mode..." "(abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ -*-decipher-*-\n)\n\n" nil begin "^%" delete-horizontal-space ":" decipher-force-uppercase upcase-region ">\n" delete-blank-lines goto-line 4 decipher-mode] 3 (#$ . 4337) nil]) #@669 Major mode for decrypting monoalphabetic substitution ciphers. Lower-case letters enter plaintext. Upper-case letters are commands. The buffer is made read-only so that normal Emacs commands cannot modify it. The most useful commands are: \ \[decipher-digram-list] Display a list of all digrams & their frequency \[decipher-frequency-count] Display the frequency of each ciphertext letter \[decipher-adjacency-list] Show adjacency list for current letter (lists letters appearing next to it) \[decipher-make-checkpoint] Save the current cipher alphabet (checkpoint) \[decipher-restore-checkpoint] Restore a saved cipher alphabet (checkpoint) (defalias 'decipher-mode #[nil "À ˆÁÃÅÇ ƒÃ\nË\f!ˆÍ!ˆÏ ˆÐÑ!ÒLˆÓÔ!ˆÕÔÖÃÁ$ˆ×Ø!ˆÁ‰‡" [kill-all-local-variables t buffer-undo-list nil indent-tabs-mode decipher-mode major-mode "Decipher" mode-name decipher-force-uppercase case-fold-search use-local-map decipher-mode-map set-syntax-table decipher-mode-syntax-table decipher-read-alphabet make-local-variable font-lock-defaults (decipher-font-lock-keywords t) make-local-hook change-major-mode-hook add-hook #[nil "ÀÀ‰‡" [nil buffer-read-only buffer-undo-list] 2] run-hooks decipher-mode-hook buffer-read-only] 5 (#$ . 4952) nil]) (put (quote decipher-mode) (quote mode-class) (quote special)) (defalias 'decipher-last-command-char '(macro . #[nil "ÀÁ!ƒ‡Ç" [fboundp event-to-character (event-to-character last-command-event) last-command-event] 2])) #@44 Enter a plaintext or ciphertext character. (defalias 'decipher-keypress #[nil "ÀÁŠŠÄyˆgÆ UƒÇ‚:È UƒÁ‚:É Uƒ+ÊÇ‚:Ë Uƒ7ÊÁ‚:ÌÍ!*„FÁÏÐ!ˆ)gÔzU„\\ÕU„c \"ˆ-Áu‡" [decipher-set-map nil buffer-read-only decipher-function 0 first-char 58 t 62 40 decipher-alphabet-keypress 41 error "Bad location" goal-column previous-line 1 last-command-event char-b char-a 119 32] 3 (#$ . 6442) nil]) (defalias 'decipher-alphabet-keypress #[(a b) "ÁYƒÂXƒÃ\f\"‡ÅYƒ;ÆXƒ;\fÇUƒ6È \"A‰ÇU?…:Ã\fÇ\"‡Ã\f\"‡ÊË!‡" [a 65 90 decipher-set-map b 97 122 32 assoc decipher-alphabet error "Bad character"] 3]) #@33 Undo a change in Decipher mode. (defalias 'decipher-undo #[nil "À\nÃ=„\fÄÅ!ˆÇ=„  „ ÄÊ!ˆ ‰A @ˉ‰‰\f ‰@:„@C‰A@‰\fƒÑ\fA\f@\"‰ƒr@:ƒkÒ \"‚p B Ó\fA\f@À#ˆ‚@Ô !ˆ-ÇÕÖ!‡" [t this-command major-mode decipher-mode error "This buffer is not in Decipher mode" last-command decipher-undo decipher-undo-list decipher-pending-undo-list "No further undo information" nil undo-map redo-rec redo-map buffer-read-only undo-rec decipher-get-undo append decipher-set-map decipher-add-undo message "Undo!"] 6 (#$ . 7064) nil]) #@32 Add UNDO-REC to the undo list. (defalias 'decipher-add-undo #[(undo-rec) "…  B\nT‰ V… ÄZ‰S ›Æ¡ˆ ‰)‡" [undo-rec decipher-undo-list decipher-undo-list-size decipher-undo-limit 100 new-size nil] 3 (#$ . 7627)]) (defalias 'decipher-get-undo #[(cipher-char plain-char) "ÀÁ\n \"!ÀÄ \"! Èšƒ‚I\nAšƒ'É‚IAÈšƒ:†IÈ\nB‚IƒGD‚I*‡" [copy-list rassoc cipher-char decipher-alphabet assoc plain-char plain-map cipher-map 32 nil] 5]) (defalias 'decipher-set-map #[(cipher-char plain-char &optional no-undo) "–‰ÁYƒÂX„ÃÄ!ˆ „ÆÇ\"!ˆÉ!É!ʉ‰ \f ŠebˆÐ\"‰\fƒX\fÒ¡ˆÓÔÉ\f@!P!ˆÕÒ!ˆÖyˆ×\"‰\fƒ‡\fAÒU„tØ\fAÒÙ#ˆ\f¡ˆÓÔP!ˆÕ!ˆÖyˆÓÚP!ˆÕ!ˆÙ —ÛÓÝÊÙ#…ÀŠÊˆ`) Þ ß#ƒžÕ!ˆ‚®.‡" [cipher-char 65 90 error "Bad character" no-undo decipher-add-undo decipher-get-undo plain-char char-to-string nil bound mapping case-fold-search plain-string cipher-string rassoc decipher-alphabet 32 search-forward-regexp "^([a-z]*" decipher-insert 0 assoc decipher-set-map t "^([a-z]+ [A-Z]*" ignore font-lock-fontify-region-function "^:" search-forward end] 6]) (defalias 'decipher-insert #[(char) "iSŠÁyˆÂgU„ÃgU„ÄÅ!ˆÆÇ\"ˆl„$ÈÉ!ˆÊ !*‡" [col nil 62 41 error "Bad location" move-to-column t delete-char 1 insert-and-inherit char] 3]) #@209 Checkpoint the current cipher alphabet. This records the current alphabet so you can return to it later. You may have any number of checkpoints. Type `\[decipher-restore-checkpoint]' to restore a checkpoint. (defalias 'decipher-make-checkpoint #[(desc) ";„Á‰‰ebˆÆÇ!ˆÈÉÊ\"ˆË`ÌZ`\"ÆÍÂÎ#„KÏÐÂÊ#ƒBÑyˆÒÓ!„BÂyˆÔcˆÑyˆÕÖר\"Ù±ˆÚyˆÛ ÜÔ±+‡" [desc "" nil mapping buffer-read-only alphabet re-search-forward "^)" move-to-column 27 t buffer-substring-no-properties 26 "^%![A-Z ]+!" end re-search-backward "^% *Local Variables:" -1 looking-at "^ *$" 10 "\n%" make-string 69 45 "\n% Checkpoints:\n% abcdefghijklmnopqrstuvwxyz\n" 0 "%!" "! "] 5 (#$ . 8915) "sCheckpoint description: "]) #@235 Restore the cipher alphabet from a checkpoint. If point is not on a checkpoint line, moves to the first checkpoint line. If point is on a checkpoint, restores that checkpoint. Type `\[decipher-make-checkpoint]' to make a checkpoint. (defalias 'decipher-restore-checkpoint #[nil "ÀyˆÁÂ!ƒ+ÃÄ!ÅebˆÈÉ!ˆl„#`ň`|ˆcˆÊ *‡ebˆÈËÅÌ#ƒ=ÍÎÏÐ!\"‡ÑÒ!‡" [0 looking-at "%!\\([A-Z ]+\\)!" match-string 1 nil buffer-read-only alphabet re-search-forward "^)" decipher-resync "^%![A-Z ]+!" t message "Select the checkpoint to restore and type `%s'" substitute-command-keys "\\[decipher-restore-checkpoint]" error "No checkpoints in this buffer"] 4 (#$ . 9608) nil]) #@201 Complete the cipher alphabet. This fills any blanks in the cipher alphabet with the unused letters in alphabetical order. Use this when you have a keyword cipher and you have determined the keyword. (defalias 'decipher-complete-alphabet #[nil "À ‰‰‰A@‰ƒA\fAÈšƒ\fÉ \"ƒ/T‚ÈB BÊ\f@Ë#ˆ‚\fÌ !-‡" [65 decipher-alphabet nil undo-rec plain-map buffer-read-only ptr cipher-char 32 rassoc decipher-set-map t decipher-add-undo] 5 (#$ . 10270) nil]) #@58 Display the current cipher alphabet in the message line. (defalias 'decipher-show-alphabet #[nil "ÀÁ Ä#!‡" [message mapconcat #[(a) "À @!À A!P‡" [char-to-string a] 3] decipher-alphabet ""] 5 (#$ . 10745) nil]) #@171 Reprocess the buffer using the alphabet from the top. This regenerates all deciphered plaintext and clears the undo list. You should use this if you edit the ciphertext. (defalias 'decipher-resync #[nil "ÀÁ!ˆÂ‰‰ŠÆ ˆebˆÈÉÂÊ#ƒ\"Ë̉#ˆÈÍÂÊ#ƒ3ËΉ#ˆ‚\"Æ ˆ ‰A@‰ƒQ AÏš„6Ð A @\"ˆ‚6,ÂÒÀÔ!‡" [message "Reprocessing buffer..." nil mapping buffer-read-only alphabet decipher-read-alphabet decipher-alphabet re-search-forward "^).+" t replace-match ")" "^>.+" ">" 32 decipher-set-map decipher-undo-list 0 decipher-undo-list-size "Reprocessing buffer...done"] 4 (#$ . 10963) nil]) #@67 Build the decipher-alphabet from the alphabet line in the buffer. (defalias 'decipher-read-alphabet #[nil "ŠebˆÀÁ!ˆÂÃÄ\"ˆÅÇÇÉY….Ê ˆgBBS‰‚*‡" [search-forward-regexp "^)" move-to-column 27 t nil decipher-alphabet 122 plain-char 97 backward-char] 4 (#$ . 11555)]) #@55 Display the frequency count in the statistics buffer. (defalias 'decipher-frequency-count #[nil "À ˆÁÂÃ\"‡" [decipher-analyze decipher-display-regexp "^A" "^[A-Z][A-Z]"] 3 (#$ . 11839) nil]) #@55 Display the list of digrams in the statistics buffer. (defalias 'decipher-digram-list #[nil "À ˆÁÂÃ\"‡" [decipher-analyze decipher-display-regexp "[A-Z][A-Z] +[0-9]" "^$"] 3 (#$ . 12036) nil]) #@655 Display the adjacency list for the letter at point. The adjacency list shows all letters which come next to CIPHER-CHAR. An adjacency list (for the letter X) looks like this: 1 1 1 1 1 3 2 1 3 8 X: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z * 11 14 9% 1 1 1 2 1 1 2 5 7 This says that X comes before D once, and after B once. X begins 5 words, and ends 3 words (`*' represents a space). X comes before 8 different letters, after 7 differerent letters, and is next to a total of 11 different letters. It occurs 14 times, making up 9% of the ciphertext. (defalias 'decipher-adjacency-list #[(cipher-char) "À ˆÁ‰ŠÄ qˆebˆÅÆÇ\"ÁÉ#„!ÊË\"ˆÌyˆ`Íyˆ`)Î \n\"*‡" [decipher-analyze nil end start decipher-stats-buffer re-search-forward format "^%c: " cipher-char t error "Character `%c' is not used in ciphertext." -1 3 decipher-display-range] 4 (#$ . 12236) (list (upcase (following-char)))]) #@64 Perform frequency analysis on the current buffer if necessary. (defalias 'decipher-analyze #[nil "Á=†Â=ƒÃ\f!ƒÅ\f!†Æ ‡ÇÈ!‡" [major-mode decipher-stats-mode decipher-mode bufferp decipher-stats-buffer buffer-name decipher-analyze-buffer error "This buffer is not in Decipher mode"] 2 (#$ . 13234)]) #@246 Display text between START and END in the statistics buffer. START and END are positions in the statistics buffer. Makes the statistics buffer visible and sizes the window to just fit the displayed text, but leaves the current window selected. (defalias 'decipher-display-range #[(start end) "À Á Âp =„Æ !ˆbˆÈÂ!„)ÉÊ \"TÌ Z!ˆÍÎ!ˆÏ\f!+‡" [decipher-stats-buffer selected-window t pop-up-windows current-window stats-buffer pop-to-buffer start one-window-p enlarge-window count-lines end window-height recenter 0 select-window] 4 (#$ . 13548)]) #@235 Display text between two regexps in the statistics buffer. START-REGEXP matches the first line to display. END-REGEXP matches the line after that which ends the display. The ending line is included in the display unless it is blank. (defalias 'decipher-display-regexp #[(start-regexp end-regexp) "À‰ŠÃ qˆebˆÄ !ˆÆyˆ`Ä!ˆÆyˆÈÉ!„&Êyˆ`)Ë\n \"*‡" [nil end start decipher-stats-buffer re-search-forward start-regexp 0 end-regexp looking-at "^ *$" 1 decipher-display-range] 3 (#$ . 14108)]) #@439 Loop through ciphertext, calling FUNC once for each letter & word division. FUNC is called with no arguments, and its return value is unimportant. It may examine `decipher-char' to see the current ciphertext character. `decipher-char' contains either an uppercase letter or a space. FUNC is called exactly once between words, with `decipher-char' set to a space. See `decipher-loop-no-breaks' if you do not care about word divisions. (defalias 'decipher-loop-with-breaks #[(func) "À‰Šebˆ ˆÄÅÆÇ#…Ol„?g–‰ÈYƒ&\nÉX„(À\nÀšƒ4 Àš„7 ˆ\nÆuˆ‚\nÀš„ ÀÀ ˆ‚ +‡" [32 decipher--loop-prev-char decipher-char func search-forward-regexp "^:" nil t 65 90] 5 (#$ . 14606)]) #@370 Loop through ciphertext, calling FUNC once for each letter. FUNC is called with no arguments, and its return value is unimportant. It may examine `decipher-char' to see the current ciphertext letter. `decipher-char' contains an uppercase letter. Punctuation and spacing in the ciphertext are ignored. See `decipher-loop-with-breaks' if you care about word divisions. (defalias 'decipher-loop-no-breaks #[(func) "ÀŠebˆÂÃÀÄ#…+l„g–‰ÅYƒ% ÆXƒ% ˆÀuˆ‚*‡" [nil decipher-char search-forward-regexp "^:" t 65 90 func] 5 (#$ . 15290)]) #@155 Insert frequency counts in current buffer. Each element of FREQ-LIST is a list (LETTER FREQ ...). TOTAL is the total number of letters in the ciphertext. (defalias 'decipher-insert-frequency-counts #[(freq-list total) "ÀÁ‰ÄV…; ‰ƒ.\n@@ÆÇ\n@A@\n@A@È_ ¥#±ˆÀ\n›‰„Êcˆ A S‰‚*‡" [4 nil temp-list i 0 freq-list format "%4d%3d%% " 100 total 10] 7 (#$ . 15835)]) (defalias 'decipher--analyze #[nil "ÀÁ\n #Å\f\"†\fÇBB‰@‰‰AÉ\\¡ˆ)\nÊYƒS \nÊZH Ìšƒ8Í‚; ÊZ \nÊZH ÌšƒKÍ‚N ÊZHÉ\\Iˆ ÊYƒ– ÊZ ÊZHÉ\\I(ƒ– ÊZH\nÌšƒ{Í‚~\nÊZ ÊZH\nÌšƒŽÍ‚‘\nÊZHÉ\\Iˆ ‰‡" [format "%c%c" decipher--prev-char decipher-char decipher--digram assoc decipher--digram-list 0 G34900 1 65 decipher--before 32 26 decipher--freqs decipher--after] 6]) #@44 Generate the counts for an adjacency list. (defalias 'decipher--digram-counts #[(counts) "ÀÂÃ\fÅ#ÆÇ\fÈHÀVƒ S‚ \"P)‡" [0 total mapconcat #[(x) "ÁVƒ \nTÇÄVƒ\nTÅÆ\"‡Ç‡" [x 99 total "XX" 0 format "%2d" " "] 3] counts "" format "%4d" 26] 5 (#$ . 16584)]) #@65 Count the number of different letters a letter appears next to. (defalias 'decipher--digram-total #[(before-count after-count) "ÀÁ\nS‰ÀYƒ#\f\nHÀV„ \nHÀVƒ T‚ *‡" [0 26 i total before-count after-count] 2 (#$ . 16855)]) #@119 Perform frequency analysis and store results in statistics buffer. Creates the statistics buffer if it doesn't exist. (defalias 'decipher-analyze-buffer #[nil "ƒÁ‚ ÂÃÄÅ\"ÃÄÅ\"ÃÄÆ\"ÆÅ‰‰ \n \f ÏÐ!ˆÄS‰ÆYƒR ÃÒÆ\"Iˆ\fÃÒÆ\"Iˆ‚0)ƒyÓÔ!ˆÄS‰ÆYƒu\fHÄÆIˆ‚^)‚}ÕÔ!ˆÏÖ!ˆ×Ø\"Å¡ˆÙ‰Ú\"Û\"ÄS‰ÆYƒÉÜ\\ HÝ H\fH\"EB\n H\\\n‚–)ŠÞß!qˆ á=„Ýâãä \"ˆÅ%æ ˆç\n\"ˆècˆÙé\"ç\n\"ˆèêëÅ#챈íGî\\è\"‰/Å0ÆVƒR‰0ƒ>0@@ñò0@A\"±ˆ/0›‰0„%ó ˆècˆAS‰‚+Ùô\"‰ʼn500‰A0@‰5ƒ±5A@Æš„c5@ÜZèö÷ H!è5@øñù5AA@5A@5A@ú_\n¥$÷\fH!è± ˆ‚c+ß%ûÅ!ˆ. ÏÅ!‡" [decipher-ignore-spaces 32 42 make-vector 26 nil 0 freq-list decipher--digram-list decipher--digram total-chars decipher--freqs decipher--after decipher--before decipher--prev-char message "Scanning buffer..." i 27 decipher-loop-no-breaks decipher--analyze decipher-loop-with-breaks "Processing results..." last 2 sort #[(a b) "@ @™‡" [a b] 2] #[(a b) "A AV‡" [a b] 2] 65 decipher--digram-total decipher-stats-buffer t major-mode decipher-stats-mode error "Buffer %s is not in Decipher-Stats mode" buffer-name buffer-read-only erase-buffer decipher-insert-frequency-counts 10 #[(a b) "A@ A@V‡" [a b] 2] mapconcat #[(a) "À @!‡" [char-to-string a] 2] "\n\n" floor 9 rows temp-list format "%3d " delete-horizontal-space #[(a b) "AA@ AA@V‡" [a b] 2] entry " " decipher--digram-counts ": A B C D E F G H I J K L M N O P Q R S T U V W X Y Z *" "%4d %4d %3d%%\n " 100 set-buffer-modified-p] 13 (#$ . 17091)]) #@50 Major mode for displaying ciphertext statistics. (defalias 'decipher-stats-mode #[nil "À ˆÁÁÄÄÇÉ\nË\f!ˆÍÎ!‡" [kill-all-local-variables t buffer-read-only buffer-undo-list nil case-fold-search indent-tabs-mode decipher-stats-mode major-mode "Decipher-Stats" mode-name use-local-map decipher-stats-mode-map run-hooks decipher-stats-mode-hook] 2 (#$ . 18646) nil]) (put (quote decipher-stats-mode) (quote mode-class) (quote special)) #@59 Make the statistics buffer visible, but do not select it. (defalias 'decipher-display-stats-buffer #[nil "À Á p =†Ä !ˆÅ\n!*‡" [decipher-stats-buffer selected-window current-window stats-buffer pop-to-buffer select-window] 2 (#$ . 19092)]) #@206 Return the buffer used for decipher statistics. If CREATE is non-nil, create the buffer if it doesn't exist. This is guaranteed to return a buffer in Decipher-Stats mode; if it can't, it signals an error. (defalias 'decipher-stats-buffer #[(&optional create) "Á=ƒp‡Â !ƒ(Ä !ƒ(Š qˆ)Á=„&ÅÆÄ !\"ˆ ‡ƒZÈÄ ÈQ ÊÀËÌ !!\"£Á=ƒJÌ !‚NÍ !)Š qˆÁ ˆ) ‡ÅÎ!‡" [major-mode decipher-stats-mode bufferp decipher-stats-buffer buffer-name error "Buffer %s is not in Decipher-Stats mode" create "*" stats-name assoc buffer-local-variables get-buffer generate-new-buffer "No statistics buffer"] 5 (#$ . 19342)]) (provide (quote decipher))