*** empty log message ***
[gnus] / lisp / nngateway.el
index 5eb9bbb..6059dcf 100644 (file)
@@ -1,7 +1,9 @@
 ;;; nngateway.el --- posting news via mail gateways
-;; Copyright (C) 1996 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
+;;     Free Software Foundation, Inc.
+
+;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news, mail
 
 ;; This file is part of GNU Emacs.
@@ -25,6 +27,7 @@
 
 ;;; Code:
 
+(eval-when-compile (require 'cl))
 (require 'nnoo)
 (require 'message)
 
@@ -41,27 +44,30 @@ parameter -- the gateway address.")
 ;;; Interface functions
 
 (nnoo-define-basics nngateway)
-(nnoo-define-skeleton nngateway)
 
 (deffoo nngateway-open-server (server &optional defs)
   (if (nngateway-server-opened server)
       t
     (unless (assq 'nngateway-address defs)
-      (setq defs (append defs (list (list 'nntp-address server)))))
-    (nnoo-change-server 'nntp server defs)))
+      (setq defs (append defs (list (list 'nngateway-address server)))))
+    (nnoo-change-server 'nngateway server defs)))
 
 (deffoo nngateway-request-post (&optional server)
   (when (or (nngateway-server-opened server)
            (nngateway-open-server server))
     ;; Rewrite the header.
     (let ((buf (current-buffer)))
-      (nnheader-temp-write nil
+      (with-temp-buffer
        (insert-buffer-substring buf)
        (message-narrow-to-head)
        (funcall nngateway-header-transformation nngateway-address)
+       (goto-char (point-max))
+       (insert mail-header-separator "\n")
        (widen)
        (let (message-required-mail-headers)
-         (message-send-mail))))))
+         (funcall (or message-send-mail-real-function
+                      message-send-mail-function)))
+       t))))
 
 ;;; Internal functions
 
@@ -73,7 +79,16 @@ parameter -- the gateway address.")
     (goto-char (point-min))
     (insert "To: " (nnheader-replace-chars-in-string newsgroups ?. ?-)
            "@" gateway "\n")))
-    
+
+(defun nngateway-mail2news-header-transformation (gateway)
+  "Transform the headers for sending to a mail2news gateway."
+  (message-remove-header "to")
+  (message-remove-header "cc")
+  (goto-char (point-min))
+  (insert "To: " gateway "\n"))
+
+(nnoo-define-skeleton nngateway)
+
 (provide 'nngateway)
 
 ;;; nngateway.el ends here