(std11-wrap-as-quoted-string): fixed typo.
[elisp/apel.git] / std11.el
index 0df4628..da5825a 100644 (file)
--- a/std11.el
+++ b/std11.el
@@ -4,9 +4,9 @@
 
 ;; Author:   MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;; Keywords: mail, news, RFC 822, STD 11
-;; Version: $Id: std11.el,v 0.25 1996-08-30 15:32:30 morioka Exp $
+;; Version: $Id: std11.el,v 0.31 1996-09-08 19:35:20 morioka Exp $
 
-;; This file is part of tl (Tiny Library).
+;; This file is part of MU (Message Utilities).
 
 ;; This program is free software; you can redistribute it and/or
 ;; modify it under the terms of the GNU General Public License as
@@ -194,6 +194,24 @@ If BOUNDARY is not nil, it is used as message header separator.
        dest))))
 
 
+;;; @ quoted-string
+;;;
+
+(defconst std11-non-qtext-char-list '(?\" ?\\ ?\r ?\n))
+
+(defun std11-wrap-as-quoted-string (string)
+  "Wrap STRING as RFC 822 quoted-string. [std11.el]"
+  (concat "\""
+         (mapconcat (function
+                     (lambda (chr)
+                       (if (memq chr std11-non-qtext-char-list)
+                           (concat "\\" (char-to-string chr))
+                         (char-to-string chr)
+                         )
+                       )) string "")
+         "\""))
+
+
 ;;; @ composer
 ;;;
 
@@ -267,6 +285,18 @@ represents addr-spec of RFC 822. [std11.el]"
   (std11-parse-addresses (std11-lexical-analyze string))
   )
 
+(defun std11-extract-address-components (string)
+  "Extract full name and canonical address from STRING.
+Returns a list of the form (FULL-NAME CANONICAL-ADDRESS).
+If no name can be extracted, FULL-NAME will be nil. [std11.el]"
+  (let* ((structure (car (std11-parse-address-string
+                         (std11-unfold-string string))))
+         (phrase  (std11-full-name-string structure))
+         (address (std11-address-string structure))
+         )
+    (list phrase address)
+    ))
+
 (provide 'std11)
 
 (mapcar (function