--- /dev/null
+srcdir = @srcdir@
+
+@SET_MAKE@
+EMACS = emacs
+XEMACS = xemacs
+
+all: lick info
+
+lick:
+ cd lisp && $(MAKE) EMACS=$(EMACS) all
+
+install:
+ cd lisp && $(MAKE) EMACS=$(EMACS) install
+ cd texi && $(MAKE) EMACS=$(EMACS) install
+
+# Rule for Lars and nobody else.
+some:
+ cd lisp && $(MAKE) EMACS=$(EMACS) some
+l:
+ cd lisp && $(MAKE) EMACS=$(EMACS) clever
+
+info:
+ cd texi && $(MAKE) EMACS=$(EMACS) all
+
+clean:
+ rm -f */*.orig */*.rej *.orig *.rej
+
+xsome:
+ cd lisp && $(MAKE) EMACS=$(XEMACS) some
+
+elclean:
+ rm lisp/*.elc
+
+x:
+ make EMACS=xemacs
+
+distclean:
+ make clean
+ rm -r *~
+ for i in lisp texi; do (cd $$i; make distclean); done
+ rm -f config.log config.status Makefile
+
+osome:
+ make EMACS=emacs-19.34 some
+
+config.status: $(srcdir)/configure
+ $(SHELL) ./config.status --recheck
+$(srcdir)/configure: $(srcdir)/configure.in
+ cd $(srcdir) && autoconf
+Makefile: $(srcdir)/Makefile.in config.status
+ CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- /dev/null
+# serial 1
+
+AC_DEFUN(AM_PATH_LISPDIR,
+ [# If set to t, that means we are running in a shell under Emacs.
+ # If you have an Emacs named "t", then use the full path.
+ test "$EMACS" = t && EMACS=
+ AC_PATH_PROG(EMACS, emacs xemacs, no)
+ if test $EMACS != "no"; then
+ AC_MSG_CHECKING([where .elc files should go])
+ dnl Set default value
+ lispdir="\$(datadir)/emacs/site-lisp"
+ if test "x$prefix" = "xNONE"; then
+ if test -d $ac_default_prefix/share/emacs/site-lisp; then
+ lispdir="\$(prefix)/share/emacs/site-lisp"
+ else
+ if test -d $ac_default_prefix/lib/emacs/site-lisp; then
+ lispdir="\$(prefix)/lib/emacs/site-lisp"
+ fi
+ fi
+ else
+ if test -d $prefix/share/emacs/site-lisp; then
+ lispdir="\$(prefix)/share/emacs/site-lisp"
+ else
+ if test -d $prefix/lib/emacs/site-lisp; then
+ lispdir="\$(prefix)/lib/emacs/site-lisp"
+ fi
+ fi
+ fi
+ AC_MSG_RESULT($lispdir)
+ fi
+ AC_SUBST(lispdir)])
--- /dev/null
+AC_INIT(lisp/gnus.el)
+AC_SET_MAKE
+AC_PROG_INSTALL
+AM_PATH_LISPDIR
+AC_PATH_PROG(MAKEINFO, makeinfo, no)
+AC_OUTPUT(Makefile lisp/Makefile texi/Makefile)
+Sat Feb 28 08:17:37 1998 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
+
+ * gnus.el: Quassia Gnus v0.33 is released.
+
+Sat Feb 28 08:10:27 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus-picon.el (gnus-picons-display-x-face): `buf' -- unbound
+ var.
+
+Sat Feb 28 08:03:23 1998 François Pinard <pinard@iro.umontreal.ca>
+
+ * gnus: configure'd.
+
+Sat Feb 28 07:43:00 1998 Nelson Jose dos Santos Ferreira <Nelson.Ferreira@inesc.pt>
+
+ * nnsoup.el (nnsoup-store-reply): Fix double sep error.
+
+Sat Feb 28 07:01:17 1998 Lasse Rasinen <lrasinen@iki.fi>
+
+ * gnus-start.el (gnus-ask-server-for-new-groups): Message more.
+
+Fri Feb 27 13:26:34 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * message.el (message-resend): Allow arbitrary Also's.
+
+1998-02-27 Dave Love <d.love@dl.ac.uk>
+
+ * gnus-sum.el (gnus-simplify-subject-functions): Fix
+ customization, doc.
+
+1998-02-25 Dave Love <d.love@dl.ac.uk>
+
+ * gnus-art.el (gnus-article-x-face-command): Replace leading `{'.
+
+Mon Feb 23 18:26:48 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus-agent.el (gnus-plugged): New command and keystroke.
+
+ * gnus-ems.el (gnus-ems-redefine): Define
+ 'gnus-summary-set-display-table as a function that takes no
+ params.
+
+ * gnus.el (gnus-interactive): Don't use gnus-sum macros.
+ (gnus-valid-select-methods): Include nnlistserv.
+
+ * gnus.el: Autoloaded things to make byte-comp silent.
+
Mon Feb 23 18:06:47 1998 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
* gnus.el: Quassia Gnus v0.32 is released.
--- /dev/null
+datadir = @datadir@
+lispdir = @lispdir@
+prefix = @prefix@
+srcdir = @srcdir@
+subdir = lisp
+top_srcdir = @top_srcdir@
+
+EMACS = emacs
+FLAGS = -batch -q -no-site-file -l ./dgnushack.el
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+SHELL = /bin/sh
+VPATH = @srcdir@
+
+total:
+ rm -f *.elc ; $(EMACS) $(FLAGS) -f dgnushack-compile
+
+all:
+ rm -f *.elc ; $(EMACS) $(FLAGS) -f dgnushack-compile
+
+clever:
+ $(EMACS) $(FLAGS) -f dgnushack-compile
+
+some:
+ $(EMACS) $(FLAGS) -f dgnushack-compile
+
+install: clever
+ $(SHELL) $(top_srcdir)/mkinstalldirs $(lispdir)
+ for p in *.elc; do \
+ echo " $(INSTALL_DATA) $$p $(lispdir)/$$p"; \
+ $(INSTALL_DATA) $$p $(lispdir)/$$p; \
+ done
+
+tags:
+ etags *.el
+
+separately:
+ rm -f *.elc ; for i in *.el; do $(EMACS) $(FLAGS) -f batch-byte-compile $$i; done
+
+pot:
+ xpot -drgnus -r`cat ./version` *.el > rgnus.pot
+
+gnus-load.el:
+ echo ";;; gnus-load.el --- automatically extracted custom dependencies" > gnus-load.el
+ echo ";;" >> gnus-load.el
+ echo ";;; Code:" >> gnus-load.el
+ echo >> gnus-load.el
+ $(EMACS) $(FLAGS) -l ./dgnushack.el -l cus-edit.el *.el \
+ -f custom-make-dependencies >> gnus-load.el
+ echo >> gnus-load.el
+ echo "(provide 'gnus-load)" >> gnus-load.el
+ echo >> gnus-load.el
+ echo ";;; gnus-load.el ends here" >> gnus-load.el
+
+distclean:
+ rm -f *.orig *.rej *.elc *~ Makefile
+
+Makefile: $(srcdir)/Makefile.in ../config.status
+ cd .. \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
(setq gnus-plugged nil)
(gnus))
+;;;###autoload
+(defun gnus-plugged ()
+ "Start Gnus plugged."
+ (interactive)
+ (setq gnus-plugged t)
+ (gnus))
+
;;;###autoload
(defun gnus-agentize ()
"Allow Gnus to be an offline newsreader.
:group 'gnus-article-hiding)
(defcustom gnus-article-x-face-command
- " echo '/* Width=48, Height=48 */'; uncompface; } | icontopbm | xv -quit -"
+ "{ echo '/* Width=48, Height=48 */'; uncompface; } | icontopbm | xv -quit -"
"*String or function to be executed to display an X-Face header.
If it is a string, the command will be executed in a sub-shell
asynchronously. The compressed face will be piped to this command."
(require 'gnus-int)
(require 'nnheader)
(require 'nntp)
+(require 'nnmail)
(eval-and-compile
(if (string-match "XEmacs" (emacs-version))
(require 'itimer)
"Display table used in summary mode buffers.")
(fset 'gnus-cite-add-face 'gnus-mule-cite-add-face)
(fset 'gnus-max-width-function 'gnus-mule-max-width-function)
- (fset 'gnus-summary-set-display-table 'ignore)
+ (fset 'gnus-summary-set-display-table (lambda ()))
(fset 'gnus-encode-coding-string 'encode-coding-string)
(fset 'gnus-decode-coding-string 'decode-coding-string)
:group 'picons)
(defcustom gnus-picons-x-face-file-name
- '(format "/tmp/picon-xface.%s.xbm" (user-login-name))
+ (format "/tmp/picon-xface.%s.xbm" (user-login-name))
"*The name of the file in which to store the converted X-face header."
:type 'string
:group 'picons)
"Picons file names cache.
List of pairs (KEY . NAME) where KEY is (USER HOST DBS) and NAME is an URL.")
-(defvar gnus-group-annotations nil
- "List of annotations added/removed when selecting/exiting a group")
-(defvar gnus-article-annotations nil
- "List of annotations added/removed when selecting an article")
-(defvar gnus-x-face-annotations nil
- "List of annotations added/removed when selecting an article with an X-Face.")
-
(defvar gnus-picons-jobs-alist nil
"List of jobs that still need be done.
This is a list of (SYM-ANN TAG ARGS...) where SYM-ANN three annotations list,
;;; Functions:
-(defun gnus-picons-remove (symbol)
- "Remove all annotations in variable named SYMBOL.
-This function is careful to set it to nil before removing anything so that
-asynchronous process don't get crazy."
- (setq gnus-picons-jobs-alist (remassq symbol gnus-picons-jobs-alist))
- ;; notify running job that it may have been preempted
- (if (and (listp gnus-picons-job-already-running)
- (eq (car gnus-picons-job-already-running) symbol))
- (setq gnus-picons-job-already-running t))
- ;; clear all annotations
- (mapc (function (lambda (item)
- (if (annotationp item)
- (delete-annotation item))))
- (prog1 (symbol-value symbol)
- (set symbol nil))))
-
(defun gnus-picons-remove-all ()
"Removes all picons from the Gnus display(s)."
(interactive)
- (gnus-picons-remove 'gnus-article-annotations)
- (gnus-picons-remove 'gnus-group-annotations)
- (gnus-picons-remove 'gnus-x-face-annotations))
+ (map-extents (function (lambda (ext unused) (delete-annotation ext) nil))
+ nil nil nil nil nil 'gnus-picon)
+ (setq gnus-picons-jobs-alist '())
+ ;; notify running job that it may have been preempted
+ (if (and (listp gnus-picons-job-already-running)
+ gnus-picons-job-already-running)
+ (setq gnus-picons-job-already-running t)))
(defun gnus-get-buffer-name (variable)
"Returns the buffer name associated with the contents of a variable."
(list (list (current-buffer)
(cons nil gnus-picons-has-modeline-p)))))))
-(defun gnus-picons-prepare-for-annotations (annotations)
- "Prepare picons buffer for puting annotations memorized in ANNOTATIONS.
-ANNOTATIONS should be a symbol naming a variable wich contains a list of
-annotations. Sets buffer to `gnus-picons-display-where'."
+(defun gnus-picons-prepare-for-annotations ()
+ "Prepare picons buffer for putting annotations."
;; let drawing catch up
(when gnus-picons-refresh-before-display
(sit-for 0))
(gnus-picons-set-buffer)
- (gnus-picons-remove annotations))
+ (gnus-picons-remove-all))
-(defsubst gnus-picons-make-annotation (&rest args)
+(defun gnus-picons-make-annotation (&rest args)
(let ((annot (apply 'make-annotation args)))
- (set-extent-property annot 'duplicable nil)
+ (set-extent-property annot 'gnus-picon t)
+ (set-extent-property annot 'duplicable t)
annot))
(defun gnus-picons-article-display-x-face ()
"Display the x-face header bitmap in the 'gnus-picons-display-where buffer."
- ;; delete any old ones.
- ;; This is needed here because gnus-picons-display-x-face will not
- ;; be called if there is no X-Face header
- (gnus-picons-remove 'gnus-x-face-annotations)
- ;; display the new one.
(let ((gnus-article-x-face-command 'gnus-picons-display-x-face))
(gnus-article-display-x-face)))
(defun gnus-picons-x-face-sentinel (process event)
- (let* ((env (assq process gnus-picons-processes-alist))
- (annot (cdr env)))
+ (when (memq process gnus-picons-processes-alist)
(setq gnus-picons-processes-alist
- (remassq process gnus-picons-processes-alist))
- (when (annotationp annot)
- (set-annotation-glyph annot
- (make-glyph gnus-picons-x-face-file-name))
- (if (memq annot gnus-x-face-annotations)
- (delete-file gnus-picons-x-face-file-name)))))
+ (delq process gnus-picons-processes-alist))
+ (gnus-picons-set-buffer)
+ (gnus-picons-make-annotation (make-glyph gnus-picons-x-face-file-name)
+ nil 'text)
+ (delete-file gnus-picons-x-face-file-name)))
(defun gnus-picons-display-x-face (beg end)
"Function to display the x-face header in the picons window.
(interactive)
(if (featurep 'xface)
;; Use builtin support
- (let ((buf (current-buffer)))
- (save-excursion
- (gnus-picons-prepare-for-annotations 'gnus-x-face-annotations)
- (setq gnus-x-face-annotations
- (cons (gnus-picons-make-annotation
- (vector 'xface
- :data (concat "X-Face: "
- (buffer-substring beg end buf)))
- nil 'text)
- gnus-x-face-annotations))))
+ (save-excursion
+ (gnus-picons-set-buffer)
+ (gnus-picons-make-annotation
+ (vector 'xface
+ :data (concat "X-Face: " (buffer-substring beg end)))
+ nil 'text))
;; convert the x-face header to a .xbm file
(let* ((process-connection-type nil)
- (annot (save-excursion
- (gnus-picons-prepare-for-annotations
- 'gnus-x-face-annotations)
- (gnus-picons-make-annotation nil nil 'text)))
(process (start-process-shell-command "gnus-x-face" nil
gnus-picons-convert-x-face)))
- (push annot gnus-x-face-annotations)
- (push (cons process annot) gnus-picons-processes-alist)
+ (push process gnus-picons-processes-alist)
(process-kill-without-query process)
(set-process-sentinel process 'gnus-picons-x-face-sentinel)
(process-send-region process beg end)
(message-tokenize-header gnus-local-domain "."))
(message-tokenize-header (substring from (1+ at-idx))
"."))))
- (gnus-picons-prepare-for-annotations 'gnus-article-annotations)
- ;; if display in article buffer, the group annotations
- ;; wrongly placed. Move them here
- (if (eq gnus-picons-display-where 'article)
- (dolist (ext gnus-group-annotations)
- (when (extent-live-p ext)
- (set-extent-endpoints ext (point) (point)))))
+ (gnus-picons-prepare-for-annotations)
+ (gnus-group-display-picons)
(if (null gnus-picons-piconsearch-url)
- (setq gnus-article-annotations
- (nconc gnus-article-annotations
- (gnus-picons-display-pairs
- (gnus-picons-lookup-pairs
- addrs gnus-picons-domain-directories)
- gnus-picons-display-as-address
- "." t)
- (if (and gnus-picons-display-as-address addrs)
- (list (gnus-picons-make-annotation
- [string :data "@"] nil
- 'text nil nil nil t)))
- (gnus-picons-display-picon-or-name
- (gnus-picons-lookup-user username addrs)
- username t)))
+ (progn
+ (gnus-picons-display-pairs (gnus-picons-lookup-pairs
+ addrs
+ gnus-picons-domain-directories)
+ gnus-picons-display-as-address
+ "." t)
+ (if (and gnus-picons-display-as-address addrs)
+ (gnus-picons-make-annotation
+ [string :data "@"] nil 'text nil nil nil t))
+ (gnus-picons-display-picon-or-name
+ (gnus-picons-lookup-user username addrs)
+ username t))
(push (list 'gnus-article-annotations 'search username addrs
gnus-picons-domain-directories t)
gnus-picons-jobs-alist)
- (gnus-picons-next-job))
-
- (add-hook 'gnus-summary-exit-hook 'gnus-picons-remove-all))))))
+ (gnus-picons-next-job)))))))
(defun gnus-group-display-picons ()
- "Display icons for the group in the gnus-picons-display-where buffer."
+ "Display icons for the group in the `gnus-picons-display-where' buffer."
(interactive)
(when (and (featurep 'xpm)
(or (not (fboundp 'device-type)) (equal (device-type) 'x))
(not (string-match gnus-picons-group-excluded-groups
gnus-newsgroup-name))))
(save-excursion
- (gnus-picons-prepare-for-annotations 'gnus-group-annotations)
+ (gnus-picons-prepare-for-annotations)
(if (null gnus-picons-piconsearch-url)
- (setq gnus-group-annotations
- (gnus-picons-display-pairs
+ (gnus-picons-display-pairs
(gnus-picons-lookup-pairs
(reverse (message-tokenize-header
(gnus-group-real-name gnus-newsgroup-name)
"."))
gnus-picons-news-directories)
- t "."))
+ t ".")
(push (list 'gnus-group-annotations 'search nil
(message-tokenize-header
(gnus-group-real-name gnus-newsgroup-name) ".")
(add-hook 'gnus-summary-exit-hook 'gnus-picons-remove-all))))
-(defsubst gnus-picons-lookup-internal (addrs dir)
+(defun gnus-picons-lookup-internal (addrs dir)
(setq dir (expand-file-name dir gnus-picons-database))
(gnus-picons-try-face (dolist (part (reverse addrs) dir)
(setq dir (expand-file-name part dir)))))
(defun gnus-picons-network-display-internal (sym-ann glyph part right-p)
(gnus-picons-set-buffer)
- (set sym-ann (nconc (symbol-value sym-ann)
- (gnus-picons-display-picon-or-name glyph part right-p)))
+ (gnus-picons-display-picon-or-name glyph part right-p)
(gnus-picons-next-job-internal))
(defun gnus-picons-network-display-callback (url part sym-ann right-p)
(prog1 (gnus-picons-parse-filenames)
(kill-buffer (current-buffer)))))
+;; Initiate a query on the picon database
(defun gnus-picons-network-search (user addrs dbs sym-ann right-p)
(let* ((host (mapconcat 'identity addrs "."))
(key (list (or user "unknown") host (if user
hashtb))
(when new-newsgroups
(gnus-subscribe-hierarchical-interactive new-newsgroups)))
- (when (> groups 0)
- (gnus-message 6 "%d new newsgroup%s arrived."
- groups (if (> groups 1) "s have" " has")))
+ (if (> groups 0)
+ (gnus-message 5 "%d new newsgroup%s arrived"
+ groups (if (> groups 1) "s have" " has"))
+ (gnus-message 5 "No new newsgroups"))
(when got-new
(setq gnus-newsrc-last-checked-date new-date))
got-new))
(defcustom gnus-simplify-subject-functions nil
"List of functions taking a string argument that simplify subjects.
-The functions are applied recursively."
+The functions are applied recursively.
+
+Useful functions to put in this list include: `gnus-simplify-subject-re',
+`gnus-simplify-subject-fuzzy' and `gnus-simplify-whitespace'."
:group 'gnus-thread
- :type '(repeat (list function)))
+ :type '(repeat function))
(defcustom gnus-simplify-ignored-prefixes nil
"*Regexp, matches for which are removed from subject lines when simplifying fuzzily."
(require 'message)
(eval-and-compile
- (autoload 'nnmail-date-to-time "nnmail"))
+ (autoload 'nnmail-date-to-time "nnmail")
+ (autoload 'rmail-insert-rmail-file-header "rmail")
+ (autoload 'rmail-count-new-messages "rmail")
+ (autoload 'rmail-show-message "rmail"))
(defun gnus-boundp (variable)
"Return non-nil if VARIABLE is bound and non-nil."
:link '(custom-manual "(gnus)Exiting Gnus")
:group 'gnus)
-(defconst gnus-version-number "0.32"
+(defconst gnus-version-number "0.33"
"Version number for this version of Gnus.")
(defconst gnus-version (format "Quassia Gnus v%s" gnus-version-number)
("nnfolder" mail respool address)
("nngateway" none address prompt-address physical-address)
("nnweb" none)
+ ("nnlistserv" none)
("nnagent" post-mail))
"*An alist of valid select methods.
The first element of each list lists should be a string with the name
gnus-group-list-groups gnus-group-first-unread-group
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-group-make-help-group gnus-group-update-group
+ gnus-clear-inboxes-moved 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
((= c ?g)
(gnus-group-group-name))
((= c ?A)
- (gnus-summary-article-number))
+ (gnus-summary-skip-intangible)
+ (or (get-text-property (point) 'gnus-number)
+ (gnus-summary-last-subject)))
((= c ?H)
- (gnus-summary-article-header))
+ (gnus-data-header (gnus-data-find (gnus-summary-article-number))))
(t
- (error "Not implemented spec")))
+ (error "Non-implemented spec")))
out)
(cond
((= c ?r)
(autoload 'gnus-output-to-rmail "gnus-util")
(autoload 'mail-abbrev-in-expansion-header-p "mailabbrev")
(autoload 'nndraft-request-associate-buffer "nndraft")
- (autoload 'nndraft-request-expire-articles "nndraft"))
+ (autoload 'nndraft-request-expire-articles "nndraft")
+ (autoload 'gnus-open-server "gnus-int")
+ (autoload 'gnus-request-post "gnus-int")
+ (autoload 'rmail-output "rmail"))
\f
(goto-char (point-max)))
(insert mail-header-separator)
;; Rename all old ("Also-")Resent headers.
- (while (re-search-backward "^\\(Also-\\)?Resent-" beg t)
+ (while (re-search-backward "^\\(Also-\\)*Resent-" beg t)
(beginning-of-line)
(insert "Also-"))
;; Quote any "From " lines at the beginning.
(autoload 'cancel-timer "timer")
(autoload 'telnet "telnet" nil t)
(autoload 'telnet-send-input "telnet" nil t)
- (autoload 'timezone-parse-date "timezone"))
+ (autoload 'timezone-parse-date "timezone")
+ (autoload 'gnus-declare-backend "gnus-start"))
;; Declare nndb as derived from nntp
\f
+(autoload 'gnus-encode-coding-string "gnus-ems")
+
;;; Interface functions.
(nnoo-define-basics nneething)
(autoload 'mail-position-on-field "sendmail")
(autoload 'message-remove-header "message")
(autoload 'cancel-function-timers "timers")
- (autoload 'gnus-point-at-eol "gnus-util"))
+ (autoload 'gnus-point-at-eol "gnus-util")
+ (autoload 'gnus-delete-line "gnus-util")
+ (autoload 'gnus-buffer-live-p "gnus-util")
+ (autoload 'gnus-encode-coding-string "gnus-ems"))
;;; Header access macros.
(eval-when-compile (require 'cl))
-(push '("nnlistserv" none) gnus-valid-select-methods)
-
(require 'nnoo)
(require 'nnweb)
(require 'custom)
(eval-and-compile
- (autoload 'gnus-error "gnus-util"))
+ (autoload 'gnus-error "gnus-util")
+ (autoload 'gnus-buffer-live-p "gnus-util")
+ (autoload 'gnus-encode-coding-string "gnus-ems"))
(defgroup nnmail nil
"Reading mail with Gnus."
(require 'mail-utils)
(let ((tembuf (generate-new-buffer " message temp"))
(case-fold-search nil)
+ (real-header-separator mail-header-separator)
(mail-header-separator "")
delimline
(mailbuf (current-buffer)))
;; Change header-delimiter to be what sendmail expects.
(goto-char (point-min))
(re-search-forward
- (concat "^" (regexp-quote mail-header-separator) "\n"))
+ (concat "^" (regexp-quote real-header-separator) "\n"))
(replace-match "\n")
(backward-char 1)
(setq delimline (point-marker))
(require 'gnus-util)
(require 'gnus-start)
(require 'gnus-sum)
+(require 'gnus-msg)
(require 'cl)
(nnoo-declare nnvirtual)
--- /dev/null
+infodir = @infodir@
+prefix = @prefix@
+srcdir = @srcdir@
+subdir = texi
+top_srcdir = @top_srcdir@
+
+TEXI2DVI=texi2dvi
+EMACS=emacs
+MAKEINFO=@MAKEINFO@
+EMACSINFO=$(EMACS) -batch -q -no-site-file
+INFOSWI=-l texinfmt -f texinfo-every-node-update -f texinfo-format-buffer -f save-buffer
+XINFOSWI=-l texinfmt -f texinfo-every-node-update -f texinfo-format-buffer -f save-buffer
+LATEX=latex
+DVIPS=dvips
+PERL=perl
+
+all: gnus message
+
+most: texi2latex.elc latex latexps
+
+.SUFFIXES: .texi .dvi .ps
+
+.texi:
+ if test $(MAKEINFO) = no; then \
+ $(EMACSINFO) -eval '(find-file "$<")' $(XINFOSWI); \
+ else \
+ makeinfo -o $* $<; \
+ fi
+
+dvi: gnus.dvi message.dvi
+
+.texi.dvi :
+ $(PERL) -n -e 'print unless (/\@iflatex/ .. /\@end iflatex/)' $< > gnustmp.texi
+ $(TEXI2DVI) gnustmp.texi
+ cp gnustmp.dvi $*.dvi
+ rm gnustmp.*
+
+refcard.dvi: refcard.tex gnuslogo.refcard gnusref.tex
+ $(LATEX) refcard.tex
+
+clean:
+ rm -f gnus.*.bak *.ky *.cp *.fn *.cps *.kys *.log *.aux *.dvi *.vr \
+ *.tp *.toc *.pg gnus.latexi *.aux *.[cgk]idx \
+ gnus.ilg gnus.ind gnus.[cgk]ind gnus.idx \
+ gnus.tmptexi *.tmplatexi gnus.tmplatexi1 texput.log *.orig *.rej \
+ gnus.latexi*~* tmp/*.ps xface.tex picons.tex smiley.tex *.latexi
+
+makeinfo:
+ makeinfo -o gnus gnus.texi
+ makeinfo -o message message.texi
+
+texi2latex.elc: texi2latex.el
+ $(EMACS) -batch -l bytecomp --eval '(byte-compile-file "texi2latex.el")'
+
+latex: gnus.texi texi2latex.elc
+ $(EMACS) -batch -q -no-site-file gnus.texi -l ./texi2latex.elc -f latexi-translate
+
+latexps:
+ make texi2latex.elc
+ rm -f gnus.aux
+ egrep -v "label.*Index|chapter.*Index" gnus.latexi > gnus.tmplatexi1
+ $(LATEX) gnus.tmplatexi1
+ ./splitindex
+ makeindex -o gnus.kind gnus.kidx
+ makeindex -o gnus.cind gnus.cidx
+ makeindex -o gnus.gind gnus.gidx
+ sed 's/\\char 5E\\relax {}/\\symbol{"5E}/' < gnus.kind > gnus.tmpkind
+ mv gnus.tmpkind gnus.kind
+ egrep -v "end{document}" gnus.tmplatexi1 > gnus.tmplatexi
+ cat postamble.tex >> gnus.tmplatexi
+ $(LATEX) gnus.tmplatexi
+ $(LATEX) gnus.tmplatexi
+ $(DVIPS) -f gnus.dvi > gnus.ps
+
+pss:
+ make latex
+ make latexps
+
+psout:
+ make latex
+ make latexboth
+ make out
+
+latexboth:
+ rm -f gnus-manual-a4.ps.gz gnus-manual-standard.ps.gz
+ make latexps
+ mv /local/tmp/larsi/gnus.ps /local/tmp/larsi/gnus-manual-a4.ps
+ gzip /local/tmp/larsi/gnus-manual-a4.ps
+ sed 's/,a4paper//' gnus.latexi > gnus-standard.latexi
+ mv gnus-standard.latexi gnus.latexi
+ make latexps
+ mv /local/tmp/larsi/gnus.ps /local/tmp/larsi/gnus-manual-standard.ps
+ gzip /local/tmp/larsi/gnus-manual-standard.ps
+
+out:
+ cp /local/tmp/larsi/gnus-manual-standard.ps.gz \
+ /local/tmp/larsi/gnus-manual-a4.ps.gz \
+ /local/ftp/pub/emacs/gnus/manual
+ mv /local/tmp/larsi/gnus-manual-standard.ps.gz \
+ /local/tmp/larsi/gnus-manual-a4.ps.gz \
+ /hom/larsi/www_docs/www.gnus.org/documents
+
+veryclean:
+ make clean
+ rm -f gnus.dvi gnus.ps
+
+distclean:
+ make clean
+ rm -f *.orig *.rej *.elc *~ gnus gnus-[0-9] gnus-[0-9][0-9]
+ rm -f message message-[0-9]
+
+install:
+ $(SHELL) $(top_srcdir)/mkinstalldirs $(infodir)
+ @for file in gnus message; do \
+ for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
+ if test -f $$ifile; then \
+ echo " $(INSTALL_DATA) $$d/$$ifile $(infodir)/$$ifile"; \
+ $(INSTALL_DATA) $$ifile $(infodir)/$$ifile; \
+ else : ; fi; \
+ done; \
+ done
+
+tmps:
+ if [ ! -e tmp ]; then mkdir tmp; fi
+ make screens
+ make herdss
+ make etcs
+ make piconss
+ make xfaces
+ make smiley
+ make miscs
+
+herdss:
+ cd herds ; for i in new-herd-[0-9]*.gif; do echo $$i; giftopnm $$i | pnmcrop -white | pnmmargin -white 9 | pnmscale 2 | pnmconvol convol5.pnm | ppmtopgm | pnmdepth 255 | pnmtops -width 100 -height 100 -noturn > ../tmp/`basename $$i .gif`.ps; done
+ cd herds ; giftopnm new-herd-section.gif | pnmscale 4 | pnmconvol convol11.pnm | ppmtopgm | pnmdepth 255 | pnmtops -noturn -width 100 -height 100 > ../tmp/new-herd-section.ps
+
+
+screens:
+ cd screen ; for i in *.gif; do echo $$i; giftopnm $$i | pnmmargin -black 1 | ppmtopgm | pnmtops -width 100 -height 100 -noturn > ../tmp/`basename $$i .gif`.ps; done
+
+miscs:
+ giftopnm misc/larsi.gif | ppmtopgm | pnmtops -noturn > tmp/larsi.ps
+ tifftopnm misc/eseptember.tif | pnmscale 4 | ppmtopgm | pnmtops -noturn -width 100 -height 100 > tmp/september.ps
+ tifftopnm misc/fseptember.tif | pnmscale 2 | ppmtopgm | pnmtops -noturn -width 100 -height 100 > tmp/fseptember.ps
+ tifftopnm misc/fred.tif | pnmscale 2 | ppmtopgm | pnmtops -noturn -width 100 -height 100 > tmp/fred.ps
+ tifftopnm misc/ered.tif | pnmscale 2 | ppmtopgm | pnmtops -noturn -width 100 -height 100 > tmp/red.ps
+
+etcs:
+ cd etc; for i in gnus-*.xpm; do echo $$i; xpmtoppm $$i | ppmtopgm | pnmdepth 255 | pnmtops -noturn > ../tmp/`basename $$i .xpm`.ps; done
+
+piconss:
+ cd picons; for i in *.xbm; do echo $$i; xbmtopbm $$i | pnmtops -noturn > ../tmp/picons-`basename $$i .xbm`.ps; done
+ cd picons; for i in *.gif; do echo $$i; giftopnm $$i | ppmtopgm | pnmtops -noturn > ../tmp/picons-`basename $$i .gif`.ps; done
+ for i in tmp/picons-*.ps; do echo "\\gnuspicon{$$i}"; done > picons.tex
+
+xfaces:
+ cd xface; for i in *.gif; do echo $$i; giftopnm $$i | ppmtopgm | pnmtops -noturn > ../tmp/xface-`basename $$i .gif`.ps; done
+ for i in tmp/xface-*.ps; do \
+ if [ -n "$$a" ]; then a=""; echo "{$$i}"; else \
+ a="h"; echo -n "\\gnusxface{$$i}"; fi done > xface.tex; \
+ if [ -n "$$a" ]; then echo "{$$i}" >> xface.tex; fi
+
+smiley:
+ cd smilies; tifftopnm BigFace.tif | ppmtopgm | pnmtops > ../tmp/BigFace.ps
+ cd smilies; for i in *.xpm; do echo $$i; sed "s/none/#FFFFFF/" $$i | xpmtoppm | ppmtopgm | pnmdepth 255 | pnmtops > ../tmp/smiley-`basename $$i .xpm`.ps; done
+ for i in tmp/smiley-*.ps; do \
+ if [ -n "$$a" ]; then a=""; echo "{$$i}"; else \
+ a="h"; echo -n "\\gnussmiley{$$i}"; fi done > smiley.tex; \
+ if [ -n "$$a" ]; then echo "{$$i}" >> smiley.tex; fi
+
+pspackage:
+ tar czvf pspackage.tar.gz gnus-faq.texi gnus.texi herds misc pagestyle.sty picons pixidx.sty postamble.tex ps screen smilies splitindex texi2latex.el xface Makefile README etc
+
+complete:
+ make texi2latex.elc
+ make tmps
+ make pss
+
+Makefile: $(srcdir)/Makefile.in ../config.status
+ cd .. \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
\input texinfo @c -*-texinfo-*-
@setfilename gnus
-@settitle Quassia Gnus 0.32 Manual
+@settitle Quassia Gnus 0.33 Manual
@synindex fn cp
@synindex vr cp
@synindex pg cp
@tex
@titlepage
-@title Quassia Gnus 0.32 Manual
+@title Quassia Gnus 0.33 Manual
@author by Lars Magne Ingebrigtsen
@page
spool or your mbox file. All at the same time, if you want to push your
luck.
-This manual corresponds to Quassia Gnus 0.32.
+This manual corresponds to Quassia Gnus 0.33.
@end ifinfo
@item read-only
Read-only score files will not be updated or saved. Global score files
should feature this atom (@pxref{Global Score Files}). (Note:
-@dfn{Global} here really means @dfn{global}; not just your personal
+@dfn{Global} here really means @dfn{global}; not your personal
apply-to-all-groups score files.)
@item orphan
@item
gnus-article-highlight-limit, to disable highlighting in big articles.
+@item
+Editing an article should put the article to be edited
+in a special, unique buffer.
+
@item
Solve the halting problem.
\input texinfo @c -*-texinfo-*-
@setfilename message
-@settitle Message 0.32 Manual
+@settitle Message 0.33 Manual
@synindex fn cp
@synindex vr cp
@synindex pg cp
@tex
@titlepage
-@title Message 0.32 Manual
+@title Message 0.33 Manual
@author by Lars Magne Ingebrigtsen
@page
* Key Index:: List of Message mode keys.
@end menu
-This manual corresponds to Message 0.32. Message is distributed with
+This manual corresponds to Message 0.33. Message is distributed with
the Gnus distribution bearing the same version number as this manual
has.