* lisp/gnus-vers.el (gnus-revision-number): Increment to 07.
* lisp/dgnushack.el (dgnushack-make-autoloads): Remove function.
(dgnushack-make-load): Ignore cus-load.el if it does not exist.
(dgnushack-make-auto-load): Remove auto-autoloads.el.
(dgnushack-make-cus-load): Do nothing if loading cus-dep is failed.
* lisp/Makefile.in (clean): Remove gnus-load.el instead of custom-load.el.
(compose-package): Call `gnus-load.elc' and then rename gnus-load.el(c) to
auto-autoloads.el(c) instead of the use of `dgnushack-make-autoloads'.
(clever): No need to remove custom-load.el.
* Makefile.in (elclean): Remove gnus-load.el instead of custom-load.el.
* aclocal.m4 (AC_CHECK_URL): Ignore cache.
+2001-02-14 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * lisp/gnus-vers.el (gnus-revision-number): Increment to 07.
+
+ * lisp/dgnushack.el (dgnushack-make-autoloads): Remove function.
+ (dgnushack-make-load): Ignore cus-load.el if it does not exist.
+ (dgnushack-make-auto-load): Remove auto-autoloads.el.
+ (dgnushack-make-cus-load): Do nothing if loading cus-dep is failed.
+
+ * lisp/Makefile.in (clean): Remove gnus-load.el instead of
+ custom-load.el.
+ (compose-package): Call `gnus-load.elc' and then rename
+ gnus-load.el(c) to auto-autoloads.el(c) instead of the use of
+ `dgnushack-make-autoloads'.
+ (clever): No need to remove custom-load.el.
+
+ * Makefile.in (elclean): Remove gnus-load.el instead of
+ custom-load.el.
+
+ * aclocal.m4 (AC_CHECK_URL): Ignore cache.
+
+2001-02-13 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * lisp/gnus-vers.el (gnus-revision-number): Increment to 06.
+
2001-02-11 18:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
* GNUS-NEWS: Copyright and others.
for i in lisp texi; do (cd $$i; $(MAKE) clean); done
elclean:
- cd lisp && rm -f *.elc auto-autoloads.el custom-load.el
+ cd lisp && rm -f *.elc auto-autoloads.el gnus-load.el
x:
$(MAKE) EMACS="$(XEMACS)"
+2001-02-13 20:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
+
+ * gnus.el (to-address): Define parameter.
+ (to-list): Ditto.
+ * gnus-art.el (article-hide-boring-headers): Use them.
+ * gnus-msg.el (gnus-post-news): Ditto.
+
+2001-02-13 19:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
+
+ * gnus-draft.el (gnus-draft-reminder): New.
+
+ * gnus-art.el (gnus-sender-save-name): New.
+
+2001-02-13 18:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
+
+ * mm-util.el (mm-mime-charset): Error message.
+
+2001-02-13 11:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
+
+ * message.el (message-check-news-body-syntax): Don't check mml lines.
+
2001-02-12 11:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
* gnus-topic.el (gnus-subscribe-topics): Return nil if not
fi; \
if test $$RM_ELC = t; then \
echo " => maybe yes;" \
- "rm -f *.elc auto-autoloads.el custom-load.el"; \
- rm -f *.elc auto-autoloads.el custom-load.el; \
+ "rm -f *.elc auto-autoloads.el"; \
+ rm -f *.elc auto-autoloads.el; \
else \
echo " => maybe unnecessary"; \
fi; \
$(EMACS_COMP) -f dgnushack-install-package-manifest \
$(PACKAGEDIR) $(GNUS_PRODUCT_NAME)
-compose-package:
- $(EMACS_COMP) -f dgnushack-make-autoloads
+compose-package: gnus-load.elc
+ mv gnus-load.el auto-autoloads.el; \
+ mv gnus-load.elc auto-autoloads.elc
remove-extra-files-in-package:
$(EMACS_COMP) -f dgnushack-remove-extra-files-in-package \
$(EMACS_COMP) -f dgnushack-make-load
clean:
- rm -f *.orig *.rej *.elc *~
- rm -f auto-autoloads.el custom-load.el
+ rm -f *.orig *.rej *.elc *~ auto-autoloads.el gnus-load.el
distclean: clean
rm -f Makefile dgnuspath.el
(require 'gnus)
(byte-recompile-directory "." 0))
-(defvar dgnushack-gnus-load-file (expand-file-name "gnus-load.el"))
-(defvar dgnushack-cus-load-file (expand-file-name "cus-load.el"))
+(defvar dgnushack-gnus-load-file (expand-file-name "gnus-load.el" srcdir))
+(defvar dgnushack-cus-load-file (expand-file-name "cus-load.el" srcdir))
+(defvar dgnushack-auto-load-file (expand-file-name "auto-autoloads.el" srcdir))
(defun dgnushack-make-cus-load ()
(when (condition-case nil
(make-backup-files nil)
(autoload-package-name "gnus"))
(if (featurep 'xemacs)
- (if (file-exists-p generated-autoload-file)
- (delete-file generated-autoload-file))
+ (progn
+ (if (file-exists-p generated-autoload-file)
+ (delete-file generated-autoload-file))
+ (if (file-exists-p dgnushack-auto-load-file)
+ (delete-file dgnushack-auto-load-file)))
(with-temp-file generated-autoload-file
(insert ?\014)))
(if (featurep 'xemacs)
(defun dgnushack-make-load ()
(message (format "Generating %s..." dgnushack-gnus-load-file))
(with-temp-file dgnushack-gnus-load-file
- (insert-file-contents dgnushack-cus-load-file)
- (delete-file dgnushack-cus-load-file)
- (goto-char (point-min))
- (search-forward ";;; Code:")
- (forward-line)
- (delete-region (point-min) (point))
- (insert "\
+ (if (file-exists-p dgnushack-cus-load-file)
+ (progn
+ (insert-file-contents dgnushack-cus-load-file)
+ (delete-file dgnushack-cus-load-file)
+ (goto-char (point-min))
+ (search-forward ";;; Code:")
+ (forward-line)
+ (delete-region (point-min) (point))
+ (insert "\
;;; gnus-load.el --- automatically extracted custom dependencies and autoload
;;
;;; Code:
")
- (goto-char (point-max))
- (if (search-backward "custom-versions-load-alist" nil t)
- (forward-line -1)
- (forward-line -1)
- (while (eq (char-after) ?\;)
- (forward-line -1))
- (forward-line))
- (delete-region (point) (point-max))
- (insert "\n")
+ (goto-char (point-max))
+ (if (search-backward "custom-versions-load-alist" nil t)
+ (forward-line -1)
+ (forward-line -1)
+ (while (eq (char-after) ?\;)
+ (forward-line -1))
+ (forward-line))
+ (delete-region (point) (point-max))
+ (insert "\n"))
+ (insert "\
+;;; gnus-load.el --- automatically extracted autoload
+;;
+;;; Code:
+"))
;; smiley-* are duplicated. Remove them all.
(let ((point (point)))
(insert-file-contents dgnushack-gnus-load-file)
regexp)
"Regexp matching Japanese info files.")
-(defun dgnushack-make-autoloads ()
- "Make auto-autoloads.el, custom-load.el and then compile them."
- (let ((auto-autoloads (expand-file-name "auto-autoloads.el" srcdir))
- (custom-load (expand-file-name "custom-load.el" srcdir)))
- (unless (and (file-exists-p auto-autoloads)
- (file-exists-p (concat auto-autoloads "c"))
- (file-newer-than-file-p (concat auto-autoloads "c")
- auto-autoloads)
- (file-exists-p custom-load)
- (file-exists-p (concat custom-load "c"))
- (file-newer-than-file-p (concat custom-load "c")
- custom-load))
- (let (make-backup-files)
- (message "Updating autoloads for directory %s..." default-directory)
- (let ((generated-autoload-file auto-autoloads)
- (si:message (symbol-function 'message))
- noninteractive)
- (defun message (fmt &rest args)
- (cond ((and (string-equal "Generating autoloads for %s..." fmt)
- (file-exists-p (file-name-nondirectory (car args))))
- (funcall si:message
- fmt (file-name-nondirectory (car args))))
- ((string-equal "No autoloads found in %s" fmt))
- ((string-equal "Generating autoloads for %s...done" fmt))
- (t (apply si:message fmt args))))
- (unwind-protect
- (update-autoloads-from-directory default-directory)
- (fset 'message si:message)))
- (byte-compile-file auto-autoloads)
- (with-temp-buffer
- (let ((standard-output (current-buffer)))
- (Custom-make-dependencies "."))
- (message "%s" (buffer-string)))
- (require 'cus-load)
- (byte-compile-file custom-load)))))
-
(defun dgnushack-remove-extra-files-in-package ()
"Remove extra files in the lisp directory of the XEmacs package."
(let ((lisp-dir (expand-file-name (concat "lisp/"
((eq elem 'to-address)
(let ((to (message-fetch-field "to"))
(to-address
- (gnus-group-find-parameter
+ (gnus-parameter-to-address
(if (boundp 'gnus-newsgroup-name)
- gnus-newsgroup-name "") 'to-address)))
+ gnus-newsgroup-name ""))))
(when (and to to-address
(ignore-errors
(gnus-string-equal
(expand-file-name "news" (gnus-newsgroup-directory-form newsgroup)))
gnus-article-save-directory)))
+(defun gnus-sender-save-name (newsgroup headers &optional last-file)
+ "Generate file name from sender."
+ (let ((from (mail-header-from headers)))
+ (expand-file-name
+ (if (and from (string-match "\\([^ <]+\\)@" from))
+ (match-string 1 from)
+ "nobody")
+ gnus-article-save-directory)))
+
(defun article-verify-x-pgp-sig ()
"Verify X-PGP-Sig."
(interactive)
;;; Group Customization:
(defconst gnus-group-parameters
- '((to-address (gnus-email-address :tag "To Address") "\
-This will be used when doing followups and posts.
-
-This is primarily useful in mail groups that represent closed
-mailing lists--mailing lists where it's expected that everybody that
-writes to the mailing list is subscribed to it. Since using this
-parameter ensures that the mail only goes to the mailing list itself,
-it means that members won't receive two copies of your followups.
-
-Using `to-address' will actually work whether the group is foreign or
-not. Let's say there's a group on the server that is called
-`fa.4ad-l'. This is a real newsgroup, but the server has gotten the
-articles from a mail-to-news gateway. Posting directly to this group
-is therefore impossible--you have to send mail to the mailing list
-address instead.
-
-The gnus-group-split mail splitting mechanism will behave as if this
-address was listed in gnus-group-split Addresses (see below).")
-
- (to-list (gnus-email-address :tag "To List") "\
-This address will be used when doing a `a' in the group.
-
-It is totally ignored when doing a followup--except that if it is
-present in a news group, you'll get mail group semantics when doing
-`f'.
-
-The gnus-group-split mail splitting mechanism will behave as if this
-address was listed in gnus-group-split Addresses (see below).")
-
- (extra-aliases (choice
+ '((extra-aliases (choice
:tag "Extra Aliases"
(list
:tag "List"
:doc ,(nth 2 entry)
(const :format "" ,(nth 0 entry))
,(nth 1 entry)))
- (append gnus-group-parameters
- (reverse gnus-group-parameters-more)
+ (append (reverse gnus-group-parameters-more)
+ gnus-group-parameters
(if group
gnus-extra-group-parameters
gnus-extra-topic-parameters)))))
(- total (length articles)) total)))
(gnus-draft-send article)))))))
+;;;###autoload
+(defun gnus-draft-reminder ()
+ "Reminder user if there are unsent drafts."
+ (interactive)
+ (if (gnus-alive-p)
+ (let (active)
+ (catch 'continue
+ (dolist (group '("nndraft:drafts" "nndraft:queue"))
+ (setq active (gnus-activate-group group))
+ (if (and active (>= (cdr active) (car active)))
+ (if (y-or-n-p "There are unsent drafts. Continue?")
+ (throw 'continue t)
+ (error "Stop!"))))))))
+
;;; Utility functions
(defcustom gnus-draft-decoding-function
to-address to-group mailing-list to-list
newsgroup-p)
(when group
- (setq to-address (gnus-group-find-parameter group 'to-address)
+ (setq to-address (gnus-parameter-to-address group)
to-group (gnus-group-find-parameter group 'to-group)
- to-list (gnus-group-find-parameter group 'to-list)
+ to-list (gnus-parameter-to-list group)
newsgroup-p (gnus-group-find-parameter group 'newsgroup)
mailing-list (when gnus-mailing-list-groups
(string-match gnus-mailing-list-groups group))
(require 'product)
(provide 'gnus-vers)
-(defconst gnus-revision-number "06"
+(defconst gnus-revision-number "07"
"Revision number for this version of gnus.")
;; Product information of this gnus.
integer))
(gnus-define-group-parameter
+ to-address
+ :function-document
+ "Return GROUP's to-address."
+ :variable-document
+ "*Alist of group regexps and correspondent to-addresses."
+ :parameter-type '(gnus-email-address :tag "To Address")
+ :parameter-document "\
+This will be used when doing followups and posts.
+
+This is primarily useful in mail groups that represent closed
+mailing lists--mailing lists where it's expected that everybody that
+writes to the mailing list is subscribed to it. Since using this
+parameter ensures that the mail only goes to the mailing list itself,
+it means that members won't receive two copies of your followups.
+
+Using `to-address' will actually work whether the group is foreign or
+not. Let's say there's a group on the server that is called
+`fa.4ad-l'. This is a real newsgroup, but the server has gotten the
+articles from a mail-to-news gateway. Posting directly to this group
+is therefore impossible--you have to send mail to the mailing list
+address instead.
+
+The gnus-group-split mail splitting mechanism will behave as if this
+address was listed in gnus-group-split Addresses (see below).")
+
+(gnus-define-group-parameter
+ to-list
+ :function-document
+ "Return GROUP's to-list."
+ :variable-document
+ "*Alist of group regexps and correspondent to-lists."
+ :parameter-type '(gnus-email-address :tag "To List")
+ :parameter-document "\
+This address will be used when doing a `a' in the group.
+
+It is totally ignored when doing a followup--except that if it is
+present in a news group, you'll get mail group semantics when doing
+`f'.
+
+The gnus-group-split mail splitting mechanism will behave as if this
+address was listed in gnus-group-split Addresses (see below).")
+
+(gnus-define-group-parameter
auto-expire
:type bool
:function gnus-group-auto-expirable-p
(goto-char (point-min))
(re-search-forward
(concat "^" (regexp-quote mail-header-separator) "$"))
+ (forward-line 1)
(while (and
- (progn
- (end-of-line)
- (< (current-column) 80))
+ (or (looking-at
+ mime-edit-tag-regexp)
+ (let ((p (point)))
+ (end-of-line)
+ (< (- (point) p) 80)))
(zerop (forward-line 1))))
(or (bolp)
(eobp)
(defun mm-mime-charset (charset)
"Return the MIME charset corresponding to the MULE CHARSET."
(if (eq charset 'unknown)
- (error "8-bit characters are found in the message, please specify charset."))
+ (error "The message contains non-printable characters, please use attachment."))
(if (and (fboundp 'coding-system-get) (fboundp 'get-charset-property))
;; This exists in Emacs 20.
(or