Synch to No Gnus 200506270911.
[elisp/gnus.git-] / lisp / gnus-uu.el
index c6703be..0c3c919 100644 (file)
@@ -1,6 +1,6 @@
 ;;; gnus-uu.el --- extract (uu)encoded files in Gnus
 ;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, 2000,
-;;        2001, 2002, 2003 Free Software Foundation, Inc.
+;;        2001, 2002, 2003, 2004 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Created: 2 Oct 1993
@@ -479,7 +479,16 @@ didn't work, and overwrite existing files.  Otherwise, ask each time."
     (if (and n (not (numberp n)))
        (setq message-forward-as-mime (not message-forward-as-mime)
              n nil))
-    (let ((gnus-article-reply (gnus-summary-work-articles n)))
+    (let ((gnus-article-reply (gnus-summary-work-articles n))
+         gnus-newsgroup-processable)
+      (when (and (not n)
+                (= (length gnus-article-reply) 1))
+       ;; The case where neither a number of articles nor a region is
+       ;; specified.
+       (gnus-summary-top-thread)
+       (setq gnus-article-reply (gnus-uu-get-list-of-articles nil)))
+      ;; Specify articles to be forwarded.
+      (setq gnus-newsgroup-processable (copy-sequence gnus-article-reply))
       (gnus-setup-message 'forward
        (setq gnus-uu-digest-from-subject nil)
        (setq gnus-uu-digest-buffer
@@ -509,11 +518,11 @@ didn't work, and overwrite existing files.  Otherwise, ask each time."
                    "Various"))))
        (goto-char (point-min))
        (when (re-search-forward "^Subject: ")
-         (delete-region (point) (gnus-point-at-eol))
+         (delete-region (point) (point-at-eol))
          (insert subject))
        (goto-char (point-min))
        (when (re-search-forward "^From:")
-         (delete-region (point) (gnus-point-at-eol))
+         (delete-region (point) (point-at-eol))
          (insert " " from))
        (let ((message-forward-decoded-p t))
          (message-forward post))))
@@ -846,12 +855,12 @@ When called interactively, prompt for REGEXP."
          (save-restriction
            (set-buffer buffer)
            (let (buffer-read-only)
-             (gnus-set-text-properties (point-min) (point-max) nil)
+             (set-text-properties (point-min) (point-max) nil)
              ;; These two are necessary for XEmacs 19.12 fascism.
              (put-text-property (point-min) (point-max) 'invisible nil)
              (put-text-property (point-min) (point-max) 'intangible nil))
            (goto-char (point-min))
-           (re-search-forward "\n\n")
+           (search-forward "\n\n")
            (unless gnus-uu-digest-buffer
              ;; Quote all 30-dash lines.
              (save-excursion
@@ -915,8 +924,7 @@ When called interactively, prompt for REGEXP."
                (with-current-buffer gnus-uu-digest-buffer
                  (goto-char (point-max))
                  (insert-buffer "*gnus-uu-body*"))
-             (let ((file-name-coding-system nnmail-pathname-coding-system)
-                   (pathname-coding-system nnmail-pathname-coding-system))
+             (let ((file-name-coding-system nnmail-pathname-coding-system))
                (write-region-as-coding-system
                 nnheader-text-coding-system
                 (point-min) (point-max) gnus-uu-saved-article-name t)))))
@@ -1127,7 +1135,7 @@ When called interactively, prompt for REGEXP."
 
        ;; Expand numbers, sort, and return the list of article
        ;; numbers.
-       (mapcar (lambda (sub) (cdr sub))
+       (mapcar 'cdr
                (sort (gnus-uu-expand-numbers
                       list-of-subjects
                       (not do-not-translate))
@@ -1162,7 +1170,7 @@ When called interactively, prompt for REGEXP."
          (ignore-errors
            (replace-match
             (format "%06d"
-                    (string-to-int (buffer-substring
+                    (string-to-number (buffer-substring
                                     (match-beginning 0) (match-end 0)))))))
        (setq string (buffer-substring 1 (point-max)))
        (setcar (car string-list) string)
@@ -1383,7 +1391,7 @@ When called interactively, prompt for REGEXP."
          (setq part (match-string 0 subject))
          (setq subject (substring subject (match-end 0)))))
     (or part
-       (while (string-match "\\([0-9]+\\)[^0-9]+\\([0-9]+\\)" subject)
+       (while (string-match "[0-9]+[^0-9]+[0-9]+" subject)
          (setq part (match-string 0 subject))
          (setq subject (substring subject (match-end 0)))))
     (or part "")))
@@ -1685,8 +1693,7 @@ Gnus might fail to display all of it.")
 (defun gnus-uu-check-correct-stripped-uucode (start end)
   (save-excursion
     (let (found beg length)
-      (if (not gnus-uu-correct-stripped-uucode)
-         ()
+      (unless gnus-uu-correct-stripped-uucode
        (goto-char start)
 
        (if (re-search-forward " \\|`" end t)
@@ -1699,19 +1706,15 @@ Gnus might fail to display all of it.")
                  (forward-line 1))))
 
          (while (not (eobp))
-           (if (looking-at (concat gnus-uu-begin-string "\\|"
-                                   gnus-uu-end-string))
-               ()
+           (unless (looking-at (concat gnus-uu-begin-string "\\|"
+                                       gnus-uu-end-string))
              (when (not found)
-               (beginning-of-line)
-               (setq beg (point))
-               (end-of-line)
-               (setq length (- (point) beg)))
+               (setq length (- (point-at-eol) (point-at-bol))))
              (setq found t)
              (beginning-of-line)
              (setq beg (point))
              (end-of-line)
-             (when (not (= length (- (point) beg)))
+             (unless (= length (- (point) beg))
                (insert (make-string (- length (- (point) beg)) ? ))))
            (forward-line 1)))))))
 
@@ -1736,7 +1739,7 @@ Gnus might fail to display all of it.")
 
       (setq gnus-uu-work-dir
            (mm-make-temp-file (concat gnus-uu-tmp-dir "gnus") 'dir))
-      (set-file-modes gnus-uu-work-dir 448)
+      (gnus-set-file-modes gnus-uu-work-dir 448)
       (setq gnus-uu-work-dir (file-name-as-directory gnus-uu-work-dir))
       (push (cons gnus-newsgroup-name gnus-uu-work-dir)
            gnus-uu-tmp-alist))))
@@ -1768,7 +1771,7 @@ Gnus might fail to display all of it.")
 ;; that the filename will be treated as a single argument when the shell
 ;; executes the command.
 (defun gnus-uu-command (action file)
-  (let ((quoted-file (gnus-quote-arg-for-sh-or-csh file)))
+  (let ((quoted-file (shell-quote-argument file)))
     (if (string-match "%s" action)
        (format action quoted-file)
       (concat action " " quoted-file))))
@@ -1892,7 +1895,7 @@ The user will be asked for a file name."
   (when (gnus-uu-post-encode-file "uuencode" path file-name)
     (goto-char (point-min))
     (forward-line 1)
-    (while (re-search-forward " " nil t)
+    (while (search-forward " " nil t)
       (replace-match "`"))
     t))
 
@@ -2023,8 +2026,7 @@ If no file has been included, the user will be asked for a file."
     (goto-char (point-min))
     (re-search-forward
      (concat "^" (regexp-quote mail-header-separator) "$") nil t)
-    (beginning-of-line)
-    (setq header (buffer-substring (point-min) (point)))
+    (setq header (buffer-substring (point-min) (point-at-bol)))
 
     (goto-char (point-min))
     (when gnus-uu-post-separate-description
@@ -2100,8 +2102,7 @@ If no file has been included, the user will be asked for a file."
 
     (when (not gnus-uu-post-separate-description)
       (set-buffer-modified-p nil)
-      (when (fboundp 'bury-buffer)
-       (bury-buffer)))))
+      (bury-buffer))))
 
 (provide 'gnus-uu)