+Tue Aug 22 22:20:06 1995 Per Abrahamsen <abraham@dina.kvl.dk>
+
+ * custom.el (custom-forward-field): Allow negative args.
+ (custom-backward-field): New function.
+ (custom-mode-map): Bind it.
+ (custom-buffer-create): Document it.
+
+Tue Aug 22 21:05:42 1995 Lars Magne Ingebrigtsen <lingebri@sunsci4.cern.ch>
+
+ * gnus.el (gnus-gnus-to-newsrc-format): Clear modtime.
+ (gnus-offer-save-summaries): Don't prompt for any summary buffers
+ that aren't Gnus summary buffers.
+ (gnus-setup-news): Would bug out when started with
+ `gnus-no-server'.
+ (gnus-get-unread-articles): Would always connect to the server.
+ (gnus-groups-to-gnus-format): Really find out whether the server
+ is native or not.
+ (gnus-article-hide-headers): Would never hide "From " lines.
+
+ * gnus-msg.el (gnus-bug): Put point on Subject line.
+
+ * gnus-ems.el: Would set invisible props to nil in 19.28.
+
+ * gnus.el (gnus-summary-fetch-faq): Use `gnus-group-fetch-faq'.
+
+Tue Aug 22 15:16:15 1995 Per Abrahamsen <abraham@dina.kvl.dk>
+
+ * nnmail.el (nnmail-article-group): Protect call to
+ `nnmail-split-methods' against errors. We don't wan't the user to
+ lose mail if he made an error in `nnmail-split-methods'.
+
+Tue Aug 22 04:37:27 1995 Lars Magne Ingebrigtsen <lingebri@sunsci4.cern.ch>
+
+ * gnus-vis.el (gnus-header-face-alist): SkyeBlue.
+
+ * gnus.el (gnus-newsrc-to-gnus-format): Would later cause bugouts
+ in a different function.
+
+Tue Aug 22 03:08:09 1995 Lars Magne Ingebrigtsen <lingebri@sunscipw.cern.ch>
+
+ * gnus.el (gnus-offer-save-summaries): Would bug out under XEmacs
+ when there was no buffers to update.
+
+Tue Aug 22 02:31:52 1995 Lars Magne Ingebrigtsen <lingebri@sunsci4.cern.ch>
+
+ * gnus.el: 0.99.17 is released.
+
+ * gnus.el: Bugged out during 19.28 compilation.
+
Mon Aug 21 20:47:08 1995 Lars Magne Ingebrigtsen <lingebri@sunsci4.cern.ch>
+ * gnus.el: 0.99.16 is releaed.
+
* gnus.el (gnus-group-list-groups): Didn't use default-list-level.
* nntp.el (nntp-retrieve-groups): Did not delete error messages.
;;
;; Author: Per Abrahamsen <abraham@iesd.auc.dk>
;; Keywords: help
-;; Version: 0.3
+;; Version: 0.4
;;; Commentary:
;;
(custom-text-insert "This is a customization buffer.\n")
(custom-help-insert "\n")
(custom-help-button 'custom-forward-field)
+ (custom-help-button 'custom-backward-field)
(custom-help-button 'custom-enter-value)
(custom-help-button 'custom-field-factory-reset)
(custom-help-button 'custom-field-reset)
(setq custom-mode-map (make-sparse-keymap))
(define-key custom-mode-map (if (string-match "XEmacs" emacs-version) [button2] [mouse-2]) 'custom-push-button)
(define-key custom-mode-map "\t" 'custom-forward-field)
+ (define-key custom-mode-map "\M-\t" 'custom-backward-field)
(define-key custom-mode-map "\r" 'custom-enter-value)
(define-key custom-mode-map "\C-k" 'custom-kill-line)
(define-key custom-mode-map "\C-c\C-r" 'custom-field-reset)
(next-single-property-change (point-min) 'custom-tag)))
(if next
(goto-char next)
+ (error "No customization fields in this buffer."))))
+ (while (< arg 0)
+ (setq arg (1+ arg))
+ (let ((previous (if (get-text-property (1- (point)) 'custom-tag)
+ (previous-single-property-change (point) 'custom-tag)
+ (point))))
+ (setq previous
+ (or (previous-single-property-change previous 'custom-tag)
+ (previous-single-property-change (point-max) 'custom-tag)))
+ (if previous
+ (goto-char previous)
(error "No customization fields in this buffer.")))))
+(defun custom-backward-field (arg)
+ "Move point to the previous field or button.
+With optional ARG, move across that many fields."
+ (interactive "p")
+ (custom-forward-field (- arg)))
+
(defun custom-toggle-documentation (&optional arg)
"Toggle display of documentation text.
If the optional argument is non-nil, show text iff the argument is positive."
"/anonymous@rtfm.mit.edu:/pub/usenet-by-group/"
"*Directory where the group FAQs are stored.
This will most commonly be on a remote machine, and the file will be
-fetched by ange-ftp.")
+fetched by ange-ftp.
+
+If the default site is too slow, try one of these:
+
+ North America: ftp.uu.net /usenet/news.answers
+ mirrors.aol.com /pub/rtfm/usenet
+ ftp.seas.gwu.edu /pub/rtfm
+ rtfm.mit.edu /pub/usenet/news.answers
+ Europe: ftp.uni-paderborn.de /pub/FAQ
+ ftp.Germany.EU.net /pub/newsarchive/news.answers
+ ftp.sunet.se /pub/usenet
+ Asia: nctuccca.edu.tw /USENET/FAQ
+ hwarang.postech.ac.kr /pub/usenet/news.answers
+ ftp.hk.super.net /mirror/faqs")
(defvar gnus-group-archive-directory
"/ftp@ftp.hpc.uh.edu:/pub/emacs/ding-list/"
"gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)"
"The mail address of the Gnus maintainers.")
-(defconst gnus-version "(ding) Gnus v0.99.17"
+(defconst gnus-version "(ding) Gnus v0.99.18"
"Version number for this version of Gnus.")
(defvar gnus-info-nodes
"Fetch the FAQ for the current group."
(interactive (list (gnus-group-real-name (gnus-group-group-name))))
(or group (error "No group name given"))
- (let ((file (concat gnus-group-faq-directory group)))
+ (let ((file (concat gnus-group-faq-directory (gnus-group-real-name group))))
(if (not (file-exists-p file))
(error "No such file: %s" file)
(find-file file))))
(defun gnus-offer-save-summaries ()
(save-excursion
- (let ((buflist (buffer-list)) buffers bufname)
+ (let ((buflist (buffer-list))
+ buffers bufname)
(while buflist
(and (setq bufname (buffer-name (car buflist)))
(string-match "Summary" bufname)
+ (save-excursion
+ (set-buffer bufname)
+ ;; We check that this is, indeed, a summary buffer.
+ (eq major-mode 'gnus-summary-mode))
(setq buffers (cons bufname buffers)))
(setq buflist (cdr buflist)))
- (map-y-or-n-p "Update summary buffer %s? "
- (lambda (buf)
- (set-buffer buf)
- (and
- ;; We check that this is, indeed, a summary buffer.
- (eq major-mode 'gnus-summary-mode)
- (gnus-summary-exit)))
- buffers))))
+ (and buffers
+ (map-y-or-n-p
+ "Update summary buffer %s? "
+ (lambda (buf)
+ (set-buffer buf)
+ (gnus-summary-exit))
+ buffers)))))
(defun gnus-group-describe-briefly ()
"Give a one line description of the group mode commands."
(defun gnus-summary-fetch-faq (group)
"Fetch the FAQ for the current group."
(interactive (list gnus-newsgroup-name))
- (let ((gnus-faq-buffer
- (find-file (concat gnus-group-faq-directory
- (gnus-group-real-name group)))))
- (and gnus-faq-buffer (gnus-configure-windows 'summary-faq))))
+ (and (gnus-group-fetch-faq group)
+ (gnus-configure-windows 'summary-faq)))
;; Suggested by Per Abrahamsen <amanda@iesd.auc.dk>.
(defun gnus-summary-describe-group (&optional force)
;; Hide any "From " lines at the beginning of (mail) articles.
(while (looking-at "From ")
(forward-line 1))
- (if (bobp)
+ (or (bobp)
(add-text-properties (point-min) (point) gnus-hidden-properties))
;; Then treat the rest of the header lines.
(narrow-to-region
(not level)
(gnus-read-active-file))
+ (or gnus-active-hashtb
+ (setq gnus-active-hashtb (make-vector 4095 0)))
+
;; Possibly eval the dribble file.
(and init gnus-use-dribble-file (gnus-dribble-eval-file))
;; Close the groups as we look at them!
(gnus-close-group group))))
- (or gnus-read-active-file (gnus-check-server method))
;; These groups are native or secondary.
(if (and (not gnus-read-active-file)
(<= (nth 1 info) level))
- (setq active (gnus-activate-group (car info)))))
+ (progn
+ (or gnus-read-active-file (gnus-check-server method))
+ (setq active (gnus-activate-group (car info))))))
(if active
(gnus-get-unread-articles-in-group info active)
(setq gnus-moderated-list
(cons (symbol-name group) gnus-moderated-list))))
(error
- (and (symbolp group)
+ (and group
+ (symbolp group)
(set group nil))))
(widen)
(forward-line 1)))
(set group nil)))
(error
(progn
- (and (symbolp group)
+ (and group
+ (symbolp group)
(set group nil))
- (if ignore-errors
- ()
- (gnus-message 3 "Warning - illegal active: %s"
- (buffer-substring
- (gnus-point-at-bol) (gnus-point-at-eol)))
- nil))))
+ (or ignore-errors
+ (gnus-message 3 "Warning - illegal active: %s"
+ (buffer-substring
+ (gnus-point-at-bol) (gnus-point-at-eol)))))))
(widen)
(forward-line 1))))))
(setq gnus-active-hashtb
(gnus-make-hashtable
(count-lines (point-min) (point-max)))))))
- (prefix (and method (not (eq method gnus-select-method))
+ (prefix (and method
+ (not (gnus-server-equal
+ (gnus-server-get-method nil method)
+ (gnus-server-get-method nil gnus-select-method)))
(gnus-group-prefixed-name "" method))))
(goto-char (point-min))
(goto-char opoint)
(set (let ((obarray hashtb)) (read cur))
(cons min max)))
- (error (if group (set group nil))))
+ (error (and group (symbolp group) (set group nil))))
(forward-line 1)))
(let (min max group)
(while (not (eobp))
max (read cur))
(set (setq group (let ((obarray hashtb)) (read cur)))
(cons min max))))
- (error (if group (set group nil))))
+ (error (and group (symbolp group) (set group nil))))
(forward-line 1))))))
(defun gnus-read-newsrc-file (&optional force)
(goto-char (point-min))
;; We intern the symbol `options' in the active hashtb so that we
;; can `eq' against it later.
- (setq options-symbol (intern "options" gnus-active-hashtb))
- (setq Options-symbol (intern "Options" gnus-active-hashtb))
+ (set (setq options-symbol (intern "options" gnus-active-hashtb)) nil)
+ (set (setq Options-symbol (intern "Options" gnus-active-hashtb)) nil)
(while (not (eobp))
;; We first read the first word on the line by narrowing and
(if ranges (insert ","))))))
(insert "\n")))
(setq newsrc (cdr newsrc)))
+ ;; It has been reported that sometime the modtime on the .newsrc
+ ;; file seems to be off. We really do want to overwrite it, so
+ ;; we clear the modtime here before saving. It's a bit odd,
+ ;; though...
+ (clear-visited-file-modtime)
(save-buffer)
(kill-buffer (current-buffer)))))