[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/gnus/nneething.el
From: |
Miles Bader |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/gnus/nneething.el |
Date: |
Sat, 04 Sep 2004 09:43:47 -0400 |
Index: emacs/lisp/gnus/nneething.el
diff -c emacs/lisp/gnus/nneething.el:1.6 emacs/lisp/gnus/nneething.el:1.7
*** emacs/lisp/gnus/nneething.el:1.6 Mon Sep 1 15:45:24 2003
--- emacs/lisp/gnus/nneething.el Sat Sep 4 13:13:43 2004
***************
*** 1,10 ****
;;; nneething.el --- arbitrary file access for Gnus
! ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000
;; Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <address@hidden>
! ;; Masanobu UMEDA <address@hidden>
;; Keywords: news, mail
;; This file is part of GNU Emacs.
--- 1,10 ----
;;; nneething.el --- arbitrary file access for Gnus
! ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
;; Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <address@hidden>
! ;; Masanobu UMEDA <address@hidden>
;; Keywords: news, mail
;; This file is part of GNU Emacs.
***************
*** 64,70 ****
(defvoo nneething-status-string "")
- (defvoo nneething-message-id-number 0)
(defvoo nneething-work-buffer " *nneething work*")
(defvoo nneething-group nil)
--- 64,69 ----
***************
*** 122,136 ****
(let ((file (unless (stringp id)
(nneething-file-name id)))
(nntp-server-buffer (or buffer nntp-server-buffer)))
! (and (stringp file) ; We did not request by
Message-ID.
(file-exists-p file) ; The file exists.
(not (file-directory-p file)) ; It's not a dir.
(save-excursion
! (nnmail-find-file file) ; Insert the file in the nntp buf.
(unless (nnheader-article-p) ; Either it's a real article...
! (goto-char (point-min))
! (nneething-make-head
! file (current-buffer)) ; ... or we fake some headers.
(insert "\n"))
t))))
--- 121,147 ----
(let ((file (unless (stringp id)
(nneething-file-name id)))
(nntp-server-buffer (or buffer nntp-server-buffer)))
! (and (stringp file) ; We did not request by Message-ID.
(file-exists-p file) ; The file exists.
(not (file-directory-p file)) ; It's not a dir.
(save-excursion
! (let ((nnmail-file-coding-system 'binary))
! (nnmail-find-file file)) ; Insert the file in the nntp buf.
(unless (nnheader-article-p) ; Either it's a real article...
! (let ((type
! (unless (file-directory-p file)
! (or (cdr (assoc (concat "." (file-name-extension file))
! mailcap-mime-extensions))
! "text/plain")))
! (charset
! (mm-detect-mime-charset-region (point-min) (point-max)))
! (encoding))
! (unless (string-match "\\`text/" type)
! (base64-encode-region (point-min) (point-max))
! (setq encoding "base64"))
! (goto-char (point-min))
! (nneething-make-head file (current-buffer)
! nil type charset encoding))
(insert "\n"))
t))))
***************
*** 234,240 ****
prev)
(while map
(if (and (member (cadr (car map)) files)
! ;; We also remove files that have changed mod times.
(equal (nth 5 (file-attributes
(nneething-file-name (cadr (car map)))))
(cadr (cdar map))))
--- 245,251 ----
prev)
(while map
(if (and (member (cadr (car map)) files)
! ;; We also remove files that have changed mod times.
(equal (nth 5 (file-attributes
(nneething-file-name (cadr (car map)))))
(cadr (cdar map))))
***************
*** 272,284 ****
(insert-buffer-substring nneething-work-buffer)
(goto-char (point-max))))
! (defun nneething-make-head (file &optional buffer)
"Create a head by looking at the file attributes of FILE."
(let ((atts (file-attributes file)))
(insert
! "Subject: " (file-name-nondirectory file) "\n"
! "Message-ID: <nneething-"
! (int-to-string (incf nneething-message-id-number))
"@" (system-name) ">\n"
(if (equal '(0 0) (nth 5 atts)) ""
(concat "Date: " (current-time-string (nth 5 atts)) "\n"))
--- 283,324 ----
(insert-buffer-substring nneething-work-buffer)
(goto-char (point-max))))
! (defun nneething-encode-file-name (file &optional coding-system)
! "Encode the name of the FILE in CODING-SYSTEM."
! (let ((pos 0) buf)
! (setq file (mm-encode-coding-string
! file (or coding-system nnmail-pathname-coding-system)))
! (while (string-match "[^-0-9a-zA-Z_:/.]" file pos)
! (setq buf (cons (format "%%%02x" (aref file (match-beginning 0)))
! (cons (substring file pos (match-beginning 0)) buf))
! pos (match-end 0)))
! (apply (function concat)
! (nreverse (cons (substring file pos) buf)))))
!
! (defun nneething-decode-file-name (file &optional coding-system)
! "Decode the name of the FILE is encoded in CODING-SYSTEM."
! (let ((pos 0) buf)
! (while (string-match "%\\([0-9a-fA-F][0-9a-fA-F]\\)" file pos)
! (setq buf (cons (string (string-to-number (match-string 1 file) 16))
! (cons (substring file pos (match-beginning 0)) buf))
! pos (match-end 0)))
! (decode-coding-string
! (apply (function concat)
! (nreverse (cons (substring file pos) buf)))
! (or coding-system nnmail-pathname-coding-system))))
!
! (defun nneething-get-file-name (id)
! "Extract the file name from the message ID string."
! (when (string-match "\\`<nneething-\\(address@hidden)@.*>\\'" id)
! (nneething-decode-file-name (match-string 1 id))))
!
! (defun nneething-make-head (file &optional buffer extra-msg
! mime-type mime-charset mime-encoding)
"Create a head by looking at the file attributes of FILE."
(let ((atts (file-attributes file)))
(insert
! "Subject: " (file-name-nondirectory file) (or extra-msg "") "\n"
! "Message-ID: <nneething-" (nneething-encode-file-name file)
"@" (system-name) ">\n"
(if (equal '(0 0) (nth 5 atts)) ""
(concat "Date: " (current-time-string (nth 5 atts)) "\n"))
***************
*** 297,302 ****
--- 337,355 ----
(concat "Lines: " (int-to-string
(count-lines (point-min) (point-max)))
"\n"))
+ "")
+ (if mime-type
+ (concat "Content-Type: " mime-type
+ (if mime-charset
+ (concat "; charset="
+ (if (stringp mime-charset)
+ mime-charset
+ (symbol-name mime-charset)))
+ "")
+ (if mime-encoding
+ (concat "\nContent-Transfer-Encoding: " mime-encoding)
+ "")
+ "\nMIME-Version: 1.0\n")
""))))
(defun nneething-from-line (uid &optional file)
***************
*** 344,367 ****
(nneething-make-head file) t)
(t
;; We examine the file.
! (nnheader-insert-head file)
! (if (nnheader-article-p)
! (delete-region
! (progn
! (goto-char (point-min))
! (or (and (search-forward "\n\n" nil t)
! (1- (point)))
! (point-max)))
! (point-max))
! (goto-char (point-min))
! (nneething-make-head file (current-buffer))
! (delete-region (point) (point-max)))
t))))
(defun nneething-file-name (article)
"Return the file name of ARTICLE."
(let ((dir (file-name-as-directory nneething-address))
! fname)
(if (numberp article)
(if (setq fname (cadr (assq article nneething-map)))
(expand-file-name fname dir)
--- 397,424 ----
(nneething-make-head file) t)
(t
;; We examine the file.
! (condition-case ()
! (progn
! (nnheader-insert-head file)
! (if (nnheader-article-p)
! (delete-region
! (progn
! (goto-char (point-min))
! (or (and (search-forward "\n\n" nil t)
! (1- (point)))
! (point-max)))
! (point-max))
! (goto-char (point-min))
! (nneething-make-head file (current-buffer))
! (delete-region (point) (point-max))))
! (file-error
! (nneething-make-head file (current-buffer) " (unreadable)")))
t))))
(defun nneething-file-name (article)
"Return the file name of ARTICLE."
(let ((dir (file-name-as-directory nneething-address))
! fname)
(if (numberp article)
(if (setq fname (cadr (assq article nneething-map)))
(expand-file-name fname dir)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] Changes to emacs/lisp/gnus/nneething.el,
Miles Bader <=