emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/gnus/nneething.el [emacs-unicode-2]


From: Miles Bader
Subject: [Emacs-diffs] Changes to emacs/lisp/gnus/nneething.el [emacs-unicode-2]
Date: Thu, 09 Sep 2004 06:02:59 -0400

Index: emacs/lisp/gnus/nneething.el
diff -c emacs/lisp/gnus/nneething.el:1.5.8.1 
emacs/lisp/gnus/nneething.el:1.5.8.2
*** emacs/lisp/gnus/nneething.el:1.5.8.1        Fri Mar 12 00:03:11 2004
--- emacs/lisp/gnus/nneething.el        Thu Sep  9 09:36:26 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)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]