This commit was generated by cvs2svn to compensate for changes in r258,
[elisp/apel.git] / std11.el
index 270c3db..117ddc6 100644 (file)
--- a/std11.el
+++ b/std11.el
@@ -1,10 +1,10 @@
 ;;; std11.el --- STD 11 functions for GNU Emacs
 
-;; Copyright (C) 1995,1996 Free Software Foundation, Inc.
+;; Copyright (C) 1995,1996,1997 Free Software Foundation, Inc.
 
 ;; Author:   MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;; Keywords: mail, news, RFC 822, STD 11
-;; Version: $Id: std11.el,v 0.39 1996-12-17 12:06:15 morioka Exp $
+;; Version: $Id: std11.el,v 1.1 1998-02-04 07:24:33 morioka Exp $
 
 ;; This file is part of MU (Message Utilities).
 
@@ -263,13 +263,14 @@ If BOUNDARY is not nil, it is used as message header separator.
 represents addr-spec of RFC 822. [std11.el]"
   (mapconcat (function
              (lambda (token)
-               (if (let ((name (car token)))
-                     (or (eq name 'spaces)
-                         (eq name 'comment)
-                         ))
-                   ""
-                 (cdr token)
-                 )))
+               (let ((name (car token)))
+                  (cond
+                   ((eq name 'spaces) "")
+                   ((eq name 'comment) "")
+                   ((eq name 'quoted-string)
+                    (concat "\"" (cdr token) "\""))
+                   (t (cdr token)))
+                  )))
             seq "")
   )
 
@@ -329,6 +330,48 @@ represents addr-spec of RFC 822. [std11.el]"
                 )
           ))))
 
+(defun std11-msg-id-string (msg-id)
+  "Return string from parsed MSG-ID of RFC 822."
+  (concat "<" (std11-addr-to-string (cdr msg-id)) ">")
+  )
+
+(defun std11-fill-msg-id-list-string (string &optional column)
+  "Fill list of msg-id in STRING, and return the result."
+  (or column
+      (setq column 12))
+  (let ((lal (std11-lexical-analyze string))
+       dest)
+    (let ((ret (std11-parse-msg-id lal)))
+      (if ret
+         (let* ((str (std11-msg-id-string (car ret)))
+                (len (length str)))
+           (setq lal (cdr ret))
+           (if (> (+ len column) 76)
+               (setq dest (concat dest "\n " str)
+                     column (1+ len))
+             (setq dest str
+                   column (+ column len))
+             ))
+       (setq dest (concat dest (cdr (car lal)))
+             lal (cdr lal))
+       ))
+    (while lal
+      (let ((ret (std11-parse-msg-id lal)))
+       (if ret
+           (let* ((str (std11-msg-id-string (car ret)))
+                  (len (1+ (length str))))
+             (setq lal (cdr ret))
+             (if (> (+ len column) 76)
+                 (setq dest (concat dest "\n " str)
+                       column len)
+               (setq dest (concat dest " " str)
+                     column (+ column len))
+               ))
+         (setq dest (concat dest (cdr (car lal)))
+               lal (cdr lal))
+         )))
+    dest))
+
 
 ;;; @ parser
 ;;;