;ELC ;;; compiled by rms@mole.gnu.ai.mit.edu on Wed Jul 20 02:24:13 1994 ;;; from file /home/fsf/rms/e19/lisp/mail-hist.el ;;; emacs version 19.25.90.2. ;;; 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"))) (error "`/home/fsf/rms/e19/lisp/mail-hist.el' was compiled for Emacs 19")) (require (quote ring)) (defalias 'mail-hist-define-keys #[nil "\"\"" [local-set-key "" mail-hist-previous-input "" mail-hist-next-input] 3 "\ Define keys for accessing mail header history. For use in hooks."]) (byte-code "\"\"\"" [add-hook mail-mode-hook mail-hist-define-keys vm-mail-mode-hook mail-send-hook mail-hist-put-headers-into-history] 3) (defvar mail-hist-header-ring-alist nil "\ Alist of form (header-name . history-ring). Used for knowing which history list to look in when the user asks for previous/next input.") (defvar mail-hist-history-size (byte-code "" [kill-ring-max 1729] 1) "\ *The maximum number of elements in a mail field's history. Oldest elements are dumped first.") (defvar mail-hist-keep-history t "\ *Non-nil means keep a history for headers and text of outgoing mail.") (byte-code "!!ć" [boundp mail-hist-access-count 0 mail-hist-last-bounds nil] 2) (defvar mail-hist-header-regexp "^[^:]*:" "\ Regular expression for matching headers in a mail message.") (defalias 'mail-hist-current-header-name #[nil "\nP#)?=\nP#)##`S < < {," [re-search-backward "^" mail-header-separator nil t re-search-forward body-start mail-hist-header-regexp name-start search-forward ":" name-end] 4 "\ Get name of mail header point is currently in, without the colon. Returns nil if not in a header, implying that point is in the body of the message."]) (put (quote mail-hist-current-header-name) (quote byte-optimizer) (quote byte-compile-inline-expand)) (defalias 'mail-hist-forward-header #[(count) "\nP#)j by`S)V;V^ #S%SWW #TA #!gu))" [re-search-forward "^" mail-header-separator nil t boundary unstopped 0 count mail-hist-header-regexp re-search-backward looking-at "\\s-" 1] 5 "\ Move forward COUNT headers (backward if COUNT is negative). If last/first header is encountered first, stop there and returns nil. Places point on the first non-whitespace on the line following the colon after the header name, or on the second space following that if the header is empty."]) (put (quote mail-hist-forward-header) (quote byte-optimizer) (quote byte-compile-inline-expand)) (defalias 'mail-hist-beginning-of-header #[nil "\fP#)iby`S) V= V]\n# S( SWU\n# TA\n#!fu)*\fP#)by`S) V V\n# S SW\n# T\n#!u)*\fP#)Aby`S) V V5\n# S SW-\n# T\n#!>u)))\fP#)by`S) V V\n# Sl SW\n# T\n#!u)*" [-1 count re-search-forward "^" mail-header-separator nil t boundary unstopped 0 mail-hist-header-regexp re-search-backward looking-at "\\s-" 1] 5 "\ Move to the start of the current header. The start of the current header is defined as one space after the colon, or just after the colon if it is not followed by whitespace."]) (put (quote mail-hist-beginning-of-header) (quote byte-optimizer) (quote byte-compile-inline-expand)) (defalias 'mail-hist-current-header-contents #[nil "\fP#)jby`S) V> V^\n# S) SWV\n# TB\n#!gu)*\fP#)by`S) V V\n# S SW\n# T\n#!u)*\fP#)Dby`S) V V8\n# S SW0\n# T\n#!Au)))\fP#)by`S) V V\n# So SW\n# T\n#!u)*`!\fP!y`S{*" [-1 count re-search-forward "^" mail-header-separator nil t boundary unstopped 0 mail-hist-header-regexp re-search-backward looking-at "\\s-" 1 start mail-hist-forward-header] 5 "\ Get the contents of the mail header in which point is located."]) (put (quote mail-hist-current-header-contents) (quote byte-optimizer) (quote byte-compile-inline-expand)) (defalias 'mail-hist-get-header-ring #[(header) "\n\"A" [header assoc mail-hist-header-ring-alist] 3 "\ Get HEADER's history ring, or nil if none. HEADER is a string without the colon."]) (put (quote mail-hist-get-header-ring) (quote byte-optimizer) (quote byte-compile-inline-expand)) (defalias 'mail-hist-add-header-contents-to-ring #[(header &optional contents) "\n\"A ! B\nB  \fP#)by`S) Vb V# S K S W~# T h#!u)*  \fP#) by`S) V V# S  S W# T #!u)* \fP#)by`S) VP Vt# S 9 S Wl# T V#!}u))) \fP#)by`S) V V# S  S W# T #!u)*`!\fP!y`S{*\")" [header assoc mail-hist-header-ring-alist ring make-ring mail-hist-history-size ring-insert contents -1 count re-search-forward "^" mail-header-separator nil t boundary unstopped 0 mail-hist-header-regexp re-search-backward looking-at "\\s-" 1 start mail-hist-forward-header] 8 "\ Add the contents of HEADER to the header history ring. Optional argument CONTENTS is a string which will be the contents (instead of whatever's found in the header)."]) (put (quote mail-hist-add-header-contents-to-ring) (quote byte-optimizer) (quote byte-compile-inline-expand)) (defalias 'mail-hist-put-headers-into-history #[nil "eb P#)p by`S)\nVD\nVd # \nS/\nSW\\ # \nTH #!mu )* P#)? P#) ##`S{,\"A!BB P#)I by`S)\nV\nV= # \nS\nSW5 # \nT! #!Fu )* P#) by`S)\nV\nV # \nSu\nSW # \nT #!u )* P#)# by`S)\nV\nV # \nS\nSW # \nT #! u ))) P#) by`S)\nVc\nV # \nSN\nSW{ # \nTg #!u )*`! P!y`S{*\")*eb P\"y`d{)\"A!BB P#)^ by`S)\nV2\nVR # \nS\nSWJ # \nT6 #![u )* P#) by`S)\nV\nV # \nS\nSW # \nT #!u )* P#)8 by`S)\nV\f\nV, # \nS\nSW$ # \nT #!5u ))) P#) by`S)\nVx\nV # \nSc\nSW # \nT| #!u )*`! P!y`S{*\"," [mail-hist-keep-history 1 count re-search-forward "^" mail-header-separator nil t boundary unstopped 0 mail-hist-header-regexp re-search-backward looking-at "\\s-" body-start name-start search-forward ":" name-end contents header assoc mail-hist-header-ring-alist ring make-ring mail-hist-history-size ring-insert -1 start mail-hist-forward-header body-contents "body"] 9 "\ Put headers and contents of this message into mail header history. Each header has its own independent history, as does the body of the message. This function normally would be called when the message is sent."]) (defalias 'mail-hist-previous-input #[(header) "\n\"A !=!\n \"\n$\n 2 \"a !?\"aL@A|` \n\"c`Blj)+" [header assoc mail-hist-header-ring-alist ring ring-length len last-command mail-hist-input-access repeat ring-plus1 mail-hist-access-count 0 ding message "No history for \"%s\"." ring-empty-p error "\"%s\" ring is empty." mail-hist-last-bounds start ring-ref this-command] 4 "\ Insert the previous contents of this mail header or message body. Moves back through the history of sent mail messages. Each header has its own independent history, as does the body of the message. The history only contains the contents of outgoing messages, not received mail." (list (or (mail-hist-current-header-name) "body"))]) (defalias 'mail-hist-next-input #[(header) "\n\"A !=!\n \"\n$\n 2 \"a !?\"aL@A|` \n\"c`Blj)+" [header assoc mail-hist-header-ring-alist ring ring-length len last-command mail-hist-input-access repeat ring-minus1 mail-hist-access-count 0 ding message "No history for \"%s\"." ring-empty-p error "\"%s\" ring is empty." mail-hist-last-bounds start ring-ref this-command] 4 "\ Insert next contents of this mail header or message body. Moves back through the history of sent mail messages. Each header has its own independent history, as does the body of the message. Although you can do so, it does not make much sense to call this without having called `mail-hist-previous-header' first (\\[mail-hist-previous-header]). The history only contains the contents of outgoing messages, not received mail." (list (or (mail-hist-current-header-name) "body"))]) (provide (quote mail-hist))