diff lisp/mu/std11.el @ 70:131b0175ea99 r20-0b30

Import from CVS: tag r20-0b30
author cvs
date Mon, 13 Aug 2007 09:02:59 +0200
parents ec9a17fef872
children 54cc21c15cbb
line wrap: on
line diff
--- a/lisp/mu/std11.el	Mon Aug 13 09:00:04 2007 +0200
+++ b/lisp/mu/std11.el	Mon Aug 13 09:02:59 2007 +0200
@@ -1,10 +1,10 @@
 ;;; std11.el --- STD 11 functions for GNU Emacs
 
-;; Copyright (C) 1995,1996,1997 Free Software Foundation, Inc.
+;; Copyright (C) 1995,1996 Free Software Foundation, Inc.
 
 ;; Author:   MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;; Keywords: mail, news, RFC 822, STD 11
-;; Version: $Id: std11.el,v 1.3 1997/03/09 02:37:25 steve Exp $
+;; Version: $Id: std11.el,v 1.1.1.1 1996/12/18 22:43:39 steve Exp $
 
 ;; This file is part of MU (Message Utilities).
 
@@ -113,11 +113,8 @@
 (defun std11-unfold-string (string)
   "Unfold STRING as message header field. [std11.el]"
   (let ((dest ""))
-    (while (string-match "\n\\([ \t]\\)" string)
-      (setq dest (concat dest
-                         (substring string 0 (match-beginning 0))
-                         (match-string 1 string)
-                         ))
+    (while (string-match "\n\\s +" string)
+      (setq dest (concat dest (substring string 0 (match-beginning 0)) " "))
       (setq string (substring string (match-end 0)))
       )
     (concat dest string)
@@ -200,48 +197,37 @@
 ;;; @ quoted-string
 ;;;
 
-(defun std11-wrap-as-quoted-pairs (string specials)
-  (let (dest
-	(i 0)
-	(b 0)
-	(len (length string))
-	)
-    (while (< i len)
-      (let ((chr (aref string i)))
-	(if (memq chr specials)
-	    (setq dest (concat dest (substring string b i) "\\")
-		  b i)
-	  ))
-      (setq i (1+ i))
-      )
-    (concat dest (substring string b))
-    ))
-
 (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 "\""
-	  (std11-wrap-as-quoted-pairs string std11-non-qtext-char-list)
+	  (mapconcat (function
+		      (lambda (chr)
+			(if (memq chr std11-non-qtext-char-list)
+			    (concat "\\" (char-to-string chr))
+			  (char-to-string chr)
+			  )
+			)) string "")
 	  "\""))
 
-(defun std11-strip-quoted-pair (string)
-  "Strip quoted-pairs in STRING. [std11.el]"
-  (let (dest
-	(b 0)
+(defun std11-strip-quoted-pair (str)
+  (let ((dest "")
 	(i 0)
-	(len (length string))
-	)
+	(len (length str))
+	chr flag)
     (while (< i len)
-      (let ((chr (aref string i)))
-	(if (eq chr ?\\)
-	    (setq dest (concat dest (substring string b i))
-		  b (1+ i)
-		  i (+ i 2))
-	  (setq i (1+ i))
-	  )))
-    (concat dest (substring string b))
-    ))
+      (setq chr (aref str i))
+      (if (or flag (not (eq chr ?\\)))
+	  (progn
+	    (setq dest (concat dest (char-to-string chr)))
+	    (setq flag nil)
+	    )
+	(setq flag t)
+	)
+      (setq i (+ i 1))
+      )
+    dest))
 
 (defun std11-strip-quoted-string (string)
   "Strip quoted-string STRING. [std11.el]"
@@ -263,14 +249,13 @@
 represents addr-spec of RFC 822. [std11.el]"
   (mapconcat (function
 	      (lambda (token)
-		(let ((name (car token)))
-                  (cond
-                   ((eq name 'spaces) "")
-                   ((eq name 'comment) "")
-                   ((eq name 'quoted-string)
-                    (concat "\"" (cdr token) "\""))
-                   (t (cdr token)))
-                  )))
+		(if (let ((name (car token)))
+		      (or (eq name 'spaces)
+			  (eq name 'comment)
+			  ))
+		    ""
+		  (cdr token)
+		  )))
 	     seq "")
   )
 
@@ -306,28 +291,13 @@
 	       (comment (nth 2 address))
 	       phrase)
 	   (if (eq (car addr) 'phrase-route-addr)
-	       (setq phrase
-		     (mapconcat
-		      (function
-		       (lambda (token)
-			 (let ((type (car token)))
-			   (cond ((eq type 'quoted-string)
-				  (std11-strip-quoted-pair (cdr token))
-				  )
-				 ((eq type 'comment)
-				  (concat
-				   "("
-				   (std11-strip-quoted-pair (cdr token))
-				   ")")
-				  )
-				 (t
-				  (cdr token)
-				  )))))
-		      (nth 1 addr) ""))
+	       (setq phrase (mapconcat (function
+					(lambda (token)
+					  (cdr token)
+					  ))
+				       (nth 1 addr) ""))
 	     )
-	   (cond ((> (length phrase) 0) phrase)
-		 (comment (std11-strip-quoted-pair comment))
-		 )
+	   (or phrase comment)
 	   ))))