Mercurial > hg > xemacs-beta
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) ))))