annotate src/vmime-1-fixes.patch @ 2573:ebe77bc7e002

package vmime: take upstream fixes
author Mark Brand <mabrand@mabrand.nl>
date Sun, 10 Jun 2012 11:26:50 +0200
parents 99516e73b368
children 49ecbfac69b1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2333
f653602a0500 Rebrand to new project name MXE
Volker Grabsch <vog@notjusthosting.com>
parents: 2265
diff changeset
1 This file is part of MXE.
2353
99516e73b368 Move doc/index.html -> index.html
Volker Grabsch <vog@notjusthosting.com>
parents: 2333
diff changeset
2 See index.html for further information.
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
3
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4 Commits from master branch of git://github.com/kisli/vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5 rebased onto version 0.9.1 tarball files.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7 From 17ff5157ffdc749f60b8285f84e64ac5e06d4283 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8 From: Vincent Richard <vincent@vincent-richard.net>
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
9 Date: Tue, 16 Nov 2010 13:28:05 +0000
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
10 Subject: [PATCH 01/38] Started version 0.9.2.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
11
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
12 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
13 ChangeLog | 8 ++++++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
14 SConstruct | 2 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
15 2 files changed, 9 insertions(+), 1 deletion(-)
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
16
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
17 diff --git a/ChangeLog b/ChangeLog
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
18 index 871d055..8fdcdb0 100644
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
19 --- a/ChangeLog
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
20 +++ b/ChangeLog
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
21 @@ -1,4 +1,12 @@
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
22
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
23 +VERSION 0.9.2svn
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
24 +================
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
25 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
26 +2010-11-16 Vincent Richard <vincent@vincent-richard.net>
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
27 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
28 + * Started version 0.9.2.
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
29 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
30 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
31 VERSION 0.9.1
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
32 =============
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
33
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
34 diff --git a/SConstruct b/SConstruct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
35 index fb01edf..55f9223 100644
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
36 --- a/SConstruct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
37 +++ b/SConstruct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
38 @@ -29,7 +29,7 @@ import string
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
39 # Package version number
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
40 packageVersionMajor = 0
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
41 packageVersionMinor = 9
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
42 -packageVersionMicro = 1
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
43 +packageVersionMicro = 2
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
44
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
45 # API version number (libtool)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
46 #
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
47 --
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
48 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
49
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
50
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
51 From c12ee2b267b9dcfd092a298dfd9a8eec81ab3a0b Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
52 From: Vincent Richard <vincent@vincent-richard.net>
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
53 Date: Tue, 30 Nov 2010 14:57:03 +0000
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
54 Subject: [PATCH 02/38] Initialize and delete object.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
55
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
56 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
57 vmime/net/imap/IMAPParser.hpp | 5 ++++-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
58 1 file changed, 4 insertions(+), 1 deletion(-)
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
59
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
60 diff --git a/vmime/net/imap/IMAPParser.hpp b/vmime/net/imap/IMAPParser.hpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
61 index 0f3e9ec..d71c3ca 100644
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
62 --- a/vmime/net/imap/IMAPParser.hpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
63 +++ b/vmime/net/imap/IMAPParser.hpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
64 @@ -3823,7 +3823,9 @@ public:
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
65
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
66 msg_att_item()
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
67 : m_date_time(NULL), m_number(NULL), m_envelope(NULL),
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
68 - m_uniqueid(NULL), m_nstring(NULL), m_body(NULL), m_flag_list(NULL)
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
69 + m_uniqueid(NULL), m_nstring(NULL), m_body(NULL), m_flag_list(NULL),
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
70 + m_section(NULL)
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
71 +
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
72 {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
73 }
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
74
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
75 @@ -3836,6 +3838,7 @@ public:
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
76 delete (m_nstring);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
77 delete (m_body);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
78 delete (m_flag_list);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
79 + delete (m_section);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
80 }
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
81
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
82 void go(IMAPParser& parser, string& line, string::size_type* currentPos)
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
83 --
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
84 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
85
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
86
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
87 From fd277afe87485c9d3377964794b76006c6d36a56 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
88 From: Vincent Richard <vincent@vincent-richard.net>
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
89 Date: Wed, 8 Dec 2010 08:52:54 +0000
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
90 Subject: [PATCH 03/38] No extra space between ':' and '<' in MAIL FROM and
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
91 RCPT TO. Wait for server response after QUIT and
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
92 before closing connection.
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
93
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
94 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
95 src/net/smtp/SMTPTransport.cpp | 5 +++--
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
96 1 file changed, 3 insertions(+), 2 deletions(-)
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
97
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
98 diff --git a/src/net/smtp/SMTPTransport.cpp b/src/net/smtp/SMTPTransport.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
99 index 204daae..d9fb7b8 100644
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
100 --- a/src/net/smtp/SMTPTransport.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
101 +++ b/src/net/smtp/SMTPTransport.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
102 @@ -516,6 +516,7 @@ void SMTPTransport::internalDisconnect()
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
103 try
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
104 {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
105 sendRequest("QUIT");
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
106 + readResponse();
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
107 }
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
108 catch (exception&)
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
109 {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
110 @@ -565,7 +566,7 @@ void SMTPTransport::send(const mailbox& expeditor, const mailboxList& recipients
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
111 // Emit the "MAIL" command
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
112 ref <SMTPResponse> resp;
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
113
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
114 - sendRequest("MAIL FROM: <" + expeditor.getEmail() + ">");
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
115 + sendRequest("MAIL FROM:<" + expeditor.getEmail() + ">");
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
116
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
117 if ((resp = readResponse())->getCode() != 250)
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
118 {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
119 @@ -578,7 +579,7 @@ void SMTPTransport::send(const mailbox& expeditor, const mailboxList& recipients
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
120 {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
121 const mailbox& mbox = *recipients.getMailboxAt(i);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
122
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
123 - sendRequest("RCPT TO: <" + mbox.getEmail() + ">");
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
124 + sendRequest("RCPT TO:<" + mbox.getEmail() + ">");
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
125
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
126 if ((resp = readResponse())->getCode() != 250)
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
127 {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
128 --
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
129 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
130
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
131
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
132 From d64da50e879c0e480d2e65c43e3b903c3e80101f Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
133 From: Vincent Richard <vincent@vincent-richard.net>
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
134 Date: Fri, 10 Dec 2010 16:24:06 +0000
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
135 Subject: [PATCH 04/38] Fixed unit test after bug fix.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
136
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
137 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
138 tests/net/smtp/SMTPTransportTest.cpp | 2 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
139 1 file changed, 1 insertion(+), 1 deletion(-)
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
140
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
141 diff --git a/tests/net/smtp/SMTPTransportTest.cpp b/tests/net/smtp/SMTPTransportTest.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
142 index 5015552..6552f9e 100644
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
143 --- a/tests/net/smtp/SMTPTransportTest.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
144 +++ b/tests/net/smtp/SMTPTransportTest.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
145 @@ -165,7 +165,7 @@ public:
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
146 }
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
147 else if (cmd == "MAIL")
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
148 {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
149 - VASSERT_EQ("MAIL", std::string("MAIL FROM: <expeditor@test.vmime.org>"), line);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
150 + VASSERT_EQ("MAIL", std::string("MAIL FROM:<expeditor@test.vmime.org>"), line);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
151
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
152 localSend("250 OK\r\n");
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
153 }
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
154 --
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
155 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
156
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
157
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
158 From 130d0aabda2a9988913ad201390796775dc16a65 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
159 From: Vincent Richard <vincent@vincent-richard.net>
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
160 Date: Fri, 10 Dec 2010 16:54:38 +0000
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
161 Subject: [PATCH 05/38] Fixed boundary parsing (thanks to John van der Kamp,
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
162 Zarafa).
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
163
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
164 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
165 src/body.cpp | 43 +++++++++++++++++++++++++++++++++++++++--
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
166 tests/parser/bodyPartTest.cpp | 2 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
167 2 files changed, 42 insertions(+), 3 deletions(-)
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
168
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
169 diff --git a/src/body.cpp b/src/body.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
170 index 13dff6b..738d3e7 100644
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
171 --- a/src/body.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
172 +++ b/src/body.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
173 @@ -127,10 +127,30 @@ void body::parse(const string& buffer, const string::size_type position,
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
174 const string boundarySep("--" + boundary);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
175
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
176 string::size_type partStart = position;
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
177 - string::size_type pos = buffer.find(boundarySep, position);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
178 + string::size_type pos = position;
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
179
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
180 bool lastPart = false;
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
181
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
182 + while (pos != string::npos && pos < end)
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
183 + {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
184 + pos = buffer.find(boundarySep, pos);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
185 +
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
186 + if (pos == string::npos ||
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
187 + ((pos == 0 || buffer[pos - 1] == '\n') &&
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
188 + (buffer[pos + boundarySep.length()] == '\r' ||
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
189 + buffer[pos + boundarySep.length()] == '\n' ||
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
190 + buffer[pos + boundarySep.length()] == '-'
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
191 + )
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
192 + )
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
193 + )
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
194 + {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
195 + break;
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
196 + }
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
197 +
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
198 + // boundary not a beginning of line, or just a prefix of another, continue the search.
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
199 + pos++;
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
200 + }
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
201 +
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
202 if (pos != string::npos && pos < end)
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
203 {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
204 m_prologText = string(buffer.begin() + position, buffer.begin() + pos);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
205 @@ -181,7 +201,26 @@ void body::parse(const string& buffer, const string::size_type position,
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
206 }
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
207
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
208 partStart = pos;
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
209 - pos = buffer.find(boundarySep, partStart);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
210 +
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
211 + while (pos != string::npos && pos < end)
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
212 + {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
213 + pos = buffer.find(boundarySep, pos);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
214 +
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
215 + if (pos == string::npos ||
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
216 + ((pos == 0 || buffer[pos - 1] == '\n') &&
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
217 + (buffer[pos + boundarySep.length()] == '\r' ||
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
218 + buffer[pos + boundarySep.length()] == '\n' ||
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
219 + buffer[pos + boundarySep.length()] == '-'
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
220 + )
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
221 + )
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
222 + )
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
223 + {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
224 + break;
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
225 + }
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
226 +
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
227 + // boundary not a beginning of line, or just a prefix of another, continue the search.
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
228 + pos++;
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
229 + }
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
230 }
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
231
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
232 m_contents = vmime::create <emptyContentHandler>();
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
233 diff --git a/tests/parser/bodyPartTest.cpp b/tests/parser/bodyPartTest.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
234 index 12c4f74..df2bf85 100644
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
235 --- a/tests/parser/bodyPartTest.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
236 +++ b/tests/parser/bodyPartTest.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
237 @@ -84,7 +84,7 @@ VMIME_TEST_SUITE_BEGIN
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
238 vmime::string str =
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
239 "Content-Type: multipart/mixed; boundary=\"MY-BOUNDARY\""
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
240 "\r\n\r\n"
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
241 - "--MY-BOUNDARY\r\nHEADER1\r\n\r\nBODY1"
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
242 + "--MY-BOUNDARY\r\nHEADER1\r\n\r\nBODY1\r\n"
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
243 "--MY-BOUNDARY\r\nHEADER2\r\n\r\nBODY2";
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
244
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
245 vmime::bodyPart p;
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
246 --
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
247 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
248
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
249
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
250 From c63f37c888798f0e7e99aa03afda16445a72b7b2 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
251 From: Vincent Richard <vincent@vincent-richard.net>
1565
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
252 Date: Fri, 21 Jan 2011 15:28:06 +0000
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
253 Subject: [PATCH 06/38] Fixed possible infinite loop (thanks to John van der
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
254 Kamp, Zarafa).
1565
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
255
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
256 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
257 src/word.cpp | 2 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
258 tests/parser/textTest.cpp | 11 +++++++++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
259 2 files changed, 12 insertions(+), 1 deletion(-)
1565
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
260
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
261 diff --git a/src/word.cpp b/src/word.cpp
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
262 index db720dc..1c1c1a6 100644
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
263 --- a/src/word.cpp
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
264 +++ b/src/word.cpp
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
265 @@ -386,7 +386,7 @@ void word::generate(utility::outputStream& os, const string::size_type maxLineLe
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
266
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
267 maxRunLength = std::max(maxRunLength, curRunLength);
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
268
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
269 - if (maxRunLength >= maxLineLength - 3)
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
270 + if (((flags & text::FORCE_NO_ENCODING) == 0) && maxRunLength >= maxLineLength - 3)
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
271 {
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
272 // Generate with encoding forced
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
273 generate(os, maxLineLength, curLinePos, newLinePos, flags | text::FORCE_ENCODING, state);
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
274 diff --git a/tests/parser/textTest.cpp b/tests/parser/textTest.cpp
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
275 index b84f376..746ac94 100644
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
276 --- a/tests/parser/textTest.cpp
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
277 +++ b/tests/parser/textTest.cpp
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
278 @@ -52,6 +52,7 @@ VMIME_TEST_SUITE_BEGIN
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
279 VMIME_TEST(testWhitespaceMBox)
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
280
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
281 VMIME_TEST(testFoldingAscii)
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
282 + VMIME_TEST(testForcedNonEncoding)
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
283 VMIME_TEST_LIST_END
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
284
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
285
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
286 @@ -442,5 +443,15 @@ VMIME_TEST_SUITE_BEGIN
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
287 " =?us-ascii?Q?9012345678901234567890123456789?=", w.generate(50));
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
288 }
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
289
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
290 + void testForcedNonEncoding()
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
291 + {
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
292 + // Testing long unbreakable and unencodable header
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
293 + vmime::relay r;
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
294 + r.parse(" from User (Ee9GMqZQ8t7IQwftfAFHd2KyScCYRrFSJ50tKEoXv2bVCG4HcPU80GGWiFabAvG77FekpGgF1h@[127.0.0.1]) by servername.hostname.com\n\t"
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
295 + "with esmtp id 1NGTS9-2C0sqG0; Fri, 4 Dec 2009 09:23:49 +0100");
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
296 +
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
297 + VASSERT_EQ("received.long", "from User\r\n (Ee9GMqZQ8t7IQwftfAFHd2KyScCYRrFSJ50tKEoXv2bVCG4HcPU80GGWiFabAvG77FekpGgF1h@[127.0.0.1])\r\n by servername.hostname.com with esmtp id 1NGTS9-2C0sqG0; Fri, 4 Dec 2009\r\n 09:23:49 +0100", r.generate(78));
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
298 + }
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
299 +
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
300 VMIME_TEST_SUITE_END
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
301
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
302 --
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
303 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
304
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
305
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
306 From 1fafad8f913e700b350e6915de8be710fc2d1ced Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
307 From: Vincent Richard <vincent@vincent-richard.net>
1567
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
308 Date: Fri, 28 Jan 2011 12:11:08 +0000
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
309 Subject: [PATCH 07/38] Fixed possible read to invalid memory location (thanks
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
310 to Alexander Konovalov).
1567
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
311
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
312 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
313 src/word.cpp | 2 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
314 1 file changed, 1 insertion(+), 1 deletion(-)
1567
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
315
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
316 diff --git a/src/word.cpp b/src/word.cpp
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
317 index 1c1c1a6..fa08d33 100644
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
318 --- a/src/word.cpp
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
319 +++ b/src/word.cpp
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
320 @@ -460,7 +460,7 @@ void word::generate(utility::outputStream& os, const string::size_type maxLineLe
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
321
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
322 os << string(curLineStart, p);
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
323
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
324 - if (parserHelpers::isSpace(*(p - 1)))
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
325 + if (p != m_buffer.begin() && parserHelpers::isSpace(*(p - 1)))
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
326 state->lastCharIsSpace = true;
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
327 else
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
328 state->lastCharIsSpace = false;
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
329 --
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
330 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
331
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
332
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
333 From 73298423f695d7c4441d44619e4b7f9de75f566e Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
334 From: Vincent Richard <vincent@vincent-richard.net>
1659
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
335 Date: Wed, 9 Mar 2011 18:03:31 +0000
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
336 Subject: [PATCH 08/38] Fixed bug #3174903. Fixed word parsing when buffer
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
337 does not end with NL. Fixed 'no encoding' when
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
338 forced.
1659
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
339
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
340 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
341 src/body.cpp | 14 +++++---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
342 src/word.cpp | 25 ++++++++------
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
343 tests/parser/bodyPartTest.cpp | 76 +++++++++++++++++++++++++++++++++++++++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
344 3 files changed, 101 insertions(+), 14 deletions(-)
1567
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
345
1659
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
346 diff --git a/src/body.cpp b/src/body.cpp
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
347 index 738d3e7..8596833 100644
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
348 --- a/src/body.cpp
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
349 +++ b/src/body.cpp
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
350 @@ -153,7 +153,10 @@ void body::parse(const string& buffer, const string::size_type position,
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
351
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
352 if (pos != string::npos && pos < end)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
353 {
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
354 - m_prologText = string(buffer.begin() + position, buffer.begin() + pos);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
355 + vmime::text text;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
356 + text.parse(buffer, position, pos);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
357 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
358 + m_prologText = text.getWholeBuffer();
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
359 }
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
360
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
361 for (int index = 0 ; !lastPart && (pos != string::npos) && (pos < end) ; ++index)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
362 @@ -246,7 +249,10 @@ void body::parse(const string& buffer, const string::size_type position,
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
363 // Treat remaining text as epilog
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
364 else if (partStart < end)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
365 {
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
366 - m_epilogText = string(buffer.begin() + partStart, buffer.begin() + end);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
367 + vmime::text text;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
368 + text.parse(buffer, partStart, end);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
369 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
370 + m_epilogText = text.getWholeBuffer();
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
371 }
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
372 }
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
373 // Treat the contents as 'simple' data
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
374 @@ -333,7 +339,7 @@ void body::generate(utility::outputStream& os, const string::size_type maxLineLe
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
375
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
376 if (!prologText.empty())
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
377 {
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
378 - text prolog(word(prologText, getCharset()));
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
379 + text prolog(prologText, vmime::charset("us-ascii"));
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
380
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
381 prolog.encodeAndFold(os, maxLineLength, 0,
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
382 NULL, text::FORCE_NO_ENCODING | text::NO_NEW_LINE_SEQUENCE);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
383 @@ -356,7 +362,7 @@ void body::generate(utility::outputStream& os, const string::size_type maxLineLe
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
384
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
385 if (!epilogText.empty())
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
386 {
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
387 - text epilog(word(epilogText, getCharset()));
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
388 + text epilog(epilogText, vmime::charset("us-ascii"));
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
389
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
390 epilog.encodeAndFold(os, maxLineLength, 0,
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
391 NULL, text::FORCE_NO_ENCODING | text::NO_NEW_LINE_SEQUENCE);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
392 diff --git a/src/word.cpp b/src/word.cpp
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
393 index fa08d33..aeaa737 100644
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
394 --- a/src/word.cpp
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
395 +++ b/src/word.cpp
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
396 @@ -102,7 +102,9 @@ ref <word> word::parseNext(const string& buffer, const string::size_type positio
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
397 ++pos;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
398
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
399 unencoded += buffer.substr(startPos, endPos - startPos);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
400 - unencoded += ' ';
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
401 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
402 + if (pos != end) // ignore white-spaces at end
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
403 + unencoded += ' ';
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
404
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
405 startPos = pos;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
406 continue;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
407 @@ -191,14 +193,15 @@ ref <word> word::parseNext(const string& buffer, const string::size_type positio
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
408 ++pos;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
409 }
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
410
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
411 - // Treat unencoded text at the end of the buffer
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
412 - if (end != startPos)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
413 - {
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
414 - if (startPos != pos && !isFirst && prevIsEncoded)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
415 - unencoded += whiteSpaces;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
416 + if (startPos != end && !isFirst && prevIsEncoded)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
417 + unencoded += whiteSpaces;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
418
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
419 + if (startPos != end)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
420 unencoded += buffer.substr(startPos, end - startPos);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
421
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
422 + // Treat unencoded text at the end of the buffer
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
423 + if (!unencoded.empty())
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
424 + {
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
425 ref <word> w = vmime::create <word>(unencoded, charset(charsets::US_ASCII));
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
426 w->setParsedBounds(position, end);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
427
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
428 @@ -337,12 +340,14 @@ void word::generate(utility::outputStream& os, const string::size_type maxLineLe
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
429 state = &defaultGeneratorState;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
430
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
431 // Find out if encoding is forced or required by contents + charset
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
432 - bool encodingNeeded = (flags & text::FORCE_ENCODING) != 0;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
433 + bool encodingNeeded = false;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
434
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
435 - if (encodingNeeded == false)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
436 - encodingNeeded = wordEncoder::isEncodingNeeded(m_buffer, m_charset);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
437 - else if ((flags & text::FORCE_NO_ENCODING) != 0)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
438 + if ((flags & text::FORCE_NO_ENCODING) != 0)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
439 encodingNeeded = false;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
440 + else if ((flags & text::FORCE_ENCODING) != 0)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
441 + encodingNeeded = true;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
442 + else // auto-detect
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
443 + encodingNeeded = wordEncoder::isEncodingNeeded(m_buffer, m_charset);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
444
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
445 // If possible and requested (with flag), quote the buffer (no folding is performed).
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
446 // Quoting is possible if and only if:
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
447 diff --git a/tests/parser/bodyPartTest.cpp b/tests/parser/bodyPartTest.cpp
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
448 index df2bf85..b129913 100644
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
449 --- a/tests/parser/bodyPartTest.cpp
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
450 +++ b/tests/parser/bodyPartTest.cpp
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
451 @@ -34,6 +34,8 @@ VMIME_TEST_SUITE_BEGIN
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
452 VMIME_TEST(testParse)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
453 VMIME_TEST(testGenerate)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
454 VMIME_TEST(testParseMissingLastBoundary)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
455 + VMIME_TEST(testPrologEpilog)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
456 + VMIME_TEST(testPrologEncoding)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
457 VMIME_TEST_LIST_END
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
458
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
459
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
460 @@ -105,5 +107,79 @@ VMIME_TEST_SUITE_BEGIN
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
461 VASSERT_EQ("1", "Foo: bar\r\n\r\nBaz", p1.generate());
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
462 }
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
463
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
464 + void testPrologEpilog()
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
465 + {
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
466 + const char testMail[] =
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
467 + "To: test@vmime.org\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
468 + "From: test@vmime.org\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
469 + "Subject: Prolog and epilog test\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
470 + "Content-Type: multipart/mixed; \r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
471 + " boundary=\"=_boundary\"\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
472 + "\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
473 + "Prolog text\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
474 + "--=_boundary\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
475 + "Content-Type: text/plain\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
476 + "\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
477 + "Part1\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
478 + "--=_boundary--\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
479 + "Epilog text";
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
480 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
481 + vmime::bodyPart part;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
482 + part.parse(testMail);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
483 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
484 + VASSERT_EQ("prolog", "Prolog text", part.getBody()->getPrologText());
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
485 + VASSERT_EQ("epilog", "Epilog text", part.getBody()->getEpilogText());
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
486 + }
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
487 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
488 + // Test for bug fix: prolog should not be encoded
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
489 + // http://sourceforge.net/tracker/?func=detail&atid=525568&aid=3174903&group_id=69724
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
490 + void testPrologEncoding()
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
491 + {
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
492 + const char testmail[] =
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
493 + "To: test@vmime.org\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
494 + "From: test@vmime.org\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
495 + "Subject: Prolog encoding test\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
496 + "Content-Type: multipart/mixed; \r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
497 + " boundary=\"=_+ZWjySayKqSf2CyrfnNpaAcO6-G1HpoXdHZ4YyswAWqEY39Q\"\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
498 + "\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
499 + "This is a multi-part message in MIME format. Your mail reader does not\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
500 + "understand MIME message format.\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
501 + "--=_+ZWjySayKqSf2CyrfnNpaAcO6-G1HpoXdHZ4YyswAWqEY39Q\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
502 + "Content-Type: text/html; charset=windows-1251\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
503 + "Content-Transfer-Encoding: quoted-printable\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
504 + "\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
505 + "=DD=F2=EE =F2=E5=EA=F1=F2=EE=E2=E0=FF =F7=E0=F1=F2=FC =F1=EB=EE=E6=ED=EE=E3=\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
506 + "=EE =F1=EE=EE=E1=F9=E5=ED=E8=FF\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
507 + "--=_+ZWjySayKqSf2CyrfnNpaAcO6-G1HpoXdHZ4YyswAWqEY39Q\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
508 + "Content-Type: application/octet-stream; charset=windows-1251\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
509 + "Content-Disposition: attachment; filename=FNS.zip\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
510 + "Content-Transfer-Encoding: base64\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
511 + "\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
512 + "UEsDBB...snap...EEAAAAAA==\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
513 + "--=_+ZWjySayKqSf2CyrfnNpaAcO6-G1HpoXdHZ4YyswAWqEY39Q--\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
514 + "Epilog text";
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
515 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
516 + vmime::ref<vmime::message> msg = vmime::create<vmime::message>();
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
517 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
518 + std::string istr(testmail);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
519 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
520 + std::string ostr;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
521 + vmime::utility::outputStreamStringAdapter out(ostr);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
522 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
523 + for (int i = 0 ; i < 10 ; ++i)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
524 + {
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
525 + ostr.clear();
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
526 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
527 + msg->parse(istr);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
528 + msg->generate(out);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
529 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
530 + istr = ostr;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
531 + }
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
532 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
533 + VASSERT_EQ("prolog", "This is a multi-part message in MIME format. Your mail reader"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
534 + " does not understand MIME message format.", msg->getBody()->getPrologText());
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
535 + VASSERT_EQ("epilog", "Epilog text", msg->getBody()->getEpilogText());
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
536 + }
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
537 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
538 VMIME_TEST_SUITE_END
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
539
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
540 --
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
541 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
542
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
543
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
544 From 5f5757b9d4bb0febb1e2183578eb91e801a08038 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
545 From: Vincent Richard <vincent@vincent-richard.net>
1710
d3bf5db5a40f patch provenance
Mark Brand <mabrand@mabrand.nl>
parents: 1668
diff changeset
546 Date: Sun, 27 Mar 2011 11:26:55 +0000
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
547 Subject: [PATCH 09/38] Allow static linking in mingw-cross-env. Added 'iconv'
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
548 and uses 'ws2_32' instead of 'winsock32' (#3213487).
1660
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
549
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
550 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
551 SConstruct | 4 ++--
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
552 1 file changed, 2 insertions(+), 2 deletions(-)
1660
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
553
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
554 diff --git a/SConstruct b/SConstruct
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
555 index 55f9223..177f5b4 100644
1660
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
556 --- a/SConstruct
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
557 +++ b/SConstruct
1668
4ee38be1b1cd package vmime: fix and use .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1660
diff changeset
558 @@ -1089,7 +1089,7 @@ def generateAutotools(target, source, env):
4ee38be1b1cd package vmime: fix and use .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1660
diff changeset
559 vmime_pc_in.write("Description: " + packageDescription + "\n")
4ee38be1b1cd package vmime: fix and use .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1660
diff changeset
560 vmime_pc_in.write("Version: @VERSION@\n")
4ee38be1b1cd package vmime: fix and use .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1660
diff changeset
561 vmime_pc_in.write("Requires: @GSASL_REQUIRED@\n")
4ee38be1b1cd package vmime: fix and use .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1660
diff changeset
562 - vmime_pc_in.write("Libs: -L${libdir} -l@GENERIC_VERSIONED_LIBRARY_NAME@ @GSASL_LIBS@ @LIBGNUTLS_LIBS@ @VMIME_ADDITIONAL_PC_LIBS@\n")
4ee38be1b1cd package vmime: fix and use .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1660
diff changeset
563 + vmime_pc_in.write("Libs: -L${libdir} -l@GENERIC_VERSIONED_LIBRARY_NAME@ @GSASL_LIBS@ @LIBGNUTLS_LIBS@ @LIBICONV@ @PTHREAD_LIBS@ @VMIME_ADDITIONAL_PC_LIBS@\n")
4ee38be1b1cd package vmime: fix and use .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1660
diff changeset
564 #vmime_pc_in.write("Cflags: -I${includedir}/@GENERIC_VERSIONED_LIBRARY_NAME@\n")
4ee38be1b1cd package vmime: fix and use .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1660
diff changeset
565 vmime_pc_in.write("Cflags: -I${includedir}/ @LIBGNUTLS_CFLAGS@\n")
4ee38be1b1cd package vmime: fix and use .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1660
diff changeset
566 vmime_pc_in.close()
1660
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
567 @@ -1709,7 +1709,7 @@ fi
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
568
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
569 # -- Link with Winsock (Windows)
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
570 if test "x$VMIME_DETECT_PLATFORM" = "xwindows"; then
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
571 - VMIME_ADDITIONAL_PC_LIBS="$VMIME_ADDITIONAL_PC_LIBS -lwsock32"
1668
4ee38be1b1cd package vmime: fix and use .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1660
diff changeset
572 + VMIME_ADDITIONAL_PC_LIBS="$VMIME_ADDITIONAL_PC_LIBS -lws2_32"
1660
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
573 fi
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
574
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
575 # -- getaddrinfo (POSIX)
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
576 --
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
577 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
578
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
579
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
580 From 2b48b4a68ce3e9b9b1a3f485123af5938a568324 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
581 From: Vincent Richard <vincent@vincent-richard.net>
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
582 Date: Thu, 31 Mar 2011 19:13:03 +0000
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
583 Subject: [PATCH 10/38] Flush stateful data from iconv (thanks to John van der
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
584 Kamp, Zarafa).
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
585
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
586 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
587 src/charsetConverter.cpp | 13 +++++++++----
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
588 tests/parser/charsetTest.cpp | 10 ++++++++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
589 2 files changed, 19 insertions(+), 4 deletions(-)
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
590
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
591 diff --git a/src/charsetConverter.cpp b/src/charsetConverter.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
592 index 38b9e5e..2135788 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
593 --- a/src/charsetConverter.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
594 +++ b/src/charsetConverter.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
595 @@ -119,6 +119,7 @@ void charsetConverter::convert(utility::inputStream& in, utility::outputStream&
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
596 size_t inPos = 0;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
597
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
598 bool prevIsInvalid = false;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
599 + bool breakAfterNext = false;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
600
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
601 while (true)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
602 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
603 @@ -126,11 +127,12 @@ void charsetConverter::convert(utility::inputStream& in, utility::outputStream&
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
604 size_t inLength = static_cast <size_t>(in.read(inBuffer + inPos, sizeof(inBuffer) - inPos) + inPos);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
605 size_t outLength = sizeof(outBuffer);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
606
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
607 - const char* inPtr = inBuffer;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
608 + const char* inPtr = breakAfterNext ? NULL : inBuffer;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
609 + size_t *ptrLength = breakAfterNext ? NULL : &inLength;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
610 char* outPtr = outBuffer;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
611
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
612 // Convert input bytes
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
613 - if (iconv(cd, ICONV_HACK(&inPtr), &inLength,
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
614 + if (iconv(cd, ICONV_HACK(&inPtr), ptrLength,
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
615 &outPtr, &outLength) == static_cast <size_t>(-1))
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
616 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
617 // Illegal input sequence or input sequence has no equivalent
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
618 @@ -170,9 +172,12 @@ void charsetConverter::convert(utility::inputStream& in, utility::outputStream&
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
619 prevIsInvalid = false;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
620 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
621
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
622 - // Check for end of data
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
623 - if (in.eof() && inPos == 0)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
624 + if (breakAfterNext)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
625 break;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
626 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
627 + // Check for end of data, loop again to flush stateful data from iconv
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
628 + if (in.eof() && inPos == 0)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
629 + breakAfterNext = true;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
630 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
631 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
632
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
633 diff --git a/tests/parser/charsetTest.cpp b/tests/parser/charsetTest.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
634 index 8ad71d7..54a09a7 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
635 --- a/tests/parser/charsetTest.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
636 +++ b/tests/parser/charsetTest.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
637 @@ -100,6 +100,7 @@ VMIME_TEST_SUITE_BEGIN
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
638 VMIME_TEST(testFilterValid1)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
639 VMIME_TEST(testFilterValid2)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
640 VMIME_TEST(testFilterValid3)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
641 + VMIME_TEST(testEncodingHebrew1255)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
642
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
643 // Test invalid input
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
644 VMIME_TEST(testFilterInvalid1)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
645 @@ -227,6 +228,15 @@ VMIME_TEST_SUITE_BEGIN
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
646 VASSERT_EQ("1", toHex(expectedOut), toHex(actualOut));
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
647 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
648
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
649 + void testEncodingHebrew1255()
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
650 + {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
651 + // hewbrew string in windows-1255 charset
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
652 + const char data[] = "\xe9\xf9\xf7\xf8\xe9\xf9\xf8\xf7\xe9\xe9\xf9";
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
653 + vmime::word w = vmime::word(data, "windows-1255");
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
654 + vmime::string encoded = w.generate();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
655 + // less than 60% ascii, base64 received
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
656 + VASSERT_EQ("1", "=?windows-1255?B?6fn3+On5+Pfp6fk=?=", encoded);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
657 + }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
658
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
659 // Conversion to hexadecimal for easier debugging
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
660 static const vmime::string toHex(const vmime::string str)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
661 --
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
662 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
663
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
664
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
665 From 8d2e039c5201e144ff08e2ff7cf9efe77fe4b3d0 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
666 From: Vincent Richard <vincent@vincent-richard.net>
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
667 Date: Fri, 10 Jun 2011 19:39:09 +0000
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
668 Subject: [PATCH 11/38] Requested email change.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
669
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
670 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
671 AUTHORS | 2 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
672 1 file changed, 1 insertion(+), 1 deletion(-)
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
673
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
674 diff --git a/AUTHORS b/AUTHORS
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
675 index 20a0181..bbddb30 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
676 --- a/AUTHORS
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
677 +++ b/AUTHORS
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
678 @@ -21,7 +21,7 @@ AUTHORS file.
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
679 - Rafael Fernandez <prf@adinet.com.uy>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
680 - Xin Li <lixin3@staff.sina.com.cn>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
681 - Benjamin Biron <benbiron@gmail.com>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
682 - - Bertrand Benoit <bsquare@bsquare.levillage.org>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
683 + - Bertrand Benoit <projettwk@users.sourceforge.net>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
684 - Tim Teulings <rael@edge.ping.de>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
685 - Georg Sauthoff <gsauthof@techfak.uni-bielefeld.de>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
686 - Pierre Thierry <nowhere.man@levallois.eu.org> (patches for STL algorithms)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
687 --
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
688 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
689
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
690
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
691 From cc6317f28ae0b61fea36e1bc78b09dc8300579f8 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
692 From: Vincent Richard <vincent@vincent-richard.net>
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
693 Date: Tue, 14 Jun 2011 18:37:54 +0000
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
694 Subject: [PATCH 12/38] Fixed compilation issue following namespace change.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
695
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
696 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
697 examples/example7.cpp | 6 +++---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
698 1 file changed, 3 insertions(+), 3 deletions(-)
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
699
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
700 diff --git a/examples/example7.cpp b/examples/example7.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
701 index 1ddb3d0..243b1da 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
702 --- a/examples/example7.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
703 +++ b/examples/example7.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
704 @@ -43,18 +43,18 @@ int main()
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
705 vmime::platform::setHandler<vmime::platforms::posix::posixHandler>();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
706
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
707 // Enumerate encoders
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
708 - vmime::encoderFactory* ef = vmime::encoderFactory::getInstance();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
709 + vmime::utility::encoder::encoderFactory* ef = vmime::utility::encoder::encoderFactory::getInstance();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
710
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
711 std::cout << "Available encoders:" << std::endl;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
712
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
713 for (int i = 0 ; i < ef->getEncoderCount() ; ++i)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
714 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
715 - vmime::ref <const vmime::encoderFactory::registeredEncoder>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
716 + vmime::ref <const vmime::utility::encoder::encoderFactory::registeredEncoder>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
717 enc = ef->getEncoderAt(i);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
718
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
719 std::cout << " * " << enc->getName() << std::endl;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
720
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
721 - vmime::ref <vmime::encoder> e = enc->create();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
722 + vmime::ref <vmime::utility::encoder::encoder> e = enc->create();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
723
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
724 std::vector <vmime::string> props = e->getAvailableProperties();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
725
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
726 --
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
727 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
728
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
729
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
730 From a916d12d44ac43fc8e4729e0a91f4d6243f29a11 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
731 From: Vincent Richard <vincent@vincent-richard.net>
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
732 Date: Sun, 19 Jun 2011 17:51:33 +0000
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
733 Subject: [PATCH 13/38] Fixed parsing of an attachment filename that is
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
734 between 66 and 76 characters long (Zarafa).
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
735
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
736 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
737 src/parameter.cpp | 3 ++-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
738 1 file changed, 2 insertions(+), 1 deletion(-)
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
739
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
740 diff --git a/src/parameter.cpp b/src/parameter.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
741 index 91a7e5c..f59d5ab 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
742 --- a/src/parameter.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
743 +++ b/src/parameter.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
744 @@ -281,7 +281,8 @@ void parameter::generate(utility::outputStream& os, const string::size_type maxL
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
745 bool needQuoting = false;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
746 string::size_type valueLength = 0;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
747
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
748 - for (string::size_type i = 0 ; (i < value.length()) && (pos + valueLength < maxLineLength - 4) ; ++i, ++valueLength)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
749 + // Use worst-case length name.length()+2 for 'name=' part of line
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
750 + for (string::size_type i = 0 ; (i < value.length()) && (pos + name.length() + 2 + valueLength < maxLineLength - 4) ; ++i, ++valueLength)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
751 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
752 switch (value[i])
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
753 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
754 --
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
755 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
756
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
757
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
758 From 9735165c57000a6368e91ce8852206a20930c1ca Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
759 From: Vincent Richard <vincent@vincent-richard.net>
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
760 Date: Sun, 19 Jun 2011 18:08:12 +0000
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
761 Subject: [PATCH 14/38] Correctly generate attachment names which are long and
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
762 have high characters for Outlook Express (Zarafa).
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
763
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
764 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
765 src/parameter.cpp | 70 ++++++++++++++++++++++++++++++++++++-----------------
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
766 1 file changed, 48 insertions(+), 22 deletions(-)
1660
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
767
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
768 diff --git a/src/parameter.cpp b/src/parameter.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
769 index f59d5ab..d757e1b 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
770 --- a/src/parameter.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
771 +++ b/src/parameter.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
772 @@ -268,17 +268,19 @@ void parameter::generate(utility::outputStream& os, const string::size_type maxL
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
773 // value is to be generated.
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
774
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
775 // A stream for a temporary storage
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
776 - std::ostringstream sevenBitBuffer;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
777 + std::string sevenBitBuffer;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
778 + utility::outputStreamStringAdapter sevenBitStream(sevenBitBuffer);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
779
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
780 string::size_type pos = curLinePos;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
781
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
782 if (pos + name.length() + 10 + value.length() > maxLineLength)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
783 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
784 - sevenBitBuffer << NEW_LINE_SEQUENCE;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
785 + sevenBitStream << NEW_LINE_SEQUENCE;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
786 pos = NEW_LINE_SEQUENCE_LENGTH;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
787 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
788
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
789 bool needQuoting = false;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
790 + bool needQuotedPrintable = false;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
791 string::size_type valueLength = 0;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
792
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
793 // Use worst-case length name.length()+2 for 'name=' part of line
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
794 @@ -308,6 +310,16 @@ void parameter::generate(utility::outputStream& os, const string::size_type maxL
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
795
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
796 needQuoting = true;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
797 break;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
798 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
799 + default:
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
800 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
801 + if (!parserHelpers::isAscii(value[i]))
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
802 + {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
803 + needQuotedPrintable = true;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
804 + needQuoting = true;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
805 + }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
806 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
807 + break;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
808 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
809 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
810
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
811 @@ -315,12 +327,12 @@ void parameter::generate(utility::outputStream& os, const string::size_type maxL
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
812
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
813 if (needQuoting)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
814 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
815 - sevenBitBuffer << name << "=\"";
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
816 + sevenBitStream << name << "=\"";
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
817 pos += name.length() + 2;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
818 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
819 else
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
820 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
821 - sevenBitBuffer << name << "=";
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
822 + sevenBitStream << name << "=";
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
823 pos += name.length() + 1;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
824 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
825
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
826 @@ -332,29 +344,43 @@ void parameter::generate(utility::outputStream& os, const string::size_type maxL
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
827 const bool alwaysEncode = m_value.getCharset().getRecommendedEncoding(recommendedEnc);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
828 bool extended = alwaysEncode;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
829
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
830 - for (string::size_type i = 0 ; (i < value.length()) && (pos < maxLineLength - 4) ; ++i)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
831 + if (needQuotedPrintable)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
832 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
833 - const char_t c = value[i];
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
834 -
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
835 - if (/* needQuoting && */ (c == '"' || c == '\\')) // 'needQuoting' is implicit
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
836 - {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
837 - sevenBitBuffer << '\\' << value[i]; // escape 'x' with '\x'
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
838 - pos += 2;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
839 - }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
840 - else if (parserHelpers::isAscii(c))
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
841 - {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
842 - sevenBitBuffer << value[i];
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
843 - ++pos;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
844 - }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
845 - else
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
846 + // Send the name in quoted-printable, so outlook express et.al.
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
847 + // will understand the real filename
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
848 + size_t oldLen = sevenBitBuffer.length();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
849 + m_value.generate(sevenBitStream);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
850 + pos += sevenBitBuffer.length() - oldLen;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
851 + extended = true; // also send with RFC-2231 encoding
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
852 + }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
853 + else
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
854 + {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
855 + // Do not chop off this value, but just add the complete name as one header line.
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
856 + for (string::size_type i = 0 ; i < value.length() ; ++i)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
857 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
858 - extended = true;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
859 + const char_t c = value[i];
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
860 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
861 + if (/* needQuoting && */ (c == '"' || c == '\\')) // 'needQuoting' is implicit
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
862 + {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
863 + sevenBitStream << '\\' << value[i]; // escape 'x' with '\x'
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
864 + pos += 2;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
865 + }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
866 + else if (parserHelpers::isAscii(c))
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
867 + {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
868 + sevenBitStream << value[i];
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
869 + ++pos;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
870 + }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
871 + else
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
872 + {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
873 + extended = true;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
874 + }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
875 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
876 - }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
877 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
878 + } // !needQuotedPrintable
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
879
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
880 if (needQuoting)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
881 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
882 - sevenBitBuffer << '"';
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
883 + sevenBitStream << '"';
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
884 ++pos;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
885 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
886
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
887 @@ -532,7 +558,7 @@ void parameter::generate(utility::outputStream& os, const string::size_type maxL
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
888 // "7bit/us-ascii" will suffice in this case.
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
889
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
890 // Output what has been stored in temporary buffer so far
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
891 - os << sevenBitBuffer.str();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
892 + os << sevenBitBuffer;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
893 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
894 #endif // !VMIME_ALWAYS_GENERATE_7BIT_PARAMETER
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
895
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
896 --
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
897 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
898
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
899
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
900 From 8d69ad6849d8d6b211674942157f2af8bcd51c26 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
901 From: Vincent Richard <vincent@vincent-richard.net>
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
902 Date: Sun, 19 Jun 2011 18:16:49 +0000
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
903 Subject: [PATCH 15/38] Alias for UTF-7 charset.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
904
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
905 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
906 src/charset.cpp | 7 +++++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
907 1 file changed, 7 insertions(+)
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
908
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
909 diff --git a/src/charset.cpp b/src/charset.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
910 index e043186..0fda450 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
911 --- a/src/charset.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
912 +++ b/src/charset.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
913 @@ -45,6 +45,9 @@ charset::charset()
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
914 charset::charset(const string& name)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
915 : m_name(name)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
916 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
917 + // If we receive this rfc-1642 valid MIME charset, convert it to something usefull for iconv
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
918 + if (utility::stringUtils::isStringEqualNoCase(m_name, "unicode-1-1-utf-7"))
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
919 + m_name = "utf-7";
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
920 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
921
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
922
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
923 @@ -60,6 +63,10 @@ void charset::parse(const string& buffer, const string::size_type position,
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
924 m_name = utility::stringUtils::trim
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
925 (string(buffer.begin() + position, buffer.begin() + end));
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
926
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
927 + // If we parsed this rfc-1642 valid MIME charset, convert it to something usefull for iconv
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
928 + if (utility::stringUtils::isStringEqualNoCase(m_name, "unicode-1-1-utf-7"))
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
929 + m_name = "utf-7";
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
930 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
931 setParsedBounds(position, end);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
932
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
933 if (newPosition)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
934 --
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
935 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
936
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
937
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
938 From ccd95daf9cdd7171fc2027afa5d0ad80b0475ded Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
939 From: Vincent Richard <vincent@vincent-richard.net>
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
940 Date: Sun, 19 Jun 2011 18:39:35 +0000
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
941 Subject: [PATCH 16/38] Fixed messageBuilder to accept an empty mailbox group
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
942 in 'To:' field, to allow for undisclosed-recipients
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
943 (Zarafa).
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
944
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
945 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
946 src/messageBuilder.cpp | 8 +++-----
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
947 1 file changed, 3 insertions(+), 5 deletions(-)
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
948
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
949 diff --git a/src/messageBuilder.cpp b/src/messageBuilder.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
950 index 870d59e..3597b3a 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
951 --- a/src/messageBuilder.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
952 +++ b/src/messageBuilder.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
953 @@ -51,17 +51,15 @@ ref <message> messageBuilder::construct() const
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
954 // Generate the header fields
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
955 msg->getHeader()->Subject()->setValue(m_subject);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
956
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
957 - if (m_from.isEmpty())
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
958 - throw exceptions::no_expeditor();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
959 -
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
960 - if ((m_to.isEmpty() || m_to.getAddressAt(0)->isEmpty()) &&
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
961 + if (((m_to.isEmpty()) || (m_to.getAddressAt(0)->isEmpty() && !m_to.getAddressAt(0)->isGroup())) &&
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
962 (m_cc.isEmpty() || m_cc.getAddressAt(0)->isEmpty()) &&
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
963 (m_bcc.isEmpty() || m_bcc.getAddressAt(0)->isEmpty()))
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
964 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
965 throw exceptions::no_recipient();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
966 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
967
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
968 - msg->getHeader()->From()->setValue(m_from);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
969 + if (!m_from.isEmpty())
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
970 + msg->getHeader()->From()->setValue(m_from);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
971
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
972 if (!m_to.isEmpty())
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
973 msg->getHeader()->To()->setValue(m_to);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
974 --
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
975 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
976
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
977
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
978 From 583e25bcdee132e53e0792cd8f0d8e535cabb743 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
979 From: Vincent Richard <vincent@vincent-richard.net>
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
980 Date: Sun, 19 Jun 2011 18:49:55 +0000
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
981 Subject: [PATCH 17/38] Added support for mailboxes that specify an (encoded)
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
982 full name with an empty email address, set by a <>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
983 marker (Zarafa).
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
984
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
985 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
986 src/mailbox.cpp | 4 +++-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
987 tests/parser/mailboxTest.cpp | 15 +++++++++++++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
988 2 files changed, 18 insertions(+), 1 deletion(-)
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
989
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
990 diff --git a/src/mailbox.cpp b/src/mailbox.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
991 index 5cb0139..fea7479 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
992 --- a/src/mailbox.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
993 +++ b/src/mailbox.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
994 @@ -88,6 +88,7 @@ void mailbox::parse(const string& buffer, const string::size_type position,
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
995 // Temporary buffers for extracted name and address
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
996 string name;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
997 string address;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
998 + bool hadBrackets = false;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
999
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1000 while (p < pend)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1001 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1002 @@ -283,6 +284,7 @@ void mailbox::parse(const string& buffer, const string::size_type position,
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1003 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1004 else if (*p == '>')
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1005 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1006 + hadBrackets = true;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1007 break;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1008 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1009 else if (!parserHelpers::isSpace(*p))
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1010 @@ -309,7 +311,7 @@ void mailbox::parse(const string& buffer, const string::size_type position,
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1011
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1012 // Swap name and address when no address was found
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1013 // (email address is mandatory, whereas name is optional).
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1014 - if (address.empty() && !name.empty())
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1015 + if (address.empty() && !name.empty() && !hadBrackets)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1016 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1017 m_email.clear();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1018 m_email.reserve(name.size());
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1019 diff --git a/tests/parser/mailboxTest.cpp b/tests/parser/mailboxTest.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1020 index 8411daa..9ebadca 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1021 --- a/tests/parser/mailboxTest.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1022 +++ b/tests/parser/mailboxTest.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1023 @@ -32,6 +32,7 @@ VMIME_TEST_SUITE_BEGIN
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1024
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1025 VMIME_TEST_LIST_BEGIN
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1026 VMIME_TEST(testParse)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1027 + VMIME_TEST(testEmptyEmailAddress)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1028 VMIME_TEST_LIST_END
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1029
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1030
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1031 @@ -113,5 +114,19 @@ VMIME_TEST_SUITE_BEGIN
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1032 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1033 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1034
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1035 + void testEmptyEmailAddress()
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1036 + {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1037 + vmime::addressList addrList;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1038 + addrList.parse("\"Full Name\" <>");
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1039 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1040 + VASSERT_EQ("count", 1, addrList.getAddressCount());
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1041 + VASSERT_EQ("!group", false, addrList.getAddressAt(0)->isGroup());
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1042 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1043 + vmime::ref <vmime::mailbox> mbox = addrList.getAddressAt(0).dynamicCast <vmime::mailbox>();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1044 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1045 + VASSERT_EQ("name", "Full Name", mbox->getName());
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1046 + VASSERT_EQ("email", "", mbox->getEmail());
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1047 + }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1048 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1049 VMIME_TEST_SUITE_END
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1050
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1051 --
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1052 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1053
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1054
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1055 From 461b92f84d5c16b297d33610fcd89fc7ca5a161a Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1056 From: Vincent Richard <vincent@vincent-richard.net>
1920
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1057 Date: Fri, 24 Jun 2011 15:46:23 +0000
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1058 Subject: [PATCH 18/38] Added missing libs in pkg-config file.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1059
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1060 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1061 SConstruct | 2 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1062 1 file changed, 1 insertion(+), 1 deletion(-)
1920
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1063
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1064 diff --git a/SConstruct b/SConstruct
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1065 index 177f5b4..37c0ac6 100644
1920
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1066 --- a/SConstruct
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1067 +++ b/SConstruct
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1068 @@ -1089,7 +1089,7 @@ def generateAutotools(target, source, env):
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1069 vmime_pc_in.write("Description: " + packageDescription + "\n")
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1070 vmime_pc_in.write("Version: @VERSION@\n")
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1071 vmime_pc_in.write("Requires: @GSASL_REQUIRED@\n")
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1072 - vmime_pc_in.write("Libs: -L${libdir} -l@GENERIC_VERSIONED_LIBRARY_NAME@ @GSASL_LIBS@ @LIBGNUTLS_LIBS@ @LIBICONV@ @PTHREAD_LIBS@ @VMIME_ADDITIONAL_PC_LIBS@\n")
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1073 + vmime_pc_in.write("Libs: -L${libdir} -l@GENERIC_VERSIONED_LIBRARY_NAME@ @GSASL_LIBS@ @LIBGNUTLS_LIBS@ @LIBICONV@ @PTHREAD_LIBS@ @LIBICONV@ @PTHREAD_LIBS@ @VMIME_ADDITIONAL_PC_LIBS@\n")
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1074 #vmime_pc_in.write("Cflags: -I${includedir}/@GENERIC_VERSIONED_LIBRARY_NAME@\n")
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1075 vmime_pc_in.write("Cflags: -I${includedir}/ @LIBGNUTLS_CFLAGS@\n")
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1076 vmime_pc_in.close()
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1077 --
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1078 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1079
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1080
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1081 From 2b2c0abd02a17ccff7d49e266b9854f4ea47f8e4 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1082 From: Vincent Richard <vincent@vincent-richard.net>
1920
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1083 Date: Sat, 25 Jun 2011 17:07:53 +0000
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1084 Subject: [PATCH 19/38] Fixed parsing of empty body parts (thanks to John van
1920
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1085 der Kamp, from Zarafa).
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1086
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1087 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1088 src/body.cpp | 5 +++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1089 tests/parser/bodyPartTest.cpp | 19 +++++++++++++++++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1090 2 files changed, 24 insertions(+)
1920
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1091
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1092 diff --git a/src/body.cpp b/src/body.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1093 index 8596833..9d7d57f 100644
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1094 --- a/src/body.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1095 +++ b/src/body.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1096 @@ -197,6 +197,11 @@ void body::parse(const string& buffer, const string::size_type position,
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1097 {
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1098 ref <bodyPart> part = vmime::create <bodyPart>();
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1099
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1100 + // End before start may happen on empty bodyparts (directly
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1101 + // successive boundaries without even a line-break)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1102 + if (partEnd < partStart)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1103 + std::swap(partStart, partEnd);
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1104 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1105 part->parse(buffer, partStart, partEnd, NULL);
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1106 part->m_parent = m_part;
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1107
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1108 diff --git a/tests/parser/bodyPartTest.cpp b/tests/parser/bodyPartTest.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1109 index b129913..075b8f9 100644
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1110 --- a/tests/parser/bodyPartTest.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1111 +++ b/tests/parser/bodyPartTest.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1112 @@ -36,6 +36,7 @@ VMIME_TEST_SUITE_BEGIN
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1113 VMIME_TEST(testParseMissingLastBoundary)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1114 VMIME_TEST(testPrologEpilog)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1115 VMIME_TEST(testPrologEncoding)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1116 + VMIME_TEST(testSuccessiveBoundaries)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1117 VMIME_TEST_LIST_END
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1118
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1119
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1120 @@ -181,5 +182,23 @@ VMIME_TEST_SUITE_BEGIN
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1121 VASSERT_EQ("epilog", "Epilog text", msg->getBody()->getEpilogText());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1122 }
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1123
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1124 + void testSuccessiveBoundaries()
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1125 + {
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1126 + vmime::string str =
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1127 + "Content-Type: multipart/mixed; boundary=\"MY-BOUNDARY\""
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1128 + "\r\n\r\n"
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1129 + "--MY-BOUNDARY\r\nHEADER1\r\n\r\nBODY1\r\n"
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1130 + "--MY-BOUNDARY\r\n"
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1131 + "--MY-BOUNDARY--\r\n";
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1132 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1133 + vmime::bodyPart p;
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1134 + p.parse(str);
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1135 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1136 + VASSERT_EQ("count", 2, p.getBody()->getPartCount());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1137 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1138 + VASSERT_EQ("part1-body", "BODY1", extractContents(p.getBody()->getPartAt(0)->getBody()->getContents()));
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1139 + VASSERT_EQ("part2-body", "", extractContents(p.getBody()->getPartAt(1)->getBody()->getContents()));
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1140 + }
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1141 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1142 VMIME_TEST_SUITE_END
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1143
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1144 --
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1145 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1146
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1147
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1148 From 2648d744da0e2e744c7959999ac513c3016072b4 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1149 From: Vincent Richard <vincent@vincent-richard.net>
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1150 Date: Sun, 26 Jun 2011 08:19:11 +0000
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1151 Subject: [PATCH 20/38] Use gnutls_priority_set_direct() instead of GNUTLS
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1152 deprecated functions.
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1153
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1154 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1155 SConstruct | 33 +++++++++++++++++++++++++++++++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1156 src/net/tls/TLSSession.cpp | 17 +++++++++++++++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1157 2 files changed, 50 insertions(+)
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1158
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1159 diff --git a/SConstruct b/SConstruct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1160 index 37c0ac6..01ad3f3 100644
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1161 --- a/SConstruct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1162 +++ b/SConstruct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1163 @@ -816,6 +816,7 @@ else:
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1164 config_hpp.write('// -- TLS/SSL support\n')
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1165 if env['with_tls'] == 'yes':
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1166 config_hpp.write('#define VMIME_HAVE_TLS_SUPPORT 1\n')
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1167 + config_hpp.write('#define HAVE_GNUTLS_PRIORITY_FUNCS 1\n')
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1168 else:
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1169 config_hpp.write('#define VMIME_HAVE_TLS_SUPPORT 0\n')
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1170
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1171 @@ -1626,11 +1627,42 @@ if test "x$conf_tls" = "xyes"; then
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1172 else
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1173 AC_MSG_ERROR(can't find an usable version of GNU TLS library)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1174 fi
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1175 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1176 + # -- check for gnutls_priority_set_direct() function
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1177 + if test "x$have_gnutls" = "xyes"; then
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1178 + AC_MSG_CHECKING(for gnutls_priority_set_direct)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1179 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1180 + LIBS_save="$LIBS"
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1181 + LIBS="$LIBS $LIBGNUTLS_LIBS"
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1182 + CPPFLAGS_save="$CPPFLAGS"
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1183 + CPPFLAGS="$CPPFLAGS $LIBGNUTLS_CFLAGS"
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1184 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1185 + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <gnutls/gnutls.h>],
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1186 + [gnutls_session s; gnutls_priority_set_direct(s, NULL, NULL);])],
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1187 + [have_gnutls_priority_funcs=yes],
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1188 + [have_gnutls_priority_funcs=no])
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1189 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1190 + CPPFLAGS="$CPPFLAGS_save"
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1191 + LIBS="$LIBS_save"
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1192 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1193 + AC_MSG_RESULT([$have_gnutls_priority_funcs])
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1194 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1195 + if test "x$have_gnutls_priority_funcs" = "xyes"; then
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1196 + AM_CONDITIONAL(HAVE_GNUTLS_PRIORITY_FUNCS, true)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1197 + HAVE_GNUTLS_PRIORITY_FUNCS=1
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1198 + else
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1199 + AM_CONDITIONAL(HAVE_GNUTLS_PRIORITY_FUNCS, false)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1200 + HAVE_GNUTLS_PRIORITY_FUNCS=0
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1201 + fi
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1202 + fi
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1203 else
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1204 AM_CONDITIONAL(VMIME_HAVE_TLS_SUPPORT, false)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1205 VMIME_HAVE_TLS_SUPPORT=0
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1206 fi
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1207
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1208 +AC_SUBST(LIBGNUTLS_CFLAGS)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1209 +AC_SUBST(LIBGNUTLS_LIBS)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1210 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1211 # ** platform handlers
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1212
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1213 VMIME_BUILTIN_PLATFORMS=''
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1214 @@ -1919,6 +1951,7 @@ typedef unsigned ${VMIME_TYPE_INT32} vmime_uint32;
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1215 #define VMIME_HAVE_SASL_SUPPORT ${VMIME_HAVE_SASL_SUPPORT}
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1216 // -- TLS support
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1217 #define VMIME_HAVE_TLS_SUPPORT ${VMIME_HAVE_TLS_SUPPORT}
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1218 +#define HAVE_GNUTLS_PRIORITY_FUNCS ${HAVE_GNUTLS_PRIORITY_FUNCS}
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1219 // -- Messaging support
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1220 #define VMIME_HAVE_MESSAGING_FEATURES ${VMIME_HAVE_MESSAGING_FEATURES}
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1221 """)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1222 diff --git a/src/net/tls/TLSSession.cpp b/src/net/tls/TLSSession.cpp
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1223 index 010c007..af73a05 100644
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1224 --- a/src/net/tls/TLSSession.cpp
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1225 +++ b/src/net/tls/TLSSession.cpp
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1226 @@ -123,6 +123,21 @@ TLSSession::TLSSession(ref <security::cert::certificateVerifier> cv)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1227
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1228 // Sets some default priority on the ciphers, key exchange methods,
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1229 // macs and compression methods.
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1230 +#if HAVE_GNUTLS_PRIORITY_FUNCS
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1231 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1232 + if ((res = gnutls_priority_set_direct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1233 + (*m_gnutlsSession, "NORMAL:%SSL3_RECORD_VERSION", NULL)) != 0)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1234 + {
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1235 + if ((res = gnutls_priority_set_direct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1236 + (*m_gnutlsSession, "NORMAL", NULL)) != 0)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1237 + {
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1238 + throwTLSException
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1239 + ("gnutls_priority_set_direct", res);
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1240 + }
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1241 + }
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1242 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1243 +#else // !HAVE_GNUTLS_PRIORITY_FUNCS
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1244 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1245 gnutls_set_default_priority(*m_gnutlsSession);
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1246
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1247 // Sets the priority on the certificate types supported by gnutls.
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1248 @@ -197,6 +212,8 @@ TLSSession::TLSSession(ref <security::cert::certificateVerifier> cv)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1249
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1250 gnutls_compression_set_priority(*m_gnutlsSession, compressionPriority);
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1251
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1252 +#endif // !HAVE_GNUTLS_PRIORITY_FUNCS
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1253 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1254 // Initialize credentials
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1255 gnutls_credentials_set(*m_gnutlsSession,
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1256 GNUTLS_CRD_ANON, g_gnutlsGlobal.anonCred);
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1257 --
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1258 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1259
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1260
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1261 From 1060121ffd4315c3158ffc001040f4f705514e7a Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1262 From: Vincent Richard <vincent@vincent-richard.net>
1920
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1263 Date: Sun, 26 Jun 2011 12:47:25 +0000
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1264 Subject: [PATCH 21/38] Fixed encoding of whitespace. Fixed old test case.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1265
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1266 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1267 src/text.cpp | 6 ------
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1268 tests/parser/textTest.cpp | 42 +++++++++++++++++++++++++++++++++++++++++-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1269 2 files changed, 41 insertions(+), 7 deletions(-)
1920
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1270
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1271 diff --git a/src/text.cpp b/src/text.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1272 index 2454456..66c3b35 100644
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1273 --- a/src/text.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1274 +++ b/src/text.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1275 @@ -320,12 +320,6 @@ void text::createFromString(const string& in, const charset& ch)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1276 }
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1277 else
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1278 {
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1279 - if (count)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1280 - {
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1281 - ref <word> w = getWordAt(getWordCount() - 1);
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1282 - w->getBuffer() += ' ';
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1283 - }
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1284 -
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1285 appendWord(vmime::create <word>
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1286 (chunk, charset(charsets::US_ASCII)));
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1287
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1288 diff --git a/tests/parser/textTest.cpp b/tests/parser/textTest.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1289 index 746ac94..43ec836 100644
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1290 --- a/tests/parser/textTest.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1291 +++ b/tests/parser/textTest.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1292 @@ -53,6 +53,8 @@ VMIME_TEST_SUITE_BEGIN
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1293
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1294 VMIME_TEST(testFoldingAscii)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1295 VMIME_TEST(testForcedNonEncoding)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1296 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1297 + VMIME_TEST(testBugFix20110511)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1298 VMIME_TEST_LIST_END
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1299
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1300
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1301 @@ -149,7 +151,7 @@ VMIME_TEST_SUITE_BEGIN
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1302 VASSERT_EQ("2.1", 3, t2.getWordCount());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1303 VASSERT_EQ("2.2", "some ASCII characters and special chars: ", t2.getWordAt(0)->getBuffer());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1304 VASSERT_EQ("2.3", vmime::charset(vmime::charsets::US_ASCII), t2.getWordAt(0)->getCharset());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1305 - VASSERT_EQ("2.4", "\xf1\xf2\xf3\xf4 ", t2.getWordAt(1)->getBuffer());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1306 + VASSERT_EQ("2.4", "\xf1\xf2\xf3\xf4", t2.getWordAt(1)->getBuffer());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1307 VASSERT_EQ("2.5", c2, t2.getWordAt(1)->getCharset());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1308 VASSERT_EQ("2.6", "and then more ASCII chars.", t2.getWordAt(2)->getBuffer());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1309 VASSERT_EQ("2.7", vmime::charset(vmime::charsets::US_ASCII), t2.getWordAt(2)->getCharset());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1310 @@ -453,5 +455,43 @@ VMIME_TEST_SUITE_BEGIN
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1311 VASSERT_EQ("received.long", "from User\r\n (Ee9GMqZQ8t7IQwftfAFHd2KyScCYRrFSJ50tKEoXv2bVCG4HcPU80GGWiFabAvG77FekpGgF1h@[127.0.0.1])\r\n by servername.hostname.com with esmtp id 1NGTS9-2C0sqG0; Fri, 4 Dec 2009\r\n 09:23:49 +0100", r.generate(78));
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1312 }
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1313
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1314 + void testBugFix20110511()
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1315 + {
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1316 + /*
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1317 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1318 + Using the latest version of vmime (0.9.1), encoding the following string: Jean
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1319 + Gwenaël Dutourd will result in:
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1320 + Jean =?utf-8?Q?Gwena=C3=ABl_?= Dutourd
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1321 + However, decoding this will result in Jean Gwenaël Dutourd (notice two spaces
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1322 + between the last 2 words). The encoder adds a _ after the second word, but
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1323 + since the last word is not encoded, the space between them is not ignored, and
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1324 + is decoded into an additional space.
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1325 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1326 + See: http://sourceforge.net/projects/vmime/forums/forum/237357/topic/4531365
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1327 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1328 + */
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1329 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1330 + const std::string DECODED_TEXT = "Jean Gwenaël Dutourd";
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1331 + const std::string ENCODED_TEXT = "Jean =?utf-8?Q?Gwena=C3=ABl?= Dutourd";
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1332 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1333 + // Encode
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1334 + VASSERT_EQ("encode", ENCODED_TEXT,
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1335 + vmime::text::newFromString(DECODED_TEXT, vmime::charset("utf-8"))->generate());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1336 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1337 + // Decode
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1338 + vmime::text t;
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1339 + t.parse(ENCODED_TEXT);
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1340 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1341 + // -- words
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1342 + std::ostringstream oss; oss << t;
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1343 + VASSERT_EQ("decode1",
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1344 + "[text: [[word: charset=us-ascii, buffer=Jean ],"
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1345 + "[word: charset=utf-8, buffer=Gwenaël],"
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1346 + "[word: charset=us-ascii, buffer= Dutourd]]]", oss.str());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1347 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1348 + // -- getWholeBuffer
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1349 + VASSERT_EQ("decode2", DECODED_TEXT, t.getWholeBuffer());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1350 + }
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1351 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1352 VMIME_TEST_SUITE_END
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1353
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1354 --
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1355 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1356
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1357
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1358 From dc6dc039fc0edccf4630894fa6ed8cd4bf3bb3ce Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1359 From: Vincent Richard <vincent@vincent-richard.net>
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1360 Date: Sat, 20 Aug 2011 06:35:06 +0000
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1361 Subject: [PATCH 22/38] Use gnutls_strerror() for reporting errors.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1362
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1363 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1364 src/net/tls/TLSSession.cpp | 120 ++++----------------------------------------
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1365 1 file changed, 9 insertions(+), 111 deletions(-)
1920
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1366
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1367 diff --git a/src/net/tls/TLSSession.cpp b/src/net/tls/TLSSession.cpp
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1368 index af73a05..7426a73 100644
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1369 --- a/src/net/tls/TLSSession.cpp
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1370 +++ b/src/net/tls/TLSSession.cpp
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1371 @@ -41,6 +41,9 @@
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1372 //#define GNUTLS_DEBUG 1
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1373
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1374
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1375 +#include <sstream>
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1376 +#include <iomanip>
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1377 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1378 #if VMIME_DEBUG && GNUTLS_DEBUG
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1379 #include <iostream>
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1380 #endif // VMIME_DEBUG && GNUTLS_DEBUG
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1381 @@ -257,119 +260,14 @@ ref <security::cert::certificateVerifier> TLSSession::getCertificateVerifier()
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1382
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1383 void TLSSession::throwTLSException(const string& fname, const int code)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1384 {
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1385 - string msg = fname + "() returned ";
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1386 -
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1387 -#define ERROR(x) \
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1388 - case x: msg += #x; break;
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1389 -
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1390 - switch (code)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1391 - {
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1392 - ERROR(GNUTLS_E_SUCCESS)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1393 - ERROR(GNUTLS_E_UNKNOWN_COMPRESSION_ALGORITHM)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1394 - ERROR(GNUTLS_E_UNKNOWN_CIPHER_TYPE)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1395 - ERROR(GNUTLS_E_LARGE_PACKET)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1396 - ERROR(GNUTLS_E_UNSUPPORTED_VERSION_PACKET)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1397 - ERROR(GNUTLS_E_UNEXPECTED_PACKET_LENGTH)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1398 - ERROR(GNUTLS_E_INVALID_SESSION)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1399 - ERROR(GNUTLS_E_FATAL_ALERT_RECEIVED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1400 - ERROR(GNUTLS_E_UNEXPECTED_PACKET)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1401 - ERROR(GNUTLS_E_WARNING_ALERT_RECEIVED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1402 - ERROR(GNUTLS_E_ERROR_IN_FINISHED_PACKET)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1403 - ERROR(GNUTLS_E_UNEXPECTED_HANDSHAKE_PACKET)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1404 - ERROR(GNUTLS_E_UNKNOWN_CIPHER_SUITE)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1405 - ERROR(GNUTLS_E_UNWANTED_ALGORITHM)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1406 - ERROR(GNUTLS_E_MPI_SCAN_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1407 - ERROR(GNUTLS_E_DECRYPTION_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1408 - ERROR(GNUTLS_E_MEMORY_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1409 - ERROR(GNUTLS_E_DECOMPRESSION_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1410 - ERROR(GNUTLS_E_COMPRESSION_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1411 - ERROR(GNUTLS_E_AGAIN)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1412 - ERROR(GNUTLS_E_EXPIRED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1413 - ERROR(GNUTLS_E_DB_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1414 - ERROR(GNUTLS_E_SRP_PWD_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1415 - ERROR(GNUTLS_E_INSUFFICIENT_CREDENTIALS)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1416 - ERROR(GNUTLS_E_HASH_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1417 - ERROR(GNUTLS_E_BASE64_DECODING_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1418 - ERROR(GNUTLS_E_MPI_PRINT_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1419 - ERROR(GNUTLS_E_REHANDSHAKE)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1420 - ERROR(GNUTLS_E_GOT_APPLICATION_DATA)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1421 - ERROR(GNUTLS_E_RECORD_LIMIT_REACHED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1422 - ERROR(GNUTLS_E_ENCRYPTION_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1423 - ERROR(GNUTLS_E_PK_ENCRYPTION_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1424 - ERROR(GNUTLS_E_PK_DECRYPTION_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1425 - ERROR(GNUTLS_E_PK_SIGN_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1426 - ERROR(GNUTLS_E_X509_UNSUPPORTED_CRITICAL_EXTENSION)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1427 - ERROR(GNUTLS_E_KEY_USAGE_VIOLATION)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1428 - ERROR(GNUTLS_E_NO_CERTIFICATE_FOUND)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1429 - ERROR(GNUTLS_E_INVALID_REQUEST)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1430 - ERROR(GNUTLS_E_SHORT_MEMORY_BUFFER)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1431 - ERROR(GNUTLS_E_INTERRUPTED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1432 - ERROR(GNUTLS_E_PUSH_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1433 - ERROR(GNUTLS_E_PULL_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1434 - ERROR(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1435 - ERROR(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1436 - ERROR(GNUTLS_E_PKCS1_WRONG_PAD)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1437 - ERROR(GNUTLS_E_RECEIVED_ILLEGAL_EXTENSION)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1438 - ERROR(GNUTLS_E_INTERNAL_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1439 - ERROR(GNUTLS_E_DH_PRIME_UNACCEPTABLE)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1440 - ERROR(GNUTLS_E_FILE_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1441 - ERROR(GNUTLS_E_TOO_MANY_EMPTY_PACKETS)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1442 - ERROR(GNUTLS_E_UNKNOWN_PK_ALGORITHM)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1443 - ERROR(GNUTLS_E_INIT_LIBEXTRA)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1444 - ERROR(GNUTLS_E_LIBRARY_VERSION_MISMATCH)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1445 - ERROR(GNUTLS_E_NO_TEMPORARY_RSA_PARAMS)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1446 - ERROR(GNUTLS_E_LZO_INIT_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1447 - ERROR(GNUTLS_E_NO_COMPRESSION_ALGORITHMS)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1448 - ERROR(GNUTLS_E_NO_CIPHER_SUITES)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1449 - ERROR(GNUTLS_E_OPENPGP_GETKEY_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1450 - ERROR(GNUTLS_E_PK_SIG_VERIFY_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1451 - ERROR(GNUTLS_E_ILLEGAL_SRP_USERNAME)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1452 - ERROR(GNUTLS_E_SRP_PWD_PARSING_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1453 - ERROR(GNUTLS_E_NO_TEMPORARY_DH_PARAMS)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1454 - ERROR(GNUTLS_E_ASN1_ELEMENT_NOT_FOUND)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1455 - ERROR(GNUTLS_E_ASN1_IDENTIFIER_NOT_FOUND)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1456 - ERROR(GNUTLS_E_ASN1_DER_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1457 - ERROR(GNUTLS_E_ASN1_VALUE_NOT_FOUND)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1458 - ERROR(GNUTLS_E_ASN1_GENERIC_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1459 - ERROR(GNUTLS_E_ASN1_VALUE_NOT_VALID)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1460 - ERROR(GNUTLS_E_ASN1_TAG_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1461 - ERROR(GNUTLS_E_ASN1_TAG_IMPLICIT)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1462 - ERROR(GNUTLS_E_ASN1_TYPE_ANY_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1463 - ERROR(GNUTLS_E_ASN1_SYNTAX_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1464 - ERROR(GNUTLS_E_ASN1_DER_OVERFLOW)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1465 - //ERROR(GNUTLS_E_OPENPGP_TRUSTDB_VERSION_UNSUPPORTED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1466 - ERROR(GNUTLS_E_OPENPGP_UID_REVOKED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1467 - ERROR(GNUTLS_E_CERTIFICATE_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1468 - //ERROR(GNUTLS_E_X509_CERTIFICATE_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1469 - ERROR(GNUTLS_E_CERTIFICATE_KEY_MISMATCH)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1470 - ERROR(GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1471 - ERROR(GNUTLS_E_X509_UNKNOWN_SAN)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1472 - ERROR(GNUTLS_E_OPENPGP_FINGERPRINT_UNSUPPORTED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1473 - ERROR(GNUTLS_E_X509_UNSUPPORTED_ATTRIBUTE)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1474 - ERROR(GNUTLS_E_UNKNOWN_HASH_ALGORITHM)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1475 - ERROR(GNUTLS_E_UNKNOWN_PKCS_CONTENT_TYPE)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1476 - ERROR(GNUTLS_E_UNKNOWN_PKCS_BAG_TYPE)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1477 - ERROR(GNUTLS_E_INVALID_PASSWORD)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1478 - ERROR(GNUTLS_E_MAC_VERIFY_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1479 - ERROR(GNUTLS_E_CONSTRAINT_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1480 - ERROR(GNUTLS_E_BASE64_ENCODING_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1481 - ERROR(GNUTLS_E_INCOMPATIBLE_GCRYPT_LIBRARY)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1482 - //ERROR(GNUTLS_E_INCOMPATIBLE_CRYPTO_LIBRARY)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1483 - ERROR(GNUTLS_E_INCOMPATIBLE_LIBTASN1_LIBRARY)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1484 - ERROR(GNUTLS_E_OPENPGP_KEYRING_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1485 - ERROR(GNUTLS_E_X509_UNSUPPORTED_OID)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1486 - //ERROR(GNUTLS_E_RANDOM_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1487 - ERROR(GNUTLS_E_UNIMPLEMENTED_FEATURE)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1488 -
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1489 - default:
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1490 -
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1491 - msg += "unknown error";
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1492 - break;
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1493 - }
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1494 + std::ostringstream msg;
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1495
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1496 -#undef ERROR
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1497 + msg << fname + "() returned code ";
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1498 + msg << std::hex << code;
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1499 + msg << ": ";
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1500 + msg << gnutls_strerror(code);
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1501
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1502 - throw exceptions::tls_exception(msg);
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1503 + throw exceptions::tls_exception(msg.str());
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1504 }
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1505
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1506
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1507 --
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1508 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1509
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1510
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1511 From 7ea6fc3737ef36407e1c90f3aa05f89a39bdefb7 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1512 From: Vincent Richard <vincent@vincent-richard.net>
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1513 Date: Sun, 21 Aug 2011 08:55:46 +0000
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1514 Subject: [PATCH 23/38] Removed dependency on gcrypt for gnutls version >=
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1515 2.12.
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1516
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1517 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1518 src/net/tls/TLSSession.cpp | 14 ++++++++++++--
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1519 1 file changed, 12 insertions(+), 2 deletions(-)
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1520
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1521 diff --git a/src/net/tls/TLSSession.cpp b/src/net/tls/TLSSession.cpp
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1522 index 7426a73..d3f6d49 100644
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1523 --- a/src/net/tls/TLSSession.cpp
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1524 +++ b/src/net/tls/TLSSession.cpp
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1525 @@ -26,9 +26,17 @@
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1526
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1527 #include "vmime/config.hpp"
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1528
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1529 +// Dependency on gcrypt is not needed since GNU TLS version 2.12.
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1530 +// See here: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=638651
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1531 +#if GNUTLS_VERSION_NUMBER <= 0x020b00
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1532 +# define VMIME_GNUTLS_NEEDS_GCRYPT 1
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1533 +#endif
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1534 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1535 #if VMIME_HAVE_PTHREAD
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1536 # include <pthread.h>
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1537 -# include <gcrypt.h>
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1538 +# if VMIME_GNUTLS_NEEDS_GCRYPT
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1539 +# include <gcrypt.h>
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1540 +# endif
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1541 # include <errno.h>
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1542 #endif // VMIME_HAVE_PTHREAD
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1543
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1544 @@ -49,7 +57,7 @@
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1545 #endif // VMIME_DEBUG && GNUTLS_DEBUG
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1546
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1547
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1548 -#if VMIME_HAVE_PTHREAD && defined(GCRY_THREAD_OPTION_PTHREAD_IMPL)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1549 +#if VMIME_HAVE_PTHREAD && VMIME_GNUTLS_NEEDS_GCRYPT && defined(GCRY_THREAD_OPTION_PTHREAD_IMPL)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1550 extern "C"
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1551 {
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1552 GCRY_THREAD_OPTION_PTHREAD_IMPL;
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1553 @@ -70,7 +78,9 @@ struct TLSGlobal
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1554 TLSGlobal()
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1555 {
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1556 #if VMIME_HAVE_PTHREAD && defined(GCRY_THREAD_OPTION_PTHREAD_IMPL)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1557 + #if VMIME_GNUTLS_NEEDS_GCRYPT
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1558 gcry_control(GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread);
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1559 + #endif // VMIME_GNUTLS_NEEDS_GCRYPT
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1560 #endif // VMIME_HAVE_PTHREAD && defined(GCRY_THREAD_OPTION_PTHREAD_IMPL
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1561
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1562 gnutls_global_init();
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1563 --
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1564 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1565
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1566
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1567 From f21c55be642b166a2f0518ace2b179bed3916b23 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1568 From: Vincent Richard <vincent@vincent-richard.net>
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1569 Date: Sun, 21 Aug 2011 09:04:46 +0000
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1570 Subject: [PATCH 24/38] Fixed HAVE_GNUTLS_PRIORITY_FUNCS never defined when
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1571 configured with no TLS support.
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1572
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1573 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1574 SConstruct | 6 ++++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1575 1 file changed, 6 insertions(+)
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1576
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1577 diff --git a/SConstruct b/SConstruct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1578 index 01ad3f3..11e884b 100644
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1579 --- a/SConstruct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1580 +++ b/SConstruct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1581 @@ -1654,10 +1654,16 @@ if test "x$conf_tls" = "xyes"; then
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1582 AM_CONDITIONAL(HAVE_GNUTLS_PRIORITY_FUNCS, false)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1583 HAVE_GNUTLS_PRIORITY_FUNCS=0
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1584 fi
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1585 + else
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1586 + AM_CONDITIONAL(HAVE_GNUTLS_PRIORITY_FUNCS, false)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1587 + HAVE_GNUTLS_PRIORITY_FUNCS=0
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1588 fi
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1589 else
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1590 AM_CONDITIONAL(VMIME_HAVE_TLS_SUPPORT, false)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1591 VMIME_HAVE_TLS_SUPPORT=0
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1592 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1593 + AM_CONDITIONAL(HAVE_GNUTLS_PRIORITY_FUNCS, false)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1594 + HAVE_GNUTLS_PRIORITY_FUNCS=0
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1595 fi
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1596
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1597 AC_SUBST(LIBGNUTLS_CFLAGS)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1598 --
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1599 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1600
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1601
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1602 From d4e66226a696745adafa1767210580f8fbb7ae00 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1603 From: Vincent Richard <vincent@vincent-richard.net>
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
1604 Date: Tue, 15 Nov 2011 11:40:42 +0000
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1605 Subject: [PATCH 25/38] GNU TLS 3 has no 'extra' (thanks to mabrand).
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1606
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1607 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1608 src/net/tls/TLSSession.cpp | 2 ++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1609 1 file changed, 2 insertions(+)
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1610
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1611 diff --git a/src/net/tls/TLSSession.cpp b/src/net/tls/TLSSession.cpp
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1612 index d3f6d49..cb50acc 100644
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1613 --- a/src/net/tls/TLSSession.cpp
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1614 +++ b/src/net/tls/TLSSession.cpp
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1615 @@ -22,7 +22,9 @@
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1616 //
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1617
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1618 #include <gnutls/gnutls.h>
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1619 +#if GNUTLS_VERSION_NUMBER < 0x030000
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1620 #include <gnutls/extra.h>
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1621 +#endif
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1622
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1623 #include "vmime/config.hpp"
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1624
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1625 --
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1626 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1627
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1628
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1629 From bacbe512e406d22f6acc83597fcdfc2d624cf82b Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1630 From: Vincent Richard <vincent@vincent-richard.net>
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
1631 Date: Tue, 15 Nov 2011 11:46:07 +0000
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1632 Subject: [PATCH 26/38] Set Diffie-Hellman prime size (bug SF#3434852).
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1633
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1634 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1635 src/net/tls/TLSSession.cpp | 1 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1636 1 file changed, 1 insertion(+)
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1637
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1638 diff --git a/src/net/tls/TLSSession.cpp b/src/net/tls/TLSSession.cpp
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
1639 index cb50acc..0606808 100644
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1640 --- a/src/net/tls/TLSSession.cpp
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1641 +++ b/src/net/tls/TLSSession.cpp
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1642 @@ -139,6 +139,7 @@ TLSSession::TLSSession(ref <security::cert::certificateVerifier> cv)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1643 // Sets some default priority on the ciphers, key exchange methods,
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1644 // macs and compression methods.
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1645 #if HAVE_GNUTLS_PRIORITY_FUNCS
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
1646 + gnutls_dh_set_prime_bits(*m_gnutlsSession, 128);
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1647
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1648 if ((res = gnutls_priority_set_direct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1649 (*m_gnutlsSession, "NORMAL:%SSL3_RECORD_VERSION", NULL)) != 0)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1650 --
2573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1651 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1652
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1653
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1654 From 6574b60a303c5d864e840aa23959656bb2803485 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1655 From: Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1656 Date: Thu, 22 Dec 2011 08:51:28 +0000
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1657 Subject: [PATCH 27/38] Updated coding conventions.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1658
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1659 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1660 HACKING | 53 +++++++++++++++++++++++++++++++++++++++++++++--------
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1661 1 file changed, 45 insertions(+), 8 deletions(-)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1662
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1663 diff --git a/HACKING b/HACKING
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1664 index 4f35a53..f51d738 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1665 --- a/HACKING
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1666 +++ b/HACKING
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1667 @@ -1,10 +1,10 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1668
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1669 -This file contains coding guidelines for VMime. You should follow these
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1670 -guidelines if you want to contribute to VMime. It guarantees some minimal
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1671 -quality of the code.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1672 +This file contains coding guidelines for VMime. You should follow them
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1673 +if you want to contribute to VMime. The rules below are not guidelines
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1674 +or recommendations, but strict rules.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1675
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1676
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1677 -1. General guidelines
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1678 +1. General rules
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1679 1.1. Language
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1680 1.2. Unit tests
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1681 1.3. CVS
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1682 @@ -18,19 +18,22 @@ quality of the code.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1683 2.5. Line length
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1684 2.6. Spaces and parentheses
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1685 2.7. End-of-line character
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1686 + 2.8. Short functions
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1687 + 2.9. Limit Variable Scope
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1688 3. Naming conventions
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1689 3.1. Classes
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1690 3.2. Variables/parameters/member variables
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1691 3.3. Member variables
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1692 3.4. Files
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1693 3.5. Namespaces
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1694 + 3.6. Constants
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1695 4. Comments
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1696 5. Miscellaneous
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1697
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1698
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1699
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1700 -1. General guidelines
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1701 -=====================
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1702 +1. General rules
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1703 +================
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1704
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1705 1.1. Language
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1706 -------------
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1707 @@ -50,7 +53,7 @@ When you fix a bug, also add a new test case to ensure the bug will not
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1708 happen anymore.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1709
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1710
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1711 -1.3. CVS
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1712 +1.3. SVN
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1713 --------
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1714
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1715 Each commit MUST be done with a message ('-m' flag) that briefly describes what
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1716 @@ -154,7 +157,11 @@ Except when body spans over multiple lines:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1717 2.5. Line length
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1718 ----------------
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1719
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1720 -Line length should not exceed 80 characters.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1721 +Each line of text should not exceed 80 characters.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1722 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1723 +Exception: if a comment line contains an example command or a literal URL
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1724 +longer than 100 characters, that line may be longer than 100 characters
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1725 +for ease of cut and paste.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1726
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1727
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1728 2.6. Spaces and parentheses
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1729 @@ -193,6 +200,30 @@ Configure your editor to use "\n" (UNIX convention) for end-of-line sequence,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1730 and not "\r\n" (Windows), nor "\n\r", nor any other combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1731
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1732
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1733 +2.8. Short functions
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1734 +--------------------
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1735 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1736 +To the extent that it is feasible, functions should be kept small and focused.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1737 +It is, however, recognized that long functions are sometimes appropriate, so no
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1738 +hard limit is placed on method length. If a function exceeds 40 lines or so,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1739 +think about whether it can be broken up without harming the structure of the
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1740 +program.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1741 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1742 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1743 +2.9. Limit Variable Scope
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1744 +-------------------------
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1745 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1746 +The scope of local variables should be kept to a minimum. By doing so, you
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1747 +increase the readability and maintainability of your code and reduce the
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1748 +likelihood of error. Each variable should be declared in the innermost block
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1749 +that encloses all uses of the variable.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1750 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1751 +Local variables should be declared at the point they are first used. Nearly
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1752 +every local variable declaration should contain an initializer. If you don't
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1753 +yet have enough information to initialize a variable sensibly, you should
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1754 +postpone the declaration until you do.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1755 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1756 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1757
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1758 3. Naming conventions
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1759 =====================
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1760 @@ -255,6 +286,12 @@ Implementation files must be placed in 'src/' directory.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1761 Namespaces are named exactly like variables.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1762
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1763
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1764 +3.6. Constants
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1765 +--------------
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1766 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1767 +Constants are ALL_CAPS_WITH_UNDERSCORES.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1768 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1769 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1770
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1771 4. Comments
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1772 ===========
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1773 --
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1774 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1775
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1776
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1777 From 130e5223dea0af2f8d9d01cca7845be4e1a08d13 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1778 From: Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1779 Date: Thu, 5 Apr 2012 11:46:39 +0200
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1780 Subject: [PATCH 28/38] Added function to retrieve sequence numbers of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1781 messages whose UID is greater or equal than a
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1782 specified UID (thanks to Zahi Mashael).
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1783
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1784 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1785 src/net/imap/IMAPFolder.cpp | 56 +++++++++++++++++++++++++++++++++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1786 src/net/maildir/maildirFolder.cpp | 6 ++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1787 src/net/pop3/POP3Folder.cpp | 6 ++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1788 vmime/net/folder.hpp | 7 +++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1789 vmime/net/imap/IMAPFolder.hpp | 2 ++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1790 vmime/net/maildir/maildirFolder.hpp | 2 ++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1791 vmime/net/pop3/POP3Folder.hpp | 2 ++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1792 7 files changed, 81 insertions(+)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1793
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1794 diff --git a/src/net/imap/IMAPFolder.cpp b/src/net/imap/IMAPFolder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1795 index 0122d21..50a2f2b 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1796 --- a/src/net/imap/IMAPFolder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1797 +++ b/src/net/imap/IMAPFolder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1798 @@ -1772,6 +1772,62 @@ void IMAPFolder::status(int& count, int& unseen)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1799 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1800
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1801
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1802 +std::vector <int> IMAPFolder::getMessageNumbersStartingOnUID(const message::uid& uid)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1803 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1804 + std::vector<int> v;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1805 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1806 + std::ostringstream command;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1807 + command.imbue(std::locale::classic());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1808 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1809 + command << "SEARCH UID " << uid;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1810 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1811 + // Send the request
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1812 + m_connection->send(true, command.str(), true);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1813 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1814 + // Get the response
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1815 + utility::auto_ptr <IMAPParser::response> resp(m_connection->readResponse());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1816 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1817 + if (resp->isBad() ||
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1818 + resp->response_done()->response_tagged()->resp_cond_state()->status() != IMAPParser::resp_cond_state::OK)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1819 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1820 + throw exceptions::command_error("SEARCH",
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1821 + m_connection->getParser()->lastLine(), "bad response");
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1822 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1823 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1824 + const std::vector <IMAPParser::continue_req_or_response_data*>& respDataList = resp->continue_req_or_response_data();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1825 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1826 + for (std::vector <IMAPParser::continue_req_or_response_data*>::const_iterator
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1827 + it = respDataList.begin() ; it != respDataList.end() ; ++it)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1828 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1829 + if ((*it)->response_data() == NULL)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1830 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1831 + throw exceptions::command_error("SEARCH",
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1832 + m_connection->getParser()->lastLine(), "invalid response");
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1833 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1834 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1835 + const IMAPParser::mailbox_data* mailboxData =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1836 + (*it)->response_data()->mailbox_data();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1837 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1838 + // We are only interested in responses of type "SEARCH"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1839 + if (mailboxData == NULL ||
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1840 + mailboxData->type() != IMAPParser::mailbox_data::SEARCH)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1841 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1842 + continue;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1843 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1844 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1845 + for (std::vector <IMAPParser::nz_number*>::const_iterator
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1846 + it = mailboxData->search_nz_number_list().begin() ;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1847 + it != mailboxData->search_nz_number_list().end();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1848 + ++it)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1849 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1850 + v.push_back((*it)->value());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1851 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1852 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1853 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1854 + return v;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1855 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1856 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1857 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1858 } // imap
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1859 } // net
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1860 } // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1861 diff --git a/src/net/maildir/maildirFolder.cpp b/src/net/maildir/maildirFolder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1862 index dd680c9..d11ae3b 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1863 --- a/src/net/maildir/maildirFolder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1864 +++ b/src/net/maildir/maildirFolder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1865 @@ -1363,6 +1363,12 @@ const utility::file::path maildirFolder::getMessageFSPath(const int number) cons
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1866 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1867
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1868
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1869 +std::vector <int> maildirFolder::getMessageNumbersStartingOnUID(const message::uid& /* uid */)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1870 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1871 + throw exceptions::operation_not_supported();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1872 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1873 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1874 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1875 } // maildir
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1876 } // net
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1877 } // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1878 diff --git a/src/net/pop3/POP3Folder.cpp b/src/net/pop3/POP3Folder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1879 index d5fc687..e085609 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1880 --- a/src/net/pop3/POP3Folder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1881 +++ b/src/net/pop3/POP3Folder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1882 @@ -843,6 +843,12 @@ void POP3Folder::expunge()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1883 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1884
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1885
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1886 +std::vector <int> POP3Folder::getMessageNumbersStartingOnUID(const message::uid& /* uid */)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1887 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1888 + throw exceptions::operation_not_supported();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1889 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1890 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1891 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1892 } // pop3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1893 } // net
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1894 } // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1895 diff --git a/vmime/net/folder.hpp b/vmime/net/folder.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1896 index b20e9c9..df9cbaf 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1897 --- a/vmime/net/folder.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1898 +++ b/vmime/net/folder.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1899 @@ -383,6 +383,13 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1900 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1901 virtual int getFetchCapabilities() const = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1902
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1903 + /** Return the sequence numbers of messages whose UID equal or greater than uid
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1904 + *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1905 + * @param uid the uid of the first message
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1906 + * @throw net_exception if an error occurs
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1907 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1908 + virtual std::vector <int> getMessageNumbersStartingOnUID(const message::uid& uid) = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1909 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1910 // Event listeners
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1911 void addMessageChangedListener(events::messageChangedListener* l);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1912 void removeMessageChangedListener(events::messageChangedListener* l);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1913 diff --git a/vmime/net/imap/IMAPFolder.hpp b/vmime/net/imap/IMAPFolder.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1914 index dec3878..cc52596 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1915 --- a/vmime/net/imap/IMAPFolder.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1916 +++ b/vmime/net/imap/IMAPFolder.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1917 @@ -120,6 +120,8 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1918
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1919 int getFetchCapabilities() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1920
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1921 + std::vector <int> getMessageNumbersStartingOnUID(const message::uid& uid);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1922 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1923 private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1924
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1925 void registerMessage(IMAPMessage* msg);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1926 diff --git a/vmime/net/maildir/maildirFolder.hpp b/vmime/net/maildir/maildirFolder.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1927 index 7474b1a..68b5b89 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1928 --- a/vmime/net/maildir/maildirFolder.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1929 +++ b/vmime/net/maildir/maildirFolder.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1930 @@ -121,6 +121,8 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1931
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1932 int getFetchCapabilities() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1933
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1934 + std::vector <int> getMessageNumbersStartingOnUID(const message::uid& uid);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1935 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1936 private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1937
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1938 void scanFolder();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1939 diff --git a/vmime/net/pop3/POP3Folder.hpp b/vmime/net/pop3/POP3Folder.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1940 index abaa8eb..c482908 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1941 --- a/vmime/net/pop3/POP3Folder.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1942 +++ b/vmime/net/pop3/POP3Folder.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1943 @@ -119,6 +119,8 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1944
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1945 int getFetchCapabilities() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1946
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1947 + std::vector <int> getMessageNumbersStartingOnUID(const message::uid& uid);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1948 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1949 private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1950
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1951 void registerMessage(POP3Message* msg);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1952 --
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1953 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1954
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1955
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1956 From 3f1a565b8b532f0d11a13d3f6d763b00c8ce625b Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1957 From: Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1958 Date: Thu, 5 Apr 2012 11:55:07 +0200
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1959 Subject: [PATCH 29/38] Added .gitignore.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1960
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1961 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1962 .gitignore | 11 +++++++++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1963 1 file changed, 11 insertions(+)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1964 create mode 100644 .gitignore
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1965
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1966 diff --git a/.gitignore b/.gitignore
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1967 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1968 index 0000000..44e03a8
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1969 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1970 +++ b/.gitignore
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1971 @@ -0,0 +1,11 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1972 +*.o
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1973 +*.swp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1974 +build/
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1975 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1976 +/libvmime.a
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1977 +/vmime.pc
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1978 +/vmime/config.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1979 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1980 +# SConstruct
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1981 +.sconsign.dblite
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1982 +/options.cache
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1983 --
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1984 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1985
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1986
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1987 From 5937bcda0fac9cb80d0cecbaa663ecdfe2839c09 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1988 From: Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1989 Date: Thu, 5 Apr 2012 12:08:01 +0200
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1990 Subject: [PATCH 30/38] Added check before dereferencing.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1991
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1992 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1993 vmime/utility/smartPtr.hpp | 4 +++-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1994 1 file changed, 3 insertions(+), 1 deletion(-)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1995
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1996 diff --git a/vmime/utility/smartPtr.hpp b/vmime/utility/smartPtr.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1997 index c448632..df63685 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1998 --- a/vmime/utility/smartPtr.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
1999 +++ b/vmime/utility/smartPtr.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2000 @@ -338,7 +338,9 @@ protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2001 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2002 if (m_ptr)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2003 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2004 - m_ptr->getRefManager()->releaseStrong();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2005 + if (m_ptr->getRefManager())
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2006 + m_ptr->getRefManager()->releaseStrong();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2007 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2008 m_ptr = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2009 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2010 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2011 --
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2012 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2013
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2014
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2015 From b0d74ce63ea9563ef4b218bce2497bd668dfad29 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2016 From: Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2017 Date: Thu, 5 Apr 2012 12:34:51 +0200
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2018 Subject: [PATCH 31/38] Updated README.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2019
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2020 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2021 README | 30 +++++++++++++++++++++++++++++-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2022 1 file changed, 29 insertions(+), 1 deletion(-)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2023
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2024 diff --git a/README b/README
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2025 index 6921cea..7db9175 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2026 --- a/README
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2027 +++ b/README
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2028 @@ -1,2 +1,30 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2029
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2030 -TODO
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2031 +VMime is a powerful C++ class library for working with RFC-822 and MIME messages
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2032 +and Internet messaging services like IMAP, POP or SMTP.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2033 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2034 +With VMime you can parse, generate and modify messages, and also connect to store
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2035 +and transport services to receive or send messages over the Internet. The library
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2036 +offers all the features to build a complete mail client.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2037 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2038 +Key Features
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2039 +------------
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2040 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2041 +* it is free software! GNU GPL license (Commercial licenses available!)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2042 +* fully RFC-compliant implementation
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2043 +* object-oriented and modular design
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2044 +* very easy-to-use (intuitive design)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2045 +* well documented code
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2046 +* very high reliability
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2047 +* maximum portability
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2048 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2049 +Features Overview
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2050 +-----------------
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2051 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2052 +* RFC-2822 and multipart messages
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2053 +* aggregate documents and embedded objects
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2054 +* 8-bit MIME and encoded word extensions
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2055 +* full support for attachments
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2056 +* POP3, IMAP, SMTP, maildir and sendmail
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2057 +* SSL/TLS security layer and X.509 certificates (using GNU TLS)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2058 +* SASL authentication (using GNU SASL)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2059 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2060 --
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2061 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2062
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2063
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2064 From 350fada21a4f11c2f633a3cde1f2195efefe7e32 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2065 From: Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2066 Date: Thu, 5 Apr 2012 22:10:54 +0200
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2067 Subject: [PATCH 32/38] Added test: Ensure '7bit' encoding is used when body
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2068 is 7-bit only.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2069
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2070 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2071 tests/parser/bodyPartTest.cpp | 14 ++++++++++++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2072 1 file changed, 14 insertions(+)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2073
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2074 diff --git a/tests/parser/bodyPartTest.cpp b/tests/parser/bodyPartTest.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2075 index 075b8f9..e1d47a3 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2076 --- a/tests/parser/bodyPartTest.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2077 +++ b/tests/parser/bodyPartTest.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2078 @@ -37,6 +37,7 @@ VMIME_TEST_SUITE_BEGIN
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2079 VMIME_TEST(testPrologEpilog)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2080 VMIME_TEST(testPrologEncoding)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2081 VMIME_TEST(testSuccessiveBoundaries)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2082 + VMIME_TEST(testGenerate7bit)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2083 VMIME_TEST_LIST_END
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2084
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2085
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2086 @@ -200,5 +201,18 @@ VMIME_TEST_SUITE_BEGIN
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2087 VASSERT_EQ("part2-body", "", extractContents(p.getBody()->getPartAt(1)->getBody()->getContents()));
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2088 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2089
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2090 + /** Ensure '7bit' encoding is used when body is 7-bit only. */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2091 + void testGenerate7bit()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2092 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2093 + vmime::ref <vmime::plainTextPart> p1 = vmime::create <vmime::plainTextPart>();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2094 + p1->setText(vmime::create <vmime::stringContentHandler>("Part1 is US-ASCII only."));
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2095 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2096 + vmime::ref <vmime::message> msg = vmime::create <vmime::message>();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2097 + p1->generateIn(msg, msg);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2098 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2099 + vmime::ref <vmime::header> header1 = msg->getBody()->getPartAt(0)->getHeader();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2100 + VASSERT_EQ("1", "7bit", header1->ContentTransferEncoding()->getValue()->generate());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2101 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2102 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2103 VMIME_TEST_SUITE_END
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2104
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2105 --
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2106 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2107
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2108
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2109 From 6c877ea41a2e408df61ac6f988c3bae7e0821141 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2110 From: Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2111 Date: Thu, 5 Apr 2012 22:29:32 +0200
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2112 Subject: [PATCH 33/38] Added tests for Quoted-Printable encoding.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2113
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2114 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2115 tests/utility/encoderTest.cpp | 31 +++++++++++++++++++++++++++++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2116 1 file changed, 31 insertions(+)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2117
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2118 diff --git a/tests/utility/encoderTest.cpp b/tests/utility/encoderTest.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2119 index f2d42b6..b2d6bc8 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2120 --- a/tests/utility/encoderTest.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2121 +++ b/tests/utility/encoderTest.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2122 @@ -33,6 +33,8 @@ VMIME_TEST_SUITE_BEGIN
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2123 VMIME_TEST_LIST_BEGIN
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2124 VMIME_TEST(testBase64)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2125 VMIME_TEST(testQuotedPrintable)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2126 + VMIME_TEST(testQuotedPrintable_SoftLineBreaks)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2127 + VMIME_TEST(testQuotedPrintable_CRLF)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2128 VMIME_TEST(testQuotedPrintable_RFC2047)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2129 VMIME_TEST_LIST_END
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2130
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2131 @@ -288,6 +290,35 @@ VMIME_TEST_SUITE_BEGIN
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2132 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2133 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2134
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2135 + /** Tests Soft Line Breaks (RFC-2047/6.7(5). */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2136 + void testQuotedPrintable_SoftLineBreaks()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2137 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2138 + VASSERT_EQ("1", "Now's the time=\r\n"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2139 + " for all folk =\r\n"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2140 + "to come to the=\r\n"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2141 + " aid of their =\r\n"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2142 + "country.",
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2143 + encode("quoted-printable", "Now's the time for all folk "
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2144 + "to come to the aid of their country.", 15));
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2145 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2146 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2147 + /** In text mode, ensure line breaks in QP-encoded text are represented
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2148 + * by a CRLF sequence, as per RFC-2047/6.7(4). */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2149 + void testQuotedPrintable_CRLF()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2150 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2151 + vmime::propertySet encProps;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2152 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2153 + // in "text" mode
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2154 + encProps["text"] = true;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2155 + VASSERT_EQ("text", "line1\r\nline2",
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2156 + encode("quoted-printable", "line1\r\nline2", 80, encProps));
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2157 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2158 + // in "binary" mode
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2159 + encProps["text"] = false;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2160 + VASSERT_EQ("binary", "line1=0D=0Aline2",
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2161 + encode("quoted-printable", "line1\r\nline2", 80, encProps));
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2162 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2163 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2164 void testQuotedPrintable_RFC2047()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2165 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2166 /*
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2167 --
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2168 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2169
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2170
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2171 From e88f062ab58654aee3cf45f94e8a5dd6c1256279 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2172 From: Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2173 Date: Thu, 5 Apr 2012 23:15:04 +0200
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2174 Subject: [PATCH 34/38] Fixed wrong encoding of line breaks in QP-encoded text
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2175 (issue #7).
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2176
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2177 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2178 src/encoding.cpp | 52 ++++++++++++++++++++++++++++++++-----
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2179 src/utility/encoder/qpEncoder.cpp | 9 ++++---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2180 tests/parser/bodyPartTest.cpp | 24 +++++++++++++++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2181 vmime/encoding.hpp | 16 ++++++++++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2182 4 files changed, 91 insertions(+), 10 deletions(-)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2183
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2184 diff --git a/src/encoding.cpp b/src/encoding.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2185 index 0919d44..b4e79db 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2186 --- a/src/encoding.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2187 +++ b/src/encoding.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2188 @@ -34,19 +34,28 @@ namespace vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2189
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2190
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2191 encoding::encoding()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2192 - : m_name(encodingTypes::SEVEN_BIT)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2193 + : m_name(encodingTypes::SEVEN_BIT),
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2194 + m_usage(USAGE_UNKNOWN)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2195 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2196 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2197
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2198
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2199 encoding::encoding(const string& name)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2200 - : m_name(utility::stringUtils::toLower(name))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2201 + : m_name(utility::stringUtils::toLower(name)),
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2202 + m_usage(USAGE_UNKNOWN)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2203 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2204 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2205 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2206 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2207 +encoding::encoding(const string& name, const EncodingUsage usage)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2208 + : m_name(utility::stringUtils::toLower(name)),
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2209 + m_usage(usage)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2210 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2211 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2212
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2213
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2214 encoding::encoding(const encoding& enc)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2215 - : headerFieldValue(), m_name(enc.m_name)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2216 + : headerFieldValue(), m_name(enc.m_name), m_usage(enc.m_usage)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2217 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2218 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2219
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2220 @@ -54,6 +63,8 @@ encoding::encoding(const encoding& enc)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2221 void encoding::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2222 const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2223 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2224 + m_usage = USAGE_UNKNOWN;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2225 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2226 m_name = utility::stringUtils::toLower(utility::stringUtils::trim
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2227 (utility::stringUtils::unquote(utility::stringUtils::trim
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2228 (string(buffer.begin() + position, buffer.begin() + end)))));
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2229 @@ -80,7 +91,14 @@ void encoding::generate(utility::outputStream& os, const string::size_type /* ma
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2230
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2231 ref <utility::encoder::encoder> encoding::getEncoder() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2232 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2233 - return (utility::encoder::encoderFactory::getInstance()->create(generate()));
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2234 + ref <utility::encoder::encoder> encoder =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2235 + utility::encoder::encoderFactory::getInstance()->create(generate());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2236 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2237 + // FIXME: this should not be here (move me into QP encoder instead?)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2238 + if (m_usage == USAGE_TEXT && m_name == encodingTypes::QUOTED_PRINTABLE)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2239 + encoder->getProperties()["text"] = true;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2240 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2241 + return encoder;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2242 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2243
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2244
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2245 @@ -94,6 +112,7 @@ encoding& encoding::operator=(const encoding& other)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2246 encoding& encoding::operator=(const string& name)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2247 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2248 m_name = utility::stringUtils::toLower(name);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2249 + m_usage = USAGE_UNKNOWN;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2250 return (*this);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2251 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2252
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2253 @@ -167,6 +186,8 @@ const encoding encoding::decideImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2254 const encoding encoding::decide
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2255 (ref <const contentHandler> data, const EncodingUsage usage)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2256 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2257 + encoding enc;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2258 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2259 if (usage == USAGE_TEXT && data->isBuffered() &&
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2260 data->getLength() > 0 && data->getLength() < 32768)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2261 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2262 @@ -177,12 +198,16 @@ const encoding encoding::decide
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2263 data->extract(os);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2264 os.flush();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2265
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2266 - return decideImpl(buffer.begin(), buffer.end());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2267 + enc = decideImpl(buffer.begin(), buffer.end());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2268 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2269 else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2270 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2271 - return encoding(encodingTypes::BASE64);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2272 + enc = encoding(encodingTypes::BASE64);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2273 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2274 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2275 + enc.setUsage(usage);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2276 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2277 + return enc;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2278 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2279
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2280
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2281 @@ -194,7 +219,10 @@ const encoding encoding::decide(ref <const contentHandler> data,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2282 encoding recEncoding;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2283
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2284 if (chset.getRecommendedEncoding(recEncoding))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2285 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2286 + recEncoding.setUsage(usage);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2287 return recEncoding;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2288 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2289 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2290
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2291 return decide(data, usage);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2292 @@ -227,6 +255,18 @@ void encoding::setName(const string& name)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2293 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2294
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2295
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2296 +encoding::EncodingUsage encoding::getUsage() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2297 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2298 + return m_usage;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2299 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2300 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2301 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2302 +void encoding::setUsage(const EncodingUsage usage)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2303 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2304 + m_usage = usage;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2305 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2306 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2307 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2308 const std::vector <ref <const component> > encoding::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2309 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2310 return std::vector <ref <const component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2311 diff --git a/src/utility/encoder/qpEncoder.cpp b/src/utility/encoder/qpEncoder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2312 index aa95022..ab8db2e 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2313 --- a/src/utility/encoder/qpEncoder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2314 +++ b/src/utility/encoder/qpEncoder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2315 @@ -292,14 +292,15 @@ utility::stream::size_type qpEncoder::encode(utility::inputStream& in,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2316 case 13: // CR
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2317 case 10: // LF
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2318 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2319 - // Text mode (where using CRLF or LF or ... does not
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2320 - // care for a new line...)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2321 - if (text)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2322 + // RFC-2045/6.7(4)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2323 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2324 + // Text data
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2325 + if (text && !rfc2047)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2326 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2327 outBuffer[outBufferPos++] = c;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2328 ++curCol;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2329 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2330 - // Binary mode (where CR and LF bytes are important!)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2331 + // Binary data
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2332 else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2333 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2334 QP_ENCODE_HEX(c);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2335 diff --git a/tests/parser/bodyPartTest.cpp b/tests/parser/bodyPartTest.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2336 index e1d47a3..9d51262 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2337 --- a/tests/parser/bodyPartTest.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2338 +++ b/tests/parser/bodyPartTest.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2339 @@ -38,6 +38,7 @@ VMIME_TEST_SUITE_BEGIN
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2340 VMIME_TEST(testPrologEncoding)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2341 VMIME_TEST(testSuccessiveBoundaries)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2342 VMIME_TEST(testGenerate7bit)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2343 + VMIME_TEST(testTextUsageForQPEncoding)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2344 VMIME_TEST_LIST_END
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2345
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2346
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2347 @@ -214,5 +215,28 @@ VMIME_TEST_SUITE_BEGIN
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2348 VASSERT_EQ("1", "7bit", header1->ContentTransferEncoding()->getValue()->generate());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2349 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2350
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2351 + void testTextUsageForQPEncoding()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2352 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2353 + vmime::ref <vmime::plainTextPart> part = vmime::create <vmime::plainTextPart>();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2354 + part->setText(vmime::create <vmime::stringContentHandler>("Part1-line1\r\nPart1-line2\r\n\x89"));
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2355 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2356 + vmime::ref <vmime::message> msg = vmime::create <vmime::message>();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2357 + part->generateIn(msg, msg);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2358 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2359 + vmime::ref <vmime::body> body = msg->getBody()->getPartAt(0)->getBody();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2360 + vmime::ref <vmime::header> header = msg->getBody()->getPartAt(0)->getHeader();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2361 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2362 + std::ostringstream oss;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2363 + vmime::utility::outputStreamAdapter os(oss);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2364 + body->generate(os, 80);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2365 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2366 + VASSERT_EQ("1", "quoted-printable", header->ContentTransferEncoding()->getValue()->generate());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2367 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2368 + // This should *NOT* be:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2369 + // Part1-line1=0D=0APart1-line2=0D=0A=89
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2370 + VASSERT_EQ("2", "Part1-line1\r\nPart1-line2\r\n=89", oss.str());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2371 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2372 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2373 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2374 VMIME_TEST_SUITE_END
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2375
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2376 diff --git a/vmime/encoding.hpp b/vmime/encoding.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2377 index ba78081..42f5246 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2378 --- a/vmime/encoding.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2379 +++ b/vmime/encoding.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2380 @@ -47,6 +47,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2381
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2382 enum EncodingUsage
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2383 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2384 + USAGE_UNKNOWN,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2385 USAGE_TEXT, /**< Use for body text. */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2386 USAGE_BINARY_DATA /**< Use for attachment, image... */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2387 };
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2388 @@ -54,6 +55,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2389
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2390 encoding();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2391 explicit encoding(const string& name);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2392 + encoding(const string& name, const EncodingUsage usage);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2393 encoding(const encoding& enc);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2394
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2395 public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2396 @@ -72,6 +74,19 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2397 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2398 void setName(const string& name);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2399
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2400 + /** Return the type of contents this encoding is used for.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2401 + * See the EncodingUsage enum.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2402 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2403 + EncodingUsage getUsage() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2404 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2405 + /** Set the type of contents this encoding is used for.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2406 + * See the EncodingUsage enum.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2407 + *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2408 + * @param usage type of contents
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2409 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2410 + void setUsage(const EncodingUsage usage);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2411 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2412 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2413 encoding& operator=(const encoding& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2414 encoding& operator=(const string& name);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2415
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2416 @@ -113,6 +128,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2417 private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2418
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2419 string m_name;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2420 + EncodingUsage m_usage;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2421
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2422 /** Decide which encoding to use based on the specified data.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2423 *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2424 --
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2425 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2426
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2427
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2428 From ea77bdba96588345090e3de81d9d6af116edeeb5 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2429 From: Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2430 Date: Fri, 6 Apr 2012 22:26:18 +0200
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2431 Subject: [PATCH 35/38] Fixed memory leak.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2432
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2433 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2434 src/net/tls/TLSSocket.cpp | 6 ++++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2435 1 file changed, 6 insertions(+)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2436
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2437 diff --git a/src/net/tls/TLSSocket.cpp b/src/net/tls/TLSSocket.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2438 index dab0338..3cccc1e 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2439 --- a/src/net/tls/TLSSocket.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2440 +++ b/src/net/tls/TLSSocket.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2441 @@ -50,6 +50,12 @@ TLSSocket::TLSSocket(ref <TLSSession> session, ref <socket> sok)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2442
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2443 TLSSocket::~TLSSocket()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2444 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2445 + if (m_ex)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2446 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2447 + delete m_ex;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2448 + m_ex = NULL;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2449 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2450 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2451 try
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2452 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2453 disconnect();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2454 --
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2455 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2456
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2457
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2458 From 440d491fd6da134fcb5f19416743e8f2044556bf Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2459 From: Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2460 Date: Sat, 14 Apr 2012 13:46:05 +0200
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2461 Subject: [PATCH 36/38] Split stream.hpp/.cpp into multiple source files.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2462
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2463 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2464 SConstruct | 14 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2465 src/charsetConverter.cpp | 2 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2466 src/component.cpp | 1 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2467 src/encoding.cpp | 1 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2468 src/fileAttachment.cpp | 1 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2469 src/generatedMessageAttachment.cpp | 2 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2470 src/htmlTextPart.cpp | 2 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2471 src/mdn/MDNHelper.cpp | 2 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2472 src/mdn/receivedMDNInfos.cpp | 2 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2473 src/message.cpp | 2 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2474 src/net/imap/IMAPFolder.cpp | 2 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2475 src/net/imap/IMAPMessage.cpp | 2 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2476 src/net/imap/IMAPMessagePartContentHandler.cpp | 3 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2477 src/net/maildir/maildirFolder.cpp | 3 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2478 src/net/maildir/maildirMessage.cpp | 2 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2479 src/net/pop3/POP3Message.cpp | 2 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2480 src/net/pop3/POP3Store.cpp | 1 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2481 src/net/sendmail/sendmailTransport.cpp | 2 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2482 src/net/smtp/SMTPTransport.cpp | 2 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2483 src/net/transport.cpp | 3 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2484 src/parameter.cpp | 3 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2485 src/parsedMessageAttachment.cpp | 2 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2486 src/security/cert/X509Certificate.cpp | 2 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2487 src/security/sasl/SASLContext.cpp | 3 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2488 src/streamContentHandler.cpp | 4 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2489 src/stringContentHandler.cpp | 4 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2490 src/utility/encoder/defaultEncoder.cpp | 2 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2491 src/utility/inputStream.cpp | 33 ++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2492 src/utility/inputStreamAdapter.cpp | 70 ++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2493 src/utility/inputStreamByteBufferAdapter.cpp | 90 +++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2494 src/utility/inputStreamPointerAdapter.cpp | 46 +++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2495 src/utility/inputStreamSocketAdapter.cpp | 82 ++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2496 src/utility/inputStreamStringAdapter.cpp | 94 +++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2497 src/utility/inputStreamStringProxyAdapter.cpp | 89 +++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2498 src/utility/outputStream.cpp | 33 ++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2499 src/utility/outputStreamAdapter.cpp | 54 +++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2500 src/utility/outputStreamByteArrayAdapter.cpp | 51 +++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2501 src/utility/outputStreamSocketAdapter.cpp | 68 ++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2502 src/utility/outputStreamStringAdapter.cpp | 51 +++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2503 src/utility/stream.cpp | 485 -----------------------
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2504 src/utility/streamUtils.cpp | 92 +++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2505 src/utility/stringProxy.cpp | 2 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2506 src/word.cpp | 3 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2507 src/wordEncoder.cpp | 3 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2508 vmime/base.hpp | 20 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2509 vmime/charset.hpp | 2 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2510 vmime/component.hpp | 2 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2511 vmime/net/imap/IMAPParser.hpp | 5 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2512 vmime/utility/filteredStream.hpp | 3 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2513 vmime/utility/inputStream.hpp | 76 ++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2514 vmime/utility/inputStreamAdapter.hpp | 64 +++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2515 vmime/utility/inputStreamByteBufferAdapter.hpp | 63 +++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2516 vmime/utility/inputStreamPointerAdapter.hpp | 63 +++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2517 vmime/utility/inputStreamSocketAdapter.hpp | 77 ++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2518 vmime/utility/inputStreamStringAdapter.hpp | 66 +++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2519 vmime/utility/inputStreamStringProxyAdapter.hpp | 68 ++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2520 vmime/utility/outputStream.hpp | 107 +++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2521 vmime/utility/outputStreamAdapter.hpp | 62 +++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2522 vmime/utility/outputStreamByteArrayAdapter.hpp | 58 +++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2523 vmime/utility/outputStreamSocketAdapter.hpp | 75 ++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2524 vmime/utility/outputStreamStringAdapter.hpp | 59 +++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2525 vmime/utility/stream.hpp | 381 +-----------------
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2526 vmime/utility/streamUtils.hpp | 66 +++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2527 vmime/utility/stringProxy.hpp | 1 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2528 vmime/vmime.hpp | 16 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2529 65 files changed, 1884 insertions(+), 867 deletions(-)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2530 create mode 100644 src/utility/inputStream.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2531 create mode 100644 src/utility/inputStreamAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2532 create mode 100644 src/utility/inputStreamByteBufferAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2533 create mode 100644 src/utility/inputStreamPointerAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2534 create mode 100644 src/utility/inputStreamSocketAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2535 create mode 100644 src/utility/inputStreamStringAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2536 create mode 100644 src/utility/inputStreamStringProxyAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2537 create mode 100644 src/utility/outputStream.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2538 create mode 100644 src/utility/outputStreamAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2539 create mode 100644 src/utility/outputStreamByteArrayAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2540 create mode 100644 src/utility/outputStreamSocketAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2541 create mode 100644 src/utility/outputStreamStringAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2542 create mode 100644 src/utility/streamUtils.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2543 create mode 100644 vmime/utility/inputStream.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2544 create mode 100644 vmime/utility/inputStreamAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2545 create mode 100644 vmime/utility/inputStreamByteBufferAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2546 create mode 100644 vmime/utility/inputStreamPointerAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2547 create mode 100644 vmime/utility/inputStreamSocketAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2548 create mode 100644 vmime/utility/inputStreamStringAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2549 create mode 100644 vmime/utility/inputStreamStringProxyAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2550 create mode 100644 vmime/utility/outputStream.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2551 create mode 100644 vmime/utility/outputStreamAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2552 create mode 100644 vmime/utility/outputStreamByteArrayAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2553 create mode 100644 vmime/utility/outputStreamSocketAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2554 create mode 100644 vmime/utility/outputStreamStringAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2555 create mode 100644 vmime/utility/streamUtils.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2556
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2557 diff --git a/SConstruct b/SConstruct
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2558 index 11e884b..ea5c4eb 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2559 --- a/SConstruct
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2560 +++ b/SConstruct
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2561 @@ -144,6 +144,20 @@ libvmime_sources = [
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2562 'utility/smartPtr.cpp', 'utility/smartPtr.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2563 'utility/smartPtrInt.cpp', 'utility/smartPtrInt.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2564 'utility/stream.cpp', 'utility/stream.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2565 + 'utility/streamUtils.cpp', 'utility/streamUtils.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2566 + 'utility/filteredStream.cpp', 'utility/filteredStream.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2567 + 'utility/inputStream.cpp', 'utility/inputStream.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2568 + 'utility/inputStreamAdapter.cpp', 'utility/inputStreamAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2569 + 'utility/inputStreamByteBufferAdapter.cpp', 'utility/inputStreamByteBufferAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2570 + 'utility/inputStreamPointerAdapter.cpp', 'utility/inputStreamPointerAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2571 + 'utility/inputStreamSocketAdapter.cpp', 'utility/inputStreamSocketAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2572 + 'utility/inputStreamStringAdapter.cpp', 'utility/inputStreamStringAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2573 + 'utility/inputStreamStringProxyAdapter.cpp', 'utility/inputStreamStringProxyAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2574 + 'utility/outputStream.cpp', 'utility/outputStream.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2575 + 'utility/outputStreamAdapter.cpp', 'utility/outputStreamAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2576 + 'utility/outputStreamByteArrayAdapter.cpp', 'utility/outputStreamByteArrayAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2577 + 'utility/outputStreamSocketAdapter.cpp', 'utility/outputStreamSocketAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2578 + 'utility/outputStreamStringAdapter.cpp', 'utility/outputStreamStringAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2579 'utility/stringProxy.cpp', 'utility/stringProxy.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2580 'utility/stringUtils.cpp', 'utility/stringUtils.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2581 'utility/url.cpp', 'utility/url.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2582 diff --git a/src/charsetConverter.cpp b/src/charsetConverter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2583 index 2135788..cf75bdd 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2584 --- a/src/charsetConverter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2585 +++ b/src/charsetConverter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2586 @@ -23,6 +23,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2587
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2588 #include "vmime/charsetConverter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2589 #include "vmime/exception.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2590 +#include "vmime/utility/inputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2591 +#include "vmime/utility/outputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2592
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2593
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2594 extern "C"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2595 diff --git a/src/component.cpp b/src/component.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2596 index fbf677b..139cf66 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2597 --- a/src/component.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2598 +++ b/src/component.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2599 @@ -23,6 +23,7 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2600
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2601 #include "vmime/component.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2602 #include "vmime/base.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2603 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2604
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2605 #include <sstream>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2606
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2607 diff --git a/src/encoding.cpp b/src/encoding.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2608 index b4e79db..5d99ab6 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2609 --- a/src/encoding.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2610 +++ b/src/encoding.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2611 @@ -24,6 +24,7 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2612 #include "vmime/encoding.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2613 #include "vmime/contentHandler.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2614
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2615 +#include "vmime/utility/outputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2616 #include "vmime/utility/encoder/encoderFactory.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2617
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2618 #include <algorithm>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2619 diff --git a/src/fileAttachment.cpp b/src/fileAttachment.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2620 index da7c4b7..cb23cd0 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2621 --- a/src/fileAttachment.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2622 +++ b/src/fileAttachment.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2623 @@ -28,6 +28,7 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2624 #include "vmime/exception.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2625
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2626 #include "vmime/streamContentHandler.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2627 +#include "vmime/utility/inputStreamPointerAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2628
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2629 #include "vmime/contentDispositionField.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2630
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2631 diff --git a/src/generatedMessageAttachment.cpp b/src/generatedMessageAttachment.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2632 index e9bd1a6..443a9d3 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2633 --- a/src/generatedMessageAttachment.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2634 +++ b/src/generatedMessageAttachment.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2635 @@ -23,6 +23,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2636
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2637 #include "vmime/generatedMessageAttachment.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2638
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2639 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2640 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2641
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2642 namespace vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2643 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2644 diff --git a/src/htmlTextPart.cpp b/src/htmlTextPart.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2645 index c845b57..98524af 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2646 --- a/src/htmlTextPart.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2647 +++ b/src/htmlTextPart.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2648 @@ -31,6 +31,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2649 #include "vmime/emptyContentHandler.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2650 #include "vmime/stringContentHandler.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2651
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2652 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2653 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2654
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2655 namespace vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2656 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2657 diff --git a/src/mdn/MDNHelper.cpp b/src/mdn/MDNHelper.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2658 index b419b85..1dd7ff3 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2659 --- a/src/mdn/MDNHelper.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2660 +++ b/src/mdn/MDNHelper.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2661 @@ -31,6 +31,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2662 #include "vmime/path.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2663 #include "vmime/dateTime.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2664
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2665 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2666 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2667
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2668 namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2669 namespace mdn {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2670 diff --git a/src/mdn/receivedMDNInfos.cpp b/src/mdn/receivedMDNInfos.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2671 index cff211c..f97a58d 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2672 --- a/src/mdn/receivedMDNInfos.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2673 +++ b/src/mdn/receivedMDNInfos.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2674 @@ -23,6 +23,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2675
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2676 #include "vmime/mdn/receivedMDNInfos.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2677
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2678 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2679 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2680
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2681 namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2682 namespace mdn {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2683 diff --git a/src/message.cpp b/src/message.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2684 index 6f4b046..1b4f086 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2685 --- a/src/message.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2686 +++ b/src/message.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2687 @@ -24,6 +24,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2688 #include "vmime/message.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2689 #include "vmime/options.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2690
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2691 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2692 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2693 #include <sstream>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2694
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2695
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2696 diff --git a/src/net/imap/IMAPFolder.cpp b/src/net/imap/IMAPFolder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2697 index 50a2f2b..81bf386 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2698 --- a/src/net/imap/IMAPFolder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2699 +++ b/src/net/imap/IMAPFolder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2700 @@ -34,6 +34,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2701 #include "vmime/exception.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2702 #include "vmime/utility/smartPtr.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2703
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2704 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2705 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2706 #include <algorithm>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2707 #include <sstream>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2708
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2709 diff --git a/src/net/imap/IMAPMessage.cpp b/src/net/imap/IMAPMessage.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2710 index bc661ed..702d5f2 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2711 --- a/src/net/imap/IMAPMessage.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2712 +++ b/src/net/imap/IMAPMessage.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2713 @@ -31,6 +31,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2714 #include "vmime/net/imap/IMAPPart.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2715 #include "vmime/net/imap/IMAPMessagePartContentHandler.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2716
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2717 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2718 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2719 #include <sstream>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2720 #include <iterator>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2721 #include <typeinfo>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2722 diff --git a/src/net/imap/IMAPMessagePartContentHandler.cpp b/src/net/imap/IMAPMessagePartContentHandler.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2723 index 4e6ba97..85c6ec2 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2724 --- a/src/net/imap/IMAPMessagePartContentHandler.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2725 +++ b/src/net/imap/IMAPMessagePartContentHandler.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2726 @@ -23,6 +23,9 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2727
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2728 #include "vmime/net/imap/IMAPMessagePartContentHandler.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2729
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2730 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2731 +#include "vmime/utility/inputStreamStringProxyAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2732 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2733
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2734 namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2735 namespace net {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2736 diff --git a/src/net/maildir/maildirFolder.cpp b/src/net/maildir/maildirFolder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2737 index d11ae3b..8c4b275 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2738 --- a/src/net/maildir/maildirFolder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2739 +++ b/src/net/maildir/maildirFolder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2740 @@ -35,6 +35,9 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2741 #include "vmime/exception.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2742 #include "vmime/platform.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2743
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2744 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2745 +#include "vmime/utility/inputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2746 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2747
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2748 namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2749 namespace net {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2750 diff --git a/src/net/maildir/maildirMessage.cpp b/src/net/maildir/maildirMessage.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2751 index 51cd1ba..4ab75e7 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2752 --- a/src/net/maildir/maildirMessage.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2753 +++ b/src/net/maildir/maildirMessage.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2754 @@ -31,6 +31,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2755 #include "vmime/exception.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2756 #include "vmime/platform.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2757
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2758 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2759 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2760
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2761 namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2762 namespace net {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2763 diff --git a/src/net/pop3/POP3Message.cpp b/src/net/pop3/POP3Message.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2764 index 50f4f87..69ef004 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2765 --- a/src/net/pop3/POP3Message.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2766 +++ b/src/net/pop3/POP3Message.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2767 @@ -25,6 +25,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2768 #include "vmime/net/pop3/POP3Folder.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2769 #include "vmime/net/pop3/POP3Store.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2770
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2771 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2772 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2773 #include <sstream>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2774
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2775
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2776 diff --git a/src/net/pop3/POP3Store.cpp b/src/net/pop3/POP3Store.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2777 index 9d554c6..793112a 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2778 --- a/src/net/pop3/POP3Store.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2779 +++ b/src/net/pop3/POP3Store.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2780 @@ -30,6 +30,7 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2781 #include "vmime/security/digest/messageDigestFactory.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2782 #include "vmime/utility/filteredStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2783 #include "vmime/utility/stringUtils.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2784 +#include "vmime/utility/inputStreamSocketAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2785
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2786 #include "vmime/net/defaultConnectionInfos.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2787
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2788 diff --git a/src/net/sendmail/sendmailTransport.cpp b/src/net/sendmail/sendmailTransport.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2789 index 53ff0d1..e7762cc 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2790 --- a/src/net/sendmail/sendmailTransport.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2791 +++ b/src/net/sendmail/sendmailTransport.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2792 @@ -32,6 +32,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2793 #include "vmime/utility/childProcess.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2794 #include "vmime/utility/smartPtr.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2795
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2796 +#include "vmime/utility/streamUtils.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2797 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2798 #include "vmime/net/defaultConnectionInfos.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2799
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2800 #include "vmime/config.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2801 diff --git a/src/net/smtp/SMTPTransport.cpp b/src/net/smtp/SMTPTransport.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2802 index d9fb7b8..bbbea75 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2803 --- a/src/net/smtp/SMTPTransport.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2804 +++ b/src/net/smtp/SMTPTransport.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2805 @@ -30,6 +30,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2806
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2807 #include "vmime/utility/filteredStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2808 #include "vmime/utility/stringUtils.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2809 +#include "vmime/utility/outputStreamSocketAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2810 +#include "vmime/utility/streamUtils.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2811
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2812 #include "vmime/net/defaultConnectionInfos.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2813
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2814 diff --git a/src/net/transport.cpp b/src/net/transport.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2815 index dd4663d..f8ca7b7 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2816 --- a/src/net/transport.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2817 +++ b/src/net/transport.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2818 @@ -27,6 +27,9 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2819 #include "vmime/mailboxList.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2820 #include "vmime/message.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2821
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2822 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2823 +#include "vmime/utility/inputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2824 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2825
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2826 namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2827 namespace net {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2828 diff --git a/src/parameter.cpp b/src/parameter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2829 index d757e1b..ccbe1a5 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2830 --- a/src/parameter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2831 +++ b/src/parameter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2832 @@ -27,6 +27,9 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2833 #include "vmime/text.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2834 #include "vmime/encoding.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2835
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2836 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2837 +#include "vmime/utility/outputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2838 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2839
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2840 namespace vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2841 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2842 diff --git a/src/parsedMessageAttachment.cpp b/src/parsedMessageAttachment.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2843 index bde56aa..cb7d71d 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2844 --- a/src/parsedMessageAttachment.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2845 +++ b/src/parsedMessageAttachment.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2846 @@ -26,6 +26,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2847 #include "vmime/stringContentHandler.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2848 #include "vmime/contentDisposition.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2849
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2850 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2851 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2852
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2853 namespace vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2854 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2855 diff --git a/src/security/cert/X509Certificate.cpp b/src/security/cert/X509Certificate.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2856 index 1cd079c..8df4e5e 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2857 --- a/src/security/cert/X509Certificate.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2858 +++ b/src/security/cert/X509Certificate.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2859 @@ -28,6 +28,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2860
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2861 #include "vmime/security/cert/X509Certificate.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2862
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2863 +#include "vmime/utility/outputStreamByteArrayAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2864 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2865
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2866 namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2867 namespace security {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2868 diff --git a/src/security/sasl/SASLContext.cpp b/src/security/sasl/SASLContext.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2869 index 51c2bed..4bb33c1 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2870 --- a/src/security/sasl/SASLContext.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2871 +++ b/src/security/sasl/SASLContext.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2872 @@ -33,6 +33,9 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2873 #include "vmime/utility/encoder/encoderFactory.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2874
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2875 #include "vmime/utility/stream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2876 +#include "vmime/utility/outputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2877 +#include "vmime/utility/inputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2878 +#include "vmime/utility/inputStreamByteBufferAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2879
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2880
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2881 namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2882 diff --git a/src/streamContentHandler.cpp b/src/streamContentHandler.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2883 index 2ebd073..89a36b4 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2884 --- a/src/streamContentHandler.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2885 +++ b/src/streamContentHandler.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2886 @@ -23,6 +23,10 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2887
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2888 #include "vmime/streamContentHandler.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2889
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2890 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2891 +#include "vmime/utility/inputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2892 +#include "vmime/utility/streamUtils.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2893 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2894
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2895 namespace vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2896 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2897 diff --git a/src/stringContentHandler.cpp b/src/stringContentHandler.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2898 index 4e85a6c..5a1e72c 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2899 --- a/src/stringContentHandler.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2900 +++ b/src/stringContentHandler.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2901 @@ -23,6 +23,10 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2902
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2903 #include "vmime/stringContentHandler.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2904
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2905 +#include "vmime/utility/inputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2906 +#include "vmime/utility/inputStreamStringProxyAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2907 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2908 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2909
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2910 namespace vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2911 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2912 diff --git a/src/utility/encoder/defaultEncoder.cpp b/src/utility/encoder/defaultEncoder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2913 index 4d0ffb5..e2d226e 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2914 --- a/src/utility/encoder/defaultEncoder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2915 +++ b/src/utility/encoder/defaultEncoder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2916 @@ -23,6 +23,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2917
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2918 #include "vmime/utility/encoder/defaultEncoder.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2919
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2920 +#include "vmime/utility/streamUtils.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2921 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2922
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2923 namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2924 namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2925 diff --git a/src/utility/inputStream.cpp b/src/utility/inputStream.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2926 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2927 index 0000000..dd0adf4
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2928 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2929 +++ b/src/utility/inputStream.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2930 @@ -0,0 +1,33 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2931 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2932 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2933 +// Copyright (C) 2002-2012 Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2934 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2935 +// This program is free software; you can redistribute it and/or
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2936 +// modify it under the terms of the GNU General Public License as
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2937 +// published by the Free Software Foundation; either version 3 of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2938 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2939 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2940 +// This program is distributed in the hope that it will be useful,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2941 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2942 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2943 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2944 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2945 +// You should have received a copy of the GNU General Public License along
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2946 +// with this program; if not, write to the Free Software Foundation, Inc.,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2947 +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2948 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2949 +// Linking this library statically or dynamically with other modules is making
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2950 +// a combined work based on this library. Thus, the terms and conditions of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2951 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2952 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2953 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2954 +#include "vmime/utility/inputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2955 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2956 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2957 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2958 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2959 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2960 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2961 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2962 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2963 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2964 diff --git a/src/utility/inputStreamAdapter.cpp b/src/utility/inputStreamAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2965 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2966 index 0000000..b44b084
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2967 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2968 +++ b/src/utility/inputStreamAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2969 @@ -0,0 +1,70 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2970 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2971 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2972 +// Copyright (C) 2002-2012 Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2973 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2974 +// This program is free software; you can redistribute it and/or
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2975 +// modify it under the terms of the GNU General Public License as
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2976 +// published by the Free Software Foundation; either version 3 of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2977 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2978 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2979 +// This program is distributed in the hope that it will be useful,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2980 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2981 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2982 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2983 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2984 +// You should have received a copy of the GNU General Public License along
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2985 +// with this program; if not, write to the Free Software Foundation, Inc.,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2986 +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2987 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2988 +// Linking this library statically or dynamically with other modules is making
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2989 +// a combined work based on this library. Thus, the terms and conditions of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2990 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2991 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2992 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2993 +#include "vmime/utility/inputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2994 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2995 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2996 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2997 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2998 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
2999 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3000 +inputStreamAdapter::inputStreamAdapter(std::istream& is)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3001 + : m_stream(is)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3002 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3003 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3004 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3005 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3006 +bool inputStreamAdapter::eof() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3007 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3008 + return (m_stream.eof());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3009 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3010 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3011 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3012 +void inputStreamAdapter::reset()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3013 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3014 + m_stream.exceptions(std::ios_base::badbit);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3015 + m_stream.seekg(0, std::ios::beg);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3016 + m_stream.clear();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3017 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3018 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3019 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3020 +stream::size_type inputStreamAdapter::read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3021 + (value_type* const data, const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3022 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3023 + m_stream.exceptions(std::ios_base::badbit);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3024 + m_stream.read(data, count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3025 + return (m_stream.gcount());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3026 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3027 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3028 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3029 +stream::size_type inputStreamAdapter::skip(const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3030 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3031 + m_stream.exceptions(std::ios_base::badbit);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3032 + m_stream.ignore(count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3033 + return (m_stream.gcount());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3034 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3035 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3036 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3037 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3038 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3039 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3040 diff --git a/src/utility/inputStreamByteBufferAdapter.cpp b/src/utility/inputStreamByteBufferAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3041 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3042 index 0000000..92e779f
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3043 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3044 +++ b/src/utility/inputStreamByteBufferAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3045 @@ -0,0 +1,90 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3046 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3047 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3048 +// Copyright (C) 2002-2012 Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3049 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3050 +// This program is free software; you can redistribute it and/or
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3051 +// modify it under the terms of the GNU General Public License as
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3052 +// published by the Free Software Foundation; either version 3 of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3053 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3054 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3055 +// This program is distributed in the hope that it will be useful,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3056 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3057 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3058 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3059 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3060 +// You should have received a copy of the GNU General Public License along
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3061 +// with this program; if not, write to the Free Software Foundation, Inc.,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3062 +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3063 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3064 +// Linking this library statically or dynamically with other modules is making
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3065 +// a combined work based on this library. Thus, the terms and conditions of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3066 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3067 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3068 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3069 +#include "vmime/utility/inputStreamByteBufferAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3070 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3071 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3072 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3073 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3074 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3075 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3076 +inputStreamByteBufferAdapter::inputStreamByteBufferAdapter(const byte_t* buffer, const size_type length)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3077 + : m_buffer(buffer), m_length(length), m_pos(0)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3078 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3079 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3080 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3081 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3082 +bool inputStreamByteBufferAdapter::eof() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3083 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3084 + return m_pos >= m_length;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3085 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3086 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3087 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3088 +void inputStreamByteBufferAdapter::reset()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3089 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3090 + m_pos = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3091 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3092 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3093 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3094 +stream::size_type inputStreamByteBufferAdapter::read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3095 + (value_type* const data, const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3096 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3097 + const size_type remaining = m_length - m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3098 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3099 + if (remaining < count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3100 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3101 + std::copy(m_buffer + m_pos, m_buffer + m_pos + remaining, data);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3102 + m_pos += remaining;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3103 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3104 + return remaining;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3105 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3106 + else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3107 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3108 + std::copy(m_buffer + m_pos, m_buffer + m_pos + count, data);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3109 + m_pos += count;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3110 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3111 + return count;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3112 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3113 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3114 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3115 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3116 +stream::size_type inputStreamByteBufferAdapter::skip(const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3117 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3118 + const size_type remaining = m_length - m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3119 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3120 + if (remaining < count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3121 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3122 + m_pos += remaining;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3123 + return remaining;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3124 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3125 + else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3126 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3127 + m_pos += count;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3128 + return count;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3129 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3130 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3131 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3132 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3133 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3134 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3135 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3136 diff --git a/src/utility/inputStreamPointerAdapter.cpp b/src/utility/inputStreamPointerAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3137 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3138 index 0000000..4d03e30
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3139 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3140 +++ b/src/utility/inputStreamPointerAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3141 @@ -0,0 +1,46 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3142 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3143 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3144 +// Copyright (C) 2002-2012 Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3145 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3146 +// This program is free software; you can redistribute it and/or
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3147 +// modify it under the terms of the GNU General Public License as
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3148 +// published by the Free Software Foundation; either version 3 of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3149 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3150 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3151 +// This program is distributed in the hope that it will be useful,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3152 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3153 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3154 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3155 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3156 +// You should have received a copy of the GNU General Public License along
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3157 +// with this program; if not, write to the Free Software Foundation, Inc.,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3158 +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3159 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3160 +// Linking this library statically or dynamically with other modules is making
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3161 +// a combined work based on this library. Thus, the terms and conditions of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3162 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3163 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3164 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3165 +#include "vmime/utility/inputStreamPointerAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3166 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3167 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3168 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3169 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3170 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3171 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3172 +inputStreamPointerAdapter::inputStreamPointerAdapter(std::istream* is, const bool own)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3173 + : inputStreamAdapter(*is), m_stream(is), m_own(own)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3174 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3175 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3176 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3177 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3178 +inputStreamPointerAdapter::~inputStreamPointerAdapter()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3179 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3180 + if (m_own)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3181 + delete (m_stream);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3182 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3183 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3184 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3185 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3186 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3187 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3188 diff --git a/src/utility/inputStreamSocketAdapter.cpp b/src/utility/inputStreamSocketAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3189 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3190 index 0000000..b93cc3c
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3191 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3192 +++ b/src/utility/inputStreamSocketAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3193 @@ -0,0 +1,82 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3194 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3195 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3196 +// Copyright (C) 2002-2012 Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3197 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3198 +// This program is free software; you can redistribute it and/or
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3199 +// modify it under the terms of the GNU General Public License as
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3200 +// published by the Free Software Foundation; either version 3 of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3201 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3202 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3203 +// This program is distributed in the hope that it will be useful,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3204 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3205 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3206 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3207 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3208 +// You should have received a copy of the GNU General Public License along
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3209 +// with this program; if not, write to the Free Software Foundation, Inc.,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3210 +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3211 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3212 +// Linking this library statically or dynamically with other modules is making
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3213 +// a combined work based on this library. Thus, the terms and conditions of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3214 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3215 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3216 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3217 +#include "vmime/utility/inputStreamSocketAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3218 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3219 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3220 +#if VMIME_HAVE_MESSAGING_FEATURES
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3221 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3222 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3223 +#include "vmime/net/socket.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3224 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3225 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3226 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3227 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3228 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3229 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3230 +inputStreamSocketAdapter::inputStreamSocketAdapter(net::socket& sok)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3231 + : m_socket(sok)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3232 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3233 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3234 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3235 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3236 +bool inputStreamSocketAdapter::eof() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3237 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3238 + // Can't know...
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3239 + return false;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3240 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3241 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3242 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3243 +void inputStreamSocketAdapter::reset()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3244 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3245 + // Not supported
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3246 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3247 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3248 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3249 +stream::size_type inputStreamSocketAdapter::read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3250 + (value_type* const data, const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3251 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3252 + return m_socket.receiveRaw(data, count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3253 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3254 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3255 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3256 +stream::size_type inputStreamSocketAdapter::skip
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3257 + (const size_type /* count */)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3258 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3259 + // Not supported
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3260 + return 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3261 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3262 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3263 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3264 +stream::size_type inputStreamSocketAdapter::getBlockSize()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3265 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3266 + return m_socket.getBlockSize();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3267 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3268 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3269 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3270 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3271 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3272 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3273 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3274 +#endif // VMIME_HAVE_MESSAGING_FEATURES
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3275 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3276 diff --git a/src/utility/inputStreamStringAdapter.cpp b/src/utility/inputStreamStringAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3277 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3278 index 0000000..31c9fda
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3279 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3280 +++ b/src/utility/inputStreamStringAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3281 @@ -0,0 +1,94 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3282 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3283 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3284 +// Copyright (C) 2002-2012 Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3285 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3286 +// This program is free software; you can redistribute it and/or
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3287 +// modify it under the terms of the GNU General Public License as
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3288 +// published by the Free Software Foundation; either version 3 of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3289 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3290 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3291 +// This program is distributed in the hope that it will be useful,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3292 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3293 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3294 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3295 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3296 +// You should have received a copy of the GNU General Public License along
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3297 +// with this program; if not, write to the Free Software Foundation, Inc.,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3298 +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3299 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3300 +// Linking this library statically or dynamically with other modules is making
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3301 +// a combined work based on this library. Thus, the terms and conditions of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3302 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3303 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3304 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3305 +#include "vmime/utility/inputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3306 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3307 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3308 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3309 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3310 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3311 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3312 +inputStreamStringAdapter::inputStreamStringAdapter(const string& buffer)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3313 + : m_buffer(buffer), m_begin(0), m_end(buffer.length()), m_pos(0)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3314 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3315 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3316 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3317 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3318 +inputStreamStringAdapter::inputStreamStringAdapter(const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3319 + const string::size_type begin, const string::size_type end)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3320 + : m_buffer(buffer), m_begin(begin), m_end(end), m_pos(begin)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3321 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3322 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3323 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3324 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3325 +bool inputStreamStringAdapter::eof() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3326 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3327 + return (m_pos >= m_end);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3328 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3329 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3330 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3331 +void inputStreamStringAdapter::reset()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3332 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3333 + m_pos = m_begin;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3334 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3335 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3336 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3337 +stream::size_type inputStreamStringAdapter::read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3338 + (value_type* const data, const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3339 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3340 + if (m_pos + count >= m_end)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3341 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3342 + const size_type remaining = m_end - m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3343 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3344 + std::copy(m_buffer.begin() + m_pos, m_buffer.end(), data);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3345 + m_pos = m_end;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3346 + return (remaining);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3347 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3348 + else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3349 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3350 + std::copy(m_buffer.begin() + m_pos, m_buffer.begin() + m_pos + count, data);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3351 + m_pos += count;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3352 + return (count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3353 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3354 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3355 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3356 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3357 +stream::size_type inputStreamStringAdapter::skip(const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3358 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3359 + if (m_pos + count >= m_end)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3360 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3361 + const size_type remaining = m_end - m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3362 + m_pos = m_end;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3363 + return (remaining);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3364 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3365 + else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3366 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3367 + m_pos += count;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3368 + return (count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3369 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3370 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3371 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3372 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3373 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3374 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3375 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3376 diff --git a/src/utility/inputStreamStringProxyAdapter.cpp b/src/utility/inputStreamStringProxyAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3377 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3378 index 0000000..5e4b60b
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3379 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3380 +++ b/src/utility/inputStreamStringProxyAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3381 @@ -0,0 +1,89 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3382 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3383 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3384 +// Copyright (C) 2002-2012 Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3385 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3386 +// This program is free software; you can redistribute it and/or
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3387 +// modify it under the terms of the GNU General Public License as
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3388 +// published by the Free Software Foundation; either version 3 of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3389 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3390 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3391 +// This program is distributed in the hope that it will be useful,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3392 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3393 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3394 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3395 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3396 +// You should have received a copy of the GNU General Public License along
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3397 +// with this program; if not, write to the Free Software Foundation, Inc.,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3398 +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3399 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3400 +// Linking this library statically or dynamically with other modules is making
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3401 +// a combined work based on this library. Thus, the terms and conditions of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3402 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3403 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3404 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3405 +#include "vmime/utility/inputStreamStringProxyAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3406 +#include "vmime/utility/stringProxy.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3407 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3408 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3409 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3410 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3411 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3412 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3413 +inputStreamStringProxyAdapter::inputStreamStringProxyAdapter(const stringProxy& buffer)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3414 + : m_buffer(buffer), m_pos(0)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3415 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3416 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3417 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3418 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3419 +bool inputStreamStringProxyAdapter::eof() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3420 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3421 + return (m_pos >= m_buffer.length());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3422 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3423 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3424 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3425 +void inputStreamStringProxyAdapter::reset()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3426 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3427 + m_pos = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3428 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3429 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3430 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3431 +stream::size_type inputStreamStringProxyAdapter::read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3432 + (value_type* const data, const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3433 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3434 + const size_type remaining = m_buffer.length() - m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3435 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3436 + if (count > remaining)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3437 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3438 + std::copy(m_buffer.it_begin() + m_pos, m_buffer.it_end(), data);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3439 + m_pos = m_buffer.length();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3440 + return (remaining);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3441 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3442 + else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3443 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3444 + std::copy(m_buffer.it_begin() + m_pos, m_buffer.it_begin() + m_pos + count, data);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3445 + m_pos += count;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3446 + return (count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3447 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3448 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3449 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3450 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3451 +stream::size_type inputStreamStringProxyAdapter::skip(const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3452 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3453 + const size_type remaining = m_buffer.length() - m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3454 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3455 + if (count > remaining)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3456 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3457 + m_pos = m_buffer.length();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3458 + return (remaining);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3459 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3460 + else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3461 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3462 + m_pos += count;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3463 + return (count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3464 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3465 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3466 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3467 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3468 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3469 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3470 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3471 diff --git a/src/utility/outputStream.cpp b/src/utility/outputStream.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3472 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3473 index 0000000..8a65db5
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3474 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3475 +++ b/src/utility/outputStream.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3476 @@ -0,0 +1,33 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3477 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3478 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3479 +// Copyright (C) 2002-2012 Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3480 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3481 +// This program is free software; you can redistribute it and/or
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3482 +// modify it under the terms of the GNU General Public License as
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3483 +// published by the Free Software Foundation; either version 3 of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3484 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3485 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3486 +// This program is distributed in the hope that it will be useful,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3487 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3488 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3489 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3490 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3491 +// You should have received a copy of the GNU General Public License along
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3492 +// with this program; if not, write to the Free Software Foundation, Inc.,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3493 +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3494 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3495 +// Linking this library statically or dynamically with other modules is making
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3496 +// a combined work based on this library. Thus, the terms and conditions of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3497 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3498 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3499 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3500 +#include "vmime/utility/outputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3501 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3502 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3503 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3504 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3505 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3506 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3507 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3508 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3509 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3510 diff --git a/src/utility/outputStreamAdapter.cpp b/src/utility/outputStreamAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3511 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3512 index 0000000..2da94f1
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3513 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3514 +++ b/src/utility/outputStreamAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3515 @@ -0,0 +1,54 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3516 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3517 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3518 +// Copyright (C) 2002-2012 Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3519 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3520 +// This program is free software; you can redistribute it and/or
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3521 +// modify it under the terms of the GNU General Public License as
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3522 +// published by the Free Software Foundation; either version 3 of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3523 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3524 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3525 +// This program is distributed in the hope that it will be useful,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3526 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3527 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3528 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3529 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3530 +// You should have received a copy of the GNU General Public License along
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3531 +// with this program; if not, write to the Free Software Foundation, Inc.,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3532 +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3533 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3534 +// Linking this library statically or dynamically with other modules is making
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3535 +// a combined work based on this library. Thus, the terms and conditions of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3536 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3537 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3538 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3539 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3540 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3541 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3542 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3543 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3544 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3545 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3546 +outputStreamAdapter::outputStreamAdapter(std::ostream& os)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3547 + : m_stream(os)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3548 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3549 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3550 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3551 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3552 +void outputStreamAdapter::write
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3553 + (const value_type* const data, const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3554 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3555 + m_stream.exceptions(std::ios_base::badbit);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3556 + m_stream.write(data, count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3557 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3558 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3559 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3560 +void outputStreamAdapter::flush()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3561 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3562 + m_stream.exceptions(std::ios_base::badbit);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3563 + m_stream.flush();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3564 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3565 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3566 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3567 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3568 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3569 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3570 diff --git a/src/utility/outputStreamByteArrayAdapter.cpp b/src/utility/outputStreamByteArrayAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3571 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3572 index 0000000..97b27d2
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3573 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3574 +++ b/src/utility/outputStreamByteArrayAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3575 @@ -0,0 +1,51 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3576 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3577 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3578 +// Copyright (C) 2002-2012 Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3579 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3580 +// This program is free software; you can redistribute it and/or
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3581 +// modify it under the terms of the GNU General Public License as
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3582 +// published by the Free Software Foundation; either version 3 of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3583 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3584 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3585 +// This program is distributed in the hope that it will be useful,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3586 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3587 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3588 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3589 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3590 +// You should have received a copy of the GNU General Public License along
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3591 +// with this program; if not, write to the Free Software Foundation, Inc.,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3592 +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3593 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3594 +// Linking this library statically or dynamically with other modules is making
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3595 +// a combined work based on this library. Thus, the terms and conditions of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3596 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3597 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3598 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3599 +#include "vmime/utility/outputStreamByteArrayAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3600 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3601 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3602 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3603 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3604 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3605 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3606 +outputStreamByteArrayAdapter::outputStreamByteArrayAdapter(byteArray& array)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3607 + : m_array(array)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3608 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3609 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3610 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3611 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3612 +void outputStreamByteArrayAdapter::write(const value_type* const data, const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3613 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3614 + m_array.insert(m_array.end(), data, data + count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3615 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3616 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3617 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3618 +void outputStreamByteArrayAdapter::flush()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3619 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3620 + // Do nothing
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3621 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3622 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3623 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3624 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3625 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3626 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3627 diff --git a/src/utility/outputStreamSocketAdapter.cpp b/src/utility/outputStreamSocketAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3628 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3629 index 0000000..d933e73
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3630 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3631 +++ b/src/utility/outputStreamSocketAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3632 @@ -0,0 +1,68 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3633 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3634 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3635 +// Copyright (C) 2002-2012 Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3636 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3637 +// This program is free software; you can redistribute it and/or
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3638 +// modify it under the terms of the GNU General Public License as
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3639 +// published by the Free Software Foundation; either version 3 of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3640 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3641 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3642 +// This program is distributed in the hope that it will be useful,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3643 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3644 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3645 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3646 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3647 +// You should have received a copy of the GNU General Public License along
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3648 +// with this program; if not, write to the Free Software Foundation, Inc.,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3649 +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3650 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3651 +// Linking this library statically or dynamically with other modules is making
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3652 +// a combined work based on this library. Thus, the terms and conditions of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3653 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3654 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3655 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3656 +#include "vmime/utility/outputStreamSocketAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3657 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3658 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3659 +#if VMIME_HAVE_MESSAGING_FEATURES
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3660 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3661 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3662 +#include "vmime/net/socket.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3663 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3664 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3665 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3666 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3667 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3668 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3669 +outputStreamSocketAdapter::outputStreamSocketAdapter(net::socket& sok)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3670 + : m_socket(sok)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3671 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3672 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3673 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3674 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3675 +void outputStreamSocketAdapter::write
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3676 + (const value_type* const data, const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3677 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3678 + m_socket.sendRaw(data, count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3679 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3680 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3681 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3682 +void outputStreamSocketAdapter::flush()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3683 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3684 + // Do nothing
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3685 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3686 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3687 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3688 +stream::size_type outputStreamSocketAdapter::getBlockSize()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3689 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3690 + return m_socket.getBlockSize();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3691 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3692 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3693 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3694 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3695 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3696 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3697 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3698 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3699 +#endif // VMIME_HAVE_MESSAGING_FEATURES
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3700 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3701 diff --git a/src/utility/outputStreamStringAdapter.cpp b/src/utility/outputStreamStringAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3702 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3703 index 0000000..62b2a72
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3704 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3705 +++ b/src/utility/outputStreamStringAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3706 @@ -0,0 +1,51 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3707 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3708 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3709 +// Copyright (C) 2002-2012 Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3710 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3711 +// This program is free software; you can redistribute it and/or
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3712 +// modify it under the terms of the GNU General Public License as
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3713 +// published by the Free Software Foundation; either version 3 of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3714 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3715 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3716 +// This program is distributed in the hope that it will be useful,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3717 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3718 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3719 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3720 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3721 +// You should have received a copy of the GNU General Public License along
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3722 +// with this program; if not, write to the Free Software Foundation, Inc.,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3723 +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3724 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3725 +// Linking this library statically or dynamically with other modules is making
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3726 +// a combined work based on this library. Thus, the terms and conditions of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3727 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3728 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3729 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3730 +#include "vmime/utility/outputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3731 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3732 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3733 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3734 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3735 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3736 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3737 +outputStreamStringAdapter::outputStreamStringAdapter(string& buffer)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3738 + : m_buffer(buffer)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3739 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3740 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3741 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3742 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3743 +void outputStreamStringAdapter::write(const value_type* const data, const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3744 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3745 + m_buffer.append(data, count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3746 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3747 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3748 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3749 +void outputStreamStringAdapter::flush()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3750 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3751 + // Do nothing
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3752 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3753 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3754 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3755 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3756 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3757 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3758 diff --git a/src/utility/stream.cpp b/src/utility/stream.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3759 index ec30b7d..1c940c2 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3760 --- a/src/utility/stream.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3761 +++ b/src/utility/stream.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3762 @@ -22,503 +22,18 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3763 //
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3764
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3765 #include "vmime/utility/stream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3766 -#include "vmime/utility/stringProxy.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3767
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3768 -#include <algorithm> // for std::copy
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3769 -#include <iterator> // for std::back_inserter
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3770 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3771 -#if VMIME_HAVE_MESSAGING_FEATURES
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3772 - #include "vmime/net/socket.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3773 -#endif
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3774
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3775
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3776 namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3777 namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3778
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3779
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3780 -// stream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3781 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3782 stream::size_type stream::getBlockSize()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3783 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3784 return 32768; // 32 KB
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3785 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3786
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3787
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3788 -// Helpers
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3789 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3790 -outputStream& operator<<(outputStream& os, const stream::value_type c)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3791 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3792 - os.write(&c, 1);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3793 - return (os);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3794 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3795 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3796 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3797 -outputStream& operator<<(outputStream& os, const string& str)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3798 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3799 - os.write(str.data(), str.length());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3800 - return (os);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3801 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3802 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3803 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3804 -stream::size_type bufferedStreamCopy(inputStream& is, outputStream& os)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3805 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3806 - return bufferedStreamCopy(is, os, 0, NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3807 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3808 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3809 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3810 -stream::size_type bufferedStreamCopy(inputStream& is, outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3811 - const stream::size_type length, progressListener* progress)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3812 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3813 - const stream::size_type blockSize =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3814 - std::min(is.getBlockSize(), os.getBlockSize());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3815 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3816 - std::vector <stream::value_type> vbuffer(blockSize);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3817 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3818 - stream::value_type* buffer = &vbuffer.front();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3819 - stream::size_type total = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3820 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3821 - if (progress != NULL)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3822 - progress->start(length);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3823 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3824 - while (!is.eof())
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3825 - {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3826 - const stream::size_type read = is.read(buffer, blockSize);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3827 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3828 - if (read != 0)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3829 - {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3830 - os.write(buffer, read);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3831 - total += read;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3832 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3833 - if (progress != NULL)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3834 - progress->progress(total, std::max(total, length));
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3835 - }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3836 - }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3837 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3838 - if (progress != NULL)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3839 - progress->stop(total);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3840 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3841 - return (total);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3842 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3843 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3844 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3845 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3846 -// outputStreamAdapter
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3847 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3848 -outputStreamAdapter::outputStreamAdapter(std::ostream& os)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3849 - : m_stream(os)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3850 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3851 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3852 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3853 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3854 -void outputStreamAdapter::write
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3855 - (const value_type* const data, const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3856 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3857 - m_stream.exceptions(std::ios_base::badbit);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3858 - m_stream.write(data, count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3859 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3860 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3861 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3862 -void outputStreamAdapter::flush()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3863 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3864 - m_stream.exceptions(std::ios_base::badbit);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3865 - m_stream.flush();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3866 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3867 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3868 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3869 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3870 -// outputStreamStringAdapter
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3871 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3872 -outputStreamStringAdapter::outputStreamStringAdapter(string& buffer)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3873 - : m_buffer(buffer)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3874 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3875 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3876 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3877 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3878 -void outputStreamStringAdapter::write(const value_type* const data, const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3879 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3880 - m_buffer.append(data, count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3881 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3882 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3883 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3884 -void outputStreamStringAdapter::flush()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3885 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3886 - // Do nothing
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3887 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3888 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3889 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3890 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3891 -// outputStreamByteArrayAdapter
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3892 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3893 -outputStreamByteArrayAdapter::outputStreamByteArrayAdapter(byteArray& array)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3894 - : m_array(array)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3895 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3896 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3897 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3898 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3899 -void outputStreamByteArrayAdapter::write(const value_type* const data, const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3900 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3901 - m_array.insert(m_array.end(), data, data + count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3902 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3903 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3904 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3905 -void outputStreamByteArrayAdapter::flush()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3906 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3907 - // Do nothing
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3908 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3909 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3910 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3911 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3912 -// inputStreamAdapter
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3913 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3914 -inputStreamAdapter::inputStreamAdapter(std::istream& is)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3915 - : m_stream(is)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3916 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3917 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3918 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3919 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3920 -bool inputStreamAdapter::eof() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3921 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3922 - return (m_stream.eof());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3923 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3924 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3925 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3926 -void inputStreamAdapter::reset()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3927 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3928 - m_stream.exceptions(std::ios_base::badbit);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3929 - m_stream.seekg(0, std::ios::beg);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3930 - m_stream.clear();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3931 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3932 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3933 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3934 -stream::size_type inputStreamAdapter::read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3935 - (value_type* const data, const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3936 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3937 - m_stream.exceptions(std::ios_base::badbit);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3938 - m_stream.read(data, count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3939 - return (m_stream.gcount());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3940 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3941 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3942 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3943 -stream::size_type inputStreamAdapter::skip(const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3944 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3945 - m_stream.exceptions(std::ios_base::badbit);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3946 - m_stream.ignore(count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3947 - return (m_stream.gcount());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3948 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3949 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3950 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3951 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3952 -// inputStreamStringAdapter
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3953 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3954 -inputStreamStringAdapter::inputStreamStringAdapter(const string& buffer)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3955 - : m_buffer(buffer), m_begin(0), m_end(buffer.length()), m_pos(0)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3956 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3957 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3958 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3959 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3960 -inputStreamStringAdapter::inputStreamStringAdapter(const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3961 - const string::size_type begin, const string::size_type end)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3962 - : m_buffer(buffer), m_begin(begin), m_end(end), m_pos(begin)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3963 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3964 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3965 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3966 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3967 -bool inputStreamStringAdapter::eof() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3968 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3969 - return (m_pos >= m_end);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3970 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3971 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3972 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3973 -void inputStreamStringAdapter::reset()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3974 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3975 - m_pos = m_begin;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3976 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3977 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3978 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3979 -stream::size_type inputStreamStringAdapter::read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3980 - (value_type* const data, const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3981 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3982 - if (m_pos + count >= m_end)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3983 - {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3984 - const size_type remaining = m_end - m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3985 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3986 - std::copy(m_buffer.begin() + m_pos, m_buffer.end(), data);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3987 - m_pos = m_end;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3988 - return (remaining);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3989 - }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3990 - else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3991 - {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3992 - std::copy(m_buffer.begin() + m_pos, m_buffer.begin() + m_pos + count, data);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3993 - m_pos += count;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3994 - return (count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3995 - }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3996 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3997 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3998 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
3999 -stream::size_type inputStreamStringAdapter::skip(const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4000 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4001 - if (m_pos + count >= m_end)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4002 - {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4003 - const size_type remaining = m_end - m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4004 - m_pos = m_end;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4005 - return (remaining);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4006 - }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4007 - else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4008 - {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4009 - m_pos += count;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4010 - return (count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4011 - }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4012 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4013 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4014 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4015 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4016 -// inputStreamStringProxyAdapter
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4017 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4018 -inputStreamStringProxyAdapter::inputStreamStringProxyAdapter(const stringProxy& buffer)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4019 - : m_buffer(buffer), m_pos(0)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4020 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4021 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4022 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4023 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4024 -bool inputStreamStringProxyAdapter::eof() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4025 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4026 - return (m_pos >= m_buffer.length());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4027 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4028 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4029 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4030 -void inputStreamStringProxyAdapter::reset()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4031 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4032 - m_pos = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4033 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4034 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4035 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4036 -stream::size_type inputStreamStringProxyAdapter::read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4037 - (value_type* const data, const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4038 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4039 - const size_type remaining = m_buffer.length() - m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4040 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4041 - if (count > remaining)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4042 - {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4043 - std::copy(m_buffer.it_begin() + m_pos, m_buffer.it_end(), data);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4044 - m_pos = m_buffer.length();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4045 - return (remaining);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4046 - }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4047 - else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4048 - {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4049 - std::copy(m_buffer.it_begin() + m_pos, m_buffer.it_begin() + m_pos + count, data);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4050 - m_pos += count;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4051 - return (count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4052 - }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4053 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4054 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4055 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4056 -stream::size_type inputStreamStringProxyAdapter::skip(const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4057 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4058 - const size_type remaining = m_buffer.length() - m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4059 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4060 - if (count > remaining)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4061 - {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4062 - m_pos = m_buffer.length();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4063 - return (remaining);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4064 - }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4065 - else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4066 - {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4067 - m_pos += count;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4068 - return (count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4069 - }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4070 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4071 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4072 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4073 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4074 -// inputStreamPointerAdapter
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4075 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4076 -inputStreamPointerAdapter::inputStreamPointerAdapter(std::istream* is, const bool own)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4077 - : m_stream(is), m_own(own)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4078 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4079 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4080 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4081 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4082 -inputStreamPointerAdapter::inputStreamPointerAdapter(const inputStreamPointerAdapter&)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4083 - : inputStream(), m_stream(NULL), m_own(false)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4084 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4085 - // Not copiable
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4086 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4087 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4088 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4089 -inputStreamPointerAdapter::~inputStreamPointerAdapter()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4090 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4091 - if (m_own)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4092 - delete (m_stream);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4093 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4094 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4095 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4096 -bool inputStreamPointerAdapter::eof() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4097 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4098 - return (m_stream->eof());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4099 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4100 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4101 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4102 -void inputStreamPointerAdapter::reset()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4103 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4104 - m_stream->exceptions(std::ios_base::badbit);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4105 - m_stream->seekg(0, std::ios::beg);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4106 - m_stream->clear();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4107 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4108 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4109 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4110 -stream::size_type inputStreamPointerAdapter::read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4111 - (value_type* const data, const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4112 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4113 - m_stream->exceptions(std::ios_base::badbit);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4114 - m_stream->read(data, count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4115 - return (m_stream->gcount());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4116 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4117 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4118 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4119 -stream::size_type inputStreamPointerAdapter::skip(const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4120 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4121 - m_stream->exceptions(std::ios_base::badbit);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4122 - m_stream->ignore(count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4123 - return (m_stream->gcount());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4124 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4125 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4126 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4127 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4128 -// inputStreamByteBufferAdapter
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4129 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4130 -inputStreamByteBufferAdapter::inputStreamByteBufferAdapter(const byte_t* buffer, const size_type length)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4131 - : m_buffer(buffer), m_length(length), m_pos(0)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4132 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4133 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4134 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4135 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4136 -bool inputStreamByteBufferAdapter::eof() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4137 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4138 - return m_pos >= m_length;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4139 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4140 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4141 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4142 -void inputStreamByteBufferAdapter::reset()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4143 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4144 - m_pos = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4145 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4146 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4147 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4148 -stream::size_type inputStreamByteBufferAdapter::read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4149 - (value_type* const data, const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4150 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4151 - const size_type remaining = m_length - m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4152 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4153 - if (remaining < count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4154 - {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4155 - std::copy(m_buffer + m_pos, m_buffer + m_pos + remaining, data);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4156 - m_pos += remaining;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4157 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4158 - return remaining;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4159 - }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4160 - else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4161 - {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4162 - std::copy(m_buffer + m_pos, m_buffer + m_pos + count, data);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4163 - m_pos += count;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4164 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4165 - return count;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4166 - }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4167 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4168 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4169 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4170 -stream::size_type inputStreamByteBufferAdapter::skip(const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4171 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4172 - const size_type remaining = m_length - m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4173 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4174 - if (remaining < count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4175 - {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4176 - m_pos += remaining;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4177 - return remaining;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4178 - }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4179 - else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4180 - {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4181 - m_pos += count;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4182 - return count;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4183 - }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4184 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4185 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4186 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4187 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4188 -#ifdef VMIME_HAVE_MESSAGING_FEATURES
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4189 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4190 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4191 -// outputStreamSocketAdapter
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4192 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4193 -outputStreamSocketAdapter::outputStreamSocketAdapter(net::socket& sok)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4194 - : m_socket(sok)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4195 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4196 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4197 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4198 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4199 -void outputStreamSocketAdapter::write
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4200 - (const value_type* const data, const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4201 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4202 - m_socket.sendRaw(data, count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4203 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4204 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4205 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4206 -void outputStreamSocketAdapter::flush()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4207 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4208 - // Do nothing
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4209 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4210 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4211 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4212 -stream::size_type outputStreamSocketAdapter::getBlockSize()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4213 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4214 - return m_socket.getBlockSize();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4215 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4216 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4217 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4218 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4219 -// inputStreamSocketAdapter
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4220 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4221 -inputStreamSocketAdapter::inputStreamSocketAdapter(net::socket& sok)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4222 - : m_socket(sok)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4223 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4224 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4225 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4226 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4227 -bool inputStreamSocketAdapter::eof() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4228 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4229 - // Can't know...
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4230 - return false;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4231 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4232 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4233 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4234 -void inputStreamSocketAdapter::reset()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4235 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4236 - // Not supported
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4237 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4238 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4239 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4240 -stream::size_type inputStreamSocketAdapter::read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4241 - (value_type* const data, const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4242 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4243 - return m_socket.receiveRaw(data, count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4244 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4245 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4246 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4247 -stream::size_type inputStreamSocketAdapter::skip
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4248 - (const size_type /* count */)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4249 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4250 - // Not supported
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4251 - return 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4252 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4253 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4254 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4255 -stream::size_type inputStreamSocketAdapter::getBlockSize()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4256 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4257 - return m_socket.getBlockSize();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4258 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4259 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4260 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4261 -#endif // VMIME_HAVE_MESSAGING_FEATURES
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4262 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4263 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4264 } // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4265 } // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4266 diff --git a/src/utility/streamUtils.cpp b/src/utility/streamUtils.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4267 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4268 index 0000000..f1d3b9d
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4269 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4270 +++ b/src/utility/streamUtils.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4271 @@ -0,0 +1,92 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4272 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4273 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4274 +// Copyright (C) 2002-2012 Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4275 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4276 +// This program is free software; you can redistribute it and/or
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4277 +// modify it under the terms of the GNU General Public License as
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4278 +// published by the Free Software Foundation; either version 3 of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4279 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4280 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4281 +// This program is distributed in the hope that it will be useful,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4282 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4283 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4284 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4285 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4286 +// You should have received a copy of the GNU General Public License along
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4287 +// with this program; if not, write to the Free Software Foundation, Inc.,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4288 +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4289 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4290 +// Linking this library statically or dynamically with other modules is making
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4291 +// a combined work based on this library. Thus, the terms and conditions of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4292 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4293 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4294 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4295 +#include "vmime/utility/streamUtils.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4296 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4297 +#include <algorithm> // for std::copy
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4298 +#include <iterator> // for std::back_inserter
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4299 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4300 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4301 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4302 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4303 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4304 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4305 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4306 +outputStream& operator<<(outputStream& os, const stream::value_type c)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4307 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4308 + os.write(&c, 1);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4309 + return (os);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4310 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4311 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4312 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4313 +outputStream& operator<<(outputStream& os, const string& str)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4314 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4315 + os.write(str.data(), str.length());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4316 + return (os);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4317 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4318 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4319 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4320 +stream::size_type bufferedStreamCopy(inputStream& is, outputStream& os)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4321 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4322 + return bufferedStreamCopy(is, os, 0, NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4323 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4324 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4325 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4326 +stream::size_type bufferedStreamCopy(inputStream& is, outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4327 + const stream::size_type length, progressListener* progress)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4328 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4329 + const stream::size_type blockSize =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4330 + std::min(is.getBlockSize(), os.getBlockSize());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4331 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4332 + std::vector <stream::value_type> vbuffer(blockSize);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4333 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4334 + stream::value_type* buffer = &vbuffer.front();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4335 + stream::size_type total = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4336 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4337 + if (progress != NULL)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4338 + progress->start(length);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4339 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4340 + while (!is.eof())
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4341 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4342 + const stream::size_type read = is.read(buffer, blockSize);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4343 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4344 + if (read != 0)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4345 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4346 + os.write(buffer, read);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4347 + total += read;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4348 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4349 + if (progress != NULL)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4350 + progress->progress(total, std::max(total, length));
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4351 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4352 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4353 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4354 + if (progress != NULL)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4355 + progress->stop(total);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4356 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4357 + return (total);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4358 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4359 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4360 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4361 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4362 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4363 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4364 diff --git a/src/utility/stringProxy.cpp b/src/utility/stringProxy.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4365 index a4ba6d2..74344b5 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4366 --- a/src/utility/stringProxy.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4367 +++ b/src/utility/stringProxy.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4368 @@ -23,6 +23,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4369
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4370 #include "vmime/utility/stringProxy.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4371
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4372 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4373 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4374 #include <iterator>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4375 #include <algorithm>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4376
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4377 diff --git a/src/word.cpp b/src/word.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4378 index aeaa737..79060a1 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4379 --- a/src/word.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4380 +++ b/src/word.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4381 @@ -28,6 +28,9 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4382 #include "vmime/utility/smartPtr.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4383 #include "vmime/parserHelpers.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4384
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4385 +#include "vmime/utility/outputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4386 +#include "vmime/utility/inputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4387 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4388 #include "vmime/utility/encoder/encoder.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4389 #include "vmime/utility/encoder/b64Encoder.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4390 #include "vmime/utility/encoder/qpEncoder.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4391 diff --git a/src/wordEncoder.cpp b/src/wordEncoder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4392 index 67bd7a1..194a189 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4393 --- a/src/wordEncoder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4394 +++ b/src/wordEncoder.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4395 @@ -33,6 +33,9 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4396
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4397 #include "vmime/utility/stringUtils.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4398
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4399 +#include "vmime/utility/outputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4400 +#include "vmime/utility/inputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4401 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4402
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4403 namespace vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4404 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4405 diff --git a/vmime/base.hpp b/vmime/base.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4406 index 60e637d..b794031 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4407 --- a/vmime/base.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4408 +++ b/vmime/base.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4409 @@ -35,7 +35,6 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4410 #include "vmime/config.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4411 #include "vmime/types.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4412 #include "vmime/constants.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4413 -#include "vmime/utility/stream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4414 #include "vmime/utility/smartPtr.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4415
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4416
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4417 @@ -255,7 +254,26 @@ namespace vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4418 return y.dynamicCast <X>();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4419 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4420
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4421 + /** Inherit from this class to indicate the subclass is not copyable,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4422 + * ie. you want to prohibit copy construction and copy assignment.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4423 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4424 + class noncopyable
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4425 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4426 + protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4427 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4428 + noncopyable() { }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4429 + virtual ~noncopyable() { }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4430 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4431 + private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4432 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4433 + noncopyable(const noncopyable&);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4434 + void operator=(const noncopyable&);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4435 + };
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4436 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4437 } // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4438
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4439
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4440 +#include "vmime/utility/stream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4441 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4442 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4443 #endif // VMIME_BASE_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4444 diff --git a/vmime/charset.hpp b/vmime/charset.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4445 index b2e241c..5f5e8e5 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4446 --- a/vmime/charset.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4447 +++ b/vmime/charset.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4448 @@ -26,6 +26,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4449
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4450
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4451 #include "vmime/base.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4452 +#include "vmime/utility/inputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4453 +#include "vmime/utility/outputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4454 #include "vmime/component.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4455
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4456
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4457 diff --git a/vmime/component.hpp b/vmime/component.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4458 index b38127f..12b0406 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4459 --- a/vmime/component.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4460 +++ b/vmime/component.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4461 @@ -26,6 +26,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4462
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4463
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4464 #include "vmime/base.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4465 +#include "vmime/utility/inputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4466 +#include "vmime/utility/outputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4467
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4468
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4469 namespace vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4470 diff --git a/vmime/net/imap/IMAPParser.hpp b/vmime/net/imap/IMAPParser.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4471 index d71c3ca..f430510 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4472 --- a/vmime/net/imap/IMAPParser.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4473 +++ b/vmime/net/imap/IMAPParser.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4474 @@ -37,6 +37,9 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4475 #include "vmime/utility/encoder/b64Encoder.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4476 #include "vmime/utility/encoder/qpEncoder.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4477
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4478 +#include "vmime/utility/inputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4479 +#include "vmime/utility/outputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4480 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4481 #include "vmime/platform.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4482
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4483 #include "vmime/net/timeoutHandler.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4484 @@ -3825,7 +3828,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4485 : m_date_time(NULL), m_number(NULL), m_envelope(NULL),
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4486 m_uniqueid(NULL), m_nstring(NULL), m_body(NULL), m_flag_list(NULL),
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4487 m_section(NULL)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4488 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4489 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4490 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4491 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4492
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4493 diff --git a/vmime/utility/filteredStream.hpp b/vmime/utility/filteredStream.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4494 index 00be785..2a55edd 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4495 --- a/vmime/utility/filteredStream.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4496 +++ b/vmime/utility/filteredStream.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4497 @@ -27,7 +27,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4498
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4499 #include <algorithm>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4500
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4501 -#include "vmime/utility/stream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4502 +#include "vmime/utility/inputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4503 +#include "vmime/utility/outputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4504
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4505
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4506 namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4507 diff --git a/vmime/utility/inputStream.hpp b/vmime/utility/inputStream.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4508 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4509 index 0000000..4a76a7d
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4510 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4511 +++ b/vmime/utility/inputStream.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4512 @@ -0,0 +1,76 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4513 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4514 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4515 +// Copyright (C) 2002-2012 Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4516 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4517 +// This program is free software; you can redistribute it and/or
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4518 +// modify it under the terms of the GNU General Public License as
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4519 +// published by the Free Software Foundation; either version 3 of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4520 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4521 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4522 +// This program is distributed in the hope that it will be useful,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4523 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4524 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4525 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4526 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4527 +// You should have received a copy of the GNU General Public License along
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4528 +// with this program; if not, write to the Free Software Foundation, Inc.,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4529 +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4530 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4531 +// Linking this library statically or dynamically with other modules is making
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4532 +// a combined work based on this library. Thus, the terms and conditions of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4533 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4534 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4535 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4536 +#ifndef VMIME_UTILITY_INPUTSTREAM_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4537 +#define VMIME_UTILITY_INPUTSTREAM_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4538 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4539 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4540 +#include "vmime/utility/stream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4541 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4542 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4543 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4544 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4545 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4546 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4547 +/** Simple input stream.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4548 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4549 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4550 +class inputStream : public stream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4551 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4552 +public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4553 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4554 + /** Test for end of stream (no more data to read).
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4555 + *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4556 + * @return true if we have reached the end of stream, false otherwise
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4557 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4558 + virtual bool eof() const = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4559 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4560 + /** Set the read pointer to the beginning of the stream.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4561 + *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4562 + * @warning WARNING: this may not work for all stream types.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4563 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4564 + virtual void reset() = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4565 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4566 + /** Read data from the stream.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4567 + *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4568 + * @param data will receive the data read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4569 + * @param count maximum number of bytes to read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4570 + * @return number of bytes read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4571 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4572 + virtual size_type read(value_type* const data, const size_type count) = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4573 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4574 + /** Skip a number of bytes.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4575 + *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4576 + * @param count maximum number of bytes to ignore
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4577 + * @return number of bytes skipped
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4578 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4579 + virtual size_type skip(const size_type count) = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4580 +};
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4581 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4582 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4583 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4584 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4585 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4586 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4587 +#endif // VMIME_UTILITY_INPUTSTREAM_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4588 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4589 diff --git a/vmime/utility/inputStreamAdapter.hpp b/vmime/utility/inputStreamAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4590 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4591 index 0000000..278ab52
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4592 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4593 +++ b/vmime/utility/inputStreamAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4594 @@ -0,0 +1,64 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4595 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4596 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4597 +// Copyright (C) 2002-2012 Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4598 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4599 +// This program is free software; you can redistribute it and/or
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4600 +// modify it under the terms of the GNU General Public License as
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4601 +// published by the Free Software Foundation; either version 3 of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4602 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4603 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4604 +// This program is distributed in the hope that it will be useful,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4605 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4606 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4607 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4608 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4609 +// You should have received a copy of the GNU General Public License along
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4610 +// with this program; if not, write to the Free Software Foundation, Inc.,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4611 +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4612 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4613 +// Linking this library statically or dynamically with other modules is making
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4614 +// a combined work based on this library. Thus, the terms and conditions of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4615 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4616 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4617 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4618 +#ifndef VMIME_UTILITY_INPUTSTREAMADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4619 +#define VMIME_UTILITY_INPUTSTREAMADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4620 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4621 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4622 +#include "vmime/utility/inputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4623 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4624 +#include <istream>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4625 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4626 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4627 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4628 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4629 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4630 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4631 +/** An adapter class for C++ standard input streams.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4632 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4633 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4634 +class inputStreamAdapter : public inputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4635 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4636 +public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4637 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4638 + /** @param is input stream to wrap
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4639 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4640 + inputStreamAdapter(std::istream& is);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4641 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4642 + bool eof() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4643 + void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4644 + size_type read(value_type* const data, const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4645 + size_type skip(const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4646 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4647 +private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4648 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4649 + std::istream& m_stream;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4650 +};
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4651 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4652 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4653 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4654 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4655 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4656 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4657 +#endif // VMIME_UTILITY_INPUTSTREAMADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4658 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4659 diff --git a/vmime/utility/inputStreamByteBufferAdapter.hpp b/vmime/utility/inputStreamByteBufferAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4660 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4661 index 0000000..0f6a442
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4662 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4663 +++ b/vmime/utility/inputStreamByteBufferAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4664 @@ -0,0 +1,63 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4665 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4666 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4667 +// Copyright (C) 2002-2012 Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4668 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4669 +// This program is free software; you can redistribute it and/or
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4670 +// modify it under the terms of the GNU General Public License as
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4671 +// published by the Free Software Foundation; either version 3 of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4672 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4673 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4674 +// This program is distributed in the hope that it will be useful,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4675 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4676 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4677 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4678 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4679 +// You should have received a copy of the GNU General Public License along
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4680 +// with this program; if not, write to the Free Software Foundation, Inc.,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4681 +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4682 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4683 +// Linking this library statically or dynamically with other modules is making
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4684 +// a combined work based on this library. Thus, the terms and conditions of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4685 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4686 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4687 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4688 +#ifndef VMIME_UTILITY_INPUTSTREAMBYTEBUFFERADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4689 +#define VMIME_UTILITY_INPUTSTREAMBYTEBUFFERADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4690 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4691 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4692 +#include "vmime/utility/inputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4693 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4694 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4695 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4696 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4697 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4698 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4699 +/** An adapter class for reading from an array of bytes.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4700 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4701 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4702 +class inputStreamByteBufferAdapter : public inputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4703 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4704 +public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4705 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4706 + inputStreamByteBufferAdapter(const byte_t* buffer, size_type length);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4707 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4708 + bool eof() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4709 + void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4710 + size_type read(value_type* const data, const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4711 + size_type skip(const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4712 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4713 +private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4714 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4715 + const byte_t* m_buffer;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4716 + const size_type m_length;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4717 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4718 + size_type m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4719 +};
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4720 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4721 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4722 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4723 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4724 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4725 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4726 +#endif // VMIME_UTILITY_INPUTSTREAMBYTEBUFFERADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4727 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4728 diff --git a/vmime/utility/inputStreamPointerAdapter.hpp b/vmime/utility/inputStreamPointerAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4729 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4730 index 0000000..44e9bad
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4731 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4732 +++ b/vmime/utility/inputStreamPointerAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4733 @@ -0,0 +1,63 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4734 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4735 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4736 +// Copyright (C) 2002-2012 Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4737 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4738 +// This program is free software; you can redistribute it and/or
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4739 +// modify it under the terms of the GNU General Public License as
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4740 +// published by the Free Software Foundation; either version 3 of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4741 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4742 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4743 +// This program is distributed in the hope that it will be useful,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4744 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4745 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4746 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4747 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4748 +// You should have received a copy of the GNU General Public License along
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4749 +// with this program; if not, write to the Free Software Foundation, Inc.,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4750 +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4751 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4752 +// Linking this library statically or dynamically with other modules is making
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4753 +// a combined work based on this library. Thus, the terms and conditions of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4754 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4755 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4756 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4757 +#ifndef VMIME_UTILITY_INPUTSTREAMPOINTERADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4758 +#define VMIME_UTILITY_INPUTSTREAMPOINTERADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4759 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4760 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4761 +#include "vmime/utility/inputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4762 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4763 +#include <istream>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4764 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4765 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4766 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4767 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4768 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4769 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4770 +/** An adapter class for pointer to C++ standard input stream.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4771 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4772 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4773 +class inputStreamPointerAdapter : public inputStreamAdapter
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4774 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4775 +public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4776 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4777 + /** @param is input stream to wrap
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4778 + * @param own if set to 'true', the pointer will be deleted when
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4779 + * this object is destroyed
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4780 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4781 + inputStreamPointerAdapter(std::istream* is, const bool own = true);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4782 + ~inputStreamPointerAdapter();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4783 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4784 +private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4785 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4786 + std::istream* m_stream;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4787 + const bool m_own;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4788 +};
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4789 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4790 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4791 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4792 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4793 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4794 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4795 +#endif // VMIME_UTILITY_INPUTSTREAMPOINTERADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4796 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4797 diff --git a/vmime/utility/inputStreamSocketAdapter.hpp b/vmime/utility/inputStreamSocketAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4798 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4799 index 0000000..0f99c21
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4800 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4801 +++ b/vmime/utility/inputStreamSocketAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4802 @@ -0,0 +1,77 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4803 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4804 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4805 +// Copyright (C) 2002-2012 Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4806 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4807 +// This program is free software; you can redistribute it and/or
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4808 +// modify it under the terms of the GNU General Public License as
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4809 +// published by the Free Software Foundation; either version 3 of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4810 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4811 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4812 +// This program is distributed in the hope that it will be useful,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4813 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4814 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4815 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4816 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4817 +// You should have received a copy of the GNU General Public License along
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4818 +// with this program; if not, write to the Free Software Foundation, Inc.,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4819 +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4820 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4821 +// Linking this library statically or dynamically with other modules is making
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4822 +// a combined work based on this library. Thus, the terms and conditions of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4823 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4824 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4825 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4826 +#ifndef VMIME_UTILITY_INPUTSTREAMSOCKETADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4827 +#define VMIME_UTILITY_INPUTSTREAMSOCKETADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4828 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4829 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4830 +#include "vmime/utility/inputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4831 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4832 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4833 +#if VMIME_HAVE_MESSAGING_FEATURES
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4834 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4835 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4836 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4837 +namespace net {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4838 + class socket; // forward reference
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4839 +} // net
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4840 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4841 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4842 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4843 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4844 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4845 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4846 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4847 +/** An input stream that is connected to a socket.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4848 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4849 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4850 +class inputStreamSocketAdapter : public inputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4851 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4852 +public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4853 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4854 + inputStreamSocketAdapter(net::socket& sok);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4855 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4856 + bool eof() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4857 + void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4858 + size_type read(value_type* const data, const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4859 + size_type skip(const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4860 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4861 + size_type getBlockSize();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4862 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4863 +private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4864 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4865 + inputStreamSocketAdapter(const inputStreamSocketAdapter&);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4866 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4867 + net::socket& m_socket;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4868 +};
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4869 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4870 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4871 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4872 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4873 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4874 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4875 +#endif // VMIME_HAVE_MESSAGING_FEATURES
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4876 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4877 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4878 +#endif // VMIME_UTILITY_INPUTSTREAMSOCKETADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4879 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4880 diff --git a/vmime/utility/inputStreamStringAdapter.hpp b/vmime/utility/inputStreamStringAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4881 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4882 index 0000000..a7d986f
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4883 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4884 +++ b/vmime/utility/inputStreamStringAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4885 @@ -0,0 +1,66 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4886 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4887 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4888 +// Copyright (C) 2002-2012 Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4889 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4890 +// This program is free software; you can redistribute it and/or
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4891 +// modify it under the terms of the GNU General Public License as
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4892 +// published by the Free Software Foundation; either version 3 of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4893 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4894 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4895 +// This program is distributed in the hope that it will be useful,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4896 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4897 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4898 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4899 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4900 +// You should have received a copy of the GNU General Public License along
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4901 +// with this program; if not, write to the Free Software Foundation, Inc.,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4902 +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4903 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4904 +// Linking this library statically or dynamically with other modules is making
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4905 +// a combined work based on this library. Thus, the terms and conditions of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4906 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4907 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4908 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4909 +#ifndef VMIME_UTILITY_INPUTSTREAMSTRINGADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4910 +#define VMIME_UTILITY_INPUTSTREAMSTRINGADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4911 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4912 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4913 +#include "vmime/utility/inputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4914 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4915 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4916 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4917 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4918 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4919 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4920 +/** An adapter class for string input.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4921 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4922 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4923 +class inputStreamStringAdapter : public inputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4924 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4925 +public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4926 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4927 + inputStreamStringAdapter(const string& buffer);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4928 + inputStreamStringAdapter(const string& buffer, const string::size_type begin, const string::size_type end);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4929 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4930 + bool eof() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4931 + void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4932 + size_type read(value_type* const data, const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4933 + size_type skip(const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4934 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4935 +private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4936 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4937 + inputStreamStringAdapter(const inputStreamStringAdapter&);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4938 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4939 + const string m_buffer; // do _NOT_ keep a reference...
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4940 + const string::size_type m_begin;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4941 + const string::size_type m_end;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4942 + string::size_type m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4943 +};
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4944 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4945 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4946 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4947 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4948 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4949 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4950 +#endif // VMIME_UTILITY_INPUTSTREAMSTRINGADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4951 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4952 diff --git a/vmime/utility/inputStreamStringProxyAdapter.hpp b/vmime/utility/inputStreamStringProxyAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4953 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4954 index 0000000..74b3f60
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4955 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4956 +++ b/vmime/utility/inputStreamStringProxyAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4957 @@ -0,0 +1,68 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4958 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4959 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4960 +// Copyright (C) 2002-2012 Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4961 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4962 +// This program is free software; you can redistribute it and/or
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4963 +// modify it under the terms of the GNU General Public License as
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4964 +// published by the Free Software Foundation; either version 3 of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4965 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4966 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4967 +// This program is distributed in the hope that it will be useful,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4968 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4969 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4970 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4971 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4972 +// You should have received a copy of the GNU General Public License along
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4973 +// with this program; if not, write to the Free Software Foundation, Inc.,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4974 +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4975 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4976 +// Linking this library statically or dynamically with other modules is making
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4977 +// a combined work based on this library. Thus, the terms and conditions of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4978 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4979 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4980 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4981 +#ifndef VMIME_UTILITY_INPUTSTREAMSTRINGPROXYADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4982 +#define VMIME_UTILITY_INPUTSTREAMSTRINGPROXYADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4983 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4984 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4985 +#include "vmime/utility/inputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4986 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4987 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4988 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4989 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4990 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4991 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4992 +class stringProxy;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4993 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4994 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4995 +/** An adapter class for stringProxy input.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4996 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4997 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4998 +class inputStreamStringProxyAdapter : public inputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
4999 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5000 +public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5001 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5002 + /** @param buffer stringProxy object to wrap
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5003 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5004 + inputStreamStringProxyAdapter(const stringProxy& buffer);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5005 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5006 + bool eof() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5007 + void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5008 + size_type read(value_type* const data, const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5009 + size_type skip(const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5010 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5011 +private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5012 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5013 + inputStreamStringProxyAdapter(const inputStreamStringProxyAdapter&);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5014 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5015 + const stringProxy& m_buffer;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5016 + string::size_type m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5017 +};
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5018 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5019 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5020 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5021 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5022 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5023 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5024 +#endif // VMIME_UTILITY_INPUTSTREAMSTRINGPROXYADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5025 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5026 diff --git a/vmime/utility/outputStream.hpp b/vmime/utility/outputStream.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5027 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5028 index 0000000..7372d20
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5029 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5030 +++ b/vmime/utility/outputStream.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5031 @@ -0,0 +1,107 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5032 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5033 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5034 +// Copyright (C) 2002-2012 Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5035 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5036 +// This program is free software; you can redistribute it and/or
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5037 +// modify it under the terms of the GNU General Public License as
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5038 +// published by the Free Software Foundation; either version 3 of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5039 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5040 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5041 +// This program is distributed in the hope that it will be useful,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5042 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5043 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5044 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5045 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5046 +// You should have received a copy of the GNU General Public License along
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5047 +// with this program; if not, write to the Free Software Foundation, Inc.,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5048 +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5049 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5050 +// Linking this library statically or dynamically with other modules is making
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5051 +// a combined work based on this library. Thus, the terms and conditions of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5052 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5053 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5054 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5055 +#ifndef VMIME_UTILITY_OUTPUTSTREAM_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5056 +#define VMIME_UTILITY_OUTPUTSTREAM_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5057 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5058 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5059 +#include "vmime/utility/stream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5060 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5061 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5062 +#if defined(_MSC_VER) && (_MSC_VER <= 1200) // VC++6
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5063 +# include <cstring>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5064 +#endif
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5065 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5066 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5067 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5068 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5069 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5070 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5071 +/** Simple output stream.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5072 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5073 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5074 +class outputStream : public stream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5075 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5076 +public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5077 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5078 + /** Write data to the stream.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5079 + *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5080 + * @param data buffer containing data to write
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5081 + * @param count number of bytes to write
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5082 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5083 + virtual void write(const value_type* const data, const size_type count) = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5084 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5085 + /** Flush this output stream and forces any buffered output
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5086 + * bytes to be written out to the stream.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5087 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5088 + virtual void flush() = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5089 +};
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5090 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5091 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5092 +// Helpers functions
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5093 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5094 +outputStream& operator<<(outputStream& os, const string& str);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5095 +outputStream& operator<<(outputStream& os, const stream::value_type c);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5096 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5097 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5098 +#if defined(_MSC_VER) && (_MSC_VER <= 1200) // Internal compiler error with VC++6
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5099 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5100 +inline outputStream& operator<<(outputStream& os, const char* str)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5101 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5102 + os.write(str, ::strlen(str));
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5103 + return (os);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5104 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5105 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5106 +#else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5107 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5108 +template <int N>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5109 +outputStream& operator<<(outputStream& os, const char (&str)[N])
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5110 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5111 + os.write(str, N - 1);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5112 + return (os);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5113 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5114 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5115 +#endif // defined(_MSC_VER) && (_MSC_VER <= 1200)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5116 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5117 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5118 +template <typename T>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5119 +outputStream& operator<<(outputStream& os, const T& t)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5120 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5121 + std::ostringstream oss;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5122 + oss.imbue(std::locale::classic()); // no formatting
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5123 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5124 + oss << t;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5125 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5126 + os << oss.str();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5127 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5128 + return (os);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5129 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5130 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5131 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5132 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5133 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5134 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5135 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5136 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5137 +#endif // VMIME_UTILITY_OUTPUTSTREAM_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5138 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5139 diff --git a/vmime/utility/outputStreamAdapter.hpp b/vmime/utility/outputStreamAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5140 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5141 index 0000000..be55d8d
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5142 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5143 +++ b/vmime/utility/outputStreamAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5144 @@ -0,0 +1,62 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5145 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5146 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5147 +// Copyright (C) 2002-2012 Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5148 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5149 +// This program is free software; you can redistribute it and/or
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5150 +// modify it under the terms of the GNU General Public License as
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5151 +// published by the Free Software Foundation; either version 3 of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5152 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5153 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5154 +// This program is distributed in the hope that it will be useful,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5155 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5156 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5157 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5158 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5159 +// You should have received a copy of the GNU General Public License along
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5160 +// with this program; if not, write to the Free Software Foundation, Inc.,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5161 +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5162 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5163 +// Linking this library statically or dynamically with other modules is making
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5164 +// a combined work based on this library. Thus, the terms and conditions of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5165 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5166 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5167 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5168 +#ifndef VMIME_UTILITY_OUTPUTSTREAMADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5169 +#define VMIME_UTILITY_OUTPUTSTREAMADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5170 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5171 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5172 +#include "vmime/utility/outputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5173 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5174 +#include <ostream>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5175 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5176 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5177 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5178 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5179 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5180 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5181 +/** An adapter class for C++ standard output streams.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5182 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5183 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5184 +class outputStreamAdapter : public outputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5185 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5186 +public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5187 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5188 + /** @param os output stream to wrap
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5189 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5190 + outputStreamAdapter(std::ostream& os);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5191 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5192 + void write(const value_type* const data, const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5193 + void flush();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5194 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5195 +private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5196 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5197 + std::ostream& m_stream;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5198 +};
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5199 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5200 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5201 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5202 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5203 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5204 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5205 +#endif // VMIME_UTILITY_OUTPUTSTREAMADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5206 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5207 diff --git a/vmime/utility/outputStreamByteArrayAdapter.hpp b/vmime/utility/outputStreamByteArrayAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5208 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5209 index 0000000..bf7d839
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5210 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5211 +++ b/vmime/utility/outputStreamByteArrayAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5212 @@ -0,0 +1,58 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5213 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5214 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5215 +// Copyright (C) 2002-2012 Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5216 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5217 +// This program is free software; you can redistribute it and/or
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5218 +// modify it under the terms of the GNU General Public License as
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5219 +// published by the Free Software Foundation; either version 3 of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5220 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5221 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5222 +// This program is distributed in the hope that it will be useful,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5223 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5224 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5225 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5226 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5227 +// You should have received a copy of the GNU General Public License along
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5228 +// with this program; if not, write to the Free Software Foundation, Inc.,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5229 +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5230 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5231 +// Linking this library statically or dynamically with other modules is making
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5232 +// a combined work based on this library. Thus, the terms and conditions of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5233 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5234 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5235 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5236 +#ifndef VMIME_UTILITY_OUTPUTSTREAMBYTEARRAYADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5237 +#define VMIME_UTILITY_OUTPUTSTREAMBYTEARRAYADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5238 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5239 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5240 +#include "vmime/utility/outputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5241 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5242 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5243 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5244 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5245 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5246 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5247 +/** An adapter class for byte array output.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5248 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5249 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5250 +class outputStreamByteArrayAdapter : public outputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5251 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5252 +public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5253 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5254 + outputStreamByteArrayAdapter(byteArray& array);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5255 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5256 + void write(const value_type* const data, const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5257 + void flush();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5258 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5259 +private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5260 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5261 + byteArray& m_array;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5262 +};
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5263 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5264 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5265 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5266 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5267 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5268 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5269 +#endif // VMIME_UTILITY_OUTPUTSTREAMBYTEARRAYADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5270 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5271 diff --git a/vmime/utility/outputStreamSocketAdapter.hpp b/vmime/utility/outputStreamSocketAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5272 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5273 index 0000000..e3d3eb0
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5274 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5275 +++ b/vmime/utility/outputStreamSocketAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5276 @@ -0,0 +1,75 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5277 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5278 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5279 +// Copyright (C) 2002-2012 Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5280 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5281 +// This program is free software; you can redistribute it and/or
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5282 +// modify it under the terms of the GNU General Public License as
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5283 +// published by the Free Software Foundation; either version 3 of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5284 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5285 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5286 +// This program is distributed in the hope that it will be useful,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5287 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5288 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5289 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5290 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5291 +// You should have received a copy of the GNU General Public License along
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5292 +// with this program; if not, write to the Free Software Foundation, Inc.,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5293 +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5294 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5295 +// Linking this library statically or dynamically with other modules is making
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5296 +// a combined work based on this library. Thus, the terms and conditions of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5297 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5298 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5299 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5300 +#ifndef VMIME_UTILITY_OUTPUTSTREAMSOCKETADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5301 +#define VMIME_UTILITY_OUTPUTSTREAMSOCKETADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5302 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5303 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5304 +#include "vmime/utility/outputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5305 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5306 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5307 +#if VMIME_HAVE_MESSAGING_FEATURES
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5308 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5309 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5310 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5311 +namespace net {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5312 + class socket; // forward reference
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5313 +} // net
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5314 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5315 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5316 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5317 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5318 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5319 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5320 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5321 +/** An output stream that is connected to a socket.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5322 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5323 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5324 +class outputStreamSocketAdapter : public outputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5325 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5326 +public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5327 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5328 + outputStreamSocketAdapter(net::socket& sok);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5329 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5330 + void write(const value_type* const data, const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5331 + void flush();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5332 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5333 + size_type getBlockSize();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5334 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5335 +private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5336 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5337 + outputStreamSocketAdapter(const outputStreamSocketAdapter&);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5338 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5339 + net::socket& m_socket;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5340 +};
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5341 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5342 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5343 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5344 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5345 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5346 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5347 +#endif // VMIME_HAVE_MESSAGING_FEATURES
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5348 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5349 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5350 +#endif // VMIME_UTILITY_OUTPUTSTREAMSOCKETADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5351 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5352 diff --git a/vmime/utility/outputStreamStringAdapter.hpp b/vmime/utility/outputStreamStringAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5353 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5354 index 0000000..8c8b304
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5355 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5356 +++ b/vmime/utility/outputStreamStringAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5357 @@ -0,0 +1,59 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5358 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5359 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5360 +// Copyright (C) 2002-2012 Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5361 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5362 +// This program is free software; you can redistribute it and/or
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5363 +// modify it under the terms of the GNU General Public License as
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5364 +// published by the Free Software Foundation; either version 3 of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5365 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5366 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5367 +// This program is distributed in the hope that it will be useful,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5368 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5369 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5370 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5371 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5372 +// You should have received a copy of the GNU General Public License along
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5373 +// with this program; if not, write to the Free Software Foundation, Inc.,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5374 +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5375 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5376 +// Linking this library statically or dynamically with other modules is making
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5377 +// a combined work based on this library. Thus, the terms and conditions of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5378 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5379 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5380 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5381 +#ifndef VMIME_UTILITY_OUTPUTSTREAMSTRINGADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5382 +#define VMIME_UTILITY_OUTPUTSTREAMSTRINGADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5383 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5384 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5385 +#include "vmime/utility/outputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5386 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5387 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5388 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5389 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5390 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5391 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5392 +/** An adapter class for string output.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5393 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5394 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5395 +class outputStreamStringAdapter : public outputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5396 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5397 +public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5398 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5399 + outputStreamStringAdapter(string& buffer);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5400 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5401 + void write(const value_type* const data, const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5402 + void flush();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5403 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5404 +size_type getBlockSize(){return 8192;}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5405 +private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5406 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5407 + string& m_buffer;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5408 +};
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5409 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5410 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5411 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5412 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5413 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5414 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5415 +#endif // VMIME_UTILITY_OUTPUTSTREAMSTRINGADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5416 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5417 diff --git a/vmime/utility/stream.hpp b/vmime/utility/stream.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5418 index 1faab55..566ab9d 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5419 --- a/vmime/utility/stream.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5420 +++ b/vmime/utility/stream.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5421 @@ -25,40 +25,22 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5422 #define VMIME_UTILITY_STREAM_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5423
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5424
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5425 -#include <istream>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5426 -#include <ostream>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5427 #include <sstream>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5428
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5429 #include "vmime/config.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5430 #include "vmime/types.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5431 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5432 -#include "vmime/utility/progressListener.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5433 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5434 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5435 -#if VMIME_HAVE_MESSAGING_FEATURES
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5436 - namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5437 - namespace net {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5438 - class socket; // forward reference
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5439 - } // net
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5440 - } // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5441 -#endif
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5442 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5443 -#if defined(_MSC_VER) && (_MSC_VER <= 1200) // VC++6
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5444 -# include <cstring>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5445 -#endif
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5446 +#include "vmime/base.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5447
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5448
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5449 namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5450 namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5451
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5452
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5453 -class stringProxy;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5454 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5455
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5456 /** Base class for input/output stream.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5457 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5458
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5459 -class stream : public object
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5460 +class stream : public object, private noncopyable
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5461 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5462 public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5463
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5464 @@ -81,365 +63,6 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5465 };
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5466
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5467
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5468 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5469 -/** Simple output stream.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5470 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5471 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5472 -class outputStream : public stream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5473 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5474 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5475 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5476 - /** Write data to the stream.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5477 - *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5478 - * @param data buffer containing data to write
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5479 - * @param count number of bytes to write
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5480 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5481 - virtual void write(const value_type* const data, const size_type count) = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5482 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5483 - /** Flush this output stream and forces any buffered output
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5484 - * bytes to be written out to the stream.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5485 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5486 - virtual void flush() = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5487 -};
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5488 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5489 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5490 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5491 -/** Simple input stream.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5492 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5493 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5494 -class inputStream : public stream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5495 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5496 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5497 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5498 - /** Test for end of stream (no more data to read).
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5499 - *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5500 - * @return true if we have reached the end of stream, false otherwise
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5501 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5502 - virtual bool eof() const = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5503 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5504 - /** Set the read pointer to the beginning of the stream.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5505 - *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5506 - * @warning WARNING: this may not work for all stream types.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5507 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5508 - virtual void reset() = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5509 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5510 - /** Read data from the stream.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5511 - *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5512 - * @param data will receive the data read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5513 - * @param count maximum number of bytes to read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5514 - * @return number of bytes read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5515 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5516 - virtual size_type read(value_type* const data, const size_type count) = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5517 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5518 - /** Skip a number of bytes.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5519 - *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5520 - * @param count maximum number of bytes to ignore
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5521 - * @return number of bytes skipped
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5522 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5523 - virtual size_type skip(const size_type count) = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5524 -};
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5525 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5526 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5527 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5528 -// Helpers functions
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5529 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5530 -outputStream& operator<<(outputStream& os, const string& str);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5531 -outputStream& operator<<(outputStream& os, const stream::value_type c);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5532 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5533 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5534 -#if defined(_MSC_VER) && (_MSC_VER <= 1200) // Internal compiler error with VC++6
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5535 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5536 -inline outputStream& operator<<(outputStream& os, const char* str)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5537 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5538 - os.write(str, ::strlen(str));
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5539 - return (os);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5540 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5541 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5542 -#else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5543 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5544 -template <int N>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5545 -outputStream& operator<<(outputStream& os, const char (&str)[N])
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5546 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5547 - os.write(str, N - 1);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5548 - return (os);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5549 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5550 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5551 -#endif // defined(_MSC_VER) && (_MSC_VER <= 1200)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5552 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5553 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5554 -template <typename T>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5555 -outputStream& operator<<(outputStream& os, const T& t)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5556 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5557 - std::ostringstream oss;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5558 - oss.imbue(std::locale::classic()); // no formatting
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5559 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5560 - oss << t;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5561 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5562 - os << oss.str();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5563 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5564 - return (os);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5565 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5566 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5567 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5568 -/** Copy data from one stream into another stream using a buffered method.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5569 - *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5570 - * @param is input stream (source data)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5571 - * @param os output stream (destination for data)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5572 - * @return number of bytes copied
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5573 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5574 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5575 -stream::size_type bufferedStreamCopy(inputStream& is, outputStream& os);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5576 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5577 -/** Copy data from one stream into another stream using a buffered method
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5578 - * and notify progress state of the operation.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5579 - *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5580 - * @param is input stream (source data)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5581 - * @param os output stream (destination for data)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5582 - * @param length predicted number of bytes to copy
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5583 - * @param progress listener to notify
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5584 - * @return number of bytes copied
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5585 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5586 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5587 -stream::size_type bufferedStreamCopy(inputStream& is, outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5588 - const stream::size_type length, progressListener* progress);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5589 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5590 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5591 -// Adapters
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5592 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5593 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5594 -/** An adapter class for C++ standard output streams.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5595 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5596 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5597 -class outputStreamAdapter : public outputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5598 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5599 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5600 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5601 - /** @param os output stream to wrap
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5602 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5603 - outputStreamAdapter(std::ostream& os);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5604 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5605 - void write(const value_type* const data, const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5606 - void flush();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5607 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5608 -private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5609 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5610 - std::ostream& m_stream;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5611 -};
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5612 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5613 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5614 -/** An adapter class for string output.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5615 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5616 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5617 -class outputStreamStringAdapter : public outputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5618 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5619 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5620 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5621 - outputStreamStringAdapter(string& buffer);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5622 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5623 - void write(const value_type* const data, const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5624 - void flush();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5625 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5626 -size_type getBlockSize(){return 8192;}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5627 -private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5628 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5629 - string& m_buffer;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5630 -};
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5631 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5632 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5633 -/** An adapter class for byte array output.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5634 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5635 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5636 -class outputStreamByteArrayAdapter : public outputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5637 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5638 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5639 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5640 - outputStreamByteArrayAdapter(byteArray& array);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5641 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5642 - void write(const value_type* const data, const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5643 - void flush();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5644 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5645 -private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5646 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5647 - byteArray& m_array;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5648 -};
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5649 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5650 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5651 -/** An adapter class for C++ standard input streams.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5652 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5653 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5654 -class inputStreamAdapter : public inputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5655 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5656 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5657 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5658 - /** @param is input stream to wrap
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5659 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5660 - inputStreamAdapter(std::istream& is);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5661 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5662 - bool eof() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5663 - void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5664 - size_type read(value_type* const data, const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5665 - size_type skip(const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5666 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5667 -private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5668 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5669 - std::istream& m_stream;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5670 -};
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5671 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5672 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5673 -/** An adapter class for string input.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5674 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5675 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5676 -class inputStreamStringAdapter : public inputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5677 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5678 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5679 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5680 - inputStreamStringAdapter(const string& buffer);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5681 - inputStreamStringAdapter(const string& buffer, const string::size_type begin, const string::size_type end);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5682 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5683 - bool eof() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5684 - void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5685 - size_type read(value_type* const data, const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5686 - size_type skip(const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5687 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5688 -private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5689 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5690 - inputStreamStringAdapter(const inputStreamStringAdapter&);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5691 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5692 - const string m_buffer; // do _NOT_ keep a reference...
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5693 - const string::size_type m_begin;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5694 - const string::size_type m_end;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5695 - string::size_type m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5696 -};
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5697 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5698 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5699 -/** An adapter class for stringProxy input.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5700 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5701 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5702 -class inputStreamStringProxyAdapter : public inputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5703 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5704 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5705 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5706 - /** @param buffer stringProxy object to wrap
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5707 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5708 - inputStreamStringProxyAdapter(const stringProxy& buffer);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5709 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5710 - bool eof() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5711 - void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5712 - size_type read(value_type* const data, const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5713 - size_type skip(const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5714 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5715 -private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5716 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5717 - inputStreamStringProxyAdapter(const inputStreamStringProxyAdapter&);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5718 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5719 - const stringProxy& m_buffer;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5720 - string::size_type m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5721 -};
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5722 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5723 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5724 -/** An adapter class for pointer to C++ standard input stream.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5725 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5726 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5727 -class inputStreamPointerAdapter : public inputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5728 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5729 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5730 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5731 - /** @param is input stream to wrap
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5732 - * @param own if set to 'true', the pointer will be deleted when
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5733 - * this object is destroyed
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5734 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5735 - inputStreamPointerAdapter(std::istream* is, const bool own = true);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5736 - ~inputStreamPointerAdapter();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5737 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5738 - bool eof() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5739 - void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5740 - size_type read(value_type* const data, const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5741 - size_type skip(const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5742 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5743 -private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5744 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5745 - inputStreamPointerAdapter(const inputStreamPointerAdapter&);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5746 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5747 - std::istream* m_stream;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5748 - const bool m_own;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5749 -};
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5750 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5751 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5752 -/** An adapter class for reading from an array of bytes.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5753 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5754 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5755 -class inputStreamByteBufferAdapter : public inputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5756 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5757 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5758 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5759 - inputStreamByteBufferAdapter(const byte_t* buffer, size_type length);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5760 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5761 - bool eof() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5762 - void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5763 - size_type read(value_type* const data, const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5764 - size_type skip(const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5765 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5766 -private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5767 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5768 - const byte_t* m_buffer;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5769 - const size_type m_length;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5770 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5771 - size_type m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5772 -};
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5773 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5774 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5775 -#if VMIME_HAVE_MESSAGING_FEATURES
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5776 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5777 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5778 -/** An output stream that is connected to a socket.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5779 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5780 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5781 -class outputStreamSocketAdapter : public outputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5782 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5783 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5784 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5785 - outputStreamSocketAdapter(net::socket& sok);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5786 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5787 - void write(const value_type* const data, const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5788 - void flush();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5789 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5790 - size_type getBlockSize();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5791 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5792 -private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5793 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5794 - outputStreamSocketAdapter(const outputStreamSocketAdapter&);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5795 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5796 - net::socket& m_socket;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5797 -};
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5798 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5799 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5800 -/** An input stream that is connected to a socket.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5801 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5802 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5803 -class inputStreamSocketAdapter : public inputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5804 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5805 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5806 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5807 - inputStreamSocketAdapter(net::socket& sok);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5808 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5809 - bool eof() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5810 - void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5811 - size_type read(value_type* const data, const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5812 - size_type skip(const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5813 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5814 - size_type getBlockSize();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5815 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5816 -private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5817 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5818 - inputStreamSocketAdapter(const inputStreamSocketAdapter&);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5819 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5820 - net::socket& m_socket;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5821 -};
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5822 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5823 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5824 -#endif // VMIME_HAVE_MESSAGING_FEATURES
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5825 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5826 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5827 } // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5828 } // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5829
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5830 diff --git a/vmime/utility/streamUtils.hpp b/vmime/utility/streamUtils.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5831 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5832 index 0000000..cdf70aa
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5833 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5834 +++ b/vmime/utility/streamUtils.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5835 @@ -0,0 +1,66 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5836 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5837 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5838 +// Copyright (C) 2002-2012 Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5839 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5840 +// This program is free software; you can redistribute it and/or
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5841 +// modify it under the terms of the GNU General Public License as
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5842 +// published by the Free Software Foundation; either version 3 of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5843 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5844 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5845 +// This program is distributed in the hope that it will be useful,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5846 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5847 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5848 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5849 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5850 +// You should have received a copy of the GNU General Public License along
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5851 +// with this program; if not, write to the Free Software Foundation, Inc.,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5852 +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5853 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5854 +// Linking this library statically or dynamically with other modules is making
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5855 +// a combined work based on this library. Thus, the terms and conditions of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5856 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5857 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5858 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5859 +#ifndef VMIME_UTILITY_STREAMUTILS_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5860 +#define VMIME_UTILITY_STREAMUTILS_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5861 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5862 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5863 +#include "vmime/utility/inputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5864 +#include "vmime/utility/outputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5865 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5866 +#include "vmime/utility/progressListener.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5867 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5868 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5869 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5870 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5871 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5872 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5873 +/** Copy data from one stream into another stream using a buffered method.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5874 + *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5875 + * @param is input stream (source data)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5876 + * @param os output stream (destination for data)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5877 + * @return number of bytes copied
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5878 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5879 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5880 +stream::size_type bufferedStreamCopy(inputStream& is, outputStream& os);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5881 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5882 +/** Copy data from one stream into another stream using a buffered method
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5883 + * and notify progress state of the operation.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5884 + *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5885 + * @param is input stream (source data)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5886 + * @param os output stream (destination for data)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5887 + * @param length predicted number of bytes to copy
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5888 + * @param progress listener to notify
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5889 + * @return number of bytes copied
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5890 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5891 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5892 +stream::size_type bufferedStreamCopy(inputStream& is, outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5893 + const stream::size_type length, progressListener* progress);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5894 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5895 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5896 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5897 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5898 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5899 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5900 +#endif // VMIME_UTILITY_STREAMUTILS_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5901 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5902 diff --git a/vmime/utility/stringProxy.hpp b/vmime/utility/stringProxy.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5903 index 21c65ea..66a6dfd 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5904 --- a/vmime/utility/stringProxy.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5905 +++ b/vmime/utility/stringProxy.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5906 @@ -29,6 +29,7 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5907
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5908 #include "vmime/types.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5909 #include "vmime/utility/stream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5910 +#include "vmime/utility/outputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5911 #include "vmime/utility/progressListener.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5912
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5913
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5914 diff --git a/vmime/vmime.hpp b/vmime/vmime.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5915 index f187b9e..fd04853 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5916 --- a/vmime/vmime.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5917 +++ b/vmime/vmime.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5918 @@ -68,6 +68,22 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5919 // Encoders
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5920 #include "vmime/utility/encoder/encoderFactory.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5921
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5922 +// Streams
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5923 +#include "vmime/utility/filteredStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5924 +#include "vmime/utility/inputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5925 +#include "vmime/utility/inputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5926 +#include "vmime/utility/inputStreamByteBufferAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5927 +#include "vmime/utility/inputStreamPointerAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5928 +#include "vmime/utility/inputStreamSocketAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5929 +#include "vmime/utility/inputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5930 +#include "vmime/utility/inputStreamStringProxyAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5931 +#include "vmime/utility/outputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5932 +#include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5933 +#include "vmime/utility/outputStreamByteArrayAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5934 +#include "vmime/utility/outputStreamSocketAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5935 +#include "vmime/utility/outputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5936 +#include "vmime/utility/streamUtils.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5937 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5938 // Message builder/parser
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5939 #include "vmime/messageBuilder.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5940 #include "vmime/messageParser.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5941 --
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5942 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5943
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5944
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5945 From be30b47f09c5358db2ac8e42fa2bb4a14ec24c51 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5946 From: Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5947 Date: Mon, 16 Apr 2012 22:32:33 +0200
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5948 Subject: [PATCH 37/38] Added ability to parse directly from an input stream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5949 (eg. file). This allows very big messages to be
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5950 parsed without loading the whole message data into
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5951 memory.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5952
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5953 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5954 ChangeLog | 6 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5955 SConstruct | 3 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5956 src/addressList.cpp | 8 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5957 src/body.cpp | 220 ++++++++++++++------
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5958 src/bodyPart.cpp | 17 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5959 src/charset.cpp | 8 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5960 src/component.cpp | 137 ++++++++++--
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5961 src/contentDisposition.cpp | 8 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5962 src/dateTime.cpp | 8 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5963 src/disposition.cpp | 8 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5964 src/encoding.cpp | 8 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5965 src/header.cpp | 8 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5966 src/headerField.cpp | 8 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5967 src/mailbox.cpp | 8 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5968 src/mailboxGroup.cpp | 8 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5969 src/mailboxList.cpp | 6 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5970 src/mediaType.cpp | 8 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5971 src/message.cpp | 9 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5972 src/messageId.cpp | 8 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5973 src/messageIdSequence.cpp | 8 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5974 src/parameter.cpp | 40 ++--
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5975 src/parameterizedHeaderField.cpp | 12 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5976 src/path.cpp | 12 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5977 src/platforms/posix/posixFile.cpp | 20 ++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5978 src/platforms/windows/windowsFile.cpp | 18 ++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5979 src/relay.cpp | 8 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5980 src/streamContentHandler.cpp | 4 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5981 src/text.cpp | 8 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5982 src/utility/inputStreamAdapter.cpp | 12 ++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5983 src/utility/inputStreamByteBufferAdapter.cpp | 13 ++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5984 src/utility/inputStreamStringAdapter.cpp | 13 ++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5985 src/utility/inputStreamStringProxyAdapter.cpp | 13 ++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5986 src/utility/parserInputStreamAdapter.cpp | 162 ++++++++++++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5987 src/utility/seekableInputStreamRegionAdapter.cpp | 95 +++++++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5988 src/utility/stream.cpp | 4 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5989 src/utility/streamUtils.cpp | 29 +++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5990 src/word.cpp | 8 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5991 tests/parser/bodyPartTest.cpp | 89 ++++++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5992 vmime/addressList.hpp | 20 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5993 vmime/body.hpp | 20 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5994 vmime/bodyPart.hpp | 20 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5995 vmime/charset.hpp | 20 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5996 vmime/component.hpp | 97 +++++++--
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5997 vmime/contentDisposition.hpp | 20 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5998 vmime/dateTime.hpp | 20 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
5999 vmime/disposition.hpp | 20 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6000 vmime/encoding.hpp | 20 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6001 vmime/header.hpp | 20 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6002 vmime/headerField.hpp | 25 ++-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6003 vmime/mailbox.hpp | 15 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6004 vmime/mailboxGroup.hpp | 20 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6005 vmime/mailboxList.hpp | 20 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6006 vmime/mediaType.hpp | 20 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6007 vmime/message.hpp | 23 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6008 vmime/messageId.hpp | 28 ++-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6009 vmime/messageIdSequence.hpp | 20 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6010 vmime/parameter.hpp | 22 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6011 vmime/parameterizedHeaderField.hpp | 22 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6012 vmime/parserHelpers.hpp | 4 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6013 vmime/path.hpp | 19 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6014 vmime/platforms/posix/posixFile.hpp | 6 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6015 vmime/platforms/windows/windowsFile.hpp | 3 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6016 vmime/relay.hpp | 18 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6017 vmime/text.hpp | 19 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6018 vmime/utility/inputStreamAdapter.hpp | 6 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6019 vmime/utility/inputStreamByteBufferAdapter.hpp | 6 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6020 vmime/utility/inputStreamStringAdapter.hpp | 6 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6021 vmime/utility/inputStreamStringProxyAdapter.hpp | 6 +-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6022 vmime/utility/parserInputStreamAdapter.hpp | 173 +++++++++++++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6023 vmime/utility/seekableInputStream.hpp | 64 ++++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6024 vmime/utility/seekableInputStreamRegionAdapter.hpp | 71 +++++++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6025 vmime/utility/stream.hpp | 4 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6026 vmime/utility/streamUtils.hpp | 13 ++
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6027 vmime/word.hpp | 49 ++++-
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6028 74 files changed, 1643 insertions(+), 378 deletions(-)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6029 create mode 100644 src/utility/parserInputStreamAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6030 create mode 100644 src/utility/seekableInputStreamRegionAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6031 create mode 100644 vmime/utility/parserInputStreamAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6032 create mode 100644 vmime/utility/seekableInputStream.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6033 create mode 100644 vmime/utility/seekableInputStreamRegionAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6034
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6035 diff --git a/ChangeLog b/ChangeLog
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6036 index 8fdcdb0..1b5b2cf 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6037 --- a/ChangeLog
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6038 +++ b/ChangeLog
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6039 @@ -2,6 +2,12 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6040 VERSION 0.9.2svn
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6041 ================
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6042
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6043 +2012-04-16 Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6044 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6045 + * MIME Parser can now operate directly on an input stream (eg. file).
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6046 + This allows very big messages to be parsed without loading the whole
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6047 + message data into memory.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6048 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6049 2010-11-16 Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6050
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6051 * Started version 0.9.2.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6052 diff --git a/SConstruct b/SConstruct
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6053 index ea5c4eb..2690172 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6054 --- a/SConstruct
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6055 +++ b/SConstruct
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6056 @@ -153,11 +153,14 @@ libvmime_sources = [
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6057 'utility/inputStreamSocketAdapter.cpp', 'utility/inputStreamSocketAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6058 'utility/inputStreamStringAdapter.cpp', 'utility/inputStreamStringAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6059 'utility/inputStreamStringProxyAdapter.cpp', 'utility/inputStreamStringProxyAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6060 + 'utility/seekableInputStream.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6061 + 'utility/seekableInputStreamRegionAdapter.cpp', 'utility/seekableInputStreamRegionAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6062 'utility/outputStream.cpp', 'utility/outputStream.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6063 'utility/outputStreamAdapter.cpp', 'utility/outputStreamAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6064 'utility/outputStreamByteArrayAdapter.cpp', 'utility/outputStreamByteArrayAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6065 'utility/outputStreamSocketAdapter.cpp', 'utility/outputStreamSocketAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6066 'utility/outputStreamStringAdapter.cpp', 'utility/outputStreamStringAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6067 + 'utility/parserInputStreamAdapter.cpp', 'utility/parserInputStreamAdapter.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6068 'utility/stringProxy.cpp', 'utility/stringProxy.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6069 'utility/stringUtils.cpp', 'utility/stringUtils.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6070 'utility/url.cpp', 'utility/url.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6071 diff --git a/src/addressList.cpp b/src/addressList.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6072 index 31a2a3d..f06460d 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6073 --- a/src/addressList.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6074 +++ b/src/addressList.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6075 @@ -50,7 +50,7 @@ addressList::~addressList()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6076 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6077
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6078
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6079 -void addressList::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6080 +void addressList::parseImpl(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6081 const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6082 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6083 removeAllAddresses();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6084 @@ -72,7 +72,7 @@ void addressList::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6085 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6086
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6087
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6088 -void addressList::generate(utility::outputStream& os, const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6089 +void addressList::generateImpl(utility::outputStream& os, const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6090 const string::size_type curLinePos, string::size_type* newLinePos) const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6091 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6092 string::size_type pos = curLinePos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6093 @@ -248,9 +248,9 @@ const std::vector <ref <address> > addressList::getAddressList()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6094 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6095
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6096
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6097 -const std::vector <ref <const component> > addressList::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6098 +const std::vector <ref <component> > addressList::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6099 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6100 - std::vector <ref <const component> > list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6101 + std::vector <ref <component> > list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6102
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6103 copy_vector(m_list, list);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6104
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6105 diff --git a/src/body.cpp b/src/body.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6106 index 9d7d57f..732fa8b 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6107 --- a/src/body.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6108 +++ b/src/body.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6109 @@ -31,10 +31,13 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6110
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6111 #include "vmime/utility/random.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6112
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6113 +#include "vmime/utility/seekableInputStreamRegionAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6114 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6115 #include "vmime/parserHelpers.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6116
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6117 #include "vmime/emptyContentHandler.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6118 #include "vmime/stringContentHandler.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6119 +#include "vmime/streamContentHandler.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6120
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6121
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6122 namespace vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6123 @@ -52,11 +55,28 @@ body::~body()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6124 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6125
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6126
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6127 -void body::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6128 - const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6129 +void body::parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6130 + (ref <utility::parserInputStreamAdapter> parser,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6131 + const utility::stream::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6132 + const utility::stream::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6133 + utility::stream::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6134 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6135 removeAllParts();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6136
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6137 + m_prologText.clear();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6138 + m_epilogText.clear();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6139 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6140 + if (end == position)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6141 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6142 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6143 + setParsedBounds(position, end);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6144 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6145 + if (newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6146 + *newPosition = end;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6147 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6148 + return;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6149 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6150 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6151 // Check whether the body is a MIME-multipart
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6152 bool isMultipart = false;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6153 string boundary;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6154 @@ -80,37 +100,61 @@ void body::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6155 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6156 // No "boundary" parameter specified: we can try to
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6157 // guess it by scanning the body contents...
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6158 - string::size_type pos = buffer.find("\n--", position);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6159 + utility::stream::size_type pos = position;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6160 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6161 + parser->seek(pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6162 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6163 + if (pos + 2 < end && parser->matchBytes("--", 2))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6164 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6165 + pos += 2;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6166 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6167 + else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6168 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6169 + pos = parser->findNext("\n--", position);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6170
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6171 - if ((pos != string::npos) && (pos < end))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6172 + if ((pos != utility::stream::npos) && (pos + 3 < end))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6173 + pos += 3; // skip \n--
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6174 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6175 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6176 + if ((pos != utility::stream::npos) && (pos < end))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6177 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6178 - pos += 3;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6179 + parser->seek(pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6180
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6181 - const string::size_type start = pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6182 + // Read some bytes after boundary separator
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6183 + utility::stream::value_type buffer[256];
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6184 + const utility::stream::size_type bufferLen =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6185 + parser->read(buffer, std::min(end - pos, sizeof(buffer) / sizeof(buffer[0])));
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6186
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6187 - char_t c = buffer[pos];
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6188 - string::size_type length = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6189 + buffer[sizeof(buffer) / sizeof(buffer[0]) - 1] = '\0';
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6190
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6191 + // Extract boundary from buffer (stop at first CR or LF).
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6192 // We have to stop after a reasonnably long boundary length (100)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6193 // not to take the whole body contents for a boundary...
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6194 - while (pos < end && length < 100 && !(c == '\r' || c == '\n'))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6195 + string::value_type boundaryBytes[100];
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6196 + string::size_type boundaryLen = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6197 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6198 + for (string::value_type c = buffer[0] ;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6199 + boundaryLen < bufferLen && boundaryLen < 100 && !(c == '\r' || c == '\n') ;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6200 + c = buffer[++boundaryLen])
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6201 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6202 - ++length;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6203 - c = buffer[pos++];
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6204 + boundaryBytes[boundaryLen] = buffer[boundaryLen];
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6205 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6206
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6207 - if (pos < end && length < 100)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6208 + if (boundaryLen >= 1 && boundaryLen < 100)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6209 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6210 // RFC #1521, Page 31:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6211 // "...the boundary parameter, which consists of 1 to 70
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6212 // characters from a set of characters known to be very
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6213 // robust through email gateways, and NOT ending with
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6214 // white space..."
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6215 - while (pos != start && parserHelpers::isSpace(buffer[pos - 1]))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6216 - --pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6217 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6218 - boundary = string(buffer.begin() + start,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6219 - buffer.begin() + pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6220 + while (boundaryLen != 0 &&
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6221 + parserHelpers::isSpace(boundaryBytes[boundaryLen - 1]))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6222 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6223 + boundaryLen--;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6224 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6225 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6226 + if (boundaryLen >= 1)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6227 + boundary = string(boundaryBytes, boundaryBytes + boundaryLen);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6228 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6229 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6230 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6231 @@ -126,51 +170,79 @@ void body::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6232 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6233 const string boundarySep("--" + boundary);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6234
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6235 - string::size_type partStart = position;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6236 - string::size_type pos = position;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6237 + utility::stream::size_type partStart = position;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6238 + utility::stream::size_type pos = position;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6239
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6240 bool lastPart = false;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6241
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6242 - while (pos != string::npos && pos < end)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6243 + while (pos != utility::stream::npos && pos < end)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6244 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6245 - pos = buffer.find(boundarySep, pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6246 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6247 - if (pos == string::npos ||
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6248 - ((pos == 0 || buffer[pos - 1] == '\n') &&
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6249 - (buffer[pos + boundarySep.length()] == '\r' ||
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6250 - buffer[pos + boundarySep.length()] == '\n' ||
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6251 - buffer[pos + boundarySep.length()] == '-'
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6252 - )
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6253 - )
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6254 - )
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6255 + pos = parser->findNext(boundarySep, pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6256 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6257 + if (pos == utility::stream::npos)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6258 + break; // not found
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6259 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6260 + if (pos != 0)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6261 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6262 - break;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6263 + parser->seek(pos - 1);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6264 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6265 + if (parser->peekByte() != '\n')
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6266 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6267 + // Boundary is not at a beginning of a line
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6268 + pos++;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6269 + continue;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6270 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6271 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6272 + parser->skip(1 + boundarySep.length());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6273 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6274 + else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6275 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6276 + parser->seek(pos + boundarySep.length());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6277 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6278
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6279 - // boundary not a beginning of line, or just a prefix of another, continue the search.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6280 + const utility::stream::value_type next = parser->peekByte();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6281 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6282 + if (next == '\r' || next == '\n' || next == '-')
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6283 + break;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6284 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6285 + // Boundary is a prefix of another, continue the search
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6286 pos++;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6287 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6288
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6289 - if (pos != string::npos && pos < end)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6290 + if (pos != utility::stream::npos && pos < end)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6291 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6292 vmime::text text;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6293 - text.parse(buffer, position, pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6294 + text.parse(parser, position, pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6295
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6296 m_prologText = text.getWholeBuffer();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6297 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6298
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6299 - for (int index = 0 ; !lastPart && (pos != string::npos) && (pos < end) ; ++index)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6300 + for (int index = 0 ; !lastPart && (pos != utility::stream::npos) && (pos < end) ; ++index)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6301 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6302 - string::size_type partEnd = pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6303 + utility::stream::size_type partEnd = pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6304
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6305 // Get rid of the [CR]LF just before the boundary string
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6306 - if (pos >= (position + 1) && buffer[pos - 1] == '\n') --partEnd;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6307 - if (pos >= (position + 2) && buffer[pos - 2] == '\r') --partEnd;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6308 + if (pos >= (position + 1))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6309 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6310 + parser->seek(pos - 1);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6311 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6312 + if (parser->peekByte() == '\n')
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6313 + --partEnd;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6314 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6315 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6316 + if (pos >= (position + 2))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6317 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6318 + parser->seek(pos - 2);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6319 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6320 + if (parser->peekByte() == '\r')
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6321 + --partEnd;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6322 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6323
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6324 // Check whether it is the last part (boundary terminated by "--")
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6325 pos += boundarySep.length();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6326 + parser->seek(pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6327
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6328 - if (pos + 1 < end && buffer[pos] == '-' && buffer[pos + 1] == '-')
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6329 + if (pos + 1 < end && parser->matchBytes("--", 2))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6330 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6331 lastPart = true;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6332 pos += 2;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6333 @@ -180,15 +252,15 @@ void body::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6334 // "...(If a boundary appears to end with white space, the
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6335 // white space must be presumed to have been added by a
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6336 // gateway, and must be deleted.)..."
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6337 - while (pos < end && (buffer[pos] == ' ' || buffer[pos] == '\t'))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6338 - ++pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6339 + parser->seek(pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6340 + pos += parser->skipIf(parserHelpers::isSpaceOrTab, end);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6341
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6342 // End of boundary line
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6343 - if (pos + 1 < end && buffer[pos] == '\r' && buffer[pos + 1] =='\n')
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6344 + if (pos + 1 < end && parser->matchBytes("\r\n", 2))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6345 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6346 pos += 2;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6347 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6348 - else if (pos < end && buffer[pos] == '\n')
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6349 + else if (pos < end && parser->peekByte() == '\n')
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6350 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6351 ++pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6352 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6353 @@ -202,7 +274,7 @@ void body::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6354 if (partEnd < partStart)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6355 std::swap(partStart, partEnd);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6356
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6357 - part->parse(buffer, partStart, partEnd, NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6358 + part->parse(parser, partStart, partEnd, NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6359 part->m_parent = m_part;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6360
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6361 m_parts.push_back(part);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6362 @@ -210,23 +282,37 @@ void body::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6363
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6364 partStart = pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6365
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6366 - while (pos != string::npos && pos < end)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6367 + while (pos != utility::stream::npos && pos < end)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6368 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6369 - pos = buffer.find(boundarySep, pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6370 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6371 - if (pos == string::npos ||
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6372 - ((pos == 0 || buffer[pos - 1] == '\n') &&
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6373 - (buffer[pos + boundarySep.length()] == '\r' ||
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6374 - buffer[pos + boundarySep.length()] == '\n' ||
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6375 - buffer[pos + boundarySep.length()] == '-'
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6376 - )
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6377 - )
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6378 - )
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6379 + pos = parser->findNext(boundarySep, pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6380 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6381 + if (pos == utility::stream::npos)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6382 + break; // not found
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6383 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6384 + if (pos != 0)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6385 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6386 - break;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6387 + parser->seek(pos - 1);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6388 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6389 + if (parser->peekByte() != '\n')
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6390 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6391 + // Boundary is not at a beginning of a line
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6392 + pos++;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6393 + continue;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6394 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6395 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6396 + parser->skip(1 + boundarySep.length());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6397 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6398 + else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6399 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6400 + parser->seek(pos + boundarySep.length());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6401 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6402
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6403 - // boundary not a beginning of line, or just a prefix of another, continue the search.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6404 + const utility::stream::value_type next = parser->peekByte();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6405 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6406 + if (next == '\r' || next == '\n' || next == '-')
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6407 + break;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6408 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6409 + // Boundary is a prefix of another, continue the search
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6410 pos++;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6411 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6412 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6413 @@ -234,13 +320,13 @@ void body::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6414 m_contents = vmime::create <emptyContentHandler>();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6415
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6416 // Last part was not found: recover from missing boundary
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6417 - if (!lastPart && pos == string::npos)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6418 + if (!lastPart && pos == utility::stream::npos)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6419 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6420 ref <bodyPart> part = vmime::create <bodyPart>();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6421
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6422 try
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6423 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6424 - part->parse(buffer, partStart, end);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6425 + part->parse(parser, partStart, end);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6426 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6427 catch (std::exception&)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6428 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6429 @@ -255,7 +341,7 @@ void body::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6430 else if (partStart < end)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6431 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6432 vmime::text text;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6433 - text.parse(buffer, partStart, end);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6434 + text.parse(parser, partStart, end);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6435
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6436 m_epilogText = text.getWholeBuffer();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6437 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6438 @@ -282,7 +368,13 @@ void body::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6439 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6440
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6441 // Extract the (encoded) contents
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6442 - m_contents = vmime::create <stringContentHandler>(buffer, position, end, enc);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6443 + const utility::stream::size_type length = end - position;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6444 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6445 + ref <utility::inputStream> contentStream =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6446 + vmime::create <utility::seekableInputStreamRegionAdapter>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6447 + (parser->getUnderlyingStream(), position, length);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6448 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6449 + m_contents = vmime::create <streamContentHandler>(contentStream, length, enc);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6450 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6451
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6452 setParsedBounds(position, end);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6453 @@ -292,7 +384,7 @@ void body::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6454 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6455
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6456
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6457 -void body::generate(utility::outputStream& os, const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6458 +void body::generateImpl(utility::outputStream& os, const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6459 const string::size_type /* curLinePos */, string::size_type* newLinePos) const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6460 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6461 // MIME-Multipart
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6462 @@ -862,9 +954,9 @@ const std::vector <ref <bodyPart> > body::getPartList()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6463 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6464
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6465
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6466 -const std::vector <ref <const component> > body::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6467 +const std::vector <ref <component> > body::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6468 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6469 - std::vector <ref <const component> > list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6470 + std::vector <ref <component> > list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6471
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6472 copy_vector(m_parts, list);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6473
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6474 diff --git a/src/bodyPart.cpp b/src/bodyPart.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6475 index 7d60461..522cbb2 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6476 --- a/src/bodyPart.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6477 +++ b/src/bodyPart.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6478 @@ -46,15 +46,18 @@ bodyPart::bodyPart(weak_ref <vmime::bodyPart> parentPart)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6479 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6480
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6481
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6482 -void bodyPart::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6483 - const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6484 +void bodyPart::parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6485 + (ref <utility::parserInputStreamAdapter> parser,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6486 + const utility::stream::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6487 + const utility::stream::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6488 + utility::stream::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6489 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6490 // Parse the headers
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6491 string::size_type pos = position;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6492 - m_header->parse(buffer, pos, end, &pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6493 + m_header->parse(parser, pos, end, &pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6494
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6495 // Parse the body contents
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6496 - m_body->parse(buffer, pos, end, NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6497 + m_body->parse(parser, pos, end, NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6498
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6499 setParsedBounds(position, end);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6500
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6501 @@ -63,7 +66,7 @@ void bodyPart::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6502 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6503
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6504
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6505 -void bodyPart::generate(utility::outputStream& os, const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6506 +void bodyPart::generateImpl(utility::outputStream& os, const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6507 const string::size_type /* curLinePos */, string::size_type* newLinePos) const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6508 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6509 m_header->generate(os, maxLineLength);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6510 @@ -142,9 +145,9 @@ ref <const bodyPart> bodyPart::getParentPart() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6511 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6512
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6513
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6514 -const std::vector <ref <const component> > bodyPart::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6515 +const std::vector <ref <component> > bodyPart::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6516 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6517 - std::vector <ref <const component> > list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6518 + std::vector <ref <component> > list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6519
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6520 list.push_back(m_header);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6521 list.push_back(m_body);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6522 diff --git a/src/charset.cpp b/src/charset.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6523 index 0fda450..705664f 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6524 --- a/src/charset.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6525 +++ b/src/charset.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6526 @@ -57,7 +57,7 @@ charset::charset(const char* name)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6527 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6528
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6529
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6530 -void charset::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6531 +void charset::parseImpl(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6532 const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6533 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6534 m_name = utility::stringUtils::trim
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6535 @@ -74,7 +74,7 @@ void charset::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6536 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6537
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6538
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6539 -void charset::generate(utility::outputStream& os, const string::size_type /* maxLineLength */,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6540 +void charset::generateImpl(utility::outputStream& os, const string::size_type /* maxLineLength */,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6541 const string::size_type curLinePos, string::size_type* newLinePos) const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6542 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6543 os << m_name;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6544 @@ -142,9 +142,9 @@ void charset::copyFrom(const component& other)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6545 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6546
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6547
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6548 -const std::vector <ref <const component> > charset::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6549 +const std::vector <ref <component> > charset::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6550 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6551 - return std::vector <ref <const component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6552 + return std::vector <ref <component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6553 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6554
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6555
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6556 diff --git a/src/component.cpp b/src/component.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6557 index 139cf66..e93aacf 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6558 --- a/src/component.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6559 +++ b/src/component.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6560 @@ -23,6 +23,9 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6561
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6562 #include "vmime/component.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6563 #include "vmime/base.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6564 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6565 +#include "vmime/utility/streamUtils.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6566 +#include "vmime/utility/inputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6567 #include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6568
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6569 #include <sstream>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6570 @@ -43,9 +46,102 @@ component::~component()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6571 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6572
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6574 +void component::parse
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6575 + (ref <utility::inputStream> inputStream, const utility::stream::size_type length)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6576 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6577 + parse(inputStream, 0, length, NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6578 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6579 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6580 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6581 +void component::parse
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6582 + (ref <utility::inputStream> inputStream, const utility::stream::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6583 + const utility::stream::size_type end, utility::stream::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6584 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6585 + m_parsedOffset = m_parsedLength = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6586 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6587 + ref <utility::seekableInputStream> seekableStream =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6588 + inputStream.dynamicCast <utility::seekableInputStream>();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6589 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6590 + if (seekableStream == NULL || end == 0)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6591 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6592 + // Read the whole stream into a buffer
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6593 + std::ostringstream oss;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6594 + utility::outputStreamAdapter ossAdapter(oss);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6595 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6596 + utility::bufferedStreamCopyRange(*inputStream, ossAdapter, position, end - position);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6597 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6598 + const string buffer = oss.str();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6599 + parseImpl(buffer, 0, buffer.length(), NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6600 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6601 + else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6602 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6603 + ref <utility::parserInputStreamAdapter> parser =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6604 + vmime::create <utility::parserInputStreamAdapter>(seekableStream);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6605 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6606 + parseImpl(parser, position, end, newPosition);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6607 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6608 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6609 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6610 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6611 void component::parse(const string& buffer)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6612 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6613 - parse(buffer, 0, buffer.length(), NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6614 + m_parsedOffset = m_parsedLength = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6615 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6616 + parseImpl(buffer, 0, buffer.length(), NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6617 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6618 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6619 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6620 +void component::parse
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6621 + (const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6622 + const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6623 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6624 + m_parsedOffset = m_parsedLength = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6625 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6626 + parseImpl(buffer, position, end, newPosition);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6627 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6628 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6629 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6630 +void component::offsetParsedBounds(const utility::stream::size_type offset)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6631 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6632 + // Offset parsed bounds of this component
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6633 + if (m_parsedLength != 0)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6634 + m_parsedOffset += offset;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6635 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6636 + // Offset parsed bounds of our children
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6637 + std::vector <ref <component> > children = getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6638 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6639 + for (unsigned int i = 0, n = children.size() ; i < n ; ++i)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6640 + children[i]->offsetParsedBounds(offset);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6641 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6642 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6643 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6644 +void component::parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6645 + (ref <utility::parserInputStreamAdapter> parser, const utility::stream::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6646 + const utility::stream::size_type end, utility::stream::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6647 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6648 + const std::string buffer = parser->extract(position, end);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6649 + parseImpl(buffer, 0, buffer.length(), newPosition);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6650 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6651 + // Recursivey offset parsed bounds on children
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6652 + if (position != 0)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6653 + offsetParsedBounds(position);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6654 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6655 + if (newPosition != NULL)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6656 + *newPosition += position;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6657 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6658 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6659 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6660 +void component::parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6661 + (const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6662 + const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6663 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6664 + ref <utility::seekableInputStream> stream =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6665 + vmime::create <utility::inputStreamStringAdapter>(buffer);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6666 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6667 + ref <utility::parserInputStreamAdapter> parser =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6668 + vmime::create <utility::parserInputStreamAdapter>(stream);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6669 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6670 + parseImpl(parser, position, end, newPosition);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6671 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6672
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6673
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6674 @@ -61,6 +157,26 @@ const string component::generate(const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6675 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6676
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6677
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6678 +void component::generate
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6679 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6680 + const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6681 + const string::size_type curLinePos,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6682 + string::size_type* newLinePos) const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6683 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6684 + generateImpl(os, maxLineLength, curLinePos, newLinePos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6685 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6686 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6687 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6688 +void component::generate
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6689 + (ref <utility::outputStream> os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6690 + const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6691 + const string::size_type curLinePos,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6692 + string::size_type* newLinePos) const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6693 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6694 + generateImpl(*os, maxLineLength, curLinePos, newLinePos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6695 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6696 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6697 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6698 string::size_type component::getParsedOffset() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6699 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6700 return (m_parsedOffset);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6701 @@ -80,22 +196,5 @@ void component::setParsedBounds(const string::size_type start, const string::siz
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6702 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6703
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6704
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6705 -const std::vector <ref <component> > component::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6706 -{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6707 - const std::vector <ref <const component> > constList =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6708 - const_cast <const component*>(this)->getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6709 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6710 - std::vector <ref <component> > list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6711 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6712 - const std::vector <ref <const component> >::size_type count = constList.size();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6713 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6714
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6715 - list.resize(count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6716 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6717 - for (std::vector <ref <const component> >::size_type i = 0 ; i < count ; ++i)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6718 - list[i] = constList[i].constCast <component>();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6719 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6720 - return (list);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6721 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6722 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6723 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6724 -}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6725 diff --git a/src/contentDisposition.cpp b/src/contentDisposition.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6726 index 0ab7c45..253dbba 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6727 --- a/src/contentDisposition.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6728 +++ b/src/contentDisposition.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6729 @@ -47,7 +47,7 @@ contentDisposition::contentDisposition(const contentDisposition& type)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6730 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6731
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6732
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6733 -void contentDisposition::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6734 +void contentDisposition::parseImpl(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6735 const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6736 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6737 m_name = utility::stringUtils::trim(utility::stringUtils::toLower
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6738 @@ -60,7 +60,7 @@ void contentDisposition::parse(const string& buffer, const string::size_type pos
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6739 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6740
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6741
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6742 -void contentDisposition::generate(utility::outputStream& os, const string::size_type /* maxLineLength */,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6743 +void contentDisposition::generateImpl(utility::outputStream& os, const string::size_type /* maxLineLength */,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6744 const string::size_type curLinePos, string::size_type* newLinePos) const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6745 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6746 os << m_name;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6747 @@ -122,9 +122,9 @@ void contentDisposition::setName(const string& name)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6748 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6749
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6750
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6751 -const std::vector <ref <const component> > contentDisposition::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6752 +const std::vector <ref <component> > contentDisposition::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6753 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6754 - return std::vector <ref <const component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6755 + return std::vector <ref <component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6756 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6757
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6758
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6759 diff --git a/src/dateTime.cpp b/src/dateTime.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6760 index 089a900..0d97b2f 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6761 --- a/src/dateTime.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6762 +++ b/src/dateTime.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6763 @@ -67,7 +67,7 @@ zone = "UT" / "GMT" ; Universal Time
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6764 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6765
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6766
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6767 -void datetime::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6768 +void datetime::parseImpl(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6769 const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6770 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6771 const string::value_type* const pend = buffer.data() + end;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6772 @@ -588,7 +588,7 @@ void datetime::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6773 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6774
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6775
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6776 -void datetime::generate(utility::outputStream& os, const string::size_type /* maxLineLength */,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6777 +void datetime::generateImpl(utility::outputStream& os, const string::size_type /* maxLineLength */,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6778 const string::size_type curLinePos, string::size_type* newLinePos) const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6779 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6780 static const string::value_type* dayNames[] =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6781 @@ -784,9 +784,9 @@ ref <component> datetime::clone() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6782 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6783
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6784
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6785 -const std::vector <ref <const component> > datetime::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6786 +const std::vector <ref <component> > datetime::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6787 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6788 - return std::vector <ref <const component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6789 + return std::vector <ref <component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6790 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6791
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6792
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6793 diff --git a/src/disposition.cpp b/src/disposition.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6794 index b8059a7..24a4579 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6795 --- a/src/disposition.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6796 +++ b/src/disposition.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6797 @@ -79,9 +79,9 @@ disposition& disposition::operator=(const disposition& other)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6798 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6799
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6800
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6801 -const std::vector <ref <const component> > disposition::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6802 +const std::vector <ref <component> > disposition::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6803 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6804 - return std::vector <ref <const component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6805 + return std::vector <ref <component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6806 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6807
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6808
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6809 @@ -171,7 +171,7 @@ const std::vector <string> disposition::getModifierList() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6810 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6811
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6812
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6813 -void disposition::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6814 +void disposition::parseImpl(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6815 const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6816 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6817 // disposition-mode ";" disposition-type
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6818 @@ -276,7 +276,7 @@ void disposition::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6819 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6820
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6821
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6822 -void disposition::generate(utility::outputStream& os, const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6823 +void disposition::generateImpl(utility::outputStream& os, const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6824 const string::size_type curLinePos, string::size_type* newLinePos) const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6825 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6826 string::size_type pos = curLinePos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6827 diff --git a/src/encoding.cpp b/src/encoding.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6828 index 5d99ab6..343a822 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6829 --- a/src/encoding.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6830 +++ b/src/encoding.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6831 @@ -61,7 +61,7 @@ encoding::encoding(const encoding& enc)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6832 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6833
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6834
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6835 -void encoding::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6836 +void encoding::parseImpl(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6837 const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6838 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6839 m_usage = USAGE_UNKNOWN;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6840 @@ -80,7 +80,7 @@ void encoding::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6841 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6842
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6843
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6844 -void encoding::generate(utility::outputStream& os, const string::size_type /* maxLineLength */,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6845 +void encoding::generateImpl(utility::outputStream& os, const string::size_type /* maxLineLength */,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6846 const string::size_type curLinePos, string::size_type* newLinePos) const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6847 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6848 os << m_name;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6849 @@ -268,9 +268,9 @@ void encoding::setUsage(const EncodingUsage usage)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6850 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6851
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6852
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6853 -const std::vector <ref <const component> > encoding::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6854 +const std::vector <ref <component> > encoding::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6855 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6856 - return std::vector <ref <const component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6857 + return std::vector <ref <component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6858 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6859
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6860
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6861 diff --git a/src/header.cpp b/src/header.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6862 index 443aab8..fcdca2c 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6863 --- a/src/header.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6864 +++ b/src/header.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6865 @@ -61,7 +61,7 @@ field-body-contents =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6866 specials tokens, or else consisting of texts>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6867 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6868
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6869 -void header::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6870 +void header::parseImpl(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6871 const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6872 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6873 string::size_type pos = position;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6874 @@ -83,7 +83,7 @@ void header::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6875 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6876
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6877
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6878 -void header::generate(utility::outputStream& os, const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6879 +void header::generateImpl(utility::outputStream& os, const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6880 const string::size_type /* curLinePos */, string::size_type* newLinePos) const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6881 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6882 // Generate the fields
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6883 @@ -337,9 +337,9 @@ const std::vector <ref <headerField> > header::getFieldList()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6884 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6885
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6886
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6887 -const std::vector <ref <const component> > header::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6888 +const std::vector <ref <component> > header::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6889 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6890 - std::vector <ref <const component> > list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6891 + std::vector <ref <component> > list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6892
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6893 copy_vector(m_fields, list);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6894
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6895 diff --git a/src/headerField.cpp b/src/headerField.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6896 index d1d4236..a8460aa 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6897 --- a/src/headerField.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6898 +++ b/src/headerField.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6899 @@ -262,14 +262,14 @@ ref <headerField> headerField::parseNext(const string& buffer, const string::siz
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6900 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6901
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6902
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6903 -void headerField::parse(const string& buffer, const string::size_type position, const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6904 +void headerField::parseImpl(const string& buffer, const string::size_type position, const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6905 string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6906 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6907 m_value->parse(buffer, position, end, newPosition);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6908 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6909
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6910
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6911 -void headerField::generate(utility::outputStream& os, const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6912 +void headerField::generateImpl(utility::outputStream& os, const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6913 const string::size_type curLinePos, string::size_type* newLinePos) const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6914 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6915 os << m_name + ": ";
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6916 @@ -296,9 +296,9 @@ bool headerField::isCustom() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6917 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6918
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6919
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6920 -const std::vector <ref <const component> > headerField::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6921 +const std::vector <ref <component> > headerField::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6922 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6923 - std::vector <ref <const component> > list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6924 + std::vector <ref <component> > list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6925
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6926 if (m_value)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6927 list.push_back(m_value);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6928 diff --git a/src/mailbox.cpp b/src/mailbox.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6929 index fea7479..dfdccad 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6930 --- a/src/mailbox.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6931 +++ b/src/mailbox.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6932 @@ -65,7 +65,7 @@ angle-addr = [CFWS] "<" addr-spec ">" [CFWS] / obs-angle-addr
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6933
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6934 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6935
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6936 -void mailbox::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6937 +void mailbox::parseImpl(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6938 const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6939 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6940 const string::value_type* const pend = buffer.data() + end;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6941 @@ -343,7 +343,7 @@ void mailbox::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6942 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6943
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6944
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6945 -void mailbox::generate(utility::outputStream& os, const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6946 +void mailbox::generateImpl(utility::outputStream& os, const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6947 const string::size_type curLinePos, string::size_type* newLinePos) const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6948 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6949 if (m_name.isEmpty())
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6950 @@ -514,9 +514,9 @@ void mailbox::setEmail(const string& email)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6951 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6952
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6953
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6954 -const std::vector <ref <const component> > mailbox::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6955 +const std::vector <ref <component> > mailbox::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6956 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6957 - return std::vector <ref <const component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6958 + return std::vector <ref <component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6959 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6960
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6961
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6962 diff --git a/src/mailboxGroup.cpp b/src/mailboxGroup.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6963 index 94f7ba6..c37444a 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6964 --- a/src/mailboxGroup.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6965 +++ b/src/mailboxGroup.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6966 @@ -54,7 +54,7 @@ mailboxGroup::~mailboxGroup()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6967 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6968
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6969
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6970 -void mailboxGroup::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6971 +void mailboxGroup::parseImpl(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6972 const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6973 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6974 const string::value_type* const pend = buffer.data() + end;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6975 @@ -111,7 +111,7 @@ void mailboxGroup::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6976 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6977
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6978
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6979 -void mailboxGroup::generate(utility::outputStream& os, const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6980 +void mailboxGroup::generateImpl(utility::outputStream& os, const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6981 const string::size_type curLinePos, string::size_type* newLinePos) const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6982 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6983 // We have to encode the name:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6984 @@ -348,9 +348,9 @@ const std::vector <ref <mailbox> > mailboxGroup::getMailboxList()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6985 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6986
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6987
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6988 -const std::vector <ref <const component> > mailboxGroup::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6989 +const std::vector <ref <component> > mailboxGroup::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6990 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6991 - std::vector <ref <const component> > list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6992 + std::vector <ref <component> > list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6993
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6994 copy_vector(m_list, list);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6995
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6996 diff --git a/src/mailboxList.cpp b/src/mailboxList.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6997 index 0023d9d..f87fb48 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6998 --- a/src/mailboxList.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
6999 +++ b/src/mailboxList.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7000 @@ -190,20 +190,20 @@ mailboxList& mailboxList::operator=(const mailboxList& other)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7001 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7002
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7003
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7004 -const std::vector <ref <const component> > mailboxList::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7005 +const std::vector <ref <component> > mailboxList::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7006 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7007 return (m_list.getChildComponents());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7008 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7009
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7010
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7011 -void mailboxList::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7012 +void mailboxList::parseImpl(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7013 const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7014 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7015 m_list.parse(buffer, position, end, newPosition);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7016 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7017
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7018
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7019 -void mailboxList::generate(utility::outputStream& os, const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7020 +void mailboxList::generateImpl(utility::outputStream& os, const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7021 const string::size_type curLinePos, string::size_type* newLinePos) const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7022 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7023 m_list.generate(os, maxLineLength, curLinePos, newLinePos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7024 diff --git a/src/mediaType.cpp b/src/mediaType.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7025 index 725f933..627b276 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7026 --- a/src/mediaType.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7027 +++ b/src/mediaType.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7028 @@ -48,7 +48,7 @@ mediaType::mediaType(const string& type, const string& subType)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7029 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7030
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7031
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7032 -void mediaType::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7033 +void mediaType::parseImpl(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7034 const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7035 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7036 const string::value_type* const pend = buffer.data() + end;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7037 @@ -82,7 +82,7 @@ void mediaType::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7038 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7039
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7040
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7041 -void mediaType::generate(utility::outputStream& os, const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7042 +void mediaType::generateImpl(utility::outputStream& os, const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7043 const string::size_type curLinePos, string::size_type* newLinePos) const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7044 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7045 const string value = m_type + "/" + m_subType;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7046 @@ -176,9 +176,9 @@ void mediaType::setFromString(const string& type)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7047 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7048
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7049
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7050 -const std::vector <ref <const component> > mediaType::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7051 +const std::vector <ref <component> > mediaType::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7052 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7053 - return std::vector <ref <const component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7054 + return std::vector <ref <component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7055 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7056
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7057
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7058 diff --git a/src/message.cpp b/src/message.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7059 index 1b4f086..3fa9b6a 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7060 --- a/src/message.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7061 +++ b/src/message.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7062 @@ -61,9 +61,14 @@ const string message::generate(const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7063 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7064
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7065
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7066 -void message::parse(const string& buffer)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7067 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7068 +void message::generate
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7069 + (ref <utility::outputStream> os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7070 + const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7071 + const string::size_type curLinePos,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7072 + string::size_type* newLinePos) const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7073 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7074 - bodyPart::parse(buffer);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7075 + bodyPart::generate(os, maxLineLength, curLinePos, newLinePos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7076 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7077
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7078
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7079 diff --git a/src/messageId.cpp b/src/messageId.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7080 index 961fb63..1f4b186 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7081 --- a/src/messageId.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7082 +++ b/src/messageId.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7083 @@ -61,7 +61,7 @@ messageId::messageId(const string& left, const string& right)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7084 msg-id = [CFWS] "<" id-left "@" id-right ">" [CFWS]
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7085 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7086
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7087 -void messageId::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7088 +void messageId::parseImpl(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7089 const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7090 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7091 const string::value_type* const pend = buffer.data() + end;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7092 @@ -185,7 +185,7 @@ const string messageId::getId() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7093 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7094
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7095
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7096 -void messageId::generate(utility::outputStream& os, const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7097 +void messageId::generateImpl(utility::outputStream& os, const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7098 const string::size_type curLinePos, string::size_type* newLinePos) const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7099 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7100 string::size_type pos = curLinePos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7101 @@ -288,9 +288,9 @@ void messageId::setRight(const string& right)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7102 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7103
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7104
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7105 -const std::vector <ref <const component> > messageId::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7106 +const std::vector <ref <component> > messageId::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7107 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7108 - return std::vector <ref <const component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7109 + return std::vector <ref <component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7110 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7111
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7112
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7113 diff --git a/src/messageIdSequence.cpp b/src/messageIdSequence.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7114 index 08103d0..0a5c9a0 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7115 --- a/src/messageIdSequence.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7116 +++ b/src/messageIdSequence.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7117 @@ -74,9 +74,9 @@ messageIdSequence& messageIdSequence::operator=(const messageIdSequence& other)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7118 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7119
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7120
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7121 -const std::vector <ref <const component> > messageIdSequence::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7122 +const std::vector <ref <component> > messageIdSequence::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7123 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7124 - std::vector <ref <const component> > res;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7125 + std::vector <ref <component> > res;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7126
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7127 copy_vector(m_list, res);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7128
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7129 @@ -84,7 +84,7 @@ const std::vector <ref <const component> > messageIdSequence::getChildComponents
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7130 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7131
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7132
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7133 -void messageIdSequence::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7134 +void messageIdSequence::parseImpl(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7135 const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7136 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7137 removeAllMessageIds();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7138 @@ -106,7 +106,7 @@ void messageIdSequence::parse(const string& buffer, const string::size_type posi
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7139 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7140
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7141
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7142 -void messageIdSequence::generate(utility::outputStream& os, const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7143 +void messageIdSequence::generateImpl(utility::outputStream& os, const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7144 const string::size_type curLinePos, string::size_type* newLinePos) const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7145 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7146 string::size_type pos = curLinePos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7147 diff --git a/src/parameter.cpp b/src/parameter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7148 index ccbe1a5..58d9a3e 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7149 --- a/src/parameter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7150 +++ b/src/parameter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7151 @@ -36,19 +36,19 @@ namespace vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7152
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7153
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7154 parameter::parameter(const string& name)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7155 - : m_name(name)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7156 + : m_name(name), m_value(vmime::create <word>())
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7157 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7158 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7159
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7160
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7161 parameter::parameter(const string& name, const word& value)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7162 - : m_name(name), m_value(value)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7163 + : m_name(name), m_value(vmime::create <word>(value))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7164 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7165 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7166
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7167
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7168 parameter::parameter(const string& name, const string& value)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7169 - : m_name(name), m_value(value)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7170 + : m_name(name), m_value(vmime::create <word>(value))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7171 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7172 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7173
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7174 @@ -73,7 +73,7 @@ void parameter::copyFrom(const component& other)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7175 const parameter& param = dynamic_cast <const parameter&>(other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7176
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7177 m_name = param.m_name;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7178 - m_value.copyFrom(param.m_value);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7179 + m_value->copyFrom(*param.m_value);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7180 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7181
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7182
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7183 @@ -92,7 +92,7 @@ const string& parameter::getName() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7184
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7185 const word& parameter::getValue() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7186 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7187 - return m_value;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7188 + return *m_value;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7189 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7190
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7191
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7192 @@ -109,15 +109,15 @@ void parameter::setValue(const component& value)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7193
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7194 void parameter::setValue(const word& value)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7195 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7196 - m_value = value;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7197 + *m_value = value;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7198 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7199
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7200
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7201 -void parameter::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7202 +void parameter::parseImpl(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7203 const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7204 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7205 - m_value.setBuffer(string(buffer.begin() + position, buffer.begin() + end));
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7206 - m_value.setCharset(charset(charsets::US_ASCII));
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7207 + m_value->setBuffer(string(buffer.begin() + position, buffer.begin() + end));
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7208 + m_value->setCharset(charset(charsets::US_ASCII));
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7209
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7210 if (newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7211 *newPosition = end;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7212 @@ -248,16 +248,16 @@ void parameter::parse(const std::vector <valueChunk>& chunks)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7213 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7214 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7215
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7216 - m_value.setBuffer(value.str());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7217 - m_value.setCharset(ch);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7218 + m_value->setBuffer(value.str());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7219 + m_value->setCharset(ch);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7220 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7221
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7222
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7223 -void parameter::generate(utility::outputStream& os, const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7224 +void parameter::generateImpl(utility::outputStream& os, const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7225 const string::size_type curLinePos, string::size_type* newLinePos) const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7226 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7227 const string& name = m_name;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7228 - const string& value = m_value.getBuffer();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7229 + const string& value = m_value->getBuffer();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7230
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7231 // For compatibility with implementations that do not understand RFC-2231,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7232 // also generate a normal "7bit/us-ascii" parameter
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7233 @@ -344,7 +344,7 @@ void parameter::generate(utility::outputStream& os, const string::size_type maxL
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7234 // 7-bit (ASCII) bytes in the input will be used to determine if
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7235 // we need to encode the whole buffer.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7236 encoding recommendedEnc;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7237 - const bool alwaysEncode = m_value.getCharset().getRecommendedEncoding(recommendedEnc);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7238 + const bool alwaysEncode = m_value->getCharset().getRecommendedEncoding(recommendedEnc);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7239 bool extended = alwaysEncode;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7240
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7241 if (needQuotedPrintable)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7242 @@ -352,7 +352,7 @@ void parameter::generate(utility::outputStream& os, const string::size_type maxL
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7243 // Send the name in quoted-printable, so outlook express et.al.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7244 // will understand the real filename
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7245 size_t oldLen = sevenBitBuffer.length();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7246 - m_value.generate(sevenBitStream);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7247 + m_value->generate(sevenBitStream);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7248 pos += sevenBitBuffer.length() - oldLen;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7249 extended = true; // also send with RFC-2231 encoding
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7250 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7251 @@ -429,7 +429,7 @@ void parameter::generate(utility::outputStream& os, const string::size_type maxL
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7252 // + at least 5 characters for the value
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7253 const string::size_type firstSectionLength =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7254 name.length() + 4 /* *0*= */ + 2 /* '' */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7255 - + m_value.getCharset().getName().length();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7256 + + m_value->getCharset().getName().length();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7257
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7258 if (pos + firstSectionLength + 5 >= maxLineLength)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7259 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7260 @@ -539,7 +539,7 @@ void parameter::generate(utility::outputStream& os, const string::size_type maxL
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7261
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7262 if (sectionNumber == 0)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7263 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7264 - os << m_value.getCharset().getName();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7265 + os << m_value->getCharset().getName();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7266 os << '\'' << /* No language */ '\'';
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7267 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7268
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7269 @@ -570,11 +570,11 @@ void parameter::generate(utility::outputStream& os, const string::size_type maxL
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7270 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7271
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7272
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7273 -const std::vector <ref <const component> > parameter::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7274 +const std::vector <ref <component> > parameter::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7275 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7276 - std::vector <ref <const component> > list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7277 + std::vector <ref <component> > list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7278
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7279 - list.push_back(ref <const component>::fromPtr(&m_value));
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7280 + list.push_back(m_value);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7281
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7282 return list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7283 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7284 diff --git a/src/parameterizedHeaderField.cpp b/src/parameterizedHeaderField.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7285 index 464990e..756d02f 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7286 --- a/src/parameterizedHeaderField.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7287 +++ b/src/parameterizedHeaderField.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7288 @@ -78,7 +78,7 @@ struct paramInfo
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7289 #endif // VMIME_BUILDING_DOC
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7290
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7291
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7292 -void parameterizedHeaderField::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7293 +void parameterizedHeaderField::parseImpl(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7294 const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7295 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7296 const string::value_type* const pend = buffer.data() + end;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7297 @@ -328,13 +328,13 @@ void parameterizedHeaderField::parse(const string& buffer, const string::size_ty
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7298 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7299
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7300
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7301 -void parameterizedHeaderField::generate(utility::outputStream& os, const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7302 +void parameterizedHeaderField::generateImpl(utility::outputStream& os, const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7303 const string::size_type curLinePos, string::size_type* newLinePos) const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7304 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7305 string::size_type pos = curLinePos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7306
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7307 // Parent header field
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7308 - headerField::generate(os, maxLineLength, pos, &pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7309 + headerField::generateImpl(os, maxLineLength, pos, &pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7310
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7311 // Parameters
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7312 for (std::vector <ref <parameter> >::const_iterator
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7313 @@ -552,11 +552,11 @@ const std::vector <ref <parameter> > parameterizedHeaderField::getParameterList(
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7314 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7315
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7316
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7317 -const std::vector <ref <const component> > parameterizedHeaderField::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7318 +const std::vector <ref <component> > parameterizedHeaderField::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7319 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7320 - std::vector <ref <const component> > list = headerField::getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7321 + std::vector <ref <component> > list = headerField::getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7322
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7323 - for (std::vector <ref <parameter> >::const_iterator it = m_params.begin() ;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7324 + for (std::vector <ref <parameter> >::iterator it = m_params.begin() ;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7325 it != m_params.end() ; ++it)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7326 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7327 list.push_back(*it);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7328 diff --git a/src/path.cpp b/src/path.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7329 index 37a4090..d92bb0a 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7330 --- a/src/path.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7331 +++ b/src/path.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7332 @@ -106,14 +106,14 @@ path& path::operator=(const path& other)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7333 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7334
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7335
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7336 -const std::vector <ref <const component> > path::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7337 +const std::vector <ref <component> > path::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7338 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7339 - return std::vector <ref <const component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7340 + return std::vector <ref <component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7341 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7342
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7343
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7344 -void path::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7345 - const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7346 +void path::parseImpl(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7347 + const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7348 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7349 string::size_type pos = position;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7350
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7351 @@ -165,8 +165,8 @@ void path::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7352 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7353
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7354
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7355 -void path::generate(utility::outputStream& os, const string::size_type /* maxLineLength */,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7356 - const string::size_type curLinePos, string::size_type* newLinePos) const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7357 +void path::generateImpl(utility::outputStream& os, const string::size_type /* maxLineLength */,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7358 + const string::size_type curLinePos, string::size_type* newLinePos) const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7359 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7360 if (m_localPart.empty() && m_domain.empty())
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7361 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7362 diff --git a/src/platforms/posix/posixFile.cpp b/src/platforms/posix/posixFile.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7363 index ec529eb..4087a21 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7364 --- a/src/platforms/posix/posixFile.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7365 +++ b/src/platforms/posix/posixFile.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7366 @@ -224,6 +224,26 @@ vmime::utility::stream::size_type posixFileReaderInputStream::skip(const size_ty
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7367 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7368
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7369
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7370 +vmime::utility::stream::size_type posixFileReaderInputStream::getPosition() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7371 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7372 + const off_t curPos = ::lseek(m_fd, 0, SEEK_CUR);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7373 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7374 + if (curPos == off_t(-1))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7375 + posixFileSystemFactory::reportError(m_path, errno);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7376 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7377 + return static_cast <size_type>(curPos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7378 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7379 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7380 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7381 +void posixFileReaderInputStream::seek(const size_type pos)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7382 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7383 + const off_t newPos = ::lseek(m_fd, pos, SEEK_SET);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7384 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7385 + if (newPos == off_t(-1))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7386 + posixFileSystemFactory::reportError(m_path, errno);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7387 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7388 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7389 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7390
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7391 //
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7392 // posixFileWriter
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7393 diff --git a/src/platforms/windows/windowsFile.cpp b/src/platforms/windows/windowsFile.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7394 index 624612a..5da786e 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7395 --- a/src/platforms/windows/windowsFile.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7396 +++ b/src/platforms/windows/windowsFile.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7397 @@ -479,6 +479,24 @@ vmime::utility::stream::size_type windowsFileReaderInputStream::skip(const size_
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7398 return (dwNewPos - dwCurPos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7399 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7400
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7401 +vmime::utility::stream::size_type windowsFileReaderInputStream::getPosition() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7402 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7403 + DWORD dwCurPos = SetFilePointer(m_hFile, 0, NULL, FILE_CURRENT);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7404 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7405 + if (dwCurPos == INVALID_SET_FILE_POINTER)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7406 + windowsFileSystemFactory::reportError(m_path, GetLastError());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7407 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7408 + return static_cast <size_type>(dwCurPos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7409 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7410 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7411 +void windowsFileReaderInputStream::seek(const size_type pos)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7412 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7413 + DWORD dwNewPos = SetFilePointer(m_hFile, (LONG)pos, NULL, FILE_BEGIN);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7414 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7415 + if (dwNewPos == INVALID_SET_FILE_POINTER)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7416 + windowsFileSystemFactory::reportError(m_path, GetLastError());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7417 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7418 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7419 windowsFileWriter::windowsFileWriter(const vmime::utility::file::path& path, const vmime::string& nativePath)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7420 : m_path(path), m_nativePath(nativePath)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7421 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7422 diff --git a/src/relay.cpp b/src/relay.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7423 index 5cd454f..97f793d 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7424 --- a/src/relay.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7425 +++ b/src/relay.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7426 @@ -57,7 +57,7 @@ relay::relay(const relay& r)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7427 ["for" addr-spec] ; initial form
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7428 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7429
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7430 -void relay::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7431 +void relay::parseImpl(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7432 const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7433 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7434 const string::value_type* const pend = buffer.data() + end;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7435 @@ -198,7 +198,7 @@ void relay::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7436 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7437
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7438
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7439 -void relay::generate(utility::outputStream& os, const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7440 +void relay::generateImpl(utility::outputStream& os, const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7441 const string::size_type curLinePos, string::size_type* newLinePos) const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7442 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7443 std::ostringstream oss;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7444 @@ -338,10 +338,10 @@ std::vector <string>& relay::getWithList()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7445 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7446
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7447
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7448 -const std::vector <ref <const component> > relay::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7449 +const std::vector <ref <component> > relay::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7450 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7451 // TODO: should fields inherit from 'component'? (using typeAdapter)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7452 - return std::vector <ref <const component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7453 + return std::vector <ref <component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7454 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7455
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7456
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7457 diff --git a/src/streamContentHandler.cpp b/src/streamContentHandler.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7458 index 89a36b4..14837d2 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7459 --- a/src/streamContentHandler.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7460 +++ b/src/streamContentHandler.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7461 @@ -25,6 +25,7 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7462
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7463 #include "vmime/utility/outputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7464 #include "vmime/utility/inputStreamStringAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7465 +#include "vmime/utility/seekableInputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7466 #include "vmime/utility/streamUtils.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7467
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7468
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7469 @@ -207,6 +208,9 @@ const vmime::encoding& streamContentHandler::getEncoding() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7470
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7471 bool streamContentHandler::isBuffered() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7472 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7473 + if (m_stream.dynamicCast <utility::seekableInputStream>() != NULL)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7474 + return true;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7475 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7476 // FIXME: some streams can be resetted
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7477 return false;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7478 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7479 diff --git a/src/text.cpp b/src/text.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7480 index 66c3b35..91b81e1 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7481 --- a/src/text.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7482 +++ b/src/text.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7483 @@ -67,7 +67,7 @@ text::~text()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7484 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7485
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7486
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7487 -void text::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7488 +void text::parseImpl(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7489 const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7490 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7491 removeAllWords();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7492 @@ -85,7 +85,7 @@ void text::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7493 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7494
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7495
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7496 -void text::generate(utility::outputStream& os, const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7497 +void text::generateImpl(utility::outputStream& os, const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7498 const string::size_type curLinePos, string::size_type* newLinePos) const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7499 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7500 encodeAndFold(os, maxLineLength, curLinePos, newLinePos, 0);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7501 @@ -389,9 +389,9 @@ text* text::decodeAndUnfold(const string& in, text* generateInExisting)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7502 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7503
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7504
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7505 -const std::vector <ref <const component> > text::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7506 +const std::vector <ref <component> > text::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7507 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7508 - std::vector <ref <const component> > list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7509 + std::vector <ref <component> > list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7510
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7511 copy_vector(m_words, list);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7512
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7513 diff --git a/src/utility/inputStreamAdapter.cpp b/src/utility/inputStreamAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7514 index b44b084..441307b 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7515 --- a/src/utility/inputStreamAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7516 +++ b/src/utility/inputStreamAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7517 @@ -65,6 +65,18 @@ stream::size_type inputStreamAdapter::skip(const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7518 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7519
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7520
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7521 +stream::size_type inputStreamAdapter::getPosition() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7522 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7523 + return m_stream.tellg();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7524 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7525 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7526 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7527 +void inputStreamAdapter::seek(const size_type pos)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7528 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7529 + m_stream.seekg(pos, std::ios_base::beg);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7530 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7531 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7532 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7533 } // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7534 } // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7535
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7536 diff --git a/src/utility/inputStreamByteBufferAdapter.cpp b/src/utility/inputStreamByteBufferAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7537 index 92e779f..907f1ee 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7538 --- a/src/utility/inputStreamByteBufferAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7539 +++ b/src/utility/inputStreamByteBufferAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7540 @@ -85,6 +85,19 @@ stream::size_type inputStreamByteBufferAdapter::skip(const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7541 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7542
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7543
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7544 +stream::size_type inputStreamByteBufferAdapter::getPosition() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7545 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7546 + return m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7547 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7548 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7549 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7550 +void inputStreamByteBufferAdapter::seek(const size_type pos)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7551 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7552 + if (pos <= m_length)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7553 + m_pos = pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7554 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7555 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7556 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7557 } // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7558 } // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7559
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7560 diff --git a/src/utility/inputStreamStringAdapter.cpp b/src/utility/inputStreamStringAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7561 index 31c9fda..9b8fb0c 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7562 --- a/src/utility/inputStreamStringAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7563 +++ b/src/utility/inputStreamStringAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7564 @@ -89,6 +89,19 @@ stream::size_type inputStreamStringAdapter::skip(const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7565 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7566
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7567
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7568 +stream::size_type inputStreamStringAdapter::getPosition() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7569 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7570 + return m_pos - m_begin;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7571 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7572 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7573 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7574 +void inputStreamStringAdapter::seek(const size_type pos)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7575 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7576 + if (m_begin + pos <= m_end)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7577 + m_pos = m_begin + pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7578 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7579 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7580 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7581 } // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7582 } // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7583
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7584 diff --git a/src/utility/inputStreamStringProxyAdapter.cpp b/src/utility/inputStreamStringProxyAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7585 index 5e4b60b..feecddd 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7586 --- a/src/utility/inputStreamStringProxyAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7587 +++ b/src/utility/inputStreamStringProxyAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7588 @@ -84,6 +84,19 @@ stream::size_type inputStreamStringProxyAdapter::skip(const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7589 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7590
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7591
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7592 +stream::size_type inputStreamStringProxyAdapter::getPosition() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7593 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7594 + return m_pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7595 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7596 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7597 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7598 +void inputStreamStringProxyAdapter::seek(const size_type pos)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7599 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7600 + if (pos <= m_buffer.length())
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7601 + m_pos = pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7602 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7603 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7604 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7605 } // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7606 } // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7607
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7608 diff --git a/src/utility/parserInputStreamAdapter.cpp b/src/utility/parserInputStreamAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7609 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7610 index 0000000..7a38ef1
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7611 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7612 +++ b/src/utility/parserInputStreamAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7613 @@ -0,0 +1,162 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7614 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7615 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7616 +// Copyright (C) 2002-2012 Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7617 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7618 +// This program is free software; you can redistribute it and/or
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7619 +// modify it under the terms of the GNU General Public License as
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7620 +// published by the Free Software Foundation; either version 3 of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7621 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7622 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7623 +// This program is distributed in the hope that it will be useful,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7624 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7625 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7626 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7627 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7628 +// You should have received a copy of the GNU General Public License along
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7629 +// with this program; if not, write to the Free Software Foundation, Inc.,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7630 +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7631 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7632 +// Linking this library statically or dynamically with other modules is making
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7633 +// a combined work based on this library. Thus, the terms and conditions of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7634 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7635 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7636 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7637 +#include "vmime/utility/parserInputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7638 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7639 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7640 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7641 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7642 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7643 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7644 +parserInputStreamAdapter::parserInputStreamAdapter(ref <seekableInputStream> stream)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7645 + : m_stream(stream)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7646 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7647 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7648 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7649 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7650 +bool parserInputStreamAdapter::eof() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7651 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7652 + return m_stream->eof();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7653 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7654 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7655 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7656 +void parserInputStreamAdapter::reset()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7657 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7658 + m_stream->reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7659 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7660 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7661 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7662 +stream::size_type parserInputStreamAdapter::read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7663 + (value_type* const data, const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7664 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7665 + return m_stream->read(data, count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7666 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7667 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7668 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7669 +ref <seekableInputStream> parserInputStreamAdapter::getUnderlyingStream()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7670 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7671 + return m_stream;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7672 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7673 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7674 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7675 +const string parserInputStreamAdapter::extract(const size_type begin, const size_type end) const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7676 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7677 + const size_type initialPos = m_stream->getPosition();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7678 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7679 + try
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7680 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7681 + value_type *buffer = new value_type[end - begin + 1];
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7682 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7683 + m_stream->seek(begin);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7684 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7685 + const size_type readBytes = m_stream->read(buffer, end - begin);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7686 + buffer[readBytes] = '\0';
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7687 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7688 + m_stream->seek(initialPos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7689 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7690 + string str(buffer, buffer + readBytes);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7691 + delete [] buffer;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7692 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7693 + return str;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7694 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7695 + catch (...)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7696 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7697 + m_stream->seek(initialPos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7698 + throw;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7699 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7700 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7701 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7702 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7703 +stream::size_type parserInputStreamAdapter::findNext
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7704 + (const std::string& token, const size_type startPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7705 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7706 + static const unsigned int BUFFER_SIZE = 4096;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7707 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7708 + // Token must not be longer than BUFFER_SIZE/2
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7709 + if (token.empty() || token.length() > BUFFER_SIZE / 2)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7710 + return npos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7711 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7712 + const size_type initialPos = getPosition();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7713 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7714 + seek(startPosition);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7715 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7716 + try
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7717 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7718 + value_type findBuffer[BUFFER_SIZE];
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7719 + value_type* findBuffer1 = findBuffer;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7720 + value_type* findBuffer2 = findBuffer + (BUFFER_SIZE / 2) * sizeof(value_type);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7721 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7722 + size_type findBufferLen = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7723 + size_type findBufferOffset = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7724 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7725 + // Fill in initial buffer
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7726 + findBufferLen = read(findBuffer, BUFFER_SIZE * sizeof(value_type));
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7727 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7728 + for (;;)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7729 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7730 + // Find token
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7731 + for (value_type *begin = findBuffer, *end = findBuffer + findBufferLen - token.length() ;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7732 + begin <= end ; ++begin)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7733 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7734 + if (begin[0] == token[0] &&
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7735 + (token.length() == 1 ||
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7736 + memcmp(static_cast <const void *>(&begin[1]),
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7737 + static_cast <const void *>(token.data() + 1),
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7738 + token.length() - 1) == 0))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7739 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7740 + seek(initialPos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7741 + return startPosition + findBufferOffset + (begin - findBuffer);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7742 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7743 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7744 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7745 + // Rotate buffer
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7746 + memcpy(findBuffer1, findBuffer2, (BUFFER_SIZE / 2) * sizeof(value_type));
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7747 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7748 + // Read more bytes
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7749 + if (findBufferLen < BUFFER_SIZE && eof())
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7750 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7751 + break;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7752 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7753 + else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7754 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7755 + const size_type bytesRead = read(findBuffer2, (BUFFER_SIZE / 2) * sizeof(value_type));
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7756 + findBufferLen = (BUFFER_SIZE / 2) + bytesRead;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7757 + findBufferOffset += (BUFFER_SIZE / 2);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7758 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7759 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7760 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7761 + seek(initialPos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7762 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7763 + catch (...)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7764 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7765 + seek(initialPos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7766 + throw;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7767 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7768 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7769 + return npos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7770 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7771 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7772 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7773 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7774 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7775 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7776 diff --git a/src/utility/seekableInputStreamRegionAdapter.cpp b/src/utility/seekableInputStreamRegionAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7777 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7778 index 0000000..348618c
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7779 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7780 +++ b/src/utility/seekableInputStreamRegionAdapter.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7781 @@ -0,0 +1,95 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7782 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7783 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7784 +// Copyright (C) 2002-2012 Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7785 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7786 +// This program is free software; you can redistribute it and/or
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7787 +// modify it under the terms of the GNU General Public License as
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7788 +// published by the Free Software Foundation; either version 3 of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7789 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7790 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7791 +// This program is distributed in the hope that it will be useful,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7792 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7793 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7794 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7795 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7796 +// You should have received a copy of the GNU General Public License along
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7797 +// with this program; if not, write to the Free Software Foundation, Inc.,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7798 +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7799 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7800 +// Linking this library statically or dynamically with other modules is making
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7801 +// a combined work based on this library. Thus, the terms and conditions of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7802 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7803 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7804 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7805 +#include "vmime/utility/seekableInputStreamRegionAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7806 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7807 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7808 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7809 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7810 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7811 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7812 +seekableInputStreamRegionAdapter::seekableInputStreamRegionAdapter
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7813 + (ref <seekableInputStream> stream, const size_type begin, const size_type length)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7814 + : m_stream(stream), m_begin(begin), m_length(length)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7815 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7816 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7817 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7818 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7819 +bool seekableInputStreamRegionAdapter::eof() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7820 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7821 + return getPosition() >= m_length;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7822 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7823 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7824 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7825 +void seekableInputStreamRegionAdapter::reset()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7826 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7827 + m_stream->seek(m_begin);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7828 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7829 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7830 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7831 +stream::size_type seekableInputStreamRegionAdapter::read
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7832 + (value_type* const data, const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7833 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7834 + if (getPosition() + count >= m_length)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7835 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7836 + const size_type remaining = m_length - getPosition();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7837 + return m_stream->read(data, remaining);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7838 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7839 + else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7840 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7841 + return m_stream->read(data, count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7842 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7843 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7844 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7845 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7846 +stream::size_type seekableInputStreamRegionAdapter::skip(const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7847 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7848 + if (getPosition() + count >= m_length)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7849 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7850 + const size_type remaining = m_length - getPosition();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7851 + m_stream->skip(remaining);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7852 + return remaining;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7853 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7854 + else
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7855 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7856 + m_stream->skip(count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7857 + return count;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7858 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7859 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7860 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7861 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7862 +stream::size_type seekableInputStreamRegionAdapter::getPosition() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7863 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7864 + return m_stream->getPosition() - m_begin;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7865 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7866 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7867 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7868 +void seekableInputStreamRegionAdapter::seek(const size_type pos)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7869 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7870 + m_stream->seek(m_begin + pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7871 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7872 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7873 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7874 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7875 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7876 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7877 diff --git a/src/utility/stream.cpp b/src/utility/stream.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7878 index 1c940c2..67c1f33 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7879 --- a/src/utility/stream.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7880 +++ b/src/utility/stream.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7881 @@ -29,6 +29,9 @@ namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7882 namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7883
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7884
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7885 +const stream::size_type stream::npos = static_cast <size_type>(vmime::string::npos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7886 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7887 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7888 stream::size_type stream::getBlockSize()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7889 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7890 return 32768; // 32 KB
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7891 @@ -37,3 +40,4 @@ stream::size_type stream::getBlockSize()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7892
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7893 } // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7894 } // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7895 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7896 diff --git a/src/utility/streamUtils.cpp b/src/utility/streamUtils.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7897 index f1d3b9d..f7ea62f 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7898 --- a/src/utility/streamUtils.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7899 +++ b/src/utility/streamUtils.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7900 @@ -52,6 +52,35 @@ stream::size_type bufferedStreamCopy(inputStream& is, outputStream& os)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7901 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7902
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7903
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7904 +stream::size_type bufferedStreamCopyRange(inputStream& is, outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7905 + const stream::size_type start, const stream::size_type length)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7906 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7907 + const stream::size_type blockSize =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7908 + std::min(is.getBlockSize(), os.getBlockSize());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7909 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7910 + is.skip(start);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7911 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7912 + std::vector <stream::value_type> vbuffer(blockSize);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7913 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7914 + stream::value_type* buffer = &vbuffer.front();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7915 + stream::size_type total = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7916 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7917 + while (!is.eof() && total < length)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7918 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7919 + const stream::size_type remaining = std::min(length - total, blockSize);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7920 + const stream::size_type read = is.read(buffer, blockSize);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7921 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7922 + if (read != 0)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7923 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7924 + os.write(buffer, read);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7925 + total += read;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7926 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7927 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7928 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7929 + return total;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7930 +}
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7931 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7932 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7933 stream::size_type bufferedStreamCopy(inputStream& is, outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7934 const stream::size_type length, progressListener* progress)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7935 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7936 diff --git a/src/word.cpp b/src/word.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7937 index 79060a1..2876ddf 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7938 --- a/src/word.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7939 +++ b/src/word.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7940 @@ -241,7 +241,7 @@ const std::vector <ref <word> > word::parseMultiple(const string& buffer, const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7941 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7942
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7943
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7944 -void word::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7945 +void word::parseImpl(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7946 const string::size_type end, string::size_type* newPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7947 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7948 if (position + 6 < end && // 6 = "=?(.+)?(.*)?="
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7949 @@ -324,7 +324,7 @@ void word::parse(const string& buffer, const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7950 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7951
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7952
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7953 -void word::generate(utility::outputStream& os, const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7954 +void word::generateImpl(utility::outputStream& os, const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7955 const string::size_type curLinePos, string::size_type* newLinePos) const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7956 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7957 generate(os, maxLineLength, curLinePos, newLinePos, 0, NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7958 @@ -743,9 +743,9 @@ void word::setBuffer(const string& buffer)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7959 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7960
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7961
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7962 -const std::vector <ref <const component> > word::getChildComponents() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7963 +const std::vector <ref <component> > word::getChildComponents()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7964 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7965 - return std::vector <ref <const component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7966 + return std::vector <ref <component> >();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7967 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7968
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7969
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7970 diff --git a/tests/parser/bodyPartTest.cpp b/tests/parser/bodyPartTest.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7971 index 9d51262..deb4b9c 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7972 --- a/tests/parser/bodyPartTest.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7973 +++ b/tests/parser/bodyPartTest.cpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7974 @@ -33,12 +33,14 @@ VMIME_TEST_SUITE_BEGIN
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7975 VMIME_TEST_LIST_BEGIN
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7976 VMIME_TEST(testParse)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7977 VMIME_TEST(testGenerate)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7978 + VMIME_TEST(testParseGuessBoundary)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7979 VMIME_TEST(testParseMissingLastBoundary)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7980 VMIME_TEST(testPrologEpilog)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7981 VMIME_TEST(testPrologEncoding)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7982 VMIME_TEST(testSuccessiveBoundaries)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7983 VMIME_TEST(testGenerate7bit)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7984 VMIME_TEST(testTextUsageForQPEncoding)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7985 + VMIME_TEST(testParseVeryBigMessage)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7986 VMIME_TEST_LIST_END
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7987
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7988
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7989 @@ -237,6 +239,93 @@ VMIME_TEST_SUITE_BEGIN
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7990 VASSERT_EQ("2", "Part1-line1\r\nPart1-line2\r\n=89", oss.str());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7991 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7992
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7993 + void testParseGuessBoundary()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7994 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7995 + // Boundary is not specified in "Content-Type" field
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7996 + // Parser will try to guess it from message contents.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7997 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7998 + vmime::string str =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
7999 + "Content-Type: multipart/mixed"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8000 + "\r\n\r\n"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8001 + "--UNKNOWN-BOUNDARY\r\nHEADER1\r\n\r\nBODY1\r\n"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8002 + "--UNKNOWN-BOUNDARY\r\nHEADER2\r\n\r\nBODY2\r\n"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8003 + "--UNKNOWN-BOUNDARY--";
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8004 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8005 + vmime::bodyPart p;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8006 + p.parse(str);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8007 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8008 + VASSERT_EQ("count", 2, p.getBody()->getPartCount());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8009 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8010 + VASSERT_EQ("part1-body", "BODY1", extractContents(p.getBody()->getPartAt(0)->getBody()->getContents()));
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8011 + VASSERT_EQ("part2-body", "BODY2", extractContents(p.getBody()->getPartAt(1)->getBody()->getContents()));
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8012 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8013 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8014 + void testParseVeryBigMessage()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8015 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8016 + // When parsing from a seekable input stream, body contents should not
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8017 + // be kept in memory in a "stringContentHandler" object. Instead, content
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8018 + // should be accessible via a "streamContentHandler" object.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8019 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8020 + static const std::string BODY1_BEGIN = "BEGIN1BEGIN1BEGIN1";
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8021 + static const std::string BODY1_LINE = "BODY1BODY1BODY1BODY1BODY1BODY1BODY1BODY1BODY1BODY1BODY1BODY1BODY1";
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8022 + static const std::string BODY1_END = "END1END1";
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8023 + static const unsigned int BODY1_REPEAT = 35000;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8024 + static const unsigned int BODY1_LENGTH =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8025 + BODY1_BEGIN.length() + BODY1_LINE.length() * BODY1_REPEAT + BODY1_END.length();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8026 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8027 + static const std::string BODY2_LINE = "BODY2BODY2BODY2BODY2BODY2BODY2BODY2BODY2BODY2BODY2BODY2BODY2BODY2";
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8028 + static const unsigned int BODY2_REPEAT = 20000;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8029 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8030 + std::ostringstream oss;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8031 + oss << "Content-Type: multipart/mixed; boundary=\"MY-BOUNDARY\""
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8032 + << "\r\n\r\n"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8033 + << "--MY-BOUNDARY\r\n"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8034 + << "HEADER1\r\n"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8035 + << "\r\n";
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8036 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8037 + oss << BODY1_BEGIN;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8038 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8039 + for (unsigned int i = 0 ; i < BODY1_REPEAT ; ++i)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8040 + oss << BODY1_LINE;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8041 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8042 + oss << BODY1_END;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8043 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8044 + oss << "\r\n"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8045 + << "--MY-BOUNDARY\r\n"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8046 + << "HEADER2\r\n"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8047 + << "\r\n";
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8048 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8049 + for (unsigned int i = 0 ; i < BODY2_REPEAT ; ++i)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8050 + oss << BODY2_LINE;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8051 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8052 + oss << "\r\n"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8053 + << "--MY-BOUNDARY--\r\n";
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8054 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8055 + vmime::ref <vmime::utility::inputStreamStringAdapter> is =
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8056 + vmime::create <vmime::utility::inputStreamStringAdapter>(oss.str());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8057 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8058 + vmime::ref <vmime::message> msg = vmime::create <vmime::message>();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8059 + msg->parse(is, oss.str().length());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8060 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8061 + vmime::ref <vmime::body> body1 = msg->getBody()->getPartAt(0)->getBody();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8062 + vmime::ref <const vmime::contentHandler> body1Cts = body1->getContents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8063 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8064 + vmime::ref <vmime::body> body2 = msg->getBody()->getPartAt(1)->getBody();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8065 + vmime::ref <const vmime::contentHandler> body2Cts = body2->getContents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8066 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8067 + vmime::string body1CtsExtracted;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8068 + vmime::utility::outputStreamStringAdapter body1CtsExtractStream(body1CtsExtracted);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8069 + body1Cts->extract(body1CtsExtractStream);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8070 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8071 + VASSERT_EQ("1.1", BODY1_LENGTH, body1Cts->getLength());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8072 + VASSERT("1.2", body1Cts.dynamicCast <const vmime::streamContentHandler>() != NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8073 + VASSERT_EQ("1.3", BODY1_LENGTH, body1CtsExtracted.length());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8074 + VASSERT_EQ("1.4", BODY1_BEGIN, body1CtsExtracted.substr(0, BODY1_BEGIN.length()));
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8075 + VASSERT_EQ("1.5", BODY1_END, body1CtsExtracted.substr(BODY1_LENGTH - BODY1_END.length(), BODY1_END.length()));
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8076 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8077 + VASSERT_EQ("2.1", BODY2_LINE.length() * BODY2_REPEAT, body2Cts->getLength());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8078 + VASSERT("2.2", body2Cts.dynamicCast <const vmime::streamContentHandler>() != NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8079 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8080
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8081 VMIME_TEST_SUITE_END
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8082
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8083 diff --git a/vmime/addressList.hpp b/vmime/addressList.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8084 index 2e537c0..9dc283c 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8085 --- a/vmime/addressList.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8086 +++ b/vmime/addressList.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8087 @@ -56,7 +56,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8088 addressList& operator=(const addressList& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8089 addressList& operator=(const mailboxList& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8090
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8091 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8092 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8093
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8094
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8095 /** Add a address at the end of the list.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8096 @@ -163,14 +163,20 @@ private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8097
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8098 std::vector <ref <address> > m_list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8099
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8100 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8101 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8102 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8103 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8104 +protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8105
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8106 // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8107 - void parse(const string& buffer, const string::size_type position, const string::size_type end, string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8108 - void generate(utility::outputStream& os, const string::size_type maxLineLength = lineLengthLimits::infinite, const string::size_type curLinePos = 0, string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8109 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8110 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8111 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8112 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8113 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8114 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8115 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8116 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8117 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8118 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8119 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8120 };
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8121
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8122
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8123 diff --git a/vmime/body.hpp b/vmime/body.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8124 index 9e83d6b..bd5bbb9 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8125 --- a/vmime/body.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8126 +++ b/vmime/body.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8127 @@ -278,7 +278,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8128 void copyFrom(const component& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8129 body& operator=(const body& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8130
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8131 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8132 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8133
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8134 private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8135
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8136 @@ -299,14 +299,20 @@ private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8137
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8138 void initNewPart(ref <bodyPart> part);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8139
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8140 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8141 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8142 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8143 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8144 +protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8145
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8146 // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8147 - void parse(const string& buffer, const string::size_type position, const string::size_type end, string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8148 - void generate(utility::outputStream& os, const string::size_type maxLineLength = lineLengthLimits::infinite, const string::size_type curLinePos = 0, string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8149 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8150 + (ref <utility::parserInputStreamAdapter> parser,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8151 + const utility::stream::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8152 + const utility::stream::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8153 + utility::stream::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8154 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8155 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8156 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8157 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8158 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8159 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8160 };
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8161
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8162
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8163 diff --git a/vmime/bodyPart.hpp b/vmime/bodyPart.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8164 index aa0f040..5f36d90 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8165 --- a/vmime/bodyPart.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8166 +++ b/vmime/bodyPart.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8167 @@ -89,7 +89,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8168 void copyFrom(const component& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8169 bodyPart& operator=(const bodyPart& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8170
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8171 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8172 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8173
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8174 private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8175
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8176 @@ -98,14 +98,20 @@ private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8177
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8178 weak_ref <bodyPart> m_parent;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8179
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8180 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8181 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8182 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8183 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8184 +protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8185
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8186 // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8187 - void parse(const string& buffer, const string::size_type position, const string::size_type end, string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8188 - void generate(utility::outputStream& os, const string::size_type maxLineLength = lineLengthLimits::infinite, const string::size_type curLinePos = 0, string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8189 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8190 + (ref <utility::parserInputStreamAdapter> parser,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8191 + const utility::stream::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8192 + const utility::stream::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8193 + utility::stream::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8194 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8195 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8196 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8197 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8198 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8199 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8200 };
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8201
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8202
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8203 diff --git a/vmime/charset.hpp b/vmime/charset.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8204 index 5f5e8e5..26abb4f 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8205 --- a/vmime/charset.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8206 +++ b/vmime/charset.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8207 @@ -62,7 +62,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8208 bool operator==(const charset& value) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8209 bool operator!=(const charset& value) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8210
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8211 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8212 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8213
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8214 /** Gets the recommended encoding for this charset.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8215 * Note: there may be no recommended encoding.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8216 @@ -117,14 +117,20 @@ private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8217
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8218 string m_name;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8219
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8220 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8221 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8222 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8223 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8224 +protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8225
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8226 // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8227 - void parse(const string& buffer, const string::size_type position, const string::size_type end, string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8228 - void generate(utility::outputStream& os, const string::size_type maxLineLength = lineLengthLimits::infinite, const string::size_type curLinePos = 0, string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8229 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8230 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8231 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8232 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8233 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8234 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8235 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8236 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8237 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8238 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8239 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8240 };
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8241
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8242
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8243 diff --git a/vmime/component.hpp b/vmime/component.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8244 index 12b0406..5e6f393 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8245 --- a/vmime/component.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8246 +++ b/vmime/component.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8247 @@ -27,6 +27,8 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8248
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8249 #include "vmime/base.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8250 #include "vmime/utility/inputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8251 +#include "vmime/utility/seekableInputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8252 +#include "vmime/utility/parserInputStreamAdapter.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8253 #include "vmime/utility/outputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8254
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8255
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8256 @@ -51,6 +53,12 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8257 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8258 void parse(const string& buffer);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8259
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8260 + /** Parse RFC-822/MIME data for this component. If stream is not seekable,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8261 + * or if length is not specified, entire contents of the stream will
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8262 + * be loaded into memory before parsing.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8263 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8264 + void parse(ref <utility::inputStream> inputStream, const utility::stream::size_type length);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8265 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8266 /** Parse RFC-822/MIME data for this component.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8267 *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8268 * @param buffer input buffer
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8269 @@ -58,7 +66,26 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8270 * @param end end position in the input buffer
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8271 * @param newPosition will receive the new position in the input buffer
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8272 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8273 - virtual void parse(const string& buffer, const string::size_type position, const string::size_type end, string::size_type* newPosition = NULL) = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8274 + void parse
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8275 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8276 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8277 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8278 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8279 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8280 + /** Parse RFC-822/MIME data for this component. If stream is not seekable,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8281 + * or if end position is not specified, entire contents of the stream will
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8282 + * be loaded into memory before parsing.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8283 + *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8284 + * @param inputStream stream from which to read data
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8285 + * @param position current position in the input stream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8286 + * @param end end position in the input stream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8287 + * @param newPosition will receive the new position in the input stream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8288 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8289 + void parse
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8290 + (ref <utility::inputStream> inputStream,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8291 + const utility::stream::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8292 + const utility::stream::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8293 + utility::stream::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8294
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8295 /** Generate RFC-2822/MIME data for this component.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8296 *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8297 @@ -68,16 +95,35 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8298 * @param curLinePos length of the current line in the output buffer
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8299 * @return generated data
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8300 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8301 - const string generate(const string::size_type maxLineLength = lineLengthLimits::infinite, const string::size_type curLinePos = 0) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8302 + virtual const string generate
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8303 + (const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8304 + const string::size_type curLinePos = 0) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8305
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8306 /** Generate RFC-2822/MIME data for this component.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8307 *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8308 - * @param os output stream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8309 + * @param outputStream output stream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8310 * @param maxLineLength maximum line length for output
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8311 * @param curLinePos length of the current line in the output buffer
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8312 * @param newLinePos will receive the new line position (length of the last line written)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8313 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8314 - virtual void generate(utility::outputStream& os, const string::size_type maxLineLength = lineLengthLimits::infinite, const string::size_type curLinePos = 0, string::size_type* newLinePos = NULL) const = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8315 + virtual void generate
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8316 + (utility::outputStream& outputStream,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8317 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8318 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8319 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8320 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8321 + /** Generate RFC-2822/MIME data for this component.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8322 + *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8323 + * @param outputStream output stream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8324 + * @param maxLineLength maximum line length for output
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8325 + * @param curLinePos length of the current line in the output buffer
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8326 + * @param newLinePos will receive the new line position (length of the last line written)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8327 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8328 + virtual void generate
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8329 + (ref <utility::outputStream> outputStream,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8330 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8331 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8332 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8333
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8334 /** Clone this component.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8335 *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8336 @@ -95,41 +141,56 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8337 virtual void copyFrom(const component& other) = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8338
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8339 /** Return the start position of this component in the
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8340 - * parsed message contents.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8341 + * parsed message contents. Use for debugging only.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8342 *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8343 * @return start position in parsed buffer
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8344 * or 0 if this component has not been parsed
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8345 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8346 - string::size_type getParsedOffset() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8347 + utility::stream::size_type getParsedOffset() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8348
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8349 /** Return the length of this component in the
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8350 - * parsed message contents.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8351 + * parsed message contents. Use for debugging only.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8352 *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8353 * @return length of the component in parsed buffer
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8354 * or 0 if this component has not been parsed
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8355 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8356 - string::size_type getParsedLength() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8357 + utility::stream::size_type getParsedLength() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8358
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8359 /** Return the list of children of this component.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8360 *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8361 * @return list of child components
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8362 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8363 - const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8364 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8365 - /** Return the list of children of this component (const version).
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8366 - *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8367 - * @return list of child components
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8368 - */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8369 - virtual const std::vector <ref <const component> > getChildComponents() const = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8370 + virtual const std::vector <ref <component> > getChildComponents() = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8371
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8372 protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8373
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8374 - void setParsedBounds(const string::size_type start, const string::size_type end);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8375 + void setParsedBounds(const utility::stream::size_type start, const utility::stream::size_type end);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8376 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8377 + // AT LEAST ONE of these parseImpl() functions MUST be implemented in derived class
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8378 + virtual void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8379 + (ref <utility::parserInputStreamAdapter> parser,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8380 + const utility::stream::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8381 + const utility::stream::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8382 + utility::stream::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8383 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8384 + virtual void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8385 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8386 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8387 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8388 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8389 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8390 + virtual void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8391 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8392 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8393 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8394 + string::size_type* newLinePos = NULL) const = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8395
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8396 private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8397
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8398 - string::size_type m_parsedOffset;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8399 - string::size_type m_parsedLength;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8400 + void offsetParsedBounds(const utility::stream::size_type offset);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8401 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8402 + utility::stream::size_type m_parsedOffset;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8403 + utility::stream::size_type m_parsedLength;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8404 };
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8405
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8406
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8407 diff --git a/vmime/contentDisposition.hpp b/vmime/contentDisposition.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8408 index 9d1749b..abd2e1a 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8409 --- a/vmime/contentDisposition.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8410 +++ b/vmime/contentDisposition.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8411 @@ -63,7 +63,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8412 void copyFrom(const component& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8413 contentDisposition& operator=(const contentDisposition& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8414
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8415 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8416 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8417
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8418
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8419 contentDisposition& operator=(const string& name);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8420 @@ -75,14 +75,20 @@ private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8421
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8422 string m_name;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8423
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8424 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8425 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8426 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8427 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8428 +protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8429
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8430 // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8431 - void parse(const string& buffer, const string::size_type position, const string::size_type end, string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8432 - void generate(utility::outputStream& os, const string::size_type maxLineLength = lineLengthLimits::infinite, const string::size_type curLinePos = 0, string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8433 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8434 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8435 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8436 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8437 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8438 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8439 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8440 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8441 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8442 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8443 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8444 };
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8445
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8446
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8447 diff --git a/vmime/dateTime.hpp b/vmime/dateTime.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8448 index 8e99640..053f4a6 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8449 --- a/vmime/dateTime.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8450 +++ b/vmime/dateTime.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8451 @@ -237,16 +237,22 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8452 // Current date and time
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8453 static const datetime now();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8454
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8455 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8456 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8457
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8458 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8459 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8460 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8461 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8462 +protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8463
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8464 // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8465 - void parse(const string& buffer, const string::size_type position, const string::size_type end, string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8466 - void generate(utility::outputStream& os, const string::size_type maxLineLength = lineLengthLimits::infinite, const string::size_type curLinePos = 0, string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8467 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8468 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8469 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8470 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8471 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8472 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8473 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8474 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8475 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8476 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8477 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8478 };
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8479
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8480
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8481 diff --git a/vmime/disposition.hpp b/vmime/disposition.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8482 index 05bfca2..7bdc832 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8483 --- a/vmime/disposition.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8484 +++ b/vmime/disposition.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8485 @@ -50,7 +50,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8486 void copyFrom(const component& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8487 disposition& operator=(const disposition& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8488
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8489 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8490 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8491
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8492
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8493 /** Set the disposition action mode.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8494 @@ -134,14 +134,20 @@ private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8495
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8496 std::vector <string> m_modifiers;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8497
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8498 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8499 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8500 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8501 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8502 +protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8503
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8504 // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8505 - void parse(const string& buffer, const string::size_type position, const string::size_type end, string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8506 - void generate(utility::outputStream& os, const string::size_type maxLineLength = lineLengthLimits::infinite, const string::size_type curLinePos = 0, string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8507 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8508 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8509 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8510 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8511 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8512 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8513 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8514 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8515 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8516 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8517 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8518 };
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8519
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8520
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8521 diff --git a/vmime/encoding.hpp b/vmime/encoding.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8522 index 42f5246..4322b29 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8523 --- a/vmime/encoding.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8524 +++ b/vmime/encoding.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8525 @@ -93,7 +93,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8526 bool operator==(const encoding& value) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8527 bool operator!=(const encoding& value) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8528
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8529 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8530 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8531
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8532 /** Decide which encoding to use based on the specified data.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8533 *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8534 @@ -141,14 +141,20 @@ private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8535 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8536 static const encoding decideImpl(const string::const_iterator begin, const string::const_iterator end);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8537
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8538 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8539 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8540 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8541 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8542 +protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8543
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8544 // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8545 - void parse(const string& buffer, const string::size_type position, const string::size_type end, string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8546 - void generate(utility::outputStream& os, const string::size_type maxLineLength = lineLengthLimits::infinite, const string::size_type curLinePos = 0, string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8547 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8548 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8549 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8550 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8551 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8552 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8553 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8554 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8555 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8556 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8557 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8558 };
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8559
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8560
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8561 diff --git a/vmime/header.hpp b/vmime/header.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8562 index 95a9326..ed555b0 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8563 --- a/vmime/header.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8564 +++ b/vmime/header.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8565 @@ -220,7 +220,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8566 void copyFrom(const component& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8567 header& operator=(const header& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8568
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8569 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8570 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8571
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8572 private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8573
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8574 @@ -251,14 +251,20 @@ private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8575 string m_name;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8576 };
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8577
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8578 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8579 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8580 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8581 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8582 +protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8583
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8584 // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8585 - void parse(const string& buffer, const string::size_type position, const string::size_type end, string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8586 - void generate(utility::outputStream& os, const string::size_type maxLineLength = lineLengthLimits::infinite, const string::size_type curLinePos = 0, string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8587 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8588 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8589 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8590 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8591 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8592 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8593 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8594 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8595 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8596 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8597 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8598 };
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8599
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8600
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8601 diff --git a/vmime/headerField.hpp b/vmime/headerField.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8602 index 50494c9..61e01ee 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8603 --- a/vmime/headerField.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8604 +++ b/vmime/headerField.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8605 @@ -59,7 +59,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8606 void copyFrom(const component& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8607 headerField& operator=(const headerField& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8608
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8609 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8610 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8611
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8612 /** Sets the name of this field.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8613 *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8614 @@ -118,15 +118,26 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8615 void setValue(const string& value);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8616
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8617
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8618 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8619 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8620 +protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8621
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8622 - void parse(const string& buffer, const string::size_type position, const string::size_type end, string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8623 - void generate(utility::outputStream& os, const string::size_type maxLineLength = lineLengthLimits::infinite, const string::size_type curLinePos = 0, string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8624 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8625 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8626 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8627 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8628 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8629 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8630 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8631 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8632 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8633 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8634 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8635
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8636 -protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8637
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8638 - static ref <headerField> parseNext(const string& buffer, const string::size_type position, const string::size_type end, string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8639 + static ref <headerField> parseNext
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8640 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8641 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8642 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8643 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8645
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8646 string m_name;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8647 diff --git a/vmime/mailbox.hpp b/vmime/mailbox.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8648 index 2072be8..2099355 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8649 --- a/vmime/mailbox.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8650 +++ b/vmime/mailbox.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8651 @@ -85,7 +85,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8652
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8653 void clear();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8654
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8655 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8656 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8657
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8658
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8659 bool isGroup() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8660 @@ -101,8 +101,17 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8661 using address::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8662
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8663 // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8664 - void parse(const string& buffer, const string::size_type position, const string::size_type end, string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8665 - void generate(utility::outputStream& os, const string::size_type maxLineLength = lineLengthLimits::infinite, const string::size_type curLinePos = 0, string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8666 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8667 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8668 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8669 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8670 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8671 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8672 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8673 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8674 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8675 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8676 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8677 };
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8678
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8679
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8680 diff --git a/vmime/mailboxGroup.hpp b/vmime/mailboxGroup.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8681 index 0061d5b..1433141 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8682 --- a/vmime/mailboxGroup.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8683 +++ b/vmime/mailboxGroup.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8684 @@ -52,7 +52,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8685 ref <component> clone() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8686 mailboxGroup& operator=(const component& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8687
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8688 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8689 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8690
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8691 /** Return the name of the group.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8692 *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8693 @@ -165,14 +165,20 @@ private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8694 text m_name;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8695 std::vector <ref <mailbox> > m_list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8696
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8697 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8698 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8699 - using address::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8700 - using address::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8701 +protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8702
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8703 // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8704 - void parse(const string& buffer, const string::size_type position, const string::size_type end, string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8705 - void generate(utility::outputStream& os, const string::size_type maxLineLength = lineLengthLimits::infinite, const string::size_type curLinePos = 0, string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8706 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8707 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8708 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8709 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8710 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8711 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8712 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8713 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8714 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8715 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8716 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8717 };
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8718
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8719
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8720 diff --git a/vmime/mailboxList.hpp b/vmime/mailboxList.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8721 index 11e4e79..1b480c1 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8722 --- a/vmime/mailboxList.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8723 +++ b/vmime/mailboxList.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8724 @@ -51,7 +51,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8725 void copyFrom(const component& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8726 mailboxList& operator=(const mailboxList& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8727
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8728 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8729 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8730
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8731 /** Add a mailbox at the end of the list.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8732 *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8733 @@ -155,14 +155,20 @@ private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8734
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8735 addressList m_list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8736
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8737 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8738 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8739 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8740 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8741 +protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8742
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8743 // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8744 - void parse(const string& buffer, const string::size_type position, const string::size_type end, string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8745 - void generate(utility::outputStream& os, const string::size_type maxLineLength = lineLengthLimits::infinite, const string::size_type curLinePos = 0, string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8746 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8747 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8748 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8749 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8750 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8751 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8752 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8753 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8754 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8755 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8756 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8757 };
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8758
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8759
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8760 diff --git a/vmime/mediaType.hpp b/vmime/mediaType.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8761 index 658b21f..18182f0 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8762 --- a/vmime/mediaType.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8763 +++ b/vmime/mediaType.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8764 @@ -55,7 +55,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8765 void copyFrom(const component& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8766 mediaType& operator=(const mediaType& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8767
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8768 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8769 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8770
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8771 /** Return the media type.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8772 * See the constants in vmime::mediaTypes.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8773 @@ -97,14 +97,18 @@ protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8774 string m_type;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8775 string m_subType;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8776
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8777 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8778 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8779 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8780 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8781 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8782 // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8783 - void parse(const string& buffer, const string::size_type position, const string::size_type end, string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8784 - void generate(utility::outputStream& os, const string::size_type maxLineLength = lineLengthLimits::infinite, const string::size_type curLinePos = 0, string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8785 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8786 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8787 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8788 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8789 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8790 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8791 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8792 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8793 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8794 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8795 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8796 };
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8797
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8798
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8799 diff --git a/vmime/message.hpp b/vmime/message.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8800 index f3be229..9767564 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8801 --- a/vmime/message.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8802 +++ b/vmime/message.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8803 @@ -43,12 +43,25 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8804 message();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8805
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8806
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8807 - // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8808 - void generate(utility::outputStream& os, const string::size_type maxLineLength = options::getInstance()->message.maxLineLength(), const string::size_type curLinePos = 0, string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8809 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8810 - const string generate(const string::size_type maxLineLength = options::getInstance()->message.maxLineLength(), const string::size_type curLinePos = 0) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8811 +public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8812
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8813 - void parse(const string& buffer);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8814 + // Override default generate() functions so that we can change
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8815 + // the default 'maxLineLength' value
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8816 + void generate
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8817 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8818 + const string::size_type maxLineLength = options::getInstance()->message.maxLineLength(),
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8819 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8820 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8821 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8822 + const string generate
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8823 + (const string::size_type maxLineLength = options::getInstance()->message.maxLineLength(),
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8824 + const string::size_type curLinePos = 0) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8825 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8826 + void generate
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8827 + (ref <utility::outputStream> os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8828 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8829 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8830 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8831 };
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8832
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8833
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8834 diff --git a/vmime/messageId.hpp b/vmime/messageId.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8835 index 3686b11..ac408e6 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8836 --- a/vmime/messageId.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8837 +++ b/vmime/messageId.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8838 @@ -97,23 +97,27 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8839 void copyFrom(const component& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8840 messageId& operator=(const messageId& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8841
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8842 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8843 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8844
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8845 private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8846
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8847 string m_left;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8848 string m_right;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8849
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8850 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8851 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8852 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8853 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8854 +protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8855
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8856 // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8857 - void parse(const string& buffer, const string::size_type position, const string::size_type end, string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8858 - void generate(utility::outputStream& os, const string::size_type maxLineLength = lineLengthLimits::infinite, const string::size_type curLinePos = 0, string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8859 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8860 -protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8861 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8862 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8863 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8864 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8865 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8866 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8867 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8868 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8869 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8870 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8871 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8872
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8873 /** Parse a message-id from an input buffer.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8874 *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8875 @@ -123,7 +127,11 @@ protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8876 * @param newPosition will receive the new position in the input buffer
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8877 * @return a new message-id object, or null if no more message-id can be parsed from the input buffer
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8878 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8879 - static ref <messageId> parseNext(const string& buffer, const string::size_type position, const string::size_type end, string::size_type* newPosition);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8880 + static ref <messageId> parseNext
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8881 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8882 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8883 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8884 + string::size_type* newPosition);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8885 };
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8886
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8887
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8888 diff --git a/vmime/messageIdSequence.hpp b/vmime/messageIdSequence.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8889 index 5dfb840..6736d0a 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8890 --- a/vmime/messageIdSequence.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8891 +++ b/vmime/messageIdSequence.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8892 @@ -49,7 +49,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8893 void copyFrom(const component& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8894 messageIdSequence& operator=(const messageIdSequence& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8895
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8896 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8897 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8898
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8899
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8900 /** Add a message-id at the end of the list.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8901 @@ -148,14 +148,20 @@ private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8902
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8903 std::vector <ref <messageId> > m_list;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8904
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8905 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8906 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8907 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8908 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8909 +protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8910
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8911 // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8912 - void parse(const string& buffer, const string::size_type position, const string::size_type end, string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8913 - void generate(utility::outputStream& os, const string::size_type maxLineLength = lineLengthLimits::infinite, const string::size_type curLinePos = 0, string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8914 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8915 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8916 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8917 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8918 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8919 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8920 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8921 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8922 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8923 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8924 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8925 };
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8926
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8927
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8928 diff --git a/vmime/parameter.hpp b/vmime/parameter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8929 index e1b13a1..0773ea6 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8930 --- a/vmime/parameter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8931 +++ b/vmime/parameter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8932 @@ -67,7 +67,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8933 void copyFrom(const component& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8934 parameter& operator=(const parameter& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8935
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8936 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8937 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8938
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8939 /** Return the name of this parameter.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8940 *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8941 @@ -104,7 +104,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8942 const T getValueAs() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8943 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8944 T ret;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8945 - ret.parse(m_value.getBuffer());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8946 + ret.parse(m_value->getBuffer());
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8947
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8948 return ret;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8949 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8950 @@ -122,11 +122,19 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8951 void setValue(const word& value);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8952
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8953
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8954 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8955 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8956 +protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8957
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8958 - void parse(const string& buffer, const string::size_type position, const string::size_type end, string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8959 - void generate(utility::outputStream& os, const string::size_type maxLineLength = lineLengthLimits::infinite, const string::size_type curLinePos = 0, string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8960 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8961 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8962 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8963 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8964 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8965 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8966 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8967 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8968 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8969 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8970 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8971
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8972 private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8973
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8974 @@ -134,7 +142,7 @@ private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8975
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8976
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8977 string m_name;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8978 - word m_value;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8979 + ref <word> m_value;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8980 };
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8981
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8982
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8983 diff --git a/vmime/parameterizedHeaderField.hpp b/vmime/parameterizedHeaderField.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8984 index 2940ca3..d2c934f 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8985 --- a/vmime/parameterizedHeaderField.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8986 +++ b/vmime/parameterizedHeaderField.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8987 @@ -172,19 +172,25 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8988 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8989 const std::vector <ref <parameter> > getParameterList();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8990
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8991 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8992 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8993 private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8994
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8995 std::vector <ref <parameter> > m_params;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8996
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8997 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8998 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
8999 - using headerField::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9000 - using headerField::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9001 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9002 - void parse(const string& buffer, const string::size_type position, const string::size_type end, string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9003 - void generate(utility::outputStream& os, const string::size_type maxLineLength = lineLengthLimits::infinite, const string::size_type curLinePos = 0, string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9004 +protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9005
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9006 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9007 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9008 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9009 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9010 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9011 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9012 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9013 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9014 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9015 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9016 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9017 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9018 };
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9019
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9020
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9021 diff --git a/vmime/parserHelpers.hpp b/vmime/parserHelpers.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9022 index 9b075f7..d4f1246 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9023 --- a/vmime/parserHelpers.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9024 +++ b/vmime/parserHelpers.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9025 @@ -45,6 +45,10 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9026 return (c == ' ' || c == '\t' || c == '\n' || c == '\r');
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9027 }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9028
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9029 + static bool isSpaceOrTab(const char_t c)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9030 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9031 + return (c == ' ' || c == '\t');
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9032 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9033
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9034 static bool isDigit(const char_t c)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9035 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9036 diff --git a/vmime/path.hpp b/vmime/path.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9037 index beaa72b..eec8dfc 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9038 --- a/vmime/path.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9039 +++ b/vmime/path.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9040 @@ -76,21 +76,26 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9041 ref <component> clone() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9042 path& operator=(const path& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9043
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9044 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9045 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9046
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9047 protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9048
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9049 string m_localPart;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9050 string m_domain;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9051
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9052 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9053 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9054 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9055 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9056
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9057 // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9058 - void parse(const string& buffer, const string::size_type position, const string::size_type end, string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9059 - void generate(utility::outputStream& os, const string::size_type maxLineLength = lineLengthLimits::infinite, const string::size_type curLinePos = 0, string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9060 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9061 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9062 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9063 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9064 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9065 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9066 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9067 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9068 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9069 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9070 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9071 };
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9072
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9073
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9074 diff --git a/vmime/platforms/posix/posixFile.hpp b/vmime/platforms/posix/posixFile.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9075 index 70986df..704b7b0 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9076 --- a/vmime/platforms/posix/posixFile.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9077 +++ b/vmime/platforms/posix/posixFile.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9078 @@ -26,6 +26,7 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9079
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9080
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9081 #include "vmime/utility/file.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9082 +#include "vmime/utility/seekableInputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9083
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9084
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9085 #if VMIME_HAVE_FILESYSTEM_FEATURES
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9086 @@ -57,7 +58,7 @@ private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9087
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9088
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9089
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9090 -class posixFileReaderInputStream : public vmime::utility::inputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9091 +class posixFileReaderInputStream : public vmime::utility::seekableInputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9092 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9093 public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9094
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9095 @@ -72,6 +73,9 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9096
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9097 size_type skip(const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9098
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9099 + size_type getPosition() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9100 + void seek(const size_type pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9101 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9102 private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9103
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9104 const vmime::utility::file::path m_path;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9105 diff --git a/vmime/platforms/windows/windowsFile.hpp b/vmime/platforms/windows/windowsFile.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9106 index 6e1c8fb..f417032 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9107 --- a/vmime/platforms/windows/windowsFile.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9108 +++ b/vmime/platforms/windows/windowsFile.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9109 @@ -26,6 +26,7 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9110
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9111
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9112 #include "vmime/utility/file.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9113 +#include "vmime/utility/seekableInputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9114
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9115 #include <windows.h>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9116
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9117 @@ -157,6 +158,8 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9118 void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9119 size_type read(value_type* const data, const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9120 size_type skip(const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9121 + size_type getPosition() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9122 + void seek(const size_type pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9123
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9124 private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9125
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9126 diff --git a/vmime/relay.hpp b/vmime/relay.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9127 index 583ad80..dbaedf2 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9128 --- a/vmime/relay.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9129 +++ b/vmime/relay.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9130 @@ -51,7 +51,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9131 void copyFrom(const component& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9132 relay& operator=(const relay& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9133
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9134 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9135 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9136
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9137 const string& getFrom() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9138 void setFrom(const string& from);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9139 @@ -85,13 +85,19 @@ private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9140
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9141 datetime m_date;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9142
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9143 -public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9144 +protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9145
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9146 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9147 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9148 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9149 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9150 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9151 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9152 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9153
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9154 - void parse(const string& buffer, const string::size_type position, const string::size_type end, string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9155 - void generate(utility::outputStream& os, const string::size_type maxLineLength = lineLengthLimits::infinite, const string::size_type curLinePos = 0, string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9156 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9157 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9158 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9159 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9160 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9161 };
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9162
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9163
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9164 diff --git a/vmime/text.hpp b/vmime/text.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9165 index 15e11ae..778ce86 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9166 --- a/vmime/text.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9167 +++ b/vmime/text.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9168 @@ -58,7 +58,7 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9169 text& operator=(const component& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9170 text& operator=(const text& other);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9171
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9172 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9173 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9174
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9175 /** Add a word at the end of the list.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9176 *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9177 @@ -226,13 +226,20 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9178 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9179 static text* decodeAndUnfold(const string& in, text* generateInExisting);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9180
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9181 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9182 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9183 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9184 +protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9185
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9186 // Component parsing & assembling
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9187 - void parse(const string& buffer, const string::size_type position, const string::size_type end, string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9188 - void generate(utility::outputStream& os, const string::size_type maxLineLength = lineLengthLimits::infinite, const string::size_type curLinePos = 0, string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9189 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9190 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9191 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9192 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9193 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9194 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9195 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9196 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9197 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9198 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9199 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9200
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9201 private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9202
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9203 diff --git a/vmime/utility/inputStreamAdapter.hpp b/vmime/utility/inputStreamAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9204 index 278ab52..bd4d21e 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9205 --- a/vmime/utility/inputStreamAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9206 +++ b/vmime/utility/inputStreamAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9207 @@ -25,7 +25,7 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9208 #define VMIME_UTILITY_INPUTSTREAMADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9209
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9210
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9211 -#include "vmime/utility/inputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9212 +#include "vmime/utility/seekableInputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9213
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9214 #include <istream>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9215
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9216 @@ -37,7 +37,7 @@ namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9217 /** An adapter class for C++ standard input streams.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9218 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9219
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9220 -class inputStreamAdapter : public inputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9221 +class inputStreamAdapter : public seekableInputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9222 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9223 public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9224
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9225 @@ -49,6 +49,8 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9226 void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9227 size_type read(value_type* const data, const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9228 size_type skip(const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9229 + size_type getPosition() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9230 + void seek(const size_type pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9231
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9232 private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9233
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9234 diff --git a/vmime/utility/inputStreamByteBufferAdapter.hpp b/vmime/utility/inputStreamByteBufferAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9235 index 0f6a442..b3dafd9 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9236 --- a/vmime/utility/inputStreamByteBufferAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9237 +++ b/vmime/utility/inputStreamByteBufferAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9238 @@ -25,7 +25,7 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9239 #define VMIME_UTILITY_INPUTSTREAMBYTEBUFFERADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9240
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9241
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9242 -#include "vmime/utility/inputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9243 +#include "vmime/utility/seekableInputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9244
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9245
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9246 namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9247 @@ -35,7 +35,7 @@ namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9248 /** An adapter class for reading from an array of bytes.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9249 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9250
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9251 -class inputStreamByteBufferAdapter : public inputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9252 +class inputStreamByteBufferAdapter : public seekableInputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9253 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9254 public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9255
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9256 @@ -45,6 +45,8 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9257 void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9258 size_type read(value_type* const data, const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9259 size_type skip(const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9260 + size_type getPosition() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9261 + void seek(const size_type pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9262
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9263 private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9264
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9265 diff --git a/vmime/utility/inputStreamStringAdapter.hpp b/vmime/utility/inputStreamStringAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9266 index a7d986f..18a9083 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9267 --- a/vmime/utility/inputStreamStringAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9268 +++ b/vmime/utility/inputStreamStringAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9269 @@ -25,7 +25,7 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9270 #define VMIME_UTILITY_INPUTSTREAMSTRINGADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9271
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9272
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9273 -#include "vmime/utility/inputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9274 +#include "vmime/utility/seekableInputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9275
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9276
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9277 namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9278 @@ -35,7 +35,7 @@ namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9279 /** An adapter class for string input.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9280 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9281
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9282 -class inputStreamStringAdapter : public inputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9283 +class inputStreamStringAdapter : public seekableInputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9284 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9285 public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9286
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9287 @@ -46,6 +46,8 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9288 void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9289 size_type read(value_type* const data, const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9290 size_type skip(const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9291 + size_type getPosition() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9292 + void seek(const size_type pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9293
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9294 private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9295
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9296 diff --git a/vmime/utility/inputStreamStringProxyAdapter.hpp b/vmime/utility/inputStreamStringProxyAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9297 index 74b3f60..dc52637 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9298 --- a/vmime/utility/inputStreamStringProxyAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9299 +++ b/vmime/utility/inputStreamStringProxyAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9300 @@ -25,7 +25,7 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9301 #define VMIME_UTILITY_INPUTSTREAMSTRINGPROXYADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9302
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9303
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9304 -#include "vmime/utility/inputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9305 +#include "vmime/utility/seekableInputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9306
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9307
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9308 namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9309 @@ -38,7 +38,7 @@ class stringProxy;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9310 /** An adapter class for stringProxy input.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9311 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9312
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9313 -class inputStreamStringProxyAdapter : public inputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9314 +class inputStreamStringProxyAdapter : public seekableInputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9315 {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9316 public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9317
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9318 @@ -50,6 +50,8 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9319 void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9320 size_type read(value_type* const data, const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9321 size_type skip(const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9322 + size_type getPosition() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9323 + void seek(const size_type pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9324
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9325 private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9326
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9327 diff --git a/vmime/utility/parserInputStreamAdapter.hpp b/vmime/utility/parserInputStreamAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9328 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9329 index 0000000..c24fa44
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9330 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9331 +++ b/vmime/utility/parserInputStreamAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9332 @@ -0,0 +1,173 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9333 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9334 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9335 +// Copyright (C) 2002-2012 Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9336 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9337 +// This program is free software; you can redistribute it and/or
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9338 +// modify it under the terms of the GNU General Public License as
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9339 +// published by the Free Software Foundation; either version 3 of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9340 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9341 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9342 +// This program is distributed in the hope that it will be useful,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9343 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9344 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9345 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9346 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9347 +// You should have received a copy of the GNU General Public License along
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9348 +// with this program; if not, write to the Free Software Foundation, Inc.,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9349 +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9350 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9351 +// Linking this library statically or dynamically with other modules is making
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9352 +// a combined work based on this library. Thus, the terms and conditions of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9353 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9354 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9355 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9356 +#ifndef VMIME_UTILITY_PARSERINPUTSTREAMADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9357 +#define VMIME_UTILITY_PARSERINPUTSTREAMADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9358 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9359 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9360 +#include "vmime/utility/seekableInputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9361 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9362 +#include <cstring>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9363 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9364 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9365 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9366 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9367 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9368 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9369 +/** An adapter class used for parsing from an input stream.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9370 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9371 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9372 +class parserInputStreamAdapter : public seekableInputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9373 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9374 +public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9375 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9376 + /** @param is input stream to wrap
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9377 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9378 + parserInputStreamAdapter(ref <seekableInputStream> inputStream);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9379 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9380 + ref <seekableInputStream> getUnderlyingStream();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9381 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9382 + bool eof() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9383 + void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9384 + size_type read(value_type* const data, const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9385 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9386 + void seek(const size_type pos)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9387 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9388 + m_stream->seek(pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9389 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9390 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9391 + size_type skip(const size_type count)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9392 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9393 + return m_stream->skip(count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9394 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9395 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9396 + size_type getPosition() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9397 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9398 + return m_stream->getPosition();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9399 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9400 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9401 + /** Get the byte at the current position without updating the
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9402 + * current position.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9403 + *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9404 + * @return byte at the current position
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9405 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9406 + value_type peekByte() const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9407 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9408 + const size_type initialPos = m_stream->getPosition();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9409 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9410 + try
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9411 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9412 + value_type buffer[1];
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9413 + const size_type readBytes = m_stream->read(buffer, 1);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9414 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9415 + m_stream->seek(initialPos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9416 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9417 + return (readBytes == 1 ? buffer[0] : 0);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9418 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9419 + catch (...)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9420 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9421 + m_stream->seek(initialPos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9422 + throw;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9423 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9424 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9425 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9426 + /** Get the byte at the current position and advance current
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9427 + * position by one byte.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9428 + *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9429 + * @return byte at the current position
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9430 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9431 + value_type getByte()
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9432 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9433 + value_type buffer[1];
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9434 + const size_type readBytes = m_stream->read(buffer, 1);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9435 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9436 + return (readBytes == 1 ? buffer[0] : 0);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9437 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9438 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9439 + /** Check whether the bytes following the current position match
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9440 + * the specified bytes. Position is not updated.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9441 + *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9442 + * @param bytes bytes to compare
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9443 + * @param length number of bytes
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9444 + * @return true if the next bytes match the pattern, false otherwise
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9445 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9446 + bool matchBytes(const value_type* bytes, const size_type length) const
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9447 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9448 + const size_type initialPos = m_stream->getPosition();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9449 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9450 + try
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9451 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9452 + value_type buffer[32];
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9453 + const size_type readBytes = m_stream->read(buffer, length);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9454 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9455 + m_stream->seek(initialPos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9456 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9457 + return readBytes == length &&
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9458 + ::memcmp(bytes, buffer, length) == 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9459 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9460 + catch (...)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9461 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9462 + m_stream->seek(initialPos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9463 + throw;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9464 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9465 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9466 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9467 + const string extract(const size_type begin, const size_type end) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9468 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9469 + /** Skips bytes matching a predicate from the current position.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9470 + * The current position is updated to the next following byte
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9471 + * which does not match the predicate.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9472 + *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9473 + * @param pred predicate
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9474 + * @param endPosition stop at this position (or at end of the stream,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9475 + * whichever comes first)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9476 + * @return number of bytes skipped
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9477 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9478 + template <typename PREDICATE>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9479 + size_type skipIf(PREDICATE pred, const size_type endPosition)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9480 + {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9481 + const size_type initialPos = getPosition();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9482 + size_type pos = initialPos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9483 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9484 + while (!m_stream->eof() && pos < endPosition && pred(getByte()))
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9485 + ++pos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9486 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9487 + m_stream->seek(pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9488 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9489 + return pos - initialPos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9490 + }
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9491 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9492 + size_type findNext(const std::string& token, const size_type startPosition = 0);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9493 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9494 +private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9495 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9496 + mutable ref <seekableInputStream> m_stream;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9497 +};
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9498 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9499 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9500 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9501 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9502 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9503 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9504 +#endif // VMIME_UTILITY_PARSERINPUTSTREAMADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9505 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9506 diff --git a/vmime/utility/seekableInputStream.hpp b/vmime/utility/seekableInputStream.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9507 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9508 index 0000000..c2ab1bb
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9509 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9510 +++ b/vmime/utility/seekableInputStream.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9511 @@ -0,0 +1,64 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9512 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9513 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9514 +// Copyright (C) 2002-2012 Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9515 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9516 +// This program is free software; you can redistribute it and/or
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9517 +// modify it under the terms of the GNU General Public License as
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9518 +// published by the Free Software Foundation; either version 3 of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9519 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9520 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9521 +// This program is distributed in the hope that it will be useful,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9522 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9523 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9524 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9525 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9526 +// You should have received a copy of the GNU General Public License along
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9527 +// with this program; if not, write to the Free Software Foundation, Inc.,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9528 +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9529 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9530 +// Linking this library statically or dynamically with other modules is making
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9531 +// a combined work based on this library. Thus, the terms and conditions of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9532 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9533 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9534 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9535 +#ifndef VMIME_UTILITY_SEEKABLEINPUTSTREAM_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9536 +#define VMIME_UTILITY_SEEKABLEINPUTSTREAM_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9537 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9538 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9539 +#include "vmime/utility/inputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9540 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9541 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9542 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9543 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9544 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9545 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9546 +/** An input stream that allows seeking within the input.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9547 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9548 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9549 +class seekableInputStream : public inputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9550 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9551 +public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9552 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9553 + /** Returns the current position in this stream.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9554 + *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9555 + * @return the offset from the beginning of the stream, in bytes,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9556 + * at which the next read occurs
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9557 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9558 + virtual size_type getPosition() const = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9559 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9560 + /** Sets the position, measured from the beginning of this stream,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9561 + * at which the next read occurs.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9562 + *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9563 + * @param pos the offset position, measured in bytes from the
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9564 + * beginning of the stream, at which to set the stream pointer.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9565 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9566 + virtual void seek(const size_type pos) = 0;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9567 +};
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9568 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9569 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9570 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9571 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9572 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9573 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9574 +#endif // VMIME_UTILITY_SEEKABLEINPUTSTREAM_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9575 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9576 diff --git a/vmime/utility/seekableInputStreamRegionAdapter.hpp b/vmime/utility/seekableInputStreamRegionAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9577 new file mode 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9578 index 0000000..5ebccc6
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9579 --- /dev/null
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9580 +++ b/vmime/utility/seekableInputStreamRegionAdapter.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9581 @@ -0,0 +1,71 @@
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9582 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9583 +// VMime library (http://www.vmime.org)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9584 +// Copyright (C) 2002-2012 Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9585 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9586 +// This program is free software; you can redistribute it and/or
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9587 +// modify it under the terms of the GNU General Public License as
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9588 +// published by the Free Software Foundation; either version 3 of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9589 +// the License, or (at your option) any later version.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9590 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9591 +// This program is distributed in the hope that it will be useful,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9592 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9593 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9594 +// General Public License for more details.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9595 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9596 +// You should have received a copy of the GNU General Public License along
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9597 +// with this program; if not, write to the Free Software Foundation, Inc.,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9598 +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9599 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9600 +// Linking this library statically or dynamically with other modules is making
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9601 +// a combined work based on this library. Thus, the terms and conditions of
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9602 +// the GNU General Public License cover the whole combination.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9603 +//
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9604 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9605 +#ifndef VMIME_UTILITY_SEEKABLEINPUTSTREAMREGIONADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9606 +#define VMIME_UTILITY_SEEKABLEINPUTSTREAMREGIONADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9607 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9608 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9609 +#include "vmime/utility/seekableInputStream.hpp"
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9610 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9611 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9612 +namespace vmime {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9613 +namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9614 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9615 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9616 +/** An adapter for reading a limited region of a seekable input stream.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9617 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9618 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9619 +class seekableInputStreamRegionAdapter : public seekableInputStream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9620 +{
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9621 +public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9622 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9623 + /** Creates a new adapter for a seekableInputStream.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9624 + *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9625 + * @param stream source stream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9626 + * @param begin start position in source stream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9627 + * @param length region length in source stream
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9628 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9629 + seekableInputStreamRegionAdapter(ref <seekableInputStream> stream,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9630 + const size_type begin, const size_type length);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9631 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9632 + bool eof() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9633 + void reset();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9634 + size_type read(value_type* const data, const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9635 + size_type skip(const size_type count);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9636 + size_type getPosition() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9637 + void seek(const size_type pos);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9638 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9639 +private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9640 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9641 + ref <seekableInputStream> m_stream;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9642 + size_type m_begin;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9643 + size_type m_length;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9644 +};
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9645 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9646 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9647 +} // utility
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9648 +} // vmime
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9649 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9650 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9651 +#endif // VMIME_UTILITY_SEEKABLEINPUTSTREAMREGIONADAPTER_HPP_INCLUDED
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9652 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9653 diff --git a/vmime/utility/stream.hpp b/vmime/utility/stream.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9654 index 566ab9d..78be827 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9655 --- a/vmime/utility/stream.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9656 +++ b/vmime/utility/stream.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9657 @@ -54,6 +54,10 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9658 */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9659 typedef string::size_type size_type;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9660
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9661 + /** Constant value with the greatest possible value for an element of type size_type.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9662 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9663 + static const size_type npos;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9664 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9665 /** Return the preferred maximum block size when reading
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9666 * from or writing to this stream.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9667 *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9668 diff --git a/vmime/utility/streamUtils.hpp b/vmime/utility/streamUtils.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9669 index cdf70aa..87c8fc5 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9670 --- a/vmime/utility/streamUtils.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9671 +++ b/vmime/utility/streamUtils.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9672 @@ -45,6 +45,19 @@ namespace utility {
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9673 stream::size_type bufferedStreamCopy(inputStream& is, outputStream& os);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9674
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9675 /** Copy data from one stream into another stream using a buffered method
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9676 + * and copying only a specified range of data.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9677 + *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9678 + * @param is input stream (source data)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9679 + * @param os output stream (destination for data)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9680 + * @param start number of bytes to ignore before starting copying
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9681 + * @param length maximum number of bytes to copy
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9682 + * @return number of bytes copied
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9683 + */
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9684 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9685 +stream::size_type bufferedStreamCopyRange(inputStream& is, outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9686 + const stream::size_type start, const stream::size_type length);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9687 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9688 +/** Copy data from one stream into another stream using a buffered method
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9689 * and notify progress state of the operation.
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9690 *
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9691 * @param is input stream (source data)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9692 diff --git a/vmime/word.hpp b/vmime/word.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9693 index ad848ec..492aab5 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9694 --- a/vmime/word.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9695 +++ b/vmime/word.hpp
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9696 @@ -128,21 +128,52 @@ public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9697 #endif
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9698
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9699
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9700 - using component::parse;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9701 - using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9702 +protected:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9703
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9704 - void parse(const string& buffer, const string::size_type position, const string::size_type end, string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9705 - void generate(utility::outputStream& os, const string::size_type maxLineLength = lineLengthLimits::infinite, const string::size_type curLinePos = 0, string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9706 + void parseImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9707 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9708 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9709 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9710 + string::size_type* newPosition = NULL);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9711
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9712 - void generate(utility::outputStream& os, const string::size_type maxLineLength, const string::size_type curLinePos, string::size_type* newLinePos, const int flags, generatorState* state) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9713 + void generateImpl
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9714 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9715 + const string::size_type maxLineLength = lineLengthLimits::infinite,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9716 + const string::size_type curLinePos = 0,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9717 + string::size_type* newLinePos = NULL) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9718
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9719 - const std::vector <ref <const component> > getChildComponents() const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9720 +public:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9721
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9722 -private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9723 + using component::generate;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9724
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9725 - static ref <word> parseNext(const string& buffer, const string::size_type position, const string::size_type end, string::size_type* newPosition, bool prevIsEncoded, bool* isEncoded, bool isFirst);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9726 +#ifndef VMIME_BUILDING_DOC
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9727 + void generate
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9728 + (utility::outputStream& os,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9729 + const string::size_type maxLineLength,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9730 + const string::size_type curLinePos,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9731 + string::size_type* newLinePos,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9732 + const int flags,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9733 + generatorState* state) const;
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9734 +#endif
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9735 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9736 + const std::vector <ref <component> > getChildComponents();
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9737 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9738 +private:
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9739
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9740 - static const std::vector <ref <word> > parseMultiple(const string& buffer, const string::size_type position, const string::size_type end, string::size_type* newPosition);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9741 + static ref <word> parseNext
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9742 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9743 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9744 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9745 + string::size_type* newPosition,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9746 + bool prevIsEncoded,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9747 + bool* isEncoded,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9748 + bool isFirst);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9749 +
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9750 + static const std::vector <ref <word> > parseMultiple
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9751 + (const string& buffer,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9752 + const string::size_type position,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9753 + const string::size_type end,
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9754 + string::size_type* newPosition);
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9755
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9756
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9757 // The "m_buffer" of this word holds the data, and this data is encoded
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9758 --
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9759 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9760
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9761
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9762 From 2e05e574fde890c7ec6dd9f3930d06b1b492ea80 Mon Sep 17 00:00:00 2001
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9763 From: Vincent Richard <vincent@vincent-richard.net>
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9764 Date: Fri, 27 Apr 2012 08:34:26 +0200
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9765 Subject: [PATCH 38/38] Fixed duplicate file reference (thanks to Enes Albay).
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9766
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9767 ---
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9768 SConstruct | 1 -
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9769 1 file changed, 1 deletion(-)
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9770
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9771 diff --git a/SConstruct b/SConstruct
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9772 index 2690172..1f3c7c9 100644
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9773 --- a/SConstruct
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9774 +++ b/SConstruct
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9775 @@ -137,7 +137,6 @@ libvmime_sources = [
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9776 'utility/childProcess.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9777 'utility/file.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9778 'utility/datetimeUtils.cpp', 'utility/datetimeUtils.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9779 - 'utility/filteredStream.cpp', 'utility/filteredStream.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9780 'utility/path.cpp', 'utility/path.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9781 'utility/progressListener.cpp', 'utility/progressListener.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9782 'utility/random.cpp', 'utility/random.hpp',
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9783 --
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9784 1.7.10.3
ebe77bc7e002 package vmime: take upstream fixes
Mark Brand <mabrand@mabrand.nl>
parents: 2353
diff changeset
9785