Changeset 2792
- Timestamp:
- 03/24/08 09:04:48 (8 months ago)
- Files:
-
- trunk/thirdparty/cl-smtp/cl-smtp.lisp (modified) (1 diff)
- trunk/thirdparty/cl-smtp/smtp-output-stream.lisp (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/thirdparty/cl-smtp/cl-smtp.lisp
r2790 r2792 110 110 :local-hostname local-hostname))) 111 111 (initiate-smtp-mail stream from to) 112 (funcall thunk (make-instance 'smtp-output-stream : stream stream))112 (funcall thunk (make-instance 'smtp-output-stream :encapsulated-stream stream)) 113 113 (finish-smtp-mail stream)))) 114 114 trunk/thirdparty/cl-smtp/smtp-output-stream.lisp
r2791 r2792 18 18 19 19 (defclass smtp-output-stream (trivial-gray-stream-mixin fundamental-character-output-stream) 20 (( stream21 :initarg : stream22 :reader stream)20 ((encapsulated-stream 21 :initarg :encapsulated-stream 22 :reader encapsulated-stream) 23 23 (in-header 24 24 :initform t … … 45 45 46 46 (defmethod close ((stream smtp-output-stream) &key abort) 47 (close ( stream stream) :abort abort))47 (close (encapsulated-stream stream) :abort abort)) 48 48 49 49 (defmethod stream-write-char ((stream smtp-output-stream) char) … … 51 51 (line-has-non-ascii line-has-non-ascii) 52 52 (previous-char previous-char) 53 (external-format external-format)) stream 53 (external-format external-format) 54 (encapsulated-stream encapsulated-stream)) stream 54 55 (when in-header 55 56 (cond … … 58 59 ;; Finish quoting 59 60 (when line-has-non-ascii 60 (format (stream stream)"?=")61 (format encapsulated-stream "?=") 61 62 (setf line-has-non-ascii nil)) 62 63 ;; Test for end of header … … 69 70 ((< 127 (char-code char)) 70 71 (unless line-has-non-ascii 71 (format (stream stream)"=?~A?Q?" (flex:external-format-name external-format))72 (format encapsulated-stream "=?~A?Q?" (flex:external-format-name external-format)) 72 73 (setf line-has-non-ascii t)) 73 74 (loop for byte across (flex:string-to-octets (make-string 1 :initial-element char) 74 75 :external-format external-format) 75 do (format (stream stream)"=~2,'0X" byte))))76 do (format encapsulated-stream "=~2,'0X" byte)))) 76 77 (setf previous-char char)) 77 78 (when (eql char #\Newline) 78 (write-char #\Return (stream stream)))79 (write-char #\Return encapsulated-stream)) 79 80 (unless (< 127 (char-code char)) 80 (write-char char (stream stream)))))81 (write-char char encapsulated-stream)))) 81 82 82 83 (defmethod stream-write-sequence ((stream smtp-output-stream) sequence start end &key) … … 84 85 (loop for i from start below end 85 86 do (stream-write-char stream (elt sequence i))) 86 (write-sequence sequence ( stream stream) :start start :end end)))87 (write-sequence sequence (encapsulated-stream stream) :start start :end end)))
