+Sat Jul 3 07:35:35 1999 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
+
+ * gnus.el: Pterodactyl Gnus v0.90 is released.
+
+1999-07-03 09:31:10 Sven Fischer <herpes@kawo2.rwth-aachen.de>
+
+ * mailcap.el (mailcap-possible-viewers): Use string=.
+
+1999-07-01 Shenghuo ZHU <zsh@cs.rochester.edu>
+
+ * mm-uu.el (mm-uu-forward-begin-line): New variable.
+ (mm-uu-forward-end-line): New variable.
+ (mm-uu-begin-line): Handle forwarded message.
+ (mm-uu-identifier-alist): Ditto.
+ (mm-uu-dissect): Ditto.
+
+1999-06-29 Shenghuo ZHU <zsh@cs.rochester.edu>
+
+ * lpath.el: Two free variables.
+
+1999-07-02 Shenghuo ZHU <zsh@cs.rochester.edu>
+
+ * nnheader.el (nnheader-file-coding-system): Use raw-text.
+ * gnus-agent.el (gnus-agent-file-coding-system): Ditto.
+ * gnus-cache.el (gnus-cache-coding-system): Ditto.
+
+ * nnfolder.el (nnfolder-file-coding-system): Use mm-text-coding-system.
+ (nnfolder-file-coding-system-for-write): New variable.
+ (nnfolder-active-file-coding-system): New variable.
+ (nnfolder-active-file-coding-system-for-write): New variable.
+ (nnfolder-save-active): New function.
+ (nnfolder-save-buffer): Use them.
+ (nnfolder-possibly-change-group): Ditto.
+ (nnfolder-request-list-newsgroups): Ditto.
+ (nnfolder-request-create-group): Ditto.
+ (nnfolder-request-expire-articles): Ditto.
+ (nnfolder-request-move-article): Ditto.
+ (nnfolder-request-accept-article): Ditto.
+ (nnfolder-request-delete-group): Ditto.
+ (nnfolder-request-rename-group): Ditto.
+ (nnfolder-possibly-change-folder): Ditto.
+ (nnfolder-read-folder): Ditto.
+ (nnfolder-request-list): Remove pathname-coding-system.
+ (nnfolder-possibly-change-group): Use nnmail-pathname-coding-system.
+
+ * nnmail.el (nnmail-file-coding-system): Use raw-text.
+ (nnmail-file-coding-system-1): Removed.
+ (nnmail-find-file): Use nnmail-pathname-coding-system.
+ (nnmail-write-region): Ditto.
+
+ * nnmbox.el (nnmbox-file-coding-system): New variable.
+ (nnmbox-file-coding-system-for-write): New variable.
+ (nnmbox-active-file-coding-system): New variable.
+ (nnmbox-active-file-coding-system-for-write): New variable.
+ (nnmbox-save-buffer): New function.
+ (nnmbox-save-active): New function.
+ (nnmbox-request-scan): Use them.
+ (nnmbox-request-expire-articles): Ditto.
+ (nnmbox-request-move-article): Ditto.
+ (nnmbox-request-accept-article): Ditto.
+ (nnmbox-request-replace-article): Ditto.
+ (nnmbox-request-delete-group): Ditto.
+ (nnmbox-request-rename-group): Ditto.
+ (nnmbox-request-create-group): Ditto.
+
+ * mm-util.el (mm-text-coding-system): raw-text or -dos.
+ (mm-running-ntemacs): Removed.
+
+ * nnml.el (nnml-file-coding-system): Use nnmail-file-coding-system.
+
+1999-07-02 Shenghuo ZHU <zsh@cs.rochester.edu>
+
+ * nnfolder.el (nnfolder-read-folder): Use nnheader-file-coding-system.
+
+1999-07-01 Shenghuo ZHU <zsh@cs.rochester.edu>
+
+ * qp.el (quoted-printable-encoding-characters): Support lower case.
+
+1999-07-01 Shenghuo ZHU <zsh@cs.rochester.edu>
+
+ * rfc2047.el (rfc2047-encode): Fold before B-encoding.
+ (rfc2047-b-encode-region): Encode line by line.
+
+1999-07-03 09:20:16 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * mm-util.el (mm-find-mime-charset-region): Fix.
+
+1999-06-30 KOSEKI Yoshinori <kose@yk.NetLaputa.ne.jp>
+
+ * mm-util.el (mm-mime-mule-charset-alist): Fix iso-2022-jp(-2) bug.
+ (mm-find-mime-charset-region): Ditto.
+
+1999-07-03 09:15:35 Simon Josefsson <jas@pdc.kth.se>
+
+ * gnus-sum.el (gnus-summary-move-article): Fix something or
+ other.
+
+1999-06-29 Shenghuo ZHU <zsh@cs.rochester.edu>
+
+ * gnus-sum.el (gnus-newsgroup-ephemeral-charset): New variable.
+ (gnus-newsgroup-ephemeral-ignored-charsets): New variable.
+ (gnus-summary-enter-digest-group): Use them.
+ (gnus-summary-setup-default-charset): Ditto.
+
+1999-06-15 Shenghuo ZHU <zsh@cs.rochester.edu>
+
+ * base64.el (base64-run-command-on-region): Use unibyte buffer.
+
+1999-06-15 Shenghuo ZHU <zsh@cs.rochester.edu>
+
+ * gnus-msg.el (gnus-configure-posting-styles): Fix bug when
+ gnus-newsgroup-name is nil.
+
+1999-06-15 Shenghuo ZHU <zsh@cs.rochester.edu>
+
+ * rfc2047.el (rfc2047-encode): Chop the tail newline.
+
+1999-06-15 Shenghuo ZHU <zsh@cs.rochester.edu>
+
+ * gnus-art.el (article-emphasize): Use correct
+ gnus-article-emphasis-alist.
+
+1999-06-15 Shenghuo ZHU <zsh@cs.rochester.edu>
+
+ * mm-view.el (mm-inline-text): Fix text/html bug.
+
Mon Jun 28 17:54:01 1999 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
* gnus.el: Pterodactyl Gnus v0.89 is released.
(setq p (cdr p)))
v))
+(defvar base64-binary-coding-system 'binary)
+
(defun base64-run-command-on-region (start end output-buffer command
&rest arg-list)
- (let ((tempfile nil) status errstring default-process-coding-system)
+ (let ((tempfile nil) status errstring default-process-coding-system
+ (coding-system-for-write base64-binary-coding-system)
+ (coding-system-for-read base64-binary-coding-system))
(unwind-protect
(progn
(setq tempfile (make-temp-name "base64"))
(if (or (null buffer) (eq buffer (current-buffer)))
(insert-char char count)
(with-current-buffer buffer
- (insert-char char count)))))
+ (insert-char char count))))
+ (setq base64-binary-coding-system 'no-conversion))
(defun base64-decode-region (start end)
(interactive "r")
(defvar gnus-agent-spam-hashtb nil)
(defvar gnus-agent-file-name nil)
(defvar gnus-agent-send-mail-function nil)
-(defvar gnus-agent-file-coding-system 'binary)
+(defvar gnus-agent-file-coding-system 'raw-text)
(defconst gnus-agent-scoreable-headers
'("subject" "from" "date" "message-id" "references" "chars" "lines" "xref")
(interactive (gnus-article-hidden-arg))
(unless (gnus-article-check-hidden-text 'emphasis arg)
(save-excursion
- (let ((alist (or gnus-article-emphasis-alist gnus-emphasis-alist))
+ (let ((alist (or (with-current-buffer gnus-summary-buffer
+ gnus-article-emphasis-alist)
+ gnus-emphasis-alist))
(buffer-read-only nil)
(props (append '(article-type emphasis)
gnus-hidden-properties))
(defvar gnus-cache-overview-coding-system 'raw-text
"Coding system used on Gnus cache files.")
-(defvar gnus-cache-coding-system 'binary
+(defvar gnus-cache-coding-system 'raw-text
"Coding system used on Gnus cache files.")
\f
(when (cond
((stringp match)
;; Regexp string match on the group name.
- (string-match match gnus-newsgroup-name))
+ (string-match match group))
((or (symbolp match)
(gnus-functionp match))
(cond
(defvar gnus-last-article nil)
(defvar gnus-newsgroup-history nil)
(defvar gnus-newsgroup-charset nil)
+(defvar gnus-newsgroup-ephemeral-charset nil)
+(defvar gnus-newsgroup-ephemeral-ignored-charsets nil)
(defconst gnus-summary-local-variables
'(gnus-newsgroup-name
(delete-matching-lines "^\\(Path\\):\\|^From ")
(widen))
(unwind-protect
- (if (gnus-group-read-ephemeral-group
- name `(nndoc ,name (nndoc-address ,(get-buffer dig))
- (nndoc-article-type
- ,(if force 'digest 'guess))) t)
- ;; Make all postings to this group go to the parent group.
+ (if (let ((gnus-newsgroup-ephemeral-charset gnus-newsgroup-charset)
+ (gnus-newsgroup-ephemeral-ignored-charsets
+ gnus-newsgroup-ignored-charsets))
+ (gnus-group-read-ephemeral-group
+ name `(nndoc ,name (nndoc-address ,(get-buffer dig))
+ (nndoc-article-type
+ ,(if force 'digest 'guess))) t))
+ ;; Make all postings to this group go to the parent group.
(nconc (gnus-info-params (gnus-get-info name))
params)
;; Couldn't select this doc group.
(entry
(gnus-gethash pto-group gnus-newsrc-hashtb))
(info (nth 2 entry))
- (to-group (gnus-info-group info)))
+ (to-group (gnus-info-group info))
+ to-marks)
;; Update the group that has been moved to.
(when (and info
(memq action '(move copy)))
(push to-group to-groups))
(unless (memq article gnus-newsgroup-unreads)
+ (push 'read to-marks)
(gnus-info-set-read
info (gnus-add-to-range (gnus-info-read info)
(list (cdr art-group)))))
(when (memq article (symbol-value
(intern (format "gnus-newsgroup-%s"
(caar marks)))))
+ (push (cdar marks) to-marks)
;; If the other group is the same as this group,
;; then we have to add the mark to the list.
(when (equal to-group gnus-newsgroup-name)
to-group (cdar marks) (list to-article) info))
(setq marks (cdr marks)))
+ (gnus-request-set-mark to-group (list (list (list to-article)
+ 'set
+ to-marks)))
+
(gnus-dribble-enter
(concat "(gnus-group-set-info '"
(gnus-prin1-to-string (gnus-get-info to-group))
(let* ((name (and gnus-newsgroup-name
(gnus-group-real-name gnus-newsgroup-name)))
(ignored-charsets
- (append
- (and gnus-newsgroup-name
- (or (gnus-group-find-parameter gnus-newsgroup-name
- 'ignored-charsets t)
- (let ((alist gnus-group-ignored-charsets-alist)
- elem (charsets nil))
- (while (setq elem (pop alist))
- (when (and name
- (string-match (car elem) name))
- (setq alist nil
- charsets (cdr elem))))
- charsets)))
- gnus-newsgroup-ignored-charsets)))
+ (or gnus-newsgroup-ephemeral-ignored-charsets
+ (append
+ (and gnus-newsgroup-name
+ (or (gnus-group-find-parameter gnus-newsgroup-name
+ 'ignored-charsets t)
+ (let ((alist gnus-group-ignored-charsets-alist)
+ elem (charsets nil))
+ (while (setq elem (pop alist))
+ (when (and name
+ (string-match (car elem) name))
+ (setq alist nil
+ charsets (cdr elem))))
+ charsets))))
+ gnus-newsgroup-ignored-charsets)))
(setq gnus-newsgroup-charset
- (or (and gnus-newsgroup-name
+ (or gnus-newsgroup-ephemeral-charset
+ (and gnus-newsgroup-name
(or (gnus-group-find-parameter gnus-newsgroup-name
'charset)
(let ((alist gnus-group-charset-alist)
:link '(custom-manual "(gnus)Exiting Gnus")
:group 'gnus)
-(defconst gnus-version-number "0.89"
+(defconst gnus-version-number "0.90"
"Version number for this version of Gnus.")
(defconst gnus-version (format "Pterodactyl Gnus v%s" gnus-version-number)
enable-multibyte-characters browse-url-browser-function
adaptive-fill-first-line-regexp adaptive-fill-regexp
url-current-mime-headers help-echo-owns-message
+ w3-meta-content-type-charset-regexp
+ w3-meta-charset-content-type-regexp
babel-translations babel-history))
(maybe-fbind '(color-instance-rgb-components temp-directory
glyph-width annotation-glyph window-pixel-width glyph-height
mm-copy-tree url-view-url w3-prepare-buffer
mule-write-region-no-coding-system char-int
annotationp delete-annotation make-image-specifier
- make-annotation
+ make-annotation events-to-keys
w3-do-setup w3-region
w3-coding-system-for-mime-charset
rmail-summary-exists rmail-select-summary rmail-update-summary
(cond
((equal (car (car major)) minor)
(setq exact (cons (cdr (car major)) exact)))
- ((and minor (string-match (car (car major)) minor))
+ ((and minor (string= (car (car major)) minor))
(setq wildcard (cons (cdr (car major)) wildcard))))
(setq major (cdr major)))
(nconc (nreverse exact) (nreverse wildcard))))
;;; Code:
-(defvar mm-running-xemacs (string-match "XEmacs" emacs-version))
+(defconst mm-running-xemacs (string-match "XEmacs" emacs-version))
-(defvar mm-running-ntemacs
- (and (not mm-running-xemacs)
- (string-match "nt\\|windows" system-configuration)))
-
-(defvar mm-binary-coding-system
+(defconst mm-binary-coding-system
(if mm-running-xemacs
'binary 'no-conversion)
"100% binary coding system.")
-(defvar mm-text-coding-system
- (cond
- ((not (fboundp 'coding-system-p)) nil)
- (mm-running-xemacs ;; XEmacs
- 'no-conversion)
- (mm-running-ntemacs ;; NTEmacs
- (and (coding-system-p 'raw-text-dos) 'raw-text-dos))
- ((coding-system-p 'raw-text) 'raw-text) ;; Emacs
- (t nil))
- "100% text coding system, for removing ^M.")
+(defconst mm-text-coding-system
+ (and (fboundp 'coding-system-list)
+ (if (memq system-type '(windows-nt ms-dos ms-windows))
+ 'raw-text-dos 'raw-text))
+ "Text-safe coding system (For removing ^M).")
(defvar mm-mime-mule-charset-alist
'((us-ascii ascii)
(iso-8859-8 hebrew-iso8859-8)
(iso-8859-9 latin-iso8859-9)
(viscii vietnamese-viscii-lower)
- (iso-2022-jp-2 japanese-jisx0208)
- (iso-2022-jp latin-jisx0201
- japanese-jisx0208-1978)
+ (iso-2022-jp latin-jisx0201 japanese-jisx0208 japanese-jisx0208-1978)
(euc-kr korean-ksc5601)
(cn-gb-2312 chinese-gb2312)
(cn-big5 chinese-big5-1 chinese-big5-2)
(mapcar 'mm-mime-charset
(delq 'ascii
(mm-find-charset-region b e)))))
+ (when (memq 'iso-2022-jp-2 charsets)
+ (setq charsets (delq 'iso-2022-jp charsets)))
(delete-duplicates charsets)))
(defsubst mm-multibyte-p ()
;;; mm-uu.el -- Return uu stuffs as mm handles
-;; Copyright (c) 1998 by Shenghuo Zhu <zsh@cs.rochester.edu>
+;; Copyright (c) 1998,99 by Shenghuo Zhu
;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
-;; $Revision: 5.9 $
-;; Keywords: news postscript uudecode binhex shar
+;; Keywords: postscript uudecode binhex shar forward
+
+;; This file is part of pgnus.
-;; This file is not part of GNU Emacs, but the same permissions
-;; apply.
-;;
;; GNU Emacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
-;;
+
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.
;;; Commentary:
-;;
+
;;; Code:
+(require 'mail-parse)
+(require 'message)
+(require 'nnheader)
+(require 'mm-decode)
+(require 'mailcap)
+
(eval-and-compile
(autoload 'binhex-decode-region "binhex")
(autoload 'binhex-decode-region-external "binhex")
(defconst mm-uu-shar-begin-line "^#! */bin/sh")
(defconst mm-uu-shar-end-line "^exit 0")
-(defvar mm-uu-begin-line
+;;; Thanks to Edward J. Sabol <sabol@alderaan.gsfc.nasa.gov> and
+;;; Peter von der Ah\'e <pahe@daimi.au.dk>
+(defconst mm-uu-forward-begin-line "^-+ \\(Start of \\)?Forwarded message")
+(defconst mm-uu-forward-end-line "^-+ End of forwarded message")
+
+(defconst mm-uu-begin-line
(concat mm-uu-postscript-begin-line "\\|"
mm-uu-uu-begin-line "\\|"
mm-uu-binhex-begin-line "\\|"
- mm-uu-shar-begin-line))
+ mm-uu-shar-begin-line "\\|"
+ mm-uu-forward-begin-line))
-(defvar mm-uu-identifier-alist
- '((?% . postscript) (?b . uu) (?: . binhex) (?# . shar)))
+(defconst mm-uu-identifier-alist
+ '((?% . postscript) (?b . uu) (?: . binhex) (?# . shar)
+ (?- . forward)))
(defvar mm-dissect-disposition "inline"
"The default disposition of uu parts.
(defun mm-uu-dissect ()
"Dissect the current buffer and return a list of uu handles."
(let (ct ctl cte charset text-start start-char end-char
- type file-name end-line result text-plain-type)
+ type file-name end-line result text-plain-type
+ start-char-1 end-char-1
+ (case-fold-search t))
(save-excursion
(save-restriction
(mail-narrow-to-head)
(if charset
(list (cons 'charset charset)))))
(while (re-search-forward mm-uu-begin-line nil t)
- (beginning-of-line)
- (setq start-char (point))
+ (setq start-char (match-beginning 0))
(forward-line) ;; in case of failure
+ (setq start-char-1 (point))
(setq type (cdr (assq (aref (match-string 0) 0)
mm-uu-identifier-alist)))
(setq file-name
(intern (concat "mm-uu-" (symbol-name type)
"-end-line"))))
(when (re-search-forward end-line nil t)
+ (setq end-char-1 (match-beginning 0))
(forward-line)
(setq end-char (point))
(when (or (not (eq type 'binhex))
((eq type 'postscript)
(mm-make-handle (mm-uu-copy-to-buffer start-char end-char)
'("application/postscript")))
+ ((eq type 'forward)
+ (mm-make-handle (mm-uu-copy-to-buffer start-char-1 end-char-1)
+ '("message/rfc822")))
((eq type 'uu)
(mm-make-handle (mm-uu-copy-to-buffer start-char end-char)
(list (or (and file-name
(mail-narrow-to-head)
(goto-char (point-max)))
(forward-line)
- (let (type end-line result)
+ (let (type end-line result
+ (case-fold-search t))
(while (and (not result) (re-search-forward mm-uu-begin-line nil t))
(forward-line)
(setq type (cdr (assq (aref (match-string 0) 0)
(buffer-substring-no-properties
(match-beginning 2)
(match-end 2)))))
- (mm-decode-body charset)
+ (delete-region (point-min) (point-max))
+ (insert (mm-decode-string text charset))
(save-window-excursion
(save-restriction
(let ((w3-strict-width width)
(defvoo nnfolder-buffer-alist nil)
(defvoo nnfolder-scantime-alist nil)
(defvoo nnfolder-active-timestamp nil)
-(defvoo nnfolder-file-coding-system nnmail-file-coding-system-1)
+(defvoo nnfolder-active-file-coding-system mm-text-coding-system)
+(defvoo nnfolder-active-file-coding-system-for-write
+ nnmail-active-file-coding-system)
+(defvoo nnfolder-file-coding-system mm-text-coding-system)
+(defvoo nnfolder-file-coding-system-for-write nnheader-file-coding-system
+ "Coding system for save nnfolder file.
+If NIL, NNFOLDER-FILE-CODING-SYSTEM is used.")
\f
(when group
(unless (assoc group nnfolder-group-alist)
(push (list group (cons 1 0)) nnfolder-group-alist)
- (nnmail-save-active nnfolder-group-alist nnfolder-active-file)
+ (nnfolder-save-active nnfolder-group-alist nnfolder-active-file)
(nnfolder-read-folder group)))
t)
(deffoo nnfolder-request-list (&optional server)
(nnfolder-possibly-change-group nil server)
(save-excursion
- (let ((nnmail-file-coding-system nnmail-active-file-coding-system)
- (pathname-coding-system 'binary))
+ (let ((nnmail-file-coding-system nnfolder-active-file-coding-system))
(nnmail-find-file nnfolder-active-file)
(setq nnfolder-group-alist (nnmail-get-active)))
t))
(deffoo nnfolder-request-list-newsgroups (&optional server)
(nnfolder-possibly-change-group nil server)
(save-excursion
- (nnmail-find-file nnfolder-newsgroups-file)))
+ (let ((nnmail-file-coding-system nnfolder-file-coding-system))
+ (nnmail-find-file nnfolder-newsgroups-file))))
(deffoo nnfolder-request-expire-articles
(articles newsgroup &optional server force)
(nnheader-message 5 "Deleting articles...done"))
(nnfolder-save-buffer)
(nnfolder-adjust-min-active newsgroup)
- (nnmail-save-active nnfolder-group-alist nnfolder-active-file)
+ (nnfolder-save-active nnfolder-group-alist nnfolder-active-file)
(nconc rest articles))))
(deffoo nnfolder-request-move-article (article group server
(when last
(nnfolder-save-buffer)
(nnfolder-adjust-min-active group)
- (nnmail-save-active nnfolder-group-alist nnfolder-active-file))))
+ (nnfolder-save-active nnfolder-group-alist nnfolder-active-file))))
result)))
(deffoo nnfolder-request-accept-article (group &optional server last)
(nnfolder-save-buffer)
(when nnmail-cache-accepted-message-ids
(nnmail-cache-close)))))
- (nnmail-save-active nnfolder-group-alist nnfolder-active-file)
+ (nnfolder-save-active nnfolder-group-alist nnfolder-active-file)
(unless result
(nnheader-report 'nnfolder "Couldn't store article"))
result)))
nnfolder-current-group nil
nnfolder-current-buffer nil)
;; Save the active file.
- (nnmail-save-active nnfolder-group-alist nnfolder-active-file)
+ (nnfolder-save-active nnfolder-group-alist nnfolder-active-file)
t)
(deffoo nnfolder-request-rename-group (group new-name &optional server)
(setq nnfolder-current-buffer nil
nnfolder-current-group nil)
;; Save the new group alist.
- (nnmail-save-active nnfolder-group-alist nnfolder-active-file)
+ (nnfolder-save-active nnfolder-group-alist nnfolder-active-file)
;; We kill the buffer instead of renaming it and stuff.
(kill-buffer (current-buffer))
t))))
;; Change group.
(when (and group
(not (equal group nnfolder-current-group)))
- (let ((pathname-coding-system 'binary))
+ (let ((pathname-coding-system nnmail-pathname-coding-system))
(nnmail-activate 'nnfolder)
(when (and (not (assoc group nnfolder-group-alist))
(not (file-exists-p
(nnfolder-group-pathname group))))
;; The group doesn't exist, so we create a new entry for it.
(push (list group (cons 1 0)) nnfolder-group-alist)
- (nnmail-save-active nnfolder-group-alist nnfolder-active-file))
+ (nnfolder-save-active nnfolder-group-alist nnfolder-active-file))
(if dont-check
(setq nnfolder-current-group group
;; See whether we need to create the new file.
(unless (file-exists-p file)
(gnus-make-directory (file-name-directory file))
- (nnmail-write-region 1 1 file t 'nomesg))
+ (let ((nnmail-file-coding-system
+ (or nnfolder-file-coding-system-for-write
+ nnfolder-file-coding-system-for-write)))
+ (nnmail-write-region 1 1 file t 'nomesg)))
(when (setq nnfolder-current-buffer (nnfolder-read-folder group))
(set-buffer nnfolder-current-buffer)
(push (list group nnfolder-current-buffer)
(when inf
(setq nnfolder-buffer-alist (delq inf nnfolder-buffer-alist)))
(when nnfolder-group-alist
- (nnmail-save-active nnfolder-group-alist nnfolder-active-file))
+ (nnfolder-save-active nnfolder-group-alist nnfolder-active-file))
(push (list group (nnfolder-read-folder group))
nnfolder-buffer-alist))))
(defun nnfolder-read-folder (group)
(let* ((file (nnfolder-group-pathname group))
(buffer (set-buffer
- (let ((nnmail-file-coding-system
+ (let ((nnheader-file-coding-system
nnfolder-file-coding-system))
(nnheader-find-file-noselect file)))))
(if (equal (cadr (assoc group nnfolder-scantime-alist))
(set-marker end nil)
;; Make absolutely sure that the active list reflects reality!
- (nnmail-save-active nnfolder-group-alist nnfolder-active-file)
+ (nnfolder-save-active nnfolder-group-alist nnfolder-active-file)
;; Set the scantime for this group.
(setq newscantime (visited-file-modtime))
(if scantime
(when (buffer-modified-p)
(run-hooks 'nnfolder-save-buffer-hook)
(gnus-make-directory (file-name-directory (buffer-file-name)))
- (save-buffer)))
+ (let ((coding-system-for-write
+ (or nnfolder-file-coding-system-for-write
+ nnfolder-file-coding-system)))
+ (save-buffer))))
+
+(defun nnfolder-save-active (group-alist active-file)
+ (let ((nnmail-active-file-coding-system
+ (or nnfolder-active-file-coding-system-for-write
+ nnfolder-active-file-coding-system)))
+ (nnmail-save-active group-alist active-file)))
(provide 'nnfolder)
(when (string-match (car ange-ftp-path-format) path)
(ange-ftp-re-read-dir path)))))
-(defvar nnheader-file-coding-system 'binary
+(defvar nnheader-file-coding-system 'raw-text
"Coding system used in file backends of Gnus.")
(defun nnheader-insert-file-contents (filename &optional visit beg end replace)
(defun nnmail-request-post (&optional server)
(mail-send-and-exit nil))
-(defvar nnmail-file-coding-system 'binary
+(defvar nnmail-file-coding-system 'raw-text
"Coding system used in nnmail.")
-(defvar nnmail-file-coding-system-1
- (if (string-match "nt\\|windows" system-configuration)
- 'raw-text-dos 'binary)
- "Another coding system used in nnmail.")
-
(defvar nnmail-incoming-coding-system
mm-text-coding-system
"Coding system used in reading inbox")
+(defvar nnmail-pathname-coding-system 'binary
+ "*Coding system for pathname.")
+
(defun nnmail-find-file (file)
"Insert FILE in server buffer safely."
(set-buffer nntp-server-buffer)
(condition-case ()
(let ((coding-system-for-read nnmail-file-coding-system)
(auto-mode-alist (nnheader-auto-mode-alist))
- (pathname-coding-system nnmail-file-coding-system))
+ (pathname-coding-system nnmail-pathname-coding-system))
(insert-file-contents file)
t)
(file-error nil))))
-(defvar nnmail-pathname-coding-system 'binary
- "*Coding system for pathname.")
-
(defun nnmail-group-pathname (group dir &optional file)
"Make pathname for GROUP."
(concat
group-assoc)))
group-assoc))
-(defvar nnmail-active-file-coding-system 'binary
+(defvar nnmail-active-file-coding-system 'raw-text
"*Coding system for active file.")
(defun nnmail-save-active (group-assoc file-name)
(defun nnmail-write-region (start end filename &optional append visit lockname)
"Do a `write-region', and then set the file modes."
(let ((coding-system-for-write nnmail-file-coding-system)
- (pathname-coding-system 'binary))
+ (pathname-coding-system nnmail-pathname-coding-system))
(write-region start end filename append visit lockname)
(set-file-modes filename nnmail-default-file-modes)))
(defvoo nnmbox-group-alist nil)
(defvoo nnmbox-active-timestamp nil)
+(defvoo nnmbox-file-coding-system mm-text-coding-system)
+(defvoo nnmbox-file-coding-system-for-write nil)
+(defvoo nnmbox-active-file-coding-system mm-text-coding-system)
+(defvoo nnmbox-active-file-coding-system-for-write nil)
+
\f
;;; Interface functions
(1+ (- (cdr active) (car active)))
(car active) (cdr active) group)))))
+(defun nnmbox-save-buffer ()
+ (let ((coding-system-for-write
+ (or nnmbox-file-coding-system-for-write
+ nnmbox-file-coding-system)))
+ (save-buffer)))
+
+(defun nnmbox-save-active (group-alist active-file)
+ (let ((nnmail-active-file-coding-system
+ (or nnmbox-active-file-coding-system-for-write
+ nnmbox-active-file-coding-system)))
+ (nnmail-save-active group-alist active-file)))
+
(deffoo nnmbox-request-scan (&optional group server)
(nnmbox-possibly-change-newsgroup group server)
(nnmbox-read-mbox)
(lambda ()
(save-excursion
(set-buffer nnmbox-mbox-buffer)
- (save-buffer)))
+ (nnmbox-save-buffer)))
(file-name-directory nnmbox-mbox-file)
group
(lambda ()
(set-buffer nnmbox-mbox-buffer)
(goto-char (point-max))
(insert-buffer-substring in-buf)))
- (nnmail-save-active nnmbox-group-alist nnmbox-active-file))))
+ (nnmbox-save-active nnmbox-group-alist nnmbox-active-file))))
(deffoo nnmbox-close-group (group &optional server)
t)
(unless (assoc group nnmbox-group-alist)
(push (list group (cons 1 0))
nnmbox-group-alist)
- (nnmail-save-active nnmbox-group-alist nnmbox-active-file))
+ (nnmbox-save-active nnmbox-group-alist nnmbox-active-file))
t)
(deffoo nnmbox-request-list (&optional server)
(save-excursion
- (nnmail-find-file nnmbox-active-file)
+ (let ((nnmail-file-coding-system
+ nnmbox-active-file-coding-system))
+ (nnmail-find-file nnmbox-active-file))
(setq nnmbox-group-alist (nnmail-get-active))
t))
(nnmbox-delete-mail))
(push (car articles) rest)))
(setq articles (cdr articles)))
- (save-buffer)
+ (nnmbox-save-buffer)
;; Find the lowest active article in this group.
(let ((active (nth 1 (assoc newsgroup nnmbox-group-alist))))
(goto-char (point-min))
(<= (car active) (cdr active)))
(setcar active (1+ (car active)))
(goto-char (point-min))))
- (nnmail-save-active nnmbox-group-alist nnmbox-active-file)
+ (nnmbox-save-active nnmbox-group-alist nnmbox-active-file)
(nconc rest articles))))
(deffoo nnmbox-request-move-article
(goto-char (point-min))
(when (search-forward (nnmbox-article-string article) nil t)
(nnmbox-delete-mail))
- (and last (save-buffer))))
+ (and last (nnmbox-save-buffer))))
result))
(deffoo nnmbox-request-accept-article (group &optional server last)
(when last
(when nnmail-cache-accepted-message-ids
(nnmail-cache-close))
- (nnmail-save-active nnmbox-group-alist nnmbox-active-file)
- (save-buffer))))
+ (nnmbox-save-active nnmbox-group-alist nnmbox-active-file)
+ (nnmbox-save-buffer))))
result))
(deffoo nnmbox-request-replace-article (article group buffer)
nil
(nnmbox-delete-mail t t)
(insert-buffer-substring buffer)
- (save-buffer)
+ (nnmbox-save-buffer)
t)))
(deffoo nnmbox-request-delete-group (group &optional force server)
(setq found t)
(nnmbox-delete-mail))
(when found
- (save-buffer)))))
+ (nnmbox-save-buffer)))))
;; Remove the group from all structures.
(setq nnmbox-group-alist
(delq (assoc group nnmbox-group-alist) nnmbox-group-alist)
nnmbox-current-group nil)
;; Save the active file.
- (nnmail-save-active nnmbox-group-alist nnmbox-active-file)
+ (nnmbox-save-active nnmbox-group-alist nnmbox-active-file)
t)
(deffoo nnmbox-request-rename-group (group new-name &optional server)
(replace-match new-ident t t)
(setq found t))
(when found
- (save-buffer))))
+ (nnmbox-save-buffer))))
(let ((entry (assoc group nnmbox-group-alist)))
(when entry
(setcar entry new-name))
(setq nnmbox-current-group nil)
;; Save the new group alist.
- (nnmail-save-active nnmbox-group-alist nnmbox-active-file)
+ (nnmbox-save-active nnmbox-group-alist nnmbox-active-file)
t))
\f
(not (buffer-name nnmbox-mbox-buffer)))
(save-excursion
(set-buffer (setq nnmbox-mbox-buffer
- (nnheader-find-file-noselect
- nnmbox-mbox-file nil t)))
+ (let ((nnheader-file-coding-system
+ nnmbox-file-coding-system))
+ (nnheader-find-file-noselect
+ nnmbox-mbox-file nil t))))
(mm-enable-multibyte)
(buffer-disable-undo)))
(when (not nnmbox-group-alist)
(defun nnmbox-create-mbox ()
(when (not (file-exists-p nnmbox-mbox-file))
- (nnmail-write-region 1 1 nnmbox-mbox-file t 'nomesg)))
+ (let ((nnmail-file-coding-system
+ nnmbox-file-coding-system-for-write))
+ (nnmail-write-region 1 1 nnmbox-mbox-file t 'nomesg))))
(defun nnmbox-read-mbox ()
(nnmail-activate 'nnmbox)
(alist nnmbox-group-alist)
start end number)
(set-buffer (setq nnmbox-mbox-buffer
- (nnheader-find-file-noselect
- nnmbox-mbox-file nil t)))
+ (let ((nnheader-file-coding-system
+ nnmbox-file-coding-system))
+ (nnheader-find-file-noselect
+ nnmbox-mbox-file nil t))))
(mm-enable-multibyte)
(buffer-disable-undo)
(defvar nnml-nov-buffer-file-name nil)
-(defvoo nnml-file-coding-system nnmail-file-coding-system-1)
+(defvoo nnml-file-coding-system nnmail-file-coding-system)
\f
;;; Code:
(defvar quoted-printable-encoding-characters
- (mapcar 'identity "0123456789ABCDEF"))
+ (mapcar 'identity "0123456789ABCDEFabcdef"))
(defun quoted-printable-decode-region (from to)
"Decode quoted-printable in the region between FROM and TO."
(first t))
(save-restriction
(narrow-to-region b e)
- (mm-encode-coding-region b e mime-charset)
+ (when (eq encoding 'B)
+ ;; break into lines before encoding
+ (goto-char (point-min))
+ (while (not (eobp))
+ (goto-char (min (point-max) (+ 15 (point))))
+ (unless (eobp)
+ (insert "\n"))))
+ (mm-encode-coding-region (point-min) (point-max) mime-charset)
(funcall (cdr (assq encoding rfc2047-encoding-function-alist))
(point-min) (point-max))
(goto-char (point-min))
(defun rfc2047-b-encode-region (b e)
"Encode the header contained in REGION with the B encoding."
- (base64-encode-region b e t)
- (goto-char (point-min))
- (while (not (eobp))
- (goto-char (min (point-max) (+ 64 (point))))
- (unless (eobp)
- (insert "\n"))))
+ (save-restriction
+ (narrow-to-region (goto-char b) e)
+ (while (not (eobp))
+ (base64-encode-region (point) (progn (end-of-line) (point)) t)
+ (if (and (bolp) (eolp))
+ (delete-backward-char 1))
+ (forward-line))))
(defun rfc2047-q-encode-region (b e)
"Encode the header contained in REGION with the Q encoding."
@c \input texinfo @c -*-texinfo-*-
@setfilename gnus
-@settitle Pterodactyl Gnus 0.89 Manual
+@settitle Pterodactyl Gnus 0.90 Manual
@synindex fn cp
@synindex vr cp
@synindex pg cp
@tex
@titlepage
-@title Pterodactyl Gnus 0.89 Manual
+@title Pterodactyl Gnus 0.90 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 Pterodactyl Gnus 0.89.
+This manual corresponds to Pterodactyl Gnus 0.90.
@end ifinfo
are in the cache.
@item
AUTHINFO GENERIC
-@item
- support qmail maildir spools
@item
`run-with-idle-timer' in gnus-demon.
@item
\input texinfo @c -*-texinfo-*-
@setfilename message
-@settitle Pterodactyl Message 0.89 Manual
+@settitle Pterodactyl Message 0.90 Manual
@synindex fn cp
@synindex vr cp
@synindex pg cp
@tex
@titlepage
-@title Pterodactyl Message 0.89 Manual
+@title Pterodactyl Message 0.90 Manual
@author by Lars Magne Ingebrigtsen
@page
* Key Index:: List of Message mode keys.
@end menu
-This manual corresponds to Pterodactyl Message 0.89. Message is
+This manual corresponds to Pterodactyl Message 0.90. Message is
distributed with the Gnus distribution bearing the same version number
as this manual.