home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 4 / FreshFish_May-June1994.bin / bbs / gnu / emacs-18.59-bin.lha / lib / emacs / 18.59 / lisp / rnews.elc < prev    next >
Text File  |  1991-09-13  |  24KB  |  379 lines

  1.  
  2. (provide (quote rnews))
  3.  
  4. (require (quote mail-utils))
  5.  
  6. (autoload (quote rmail-output) "rmailout" "\
  7. Append this message to Unix mail file named FILE-NAME." t)
  8.  
  9. (autoload (quote news-reply) "rnewspost" "\
  10. Compose and post a reply to the current article on USENET.
  11. While composing the reply, use \\[mail-yank-original] to yank the original
  12. message into it." t)
  13.  
  14. (autoload (quote news-mail-other-window) "rnewspost" "\
  15. Send mail in another window.
  16. While composing the message, use \\[mail-yank-original] to yank the
  17. original message into it." t)
  18.  
  19. (autoload (quote news-post-news) "rnewspost" "\
  20. Begin editing a new USENET news article to be posted." t)
  21.  
  22. (autoload (quote news-mail-reply) "rnewspost" "\
  23. Mail a reply to the author of the current article.
  24. While composing the reply, use \\[mail-yank-original] to yank the original
  25. message into it." t)
  26.  
  27. (defvar rmail-last-file (expand-file-name "~/mbox.news"))
  28.  
  29. (defvar news-startup-file "$HOME/.newsrc" "\
  30. Contains ~/.newsrc")
  31.  
  32. (defvar news-certification-file "$HOME/.news-dates" "\
  33. Contains ~/.news-dates")
  34.  
  35. (defvar news-ignored-headers "^Path:\\|^Posting-Version:\\|^Article-I.D.:\\|^Expires:\\|^Date-Received:\\|^References:\\|^Control:\\|^Xref:\\|^Lines:\\|^Posted:\\|^Relay-Version:\\|^Message-ID:\\|^Nf-ID:\\|^Nf-From:\\|^Approved:\\|^Sender:" "\
  36. All random fields within the header of a message.")
  37.  
  38. (defvar news-mode-map nil)
  39.  
  40. (defvar news-read-first-time-p t)
  41.  
  42. (defvar news-user-group-list nil)
  43.  
  44. (defvar news-current-news-group nil)
  45.  
  46. (defvar news-current-group-begin nil)
  47.  
  48. (defvar news-current-group-end nil)
  49.  
  50. (defvar news-current-certifications nil "\
  51. An assoc list of a group name and the time at which it is
  52. known that the group had no new traffic")
  53.  
  54. (defvar news-current-certifiable nil "\
  55. The time when the directory we are now working on was written")
  56.  
  57. (defvar news-message-filter nil "\
  58. User specifiable filter function that will be called during
  59. formatting of the news file")
  60.  
  61. (defvar news-list-of-files nil "\
  62. Global variable in which we store the list of files
  63. associated with the current newsgroup")
  64.  
  65. (defvar news-list-of-files-possibly-bogus nil "\
  66. variable indicating we only are guessing at which files are available.
  67. Not currently used.")
  68.  
  69. (defvar news-group-article-assoc nil)
  70.  
  71. (defvar news-current-message-number 0 "\
  72. Displayed Article Number")
  73.  
  74. (defvar news-total-current-group 0 "\
  75. Total no of messages in group")
  76.  
  77. (defvar news-unsubscribe-groups nil)
  78.  
  79. (defvar news-point-pdl nil "\
  80. List of visited news messages.")
  81.  
  82. (defvar news-no-jumps-p t)
  83.  
  84. (defvar news-buffer nil "\
  85. Buffer into which news files are read.")
  86.  
  87. (defmacro news-push (item ref) (byte-code "Âà   EE‡" [ref item setq cons] 5))
  88.  
  89. (defmacro news-cadr (x) (byte-code "ÁÂDD‡" [x car cdr] 3))
  90.  
  91. (defmacro news-cdar (x) (byte-code "ÁÂDD‡" [x cdr car] 3))
  92.  
  93. (defmacro news-caddr (x) (byte-code "ÁÂÂDDD‡" [x car cdr] 4))
  94.  
  95. (defmacro news-cadar (x) (byte-code "ÁÂÁDDD‡" [x car cdr] 4))
  96.  
  97. (defmacro news-caadr (x) (byte-code "ÁÁÂDDD‡" [x car cdr] 4))
  98.  
  99. (defmacro news-cdadr (x) (byte-code "ÁÂÁDDD‡" [x cdr car] 4))
  100.  
  101. (defmacro news-wins (pfx index) (byte-code "ÂÃÄÅ    DFD‡" [pfx index file-exists-p concat "/" int-to-string] 6))
  102.  
  103. (defvar news-max-plausible-gap 2 "\
  104. * In an rnews directory, the maximum possible gap size.
  105. A gap is a sequence of missing messages between two messages that exist.
  106. An empty file does not contribute to a gap -- it ends one.")
  107.  
  108. (defun news-find-first-and-last (prefix base) (byte-code "ÂÃÄ    !Q!…Å    Æ#Å    Ç#B‡" [prefix base file-exists-p "/" int-to-string news-find-first-or-last -1 1] 8))
  109.  
  110. (defmacro news-/ (a1 a2) (byte-code "ÂÃÄÅ\"!ƒà   E‚\"ÆÇÈEÉÃÉD    EDà   EF‡" [a1 a2 zerop / -1 2 if < 0 -] 8))
  111.  
  112. (defun news-find-first-or-last (pfx base dirn) (byte-code "    Æ
  113. ÇÈ     \\!Q!…É    Ê\"‰ˆ‚ˆË    Ê\"‰ˆË    Ê\"Ì Í\"…LÆ
  114. ÇÈÎ      #!Q!…A     \\‰ˆË Ê\"‰ˆ‚&)ˆÉ\"Ì Í\"…gÆ
  115. ÇÈÎ      #!Q!?…s Z‰ˆ‚Sˆ ÍUƒ€     \\‚‰Ï
  116. Î      ##))‡" [original-dir dirn pfx base offset news-max-plausible-gap file-exists-p "/" int-to-string * 2 / /= 0 + news-find-first-or-last] 21))
  117.  
  118. (defun rnews nil "\
  119. Read USENET news for groups for which you are a member and add or
  120. delete groups.
  121. You can reply to articles posted and send articles to any group.
  122.  
  123. Type \\[describe-mode] once reading news to get a list of rnews commands." (interactive) (byte-code "ĈƠÇÈ!ˆÉÊË!‰!ˆÌ ˆ‰ˆÄ‰ˆÍ ˆÅ‰ˆÎÅ!ˆÏÐ!ˆÑÒ!ˆÓ ˆÔ ˆÕ )‡" [last-buffer news-buffer news-buffer-save buffer-read-only nil t buffer-name make-local-variable rmail-last-file switch-to-buffer get-buffer-create "*news*" news-mode erase-buffer set-buffer-modified-p sit-for 0 message "Getting new USENET news..." news-set-mode-line news-get-certifications news-get-new-news] 13))
  124.  
  125. (defun news-group-certification (group) (byte-code "Âà   \"!‡" [group news-current-certifications cdr-safe assoc] 4))
  126.  
  127. (defun news-set-current-certifiable nil (byte-code "    ÄÅÆ
  128. #PÇÈÉ!†!8‰)‡" [file news-path news-current-news-group news-current-certifiable string-subst-char 47 46 5 file-attributes file-symlink-p] 5))
  129.  
  130. (defun news-get-certifications nil (byte-code "ŠÁ‹)‡" [news-current-certifications ((byte-code "ÁÂÃď!‰‡" [news-current-certifications car-safe var (byte-code "à   !Ä!Å!…Æ
  131. Ç\"ˆÈŽÉÊ !)*‡" [file news-certification-file buf substitute-in-file-name find-file-noselect file-exists-p switch-to-buffer norecord ((byte-code "Á!‡" [buf kill-buffer] 2)) read-from-string buffer-string] 7) ((error (byte-code "À‡" [nil] 1)))] 4))] 1))
  132.  
  133. (defun news-write-certifications nil (byte-code "ŠÃ‹)‡" [news-current-certifications buf news-certification-file ((byte-code "ÐÄ!‘ˆÅÃ!Æ    !ˆÇÈ
  134. !!ˆÉ    !)‡" [news-current-certifications buf news-certification-file "*CeRtIfIcAtIoNs*" print get-buffer switch-to-buffer write-file substitute-in-file-name kill-buffer] 7))] 1))
  135.  
  136. (defun news-set-current-group-certification nil (byte-code "Ä    
  137. \"ƒÅ \"‚     B
  138. B‰)‡" [cgc news-current-news-group news-current-certifications news-current-certifiable assoc setcdr] 4))
  139.  
  140. (defun news-set-minor-modes nil "\
  141. Creates a minor mode list that has group name, total articles,
  142. and attribute for current article." (byte-code "Ä    Å
  143. Æ RBC‰ˆÇÈ!†‰‡" [news-minor-modes news-current-message-number news-total-current-group minor-modes foo "/" news-get-attribute-string boundp minor-mode-alist] 6))
  144.  
  145. (defun news-set-message-counters nil "\
  146. Scan through current news-groups filelist to figure out how many messages
  147. are there. Set counters for use with minor mode display." (byte-code "?…‰‡" [news-list-of-files news-current-message-number 0] 2))
  148.  
  149. (if news-mode-map nil (setq news-mode-map (make-keymap)) (suppress-keymap news-mode-map) (define-key news-mode-map "." (quote beginning-of-buffer)) (define-key news-mode-map " " (quote scroll-up)) (define-key news-mode-map "" (quote scroll-down)) (define-key news-mode-map "n" (quote news-next-message)) (define-key news-mode-map "c" (quote news-make-link-to-message)) (define-key news-mode-map "p" (quote news-previous-message)) (define-key news-mode-map "j" (quote news-goto-message)) (define-key news-mode-map "q" (quote news-exit)) (define-key news-mode-map "e" (quote news-exit)) (define-key news-mode-map "j" (quote news-goto-news-group)) (define-key news-mode-map "n" (quote news-next-group)) (define-key news-mode-map "p" (quote news-previous-group)) (define-key news-mode-map "l" (quote news-list-news-groups)) (define-key news-mode-map "?" (quote describe-mode)) (define-key news-mode-map "g" (quote news-get-new-news)) (define-key news-mode-map "f" (quote news-reply)) (define-key news-mode-map "m" (quote news-mail-other-window)) (define-key news-mode-map "a" (quote news-post-news)) (define-key news-mode-map "r" (quote news-mail-reply)) (define-key news-mode-map "o" (quote news-save-item-in-file)) (define-key news-mode-map "" (quote rmail-output)) (define-key news-mode-map "t" (quote news-show-all-headers)) (define-key news-mode-map "x" (quote news-force-update)) (define-key news-mode-map "A" (quote news-add-news-group)) (define-key news-mode-map "u" (quote news-unsubscribe-current-group)) (define-key news-mode-map "U" (quote news-unsubscribe-group)) (define-key news-mode-map "" (quote news-caesar-buffer-body)))
  150.  
  151. (defun news-mode nil "\
  152. News Mode is used by M-x rnews for reading