Relicense "GPLv2 or later" files to "GPLv3 or later".
[gnus] / lisp / gnus-soup.el
index 5fcda57..f2aa34b 100644 (file)
@@ -1,7 +1,7 @@
 ;;; gnus-soup.el --- SOUP packet writing support for Gnus
 
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2002
-;;     Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;;   2005, 2006, 2007 Free Software Foundation, Inc.
 
 ;; Author: Per Abrahamsen <abraham@iesd.auc.dk>
 ;;     Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -11,7 +11,7 @@
 
 ;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
 ;; any later version.
 
 ;; GNU Emacs is distributed in the hope that it will be useful,
@@ -21,8 +21,8 @@
 
 ;; 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.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
 
 ;;; Commentary:
 
 (require 'gnus-start)
 (require 'gnus-range)
 
+(defgroup gnus-soup nil
+  "SOUP packet writing support for Gnus."
+  :group 'gnus)
+
 ;;; User Variables:
 
-(defvar gnus-soup-directory (nnheader-concat gnus-home-directory "SoupBrew/")
-  "*Directory containing an unpacked SOUP packet.")
+(defcustom gnus-soup-directory (nnheader-concat gnus-home-directory "SoupBrew/")
+  "Directory containing an unpacked SOUP packet."
+  :version "22.1" ;; Gnus 5.10.9
+  :type 'directory
+  :group 'gnus-soup)
 
-(defvar gnus-soup-replies-directory
+(defcustom gnus-soup-replies-directory
   (nnheader-concat gnus-soup-directory "SoupReplies/")
-  "*Directory where Gnus will do processing of replies.")
-
-(defvar gnus-soup-prefix-file "gnus-prefix"
-  "*Name of the file where Gnus stores the last used prefix.")
-
-(defvar gnus-soup-packer "tar cf - %s | gzip > $HOME/Soupout%d.tgz"
+  "Directory where Gnus will do processing of replies."
+  :version "22.1" ;; Gnus 5.10.9
+  :type 'directory
+  :group 'gnus-soup)
+
+(defcustom gnus-soup-prefix-file "gnus-prefix"
+  "Name of the file where Gnus stores the last used prefix."
+  :version "22.1" ;; Gnus 5.10.9
+  :type 'file
+  :group 'gnus-soup)
+
+(defcustom gnus-soup-packer "tar cf - %s | gzip > $HOME/Soupout%d.tgz"
   "Format string command for packing a SOUP packet.
 The SOUP files will be inserted where the %s is in the string.
 This string MUST contain both %s and %d.  The file number will be
-inserted where %d appears.")
-
-(defvar gnus-soup-unpacker "gunzip -c %s | tar xvf -"
-  "*Format string command for unpacking a SOUP packet.
-The SOUP packet file name will be inserted at the %s.")
-
-(defvar gnus-soup-packet-directory gnus-home-directory
-  "*Where gnus-soup will look for REPLIES packets.")
-
-(defvar gnus-soup-packet-regexp "Soupin"
-  "*Regular expression matching SOUP REPLIES packets in `gnus-soup-packet-directory'.")
-
-(defvar gnus-soup-ignored-headers "^Xref:"
-  "*Regexp to match headers to be removed when brewing SOUP packets.")
+inserted where %d appears."
+  :version "22.1" ;; Gnus 5.10.9
+  :type 'string
+  :group 'gnus-soup)
+
+(defcustom gnus-soup-unpacker "gunzip -c %s | tar xvf -"
+  "Format string command for unpacking a SOUP packet.
+The SOUP packet file name will be inserted at the %s."
+  :version "22.1" ;; Gnus 5.10.9
+  :type 'string
+  :group 'gnus-soup)
+
+(defcustom gnus-soup-packet-directory gnus-home-directory
+  "Where gnus-soup will look for REPLIES packets."
+  :version "22.1" ;; Gnus 5.10.9
+  :type 'directory
+  :group 'gnus-soup)
+
+(defcustom gnus-soup-packet-regexp "Soupin"
+  "Regular expression matching SOUP REPLIES packets in `gnus-soup-packet-directory'."
+  :version "22.1" ;; Gnus 5.10.9
+  :type 'regexp
+  :group 'gnus-soup)
+
+(defcustom gnus-soup-ignored-headers "^Xref:"
+  "Regexp to match headers to be removed when brewing SOUP packets."
+  :version "22.1" ;; Gnus 5.10.9
+  :type 'regexp
+  :group 'gnus-soup)
 
 ;;; Internal Variables:
 
@@ -154,11 +182,11 @@ move those articles instead."
                           gnus-soup-encoding-type
                           gnus-soup-index-type)
          (gnus-soup-area-set-number
-          area (1+ (or (gnus-soup-area-number area) 0))))
-       ;; Mark article as read.
-       (set-buffer gnus-summary-buffer)
+          area (1+ (or (gnus-soup-area-number area) 0)))
+         ;; Mark article as read.
+         (set-buffer gnus-summary-buffer)
+         (gnus-summary-mark-as-read (car articles) gnus-souped-mark))
        (gnus-summary-remove-process-mark (car articles))
-       (gnus-summary-mark-as-read (car articles) gnus-souped-mark)
        (setq articles (cdr articles)))
       (kill-buffer tmp-buf))
     (gnus-soup-save-areas)
@@ -278,7 +306,7 @@ Note -- this function hasn't been implemented yet."
 If NOT-ALL, don't pack ticked articles."
   (let ((gnus-expert-user t)
        (gnus-large-newsgroup nil)
-       (entry (gnus-gethash group gnus-newsrc-hashtb)))
+       (entry (gnus-group-entry group)))
     (when (or (null entry)
              (eq (car entry) t)
              (and (car entry)
@@ -349,17 +377,17 @@ If NOT-ALL, don't pack ticked articles."
         (packer (if (< (string-match "%s" packer)
                        (string-match "%d" packer))
                     (format packer files
-                            (string-to-int (gnus-soup-unique-prefix dir)))
+                            (string-to-number (gnus-soup-unique-prefix dir)))
                   (format packer
-                          (string-to-int (gnus-soup-unique-prefix dir))
+                          (string-to-number (gnus-soup-unique-prefix dir))
                           files)))
         (dir (expand-file-name dir)))
     (gnus-make-directory dir)
     (setq gnus-soup-areas nil)
     (gnus-message 4 "Packing %s..." packer)
-    (if (zerop (call-process shell-file-name
-                            nil nil nil shell-command-switch
-                            (concat "cd " dir " ; " packer)))
+    (if (eq 0 (call-process shell-file-name
+                           nil nil nil shell-command-switch
+                           (concat "cd " dir " ; " packer)))
        (progn
          (call-process shell-file-name nil nil nil shell-command-switch
                        (concat "cd " dir " ; rm " files))
@@ -385,7 +413,7 @@ though the two last may be nil if they are missing."
                        (and (eq (preceding-char) ?\t)
                             (gnus-soup-field))
                        (and (eq (preceding-char) ?\t)
-                            (string-to-int (gnus-soup-field))))
+                            (string-to-number (gnus-soup-field))))
                areas)
          (when (eq (preceding-char) ?\t)
            (beginning-of-line 2)))
@@ -496,10 +524,10 @@ Return whether the unpacking was successful."
   (gnus-make-directory dir)
   (gnus-message 4 "Unpacking: %s" (format unpacker packet))
   (prog1
-      (zerop (call-process
-             shell-file-name nil nil nil shell-command-switch
-             (format "cd %s ; %s" (expand-file-name dir)
-                     (format unpacker packet))))
+      (eq 0 (call-process
+            shell-file-name nil nil nil shell-command-switch
+            (format "cd %s ; %s" (expand-file-name dir)
+                    (format unpacker packet))))
     (gnus-message 4 "Unpacking...done")))
 
 (defun gnus-soup-send-packet (packet)
@@ -535,7 +563,7 @@ Return whether the unpacking was successful."
                (error "Bad header"))
              (forward-line 1)
              (setq beg (point)
-                   end (+ (point) (string-to-int
+                   end (+ (point) (string-to-number
                                    (buffer-substring
                                     (match-beginning 1) (match-end 1)))))
              (switch-to-buffer tmp-buf)
@@ -549,7 +577,7 @@ Return whether the unpacking was successful."
                (sit-for 1)
                (let ((message-syntax-checks
                       'dont-check-for-anything-just-trust-me)
-                     (method (if (message-functionp message-post-method)
+                     (method (if (functionp message-post-method)
                                  (funcall message-post-method)
                                message-post-method))
                      result)
@@ -582,4 +610,5 @@ Return whether the unpacking was successful."
 
 (provide 'gnus-soup)
 
+;;; arch-tag: eddfa69d-13e8-4aea-84ef-62a526ef185c
 ;;; gnus-soup.el ends here