;;; gnus.el --- a newsreader for GNU Emacs
-;; Copyright (C) 1987,88,89,90,93,94,95,96,97,98,99 Free Software Foundation, Inc.
+;; Copyright (C) 1987-1990,1993-1999 Free Software Foundation, Inc.
;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
;; Lars Magne Ingebrigtsen <larsi@gnus.org>
(defconst gnus-product-name "T-gnus"
"Product name of this version of gnus.")
-(defconst gnus-version-number "6.10.054"
+(defconst gnus-version-number "6.10.071"
"Version number for this version of gnus.")
-(defconst gnus-original-version-number "0.71"
+(defconst gnus-revision-number "00"
+ "Revision number for this version of gnus.")
+
+(defconst gnus-original-version-number "0.93"
"Version number for this version of Gnus.")
+(provide 'running-pterodactyl-gnus-0_73-or-later)
+
(defconst gnus-original-product-name "Pterodactyl Gnus"
"Product name of the original version of Gnus.")
(defconst gnus-version
- (format "%s %s (based on %s v%s ; for SEMI 1.12, FLIM 1.12)"
+ (format "%s %s (based on %s v%s ; for SEMI 1.12/1.13, FLIM 1.12)"
gnus-product-name gnus-version-number
gnus-original-product-name gnus-original-version-number)
"Version string for this version of gnus.")
(insert-file-contents gnus-nntpserver-file)
(let ((name (buffer-string)))
(prog1
- (if (string-match "^[ \t\n]*$" name)
+ (if (string-match "\\'[ \t\n]*$" name)
nil
name)
(kill-buffer (current-buffer))))))))
(defcustom gnus-select-method
- (condition-case nil
+ (ignore-errors
(nconc
- (list 'nntp (or (condition-case nil
- (gnus-getenv-nntpserver)
- (error nil))
+ (list 'nntp (or (ignore-errors
+ (gnus-getenv-nntpserver))
(when (and gnus-default-nntp-server
(not (string= gnus-default-nntp-server "")))
gnus-default-nntp-server)
(if (or (null gnus-nntp-service)
(equal gnus-nntp-service "nntp"))
nil
- (list gnus-nntp-service)))
- (error nil))
+ (list gnus-nntp-service))))
"*Default method for selecting a newsgroup.
This variable should be a list, where the first element is how the
news is to be fetched, the second is the address.
:type 'boolean)
(defcustom gnus-use-picons nil
- "*If non-nil, display picons."
+ "*If non-nil, display picons in a frame of their own."
:group 'gnus-meta
:type 'boolean)
(defcustom gnus-group-change-level-function nil
"Function run when a group level is changed.
It is called with three parameters -- GROUP, LEVEL and OLDLEVEL."
- :group 'gnus-group-level
+ :group 'gnus-group-levels
:type 'function)
;;; Face thingies.
:group 'gnus-visual
:type 'face)
-(defcustom gnus-article-display-hook
- (if (and (string-match "XEmacs" emacs-version)
- (featurep 'xface))
- '(gnus-article-hide-headers-if-wanted
- gnus-article-hide-boring-headers
- gnus-article-treat-overstrike
- gnus-article-maybe-highlight
- gnus-article-display-x-face)
- '(gnus-article-hide-headers-if-wanted
- gnus-article-hide-boring-headers
- gnus-article-treat-overstrike
- gnus-article-maybe-highlight))
- "*Controls how the article buffer will look.
-
-If you leave the list empty, the article will appear exactly as it is
-stored on the disk. The list entries will hide or highlight various
-parts of the article, making it easier to find the information you
-want."
- :group 'gnus-article-highlight
- :group 'gnus-visual
- :type 'hook
- :options '(gnus-article-add-buttons
- gnus-article-add-buttons-to-head
- gnus-article-emphasize
- gnus-article-fill-cited-article
- gnus-article-remove-cr
- gnus-summary-stop-page-breaking
- ;; gnus-summary-caesar-message
- ;; gnus-summary-verbose-headers
- gnus-summary-toggle-mime
- gnus-article-hide
- gnus-article-hide-headers
- gnus-article-hide-boring-headers
- gnus-article-hide-signature
- gnus-article-hide-citation
- gnus-article-hide-pgp
- gnus-article-hide-pem
- gnus-article-highlight
- gnus-article-highlight-headers
- gnus-article-highlight-citation
- gnus-article-highlight-signature
- gnus-article-date-ut
- gnus-article-date-local
- gnus-article-date-lapsed
- gnus-article-date-original
- gnus-article-remove-trailing-blank-lines
- gnus-article-strip-leading-blank-lines
- gnus-article-strip-multiple-blank-lines
- gnus-article-strip-blank-lines
- gnus-article-treat-overstrike
- gnus-article-display-x-face
- gnus-smiley-display))
-
(defcustom gnus-article-save-directory gnus-directory
"*Name of the directory articles will be saved in (default \"~/News\")."
:group 'gnus-article-saving
,(nnheader-concat gnus-cache-directory "active"))))
"List of predefined (convenience) servers.")
-(defvar gnus-topic-indentation "") ;; Obsolete variable.
+(defvar gnus-topic-indentation "");; Obsolete variable.
(defconst gnus-article-mark-lists
'((marked . tick) (replied . reply)
(defvar gnus-dead-summary nil)
+(defvar gnus-article-display-hook nil
+ "Controls how the article buffer will look. This is an obsolete variable;
+use the article treating faculties instead. Is is described in Info node
+`Customizing Articles'.")
+
;;; End of variables.
;; Define some autoload functions Gnus might use.
gnus-summary-post-forward gnus-summary-wide-reply-with-original
gnus-summary-post-forward)
("gnus-picon" :interactive t gnus-article-display-picons
- gnus-group-display-picons gnus-picons-article-display-x-face
- gnus-picons-display-x-face)
+ gnus-group-display-picons)
+ ("gnus-picon" gnus-picons-buffer-name)
("gnus-gl" bbb-login bbb-logout bbb-grouplens-group-p
gnus-grouplens-mode)
("smiley" :interactive t gnus-smiley-display)
gnus-group-set-mode-line gnus-group-set-info gnus-group-save-newsrc
gnus-group-setup-buffer gnus-group-get-new-news
gnus-group-make-help-group gnus-group-update-group
- gnus-clear-inboxes-moved gnus-group-iterate
- gnus-group-group-name)
+ gnus-group-iterate gnus-group-group-name)
("gnus-bcklg" gnus-backlog-request-article gnus-backlog-enter-article
gnus-backlog-remove-article)
("gnus-art" gnus-article-read-summary-keys gnus-article-save
gnus-article-delete-invisible-text gnus-treat-article)
("gnus-art" :interactive t
gnus-article-hide-headers gnus-article-hide-boring-headers
- gnus-article-treat-overstrike gnus-article-word-wrap
+ gnus-article-treat-overstrike
gnus-article-remove-cr gnus-article-remove-trailing-blank-lines
gnus-article-display-x-face
gnus-article-hide-pgp
gnus-article-show-all-headers
gnus-article-edit-mode gnus-article-edit-article
gnus-article-edit-done article-decode-encoded-words
- gnus-start-date-timer gnus-stop-date-timer)
+ gnus-start-date-timer gnus-stop-date-timer
+ gnus-article-toggle-headers)
("gnus-int" gnus-request-type)
("gnus-start" gnus-newsrc-parse-options gnus-1 gnus-no-server-1
gnus-dribble-enter gnus-read-init-file gnus-dribble-touch)
gnus-unplugged gnus-agentize gnus-agent-batch)
("gnus-vm" :interactive t gnus-summary-save-in-vm
gnus-summary-save-article-vm)
- ("gnus-draft" :interactive t gnus-draft-mode gnus-group-send-drafts))))
+ ("gnus-draft" :interactive t gnus-draft-mode gnus-group-send-drafts)
+ ("gnus-mlspl" gnus-mlsplit gnus-mlsplit-fancy)
+ ("gnus-mlspl" :interactive t gnus-mlsplit-setup gnus-mlsplit-update))))
;;; gnus-sum.el thingies
The %U (status), %R (replied) and %z (zcore) specs have to be handled
with care. For reasons of efficiency, Gnus will compute what column
these characters will end up in, and \"hard-code\" that. This means that
-it is illegal to have these specs after a variable-length spec. Well,
+it is invalid to have these specs after a variable-length spec. Well,
you might not be arrested, but your summary buffer will look strange,
which is bad enough.
(setq s1 (cdr s1)))
(null s1))))))
+(defun gnus-methods-equal-p (m1 m2)
+ (let ((m1 (or m1 gnus-select-method))
+ (m2 (or m2 gnus-select-method)))
+ (or (equal m1 m2)
+ (and (eq (car m1) (car m2))
+ (or (not (memq 'address (assoc (symbol-name (car m1))
+ gnus-valid-select-methods)))
+ (equal (nth 1 m1) (nth 1 m2)))))))
+
(defun gnus-server-equal (m1 m2)
"Say whether two methods are equal."
(let ((m1 (cond ((null m1) gnus-select-method)
(let ((methods gnus-secondary-select-methods)
(gmethod (gnus-server-get-method nil method)))
(while (and methods
- (not (gnus-method-equal
+ (not (gnus-method-equal
(gnus-server-get-method nil (car methods))
gmethod)))
(setq methods (cdr methods)))
(defun gnus-method-simplify (method)
"Return the shortest uniquely identifying string or method for METHOD."
- (cond ((gnus-native-method-p method)
- nil)
- ((gnus-secondary-method-p method)
- (format "%s:%s" (nth 0 method) (nth 1 method)))
- (t
- method)))
+ (cond ((stringp method)
+ method)
+ ((gnus-native-method-p method)
+ nil)
+ ((gnus-secondary-method-p method)
+ (format "%s:%s" (nth 0 method) (nth 1 method)))
+ (t
+ method)))
(defun gnus-groups-from-server (server)
"Return a list of all groups that are fetched from SERVER."
(when info
(gnus-info-set-score info (+ (gnus-info-score info) (or score 1))))))
-;; Function written by Stainless Steel Rat <ratinox@peorth.gweep.net>
(defun gnus-short-group-name (group &optional levels)
"Collapse GROUP name LEVELS.
Select methods are stripped and any remote host name is stripped down to
(depth 0)
(skip 1)
(levels (or levels
+ gnus-group-uncollapsed-levels
(progn
(while (string-match "\\." group skip)
(setq skip (match-end 0)
(defun gnus-read-group (prompt &optional default)
"Prompt the user for a group name.
-Disallow illegal group names."
+Disallow invalid group names."
(let ((prefix "")
group)
(while (not group)
(setq group (read-string (concat prefix prompt)
(cons (or default "") 0)
'gnus-group-history)))
- (setq prefix (format "Illegal group name: \"%s\". " group)
+ (setq prefix (format "Invalid group name: \"%s\". " group)
group nil)))
group))
(interactive "P")
(gnus arg nil 'slave))
+(defcustom gnus-frame-properties nil
+ "The properties of the frame in which gnus is displayed. Under XEmacs,
+the variable `toolbar-news-frame-plist' will be refered instead."
+ :type '(repeat (cons :format "%v"
+ (symbol :tag "Parameter")
+ (sexp :tag "Value")))
+ :group 'gnus)
+
+(defvar gnus-frame nil
+ "The frame in which gnus is displayed. It is not used under XEmacs.")
+
;;;###autoload
(defun gnus-other-frame (&optional arg)
"Pop up a frame to read news."
(interactive "P")
- (let ((window (get-buffer-window gnus-group-buffer)))
- (cond (window
- (select-frame (window-frame window)))
- ((= (length (frame-list)) 1)
- (select-frame (make-frame)))
- (t
- (other-frame 1))))
- (gnus arg))
+ (if (featurep 'xemacs)
+ (let ((toolbar-news-use-separate-frame t))
+ (toolbar-gnus))
+ (if (frame-live-p gnus-frame)
+ (raise-frame gnus-frame)
+ (setq gnus-frame (make-frame gnus-frame-properties))
+ (if (and (gnus-buffer-live-p gnus-group-buffer)
+ (save-current-buffer
+ (set-buffer gnus-group-buffer)
+ (eq 'gnus-group-mode major-mode)))
+ (progn
+ (select-frame gnus-frame)
+ (switch-to-buffer gnus-group-buffer))
+ (add-hook 'gnus-exit-gnus-hook
+ (lambda ()
+ (when (and (frame-live-p gnus-frame)
+ (cdr (frame-list)))
+ (delete-frame gnus-frame))
+ (setq gnus-frame nil)))
+ (select-frame gnus-frame)
+ (gnus arg)))))
;;;###autoload
(defun gnus (&optional arg dont-connect slave)