+2002-02-07  Paul Jarc  <prj@po.cwru.edu>
+
+       * gnus-util.el (gnus-split-references): Allow (broken) Message-IDs
+       with internal whitespace.
+       (gnus-parent-id): Ditto.
+       
 2002-02-07  ShengHuo ZHU  <zsh@cs.rochester.edu>
 
+       * gnus-art.el (gnus-article-treat-body-boundary): Add
+       gnus-decoration property.
+       * gnus-msg.el (gnus-copy-article-buffer): Remove gnus-decoration.
+
+       * message.el (message-mode): Set local-abbrev-table.
+       From Matt Armstrong <matt@lickey.com>.
+
+       * gnus-art.el (gnus-article-treat-unfold-headers): Don't remove
+       too many spaces.
+
+       * rfc2047.el (rfc2047-unfold-region): Ditto.
+       (rfc2047-decode-region): Don't unfold. Let
+       gnus-article-treat-unfold-headers do it.
+
        * gnus-sum.el (gnus-dependencies-add-header): Fix typo.
        From: Jesper Harder <harder@ifa.au.dk>
 
 2001-12-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * gnus-art.el (gnus-treat-unfold-lines): New variable.
-       (gnus-treat-unfold-headers): Remamed.
+       (gnus-treat-unfold-headers): Renamed.
        (gnus-article-treat-unfold-headers): New command and keystroke.
 
        * rfc2047.el (rfc2047-encode-message-header): Clean up.
 
 
 ;; mm- stuff.
 (unless (featurep 'mm-util)
+  ;; Should keep track of `mm-image-load-path' in mm-util.el.
   (defun nnheader-image-load-path (&optional package)
     (let (dir result)
       (dolist (path load-path (nreverse result))
        (push path result))))
   (defalias 'mm-image-load-path 'nnheader-image-load-path)
 
+  ;; Should keep track of `mm-read-coding-system' in mm-util.el.
   (defalias 'mm-read-coding-system
     (if (or (and (featurep 'xemacs)
                 (<= (string-to-number emacs-version) 21.1))
          (read-coding-system prompt))
       'read-coding-system))
 
+  ;; Should keep track of `mm-%s' in mm-util.el.
   (defalias 'mm-multibyte-string-p
     (if (fboundp 'multibyte-string-p)
        'multibyte-string-p
       'ignore))
-
   (defalias 'mm-encode-coding-string 'encode-coding-string)
   (defalias 'mm-decode-coding-string 'decode-coding-string)
 
+  ;; Should keep track of `mm-detect-coding-region' in mm-util.el.
   (defun nnheader-detect-coding-region (start end)
     "Like 'detect-coding-region' except returning the best one."
     (let ((coding-systems
          coding-systems)))
   (defalias 'mm-detect-coding-region 'nnheader-detect-coding-region)
 
+  ;; Should keep track of `mm-detect-mime-charset-region' in mm-util.el.
   (defun nnheader-detect-mime-charset-region (start end)
     "Detect MIME charset of the text in the region between START and END."
     (coding-system-to-mime-charset
   (defalias 'mm-detect-mime-charset-region
     'nnheader-detect-mime-charset-region)
 
+  ;; Should keep track of `mm-with-unibyte-buffer' in mm-util.el.
   (defmacro nnheader-with-unibyte-buffer (&rest forms)
   "Create a temporary buffer, and evaluate FORMS there like `progn'.
 Use unibyte mode for this."
 
 ;; mail-parse stuff.
 (unless (featurep 'mail-parse)
+  ;; Should keep track of `rfc2047-narrow-to-field' in rfc2047.el.
   (defun-maybe std11-narrow-to-field ()
     "Narrow the buffer to the header on the current line."
     (forward-line 0)
                        (when (eolp) (forward-line 1))
                        (point)))
     (goto-char (point-min)))
-
   (defalias 'mail-header-narrow-to-field 'std11-narrow-to-field)
 
+  ;; Should keep track of `ietf-drums-narrow-to-header' in ietf-drums.el.
   (defun mail-narrow-to-head ()
     "Narrow to the header section in the current buffer."
     (narrow-to-region
        (point-max)))
     (goto-char (point-min)))
 
+  ;; Should keep track of `rfc2047-fold-region' in rfc2047.el.
   (defun-maybe std11-fold-region (b e)
     "Fold long lines in region B to E."
     (save-restriction
          (unless (eobp)
            (forward-char 1))))))
 
+  ;; Should keep track of `rfc2047-fold-field' in rfc2047.el.
   (defun-maybe std11-fold-field ()
     "Fold the current line."
     (save-excursion
 
   (defalias 'mail-header-fold-field 'std11-fold-field)
 
+  ;; Should keep track of `rfc2047-unfold-region' in rfc2047.el.
   (defun-maybe std11-unfold-region (b e)
     "Unfold lines in region B to E."
     (save-restriction
       (let ((bol (save-restriction
                   (widen)
                   (gnus-point-at-bol)))
-           (eol (gnus-point-at-eol))
-           leading)
+           (eol (gnus-point-at-eol)))
        (forward-line 1)
        (while (not (eobp))
-         (looking-at "[ \t]*")
-         (setq leading (- (match-end 0) (match-beginning 0)))
-         (if (< (- (gnus-point-at-eol) bol leading) 76)
-             (progn
-               (goto-char eol)
-               (delete-region eol (progn
-                                    (skip-chars-forward " \t\n\r")
-                                    (1- (point)))))
+         (if (and (looking-at "[ \t]")
+                  (< (- (gnus-point-at-eol) bol) 76))
+             (delete-region eol (progn
+                                  (goto-char eol)
+                                  (skip-chars-forward "\r\n")
+                                  (point)))
            (setq bol (gnus-point-at-bol)))
          (setq eol (gnus-point-at-eol))
          (forward-line 1)))))
 
+  ;; Should keep track of `rfc2047-unfold-field' in rfc2047.el.
   (defun-maybe std11-unfold-field ()
     "Fold the current line."
     (save-excursion
 
   (defalias 'mail-header-unfold-field 'std11-unfold-field)
 
+  ;; This is the original function in T-gnus.
   (defun-maybe std11-extract-addresses-components (string)
     "Extract a list of full name and canonical address from STRING.  Each
 element looks like a list of the form (FULL-NAME CANONICAL-ADDRESS).
 If no name can be extracted, FULL-NAME will be nil."
     (when string
-      (mapcar (function
-              (lambda (structure)
-                (list (std11-full-name-string structure)
-                      (std11-address-string structure))))
-             (std11-parse-addresses-string (std11-unfold-string string)))))
-
+      (let (addresses)
+       (dolist (structure (std11-parse-addresses-string
+                           (std11-unfold-string string))
+                          addresses)
+         (push (list (std11-full-name-string structure)
+                     (std11-address-string structure))
+               addresses))
+       (nreverse addresses))))
+
+  ;; Should keep track of `ietf-drums-parse-addresses' in ietf-drums.el.
   (defun mail-header-parse-addresses (string)
     "Parse STRING and return a list of MAILBOX / DISPLAY-NAME pairs."
     (mapcar (function
               (cons (nth 1 components) (car components))))
            (std11-extract-addresses-components string)))
 
+  ;; Should keep track of `rfc2047-field-value' in rfc2047.el.
   (defun-maybe std11-field-value (&optional dont-include-last-newline)
     "Return the value of the field at point.  If the optional argument is
 given, the return value will not contain the last newline."
 
     (let ((bol (save-restriction
                 (widen)
                 (gnus-point-at-bol)))
-         (eol (gnus-point-at-eol))
-         leading)
+         (eol (gnus-point-at-eol)))
       (forward-line 1)
       (while (not (eobp))
-       (looking-at "[ \t]*")
-       (setq leading (- (match-end 0) (match-beginning 0)))
-       (if (< (- (gnus-point-at-eol) bol leading) 76)
-           (progn
-             (goto-char eol)
-             (delete-region eol (progn
-                                  (skip-chars-forward " \t\n\r")
-                                  (1- (point)))))
+       (if (and (looking-at "[ \t]")
+                (< (- (gnus-point-at-eol) bol) 76))
+           (delete-region eol (progn
+                                (goto-char eol)
+                                (skip-chars-forward "\r\n")
+                                (point)))
          (setq bol (gnus-point-at-bol)))
        (setq eol (gnus-point-at-eol))
        (forward-line 1)))))
                   mail-parse-charset
                   (not (eq mail-parse-charset 'us-ascii))
                   (not (eq mail-parse-charset 'gnus-decoded)))
-         (mm-decode-coding-region b (point-max) mail-parse-charset))
-       (rfc2047-unfold-region (point-min) (point-max))))))
+         (mm-decode-coding-region b (point-max) mail-parse-charset))))))
 
 (defun rfc2047-decode-string (string)
   "Decode the quoted-printable-encoded STRING and return the results."