Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Browse files

*** empty log message ***

  • Loading branch information...
commit 459083190baefc88bde0b06142d7c2727dcaa3c4 1 parent c6ac57b
@larsmagne larsmagne authored
37 lisp/ChangeLog
@@ -1,3 +1,40 @@
+Mon Sep 2 05:16:46 1996 Lars Magne Ingebrigtsen <>
+ * gnus-audio.el: Renamed from "gnus-sound".
+Mon Sep 2 05:06:17 1996 Lars Magne Ingebrigtsen <>
+ * gnus-ems.el (gnus-xemacs): New variable.
+Mon Sep 2 03:18:18 1996 Lars Magne Ingebrigtsen <>
+ * gnus-async.el (gnus-async-prefetch-next): Don't start fetching
+ the next article until we have been idle a while.
+ * gnus-group.el (gnus-group-make-help-group): Use the new find-etc
+ function.
+ * nnheader.el (nnheader-find-etc-directory): Accept a FILE
+ parameter.
+ * gnus-msg.el (gnus-debug): Use `locate-library' instead of doing
+ things the hard way.
+ * gnus-sum.el (gnus-set-global-variables): Copy
+Mon Sep 2 03:01:27 1996 Lars Magne Ingebrigtsen <>
+ * gnus.el (gnus-splash): Play jingle.
+ * gnus-sound.el (gnus-startup-jingle): New variable.
+ (gnus-play-jingle): New command.
+ * gnus.el (gnus-play-startup-jingle): New variable.
+Sun Sep 1 06:38:45 1996 Lars Magne Ingebrigtsen <>
+ * gnus.el: Red Gnus v0.22 is released.
Sun Sep 1 05:45:59 1996 Lars Magne Ingebrigtsen <>
* gnus.el: Removed unreferenced let bindings from all files.
3,161 lisp/ChangeLog.2
0 additions, 3,161 deletions not shown
6 lisp/earcon.el
@@ -30,7 +30,7 @@
(defvar running-xemacs (string-match "XEmacs\\|Lucid" emacs-version)))
(require 'gnus)
-(require 'gnus-sound)
+(require 'gnus-audio)
(eval-when-compile (require 'cl))
(defvar earcon-auto-play nil
@@ -154,7 +154,7 @@ If N is negative, move backward instead."
(goto-char marker)
(let* ((entry (earcon-button-entry))
(inhibit-point-motion-hooks t)
- (fun 'gnus-sound-play)
+ (fun 'gnus-audio-play)
(args (list (nth 2 entry))))
((fboundp fun)
@@ -206,7 +206,7 @@ If N is negative, move backward instead."
start end 'earcon-button-push
(car (push (set-marker (make-marker) from)
- (gnus-sound-play (caddr entry))))))))
+ (gnus-audio-play (caddr entry))))))))
(defun gnus-earcon-display ()
12 lisp/gnus-async.el
@@ -91,9 +91,15 @@ from that group.")
(defun gnus-async-prefetch-next (group article summary)
"Possibly prefetch several articles starting with the article after ARTICLE."
- (let ((next (caadr (gnus-data-find-list article))))
- (when next
- (gnus-async-prefetch-article group next summary))))
+ (when (gnus-buffer-live-p summary)
+ (save-excursion
+ (set-buffer gnus-summary-buffer)
+ (let ((next (caadr (gnus-data-find-list article))))
+ (when next
+ (if gnus-xemacs
+ (gnus-async-prefetch-article group next summary)
+ (run-with-idle-timer
+ 0.1 nil 'gnus-async-prefetch-article group next summary)))))))
(defun gnus-async-prefetch-article (group article summary &optional next)
"Possibly prefetch several articles starting with ARTICLE."
84 lisp/gnus-audio.el
@@ -1,4 +1,4 @@
-;;; gnus-sound.el --- Sound effects for Gnus
+;;; gnus-audio.el --- Sound effects for Gnus
;; Copyright (C) 1996 Free Software Foundation
;; Author: Steven L. Baur <>
@@ -33,90 +33,98 @@
(require 'nnheader)
(eval-when-compile (require 'cl))
-(defvar gnus-sound-inline-sound
+(defvar gnus-audio-inline-sound
(and (fboundp 'device-sound-enabled-p)
"When t, we will not spawn a subprocess to play sounds.")
-(defvar gnus-sound-directory (nnheader-find-etc-directory "sounds")
+(defvar gnus-audio-directory (nnheader-find-etc-directory "sounds")
"The directory containing the Sound Files.")
-(defvar gnus-sound-au-player "/usr/bin/showaudio"
+(defvar gnus-audio-au-player "/usr/bin/showaudio"
"Executable program for playing sun AU format sound files")
-(defvar gnus-sound-wav-player "/usr/local/bin/play"
+(defvar gnus-audio-wav-player "/usr/local/bin/play"
"Executable program for playing WAV files")
;;; The following isn't implemented yet. Wait for Red Gnus.
-;(defvar gnus-sound-effects-enabled t
+;(defvar gnus-audio-effects-enabled t
; "When t, Gnus will use sound effects.")
-;(defvar gnus-sound-enable-hooks nil
+;(defvar gnus-audio-enable-hooks nil
; "Functions run when enabling sound effects.")
-;(defvar gnus-sound-disable-hooks nil
+;(defvar gnus-audio-disable-hooks nil
; "Functions run when disabling sound effects.")
-;(defvar gnus-sound-theme-song nil
+;(defvar gnus-audio-theme-song nil
; "Theme song for Gnus.")
-;(defvar gnus-sound-enter-group nil
+;(defvar gnus-audio-enter-group nil
; "Sound effect played when selecting a group.")
-;(defvar gnus-sound-exit-group nil
+;(defvar gnus-audio-exit-group nil
; "Sound effect played when exiting a group.")
-;(defvar gnus-sound-score-group nil
+;(defvar gnus-audio-score-group nil
; "Sound effect played when scoring a group.")
-;(defvar gnus-sound-busy-sound nil
+;(defvar gnus-audio-busy-sound nil
; "Sound effect played when going into a ... sequence.")
-;(defun gnus-sound-enable-sound ()
+;(defun gnus-audio-enable-sound ()
; "Enable Sound Effects for Gnus."
; (interactive)
-; (setq gnus-sound-effects-enabled t)
-; (run-hooks gnus-sound-enable-hooks))
+; (setq gnus-audio-effects-enabled t)
+; (run-hooks gnus-audio-enable-hooks))
-;(defun gnus-sound-disable-sound ()
+;(defun gnus-audio-disable-sound ()
; "Disable Sound Effects for Gnus."
; (interactive)
-; (setq gnus-sound-effects-enabled nil)
-; (run-hooks gnus-sound-disable-hooks))
+; (setq gnus-audio-effects-enabled nil)
+; (run-hooks gnus-audio-disable-hooks))
-(defun gnus-sound-play (file)
+(defun gnus-audio-play (file)
"Play a sound through the speaker."
(let ((sound-file (if (file-exists-p file)
- (concat gnus-sound-directory file))))
+ (concat gnus-audio-directory file))))
(when (file-exists-p sound-file)
- (if gnus-sound-inline-sound
- (play-sound-file (concat gnus-sound-directory sound-file))
+ (if gnus-audio-inline-sound
+ (play-sound-file (concat gnus-audio-directory sound-file))
(cond ((string-match "\\.wav$" sound-file)
- (call-process gnus-sound-wav-player
- (concat gnus-sound-directory sound-file)
+ (call-process gnus-audio-wav-player
+ (concat gnus-audio-directory sound-file)
((string-match "\\.au$" sound-file)
- (call-process gnus-sound-au-player
- (concat gnus-sound-directory sound-file)
+ (call-process gnus-audio-au-player
+ (concat gnus-audio-directory sound-file)
;;; The following isn't implemented yet, wait for Red Gnus
-;(defun gnus-sound-startrek-sounds ()
+;(defun gnus-audio-startrek-sounds ()
; "Enable sounds from Star Trek the original series."
; (interactive)
-; (setq gnus-sound-busy-sound "")
-; (setq gnus-sound-enter-group "")
-; (setq gnus-sound-exit-group "")
-; (setq gnus-sound-score-group "")
-; (setq gnus-sound-theme-song "")
-; (add-hook 'gnus-select-group-hook 'gnus-sound-startrek-select-group)
-; (add-hook 'gnus-exit-group-hook 'gnus-sound-startrek-exit-group))
+; (setq gnus-audio-busy-sound "")
+; (setq gnus-audio-enter-group "")
+; (setq gnus-audio-exit-group "")
+; (setq gnus-audio-score-group "")
+; (setq gnus-audio-theme-song "")
+; (add-hook 'gnus-select-group-hook 'gnus-audio-startrek-select-group)
+; (add-hook 'gnus-exit-group-hook 'gnus-audio-startrek-exit-group))
-(provide 'gnus-sound)
+(defvar gnus-startup-jingle ""
+ "Name of the Gnus startup jingle file.")
-(run-hooks 'gnus-sound-load-hook)
+(defun gnus-play-jingle ()
+ "Play the Gnus startup jingle, unless that's inhibited."
+ (interactive)
+ (gnus-audio-play gnus-startup-jingle))
+(provide 'gnus-audio)
+(run-hooks 'gnus-audio-load-hook)
-;;; gnus-sound.el ends here
+;;; gnus-audio.el ends here
5 lisp/gnus-demon.el
@@ -29,7 +29,10 @@
(require 'gnus-int)
(require 'nnheader)
(require 'gnus)
-(require 'timer)
+ (if (string-match "XEmacs" (emacs-version))
+ (require 'itimer)
+ (require 'timer)))
(defvar gnus-demon-handlers nil
"Alist of daemonic handlers to be run at intervals.
7 lisp/gnus-ems.el
@@ -27,6 +27,9 @@
(eval-when-compile (require 'cl))
+(defvar gnus-xemacs (string-match "XEmacs\\|Lucid" emacs-version)
+ "Non-nil if running under XEmacs.")
(defvar gnus-mouse-2 [mouse-2])
@@ -65,8 +68,8 @@
- (if (string-match "XEmacs\\|Lucid" emacs-version)
- ()
+ (if gnus-xemacs
+ nil
(defvar gnus-mouse-face-prop 'mouse-face
"Property used for highlighting mouse regions.")
19 lisp/gnus-group.el
@@ -1718,20 +1718,11 @@ and NEW-NAME will be prompted for."
(defun gnus-group-make-help-group ()
"Create the Gnus documentation group."
- (let ((path load-path)
- (name (gnus-group-prefixed-name "gnus-help" '(nndoc "gnus-help")))
- file dir)
- (and (gnus-gethash name gnus-newsrc-hashtb)
- (error "Documentation group already exists"))
- (while path
- (setq dir (file-name-as-directory (expand-file-name (pop path)))
- file nil)
- (when (or (file-exists-p (setq file (concat dir "gnus-tut.txt")))
- (file-exists-p
- (setq file (concat (file-name-directory
- (directory-file-name dir))
- "etc/gnus-tut.txt"))))
- (setq path nil)))
+ (let ((name (gnus-group-prefixed-name "gnus-help" '(nndoc "gnus-help")))
+ (file (nnheader-find-etc-directory "gnus-tut.txt" t))
+ dir)
+ (when (gnus-gethash name gnus-newsrc-hashtb)
+ (error "Documentation group already exists"))
(if (not file)
(gnus-message 1 "Couldn't find doc group")
46 lisp/gnus-msg.el
@@ -760,42 +760,34 @@ The source file has to be in the Emacs load path."
(let ((files '("gnus-load.el" "gnus-sum.el" "gnus-group.el"
"gnus-art.el" "gnus-start.el"
- "gnus-msg.el" "gnus-score.el"
+ "gnus-msg.el" "gnus-score.el" "gnus-win.el"
"nnmail.el" "message.el"))
- file dirs expr olist sym)
+ file expr olist sym)
(gnus-message 4 "Please wait while we snoop your variables...")
(sit-for 0)
+ ;; Go through all the files looking for non-default values for variables.
(set-buffer (get-buffer-create " *gnus bug info*"))
(buffer-disable-undo (current-buffer))
(while files
- (setq dirs load-path)
- (while dirs
- (if (or (not (car dirs))
- (not (stringp (car dirs)))
- (not (file-exists-p
- (setq file (concat (file-name-as-directory
- (car dirs)) (car files))))))
- (setq dirs (cdr dirs))
- (setq dirs nil)
- (insert-file-contents file)
+ (when (file-exists-p (setq file (locate-library (pop files))))
+ (insert-file-contents file)
+ (goto-char (point-min))
+ (if (not (re-search-forward "^;;* *Internal variables" nil t))
+ (gnus-message 4 "Malformed sources in file %s" file)
+ (narrow-to-region (point-min) (point))
(goto-char (point-min))
- (if (not (re-search-forward "^;;* *Internal variables" nil t))
- (gnus-message 4 "Malformed sources in file %s" file)
- (narrow-to-region (point-min) (point))
- (goto-char (point-min))
- (while (setq expr (condition-case ()
- (read (current-buffer)) (error nil)))
- (condition-case ()
- (and (eq (car expr) 'defvar)
- (stringp (nth 3 expr))
- (or (not (boundp (nth 1 expr)))
- (not (equal (eval (nth 2 expr))
- (symbol-value (nth 1 expr)))))
- (setq olist (cons (nth 1 expr) olist)))
- (error nil))))))
- (setq files (cdr files)))
+ (while (setq expr (condition-case ()
+ (read (current-buffer)) (error nil)))
+ (condition-case ()
+ (and (eq (car expr) 'defvar)
+ (stringp (nth 3 expr))
+ (or (not (boundp (nth 1 expr)))
+ (not (equal (eval (nth 2 expr))
+ (symbol-value (nth 1 expr)))))
+ (push (nth 1 expr) olist))
+ (error nil))))))
(kill-buffer (current-buffer)))
(when (setq olist (nreverse olist))
(insert "------------------ Environment follows ------------------\n\n"))
6 lisp/gnus-sum.el
@@ -1954,7 +1954,11 @@ This is all marks except unread, ticked, dormant, and expirable."
(setq gnus-article-buffer article-buffer)
(setq gnus-original-article-buffer original)
(setq gnus-reffed-article-number reffed)
- (setq gnus-current-score-file score-file)))))
+ (setq gnus-current-score-file score-file)
+ ;; The article buffer also has local variables.
+ (when (gnus-buffer-live-p gnus-article-buffer)
+ (set-buffer gnus-article-buffer)
+ (setq gnus-summary-buffer summary))))))
(defun gnus-summary-last-article-p (&optional article)
"Return whether ARTICLE is the last article in the buffer."
12 lisp/gnus.el
@@ -28,7 +28,7 @@
(eval '(run-hooks 'gnus-load-hook))
-(defconst gnus-version-number "0.22"
+(defconst gnus-version-number "0.23"
"Version number for this version of Gnus.")
(defconst gnus-version (format "Red Gnus v%s" gnus-version-number)
@@ -37,10 +37,16 @@
(defvar gnus-inhibit-startup-message nil
"*If non-nil, the startup message will not be displayed.")
+(defvar gnus-play-startup-jingle nil
+ "If non-nil, play the Gnus jingle at startup.")
;;; Internal variables
(defvar gnus-group-buffer "*Group*")
+ (autoload 'gnus-play-jingle "gnus-audio"))
;;; Splash screen.
(defun gnus-splash ()
@@ -50,7 +56,9 @@
(unless gnus-inhibit-startup-message
- (sit-for 0)))))
+ (sit-for 0)
+ (when gnus-play-startup-jingle
+ (gnus-play-jingle))))))
(defun gnus-indent-rigidly (start end arg)
"Indent rigidly using only spaces and no tabs."
10 lisp/nnheader.el
@@ -590,8 +590,9 @@ without formatting."
"Return the file size of FILE or 0."
(or (nth 7 (file-attributes file)) 0))
-(defun nnheader-find-etc-directory (package)
- "Go through the path and find the \".../etc/PACKAGE\" directory."
+(defun nnheader-find-etc-directory (package &optional file)
+ "Go through the path and find the \".../etc/PACKAGE\" directory.
+If FILE, find the \".../etc/PACKAGE\" file instead."
(let ((path load-path)
dir result)
;; We try to find the dir by looking at the load path,
@@ -602,8 +603,9 @@ without formatting."
(setq dir (concat
(directory-file-name (car path)))
- "etc/" package "/")))
- (file-directory-p dir))
+ "etc/" package
+ (if file "" "/"))))
+ (or file (file-directory-p dir)))
(setq result dir
path nil)
(setq path (cdr path))))
4 texi/ChangeLog
@@ -1,3 +1,7 @@
+Sun Sep 1 11:07:09 1996 Lars Magne Ingebrigtsen <>
+ * gnus.texi (XEmacs Enhancements): New.
Sat Aug 31 02:55:50 1996 Lars Magne Ingebrigtsen <>
* gnus.texi (Washing Mail): Addition.
69 texi/gnus.texi
@@ -1,7 +1,7 @@
\input texinfo @c -*-texinfo-*-
@setfilename gnus
-@settitle Red Gnus 0.22 Manual
+@settitle Red Gnus 0.23 Manual
@synindex fn cp
@synindex vr cp
@synindex pg cp
@@ -230,7 +230,7 @@ into another language, under the above conditions for modified versions.
-@title Red Gnus 0.22 Manual
+@title Red Gnus 0.23 Manual
@author by Lars Magne Ingebrigtsen
@@ -334,7 +334,7 @@ variables.
* Finding the News:: Choosing a method for getting news.
* The First Time:: What does Gnus do the first time you start it?
* The Server is Down:: How can I read my mail then?
-* Slave Gnusii:: You can have more than one Gnus active at a time.
+* Slave Gnusae:: You can have more than one Gnus active at a time.
* Fetching a Group:: Starting Gnus just to read a group.
* New Groups:: What is Gnus supposed to do with new groups?
* Startup Files:: Those pesky startup files---@file{.newsrc}.
@@ -474,16 +474,16 @@ your primary server---instead, it will just activate all groups on level
-@node Slave Gnusii
-@section Slave Gnusi�
+@node Slave Gnusae
+@section Slave Gnusae
@cindex slave
You might want to run more than one Emacs with more than one Gnus at the
same time. If you are using different @file{.newsrc} files (eg., if you
-are using the two different Gnusi� to read from two different servers),
+are using the two different Gnusae to read from two different servers),
that is no problem whatsoever. You just do it.
-The problem appears when you want to run two Gnusi� that use the same
+The problem appears when you want to run two Gnusae that use the same
@code{.newsrc} file.
To work around that problem some, we here at the Think-Tank at the Gnus
@@ -495,7 +495,7 @@ me. Usage of the patent (@dfn{Master/Slave Relationships In Computer
Applications}) will be much more expensive, of course.)
Anyways, you start one Gnus up the normal way with @kbd{M-x gnus} (or
-however you do it). Each subsequent slave Gnusi� should be started with
+however you do it). Each subsequent slave Gnusae should be started with
@kbd{M-x gnus-slave}. These slaves won't save normal @file{.newsrc}
files, but instead save @dfn{slave files} that contains information only
on what groups have been read in the slave session. When a master Gnus
@@ -11353,6 +11353,7 @@ four days, Gnus will decay the scores four times, for instance.
* NoCeM:: How to avoid spam and other fatty foods.
* Picons:: How to display pictures of what your reading.
* Moderation:: What to do if you're a moderator.
+* XEmacs Enhancements:: There are more pictures and stuff under XEmacs.
* Various Various:: Things that are really various.
@end menu
@@ -12466,6 +12467,58 @@ To use moderation mode in these two groups, say:
@end lisp
+@node XEmacs Enhancements
+@section XEmacs Enhancements
+@cindex XEmacs
+XEmacs is able to display pictures and stuff, so Gnus has taken
+advantage of that. Relevant variables include:
+@table @code
+@item gnus-xmas-glyph-directory
+@vindex gnus-xmas-glyph-directory
+This is where Gnus will look for pictures. Gnus will normally
+auto-detect this directory, but you may set it manually if you have an
+unusual directory structure.
+@item gnus-xmas-logo-color-alist
+@vindex gnus-xmas-logo-color-alist
+This is an alist where the key is a type symbol and the values are the
+foreground and background color of the splash page glyph.
+@item gnus-xmas-logo-color-style
+@vindex gnus-xmas-logo-color-style
+This is the key used to look up the color in the alist described above.
+Legal values include @code{flame}, @code{pine}, @code{moss},
+@code{irish}, @code{sky}, @code{tin}, @code{velvet}, @code{grape},
+@code{labia}, @code{berry}, @code{neutral}, and @code{september}.
+@item gnus-use-toolbar
+@vindex gnus-use-toolbar
+If @code{nil}, don't display toolbars. If non-@code{nil}, it should be
+one of @code{default-toolbar}, @code{top-toolbar}, @code{bottom-toolbar},
+@code{right-toolbar}, or @code{left-toolbar}.
+@item gnus-group-toolbar
+@vindex gnus-group-toolbar
+The toolbar in the group buffer.
+@item gnus-summary-toolbar
+@vindex gnus-summary-toolbar
+The toolbar in the summary buffer.
+@item gnus-summary-mail-toolbar
+@vindex gnus-summary-mail-toolbar
+The toolbar in the summary buffer of mail groups.
+@item gnus-xmas-modeline-glyph
+@vindex gnus-xmas-modeline-glyph
+A glyph dislayed in all Gnus mode lines. It is a tiny gnu head by
+@end table
@node Various Various
@section Various Various
@cindex mode lines

0 comments on commit 4590831

Please sign in to comment.
Something went wrong with that request. Please try again.