Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

*** empty log message ***

  • Loading branch information...
commit 4dbdde2be596c8a2bfd3920bd1c6aae8144710be 1 parent d799c86
@larsmagne larsmagne authored
View
37 lisp/ChangeLog
@@ -1,3 +1,40 @@
+Wed Nov 20 22:54:34 1996 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * message.el (message-mode-field-menu): Separated.
+
+ * nnoo.el (nnoo-change-server): Preserve un-ooed variables as
+ well.
+
+ * nnbabyl.el (nnbabyl-read-mbox): Understand movemailed babyl
+ files.
+
+Wed Nov 20 19:25:40 1996 Kurt Swanson <kurt@dna.lth.se>
+
+ * gnus-art.el (gnus-article-make-menu-bar): Fix menu bar.
+
+Wed Nov 20 05:27:45 1996 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus-sum.el (gnus-article-sort-by-lines,
+ gnus-thread-sort-by-lines): New functions.
+ (gnus-summary-sort-by-lines): New command and keystroke.
+
+ * gnus.el (gnus-other-frame): Be a bit more clever.
+
+ * gnus-group.el (gnus-group-get-new-news): Check for new
+ newsgroups.
+
+ * nnheader.el (nnheader-insert-file-contents-literally): Bind
+ `default-major-mode' to nil.
+
+ * gnus-sum.el (gnus-group-make-articles-read): Yet another undo
+ bug.
+
+ * nnmail.el (nnmail-article-group): Wrong `junk' check.
+
+Wed Nov 20 05:13:05 1996 Lars Magne Ingebrigtsen <menja.larsi@ifi.uio.no>
+
+ * gnus.el: Red Gnus v0.66 is released.
+
Wed Nov 20 01:57:31 1996 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* nnmail.el (nnmail-article-group): Would lose mail when using
View
6 lisp/gnus-art.el
@@ -347,6 +347,7 @@ Initialized from `text-mode-syntax-table.")
(defalias 'gnus-decode-rfc1522 'article-decode-rfc1522)
(defvar gnus-summary-article-menu)
+(defvar gnus-summary-post-menu)
;;; Saving functions.
@@ -677,9 +678,12 @@ If variable `gnus-use-long-file-name' is non-nil, it is
["Remove carriage return" gnus-article-remove-cr t]
["Remove quoted-unreadable" gnus-article-de-quoted-unreadable t]))
- (define-key rmail-mode-map [menu-bar commands]
+ (define-key gnus-article-mode-map [menu-bar commands]
(cons "Commands" gnus-summary-article-menu))
+ (define-key gnus-article-mode-map [menu-bar post]
+ (cons "Post" gnus-summary-post-menu))
+
(run-hooks 'gnus-article-menu-hook)))
(defun gnus-article-mode ()
View
2  lisp/gnus-cache.el
@@ -381,7 +381,7 @@ Returns the list of articles removed."
(erase-buffer)
(let ((file (gnus-cache-file-name group ".overview")))
(when (file-exists-p file)
- (insert-file-contents file)))
+ (nnheader-insert-file-contents file)))
;; We have a fresh (empty/just loaded) buffer,
;; mark it as unmodified to save a redundant write later.
(set-buffer-modified-p nil))))
View
51 lisp/gnus-group.el
@@ -758,8 +758,6 @@ ticked: The number of ticked articles."
["Yank" gnus-group-yank-group gnus-list-of-killed-groups]
["Describe" gnus-group-describe-group (gnus-group-group-name)]
["Fetch FAQ" gnus-group-fetch-faq (gnus-group-group-name)]
- ["Edit kill file" gnus-group-edit-local-kill
- (gnus-group-group-name)]
;; Actually one should check, if any of the marked groups gives t for
;; (gnus-check-backend-function 'request-expire-articles ...)
["Expire articles" gnus-group-expire-articles
@@ -770,6 +768,15 @@ ticked: The number of ticked articles."
["Set group level" gnus-group-set-current-level
(gnus-group-group-name)]
["Select quick" gnus-group-quick-select-group (gnus-group-group-name)]
+ ("Edit"
+ ["Parameters" gnus-group-edit-group-parameters
+ (gnus-group-group-name)]
+ ["Select method" gnus-group-edit-group-method
+ (gnus-group-group-name)]
+ ["Info" gnus-group-edit-group (gnus-group-group-name)]
+ ["Customize" gnus-group-customize t]
+ ["Local kill file" gnus-group-edit-local-kill (gnus-group-group-name)]
+ ["Global kill file" gnus-group-edit-global-kill t])
))
(easy-menu-define
@@ -845,14 +852,6 @@ ticked: The number of ticked articles."
["Delete group" gnus-group-delete-group
(gnus-check-backend-function
'request-delete-group (gnus-group-group-name))])
- ("Editing groups"
- ["Parameters" gnus-group-edit-group-parameters
- (gnus-group-group-name)]
- ["Select method" gnus-group-edit-group-method
- (gnus-group-group-name)]
- ["Info" gnus-group-edit-group (gnus-group-group-name)])
- ("Score file"
- ["Flush cache" gnus-score-flush-cache t])
("Move"
["Next" gnus-group-next-group t]
["Previous" gnus-group-prev-group t]
@@ -864,6 +863,8 @@ ticked: The number of ticked articles."
["Jump to group" gnus-group-jump-to-group t]
["First unread group" gnus-group-first-unread-group t]
["Best unread group" gnus-group-best-unread-group t])
+ ["Delete bogus groups" gnus-group-check-bogus-groups t]
+ ["Find new newsgroups" gnus-find-new-newsgroups t]
["Transpose" gnus-group-transpose-groups
(gnus-group-group-name)]
["Read a directory as a group..." gnus-group-enter-directory t]
@@ -872,14 +873,18 @@ ticked: The number of ticked articles."
(easy-menu-define
gnus-group-misc-menu gnus-group-mode-map ""
'("Misc"
+ ("SOUP"
+ ["Pack replies" nnsoup-pack-replies (fboundp 'nnsoup-request-group)]
+ ["Send replies" gnus-soup-send-replies
+ (fboundp 'gnus-soup-pack-packet)]
+ ["Pack packet" gnus-soup-pack-packet (fboundp 'gnus-soup-pack-packet)]
+ ["Save areas" gnus-soup-save-areas (fboundp 'gnus-soup-pack-packet)]
+ ["Brew SOUP" gnus-soup-brew-soup (fboundp 'gnus-soup-pack-packet)])
["Send a bug report" gnus-bug t]
- ["Customize" gnus-group-customize t]
["Send a mail" gnus-group-mail t]
["Post an article..." gnus-group-post-news t]
["Check for new news" gnus-group-get-new-news t]
["Activate all groups" gnus-activate-all-groups t]
- ["Delete bogus groups" gnus-group-check-bogus-groups t]
- ["Find new newsgroups" gnus-find-new-newsgroups t]
["Restart Gnus" gnus-group-restart t]
["Read init file" gnus-group-read-init-file t]
["Browse foreign server" gnus-group-browse-foreign-server t]
@@ -890,22 +895,14 @@ ticked: The number of ticked articles."
["Save .newsrc files" gnus-group-save-newsrc t]
["Suspend Gnus" gnus-group-suspend t]
["Clear dribble buffer" gnus-group-clear-dribble t]
- ["Edit global kill file" gnus-group-edit-global-kill t]
["Read manual" gnus-info-find-node t]
+ ["Flush score cache" gnus-score-flush-cache t]
["Toggle topics" gnus-topic-mode t]
- ("SOUP"
- ["Pack replies" nnsoup-pack-replies (fboundp 'nnsoup-request-group)]
- ["Send replies" gnus-soup-send-replies
- (fboundp 'gnus-soup-pack-packet)]
- ["Pack packet" gnus-soup-pack-packet (fboundp 'gnus-soup-pack-packet)]
- ["Save areas" gnus-soup-save-areas (fboundp 'gnus-soup-pack-packet)]
- ["Brew SOUP" gnus-soup-brew-soup (fboundp 'gnus-soup-pack-packet)])
["Exit from Gnus" gnus-group-exit t]
["Exit without saving" gnus-group-quit t]
))
- (run-hooks 'gnus-group-menu-hook)
- ))
+ (run-hooks 'gnus-group-menu-hook)))
(defun gnus-group-mode ()
"Major mode for reading news.
@@ -2492,7 +2489,7 @@ If REVERSE, sort in reverse order."
(let ((group (gnus-info-group info)))
(gnus-undo-register
`(progn
- (gnus-info-set-marks ',info ',(gnus-info-marks info))
+ (gnus-info-set-marks ',info ',(gnus-info-marks info) t)
(gnus-info-set-read ',info ',(gnus-info-read info))
(when (gnus-group-goto-group ,group)
(gnus-group-update-group-line))))
@@ -2963,8 +2960,12 @@ re-scanning. If ARG is non-nil and not a number, this will force
(when (and arg (not (numberp arg)))
(let ((gnus-read-active-file t))
(gnus-read-active-file))
- (setq arg nil))
+ (setq arg nil)
+ ;; If the user wants it, we scan for new groups.
+ (when (eq gnus-check-new-newsgroups 'always)
+ (gnus-find-new-newsgroups)))
+
(setq arg (gnus-group-default-level arg t))
(if (and gnus-read-active-file (not arg))
(progn
View
10 lisp/gnus-soup.el
@@ -212,11 +212,11 @@ $ emacs -batch -f gnus-batch-brew-soup ^nnml \".*emacs.*\""
(defun gnus-soup-store (directory prefix headers format index)
;; Create the directory, if needed.
(gnus-make-directory directory)
- (let* ((msg-buf (find-file-noselect
+ (let* ((msg-buf (nnheader-find-file-noselect
(concat directory prefix ".MSG")))
(idx-buf (if (= index ?n)
nil
- (find-file-noselect
+ (nnheader-find-file-noselect
(concat directory prefix ".IDX"))))
(article-buf (current-buffer))
from head-line beg type)
@@ -365,7 +365,7 @@ The vector contain five strings,
though the two last may be nil if they are missing."
(let (areas)
(save-excursion
- (set-buffer (find-file-noselect file 'force))
+ (set-buffer (nnheader-find-file-noselect file 'force))
(buffer-disable-undo (current-buffer))
(goto-char (point-min))
(while (not (eobp))
@@ -388,7 +388,7 @@ The result is a of vectors, each containing one entry from the REPLIES
file. The vector contain three strings, [prefix name encoding]."
(let (replies)
(save-excursion
- (set-buffer (find-file-noselect file))
+ (set-buffer (nnheader-find-file-noselect file))
(buffer-disable-undo (current-buffer))
(goto-char (point-min))
(while (not (eobp))
@@ -503,7 +503,7 @@ Return whether the unpacking was successful."
(gnus-soup-reply-prefix (car replies))
".MSG"))
(msg-buf (and (file-exists-p msg-file)
- (find-file-noselect msg-file)))
+ (nnheader-find-file-noselect msg-file)))
(tmp-buf (get-buffer-create " *soup send*"))
beg end)
(cond
View
10 lisp/gnus-start.el
@@ -256,7 +256,7 @@ for your decision; `gnus-subscribe-killed' kills all new groups;
;; Suggested by a bug report by Hallvard B Furuseth.
;; <h.b.furuseth@usit.uio.no>.
(defcustom gnus-subscribe-options-newsgroup-method
- (function gnus-subscribe-alphabetically)
+ 'gnus-subscribe-alphabetically
"*This function is called to subscribe newsgroups mentioned on \"options -n\" lines.
If, for instance, you want to subscribe to all newsgroups in the
\"no\" and \"alt\" hierarchies, you'd put the following in your
@@ -491,7 +491,7 @@ Can be used to turn version control on or off."
"Subscribe new NEWSGROUP and insert it in hierarchical newsgroup order."
;; Basic ideas by mike-w@cs.aukuni.ac.nz (Mike Williams)
(save-excursion
- (set-buffer (find-file-noselect gnus-current-startup-file))
+ (set-buffer (nnheader-find-file-noselect gnus-current-startup-file))
(let ((groupkey newgroup)
before)
(while (and (not before) groupkey)
@@ -737,8 +737,8 @@ prompt the user for the name of an NNTP server to use."
;; Load whichever file is newest -- the auto save file
;; or the "real" file.
(if (file-newer-than-file-p auto dribble-file)
- (insert-file-contents auto)
- (insert-file-contents dribble-file))
+ (nnheader-insert-file-contents auto)
+ (nnheader-insert-file-contents dribble-file))
(unless (zerop (buffer-size))
(set-buffer-modified-p t))
;; Set the file modes to reflect the .newsrc file modes.
@@ -1758,7 +1758,7 @@ If FORCE is non-nil, the .newsrc file is read."
;; already read (except for read articles).
(save-excursion
(gnus-message 5 "Reading %s..." newsrc-file)
- (set-buffer (find-file-noselect newsrc-file))
+ (set-buffer (nnheader-find-file-noselect newsrc-file))
(buffer-disable-undo (current-buffer))
(gnus-newsrc-to-gnus-format)
(kill-buffer (current-buffer))
View
138 lisp/gnus-sum.el
@@ -1265,6 +1265,7 @@ increase the score of each group you read."
"?" gnus-summary-mark-as-dormant
"\C-c\M-\C-s" gnus-summary-limit-include-expunged
"\C-c\C-s\C-n" gnus-summary-sort-by-number
+ "\C-c\C-s\C-l" gnus-summary-sort-by-lines
"\C-c\C-s\C-a" gnus-summary-sort-by-author
"\C-c\C-s\C-s" gnus-summary-sort-by-subject
"\C-c\C-s\C-d" gnus-summary-sort-by-date
@@ -1515,7 +1516,8 @@ increase the score of each group you read."
"Score"
(nconc
(list
- ["Enter score..." gnus-summary-score-entry t])
+ ["Enter score..." gnus-summary-score-entry t]
+ ["Customize" gnus-score-customize t])
(gnus-make-score-map 'increase)
(gnus-make-score-map 'lower)
'(("Mark"
@@ -1781,56 +1783,55 @@ increase the score of each group you read."
(easy-menu-define
gnus-summary-misc-menu gnus-summary-mode-map ""
'("Misc"
- ("Mark"
- ("Read"
- ["Mark as read" gnus-summary-mark-as-read-forward t]
- ["Mark same subject and select"
- gnus-summary-kill-same-subject-and-select t]
- ["Mark same subject" gnus-summary-kill-same-subject t]
- ["Catchup" gnus-summary-catchup t]
- ["Catchup all" gnus-summary-catchup-all t]
- ["Catchup to here" gnus-summary-catchup-to-here t]
- ["Catchup region" gnus-summary-mark-region-as-read t]
- ["Mark excluded" gnus-summary-limit-mark-excluded-as-read t])
- ("Various"
- ["Tick" gnus-summary-tick-article-forward t]
- ["Mark as dormant" gnus-summary-mark-as-dormant t]
- ["Remove marks" gnus-summary-clear-mark-forward t]
- ["Set expirable mark" gnus-summary-mark-as-expirable t]
- ["Set bookmark" gnus-summary-set-bookmark t]
- ["Remove bookmark" gnus-summary-remove-bookmark t])
- ("Limit"
- ["Marks..." gnus-summary-limit-to-marks t]
- ["Subject..." gnus-summary-limit-to-subject t]
- ["Author..." gnus-summary-limit-to-author t]
- ["Score" gnus-summary-limit-to-score t]
- ["Unread" gnus-summary-limit-to-unread t]
- ["Non-dormant" gnus-summary-limit-exclude-dormant t]
- ["Articles" gnus-summary-limit-to-articles t]
- ["Pop limit" gnus-summary-pop-limit t]
- ["Show dormant" gnus-summary-limit-include-dormant t]
- ["Hide childless dormant"
- gnus-summary-limit-exclude-childless-dormant t]
- ;;["Hide thread" gnus-summary-limit-exclude-thread t]
- ["Show expunged" gnus-summary-show-all-expunged t])
- ("Process mark"
- ["Set mark" gnus-summary-mark-as-processable t]
- ["Remove mark" gnus-summary-unmark-as-processable t]
- ["Remove all marks" gnus-summary-unmark-all-processable t]
- ["Mark above" gnus-uu-mark-over t]
- ["Mark series" gnus-uu-mark-series t]
- ["Mark region" gnus-uu-mark-region t]
- ["Mark by regexp..." gnus-uu-mark-by-regexp t]
- ["Mark all" gnus-uu-mark-all t]
- ["Mark buffer" gnus-uu-mark-buffer t]
- ["Mark sparse" gnus-uu-mark-sparse t]
- ["Mark thread" gnus-uu-mark-thread t]
- ["Unmark thread" gnus-uu-unmark-thread t]
- ("Process Mark Sets"
- ["Kill" gnus-summary-kill-process-mark t]
- ["Yank" gnus-summary-yank-process-mark
- gnus-newsgroup-process-stack]
- ["Save" gnus-summary-save-process-mark t])))
+ ("Mark Read"
+ ["Mark as read" gnus-summary-mark-as-read-forward t]
+ ["Mark same subject and select"
+ gnus-summary-kill-same-subject-and-select t]
+ ["Mark same subject" gnus-summary-kill-same-subject t]
+ ["Catchup" gnus-summary-catchup t]
+ ["Catchup all" gnus-summary-catchup-all t]
+ ["Catchup to here" gnus-summary-catchup-to-here t]
+ ["Catchup region" gnus-summary-mark-region-as-read t]
+ ["Mark excluded" gnus-summary-limit-mark-excluded-as-read t])
+ ("Mark Various"
+ ["Tick" gnus-summary-tick-article-forward t]
+ ["Mark as dormant" gnus-summary-mark-as-dormant t]
+ ["Remove marks" gnus-summary-clear-mark-forward t]
+ ["Set expirable mark" gnus-summary-mark-as-expirable t]
+ ["Set bookmark" gnus-summary-set-bookmark t]
+ ["Remove bookmark" gnus-summary-remove-bookmark t])
+ ("Mark Limit"
+ ["Marks..." gnus-summary-limit-to-marks t]
+ ["Subject..." gnus-summary-limit-to-subject t]
+ ["Author..." gnus-summary-limit-to-author t]
+ ["Score" gnus-summary-limit-to-score t]
+ ["Unread" gnus-summary-limit-to-unread t]
+ ["Non-dormant" gnus-summary-limit-exclude-dormant t]
+ ["Articles" gnus-summary-limit-to-articles t]
+ ["Pop limit" gnus-summary-pop-limit t]
+ ["Show dormant" gnus-summary-limit-include-dormant t]
+ ["Hide childless dormant"
+ gnus-summary-limit-exclude-childless-dormant t]
+ ;;["Hide thread" gnus-summary-limit-exclude-thread t]
+ ["Show expunged" gnus-summary-show-all-expunged t])
+ ("Process Mark"
+ ["Set mark" gnus-summary-mark-as-processable t]
+ ["Remove mark" gnus-summary-unmark-as-processable t]
+ ["Remove all marks" gnus-summary-unmark-all-processable t]
+ ["Mark above" gnus-uu-mark-over t]
+ ["Mark series" gnus-uu-mark-series t]
+ ["Mark region" gnus-uu-mark-region t]
+ ["Mark by regexp..." gnus-uu-mark-by-regexp t]
+ ["Mark all" gnus-uu-mark-all t]
+ ["Mark buffer" gnus-uu-mark-buffer t]
+ ["Mark sparse" gnus-uu-mark-sparse t]
+ ["Mark thread" gnus-uu-mark-thread t]
+ ["Unmark thread" gnus-uu-unmark-thread t]
+ ("Process Mark Sets"
+ ["Kill" gnus-summary-kill-process-mark t]
+ ["Yank" gnus-summary-yank-process-mark
+ gnus-newsgroup-process-stack]
+ ["Save" gnus-summary-save-process-mark t]))
("Scroll article"
["Page forward" gnus-summary-next-page t]
["Page backward" gnus-summary-prev-page t]
@@ -1855,7 +1856,8 @@ increase the score of each group you read."
["Sort by author" gnus-summary-sort-by-author t]
["Sort by subject" gnus-summary-sort-by-subject t]
["Sort by date" gnus-summary-sort-by-date t]
- ["Sort by score" gnus-summary-sort-by-score t])
+ ["Sort by score" gnus-summary-sort-by-score t]
+ ["Sort by lines" gnus-summary-sort-by-lines t])
("Help"
["Fetch group FAQ" gnus-summary-fetch-faq t]
["Describe group" gnus-summary-describe-group t]
@@ -3248,6 +3250,16 @@ If NO-DISPLAY, don't generate a summary buffer."
(gnus-article-sort-by-number
(gnus-thread-header h1) (gnus-thread-header h2)))
+(defsubst gnus-article-sort-by-lines (h1 h2)
+ "Sort articles by article Lines header."
+ (< (mail-header-lines h1)
+ (mail-header-lines h2)))
+
+(defun gnus-thread-sort-by-lines (h1 h2)
+ "Sort threads by root article Lines header."
+ (gnus-article-sort-by-lines
+ (gnus-thread-header h1) (gnus-thread-header h2)))
+
(defsubst gnus-article-sort-by-author (h1 h2)
"Sort articles by root author."
(string-lessp
@@ -4047,9 +4059,9 @@ The resulting hash table is returned, or nil if no Xrefs were found."
(setq articles (delq id articles))))))
(gnus-undo-register
`(progn
- (gnus-info-set-marks ',info ',(gnus-info-marks info))
+ (gnus-info-set-marks ',info ',(gnus-info-marks info) t)
(gnus-info-set-read ',info ',(gnus-info-read info))
- (gnus-group-update-group group t)))
+ (gnus-group-update-group ,group t)))
;; If the read list is nil, we init it.
(and active
(null (gnus-info-read info))
@@ -7898,37 +7910,43 @@ If the prefix argument is negative, tick articles instead."
;; Summary sorting commands
(defun gnus-summary-sort-by-number (&optional reverse)
- "Sort summary buffer by article number.
+ "Sort the summary buffer by article number.
Argument REVERSE means reverse order."
(interactive "P")
(gnus-summary-sort 'number reverse))
(defun gnus-summary-sort-by-author (&optional reverse)
- "Sort summary buffer by author name alphabetically.
+ "Sort the summary buffer by author name alphabetically.
If case-fold-search is non-nil, case of letters is ignored.
Argument REVERSE means reverse order."
(interactive "P")
(gnus-summary-sort 'author reverse))
(defun gnus-summary-sort-by-subject (&optional reverse)
- "Sort summary buffer by subject alphabetically. `Re:'s are ignored.
+ "Sort the summary buffer by subject alphabetically. `Re:'s are ignored.
If case-fold-search is non-nil, case of letters is ignored.
Argument REVERSE means reverse order."
(interactive "P")
(gnus-summary-sort 'subject reverse))
(defun gnus-summary-sort-by-date (&optional reverse)
- "Sort summary buffer by date.
+ "Sort the summary buffer by date.
Argument REVERSE means reverse order."
(interactive "P")
(gnus-summary-sort 'date reverse))
(defun gnus-summary-sort-by-score (&optional reverse)
- "Sort summary buffer by score.
+ "Sort the summary buffer by score.
Argument REVERSE means reverse order."
(interactive "P")
(gnus-summary-sort 'score reverse))
+(defun gnus-summary-sort-by-lines (&optional reverse)
+ "Sort the summary buffer by article length.
+Argument REVERSE means reverse order."
+ (interactive "P")
+ (gnus-summary-sort 'lines reverse))
+
(defun gnus-summary-sort (predicate reverse)
"Sort summary buffer by PREDICATE. REVERSE means reverse order."
(gnus-set-global-variables)
@@ -8423,7 +8441,7 @@ save those articles instead."
(push (cons prev (cdr active)) read))
(gnus-undo-register
`(progn
- (gnus-info-set-marks ',info ',(gnus-info-marks info))
+ (gnus-info-set-marks ',info ',(gnus-info-marks info) t)
(gnus-info-set-read ',info ',(gnus-info-read info))
(gnus-get-unread-articles-in-group ',info (gnus-active ,group))))
;; Enter this list into the group info.
View
15 lisp/gnus.el
@@ -42,7 +42,7 @@
"Score and kill file handling."
:group 'gnus )
-(defconst gnus-version-number "0.66"
+(defconst gnus-version-number "0.67"
"Version number for this version of Gnus.")
(defconst gnus-version (format "Red Gnus v%s" gnus-version-number)
@@ -2012,11 +2012,14 @@ As opposed to `gnus', this command will not connect to the local server."
(defun gnus-other-frame (&optional arg)
"Pop up a frame to read news."
(interactive "P")
- (if (gnus-alive-p)
- (let ((pop-up-frames t))
- (gnus arg))
- (select-frame (make-frame))
- (gnus arg)))
+ (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))
;;;###autoload
(defun gnus (&optional arg dont-connect slave)
View
57 lisp/message.el
@@ -934,35 +934,34 @@ Return the number of headers removed."
(define-key message-mode-map "\t" 'message-tab))
-(easy-menu-define message-mode-menu message-mode-map
- "Message Menu."
- '("Message"
- "Go to Field:"
- "----"
- ["To" message-goto-to t]
- ["Subject" message-goto-subject t]
- ["Cc" message-goto-cc t]
- ["Reply-To" message-goto-reply-to t]
- ["Summary" message-goto-summary t]
- ["Keywords" message-goto-keywords t]
- ["Newsgroups" message-goto-newsgroups t]
- ["Followup-To" message-goto-followup-to t]
- ["Distribution" message-goto-distribution t]
- ["Body" message-goto-body t]
- ["Signature" message-goto-signature t]
- "----"
- "Miscellaneous Commands:"
- "----"
- ["Sort Headers" message-sort-headers t]
- ["Yank Original" message-yank-original t]
- ["Fill Yanked Message" message-fill-yanked-message t]
- ["Insert Signature" message-insert-signature t]
- ["Caesar (rot13) Message" message-caesar-buffer-body t]
- ["Rename buffer" message-rename-buffer t]
- ["Spellcheck" ispell-message t]
- "----"
- ["Send Message" message-send-and-exit t]
- ["Abort Message" message-dont-send t]))
+(easy-menu-define
+ message-mode-menu message-mode-map "Message Menu."
+ '("Message"
+ ["Sort Headers" message-sort-headers t]
+ ["Yank Original" message-yank-original t]
+ ["Fill Yanked Message" message-fill-yanked-message t]
+ ["Insert Signature" message-insert-signature t]
+ ["Caesar (rot13) Message" message-caesar-buffer-body t]
+ ["Rename buffer" message-rename-buffer t]
+ ["Spellcheck" ispell-message t]
+ "----"
+ ["Send Message" message-send-and-exit t]
+ ["Abort Message" message-dont-send t]))
+
+(easy-menu-define
+ message-mode-field-menu message-mode-map ""
+ '("Field"
+ ["To" message-goto-to t]
+ ["Subject" message-goto-subject t]
+ ["Cc" message-goto-cc t]
+ ["Reply-To" message-goto-reply-to t]
+ ["Summary" message-goto-summary t]
+ ["Keywords" message-goto-keywords t]
+ ["Newsgroups" message-goto-newsgroups t]
+ ["Followup-To" message-goto-followup-to t]
+ ["Distribution" message-goto-distribution t]
+ ["Body" message-goto-body t]
+ ["Signature" message-goto-signature t]))
(defvar facemenu-add-face-function)
(defvar facemenu-remove-face-function)
View
13 lisp/nnbabyl.el
@@ -88,7 +88,8 @@
(beginning-of-line)
(when (or (search-forward art-string nil t)
(search-backward art-string nil t))
- (re-search-backward delim nil t)
+ (unless (re-search-backward delim nil t)
+ (goto-char (point-min)))
(while (and (not (looking-at ".+:"))
(zerop (forward-line 1))))
(setq start (point))
@@ -540,12 +541,12 @@
(nnmail-activate 'nnbabyl)
(nnbabyl-create-mbox)
- (if (and nnbabyl-mbox-buffer
+ (unless (and nnbabyl-mbox-buffer
(buffer-name nnbabyl-mbox-buffer)
(save-excursion
(set-buffer nnbabyl-mbox-buffer)
(= (buffer-size) (nnheader-file-size nnbabyl-mbox-file))))
- () ; This buffer hasn't changed since we read it last. Possibly.
+ ;; This buffer has changed since we read it last. Possibly.
(save-excursion
(let ((delim (concat "^" nnbabyl-mail-delimiter))
(alist nnbabyl-group-alist)
@@ -582,8 +583,10 @@
;; We go through the mbox and make sure that each and
;; every mail belongs to some group or other.
(goto-char (point-min))
- (re-search-forward delim nil t)
- (setq start (match-end 0))
+ (if (looking-at "\^L")
+ (setq start (point))
+ (re-search-forward delim nil t)
+ (setq start (match-end 0)))
(while (re-search-forward delim nil t)
(setq end (match-end 0))
(unless (search-backward "\nX-Gnus-Newsgroup: " start t)
View
19 lisp/nnheader.el
@@ -397,12 +397,12 @@ the line could be found."
(when (file-exists-p file)
(if (eq nnheader-max-head-length t)
;; Just read the entire file.
- (nnheader-insert-file-contents-literally file)
+ (nnheader-insert-file-contents file)
;; Read 1K blocks until we find a separator.
(let ((beg 0)
format-alist)
(while (and (eq nnheader-head-chop-length
- (nth 1 (nnheader-insert-file-contents-literally
+ (nth 1 (nnheader-insert-file-contents
file nil beg
(incf beg nnheader-head-chop-length))))
(prog1 (not (search-forward "\n\n" nil t))
@@ -483,12 +483,9 @@ If FILE is t, return the buffer contents as a string."
(let* ((,temp-file ,file)
(default-major-mode 'fundamental-mode)
(,temp-buffer
- (progn
- (set-buffer
- (get-buffer-create
- (generate-new-buffer-name " *nnheader temp*")))
- (buffer-disable-undo (current-buffer))
- (current-buffer)))
+ (set-buffer
+ (get-buffer-create
+ (generate-new-buffer-name " *nnheader temp*"))))
,temp-results)
(unwind-protect
(progn
@@ -628,7 +625,7 @@ without formatting."
(file-regular-p file))
(save-excursion
(nnheader-set-temp-buffer " *mail-file-mbox-p*")
- (nnheader-insert-file-contents-literally file)
+ (nnheader-insert-file-contents file)
(goto-char (point-min))
(prog1
(looking-at message-unix-mail-delimiter)
@@ -736,7 +733,7 @@ If FILE, find the \".../etc/PACKAGE\" file instead."
(when (string-match (car ange-ftp-path-format) path)
(ange-ftp-re-read-dir path)))))
-(defun nnheader-insert-file-contents-literally (filename &optional visit beg end replace)
+(defun nnheader-insert-file-contents (filename &optional visit beg end replace)
"Like `insert-file-contents', q.v., but only reads in the file.
A buffer may be modified in several ways after reading into the buffer due
to advanced Emacs features, such as file-name-handlers, format decoding,
@@ -744,12 +741,14 @@ find-file-hooks, etc.
This function ensures that none of these modifications will take place."
(let ((format-alist nil)
(auto-mode-alist (nnheader-auto-mode-alist))
+ (default-major-mode 'fundamental-mode)
(after-insert-file-functions nil))
(insert-file-contents filename visit beg end replace)))
(defun nnheader-find-file-noselect (&rest args)
(let ((format-alist nil)
(auto-mode-alist (nnheader-auto-mode-alist))
+ (default-major-mode 'fundamental-mode)
(after-insert-file-functions nil))
(apply 'find-file-noselect args)))
View
2  lisp/nnheaderxm.el
@@ -104,7 +104,7 @@ The buffer is not selected, just returned to the caller."
(erase-buffer)
(if rawfile
(condition-case ()
- (nnheader-insert-file-contents-literally filename t)
+ (nnheader-insert-file-contents filename t)
(file-error
;; Unconditionally set error
(setq error t)))
View
6 lisp/nnmail.el
@@ -887,7 +887,7 @@ FUNC will be called with the buffer narrowed to each mail."
(set-buffer (get-buffer-create " *nnmail incoming*"))
(buffer-disable-undo (current-buffer))
(erase-buffer)
- (nnheader-insert-file-contents-literally incoming)
+ (nnheader-insert-file-contents incoming)
(unless (zerop (buffer-size))
(goto-char (point-min))
(save-excursion (run-hooks 'nnmail-prepare-incoming-hook))
@@ -944,7 +944,7 @@ FUNC will be called with the group name to determine the article number."
"Error in `nnmail-split-methods'; using `bogus' mail group")
(sit-for 1)
'("bogus")))))
- (unless (equal group-art '(junk))
+ (unless (equal split '(junk))
;; `nnmail-split-methods' is a function, so we just call
;; this function here and use the result.
(setq group-art
@@ -1294,7 +1294,7 @@ See the documentation for the variable `nnmail-split-fancy' for documentation."
(get-buffer-create " *nnmail message-id cache*")))
(buffer-disable-undo (current-buffer))
(when (file-exists-p nnmail-message-id-cache-file)
- (insert-file-contents nnmail-message-id-cache-file))
+ (nnheader-insert-file-contents nnmail-message-id-cache-file))
(set-buffer-modified-p nil)
(current-buffer))))
View
4 lisp/nnml.el
@@ -452,7 +452,7 @@ all. This may very well take some time.")
(nnheader-report 'nnml "File %s does not exist" file))
(t
(nnheader-temp-write file
- (nnheader-insert-file-contents-literally file)
+ (nnheader-insert-file-contents file)
(nnmail-replace-status name value))
t))))
@@ -759,7 +759,7 @@ all. This may very well take some time.")
(unless (file-directory-p
(setq file (concat dir (int-to-string (car files)))))
(erase-buffer)
- (insert-file-contents file)
+ (nnheader-insert-file-contents file)
(narrow-to-region
(goto-char (point-min))
(progn
View
11 lisp/nnoo.el
@@ -155,7 +155,8 @@
(let* ((bstate (cdr (assq backend nnoo-state-alist)))
(current (car bstate))
(parents (nnoo-parents backend))
- state)
+ (bvariables (nnoo-variables backend))
+ state def)
(unless bstate
(push (setq bstate (list backend nil))
nnoo-state-alist)
@@ -170,9 +171,11 @@
(pop state))
(setcar bstate server)
(unless (cdr (assoc server (cddr bstate)))
- (while defs
- (set (caar defs) (cadar defs))
- (pop defs)))
+ (while (setq def (pop defs))
+ (unless (assq (car def) bvariables)
+ (nconc bvariables
+ (list (cons (car def) (symbol-value (car def))))))
+ (set (car def) (cadr def))))
(while parents
(nnoo-change-server
(caar parents) server
View
4 lisp/nnsoup.el
@@ -452,7 +452,7 @@ The SOUP packet file name will be inserted at the %s.")
(set-buffer (get-buffer-create buffer-name))
(buffer-disable-undo (current-buffer))
(push (cons nnsoup-current-group (current-buffer)) nnsoup-buffers)
- (insert-file-contents (concat nnsoup-directory file))
+ (nnheader-insert-file-contents (concat nnsoup-directory file))
(current-buffer))))))
(defun nnsoup-file (prefix &optional message)
@@ -685,7 +685,7 @@ The SOUP packet file name will be inserted at the %s.")
(while files
(message "Doing %s..." (car files))
(erase-buffer)
- (insert-file-contents (car files))
+ (nnheader-insert-file-contents (car files))
(goto-char (point-min))
(if (not (re-search-forward "^[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t *\\(Xref: \\)? *[^ ]* \\([^ ]+\\):[0-9]" nil t))
(setq group "unknown")
View
2  lisp/nnspool.el
@@ -430,7 +430,7 @@ there.")
(set-buffer nntp-server-buffer)
(erase-buffer)
(condition-case ()
- (progn (nnheader-insert-file-contents-literally file) t)
+ (progn (nnheader-insert-file-contents file) t)
(file-error nil)))
(defun nnspool-possibly-change-directory (group)
View
5 texi/ChangeLog
@@ -1,3 +1,8 @@
+Wed Nov 20 15:42:36 1996 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus.texi (New Groups): Addition.
+ (Summary Sorting): Addition.
+
Tue Nov 19 20:54:16 1996 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* gnus.texi (Scanning New Messages): Addition.
View
24 texi/gnus.texi
@@ -1,7 +1,7 @@
\input texinfo @c -*-texinfo-*-
@setfilename gnus
-@settitle Red Gnus 0.66 Manual
+@settitle Red Gnus 0.67 Manual
@synindex fn cp
@synindex vr cp
@synindex pg cp
@@ -287,7 +287,7 @@ into another language, under the above conditions for modified versions.
@tex
@titlepage
-@title Red Gnus 0.66 Manual
+@title Red Gnus 0.67 Manual
@author by Lars Magne Ingebrigtsen
@page
@@ -323,7 +323,7 @@ can be gotten by any nefarious means you can think of---@sc{nntp}, local
spool or your mbox file. All at the same time, if you want to push your
luck.
-This manual corresponds to Red Gnus 0.66
+This manual corresponds to Red Gnus 0.67
@end ifinfo
@@ -589,7 +589,9 @@ you can set @code{gnus-check-new-newsgroups} to @code{nil}. This will
also save you some time at startup. Even if this variable is
@code{nil}, you can always subscribe to the new groups just by pressing
@kbd{U} in the group buffer (@pxref{Group Maintenance}). This variable
-is @code{t} by default.
+is @code{t} by default. If you set this variable to @code{always}, then
+Gnus will query the backends for new groups even when you do the @kbd{g}
+command (@pxref{Scanning New Messages}).
@menu
* Checking New Groups:: Determining what groups are new.
@@ -733,6 +735,9 @@ that come from mail backends (@code{nnml}, @code{nnbabyl},
@code{nnfolder}, @code{nnmbox}, and @code{nnmh}) subscribed. If you
don't like that, just set this variable to @code{nil}.
+New groups that match this regexp are subscribed using
+@code{gnus-subscribe-options-newsgroup-method}.
+
@node Changing Servers
@section Changing Servers
@@ -2814,8 +2819,8 @@ Activate absolutely all groups (@code{gnus-activate-all-groups}).
@cindex restarting
@findex gnus-group-restart
Restart Gnus (@code{gnus-group-restart}). This saves the @file{.newsrc}
-file(s), closes the connection to all servers, clears up all variables, and
-then starts Gnus all over again.
+file(s), closes the connection to all servers, clears up all run-time
+Gnus variables, and then starts Gnus all over again.
@end table
@@ -6151,6 +6156,11 @@ Sort by subject (@code{gnus-summary-sort-by-subject}).
@findex gnus-summary-sort-by-date
Sort by date (@code{gnus-summary-sort-by-date}).
+@item C-c C-s C-l
+@kindex C-c C-s C-l (Summary)
+@findex gnus-summary-sort-by-lines
+Sort by lines (@code{gnus-summary-sort-by-lines}).
+
@item C-c C-s C-i
@kindex C-c C-s C-i (Summary)
@findex gnus-summary-sort-by-score
@@ -14494,7 +14504,7 @@ Gnus has to get from the @sc{nntp} server.
@item gnus-read-active-file
Set this to @code{nil}, which will inhibit Gnus from requesting the
entire active file from the server. This file is often v. large. You
-also have to set @code{gnus-check-new-news} and
+also have to set @code{gnus-check-new-newsgroups} and
@code{gnus-check-bogus-newsgroups} to @code{nil} to make sure that Gnus
doesn't suddenly decide to fetch the active file anyway.
Please sign in to comment.
Something went wrong with that request. Please try again.