*** pub/dgnus/lisp/auc-menu.el Tue Sep 26 00:21:30 1995 --- dgnus/lisp/auc-menu.el Sat Sep 23 23:27:19 1995 *************** *** 1,313 **** - ;;; auc-menu.el - Easy menu support for GNU Emacs 19 and XEmacs. - ;; - ;; $Id: auc-menu.el,v 5.7 1994/11/28 01:41:22 amanda Exp $ - ;; - ;; LCD Archive Entry: - ;; auc-menu|Per Abrahamsen|abraham@iesd.auc.dk| - ;; Easy menu support for GNU Emacs 19 and XEmacs| - ;; $Date: 1994/11/28 01:41:22 $|$Revision: 5.7 $|~/misc/auc-menu.el.gz| - - ;; Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc. - ;; Copyright (C) 1994 Per Abrahamsen - ;; - ;; This program is free software; you can redistribute it and/or modify - ;; it under the terms of the GNU General Public License as published by - ;; the Free Software Foundation; either version 2, or (at your option) - ;; any later version. - ;; - ;; This program is distributed in the hope that it will be useful, - ;; but WITHOUT ANY WARRANTY; without even the implied warranty of - ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - ;; GNU General Public License for more details. - ;; - ;; You should have received a copy of the GNU General Public License - ;; along with this program; if not, write to the Free Software - ;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - ;; Commentary: - ;; - ;; Easymenu allows you to define menus for both Emacs 19 and XEmacs. - ;; The advantages of using easymenu are: - ;; - ;; - Easier to use than either the Emacs 19 and XEmacs menu syntax. - ;; - ;; - Common interface for Emacs 18, Emacs 19, and XEmacs. - ;; (The code does nothing when run under Emacs 18). - ;; - ;; The public functions are: - ;; - ;; - Function: easy-menu-define SYMBOL MAPS DOC MENU - ;; SYMBOL is both the name of the variable that holds the menu and - ;; the name of a function that will present a the menu. - ;; MAPS is a list of keymaps where the menu should appear in the menubar. - ;; DOC is the documentation string for the variable. - ;; MENU is an XEmacs style menu description. - ;; - ;; See the documentation for easy-menu-define for details. - ;; - ;; - Function: easy-menu-change PATH NAME ITEMS - ;; Change an existing menu. - ;; The menu must already exist an be visible on the menu bar. - ;; PATH is a list of strings used for locating the menu on the menu bar. - ;; NAME is the name of the menu. - ;; ITEMS is a list of menu items, as defined in `easy-menu-define'. - ;; - ;; - Function: easy-menu-add MENU [ MAP ] - ;; Add MENU to the current menubar in MAP. - ;; - ;; - Function: easy-menu-remove MENU - ;; Remove MENU from the current menubar. - ;; - ;; GNU Emacs 19 never uses `easy-menu-add' or `easy-menu-remove', - ;; menus automatically appear and disappear when the keymaps - ;; specified by the MAPS argument to `easy-menu-define' are - ;; activated. - ;; - ;; XEmacs will bind the map to button3 in each MAPS, but you must - ;; explicitly call `easy-menu-add' and `easy-menu-remove' to add and - ;; remove menus from the menu bar. - - ;; auc-menu.el define the easymenu API included in Emacs 19.29 and - ;; later. In fact, the Emacs 19 specific code should be identical. - - ;;; Code: - - ;;;###autoload - (defmacro easy-menu-define (symbol maps doc menu) - "Define a menu bar submenu in maps MAPS, according to MENU. - The arguments SYMBOL and DOC are ignored; they are present for - compatibility only. SYMBOL is not evaluated. In other Emacs versions - these arguments may be used as a variable to hold the menu data, and a - doc string for that variable. - - The first element of MENU must be a string. It is the menu bar item name. - The rest of the elements are menu items. - - A menu item is usually a vector of three elements: [NAME CALLBACK ENABLE] - - NAME is a string--the menu item name. - - CALLBACK is a command to run when the item is chosen, - or a list to evaluate when the item is chosen. - - ENABLE is an expression; the item is enabled for selection - whenever this expression's value is non-nil. - - Alternatively, a menu item may have the form: - - [ NAME CALLBACK [ KEYWORD ARG ] ... ] - - Where KEYWORD is one of the symbol defined below. - - :keys KEYS - - KEYS is a string; a complex keyboard equivalent to this menu item. - - :active ENABLE - - ENABLE is an expression; the item is enabled for selection - whenever this expression's value is non-nil. - - :suffix NAME - - NAME is a string; the name of an argument to CALLBACK. - - :style STYLE - - STYLE is a symbol describing the type of menu item. The following are - defined: - - toggle: A checkbox. - Currently just prepend the name with the string \"Toggle \". - radio: A radio button. - nil: An ordinary menu item. - - :selected SELECTED - - SELECTED is an expression; the checkbox or radio button is selected - whenever this expression's value is non-nil. - Currently just disable radio buttons, no effect on checkboxes. - - A menu item can be a string. Then that string appears in the menu as - unselectable text. A string consisting solely of hyphens is displayed - as a solid horizontal line. - - A menu item can be a list. It is treated as a submenu. - The first element should be the submenu name. That's used as the - menu item in the top-level menu. The cdr of the submenu list - is a list of menu items, as above." - (` (progn - (defvar (, symbol) nil (, doc)) - (easy-menu-do-define (quote (, symbol)) (, maps) (, doc) (, menu))))) - - (cond - - ;;; Emacs 18 - - ((< (string-to-int emacs-version) 19) - - (defun easy-menu-do-define (symbol maps doc menu) - (fset symbol (symbol-function 'ignore))) - - (defun easy-menu-remove (menu)) - - (defun easy-menu-add (menu &optional map)) - - (defun easy-menu-change (path name items)) - - ) ;Emacs 18 - - ;;; XEmacs - - ((string-match "XEmacs\\|Lucid" emacs-version) - - (defun easy-menu-do-define (symbol maps doc menu) - (set symbol menu) - (fset symbol (list 'lambda '(e) - doc - '(interactive "@e") - '(run-hooks 'activate-menubar-hook) - '(setq zmacs-region-stays 't) - (list 'popup-menu symbol))) - (mapcar (function (lambda (map) (define-key map 'button3 symbol))) - (if (keymapp maps) (list maps) maps))) - - (fset 'easy-menu-change (symbol-function 'add-menu)) - - (defun easy-menu-add (menu &optional map) - "Add MENU to the current menu bar." - (cond ((null current-menubar) - ;; Don't add it to a non-existing menubar. - nil) - ((assoc (car menu) current-menubar) - ;; Already present. - nil) - ((equal current-menubar '(nil)) - ;; Set at left if only contains right marker. - (set-buffer-menubar (list menu nil))) - (t - ;; Add at right. - (set-buffer-menubar (copy-sequence current-menubar)) - (add-menu nil (car menu) (cdr menu))))) - - (defun easy-menu-remove (menu) - "Remove MENU from the current menu bar." - (and current-menubar - (assoc (car menu) current-menubar) - (delete-menu-item (list (car menu))))) - - ) ;XEmacs - - ;;; GNU Emacs 19 - - (t - - (defun easy-menu-do-define (symbol maps doc menu) - ;; We can't do anything that might differ between Emacs dialects in - ;; `easy-menu-define' in order to make byte compiled files - ;; compatible. Therefore everything interesting is done in this - ;; function. - (set symbol (easy-menu-create-keymaps (car menu) (cdr menu))) - (fset symbol (` (lambda (event) (, doc) (interactive "@e") - (easy-popup-menu event (, symbol))))) - (mapcar (function (lambda (map) - (define-key map (vector 'menu-bar (intern (car menu))) - (cons (car menu) (symbol-value symbol))))) - (if (keymapp maps) (list maps) maps))) - - (defvar easy-menu-item-count 0) - - ;; Return a menu keymap corresponding to a XEmacs style menu list - ;; MENU-ITEMS, and with name MENU-NAME. - (defun easy-menu-create-keymaps (menu-name menu-items) - (let ((menu (make-sparse-keymap menu-name))) - ;; Process items in reverse order, - ;; since the define-key loop reverses them again. - (setq menu-items (reverse menu-items)) - (while menu-items - (let* ((item (car menu-items)) - (callback (if (vectorp item) (aref item 1))) - command enabler name) - (cond ((stringp item) - (setq command nil) - (setq name (if (string-match "^-+$" item) "" item))) - ((consp item) - (setq command (easy-menu-create-keymaps (car item) (cdr item))) - (setq name (car item))) - ((vectorp item) - (setq command (make-symbol (format "menu-function-%d" - easy-menu-item-count))) - (setq easy-menu-item-count (1+ easy-menu-item-count)) - (setq name (aref item 0)) - (let ((keyword (aref item 2))) - (if (and (symbolp keyword) - (= ?: (aref (symbol-name keyword) 0))) - (let ((count 2) - style selected active keys - arg) - (while (> (length item) count) - (setq keyword (aref item count)) - (setq arg (aref item (1+ count))) - (setq count (+ 2 count)) - (cond ((eq keyword ':keys) - (setq keys arg)) - ((eq keyword ':active) - (setq active arg)) - ((eq keyword ':suffix) - (setq name (concat name " " arg))) - ((eq keyword ':style) - (setq style arg)) - ((eq keyword ':selected) - (setq selected arg)))) - (if keys - (setq name (concat name " (" keys ")"))) - (if (eq style 'toggle) - ;; Simulate checkboxes. - (setq name (concat "Toggle " name))) - (if active - (put command 'menu-enable active) - (and (eq style 'radio) - selected - ;; Simulate radio buttons with menu-enable. - (put command 'menu-enable - (list 'not selected))))))) - (if (keymapp callback) - (setq name (concat name " ..."))) - (if (symbolp callback) - (fset command callback) - (fset command (list 'lambda () '(interactive) callback))))) - (if (null command) - ;; Handle inactive strings specially--allow any number - ;; of identical ones. - (setcdr menu (cons (list nil name) (cdr menu))) - (if name - (define-key menu (vector (intern name)) (cons name command))))) - (setq menu-items (cdr menu-items))) - menu)) - - (defun easy-menu-change (path name items) - "Change menu found at PATH as item NAME to contain ITEMS. - PATH is a list of strings for locating the menu containing NAME in the - menu bar. ITEMS is a list of menu items, as in `easy-menu-define'. - These items entirely replace the previous items in that map. - - Call this from `activate-menubar-hook' to implement dynamic menus." - (let ((map (key-binding (apply 'vector - 'menu-bar - (mapcar 'intern (append path (list name))))))) - (if (keymapp map) - (setcdr map (cdr (easy-menu-create-keymaps name items))) - (error "Malformed menu in `easy-menu-change'")))) - - (defun easy-menu-remove (menu)) - - (defun easy-menu-add (menu &optional map)) - - ) ;GNU Emacs 19 - - ) ;cond - - (provide 'easymenu) - (provide 'auc-menu) - - ;;; auc-menu.el ends here --- 0 ---- *** pub/dgnus/lisp/custom.el Tue Sep 26 00:21:31 1995 --- dgnus/lisp/custom.el Sat Sep 23 21:00:30 1995 *************** *** 264,270 **** ;; Put it in the Help menu, if possible. (if (string-match "XEmacs" emacs-version) ;; XEmacs (disabled because it doesn't work) ! (add-menu-item '("Help") "Customize..." 'customize nil) ;; Emacs 19.28 and earlier (global-set-key [ menu-bar help customize ] '("Customize..." . customize)) --- 264,271 ---- ;; Put it in the Help menu, if possible. (if (string-match "XEmacs" emacs-version) ;; XEmacs (disabled because it doesn't work) ! (and current-menubar ! (add-menu-item '("Help") "Customize..." 'customize nil)) ;; Emacs 19.28 and earlier (global-set-key [ menu-bar help customize ] '("Customize..." . customize)) *** pub/dgnus/lisp/gnus-cache.el Tue Sep 26 00:21:31 1995 --- dgnus/lisp/gnus-cache.el Sat Sep 23 20:14:24 1995 *************** *** 120,125 **** --- 120,126 ---- (let ((number (mail-header-number headers)) file dir) (if (or (not (vectorp headers)) ; This might be a dummy article. + (< number 0) ; Reffed article from other group. (not (gnus-cache-member-of-class gnus-cache-enter-articles ticked dormant unread)) (file-exists-p (setq file (gnus-cache-file-name group article)))) *** pub/dgnus/lisp/gnus-ems.el Tue Sep 26 00:21:33 1995 --- dgnus/lisp/gnus-ems.el Sat Sep 23 23:53:19 1995 *************** *** 25,31 **** ;;; Code: (defvar gnus-mouse-2 [mouse-2]) - (defvar gnus-easymenu 'easymenu) (defvar gnus-group-mode-hook ()) (defvar gnus-summary-mode-hook ()) (defvar gnus-article-mode-hook ()) --- 25,30 ---- *************** *** 72,78 **** (defun gnus-set-text-properties-xemacs (start end props &optional buffer) "You should NEVER use this function. It is ideologically blasphemous. It is provided only to ease porting of broken FSF Emacs programs." ! (if (stringp buffer) nil (map-extents (lambda (extent ignored) (remove-text-properties --- 71,77 ---- (defun gnus-set-text-properties-xemacs (start end props &optional buffer) "You should NEVER use this function. It is ideologically blasphemous. It is provided only to ease porting of broken FSF Emacs programs." ! (if (and (stringp buffer) (not (setq buffer (get-buffer buffer)))) nil (map-extents (lambda (extent ignored) (remove-text-properties *************** *** 134,140 **** ;; XEmacs definitions. (setq gnus-mouse-2 [button2]) - (setq gnus-easymenu 'auc-menu) (or (memq 'underline (list-faces)) (and (fboundp 'make-face) --- 133,138 ---- *** pub/dgnus/lisp/gnus-kill.el Tue Sep 26 00:21:33 1995 --- dgnus/lisp/gnus-kill.el Sun Sep 24 01:48:43 1995 *************** *** 604,610 **** marked as read or ticked are ignored." (save-excursion (let ((killed-no 0) ! function article) (if (or (null field) (string-equal field "")) (setq function nil) ;; Get access function of header filed. --- 604,610 ---- marked as read or ticked are ignored." (save-excursion (let ((killed-no 0) ! function article header) (if (or (null field) (string-equal field "")) (setq function nil) ;; Get access function of header filed. *************** *** 624,631 **** backward (not ignore-marked)))) (and (or (null gnus-newsgroup-kill-headers) (memq article gnus-newsgroup-kill-headers)) ! (gnus-execute-1 function regexp form ! (gnus-get-header-by-number article)) (setq killed-no (1+ killed-no)))) killed-no))) --- 624,631 ---- backward (not ignore-marked)))) (and (or (null gnus-newsgroup-kill-headers) (memq article gnus-newsgroup-kill-headers)) ! (vectorp (setq header (gnus-get-header-by-number article))) ! (gnus-execute-1 function regexp form header) (setq killed-no (1+ killed-no)))) killed-no))) *** pub/dgnus/lisp/gnus-vis.el Tue Sep 26 00:21:35 1995 --- dgnus/lisp/gnus-vis.el Sat Sep 23 23:53:24 1995 *************** *** 27,33 **** (require 'gnus) (require 'gnus-ems) ! (require gnus-easymenu) (require 'custom) (defvar gnus-group-menu-hook nil --- 27,33 ---- (require 'gnus) (require 'gnus-ems) ! (require 'easymenu) (require 'custom) (defvar gnus-group-menu-hook nil *** pub/dgnus/lisp/gnus.el Tue Sep 26 00:21:38 1995 --- dgnus/lisp/gnus.el Tue Sep 26 00:41:55 1995 *************** *** 1349,1355 **** "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)" "The mail address of the Gnus maintainers.") ! (defconst gnus-version "Gnus v5.0.5" "Version number for this version of Gnus.") (defvar gnus-info-nodes --- 1349,1355 ---- "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)" "The mail address of the Gnus maintainers.") ! (defconst gnus-version "Gnus v5.0.6" "Version number for this version of Gnus.") (defvar gnus-info-nodes *************** *** 3236,3241 **** --- 3236,3243 ---- (or level gnus-group-default-list-level gnus-level-subscribed)))) + (defvar gnus-tmp-prev-perm nil) + ;;;###autoload (defun gnus-no-server (&optional arg) "Read network news. *************** *** 3245,3252 **** prompt the user for the name of an NNTP server to use. As opposed to `gnus', this command will not connect to the local server." (interactive "P") ! (setq gnus-group-use-permanent-levels t) ! (gnus (or arg (1- gnus-level-default-subscribed)) t)) ;;;###autoload (defun gnus (&optional arg dont-connect) --- 3247,3258 ---- prompt the user for the name of an NNTP server to use. As opposed to `gnus', this command will not connect to the local server." (interactive "P") ! (let ((perm ! (cons gnus-group-use-permanent-levels gnus-group-default-list-level))) ! (setq gnus-tmp-prev-perm nil) ! (setq gnus-group-use-permanent-levels t) ! (gnus (or arg (1- gnus-level-default-subscribed)) t) ! (setq gnus-tmp-prev-perm perm))) ;;;###autoload (defun gnus (&optional arg dont-connect) *************** *** 3263,3268 **** --- 3269,3279 ---- (gnus-clear-system) (nnheader-init-server-buffer) + ;; We do this if `gnus-no-server' has been run. + (if gnus-tmp-prev-perm + (setq gnus-group-use-permanent-levels (car gnus-tmp-prev-perm) + gnus-group-default-list-level (cdr gnus-tmp-prev-perm) + gnus-tmp-prev-perm nil)) (gnus-read-init-file) (gnus-group-setup-buffer) *************** *** 5324,5330 **** (define-key gnus-summary-mode-map "\C-c\C-s\C-s" 'gnus-summary-sort-by-subject) (define-key gnus-summary-mode-map "\C-c\C-s\C-d" 'gnus-summary-sort-by-date) ! (define-key gnus-summary-mode-map "\C-c\C-s\C-v" 'gnus-summary-sort-by-score) (define-key gnus-summary-mode-map "=" 'gnus-summary-expand-window) (define-key gnus-summary-mode-map "\C-x\C-s" 'gnus-summary-reselect-current-group) --- 5335,5341 ---- (define-key gnus-summary-mode-map "\C-c\C-s\C-s" 'gnus-summary-sort-by-subject) (define-key gnus-summary-mode-map "\C-c\C-s\C-d" 'gnus-summary-sort-by-date) ! (define-key gnus-summary-mode-map "\C-c\C-s\C-i" 'gnus-summary-sort-by-score) (define-key gnus-summary-mode-map "=" 'gnus-summary-expand-window) (define-key gnus-summary-mode-map "\C-x\C-s" 'gnus-summary-reselect-current-group) *************** *** 5792,5798 **** (defun gnus-summary-insert-line (sformat header level current unread replied expirable subject-or-nil ! &optional dummy score) (or sformat (setq sformat gnus-summary-line-format-spec)) (let* ((indentation (aref gnus-thread-indent-array level)) (lines (mail-header-lines header)) --- 5803,5809 ---- (defun gnus-summary-insert-line (sformat header level current unread replied expirable subject-or-nil ! &optional dummy score process) (or sformat (setq sformat gnus-summary-line-format-spec)) (let* ((indentation (aref gnus-thread-indent-array level)) (lines (mail-header-lines header)) *************** *** 5803,5809 **** gnus-summary-zcore-fuzz)) ? (if (< score gnus-summary-default-score) gnus-score-below-mark gnus-score-over-mark))) ! (replied (if replied gnus-replied-mark ? )) (from (mail-header-from header)) (name (cond ((string-match "(.+)" from) --- 5814,5822 ---- gnus-summary-zcore-fuzz)) ? (if (< score gnus-summary-default-score) gnus-score-below-mark gnus-score-over-mark))) ! (replied (cond (process gnus-process-mark) ! (replied gnus-replied-mark) ! (t gnus-unread-mark))) (from (mail-header-from header)) (name (cond ((string-match "(.+)" from) *************** *** 6574,6580 **** (t gnus-summary-same-subject)) (and (eq gnus-summary-make-false-root 'adopt) (memq number gnus-tmp-gathered)) ! (cdr (assq number gnus-newsgroup-scored))) (setq gnus-tmp-prev-subject subject))))) --- 6587,6594 ---- (t gnus-summary-same-subject)) (and (eq gnus-summary-make-false-root 'adopt) (memq number gnus-tmp-gathered)) ! (cdr (assq number gnus-newsgroup-scored)) ! (memq number gnus-newsgroup-processable)) (setq gnus-tmp-prev-subject subject))))) *************** *** 6627,6633 **** (memq number gnus-newsgroup-replied) (memq number gnus-newsgroup-expirable) (mail-header-subject header) nil ! (cdr (assq number gnus-newsgroup-scored)))))))) (defun gnus-select-newsgroup (group &optional read-all) "Select newsgroup GROUP. --- 6641,6648 ---- (memq number gnus-newsgroup-replied) (memq number gnus-newsgroup-expirable) (mail-header-subject header) nil ! (cdr (assq number gnus-newsgroup-scored)) ! (memq number gnus-newsgroup-processable))))))) (defun gnus-select-newsgroup (group &optional read-all) "Select newsgroup GROUP. *************** *** 8360,8366 **** article (gnus-summary-article-number))) t) (gnus-summary-search-subject nil t)))) ! (gnus-summary-goto-article article) (gnus-summary-position-cursor))) (defun gnus-summary-goto-article (article &optional all-headers) --- 8375,8383 ---- article (gnus-summary-article-number))) t) (gnus-summary-search-subject nil t)))) ! (if (not article) ! (error "No unread articles") ! (gnus-summary-goto-article article)) (gnus-summary-position-cursor))) (defun gnus-summary-goto-article (article &optional all-headers) *************** *** 10276,10282 **** (if (and gnus-asynchronous-article-function (fboundp gnus-asynchronous-article-function)) (funcall gnus-asynchronous-article-function ! gnus-newsgroup-threads))))))))) (defun gnus-sortable-date (date) --- 10293,10300 ---- (if (and gnus-asynchronous-article-function (fboundp gnus-asynchronous-article-function)) (funcall gnus-asynchronous-article-function ! gnus-newsgroup-threads) ! gnus-newsgroup-threads)))))))) (defun gnus-sortable-date (date) *************** *** 11094,11111 **** (save-excursion (set-buffer gnus-article-buffer) (let ((inhibit-point-motion-hooks t) ! (case-fold-search nil)) (save-restriction (goto-char (point-min)) (search-forward "\n\n") (narrow-to-region (point-min) (point)) (goto-char (point-min)) (if (not (and gnus-article-x-face-command (or force (not gnus-article-x-face-too-ugly) ! (and gnus-article-x-face-too-ugly (not (string-match gnus-article-x-face-too-ugly ! (mail-fetch-field "from"))))) (progn (goto-char (point-min)) (re-search-forward "^X-Face: " nil t)))) --- 11112,11131 ---- (save-excursion (set-buffer gnus-article-buffer) (let ((inhibit-point-motion-hooks t) ! (case-fold-search nil) ! from) (save-restriction (goto-char (point-min)) (search-forward "\n\n") (narrow-to-region (point-min) (point)) (goto-char (point-min)) + (setq from (mail-fetch-field "from")) (if (not (and gnus-article-x-face-command (or force (not gnus-article-x-face-too-ugly) ! (and gnus-article-x-face-too-ugly from (not (string-match gnus-article-x-face-too-ugly ! from)))) (progn (goto-char (point-min)) (re-search-forward "^X-Face: " nil t)))) *************** *** 12065,12074 **** (gnus-subscribe-hierarchical-interactive new-newsgroups)) ;; Suggested by Per Abrahamsen . (if (> groups 0) ! (progn ! (gnus-dribble-enter "") ! (gnus-message 6 "%d new newsgroup%s arrived." ! groups (if (> groups 1) "s have" " has"))) (gnus-message 6 "No new newsgroups.")))))) (defun gnus-matches-options-n (group) --- 12085,12092 ---- (gnus-subscribe-hierarchical-interactive new-newsgroups)) ;; Suggested by Per Abrahamsen . (if (> groups 0) ! (gnus-message 6 "%d new newsgroup%s arrived." ! groups (if (> groups 1) "s have" " has")) (gnus-message 6 "No new newsgroups.")))))) (defun gnus-matches-options-n (group) *************** *** 12151,12160 **** (gnus-subscribe-hierarchical-interactive new-newsgroups)) ;; Suggested by Per Abrahamsen . (if (> groups 0) ! (progn ! (gnus-dribble-enter "") ! (gnus-message 6 "%d new newsgroup%s arrived." ! groups (if (> groups 1) "s have" " has")))) got-new)) (defun gnus-check-first-time-used () --- 12169,12176 ---- (gnus-subscribe-hierarchical-interactive new-newsgroups)) ;; Suggested by Per Abrahamsen . (if (> groups 0) ! (gnus-message 6 "%d new newsgroup%s arrived." ! groups (if (> groups 1) "s have" " has"))) got-new)) (defun gnus-check-first-time-used () *** pub/dgnus/lisp/nnvirtual.el Tue Sep 26 00:21:40 1995 --- dgnus/lisp/nnvirtual.el Sun Sep 24 00:28:15 1995 *************** *** 85,90 **** --- 85,91 ---- (gnus-find-method-for-group group)) (and (or (gnus-server-opened group-method) (gnus-open-server group-method)) + (gnus-request-group group t) (gnus-retrieve-headers articles group))))) (save-excursion (set-buffer nntp-server-buffer) *** pub/dgnus/lisp/ChangeLog Tue Sep 26 00:21:47 1995 --- dgnus/lisp/ChangeLog Tue Sep 26 00:43:23 1995 *************** *** 1,10 **** ! Tue Sep 19 17:32:14 1995 Lars Magne Ingebrigtsen ! * gnus.el (gnus-find-new-newsgroups): Would not save .newsrc if ! all new group were made into zombies. ! * gnus-ems.el (gnus-set-text-properties-xemacs): Would bug out on ! strings that happened to be buffer names. Sat Sep 16 10:24:02 1995 Lars Magne Ingebrigtsen --- 1,23 ---- ! Tue Sep 26 00:42:54 1995 Lars Magne Ingebrigtsen ! * gnus.el: 5.0.5 & 5.0.6 are released. ! Sat Sep 23 20:00:35 1995 Lars Ingebrigtsen ! ! * gnus.el (gnus-summary-insert-line): Don't lose process marks. ! ! * auc-menu.el: Removed file. ! ! * gnus.el (gnus-no-server): Would have permanent effects. ! ! * gnus-kill.el (gnus-execute): Would bug out on pseudo-articles. ! ! * gnus.el (gnus-article-display-x-face): Would bug out on articles ! with no From header. ! (gnus-summary-sort): Async would not work after sorting. ! ! * gnus-cache.el (gnus-cache-possibly-enter-article): Would enter ! reffed articles. Sat Sep 16 10:24:02 1995 Lars Magne Ingebrigtsen *** pub/dgnus/texi/gnus.texi Tue Sep 26 00:21:50 1995 --- dgnus/texi/gnus.texi Fri Sep 15 11:10:40 1995 *************** *** 5253,5260 **** @kindex C-c C-s C-d (Summary) @findex gnus-summary-sort-by-date Sort by date (@code{gnus-summary-sort-by-date}). ! @item C-c C-s C-v ! @kindex C-c C-s C-v (Summary) @findex gnus-summary-sort-by-score Sort by score (@code{gnus-summary-sort-by-score}). @end table --- 5253,5260 ---- @kindex C-c C-s C-d (Summary) @findex gnus-summary-sort-by-date Sort by date (@code{gnus-summary-sort-by-date}). ! @item C-c C-s C-i ! @kindex C-c C-s C-i (Summary) @findex gnus-summary-sort-by-score Sort by score (@code{gnus-summary-sort-by-score}). @end table *************** *** 5998,6004 **** sort of primitive hook function to be run on group entry, even though that isn't a very good idea. ! Normal kill files look like this: @lisp (gnus-kill "From" "Lars Ingebrigtsen") --- 5998,6004 ---- sort of primitive hook function to be run on group entry, even though that isn't a very good idea. ! XCNormal kill files look like this: @lisp (gnus-kill "From" "Lars Ingebrigtsen")